
:root{--ink:#eaf2ff;--line:rgba(255,255,255,.16);--glass:rgba(255,255,255,.08);--bg:#020712;--ok:#22c55e;--warn:#facc15;--err:#ef4444;
--ccu-blue:#3aa0ff;--ccu-green:#22c55e;--ccu-red:#ef4444;}
*{box-sizing:border-box}
html,body{height:100%;margin:0;background:radial-gradient(1100px 650px at 65% 0%,#061327 0%,#020712 60%) fixed;color:var(--ink);font-family:Inter,system-ui,Segoe UI,Roboto,Arial}
a{color:#79e0ff}
.brandbar{position:fixed;top:0;left:320px;right:0;height:64px;display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid var(--line);
background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));z-index:2}
.brandbar img{height:38px}
.brandtag{font-size:12px}
.brandtag .b{color:var(--ccu-blue)} .brandtag .g{color:var(--ccu-green)} .brandtag .r{color:var(--ccu-red)}
.app{display:grid;grid-template-columns:320px 1fr;height:100%}
.left{padding:18px;border-right:1px solid var(--line);backdrop-filter:blur(6px);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));position:fixed;top:0;bottom:0;left:0;width:320px;z-index:3}
.left .brand{display:flex;align-items:center;gap:10px;font-weight:800;margin-top:66px}
.left .crest{width:26px;height:26px;border-radius:50%;background:conic-gradient(from 0deg,#00aaff,#00ffaa,#0066ff);box-shadow:0 0 24px rgba(100,200,255,.6)}
.nav{margin-top:10px}
.nav button{width:100%;text-align:left;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0;cursor:pointer}
.nav button.active{background:var(--glass)}
.right{display:flex;flex-direction:column;margin-left:320px}
.top{height:64px} /* reserved by brandbar */
.grid{flex:1;overflow:auto;padding:18px;margin-top:4px;display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
.card{background:var(--glass);border:1px solid var(--line);border-radius:14px;padding:16px}
.section-title{margin:0 0 6px 0;font-weight:800}
.list{line-height:1.7;font-size:14px}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid var(--line);font-size:12px;margin-right:6px}
footer{padding:10px;border-top:1px solid var(--line);text-align:center;font-size:12px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01))}
#bg{position:fixed;inset:0;z-index:-1;pointer-events:none}
.panel-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.chat{display:flex;flex-direction:column;height:100%}
.chatlog{flex:1;overflow:auto}
.msg{margin:8px 0}.msg .who{font-weight:700;font-size:12px}
.input{display:flex;gap:8px;margin-top:10px}
.input input{flex:1;padding:10px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--ink)}
.input button{padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.12);color:#fff;cursor:pointer}
.avatar{position:absolute;right:12px;top:-8px;width:70px;height:70px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#9ff,#36a 60%,#024);box-shadow:0 0 40px rgba(65,165,255,.5) inset,0 0 24px rgba(65,165,255,.4)}
.thoughts{position:absolute;right:90px;top:-2px;display:flex;gap:8px}
.bubble{background:rgba(255,255,255,.12);border:1px solid var(--line);padding:6px 10px;border-radius:14px;font-size:12px;animation:float 6s ease-in-out infinite}
.bubble:nth-child(2){animation-delay:1s}.bubble:nth-child(3){animation-delay:2s}
@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-8px)}100%{transform:translateY(0)}}
.login-wrap{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#020712}
.login{width:420px;background:var(--glass);border:1px solid var(--line);border-radius:16px;padding:20px}
.login input,.login button{width:100%;padding:12px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:#fff;margin:10px 0}
.login button{background:#1967ff;font-weight:800}
.alert{margin-top:6px;font-size:12px}.success{color:var(--ok)}.error{color:var(--err)}.muted{opacity:.8}
.logout{position:fixed;left:12px;bottom:12px}
.timer{font-weight:800}
.review-correct{border-left:4px solid var(--ok);padding-left:10px}
.review-wrong{border-left:4px solid var(--err);padding-left:10px}
