:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0f14;--fg:#e6edf3;--muted:#8b98a5;--card:#121922;--accent:#5ad1ff;--user:#1f6feb;--sys:#3a2a12}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);margin:0;font:16px/1.5 -apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,sans-serif}#app{max-width:720px;min-height:100dvh;padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom);flex-direction:column;margin:0 auto;display:flex}header{justify-content:space-between;align-items:center;padding:12px 0;display:flex}h1{letter-spacing:.08em;color:var(--accent);margin:0;font-size:20px}.card{background:var(--card);border-radius:14px;gap:10px;padding:16px;display:grid}.row{gap:8px;display:flex}hr{border:0;border-top:1px solid #223;margin:4px 0}input,textarea{width:100%;color:var(--fg);font:inherit;background:#0e141b;border:1px solid #223040;border-radius:10px;padding:10px 12px}textarea{resize:none;max-height:40dvh}button{color:var(--fg);font:inherit;cursor:pointer;background:#1b2733;border:0;border-radius:10px;padding:10px 14px}button.primary{background:var(--accent);color:#04121a;font-weight:600}button.link{color:var(--muted);background:0 0;padding:6px}button:disabled{opacity:.5;cursor:default}.muted{color:var(--muted)}.small{font-size:12px}.messages{flex-direction:column;flex:1;gap:10px;padding:8px 0;display:flex;overflow-y:auto}.msg{flex-direction:column;max-width:85%;display:flex}.msg.user{align-self:flex-end;align-items:flex-end}.msg.assistant,.msg.system{align-self:flex-start}.bubble{white-space:pre-wrap;word-break:break-word;background:var(--card);border-radius:16px;padding:10px 14px}.msg.user .bubble{background:var(--user)}.msg.system .bubble{background:var(--sys)}.msg.pending .bubble:after{content:"▌";color:var(--accent);animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:0}}.trace{color:var(--muted);margin-top:2px;font-family:ui-monospace,monospace;font-size:10px}.composer{background:var(--bg);align-items:flex-end;gap:8px;padding:8px 0 12px;display:flex;position:sticky;bottom:0}
