:root{--ink: #101615;--ink-soft: #26322f;--paper: #f7f3e7;--paper-2: #edf7f2;--court: #c8632d;--court-dark: #8e3f21;--line: #fff9df;--mint: #2fbf9a;--acid: #d7ff44;--blue: #2776c9;--red: #df3b36;--muted: #66716c;--border: rgba(16, 22, 21, .16);--shadow: 0 18px 50px rgba(20, 35, 31, .14);--radius: 8px;font-family:Avenir Next,Trebuchet MS,sans-serif}*{box-sizing:border-box}body{position:relative;min-height:100vh;margin:0;color:var(--ink);background:linear-gradient(90deg,rgba(255,255,255,.28) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.24) 1px,transparent 1px),radial-gradient(circle at 8% 12%,rgba(200,99,45,.3),transparent 28rem),radial-gradient(circle at 90% 8%,rgba(47,191,154,.22),transparent 24rem),linear-gradient(135deg,var(--paper),var(--paper-2) 58%,#eaf2ff);background-size:44px 44px,44px 44px,auto,auto,auto}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:url(/assets/basketball-fresh-bg-B9204gzP.png);background-position:center top;background-repeat:no-repeat;background-size:cover;opacity:.34;filter:saturate(1.08) contrast(1.03)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:#f7f3e747}button,input,select{font:inherit}button{cursor:pointer}.app-shell{position:relative;z-index:1;width:min(1440px,calc(100% - 32px));margin:0 auto;padding:24px 0 48px}.topbar{display:flex;align-items:stretch;justify-content:space-between;gap:18px;min-height:96px}.brand{display:flex;align-items:center;gap:16px;min-width:0}.brand-mark{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;width:104px;height:64px;color:var(--line);background:linear-gradient(90deg,transparent 48%,rgba(255,249,223,.9) 49%,rgba(255,249,223,.9) 51%,transparent 52%),radial-gradient(circle at 50% 50%,transparent 0 23px,rgba(255,249,223,.88) 24px 26px,transparent 27px),linear-gradient(135deg,var(--court),var(--court-dark));border:2px solid rgba(16,22,21,.82);border-radius:var(--radius);box-shadow:6px 6px 0 var(--ink);font-family:Avenir Next Condensed,Impact,sans-serif;font-size:34px;font-weight:900;letter-spacing:0;text-align:center;text-transform:uppercase}.brand h1,.section-head h2{margin:0;font-family:Avenir Next Condensed,Impact,sans-serif;font-weight:900;letter-spacing:0;text-transform:uppercase}.brand h1{font-size:clamp(2.4rem,6vw,5.4rem);line-height:.84}.eyebrow{margin:0 0 6px;color:var(--court-dark);font-size:.76rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.session-box{display:grid;grid-template-columns:minmax(140px,1fr) minmax(120px,1fr) auto auto;align-items:end;gap:10px;max-width:700px;padding:12px;border:2px solid var(--ink);border-radius:var(--radius);background:#ffffffb8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:5px 5px #101615e0}label{display:grid;gap:6px;color:var(--ink-soft);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}input,select{min-height:42px;width:100%;border:1px solid rgba(16,22,21,.28);border-radius:6px;padding:0 12px;color:var(--ink);background:#ffffffdb;outline:none}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2776c92e}.button{min-height:42px;border:2px solid var(--ink);border-radius:6px;padding:0 14px;color:var(--ink);background:#fff;font-weight:900;letter-spacing:.02em;box-shadow:3px 3px #101615db;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.button:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:5px 5px #101615db}.button:disabled{cursor:not-allowed;opacity:.45}.button.primary{background:var(--acid)}.button.secondary{background:var(--mint)}.button.danger{color:#fff;background:var(--red)}.button.ghost{background:transparent;box-shadow:none}.button.ghost-danger{color:var(--red)}.button.wide{width:100%}.role-pill,.chip{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border:1px solid var(--border);border-radius:999px;padding:0 12px;color:var(--ink);background:#ffffffa8;font-size:.78rem;font-weight:900;white-space:nowrap}.label-text{display:block;margin-bottom:5px;color:var(--court-dark);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.session-summary{grid-template-columns:minmax(180px,1fr) auto auto;align-items:center}.session-summary strong,.session-summary small{display:block}.session-summary small{color:var(--muted);font-weight:800}.status-band,.message,.tool-panel,.wide-section{border:2px solid rgba(16,22,21,.9);border-radius:var(--radius);box-shadow:var(--shadow)}.status-band{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:26px 0 18px;padding:18px;background:linear-gradient(90deg,#101615eb,#14302bdb),radial-gradient(circle at 20% 50%,rgba(215,255,68,.24),transparent 30%);color:#fff}.status-band .label{display:block;margin-bottom:5px;color:var(--acid);font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.status-band strong{display:block;font-family:Avenir Next Condensed,Impact,sans-serif;font-size:clamp(1.45rem,2.8vw,2.4rem);line-height:.95;text-transform:uppercase}.status-band p{margin:8px 0 0;color:#ffffffc7}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(86px,1fr));gap:10px}.metric{min-width:86px;padding:10px 12px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);background:#ffffff17;text-align:center}.metric span{display:block;color:var(--acid);font-family:Avenir Next Condensed,Impact,sans-serif;font-size:2rem;font-weight:900;line-height:.9}.metric small{color:#ffffffc7;font-weight:800;text-transform:uppercase}.message{margin:0 0 18px;padding:12px 14px;background:#d7ff44d6;font-weight:900}.message.error{color:#fff;background:#df3b36e6}.dashboard{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(320px,1.1fr);gap:18px}.tool-panel,.wide-section{padding:18px;background:#ffffffb3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.wide-section{grid-column:1 / -1}.section-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:16px}.section-head h2{font-size:clamp(1.8rem,3.4vw,3.25rem);line-height:.86}.registration-form,.admin-grid,.user-form{display:grid;gap:12px}.registration-form{grid-template-columns:1fr 1fr 92px}.registration-form .wide,.admin-grid label{grid-column:1 / -1}.admin-grid,.user-form{grid-template-columns:1fr 1fr;align-items:end}.user-form .wide{grid-column:1 / -1}.notice{min-height:22px;margin:12px 0;color:var(--muted);font-weight:800}.player-list{display:grid;gap:8px;max-height:330px;overflow:auto;padding-right:4px}.player-row,.user-row,.match-card,.standing-box,.team-detail,.empty-state{border:1px solid var(--border);border-radius:var(--radius);background:#ffffffc7}.player-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:8px 10px}.player-row>div{display:flex;align-items:baseline;gap:8px;min-width:0}.user-list{display:grid;gap:8px;margin-top:12px}.user-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:8px 10px}.user-row small{display:block;color:var(--muted);font-weight:800}.player-row small,.team-card small,.match-card small,.detail-row small{color:var(--muted);font-weight:800}.mini-button{min-width:32px;min-height:32px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--red);font-weight:900}.remove-player-button{margin-left:auto;min-height:34px;border:1px solid rgba(223,59,54,.45);border-radius:6px;padding:0 12px;color:#fff;background:var(--red);font-weight:900}.teams-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.34fr);gap:14px;align-items:start}.teams-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.team-card{position:relative;min-height:174px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:#fffc;text-align:left}.team-card:before{content:"";position:absolute;inset:0 auto 0 0;width:8px;background:var(--team-color, var(--court))}.team-card.selected{border-color:var(--ink);box-shadow:inset 0 0 0 2px #d7ff44cc,4px 4px #101615d1}.team-card header{display:flex;align-items:start;justify-content:space-between;gap:10px;margin-left:6px}.team-name{font-family:Avenir Next Condensed,Impact,sans-serif;font-size:1.85rem;font-weight:900;line-height:.9;text-transform:uppercase}.team-card ul{display:grid;gap:8px;margin:14px 0 0 6px;padding:0;list-style:none}.team-card li,.detail-row{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed rgba(16,22,21,.18);padding-bottom:6px}.team-detail{position:sticky;top:14px;padding:14px}.team-detail h3,.standing-box h3{margin:0 0 12px;font-family:Avenir Next Condensed,Impact,sans-serif;font-size:1.65rem;line-height:.9;text-transform:uppercase}.detail-list{display:grid;gap:9px}.detail-row{align-items:center;border-bottom:1px dashed rgba(16,22,21,.18)}.detail-row span{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--acid);font-weight:900}.standings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.standing-box{overflow:auto}.standing-box h3{padding:12px 12px 0}.standing-table{width:100%;border-collapse:collapse}th,td{padding:9px 10px;border-top:1px solid rgba(16,22,21,.1);text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}td{font-weight:800}.phase-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.phase-tab{min-height:34px;border:1px solid var(--border);border-radius:999px;padding:0 12px;background:#ffffffa8;font-weight:900}.phase-tab.active{color:var(--ink);background:var(--acid);border-color:var(--ink)}.matches-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px}.match-card{display:grid;gap:12px;min-height:176px;padding:14px}.match-meta,.match-teams{display:flex;align-items:center;justify-content:space-between;gap:10px}.match-teams{display:grid;grid-template-columns:1fr auto 1fr}.match-team{min-width:0;border:1px solid rgba(16,22,21,.12);border-radius:6px;padding:10px;color:var(--ink);background:#ffffffb8;font:inherit}.match-team:last-child{text-align:right}.team-pick{cursor:pointer;text-align:left;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.team-pick:hover{border-color:#1016157a;box-shadow:3px 3px #1016152e;transform:translate(-1px,-1px)}.team-pick:focus-visible{outline:3px solid rgba(47,191,154,.42);outline-offset:2px}.team-pick:disabled{cursor:not-allowed;opacity:.58;transform:none;box-shadow:none}.score{font-family:Avenir Next Condensed,Impact,sans-serif;font-size:2.3rem;font-weight:900;line-height:.8}.winner{border-color:#2fbf9ad9;background:#2fbf9a38;box-shadow:inset 0 0 0 2px #2fbf9a38}.loser{border-color:#ce4343b8;background:#ce434329;color:#521f1feb;box-shadow:inset 0 0 0 2px #ce434324}.locked-note{min-height:42px;display:flex;align-items:center;color:var(--muted);font-weight:900}.empty-state{min-height:92px;padding:12px;color:var(--muted);border-style:dashed;font-weight:800}@media(max-width:980px){body:before{background-image:url(/assets/basketball-fresh-bg-mobile-BNwwOHpF.png);background-position:center top;opacity:.3}.topbar,.status-band{align-items:stretch;flex-direction:column}.session-box,.dashboard,.teams-layout{grid-template-columns:1fr}.session-box{max-width:none}.metric-row{grid-template-columns:1fr}.team-detail{position:static}}@media(max-width:620px){.app-shell{width:min(100% - 20px,1440px);padding-top:14px}.brand{align-items:flex-start}.brand-mark{width:82px;height:56px;font-size:28px}.registration-form,.admin-grid,.user-form,.match-teams{grid-template-columns:1fr}.match-team:last-child,.score{text-align:left}.phase-tabs{justify-content:flex-start}}
