:root{
  --bg: #f7f7fb; --bg-alt: #ffffff; --text:#0f172a; --muted:#64748b; --card:#ffffff; --border:#e5e7eb;
  --primary:#6d28d9; --secondary:#2563eb; --chip:#0f172a; --chip-fg:#ffffff;
}
:root[data-theme="dark"]{
  --bg:#0b1020; --bg-alt:#0e1426; --text:#e5e7eb; --muted:#94a3b8; --card:#0f172a; --border:#1f2937;
  --primary:#a78bfa; --secondary:#60a5fa; --chip:#e5e7eb; --chip-fg:#0f172a;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:linear-gradient(135deg, var(--bg), var(--bg-alt));color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Arial}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.small{font-size:12px}
.w100{width:100%}

.topbar{position:sticky;top:0;display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);backdrop-filter: blur(6px);background:color-mix(in oklab, var(--bg-alt) 75%, transparent);z-index:100}
.brand{display:flex;align-items:center;gap:10px}
.logo{width:32px;height:32px;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--secondary));box-shadow:0 8px 30px color-mix(in oklab, var(--primary) 35%, transparent)}
.logo.big{width:64px;height:64px;border-radius:16px}
.brand-name{font-weight:700}
.brand-tag{font-size:11px;color:var(--muted)}
.actions{margin-left:auto;display:flex;align-items:center;gap:8px}
.btn{border:1px solid var(--border);background:var(--bg-alt);color:var(--text);border-radius:12px;padding:8px 12px;cursor:pointer}
.btn.primary{background:linear-gradient(90deg,var(--primary),var(--secondary));border-color:transparent;color:#fff;box-shadow:0 6px 20px color-mix(in oklab, var(--secondary) 30%, transparent)}
.btn.icon{width:40px;height:36px;display:grid;place-items:center}
.token-box{display:flex;gap:6px;align-items:center}
.token-box input{width:280px;max-width:48vw;border:1px solid var(--border);border-radius:10px;padding:7px 9px;background:var(--bg-alt);color:var(--text)}

.container{max-width:1100px;margin:0 auto;padding:20px;display:grid;grid-template-columns:280px 1fr;gap:20px}
.sidebar{position:sticky;top:72px;height:fit-content}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:14px}
.label{font-weight:600;margin-bottom:6px}
.chip{display:inline-block;padding:6px 8px;border-radius:10px;background:var(--chip);color:var(--chip-fg);word-break:break-all}
.sep{height:1px;background:var(--border);margin:12px 0}
.muted{color:var(--muted)}

.chat{display:grid;grid-template-rows:1fr auto;gap:0;background:var(--card);border:1px solid var(--border);border-radius:16px;min-height:70vh;overflow:hidden}
.messages{padding:16px;overflow:auto;display:flex;flex-direction:column;gap:12px}
.empty{text-align:center;color:var(--muted);padding:40px 10px}
.tip{display:inline-block;margin-top:10px;padding:6px 8px;border-radius:10px;border:1px solid var(--border);background:color-mix(in oklab, var(--bg-alt) 70%, transparent)}

.bubble{max-width:86%;padding:10px 12px;border-radius:14px;box-shadow:0 4px 14px color-mix(in oklab, var(--bg) 85%, transparent)}
.user{align-self:flex-end;background:var(--text);color:var(--bg)}
.assistant{align-self:flex-start;background:color-mix(in oklab, var(--bg) 70%, var(--bg-alt));color:var(--text)}
.stream{opacity:.85}

.composer{display:flex;gap:10px;padding:10px;border-top:1px solid var(--border)}
.composer textarea{flex:1;min-height:40px;max-height:180px;resize:vertical;border:1px solid var(--border);border-radius:12px;padding:10px;background:var(--bg-alt);color:var(--text)}

.glow{position:fixed;inset:auto;filter:blur(60px);opacity:.5;pointer-events:none}
.glow-a{top:-40px;right:-40px;width:240px;height:240px;background:color-mix(in oklab, var(--primary) 35%, transparent)}
.glow-b{bottom:0;left:-40px;width:260px;height:260px;background:color-mix(in oklab, var(--secondary) 35%, transparent)}

@media (max-width: 960px){
  .container{grid-template-columns:1fr}
  .sidebar{display:none}
}
