:root{--ink:#0b2031;--navy:#071c2a;--deep:#0a2837;--green:#2bc88b;--soft:#f4f7f7;--muted:#61717b;--line:#e4e9e8;--red:#c74651;--amber:#a46b04;--orange:#f6ca7f;--radius:20px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:#f2f5f5}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}a{color:inherit}#app{min-height:100dvh}.shell{max-width:1100px;margin:auto;min-height:100dvh;background:#f7f9f8;position:relative;padding-bottom:96px}.top{background:linear-gradient(135deg,#081d2b,#0e3c46);color:white;border-radius:0 0 27px 27px;padding:calc(env(safe-area-inset-top) + 23px) 22px 28px;position:relative;overflow:hidden}.top:after{content:"";position:absolute;right:-90px;top:-95px;width:275px;height:275px;border:50px solid rgba(42,200,139,.09);border-radius:50%;pointer-events:none}.toprow{display:flex;align-items:center;justify-content:space-between;gap:10px}.brand{display:flex;gap:11px;align-items:center}.logo{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#1baa7b;color:white;font-size:18px;font-weight:900;letter-spacing:-1px;box-shadow:0 7px 24px #001b18}.brand strong{display:block;font-size:16px;letter-spacing:-.4px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#86cbb7;font-weight:800}.hello{margin-top:31px;font-size:13px;color:#a7c5c3}.top h1{margin:5px 0 0;font-size:30px;letter-spacing:-1.3px;line-height:1.08}.top p{color:#b8d2d3;font-size:13px;line-height:1.55;margin:10px 0 0}.toptools{display:flex;align-items:center;gap:10px}.refreshbtn{height:36px;width:36px;border:1px solid #438278;border-radius:50%;background:#1b4a4c;color:#f2fff9;font-size:24px;line-height:1}.btn svg{width:17px;height:17px;flex:0 0 17px}.avatar{border:1px solid #438278;background:#20454c;color:white;border-radius:50%;height:38px;width:38px;font-weight:800}.mode{background:#fce9c1;color:#4c350a;padding:10px 16px;font-size:12px;text-align:center;line-height:1.5;border-bottom:1px solid #f4d39a}.content{padding:17px 18px 8px}.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:-2px}.kpi{background:white;border:1px solid #eaf0ed;box-shadow:0 7px 24px #113b2c06;border-radius:17px;padding:16px 12px;min-height:93px}.kpi small{display:block;font-size:11px;color:#6a7b81;font-weight:650;line-height:1.3}.kpi b{display:block;font-size:27px;letter-spacing:-1px;margin-top:9px}.kpi b.red{color:var(--red)}.kpi b.green{color:#19865e}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:27px 2px 11px}.section-head h2{font-size:17px;letter-spacing:-.4px;margin:0}.section-head button{font-size:12px;font-weight:800;color:#16866c;border:0;background:transparent;padding:8px}.card{background:white;border:1px solid #e6ece9;border-radius:19px;padding:17px;margin:10px 0;box-shadow:0 3px 15px #102a2606}.card.bordered{border-left:4px solid var(--green)}.card.redline{border-left:4px solid #e5a5a7}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.rowtop{align-items:flex-start}.stack{display:flex;flex-direction:column;gap:4px;min-width:0}.big{font-size:16px;font-weight:800;letter-spacing:-.35px}.small{font-size:12px;color:var(--muted);line-height:1.55}.tiny{font-size:11px;color:var(--muted)}.pill{font-size:10px;text-transform:uppercase;letter-spacing:.35px;font-weight:800;padding:6px 8px;border-radius:99px;background:#eff2f3;color:#57666c;white-space:nowrap}.pill.success{background:#e4f7ed;color:#147b54}.pill.danger{background:#ffe7e8;color:#b13e46}.pill.warning{background:#fff1d8;color:#976100}.pill.blue{background:#e8f0f9;color:#476f99}.btn{border:0;border-radius:13px;padding:12px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;font-size:13px;min-height:42px;background:var(--navy);color:white}.btn.accent{background:#1da875;color:white}.btn.ghost{color:#173e3d;background:#edf5f1}.btn.outline{border:1px solid #d0dcd7;background:white;color:#224441}.btn.danger{background:#ffe5e8;color:#ae2937}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #3cba8c;outline-offset:2px}.btn.full{width:100%}.btn.smallbtn{min-height:34px;padding:7px 12px;font-size:11px}.muted{color:var(--muted)}.search{width:100%;border:1px solid #dce5e2;padding:14px 15px;border-radius:14px;background:white;color:var(--ink);outline:0;margin:4px 0 12px;font-size:14px}.listrow{padding:14px 2px;border-bottom:1px solid #eef1f0;display:flex;align-items:center;justify-content:space-between;gap:9px}.listrow:last-child{border-bottom:0;padding-bottom:3px}.initial{width:39px;height:39px;display:grid;place-items:center;flex-shrink:0;background:#dcedea;color:#2a6461;border-radius:12px;font-size:13px;font-weight:900}.person{display:flex;gap:10px;align-items:center;min-width:0}.person .big{font-size:13px;overflow-wrap:anywhere}.squad-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rowinfo{display:flex;align-items:center;gap:9px}.note{border-radius:14px;padding:13px 15px;background:#e8f5ef;color:#22624b;font-size:12px;line-height:1.5}.note.warn{background:#fff3de;color:#855b19}.note.danger{background:#ffeaea;color:#923b3d}.tabbar{position:fixed;z-index:20;bottom:0;left:0;right:0;max-width:1100px;margin:auto;display:flex;align-items:stretch;justify-content:space-around;gap:2px;padding:9px 9px calc(env(safe-area-inset-bottom) + 6px);border-top:1px solid #e6ecea;background:#ffffffee;backdrop-filter:blur(18px);box-shadow:0 -6px 18px #263e3310}.tabbar button{background:transparent;border:0;display:grid;place-items:center;gap:4px;font-size:10px;font-weight:800;color:#879497;padding:7px 7px 5px;flex:1;min-width:0}.tabbar button.active{color:#0c9069}.tabbar svg{height:23px;width:23px;stroke-width:1.8}.fixture-list .card{margin:9px 0}.block{display:block}.matchdate{display:inline-block;color:#217b60;font-size:11px;font-weight:900;letter-spacing:.5px;text-transform:uppercase}.divider{height:1px;background:var(--line);margin:16px 0}.field{display:flex;flex-direction:column;gap:7px;margin:13px 0}.field label{color:#4f646b;font-weight:800;font-size:12px}.field input,.field select,.field textarea{width:100%;border:1px solid #d3e0db;border-radius:12px;background:white;color:var(--ink);padding:12px 14px;font-size:14px;min-height:45px}.field textarea{min-height:76px;resize:vertical}.back{border:0;background:none;color:#2e7762;font-weight:800;font-size:13px;padding:2px 0 15px}.choose{border:1px solid #e1eae5;border-radius:13px;padding:11px 12px;margin:7px 0;display:flex;align-items:center;gap:12px;background:white;cursor:pointer}.choose input{width:19px;height:19px;accent-color:#168967}.choose b{font-size:13px}.choose.disabled{opacity:.52;background:#fcf2f2}.choose .pill{margin-left:auto}.photo{width:100%;max-height:260px;object-fit:contain;background:#e9f1f1;border-radius:14px;display:block;border:1px solid #dbe4e3}.photo-placeholder{min-height:100px;display:grid;place-items:center;background:#f1f6f4;border:1px dashed #a4bdb3;border-radius:13px;color:#58756b;font-size:12px;text-align:center;padding:20px}.uploadbox{margin:14px 0}.uploadbox input[type=file]{width:100%;font-size:12px;color:#526b66}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.actions .btn{flex:1}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.empty{padding:30px 18px;text-align:center;color:#647c7b;font-size:13px;line-height:1.7;background:white;border:1px dashed #d2dfdc;border-radius:19px}.empty b{color:#2d414b}.auth-box{max-width:440px;margin:35px auto;padding:22px;background:white;border-radius:20px;border:1px solid #e7eded}.auth-box h2{font-size:20px;letter-spacing:-.4px}.auth-box p{font-size:13px;color:#718087;line-height:1.6}.auth-box input{width:100%;padding:13px;margin:8px 0 13px;border:1px solid #d6e0df;border-radius:12px}.auth-box .btn{width:100%;margin:5px 0}.square{font-variant-numeric:tabular-nums}.checkcount{position:sticky;bottom:77px;z-index:5;padding:11px 13px;margin:12px 0 0;border:1px solid #c9e5d5;border-radius:13px;background:#e8faef;color:#27654d;box-shadow:0 6px 24px #00000010;font-weight:800;font-size:12px}.spacer{height:6px}.tagline{margin-top:15px;font-size:12px;line-height:1.5;color:#a2d6c5}.progress{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:13px}.chiprow{display:flex;gap:7px;flex-wrap:wrap}.chip{border:1px solid #d4e2dc;background:#fff;border-radius:999px;padding:8px 12px;color:#52746d;font-size:11px;font-weight:800}.chip.active{background:#163d37;color:#fff}.error{color:#b43c48;font-weight:700;font-size:12px}.right{text-align:right}.hide{display:none!important}#toast{position:fixed;z-index:100;left:50%;bottom:105px;transform:translate(-50%,18px);width:max-content;max-width:min(94%,490px);background:#123b38;color:white;border-radius:15px;box-shadow:0 12px 45px #042a2b60;padding:13px 18px;font-size:13px;line-height:1.45;opacity:0;pointer-events:none;transition:all .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:720px){.shell{box-shadow:0 0 90px #072d2416}.top{padding:39px 36px;border-radius:0 0 28px 28px}.top h1{font-size:38px}.content{padding:23px 35px}.kpis{gap:16px}.kpi{padding:19px 22px}.kpi b{font-size:34px}.card{padding:22px}.tabbar{left:50%;right:auto;transform:translateX(-50%);width:min(1100px,100%)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* v3: scorecard link and archived roster */
.scorecard-link{border-left:4px solid #1da875}.scorecard-link b{font-size:15px}.scorecard-btn{display:block;text-align:center;margin-top:12px;padding:13px 16px;border-radius:13px;text-decoration:none;font-weight:800;font-size:13px;background:#e5f7ee;color:#126345}.scorecard-btn:focus-visible{outline:3px solid #1da875;outline-offset:2px}

/* v4: screenshot recognition & captain scorecard dashboard */
.stats-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:15px}.stats-kpis .kpi{min-height:90px}.stats-kpis .kpi b{font-size:24px}
.bar-row{display:grid;grid-template-columns:minmax(95px,1.2fr) minmax(110px,2fr) 27px;align-items:center;gap:8px;margin:14px 0}
.bar-name{font-size:11px;font-weight:700;overflow-wrap:anywhere}.bar-track{height:13px;background:#e8f3ee;border-radius:12px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,#16755b,#2bc88b);border-radius:12px;min-width:1px}.bar-row b{text-align:right;font-size:12px}
.stats-table-wrap{overflow:auto;max-width:100%}.stats-table{border-collapse:collapse;width:100%;min-width:420px;font-size:12px}.stats-table th,.stats-table td{padding:10px 8px;text-align:right;border-bottom:1px solid #e8eeee}.stats-table th:first-child,.stats-table td:first-child{text-align:left;min-width:150px}.stats-table th{background:#e8f4ef;font-size:11px}.stats-entry .formgrid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-entry .field{margin-bottom:0}.stats-entry input{padding:9px;min-width:0}
@media (max-width:400px){.stats-kpis .kpi{padding:12px 9px}.stats-kpis .kpi b{font-size:21px}.stats-entry .formgrid.three{gap:6px}}

/* NPCC V5: user-controlled dark appearance. Never affects authentication/data. */
html[data-theme="dark"]{color-scheme:dark;background:#111b24}
html[data-theme="dark"] body{background:#111b24;color:#f2f5f8}
html[data-theme="dark"] .shell,html[data-theme="dark"] .content{background:#111b24}
html[data-theme="dark"] .card,html[data-theme="dark"] .auth-box,html[data-theme="dark"] .empty,html[data-theme="dark"] .note,html[data-theme="dark"] .kpi{background:#1d2a35;color:#f2f5f8;border-color:#3c4e57}
html[data-theme="dark"] .small,html[data-theme="dark"] .tiny,html[data-theme="dark"] .note,html[data-theme="dark"] .field label{color:#c0ced6}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .search{background:#17242f;color:#f7f9fb;border-color:#49616c}
html[data-theme="dark"] .tabbar,html[data-theme="dark"] .chip,html[data-theme="dark"] .listrow,html[data-theme="dark"] .btn.ghost,html[data-theme="dark"] .choose{background:#1d2a35;color:#f2f5f8;border-color:#3c4e57}
html[data-theme="dark"] .kpi small{color:#c0ced6}

/* V5 approved club palette and responsive dashboard hierarchy */
:root{--navy:#561028;--deep:#360b1d;--green:#bd8d34;--orange:#f5ca70;--soft:#fcfaf7;--ink:#222431;--line:#ebdedf}
body{background:#f9f6f4}.shell{background:#fdfbf9}.top{background:linear-gradient(120deg,#48091f 0%,#731d35 72%,#892841 100%)}
.top:after{border-color:#ffc86c25}.top .logo{background:#edc06a;color:#53122c;box-shadow:0 6px 20px #350c2080}
.eyebrow{color:#f3d5a4}.top p,.hello{color:#f6dfe3}.refreshbtn,.avatar{background:#862f4a;border-color:#c47b8c;color:#fff}
.btn.accent{background:#64152f;color:#fff}.btn.ghost{background:#f9edec;color:#6c2740}.btn.outline{border-color:#decfd2;color:#592239}
.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#ca9c41}
.kpi b.green{color:#168668}.card.bordered{border-left-color:#bd8d34}.matchdate,.section-head button,.back{color:#78253f}
.tabbar button.active{color:#731c38}.initial{background:#f5e6de;color:#72273d}.note{background:#fbf0df;color:#6a4122}
.chip.active{background:#64152f}.bar-fill{background:linear-gradient(90deg,#942d48,#e3ad53)}.bar-track{background:#f5e5e3}
.pill.warning{background:#fff0d5;color:#795217}.pill.success{background:#e8f4eb;color:#146443}
.welcome-strip{display:flex;flex-direction:column;gap:5px;padding:10px 3px 17px}.welcome-strip b{font-size:17px}.welcome-strip span{font-size:12px;color:var(--muted)}
.quick-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0}.quick-links button{width:100%;font-size:12px}
.match-summary h2{font-size:20px;margin:8px 0 12px;letter-spacing:-.4px}.fee-group summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none}.fee-group summary::-webkit-details-marker{display:none}.fee-group summary>span:first-child{display:flex;flex-direction:column;gap:5px}.fee-group summary:focus-visible{outline:3px solid #ca9c41;outline-offset:4px;border-radius:7px}
@media(max-width:375px){.tabbar{padding-left:2px;padding-right:2px}.tabbar button{padding-left:1px;padding-right:1px;font-size:9px}.kpi{padding:12px 8px}.kpi small{font-size:10px}.kpi b{font-size:24px}}
html[data-theme="dark"] .welcome-strip span{color:#c9b8c2}
html[data-theme="dark"] .btn.outline{background:#2a202c;color:#f3d9e6;border-color:#694459}
html[data-theme="dark"] .pill.warning{background:#4c391a;color:#ffe8a1}
html[data-theme="dark"] .pill.success{background:#183e34;color:#a5ead0}
html[data-theme="dark"] .section-head button,html[data-theme="dark"] .matchdate,html[data-theme="dark"] .back{color:#e8b8cc}
html[data-theme="dark"] .fee-group summary{color:#f2f5f8}
