:root{color-scheme:dark;--bg:#101b25;--panel:#182833;--line:#354650;--ink:#eeeadd;--muted:#bec9cc;--gold:#ddbd7d;--green:#8fceb5;--danger:#e8a09a;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:16px}*{box-sizing:border-box}body{font-size:17px;line-height:1.55;margin:0;color:var(--ink);background:radial-gradient(ellipse at 16% 0,#253640 0,transparent 56%),var(--bg);min-height:100vh}button,input,select{font:inherit}a,button,input,select,summary{-webkit-tap-highlight-color:transparent}button,input,select{border:1px solid var(--line);border-radius:7px;min-height:44px;background:#11232c;color:var(--ink)}button{cursor:pointer;padding:9px 13px;font-size:.875rem;font-weight:600;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#2b414a;border-color:#71827f}button:disabled{cursor:default;opacity:.45}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button.primary{background:var(--gold);border-color:var(--gold);color:#1c2b31}button.primary:hover:not(:disabled){background:#efd39b}.full{width:100%}.quiet{background:0 0}.micro,.muted{color:var(--muted)}.micro{font-size:.875rem;line-height:1.55;margin:12px 0 0}header{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 28px;border-bottom:1px solid #35465099;margin-bottom:20px}.brand,.header-actions{display:flex;align-items:center;gap:13px}.brand strong{font-size:1.375rem;font-weight:700;letter-spacing:-.04em}.brand-mark{width:36px;height:36px;border:1px solid var(--gold);border-radius:50%;color:var(--gold);display:inline-grid;place-items:center;font-family:serif;font-size:24px}.header-divider{height:22px;width:1px;background:var(--line);margin:0 6px}.private-tag,.screen-name{font-size:.875rem;color:var(--muted);letter-spacing:.12em}.private-tag{letter-spacing:.02em;padding:7px 10px;border:1px solid var(--line);border-radius:4px}.layout{display:grid;grid-template-columns:minmax(440px,1fr) 245px 270px;gap:18px;max-width:1480px;padding:0 28px 28px;margin:auto;align-items:start}.arena{max-width:790px;min-width:0}.board-frame{position:relative;padding:4px;border:1px solid #b29361;border-radius:5px;background:#473e34;box-shadow:0 10px 36px #0004}#board{display:block;width:100%;height:auto;border-radius:2px;background:#e8cb96}#board .board-cell[tabindex="0"],#board .piece[tabindex="0"]{cursor:pointer}#board .piece:focus-visible .outer{stroke:#5c4730;stroke-width:2}.river-button{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20%;height:7.3%;min-height:0;border:2px solid #f7e1b9;border-radius:999px;color:#fff1d6;background:#334e51;box-shadow:0 0 0 1px #ac8d5f,0 3px 6px #735c364d;padding:2px}.river-button b{display:block;font-size:clamp(.75rem,1.2vw,1rem)}.river-button small{display:block;font-size:clamp(.65rem,.9vw,.75rem);font-weight:400;margin-top:2px}.river-button:disabled{opacity:1;cursor:default}.player{height:58px;display:flex;align-items:center;gap:10px;padding:5px 7px;margin:0 0 8px;border:1px solid transparent;border-radius:7px}.player:last-of-type{margin:8px 0 0}.player.active{border-color:#6e948575;background:#1c363b}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#d9c8a0;color:#233e3c;font-size:23px;font-family:serif}.avatar.red{color:#a03932}.player-name{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.player-name strong{font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-name span{font-size:.875rem;color:var(--muted)}time{font-variant-numeric:tabular-nums;font-size:1.625rem;font-weight:600;letter-spacing:.025em}.turn{font-size:.875rem;color:var(--green);min-width:30px}.low{color:var(--danger)}.board-tools{display:flex;align-items:center;gap:10px;margin-top:12px}.board-tools button{min-height:44px;font-weight:400}.board-tools span{color:var(--muted);font-size:.875rem;flex:1}.admin-column,.match-column{display:flex;flex-direction:column;gap:14px;min-width:0;padding-top:0}.panel{border:1px solid var(--line);background:linear-gradient(150deg,#1c2d38,#172630);border-radius:9px;padding:17px}.panel h1{font-size:1.4rem;line-height:1.3;margin:13px 0 10px;letter-spacing:-.035em}.panel h2{font-size:1rem;margin:0;line-height:1.4}.panel p{font-size:.875rem;line-height:1.6;margin:10px 0;color:var(--muted)}.panel p.micro{font-size:.875rem;margin-bottom:0}.eyebrow{font-size:.875rem;letter-spacing:.15em;color:var(--gold);font-weight:600}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px;font-size:.875rem}.panel-title .muted{font-size:.875rem;white-space:nowrap}.readiness{border-top:1px solid var(--line);margin:17px 0 15px;padding-top:12px}.readiness>div{display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between;font-size:.875rem;margin:7px 0}.readiness b{font-weight:500;color:var(--muted)}.readiness b.ok{color:var(--green)}.history-labels,.move-row{display:grid;grid-template-columns:20px 1fr 1fr;align-items:center;gap:3px}.history-labels{color:var(--muted);font-size:.875rem;padding-bottom:8px;border-bottom:1px solid var(--line)}.history{max-height:245px;min-height:135px;overflow-y:auto;scrollbar-width:thin}.history .empty{text-align:center;font-size:.875rem;padding:35px 0}.move-row{padding:5px 0;border-bottom:1px solid #35465060;font-size:.875rem}.move-row>span{color:var(--muted)}.move-row button{border:0;padding:5px 2px;min-height:44px;font-size:.875rem;line-height:1.5;background:0 0;font-weight:400}.move-row button.current{color:var(--gold);background:#ddbd7d12}.replay-controls{display:flex;gap:5px;margin:12px 0 8px}.replay-controls button{padding:6px 10px;min-height:44px}.replay-controls #current{flex:1;font-size:.875rem}.rules summary,details summary{cursor:pointer;font-size:.875rem;font-weight:600}.connection{font-size:.875rem;color:var(--muted);padding:0 5px}.connection.error{color:var(--danger)}.badge{font-size:.875rem;color:var(--gold);background:#ddbd7d0a;border:1px solid #a48a5655;border-radius:4px;padding:4px 6px}.admin-head h2{margin:9px 0 0}.admin-head .panel-title{margin-top:20px}.room-detail{font-size:.875rem;color:var(--muted);line-height:1.5;margin:12px 0}.text-link{font-size:.875rem;color:var(--gold);display:block;text-align:center;margin-top:14px;text-decoration:none}input,select{padding:10px;width:100%;font-size:.875rem}.field-label,label{font-size:.875rem;display:block}.field-label{margin:15px 0 8px}.level-list{display:grid;gap:8px}.level-list button{display:flex;align-items:center;gap:10px;text-align:left;min-height:46px}.level-list button>span{font-size:.875rem;color:var(--muted)}.level-list button b{flex:1;font-weight:600}.level-list button i{font-style:normal;visibility:hidden;color:var(--gold)}.level-list button[aria-pressed=true]{border-color:var(--gold);background:#ddbd7d0e}.level-list button[aria-pressed=true] i{visibility:visible}.two-buttons{display:flex;gap:8px;margin-top:15px}.two-buttons>*{flex:1}.join h2{margin-bottom:16px}.join label{margin-bottom:7px}.join button{margin-top:12px}.guest .layout{grid-template-columns:minmax(420px,760px) 300px;justify-content:center;max-width:1160px;gap:25px}.guest .match-column{padding-top:0}.guest .arena{width:100%}dialog{border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);max-width:430px;width:calc(100vw - 40px);padding:25px}dialog::backdrop{background:#050e17aa;backdrop-filter:blur(3px)}dialog h2{font-size:1.3rem;margin-top:0}dialog p{font-size:.9375rem;color:var(--muted);line-height:1.6}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#e8d7b0;color:#172731;box-shadow:0 8px 40px #0008;border-radius:8px;padding:14px 20px;z-index:10;max-width:calc(100vw - 30px);font-size:.9375rem}.login-page{display:grid;place-items:center;padding:24px}.login-card{width:min(100%,400px);border:1px solid var(--line);border-top:3px solid var(--gold);background:var(--panel);padding:34px;border-radius:10px;box-shadow:0 24px 90px #0005}.login-card .brand-mark{width:48px;height:48px;font-size:30px}.login-card h1{font-size:2rem;margin:16px 0 8px}.login-card p{color:var(--muted);font-size:.9375rem;line-height:1.6}.login-card form{margin-top:28px}.login-card label{margin-bottom:8px}.login-card button{margin-top:18px}#login-error{color:var(--danger);font-size:.875rem}[hidden]{display:none!important}@media(min-width:1450px){.layout{grid-template-columns:minmax(520px,780px) 265px 300px}.admin-column,.match-column{gap:18px}}@media(max-width:1140px){.layout{grid-template-columns:minmax(390px,1fr) 250px;gap:16px;padding:0 18px 20px}.admin-column{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.admin-column details{grid-column:1/-1}.guest .layout{grid-template-columns:minmax(360px,1fr) 270px;padding:0 18px 20px;gap:18px}header{padding:13px 18px}.private-tag{display:none}}@media(max-width:720px){header{padding:10px 13px;min-height:64px;margin-bottom:12px}.brand{gap:8px}.brand strong{font-size:1.15rem}.brand-mark{width:30px;height:30px;font-size:22px}.header-divider{display:none}.screen-name{font-size:.875rem;max-width:65px;line-height:1.5;letter-spacing:.04em}.header-actions button{font-size:.875rem;padding:8px}.guest .layout,.layout{display:flex;flex-direction:column;padding:0 10px 20px;gap:14px}.admin-column,.arena,.match-column{width:100%;max-width:none}.match-column{display:grid;grid-template-columns:1fr}.admin-column{display:flex}.owner .admin-column{order:-1;display:grid;grid-template-columns:1fr 1fr;gap:10px}.owner .admin-column .admin-head{grid-column:1/-1}.owner .admin-column .panel{padding:13px}.owner .admin-column details{grid-column:1/-1}.owner .arena{order:0}.owner .match-column{order:1}.river-button b{font-size:.75rem}.river-button small{font-size:.625rem}.player{height:50px}.player time{font-size:1.4rem}.panel{padding:17px}.level-list button{padding:7px;gap:6px;font-size:.875rem}.level-list button span{display:none}.board-tools span{font-size:.875rem}.guest .join{order:-1}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.player{min-height:68px;height:auto}.avatar-clock{width:56px;height:56px;position:relative;flex:0 0 56px;display:grid;place-items:center}.avatar-clock svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.avatar-clock .avatar{width:40px;height:40px}.ring-progress,.ring-track{fill:none;stroke-width:3}.ring-track{stroke:#41525b}.ring-progress{stroke:var(--green);stroke-linecap:round;opacity:.2;transition:stroke-dashoffset .1s linear,stroke .2s}.avatar-clock.running .ring-progress{opacity:1}.avatar-clock.warning .ring-progress{stroke:var(--gold)}.avatar-clock.critical .ring-progress{stroke:#ee9189}.avatar-clock.paused .ring-progress{opacity:.65;stroke:var(--gold)}.turn{font-size:.875rem;color:var(--muted);white-space:nowrap}time{min-width:3ch;text-align:right}.machine-row{display:flex;gap:10px;align-items:center}.level-picker{position:relative;min-width:0;flex:1}#level-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;white-space:nowrap}.level-options{position:absolute;top:100%;left:0;right:0;z-index:8;border:1px solid #71827f;border-radius:8px;padding:5px;background:#152832;box-shadow:0 12px 30px #0007;min-width:185px}.level-options button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;border-radius:4px;background:0 0;text-align:left;white-space:nowrap;font-weight:500}.level-options i{visibility:hidden;font-style:normal;color:var(--gold)}.level-options button[aria-checked=true]{background:#ddbd7d14;color:var(--gold)}.level-options button[aria-checked=true] i{visibility:visible}.machine-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:0 0;padding:2px;border:0;min-width:46px;min-height:44px}.toggle-track{display:block;width:38px;height:21px;padding:3px;border-radius:20px;background:#65747a;transition:background .15s}.toggle-track span{display:block;width:15px;height:15px;background:#edf3ed;border-radius:50%;transition:transform .15s}.machine-toggle[aria-checked=true] .toggle-track{background:#397f68}.machine-toggle[aria-checked=true] .toggle-track span{transform:translateX(17px)}.machine-toggle b{font-size:.875rem;letter-spacing:.08em}.machine-controls #mode-note{font-size:.875rem;margin:12px 0 0;color:var(--ink)}.machine-controls #level-note{font-size:.875rem;margin:5px 0 0}.owner .admin-column .machine-controls{overflow:visible}#ready-action{min-height:46px;font-size:1rem}.match-status .readiness{margin:12px 0}.guest .match-status .readiness{font-size:.875rem}@media(max-width:720px){.avatar-clock{width:48px;height:48px;flex-basis:48px}.avatar-clock .avatar{width:34px;height:34px}.player{min-height:60px}.turn{font-size:.875rem}.owner .admin-column .machine-controls{grid-column:1/-1}.level-options{min-width:190px}.machine-row{gap:14px}#level-trigger{min-height:44px}}@media(prefers-reduced-motion:reduce){.ring-progress,.toggle-track,.toggle-track span{transition:none!important}}.engine-settings{border-top:1px solid var(--line);margin-top:14px;padding-top:13px}.engine-settings summary{font-size:.875rem}.engine-settings label{margin:12px 0 7px}.engine-settings select{font-size:.875rem;min-height:44px}.engine-settings p{font-size:.875rem!important;line-height:1.6!important}.engine-settings #engine-check-time{font-size:.875rem!important}.owner .admin-column .engine-settings{grid-column:auto}.advice-panel{margin-top:18px;border-top:2px solid var(--gold);padding:20px}.advice-panel .eyebrow{font-size:.875rem;letter-spacing:.1em;margin-bottom:7px}.advice-panel h2{font-size:1.2rem;margin:0}.advice-panel>.panel-title{align-items:center;gap:10px}.advice-panel>.panel-title .badge{white-space:nowrap;font-size:.875rem}#advice-state{font-size:.875rem;color:var(--muted);line-height:1.55;min-height:2.6em;margin:12px 0}.advice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.advice-card{min-width:0;display:flex;flex-direction:column;padding:13px 11px;border:1px solid var(--line);border-radius:9px;background:#0a192344}.advice-card.chosen{border-color:var(--gold);background:#ddbd7d0b}.advice-card-head{display:flex;gap:7px;align-items:center}.advice-number{font-size:.875rem;color:var(--gold);font-variant-numeric:tabular-nums}.advice-card h3{font-size:.94rem;margin:0;font-weight:650}.advice-focus{font-size:.875rem!important;color:var(--muted);min-height:2.6em;margin:8px 0!important;line-height:1.4!important}.advice-move{display:block;font-size:.875rem;line-height:1.6;color:var(--gold);font-variant-numeric:tabular-nums}.advice-verdict{font-size:.875rem;line-height:1.5;color:#adbdc1;margin-top:10px}.advice-verdict.found_win{color:#90d6b4}.advice-verdict.found_loss{color:#efaaa0}.advice-explanation{font-size:.875rem!important;line-height:1.55!important;margin:7px 0 12px!important;color:var(--muted)}.advice-actions{margin-top:auto;display:grid;gap:6px;padding-top:8px}.advice-actions button{width:100%;font-size:.875rem;padding:9px 6px;min-height:44px}.advice-foot{font-size:.875rem!important;line-height:1.6!important;color:var(--muted);margin:14px 0 4px!important}.advice-panel>.micro{font-size:.875rem;margin:4px 0 0;line-height:1.55}.advice-line{font-size:.875rem;margin:2px 0 10px}.advice-line summary{cursor:pointer;color:var(--gold);line-height:1.5}.advice-line ol{padding-left:19px;line-height:1.6}.advice-line p{font-size:.875rem!important;line-height:1.45!important}.advice-grid:empty{display:none}@media(max-width:1140px) and (min-width:721px){.advice-panel{padding:14px}.advice-grid{gap:7px}.advice-card{padding:11px 8px}.advice-card h3{font-size:.875rem}.advice-move{font-size:.875rem}.advice-card-head{gap:4px}}@media(max-width:540px){.advice-panel{padding:16px}.advice-grid{grid-template-columns:1fr}.advice-card{padding:15px}.advice-focus{min-height:0}.advice-actions{grid-template-columns:1fr 1fr}.advice-panel h2{font-size:1.1rem}.advice-card h3{font-size:1rem}.advice-move{font-size:1rem}.advice-explanation{font-size:.875rem!important}.advice-verdict{font-size:.875rem}.advice-line{font-size:.875rem}}.advice-card h3{font-size:1rem}.advice-focus{font-size:.875rem!important;line-height:1.5!important;min-height:3em}.advice-move{font-size:.9375rem}.advice-verdict{font-size:.875rem}.advice-explanation{font-size:.875rem!important;line-height:1.6!important}.advice-actions button{font-size:.875rem;min-height:44px}.advice-foot{font-size:.875rem!important}.advice-line p,.advice-panel>.micro{font-size:.875rem!important}.advice-line,.advice-line summary{font-size:.875rem}.advice-number,.advice-panel .eyebrow,.advice-panel>.panel-title .badge{font-size:.875rem}@media(max-width:1140px) and (min-width:721px){.advice-grid{grid-template-columns:1fr}.advice-card{padding:14px}.advice-card h3{font-size:1rem}.advice-move{font-size:1rem}.advice-focus{min-height:0}.advice-actions{grid-template-columns:1fr 1fr}}@media(max-width:540px){.advice-focus{min-height:0}.advice-panel>.panel-title{align-items:flex-start;flex-wrap:wrap}}.owner-gate{max-width:640px;margin:10vh auto;padding:24px}.avatar{overflow:hidden}.avatar img,.comment-avatar img{width:100%;height:100%;object-fit:cover;display:block}.room-chat{min-width:0}.room-chat .panel-title{align-items:flex-start;gap:8px;flex-wrap:wrap}.room-chat .muted{font-size:.875rem}.comments{max-height:300px;min-height:76px;overflow:auto;overscroll-behavior:contain;margin:12px 0}.comment{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;padding:10px 0;border-bottom:1px solid var(--line,#ddd)}.comment-avatar{height:30px;width:30px;overflow:hidden;border-radius:50%;background:#e6dfd2;color:#614925;font-size:.875rem;display:flex;align-items:center;justify-content:center}.comment-head{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;font-size:.875rem}.comment-head strong{font-size:.875rem;overflow-wrap:anywhere}.comment-head time{font-size:.875rem;color:var(--muted)}.comment-role{font-size:.875rem;border:1px solid #b8bfc2;border-radius:8px;padding:1px 5px;color:#bdcbd0}.comment-role.role-owner{background:#173e34;color:#fff;border-color:#173e34}.comment-role.role-player{color:#edb3aa;border-color:#ce9793}.comment p{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.875rem;line-height:1.5}.room-chat label{display:block;font-size:.875rem;margin-bottom:6px}.room-chat textarea{font:inherit;font-size:.875rem;width:100%;box-sizing:border-box;resize:vertical;border:1px solid #bbb;border-radius:8px;padding:9px;background:#11232c;color:var(--ink)}.comment-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px}.comment-actions button{font-size:.875rem}.fixed-room-name{font-size:16px}.private-tag{white-space:nowrap}.player-name{min-width:0}.player-name strong{overflow-wrap:anywhere}.join p{font-size:.875rem}.join button+button{margin-top:8px}#viewer-role{display:inline-block}@media(max-width:720px){header{flex-wrap:wrap;gap:7px}.brand{flex-wrap:wrap;min-width:0}.header-actions{flex-wrap:wrap;gap:8px}.private-tag#viewer-role{font-size:.875rem;padding:5px 8px}}@media(max-width:540px){header .brand{width:100%}.brand .hall-link{margin-left:auto}.screen-name{display:none}.header-actions{width:100%;justify-content:space-between}.comment-actions .micro{margin-top:0}}@media(max-width:540px){.river-button b{font-size:.65rem;white-space:nowrap;line-height:1.1}.river-button small{display:none}}#board .piece.is-selected{filter:brightness(.76) saturate(.9)}#board .board-cell:focus{outline:0}.board-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;max-width:72%;padding:8px 18px;border:1px solid #b48e52;border-radius:9px;background:#fbf1dbf5;box-shadow:0 3px 14px #49311830;color:#573d24;text-align:center;pointer-events:none}.board-result strong{font-size:clamp(14px,2vw,22px);letter-spacing:.12em;white-space:nowrap}.board-result span{font-size:clamp(10px,1.3vw,13px);line-height:1.3;overflow-wrap:anywhere}@media(max-width:540px){.board-result{padding:5px 10px;gap:1px}}#board .piece{outline:0}.owner .match-column .advice-panel{margin-top:0;padding:14px;scroll-margin-top:16px}.owner .match-column .advice-grid{grid-template-columns:1fr;gap:8px}.owner .match-column .advice-card{padding:10px}.owner .match-column .advice-focus{min-height:0;font-size:.875rem!important;margin:4px 0!important}.owner .match-column .advice-move{font-size:.875rem;line-height:1.5}.owner .match-column .advice-explanation{display:none}.owner .match-column .advice-verdict{margin-top:5px;font-size:.875rem}.owner .match-column .advice-actions{grid-template-columns:1fr 1fr;gap:5px;padding-top:6px}.owner .match-column .advice-actions button{font-size:.875rem;padding:6px 3px}.owner .match-column .advice-line{margin:5px 0 0;font-size:.875rem}.owner .match-column .advice-panel>.panel-title{flex-wrap:wrap;gap:5px;margin-bottom:6px}.owner .match-column #advice-state{min-height:0;margin:8px 0}.owner .match-column .advice-foot{margin:8px 0 0!important}.owner .match-column .advice-waiting p{font-size:.875rem;margin:4px 0 0}.owner .board-tools{flex-wrap:wrap}@media(max-width:720px){.owner .match-column .advice-card{padding:13px}.owner .match-column .advice-move{font-size:1rem}.owner .match-column .advice-actions button{font-size:.875rem}}.match-clock{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:10px 7px 0;margin-top:8px;color:var(--muted);font-size:.875rem}.match-clock time{font-size:1.25rem;color:var(--gold)}.match-clock time.low{color:var(--danger)}.timeout-entry,.timeout-notice{color:var(--gold);font-size:.875rem;line-height:1.5}.timeout-notice{padding:8px 10px;background:#ddbd7d0e;border:1px solid #ddbd7d40;border-radius:6px;margin:8px 0 0}.history .timeout-entry{font-size:.875rem;color:var(--gold);margin:0;padding:7px 0;border-bottom:1px solid var(--line)}.match-actions{display:flex;gap:12px;margin:0 0 12px;padding:10px;border:1px solid #ddbd7d55;border-radius:12px;background:#182833;box-shadow:0 4px 18px #0002}.match-actions button{flex:1;min-width:0;min-height:50px;font-size:1rem;font-weight:700;letter-spacing:.01em}.match-actions #draw-offer{background:#254f44;border-color:#79bfa2;color:#d9f6e8}.match-actions #draw-offer:hover:not(:disabled){background:#306654;border-color:#a4dec3}.match-actions .resign-button{background:#482e33;color:#ffdbd6;border-color:#c3817e}.match-actions .resign-button:hover:not(:disabled){background:#663c42;border-color:#efaaa3}.match-actions button:disabled{opacity:.55}.draw-panel{margin:10px 0;padding:13px;border:1px solid #ddbd7d66;border-radius:8px;background:#ddbd7d0e}.draw-panel>strong{font-size:.9375rem;color:var(--gold)}.draw-panel p{font-size:.875rem;line-height:1.6;color:var(--muted);margin:7px 0 10px}.draw-response{display:flex;gap:8px}.draw-response button{flex:1;min-height:44px}.draw-panel>.quiet{min-height:44px;width:100%}.room-entry{width:min(440px,calc(100% - 32px));margin:50px auto 70px;padding:32px;background:linear-gradient(145deg,#20323e,#162631);border:1px solid #ddbd7d55;border-top:3px solid var(--gold);border-radius:18px;box-shadow:0 22px 70px #0004}.entry-emblem{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff7df,#d8ba83);border:4px double #a48652;box-shadow:0 3px 0 #8b7048;color:#41331f;font-family:serif;font-size:34px;margin-bottom:24px}.room-entry h1{font-size:1.8rem;line-height:1.25;margin:10px 0 14px}.room-entry p{color:var(--muted);line-height:1.65;font-size:.9375rem}.room-entry .eyebrow{font-size:.875rem;color:var(--gold);letter-spacing:.09em}.room-entry form{margin-top:27px}.room-entry label{margin-bottom:9px}.room-entry input{height:54px;font-size:1.15rem;letter-spacing:.22em;padding:12px 14px}.room-entry input::placeholder{font-size:.9rem;letter-spacing:normal}.room-entry button{margin-top:14px;min-height:48px;font-size:1rem}.room-entry #entry-message{font-size:.875rem;min-height:2.6em;margin:16px 0 0}@media(max-width:480px){.room-entry{margin:28px auto 40px;padding:26px 23px}.room-entry h1{font-size:1.6rem}}

/* Readability: outside-board UI only; preserve board and clock geometry. */
button:not(.river-button),input,select,.field-label,label{font-size:1rem;line-height:1.5}
.panel p,.panel p.micro,.room-detail,.join p,.room-entry p,.login-card p,.comment p,.room-chat label,.room-chat textarea,.comment-actions button{font-size:1rem;line-height:1.6}
.micro,.panel-title .muted,.room-chat .muted,.comment-head,.comment-head strong,.comment-role,.connection,.private-tag#viewer-role{font-size:.875rem;line-height:1.5}
.player-name strong{font-size:1rem}.player-name span,.turn{font-size:.875rem;line-height:1.4}
.panel h2{font-size:1.125rem}.panel-title{flex-wrap:wrap}.panel-title .muted{white-space:normal}
.readiness>div,.history .empty,.history-labels,.move-row,.move-row button,.rules summary,details summary,.room-entry #entry-message{font-size:1rem}
.board-tools{flex-wrap:wrap}.board-tools button,.replay-controls button,.move-row button{min-height:44px}
.board-tools span{font-size:.875rem;min-width:0;overflow-wrap:anywhere}
.history-labels,.move-row{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr);gap:6px}
.replay-controls{flex-wrap:wrap}.replay-controls #current{font-size:.875rem}
.text-link{font-size:1rem;min-height:44px;display:flex;align-items:center;justify-content:center}
.machine-controls #level-note{font-size:.875rem;line-height:1.6}
.machine-row{flex-wrap:wrap}.level-picker{min-width:150px}#level-trigger{white-space:normal}
.level-options button{white-space:normal}.two-buttons>*{min-width:0;overflow-wrap:anywhere}
.comment-actions{flex-wrap:wrap}.comment-actions .micro{flex:1 1 120px}
.owner .match-column .advice-actions button{font-size:.875rem;min-height:44px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.owner .match-column .advice-verdict,.owner .match-column .advice-line,.owner .match-column .advice-waiting p{font-size:.875rem;line-height:1.6}
.room-entry input::placeholder{font-size:1rem;color:var(--muted);opacity:1}
@media(max-width:720px){
 header{align-items:flex-start}.header-actions button{font-size:1rem;min-height:44px}
 .brand,.header-actions{max-width:100%;min-width:0}.brand strong{overflow-wrap:anywhere}
 .level-list button{font-size:1rem;min-height:44px}.turn{font-size:.875rem}
 .player-name strong{white-space:normal;line-height:1.35;overflow-wrap:anywhere}
 .match-clock{flex-wrap:wrap}.draw-response{flex-wrap:wrap}
}
@media(max-width:480px){
 .owner .admin-column{grid-template-columns:minmax(0,1fr)}
 .advice-actions{grid-template-columns:minmax(0,1fr)}
 .owner .match-column .advice-actions{grid-template-columns:minmax(0,1fr)}
 .screen-name{max-width:none;letter-spacing:normal}
}
