:root{--paper:#f5efe2;--paper-soft:#ede4d0;--paper-deep:#e3d6b8;--ink:#1a1612;--ink-soft:#5c4f3e;--ink-faint:#9b8c70;--ink-ghost:#c0ad8a;--rule:#d4c4a8;--rule-strong:#b39c75;--copper:#a8541e;--copper-deep:#7a3a13;--copper-soft:#a8541e1a;--copper-wash:#a8541e2e;--rose:#9a2a3e;--rose-deep:#6e1d2c;--rose-soft:#9a2a3e14;--rose-wash:#9a2a3e2e;--good:#5b6b3a;--good-soft:#5b6b3a1a;--warn:#a76a14;--warn-soft:#a76a141a;--bad:#8a3a1a;--bad-soft:#8a3a1a1a;--board-light:#f0e6c8;--board-dark:#7a5a35;--board-sel:#a8541e52;--board-last:#a8541e2e;--serif:"EB Garamond","Crimson Pro",Georgia,serif;--sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"IBM Plex Mono","JetBrains Mono",ui-monospace,monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--sans);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11";background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 0.42  0 0 0 0 0.32  0 0 0 0 0.18  0 0 0 0.06 0'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>"),radial-gradient(at 50% 0,#a8541e0a,#0000 60%);background-size:160px 160px,100% 100%;background-attachment:fixed,fixed;min-height:100vh}::selection{background:var(--copper-wash);color:var(--ink)}.app-container{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--paper);border-bottom:1px solid var(--rule);z-index:100;justify-content:space-between;align-items:center;height:76px;padding:0 40px;display:flex;position:sticky;top:0}.app-logo{align-items:center;gap:14px;display:flex}.app-logo-mark{width:42px;height:42px;font-family:var(--serif);color:var(--ink);border:1.5px solid var(--ink);background:var(--paper);border-radius:2px;justify-content:center;align-items:center;padding-bottom:4px;font-size:32px;font-style:italic;font-weight:500;line-height:1;display:flex}.app-logo-text{font-family:var(--serif);color:var(--ink);letter-spacing:-.01em;font-size:24px;font-weight:500;line-height:1.1}.app-logo-sub{font-family:var(--mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.14em;margin-top:2px;font-size:10.5px}.header-actions{align-items:center;gap:14px;display:flex}.header-user{color:var(--ink-soft);align-items:center;gap:10px;font-size:14px;display:flex}.header-user-avatar{border:1px solid var(--rule);object-fit:cover;border-radius:50%;width:32px;height:32px}.header-user-avatar-fallback{border:1px solid var(--rule);width:32px;height:32px;font-family:var(--serif);color:var(--ink-soft);background:var(--paper-soft);border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex}.main-content{flex:1;grid-template-columns:minmax(0,1fr) minmax(360px,460px);align-items:start;gap:56px;width:100%;max-width:1400px;margin:0 auto;padding:40px 40px 80px;display:grid}@media (max-width:960px){.main-content{grid-template-columns:1fr;gap:36px;padding:24px 20px 64px}}.board-section,.analysis-section{flex-direction:column;gap:22px;min-width:0;display:flex}.section-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;color:var(--ink-faint);align-items:center;gap:12px;margin-bottom:4px;font-size:11px;display:flex}.section-label:after{content:"";background:var(--rule);flex:1;height:1px}.board-wrapper{aspect-ratio:1;border:1px solid var(--ink);background:var(--paper);gap:6px;width:100%;max-width:min(100%,100vh - 220px);margin:0 auto;padding:6px;display:flex;position:relative}.eval-bar-container{background:var(--ink);flex-shrink:0;width:18px;position:relative;overflow:hidden}.eval-bar-white{background:var(--paper);border-top:1px solid var(--ink-soft);transition:height .6s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;left:0;right:0}.eval-bar-container.rose .eval-bar-white{background:var(--rose-soft);border-top-color:var(--rose)}.eval-bar-score{font-family:var(--mono);z-index:2;writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap;letter-spacing:.04em;font-size:9px;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.eval-bar-score.top{color:var(--paper);top:6px}.eval-bar-score.bottom{color:var(--ink);bottom:6px}.board-inner{flex:1;min-width:0;position:relative}.card{background:var(--paper);border:1px solid var(--rule);border-radius:0;flex-direction:column;display:flex}.card-header{border-bottom:1px solid var(--rule);background:var(--paper-soft);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.card-title{font-family:var(--serif);color:var(--ink);letter-spacing:-.005em;align-items:center;gap:10px;font-size:17px;font-weight:500;display:flex}.card-title-mark{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;color:var(--ink-faint);margin-left:4px;font-size:10px}.card-body{flex:1;padding:20px}.card.card-rose{border-color:var(--rose);border-left-width:3px}.card.card-rose .card-header{background:var(--rose-soft);border-bottom-color:var(--rose-wash)}.card.card-rose .card-title{color:var(--rose-deep)}.beta-access-note{border:1px solid var(--rule);background:var(--paper-soft);align-items:baseline;gap:12px;margin-bottom:16px;padding:12px 16px;display:flex}.beta-access-note strong{font-family:var(--mono);color:var(--copper-deep);text-transform:uppercase;letter-spacing:.14em;white-space:nowrap;font-size:10.5px;font-weight:600}.beta-access-note span{color:var(--ink-soft);font-size:13.5px;line-height:1.5}.btn{font-family:var(--sans);cursor:pointer;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:13.5px;font-weight:500;line-height:1.2;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-primary:hover:not(:disabled){background:var(--copper-deep);border-color:var(--copper-deep)}.btn-secondary{background:var(--paper);color:var(--ink);border-color:var(--ink)}.btn-secondary:hover:not(:disabled){background:var(--ink);color:var(--paper)}.btn-ghost{color:var(--ink-soft);border-color:var(--rule);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--ink);border-color:var(--ink)}.btn-rose{background:var(--rose);color:var(--paper);border-color:var(--rose)}.btn-rose:hover:not(:disabled){background:var(--rose-deep);border-color:var(--rose-deep)}.btn-rose-soft{background:var(--rose-soft);color:var(--rose-deep);border-color:var(--rose)}.btn-rose-soft:hover:not(:disabled){background:var(--rose-wash)}.btn-sm{padding:6px 12px;font-size:12.5px}.btn-block{width:100%}.btn-row{gap:10px;display:flex}.input,.fen-input{background:var(--paper-soft);border:1px solid var(--rule);width:100%;color:var(--ink);font-family:var(--mono);border-radius:0;outline:none;padding:10px 14px;font-size:13px;transition:border-color .15s,background .15s}.input:focus,.fen-input:focus{border-color:var(--copper);background:var(--paper)}.input::placeholder,.fen-input::placeholder{color:var(--ink-faint);font-family:var(--mono)}textarea.input,textarea.fen-input{font-family:var(--mono);resize:vertical;min-height:80px;line-height:1.5}.checkbox-row{color:var(--ink-soft);cursor:pointer;align-items:center;gap:8px;font-size:13.5px;display:flex}.checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--copper);cursor:pointer}.level-toggle{border:1px solid var(--ink);display:inline-flex}.level-btn{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;cursor:pointer;background:var(--paper);color:var(--ink-soft);border:none;border-right:1px solid var(--ink);padding:6px 14px;font-size:10.5px;font-weight:600;transition:background .15s,color .15s}.level-btn:last-child{border-right:none}.level-btn:hover:not(.active){color:var(--ink)}.level-btn.active{background:var(--ink);color:var(--paper)}.factors-list{border-top:1px solid var(--rule);flex-direction:column;gap:0;display:flex}.factor-item{border-bottom:1px solid var(--rule);align-items:baseline;gap:16px;padding:12px 0;display:flex}.factor-rank{font-family:var(--serif);color:var(--copper);text-align:right;flex-shrink:0;width:24px;font-size:18px;font-style:italic}.factor-text{color:var(--ink-soft);font-size:14.5px;line-height:1.55}.pv-lines{border-top:1px solid var(--rule);flex-direction:column;gap:0;display:flex}.pv-line{border-bottom:1px solid var(--rule);align-items:baseline;gap:16px;padding:10px 0;display:flex}.pv-rank{font-family:var(--serif);color:var(--ink-faint);text-align:right;flex-shrink:0;width:24px;font-size:16px;font-style:italic}.pv-score{font-family:var(--mono);background:var(--paper-soft);border:1px solid var(--rule);text-align:center;min-width:64px;padding:2px 8px;font-size:12px;font-weight:600}.pv-score.positive{color:var(--good);border-color:var(--good-soft)}.pv-score.negative{color:var(--bad);border-color:var(--bad-soft)}.pv-score.neutral{color:var(--ink-soft)}.pv-moves{font-family:var(--mono);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.explanation-text{font-family:var(--serif);color:var(--ink);white-space:pre-wrap;font-size:17px;line-height:1.6}.explanation-text.italic{font-style:italic}.explanation-loading{color:var(--rose);font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:12px;font-size:12px;display:flex}.loading-dots{gap:5px;display:flex}.loading-dots span{background:var(--rose);border-radius:50%;width:5px;height:5px;animation:1.4s infinite dotPulse}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,to{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.stat-grid{border:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:0;display:grid}.stat-cell{border-right:1px solid var(--rule);padding:16px 20px}.stat-cell:last-child{border-right:none}.stat-cell-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-faint);margin-bottom:6px;font-size:10.5px}.stat-cell-value{font-family:var(--serif);color:var(--ink);font-size:32px;font-weight:500;line-height:1}.stat-cell-value.good{color:var(--good)}.stat-cell-value.warn{color:var(--warn)}.stat-cell-value.bad{color:var(--bad)}.move-tags{flex-wrap:wrap;gap:8px;display:flex}.move-tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--rule);background:var(--paper-soft);color:var(--ink-soft);padding:4px 10px;font-size:10.5px;font-weight:600}.move-tag.good{color:var(--good);border-color:var(--good-soft);background:var(--good-soft)}.move-tag.warn{color:var(--warn);border-color:var(--warn-soft);background:var(--warn-soft)}.move-tag.bad{color:var(--bad);border-color:var(--bad-soft);background:var(--bad-soft)}.noteworthy-move{border-bottom:1px solid var(--rule);padding:14px 0}.noteworthy-move:last-child{border-bottom:none}.noteworthy-move-head{font-family:var(--mono);align-items:baseline;gap:12px;margin-bottom:6px;font-size:13.5px;display:flex}.noteworthy-move-number{color:var(--ink-faint)}.noteworthy-move-san{color:var(--ink);font-size:15px;font-weight:600}.noteworthy-move-san.brilliant{color:var(--good)}.noteworthy-move-san.blunder{color:var(--bad)}.noteworthy-move-best{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin-left:auto;font-size:11px}.noteworthy-move-comment{font-family:var(--serif);color:var(--ink-soft);font-size:15px;font-style:italic;line-height:1.5}.status-bar{background:var(--paper);border-top:1px solid var(--rule);font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);justify-content:space-between;margin-top:auto;padding:12px 40px;font-size:10.5px;display:flex}.status-indicator{align-items:center;gap:8px;display:flex}.status-dot{background:var(--good);width:6px;height:6px}.status-dot.disconnected{background:var(--bad)}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.divider{color:var(--ink-faint);font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;align-items:center;gap:14px;margin:20px 0;font-size:10.5px;display:flex}.divider:before,.divider:after{content:"";background:var(--rule);flex:1;height:1px}
