:root{--bg: #0E0F13;--panel: #16181F;--panel-2: #13141A;--line: rgba(255,255,255,.09);--line-2: rgba(255,255,255,.14);--text: #ECE7DD;--dim: #8A8B95;--faint: #7e7f88;--accent: #E9B84B;--accent-d: #b8861f;--green: #7BD88F;--red: #EE8A6E;--blue: #6CC8F0;--teal: #5BD6C0;--purple: #C9B6F7;--mono: "JetBrains Mono", ui-monospace, monospace;--ui: "Space Grotesk", system-ui, sans-serif;--serif: "Spectral", Georgia, serif;--sign: "Space Grotesk", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--ui);font-size:14.5px;-webkit-font-smoothing:antialiased;background-image:radial-gradient(1100px 560px at 12% -8%,rgba(233,184,75,.1),transparent 60%),radial-gradient(900px 520px at 102% -4%,rgba(91,214,192,.06),transparent 55%);background-attachment:fixed}button{font-family:var(--ui);cursor:pointer}input,select{font-family:var(--ui)}a{color:var(--accent)}::selection{background:#e9b84b4d;color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:8px}::-webkit-scrollbar-track{background:transparent}.login{display:grid;place-items:center;height:100vh}.login form{background:var(--panel);border:1px solid var(--line);padding:28px;border-radius:12px;width:320px}.login h1{font-family:var(--sign);margin:0 0 4px;letter-spacing:1px}.login p{color:var(--dim);margin:0 0 18px;font-size:12px}input[type=password],input[type=text],input[type=number],select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);padding:10px 12px;border-radius:10px;width:100%}.btn{background:var(--accent);color:#0e0f13;border:0;padding:9px 15px;border-radius:11px;font-weight:600;font-size:13px;box-shadow:0 8px 22px #e9b84b2e}.btn:disabled{opacity:.5;box-shadow:none}.btn.ghost{background:#ffffff0a;border:1px solid var(--line-2);color:var(--text);box-shadow:none}.btn.sm{padding:6px 11px;font-size:12px;border-radius:9px}.app{display:grid;grid-template-columns:240px 1fr;height:100vh}@keyframes sigdash{to{stroke-dashoffset:-200}}.shell{display:grid;grid-template-rows:auto 1fr;height:100vh}.app-header{display:flex;align-items:center;gap:16px;height:62px;padding:0 22px;background:#0e0f13b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:relative;z-index:20}.app-header .brand{font-family:var(--mono);font-size:13px;letter-spacing:.2em;color:var(--text);display:flex;align-items:center;gap:10px}.app-body{display:grid;grid-template-columns:262px 1fr;min-height:0}.app-body.with-ai{grid-template-columns:262px 1fr 328px}.ai-panel{background:#14161d8c;border-left:1px solid var(--line);padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column}.ai-head{font-family:var(--mono);font-size:12px;letter-spacing:.14em}.side-title{font-family:var(--serif);font-size:18px;font-weight:500;margin-bottom:2px}.ep-pick{display:block;width:100%;text-align:left;background:#ffffff04;border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin-bottom:6px;color:var(--text);font-size:13px}.ep-pick.on{border-color:#e9b84b59;background:#e9b84b12;color:var(--accent)}.stage-nav{display:flex;flex-direction:column;gap:3px}.stage-row{display:flex;align-items:center;gap:12px;text-align:left;background:transparent;border:1px solid transparent;border-radius:11px;padding:10px 11px;color:var(--text)}.stage-row.active{background:#e9b84b17;border-color:#e9b84b47}.stage-row.locked{opacity:.4}.stage-row:not(.locked):not(.active):hover{background:#ffffff08}.stage-badge{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#ffffff0d;border:1px solid var(--line);color:var(--dim);font-family:var(--mono);font-size:12px;flex:0 0 auto}.stage-row.active .stage-badge{background:var(--accent);border-color:var(--accent);color:#0e0f13}.stage-l{display:flex;flex-direction:column;line-height:1.25;gap:1px}.stage-label{font-family:var(--ui);font-size:14px;font-weight:500}.stage-row.active .stage-label{color:#f3eee4}.stage-sub{font-size:11px;color:var(--faint)}.cchip{font-family:var(--mono);font-size:11px;padding:3px 7px;border-radius:5px;border:1px solid;white-space:nowrap}.cchip.var{color:#9cd8f5;border-color:#6cc8f059;background:#6cc8f01f}.cchip.rel{color:#9be3ac;border-color:#7bd88f59;background:#7bd88f1f}.cchip.flag{color:var(--purple);border-color:#b79cf059;background:#b79cf01f}.sidebar{background:#14161d8c;border-right:1px solid var(--line);padding:18px 14px;overflow-y:auto}.sidebar h2{font-family:var(--sign);font-size:15px;letter-spacing:1px;margin:0 0 14px}.game-item{display:block;width:100%;text-align:left;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px;color:var(--text)}.game-item.active{border-color:var(--accent)}.game-item .gt{font-family:var(--sign);font-weight:600;font-size:14px}.game-item .gs{color:var(--dim);font-size:11px}.tag{font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:4px;border:1px solid var(--line);color:var(--dim)}.tag.published{color:var(--green);border-color:var(--green)}.main{padding:18px 22px;overflow-y:auto}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.toolbar .grow{flex:1}.daychip{font-family:var(--sign);font-size:22px;font-weight:700}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 1000px){.grid{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin-bottom:16px}.card h3{font-family:var(--serif);font-weight:500;font-size:19px;color:var(--text);margin:0 0 12px}.kv{display:flex;align-items:center;gap:8px;margin-bottom:6px}.kv label{width:110px;color:var(--dim);font-size:13px}.kv input{width:90px}.flags{display:flex;flex-wrap:wrap;gap:6px}.flag{background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:3px 7px;font-size:11px;color:var(--accent);cursor:pointer}.flag.off{color:var(--dim);opacity:.6}.prose{white-space:pre-wrap;line-height:1.6;color:var(--text);font-size:15px;font-family:var(--serif)}.muted{color:var(--dim)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.kpi{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:12px 14px}.kpi-v{font-family:var(--sign);font-size:26px;line-height:1;color:var(--text)}.kpi-l{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--dim);margin-top:6px}.kpi-s{font-size:11px;color:var(--dim);opacity:.8;margin-top:2px}.abar{margin-bottom:9px}.abar-top{display:flex;justify-content:space-between;font-size:12px;margin-bottom:3px}.abar-track{height:8px;background:var(--panel-2);border-radius:5px;overflow:hidden}.abar-fill{height:100%;background:var(--accent);border-radius:5px;min-width:2px;transition:width .25s ease}.cover-prev{aspect-ratio:2 / 3;max-width:260px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);display:grid;place-items:center;overflow:hidden}.cover-prev img{width:100%;height:100%;object-fit:cover}textarea{background:var(--panel-2);border:1px solid var(--line);border-radius:11px;color:var(--text);font-family:var(--mono);font-size:13.5px;padding:10px 12px}.choice-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px;background:var(--panel-2)}.choice-row .cl{flex:1;font-family:var(--sign);font-weight:600;font-size:13px}.delta{font-size:11px;margin-left:6px}.up{color:var(--green)}.down{color:var(--red)}.drip-msg{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:9px 12px;margin-bottom:8px;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}.drip-msg.in{opacity:1;transform:none}.drip-msg .mt{font-size:10px;color:var(--dim);text-transform:uppercase}pre{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px;overflow-x:auto;font-size:11px;color:var(--dim);white-space:pre-wrap;max-height:280px}.err{color:var(--red);margin:8px 0}details summary{cursor:pointer;color:var(--accent);font-family:var(--sign);margin-bottom:8px}.spoiler{background:var(--text);color:transparent;border-radius:3px;cursor:pointer}.spoiler.show{background:transparent;color:inherit}.ep-chat{max-height:240px;overflow-y:auto;margin-bottom:8px;display:flex;flex-direction:column;gap:6px}.ep-msg{padding:7px 10px;border-radius:8px;font-size:13px;line-height:1.45;white-space:pre-wrap;max-width:90%}.ep-msg.user{align-self:flex-end;background:var(--accent, #c4956a);color:#1a1a1a}.ep-msg.assistant{align-self:flex-start;background:var(--surface, #2a2a2a)}.ep-tab .ep-h{font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--dim);margin:4px 0 8px}.ep-row{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:12px 14px;margin-bottom:8px}.ep-row.live{border-left:3px solid var(--accent)}.ep-open{flex:1;text-align:left;background:none;border:none;color:var(--text);cursor:pointer;padding:0;font-size:15px}.ep-n{font-weight:700;font-size:15px}.ep-t{font-size:15px}.ep-meta{color:var(--dim);font-size:13px}.ep-badge{color:var(--accent);font-weight:700;font-size:11px;letter-spacing:1px}.ep-del{background:none;border:1px solid var(--line);color:var(--dim);border-radius:6px;width:28px;height:28px;cursor:pointer;flex:0 0 auto}.ep-del:hover{color:var(--danger, #a04040);border-color:var(--danger, #a04040)}.ep-select{background:var(--panel-2);color:var(--text);border:1px solid var(--accent);border-radius:8px;padding:6px 10px;font-size:13px;font-weight:600;margin-right:6px;cursor:pointer}.ctx-dd{position:relative;display:inline-block;margin-right:6px}.ctx-chev{opacity:.65;font-size:10px;margin-left:5px}.ctx-menu{position:absolute;top:calc(100% + 4px);left:0;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:4px;min-width:230px;z-index:50;box-shadow:0 10px 28px #00000073}.ctx-item{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px}.ctx-item:hover{background:var(--line)}.ctx-item.on{color:var(--accent);font-weight:600}
