:root {
  --brand: #5A3FD6;
  --brand-dark: #4831A8;
  --brand-soft: #F1EEFF;
  --accent-soft: #F1EEFF;
  --accent: var(--brand);
  /* derived from --brand so a team's colours need only primary/dark/soft.
     The plain hex on each line is the fallback for browsers without color-mix;
     the line below it wins everywhere else. --mix-base flips per theme, so the
     tints darken automatically instead of needing a second set of overrides. */
  --mix-base: #ffffff;
  --ink-base: #2a2833;
  --brand-wash: #faf9ff;
  --brand-wash: color-mix(in srgb, var(--brand) 4%, var(--mix-base));
  --brand-tint: #EDE9FE;
  --brand-tint: color-mix(in srgb, var(--brand) 14%, var(--mix-base));
  --brand-tint-2: #DDD6FE;
  --brand-tint-2: color-mix(in srgb, var(--brand) 26%, var(--mix-base));
  --brand-line: #C4B5FD;
  --brand-line: color-mix(in srgb, var(--brand) 38%, var(--mix-base));
  --brand-ink-soft: #4a3f7a;
  --brand-ink-soft: color-mix(in srgb, var(--brand) 52%, var(--ink-base));
  /* always-light brand tint, for text sitting on a permanently dark surface
     (the clock bar, table headers) where the theme-flipping tints go invisible */
  --brand-on-dark: #C4A8F0;
  --brand-on-dark: color-mix(in srgb, var(--brand) 45%, #ffffff);
  --black: #16151D;
  --ink-2: #3B3A45;
  --gray: #FAFAFB;
  --border: #ECECEF;
  --border-strong: #E3E2E8;
  --text: #16151D;
  --muted: #7A7984;
  --card-radius: 16px;
  --shadow-card: 0 18px 34px -22px rgba(20,16,50,.4);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Hanken Grotesk','Segoe UI',Arial,sans-serif;background:var(--gray);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.section-title,.gt-title,.hero h2{font-family:'Bricolage Grotesque','Hanken Grotesk','Segoe UI',sans-serif}
a{color:var(--brand);text-decoration:none}
button{cursor:pointer;font-family:inherit}

/* HEADER */
header{background:rgba(250,250,251,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--text);position:sticky;top:0;z-index:260;border-bottom:1px solid var(--border)}
.header-inner{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:11px 22px;gap:14px}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo .logo-mark{width:30px;height:30px;border-radius:9px;background:var(--brand);display:grid;place-items:center;box-shadow:0 6px 14px -6px var(--brand)}
.logo .logo-mark::after{content:'';width:10px;height:10px;border-radius:50%;background:#fff}
.logo h1{font-size:1.2rem;font-weight:800;text-transform:none;letter-spacing:-.015em;color:var(--text)}
nav{display:flex;align-items:center;gap:3px;flex-wrap:wrap}
nav a{color:var(--ink-2);font-size:.92rem;font-weight:500;text-transform:none;letter-spacing:0;padding:8px 13px;border-radius:9px;transition:background .15s,color .15s}
nav a:hover{color:var(--text);background:#F2F1F5}
.btn-admin{background:var(--brand);color:#fff!important;border:none;padding:9px 14px;border-radius:10px;font-size:.82rem;font-weight:600;text-transform:none;letter-spacing:0;display:flex;align-items:center;gap:5px;box-shadow:0 8px 18px -10px var(--brand)}
.btn-admin:hover{background:var(--brand-dark)!important}

/* HERO */
.hero{background:transparent;color:var(--text);text-align:center;padding:56px 22px 40px;border-bottom:1px solid var(--border)}
.hero-ball{display:none}
.hero h2{font-size:clamp(2.4rem,6vw,4rem);font-weight:800;text-transform:none;letter-spacing:-.03em;line-height:1}
.hero p{color:var(--muted);margin-top:10px;font-size:1.05rem}
.hero-chips{display:flex;justify-content:center;gap:8px;margin-top:20px;flex-wrap:wrap}
.chip{background:var(--accent-soft);border:none;color:var(--brand-dark);padding:6px 14px;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:0}

/* LAYOUT */
.container{max-width:1100px;margin:0 auto;padding:40px 20px}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}
.section-title{font-size:1.3rem;font-weight:700;text-transform:none;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;padding-bottom:0;border-bottom:none}

/* VOTER SETUP */
.voter-bar{background:var(--accent-soft);border:none;border-radius:16px;padding:18px 22px;margin-bottom:24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.voter-bar label{font-weight:700;font-size:.9rem;white-space:nowrap}
.voter-bar input{border:2px solid var(--border);border-radius:6px;padding:7px 12px;font-size:.9rem;font-family:inherit;flex:1;min-width:160px;max-width:260px}
.voter-bar input:focus{outline:none;border-color:var(--brand)}
.voter-bar .btn-set{background:var(--brand);color:#fff;border:none;padding:8px 18px;border-radius:6px;font-weight:700;font-size:.85rem}
.voter-bar .btn-set:hover{background:var(--brand-dark)}
.voter-name-display{font-size:.9rem;color:var(--muted)}
.voter-name-display strong{color:var(--brand)}
.btn-change-voter{background:none;border:none;color:var(--brand);font-size:.82rem;font-weight:600;text-decoration:underline;padding:0;margin-left:6px}

/* VOTE SUMMARY */
.vote-summary-bar{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px 22px;margin-bottom:20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.vote-counts{display:flex;gap:14px;align-items:center;flex:1}
.vc{font-size:.85rem;font-weight:700;display:flex;align-items:center;gap:4px}
.vc.yes{color:#16a34a}
.vc.maybe{color:#d97706}
.vc.no{color:#dc2626}
.btn-share{background:var(--brand);color:#fff;border:none;padding:7px 16px;border-radius:6px;font-size:.82rem;font-weight:700}
.btn-share:hover{background:var(--brand-dark)}

/* FILTERS */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px;align-items:center}
.filter-label{font-size:.82rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.filter-btn{background:#fff;border:2px solid var(--border);color:var(--text);padding:5px 14px;border-radius:999px;font-size:.8rem;font-weight:600;transition:all .15s}
.filter-btn:hover,.filter-btn.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
select.filter-select{border:2px solid var(--border);border-radius:999px;padding:5px 14px;font-size:.8rem;font-family:inherit;font-weight:600;background:#fff;color:var(--text);cursor:pointer}
select.filter-select:focus{outline:none;border-color:var(--brand)}

/* TOURNAMENT GRID */
.t-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
.t-card{background:#fff;border-radius:var(--card-radius);border:1px solid var(--border);padding:0;overflow:hidden;transition:box-shadow .2s,border-color .2s,transform .15s;display:flex;flex-direction:column}
.t-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}
.t-card.voted-yes{border-color:#16a34a}
.t-card.voted-maybe{border-color:#d97706}
.t-card.voted-no{border-color:#dc2626;opacity:.75}
.t-card-head{padding:16px 18px 12px;border-bottom:1px solid #f0f0f0}
.t-card-row1{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}
.t-name{font-weight:800;font-size:.95rem;line-height:1.3;flex:1}
.eligible-badge{flex-shrink:0;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;border-radius:999px}
.matrix-grade{background:#dcfce7;color:#15803d}
.matrix-birth{background:#dbeafe;color:#1e40af}
.matrix-verify{background:#fef9c3;color:#854d0e}
.t-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.t-tag{font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:3px}
.t-tag.highlight{color:var(--brand);font-weight:700}
.t-body{padding:12px 18px;flex:1}
.t-fee-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.t-fee{font-weight:800;font-size:1rem;color:var(--black)}
.t-fee.tbd{color:var(--muted);font-size:.85rem}
.t-deadline{font-size:.75rem;color:var(--muted)}
.t-notes-toggle{background:none;border:none;font-size:.78rem;color:var(--brand);font-weight:600;padding:0;text-decoration:underline;cursor:pointer;margin-bottom:8px;display:block}
.t-notes{font-size:.8rem;color:#444;line-height:1.5;background:var(--brand-soft);padding:10px 12px;border-radius:6px;margin-bottom:10px;display:none}
.t-notes.open{display:block}
.t-website{font-size:.78rem;color:var(--brand);word-break:break-all}
.t-footer{padding:12px 18px 14px;border-top:1px solid #f0f0f0;background:#fafafa}
.vote-buttons{display:flex;gap:8px}
.vote-btn{flex:1;border:2px solid var(--border);background:#fff;border-radius:7px;padding:8px 4px;font-size:.82rem;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:2px;transition:all .15s;color:var(--muted)}
.vote-btn .vb-emoji{font-size:1.2rem}
.vote-btn.active-yes{border-color:#16a34a;background:#dcfce7;color:#15803d}
.vote-btn.active-maybe{border-color:#d97706;background:#fef3c7;color:#92400e}
.vote-btn.active-no{border-color:#dc2626;background:#fee2e2;color:#991b1b}
.vote-btn:hover:not(.active-yes):not(.active-maybe):not(.active-no){border-color:#bbb;background:#f5f5f5;color:var(--text)}

/* SCHEDULE */
.schedule-section{margin-bottom:40px}
.event-list{display:flex;flex-direction:column;gap:10px}
.event-item{background:#fff;border:1px solid var(--border);border-radius:14px;display:flex;gap:14px;align-items:flex-start;padding:14px 16px;transition:box-shadow .15s,transform .15s}
.event-item:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}
.event-date{background:var(--accent-soft);color:var(--brand-dark);border-radius:10px;text-align:center;min-width:52px;padding:6px 8px;flex-shrink:0}
.event-date .month{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--brand)}
.event-date .day{font-size:1.4rem;font-weight:900;line-height:1}
.event-info{flex:1}
.event-name{font-weight:700;font-size:.93rem}
.event-detail{font-size:.8rem;color:var(--muted);margin-top:2px}
.event-type{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:999px;margin-top:4px}
.type-game{background:var(--brand);color:#fff}
.type-practice{background:#e8e8e8;color:#444}
.type-event{background:var(--brand-dark);color:#fff}
.empty-state{background:#fff;border:2px dashed var(--border);border-radius:var(--card-radius);padding:32px;text-align:center;color:var(--muted);font-size:.9rem}
.empty-state span{display:block;font-size:1.8rem;margin-bottom:8px}

/* ANNOUNCEMENTS */
.ann-section{margin-bottom:40px}
.ann-list{display:flex;flex-direction:column;gap:12px}
.ann-item{background:#fff;border:1px solid var(--border);border-left:4px solid var(--brand);border-radius:14px;padding:15px 18px}
.ann-date{font-size:.72rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.ann-title{font-weight:700;font-size:.93rem;margin-bottom:4px}
.ann-body{font-size:.85rem;color:#555;line-height:1.55;white-space:pre-wrap}

/* ADMIN MODAL OVERLAY */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1000;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto}
.modal-overlay.open{display:flex}
.modal{background:#fff;border-radius:12px;width:100%;max-width:720px;box-shadow:0 8px 40px rgba(0,0,0,.3);overflow:hidden;margin:auto}
.modal-header{background:var(--black);color:#fff;padding:18px 24px;display:flex;align-items:center;justify-content:space-between}
.modal-header h2{font-size:1.1rem;font-weight:800;text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;gap:8px}
.modal-close{background:none;border:none;color:#fff;font-size:1.4rem;line-height:1;padding:0 4px;opacity:.7}
.modal-close:hover{opacity:1}
.modal-body{padding:24px}

/* LOGIN */
.login-form{display:flex;flex-direction:column;gap:14px;max-width:320px;margin:0 auto;padding:20px 0}
.login-form label{font-weight:700;font-size:.9rem}
.login-form input{border:2px solid var(--border);border-radius:7px;padding:10px 14px;font-size:1rem;font-family:inherit;width:100%}
.login-form input:focus{outline:none;border-color:var(--brand)}
.login-error{color:#dc2626;font-size:.82rem;margin-top:2px;display:none}

/* ADMIN TABS */
.admin-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:22px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.admin-tab{background:none;border:none;padding:10px 18px;font-size:.83rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .15s;flex:0 0 auto;white-space:nowrap}
.admin-tab.active{color:var(--brand);border-bottom-color:var(--brand)}
.admin-tab:hover:not(.active){color:var(--text)}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* FORMS */
.form-group{margin-bottom:14px}
.form-group label{display:block;font-weight:700;font-size:.83rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;color:var(--muted)}
.form-group input,.form-group textarea,.form-group select{width:100%;border:2px solid var(--border);border-radius:7px;padding:9px 12px;font-size:.9rem;font-family:inherit;background:#fff}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--brand)}
.form-group textarea{resize:vertical;min-height:80px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn-primary{background:var(--brand);color:#fff;border:none;padding:9px 22px;border-radius:7px;font-weight:700;font-size:.88rem}
.btn-primary:hover{background:var(--brand-dark)}
.btn-danger{background:#dc2626;color:#fff;border:none;padding:6px 14px;border-radius:6px;font-size:.78rem;font-weight:700}
.btn-danger:hover{background:#b91c1c}
.btn-edit{background:#f0f0f0;color:var(--text);border:none;padding:6px 14px;border-radius:6px;font-size:.78rem;font-weight:700}
.btn-edit:hover{background:#e0e0e0}

/* ADMIN ITEMS LIST */
.admin-item-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.admin-item{background:#fafafa;border:1px solid var(--border);border-radius:7px;padding:10px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.admin-item-info{flex:1;min-width:0}
.admin-item-info strong{font-size:.88rem;display:block}
.admin-item-info span{font-size:.78rem;color:var(--muted)}
.admin-item-actions{display:flex;gap:6px;flex-shrink:0;align-items:flex-start}

/* VOTE TALLY TABLE */
.vote-tally-table{width:100%;border-collapse:collapse;font-size:.83rem;margin-bottom:20px}
.vote-tally-table th{background:var(--black);color:#fff;padding:8px 12px;text-align:left;font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}
.vote-tally-table td{padding:8px 12px;border-bottom:1px solid var(--border)}
.vote-tally-table tr:hover td{background:var(--brand-soft)}
.tally-yes{color:#15803d;font-weight:700}
.tally-maybe{color:#92400e;font-weight:700}
.tally-no{color:#b91c1c;font-weight:700}
.import-votes-area{background:#fafafa;border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:20px}
.import-votes-area label{font-weight:700;font-size:.85rem;display:block;margin-bottom:8px}
.import-votes-area textarea{width:100%;border:2px solid var(--border);border-radius:6px;padding:8px;font-size:.8rem;font-family:monospace;min-height:90px}
.import-votes-area textarea:focus{outline:none;border-color:var(--brand)}

/* TOAST */
.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--black);color:#fff;padding:11px 24px;border-radius:8px;font-size:.88rem;font-weight:600;z-index:9999;opacity:0;transition:all .3s;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* VOTE INTRO */
.vote-intro{font-size:.9rem;color:#444;background:#fff;border:1px solid var(--border);border-left:4px solid var(--brand);border-radius:8px;padding:14px 18px;margin-bottom:20px;line-height:1.6}

/* TOP 3 TICKER */
.top3-ticker{background:linear-gradient(135deg,var(--black),#2a0d5e);color:#fff;border-radius:10px;padding:14px 20px;margin-bottom:18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.ticker-label{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:rgba(255,255,255,.65);white-space:nowrap;flex-shrink:0}
.ticker-items{display:flex;gap:10px;flex-wrap:wrap;flex:1}
.ticker-item{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:8px 14px}
.ticker-rank{font-size:1.15rem;flex-shrink:0}
.ticker-name{font-size:.78rem;font-weight:700;line-height:1.3}
.ticker-count{font-size:.7rem;color:rgba(255,255,255,.65);margin-top:1px}

/* LIVE VOTE COUNTS ON CARD */
.card-vote-counts{display:flex;gap:10px;padding:8px 18px 6px;font-size:.77rem;align-items:center;border-top:1px solid #f0f0f0;flex-wrap:wrap}
.cvc-yes{color:#15803d;font-weight:700}
.cvc-maybe{color:#92400e;font-weight:700}
.cvc-no{color:#b91c1c;font-weight:700}
.cvc-divider{color:var(--border);font-size:.7rem}

/* VOTE NOTE INPUT */
.vote-note-wrap{padding:8px 18px 4px}
.vote-note-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:4px;display:block}
.vote-note-textarea{width:100%;border:2px solid var(--border);border-radius:6px;padding:8px 10px;font-size:.8rem;font-family:inherit;resize:vertical;min-height:54px;color:var(--text);transition:border-color .15s}
.vote-note-textarea:focus{outline:none;border-color:var(--brand)}
.vote-note-actions{display:flex;align-items:center;gap:8px;margin-top:5px}
.vote-note-save{background:var(--brand);color:#fff;border:none;padding:5px 14px;border-radius:5px;font-size:.77rem;font-weight:700;cursor:pointer;transition:background .15s}
.vote-note-save:hover{background:var(--brand-dark)}
.vote-note-saved{color:#16a34a;font-size:.75rem;display:none;font-weight:600}

/* PUBLIC NOTES */
.public-notes-wrap{padding:4px 18px 12px}
.public-notes-toggle{background:none;border:none;color:var(--brand);font-size:.77rem;font-weight:600;text-decoration:underline;cursor:pointer;padding:0}
.public-notes-list{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.public-note-item{background:var(--brand-soft);border-radius:6px;padding:8px 10px}
.public-note-author{font-weight:700;font-size:.77rem;color:var(--brand)}
.public-note-text{font-size:.78rem;color:#444;margin-top:2px;line-height:1.45}

/* CREDIT ALLOCATION */
.credit-alloc-row{display:flex;align-items:center;gap:8px;padding:10px 18px 8px;flex-wrap:wrap}
.credit-adj-btn{background:#f0f0f0;border:2px solid var(--border);color:var(--text);border-radius:6px;width:36px;height:36px;font-size:1.1rem;font-weight:900;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;flex-shrink:0;line-height:1}
.credit-adj-btn:hover:not(:disabled){background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.credit-adj-btn:disabled{opacity:.32;cursor:not-allowed}
.credit-input-field{border:2px solid var(--border);border-radius:6px;padding:6px 8px;font-size:1rem;font-weight:800;width:74px;text-align:center;font-family:inherit;color:var(--text);transition:border-color .15s}
.credit-input-field:focus{outline:none;border-color:var(--brand)}
.credit-label{font-size:.75rem;font-weight:700;color:var(--muted)}
.credit-pct{font-size:.7rem;color:var(--brand);font-weight:700;margin-left:4px}
.t-card.has-credits{border-color:var(--brand)}
.t-card.has-credits .t-card-head{background:var(--brand-soft)}
.credits-remaining-display{background:var(--brand);color:#fff;border-radius:6px;padding:5px 14px;font-size:.82rem;font-weight:700;white-space:nowrap}
.credits-remaining-display.warn{background:#d97706}
.credits-remaining-display.empty{background:#dc2626}

/* HIDDEN TOURNAMENT BADGE & TOGGLE */
.hidden-badge{display:inline-block;background:#dc2626;color:#fff;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:999px;margin-left:6px}
.btn-hide{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5;padding:4px 10px;border-radius:5px;font-size:.72rem;font-weight:700;cursor:pointer;transition:all .15s}
.btn-hide:hover{background:#dc2626;color:#fff}
.btn-show{background:#dcfce7;color:#15803d;border:1px solid #86efac;padding:4px 10px;border-radius:5px;font-size:.72rem;font-weight:700;cursor:pointer;transition:all .15s}
.btn-show:hover{background:#16a34a;color:#fff}
.vote-tally-table .hidden-row td{opacity:.5;text-decoration:line-through}
.vote-tally-table .hidden-row .hide-col{opacity:1;text-decoration:none}

/* FOOTER */
footer{background:var(--black);color:#aaa;text-align:center;padding:22px 20px;font-size:.8rem}
footer strong{color:#fff}

@media(max-width:600px){
  .t-grid{grid-template-columns:1fr}
  .hero h2{font-size:1.7rem}
  .form-row{grid-template-columns:1fr}
  nav{gap:2px}
  nav a{font-size:.64rem;padding:4px 6px;letter-spacing:.2px}
  .btn-admin{padding:6px 10px;font-size:.7rem}
  .modal-overlay{padding:8px}
  .modal-body{padding:16px}
  .admin-tab{padding:9px 11px;font-size:.76rem}
}

/* CONFIRMED SUMMER SECTION */
.confirmed-section{margin-bottom:48px}
.confirmed-banner{background:linear-gradient(135deg,#0f5c2e 0%,#16a34a 100%);color:#fff;border-radius:12px;padding:18px 24px;margin-bottom:20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.confirmed-banner .cb-icon{font-size:2rem}
.confirmed-banner h3{font-size:1.05rem;font-weight:900;text-transform:uppercase;letter-spacing:1px;margin-bottom:2px}
.confirmed-banner p{font-size:.85rem;opacity:.9;margin:0}
.confirmed-card{background:#fff;border-radius:10px;border:2px solid #16a34a;padding:0;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 10px rgba(22,163,74,.12)}
.confirmed-card .cc-head{background:linear-gradient(135deg,#0f5c2e,#16a34a);color:#fff;padding:14px 18px 10px}
.confirmed-card .cc-name{font-weight:900;font-size:.97rem;margin-bottom:4px}
.confirmed-card .cc-meta{font-size:.78rem;opacity:.85;display:flex;flex-wrap:wrap;gap:6px}
.confirmed-card .cc-body{padding:12px 18px;flex:1}
.confirmed-card .cc-fee{font-weight:800;font-size:.95rem;color:#0f5c2e;margin-bottom:4px}
.confirmed-card .cc-notes-toggle{background:none;border:none;font-size:.78rem;color:#16a34a;font-weight:600;padding:0;text-decoration:underline;cursor:pointer}
.confirmed-card .cc-notes{font-size:.8rem;color:#444;line-height:1.5;background:#f0fdf4;padding:10px 12px;border-radius:6px;margin-top:8px;display:none}
.confirmed-card .cc-notes.open{display:block}
.confirmed-card .cc-footer{padding:10px 18px 14px;border-top:1px solid #dcfce7;background:#f0fdf4;font-size:.78rem;color:#0f5c2e;font-weight:600;display:flex;align-items:center;gap:6px}
/* SEASON TABS */
.season-tabs{display:flex;gap:6px;margin-bottom:24px;flex-wrap:wrap}
.season-tab{background:#fff;border:2px solid var(--border);color:var(--muted);padding:9px 18px;border-radius:8px;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .15s}
.season-tab:hover:not(.active){border-color:#bbb;color:var(--text);background:#f9f9f9}
.season-tab.active{border-color:var(--brand);background:var(--brand);color:#fff}
.season-panel{display:none}
.season-panel.active{display:block}
.t-card.no-vote .t-footer{background:#fafafa}
.credits-remaining-display{background:var(--brand-soft);color:var(--brand);border:1px solid var(--brand-line);border-radius:999px;padding:4px 14px;font-size:.82rem;font-weight:700;white-space:nowrap}
.credits-remaining-display.warn{background:#fef3c7;color:#92400e;border-color:#fcd34d}
.credits-remaining-display.empty{background:#fee2e2;color:#991b1b;border-color:#fca5a5}
/* PAST EVENTS */
.event-item.past{opacity:.55}
.event-item.past .event-date{background:#888}
.past-toggle{background:none;border:none;color:var(--brand);font-size:.82rem;font-weight:600;text-decoration:underline;cursor:pointer;margin-bottom:14px;display:block}

/* ── CONDITIONING ─────────────────────────── */
.conditioning-section{margin-bottom:40px}
.conditioning-info{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}
.conditioning-info span{background:#f0f0f0;border-radius:20px;padding:5px 14px;font-size:.82rem;font-weight:600;color:#333}
.conditioning-meet{font-size:.9rem;font-weight:700;color:#15803d;background:#f0fdf4;border-left:4px solid #16a34a;padding:8px 14px;border-radius:0 8px 8px 0;margin-bottom:10px;display:inline-block}
.conditioning-sub{font-size:.85rem;color:#666;margin-bottom:18px}
.cond-name-row{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.cond-name-input{border:2px solid var(--border);border-radius:8px;padding:7px 12px;font-size:.85rem;width:200px}
.cond-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.cond-card{background:#fff;border:2px solid var(--border);border-radius:14px;padding:16px;cursor:pointer;transition:border-color .2s,box-shadow .2s;position:relative}
.cond-card:hover{border-color:var(--brand);box-shadow:0 2px 10px rgba(0,0,0,.08)}
.cond-card.signed-up{border-color:#16a34a;background:#f0fdf4}
.cond-day{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:2px}
.cond-date{font-size:1.05rem;font-weight:800;color:var(--text);margin-bottom:6px}
.cond-time{font-size:.75rem;color:#555;margin-bottom:10px}
.cond-attendees{font-size:.75rem;color:#555;min-height:20px;margin-bottom:10px;line-height:1.4}
.cond-attendee-chip{display:inline-flex;align-items:center;gap:4px;background:var(--brand-tint);color:var(--brand-dark);border-radius:12px;padding:2px 8px;font-size:.7rem;font-weight:600;margin:2px}
.cond-attendee-chip.mine{background:#dcfce7;color:#166534}
.cond-attendee-chip button{background:none;border:none;cursor:pointer;color:#888;font-size:.75rem;padding:0;line-height:1}
.cond-signup-btn{width:100%;padding:7px;border-radius:8px;border:none;cursor:pointer;font-size:.8rem;font-weight:700;transition:background .2s}
.cond-signup-btn.join{background:var(--brand);color:#fff}
.cond-signup-btn.join:hover{background:var(--brand-dark)}
.cond-signup-btn.leave{background:#fee2e2;color:#991b1b}
.cond-signup-btn.leave:hover{background:#fecaca}
.cond-count{font-size:.72rem;font-weight:700;color:var(--brand);margin-bottom:6px}

.cond-minicamps{margin-top:32px;margin-bottom:8px}
.cond-minicamps-title{font-size:.85rem;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--brand);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.cond-minicamps-title::before{content:'';flex:0 0 auto;height:2px;width:28px;background:var(--brand);border-radius:2px}
.cond-camp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.cond-camp-card{background:linear-gradient(135deg,#faf5ff,var(--brand-tint));border:2px solid var(--brand);border-radius:16px;padding:20px;position:relative}
.cond-camp-badge{position:absolute;top:14px;right:14px;background:var(--brand);color:#fff;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:3px 10px;border-radius:20px}
.cond-camp-name{font-size:1.1rem;font-weight:900;color:var(--text);margin-bottom:4px}
.cond-camp-dates{font-size:.82rem;font-weight:700;color:var(--brand);margin-bottom:4px}
.cond-camp-details{font-size:.78rem;color:#555;margin-bottom:12px;line-height:1.5}
.cond-camp-attendees{margin-bottom:12px;min-height:24px}
.cond-camp-count{font-size:.75rem;font-weight:700;color:var(--brand);margin-bottom:6px}

.schedule-archive-toggle{display:flex;align-items:center;gap:10px;margin-top:18px;cursor:pointer;color:var(--muted);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;user-select:none;border:none;background:none;padding:0}
.schedule-archive-toggle:hover{color:var(--text)}
.archive-chevron{transition:transform .25s;display:inline-block;font-size:.7rem}
.archive-chevron.open{transform:rotate(180deg)}
.schedule-archive-list{margin-top:10px;border-top:2px dashed var(--border);padding-top:14px}
.event-item.past{opacity:.6}
.event-item.past .event-date{background:#f3f4f6}
.btn-signout{background:transparent;border:1px solid var(--border-strong);color:var(--ink-2);padding:8px 14px;border-radius:10px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s;display:none}
.btn-signout:hover{background:#F2F1F5;color:var(--text);border-color:#C7C6D1}

/* ── SESSION DETAIL MODAL ─────────────────── */
#session-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:1100;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto}
#session-overlay.open{display:flex}
.session-modal{background:#fff;border-radius:12px;width:100%;max-width:680px;box-shadow:0 8px 40px rgba(0,0,0,.3);overflow:hidden;margin:auto}
.session-modal .modal-header{background:var(--black);color:#fff;padding:16px 22px;display:flex;align-items:center;justify-content:space-between}
.session-modal .modal-header h2{font-size:1rem;font-weight:800;text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;gap:8px}
.session-modal .modal-body{padding:20px}
.session-targets-table{width:100%;border-collapse:collapse;font-size:.82rem;margin-bottom:16px}
.session-targets-table th{background:#f5f5f5;padding:7px 12px;text-align:left;font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.session-targets-table td{padding:7px 12px;border-bottom:1px solid var(--border)}
.group-badge{display:inline-flex;align-items:center;gap:4px;background:var(--brand-soft);color:var(--brand);border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:800}
.group-badge.g1{background:#e8f4fd;color:#1e40af}
.attendance-grid{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}
.att-row{display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:6px;background:#fafafa;border:1px solid var(--border)}
.att-row.present{background:#dcfce7;border-color:#86efac}
.att-row.absent{background:#fee2e2;border-color:#fca5a5;opacity:.8}
.att-name{font-size:.85rem;font-weight:600;flex:1}
.att-status{font-size:.85rem}
.att-group-hdr{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:8px 8px 2px;margin-top:6px}
.log-section{background:#fafafa;border:1px solid var(--border);border-radius:8px;padding:14px;margin-bottom:14px}
.log-section h4{font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:10px}
.log-field{margin-bottom:10px}
.log-field label{display:block;font-size:.75rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.log-field input,.log-field textarea,.log-field select{width:100%;border:2px solid var(--border);border-radius:6px;padding:7px 10px;font-size:.88rem;font-family:inherit}
.log-field input:focus,.log-field textarea:focus{outline:none;border-color:var(--brand)}
.log-field textarea{resize:vertical;min-height:70px}
.log-stat-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.log-stat{background:#fff;border:1px solid var(--border);border-radius:8px;padding:10px 14px;text-align:center;min-width:90px}
.log-stat .ls-val{font-size:1.3rem;font-weight:900;color:var(--brand)}
.log-stat .ls-lbl{font-size:.7rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.btn-details{background:none;border:none;color:var(--brand);font-size:.75rem;font-weight:700;cursor:pointer;padding:4px 0 0;text-decoration:underline;display:block;width:100%;text-align:center;margin-top:6px}
.btn-details:hover{color:var(--brand-dark)}
.session-logged-badge{display:inline-block;background:#dcfce7;color:#15803d;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;border-radius:999px;margin-top:4px}

/* ── COACH LOGIN ──────────────────────────── */
.coach-login-bar{background:#f5f0ff;border:1px solid #d8c8f8;border-radius:8px;padding:10px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.coach-login-bar label{font-size:.83rem;font-weight:700;color:var(--brand);white-space:nowrap}
.coach-pin-input{border:2px solid var(--brand);border-radius:6px;padding:5px 10px;font-size:.88rem;font-family:inherit;width:110px;letter-spacing:2px}
.coach-pin-input:focus{outline:none;box-shadow:0 0 0 2px var(--brand-soft)}
.btn-coach-login{background:var(--brand);color:#fff;border:none;padding:6px 14px;border-radius:6px;font-size:.82rem;font-weight:700}
.btn-coach-login:hover{background:var(--brand-dark)}
.coach-active-bar{background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:9px 16px;display:flex;align-items:center;gap:10px;margin-bottom:18px}
.coach-active-name{font-size:.88rem;font-weight:700;color:#15803d;flex:1}
.btn-coach-signout{background:none;border:1px solid #86efac;color:#15803d;padding:4px 12px;border-radius:999px;font-size:.75rem;font-weight:700;cursor:pointer}
.btn-coach-signout:hover{background:#dcfce7}

/* ── SUMMER OVERVIEW ─────────────────────── */
.summer-overview-section{margin-bottom:40px}
.progress-bar-wrap{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px 22px;margin-bottom:20px}
.progress-bar-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.progress-bar-label span{font-size:.88rem;font-weight:700;color:var(--text)}
.progress-bar-label strong{color:var(--brand)}
.progress-bar-outer{height:12px;background:#e8e8e8;border-radius:999px;overflow:hidden}
.progress-bar-inner{height:100%;background:linear-gradient(90deg,var(--brand),#a855f7);border-radius:999px;transition:width .4s}
.group-chips-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}
.group-chip{background:#fff;border:2px solid var(--border);border-radius:10px;padding:10px 16px;font-size:.82rem;font-weight:700;line-height:1.5}
.group-chip .gc-title{color:var(--brand);font-size:.88rem;margin-bottom:2px;display:flex;align-items:center;gap:6px}
.group-chip .gc-sub{font-size:.75rem;color:var(--muted);font-weight:600}
.group-chip.g1 .gc-title{color:#1e40af}
.attendance-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--border);border-radius:10px;margin-bottom:20px}
.att-overview-table{border-collapse:collapse;font-size:.75rem;min-width:600px;width:100%}
.att-overview-table th{background:var(--black);color:#fff;padding:7px 10px;text-align:center;font-weight:700;white-space:nowrap;font-size:.68rem;text-transform:uppercase;letter-spacing:.4px}
.att-overview-table th.name-col{text-align:left;min-width:90px}
.att-overview-table td{padding:6px 8px;border-bottom:1px solid #f0f0f0;text-align:center;white-space:nowrap}
.att-overview-table td.name-col{text-align:left;font-weight:700;font-size:.8rem}
.att-overview-table tr.group-row-hdr td{background:#f5f5f5;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:4px 10px;text-align:left}
.att-overview-table tr.week-hdr-row th{background:#2a0d5e;color:rgba(255,255,255,.9);font-size:.65rem;letter-spacing:.6px;border-right:2px solid var(--black)}
.att-overview-table tr.day-type-row td{background:#f0f0f0;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:#555;padding:3px 6px}
.att-overview-table tr.stat-row td{background:#fafbff;font-size:.73rem;color:var(--text)}
.att-overview-table tr.stat-row td.name-col{font-weight:700;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.4px;text-align:left}
.att-overview-table tr.stat-row td.logged{color:var(--brand-dark);font-weight:700}
.att-overview-table tr.stat-row td.unlogged{color:#ccc}
.att-overview-table tr.yards-row td{font-size:.72rem;font-weight:700}
.att-overview-table tr.yards-row td.name-col{font-weight:700;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.4px;text-align:left}
.att-overview-table tr.yards-g1 td{background:#f0fdf4;color:#15803d}
.att-overview-table tr.yards-g2 td{background:#eff6ff;color:#1e40af}
.att-overview-table tr.yards-g3 td{background:#fdf4ff;color:#7e22ce}
.att-overview-table tr.yards-g4 td{background:#fff7ed;color:#c2410c}
.att-overview-table tr.yards-row td.name-col{background:#fff}
.att-overview-table tr.stat-divider td{height:2px;background:var(--border);padding:0}
.att-overview-table th.week-sep{border-left:2px solid #555}
.att-overview-table td.week-sep{border-left:2px solid #e8e8e8}
.att-cell-yes{color:#15803d;font-size:.85rem}
.att-cell-no{color:#dc2626;font-size:.85rem;opacity:.7}
.att-cell-blank{color:#ccc;font-size:.8rem}

/* ── ADMIN NEW TABS ───────────────────────── */
.players-table{width:100%;border-collapse:collapse;font-size:.82rem}
.players-table th{background:var(--black);color:#fff;padding:8px 10px;text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.4px}
.players-table td{padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
.players-table tr:hover td{background:#fafafa}
.players-table .player-group-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.7rem;font-weight:800}
.players-table .pgb-1{background:#e8f4fd;color:#1e40af}
.players-table .pgb-2{background:#fef3c7;color:#92400e}
.players-table .pgb-3{background:#fee2e2;color:#b91c1c}
.players-table .pgb-4{background:#fef9c3;color:#78350f}
.players-table .pgb-none{background:#f0f0f0;color:#666}
.group-kanban{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:4px}
@media(max-width:700px){.group-kanban{grid-template-columns:repeat(2,1fr)}}
.kanban-col{background:#f7f7f9;border-radius:10px;padding:10px 8px;min-height:160px;transition:background .15s,box-shadow .15s;border:2px solid transparent}
.kanban-col.drag-over{background:#ede9fb;border-color:var(--brand);box-shadow:0 0 0 2px rgba(124,58,237,.15)}
.kanban-col-hdr{font-size:.72rem;font-weight:800;text-align:center;padding:5px 6px;border-radius:6px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.4px}
.kanban-col-hdr.pgb-1{background:#e8f4fd;color:#1e40af}
.kanban-col-hdr.pgb-2{background:#fef3c7;color:#92400e}
.kanban-col-hdr.pgb-3{background:#fee2e2;color:#b91c1c}
.kanban-col-hdr.pgb-4{background:#fef9c3;color:#78350f}
.kanban-col-hdr.pgb-none{background:#f0f0f0;color:#555}
.kanban-col-sub{font-size:.68rem;font-weight:400;text-transform:none;letter-spacing:0;margin-top:1px;opacity:.8}
.kanban-card{display:flex;align-items:center;gap:7px;background:#fff;border:1.5px solid var(--border);border-radius:7px;padding:7px 9px;margin-bottom:6px;cursor:grab;user-select:none;font-size:.82rem;transition:box-shadow .12s,opacity .12s}
.kanban-card:hover{box-shadow:0 2px 6px rgba(0,0,0,.1);border-color:#bbb}
.kanban-card.dragging{opacity:.35;cursor:grabbing}
.drag-handle{flex-shrink:0;cursor:grab;opacity:.6;padding:0 2px;display:flex;align-items:center}
.drag-handle:hover{opacity:1}
.kanban-card-name{font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kanban-card-time{font-size:.72rem;color:var(--muted);flex-shrink:0}
.kanban-done-btn{margin-bottom:12px}
.sessions-admin-list{display:flex;flex-direction:column;gap:6px}
.session-admin-row{background:#fafafa;border:1px solid var(--border);border-radius:7px;padding:10px 14px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:background .15s}
.session-admin-row:hover{background:var(--brand-soft)}
.session-admin-row.completed{border-left:4px solid #16a34a}
.session-admin-detail{display:none;background:#f9f9f9;border:1px solid var(--border);border-left:4px solid var(--brand);border-radius:0 0 8px 8px;padding:16px;margin-top:-4px;margin-bottom:8px}
.session-admin-detail.open{display:block}
.coaches-table{width:100%;border-collapse:collapse;font-size:.82rem}
.coaches-table th{background:var(--black);color:#fff;padding:8px 10px;text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.4px}
.coaches-table td{padding:7px 10px;border-bottom:1px solid var(--border)}
.coaches-table tr:hover td{background:#fafafa}
.add-coach-form{background:#fafafa;border:1px solid var(--border);border-radius:8px;padding:16px;margin-top:16px}
.admin-att-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin-top:8px}
.admin-att-item{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:.8rem}
.admin-att-item input[type=checkbox]{accent-color:var(--brand);width:14px;height:14px}
/* Extended att edit row (with group override + note) */
.admin-att-grid-ext{display:flex;flex-direction:column;gap:5px;margin-top:8px}
.admin-att-item-ext{display:grid;grid-template-columns:20px 1fr auto auto;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:.8rem}
.admin-att-item-ext input[type=checkbox]{accent-color:var(--brand);width:14px;height:14px}
.att-grp-sel{border:1px solid var(--border);border-radius:5px;padding:3px 6px;font-size:.75rem;font-family:inherit;max-width:100px;cursor:pointer}
.att-note-inp{border:1px solid var(--border);border-radius:5px;padding:3px 7px;font-size:.72rem;font-family:inherit;width:120px;color:#444}
.att-grp-sel:focus,.att-note-inp:focus{outline:none;border-color:var(--brand)}
.att-grp-badge{display:inline-block;font-size:.65rem;font-weight:800;padding:1px 6px;border-radius:999px;margin-left:5px;background:#fef3c7;color:#92400e;vertical-align:middle}
.att-note-disp{font-size:.72rem;color:#666;font-style:italic;margin-left:4px}



/* ===================== GAMETRACKER ===================== */
#gt-root{min-height:60vh}
.gt-wrap{max-width:1100px;margin:0 auto;padding:24px 16px 60px}
.gt-topnav{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:22px}
.gt-topnav a{font-size:.86rem;font-weight:600;text-transform:none;letter-spacing:0;padding:8px 15px;border-radius:999px;border:1px solid var(--border-strong);background:#fff;color:var(--ink-2)}
.gt-topnav a.active{border-color:var(--brand);background:var(--brand);color:#fff}
.gt-topnav a:hover:not(.active){border-color:#bbb;color:var(--text)}
.gt-title{font-size:1.5rem;font-weight:800;text-transform:none;letter-spacing:-.015em;margin-bottom:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gt-sub{font-size:.85rem;color:var(--muted);margin-bottom:20px}
.gt-lock{background:#fef3c7;border:1px solid #fcd34d;border-radius:10px;padding:12px 16px;margin-bottom:18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.85rem}
.gt-lock input{border:2px solid var(--border);border-radius:6px;padding:7px 10px;font-size:.9rem;width:90px;font-family:inherit}
.gt-lock button{background:var(--brand);color:#fff;border:none;padding:7px 14px;border-radius:6px;font-weight:700;font-size:.82rem}
.gt-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px;margin-bottom:16px}
.gt-bigbtns{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:28px}
.gt-bigbtn{background:#fff;border:1px solid var(--border);border-radius:var(--card-radius);padding:22px 20px;text-align:left;display:block;color:var(--text);transition:transform .15s,box-shadow .15s,border-color .15s;cursor:pointer;font-family:inherit;width:100%}
.gt-bigbtn:hover{border-color:var(--brand);box-shadow:var(--shadow-card);transform:translateY(-3px)}
.gt-bigbtn .bb-icon{font-family:'Bricolage Grotesque','Hanken Grotesk',sans-serif;font-size:.92rem;font-weight:800;color:var(--brand);display:block;margin-bottom:10px;letter-spacing:.02em}
.gt-bigbtn .bb-label{font-family:'Bricolage Grotesque','Hanken Grotesk',sans-serif;font-weight:700;font-size:1.08rem;text-transform:none;letter-spacing:-.01em;display:block}
.gt-bigbtn .bb-desc{font-size:.82rem;color:var(--muted);display:block;margin-top:4px;line-height:1.45}
.gt-glist{display:flex;flex-direction:column;gap:10px}
.gt-gitem{background:#fff;border:1px solid var(--border);border-radius:9px;padding:13px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:box-shadow .15s;flex-wrap:wrap}
.gt-gitem:hover{box-shadow:0 2px 10px rgba(0,0,0,.1)}
.gt-gitem .gi-score{font-weight:900;font-size:1.05rem;white-space:nowrap}
.gt-gitem .gi-teams{flex:1;min-width:140px;font-weight:700;font-size:.9rem}
.gt-gitem .gi-meta{font-size:.75rem;color:var(--muted)}
.gt-status-pill{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;border-radius:999px;white-space:nowrap}
.gt-st-live{background:#dcfce7;color:#15803d;animation:gtpulse 1.6s infinite}
.gt-st-paused{background:#fef3c7;color:#92400e}
.gt-st-setup{background:#dbeafe;color:#1e40af}
.gt-st-complete{background:#f0f0f0;color:#666}
@keyframes gtpulse{0%,100%{opacity:1}50%{opacity:.55}}
.gt-result-w{color:#15803d;font-weight:900}.gt-result-l{color:#b91c1c;font-weight:900}.gt-result-d{color:#92400e;font-weight:900}
/* steps */
.gt-steps{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap}
.gt-step{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:6px 12px;border-radius:999px;background:#f0f0f0;color:#999}
.gt-step.done{background:#dcfce7;color:#15803d}
.gt-step.cur{background:var(--brand);color:#fff}
.gt-avail-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid #f0f0f0;flex-wrap:wrap}
.gt-avail-row:last-child{border-bottom:none}
.gt-avail-name{flex:1;font-weight:700;font-size:.9rem;min-width:130px}
.gt-avail-toggle{display:flex;gap:6px}
.gt-avail-toggle button{border:2px solid var(--border);background:#fff;border-radius:999px;padding:5px 13px;font-size:.78rem;font-weight:700;color:var(--muted)}
.gt-avail-toggle button.on-yes{border-color:#16a34a;background:#dcfce7;color:#15803d}
.gt-avail-toggle button.on-no{border-color:#dc2626;background:#fee2e2;color:#991b1b}
.gt-avail-note{width:100%;border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:.8rem;font-family:inherit}
/* clock bar */
.gt-clockbar{background:var(--black);color:#fff;border-radius:14px;padding:18px 16px 16px;margin-bottom:18px;text-align:center;position:sticky;top:calc(var(--hdr-h,62px) + 4px);z-index:250;box-shadow:0 4px 18px rgba(0,0,0,.35)}
.gt-period{font-size:.85rem;font-weight:800;text-transform:uppercase;letter-spacing:2px;color:var(--brand-on-dark);margin-bottom:2px}
.gt-clock{font-size:3.2rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1.05}
.gt-scoreline{font-size:1.05rem;font-weight:800;margin-top:4px;display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}
.gt-scoreline .sc-num{font-size:1.5rem;font-weight:900;color:#fff}
.gt-scoreline .sc-team{color:#bbb;font-size:.85rem;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gt-clock-controls{display:flex;justify-content:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.gt-cbtn{border:none;border-radius:8px;padding:10px 18px;font-size:.85rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;font-family:inherit}
.gt-cbtn-go{background:#16a34a;color:#fff}
.gt-cbtn-warn{background:#d97706;color:#fff}
.gt-cbtn-dark{background:#333;color:#fff;border:1px solid #555}
.gt-cbtn-danger{background:#dc2626;color:#fff}
/* player grid */
.gt-pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:10px;margin-bottom:24px}
.gt-pcard{background:#fff;border:2px solid var(--border);border-radius:10px;padding:10px 8px;text-align:center;cursor:pointer;transition:all .12s;min-height:94px;position:relative;font-family:inherit;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
.gt-pcard:active{transform:scale(.96)}
.gt-pcard:hover{border-color:var(--brand)}
.gt-pcard .pc-num{font-size:1.25rem;font-weight:900;color:var(--brand);line-height:1}
.gt-pcard .pc-name{font-size:.95rem;font-weight:800;margin-top:4px;line-height:1.15;word-break:break-word}
.gt-pcard .pc-pos{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-top:2px}
.gt-pcard.gk{border-color:#d97706;background:#fffbeb}
.gt-pcard.gk .pc-num{color:#d97706}
.gt-pcard.off{opacity:.4;background:#f5f5f5}
.gt-pcard .pc-badges{display:flex;justify-content:center;gap:3px;margin-top:5px;flex-wrap:wrap;min-height:16px}
.gt-pbadge{font-size:.64rem;font-weight:800;background:var(--brand-soft);color:var(--brand);border-radius:999px;padding:1px 6px}
.gt-pbadge.card-y{background:#fef9c3;color:#854d0e}
.gt-pbadge.card-r{background:#fee2e2;color:#b91c1c}
/* event feed */
.gt-feed{display:flex;flex-direction:column;gap:6px}
.gt-fitem{background:#fff;border:1px solid var(--border);border-radius:8px;padding:10px 13px;font-size:.85rem;cursor:pointer}
.gt-fitem .fi-min{font-weight:900;color:var(--brand);font-variant-numeric:tabular-nums;margin-right:8px}
.gt-et-badge{font-size:.72rem;font-weight:800;color:#c05500;background:#fff3e0;border-radius:4px;padding:1px 5px;margin-left:4px;vertical-align:middle}
.gt-fitem .fi-note{color:var(--muted);font-size:.78rem}
.gt-fitem .fi-actions{display:none;margin-top:8px;gap:8px}
.gt-fitem.open .fi-actions{display:flex;flex-wrap:wrap}
.gt-period-marker{text-align:center;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);padding:6px 0}
/* event modal */
.gt-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1100;align-items:flex-end;justify-content:center;overflow-y:auto}
.gt-modal-overlay.open{display:flex}
.gt-modal{background:#fff;border-radius:16px 16px 0 0;width:100%;max-width:560px;box-shadow:0 -4px 30px rgba(0,0,0,.3);padding:20px 18px 26px;margin-top:auto}
@media(min-width:640px){.gt-modal-overlay{align-items:center;padding:20px}.gt-modal{border-radius:14px;margin:auto}}
.gt-modal h3{font-size:1.05rem;font-weight:900;display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.gt-modal .gm-close{background:none;border:none;font-size:1.3rem;color:#999;padding:0 4px}
.gt-modal .gm-clock{font-size:.82rem;color:var(--muted);margin-bottom:12px}
.gt-evtypes{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;margin-bottom:14px}
.gt-evtype{border:2px solid var(--border);background:#fff;border-radius:9px;padding:11px 6px;font-size:.78rem;font-weight:800;text-align:center;font-family:inherit;color:var(--text)}
.gt-evtype .et-emoji{display:block;font-size:1.25rem;margin-bottom:2px}
.gt-evtype.sel{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.gt-modal label{display:block;font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:10px 0 4px}
.gt-modal input[type=text],.gt-modal input[type=tel],.gt-modal input[type=number],.gt-modal input[type=date],.gt-modal select,.gt-modal textarea{width:100%;border:2px solid var(--border);border-radius:7px;padding:9px 11px;font-size:.92rem;font-family:inherit}
.gt-modal textarea{min-height:60px;resize:vertical}
.gt-modal .gm-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gt-modal .gm-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.gt-autocomplete-list{position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid var(--brand);border-top:none;border-radius:0 0 8px 8px;z-index:9999;max-height:220px;overflow-y:auto;display:none;box-shadow:0 6px 16px rgba(0,0,0,.12)}
.gt-autocomplete-item{padding:9px 12px;cursor:pointer;font-size:.84rem;border-bottom:1px solid var(--border);transition:background .1s}
.gt-autocomplete-item:last-child{border-bottom:none}
.gt-autocomplete-item:hover,.gt-autocomplete-item.gt-ac-active{background:var(--brand-soft);color:var(--brand)}
.gt-autocomplete-item .gt-ac-sub{font-size:.72rem;color:var(--muted);margin-top:2px}
.gt-override-row{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:.8rem}
.gt-override-row input[type=text]{width:80px}
/* tables */
.gt-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--border);border-radius:10px}
.gt-table{width:100%;border-collapse:collapse;font-size:.83rem;min-width:560px}
.gt-table th{background:var(--black);color:#fff;padding:9px 10px;text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;cursor:pointer;user-select:none}
.gt-table th.sorted{color:var(--brand-on-dark)}
.gt-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
.gt-table tr:last-child td{border-bottom:none}
.gt-table tbody tr:hover td{background:#fafafa}
.gt-table .num{text-align:center}
.gt-table th.num{text-align:center}
.gt-plink{color:var(--brand);font-weight:700;cursor:pointer;text-decoration:underline}
.gt-guest-badge{font-size:.64rem;font-weight:800;background:#e0f2fe;color:#075985;border-radius:999px;padding:2px 7px;margin-left:5px;text-transform:uppercase}
.gt-gk-badge{font-size:.64rem;font-weight:800;background:#fef3c7;color:#92400e;border-radius:999px;padding:2px 7px;margin-left:5px;text-transform:uppercase}
.gt-yt-thumb{display:inline-flex;align-items:center;gap:6px;background:#fee2e2;color:#b91c1c;font-size:.74rem;font-weight:800;border-radius:6px;padding:3px 8px;margin-top:6px}
.gt-yt-thumb img{height:28px;border-radius:4px;display:block}
/* roster manager */
.gt-roster-card{border:2px solid var(--border);border-radius:10px;padding:14px 16px;background:#fff;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.gt-roster-card.active-roster{border-color:#16a34a}
.gt-roster-card .rc-name{font-weight:800;font-size:.95rem;flex:1;min-width:150px}
.gt-active-badge{font-size:.66rem;font-weight:800;background:#dcfce7;color:#15803d;border-radius:999px;padding:3px 9px;text-transform:uppercase}
.gt-archived-badge{font-size:.66rem;font-weight:800;background:#f0f0f0;color:#888;border-radius:999px;padding:3px 9px;text-transform:uppercase}
.gt-minibtn{display:inline-flex;align-items:center;justify-content:center;gap:5px;text-align:center;text-decoration:none;cursor:pointer;border:1px solid var(--border);background:#fff;border-radius:6px;padding:5px 11px;font-size:.74rem;font-weight:700;color:var(--text);font-family:inherit}
.gt-minibtn:hover{border-color:var(--brand);color:var(--brand)}
.gt-minibtn.danger{color:#b91c1c;border-color:#fca5a5}
.gt-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.gt-filters input[type=date],.gt-filters input[type=text],.gt-filters select{border:2px solid var(--border);border-radius:999px;padding:5px 12px;font-size:.8rem;font-family:inherit;background:#fff}
.gt-checkrow{display:flex;align-items:center;gap:7px;font-size:.82rem;font-weight:600}
.gt-stat-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px;margin-bottom:20px}
.gt-stat-box{background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px 8px;text-align:center}
.gt-stat-box .sb-num{font-size:1.5rem;font-weight:900;color:var(--brand)}
.gt-stat-box .sb-label{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.gt-empty{text-align:center;color:var(--muted);padding:30px 16px;font-size:.88rem;background:#fff;border:1px dashed var(--border);border-radius:10px}
@media(max-width:600px){
  .gt-clockbar{top:calc(var(--hdr-h,56px) + 4px);border-radius:10px}
  .gt-clock{font-size:2.6rem}
  .gt-pgrid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
}

.nav-gt{color:var(--ink-2)!important;background:transparent!important;border:none;box-shadow:none;border-radius:9px;padding:8px 13px;font-weight:500}
.nav-gt:hover{color:var(--text)!important;background:#F2F1F5!important}
nav a.nav-active,nav a.nav-gt.nav-active{color:#fff!important;background:var(--brand)!important;font-weight:700;box-shadow:0 8px 18px -10px var(--brand)}
nav a.nav-active:hover{color:#fff!important;background:var(--brand)!important;filter:brightness(.94)}


/* GameTracker: starting-XI highlight (tap-to-toggle in setup) */
.gt-pcard.starter{border-color:#16a34a;background:rgba(22,163,74,.12)}
.gt-pcard.starter .pc-pos{color:#15803d;font-weight:800}

/* GameTracker: persistent Starting XI line (live + review) */
.gt-xi{background:var(--brand-soft);border:1px solid rgba(90,63,214,.25);border-radius:8px;padding:10px 12px;margin:0 0 16px;font-size:.84rem;line-height:1.95}
.gt-xi-label{font-weight:800;text-transform:uppercase;font-size:.72rem;letter-spacing:1px;color:var(--brand);margin-right:6px}
.gt-xi-item{display:inline-block;margin:0 10px 4px 0;white-space:nowrap}
.gt-xi-pos{font-weight:800;color:var(--brand);font-size:.74rem}

.gt-addlist{display:flex;flex-wrap:wrap;margin:4px 0 6px}
.gt-onfield{display:inline-block;font-size:.72rem;font-weight:800;border-radius:999px;padding:2px 9px;vertical-align:middle;margin-left:2px}
.gt-onfield.ok{background:rgba(22,163,74,.14);color:#15803d}
.gt-onfield.under{background:#fef9c3;color:#854d0e}
.gt-onfield.over{background:#fee2e2;color:#b91c1c}
#offline-banner{position:fixed;top:0;left:0;right:0;z-index:9999;background:#b45309;color:#fff;font-size:.82rem;font-weight:700;text-align:center;padding:7px 12px;display:none;box-shadow:0 2px 8px rgba(0,0,0,.25)}
#offline-banner.show{display:block}
.gt-chat-del{float:right;background:none;border:none;cursor:pointer;font-size:.78rem;opacity:.45;padding:0 2px;line-height:1.4}
.gt-chat-del:hover{opacity:1}
/* Schedule filter chips */
.sched-filters{display:flex;flex-wrap:wrap;margin-bottom:14px}
.sched-chip{border:1px solid var(--border);background:#fff;border-radius:20px;padding:5px 14px;font-size:.8rem;font-weight:700;cursor:pointer;margin:0 6px 8px 0}
.sched-chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.sched-team{margin:0 0 8px 6px;border:1px solid var(--border);border-radius:20px;padding:5px 12px;font-size:.8rem;font-weight:700;background:#fff;cursor:pointer;color:var(--text)}

/* Sortable table headers — pointer affordance */
.gt-table th[onclick]{cursor:pointer;user-select:none}

/* Press-and-hold feedback (pause button) */
.gt-cbtn.holding{opacity:.55;transform:scale(.95);transition:opacity .15s,transform .15s}

/* Game chat */
.gt-chat{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:14px 0;background:#fff}
.gt-chat-head{font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;color:var(--brand);margin-bottom:8px}
.gt-chat-msgs{max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:7px;margin-bottom:8px}
.gt-chat-empty{font-size:.8rem;color:var(--muted);padding:4px}
.gt-chat-msg{font-size:.86rem;line-height:1.3}
.gt-chat-msg .cm-name{font-weight:800;color:var(--brand)}
.gt-chat-msg .cm-time{font-size:.68rem;color:var(--muted);margin-left:6px}
.gt-chat-bar{display:flex;gap:8px}
.gt-chat-bar input{flex:1;border:2px solid var(--border);border-radius:7px;padding:8px 10px;font-family:inherit}
.gt-chat-as{font-size:.7rem;color:var(--muted);margin-top:5px}
.gt-chat-as a{cursor:pointer;color:var(--brand);font-weight:700}

/* GameTracker: man-down banner */
.gt-mandown-bar{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.gt-mandown{font-size:.74rem;font-weight:700;padding:3px 11px;border-radius:999px;background:#fee2e2;color:#991b1b}

/* GameTracker: penalty shootout */
.gt-pk{background:#fff;border:1px solid var(--border);border-radius:var(--card-radius);padding:16px 18px;margin:14px 0}
.gt-pk-head{font-family:'Bricolage Grotesque','Hanken Grotesk',sans-serif;font-weight:800;font-size:1.1rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.gt-pk-score{color:var(--brand)}
.gt-pk-row{display:flex;align-items:center;gap:10px;margin:8px 0 2px}
.gt-pk-row .pk-team{min-width:96px;font-weight:700;font-size:.86rem}
.pk-marks{display:flex;gap:6px;flex-wrap:wrap}
.pk-mk{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;font-size:.78rem;font-weight:800;border:2px solid var(--border-strong);background:#fff;color:#dc2626;box-sizing:border-box}
.pk-mk.goal{background:#16a34a;border-color:#16a34a}
.pk-mk.miss{border-color:#dc2626;color:#dc2626}
.pk-mk.empty{border-style:dashed;border-color:var(--border-strong)}
.gt-pk-log{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:.78rem;color:var(--muted);margin:2px 0 6px 106px}
.gt-pk-controls{display:flex;gap:10px;flex-wrap:wrap}
.gt-pk-hint{font-size:.76rem;color:var(--muted);margin-top:8px}
.gt-pk-pchips{display:flex;flex-wrap:wrap;gap:8px}
.gt-pk-pchip{border:1px solid var(--border-strong);background:#fff;border-radius:10px;padding:9px 13px;font-weight:600;font-size:.85rem;cursor:pointer}
.gt-pk-pchip:hover{border-color:var(--brand);background:var(--brand-soft)}

/* GameTracker: disabled control buttons (e.g. PK turn enforcement) */
.gt-cbtn:disabled{opacity:.38;cursor:not-allowed;filter:grayscale(.3)}

/* GameTracker: RSVP / availability */
.rsvp-idbox{background:#fff;border:1px solid var(--border);border-radius:var(--card-radius);padding:14px 16px;margin-bottom:16px}
.rsvp-idlabel{font-weight:700;font-size:.9rem;margin-bottom:8px}
.rsvp-idchips{display:flex;flex-wrap:wrap;gap:8px}
.rsvp-idchip{border:1px solid var(--border-strong);background:#fff;border-radius:999px;padding:7px 13px;font-size:.84rem;font-weight:600;cursor:pointer}
.rsvp-idchip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.rsvp-idhint{font-size:.78rem;color:var(--muted);margin-top:8px}
.rsvp-card{background:#fff;border:1px solid var(--border);border-radius:var(--card-radius);padding:14px 16px;margin-bottom:14px}
.rsvp-ghead{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.rsvp-gteams{font-family:'Bricolage Grotesque','Hanken Grotesk',sans-serif;font-weight:700;font-size:1.05rem}
.rsvp-gmeta{font-size:.8rem;color:var(--muted);margin:2px 0 8px}
.rsvp-tally{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;align-items:center}
.rsvp-locked{font-size:.74rem;color:var(--muted)}
.rsvp-b{font-size:.74rem;font-weight:800;padding:2px 9px;border-radius:999px}
.rsvp-b.in{background:#E7F5EE;color:#177A4E}
.rsvp-b.maybe{background:#FBF1E3;color:#9A6A1E}
.rsvp-b.out{background:#fee2e2;color:#991b1b}
.rsvp-b.none{background:#f0f0f3;color:#8A8993}
.rsvp-rows{display:flex;flex-direction:column;gap:6px}
.rsvp-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 8px;border-radius:9px}
.rsvp-row.mine{background:var(--accent-soft)}
.rsvp-name{flex:1;min-width:120px;font-size:.88rem}
.rsvp-you{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--brand);background:#fff;border:1px solid var(--brand);border-radius:999px;padding:1px 6px;margin-left:4px}
.rsvp-toggle{display:inline-flex;border:1px solid var(--border-strong);border-radius:8px;overflow:hidden}
.rsvp-toggle button{border:none;background:#fff;padding:6px 12px;font-size:.8rem;font-weight:700;cursor:pointer;border-left:1px solid var(--border)}
.rsvp-toggle button:first-child{border-left:none}
.rsvp-toggle button.on-in{background:#177A4E;color:#fff}
.rsvp-toggle button.on-maybe{background:#9A6A1E;color:#fff}
.rsvp-toggle button.on-out{background:#991b1b;color:#fff}
.rsvp-note{border:1px solid var(--border-strong);border-radius:8px;padding:5px 9px;font-size:.8rem;font-family:inherit;flex:1;min-width:140px}
.rsvp-noteshow{font-size:.78rem;color:var(--muted)}

/* RSVP coach remove/restore */
.rsvp-x{border:none;background:transparent;color:#c0392b;font-weight:800;font-size:.9rem;cursor:pointer;padding:2px 6px;border-radius:6px}
.rsvp-x:hover{background:#fee2e2}
.rsvp-removed{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rsvp-removed-lbl{width:100%;font-size:.74rem;font-weight:700;color:var(--muted)}

/* Schedule: inline RSVP link */
.sched-rsvp{display:inline-block;margin-top:5px;font-size:.74rem;font-weight:700;color:var(--brand);background:var(--accent-soft);padding:2px 9px;border-radius:999px}

/* Schedule: canceled events */
.event-item.canceled{opacity:.75}
.event-item.canceled .evn-text{text-decoration:line-through;color:var(--muted)}
.cancel-badge{display:inline-block;background:#fee2e2;color:#991b1b;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:999px;margin-left:8px;vertical-align:middle}
.sched-cancel{display:inline-block;margin-top:5px;font-size:.72rem;font-weight:700;color:#991b1b;background:none;border:1px solid var(--border-strong);border-radius:999px;padding:2px 10px;cursor:pointer}
.sched-cancel:hover{background:#fee2e2;border-color:#991b1b}

/* GameTracker: canceled state */
.gt-st-canceled{background:#fee2e2;color:#991b1b}
.gt-gitem.canceled .gi-teams{text-decoration:line-through;color:var(--muted)}
.gt-cancel-banner{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;border-radius:12px;padding:10px 14px;font-weight:800;margin-bottom:14px;text-align:center}

/* Conditioning: canceled sessions/camps */
.cond-canceled{opacity:.72}
.cond-canceled .cond-date,.cond-canceled .cond-camp-name{text-decoration:line-through;color:var(--muted)}
.cond-cancel-badge{display:inline-block;background:#fee2e2;color:#991b1b;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:999px;margin:4px 0}
.cond-canceled .cond-signup-btn{display:none}

/* Announcement comments */
.ann-ctoggle{margin-top:10px;background:none;border:1px solid var(--border-strong);border-radius:999px;padding:4px 12px;font-size:.76rem;font-weight:700;color:var(--brand);cursor:pointer}
.ann-ctoggle:hover{background:var(--accent-soft)}
.ann-comments{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.ann-comment{background:var(--gray);border-radius:10px;padding:8px 12px;margin-bottom:8px}
.ac-head{display:flex;align-items:center;gap:8px}
.ac-name{font-weight:800;font-size:.82rem}
.ac-time{font-size:.7rem;color:var(--muted)}
.ac-del{margin-left:auto;border:none;background:none;cursor:pointer;font-size:.78rem;opacity:.6}
.ac-del:hover{opacity:1}
.ac-text{font-size:.86rem;line-height:1.5;margin-top:2px;white-space:pre-wrap}
.ac-empty{font-size:.82rem;color:var(--muted);margin-bottom:8px}
.ann-cform{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.ann-cform input,.ann-cform textarea{border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:.86rem;width:100%}
.ann-cform button{align-self:flex-start;padding:7px 16px;font-size:.82rem}

/* Discussions board */
.disc-bar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.disc-sorts{display:flex;gap:6px;margin-right:auto}
.disc-sort{border:1px solid var(--border-strong);background:#fff;border-radius:999px;padding:5px 13px;font-size:.8rem;font-weight:700;cursor:pointer}
.disc-sort.active{background:var(--brand);border-color:var(--brand);color:#fff}
.disc-list{display:flex;flex-direction:column;gap:10px}
.disc-card,.disc-post{display:flex;gap:12px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px 14px}
.disc-card:hover{box-shadow:var(--shadow-card)}
.disc-post{margin-bottom:14px}
.disc-vote{display:flex;flex-direction:column;align-items:center;min-width:38px}
.disc-up{border:1px solid var(--border-strong);background:#fff;border-radius:8px;padding:2px 7px;font-size:.8rem;color:var(--muted);cursor:pointer;line-height:1.2}
.disc-up.on{background:var(--brand);border-color:var(--brand);color:#fff}
.disc-up.sm{padding:1px 7px;font-size:.7rem;margin-left:6px}
.disc-score{font-weight:800;font-size:.9rem;margin-top:3px}
.disc-main{flex:1;min-width:0}
.disc-title{font-family:'Bricolage Grotesque','Hanken Grotesk',sans-serif;font-weight:700;font-size:1.02rem;color:var(--text);display:block}
.disc-title:hover{color:var(--brand)}
.disc-ptitle{font-family:'Bricolage Grotesque','Hanken Grotesk',sans-serif;font-weight:800;font-size:1.25rem;margin-bottom:2px}
.disc-meta{font-size:.75rem;color:var(--muted);margin-top:3px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.disc-body{font-size:.9rem;line-height:1.55;margin-top:10px;white-space:pre-wrap}
.disc-back{display:inline-block;font-size:.8rem;font-weight:700;color:var(--brand);margin-bottom:12px}
.disc-form{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px 14px;margin-bottom:14px}
.disc-form input,.disc-form textarea{border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:.88rem;width:100%}
.disc-form button{align-self:flex-start;padding:7px 16px;font-size:.84rem}
.disc-comments{display:flex;flex-direction:column;gap:10px}
.disc-comment{background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 13px}
.disc-comment.reply{background:var(--gray);border:none;margin-top:8px}
.dc-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dc-author{font-weight:800;font-size:.84rem}
.dc-time{font-size:.7rem;color:var(--muted)}
.dc-text{font-size:.88rem;line-height:1.5;margin-top:3px;white-space:pre-wrap}
.dc-reply{border:none;background:none;color:var(--brand);font-weight:700;font-size:.76rem;cursor:pointer;padding:6px 0 0}
.dc-replies{margin-left:16px;border-left:2px solid var(--border);padding-left:12px}
.disc-del{border:none;background:none;cursor:pointer;font-size:.74rem;color:#991b1b;opacity:.75}
.disc-del:hover{opacity:1}
.disc-none{font-size:.85rem;color:var(--muted);padding:6px 0}
.disc-link{border:none;background:none;cursor:pointer;font-size:.74rem;font-weight:700;color:var(--brand);opacity:.85;padding:0}
.disc-link:hover{opacity:1;text-decoration:underline}

/* FC Delco conflicts + club events */
.t-card.conflict{border-color:#dc2626;background:#fef2f2}
.t-conflict{background:#fee2e2;color:#991b1b;font-size:.72rem;font-weight:800;padding:5px 10px;border-radius:8px;margin-top:8px;line-height:1.4}
.confirmed-card.fcdelco .cc-head{background:linear-gradient(135deg,#991b1b,#7f1d1d)}
.fc-badge{display:inline-block;background:rgba(255,255,255,.25);color:#fff;font-size:.6rem;font-weight:800;letter-spacing:.5px;padding:2px 7px;border-radius:999px;margin-left:6px;vertical-align:middle}
.ts-badge{display:inline-block;background:#fee2e2;color:#991b1b;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:2px 7px;border-radius:999px;margin-left:6px;vertical-align:middle}
.type-tournament{background:#b45309;color:#fff}
.type-friendly{background:#0f766e;color:#fff}
.gt-src-badge{display:inline-block;background:var(--accent-soft);color:var(--brand);font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:2px 7px;border-radius:999px;margin-left:6px;vertical-align:middle}
/* Knockout round checkboxes (game setup) */
.gt-round-checks{display:flex;gap:8px;flex-wrap:wrap}
.gt-round-check{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);border-radius:10px;padding:8px 12px;font-size:.86rem;font-weight:600;cursor:pointer}
.gt-round-check.on{background:var(--accent-soft);border-color:var(--brand);color:var(--brand-dark)}
.gt-round-check input{width:16px;height:16px}

/* Knockout round badge on game list items */
.gt-status-pill.gt-st-round{background:var(--brand-tint);color:var(--brand);border:1px solid var(--brand-line);font-weight:700;text-transform:uppercase;letter-spacing:.02em;}

/* Click-to-edit schedule cards (staff) */
.event-item.editable{cursor:pointer;transition:box-shadow .12s,border-color .12s;}
.event-item.editable:hover{box-shadow:0 2px 10px rgba(90,63,214,.12);border-color:var(--brand-line);}
.sched-edit{display:inline-block;margin-top:8px;margin-right:8px;padding:4px 10px;font-size:.78rem;font-weight:700;color:var(--brand);background:var(--brand-tint);border:1px solid var(--brand-line);border-radius:8px;cursor:pointer;}
.sched-edit:hover{background:var(--brand-tint-2);}

/* Knockout round badge on the Schedule page */
.sd-tags{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 14px}
.sd-rows{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.sd-row{display:flex;gap:10px;font-size:.9rem;align-items:baseline}
.sd-k{flex:0 0 88px;font-weight:800;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}
.sd-v{flex:1;color:var(--text)}
.sd-v a{color:var(--brand);font-weight:700}
.season-badge{display:inline-block;margin-left:6px;padding:1px 8px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#065f46;background:#d1fae5;border:1px solid #6ee7b7;border-radius:999px;vertical-align:middle;}
.round-badge{display:inline-block;margin-left:6px;padding:1px 8px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--brand);background:var(--brand-tint);border:1px solid var(--brand-line);border-radius:999px;vertical-align:middle;}

/* "Full game details" (promote to GameTracker) button on schedule cards */
.sched-fulledit{display:inline-block;margin-top:8px;margin-right:8px;padding:4px 10px;font-size:.78rem;font-weight:700;color:#fff;background:var(--brand);border:1px solid var(--brand);border-radius:8px;cursor:pointer;}
.sched-fulledit:hover{background:var(--brand-dark);}

/* Compact dropdown identity picker on Availability */
.rsvp-idselect{margin-top:4px;width:100%;max-width:340px;padding:9px 12px;font-size:.9rem;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);cursor:pointer;}
.rsvp-idx{opacity:.6;font-size:.7rem;margin-left:2px;}

/* Collapsible availability cards */
.rsvp-ghead.rsvp-clickable{cursor:pointer;align-items:center;}
.rsvp-chev{display:inline-flex;align-items:center;gap:4px;margin-right:10px;padding:4px 12px;color:#fff;background:var(--brand);border:1px solid var(--brand);border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.01em;white-space:nowrap;}
.rsvp-chev.open{background:var(--brand-tint);color:var(--brand);}
.rsvp-ghead.rsvp-clickable:hover .rsvp-chev{filter:brightness(.95);}
.rsvp-card.collapsed{padding-bottom:12px;}
.rsvp-card.collapsed .rsvp-tally{margin-bottom:0;}
.rsvp-expand-hint{font-size:.72rem;color:var(--brand);font-weight:600;}

/* Completed-game "view stats & roster" call-to-action in the games list */
.gt-gitem.done{cursor:pointer;}
.gi-cta{flex-basis:100%;margin-top:6px;font-size:.78rem;font-weight:700;color:var(--brand);}
.gt-gitem.done:hover .gi-cta{text-decoration:underline;}

/* Tournament result badges & banner */
.gt-status-pill.tb-champion{background:#FEF3C7;color:#92400E;border:1px solid #FCD34D;font-weight:800;}
.gt-status-pill.tb-finalist{background:#E5E7EB;color:#374151;border:1px solid #D1D5DB;font-weight:800;}
.gt-status-pill.tb-semifinalist{background:#FDE8D7;color:#9A3412;border:1px solid #FBBF77;font-weight:800;}
.gt-tourn-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 4px;padding:14px 18px;border-radius:12px;font-weight:800;}
.gt-tourn-banner .gtb-title{font-size:1.15rem;}
.gt-tourn-banner .gtb-rec{font-size:.9rem;font-weight:700;opacity:.85;}
.gt-tourn-banner.tb-champion{background:linear-gradient(135deg,#FEF9C3,#FDE68A);color:#854D0E;border:1px solid #FCD34D;}
.gt-tourn-banner.tb-finalist{background:linear-gradient(135deg,#F3F4F6,#E5E7EB);color:#374151;border:1px solid #D1D5DB;}
.gt-tourn-banner.tb-semifinalist{background:linear-gradient(135deg,#FFEDD5,#FED7AA);color:#9A3412;border:1px solid #FDBA74;}
.gt-tourn-banner.tb-done{background:#F5F3FF;color:var(--brand);border:1px solid var(--brand-line);}

/* Result footers on the main-site confirmed tournament cards (from GameTracker) */
.confirmed-card .cc-footer.cc-champion,
.confirmed-card .cc-footer.cc-finalist,
.confirmed-card .cc-footer.cc-semifinalist,
.confirmed-card .cc-footer.cc-done{color:#fff!important;font-weight:800;border-top-color:rgba(255,255,255,.25)}
.confirmed-card .cc-footer.cc-champion{background:linear-gradient(135deg,#b45309,#92400e)!important;}
.confirmed-card .cc-footer.cc-finalist{background:#374151!important;}
.confirmed-card .cc-footer.cc-semifinalist{background:#9a3412!important;}
.confirmed-card .cc-footer.cc-done{background:var(--brand-dark)!important;}
/* Also lift text contrast on the inline-colored FC Delco / possibility footers */
.confirmed-card .cc-footer[style*="background"]{color:#fff!important;font-weight:700;border-top-color:rgba(255,255,255,.25)}

/* ===== Parent stat tracking ===== */
.gt-parent{border:1.5px solid var(--brand-line);border-radius:14px;margin:0 0 22px;overflow:hidden;background:#fff}
.gt-parent-head{background:linear-gradient(135deg,var(--brand-tint),var(--brand-tint-2));color:var(--brand-dark);font-weight:800;padding:12px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gt-parent-sub{font-size:.72rem;font-weight:600;color:#7c6bd6;text-transform:none}
.gt-parent-head{cursor:pointer}
.gt-parent-toggle{margin-left:auto;font-size:.7rem;font-weight:800;color:var(--brand);background:#fff;border:1px solid var(--brand-line);border-radius:999px;padding:3px 12px;text-transform:uppercase;letter-spacing:.03em}
.gt-parent.collapsed .gt-parent-body{display:none}
.gt-parent-body{padding:14px 16px}
.gt-parent-lbl{display:block;font-size:.78rem;font-weight:700;color:var(--muted);margin-bottom:6px}
.gt-parent-who{font-size:.82rem;color:var(--text);margin-bottom:10px}
.gt-parent-who a,.gt-parent-body a{color:var(--brand);cursor:pointer;font-weight:600}
.gt-parent-empty{font-size:.82rem;color:var(--muted);padding:8px 0}
.gt-parent-note{font-size:.74rem;color:var(--muted);margin-top:10px;line-height:1.5}
.gt-claim-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}
.gt-claim-lbl{font-size:.74rem;font-weight:700;color:var(--muted);margin-right:2px}
.gt-claim-chip{font-size:.74rem;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid var(--border-strong);background:#fff;color:var(--ink-2);cursor:pointer}
.gt-claim-chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.gt-claim-chip.conflict{border-color:#f59e0b;color:#b45309}
.gt-claim-chip.on.conflict{background:#b45309;border-color:#b45309;color:#fff}
.gt-pstat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.gt-pstat-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 4px;border:1px solid var(--border-strong);border-radius:11px;background:var(--brand-wash);cursor:pointer;transition:background .12s,border-color .12s}
.gt-pstat-btn:hover{background:var(--brand-tint);border-color:var(--brand-line)}
.gt-pstat-btn:active{background:var(--brand-tint-2)}
.gt-pstat-btn .ps-emoji{font-size:1.25rem}
.gt-pstat-btn .ps-lbl{font-size:.72rem;font-weight:700;color:var(--text)}
.gt-plog{margin-top:10px;display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto}
.gt-plog-row{display:flex;align-items:center;gap:6px;font-size:.82rem;padding:4px 6px;border-radius:7px;background:var(--brand-wash)}
.gt-plog-t{font-variant-numeric:tabular-nums;color:var(--brand);font-weight:700;font-size:.76rem}
.gt-plog-pub{font-size:.66rem;font-weight:700;color:#16a34a;background:#dcfce7;border-radius:999px;padding:1px 7px}
.gt-plog-x{margin-left:auto;border:none;background:transparent;color:#b91c1c;cursor:pointer;font-size:.8rem;padding:2px 6px;border-radius:6px}
.gt-plog-x:hover{background:#fee2e2}
.gt-share-player{border-top:1px solid var(--border);padding:10px 0}
.gt-share-player:first-child{border-top:none}
.gt-share-name{font-weight:800;margin-bottom:6px}
.gt-share-row{display:flex;align-items:center;gap:7px;font-size:.84rem;padding:3px 0;cursor:pointer}
.gt-share-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.gt-note-tag{font-size:.66rem;color:#7c6bd6;background:var(--brand-tint);border-radius:999px;padding:1px 7px;font-weight:700}
.gt-parent-badge{font-size:.66rem;font-weight:700;color:var(--brand);background:var(--brand-tint);border:1px solid var(--brand-line);border-radius:999px;padding:1px 8px;margin-left:4px}
@media (max-width:560px){.gt-pstat-grid{grid-template-columns:repeat(3,1fr)}}

/* Film session clock */
.gt-film-clockbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.gt-film-clock{font-variant-numeric:tabular-nums;font-weight:900;font-size:1.6rem;color:var(--brand-dark);min-width:78px}
.gt-film-sync{display:flex;align-items:center;gap:6px}
.gt-film-sync input{width:82px;padding:7px 10px;border:1px solid var(--border-strong);border-radius:9px;font-size:.9rem;text-align:center;font-variant-numeric:tabular-nums}
.gt-film-hint{font-size:.74rem;color:var(--muted);line-height:1.5;margin-bottom:12px}
.gt-film-tag{font-size:.62rem;font-weight:800;color:var(--brand-dark);background:var(--brand-tint);border-radius:999px;padding:1px 6px;text-transform:uppercase;letter-spacing:.03em}

/* Own-goal badge */
.gt-pbadge.card-og{background:var(--brand-tint);color:var(--brand)}

/* Home spotlight: parent stat tracking */
.home-expand-btn{display:inline-block;margin-top:14px;border:1px solid var(--brand-line);background:#fff;color:var(--brand);border-radius:999px;padding:5px 16px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}
.section-header .home-expand-btn{margin-top:0}
.home-expand-btn .he-collapse{display:none}
.home-spotlight:not(.collapsed) .home-expand-btn .he-expand,.ann-section:not(.collapsed) .home-expand-btn .he-expand{display:none}
.home-spotlight:not(.collapsed) .home-expand-btn .he-collapse,.ann-section:not(.collapsed) .home-expand-btn .he-collapse{display:inline}
.hs-tease{font-size:.95rem;color:var(--brand-ink-soft);margin:0;line-height:1.5}
.home-collapse-head{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px;background:none;border:none;padding:0;margin:0;cursor:pointer;text-align:left;color:inherit;font:inherit}
.home-collapse-head .hs-title{margin:0}
.home-collapse-body{margin-top:12px}
.home-spotlight.collapsed .home-collapse-body,.ann-section.collapsed .home-collapse-body{display:none}
.ann-section.collapsed .section-header{margin-bottom:0}
.home-chevron{transition:transform .25s;font-size:.7rem;color:var(--brand);flex:0 0 auto}
.collapsed .home-chevron{transform:rotate(-90deg)}
.home-spotlight{background:linear-gradient(135deg,var(--brand-tint),var(--brand-tint-2));border:1.5px solid var(--brand-line);border-radius:16px;padding:22px 24px;margin-bottom:20px}
.hs-badge{display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:#fff;border:1px solid var(--brand-line);border-radius:999px;padding:4px 12px;margin-bottom:12px}
.hs-title{font-size:1.42rem;font-weight:900;color:var(--brand-dark);margin:0 0 8px;line-height:1.2}
.hs-desc{font-size:.92rem;color:var(--brand-ink-soft);line-height:1.6;margin:0 0 16px;max-width:740px}
.hs-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hs-btn{display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:.94rem;padding:11px 20px;border-radius:11px;background:var(--brand);color:#fff;border:1px solid var(--brand);text-decoration:none;box-shadow:0 8px 18px -10px var(--brand)}
.hs-btn:hover{background:var(--brand-dark)}
.hs-hint{font-size:.82rem;color:var(--brand-ink-soft)}
.hs-hint strong{color:var(--brand-dark)}

/* Family accounts */
.fam-list{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.fam-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--brand-wash);border:1px solid var(--border);border-radius:9px;padding:9px 12px}
.fam-pname{font-weight:800}
.fam-badge{font-size:.72rem;font-weight:800;border-radius:999px;padding:2px 10px}
.fam-badge.ok{color:#16a34a;background:#dcfce7}
.fam-badge.pending{color:#b45309;background:#fef3c7}
.fam-row .gt-plog-x{margin-left:auto}

/* Family profile card + highlight reel */
.pf-card{display:flex;gap:16px;align-items:flex-start;background:var(--brand-wash);border:1px solid var(--brand-line);border-radius:14px;padding:16px;margin:6px 0 18px}
.pf-photo{width:84px;height:84px;border-radius:14px;object-fit:cover;flex-shrink:0;background:var(--brand-tint)}
.pf-photo.pf-ph{display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:900;color:var(--brand)}
.pf-meta{flex:1;min-width:0}
.pf-year{font-size:.78rem;font-weight:800;color:var(--brand);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}
.pf-bio{font-size:.92rem;color:var(--text);line-height:1.55;white-space:pre-wrap}
.pf-bio.pf-muted{color:var(--muted)}
.pf-reel{display:flex;gap:10px;flex-wrap:wrap}

/* Shareable player card (Phase 3) */
.pfc-wrap{max-width:520px;margin:0 auto}
.pfc-card{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden}
.pfc-head{display:flex;gap:16px;align-items:center;padding:22px;background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff}
.pfc-photo{width:92px;height:92px;border-radius:16px;object-fit:cover;flex-shrink:0;background:rgba(255,255,255,.2)}
.pfc-photo.pfc-ph{display:flex;align-items:center;justify-content:center;font-size:2.4rem;font-weight:900;color:#fff}
.pfc-id{min-width:0}
.pfc-name{font-size:1.5rem;font-weight:900;line-height:1.1}
.pfc-num{opacity:.85}
.pfc-sub{font-size:.86rem;opacity:.9;margin-top:4px}
.pfc-bio{padding:14px 22px 0;font-size:.9rem;color:var(--text);line-height:1.55;white-space:pre-wrap}
.pfc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:18px 22px}
.pfc-tile{background:var(--brand-wash);border:1px solid var(--border);border-radius:11px;padding:10px 4px;text-align:center}
.pfc-num2{font-size:1.35rem;font-weight:900;color:var(--brand-dark)}
.pfc-lbl{font-size:.66rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;margin-top:2px}
.pfc-reel{display:flex;gap:8px;flex-wrap:wrap;padding:0 22px 18px}
.pfc-foot{padding:12px 22px;border-top:1px solid var(--border);font-size:.78rem;font-weight:800;color:var(--brand);text-align:center}
.pfc-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:16px}
@media (max-width:520px){.pfc-stats{grid-template-columns:repeat(2,1fr)}}

/* Public profiles directory */
.pfdir{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.pfdir-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:16px 10px;background:#fff;border:1px solid var(--border);border-radius:14px;text-decoration:none;transition:box-shadow .12s,border-color .12s}
.pfdir-card:hover{box-shadow:0 4px 14px rgba(90,63,214,.12);border-color:var(--brand-line)}
.pfdir-photo{width:72px;height:72px;border-radius:16px;object-fit:cover;background:var(--brand-tint)}
.pfdir-photo.pfdir-ph{display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:900;color:var(--brand)}
.pfdir-name{font-weight:800;font-size:.92rem;color:var(--text)}
.pfdir-num{color:var(--brand)}
.pfdir-sub{font-size:.74rem;color:var(--muted)}

/* Feedback */
.feedback-fab{position:fixed;right:18px;bottom:18px;z-index:900;background:var(--brand);color:#fff;border:none;border-radius:999px;padding:11px 18px;font-size:.9rem;font-weight:800;cursor:pointer;box-shadow:0 8px 22px -8px rgba(90,63,214,.7)}
.feedback-fab:hover{background:var(--brand-dark)}
.fb-form label{display:block;font-weight:700;font-size:.82rem;margin-bottom:5px}
.fb-form input,.fb-form select,.fb-form textarea{width:100%;padding:9px 12px;border:1px solid var(--border-strong);border-radius:9px;font-size:.92rem;font-family:inherit;box-sizing:border-box}
.fb-form textarea{resize:vertical}
@media (max-width:560px){.feedback-fab{right:12px;bottom:12px;padding:9px 14px;font-size:.82rem}}

/* Player development cards (admin) */
.pd-ctrl{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--brand-wash);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:16px}
.pd-ctrl label{font-weight:700;font-size:.82rem}
.pd-ctrl select{padding:8px 10px;border:1px solid var(--border-strong);border-radius:8px;font-size:.9rem}
.pd-picker{margin-bottom:14px}
.pd-picker label{font-weight:700;font-size:.82rem;margin-right:8px}
.pd-picker select{padding:8px 12px;border:1px solid var(--border-strong);border-radius:9px;font-size:.92rem;min-width:220px}
.pd-form{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:6px}
.pd-form-title{font-weight:800;font-size:.9rem;margin-bottom:12px}
.pd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.pd-field label{display:block;font-size:.78rem;font-weight:700;color:var(--muted);margin-bottom:4px}
.pd-field select{width:100%;padding:8px 10px;border:1px solid var(--border-strong);border-radius:8px;font-size:.86rem}
.pd-card{background:#fff;border:1px solid var(--brand-line);border-radius:14px;overflow:hidden}
.pd-card-body{padding:14px 16px}
.pd-table{width:100%;border-collapse:collapse;font-size:.9rem}
.pd-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--border)}
.pd-table th.num,.pd-table td.num{text-align:center}
.pd-table td{padding:7px 8px;border-bottom:1px solid #f1eff8}
.pd-attr{font-weight:600}
.pd-score{display:inline-block;min-width:32px;font-weight:900;border-radius:7px;padding:2px 8px;font-size:.9rem}
.pd-score.pd-elite{background:#FEF3C7;color:#92400E}
.pd-score.pd-strong{background:#DCFCE7;color:#166534}
.pd-score.pd-solid{background:var(--brand-tint);color:var(--brand-dark)}
.pd-score.pd-dev{background:#F1F5F9;color:#475569}
.pd-score.pd-none{background:transparent;color:var(--muted);font-weight:600}
.pd-agree{font-size:.66rem;font-weight:800;margin-left:5px;padding:1px 6px;border-radius:999px}
.pd-a-high{background:#dcfce7;color:#166534}.pd-a-moderate{background:#fef3c7;color:#92400e}.pd-a-low{background:#fee2e2;color:#b91c1c}
.pd-note{font-size:.74rem;color:var(--muted)}
.pd-delta{font-size:.72rem;font-weight:800;margin-left:4px}.pd-delta.up{color:#16a34a}.pd-delta.down{color:#b91c1c}
.pd-summary{margin-top:12px;font-size:.84rem;line-height:1.7}
.pd-disclaimer{margin-top:12px;font-size:.74rem;color:var(--muted);line-height:1.5;font-style:italic}

/* Dev card: numeric entry + tier explainers */
.pd-field input[type=number]{width:100%;padding:8px 10px;border:1px solid var(--border-strong);border-radius:8px;font-size:.95rem;font-weight:700;text-align:center}
.pd-tierlbl{display:block;font-size:.68rem;color:var(--brand);font-weight:700;margin-top:3px;min-height:.9em}
.pd-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:14px;font-size:.72rem;color:var(--muted)}
.pd-legend-item b{color:var(--text)}
.pd-score.pd-developing{background:#E0F2FE;color:#075985}
td .pd-tierlbl{display:inline-block;margin-left:5px;margin-top:0;font-size:.62rem}

/* Dev card attribute info button + description */
.pd-info{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--brand-line);background:var(--brand-tint);color:var(--brand);font-size:.66rem;font-weight:900;font-style:italic;cursor:pointer;line-height:1;padding:0;vertical-align:middle}
.pd-info:hover{background:var(--brand-tint-2)}
.pd-desc{font-size:.74rem;color:var(--muted);line-height:1.4;margin:2px 0 6px;background:var(--brand-wash);border-left:2px solid var(--brand-line);padding:6px 8px;border-radius:0 6px 6px 0}

/* Player development — player/family panels */
.pd-instr{font-size:.8rem;color:var(--brand-ink-soft);background:var(--brand-tint);border-radius:9px;padding:10px 12px;line-height:1.5;margin-bottom:12px}
.pd-teammate-picker{margin-bottom:10px}
.pd-teammate-picker label{font-weight:700;font-size:.82rem;margin-right:8px}
.pd-teammate-picker select{padding:8px 12px;border:1px solid var(--border-strong);border-radius:9px;font-size:.92rem;min-width:200px}
.pd-peer-block{background:var(--brand-wash);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:12px}
.pd-signins{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:16px}

/* View-as (admin/parent) toggle */
.btn-viewas{background:var(--brand-tint);color:var(--brand-dark);border:1px solid var(--brand-line);border-radius:9px;padding:8px 13px;font-size:.84rem;font-weight:700;cursor:pointer;white-space:nowrap}
.btn-viewas:hover{background:var(--brand-tint-2)}
@media (max-width:760px){.btn-viewas{font-size:.72rem;padding:5px 8px}}

/* Official tournament link */
.gt-tourn-link{display:inline-flex;align-items:center;gap:6px;margin:10px 0 6px;padding:9px 16px;border-radius:10px;background:var(--brand-tint);color:var(--brand-dark);border:1px solid var(--brand-line);font-weight:800;font-size:.9rem;text-decoration:none}
.gt-tourn-link:hover{background:var(--brand-tint-2)}

/* Schedule delete button */
.sched-del{display:inline-block;margin-top:8px;margin-right:8px;padding:4px 10px;font-size:.78rem;font-weight:700;color:#b91c1c;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;cursor:pointer}
.sched-del:hover{background:#fecaca}

/* ===== Hamburger menu (all screen sizes) ===== */
.logo{text-decoration:none;color:inherit;cursor:pointer}
.header-inner{position:relative}
.nav-hamburger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:46px;height:40px;padding:0 11px;background:#fff;border:1px solid var(--border-strong);border-radius:10px;cursor:pointer;flex-shrink:0}
.nav-hamburger span{display:block;height:2px;width:100%;background:var(--text);border-radius:2px;transition:transform .2s,opacity .2s}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
nav#main-nav{position:absolute;top:calc(100% + 8px);right:0;display:none;flex-direction:column;align-items:stretch;gap:2px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 40px rgba(0,0,0,.16);padding:8px;min-width:230px;max-height:80vh;overflow-y:auto;z-index:300}
nav#main-nav.open{display:flex}
nav#main-nav a,nav#main-nav button{width:100%;text-align:left;justify-content:flex-start;margin:0}
nav#main-nav a{padding:10px 14px;border-radius:9px;font-size:.95rem}
nav#main-nav .btn-admin{margin-top:4px}
@media (max-width:760px){nav#main-nav a{font-size:.95rem;padding:10px 14px;letter-spacing:0}}

/* ============ THEMES (light / dark / sunlight high-contrast) ============ */
/* Theme switcher (in the hamburger menu) */
.theme-switch{display:flex;gap:4px;padding:6px;margin-bottom:6px;background:var(--gray);border:1px solid var(--border);border-radius:10px}
.theme-switch button{flex:1;padding:7px 4px;font-size:.72rem;font-weight:800;border:1px solid transparent;border-radius:7px;background:none;color:var(--text);cursor:pointer;font-family:inherit;white-space:nowrap}
.theme-switch button.active{background:var(--brand);color:#fff}

/* ---------- DARK ---------- */
html[data-theme="dark"]{
  --brand-soft:#241d3f;--accent-soft:#241d3f;
  --mix-base:#1a1922;--ink-base:#dcd9e8;
  --black:#0d0c12;--ink-2:#c9c8d2;--gray:#15141b;--border:#2a2833;--border-strong:#3a3846;--text:#edecf2;--muted:#a6a5b2;
  --shadow-card:0 18px 34px -22px rgba(0,0,0,.7);
}
html[data-theme="dark"] body{background:#15141b}
html[data-theme="dark"] header{background:rgba(21,20,27,.9);border-bottom-color:#2a2833}
html[data-theme="dark"] .hero{border-bottom-color:#2a2833}
html[data-theme="dark"] .t-card,
html[data-theme="dark"] .gt-card,
html[data-theme="dark"] .event-item,
html[data-theme="dark"] .empty-state,
html[data-theme="dark"] .modal,
html[data-theme="dark"] .session-modal,
html[data-theme="dark"] .gt-modal,
html[data-theme="dark"] nav#main-nav,
html[data-theme="dark"] .gt-parent,
html[data-theme="dark"] .confirmed-card,
html[data-theme="dark"] .rsvp-card,
html[data-theme="dark"] .disc-card,
html[data-theme="dark"] .disc-post,
html[data-theme="dark"] .pd-card,
html[data-theme="dark"] .gt-pcard,
html[data-theme="dark"] .gt-topnav a,
html[data-theme="dark"] .nav-hamburger,
html[data-theme="dark"] select.filter-select,
html[data-theme="dark"] .sched-team,
html[data-theme="dark"] .sched-chip,
html[data-theme="dark"] .gt-minibtn,
html[data-theme="dark"] .btn-signout{background:#1e1c26;color:var(--text);border-color:#2a2833}
html[data-theme="dark"] input:not([type=checkbox]):not([type=radio]),
html[data-theme="dark"] textarea,
html[data-theme="dark"] select{background:#1e1c26;color:var(--text);border-color:#3a3846}
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder{color:#8a8996}
html[data-theme="dark"] .admin-item,
html[data-theme="dark"] .t-footer,
html[data-theme="dark"] .t-card.no-vote .t-footer{background:#1a1922;border-color:#2a2833}
html[data-theme="dark"] nav a:hover{background:#26242f;color:var(--text)}
html[data-theme="dark"] .home-spotlight{background:linear-gradient(135deg,var(--brand-soft),var(--brand-tint-2));border-color:var(--brand-line)}
html[data-theme="dark"] .hs-title{color:var(--brand-ink-soft)}
html[data-theme="dark"] .hs-desc,html[data-theme="dark"] .hs-tease{color:var(--brand-ink-soft)}
html[data-theme="dark"] .hs-badge{background:#1e1c26;color:var(--accent);border-color:var(--brand-ink-soft)}

/* ---------- SUNLIGHT (high-contrast light) ---------- */
html[data-theme="contrast"]{
  --ink-2:#000;--gray:#fff;--border:#9a9aa5;--border-strong:#77777f;--text:#000;--muted:#2a2a31;
  --brand:#4326b8;--brand-dark:#2f1a86;
}
html[data-theme="contrast"] body{background:#fff;font-weight:500}
html[data-theme="contrast"] .t-card,
html[data-theme="contrast"] .event-item,
html[data-theme="contrast"] .gt-card,
html[data-theme="contrast"] .rsvp-card,
html[data-theme="contrast"] .disc-card,
html[data-theme="contrast"] .disc-post,
html[data-theme="contrast"] input:not([type=checkbox]):not([type=radio]),
html[data-theme="contrast"] textarea,
html[data-theme="contrast"] select{border-width:2px}
html[data-theme="contrast"] .event-detail,
html[data-theme="contrast"] .gt-sub,
html[data-theme="contrast"] .ann-body{color:#2a2a31}

/* ---------- DARK: comprehensive neutral surfaces (bg+text only; accent borders preserved) ---------- */
html[data-theme="dark"] .vote-summary-bar,
html[data-theme="dark"] .filter-btn,
html[data-theme="dark"] .vote-btn,
html[data-theme="dark"] .ann-item,
html[data-theme="dark"] .season-tab,
html[data-theme="dark"] .cond-card,
html[data-theme="dark"] .cond-name-input,
html[data-theme="dark"] .log-stat,
html[data-theme="dark"] .progress-bar-wrap,
html[data-theme="dark"] .group-chip,
html[data-theme="dark"] .attendance-table-wrap,
html[data-theme="dark"] .kanban-card,
html[data-theme="dark"] .admin-att-item,
html[data-theme="dark"] .admin-att-item-ext,
html[data-theme="dark"] .gt-gitem,
html[data-theme="dark"] .gt-evtype,
html[data-theme="dark"] .gt-fitem,
html[data-theme="dark"] .gt-table-wrap,
html[data-theme="dark"] .gt-roster-card,
html[data-theme="dark"] .gt-stat-box,
html[data-theme="dark"] .gt-pk,
html[data-theme="dark"] .gt-autocomplete-list,
html[data-theme="dark"] .gt-claim-chip,
html[data-theme="dark"] .rsvp-idselect,
html[data-theme="dark"] .gt-filters input[type=date],
html[data-theme="dark"] .gt-filters input[type=text],
html[data-theme="dark"] .gt-filters select,
html[data-theme="dark"] .gt-lock input,
html[data-theme="dark"] .voter-bar input,
html[data-theme="dark"] .login-form input,
html[data-theme="dark"] .form-group input,
html[data-theme="dark"] .form-group textarea,
html[data-theme="dark"] .form-group select,
html[data-theme="dark"] .log-field input,
html[data-theme="dark"] .log-field textarea,
html[data-theme="dark"] .log-field select,
html[data-theme="dark"] .gt-bigbtn{background:#1e1c26;color:var(--text);border-color:#2a2833}
html[data-theme="dark"] .gt-gitem,
html[data-theme="dark"] .gt-fitem{color:var(--text)}
html[data-theme="dark"] .gt-pcard.gk{background:#2a2410;border-color:#7a5a12}
html[data-theme="dark"] .season-tab.active{background:var(--brand);color:#fff;border-color:var(--brand)}
html[data-theme="dark"] .gt-table th{background:#1a1922}
html[data-theme="dark"] .gt-table td,html[data-theme="dark"] .gt-table th{border-color:#2a2833}
html[data-theme="dark"] table,html[data-theme="dark"] .att-overview-table td{color:var(--text)}

/* ---------- DARK: minor bright pills/cards for polish ---------- */
html[data-theme="dark"] .home-expand-btn{background:#1e1c26;border-color:var(--brand-ink-soft);color:var(--brand-on-dark)}
html[data-theme="dark"] .pfdir-card{background:#1e1c26;border-color:#2a2833;color:var(--text)}
html[data-theme="dark"] .sched-edit,
html[data-theme="dark"] .sched-cancel,
html[data-theme="dark"] .sched-del,
html[data-theme="dark"] .sched-fulledit{filter:brightness(.82)}

/* ===== Live game: On field / Bench player pools ===== */
.gt-pool-label{display:flex;align-items:center;gap:8px;font-weight:800;font-size:.92rem;margin:4px 0 10px;color:var(--text)}
.gt-pool-count{background:var(--brand);color:#fff;border-radius:999px;padding:1px 9px;font-size:.72rem;font-weight:800}
.gt-pool-bench .gt-pool-count{background:var(--muted)}
.gt-pool-empty{font-size:.82rem;color:var(--muted);padding:2px 0 16px}

/* Live game: restart + between-period hint */
.gt-restart-btn{display:block;margin:12px auto 0;background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:999px;padding:6px 16px;font-size:.78rem;font-weight:700;cursor:pointer;font-family:inherit;opacity:.85}
.gt-restart-btn:hover{opacity:1;background:rgba(255,255,255,.12)}
.gt-clock-hint{color:rgba(255,255,255,.7);font-size:.72rem;margin-top:10px;line-height:1.4}

/* ===== Film-review: In-Play S/NS/U + coach reconciliation ===== */
.gt-io{display:inline-flex;gap:3px;margin:0 6px;vertical-align:middle}
.gt-io-btn{border:1px solid var(--border-strong);background:#fff;color:var(--muted);border-radius:6px;padding:1px 7px;font-size:.66rem;font-weight:800;cursor:pointer;font-family:inherit}
.gt-io-btn.on.io-ok{background:#16a34a;color:#fff;border-color:#16a34a}
.gt-io-btn.on.io-no{background:#dc2626;color:#fff;border-color:#dc2626}
.gt-io-btn.on.io-u{background:#6b7280;color:#fff;border-color:#6b7280}
.gt-plog-edit{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.82rem;margin-left:4px;padding:0 3px}
.gt-plog-edit:hover{color:var(--brand)}
.gt-plog-coach{font-size:.66rem;font-weight:800;color:var(--brand-dark);background:var(--brand-tint);border-radius:999px;padding:1px 7px;margin-left:4px}
.gt-coachbtn{border-color:var(--brand-line)!important;color:var(--brand-dark)!important}
.gt-recon{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:12px;background:#fff}
.gt-recon-name{font-weight:800;font-size:.98rem;margin-bottom:4px}
.gt-recon-official{font-size:.8rem;color:var(--muted);margin-bottom:8px}
.gt-recon-author{border-top:1px dashed var(--border);padding-top:8px;margin-top:8px}
.gt-recon-by{font-weight:700;font-size:.86rem;margin-bottom:4px}
.gt-recon-line{font-size:.82rem;margin:2px 0}
.gt-recon-moments{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.gt-recon-mo{font-size:.7rem;font-weight:700;border-radius:6px;padding:2px 7px;border:1px solid var(--border)}
.io-ok{color:#15803d}.io-no{color:#b91c1c}.io-u{color:#6b7280}
.gt-recon-mo.io-ok{background:#dcfce7;border-color:#86efac}
.gt-recon-mo.io-no{background:#fee2e2;border-color:#fca5a5}
.gt-recon-mo.io-u{background:#f3f4f6;border-color:#d1d5db}

html[data-theme="dark"] .gt-recon{background:#1e1c26;border-color:#2a2833}
html[data-theme="dark"] .gt-io-btn{background:#1e1c26;border-color:#3a3846;color:#a6a5b2}
html[data-theme="dark"] .gt-recon-mo{border-color:#3a3846}
html[data-theme="dark"] .gt-recon-mo.io-ok{background:#12331f;border-color:#1f5c34;color:#7ee2a3}
html[data-theme="dark"] .gt-recon-mo.io-no{background:#3a1717;border-color:#7a2626;color:#f3a3a3}
html[data-theme="dark"] .gt-recon-mo.io-u{background:#26242f;border-color:#3a3846;color:#c9c8d2}

/* Lineup editor */
.gt-le-list{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow-y:auto;margin-bottom:8px}
.gt-le-row{display:flex;align-items:center;gap:10px;justify-content:space-between;border:1px solid var(--border);border-radius:8px;padding:7px 10px}
.gt-le-name{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;flex:1;cursor:pointer}
.gt-le-row select{border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:.8rem;font-family:inherit;background:#fff;color:var(--text)}
html[data-theme="dark"] .gt-le-row{border-color:#2a2833}
html[data-theme="dark"] .gt-le-row select{background:#1e1c26;color:var(--text);border-color:#3a3846}

/* Coach reconciliation action buttons */
.gt-recon-stats{display:flex;flex-direction:column;gap:5px;margin-top:5px}
.gt-recon-stat{display:inline-flex;align-items:center;gap:6px;font-size:.82rem}
.gt-recon-ok,.gt-recon-no{border:none;border-radius:6px;padding:1px 8px;font-size:.72rem;font-weight:800;cursor:pointer;font-family:inherit}
.gt-recon-ok{background:#16a34a;color:#fff;margin-left:6px}
.gt-recon-no{background:#e5e7eb;color:#991b1b}
.gt-recon-line .gt-recon-ok{padding:2px 10px}
html[data-theme="dark"] .gt-recon-no{background:#3a1717;color:#f3a3a3}

/* Family-facing coach feedback on their review submissions */
.gt-feedback-card{border:1.5px solid #fca5a5;background:#fef2f2;border-radius:14px;padding:14px 16px;margin:0 0 20px}
.gt-feedback-head{font-weight:800;color:#b91c1c;margin-bottom:8px}
.gt-feedback-player{font-size:.9rem;margin-top:8px}
.gt-feedback-row{font-size:.85rem;margin:4px 0;line-height:1.5}
.gt-feedback-note{color:#7f1d1d;font-style:italic}
html[data-theme="dark"] .gt-feedback-card{background:#2a1414;border-color:#7a2626}
html[data-theme="dark"] .gt-feedback-head{color:#f3a3a3}
html[data-theme="dark"] .gt-feedback-note{color:#f3b3b3}

/* Game end-reason (ended before full time) */
.gt-endreason-list{display:flex;flex-direction:column;gap:8px}
.gt-endreason-btn{text-align:left;border:1px solid var(--border-strong);background:#fff;color:var(--text);border-radius:10px;padding:11px 14px;font-size:.92rem;font-weight:600;cursor:pointer;font-family:inherit}
.gt-endreason-btn:hover{background:#f2f1f5;border-color:var(--brand)}
.gt-endreason-badge{margin-top:8px;font-size:.85rem;font-weight:700;color:#b45309;background:#fef3c7;border:1px solid #fcd34d;border-radius:999px;padding:4px 12px;display:inline-block}
.gt-endreason-badge a{color:#92400e}
.gt-st-early{background:#fef3c7;color:#92400e}
html[data-theme="dark"] .gt-endreason-btn{background:#1e1c26;border-color:#3a3846;color:var(--text)}
html[data-theme="dark"] .gt-endreason-btn:hover{background:#26242f}
html[data-theme="dark"] .gt-endreason-badge{background:#3a2c10;border-color:#7a5a12;color:#f5d08a}
html[data-theme="dark"] .gt-st-early{background:#3a2c10;color:#f5d08a}

/* Review queue — family submissions waiting on a coach decision (staff only) */
.gt-review-queue{background:var(--brand-soft);border:1px solid var(--border-strong);border-left:4px solid var(--brand);border-radius:12px;padding:12px 14px;margin-bottom:18px}
.gt-rq-head{font-weight:800;font-size:.9rem;color:var(--text);margin-bottom:6px}
.gt-rq-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--border)}
.gt-rq-info{display:flex;flex-direction:column;min-width:0}
.gt-rq-info strong{font-size:.86rem;color:var(--text)}
.gt-rq-meta{font-size:.76rem;color:var(--muted)}
.gt-rq-btn{flex:0 0 auto;background:var(--brand);color:#fff;font-weight:800;font-size:.76rem;text-decoration:none;padding:6px 14px;border-radius:999px;white-space:nowrap}
.gt-rq-btn:hover{background:var(--brand-dark)}

/* Guest player sign-up */
.guest-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--brand-soft);border:1px solid var(--border-strong);border-left:4px solid var(--brand);border-radius:12px;padding:12px 16px;margin-bottom:16px}
.gb-text{display:flex;flex-direction:column;min-width:0}
.gb-text strong{font-size:.92rem;color:var(--text)}
.gb-text span{font-size:.8rem;color:var(--muted)}
.gb-btn{flex:0 0 auto;background:var(--brand);color:#fff;border:none;font-weight:800;font-size:.8rem;padding:9px 16px;border-radius:999px;cursor:pointer}
.gb-btn:hover{background:var(--brand-dark)}
.gb-actions{display:flex;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.gt-rq-btn{border:none;cursor:pointer}
