:root{--bg:#05080f;--panel:#0a111d;--line:#173048;--ink:#d9ecff;--mut:#7f9db8;--cy:#2de2ff;--gr:#35f0a1;--am:#ffb02e;--rd:#ff3b5c}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body.cr{background:var(--bg);color:var(--ink);font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overflow:hidden}
.cr-app{display:grid;grid-template-columns:minmax(0,1fr) 400px;height:100vh;height:100dvh}
.cr-stage{position:relative;min-height:0;background:radial-gradient(ellipse at 50% 40%,#0c1a2c 0%,#05080f 70%)}
#gl{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
#gl.hover{cursor:pointer}
.cr-hud{position:absolute;left:0;right:0;display:flex;align-items:center;gap:12px;padding:12px 16px;pointer-events:none}
.cr-hud>*{pointer-events:auto}
.cr-hud-top{top:0;background:linear-gradient(#05080fcc,transparent)}
.cr-hud-right{margin-left:auto;display:flex;gap:8px}
.cr-back{color:var(--mut);text-decoration:none;font-size:13px;white-space:nowrap}
.cr-back:hover{color:var(--cy)}
.cr-title{display:flex;flex-direction:column;line-height:1.2}
.cr-title b{letter-spacing:.2em;color:var(--cy);font-size:13px}
.cr-title span{color:var(--mut);font-size:12px}
.cr-btn{font:inherit;font-weight:600;color:#02121a;background:var(--cy);border:0;border-radius:8px;padding:8px 14px;cursor:pointer;min-height:36px}
.cr-btn:hover{filter:brightness(1.12)}
.cr-btn:disabled{opacity:.45;cursor:default}
.cr-btn:focus-visible,#cmd:focus-visible{outline:2px solid #fff;outline-offset:2px}
.cr-ghost{background:#0e1b2b;color:var(--ink);border:1px solid var(--line)}
.cr-danger{background:var(--rd);color:#fff}
.cr-card{position:absolute;left:16px;bottom:56px;min-width:210px;max-width:290px;background:#08111dee;border:1px solid var(--line);border-radius:10px;padding:12px 14px;box-shadow:0 8px 30px #000a}
.cr-card h3{margin:0 0 6px;font-size:14px;color:var(--cy)}
.cr-card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px}
.cr-card dt{color:var(--mut)}
.cr-card dd{margin:0;font-family:ui-monospace,Menlo,Consolas,monospace}
.cr-card p{margin:8px 0 0;font-size:12px;color:var(--mut)}
.cr-status{position:absolute;left:16px;bottom:14px;right:16px;font-size:13px;color:var(--mut);pointer-events:none;text-shadow:0 1px 4px #000}
.cr-status.bad{color:var(--rd)}.cr-status.good{color:var(--gr)}
.cr-flash{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .5s;box-shadow:inset 0 0 160px 40px var(--rd)}
.cr-flash.on{opacity:.9;transition:opacity .08s}
.cr-flash.green{box-shadow:inset 0 0 160px 40px var(--gr)}
.cr-win{position:absolute;inset:0;display:grid;place-items:center;background:#05080fb8;z-index:5}
.cr-win[hidden],.cr-card[hidden],.cr-hint[hidden]{display:none}
.cr-win-box{background:var(--panel);border:1px solid var(--gr);border-radius:14px;padding:26px 30px;max-width:420px;text-align:center;box-shadow:0 0 60px #35f0a133}
.cr-win-box h2{margin:0 0 8px;color:var(--gr);letter-spacing:.08em}
.cr-win-box p{color:var(--ink);margin:0 0 16px}
.cr-side{display:flex;flex-direction:column;min-height:0;overflow-y:auto;background:var(--panel);border-left:1px solid var(--line)}
.cr-side section{padding:14px 16px;border-bottom:1px solid var(--line)}
.cr-side h1,.cr-side h2{margin:0 0 8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--cy)}
.cr-side h2 small{letter-spacing:0;text-transform:none;color:var(--mut);font-weight:400;margin-left:6px}
.cr-side p{margin:0 0 10px;color:var(--ink)}
.cr-steps{margin:0 0 12px;padding-left:20px;color:var(--mut)}
.cr-steps li.done{color:var(--gr);text-decoration:line-through}
.cr-steps li.now{color:var(--ink);font-weight:600}
.cr-actions{display:flex;gap:8px}
.cr-hint{margin-top:10px;padding:8px 10px;border-left:3px solid var(--am);background:#ffb02e14;color:var(--ink);font-size:13px}
.cr-goals ul{list-style:none;margin:0;padding:0}
.cr-goals li{padding:5px 0 5px 26px;position:relative;font-size:13px;color:var(--mut)}
.cr-goals li::before{content:"\2715";position:absolute;left:2px;color:var(--rd);font-weight:700}
.cr-goals li.ok{color:var(--ink)}
.cr-goals li.ok::before{content:"\2713";color:var(--gr)}
.cr-log{font:12px/1.5 ui-monospace,Menlo,Consolas,monospace;background:#050a12;border:1px solid var(--line);border-radius:8px;padding:8px 10px;height:150px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}
.cr-log-ai{height:300px}
.cr-log .in{color:var(--cy)}.cr-log .err{color:var(--rd)}.cr-log .ok{color:var(--gr)}.cr-log .warn{color:var(--am)}.cr-log .dim{color:var(--mut)}
.cr-line{display:flex;align-items:center;gap:8px;margin-top:8px;background:#050a12;border:1px solid var(--line);border-radius:8px;padding:0 10px}
.cr-line span{font:12px ui-monospace,Menlo,Consolas,monospace;color:var(--gr);white-space:nowrap}
#cmd{flex:1;min-width:0;background:transparent;border:0;color:var(--ink);font:13px ui-monospace,Menlo,Consolas,monospace;padding:10px 0;outline-offset:6px}
@media (max-width:860px){
  body.cr{overflow:auto}
  .cr-app{display:block;height:auto}
  .cr-stage{height:58vh;min-height:320px}
  .cr-side{border-left:0;overflow:visible}
  .cr-title span{display:none}
  .cr-card{bottom:44px;left:10px}
}
@media (prefers-reduced-motion:reduce){.cr-flash{transition:none}}

.cr-levels{display:flex;gap:6px}
.cr-levels a{display:grid;place-items:center;min-width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:#0e1b2b;color:var(--mut);text-decoration:none;font-weight:700;font-size:13px}
.cr-levels a:hover{color:var(--ink);border-color:var(--cy)}
.cr-levels a.cur{background:var(--cy);color:#02121a;border-color:var(--cy)}
.cr-levels a.done::after{content:"\2713";color:var(--gr);font-size:10px;margin-left:2px}
.cr-levels a.cur.done::after{color:#02121a}
.cr-log .cmd{color:var(--am);margin-top:6px}
.cr-log .res{color:var(--ink);padding-left:12px}
.cr-log .tip{color:#9fd8ff;padding:3px 8px;margin:2px 0 2px 12px;border-left:3px solid var(--cy);background:#2de2ff12;font:12px/1.45 system-ui,sans-serif}
.cr-log .tip.good{border-left-color:var(--gr);background:#35f0a112;color:#bff5dc}
.cr-log .tip b{color:var(--cy)}
.cr-checkcard{text-align:left;margin:0 0 16px;font-size:12px;color:var(--mut);display:grid;gap:8px}
.cr-checkcard div{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#08111d}
.cr-checkcard b{color:var(--cy)}.cr-checkcard i{color:var(--ink);font-style:normal}
a.cr-btn{text-decoration:none;display:inline-grid;place-items:center}
.cr-win-box{max-height:90%;overflow:auto;max-width:520px}
@media (max-width:860px){.cr-levels{order:3}.cr-hud-top{flex-wrap:wrap}}
.cr-btn[hidden]{display:none}
