:root{--bg:#f5f7fb;--panel:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--nav:#0b1220;--nav2:#111827;--accent:#1d4ed8;--good:#087f5b;--warn:#b45309;--bad:#b91c1c;--radius:16px;--shadow:0 10px 35px rgba(15,23,42,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--nav),var(--nav2));color:#fff;padding:24px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:hidden}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 24px}.mark{width:46px;height:46px;border:1px solid #334155;border-radius:12px;display:grid;place-items:center;font-weight:900;letter-spacing:.05em}.brand strong{display:block;font-size:14px;letter-spacing:.08em}.brand span{display:block;color:#94a3b8;font-size:12px;margin-top:3px}nav{display:grid;gap:4px}.sidebar #nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;align-content:start;padding-right:5px;margin-right:-5px;scrollbar-width:thin;scrollbar-color:#475569 transparent}.sidebar #nav::-webkit-scrollbar{width:7px}.sidebar #nav::-webkit-scrollbar-track{background:transparent}.sidebar #nav::-webkit-scrollbar-thumb{background:#475569;border-radius:99px}.sidebar #nav::-webkit-scrollbar-thumb:hover{background:#64748b}.nav-item{border:0;background:transparent;color:#cbd5e1;text-align:left;padding:11px 12px;border-radius:10px;cursor:pointer;font-size:14px}.nav-item:hover,.nav-item.active{background:#1e293b;color:#fff}.sidebar-foot{margin-top:12px;padding:16px 8px 0;border-top:1px solid #1f2937;font-size:12px;color:#94a3b8;display:flex;gap:8px;align-items:center;flex-shrink:0}.status-dot{width:8px;height:8px;border-radius:99px;background:#f59e0b}.topbar{display:flex;justify-content:space-between;align-items:center;padding:28px 34px 20px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--accent);margin:0 0 4px}.topbar h1{margin:0;font-size:28px;letter-spacing:-.03em}.top-actions{display:flex;gap:10px}.top-actions input{width:260px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}.primary{background:#111827!important;color:#fff!important;border:0!important;border-radius:10px;padding:10px 14px;cursor:pointer}#content{padding:0 34px 40px}.hero-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:18px;margin-bottom:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.panel h2{font-size:15px;margin:0 0 14px}.panel p{color:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px}.kpi small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:700}.kpi strong{display:block;font-size:25px;margin-top:8px;letter-spacing:-.04em}.kpi span{display:block;color:var(--muted);font-size:12px;margin-top:6px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.unit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.unit{border:1px solid var(--line);border-radius:12px;padding:14px}.unit h3{margin:0;font-size:14px}.unit .numbers{display:flex;justify-content:space-between;margin-top:12px;font-size:12px;color:var(--muted)}.attention{display:grid;gap:9px}.attention-item{padding:12px;border:1px solid var(--line);border-radius:10px;display:flex;justify-content:space-between;align-items:center}.badge{font-size:11px;border-radius:99px;padding:4px 8px;background:#f3f4f6;color:#374151}.placeholder{min-height:380px;display:grid;place-items:center;text-align:center}.placeholder .icon{font-size:44px}.placeholder h2{font-size:24px;margin:10px 0 4px}.placeholder p{max-width:560px}.finance-table{width:100%;border-collapse:collapse}.finance-table th,.finance-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:13px}.finance-table th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}dialog{border:0;border-radius:16px;padding:0;box-shadow:0 30px 80px rgba(0,0,0,.25);width:min(440px,90vw)}dialog::backdrop{background:rgba(15,23,42,.45)}dialog form{padding:24px}dialog h2{margin:0 0 18px}dialog label{display:grid;gap:7px;margin:13px 0;font-size:13px;font-weight:700}dialog input,dialog select{border:1px solid var(--line);border-radius:9px;padding:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.dialog-actions button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 13px}.loading{opacity:.65}.money-positive{color:var(--good)}@media(max-width:1050px){.app-shell{grid-template-columns:76px 1fr}.brand>div:not(.mark),.nav-item{font-size:0}.nav-item:before{content:'•';font-size:20px}.sidebar{padding:20px 10px}.kpis{grid-template-columns:repeat(2,1fr)}.hero-grid,.grid-2{grid-template-columns:1fr}.top-actions input{display:none}}@media(max-width:650px){.app-shell{display:block}.sidebar{display:none}.topbar{padding:20px}.topbar h1{font-size:23px}#content{padding:0 20px 30px}.kpis{grid-template-columns:1fr 1fr}.unit-grid{grid-template-columns:1fr}.top-actions{display:none}}
[hidden]{display:none!important}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#172554 0,#0b1220 36%,#050814 100%)}.auth-card{width:min(440px,100%);background:#fff;border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:30px;box-shadow:0 30px 100px rgba(0,0,0,.38)}.auth-brand{display:flex;align-items:center;gap:12px;padding-bottom:24px;border-bottom:1px solid var(--line)}.auth-mark{width:50px;height:50px;border-radius:14px;background:#0b1220;color:#fff;display:grid;place-items:center;font-weight:900;letter-spacing:.06em}.auth-brand strong{display:block;font-size:14px;letter-spacing:.08em}.auth-brand span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.auth-copy{padding:26px 0 8px}.auth-copy h1{font-size:26px;letter-spacing:-.035em;margin:0}.auth-copy p:not(.eyebrow){color:var(--muted);margin:8px 0 0}.auth-form label{display:grid;gap:7px;font-size:13px;font-weight:700;margin:14px 0}.auth-form input[type=email],.auth-form input[type=password]{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px}.check-row{grid-template-columns:auto 1fr!important;align-items:center;font-weight:500!important;color:var(--muted)}.check-row input{margin:0}.auth-submit{width:100%;padding:12px!important;margin-top:8px}.auth-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:10px;padding:10px 12px;font-size:12px;margin:12px 0}.auth-note{font-size:11px;color:var(--muted);line-height:1.5;margin:18px 0 0}.secondary{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 13px;cursor:pointer;color:var(--text)}.sidebar-account{align-items:flex-start}.sidebar-account>div{display:grid;gap:3px}.sidebar-account small{color:#64748b;max-width:175px;overflow:hidden;text-overflow:ellipsis}.security-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.security-list{display:grid;gap:10px}.security-row{display:flex;justify-content:space-between;gap:20px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:13px}.security-row span{font-size:13px;color:var(--muted)}.security-row b{font-size:13px;text-align:right}.helper{font-size:12px!important;color:var(--muted)!important}.status-good{color:var(--good);font-weight:700}.status-warn{color:var(--warn);font-weight:700}@media(max-width:800px){.security-grid{grid-template-columns:1fr}}

.billing-form{display:grid;gap:2px}.billing-form label{display:grid;gap:7px;margin:8px 0;font-size:13px;font-weight:700}.billing-form input,.billing-form select{border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff}.billing-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.billing-form .primary{margin-top:10px}.table-scroll{overflow-x:auto}.finance-table a{color:var(--accent);font-weight:700;text-decoration:none}.finance-table small{color:var(--muted)}@media(max-width:800px){.billing-row{grid-template-columns:1fr}}
.link-button{display:inline-block;text-decoration:none;color:#fff;padding:10px 14px;border-radius:10px}.status-warn{background:#fff7ed!important;color:#9a3412!important}
.form-section{margin:16px 0 2px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.inline-check{grid-template-columns:auto 1fr!important;align-items:center!important;font-weight:500!important}.inline-check input{margin:0}.mini{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 9px;font-size:11px;cursor:pointer}.mini:hover{border-color:#cbd5e1;background:#f8fafc}.actions-cell{white-space:nowrap}.roster-box{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.roster-box h3{font-size:14px}.roster-row,.timeline-row,.search-result{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.roster-row:last-child,.timeline-row:last-child,.search-result:last-child{border-bottom:0}.roster-row span:first-child,.timeline-row span:first-child{display:grid;gap:3px}.roster-row small,.timeline-row small,.search-result small{color:var(--muted);display:block;margin-top:3px}.search-results{display:grid}.search-result{justify-content:flex-start}.search-result>.badge{min-width:76px;text-align:center}.crm-grid .panel{align-self:start}.kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}@media(max-width:800px){.actions-cell{white-space:normal}.crm-grid{grid-template-columns:1fr}}
.export-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.export-bar h2{margin-bottom:4px}.export-actions{display:flex;gap:8px;flex-wrap:wrap}.export-actions a{text-decoration:none}.timeline-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(148,163,184,.18)}.timeline-row span:first-child{display:flex;flex-direction:column}.timeline-row small{opacity:.7;margin-top:3px}@media(max-width:760px){.export-bar{align-items:flex-start;flex-direction:column}.timeline-row{align-items:flex-start;flex-direction:column}}

/* Québec National v0.8 */
.qn-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.qn-intro h2{margin-bottom:5px}.team-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:14px}.team-performance-card{appearance:none;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;cursor:pointer;color:var(--text);transition:.15s ease}.team-performance-card:hover{transform:translateY(-1px);border-color:#cbd5e1;box-shadow:0 10px 28px rgba(15,23,42,.08)}.team-performance-card h3{font-size:16px;margin:13px 0 5px}.team-performance-card p{font-size:12px;margin:0}.team-card-top,.team-record,.team-card-stats,.back-row,.team-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.team-card-top>span:last-child{font-size:11px;color:var(--muted);font-weight:700}.team-record{margin:18px 0 12px}.team-record strong{font-size:30px;letter-spacing:-.05em}.team-record span{font-size:12px;color:var(--muted)}.team-card-stats{font-size:11px;color:var(--muted);flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}.back-row{justify-content:flex-start;margin-bottom:12px}.team-title{margin-bottom:18px}.team-title h2{font-size:25px;margin:0}.team-title p{margin:4px 0 0;color:var(--muted)}.result-pill{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;font-size:12px;font-weight:900}.result-w{background:#ecfdf5;color:#047857}.result-l{background:#fef2f2;color:#b91c1c}.result-t{background:#f3f4f6;color:#4b5563}.result-—{background:#f8fafc;color:#64748b}.mini-input{width:66px;border:1px solid var(--line);border-radius:7px;padding:7px}.dev-table select{max-width:155px;border:1px solid var(--line);border-radius:7px;padding:7px;background:#fff}.attendance-list{display:grid;max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:10px;margin:10px 0}.attendance-line{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line)}.attendance-line:last-child{border-bottom:0}.attendance-line span{display:grid}.attendance-line small{color:var(--muted);font-size:10px}.attendance-line select{border:1px solid var(--line);border-radius:7px;padding:7px;background:#fff}.rating-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}.rating-grid label{margin:0!important;font-size:11px!important}.billing-form textarea{border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff;font:inherit;resize:vertical}.evaluation-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.evaluation-card{border:1px solid var(--line);border-radius:11px;padding:13px;position:relative}.evaluation-card>div{display:grid;gap:2px;padding-right:90px}.evaluation-card small{font-size:11px;color:var(--muted)}.evaluation-card>.badge{position:absolute;right:12px;top:12px}.evaluation-card p{font-size:12px;margin:10px 0 0}.empty-state{grid-column:1/-1;text-align:center;padding:28px;color:var(--muted)}@media(max-width:800px){.qn-intro{align-items:flex-start;flex-direction:column}.rating-grid{grid-template-columns:repeat(2,1fr)}.qn-ops-grid{grid-template-columns:1fr}.team-card-stats{justify-content:flex-start}}
.compact-form{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.compact-table{max-height:290px;margin-top:15px}.compact-table table{min-width:580px}

.history-link{background:none;border:0;padding:0;color:inherit;text-align:left;font:inherit;cursor:pointer}.history-link:hover{text-decoration:underline}

.current-league-panel{margin-top:18px}
.league-source-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid rgba(148,163,184,.2)}
.league-source-card h3{margin:6px 0 2px}
.compact-kpis{margin-top:12px}
@media(max-width:700px){.league-source-card{align-items:flex-start;flex-direction:column}.league-source-card .link-button{width:100%;text-align:center}}

/* v0.9.0 Master Athlete Registry */
.registry-centralize details summary{cursor:pointer;font-weight:700}.registry-filters{align-items:end;margin:12px 0 16px}.registry-filters label{min-width:160px}.registry-chip{display:inline-block;margin:2px 3px 2px 0}.registry-centralize .export-bar{align-items:flex-start}

/* v0.9.4 Data Quality & Family Centralization */
.data-quality-panel{margin-top:18px}.quality-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.quality-grid>div{border:1px solid var(--line);border-radius:12px;padding:14px}.quality-grid h3{margin:0 0 10px}.profile-edit{margin:14px 0;border:1px solid var(--line);border-radius:10px;padding:11px}.profile-edit summary{cursor:pointer;font-weight:700}@media(max-width:900px){.quality-grid{grid-template-columns:1fr}}

/* v0.9.5 — practical daily operations */
.quick-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px}.quick-action{border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px;text-align:left;cursor:pointer;box-shadow:0 4px 18px rgba(15,23,42,.04)}.quick-action:hover{border-color:#cbd5e1;transform:translateY(-1px)}.quick-action b{display:block;font-size:13px}.quick-action small{display:block;color:var(--muted);font-size:10px;margin-top:4px;line-height:1.3}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.panel-head h2{margin-bottom:3px}.ops-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ops-card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:2px 10px;text-align:left;color:var(--text)}.ops-card:hover{background:#f8fafc}.ops-card span{grid-row:1/3}.ops-card span b{display:block;font-size:12px}.ops-card span small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.ops-card>strong{font-size:18px;text-align:right}.ops-card>small{font-size:9px;color:var(--muted);text-align:right}.attention-link{cursor:pointer}.attention-link:hover{background:#f8fafc}.search-result.search-open{width:100%;border:0;background:#fff;text-align:left;cursor:pointer;color:var(--text);font:inherit}.search-result.search-open:hover{background:#f8fafc}.search-arrow{margin-left:auto;color:var(--accent);font-size:11px;font-weight:700}.mobile-nav{display:none}
@media(max-width:1100px){.quick-actions{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.ops-card-grid{grid-template-columns:1fr}.panel-head{align-items:flex-start}}
@media(max-width:650px){body{padding-bottom:68px}.quick-actions{grid-template-columns:repeat(2,1fr)}.mobile-nav{display:grid;position:fixed;z-index:50;left:0;right:0;bottom:0;grid-template-columns:repeat(5,1fr);background:#0b1220;border-top:1px solid #1f2937;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.mobile-nav button{border:0;background:transparent;color:#94a3b8;font-size:10px;padding:8px 2px;border-radius:8px}.mobile-nav button.active{background:#1e293b;color:#fff}.search-arrow{display:none}}

/* v0.9.6 — foundation integrity / recovery */
.status-bad{background:#fef2f2!important;color:var(--bad)!important;font-weight:700}.security-row span small{display:block;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.35}.security-row .status-good{background:#ecfdf5!important;color:var(--good)!important;padding:4px 8px;border-radius:999px}.security-row .status-warn{padding:4px 8px;border-radius:999px}.security-row .status-bad{padding:4px 8px;border-radius:999px}

/* v0.9.7 — session-scoped operations */
.session-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 16px;margin-bottom:18px;box-shadow:0 4px 18px rgba(15,23,42,.04)}.session-bar>div:first-child{display:grid;gap:3px}.session-bar b{font-size:13px}.session-bar small{font-size:11px;color:var(--muted)}.session-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.session-select{min-width:180px;border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 10px;color:var(--text)}@media(max-width:700px){.session-bar{align-items:flex-start;flex-direction:column}.session-actions{width:100%}.session-select{flex:1;min-width:0}}
.kpi-link{appearance:none;text-align:left;font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line,#d9e0e7);background:var(--panel,#fff);width:100%}
.kpi-link:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,23,42,.08)}
.kpi-link em{display:block;margin-top:5px;font-size:11px;font-style:normal;font-weight:700;opacity:.6}
