@import"https://fonts.googleapis.com/css2?family=Prompt:wght@400;500;600;700&display=swap";:root{--brand-50: #FFF2F2;--brand-100: #FFD6D6;--brand-200: #FFB3B3;--brand-500: #F50201;--brand-600: #D40000;--brand-700: #A80000;--gray-50: #F8F8FA;--gray-100: #F1F1F5;--gray-200: #E4E4EC;--gray-300: #CCCCD8;--gray-400: #9999AD;--gray-500: #70708A;--gray-600: #52526A;--gray-700: #3A3A50;--gray-800: #27272F;--gray-900: #16161E;--success: #0AB27D;--success-light: #E8FAF5;--warning: #F5A623;--warning-light: #FEF6E8;--bg: var(--gray-50);--card: #ffffff;--fg: var(--gray-900);--muted: var(--gray-500);--line: var(--gray-200);--r-md: 6px;--r-lg: 8px;--r-xl: 12px;--r-2xl: 16px;--shadow-sm: 0 1px 2px rgba(22, 22, 30, .06);--shadow: 0 2px 8px rgba(22, 22, 30, .08);font-family:Prompt,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);overflow-x:hidden}body{font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100dvh}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{background:var(--card);border:1px solid var(--gray-300);border-radius:var(--r-xl);padding:10px 16px;cursor:pointer;min-height:44px;font-weight:500;touch-action:manipulation;transition:background .12s ease,border-color .12s ease,opacity .12s ease}button:hover{background:var(--gray-50)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--brand-500);color:#fff;border-color:var(--brand-500);box-shadow:var(--shadow-sm)}button.primary:hover{background:var(--brand-600);border-color:var(--brand-600)}button.dark{background:var(--gray-900);color:#fff;border-color:var(--gray-900)}button.ghost{border-color:var(--gray-200);color:var(--gray-700)}button.small{min-height:36px;padding:6px 12px;font-size:14px;border-radius:var(--r-lg)}button.icon{min-width:44px;padding:0 12px;font-weight:600;font-size:20px;line-height:1}input{border:1px solid var(--gray-300);border-radius:var(--r-xl);padding:10px 14px;min-height:46px;width:100%;background:var(--card)}input:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}input::placeholder{color:var(--gray-400)}.page{max-width:720px;margin:0 auto;padding:16px 16px 48px}.page.wide{max-width:1100px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 14px;margin-bottom:16px}.topbar .logo{height:30px;width:auto;display:block;margin-bottom:6px}.brand{font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:12px;color:var(--gray-500)}.title{font-size:20px;font-weight:600;margin:0;color:var(--gray-900)}.sub{color:var(--muted);font-size:14px}.muted{color:var(--muted)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:8px}.grid{display:grid;gap:12px}@media(min-width:760px){.grid.two{grid-template-columns:1fr 1fr}}.card{border:1px solid var(--line);border-radius:var(--r-2xl);padding:16px;background:var(--card);box-shadow:var(--shadow-sm)}.card.soft{box-shadow:none}.card.inv{background:var(--gray-900);color:#fff;border-color:var(--gray-900)}.card h3{margin:0 0 10px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-500)}.badge{display:inline-block;border:1px solid var(--gray-300);border-radius:999px;padding:1px 9px;font-size:12px;line-height:18px;white-space:nowrap;font-weight:500;color:var(--gray-700);background:var(--card)}.badge.inv{background:var(--brand-500);color:#fff;border-color:var(--brand-500)}.badge.soft{border-color:transparent;color:var(--gray-500);background:var(--gray-100)}.badge.live{background:var(--success-light);color:var(--success);border-color:transparent}.badge.live:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--success);margin-right:6px;vertical-align:1px}.badge.off{background:var(--gray-100);color:var(--gray-500);border-color:transparent}.seg{display:inline-flex;background:var(--gray-100);border-radius:var(--r-xl);padding:3px;gap:2px}.seg button{border:0;border-radius:var(--r-lg);min-height:36px;background:transparent;color:var(--gray-600)}.seg button.on{background:var(--card);color:var(--gray-900);box-shadow:var(--shadow-sm)}.list{list-style:none;margin:0;padding:0}.list li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--gray-100)}.list li:last-child{border-bottom:0}.list .pos{width:28px;height:28px;border-radius:50%;background:var(--gray-100);color:var(--gray-600);font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;flex:none;font-variant-numeric:tabular-nums}.list .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list li.me{font-weight:600;margin:0 -10px;padding-left:10px;padding-right:10px;background:var(--brand-50);border-radius:var(--r-lg)}.list li.me .pos{background:var(--brand-500);color:#fff}.list li.off{color:var(--gray-400)}.court{border:1px solid var(--line);border-radius:var(--r-2xl);padding:14px;background:var(--card);box-shadow:var(--shadow-sm)}.court.empty{box-shadow:none;background:var(--card);border-style:dashed;border-color:var(--gray-300)}.court-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.court-head strong{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-700)}.sides{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch}.side{border:1px solid var(--gray-200);border-radius:var(--r-xl);padding:12px 10px;text-align:center;background:var(--card)}.side.win{border-color:var(--brand-200);background:var(--brand-50)}.side .names{font-weight:500;min-height:44px;display:flex;flex-direction:column;justify-content:center;gap:2px;color:var(--gray-800)}.side .names span.me{color:var(--brand-600);font-weight:600}.side .score{font-size:44px;font-weight:600;line-height:1;margin:8px 0;font-variant-numeric:tabular-nums;color:var(--gray-900)}.side .btns{display:flex;gap:6px;justify-content:center}.sides.preview .side{border-style:dashed;color:var(--gray-500);background:var(--gray-50)}.sides.preview .side .names{color:var(--gray-600);font-weight:400}.sides.preview .side.win{border-style:solid;border-color:var(--brand-200);background:var(--brand-50)}.sides.preview .side.win .names{color:var(--gray-900);font-weight:500}.banner{border-radius:var(--r-2xl);padding:16px;text-align:center;font-weight:600;font-size:18px}.banner.inv{background:var(--brand-500);color:#fff;box-shadow:var(--shadow)}.banner.inv .sub{color:#ffffffd9}.banner.soft{background:var(--card);border:1px solid var(--line);color:var(--gray-900)}.err{background:var(--brand-50);border:1px solid var(--brand-200);color:var(--brand-700);padding:10px 14px;border-radius:var(--r-xl);font-size:14px}.toast{position:fixed;left:50%;top:18px;transform:translate(-50%);background:var(--gray-900);color:#fff;padding:14px 24px;border-radius:16px;font-size:18px;font-weight:600;z-index:50;max-width:92vw;text-align:center;box-shadow:var(--shadow);animation:toastin .16s ease-out}@keyframes toastin{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.qr{display:flex;flex-direction:column;align-items:center;gap:8px}.qr canvas{width:220px!important;height:220px!important;border-radius:var(--r-lg)}.qr .url{font-size:12px;word-break:break-all;text-align:center;color:var(--muted)}.chip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.chip{border:1px solid var(--gray-200);border-radius:var(--r-xl);padding:10px 12px;text-align:left;min-height:52px;display:flex;flex-direction:column;justify-content:center;background:var(--card);box-shadow:var(--shadow-sm)}.chip.on{background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-700);box-shadow:0 0 0 2px var(--brand-100)}.chip small{color:var(--gray-500);font-size:12px}.center{text-align:center}hr{border:0;border-top:1px solid var(--line);margin:16px 0}.wizard{display:flex;flex-direction:column;min-height:calc(100dvh - 120px)}.wizard-head .title{font-size:26px}.wizard .chip-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.wizard .chip{min-height:60px;font-size:17px}.wizard-foot{position:sticky;bottom:0;padding:12px 0 8px;margin-top:auto;background:linear-gradient(to bottom,rgba(248,248,250,0),var(--bg) 30%)}.footer{margin-top:28px;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--gray-400);font-size:12px}.footer img{height:16px;opacity:.6}.footer{margin-top:32px;padding-top:16px;border-top:1px solid var(--gray-200)}.footer img{height:22px;opacity:.9}.badge.beta{background:var(--warning-light);color:var(--warning);border-color:transparent;font-size:10px;letter-spacing:.08em;padding:0 7px;line-height:16px}.side.tap{position:relative;overflow:hidden;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.side.tap:active{background:var(--gray-50)}.side.tap .score{transition:transform .12s ease}.side.tap:active .score{transform:scale(1.06)}.side.tap .hint{font-size:11px;color:var(--gray-400);margin-top:4px}.side.tap:after{content:"";position:absolute;left:0;bottom:0;height:5px;width:0;background:var(--brand-500);border-radius:0 3px 3px 0}.side.tap.holding{background:var(--brand-50);border-color:var(--brand-200)}.side.tap.holding:after{animation:holdfill .55s linear forwards}@keyframes holdfill{0%{width:0}to{width:100%}}.hold-btn{position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.hold-btn span{position:relative;z-index:1}.hold-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:0;background:var(--brand-700)}.hold-btn.holding:after{animation:holdfill .9s linear forwards}html,body{touch-action:pan-x pan-y}button,.side,.chip,.list li{touch-action:manipulation}button.success{background:var(--success);color:#fff;border-color:var(--success);box-shadow:var(--shadow-sm)}button.success:hover{background:var(--success-dark, #087D59);border-color:var(--success-dark, #087D59)}.list .court-tag{flex:none;min-width:28px;text-align:center}.court{min-height:232px;display:flex;flex-direction:column}.court>.sides{flex:1}.side{min-height:150px;display:flex;flex-direction:column;justify-content:center}.sides.preview .side{justify-content:center;gap:6px}.sides.preview .side .badge{align-self:center}.hold-btn.success:after{background:var(--success-dark, #087D59)}.hold-btn.success.holding:after{animation:holdfill .7s linear forwards}.hold-btn.danger{color:var(--brand-700);border-color:var(--brand-200)}.hold-btn.danger:after{background:var(--brand-100)}.hold-btn.danger.holding:after{animation:holdfill .9s linear forwards}.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:15px}.switch input{position:absolute;opacity:0;width:0;height:0}.switch .track{position:relative;width:44px;height:26px;border-radius:999px;background:var(--gray-300);transition:background .15s ease;flex:none}.switch .track:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .15s ease}.switch input:checked+.track{background:var(--success)}.switch input:checked+.track:after{transform:translate(18px)}.switch input:focus-visible+.track{box-shadow:0 0 0 3px var(--brand-100)}.side .badge.streak{position:absolute;top:8px;left:50%;transform:translate(-50%)}.side{position:relative}.list .name{white-space:normal}.wait{display:flex;align-items:center;gap:8px;margin-top:4px;font-weight:400}.wait-label{font-size:11px;color:var(--gray-500);flex:none;min-width:52px}.wait-bar{flex:1;height:4px;border-radius:999px;background:var(--gray-100);overflow:hidden;max-width:220px}.wait-fill{display:block;height:100%;background:var(--gray-400);border-radius:999px;transition:width 1s linear}.wait.long .wait-label{color:var(--brand-600)}.results{display:flex;flex-direction:column;gap:8px}.result{border:1px solid var(--gray-200);border-radius:var(--r-xl);background:var(--card);padding:10px 12px}.result-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--gray-400);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.result-body{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}.result-team{display:flex;flex-direction:column;gap:1px;font-size:14px;color:var(--gray-500);min-width:0}.result-team span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-team.right{text-align:right}.result-team.win{color:var(--gray-900);font-weight:600}.result-team span.me{color:var(--brand-600)}.result-score{display:flex;align-items:baseline;gap:4px;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--gray-400)}.result-score .win{color:var(--brand-500)}.result-score .win{color:var(--gray-900)}.result-dash{font-size:16px;color:var(--gray-300)}.results.scroll{--card-h: 92px;max-height:calc(var(--card-h) * 4 + 8px * 3);overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;padding-right:2px}.results.scroll::-webkit-scrollbar{display:none}.results.scroll .result{height:var(--card-h);scroll-snap-align:start;scroll-snap-stop:normal}.result-court{font-weight:600;color:var(--gray-500)}.result-team{position:relative}.dots{display:flex;justify-content:center;gap:6px;margin-top:10px}.dot{width:8px;height:8px;min-height:0;padding:0;border-radius:50%;border:0;background:var(--gray-300)}.dot.on{background:var(--gray-800);width:20px;border-radius:999px}.ico{vertical-align:-2px}.badge .ico{margin-right:1px}.badge.streak .ico,.badge.inv .ico{color:#ffd6a0}.clock{font-variant-numeric:tabular-nums;font-weight:600;font-size:20px;color:var(--gray-900);background:var(--gray-100);border-radius:var(--r-lg);padding:4px 10px;letter-spacing:.04em}.clock.small{font-size:14px;padding:2px 8px;color:var(--gray-600)}.result.win-left{background:linear-gradient(90deg,var(--brand-50) 0%,var(--card) 55%)}.result.win-right{background:linear-gradient(270deg,var(--brand-50) 0%,var(--card) 55%)}.countdown{position:relative;overflow:hidden}.countdown>span:first-child{position:relative;z-index:1}.countdown-bar{position:absolute;left:0;top:0;bottom:0;background:#ffffff2e;transition:width .25s linear}.name-btn{border:0;background:transparent;min-height:0;padding:2px 8px;border-radius:var(--r-lg);font-weight:inherit;color:inherit}.name-btn:hover{background:#0000000a}.name-btn.on{background:var(--gray-900);color:#fff}.adjust{display:flex;gap:6px;justify-content:center;margin-top:6px}.list li.next{margin:0 -10px;padding-left:10px;padding-right:10px;background:var(--brand-50);border:1px solid var(--brand-200);border-radius:var(--r-lg)}.list li.next+li.next{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.list li.next:has(+li.next){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:1px solid var(--brand-100)}.list li.next .pos{background:var(--brand-500);color:#fff}.list li.me.next{background:var(--brand-100)}.me-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-2xl);padding:16px;box-shadow:var(--shadow);margin-bottom:16px}.me-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.me-name{font-size:24px;font-weight:700;color:var(--gray-900);line-height:1.2}.me-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat{background:var(--gray-50);border-radius:var(--r-xl);padding:10px 6px;text-align:center}.stat-v{font-size:22px;font-weight:700;color:var(--gray-900);font-variant-numeric:tabular-nums;line-height:1.1}.stat-v.small{font-size:15px}.stat-sep{color:var(--gray-300);margin:0 2px}.stat-l{font-size:11px;color:var(--gray-500);margin-top:3px}.maxstay{gap:6px}.maxstay .seg button{padding:0 10px}.maxstay input[type=number]{width:48px;min-height:28px;padding:2px 6px;border-radius:6px;text-align:center;font-weight:600;margin-right:4px;-moz-appearance:textfield}.maxstay input[type=number]::-webkit-outer-spin-button,.maxstay input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.seg button.on input{border-color:var(--gray-300)}
