:root{color-scheme:dark;font-family:IBM Plex Sans,Avenir Next,system-ui,sans-serif;line-height:1.5;color:#f7f4ee;background:radial-gradient(circle at top left,rgba(255,183,77,.14),transparent 28%),linear-gradient(160deg,#10212b,#143544 48%,#1f4d55);--c-best: #43d384;--c-inaccuracy: #e6bc41;--c-mistake: #ff923d;--c-blunder: #e04b4b}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer}.boot-screen,.auth-shell{min-height:100vh;display:grid;place-items:center;padding:2rem}.auth-card,.panel{border:1px solid rgba(255,255,255,.12);background:#0a10158f;box-shadow:0 18px 40px #0000003d;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.auth-card{width:min(560px,100%);border-radius:28px;padding:2rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;color:#ffd39e;margin:0 0 .5rem}.auth-card h1,.topbar h1{margin:0;font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.05}.lede{color:#f7f4eebd;max-width:38rem}.mode-toggle{display:inline-flex;gap:.5rem;margin:1.5rem 0 1rem;padding:.35rem;background:#ffffff0f;border-radius:999px}.mode-toggle button,.ghost-button,.primary-button,.game-list-item,.move-chip{border:0;border-radius:999px}.mode-toggle button,.ghost-button{background:transparent;color:#f7f4ee;padding:.55rem 1rem}.mode-toggle button.active,.ghost-button:hover,.game-list-item:hover,.game-list-item.selected{background:#ffffff24}.ghost-button:disabled{opacity:.45;cursor:not-allowed}.ghost-button:disabled:hover{background:transparent}.primary-button{background:linear-gradient(135deg,#f5c56b,#ef8f47);color:#17212b;padding:.85rem 1.2rem;font-weight:700}.primary-button.compact{padding:.55rem 1rem}.primary-button:disabled{opacity:.6;cursor:not-allowed}.auth-form,.upload-form{display:grid;gap:1rem}label{display:grid;gap:.4rem;color:#f7f4eee0}input,textarea{width:100%;border-radius:18px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:#f7f4ee;padding:.9rem 1rem}.error-banner,.subtle-status{margin:0;padding:.75rem .95rem;border-radius:16px}.error-banner{background:#d63e3e2e;color:#ffd6d6}.subtle-status{background:#ffffff12;color:#f7f4eed6}.app-shell{padding:1.5rem}.topbar{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1.5rem}.topbar-actions{display:flex;align-items:center;gap:.75rem}.user-pill{padding:.75rem 1rem;background:#ffffff14;border-radius:999px}.layout-grid{display:grid;grid-template-columns:280px minmax(0,1fr) 340px;gap:1rem}.left-column,.center-column,.right-column{display:grid;gap:1rem;align-content:start;min-width:0}.board-notation-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:1rem;align-items:start}.panel{border-radius:24px;padding:1.1rem}.panel-header{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1rem}.panel-header h2{margin:0;font-size:1.1rem}.panel-header-actions{display:flex;align-items:center;gap:.75rem}.export-menu{position:relative}.export-dropdown{position:absolute;right:0;top:calc(100% + .4rem);z-index:20;display:grid;min-width:200px;padding:.4rem;gap:.15rem;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:#0a1015f2;box-shadow:0 18px 40px #0006}.export-dropdown button{border:0;border-radius:10px;background:transparent;color:#f7f4ee;padding:.6rem .8rem;text-align:left;font-size:.9rem}.export-dropdown button:hover{background:#ffffff1a}.warning-status{background:#ffa62b21;color:#ffd6aa;margin-bottom:.75rem}.empty-panel{color:#f7f4eeb8}.game-list{display:grid;gap:.65rem}.game-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;align-items:stretch}.game-list-item{display:grid;gap:.2rem;text-align:left;padding:.95rem 1rem;background:#ffffff0d;color:#f7f4ee;min-width:0}.delete-button{border:0;border-radius:999px;width:2.4rem;background:#d63e3e1f;color:#ffd8d8;font-size:.85rem}.delete-button:hover{background:#d63e3e4d}.game-list-item small{color:#f7f4eead}.game-desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-form{display:flex;gap:.5rem;margin-bottom:.75rem}.collection-form input{padding:.55rem .85rem;border-radius:12px}.collection-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem}.collection-chip{border:1px solid rgba(255,255,255,.14);border-radius:999px;background:transparent;color:#f7f4eecc;padding:.3rem .75rem;font-size:.8rem}.collection-chip:hover{background:#ffffff14}.collection-chip.active{background:#ffb74d29;border-color:#ffb74d8c;color:#ffd39e}select{width:100%;border-radius:18px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:#f7f4ee;padding:.9rem 1rem}select option{background:#10212b;color:#f7f4ee}.board-shell{display:grid;grid-template-columns:22px minmax(0,1fr);gap:.9rem;align-items:stretch}.eval-rail{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.45rem;align-items:center;justify-items:center}.eval-bar-track{position:relative;width:100%;min-height:100%;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.18);background:#0d1117}.eval-bar-black{background:linear-gradient(180deg,#111822,#232f3c)}.eval-bar-white{background:linear-gradient(180deg,#f6f0df,#fff)}.eval-bar-score{position:absolute;left:50%;transform:translate(-50%,-50%);padding:.1rem .28rem;border-radius:999px;background:#0f151bd1;color:#fff7e8;font-size:.64rem;white-space:nowrap;pointer-events:none}.eval-label{font-size:.68rem;color:#f7f4eec2}.eval-label-top{color:#f7f4ee8f}.board-wrapper{width:100%;max-width:680px;margin:0 auto}.board-footer{margin-top:1rem;display:grid;gap:.5rem}.board-controls{display:flex;gap:.5rem;flex-wrap:wrap}.moves-grid{display:flex;gap:.55rem;flex-wrap:wrap;align-content:start}.moves-scroll{max-height:560px;overflow-y:auto;padding-right:.25rem}.move-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .8rem;background:#ffffff0d;color:#f7f4ee;border:1px solid transparent}.move-chip:disabled{opacity:.4;cursor:not-allowed}.move-number{color:#f7f4ee80;font-size:.82rem}.move-text{font-weight:600}.move-chip.best{background:#43d38417;border-color:#43d38440}.move-chip.inaccuracy{background:#e6bc411a;border-color:#e6bc4138}.move-chip.mistake{background:#ff923d1c;border-color:#ff923d3d}.move-chip.blunder{background:#e04b4b1f;border-color:#e04b4b3d}.move-chip.low-confidence{border-style:dashed;border-color:#ffb74d8c}.move-chip.selected{background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff38}.moves-status{margin:0;color:#f7f4eead;font-size:.88rem}.move-badge{min-width:1.8rem;padding:.12rem .38rem;border-radius:999px;font-size:.72rem;text-align:center}.move-badge.best{background:#43d38433;color:#9effc7}.move-badge.inaccuracy{background:#e6bc4133;color:#ffe89d}.move-badge.mistake{background:#ff923d33;color:#ffd1a4}.move-badge.blunder{background:#e04b4b3d;color:#ffd0d0}.scoresheet-scroll{max-height:480px;overflow-y:auto;border-radius:14px;border:1px solid rgba(255,255,255,.08)}.scoresheet-table{width:100%;border-collapse:collapse;table-layout:fixed}.scoresheet-table thead th{position:sticky;top:0;background:#0a1015e0;padding:.5rem .75rem;text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#f7f4ee8c;font-weight:500;border-bottom:1px solid rgba(255,255,255,.08)}.scoresheet-num-col{width:3rem}.scoresheet-table tbody tr+tr{border-top:1px solid rgba(255,255,255,.04)}.scoresheet-num{padding:.35rem .75rem;color:#f7f4ee66;font-size:.8rem;font-variant-numeric:tabular-nums}.scoresheet-table td{padding:.2rem .4rem}.scoresheet-move-input{width:100%;padding:.38rem .55rem;border-radius:8px;border:1px solid transparent;background:#ffffff0a;color:#f7f4ee;font-size:.9rem;font-weight:600;font-family:IBM Plex Mono,monospace;outline:none}.scoresheet-move-input:focus{border-color:#ffb74db3;background:#ffb74d1a}.scoresheet-move-input.cell-ok{border-left:3px solid rgba(67,211,132,.5)}.scoresheet-move-input.cell-low{background:#e6bc4112;border-left:3px solid rgba(230,188,65,.55)}.scoresheet-move-input.cell-verylow{background:#ff923d17;border-left:3px solid rgba(255,146,61,.55)}.scoresheet-move-input.cell-error{border-left:3px solid rgba(224,75,75,.8);background:#e04b4b1f;color:#ffd6d6}.analysis-stack{display:grid;gap:1rem}.analysis-card{display:grid;gap:.45rem;padding:1rem;border-radius:18px;background:#ffffff0d}.analysis-card p{margin:0}.game-image{width:100%;border-radius:16px;object-fit:cover}.simple-list{margin:.5rem 0 0;padding-left:1.2rem;color:#ffd6aa;font-size:.85rem}.simple-list.compact{max-height:200px;overflow:auto}.analysis-progress{display:grid;gap:.4rem;margin-bottom:.75rem}.analysis-progress-track{height:6px;border-radius:999px;background:#ffffff1a;overflow:hidden}.analysis-progress-bar{height:100%;border-radius:999px;background:var(--c-best);transition:width .3s ease}.insight-summary{gap:.65rem;margin-bottom:.75rem}.insight-color-row{display:flex;align-items:center;gap:.6rem}.insight-color-label{width:3rem;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.7;flex-shrink:0}.insight-stat{display:inline-flex;align-items:center;gap:.25rem;padding:.18rem .55rem;border-radius:999px;font-size:.82rem;font-weight:600}.insight-stat.blunder{background:#e04b4b2e;color:#ffd0d0}.insight-stat.mistake{background:#ff923d2e;color:#ffd1a4}.insight-stat.inaccuracy{background:#e6bc412e;color:#ffe89d}.move-insight{border-left:3px solid transparent}.move-insight-best{border-left-color:var(--c-best)}.move-insight-inaccuracy{border-left-color:var(--c-inaccuracy)}.move-insight-mistake{border-left-color:var(--c-mistake)}.move-insight-blunder{border-left-color:var(--c-blunder)}.move-insight-header{display:flex;align-items:center;gap:.55rem}.move-insight-row{display:flex;align-items:baseline;gap:.45rem}.move-insight-row.best-row .move-insight-value{color:var(--c-best);font-weight:700}.move-insight-label{font-size:.75rem;opacity:.6;flex-shrink:0}.move-insight-value{font-weight:600;font-size:.95rem}.move-insight-eval{margin-left:auto;font-size:.8rem;opacity:.75;font-variant-numeric:tabular-nums}.move-insight-loss{display:grid;gap:.3rem}.cp-loss-track{height:5px;border-radius:999px;background:#ffffff1a;overflow:hidden}.cp-loss-bar{height:100%;border-radius:999px;transition:width .25s ease}.move-insight-moves{font-size:.8rem;opacity:.75;line-height:1.5;font-variant-numeric:tabular-nums}.engine-lines{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.35rem}.engine-line{display:flex;gap:.6rem;font-size:.82rem;align-items:baseline}.engine-line-score{font-weight:700;font-variant-numeric:tabular-nums;min-width:3.5rem;flex-shrink:0}.engine-line-moves{opacity:.8;line-height:1.45}@media(max-width:1280px){.layout-grid{grid-template-columns:1fr}.center-column{order:-1}.right-column{order:0}.left-column{order:1}.analysis-stack{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}}@media(max-width:900px){.board-notation-row{grid-template-columns:1fr}.moves-scroll{max-height:300px}}@media(max-width:720px){.app-shell{padding:.75rem}.topbar{flex-direction:column;align-items:stretch}.topbar h1{font-size:1.25rem}.topbar-actions{justify-content:space-between}.panel{border-radius:18px;padding:.85rem}.board-shell{grid-template-columns:14px minmax(0,1fr);gap:.55rem}.eval-bar-score{display:none}.board-controls{width:100%}.board-controls .ghost-button{flex:1;padding:.65rem .5rem;text-align:center}.move-chip{padding:.45rem .6rem}.analysis-stack{grid-template-columns:1fr}}.users-view{display:grid;grid-template-columns:340px minmax(0,1fr);gap:1rem;align-items:start;max-width:1000px}.user-row{cursor:default}.role-chip{margin-left:.5rem;padding:.1rem .5rem;border-radius:999px;font-size:.7rem;font-weight:600;background:#ffffff1a;color:#f7f4eebf;vertical-align:middle}.role-chip.role-admin{background:#ffb74d29;color:#ffd39e}.ghost-button.active-view{background:#ffffff24}@media(max-width:900px){.users-view{grid-template-columns:1fr}}
