:root{--bg: #0f172a;--bg-elev: #1e293b;--bg-elev-2: #334155;--text: #e2e8f0;--text-dim: #94a3b8;--accent: #f59e0b;--accent-2: #22c55e;--danger: #ef4444;--border: #475569;--radius: 12px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.page{max-width:1100px;margin:0 auto;padding:1.5rem 1rem 3rem}.page__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.page__title{margin:0;font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:.04em}.page__subtitle{color:var(--text-dim);font-size:.95rem}.layout{display:grid;grid-template-columns:1fr minmax(180px,240px);gap:1.5rem;align-items:start}@media(max-width:720px){.layout{grid-template-columns:1fr}}.board{display:grid;grid-template-columns:repeat(10,1fr);gap:clamp(4px,1vw,10px)}.cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1 / 1;border-radius:var(--radius);background:var(--bg-elev);border:1px solid var(--border);font-size:clamp(.9rem,2.4vw,1.5rem);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-dim);transition:transform .12s ease,background .2s ease,color .2s ease;-webkit-user-select:none;user-select:none}.cell--drawn{background:var(--accent);color:#1f2937;border-color:var(--accent)}.cell--latest{outline:3px solid var(--accent-2);outline-offset:2px;animation:pop .35s ease}.cell--clickable{cursor:pointer}.cell--clickable:hover{transform:scale(1.06);filter:brightness(1.05)}@keyframes pop{0%{transform:scale(.7)}60%{transform:scale(1.12)}to{transform:scale(1)}}.recent{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;position:sticky;top:1rem}.recent__title{margin:0 0 .75rem;font-size:1.1rem}.recent__empty{color:var(--text-dim);font-size:.9rem}.recent__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.recent__item{background:var(--bg-elev-2);border-radius:10px;padding:.5rem;text-align:center;font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums}.recent__item--latest{background:var(--accent);color:#1f2937;font-size:2rem}.recent__total{margin:1rem 0 0;color:var(--text-dim);font-size:.85rem;text-align:center}.banner{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;text-align:center}.banner--error{border-color:var(--danger);color:var(--danger)}.controls{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.panel{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.panel__title{margin:0 0 .75rem;font-size:1rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}input[type=number],input[type=text],input[type=email],input[type=password]{background:var(--bg);border:1px solid var(--border);border-radius:10px;color:var(--text);padding:.6rem .75rem;font-size:1rem;min-width:0}input:focus{outline:2px solid var(--accent);border-color:var(--accent)}button.btn{border:none;border-radius:10px;padding:.6rem 1.1rem;font-size:1rem;font-weight:600;cursor:pointer;background:var(--accent);color:#1f2937;transition:filter .15s ease}button.btn:hover{filter:brightness(1.08)}button.btn:disabled{opacity:.5;cursor:not-allowed}button.btn--ghost{background:transparent;border:1px solid var(--border);color:var(--text)}button.btn--danger{background:var(--danger);color:#fff}.hint{color:var(--text-dim);font-size:.85rem;margin:.5rem 0 0}.feedback{margin:.5rem 0 0;font-weight:600}.feedback--ok{color:var(--accent-2)}.feedback--bad{color:var(--danger)}.login{max-width:360px;margin:4rem auto}.login form{display:flex;flex-direction:column;gap:.75rem}.nav-link{color:var(--text-dim);text-decoration:none;font-size:.9rem}.nav-link:hover{color:var(--text)}
