/* Archivo variabile (peso 100–900, larghezza 62–125%), ospitato sul server */
@font-face{font-family:'Archivo';font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url('../fonts/archivo-latin-standard-normal.woff2') format('woff2-variations');}
/* ═══════════════════════════════════════════
   SKY SPORTS DARK THEME
═══════════════════════════════════════════ */
:root{
    /* Notte sul prato, gesso, riflettori */
    --bg:#0b1712; --bg2:#0e1c16; --card:#12221b; --card2:#172a22; --card3:#1e3429;
    --sky:#f6c445; --sky2:#e3ac2b; --live:#43d18a; --gold:#e9b949; --red:#ff5d5d;
    --orange:#ff8a3d; --purple:#b49cff;
    --text:#eef3ee; --muted:#8fa69a; --muted2:#b9cbbf;
    --border:#24392f; --border2:rgba(246,196,69,0.35);
    --on-accent:#1d1600;
    --sbw:256px;
    --glow-sky:none; --glow-live:none; --glow-gold:none;
    --font:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--text);display:flex;min-height:100vh;overflow-x:hidden;}

/* ─── SIDEBAR ─── */
.sidebar{width:var(--sbw);background:linear-gradient(180deg,#08120e 0%,#0b1712 100%);border-right:1px solid var(--border);position:fixed;top:0;left:0;bottom:0;display:flex;flex-direction:column;z-index:200;transition:transform .3s;}
.sb-logo{padding:18px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0;}
.sb-ball{font-size:26px;}
.sb-appname{font-size:13px;font-weight:900;color:#fff;}
.sb-appsub{font-size:9px;color:var(--muted);margin-top:2px;}
.sb-tourney{padding:13px 16px;border-bottom:1px solid var(--border);background:rgba(246,196,69,0.05);flex-shrink:0;}
.sb-tname{font-size:13px;font-weight:800;color:var(--gold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.3px;}
.sb-tmeta{font-size:10px;color:var(--muted);margin-top:3px;line-height:1.6;letter-spacing:.2px;}
.sb-tdates{font-size:10px;color:var(--sky);margin-top:4px;font-weight:600;}
.sb-section{font-size:9px;font-weight:800;color:var(--muted);padding:14px 16px 5px;flex-shrink:0;}
.sb-nav{flex:1;padding:4px 0;overflow-y:auto;overflow-x:hidden;}
.sb-nav::-webkit-scrollbar{width:3px}.sb-nav::-webkit-scrollbar-track{background:transparent}.sb-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:3px}
.sb-btn{display:flex;align-items:center;gap:11px;width:100%;padding:11px 16px;background:none;border:none;border-left:3px solid transparent;color:var(--muted2);font-size:13px;font-weight:700;cursor:pointer;text-align:left;transition:all .18s;letter-spacing:.2px;}
.sb-btn:hover{color:var(--text);background:rgba(246,196,69,0.06);border-left-color:rgba(246,196,69,0.3);}
.sb-btn.active{color:var(--sky);background:rgba(246,196,69,0.1);border-left-color:var(--sky);text-shadow:var(--glow-sky);}
.sb-icon{font-size:15px;width:18px;text-align:center;}
.sb-footer{padding:14px 16px;border-top:1px solid var(--border);flex-shrink:0;}
.sb-prog-lbl{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:5px;font-weight:700;}
.prog-wrap{background:rgba(255,255,255,0.06);border-radius:20px;height:5px;overflow:hidden;}
.prog-bar{height:100%;background:linear-gradient(90deg,var(--sky2),var(--sky),var(--live));border-radius:20px;transition:width .6s ease;}
.reset-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:12px;padding:9px;background:rgba(255,93,93,0.12);border:1px solid rgba(255,93,93,0.25);border-radius:8px;color:var(--red);font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;letter-spacing:.3px;}
.reset-btn:hover{background:rgba(255,93,93,0.22);border-color:var(--red);}

/* ─── CONTENT ─── */
.content{margin-left:var(--sbw);flex:1;min-height:100vh;}
.main{padding:28px;max-width:1020px;}

/* ─── MOBILE ─── */
.mob-toggle{display:none;position:fixed;top:10px;left:10px;z-index:300;background:var(--sky);color:var(--on-accent);border:none;border-radius:8px;width:38px;height:38px;font-size:17px;cursor:pointer;align-items:center;justify-content:center;box-shadow:var(--glow-sky);}
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:150;}
@media(max-width:768px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.sb-overlay.open{display:block}.content{margin-left:0}.mob-toggle{display:flex}.main{padding:12px;padding-top:56px}}

/* ─── TABS ─── */
.tab{display:none;}
.tab.active{display:block;animation:fadeUp .25s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ─── HOME HERO ─── */
.hero{position:relative;border-radius:16px;overflow:hidden;margin-bottom:22px;min-height:320px;display:flex;flex-direction:column;justify-content:flex-end;}
.hero-pitch{position:absolute;inset:0;background:linear-gradient(135deg,#041a08 0%,#072b10 40%,#041a08 100%);}
/* pitch lines */
.hero-pitch::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,0.03) 0px,rgba(255,255,255,0.03) 1px,transparent 1px,transparent 80px);}
.hero-pitch::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:160px;height:160px;border:2px solid rgba(255,255,255,0.08);border-radius:50%;}
.hero-lines{position:absolute;inset:0;pointer-events:none;}
.hero-lines::before{content:'';position:absolute;top:0;bottom:0;left:50%;border-left:1px solid rgba(255,255,255,0.06);}
.hero-lines::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:rgba(255,255,255,0.05);}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,11,24,0.2) 0%,rgba(4,11,24,0.5) 40%,rgba(4,11,24,0.95) 100%);}
.hero-content{position:relative;z-index:2;padding:36px 36px 32px;}
.hero-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(67,209,138,0.15);border:1px solid rgba(67,209,138,0.35);border-radius:20px;padding:5px 14px;font-size:11px;font-weight:800;color:var(--live);margin-bottom:14px;}
.hero-badge .live-dot{width:7px;height:7px;border-radius:50%;background:var(--live);animation:pulse 1.8s infinite;box-shadow:var(--glow-live);}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
.hero-title{font-size:clamp(28px,5vw,54px);font-weight:900;line-height:1;letter-spacing:-1px;text-shadow:0 0 40px rgba(246,196,69,0.4);}
.hero-title span{color:var(--sky);}
.hero-sub{font-size:14px;color:var(--muted2);margin-top:8px;font-weight:600;letter-spacing:.3px;}
.hero-divider{width:48px;height:3px;background:linear-gradient(90deg,var(--sky),var(--live));border-radius:2px;margin:14px 0;}
.hero-stats{display:flex;gap:24px;flex-wrap:wrap;}
.hero-stat{text-align:left;}
.hero-stat-val{font-size:28px;font-weight:900;color:#fff;line-height:1;}
.hero-stat-lbl{font-size:10px;color:var(--muted);font-weight:700;margin-top:2px;}
.hero-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;text-align:center;}
.hero-empty-title{font-size:clamp(22px,4vw,42px);font-weight:900;letter-spacing:-1px;opacity:.3;margin-bottom:16px;}
.hero-empty-sub{font-size:14px;color:var(--muted);margin-bottom:20px;}

/* ─── HOME CARDS ─── */
.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:22px;}
.home-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;cursor:pointer;transition:all .22s;position:relative;overflow:hidden;}
.home-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;}
.home-card.sky::before{background:linear-gradient(90deg,var(--sky2),var(--sky));}
.home-card.live::before{background:linear-gradient(90deg,#2fb874,var(--live));}
.home-card.gold::before{background:linear-gradient(90deg,#d39b22,var(--gold));}
.home-card.purple::before{background:linear-gradient(90deg,#8f6cf5,var(--purple));}
.home-card.red::before{background:linear-gradient(90deg,#d94040,var(--red));}
.home-card:hover{transform:translateY(-3px);border-color:var(--border2);}
.home-card.sky:hover{box-shadow:0 8px 30px rgba(246,196,69,0.2);}
.home-card.live:hover{box-shadow:0 8px 30px rgba(67,209,138,0.18);}
.home-card.gold:hover{box-shadow:0 8px 30px rgba(233,185,73,0.2);}
.home-card.purple:hover{box-shadow:0 8px 30px rgba(180,156,255,0.2);}
.home-card.red:hover{box-shadow:0 8px 30px rgba(255,93,93,0.18);}
.hcard-icon{font-size:22px;margin-bottom:10px;}
.hcard-title{font-size:12px;font-weight:800;margin-bottom:8px;}
.hcard-title.sky{color:var(--sky)}.hcard-title.live{color:var(--live)}.hcard-title.gold{color:var(--gold)}.hcard-title.purple{color:var(--purple)}.hcard-title.red{color:var(--red)}
.hcard-val{font-size:32px;font-weight:900;line-height:1;margin-bottom:4px;}
.hcard-sub{font-size:11px;color:var(--muted);font-weight:600;}
.hcard-arrow{position:absolute;top:50%;right:16px;transform:translateY(-50%);font-size:18px;color:var(--muted);transition:all .2s;}
.home-card:hover .hcard-arrow{right:12px;color:var(--text);}

/* ─── HOME SECTIONS ─── */
.home-2col{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:22px;}
.home-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:22px;}
@media(max-width:860px){.home-3col{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.home-2col,.home-3col{grid-template-columns:1fr}}
.home-section-title{font-size:11px;font-weight:800;color:var(--muted);margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.home-section-title::after{content:'';flex:1;height:1px;background:var(--border);}
.recent-match{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);}
.recent-match:last-child{border-bottom:none;}
.rm-team{flex:1;font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px;}
.rm-team.r{flex-direction:row-reverse;}
.rm-score{background:var(--card3);border-radius:6px;padding:5px 12px;font-size:16px;font-weight:900;white-space:nowrap;flex-shrink:0;}
.rm-badge{font-size:9px;font-weight:800;padding:2px 7px;border-radius:10px;background:rgba(180,156,255,0.15);color:var(--purple);margin-left:4px;flex-shrink:0;}
.upcoming-item{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--border);}
.upcoming-item:last-child{border-bottom:none;}
.up-vs{font-size:11px;color:var(--sky);font-weight:800;flex-shrink:0;}
.up-teams{font-size:12px;font-weight:700;flex:1;}
.up-info{font-size:11px;color:var(--muted);}
.scorer-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);}
.scorer-row:last-child{border-bottom:none;}
.scorer-pos{width:22px;font-size:13px;font-weight:900;text-align:center;color:var(--muted);}
.scorer-pos.p1{color:var(--gold)}.scorer-pos.p2{color:#c0c0c0}.scorer-pos.p3{color:#cd7f32}
.scorer-name{flex:1;font-size:13px;font-weight:700;}
.scorer-team{font-size:11px;color:var(--muted);}
.scorer-gol{font-size:18px;font-weight:900;color:var(--live);}
/* ─── HOME LOGISTICA ─── */
.logi-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);}
.logi-row:last-child{border-bottom:none;}
.logi-icon{font-size:18px;width:28px;text-align:center;flex-shrink:0;}
.logi-info{flex:1;}
.logi-info strong{display:block;font-size:13px;font-weight:700;}
.logi-info small{font-size:11px;color:var(--muted);}
.logi-stat{font-size:20px;font-weight:900;}
/* ─── HOME MVP STRIP ─── */
.mvp-strip{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;}
.mvp-chip{display:flex;align-items:center;gap:8px;background:rgba(233,185,73,0.07);border:1px solid rgba(233,185,73,0.2);border-radius:10px;padding:8px 12px;flex:1;min-width:120px;}
.mvp-chip-icon{font-size:18px;}
.mvp-chip-info{flex:1;}
.mvp-chip-role{font-size:9px;font-weight:800;color:var(--gold);}
.mvp-chip-name{font-size:13px;font-weight:800;margin-top:1px;}
.mvp-chip-team{font-size:10px;color:var(--muted);}
/* ─── CHAMPION CARD ─── */
.champion-card{background:linear-gradient(135deg,rgba(233,185,73,0.12) 0%,rgba(233,185,73,0.04) 100%);border:1px solid rgba(233,185,73,0.35);border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;margin-bottom:22px;position:relative;overflow:hidden;}
.champion-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#d39b22,var(--gold),#d39b22);}
.champion-trophy{font-size:44px;filter:drop-shadow(0 0 16px rgba(233,185,73,0.6));}
.champion-info{flex:1;}
.champion-label{font-size:10px;font-weight:800;color:var(--gold);margin-bottom:4px;}
.champion-name{font-size:28px;font-weight:900;color:#fff;letter-spacing:-0.5px;}
.champion-sub{font-size:12px;color:var(--muted2);margin-top:4px;}
/* ─── HOME FOOTER BRAND ─── */
.home-brand{text-align:center;padding:20px 0 8px;border-top:1px solid var(--border);margin-top:28px;}
.home-brand-name{font-size:11px;font-weight:800;color:var(--muted);}
.home-brand-sub{font-size:9px;color:rgba(255,255,255,0.2);margin-top:3px;}
/* ─── SIDEBAR BRAND ─── */
.sb-brand{padding:10px 16px 12px;text-align:center;border-top:1px solid var(--border);flex-shrink:0;}
.sb-brand-name{font-size:8px;font-weight:800;color:rgba(255,255,255,0.2);line-height:1.5;}
/* ── Firebase sync indicator ── */
.sync-bar{display:flex;align-items:center;gap:7px;padding:7px 14px;background:rgba(0,0,0,0.25);border-top:1px solid var(--border);flex-shrink:0;cursor:pointer;}
.sync-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;transition:background .3s;}
.sync-dot.synced{background:#43d18a;}
.sync-dot.saving{background:#e9b949;animation:fbpulse .7s infinite alternate;}
.sync-dot.loading{background:#f6c445;animation:fbpulse .7s infinite alternate;}
.sync-dot.error{background:#ff5d5d;}
.sync-dot.offline{background:rgba(255,255,255,0.2);}
.sync-lbl{font-size:10px;font-weight:700;color:rgba(255,255,255,0.45);flex:1;}
.sync-cfg{font-size:9px;color:var(--sky);font-weight:700;opacity:.7;}
@keyframes fbpulse{from{opacity:.4}to{opacity:1}}
/* ── Firebase setup modal ── */
.fb-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.88);z-index:9999;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);}
.fb-modal{background:#12221b;border:1px solid rgba(246,196,69,0.3);border-radius:18px;padding:32px;max-width:500px;width:92%;box-shadow:0 0 60px rgba(246,196,69,0.12);}
.fb-modal h2{font-size:22px;font-weight:900;color:#fff;margin:0 0 6px;}
.fb-modal .fb-sub{font-size:13px;color:var(--sky);font-weight:700;margin:0 0 14px;}
.fb-modal p{font-size:12px;color:rgba(255,255,255,0.55);margin:0 0 16px;line-height:1.6;}
.fb-steps{background:rgba(0,0,0,0.3);border-radius:10px;padding:14px 18px;margin-bottom:18px;}
.fb-steps li{font-size:12px;color:rgba(255,255,255,0.65);margin-bottom:6px;line-height:1.5;}
.fb-steps a{color:var(--sky);}
.fb-modal textarea{width:100%;height:140px;background:#0b1712;border:1px solid rgba(246,196,69,0.2);border-radius:8px;color:#43d18a;font-family:monospace;font-size:11px;padding:12px;resize:vertical;box-sizing:border-box;outline:none;}
.fb-modal textarea:focus{border-color:rgba(246,196,69,0.5);}
.fb-actions{display:flex;gap:10px;margin-top:16px;}
.fb-btn{flex:1;padding:13px;border-radius:10px;font-weight:900;font-size:13px;cursor:pointer;border:none;transition:all .2s;letter-spacing:.3px;}
.fb-btn-primary{background:linear-gradient(90deg,#0055aa,#f6c445);color:#fff;}
.fb-btn-primary:hover{opacity:.85;}
.fb-btn-secondary{background:rgba(255,255,255,0.05);color:rgba(255,255,255,0.5);border:1px solid rgba(255,255,255,0.1)!important;}
.fb-err{color:var(--red);font-size:11px;margin-top:8px;font-weight:700;display:none;}

/* ─── SOCIAL GENERATOR ─── */
.social-templates{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:0;}
.social-tpl{background:var(--card2);border:2px solid var(--border);border-radius:12px;padding:18px 12px;cursor:pointer;transition:all .2s;text-align:center;}
.social-tpl:hover{border-color:rgba(246,196,69,0.35);transform:translateY(-2px);}
.social-tpl.sel{border-color:var(--sky);background:rgba(246,196,69,0.1);box-shadow:0 0 20px rgba(246,196,69,0.15);}
.social-tpl-icon{font-size:28px;margin-bottom:8px;}
.social-tpl-name{font-size:13px;font-weight:800;letter-spacing:.2px;}
.social-tpl-desc{font-size:10px;color:var(--muted);margin-top:4px;}
.social-workspace{display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:start;margin-top:16px;}
@media(max-width:820px){.social-workspace{grid-template-columns:1fr;}}
.social-preview-wrap{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:20px;text-align:center;}
.social-canvas-outer{display:inline-flex;align-items:center;justify-content:center;min-height:240px;}
.social-canvas-wrap{display:inline-block;position:relative;border-radius:8px;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,0.7);}
.social-canvas-wrap canvas{display:block;}
.social-controls{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:18px;}
.social-fmt-row{display:flex;gap:8px;margin-bottom:14px;}
.sfmt-btn{flex:1;padding:9px 6px;border-radius:8px;border:1px solid var(--border);background:var(--card3);color:var(--muted2);font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit;}
.sfmt-btn.sel{background:rgba(246,196,69,0.15);border-color:var(--sky);color:var(--sky);}
.social-dl-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:14px;padding:13px;background:var(--sky);border:none;border-radius:10px;color:var(--on-accent);font-size:14px;font-weight:800;cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.3px;}
.social-dl-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(246,196,69,0.45);}
.social-hint{font-size:10px;color:var(--muted);margin-top:10px;line-height:1.7;text-align:center;}
.social-style-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;}
.sstyle-card{background:var(--card3);border:2px solid var(--border);border-radius:10px;padding:10px 8px;cursor:pointer;transition:all .2s;text-align:center;}
.sstyle-card:hover{border-color:rgba(255,255,255,0.2);transform:translateY(-1px);}
.sstyle-card.sel{border-color:var(--sky);background:rgba(246,196,69,0.08);}
.sstyle-dots{display:flex;justify-content:center;gap:4px;margin-bottom:6px;}
.sstyle-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.sstyle-name{font-size:10px;font-weight:800;color:var(--muted2);}

/* ─── CARDS ─── */
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px;}
.card-title{font-size:13px;font-weight:800;margin-bottom:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted2);}
.card-title-accent{color:var(--sky);}

/* ─── FORMS ─── */
input,select{background:var(--card2);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:9px 12px;font-size:13px;width:100%;transition:all .2s;font-family:inherit;}
input::placeholder{color:var(--muted);}
input:focus,select:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 3px rgba(246,196,69,0.1);}
select option{background:var(--card2);}
input[type="color"]{padding:3px 4px;height:38px;cursor:pointer;}
label{display:block;font-size:10px;color:var(--muted);margin-bottom:5px;font-weight:700;}
.fg{margin-bottom:11px;}

/* ─── BUTTONS ─── */
.btn{padding:9px 18px;border-radius:8px;border:none;cursor:pointer;font-size:13px;font-weight:800;transition:all .18s;display:inline-flex;align-items:center;gap:6px;font-family:inherit;letter-spacing:.2px;}
.btn-primary{background:var(--sky);color:var(--on-accent);}
.btn-primary:hover{background:#ffd35e;}
.btn-live{background:var(--live);color:#062014;}
.btn-live:hover{transform:translateY(-1px);}
.btn-danger{background:rgba(255,93,93,0.15);color:var(--red);border:1px solid rgba(255,93,93,0.3);}
.btn-danger:hover{background:rgba(255,93,93,0.25);}
.btn-ghost{background:var(--card2);color:var(--muted2);border:1px solid var(--border);}
.btn-ghost:hover{border-color:var(--sky);color:var(--sky);}
.btn-gold{background:var(--gold);color:var(--on-accent);}
.btn-sm{padding:6px 12px;font-size:12px;}
.btn-xs{padding:3px 8px;font-size:11px;}

/* ─── GRIDS ─── */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
@media(max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* ─── FORMAT PICKER ─── */
.fmt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;}
.fmt-card{background:var(--card2);border:2px solid var(--border);border-radius:10px;padding:16px 12px;cursor:pointer;transition:all .2s;text-align:center;}
.fmt-card:hover{border-color:rgba(246,196,69,0.4);}
.fmt-card.sel{border-color:var(--sky);background:rgba(246,196,69,0.1);box-shadow:0 0 16px rgba(246,196,69,0.15);}
.fmt-icon{font-size:24px;margin-bottom:7px;}
.fmt-name{font-weight:800;font-size:13px;letter-spacing:.2px;}
.fmt-desc{font-size:10px;color:var(--muted);margin-top:3px;line-height:1.4;}

/* ─── TEAM SETUP CARDS ─── */
.team-setup-card{background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:13px;margin-bottom:8px;transition:border-color .2s;}
.team-setup-card:hover{border-color:var(--border2);}
.team-setup-top{display:flex;gap:8px;align-items:center;margin-bottom:10px;}
.tnum{font-size:12px;color:var(--muted);width:20px;flex-shrink:0;text-align:right;font-weight:800;}
.team-setup-grid{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:8px;}
@media(max-width:580px){.team-setup-grid{grid-template-columns:1fr 1fr}}

/* ─── STAT BOXES ─── */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:18px;}
.stat-box{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px 12px;text-align:center;position:relative;overflow:hidden;}
.stat-box::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;}
.stat-box.sky::after{background:var(--sky)}.stat-box.live::after{background:var(--live)}.stat-box.gold::after{background:var(--gold)}.stat-box.red::after{background:var(--red)}
.stat-val{font-size:26px;font-weight:900;line-height:1;}
.stat-val.sky{color:var(--sky)}.stat-val.live{color:var(--live)}.stat-val.gold{color:var(--gold)}.stat-val.red{color:var(--red)}
.stat-lbl{font-size:10px;color:var(--muted);margin-top:3px;font-weight:700;}

/* ─── ALERTS ─── */
.alert{padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:14px;line-height:1.5;font-weight:600;}
.alert-s{background:rgba(67,209,138,0.08);border:1px solid rgba(67,209,138,0.3);color:var(--live);}
.alert-i{background:rgba(246,196,69,0.08);border:1px solid rgba(246,196,69,0.25);color:var(--sky);}
.alert-w{background:rgba(255,138,61,0.08);border:1px solid rgba(255,138,61,0.3);color:var(--orange);}
.alert-gold{background:rgba(233,185,73,0.08);border:1px solid rgba(233,185,73,0.3);color:var(--gold);}

/* ─── BADGES & SWATCHES ─── */
.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:20px;font-size:10px;font-weight:800;letter-spacing:.3px;}
.b-sky{background:rgba(246,196,69,0.15);color:var(--sky);}
.b-live{background:rgba(67,209,138,0.15);color:var(--live);}
.b-gold{background:rgba(233,185,73,0.15);color:var(--gold);}
.b-red{background:rgba(255,93,93,0.15);color:var(--red);}
.b-purple{background:rgba(180,156,255,0.15);color:var(--purple);}
.swatch{width:13px;height:13px;border-radius:3px;display:inline-block;border:1px solid rgba(255,255,255,0.15);flex-shrink:0;}

/* ─── MATCH CARDS ─── */
.match-card{background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:13px 15px;margin-bottom:9px;transition:all .2s;border-left:3px solid transparent;}
.match-card:hover{border-color:var(--border2);}
.match-card.played{border-left-color:var(--live);}
.match-row{display:flex;align-items:center;gap:8px;}
.match-team{flex:1;font-size:14px;font-weight:800;display:flex;align-items:center;gap:7px;}
.match-team.r{flex-direction:row-reverse;}
.score-wrap{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.score-in{width:52px!important;text-align:center;font-size:22px;font-weight:900;padding:5px 3px!important;border-radius:7px!important;}
.score-sep{color:var(--muted);font-size:22px;font-weight:300;}
.match-meta{display:flex;gap:10px;margin-top:9px;flex-wrap:wrap;align-items:center;}
.meta-f{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);}
.meta-f input{background:transparent;border:none;border-bottom:1px solid transparent;color:var(--muted);font-size:11px;width:auto;padding:0 2px;transition:border-color .2s;}
.meta-f input:focus{outline:none;border-bottom-color:var(--sky);color:var(--text);}
.campo-badge{font-size:10px;color:var(--sky);padding:2px 8px;border-radius:12px;background:rgba(246,196,69,0.1);font-weight:700;}
.round-head{font-size:11px;font-weight:800;color:var(--muted);margin:18px 0 9px;display:flex;align-items:center;gap:8px;}
.round-head::after{content:'';flex:1;height:1px;background:var(--border);}

/* ─── GOALS ─── */
.goals-section{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(255,255,255,0.08);}
.goals-header{font-size:10px;font-weight:800;color:var(--muted);margin-bottom:8px;}
.goals-list{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:9px;}
.goal-pill{display:inline-flex;align-items:center;gap:6px;background:rgba(67,209,138,0.08);border:1px solid rgba(67,209,138,0.2);border-radius:20px;padding:3px 10px 3px 8px;font-size:12px;font-weight:600;}
.goal-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:0 1px;transition:color .2s;}
.goal-del:hover{color:var(--red);}
.goals-empty{font-size:11px;color:var(--muted);font-style:italic;}
.add-goal{display:grid;grid-template-columns:1fr 1.5fr 60px auto;gap:7px;align-items:end;margin-top:8px;}
@media(max-width:560px){.add-goal{grid-template-columns:1fr 1fr;}}

/* ─── STANDINGS ─── */
.tbl-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:13px;}
thead th{text-align:left;padding:10px 8px;color:var(--muted);font-size:10px;font-weight:800;border-bottom:1px solid var(--border);white-space:nowrap;}
tbody td{padding:11px 8px;border-bottom:1px solid var(--border);}
tbody tr:hover td{background:rgba(255,255,255,0.02);}
.c{text-align:center;}
.pts{font-weight:900;color:var(--live);text-align:center;}
.pos-b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:900;}
.p1{background:var(--gold);color:#000;}.p2{background:#c0c0c0;color:#000;}.p3{background:#cd7f32;color:#fff;}
.pq{background:rgba(246,196,69,0.2);color:var(--sky);}

/* ─── PLAYERS ─── */
.player-row{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--border);}
.player-row:last-child{border-bottom:none;}
.pnum{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:12px;flex-shrink:0;}
.pname{flex:1;}
.pname strong{display:block;font-size:13px;}
.pname small{font-size:10px;color:var(--muted);margin-top:1px;}
.crd-btn{width:17px;height:24px;border-radius:2px;border:none;cursor:pointer;font-size:10px;}
.btn-y{background:var(--gold);color:#000;}.btn-r{background:var(--red);color:#fff;}
.crd-n{font-size:12px;font-weight:800;min-width:12px;text-align:center;}
.add-pl{display:grid;grid-template-columns:1fr 50px 1fr 110px auto;gap:7px;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
@media(max-width:580px){.add-pl{grid-template-columns:1fr 1fr;}}
.add-dir{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
@media(max-width:580px){.add-dir{grid-template-columns:1fr;}}
.dir-section{margin-top:16px;padding-top:16px;border-top:2px dashed rgba(255,255,255,0.06);}
.dir-title{font-size:11px;font-weight:800;color:var(--gold);margin-bottom:10px;display:flex;align-items:center;gap:7px;}
.dir-row{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid var(--border);}
.dir-row:last-child{border-bottom:none;}
.dir-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.dir-info{flex:1;}
.dir-info strong{display:block;font-size:13px;}
.dir-info small{font-size:10px;color:var(--gold);margin-top:1px;font-weight:700;letter-spacing:.3px;}

/* ─── STATS / AWARDS ─── */
.award-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:16px;}
.award-card{background:var(--card2);border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.award-head{padding:14px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);}
.award-head-icon{font-size:24px;}
.award-head-name{font-weight:900;font-size:14px;letter-spacing:.3px;}
.award-body{padding:12px 16px;}
.award-row{display:flex;align-items:center;gap:10px;padding:9px 0;}
.award-row+.award-row{border-top:1px solid var(--border);}
.award-cat{flex-shrink:0;}
.award-winner-name{font-size:14px;font-weight:800;flex:1;}
.award-team{font-size:10px;color:var(--muted);margin-top:2px;}
.award-stat{font-size:11px;color:var(--live);margin-top:3px;font-weight:700;}
.award-none{color:var(--muted);font-style:italic;font-size:13px;}

/* ─── BRACKET ─── */
.bracket-mode-toggle{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;align-items:center;}
.bracket-outer{overflow-x:auto;padding:10px 0 24px;}
.bracket{display:flex;align-items:stretch;min-width:max-content;}
.b-round{display:flex;flex-direction:column;}
.b-rhead{text-align:center;font-size:10px;font-weight:800;color:var(--muted);padding:10px 14px;background:var(--card2);border-bottom:1px solid var(--border);border-right:1px solid var(--border);white-space:nowrap;}
.b-rsede{text-align:center;font-size:10px;color:var(--sky);font-weight:700;padding:4px 14px 2px;background:var(--card2);border-right:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.b-matches{display:flex;flex-direction:column;justify-content:space-around;flex:1;padding:6px 0;}
.b-mwrap{display:flex;align-items:center;padding:0 8px;}
.b-match{width:190px;background:var(--card2);border:1px solid var(--border);border-radius:9px;overflow:hidden;transition:border-color .2s;}
.b-match:hover{border-color:var(--border2);}
.b-team{padding:10px 12px;display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;border-bottom:1px solid var(--border);transition:background .2s;}
.b-team:last-child{border-bottom:none;}
.b-team.winner{background:rgba(67,209,138,0.1);color:var(--live);}
.b-team.tbd{color:var(--muted);font-style:italic;font-size:12px;}
.b-sc{font-weight:900;font-size:16px;min-width:18px;text-align:right;}
.b-si-wrap{display:flex;gap:4px;justify-content:center;align-items:center;padding:6px 8px;background:rgba(0,0,0,0.3);border-top:1px solid var(--border);}
.b-si{width:38px!important;text-align:center;font-size:14px;font-weight:900;padding:3px 2px!important;}
.b-connector{width:20px;border-top:1px solid var(--border);border-right:1px solid var(--border);}

/* Manual bracket */
.manual-slot{background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:10px;}
.manual-slot-title{font-size:11px;font-weight:800;color:var(--muted);margin-bottom:10px;}
.manual-slot-row{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;}
.vs-text{text-align:center;font-size:13px;font-weight:900;color:var(--sky);}

/* ── Bracket match detail (inline + modal) ── */
.bm-detail{padding:6px 8px;background:rgba(0,0,0,0.25);border-top:1px solid var(--border);font-size:10px;line-height:1.5;}
.bm-team-goals{color:var(--muted2);display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-bottom:2px;}
.bm-mvp-row{display:flex;gap:3px;flex-wrap:wrap;margin-top:4px;padding-top:4px;border-top:1px solid rgba(255,255,255,0.05);}
.bm-mvp-chip{display:inline-flex;align-items:center;gap:2px;font-size:9px;font-weight:800;padding:1px 5px;border-radius:4px;background:rgba(233,185,73,0.1);color:var(--gold);border:1px solid rgba(233,185,73,0.15);white-space:nowrap;}
.bm-detail-btn{display:flex;justify-content:center;padding:3px 0;border-top:1px solid var(--border);}
.bm-detail-btn button{font-size:9px;font-weight:900;color:var(--sky);background:none;border:none;cursor:pointer;padding:2px 10px;letter-spacing:.3px;}
.bm-detail-btn button:hover{background:rgba(246,196,69,0.1);border-radius:4px;}
/* Goal rows inside kDetail modal */
.km-goal-row{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid var(--border);}
.km-goal-row:last-child{border-bottom:none;}

/* CHAMPION */
.champ-col{display:flex;flex-direction:column;justify-content:center;padding:8px 16px;}
.champ-card{background:linear-gradient(135deg,rgba(233,185,73,0.1),rgba(233,185,73,0.05));border:2px solid var(--gold);border-radius:14px;padding:24px 28px;text-align:center;box-shadow:var(--glow-gold);}
.champ-trophy{font-size:34px;filter:drop-shadow(0 0 12px rgba(233,185,73,0.6));}
.champ-name{font-size:18px;font-weight:900;color:var(--gold);margin-top:10px;}
.champ-lbl{font-size:10px;color:var(--muted);margin-top:3px;}

/* VENUES */
.campo-item{background:var(--card2);border:1px solid var(--border);border-radius:9px;padding:13px;}
.campo-label{font-size:10px;font-weight:800;color:var(--muted);margin-bottom:7px;display:flex;align-items:center;gap:7px;}
.campi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;}
.fase-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px;}

/* ─── FORMATIONS ─── */
.form-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;}
@media(max-width:820px){.form-layout{grid-template-columns:1fr}}
.form-controls{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:flex-end;}
.form-controls .fg{margin:0;min-width:140px;}
.pitch-wrap{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;text-align:center;}
.pitch-svg{width:100%;max-width:360px;display:block;margin:0 auto;border-radius:8px;}
.fpos-panel{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;max-height:600px;overflow-y:auto;}
.fpos-row{display:grid;grid-template-columns:52px 1fr;gap:8px;align-items:center;margin-bottom:8px;}
.fpos-role{font-size:10px;font-weight:900;color:var(--sky);text-align:center;background:rgba(246,196,69,0.12);border:1px solid rgba(246,196,69,0.2);border-radius:5px;padding:5px 2px;}
.module-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.mod-chip{padding:5px 12px;border-radius:20px;border:1px solid var(--border);background:var(--card2);color:var(--muted2);font-size:12px;font-weight:800;cursor:pointer;transition:all .15s;letter-spacing:.3px;}
.mod-chip.sel{background:rgba(246,196,69,0.15);border-color:var(--sky);color:var(--sky);}
.mod-chip:hover{border-color:rgba(246,196,69,0.4);color:var(--text);}

/* ─── MISTER PORTAL / REGISTER ─── */
.mp-overlay{position:fixed;inset:0;background:var(--bg);z-index:9999;display:flex;flex-direction:column;overflow-y:auto;}
.mp-header{background:linear-gradient(135deg,#08120e,#0e1c16);border-bottom:1px solid var(--border);padding:20px 24px;display:flex;align-items:center;gap:14px;flex-shrink:0;}
.mp-body{max-width:760px;margin:0 auto;padding:28px 20px;width:100%;}
.mp-badge{background:rgba(67,209,138,0.15);border:1px solid rgba(67,209,138,0.3);border-radius:20px;padding:5px 14px;font-size:12px;font-weight:800;color:var(--live);flex-shrink:0;}
.link-box{background:var(--card2);border:1px solid var(--border);border-radius:8px;padding:12px;font-size:11px;word-break:break-all;color:var(--muted2);margin-bottom:12px;line-height:1.5;}
.isc-how{font-size:13px;color:var(--muted2);line-height:2;}
.isc-how strong{color:var(--text);}
/* Modal */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:9000;display:flex;align-items:center;justify-content:center;padding:20px;}
.modal-box{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;}

/* ─── STAFF ─── */
.staff-type-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:900;}
.stype-campo{background:rgba(246,196,69,0.15);color:var(--sky);}
.stype-tutor{background:rgba(67,209,138,0.15);color:var(--live);}
.stype-generale{background:rgba(233,185,73,0.15);color:var(--gold);}
.staff-card{background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:13px 15px;margin-bottom:9px;display:flex;align-items:flex-start;gap:12px;transition:border-color .2s;}
.staff-card:hover{border-color:var(--border2);}
.staff-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.staff-info{flex:1;}
.staff-name{font-size:14px;font-weight:800;margin-bottom:3px;}
.staff-meta{font-size:11px;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.staff-bb{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap;}
.bb-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;border:1px solid var(--border);font-size:11px;font-weight:700;cursor:pointer;transition:all .15s;background:var(--card2);color:var(--muted2);font-family:inherit;}
.bb-pill.active-v{background:rgba(255,138,61,0.12);border-color:rgba(255,138,61,0.4);color:var(--orange);}
.bb-pill.active-a{background:rgba(180,156,255,0.12);border-color:rgba(180,156,255,0.4);color:var(--purple);}
.bb-pill:hover{border-color:var(--sky);}
.staff-hotel-sel{margin-top:6px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.section-head{font-size:11px;font-weight:900;color:var(--muted);margin:20px 0 10px;display:flex;align-items:center;gap:8px;}
.section-head::after{content:'';flex:1;height:1px;background:var(--border);}

/* ─── HOTEL ACCORDION ─── */
.hotel-acc{background:var(--card);border:1px solid var(--border);border-radius:14px;margin-bottom:12px;overflow:hidden;transition:border-color .2s;}
.hotel-acc:hover{border-color:rgba(246,196,69,0.2);}
.hotel-acc.expanded{border-color:rgba(246,196,69,0.3);}
.hotel-acc-header{display:flex;align-items:center;gap:14px;padding:18px 22px;cursor:pointer;user-select:none;transition:background .18s;}
.hotel-acc-header:hover{background:rgba(246,196,69,0.04);}
.hotel-acc-icon{font-size:22px;flex-shrink:0;}
.hotel-acc-info{flex:1;min-width:0;}
.hotel-acc-name{font-size:16px;font-weight:900;letter-spacing:-.2px;}
.hotel-acc-meta{font-size:11px;color:var(--muted);margin-top:3px;display:flex;gap:10px;flex-wrap:wrap;}
.hotel-acc-cap{display:flex;gap:10px;flex-wrap:wrap;margin-top:5px;}
.hotel-acc-cap-pill{font-size:10px;font-weight:800;padding:2px 8px;border-radius:10px;background:rgba(255,255,255,0.05);border:1px solid var(--border);}
.hotel-acc-actions{display:flex;gap:6px;align-items:center;flex-shrink:0;}
.hotel-acc-arrow{font-size:12px;color:var(--muted);transition:transform .25s;margin-left:4px;}
.hotel-acc-arrow.open{transform:rotate(90deg);}
.hotel-acc-body{border-top:1px solid var(--border);padding:18px 22px;background:rgba(0,0,0,0.1);}

/* Team accordion inside hotel */
.team-acc{background:var(--card);border:1px solid var(--border);border-radius:10px;margin-bottom:8px;overflow:hidden;transition:border-color .2s;}
.team-acc.expanded{border-color:rgba(246,196,69,0.25);}
.team-acc-header{display:flex;align-items:center;gap:10px;padding:13px 16px;cursor:pointer;user-select:none;transition:background .15s;}
.team-acc-header:hover{background:rgba(255,255,255,0.03);}
.team-acc-swatch{width:14px;height:14px;border-radius:4px;flex-shrink:0;}
.team-acc-name{font-size:14px;font-weight:800;flex:1;}
.team-acc-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.team-acc-arrow{font-size:11px;color:var(--muted);transition:transform .22s;margin-left:6px;}
.team-acc-arrow.open{transform:rotate(90deg);}
.team-acc-body{border-top:1px solid var(--border);padding:18px;}

/* Staff rooms accordion inside hotel */
.staff-acc{background:var(--card);border:1px solid rgba(180,156,255,0.2);border-radius:10px;margin-bottom:8px;overflow:hidden;}
.staff-acc-header{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;user-select:none;transition:background .15s;}
.staff-acc-header:hover{background:rgba(180,156,255,0.04);}
.staff-acc-arrow{font-size:11px;color:var(--muted);transition:transform .22s;margin-left:auto;}
.staff-acc-arrow.open{transform:rotate(90deg);}
.staff-acc-body{border-top:1px solid rgba(180,156,255,0.15);padding:16px;}

/* Hotel action bar */
.hotel-action-bar{display:flex;justify-content:flex-end;gap:10px;margin-bottom:18px;}

.hotel-list{display:flex;flex-direction:column;gap:8px;}
.hotel-item{display:flex;align-items:center;gap:12px;background:var(--card2);border:1px solid var(--border);border-radius:9px;padding:12px 14px;}
.hotel-item-info{flex:1;}
.hotel-item-name{font-size:14px;font-weight:800;}
.hotel-item-meta{font-size:11px;color:var(--muted);margin-top:2px;}
.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;}
.room-pill{border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.room-pill-head{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);background:rgba(0,0,0,0.2);}
.room-pill-body{padding:10px;}
.room-occupant{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 0;}
.meal-btn{padding:7px 14px;border-radius:20px;border:1px solid var(--border);background:var(--card2);color:var(--muted2);font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;font-family:inherit;}
.meal-btn.active{background:rgba(67,209,138,0.12);border-color:rgba(67,209,138,0.4);color:var(--live);}
.meal-btn:hover{border-color:var(--sky);color:var(--text);}

/* ─── BUS ─── */
.bus-card{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:10px;display:flex;align-items:flex-start;gap:14px;transition:border-color .2s;}
.bus-card:hover{border-color:var(--border2);}
.bus-icon{width:44px;height:44px;border-radius:10px;background:rgba(246,196,69,0.1);border:1px solid rgba(246,196,69,0.2);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.bus-info{flex:1;}
.bus-name{font-size:14px;font-weight:900;margin-bottom:4px;}
.bus-meta{font-size:11px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;}
/* ── Trip day accordion ── */
.trip-day-acc{margin-bottom:10px;}
.trip-day-hdr{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:14px 18px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none;transition:all .18s;}
.trip-day-hdr:hover{border-color:var(--border2);background:var(--card3);}
.trip-day-hdr.day-open{border-color:rgba(246,196,69,0.3);border-bottom-left-radius:0;border-bottom-right-radius:0;background:var(--card3);}
.trip-day-body{display:none;border:1px solid rgba(246,196,69,0.2);border-top:none;border-bottom-left-radius:12px;border-bottom-right-radius:12px;padding:10px 10px 4px;background:rgba(7,17,31,0.7);}
.trip-day-body.open{display:block;}
/* ── Trip expandable card ── */
.trip-acc{background:var(--card);border:1px solid var(--border);border-radius:10px;margin-bottom:8px;overflow:hidden;transition:border-color .18s;}
.trip-acc:last-child{margin-bottom:0;}
.trip-acc:hover{border-color:var(--border2);}
.trip-acc.over-cap{border-color:rgba(255,138,61,0.4);background:rgba(255,138,61,0.02);}
.trip-acc-hdr{padding:12px 14px;cursor:pointer;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.trip-acc-hdr:hover{background:rgba(246,196,69,0.04);}
.trip-acc-body{display:none;padding:0 14px 14px;border-top:1px solid var(--border);}
.trip-acc-body.open{display:block;}
/* ── Trip legs timeline ── */
.trip-legs{padding:14px 0 4px;display:flex;flex-direction:column;}
.trip-leg{display:flex;align-items:stretch;gap:14px;}
.trip-leg-timeline{display:flex;flex-direction:column;align-items:center;width:14px;flex-shrink:0;padding-top:2px;}
.trip-leg-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;}
.trip-leg-line{flex:1;width:2px;min-height:16px;margin:3px 0;}
.trip-leg-content{flex:1;padding-bottom:12px;}
.trip-leg-label{font-size:9px;font-weight:900;margin-bottom:3px;}
.trip-leg-route{font-size:13px;font-weight:800;margin-bottom:2px;}
.trip-leg-time{font-size:11px;font-weight:700;}
/* ── Kept for capacity + teams ── */
.trip-teams{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.trip-team-chip{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;border:1px solid var(--border);background:var(--card2);font-size:11px;font-weight:700;}
.trip-cap-bar{height:5px;border-radius:4px;background:rgba(255,255,255,0.08);overflow:hidden;margin-top:4px;}
.trip-cap-fill{height:100%;border-radius:4px;transition:width .4s;}

/* ─── ARRIVI ─── */
.arr-card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:8px;overflow:hidden;transition:border-color .2s;}
.arr-card:hover{border-color:var(--border2);}
.arr-card.arr-ok{border-left:3px solid var(--live);}
.arr-card.arr-partial{border-left:3px solid var(--gold);}
.arr-card.arr-missing{border-left:3px solid var(--border);}
.arr-hdr{padding:14px 16px;cursor:pointer;display:flex;align-items:center;gap:12px;flex-wrap:wrap;user-select:none;}
.arr-hdr:hover{background:rgba(246,196,69,0.04);}
.arr-body{display:none;padding:0 16px 16px;border-top:1px solid var(--border);}
.arr-body.open{display:block;}
.arr-type-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;padding:3px 10px;border-radius:20px;}
.arr-type-aereo{background:rgba(246,196,69,0.12);color:var(--sky);border:1px solid rgba(246,196,69,0.25);}
.arr-type-nave{background:rgba(180,156,255,0.12);color:var(--purple);border:1px solid rgba(180,156,255,0.25);}
.arr-type-treno{background:rgba(233,185,73,0.12);color:var(--gold);border:1px solid rgba(233,185,73,0.25);}
.arr-type-auto{background:rgba(67,209,138,0.12);color:var(--live);border:1px solid rgba(67,209,138,0.25);}
.arr-type-altro{background:rgba(255,255,255,0.06);color:var(--muted2);border:1px solid var(--border);}
.arr-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:14px 0;}
.arr-info-item{background:var(--card2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;}
.arr-info-lbl{font-size:9px;font-weight:900;color:var(--muted);margin-bottom:4px;}
.arr-info-val{font-size:13px;font-weight:700;}
/* Boarding passes */
.bp-zone{border:2px dashed var(--border);border-radius:10px;padding:18px;text-align:center;cursor:pointer;transition:all .2s;margin-top:12px;}
.bp-zone:hover,.bp-zone.drag-over{border-color:var(--sky);background:rgba(246,196,69,0.05);}
.bp-list{display:flex;flex-direction:column;gap:6px;margin-top:10px;}
.bp-item{display:flex;align-items:center;gap:10px;background:var(--card2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;transition:border-color .18s;}
.bp-item:hover{border-color:var(--border2);}
.bp-icon{font-size:22px;flex-shrink:0;}
.bp-info{flex:1;min-width:0;}
.bp-name{font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bp-size{font-size:10px;color:var(--muted);margin-top:1px;}

/* MISC */
.sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:8px;}
.sh-title{font-size:20px;font-weight:900;letter-spacing:-.3px;}
.sh-sub{font-size:12px;color:var(--muted);font-weight:600;margin-top:3px;}
.divider{height:1px;background:var(--border);margin:18px 0;}
.empty{text-align:center;padding:50px 20px;color:var(--muted);}
.empty .ei{font-size:48px;margin-bottom:12px;opacity:.4;}
::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.2)}

/* ════════════════════════════════════════════════════════════
   v2 — server, accesso, tabellone luminoso
════════════════════════════════════════════════════════════ */
body{font-size:14px;line-height:1.5;}
button,input,select,textarea{font-family:inherit;}
textarea{background:var(--card2);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:9px 12px;font-size:13px;width:100%;min-height:84px;resize:vertical;}
textarea:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 3px rgba(246,196,69,0.15);}
:focus-visible{outline:2px solid var(--sky);outline-offset:2px;}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;}
::selection{background:rgba(246,196,69,0.35);}
label{font-size:12px;font-weight:600;color:var(--muted2);}
.muted-p{color:var(--muted);font-size:13px;line-height:1.6;margin-bottom:12px;max-width:68ch;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}

/* Titoli: Archivo largo e pesante */
.sh-title,.modal-title,.gate-title,.board-title,.mp-title,.sb-appname{font-stretch:118%;letter-spacing:-.01em;}
.sh-title{font-size:24px;font-weight:850;}
.card-title{font-size:14px;font-weight:750;color:var(--text);letter-spacing:0;}
.card-title-accent{color:var(--sky);}
.home-section-title{font-size:13px;font-weight:750;color:var(--muted2);}
.sb-section{font-size:11px;font-weight:700;color:var(--muted);padding-top:16px;}
.sb-btn{font-weight:600;font-size:13.5px;}
.sb-btn.active{color:var(--sky);background:rgba(246,196,69,0.08);text-shadow:none;}
.sb-btn[data-count]:not([data-count=""])::after{content:attr(data-count);margin-left:auto;background:var(--sky);color:var(--on-accent);font-size:11px;font-weight:800;border-radius:10px;padding:1px 7px;}
.sb-appname{font-size:15px;font-weight:850;}
.sb-appsub{font-size:11px;letter-spacing:0;}
.sb-tname{color:var(--text);font-stretch:110%;font-size:14px;}
.sb-tdates{color:var(--sky);}
.prog-bar{background:var(--sky);}
.card,.home-card,.stat-box,.match-card,.hotel-acc,.team-acc,.trip-acc,.arr-card,.bus-card,.staff-card{box-shadow:none;}
.home-card:hover{transform:none;box-shadow:none!important;border-color:var(--border2);}
.stat-val{font-stretch:112%;}
.hcard-val{font-stretch:112%;}
.badge{text-transform:none;letter-spacing:0;font-weight:700;font-size:11px;}
.tab.active{animation:none;}
.reset-btn{background:transparent;}

/* ── Sidebar: stato sync e account ── */
.sync-bar{cursor:default;align-items:flex-start;padding:10px 16px;}
.sync-dot{margin-top:4px;}
.sync-dot.synced{background:var(--live);}
.sync-dot.saving{background:var(--sky);}
.sync-dot.error{background:var(--red);}
.sync-txt{display:flex;flex-direction:column;min-width:0;}
.sync-lbl{font-size:12px;color:var(--muted2);font-weight:600;}
.sync-who{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-account{padding:10px 16px 6px;border-top:1px solid var(--border);flex-shrink:0;}
.acc-who{display:flex;align-items:center;gap:10px;}
.acc-who strong{display:block;font-size:13px;}
.acc-who small{display:block;font-size:11px;color:var(--muted);}
.acc-avatar{width:30px;height:30px;border-radius:50%;background:var(--card3);border:1px solid var(--border);display:grid;place-items:center;font-weight:800;color:var(--sky);flex-shrink:0;}
.acc-actions{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:8px;}
.acc-link{background:none;border:0;padding:2px 0;color:var(--muted2);font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px;}
.acc-link:hover{color:var(--sky);text-decoration-color:var(--sky);}
.sb-brand-name{letter-spacing:0;font-weight:600;font-size:10px;color:rgba(238,243,238,0.28);}

/* ── Tabellone luminoso (home) ── */
.board{
    position:relative;margin-bottom:22px;padding:22px 24px 0;border-radius:14px;overflow:hidden;
    background:
        radial-gradient(120% 90% at 50% -30%,rgba(246,196,69,0.10),transparent 60%),
        repeating-linear-gradient(90deg,rgba(255,255,255,0.018) 0 64px,transparent 64px 128px),
        #08120e;
    border:1px solid var(--border);
}
.board::before{ /* matrice di LED appena percettibile */
    content:'';position:absolute;inset:0;pointer-events:none;
    background-image:radial-gradient(rgba(255,255,255,0.05) 1px,transparent 1.2px);
    background-size:5px 5px;mask-image:linear-gradient(180deg,#000 40%,transparent);
}
.board>*{position:relative;}
.board-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.board-chip{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--muted2);border:1px solid var(--border);border-radius:999px;padding:3px 11px;}
.board-chip.is-live::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--live);animation:pulse 2s infinite;}
.board-chip.is-done{color:var(--gold);border-color:rgba(233,185,73,0.4);}
.board-meta{font-size:13px;color:var(--muted);}
.board-title{font-size:clamp(28px,4.6vw,52px);font-weight:900;line-height:1.02;max-width:22ch;margin-bottom:18px;color:var(--text);}
.board-lead{color:var(--muted2);max-width:56ch;margin:-6px 0 18px;font-size:14px;}
.board-cells{display:flex;flex-wrap:wrap;border-top:1px solid var(--border);margin:0 -24px;}
.board-cell{flex:1 1 130px;padding:14px 24px 16px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:2px;}
.board-cell:last-child{border-right:0;}
.board-cell-wide{flex-basis:220px;}
.board-num{
    font-size:clamp(34px,4.4vw,48px);font-weight:800;font-stretch:72%;line-height:1;color:#ffd96a;
    text-shadow:0 0 18px rgba(246,196,69,0.45),0 0 2px rgba(255,217,106,0.9);
    font-variant-numeric:tabular-nums;
}
.board-num small{font-size:.5em;color:rgba(255,217,106,0.45);text-shadow:none;margin-left:2px;}
.board-lbl{font-size:12px;color:var(--muted);font-weight:600;}
.board-progress{height:3px;margin:0 -24px;background:rgba(255,255,255,0.05);}
.board-progress span{display:block;height:100%;background:var(--sky);transition:width .6s ease;}
.board-empty .board-num{color:rgba(255,217,106,0.25);text-shadow:none;}
.board-cta{margin:18px 0 22px;font-size:15px;padding:12px 22px;}
.board-empty .board-cells{margin-bottom:0;}
@media(max-width:600px){.board{padding:18px 16px 0}.board-cells,.board-progress{margin:0 -16px}.board-cell{padding:12px 16px;flex-basis:45%}}

/* ── Accesso ── */
body.is-locked .sidebar,body.is-locked .content,body.is-locked .mob-toggle{visibility:hidden;}
.gate{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;overflow-y:auto;
    background:radial-gradient(80% 60% at 50% 0%,rgba(246,196,69,0.10),transparent 60%),var(--bg);}
.gate[hidden]{display:none;}
.gate-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:26px 24px 20px;}
.gate-loading{text-align:center;}
.gate-board{display:flex;align-items:center;justify-content:center;gap:14px;background:#08120e;border:1px solid var(--border);border-radius:10px;padding:14px 10px;margin-bottom:20px;}
.gate-board-team{font-size:11px;font-weight:700;color:var(--muted);}
.gate-board-score{font-size:42px;font-weight:800;font-stretch:72%;color:#ffd96a;text-shadow:0 0 16px rgba(246,196,69,0.45);line-height:1;}
.gate-board-score i{font-style:normal;margin:0 6px;opacity:.5;}
.gate-title{font-size:26px;font-weight:900;margin-bottom:6px;}
.gate-sub{color:var(--muted);font-size:13px;margin-bottom:18px;}
.gate-field{display:block;margin-bottom:12px;}
.gate-field input{margin-top:5px;padding:11px 12px;font-size:15px;}
.gate-btn{width:100%;justify-content:center;padding:12px;font-size:15px;margin-top:4px;text-decoration:none;}
.gate-btn:disabled{opacity:.6;cursor:wait;}
.gate-err{color:var(--red);font-size:13px;font-weight:600;min-height:20px;margin-top:10px;}
.gate-msg{background:rgba(246,196,69,0.08);border:1px solid var(--border2);color:var(--text);border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:14px;}
.gate-foot{font-size:11px;color:var(--muted);text-align:center;margin-top:10px;opacity:.7;}

/* ── Modali ── */
.modal-bg{background:rgba(4,10,7,.78);backdrop-filter:blur(3px);}
.modal-box{border-radius:14px;}
.modal-title{font-size:20px;font-weight:850;margin-bottom:8px;}
.modal-sub{font-size:14px;font-weight:750;margin:18px 0 10px;}
.modal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;}
.tp-list{display:flex;flex-direction:column;gap:6px;margin:12px 0 16px;max-height:46vh;overflow-y:auto;}
.tp-row{display:flex;align-items:center;gap:8px;background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:6px 8px 6px 4px;}
.tp-row.is-current{border-color:var(--border2);}
.tp-row.is-off{opacity:.55;}
.tp-open{flex:1;min-width:0;text-align:left;background:none;border:0;color:var(--text);padding:6px 10px;cursor:pointer;border-radius:7px;}
.tp-open:hover{background:rgba(255,255,255,0.03);}
.tp-open strong{display:block;font-size:14px;}
.tp-open small{display:block;font-size:12px;color:var(--muted);margin-top:1px;}
.tp-row.is-current .tp-open strong::after{content:' · aperto';color:var(--sky);font-weight:600;font-size:12px;}
.tp-new{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--border);}
.tp-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.tp-tools label{display:inline-flex;margin:0;color:var(--muted2);font-size:12px;cursor:pointer;}
.mm-legacy{margin-top:4px;border-top:1px solid var(--border);padding-top:12px;}
.mm-legacy summary{cursor:pointer;color:var(--muted2);font-size:13px;font-weight:600;}

/* ── Iscrizioni ricevute ── */
.reg-row{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.reg-row:last-child{border-bottom:0;}
.reg-row.reg-rifiutata{opacity:.55;}
.reg-main{flex:1;min-width:220px;}
.reg-squad{font-size:15px;font-weight:800;margin-bottom:4px;}
.reg-meta{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted2);}
.reg-meta a{color:var(--muted2);text-decoration:none;}
.reg-meta a:hover{color:var(--sky);}
.reg-notes{font-size:12.5px;color:var(--muted);margin-top:6px;border-left:2px solid var(--border);padding-left:10px;max-width:70ch;}
.reg-actions{display:flex;gap:6px;flex-wrap:wrap;}
.reg-done{text-align:center;padding:26px 10px;}
.reg-done-mark{width:56px;height:56px;border-radius:50%;margin:0 auto 12px;display:grid;place-items:center;font-size:28px;font-weight:900;background:rgba(67,209,138,0.15);color:var(--live);}
.reg-done h2{font-size:22px;font-stretch:115%;margin-bottom:6px;}
.reg-done .muted-p{margin:0 auto;}

/* ── Pagine pubbliche (iscrizione, portale mister) ── */
body.public-mode .sidebar,body.public-mode .mob-toggle,body.public-mode .gate{display:none!important;}
body.public-mode{display:block;}
body.public-mode .content{margin-left:0;visibility:visible;}
.mp-overlay{position:static;min-height:100vh;background:var(--bg);}
.mp-header{background:#08120e;border-bottom:1px solid var(--border);padding:22px 20px;display:flex;align-items:center;gap:14px;}
.mp-header-reg{flex-direction:column;align-items:flex-start;gap:4px;max-width:none;}
.mp-header>*{max-width:720px;}
.mp-crest{width:40px;height:40px;border-radius:10px;flex-shrink:0;border:2px solid rgba(255,255,255,0.15);}
.mp-title{font-size:clamp(20px,4vw,28px);font-weight:900;line-height:1.1;}
.mp-sub{font-size:13px;color:var(--muted);margin-top:3px;}
.mp-body{max-width:720px;margin:0 auto;padding:22px 16px 40px;}
.mp-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);}
.mp-num{width:36px;height:36px;border-radius:8px;border:2px solid;display:grid;place-items:center;font-weight:800;font-stretch:80%;font-size:16px;flex-shrink:0;}
.mp-name{font-size:14px;font-weight:700;}
.mp-role{font-size:12px;color:var(--muted);}
.mp-add{display:grid;grid-template-columns:2fr 90px 1fr 1fr;gap:10px;align-items:end;margin-top:16px;padding-top:16px;border-top:1px solid var(--border);}
.mp-add .fg{margin:0;}
.mp-add button{grid-column:1/-1;justify-content:center;}
@media(max-width:600px){.mp-add{grid-template-columns:1fr 1fr}.mp-add-name{grid-column:1/-1}}

/* Accessibilità e movimento ridotto */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}
@media(max-width:768px){.main{padding:12px;padding-top:58px}}

/* ════════════════════════════════════════════════════════════
   v3 — pagina pubblica, pianificazione, storico, campo
════════════════════════════════════════════════════════════ */
.pub-grid{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start;}
@media(max-width:820px){.pub-grid{grid-template-columns:1fr}}
.pub-qr-card{display:flex;flex-direction:column;gap:10px;align-items:stretch;}
.pub-qr{background:#fff;border-radius:10px;padding:10px;aspect-ratio:1;}
.pub-qr svg{width:100%;height:100%;display:block;}
.pub-qr-card .btn{justify-content:center;}
.pub-switch{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;color:var(--text);margin:6px 0;cursor:pointer;}
.pub-switch input{width:17px;height:17px;accent-color:var(--sky);flex-shrink:0;}

/* Pianificazione */
.sc-fields{display:flex;flex-wrap:wrap;gap:4px 18px;}
.sc-prev{max-height:300px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;padding:4px 12px;margin-top:10px;}
.sc-day{padding:8px 0;border-bottom:1px solid var(--border);}
.sc-day:last-child{border-bottom:0;}
.sc-day strong{display:block;font-size:13px;margin-bottom:4px;}
.sc-row{display:grid;grid-template-columns:52px 120px 1fr;gap:8px;font-size:12.5px;color:var(--muted2);padding:2px 0;}
.sc-row span:first-child{color:var(--sky);font-weight:700;}

/* Storico */
.hist-day{font-size:13px;font-weight:750;color:var(--muted2);margin:18px 0 6px;text-transform:none;}
.hist-day::first-letter{text-transform:uppercase;}
.hist-row{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:start;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:6px;}
.hist-row.is-undone{opacity:.55;}
.hist-time{font-weight:800;color:var(--sky);font-size:13px;padding-top:1px;}
.hist-who{font-weight:700;font-size:13.5px;}
.hist-main ul{list-style:none;margin-top:2px;}
.hist-main li{font-size:12.5px;color:var(--muted2);}
.hist-main li.muted{color:var(--muted);}

/* Responsabile di campo: interfaccia ridotta, pensata per il telefono a bordo campo */
body.field-mode .sb-nav,body.field-mode .sb-footer,body.field-mode .sb-tourney{display:none;}
body.field-mode .sidebar{justify-content:flex-start;}
.fm-head{margin-bottom:12px;}
.fm-title{font-size:clamp(22px,5vw,30px);font-weight:900;font-stretch:115%;line-height:1.1;}
.fm-sub{color:var(--sky);font-weight:700;font-size:14px;margin-top:4px;}
.fm-seg{display:flex;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:3px;margin-bottom:14px;max-width:420px;}
.fm-seg button{flex:1;background:none;border:0;color:var(--muted2);font-weight:700;font-size:14px;padding:9px 6px;border-radius:7px;cursor:pointer;}
.fm-seg button[aria-selected="true"]{background:var(--sky);color:var(--on-accent);}
.fm-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:12px 14px 14px;margin-bottom:12px;}
.fm-card.is-played{border-left:3px solid var(--live);}
.fm-meta{font-size:12.5px;color:var(--muted);margin-bottom:10px;}
.fm-sides{display:grid;grid-template-columns:1fr 26px 1fr;gap:8px;align-items:start;}
.fm-vs{text-align:center;color:var(--muted);font-weight:700;padding-top:44px;font-size:13px;}
.fm-side{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;min-width:0;}
.fm-team{display:flex;align-items:center;gap:6px;max-width:100%;}
.fm-team strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fm-score{display:flex;align-items:center;gap:8px;}
.fm-num{font-size:46px;font-weight:800;font-stretch:72%;min-width:42px;color:#ffd96a;text-shadow:0 0 14px rgba(246,196,69,.4);line-height:1;}
.fm-num.is-empty{color:var(--muted);text-shadow:none;}
.fm-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--card2);color:var(--text);font-size:24px;font-weight:700;cursor:pointer;line-height:1;touch-action:manipulation;}
.fm-btn.fm-plus{background:var(--sky);color:var(--on-accent);border-color:var(--sky);}
.fm-btn:active{transform:scale(.94);}
.fm-goals{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;min-height:4px;}
.fm-addgoal{width:100%;justify-content:center;}
.fm-reset{display:block;margin:12px auto 0;background:none;border:0;color:var(--muted);font-size:12.5px;text-decoration:underline;cursor:pointer;}
.fm-players{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;max-height:52vh;overflow-y:auto;}
.fm-player{display:flex;align-items:center;gap:10px;background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:10px;color:var(--text);font-weight:700;font-size:14px;text-align:left;cursor:pointer;}
.fm-player:hover{border-color:var(--sky);}
.fm-pnum{width:30px;height:30px;border-radius:7px;border:2px solid;display:grid;place-items:center;font-stretch:80%;font-weight:800;flex-shrink:0;}
@media(max-width:420px){.fm-sides{grid-template-columns:1fr 14px 1fr}.fm-num{font-size:40px;min-width:32px}.fm-btn{width:40px;height:40px}}

/* ════════════════════════════════════════════════════════════
   v4 — contratti: pagina di firma e pannello
════════════════════════════════════════════════════════════ */
body.fs-page{display:block;min-height:100vh;background:var(--bg);}
.fs-head{padding:22px 16px;}
.fs-head>*{max-width:760px;width:100%;margin:0 auto;}
.fs-body{max-width:760px;}
.fs-steps{border-bottom:1px solid var(--border);background:var(--bg2);}
.fs-steps ol{list-style:none;display:flex;gap:6px;max-width:760px;margin:0 auto;padding:10px 16px;overflow-x:auto;}
.fs-steps li{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap;padding-right:14px;}
.fs-steps li span{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border);display:grid;place-items:center;font-size:12px;}
.fs-steps li.is-current{color:var(--text);}
.fs-steps li.is-current span{background:var(--sky);border-color:var(--sky);color:var(--on-accent);}
.fs-steps li.is-done{color:var(--live);}
.fs-steps li.is-done span{border-color:var(--live);font-size:0;}
.fs-steps li.is-done span::after{content:'✓';font-size:12px;}
.fs-cta{justify-content:center;padding:12px 20px;font-size:15px;}
form .fs-cta{width:100%;margin-top:6px;}
.fs-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin:14px 0;}
.fs-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--text);font-weight:500;line-height:1.5;margin:8px 0;cursor:pointer;}
.fs-check input{width:19px;height:19px;margin-top:2px;flex-shrink:0;accent-color:var(--sky);}
.fs-link{background:none;border:0;color:var(--muted2);text-decoration:underline;font-size:13px;cursor:pointer;margin-top:10px;}
.fs-otp{display:grid;grid-template-columns:1fr;gap:8px;margin-top:14px;max-width:340px;}
.fs-otp input{font-size:28px;letter-spacing:10px;text-align:center;font-weight:800;padding:12px;}
.fs-foot{text-align:center;color:var(--muted);font-size:11.5px;padding:10px 16px 30px;opacity:.7;}

/* Il contratto è un foglio: carta chiara, serif, come il documento che verrà stampato */
.ct-paper{background:#fbfaf6;color:#1a1d1b;border-radius:6px;padding:34px clamp(18px,5vw,48px);margin-bottom:16px;
    font-family:Georgia,'Times New Roman',serif;font-size:15.5px;line-height:1.7;max-height:62vh;overflow-y:auto;
    box-shadow:0 1px 0 rgba(255,255,255,.04),0 18px 40px -18px rgba(0,0,0,.6);}
.ct-paper:focus-visible{outline:3px solid var(--sky);}
.ct-paper h1{font-family:var(--font);font-size:22px;font-weight:850;font-stretch:110%;line-height:1.25;margin:0 0 18px;color:#111;}
.ct-paper h2{font-family:var(--font);font-size:15px;font-weight:800;margin:22px 0 6px;color:#111;}
.ct-paper p{margin:0 0 10px;max-width:68ch;}
.ct-paper ul{margin:0 0 10px 22px;}
.ct-paper .ct-var{background:#fff1c2;border-radius:3px;padding:0 3px;font-weight:600;}

.fs-signed{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;background:rgba(67,209,138,.08);border:1px solid rgba(67,209,138,.3);
    border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:13.5px;font-weight:600;color:var(--live);}
.fs-signed a{color:var(--text);}
.fs-phead,.fs-prow{display:grid;grid-template-columns:54px 1fr 1fr 150px 150px 34px;gap:6px;align-items:center;}
.fs-phead{font-size:11.5px;color:var(--muted);font-weight:600;padding:0 0 4px;}
.fs-prow,.fs-srow{margin-bottom:6px;}
.fs-srow{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr 34px;gap:6px;}
.fs-prow input,.fs-prow select,.fs-srow input,.fs-srow select{padding:9px 8px;font-size:13.5px;min-width:0;}
.fs-num{text-align:center;font-weight:700;}
.fs-del{width:34px;height:36px;border-radius:7px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:20px;cursor:pointer;}
.fs-del:hover{color:var(--red);border-color:var(--red);}
.fs-add{margin-top:6px;}
.fs-paste{background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:12px;}
.fs-paste textarea{margin-bottom:8px;font-family:ui-monospace,monospace;font-size:12.5px;}
.fs-imgs{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;}
.fs-img{display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
.fs-img small{color:var(--muted);font-size:12px;}
.fs-img label{margin:0;cursor:pointer;}
.fs-img-prev{width:100%;aspect-ratio:3/2;border:1.5px dashed var(--border);border-radius:10px;display:grid;place-items:center;overflow:hidden;background:var(--card2);color:var(--muted);font-size:13px;}
.fs-img-prev.is-logo{aspect-ratio:1;max-width:180px;background:repeating-conic-gradient(#20342a 0 25%,#182a21 0 50%) 0 0/16px 16px;}
.fs-img-prev img{width:100%;height:100%;object-fit:cover;}
.fs-img-prev.is-logo img{object-fit:contain;padding:10px;}
.fs-saved{color:var(--muted);font-size:12.5px;margin-right:auto;}
@media(max-width:700px){
    .fs-phead{display:none;}
    .fs-prow{grid-template-columns:50px 1fr 1fr 34px;background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:8px;}
    .fs-prow [data-k="birth"]{grid-column:1/3;}
    .fs-prow [data-k="role"]{grid-column:3/5;}
    .fs-prow .fs-del{grid-row:1;grid-column:4;}
    .fs-srow{grid-template-columns:1fr 34px;background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:8px;}
    .fs-srow>*:not(.fs-del){grid-column:1;}
    .fs-srow .fs-del{grid-row:1;grid-column:2;}
    .fs-imgs{grid-template-columns:1fr;}
    .fs-actions .btn{flex:1;}
}

/* Pannello contratti nel gestionale */
.ct-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto;}
.ct-tabs button{background:none;border:0;border-bottom:3px solid transparent;color:var(--muted2);font-weight:700;font-size:14px;padding:10px 12px 9px;cursor:pointer;white-space:nowrap;}
.ct-tabs button[aria-selected="true"]{color:var(--sky);border-bottom-color:var(--sky);}
.ct-row{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:8px;}
.ct-logo{width:44px;height:44px;border-radius:9px;background:var(--card2);border:1px solid var(--border);display:grid;place-items:center;overflow:hidden;font-weight:800;color:var(--muted);}
.ct-logo img{width:100%;height:100%;object-fit:contain;}
.ct-name{font-weight:800;font-size:15px;}
.ct-meta{font-size:12.5px;color:var(--muted2);display:flex;gap:4px 12px;flex-wrap:wrap;margin-top:2px;}
.ct-progress{display:flex;gap:4px;margin-top:7px;}
.ct-progress span{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted);}
.ct-progress span.ok{border-color:rgba(67,209,138,.4);color:var(--live);background:rgba(67,209,138,.07);}
.ct-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.ct-editor{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;}
.ct-editor textarea{min-height:56vh;font-size:13.5px;line-height:1.6;font-family:ui-monospace,'SF Mono',Menlo,monospace;}
.ct-editor .ct-paper{max-height:none;min-height:56vh;font-size:14px;}
.ct-chips{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 10px;}
.ct-chips button{background:var(--card2);border:1px solid var(--border);color:var(--muted2);font-size:11.5px;font-weight:600;border-radius:6px;padding:4px 8px;cursor:pointer;}
.ct-chips button:hover{border-color:var(--sky);color:var(--sky);}
.ct-help{font-size:12px;color:var(--muted);line-height:1.6;}
.ct-help code{background:var(--card2);padding:1px 5px;border-radius:4px;color:var(--muted2);}
@media(max-width:1000px){.ct-editor{grid-template-columns:1fr}.ct-row{grid-template-columns:44px 1fr}.ct-actions{grid-column:1/-1;justify-content:flex-start}}

/* Profilo squadra: logo, foto, contratto */
.team-media{display:flex;gap:12px;align-items:center;margin:-4px 0 12px;flex-wrap:wrap;}
.team-media img.tm-logo{width:52px;height:52px;object-fit:contain;background:var(--card2);border-radius:10px;padding:4px;border:1px solid var(--border);}
.team-media img.tm-photo{height:52px;width:auto;max-width:120px;object-fit:cover;border-radius:8px;border:1px solid var(--border);cursor:zoom-in;}
.pbirth{color:var(--muted);font-size:11px;}
.rg-cat{border:0;padding:0;display:flex;gap:18px;flex-wrap:wrap;}
.rg-cat legend{font-size:12px;font-weight:600;color:var(--muted2);margin-bottom:4px;}
body.fs-page a{color:var(--sky);}
body.fs-page .btn{text-decoration:none;}

/* Posti e gironi */
.sl-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--card);border:1px solid var(--border2);border-radius:12px;padding:12px 14px;margin-bottom:14px;font-size:13.5px;}
.sl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;max-height:60vh;overflow-y:auto;padding-right:4px;}
.sl-group{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:12px;}
.sl-group h3{font-size:14px;font-weight:800;margin-bottom:8px;display:flex;justify-content:space-between;gap:8px;}
.sl-group h3 span{font-size:11.5px;color:var(--muted);font-weight:600;}
.sl-row{display:flex;gap:6px;align-items:center;margin-bottom:6px;flex-wrap:wrap;}
.sl-row input[type=color]{width:34px;height:34px;padding:2px;flex-shrink:0;}
.sl-row .sl-name{flex:1 1 140px;min-width:0;padding:8px 10px;}
.sl-row select{flex:1 1 130px;min-width:0;padding:8px;font-size:12.5px;}
.sl-row.is-free .sl-name{border-style:dashed;border-color:var(--border2);}
.sl-row.is-free .sl-name::placeholder{color:var(--sky);opacity:.8;}
.df-table td,.df-table th{padding:6px;}
.df-table input{padding:7px 9px;font-size:13px;min-width:120px;}
.df-day{white-space:nowrap;font-weight:700;font-size:12.5px;}
#slotsModal .modal-box{max-width:1040px!important;}
.sl-row{flex-wrap:nowrap;}
.sl-row .sl-name{flex:1 1 120px;}
.sl-row select{flex:0 1 150px;}
.sl-row .fs-del{flex-shrink:0;}
@media(max-width:560px){.sl-row{flex-wrap:wrap}.sl-row select{flex:1 1 100%}}
