:root{--ink:#0f1411;--ink-2:#171f1a;--line:#2a352e;--text:#e7e4da;--text-dim:#9aa398;--brass:#c9a227;--brass-soft:#c9a2272e;--sq-light:#e8dcc5;--sq-dark:#4a5d43;--danger:#c96a4a;--ember:#e2542c;--ember-soft:#e2542c26;--font-display:"Archivo", "Segoe UI", system-ui, sans-serif;--font-body:"IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-data:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-3xs:.65rem;--text-2xs:.7rem;--text-xs:.75rem;--text-sm:.8rem;--text-base:.85rem;--text-md:.9rem;--text-lg:1rem;--text-xl:1.15rem;--text-2xl:1.4rem;--text-3xl:2rem;--text-hero:clamp(2rem, 6vw, 3.2rem);--radius:6px;--board-size:min(88vw, 560px)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--ink);color:var(--text);font-family:var(--font-body);min-height:100vh;line-height:1.5}.shell{max-width:960px;margin:0 auto;padding:0 1rem 4rem}.topbar{border-bottom:1px solid var(--line);z-index:20;background:var(--ink);justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1.1rem 0;display:flex;position:sticky;top:0}.brand{color:var(--text);letter-spacing:.22em;font-weight:700;font-size:var(--text-md);text-decoration:none}.brand span{color:var(--brass)}.topbar-right{align-items:center;gap:.8rem;display:flex}.topbar-user{color:var(--text-dim);font-size:var(--text-base)}.btn{font:inherit;cursor:pointer;border-radius:var(--radius);border:1px solid #0000;padding:.6rem 1.2rem;transition:background .15s,border-color .15s}.btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--brass);color:#1a1408;font-weight:600}.btn-primary:hover:not(:disabled){background:#dab637}.btn-ghost{color:var(--text-dim);border-color:var(--line);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--text-dim);color:var(--text)}.btn-block{width:100%;margin-top:.6rem}.auth-page{place-items:center;min-height:70vh;display:grid}.auth-card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);width:min(92vw,380px);padding:2rem}.auth-title{font-size:var(--text-2xl);margin-bottom:1.4rem;font-weight:600}.field{margin-bottom:1rem;display:block}.field span{font-size:var(--text-sm);color:var(--text-dim);margin-bottom:.3rem;display:block}.field input{width:100%;font:inherit;background:var(--ink);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);padding:.55rem .7rem}.field input:focus{border-color:var(--brass);outline:none}.form-error{color:var(--danger);font-size:var(--text-base);margin-bottom:.8rem}.hero{padding:1.5rem 0 2.5rem}.hero-eyebrow{color:var(--brass);font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;margin-bottom:.6rem}.hero-title{font-size:var(--text-hero);font-weight:700;line-height:1.1}.play-options{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.play-card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:.7rem;padding:1.4rem;display:flex}.play-card h2{font-size:var(--text-lg)}.play-card p{color:var(--text-dim);font-size:var(--text-md);flex:1}.play-card-locked{opacity:.6}.searching{color:var(--brass);font-size:var(--text-md)}.stats-strip{border-top:1px solid var(--line);flex-wrap:wrap;gap:2rem;margin-top:2.5rem;padding-top:1.5rem;display:flex}.stats-strip div{flex-direction:column;display:flex}.stats-strip strong{font-size:var(--text-2xl);color:var(--brass)}.stats-strip span{font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em}.ratings-grid{grid-template-columns:repeat(4,1fr);gap:.6rem;width:100%;display:grid}@media (width<=460px){.ratings-grid{grid-template-columns:repeat(2,1fr)}}.rating-cell{text-align:center;background:var(--ink);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;align-items:center;gap:.15rem;padding:.6rem .4rem;display:flex}.rating-cat{font-size:var(--text-3xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.rating-value{font-size:var(--text-2xl);color:var(--brass);font-variant-numeric:tabular-nums}.rating-games{font-size:var(--text-2xs);color:var(--text-dim)}.dashboard-stats{border-top:1px solid var(--line);flex-direction:column;gap:1.2rem;margin-top:2.5rem;padding-top:1.5rem;display:flex}.dashboard-stats .stats-strip{border-top:none;margin-top:0;padding-top:0}.rated-badge,.casual-badge{font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.06em;vertical-align:middle;border-radius:4px;padding:.1rem .4rem;font-weight:700;display:inline-block}.rated-badge{color:var(--ink);background:var(--brass)}.casual-badge{color:var(--text-dim);background:var(--line)}.mode-toggle{border:1px solid var(--line);border-radius:var(--radius);width:100%;display:flex;overflow:hidden}.mode-toggle-btn{min-width:0;font:inherit;font-weight:600;font-size:var(--text-md);background:var(--ink);color:var(--text-dim);cursor:pointer;white-space:nowrap;text-align:center;border:none;flex:1;padding:.55rem .6rem}.mode-toggle-btn+.mode-toggle-btn{border-left:1px solid var(--line)}.mode-toggle-active{background:var(--brass);color:var(--ink)}@media (width<=360px){.mode-toggle-btn{font-size:var(--text-sm);padding:.5rem .35rem}}.rating-change{font-size:var(--text-md);color:var(--text-dim);justify-content:center;align-items:baseline;gap:.4rem;display:flex}.rating-change strong{color:var(--text);font-size:var(--text-xl);font-variant-numeric:tabular-nums}.rating-delta{font-variant-numeric:tabular-nums;font-weight:700}.rating-up{color:var(--brass)}.rating-down{color:var(--danger)}.game-mode-line{justify-content:center;align-items:center;gap:.4rem;display:flex}.board{width:var(--board-size);height:var(--board-size);border:3px solid var(--line);-webkit-touch-callout:none;border-radius:4px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);margin:0 auto;display:grid;position:relative;overflow:hidden}.board-marks{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.square{cursor:pointer;font:inherit;aspect-ratio:1;border:none;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative;overflow:hidden}.sq-light{background:var(--sq-light)}.sq-dark{background:var(--sq-dark)}.sq-selected{box-shadow:inset 0 0 0 3px var(--brass)}.sq-last{box-shadow:inset 0 0 0 100vmax var(--brass-soft)}.sq-target:after{content:"";background:#0f141159;border-radius:50%;width:26%;height:26%}.sq-capture{box-shadow:inset 0 0 0 3px var(--danger)}.piece{pointer-events:none;place-items:center;width:100%;height:100%;display:grid}.piece img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:86%;height:86%}.coord{opacity:.65;pointer-events:none;font-size:.6rem;font-weight:600;position:absolute}.sq-light .coord{color:var(--sq-dark)}.sq-dark .coord{color:var(--sq-light)}.coord-rank{top:2px;left:3px}.coord-file{bottom:1px;right:3px}.game-page{flex-direction:column;align-items:center;gap:.9rem;display:flex}.page-title{font-size:var(--text-2xl)}.clock-row{width:var(--board-size);justify-content:space-between;align-items:center;display:flex}.player-tag{color:var(--text-dim);font-size:var(--text-md)}.clock{font-variant-numeric:tabular-nums;font-size:var(--text-xl);border:1px solid var(--line);border-radius:var(--radius);color:var(--text-dim);padding:.2rem .7rem;font-weight:600}.clock-live{color:var(--brass);border-color:var(--brass)}.banner{color:var(--brass);font-size:var(--text-md);text-align:center;border:1px solid var(--brass-soft);border-radius:var(--radius);padding:.4rem 1rem}.banner-quiet{border:none}.game-end{flex-wrap:wrap;justify-content:center;align-items:center;gap:.8rem;display:flex}.game-result{font-size:var(--text-xl);font-weight:600}.game-layout{grid-template-columns:1fr;grid-template-areas:"board""movelist";justify-items:center;gap:1.4rem;width:100%;display:grid}.board-column{flex-direction:column;grid-area:board;align-items:center;gap:.9rem;display:flex}@media (width>=900px){.game-layout{grid-template-columns:auto 280px;grid-template-areas:"board movelist";justify-content:center;place-items:start stretch}}.move-list{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;grid-area:movelist;gap:.6rem;width:min(92vw,280px);padding:.8rem;display:flex}.move-list-nav{gap:.4rem;display:flex}.move-nav-btn{font-size:var(--text-base);flex:1;padding:.4rem}.move-list-scroll{height:min(60vh, calc(var(--board-size) - 3rem));overflow-y:auto}.move-list-empty{padding:.4rem 0}.move-rows{flex-direction:column;list-style:none;display:flex}.move-row{grid-template-columns:2.2rem 1fr 1fr;align-items:center;gap:.3rem;padding:.2rem 0;display:grid}.move-number{color:var(--text-dim);font-size:var(--text-base)}.move-cell{font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.15rem .4rem}.move-cell:hover{background:var(--brass-soft)}.move-cell-active{background:var(--brass-soft);color:var(--brass);font-weight:600}.move-cell-empty{padding:.15rem .4rem}.move-annot{margin-left:1px;font-size:.8em;font-weight:700}.move-annot-brilliant{color:#4fae7a}.move-annot-good{color:#7fb24f}.move-annot-interesting{color:var(--brass)}.move-annot-dubious{color:#d3a53e}.move-annot-mistake{color:#cd6f3c}.move-annot-blunder{color:#c94a3a}.move-annot-manual{text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.annot-backdrop{z-index:50;position:fixed;inset:0}.annot-picker{z-index:51;background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);gap:.2rem;padding:.3rem;display:flex;position:fixed;box-shadow:0 6px 20px #00000080}.annot-opt{font:inherit;font-weight:700;font-size:var(--text-md);background:var(--ink);border:1px solid var(--line);cursor:pointer;border-radius:4px;min-width:2rem;padding:.25rem .4rem}.annot-opt:hover{border-color:var(--brass)}.annot-clear{color:var(--text-dim);font-weight:400}.setup-subtitle{font-size:var(--text-lg);margin-top:1.4rem;margin-bottom:.8rem;font-weight:600}.strength-picker{flex-direction:column;gap:.6rem;width:min(92vw,320px);margin-bottom:.6rem;display:flex}.strength-value{text-align:center;color:var(--text-dim);font-size:var(--text-md)}.strength-value strong{color:var(--brass);font-size:var(--text-xl)}.strength-slider{appearance:none;background:var(--line);cursor:pointer;border-radius:999px;outline:none;width:100%;height:4px}.strength-slider::-webkit-slider-thumb{appearance:none;background:var(--brass);border:2px solid var(--ink);width:18px;height:18px;box-shadow:0 0 0 1px var(--brass-soft);cursor:pointer;border-radius:50%}.strength-slider::-moz-range-thumb{background:var(--brass);border:2px solid var(--ink);width:18px;height:18px;box-shadow:0 0 0 1px var(--brass-soft);cursor:pointer;border-radius:50%}.strength-slider::-moz-range-track{background:var(--line);border-radius:999px;height:4px}.strength-slider:focus-visible{outline:2px solid var(--brass);outline-offset:3px}.strength-anchors{width:100%;height:1.2rem;position:relative}.strength-anchor{white-space:nowrap;font-size:var(--text-3xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;position:absolute;transform:translate(-50%)}.thinking-indicator{color:var(--brass);font-size:var(--text-xs);opacity:.85;margin-left:.5rem;font-style:italic;animation:1.2s ease-in-out infinite thinking-pulse}@keyframes thinking-pulse{0%,to{opacity:.4}50%{opacity:.95}}.color-picker{gap:.6rem;width:min(92vw,320px);display:flex}.color-picker .btn{flex:1}.time-picker{flex-direction:column;gap:.8rem;width:min(92vw,320px);margin-top:.2rem;display:flex}.time-picker-group{flex-direction:column;gap:.4rem;display:flex}.time-picker-category{font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em}.time-picker-options{flex-wrap:wrap;gap:.5rem;display:flex}.time-picker-options .btn{flex:1;min-width:70px}.home-time-picker{width:100%}.wizard{flex-direction:column;align-items:center;gap:1.2rem;width:min(92vw,340px);display:flex}.home-wizard{width:100%}.wizard-progress{flex-direction:column;align-items:center;gap:.4rem;width:100%;display:flex}.wizard-step-label{font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em}.wizard-dots{gap:.5rem;display:flex}.wizard-dot{background:var(--line);border-radius:50%;width:8px;height:8px}.wizard-dot-active{background:var(--brass)}.wizard-dot-done{background:var(--brass-soft)}.wizard-panel{flex-direction:column;align-items:center;gap:.8rem;width:100%;display:flex}.wizard-panel .setup-subtitle{text-align:center;margin-top:0}.wizard-summary{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;align-items:center;gap:.2rem;width:100%;padding:.8rem;display:flex}.wizard-summary-label{font-size:var(--text-2xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em}.wizard-summary-text{font-size:var(--text-lg);color:var(--brass);text-align:center;font-weight:600}.wizard-back{align-self:center}.hint{color:var(--text-dim);font-size:var(--text-sm)}.settings-page{flex-direction:column;gap:1.4rem;max-width:480px;margin:0 auto;padding-top:1rem;display:flex}.settings-card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.9rem;padding:1.4rem;display:flex}.settings-heading{font-size:var(--text-lg);color:var(--brass);font-weight:600}.profile-row{font-size:var(--text-md);color:var(--text-dim);justify-content:space-between;align-items:center;display:flex}.profile-row strong{color:var(--text);font-weight:600}.form-success{color:var(--brass);font-size:var(--text-base)}.pref-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.pref-row>span:first-child{font-size:var(--text-md);color:var(--text-dim)}.theme-swatches{gap:.5rem;display:flex}.theme-swatch{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:4px;width:36px;height:24px;padding:0;display:flex;overflow:hidden}.theme-swatch-square{flex:1}.theme-swatch-active{border-color:var(--brass)}.toggle{border:1px solid var(--line);background:var(--ink);cursor:pointer;border-radius:12px;width:42px;height:24px;padding:0;position:relative}.toggle-on{border-color:var(--brass);background:var(--brass-soft)}.toggle-knob{background:var(--text-dim);border-radius:50%;width:18px;height:18px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.toggle-on .toggle-knob{background:var(--brass);transform:translate(18px)}.btn-icon{width:2.4rem;height:2.4rem;font-size:var(--text-xl);justify-content:center;align-items:center;padding:0;line-height:1;text-decoration:none;display:inline-flex}.settings-back{align-self:flex-start}.saved-flash{font-size:var(--text-xs);color:var(--brass);text-transform:none;letter-spacing:normal;margin-left:.6rem;font-weight:500;animation:1.5s saved-flash-fade}@keyframes saved-flash-fade{0%{opacity:0}15%{opacity:1}70%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.wallet-card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:1.2rem;margin-bottom:2rem;padding:1.4rem;display:flex}.wallet-balance{flex-direction:column;gap:.3rem;display:flex}.wallet-label{font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em}.wallet-amount{font-size:var(--text-3xl);color:var(--brass);font-weight:700}.wallet-actions{flex-wrap:wrap;gap:.7rem;display:flex}.wallet-history{border-top:1px solid var(--line);padding-top:1rem}.wallet-history-title{font-size:var(--text-md);margin-bottom:.7rem;font-weight:600}.tx-viewall{font-size:var(--text-sm);color:var(--brass);margin-top:.7rem;font-weight:600;text-decoration:none;display:inline-block}.tx-viewall:hover{text-decoration:underline}.tx-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.tx-row{font-size:var(--text-base);border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto auto;align-items:center;gap:.8rem;padding:.4rem 0;display:grid}.tx-row:last-child{border-bottom:none}.tx-date{color:var(--text-dim)}.tx-kind{color:var(--text)}.tx-amount{font-variant-numeric:tabular-nums;text-align:right}.tx-status{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;text-align:right}.tx-status-success{color:var(--brass)}.tx-status-failed{color:var(--danger)}.game-history-list{flex-direction:column;list-style:none;display:flex}.game-row{border-bottom:1px solid var(--line);color:inherit;cursor:pointer;flex-direction:column;gap:.3rem;padding:.7rem 0;text-decoration:none;display:flex}.game-history-list li:last-child .game-row{border-bottom:none}.game-row:hover{background:var(--brass-soft)}.game-row-main{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.game-row-opponent{overflow-wrap:anywhere;font-weight:600}.game-outcome{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;font-weight:700}.game-outcome-win{color:var(--brass)}.game-outcome-loss{color:var(--danger)}.game-outcome-draw,.game-outcome-aborted{color:var(--text-dim)}.game-row-meta{font-size:var(--text-sm);color:var(--text-dim);flex-wrap:wrap;gap:.35rem;display:flex}.game-row-opening{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:var(--text-sm);color:var(--text-dim);overflow:hidden}.game-opening-eco{color:var(--brass);font-weight:600}.game-row-moves{font-size:var(--text-xs);color:var(--text-dim);overflow-wrap:anywhere}.analysis-header{text-align:center;flex-direction:column;align-items:center;gap:.4rem;width:100%;display:flex}.analysis-players{flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;font-weight:600;display:flex}.analysis-player{align-items:center;gap:.35rem;display:inline-flex}.analysis-vs{color:var(--text-dim);font-weight:400;font-size:var(--text-base)}.analysis-color-dot{border:1px solid var(--line);border-radius:50%;width:.7rem;height:.7rem}.analysis-dot-white{background:var(--sq-light)}.analysis-dot-black{background:#2a2a2a}.analysis-meta{font-size:var(--text-sm);color:var(--text-dim);flex-wrap:wrap;justify-content:center;gap:.35rem;display:flex}.analysis-result{color:var(--text);font-weight:600}.analysis-opening{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:var(--text-sm);color:var(--text-dim);overflow:hidden}.analysis-panel{width:var(--board-size);background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.5rem;max-width:100%;padding:.8rem 1rem;display:flex}.analysis-eval-row{align-items:baseline;gap:.6rem;display:flex}.analysis-eval{font-size:var(--text-2xl);font-variant-numeric:tabular-nums;color:var(--brass);font-weight:700}.analysis-eval-label{font-size:var(--text-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.analysis-best{align-items:baseline;gap:.5rem;display:flex}.analysis-best-label{font-size:var(--text-2xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.analysis-best-move{font:inherit;font-weight:600;font-size:var(--text-lg);color:var(--brass);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.05rem .3rem}.analysis-best-move:hover{background:var(--brass-soft)}.analysis-pv{font-size:var(--text-sm)}.san-line{flex-wrap:wrap;align-items:baseline;gap:.15rem .25rem;display:flex}.san-num{color:var(--text-dim);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.san-move{font:inherit;font-size:var(--text-base);color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.05rem .25rem}.san-move:hover{background:var(--brass-soft)}.san-move-active{background:var(--brass-soft);color:var(--brass);font-weight:600}.analysis-mode-flag{width:var(--board-size);max-width:100%;font-size:var(--text-sm);color:var(--text-dim);border-radius:var(--radius);border:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.4rem .7rem;display:flex}.analysis-mode-variation{border-color:var(--brass);background:var(--brass-soft)}.analysis-mode-badge{font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink);background:var(--brass);border-radius:4px;padding:.1rem .4rem;font-weight:700}.analysis-mode-badge-quiet{color:var(--text-dim);background:var(--line)}.link-btn{font:inherit;font-size:var(--text-sm);color:var(--brass);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0;font-weight:600;text-decoration:underline}.analysis-variation-panel{width:var(--board-size);background:var(--ink-2);border:1px solid var(--brass);border-radius:var(--radius);flex-direction:column;gap:.5rem;max-width:100%;padding:.7rem .9rem;display:flex}.analysis-variation-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.analysis-variation-from{font-size:var(--text-xs);color:var(--text-dim)}.review-panel{width:var(--board-size);flex-direction:column;gap:.7rem;max-width:100%;display:flex}.review-running{flex-direction:column;gap:.5rem;display:flex}.review-progress-row{font-size:var(--text-base);color:var(--text-dim);justify-content:space-between;align-items:center;gap:.6rem;display:flex}.review-bar{background:var(--ink-2);border:1px solid var(--line);border-radius:999px;height:6px;overflow:hidden}.review-bar-fill{background:var(--brass);height:100%;transition:width .2s}.review-summary{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.4rem;padding:.7rem .9rem;display:flex}.review-summary-row{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.review-summary-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.review-summary-counts{font-size:var(--text-base);font-variant-numeric:tabular-nums;gap:.7rem;font-weight:700;display:flex}.eval-graph{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;width:100%;height:64px;display:block}.eval-graph-zero{stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke}.eval-graph-line{fill:none;stroke:var(--brass);stroke-width:1.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.eval-graph-cursor{stroke:var(--text);stroke-width:1px;opacity:.5;vector-effect:non-scaling-stroke}.modal-overlay{z-index:100;background:#0f1411b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:1rem;width:min(92vw,380px);padding:1.6rem;display:flex}.modal-header{justify-content:space-between;align-items:center;display:flex}.modal-header h2{font-size:var(--text-xl)}.modal-close{color:var(--text-dim);cursor:pointer;font-size:var(--text-2xl);background:0 0;border:none;padding:0;line-height:1}.modal-close:hover{color:var(--text)}.wallet-poll{flex-direction:column;gap:.6rem;display:flex}.admin-page{flex-direction:column;gap:1.2rem;max-width:880px;margin:0 auto;padding-top:1rem;display:flex}.admin-section{flex-direction:column;gap:1rem;display:flex}.admin-table-wrap{border:1px solid var(--line);border-radius:var(--radius);width:100%;max-height:72vh;overflow:auto}.admin-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.admin-table thead th{z-index:1;background:var(--ink-2);color:var(--text-dim);font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.07em;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line);padding:.5rem .6rem;font-weight:600;position:sticky;top:0}.admin-table th.ta-right,.admin-table td.ta-right{text-align:right}.admin-table tbody td{border-bottom:1px solid var(--line);vertical-align:middle;padding:.44rem .6rem}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:var(--brass-soft)}.admin-row-click{cursor:pointer}.admin-num{font-variant-numeric:tabular-nums}.admin-cell-user{color:var(--text);font-weight:600}.admin-cap{text-transform:capitalize}.admin-neg{color:var(--danger)}.admin-pos{color:var(--brass)}.th-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.25rem;padding:0;display:inline-flex}.th-sort:hover{color:var(--brass)}.th-sort-ind{color:var(--brass);font-size:.7em}.admin-actions{justify-content:flex-end;gap:.4rem;display:flex}.admin-actions .btn{font-size:var(--text-sm);padding:.28rem .6rem}.admin-chip{font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.12rem .45rem;font-weight:700;display:inline-block}.admin-chip-success{color:var(--brass);background:var(--brass-soft)}.admin-chip-failed{color:var(--danger);background:#c96a4a29}.admin-ref{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-sm);color:var(--text-dim);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;background:0 0;border:none;max-width:14ch;padding:0;display:inline-block;overflow:hidden}.admin-ref:hover{color:var(--brass)}.admin-cards{display:none}.admin-card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.5rem;padding:.7rem .8rem;display:flex}.admin-card-top{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.admin-card-primary{font-weight:600;font-size:var(--text-md);overflow-wrap:anywhere}.admin-card-amount{color:var(--brass);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.admin-card-meta{font-size:var(--text-sm);color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.admin-card-actions{gap:.5rem;display:flex}.admin-card-actions .btn{flex:1}@media (width<=720px){.admin-table-wrap{display:none}.admin-cards{flex-direction:column;gap:.6rem;display:flex}}.admin-tabs{border-bottom:1px solid var(--line);gap:.3rem;display:flex}.admin-tab{font:inherit;font-weight:600;font-size:var(--text-md);color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.55rem .8rem}.admin-tab-active{color:var(--brass);border-bottom-color:var(--brass)}.admin-filters{flex-wrap:wrap;gap:.9rem;display:flex}.admin-filter{flex-direction:column;gap:.35rem;display:flex}.admin-filter-label{font-size:var(--text-2xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.admin-filter-opts{flex-wrap:wrap;gap:.3rem;display:flex}.admin-filter-btn{font:inherit;font-size:var(--text-sm);color:var(--text-dim);background:var(--ink);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:.25rem .7rem}.admin-filter-active{background:var(--brass);color:var(--ink);border-color:var(--brass)}.admin-pager{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.admin-pager .btn{flex-shrink:0}.admin-pager-label{font-size:var(--text-sm);color:var(--text-dim);text-align:center}.admin-search{gap:.5rem;display:flex}.admin-search-input{min-width:0;font:inherit;background:var(--ink);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);flex:1;padding:.5rem .7rem}.admin-search-input:focus{border-color:var(--brass);outline:none}.admin-detail-back{align-self:flex-start;margin-left:0}.admin-user-head{flex-direction:column;gap:.15rem;display:flex}.admin-user-name{font-size:var(--text-xl)}.admin-user-email{font-size:var(--text-base);color:var(--text-dim);overflow-wrap:anywhere}.admin-balance{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.2rem;padding:1rem;display:flex}.admin-balance-amount{font-size:var(--text-3xl);color:var(--brass);font-variant-numeric:tabular-nums;font-weight:700}.admin-user-record{font-size:var(--text-base);color:var(--text-dim)}.admin-subhead{font-size:var(--text-md);color:var(--brass);margin-top:.4rem;font-weight:600}.discreet-link{text-align:center;color:var(--text-dim);font-size:var(--text-xs);margin-top:.4rem;text-decoration:none;display:block}.discreet-link:hover{color:var(--text)}.brand{font-family:var(--font-display);font-weight:800;font-stretch:75%}.hero-title{font-family:var(--font-display);letter-spacing:-.01em;font-weight:900;font-stretch:75%}.page-title,.auth-title{font-family:var(--font-display);font-weight:800;font-stretch:75%}.clock,.stats-strip strong,.rating-value,.wallet-amount,.admin-balance-amount,.tx-amount,.admin-num,.admin-card-amount,.move-cell,.move-number,.san-move,.san-num,.game-opening-eco,.analysis-eval,.rating-change strong,.rating-delta,.review-summary-counts,.strength-value strong,.admin-ref{font-family:var(--font-data)}.clock,.stats-strip strong,.rating-value,.wallet-amount,.move-number{font-variant-numeric:tabular-nums}.searching{color:var(--ember)}.clock-low{color:var(--ember);border-color:var(--ember)}.tx-status-pending{color:var(--ember)}.admin-chip-pending{color:var(--ember);background:var(--ember-soft)}
