:root{color-scheme:dark;--bg:#101914;--panel:#19241e;--panel2:#202d25;--line:#344237;--muted:#9faea3;--text:#f3f5ee;--lime:#b5f268;--gold:#efbc67;--danger:#ff9e91;font-family:Inter,Segoe UI,Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer;min-height:44px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);padding:10px 16px;font-weight:600}button:hover{border-color:var(--muted);background:#2a3a2e}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--lime);color:#18220e;border-color:var(--lime)}button.primary:hover{background:#c7ff80}button.danger{color:var(--danger)}button.quiet{background:transparent}button.small{font-size:12px;min-height:36px;padding:6px 11px}button.icon{font-size:20px;width:44px;padding:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--lime);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1px;font-weight:600;margin-bottom:8px}h2{font-size:20px;letter-spacing:-.4px;margin-bottom:20px}h3{font-size:15px;margin-bottom:14px}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.brand{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:800;letter-spacing:2.5px}.eight{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#f0f2e8;color:#111;font-family:Georgia,serif;font-weight:800;font-size:23px;box-shadow:0 0 0 5px #060a07 inset;border:1px solid #626d60;letter-spacing:0}.brand .eight{width:38px;height:38px}.lime{color:var(--lime)}.gold{color:var(--gold)}.row{display:flex;align-items:center;gap:12px}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.stack{display:grid;gap:16px}.badge{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600;letter-spacing:.5px;white-space:nowrap}.badge.live{color:var(--lime);background:#26351e;border-color:#4b6238}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.shell{display:grid;grid-template-columns:226px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--line);padding:31px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;background:#131d17}.sidebar .brand{margin-bottom:54px}.sidebar .eyebrow{padding-left:13px}.nav{display:grid;gap:7px}.nav button{border-color:transparent;text-align:left;color:var(--muted);background:transparent;font-size:14px;padding:12px}.nav button.active{background:#2b3a25;color:var(--lime);border-color:#425332}.nav-icon{display:inline-block;width:27px;font-size:18px}.sidebar-bottom{margin-top:auto}.table-marker{border:1px solid var(--line);border-radius:11px;padding:15px;margin-bottom:23px}.account{border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;gap:11px;font-size:13px}.avatar{border-radius:50%;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:#354333;color:#d6e3cf;font-weight:700}.account .muted{font-size:11px}.topbar{border-bottom:1px solid var(--line);padding:20px 36px;display:flex;align-items:center;justify-content:space-between;min-height:80px}.topbar .muted{font-size:13px}.workspace{padding:32px 36px;max-width:1600px;margin:auto}.page-heading{margin-bottom:27px}.page-heading p{color:var(--muted);font-size:14px;margin-bottom:0}.board-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px}.scoreboard{padding:0;overflow:hidden;background:radial-gradient(ellipse at 50% 100%,#253c2a 0%,#19261f 68%)}.board-header{padding:19px 24px;border-bottom:1px solid var(--line);font-size:12px}.format{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.format span+span:before{content:'·';padding-right:9px;color:var(--muted)}.score-stage{display:grid;grid-template-columns:1fr 60px 1fr;text-align:center;align-items:center;padding:35px 22px 27px}.player-name{font-size:24px;font-weight:600;letter-spacing:-.6px;overflow-wrap:anywhere}.player-label{font-size:10px;letter-spacing:1.7px;color:var(--muted);margin-bottom:14px}.score{font-size:clamp(74px,7.6vw,124px);letter-spacing:-7px;font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums}.player-score:first-child .score{color:var(--lime)}.score-separator{font-size:25px;color:#6a796b;align-self:center}.score-unit{font-size:11px;letter-spacing:2px;color:var(--muted)}.player-meta{font-size:12px;color:var(--muted);margin-top:17px;height:28px}.breaker-tag{color:var(--gold);background:#4a3920;border:1px solid #665332;font-size:10px;letter-spacing:1px;padding:5px 9px;border-radius:5px}.progress-track{margin:0 25px 22px;height:3px;background:#3a4538;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--lime)}.board-footer{border-top:1px solid var(--line);padding:14px 23px;font-size:11px;color:var(--muted)}.score-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:17px}.score-actions button{padding:17px;font-size:14px;background:#25351f;color:var(--lime);border-color:#4d633c}.score-actions button+button{background:#342e20;color:var(--gold);border-color:#625438}.score-actions .plus{font-size:20px;padding-right:8px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.toolbar button{font-size:12px;flex:1}.section-gap{margin-top:26px}.section-title{margin:0 0 14px;display:flex;align-items:center;justify-content:space-between}.section-title h2{font-size:17px;margin:0}.rack-list{display:grid;gap:0}.rack-row{display:grid;grid-template-columns:34px 1fr auto auto;gap:15px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.rack-row:last-child{border-bottom:0}.rack-number{border:1px solid var(--line);border-radius:7px;width:30px;height:30px;display:grid;place-items:center;color:var(--muted);font-size:11px}.empty{padding:32px 18px;text-align:center;color:var(--muted)}.empty .eight{width:50px;height:50px;font-size:28px;margin-bottom:17px}.empty h2{color:var(--text);margin-bottom:8px}.empty p{font-size:13px;max-width:370px;margin:0 auto 20px}.detail-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.detail-row:last-child{border:0}.detail-row span:first-child{color:var(--muted)}.side-note{font-size:12px;color:var(--muted);margin-bottom:0}.link-card{border-color:#4a5c37;background:#222e20}.link-card h3{color:var(--lime)}.link-card button{width:100%;margin-top:14px}.helper{font-size:12px;color:var(--muted);margin:8px 0 0}.connection{font-size:11px;color:var(--lime)}.connection.offline{color:var(--gold)}.notice{border:1px solid #6a5530;border-radius:10px;padding:14px 17px;background:#332d1d;font-size:13px;margin-bottom:20px;color:#f3d9a5}.notice.error{border-color:#804a43;background:#3b2722;color:#ffc0b6}.notice button{margin-left:10px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:25px}.metric .value{font-size:34px;font-weight:600;letter-spacing:-1px}.metric .eyebrow{font-size:10px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px}th{text-align:left;color:var(--muted);font-size:10px;letter-spacing:1px;font-weight:600;text-transform:uppercase;padding:13px 14px;border-bottom:1px solid var(--line)}td{padding:16px 14px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}.filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:20px}.filters label{flex:1;min-width:130px}.filters input,.filters select{margin-bottom:0}.filters button{margin-bottom:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full{grid-column:1/-1}label{display:block;color:#d8e0d6;font-size:12px;font-weight:600}input,select{display:block;width:100%;background:#111b15;color:var(--text);border:1px solid #465442;border-radius:8px;min-height:45px;padding:11px 12px;margin-top:7px;outline:none}input::placeholder{color:#738172}select{padding-right:23px}input[type=checkbox]{display:inline;width:18px;min-height:18px;margin:0 8px 0 0;vertical-align:middle}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.form-actions button{min-width:100px}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.auth-art{padding:50px 60px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);overflow:hidden;position:relative;background:radial-gradient(ellipse at 40% 60%,#2b4f33,#14231a 65%)}.auth-art:after{content:'';position:absolute;width:440px;height:620px;border:1px solid #537c4b;border-radius:230px;transform:rotate(-35deg);top:22%;left:10%;opacity:.3;box-shadow:0 0 0 50px #537c4b18,0 0 0 100px #537c4b10}.auth-art h1{font-size:68px;line-height:1.07;max-width:480px;position:relative;z-index:1;font-weight:500;letter-spacing:-3px}.auth-art .art-caption{font-size:12px;letter-spacing:2px;color:#a7b69f}.auth-ball{position:relative;z-index:1;align-self:center;display:flex;justify-content:center;align-items:center;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle at 30% 20%,#343c34,#030704 70%);box-shadow:15px 25px 30px #0007;margin:20px}.auth-ball span{background:#e6e8d8;color:#171d15;border-radius:50%;width:90px;height:90px;text-align:center;font-family:Georgia,serif;font-size:68px;line-height:90px;transform:rotate(-15deg)}.auth-form{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}.auth-content{width:100%;max-width:370px}.auth-content h1{font-size:31px}.auth-content>p{font-size:14px;color:var(--muted);margin-bottom:30px}.auth-content label{margin-bottom:18px}.auth-content .primary{width:100%;margin:7px 0 15px}.password-wrap{display:flex;gap:8px;align-items:end}.password-wrap input{flex:1;min-width:0}.password-wrap button{margin-top:7px;font-size:12px}.auth-footer{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.auth-mobile-brand{display:none}.loading{min-height:100vh;display:grid;place-content:center;gap:20px}.loading p{color:var(--muted)}dialog{background:var(--panel);color:var(--text);border:1px solid #52644a;border-radius:16px;max-width:550px;width:calc(100% - 32px);padding:28px;max-height:90vh;overflow:auto}dialog::backdrop{background:#030b07c9;backdrop-filter:blur(5px)}dialog h2{margin:0}dialog .dialog-head{margin-bottom:23px}.ball-picker{display:grid;grid-template-columns:repeat(8,1fr);gap:7px;margin:20px 0}.ball-picker button{padding:0;min-width:0;aspect-ratio:1;min-height:38px;border-radius:50%}.ball-picker button.selected{background:var(--lime);color:#111;border-color:var(--lime)}.preview-points{text-align:center;font-size:38px;letter-spacing:2px;padding:15px;background:#111b15;border-radius:10px;color:var(--lime)}.secret{font-family:Consolas,monospace;overflow-wrap:anywhere;padding:18px;background:#0c140f;border:1px solid var(--line);border-radius:8px;color:var(--lime);margin:15px 0;user-select:all}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.account-row{padding:20px 0;border-bottom:1px solid var(--line)}.account-row:last-child{border-bottom:0}.account-row .tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.account-row select{max-width:220px;font-size:12px;margin:0}.list-info{font-size:12px;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(100px);background:#d8edc2;color:#13200e;max-width:calc(100% - 32px);padding:12px 22px;border-radius:10px;z-index:100;transition:transform .2s;box-shadow:0 8px 40px #0005;font-size:13px}#toast.show{transform:translateX(-50%) translateY(0)}.display-page{min-height:100vh;background:radial-gradient(ellipse at 50% 55%,#29472e,#101b14 75%);padding:35px 5vw;display:flex;flex-direction:column}.display-header{padding-bottom:22px;border-bottom:1px solid #536344;display:flex;align-items:center;justify-content:space-between}.display-header h1{font-size:15px;letter-spacing:3px;margin:0}.display-main{flex:1;display:flex;flex-direction:column;justify-content:center}.display-title{text-align:center;margin:24px 0 0;font-size:15px;letter-spacing:2px;color:var(--muted)}.display-page .score-stage{grid-template-columns:1fr 80px 1fr;padding:20px 0 35px}.display-page .score{font-size:clamp(100px,20vw,320px);letter-spacing:-.06em;line-height:1}.display-page .player-name{font-size:clamp(25px,3.5vw,65px);margin-bottom:15px}.display-page .player-label{font-size:12px}.display-page .score-unit{font-size:16px}.display-page .player-meta{font-size:17px;height:40px;margin-top:20px}.display-page .breaker-tag{font-size:14px}.display-footer{border-top:1px solid #536344;padding-top:20px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:13px}.display-result{text-align:center;font-size:24px;color:var(--lime);margin:0 0 18px}.display-page .empty h2{font-size:40px}.display-page .empty p{font-size:17px}.subtle-rule{height:1px;background:var(--line);margin:25px 0}.status-line{min-height:24px}.qr-url{font-family:Consolas,monospace;font-size:12px;word-break:break-all}.no-margin{margin:0}
@media(min-width:1700px){.workspace{padding-top:45px}.board-grid{grid-template-columns:minmax(0,1fr) 350px}.score{font-size:145px}.score-stage{padding:45px 20px}.player-name{font-size:30px}}
@media(max-width:1150px){.shell{grid-template-columns:190px 1fr}.sidebar{padding:25px 15px}.brand{font-size:13px;gap:8px}.workspace{padding:25px}.topbar{padding:18px 25px}.board-grid{grid-template-columns:1fr}.board-aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.board-aside .card{margin:0}.score{font-size:100px}.settings-grid{grid-template-columns:1fr}.auth-art{padding:40px}.auth-art h1{font-size:52px}.metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.shell{display:block}.sidebar{position:static;height:auto;display:block;padding:16px 18px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{margin:0;font-size:14px}.sidebar .eyebrow,.sidebar-bottom{display:none}.nav{display:flex;margin-top:15px;gap:5px;overflow-x:auto}.nav button{padding:8px 11px;white-space:nowrap;font-size:12px;min-height:39px}.nav-icon{width:19px;font-size:15px}.topbar{padding:13px 19px;min-height:58px}.topbar .date{display:none}.workspace{padding:22px 16px}h1{font-size:26px}.page-heading{align-items:start}.page-heading .primary{font-size:12px;padding:10px;white-space:nowrap}.page-heading p{font-size:12px;max-width:230px}.card{padding:19px}.board-header{padding:15px;font-size:11px}.score-stage{grid-template-columns:1fr 20px 1fr;padding:26px 10px}.player-name{font-size:19px}.score{font-size:86px;letter-spacing:-5px}.player-meta{font-size:11px;margin-top:12px}.player-label{font-size:9px}.board-footer{padding:12px 15px;font-size:10px}.board-aside{display:block}.board-aside .card{margin-bottom:17px}.score-actions{gap:9px}.score-actions button{font-size:12px;padding:15px 5px}.metrics{gap:10px}.metric{padding:16px}.metric .value{font-size:28px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.auth-layout{display:block}.auth-art{display:none}.auth-form{min-height:100vh;padding:30px 24px}.auth-mobile-brand{display:flex;margin-bottom:50px}.auth-content h1{font-size:30px}.filters{gap:10px}.filters label{min-width:120px}dialog{padding:22px}.display-page{padding:22px 4vw}.display-header .brand{font-size:13px}.display-header h1{font-size:11px}.display-page .score-stage{grid-template-columns:1fr 20px 1fr}.display-page .score{font-size:24vw}.display-title{font-size:11px}.display-page .player-label{font-size:9px}.display-page .score-unit{font-size:11px}.display-page .player-meta{font-size:12px}.display-page .breaker-tag{font-size:10px}.display-footer{font-size:10px}.display-result{font-size:19px}.rack-row{gap:8px}.ball-picker{gap:4px}.ball-picker button{min-height:32px}.account-row select{max-width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.card,main,.workspace,.settings-grid,.board-grid{min-width:0}.table-scroll{max-width:100%}input,select{min-width:0}.detail-row{gap:10px;flex-wrap:wrap}
@media(max-width:700px){.account-row>.between{flex-wrap:wrap}.card .tools{max-width:100%}}
.display-page{height:100dvh;min-height:100vh;padding:24px 4vw}.display-main{min-height:0}.display-header{padding-bottom:16px;flex-shrink:0}.display-title{margin:16px 0 0}.display-page .score-stage{padding:1.5vh 0 2vh}.display-page .score{font-size:clamp(80px,min(19vw,32vh),300px)}.display-page .player-name{font-size:clamp(22px,3.3vw,60px);margin-bottom:1vh}.display-page .player-label{margin-bottom:.8vh}.display-page .player-meta{height:auto;min-height:30px;margin-top:1vh}.display-result{font-size:22px;margin-bottom:10px}.display-footer{padding-top:14px;flex-shrink:0}
@media(max-height:600px) and (min-width:701px){.display-page .player-label{display:none}.display-page .score{font-size:28vh}.display-title{margin-top:10px;font-size:12px}.display-result{font-size:18px}}
.team-fields{border:1px solid var(--line);border-radius:10px;padding:16px;margin:0 0 14px;min-width:0}.team-fields legend{font-size:12px;color:var(--lime);padding:0 8px;font-weight:700}.team-members{font-size:12px;color:var(--muted);overflow-wrap:anywhere;margin:3px 0 8px}.display-page .team-members{font-size:clamp(12px,1.5vw,24px);margin-bottom:.5vh}.display-page:has(.team-members) .score{font-size:clamp(75px,min(18vw,27vh),280px)}[hidden]{display:none!important}
