:root{--bg: #12110e;--bg-raise: #1b1914;--bg-soft: #221f19;--line: #332e26;--text: #f3eee6;--muted: #9a9286;--gold: #d4a24c;--gold-dim: #8d6c32;--teal: #7eb6ad;--danger: #d46a5c;--shadow: 0 18px 40px rgba(0, 0, 0, .28);--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans: "Helvetica Neue", Helvetica, Arial, sans-serif;--mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(1200px 500px at 10% -10%,rgba(212,162,76,.08),transparent 50%),var(--bg);color:var(--text);font-family:var(--sans)}button,input,textarea,select{font:inherit}a{color:inherit}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--line);padding:28px 20px;background:#12110ee0;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;margin-bottom:32px}.mark{width:34px;height:34px;border:1px solid var(--gold);display:grid;place-items:center;color:var(--gold);font-family:var(--serif);font-size:22px}.brand h1{margin:0;font-family:var(--serif);font-size:22px;font-weight:600}.brand p,.muted{color:var(--muted)}.brand p{margin:2px 0 0;font-size:12px}.nav{display:flex;flex-direction:column;gap:6px}.nav a{text-decoration:none;padding:10px 12px;color:var(--muted);border-left:2px solid transparent}.nav a.active,.nav a:hover{color:var(--text);background:var(--bg-soft);border-left-color:var(--gold)}.sidebar-foot{margin-top:40px;font-size:12px}.content{padding:36px 48px 64px}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:28px}.page-head h2,.login-card h2,.panel h3{margin:0;font-family:var(--serif);font-weight:600}.page-head h2{font-size:36px}.page-head p{margin:6px 0 0;color:var(--muted)}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.cards{grid-template-columns:1.3fr .7fr}.panel,.login-card,.memory-card,.table-wrap{background:var(--bg-raise);border:1px solid var(--line);box-shadow:var(--shadow)}.panel,.memory-card,.table-wrap,.login-card{padding:20px}.stat{padding:18px 20px}.stat b{display:block;font-size:28px;font-family:var(--serif);margin-top:8px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%)}.login-card h2{font-size:34px;margin-bottom:8px}label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}input,textarea,select{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--line);padding:11px 12px;margin-bottom:14px}textarea{min-height:120px;resize:vertical}.row{display:flex;gap:12px}.row>*{flex:1}.btn{border:1px solid var(--gold-dim);background:var(--gold);color:#1a1408;padding:10px 14px;font-weight:600;cursor:pointer}.btn.secondary{background:transparent;color:var(--text);border-color:var(--line)}.btn.danger{background:transparent;color:var(--danger);border-color:#6d3933}.btn:disabled{opacity:.55;cursor:not-allowed}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.toolbar input,.toolbar select{margin:0;min-width:160px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}tr.selected-row td{background:var(--bg-soft);color:var(--text)}.mono,code,pre{font-family:var(--mono)}code,pre{background:var(--bg);border:1px solid var(--line)}code{padding:2px 6px;font-size:12px}pre{padding:14px;overflow:auto;font-size:12px;line-height:1.5}.chip{display:inline-block;border:1px solid var(--line);padding:2px 7px;font-size:12px;color:var(--teal);margin-right:6px}.score{color:var(--gold);font-family:var(--mono);font-size:12px}.error{color:var(--danger);margin:0 0 12px}.empty{color:var(--muted);padding:28px 8px}.memory-card+.memory-card{margin-top:12px}.actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line)}.nav{flex-direction:row;flex-wrap:wrap}.content{padding:24px 18px 48px}.stats,.cards{grid-template-columns:1fr}.row{flex-direction:column}}
