:root{color-scheme:dark;--bg: #101719;--surface: #172225;--raised: #203034;--border: #304347;--text: #eff8f4;--muted: #9fb3ae;--subtle: #6f827e;--accent: #9de1c0;--accent-ink: #10241b;--coral: #f19a8d;--danger: #ffb4a9;--shadow: 0 18px 52px #0006;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow:hidden;background:radial-gradient(circle at 10% 0,#19302c 0,transparent 34rem),var(--bg);color:var(--text)}button,input{font:inherit}a{color:inherit}.site-header{width:100%;height:56px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 max(16px,calc((100% - 1240px)/2));border-bottom:1px solid #ffffff10}.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-size:20px;font-weight:750;letter-spacing:-.5px;text-decoration:none}.brand small{color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--border);border-radius:10px;color:var(--accent);background:var(--raised)}.brand-mark img{display:block;width:27px;height:27px}.account{display:flex;align-items:center;color:var(--muted);font-size:13px}.account>span{max-width:36vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app{width:min(1240px,calc(100% - 32px));height:calc(100dvh - 56px);margin:0 auto;padding:14px 0;overflow:hidden}.loading-card,.card{background:#172225e8;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}.loading-card{max-width:520px;margin:min(20vh,120px) auto;padding:30px;color:var(--muted);text-align:center}.login{width:min(440px,100%);margin:min(11vh,72px) auto 0;padding:clamp(24px,5vw,36px)}.login h1{margin:0;font-size:34px;line-height:1;letter-spacing:-.045em}.form{display:grid;gap:15px;margin-top:26px}label{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}input{width:100%;min-height:50px;padding:12px 14px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:12px;outline:none}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #9de1c022}.button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;padding:0 15px;border:0;border-radius:11px;color:var(--accent-ink);background:var(--accent);font-weight:750;cursor:pointer}.button:hover{filter:brightness(1.07)}.button:disabled{cursor:wait;opacity:.55}.button.secondary{color:var(--text);background:var(--raised);border:1px solid var(--border)}.button.compact{min-height:38px;padding:0 12px;font-size:12px}.button.link{min-height:36px;padding:0 0 0 12px;color:var(--muted);background:transparent}.error{min-height:1.5em;margin:0;color:var(--danger);line-height:1.45}.muted{color:var(--muted)}.empty{padding:32px;color:var(--muted);text-align:center}.dashboard-page{display:flex;flex-direction:column;height:100%;min-height:0}.section-heading,.match-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading{flex:0 0 auto;margin-bottom:12px}.section-heading h1{margin:0;font-size:30px;letter-spacing:-.035em}.matches{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));grid-auto-rows:132px;gap:12px;min-height:0;overflow-y:auto;padding:1px 4px 12px 1px;scrollbar-color:var(--border) transparent}.match-card{display:grid;gap:12px;min-height:0;padding:17px;color:inherit;text-decoration:none;box-shadow:none;transition:border-color .15s ease,background-color .15s ease}.match-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(hover:hover){.match-card:hover{border-color:#6d9589;background:#1b292c}}.match-card h3{margin:0;font-size:18px}.match-meta{margin:7px 0 0;color:var(--muted);font-size:13px}.pill{display:inline-flex;align-items:center;gap:7px;width:max-content;padding:6px 10px;border-radius:999px;color:var(--muted);background:var(--raised);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--subtle)}.pill.live:before{background:var(--coral);box-shadow:0 0 0 5px #f19a8d18}.pill.ended:before{background:var(--accent)}.connect-page{display:flex;height:100%;min-height:0;flex-direction:column}.connect-heading{display:flex;height:48px;flex:0 0 auto;align-items:center;gap:18px;margin-bottom:12px}.back-link{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;color:var(--muted);text-decoration:none}.back-link:hover{color:var(--text)}.icon-button{width:36px;height:36px;border:1px solid var(--border);border-radius:10px;background:var(--raised)}.connect-heading h1{margin:0;font-size:28px;letter-spacing:-.04em}.pairing{display:flex;width:min(430px,100%);min-height:0;flex:1;flex-direction:column;align-self:center;align-items:center;justify-content:center;padding:22px;text-align:center}.pairing .qr{display:grid;width:100%;min-height:0;flex:1;place-items:center}.pairing img{display:block;width:min(320px,100%,calc(100dvh - 230px));border-radius:12px;background:#fff}.pairing .loading-card{width:100%;margin:0;box-shadow:none}.countdown{margin:14px 0 0;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.pairing-error{display:grid;gap:12px;justify-items:center}.viewer-page{display:flex;height:100%;min-height:0;flex-direction:column}.viewer-heading{position:relative;display:flex;min-height:52px;flex:0 0 auto;align-items:center;gap:16px;margin-bottom:12px}.viewer-title{min-width:0;flex:1}.viewer-title h1{margin:0;overflow:hidden;font-size:clamp(23px,3vw,32px);letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap}.viewer-title p{margin:3px 0 0;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.viewer-actions{display:flex;flex:0 0 auto;align-items:center;gap:8px}.copy-note{position:absolute;right:0;bottom:-11px;color:var(--accent);font-size:10px}.copy-note:empty{display:none}.viewer-grid{display:grid;grid-template-columns:minmax(340px,1fr) minmax(250px,360px);flex:1;gap:12px;min-height:0}.panel{min-width:0;min-height:0}.board-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;overflow:hidden;padding:14px}.board-wrap{width:min(100%,calc(100dvh - 232px));aspect-ratio:1}.playback{display:grid;grid-template-columns:42px 42px minmax(120px,1fr) 42px 42px 42px;width:min(100%,calc(100dvh - 214px));gap:6px}.playback button{display:grid;min-height:42px;place-items:center;padding:0;border:1px solid var(--border);border-radius:10px;color:var(--text);background:var(--raised);cursor:pointer}.playback button:hover:not(:disabled),.playback button.active{border-color:var(--accent);color:var(--accent)}.playback button:disabled{cursor:default;opacity:.35}.playback span{display:grid;place-items:center;min-width:0;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.moves-panel{display:flex;height:100%;flex-direction:column;padding:16px;overflow:hidden}.moves-heading{flex:0 0 auto;padding:3px 4px 10px;border-bottom:1px solid var(--border)}.moves-heading h2{margin:0;font-size:19px}.moves-scroll{position:relative;min-height:0;flex:1;overflow-y:auto;padding:8px 0;scrollbar-color:var(--border) transparent}.moves-table{display:grid;gap:2px}.move-row{display:grid;grid-template-columns:32px 1fr 1fr;gap:4px;align-items:stretch}.move-number{display:grid;place-items:center;color:var(--subtle);font-size:11px;font-variant-numeric:tabular-nums}.move,.move-spacer{min-width:0;min-height:38px}.move{position:relative;display:flex;align-items:center;overflow:hidden;padding:0 10px;border:1px solid transparent;border-radius:9px;color:var(--text);background:transparent;text-align:left;white-space:nowrap;cursor:pointer}.move:hover{background:var(--raised)}.move.selected{border-color:#9de1c066;color:var(--accent);background:#233e36}.move.pending{color:var(--muted)}.move-notation{display:inline-flex;min-width:0;align-items:center}.notation-piece-box{position:relative;display:inline-grid;width:21px;height:20px;flex:0 0 auto;place-items:center;margin-right:2px}.notation-piece{display:block;width:20px;height:20px;object-fit:contain}.notation-piece:not(.notation-piece-outline){position:relative;z-index:1}.notation-piece-outline{position:absolute;z-index:0;filter:brightness(0) invert(1);opacity:.92}.notation-piece-outline.left{transform:translate(-.75px)}.notation-piece-outline.right{transform:translate(.75px)}.notation-piece-outline.up{transform:translateY(-.75px)}.notation-piece-outline.down{transform:translateY(.75px)}.pending-dot{display:inline-block;width:5px;height:5px;margin-left:6px;border-radius:50%;background:#f0cd8a;vertical-align:middle}.moves-empty{display:grid;min-height:0;flex:1;place-items:center;color:var(--muted);font-size:13px}@media(max-width:760px){.site-header{height:52px;padding:0 12px}.app{width:min(calc(100% - 16px),560px);height:calc(100dvh - 52px);padding:8px 0}.viewer-heading{min-height:48px;margin-bottom:8px;gap:10px}.viewer-title h1{font-size:21px}.viewer-title p,.viewer-actions .pill{display:none}.button.compact{min-height:36px;padding:0 9px}.viewer-grid{grid-template-columns:1fr;grid-template-rows:auto minmax(130px,1fr);gap:8px}.viewer-grid .panel{height:auto}.board-panel{justify-content:flex-start;gap:6px;padding:8px}.board-wrap{width:min(100%,42dvh);max-height:none}.playback{grid-template-columns:40px 40px minmax(0,1fr) 40px 40px 40px;width:100%;gap:4px}.playback button{min-height:40px;border-radius:8px}.playback span{font-size:11px}.moves-panel{padding:9px 10px}.moves-heading{display:none}.moves-scroll{padding:4px 0}.move,.move-spacer{min-height:32px}.section-heading{min-height:40px;margin-bottom:10px}.section-heading h1{font-size:26px}.connect-button{min-height:38px;gap:6px;padding:0 12px;font-size:13px}.connect-button svg{width:16px;height:16px}.matches{grid-auto-rows:118px;gap:9px;padding-bottom:8px}.match-card{gap:8px;padding:14px 15px;border-radius:15px}.match-card h3{font-size:17px}.match-meta{margin-top:4px;font-size:12px}.pairing{padding:16px}.pairing img{width:min(300px,100%,calc(100dvh - 220px))}}@media(max-width:480px){.account>span{display:none}.account .button span{display:none}.account .button{width:36px;padding:0}.brand{font-size:18px}.login{margin-top:min(7vh,48px)}.viewer-actions{gap:5px}.viewer-actions .button span{display:none}.viewer-actions .button{width:36px;padding:0}}
