@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700;800&family=Manrope:wght@400;500;600;700&display=swap";:root{--color-bg:#f8f2e8;--color-bg-alt:#fefcf7;--color-text:#131920;--color-muted:#3f4b58;--color-primary:#e4572e;--color-primary-dark:#bf3f1b;--color-secondary:#0081a7;--color-accent:#f4a259;--color-surface:#fff;--color-border:#e8ddd0;--shadow-soft:0 12px 30px #1f293314;--shadow-card:0 16px 34px #1f29331f;--radius-lg:20px;--radius-md:12px;color:var(--color-text);font-family:Manrope,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}body{background:radial-gradient(circle at 10% 0%, #f4a25940, transparent 30%), radial-gradient(circle at 90% 10%, #0081a72e, transparent 25%), linear-gradient(180deg, var(--color-bg) 0%, var(--color-bg-alt) 50%, #fff 100%);color:var(--color-text)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.app-shell{flex-direction:column;min-height:100vh;display:flex}.container{width:min(1120px,92%);margin:0 auto}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.section{padding:4.5rem 0}.section-alt{background:linear-gradient(#e4572e0f,#0081a70f)}.section-title{margin:0 0 .75rem;font-family:Sora,sans-serif;font-size:clamp(1.5rem,2.7vw,2.3rem);font-weight:800}.section-subtitle{color:var(--color-muted);margin:0 0 2rem}.site-header{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border);background:#ffffffd6;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;min-height:72px;display:flex}.logo{letter-spacing:.4px;align-items:center;gap:.55rem;font-family:Sora,sans-serif;font-weight:800;display:flex}.logo-icon{font-size:1.2rem}.main-nav{align-items:center;gap:.7rem;display:flex}.nav-link{border-radius:10px;padding:.55rem .8rem;font-weight:600}.nav-link:hover{background:#0081a714}.nav-user{color:var(--color-muted);font-size:.92rem}.hero{color:#fff;background:radial-gradient(circle at 20% 22%,#ffbf0024,#0000 42%),radial-gradient(circle at 82% 72%,#1391882e,#0000 42%),linear-gradient(120deg,#0b1116f0,#151e28e6),#0d1117;place-items:center;min-height:56vh;display:grid;position:relative;overflow:hidden}.hero:before{content:"";opacity:.38;filter:saturate(1.12)contrast(1.08);pointer-events:none;background:url(/bundesvila-logo.png) 50% 42%/min(760px,82vw) no-repeat;position:absolute;inset:0}.hero-overlay{pointer-events:none;background:radial-gradient(#0d11170f 30%,#0d1117b3 88%),linear-gradient(#0d11172e,#0d1117a3);position:absolute;inset:0}.hero-content{z-index:1;width:min(1120px,92%);animation:.65s ease-out hero-rise;position:relative}.hero-title{max-width:12ch;margin:0;font-family:Sora,sans-serif;font-size:clamp(2.2rem,6vw,4.6rem);line-height:1.02}.hero-subtitle{color:#ffffffe6;max-width:56ch;margin:1rem 0 0}.hero-actions{flex-wrap:wrap;gap:.9rem;margin-top:1.8rem;display:flex}.btn{cursor:pointer;letter-spacing:.01em;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;min-height:36px;padding:.58rem .95rem;font-weight:700;line-height:1;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn:disabled{opacity:.65;cursor:not-allowed;transform:none}.btn:focus-visible{outline-offset:2px;outline:3px solid #0081a747}.btn-lg{padding:.9rem 1.4rem}.btn-primary,.btn-primary-sm{background:var(--color-primary);color:#fff;box-shadow:0 10px 24px #e4572e59}.btn-primary:hover,.btn-primary-sm:hover{background:var(--color-primary-dark)}.btn-primary-sm,.btn-outline-sm,.btn-danger-sm,.btn-sm{padding:.45rem .75rem;font-size:.85rem}.btn-secondary{color:#fff;background:#0a6782;box-shadow:0 8px 18px #0a678247}.btn-secondary:hover{background:#08546a}.btn-outline,.btn-outline-sm{color:#0f4f64;background:#ffffffeb;border:1px solid #9ec0cb;box-shadow:0 2px 8px #0f4f6414}.btn-outline-sm{color:var(--color-text);border-color:var(--color-border)}.btn-outline:hover,.btn-outline-sm:hover{color:#093f52;background:#fff;border-color:#6da5b7}.btn-danger{color:#fff;background:#c62828;box-shadow:0 8px 18px #8c18183d}.btn-danger:hover{background:#a91f1f}.btn-danger-sm{color:#fff;background:#d62828;box-shadow:0 6px 14px #8c181838}.btn-danger-sm:hover{background:#b32121}.events-grid,.tournament-grid,.dashboard-grid{gap:1rem;display:grid}.events-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.event-card,.tournament-card,.panel,.dashboard-hero,.auth-card{padding:1.1rem}.event-card-header{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.event-icon{font-size:1.3rem}.event-badge,.pill{color:#0a5f77;background:#0081a71c;border-radius:999px;align-items:center;padding:.2rem .65rem;font-size:.78rem;display:inline-flex}.event-title{margin:.7rem 0 .3rem}.event-date,.event-location,.event-desc,.empty-msg,.page-subtitle,.panel-subtitle{color:var(--color-muted)}.tournament-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.tournament-icon{font-size:1.7rem}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem;display:grid}.gallery-grid--compact{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.gallery-item,.gallery-thumb{border-radius:var(--radius-md);background:#fff;border:0;padding:0;position:relative;overflow:hidden}.gallery-item img,.gallery-thumb img{object-fit:cover;aspect-ratio:4/3;width:100%;height:100%}.gallery-thumb{cursor:pointer}.gallery-item figcaption{color:#fff;background:linear-gradient(#0000,#000000a3);padding:.85rem .7rem .55rem;font-size:.82rem;position:absolute;bottom:0;left:0;right:0}.gallery-item-meta{justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem;display:flex}.auth-page{flex:1;place-items:center;padding:3rem 1rem;display:grid}.auth-card{width:min(720px,100%)}.auth-switch{border:1px solid var(--color-border);border-radius:999px;margin-bottom:1rem;padding:.2rem;display:flex}.auth-tab{cursor:pointer;background:0 0;border:0;border-radius:999px;flex:1;padding:.55rem .75rem;font-weight:700}.auth-tab.active{color:#9a2f13;background:#e4572e29}.error-msg{color:#c1121f;white-space:pre-line;font-weight:600}.success-msg{color:#1a7f37;font-weight:600}.dashboard-page{flex:1;padding:1.35rem 0 3rem}.dashboard-hero{margin-bottom:1rem}.team-dashboard-hero{background-image:linear-gradient(#ffffffb3,#ffffffb3),url(/sfondo-squadre.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;position:relative}.team-banner-logo{object-fit:contain;filter:drop-shadow(0 2px 4px #0000001a);max-width:120px;max-height:120px;position:absolute;top:1rem;right:1rem}.panel{background-image:linear-gradient(#ffffffb3,#ffffffb3),url(/sfondo-squadre.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed}.page-title,.panel-title{margin:0;font-family:Sora,sans-serif}.hero-meta{flex-wrap:wrap;gap:.5rem;margin-top:.7rem;display:flex}.dashboard-grid{grid-template-columns:1fr}.panel-header{justify-content:space-between;align-items:flex-start;gap:.8rem;margin-bottom:.8rem;display:flex}.simple-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.simple-list-item{border:1px solid var(--color-border);border-radius:12px;padding:.7rem}.list-item-head{justify-content:space-between;align-items:center;gap:.7rem;display:flex}.inline-form,.grid-form{gap:.75rem;margin-bottom:1rem;display:grid}.grid-form{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-form label,.inline-form label{gap:.35rem;font-size:.92rem;font-weight:600;display:grid}.full-width{grid-column:1/-1}.logo-upload-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.25rem;display:flex}.logo-preview{object-fit:contain;border:1px solid var(--color-border);background:#f5f5f5;border-radius:8px;width:64px;height:64px}.input{border:1px solid var(--color-border);width:100%;font:inherit;background:#fff;border-radius:10px;padding:.62rem .7rem}.input[type=file]{background:#fff;padding:.85rem .7rem}.input:focus{border-color:#9ad8e8;outline:2px solid #0081a745}.textarea{resize:vertical;min-height:100px}.checkbox-row{align-items:center;gap:.5rem;padding-top:1.35rem;display:flex}.link-btn{color:#0a6782;font-weight:700}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:.55rem}.actions{flex-wrap:wrap;gap:.45rem;display:flex}.actions-cell{white-space:nowrap;width:1%}.user-actions-menu{justify-content:flex-end;display:flex;position:relative}.user-actions-trigger{justify-content:space-between;min-width:108px}.user-actions-dropdown{z-index:40;border:1px solid var(--color-border);background:#fffffffa;border-radius:12px;gap:.25rem;min-width:220px;padding:.35rem;display:grid;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 8px 20px #0f4f6426}.user-actions-item{width:100%;box-shadow:none;border-radius:10px;justify-content:flex-start}.user-actions-item.btn-danger-sm{box-shadow:none}.payment-contact-panel{margin-top:1rem}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem;margin-top:.8rem;display:grid}.contact-item{border:1px solid var(--color-border);border-radius:12px;gap:.3rem;padding:.75rem;display:grid}.contact-item small{color:var(--color-muted)}.payment-confirmed-panel{margin-top:1rem}.site-footer{border-top:1px solid var(--color-border);background:#fff;margin-top:auto}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:1rem 0;display:flex}.footer-brand{margin:0;font-family:Sora,sans-serif;font-weight:700}.footer-copy,.footer-sports{color:var(--color-muted);margin:0;font-size:.9rem}.footer-links{flex-wrap:wrap;gap:.35rem;display:flex}.footer-sports{flex-wrap:wrap;gap:.7rem;display:flex}.loading-screen{place-items:center;min-height:35vh;display:grid}.spinner{border:3px solid #0081a733;border-top-color:var(--color-secondary);border-radius:50%;width:36px;height:36px;animation:.9s linear infinite spin}.spinner--sm{width:22px;height:22px}.spinner--lg{width:48px;height:48px}.center-content{place-items:center;min-height:120px;display:grid}.modal-overlay{z-index:90;background:#0000008f;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-box{background:#fff;border-radius:16px;width:min(840px,100%);overflow:hidden}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.modal-title{margin:0}.modal-close{cursor:pointer;background:0 0;border:0;font-size:1.25rem}.modal-body{padding:1rem}.legal-page{flex:1;padding:1.5rem 0 2.5rem}.legal-card{padding:1.25rem}.legal-subtitle{margin:.35rem 0 1rem;font-family:Sora,sans-serif}.legal-pre{white-space:pre-wrap;word-break:break-word;color:var(--color-text);margin:0;font-family:Nunito Sans,sans-serif;font-size:.96rem;line-height:1.6}@keyframes spin{to{transform:rotate(360deg)}}@keyframes hero-rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.grid-form{grid-template-columns:1fr}.main-nav{gap:.4rem}.nav-user{display:none}.events-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.tournament-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.panel-header{flex-direction:column;align-items:flex-start}.panel-action{width:100%}.team-banner-logo{max-width:100px;max-height:100px}}@media (width<=640px){.header-inner{flex-direction:column;align-items:flex-start;gap:.45rem;min-height:auto;padding:.7rem 0}.logo{gap:.4rem;font-size:.95rem}.logo-icon{font-size:1rem}.main-nav{flex-wrap:wrap;gap:.3rem;width:100%}.nav-link{padding:.4rem .6rem;font-size:.85rem}.hero{min-height:62vh}.hero-title{font-size:clamp(1.5rem,4vw,2.5rem)}.hero-subtitle{font-size:.9rem}.hero-actions{flex-direction:column;gap:.6rem;width:100%}.btn,.btn-lg,.btn-primary,.btn-secondary,.btn-outline{text-align:center;width:100%}.btn-lg{padding:.8rem .9rem}.btn{padding:.5rem .7rem;font-size:.9rem}.btn-primary-sm,.btn-outline-sm,.btn-danger-sm,.btn-sm{padding:.4rem .6rem;font-size:.8rem}.grid-form,.inline-form{grid-template-columns:1fr;gap:.6rem}.grid-form label{flex-direction:column;gap:.3rem;display:flex}.grid-form label.full-width{grid-column:1}.input,.input.textarea,input[type=text],input[type=email],input[type=password],input[type=date],input[type=file],select,textarea{width:100%;font-size:16px}.panel,.dashboard-hero,.auth-card,.event-card{padding:.85rem}.panel-header{flex-direction:column;align-items:flex-start;gap:.6rem;margin-bottom:.6rem}.panel-title{font-size:1.1rem}.panel-subtitle{font-size:.85rem}.panel-action{width:100%}.dashboard-page{padding:.75rem 0 1.5rem}.dashboard-grid{gap:.75rem}.team-banner-logo{max-width:80px;max-height:80px;top:.75rem;right:.75rem}.hero-meta{gap:.3rem}.pill{padding:.15rem .5rem;font-size:.7rem}.simple-list{gap:.4rem}.simple-list-item{border-radius:8px;padding:.5rem}.list-item-head{flex-direction:column;align-items:flex-start;gap:.4rem}.list-item-head strong{width:100%;display:block}.list-item-head .btn{width:100%;margin-right:0!important}.table-wrap{-webkit-overflow-scrolling:touch;border-radius:8px;margin:1rem 0;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.85rem}.table thead{background:var(--color-bg)}.table th{text-align:left;border-bottom:2px solid var(--color-border);color:var(--color-muted);padding:.6rem .5rem;font-weight:700}.table tbody{display:table-row-group}.table tr{border-bottom:1px solid var(--color-border)}.table td{padding:.6rem .5rem}.table td:last-child{text-align:right}.actions-cell{min-width:130px}.user-actions-menu{justify-content:flex-end}.user-actions-dropdown{min-width:200px;right:0}.table .btn{width:auto;margin:.2rem .2rem .2rem 0;display:inline-block}.events-grid,.tournament-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem}.gallery-grid--compact{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.gallery-item img,.gallery-thumb img{height:80px}.gallery-item figcaption{padding:.6rem .5rem .4rem;font-size:.75rem}.gallery-item-meta{gap:.3rem;padding:.4rem}.auth-page{padding:1.5rem .75rem}.auth-card{width:100%}.auth-switch{margin-bottom:.8rem}.auth-tab{padding:.45rem .6rem;font-size:.9rem}.footer-inner{flex-direction:column;align-items:flex-start;gap:1rem}.section{padding:2rem 0}.section-title{font-size:clamp(1.3rem,2vw,1.8rem)}.container{width:95%}.full-width{grid-column:1!important}.checkbox-row{width:100%}label{font-size:.9rem;font-weight:600}}@media (width<=480px){.hero-title{font-size:clamp(1.3rem,3vw,2rem)}.logo{font-size:.85rem}.nav-link{padding:.35rem .5rem;font-size:.8rem}.btn{min-height:32px;padding:.45rem .6rem;font-size:.85rem}.btn-primary-sm,.btn-outline-sm,.btn-danger-sm,.btn-sm{padding:.35rem .5rem;font-size:.75rem}.panel,.dashboard-hero,.auth-card{padding:.75rem}.panel-title{font-size:1rem}.table td{grid-template-columns:100px 1fr;padding:.4rem}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.4rem}.gallery-grid--compact{grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}.simple-list-item{padding:.4rem}.team-banner-logo{max-width:70px;max-height:70px;top:.5rem;right:.5rem}.hero-meta{flex-direction:column}.pill{text-align:center;width:100%}}
