*{box-sizing:border-box}:root{color:#0d1b2e;background:#f4f6f8;font-family:Archivo,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;letter-spacing:0;--bg: #f4f6f8;--surface: #ffffff;--surface-soft: #edf4fb;--ink: #0d1b2e;--muted: #566476;--subtle: #7f8b9a;--line: rgba(7, 26, 51, .12);--line-strong: rgba(7, 26, 51, .2);--green: #209663;--green-dark: #106542;--green-soft: #edf8f2;--navy: #071a33;--navy-soft: #10233f;--blue-soft: #edf4fb;--coral: #ff574a;--coral-dark: #d73d32;--warning-soft: #fff0ee;--focus: rgba(32, 150, 99, .22);--shadow: 0 18px 45px rgba(7, 26, 51, .08);--shadow-soft: 0 10px 22px rgba(7, 26, 51, .06);--radius: 8px}body{margin:0;min-height:100vh;background:var(--bg);text-rendering:geometricPrecision}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled,select:disabled{cursor:not-allowed;opacity:.58}.app-shell{min-height:100vh}.sidebar{display:none}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:82px;padding:calc(env(safe-area-inset-top) + 20px) 28px 20px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.topbar-title{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;min-width:0}.topbar h1{margin:0;max-width:min(62vw,520px);overflow:hidden;color:var(--ink);font-size:clamp(1.55rem,6vw,2.5rem);font-weight:860;line-height:1.12;text-overflow:ellipsis;white-space:nowrap}.role-line{display:none;grid-column:2;margin-top:-9px;color:var(--muted);font-size:.76rem;font-weight:760}.menu-button{display:none;width:38px;height:38px;align-items:center;justify-content:center;color:var(--navy);background:transparent;border-radius:var(--radius)}.mobile-logo{display:grid;width:54px;height:54px;place-items:center;overflow:hidden;border:1px solid rgba(7,26,51,.14);border-radius:8px;background:var(--navy)}.brand-icon{display:block;width:38px;height:38px;object-fit:contain}.brand-icon-large{width:50px;height:50px}.top-actions,.head-actions{display:flex;gap:8px;align-items:center}.eyebrow{margin:0;color:var(--green);font-size:.7rem;font-weight:860;letter-spacing:.08em;text-transform:uppercase}.screen{min-width:0;width:min(100%,1040px);margin:0 auto;padding:26px 18px 108px}.stack{display:grid;gap:14px;min-width:0}.stack>*,.panel{min-width:0}.hero-panel,.panel,.metric,.leader-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 4px 12px #1322380a}.hero-panel{position:relative;display:flex;min-height:146px;align-items:flex-end;justify-content:space-between;gap:22px;padding:20px;overflow:hidden;color:#fff;background:linear-gradient(135deg,rgba(16,35,63,.97),rgba(22,114,84,.92)),repeating-radial-gradient(circle at 90% 12%,rgba(255,255,255,.18) 0 1px,transparent 1px 22px)}.hero-panel:after{content:"";position:absolute;right:-72px;bottom:-92px;width:260px;height:260px;border:1px solid rgba(255,255,255,.22);border-radius:50%}.hero-panel>*{position:relative;z-index:1}.hero-panel p{margin:0 0 8px;color:#ffffffb8;font-size:.82rem;font-weight:780}.hero-panel h2{margin:0;max-width:620px;font-size:clamp(1.38rem,7vw,2rem);line-height:1.08}.hero-panel span{display:block;margin-top:10px;color:#ffffffb8;font-size:.86rem;font-weight:760}.hero-panel svg{flex:0 0 auto;color:#93f0c8}.metric-grid,.leader-grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(228px,1fr);grid-template-columns:none;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none}.metric-grid::-webkit-scrollbar{display:none}.metric,.leader-card{position:relative;display:grid;min-width:0;min-height:128px;align-content:center;gap:0;padding:0;overflow:hidden;scroll-snap-align:start}.metric-body{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:18px;min-width:0;padding:22px}.metric-action{display:flex;min-height:46px;align-items:center;justify-content:space-between;padding:0 18px;border-top:1px solid var(--line);color:var(--green-dark);background:#ffffff;font-size:.84rem;font-weight:820;text-align:left}.metric-action:hover{background:var(--surface-soft)}.metric span,.leader-card span,.standing-row span,.player-row span,.game-row span,.money-row span,.muted{color:var(--muted);font-size:.8rem}.form-hint{margin:0;padding:2px 0 4px;line-height:1.45}.metric strong{overflow:hidden;color:var(--navy);font-size:1.45rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.metric small{display:block;margin-top:3px;color:var(--muted);font-size:.86rem;font-weight:650}.metric-icon{display:grid;width:56px;height:56px;place-items:center;border-radius:var(--radius);color:#fff;background:var(--green)}.metric-icon.navy{background:var(--navy)}.metric-icon.money{background:var(--green-dark)}.mini-trend{width:126px;height:54px;background:linear-gradient(170deg,transparent 0 20%,rgba(22,114,84,.14) 20% 100%),linear-gradient(140deg,transparent 0 14%,var(--green) 14% 16%,transparent 16% 30%,var(--green) 30% 32%,transparent 32% 46%,var(--green) 46% 48%,transparent 48% 62%,var(--green) 62% 64%,transparent 64%);opacity:.9}.donut{position:relative;width:76px;height:76px;border-radius:50%;background:conic-gradient(var(--navy) 0 58%,var(--green) 58% 82%,#d8e0e7 82% 100%)}.donut:after{content:"";position:absolute;top:13px;right:13px;bottom:13px;left:13px;border-radius:50%;background:#ffffff}.metric-percent{display:grid;width:76px;height:76px;place-items:center;border:8px solid var(--green);border-left-color:#d8e0e7;border-radius:50%;color:var(--green);font-size:1.05rem;font-weight:920}.metric:nth-child(2) strong{color:var(--green)}.metric:nth-child(3) strong{color:var(--coral)}.panel{padding:14px}.panel.centered{display:grid;min-height:190px;place-items:center;color:var(--green);font-weight:820}.login-panel{display:grid;gap:18px;max-width:620px;margin:28px auto 0;padding:22px}.login-panel h2{margin:4px 0 7px;font-size:1.55rem;line-height:1.12}.login-panel .primary{padding:0 14px}.demo-users{display:grid;gap:8px}.demo-users button{display:grid;gap:4px;min-height:58px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfcfd;color:var(--ink);text-align:left;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.demo-users button:hover{border-color:#16725452;box-shadow:0 6px 14px #1322380f;transform:translateY(-1px)}.demo-users span{color:var(--muted);font-size:.82rem}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.section-head h3{margin:0;color:var(--ink);font-size:1rem;font-weight:860}.home-overview{position:relative;overflow:hidden}.home-overview:after{content:"";position:absolute;top:-58px;right:4%;width:min(360px,48vw);height:230px;border:2px solid rgba(22,114,84,.16);border-radius:52% 52% 8px 8px;transform:rotate(-8deg)}.home-title-block{position:relative;z-index:1;display:grid;gap:12px}.home-title-block h2{margin:0;color:var(--navy);font-size:clamp(1.35rem,5.5vw,1.85rem);line-height:1.05}.home-title-block p{margin:-6px 0 0;color:var(--green);font-size:1rem;font-weight:820}.season-meta{display:flex;flex-wrap:wrap;gap:14px 28px;margin-top:8px}.season-meta span{display:inline-flex;align-items:center;gap:8px;color:var(--navy);font-size:.9rem;font-weight:650}.season-meta svg{color:var(--green)}.head-actions{justify-content:flex-end;min-width:0}.icon-button,.primary,.secondary{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius);font-size:.88rem;font-weight:820;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}.icon-button{width:42px;color:var(--navy);background:var(--surface);border:1px solid var(--line-strong)}.icon-button:hover,.secondary:hover,.primary:hover{transform:translateY(-1px)}.icon-button:hover{border-color:#16725457;color:var(--green);box-shadow:0 6px 14px #1322380f}.icon-button.danger{color:#b42318;background:var(--warning-soft);border-color:#e85d4f3d}.primary{color:#fff;background:var(--coral);box-shadow:none}.primary:hover{background:var(--coral-dark)}.secondary{color:var(--green-dark);background:var(--green-soft)}.secondary:hover{background:#d9efe7}.secondary.danger{color:#b42318;background:var(--warning-soft)}.secondary.danger:hover{background:#ffe4df}.small{min-height:34px;padding:0 11px;font-size:.8rem}.form-grid,.inline-form{display:grid;gap:10px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-form{grid-template-columns:1fr 1fr}input,select{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius);outline:none;background:#fbfcfd;color:var(--ink);font-size:.9rem;font-weight:650}input::placeholder{color:#99a3ae}input:focus,select:focus{border-color:#1672549e;background:#ffffff;box-shadow:0 0 0 3px var(--focus)}.form-error{grid-column:1 / -1;margin:0;padding:10px 12px;border:1px solid rgba(232,93,79,.28);border-radius:var(--radius);color:#9d2e25;background:var(--warning-soft);font-size:.86rem;font-weight:760}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.file-field:focus-within,.player-select:focus-visible,.jersey-row:focus-visible,.user-main:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.compact-select{max-width:180px;min-height:36px;font-size:.82rem}.chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip{padding:7px 10px;border-radius:999px;color:var(--green-dark);background:var(--green-soft);font-size:.8rem;font-weight:820}.tournament-list{display:grid;gap:10px}.tournament-row{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfcfd}.tournament-row-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.tournament-row-main strong,.tournament-row-main span{display:block;min-width:0}.tournament-row-main strong{color:var(--navy);font-size:.98rem;font-weight:860}.tournament-row-main span,.tournament-meta{color:var(--muted);font-size:.8rem;font-weight:650}.tournament-badges,.tournament-meta,.tournament-actions,.inline-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tournament-badges{justify-content:flex-end}.tournament-meta{gap:8px 14px}.tournament-actions,.inline-actions{justify-content:flex-end}.inline-actions{min-height:44px}.tournament-edit-form{padding-top:2px}.status-badge{display:inline-flex;min-height:28px;align-items:center;padding:0 9px;border-radius:999px;color:var(--navy);background:var(--blue-soft);font-size:.76rem;font-weight:860;white-space:nowrap}.status-draft{color:#33445b;background:#eef2f6}.status-active{color:var(--green-dark);background:var(--green-soft)}.status-finished{color:#6f352f;background:var(--warning-soft)}.team-identity{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;align-items:center;margin-bottom:12px;padding:10px;border:1px solid rgba(22,114,84,.1);border-radius:var(--radius);background:linear-gradient(135deg,var(--surface-soft),#ffffff)}.team-identity img,.team-logo-fallback{width:56px;height:56px;border-radius:var(--radius)}.team-identity img{object-fit:cover}.team-logo-fallback{display:grid;place-items:center;color:#fff;background:var(--navy);font-weight:900;text-transform:uppercase}.team-identity strong,.team-identity span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-identity span{margin-top:3px;color:var(--muted);font-size:.82rem}.table-list,.roster-list,.leader-list,.fixture-list,.users-list,.lineup-list,.standings-groups,.standings-group,.playoff-bracket,.bracket-round{display:grid}.table-list,.roster-list,.leader-list{gap:8px}.standings-groups{gap:14px}.standings-group{gap:8px}.group-title,.fixture-summary{display:flex;align-items:center;justify-content:space-between;gap:8px}.group-title{padding:8px 10px;border-radius:var(--radius);color:var(--green-dark);background:var(--green-soft)}.group-title span{color:var(--green);font-size:.78rem;font-weight:820}.standings-filter{display:flex;align-items:center;gap:10px}.standings-filter span{color:var(--muted);font-size:.84rem}.standings-filter select{min-width:150px;min-height:36px}.standing-table{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff}.standing-header,.standing-row{display:grid;grid-template-columns:46px minmax(160px,1.45fr) repeat(6,minmax(46px,.5fr));align-items:center;min-height:52px;padding:0 12px;color:var(--navy)}.standing-header{min-height:34px;padding:0 12px;color:#fff;background:var(--navy);font-size:.78rem;font-weight:820;text-transform:uppercase}.standing-header span,.standing-row>span,.standing-row em{text-align:center;font-size:.9rem;font-weight:650}.standing-team{display:flex;min-width:0;align-items:center;gap:10px}.standing-table .standing-row>b{width:auto;height:auto;color:var(--green);background:transparent;font-size:1rem;font-weight:920}.team-badge{display:grid;width:30px;height:30px;flex:0 0 auto;place-items:center;border-radius:var(--radius);color:#fff;background:var(--green);font-size:.64rem;font-weight:900}.panel-link{display:flex;min-height:42px;align-items:center;justify-content:space-between;padding:0 14px;color:var(--navy);font-size:.86rem;font-weight:700;text-decoration:none}.panel-link:after{content:"->";font-size:1rem}.home-games{overflow:visible}.upcoming-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.upcoming-card{position:relative;display:grid;min-width:0;min-height:124px;align-content:center;justify-items:center;gap:8px;padding:15px 12px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff;text-align:center}.upcoming-card span{color:var(--green);font-size:.74rem;font-weight:850;line-height:1.25}.upcoming-card strong{max-width:100%;overflow:hidden;color:var(--navy);font-size:.96rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.upcoming-card small{max-width:100%;overflow:hidden;color:var(--muted);font-size:.8rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.upcoming-card b{color:var(--coral);font-size:1rem;line-height:1;white-space:nowrap}.fixture-summary{flex-wrap:wrap;margin-top:12px}.fixture-summary span{padding:7px 10px;border-radius:999px;color:var(--navy);background:var(--blue-soft);font-size:.8rem;font-weight:840}.tournament-fixture{min-width:0}.tournament-fixture .fixture-summary{gap:8px}.tournament-fixture .fixture-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:10px;margin-top:14px}.tournament-fixture .fixture-row{min-width:0;min-height:76px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff}.tournament-fixture .fixture-row>div{min-width:0}.tournament-fixture .fixture-row strong,.tournament-fixture .fixture-row span{white-space:normal}.tournament-fixture .fixture-row strong{line-height:1.2}.tournament-fixture .fixture-row span{line-height:1.25}.tournament-fixture .fixture-row b{align-self:start;padding:6px 9px;border-radius:var(--radius);color:var(--navy);background:var(--blue-soft);font-size:.78rem}.fixture-list,.users-list,.lineup-list{gap:8px;margin-top:12px}.fixture-row,.standing-row,.money-row,.game-row,.player-row,.leader-row,.user-row{border-top:1px solid var(--line)}.fixture-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:56px;padding-top:10px}.fixture-row strong,.fixture-row span,.standing-row strong,.money-row strong,.game-row strong,.player-row strong,.leader-row strong,.leader-row span,.user-main strong,.user-main span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixture-row span{margin-top:3px;color:var(--muted);font-size:.8rem}.fixture-row b,.money-row b,.game-row b{color:var(--navy);font-size:.84rem;font-weight:900;white-space:nowrap}.jersey-summary-panel,.jersey-report-panel,.registration-summary-panel,.registration-report-panel{grid-column:1 / -1}.jersey-summary-grid,.registration-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.registration-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.jersey-summary-grid article,.registration-summary-grid article{display:grid;min-height:86px;align-content:center;gap:5px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(135deg,#fbfcfd,var(--surface-soft))}.jersey-summary-grid span,.registration-summary-grid span{color:var(--muted);font-size:.76rem;font-weight:860;text-transform:uppercase}.jersey-summary-grid strong,.registration-summary-grid strong{min-width:0;overflow:hidden;color:var(--navy);font-size:1.35rem;font-weight:920;text-overflow:ellipsis;white-space:nowrap}.jersey-table,.registration-table{display:grid;gap:0;overflow-x:auto}.jersey-header,.jersey-row{display:grid;grid-template-columns:minmax(190px,1.35fr) minmax(130px,.9fr) 76px 104px 104px 108px;align-items:center;min-width:780px;gap:10px;padding:0 12px}.registration-header,.registration-row{display:grid;grid-template-columns:minmax(190px,1.35fr) minmax(130px,.9fr) 104px 104px 104px 108px;align-items:center;min-width:780px;gap:10px;padding:0 12px}.jersey-header,.registration-header{min-height:38px;border-radius:var(--radius) var(--radius) 0 0;color:#fff;background:var(--navy);font-size:.76rem;font-weight:860;text-transform:uppercase}.jersey-row,.registration-row{min-height:56px;border-top:1px solid var(--line);background:#ffffff;color:inherit;text-align:left}.jersey-row:hover,.jersey-row:focus,.registration-row:hover,.registration-row:focus{outline:none;background:var(--surface-soft)}.jersey-row strong,.jersey-row span,.jersey-row b,.registration-row strong,.registration-row span,.registration-row b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jersey-row strong,.registration-row strong{color:var(--ink);font-size:.88rem}.jersey-row span,.jersey-row b,.registration-row span,.registration-row b{color:var(--muted);font-size:.82rem;font-weight:760}.jersey-row b,.registration-row b{color:var(--navy);font-weight:920}.jersey-row em,.registration-row em{justify-self:start;padding:6px 8px;border-radius:var(--radius);font-size:.76rem;font-style:normal;font-weight:880;white-space:nowrap}.status-paid{color:var(--green-dark);background:var(--green-soft)}.status-partial{color:#8a3d04;background:#fff4df}.status-pending,.status-not_ordered{color:#b42318;background:var(--warning-soft)}.playoff-bracket{gap:12px;margin-top:18px}.tournament-fixture .playoff-bracket{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));align-items:start;gap:14px}.bracket-head{display:grid;gap:3px}.tournament-fixture .bracket-head{grid-column:1 / -1}.bracket-head strong{color:var(--ink)}.bracket-head span{color:var(--muted);font-size:.8rem}.bracket-round{gap:8px}.bracket-round h4{margin:0;color:var(--green-dark);font-size:.82rem;letter-spacing:.04em;text-transform:uppercase}.bracket-slot{display:grid;gap:7px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfcfd;min-width:0}.slot-title,.slot-team,.slot-winner{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.slot-title span,.slot-team small,.slot-winner span{color:var(--muted);font-size:.76rem;font-weight:820}.slot-team{min-height:38px;padding:8px 10px;border-radius:var(--radius);background:#ffffff}.slot-team.placeholder{color:var(--subtle);background:#eef2f5}.slot-team span,.slot-winner strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-winner{padding-top:4px;color:var(--green-dark)}.money-row,.game-row,.player-row{display:grid;align-items:center;gap:4px 10px;min-height:58px;padding:10px 0}.money-row,.game-row{grid-template-columns:1fr auto}.standing-row>b,.leader-row b{display:grid;width:28px;height:28px;place-items:center;border-radius:var(--radius);color:var(--green-dark);background:var(--green-soft);font-size:.82rem}.standing-row em,.leader-row em{color:var(--navy);font-style:normal;font-weight:920;white-space:nowrap}.money-row strong,.game-row strong,.player-row strong{color:var(--ink)}.player-row{grid-template-columns:42px minmax(0,1fr)}.player-select{width:100%;border:0;background:transparent;color:inherit;text-align:left}.player-select:hover,.player-select:focus{outline:none;background:var(--surface-soft)}.avatar,.leader-avatar,.detail-avatar{display:grid;place-items:center;border-radius:var(--radius);color:#fff;background:var(--green);font-weight:900}.avatar{width:42px;height:42px}.photo-avatar,.detail-photo{object-fit:cover}.detail-grid{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;align-items:center}.detail-avatar{width:56px;height:56px;font-size:1.1rem}.detail-title{display:grid;gap:4px}.detail-title strong{min-width:0;overflow:hidden;font-size:1.05rem;text-overflow:ellipsis;white-space:nowrap}.detail-title span{color:var(--muted);font-size:.84rem}.detail-grid dl{grid-column:1 / -1;display:grid;gap:8px;margin:4px 0 0}.detail-grid dl div{display:flex;justify-content:space-between;gap:12px;padding-top:8px;border-top:1px solid var(--line)}.detail-grid dt{color:var(--muted);font-size:.8rem}.detail-grid dd{margin:0;color:var(--ink);font-size:.86rem;font-weight:820;text-align:right}.edit-player-form,.edit-team-form{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:6px}.file-field{position:relative;display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:0 12px;border:1px dashed rgba(22,114,84,.42);border-radius:var(--radius);overflow:hidden;color:var(--green-dark);background:var(--surface-soft);font-size:.88rem;font-weight:820}.file-field span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-field input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0}.leader-controls{display:grid;grid-template-columns:repeat(2,minmax(0,180px));gap:8px;margin-top:12px}.leader-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px;overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--radius)}.leader-tabs button{min-height:38px;color:var(--navy);background:#ffffff;border-right:1px solid var(--line);font-size:.84rem;font-weight:820}.leader-tabs button:last-child{border-right:0}.leader-tabs button.active{color:#fff;background:var(--green)}.leader-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 6px;padding-bottom:8px;border-bottom:1px solid var(--line)}.leader-summary strong{font-size:.92rem}.leader-summary span{min-width:0;overflow:hidden;color:var(--muted);font-size:.8rem;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.leader-row{display:grid;grid-template-columns:30px 38px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:58px;padding:9px 0}.leader-row img,.leader-avatar{width:38px;height:38px;border-radius:var(--radius)}.leader-row img{object-fit:cover}.leader-avatar{font-size:.78rem}.leader-row span{margin-top:2px;color:var(--muted);font-size:.8rem}.toggle{display:flex;min-height:44px;align-items:center;gap:10px;color:#33445b;font-size:.9rem;font-weight:760}.toggle input{width:18px;min-height:18px}.users-panel,.lineup-panel{grid-column:1 / -1}.user-row{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:10px;align-items:center;padding:9px 0}.user-main{display:grid;gap:3px;min-width:0;border:0;background:transparent;color:inherit;text-align:left}.user-main span{color:var(--muted);font-size:.82rem}.lineup-row{display:grid;grid-template-columns:78px minmax(180px,1fr) 96px;gap:8px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfcfd}.lineup-row input,.lineup-row select{min-height:40px;background:#ffffff}.lineup-field{display:grid;gap:5px;min-width:0}.lineup-field span{color:var(--muted);font-size:.72rem;font-weight:860;text-transform:uppercase}.bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:30;display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));padding:8px 8px calc(env(safe-area-inset-bottom) + 8px);background:rgba(255,255,255,.94);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 -16px 40px #13223814}.bottom-nav button{display:grid;min-height:54px;place-items:center;gap:3px;border-radius:var(--radius);color:var(--muted);background:transparent;font-size:.72rem;font-weight:820}.bottom-nav button.active{color:var(--green-dark);background:var(--green-soft)}.toast{position:fixed;right:14px;bottom:92px;left:14px;z-index:40;width:min(420px,calc(100% - 28px));margin:0 auto;padding:13px 16px;border-radius:var(--radius);color:#fff;background:var(--navy);font-weight:820;text-align:center;box-shadow:0 10px 24px #1322382e}textarea{width:100%;min-height:96px;padding:12px;border:1px solid var(--line-strong);border-radius:var(--radius);outline:none;resize:vertical;background:#fbfcfd;color:var(--ink);font-size:.9rem;font-weight:650;line-height:1.45}textarea::placeholder{color:#99a3ae}textarea:focus{border-color:#1672549e;background:#ffffff;box-shadow:0 0 0 3px var(--focus)}.public-shell{min-height:100vh;background:#ffffff}.public-topbar{position:sticky;top:0;z-index:30;display:flex;min-height:70px;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;color:#fff;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.12)}.public-brand{display:inline-flex;min-width:0;align-items:center;gap:10px;color:#fff;text-decoration:none}.public-brand .brand-icon{width:38px;height:38px}.public-brand strong{overflow:hidden;font-size:.98rem;font-weight:880;text-overflow:ellipsis;white-space:nowrap}.public-topbar nav{display:none;gap:16px}.public-topbar nav a{color:#ffffffc2;font-size:.84rem;font-weight:820;text-decoration:none}.public-topbar nav a:hover,.public-topbar nav a:focus-visible{color:#fff}.public-main{width:min(100%,1160px);margin:0 auto;padding:24px 16px 64px}.public-hero{display:grid;gap:22px;padding:24px;border-radius:10px;color:#fff;background:var(--navy)}.public-kicker{display:inline-flex;margin-bottom:12px;color:#ffffffbd;font-size:.82rem;font-weight:820}.public-hero h1{margin:0;max-width:760px;font-size:clamp(2rem,5vw,4rem);line-height:1.03;text-wrap:balance}.public-hero p{max-width:680px;margin:14px 0 0;color:#ffffffc7;font-size:1rem}.public-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.public-cta{min-height:42px;padding-inline:14px;text-decoration:none}.public-scoreboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.public-scoreboard article{min-width:0;padding:14px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:rgba(255,255,255,.1)}.public-scoreboard span,.public-scoreboard small{display:block;color:#ffffffb8;font-size:.76rem;font-weight:780}.public-scoreboard strong{display:block;margin-top:6px;font-size:1.8rem;line-height:1}.public-sponsors{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.public-sponsors span{color:var(--muted);font-size:.78rem;font-weight:820}.public-sponsors a{display:inline-flex;gap:6px;align-items:center;padding:7px 10px;border-radius:999px;color:var(--green-dark);background:var(--green-soft);font-size:.84rem;font-weight:860;text-decoration:none}.public-sponsors small{color:var(--muted);font-size:.72rem}.public-grid,.portal-columns{display:grid;gap:14px}.public-grid{margin-top:14px}.public-section h2,.public-registration h2{margin:0;color:var(--navy);font-size:1rem}.public-match-list,.public-news-list,.public-leaders,.compact-list,.registration-submission-list{display:grid;gap:9px}.public-match,.public-news-list article,.public-leaders article,.compact-list article,.registration-submission-row{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.public-match{display:grid;gap:4px}.public-match span,.public-match small,.public-news-list span,.public-news-list p,.public-leaders span,.compact-list span,.registration-submission-row span,.registration-submission-row small{margin:0;color:var(--muted);font-size:.8rem;font-weight:700}.public-match strong,.public-news-list strong,.public-leaders strong,.compact-list strong,.registration-submission-row strong{color:var(--ink);font-weight:860}.public-standings{display:grid;gap:6px}.public-standing-head,.public-standing-row{display:grid;grid-template-columns:minmax(0,1fr) 44px 54px 52px;gap:8px;align-items:center}.public-standing-head{color:var(--muted);font-size:.75rem;font-weight:860}.public-standing-row{min-height:42px;padding:0 8px;border-radius:8px;background:#fbfcfd;font-size:.86rem}.public-standing-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.public-team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.public-team-grid article{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.public-team-grid img,.public-team-grid .team-logo-fallback{width:46px;height:46px;border-radius:8px}.public-team-grid img{object-fit:cover}.public-team-grid span{color:var(--muted);font-size:.8rem;font-weight:720}.public-registration{display:grid;gap:16px;margin-top:14px}.public-registration p{margin:8px 0 0;color:var(--muted)}.form-success{grid-column:1 / -1;margin:0;padding:10px 12px;border-radius:8px;color:var(--green-dark);background:var(--green-soft);font-weight:780}.portal-share-panel,.stack>.portal-columns{grid-column:1 / -1}.portal-link-box{display:grid;gap:6px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.portal-link-box span,.portal-link-box p{margin:0;color:var(--muted);font-size:.84rem;font-weight:720}.portal-link-box strong{overflow-wrap:anywhere;color:var(--navy)}.registration-submission-row{display:grid;gap:12px}.submission-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.submission-actions em{padding:6px 8px;border-radius:8px;font-size:.76rem;font-style:normal;font-weight:880}.box-score-table{display:grid;gap:6px;margin-top:12px;overflow-x:auto}.box-score-head,.box-score-row{display:grid;grid-template-columns:minmax(110px,1fr) repeat(15,42px) 42px 42px 42px;gap:4px;align-items:center;min-width:900px}.box-score-head{color:var(--muted);font-size:.74rem;font-weight:860}.box-score-row{min-height:38px;padding:0 8px;border-radius:8px;background:#fbfcfd;font-size:.82rem;text-align:center}.box-score-row strong{min-width:0;overflow:hidden;color:var(--ink);text-align:left;text-overflow:ellipsis;white-space:nowrap}.status-approved{color:var(--green-dark);background:var(--green-soft)}.status-rejected{color:#b42318;background:var(--warning-soft)}@media (max-width: 430px){.form-grid,.edit-player-form,.edit-team-form,.tournament-edit-form{grid-template-columns:1fr}.tournament-row-main,.tournament-actions,.inline-actions{align-items:stretch;flex-direction:column}.tournament-badges{justify-content:flex-start}.tournament-actions .small,.inline-actions .small{width:100%}.topbar{align-items:flex-start;min-height:108px;padding:calc(env(safe-area-inset-top) + 18px) 20px 18px}.topbar-title{grid-template-columns:52px minmax(0,1fr);gap:12px}.leader-controls{grid-template-columns:1fr}.head-actions{flex-wrap:wrap}.small,.leader-tabs button{min-height:44px}.topbar h1{max-width:145px;font-size:1.58rem}.top-actions{gap:10px}.top-actions .icon-button{width:50px;min-height:50px}.top-actions .icon-button span{display:none}.screen{padding:24px 16px 96px}.home-title-block{display:grid;gap:8px}.home-overview:after,.season-meta{display:none}.home-title-block h2{font-size:1.45rem}.home-title-block p{color:var(--green);font-size:.95rem}.metric-grid{grid-auto-flow:initial;grid-auto-columns:initial;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-inline:0;padding:0;overflow:visible}.metric{grid-template-columns:1fr;min-height:172px;align-content:start}.metric-body{grid-template-columns:1fr;gap:9px;padding:12px 10px}.metric-action{min-height:42px;padding-inline:10px;font-size:.72rem}.metric span{font-size:.72rem;font-weight:850;text-transform:uppercase}.metric strong{font-size:1.16rem}.metric small{font-size:.74rem}.metric-icon{width:44px;height:44px;border-radius:8px}.mini-trend{width:74px;height:22px}.donut,.metric-percent{width:52px;height:52px}.donut:after{top:9px;right:9px;bottom:9px;left:9px}.metric-percent{border-width:6px;font-size:.78rem}.home-standings .section-head,.home-leaders .section-head{align-items:end}.upcoming-grid{grid-auto-flow:column;grid-auto-columns:minmax(142px,1fr);grid-template-columns:none;overflow-x:auto;padding-bottom:4px}.standings-filter span{display:none}.standing-table{overflow:hidden}.standing-header,.standing-row{grid-template-columns:28px minmax(88px,1fr) repeat(6,32px);min-width:0;padding-inline:10px}.standing-header{font-size:.66rem}.standing-row>span,.standing-row em{font-size:.76rem}.team-badge{display:none}.standing-team{gap:0}.leader-tabs{grid-template-columns:repeat(3,minmax(0,1fr));overflow-x:auto}.leader-row{grid-template-columns:28px 42px minmax(0,1fr) auto}.jersey-summary-grid,.registration-summary-grid{grid-template-columns:1fr}.lineup-row{grid-template-columns:72px minmax(0,1fr);align-items:end}.lineup-player{grid-column:2}.lineup-position{grid-column:1}}@media (min-width: 760px){.public-topbar{padding-inline:28px}.public-topbar nav{display:flex}.public-hero{grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);align-items:end;padding:34px}.public-grid,.portal-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.public-registration{grid-template-columns:minmax(240px,.55fr) minmax(0,1fr);align-items:start}.screen{padding-inline:22px}.stack{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.home-overview,.metric-grid,.stack>.panel:first-child,.stack>.tournaments-panel,.lineup-panel,.users-panel,.jersey-summary-panel,.jersey-report-panel,.registration-summary-panel,.registration-report-panel{grid-column:1 / -1}.login-panel{margin-top:52px}}@media (min-width: 1040px){.app-shell.has-sidebar{display:grid;grid-template-columns:188px minmax(0,1fr);grid-template-rows:auto 1fr}.sidebar{position:sticky;top:0;z-index:25;display:grid;grid-row:1 / span 2;min-height:100vh;grid-template-rows:auto 1fr auto;gap:28px;padding:24px 6px;background:linear-gradient(180deg,rgba(32,150,99,.16),transparent 46%),var(--navy);border-right:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-lockup{display:grid;justify-items:center;min-height:116px}.league-logo{display:grid;width:136px;min-height:112px;place-items:center;align-content:center;gap:6px;padding:12px 10px;border:1px solid rgba(255,255,255,.16);border-radius:10px;color:#fff;background:rgba(255,255,255,.06);box-shadow:none}.league-logo .brand-icon{width:52px;height:52px}.league-logo strong{color:#fff;font-size:1.02rem;font-weight:950;line-height:1;text-shadow:none}.league-logo small{color:#ffffff9e;font-size:.68rem;font-weight:900}.side-nav{display:grid;align-content:start;gap:6px}.side-nav button{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:center;min-height:52px;padding:0 20px;border-radius:4px;color:#ffffffad;background:transparent;font-size:.9rem;font-weight:820;text-align:left}.side-nav button:hover{color:#fff;background:rgba(255,255,255,.08)}.side-nav button.active{color:#fff;background:var(--green);box-shadow:none}.side-nav span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-summary{display:none;gap:5px;padding:14px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);background:rgba(255,255,255,.08)}.sidebar-summary span,.sidebar-summary small{color:#ffffffad;font-size:.78rem;font-weight:760}.sidebar-summary strong{color:#fff;font-size:2rem;line-height:1}.topbar{grid-column:1 / -1;grid-row:1;min-height:68px;padding:0 28px}.app-shell.has-sidebar .topbar{grid-column:2}.topbar-title{grid-template-columns:38px minmax(0,1fr)}.menu-button{display:inline-flex}.mobile-logo{display:none}.app-shell:not(.has-sidebar) .topbar-title{grid-template-columns:54px minmax(0,1fr)}.app-shell:not(.has-sidebar) .mobile-logo{display:grid}.app-shell:not(.has-sidebar) .topbar h1{max-width:none;font-size:1.72rem}.topbar h1{max-width:620px;font-size:1.45rem}.top-actions .icon-button{width:auto;min-height:40px;padding-inline:12px;border-color:transparent;background:transparent;box-shadow:none}.top-actions .icon-button span{display:inline}.screen{grid-column:2;grid-row:2;width:100%;margin:0;padding:20px 30px 42px}.bottom-nav{display:none}.stack{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.home-overview{grid-column:span 12;min-height:110px;padding:2px 0 6px}.metric-grid{grid-column:span 12;grid-auto-flow:initial;grid-auto-columns:initial;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;overflow:visible}.metric{min-height:164px}.stack>.panel{grid-column:span 6}.stack>.panel:first-child,.stack>.tournaments-panel,.lineup-panel,.home-standings,.home-leaders,.stack>.home-games,.stack>.tournament-fixture,.users-panel,.jersey-summary-panel,.jersey-report-panel,.registration-summary-panel,.registration-report-panel{grid-column:span 12}.stack>.jersey-order-panel{grid-column:span 4}.stack>.jersey-report-panel{grid-column:span 8}.panel{padding:16px}.leader-controls{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid,.edit-player-form,.edit-team-form{grid-template-columns:repeat(3,minmax(0,1fr))}.playoff-bracket{grid-template-columns:repeat(2,minmax(0,1fr))}.bracket-head{grid-column:1 / -1}}@media (min-width: 1280px){.stack>.panel{grid-column:span 4}.stack>.panel:first-child,.stack>.tournaments-panel,.lineup-panel,.stack>.home-games,.stack>.tournament-fixture,.users-panel,.jersey-summary-panel,.jersey-report-panel,.registration-summary-panel,.registration-report-panel{grid-column:span 12}.stack>.jersey-order-panel{grid-column:span 4}.stack>.jersey-report-panel{grid-column:span 8}.stack>.home-standings,.stack>.home-leaders{grid-column:span 6}.metric-grid{grid-column:span 12;grid-template-columns:repeat(3,minmax(0,1fr))}.metric{min-height:164px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
