:root{--bg:#f3edff;--white:#fff;--purple:#7b52cc;--purple-pale:#e8dcff;--green:#39ff14;--green-pale:#d4ffc7;--pink:#ff6b9d;--yellow:#ffd166;--yellow-pale:#fff4d6;--red:#ff4757;--text:#1a1028;--muted:#5d4880;--win:#00c87a;--shadow:4px 4px 0 0 #1a1028;--shadow-sm:3px 3px 0 0 #1a1028}*{box-sizing:border-box}body{background:radial-gradient(circle at 10% 5%,#fff 0%,var(--bg) 55%);color:var(--text);min-height:100vh;margin:0;font:500 16px/1.5 Inter,sans-serif}h1,h2,h3,button,.chip{font-family:Fredoka,sans-serif}a{color:var(--purple);font-weight:700;text-decoration:none}button,.card{border:2px solid var(--text);box-shadow:var(--shadow);background:#fff;border-radius:16px}.card{margin-bottom:20px;padding:22px;transition:all .1s}.card:hover{box-shadow:var(--shadow-sm);transform:translate(2px,2px)}button{cursor:pointer;background:var(--green);border-radius:12px;min-height:44px;padding:10px 18px;font-size:16px;font-weight:700}button:hover:not(:disabled){box-shadow:none;transform:translate(4px,4px)}button:disabled{opacity:.5;cursor:not-allowed}.secondary{background:#fff}input,select{border:2px solid var(--text);min-height:44px;font:inherit;border-radius:12px;width:100%;padding:9px 12px}input[type=checkbox],input[type=radio]{width:22px;min-height:22px}label{gap:6px;font-weight:700;display:grid}form{gap:16px;display:grid}.auth{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card,.form-card{width:min(500px,100%);margin:auto}.brand{align-items:center;gap:10px;font:700 24px Fredoka;display:flex}.brand img{object-fit:contain;width:48px;height:48px}.login-card header{justify-content:center}.login-card [data-testid=link-sent]{text-align:center}.login-card [data-testid=link-sent] img{width:100px}.error,.negative{color:var(--red)}.positive{color:var(--win)}nav{z-index:10;border:2px solid var(--text);width:min(1180px,100% - 24px);box-shadow:var(--shadow);background:#fff;border-radius:16px;justify-content:space-between;align-items:center;margin:12px auto;padding:10px 18px;display:flex;position:sticky;top:12px}.desktop{align-items:center;gap:24px;display:flex}.bottom{display:none}main{width:min(1120px,100% - 32px);margin:36px auto 100px}.page-head{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-head h1{margin:.35rem 0}.chip{border:2px solid var(--text);background:var(--purple-pale);border-radius:50px;margin-right:6px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-flex}.chip.ncaaf{background:var(--yellow-pale)}.chip.live{background:var(--pink)}.chip.won,.winner{background:var(--green-pale)}.chip.lost{background:#ffe0e3}.dashboard-grid{grid-template-columns:2fr 1fr;gap:24px;display:grid}.contest-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.contest-card{color:var(--text);display:block}.invite code{margin:12px 0;display:block;overflow:hidden}.empty{text-align:center;padding:30px}.empty img{max-width:150px}.chips,.actions,.toolbar{gap:14px;display:flex}.chips .selected{background:var(--green)}.tabs{gap:10px;margin:20px 0;display:flex}.tabs button{background:#fff}.game-row{grid-template-columns:1fr 2fr;align-items:center;gap:20px;display:grid}.pick-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.pick-grid button{padding:8px}.overlay{z-index:30;background:#1a102866;place-items:center;display:grid;position:fixed;inset:0}.pick-slip{width:min(430px,100% - 24px);position:relative}.pick-slip label{align-items:center;margin:12px 0;display:flex}.close{background:#fff;width:44px;padding:0;position:absolute;top:14px;right:14px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:620px}th,td{text-align:left;border-bottom:2px solid var(--purple-pale);padding:12px}[data-testid=winner-badge] img{vertical-align:middle;width:45px}.board-row{grid-template-columns:2fr 1fr 1fr;align-items:center;gap:16px;display:grid}.board-row label{align-items:center;display:flex}.warning{background:var(--yellow-pale);border:2px solid var(--text);padding:8px}.toast{border:2px solid var(--text);box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:12px 20px;position:fixed;bottom:30px;left:50%;transform:translate(-50%)}.loading{place-items:center;min-height:100vh;font:700 24px Fredoka;display:grid}@media (width<=1024px){.contest-grid,.dashboard-grid{grid-template-columns:1fr}}@media (width<=640px){.desktop{display:none}.bottom{z-index:20;border-top:2px solid var(--text);background:#fff;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom a{place-items:center;min-height:52px;display:grid}.page-head{align-items:flex-start;gap:12px}.page-head h1{font-size:28px}.game-row{grid-template-columns:1fr}.pick-grid{grid-template-columns:1fr 1fr}.tabs{overflow-x:auto}.tabs button{white-space:nowrap}.overlay{align-items:end}.pick-slip{border-radius:18px 18px 0 0;width:100%;margin:0}.board-row{grid-template-columns:1fr 1fr}.board-row label{grid-column:1/-1}.toolbar,.actions{flex-wrap:wrap}main{width:min(100% - 24px,1120px);margin-top:24px}nav{top:4px}.brand img{width:36px;height:36px}}.card,.card:hover,button:hover:not(:disabled){box-shadow:var(--shadow);transform:none}button:active:not(:disabled){box-shadow:none;transform:translate(4px,4px)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--purple);outline-offset:3px}.chips button{background:#fff}.chips button.selected{background:var(--green)}.pick-grid button.picked{background:var(--purple);color:#fff}.error-card{background:#ffe0e3}.board-progress{padding:12px 18px}.buy-in{background:var(--yellow)}.user-menu{position:relative}.user-menu summary{cursor:pointer;align-items:center;min-height:44px;font-weight:700;display:flex}.user-dropdown{z-index:3;border:2px solid var(--text);box-shadow:var(--shadow);background:#fff;border-radius:12px;gap:8px;min-width:150px;padding:10px;display:grid;position:absolute;top:44px;right:0}.user-dropdown a{align-items:center;min-height:44px;padding:0 10px;display:flex}.user-dropdown button{white-space:nowrap;background:#fff}.ledger-row{border-bottom:2px solid var(--purple-pale);grid-template-columns:1fr auto auto;align-items:center;gap:16px;padding:14px 0;display:grid}.pay-button{background:var(--green);border:2px solid var(--text);box-shadow:var(--shadow);border-radius:12px;padding:10px 14px}.dashboard-grid>*,.contest-grid>*,.game-row>*,.pick-grid>*{min-width:0}.invite code{overflow-wrap:anywhere;white-space:normal}.bottom a{min-width:44px}input[type=checkbox],input[type=radio]{width:44px;min-width:44px;height:44px;min-height:44px}@media (hover:hover){button:hover:not(:disabled){filter:brightness(.97)}a:hover{text-decoration:underline}}@media (width<=640px){nav .desktop{display:none}.bottom{display:flex}.page-head{flex-direction:column}.ledger-row{grid-template-columns:1fr auto}.ledger-row .pay-button{text-align:center;grid-column:1/-1}.table-wrap{position:relative}.table-wrap th:first-child,.table-wrap td:first-child{z-index:2;background:#fff;position:sticky;left:0}.table-wrap th:nth-child(2),.table-wrap td:nth-child(2){z-index:2;background:#fff;position:sticky;left:62px}.table-wrap:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#7b52cc33);width:20px;height:100%;display:block;position:sticky;bottom:0;right:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.board-progress{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.board-progress>span:first-of-type{color:var(--muted);flex:1}.sort-toggle{justify-content:flex-end;align-items:center;gap:10px;margin:0 0 18px;display:flex}.sort-toggle>span{color:var(--muted);text-transform:uppercase;font-size:13px;font-weight:700}.sort-toggle button{min-height:38px;box-shadow:var(--shadow-sm);background:#fff;padding:6px 12px}.sort-toggle button.selected{background:var(--yellow)}.game-row{grid-template-columns:minmax(250px,1fr) minmax(330px,1.15fr);align-items:end;gap:24px;padding-top:58px;display:grid;position:relative;overflow:hidden}.game-row.top-25{border-top:7px solid var(--yellow);padding-top:53px}.game-row.has-pick{border-left:7px solid var(--purple)}.game-meta{color:var(--muted);justify-content:flex-end;align-items:center;gap:12px;font-size:13px;display:flex;position:absolute;top:15px;left:22px;right:22px}.game-meta strong{color:var(--text)}.top-25-tag{background:var(--yellow);border:2px solid var(--text);border-radius:50px;padding:2px 9px;font:700 12px Fredoka,sans-serif;position:absolute;top:13px;left:20px}.teams-block{gap:12px;display:grid}.team-line{grid-template-columns:32px auto minmax(0,auto) 1fr auto;align-items:center;gap:8px;min-height:44px;display:grid}.team-line img,.team-logo-fallback{object-fit:contain;width:32px;height:32px}.team-logo-fallback{border:2px solid var(--text);background:var(--purple-pale);border-radius:50%;place-items:center;font:700 9px Fredoka;display:grid}.team-line strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.team-line small{color:var(--muted);white-space:nowrap}.team-abbr{display:none}.ap-badge{background:var(--yellow);border:2px solid var(--text);border-radius:50px;padding:1px 6px;font:700 12px Fredoka}.home-marker{font-size:10px;font-weight:800}.market-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.market-head{text-align:center;color:var(--muted);letter-spacing:.08em;font-size:11px;font-weight:800}.market-cell,.market-empty{border:2px solid var(--text);min-height:58px;box-shadow:2px 2px 0 0 var(--text);background:#fff;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;padding:5px;font-size:15px;display:flex}.market-cell small{color:var(--muted);text-transform:uppercase;font:600 10px Inter,sans-serif}.market-cell.picked{background:var(--purple);color:#fff}.market-cell.picked small{color:#fff}.market-empty{color:var(--muted);box-shadow:none;background:#eee}@media (width<=720px){.game-row{grid-template-columns:minmax(0,1fr) minmax(180px,.9fr);gap:12px;padding:55px 12px 14px}.game-row.top-25{padding-top:50px}.game-meta{left:12px;right:12px}.team-name{display:none}.team-abbr{display:inline}.team-line{grid-template-columns:30px auto minmax(0,1fr);gap:5px}.team-line img,.team-logo-fallback{width:30px;height:30px}.team-line>small:not(.home-marker){display:none}.home-marker{grid-column:3}.market-cell,.market-empty{min-height:54px;font-size:13px}.sort-toggle{flex-wrap:wrap;justify-content:flex-start}.sort-toggle>span{width:100%}}
