:root{--bg: #0f1c1a;--bg-elevated: #17302b;--bg-chat: #10241f;--ink: #e8f2ef;--ink-muted: #9bb5ad;--accent: #3ecf8e;--accent-dim: #2a9b6a;--bubble-user: #2d6a5a;--bubble-assistant: #1c3a34;--danger: #e07a5f;--border: rgba(232, 242, 239, .12);--radius: 18px;--font: "DM Sans", system-ui, sans-serif;--display: "Fraunces", Georgia, serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:radial-gradient(1200px 600px at 10% -10%,rgba(62,207,142,.18),transparent 55%),radial-gradient(900px 500px at 100% 0%,rgba(45,106,90,.25),transparent 50%),var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}a{color:var(--accent)}.app-shell{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{font-family:var(--display);font-size:1.35rem;letter-spacing:-.02em}.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#06281c;background:var(--accent);border-radius:999px;padding:.25rem .65rem}.panel{width:min(720px,100% - 2rem);margin:2rem auto;background:#17302be0;border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);padding:1.5rem;box-shadow:0 24px 60px #00000059}.panel h1{font-family:var(--display);font-size:1.85rem;margin:0 0 .35rem}.panel p.lead{color:var(--ink-muted);margin:0 0 1.5rem}.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.field label{font-size:.85rem;color:var(--ink-muted)}.field select,.field input,.composer input{border:1px solid var(--border);background:var(--bg);color:var(--ink);border-radius:12px;padding:.75rem .9rem}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}.btn{border:none;border-radius:999px;padding:.7rem 1.2rem;cursor:pointer;font-weight:600}.btn-primary{background:var(--accent);color:#06281c}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--ink-muted);border:1px solid var(--border)}.gate{min-height:100%;display:grid;place-items:center;padding:2rem}.gate-card{width:min(420px,100%);text-align:center;background:#17302beb;border:1px solid var(--border);border-radius:24px;padding:2.25rem 1.75rem}.gate-card h1{font-family:var(--display);margin:0 0 .5rem}.gate-card p{color:var(--ink-muted);margin:0 0 1.5rem}.chat-layout{flex:1;display:flex;flex-direction:column;max-width:720px;width:100%;margin:0 auto;min-height:0}.chat-header{padding:1rem 1.25rem .5rem}.chat-header h2{font-family:var(--display);margin:0;font-size:1.35rem}.chat-header .meta{color:var(--ink-muted);font-size:.85rem;margin-top:.25rem}.messages{flex:1;overflow-y:auto;padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.bubble{max-width:85%;padding:.8rem 1rem;border-radius:18px;line-height:1.45;white-space:pre-wrap}.bubble.assistant:not(.progress){white-space:normal}.bubble.assistant:not(.progress) p{margin:0 0 .45em}.bubble.assistant:not(.progress) p:last-child{margin-bottom:0}.bubble.assistant:not(.progress) ul,.bubble.assistant:not(.progress) ol{margin:.35em 0 .45em;padding-left:1.25rem}.bubble.assistant:not(.progress) li{margin:.15em 0}.bubble.assistant:not(.progress) code{font-size:.9em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.bubble.user{align-self:flex-end;background:var(--bubble-user);border-bottom-right-radius:6px}.bubble.assistant{align-self:flex-start;background:var(--bubble-assistant);border-bottom-left-radius:6px}.bubble.assistant.progress{background:transparent;border:1px solid var(--border);color:var(--ink-muted);font-size:.9rem;padding:.55rem .85rem;max-width:92%}.bubble.msg-live{display:flex;flex-direction:column;gap:.65rem;max-width:92%;border:1px dashed var(--border);background:#1c3a34a6}.typing-bubble{display:inline-flex;gap:.28rem;align-items:center;min-height:1rem}.typing-bubble span{width:.4rem;height:.4rem;border-radius:50%;background:var(--ink-muted);animation:typing-bounce 1.2s infinite ease-in-out}.typing-bubble span:nth-child(2){animation-delay:.15s}.typing-bubble span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.live-activity{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.live-line-btn{display:flex;gap:.5rem;align-items:baseline;width:100%;text-align:left;background:transparent;border:0;color:inherit;padding:0;cursor:pointer}.live-tag{flex:0 0 auto;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);opacity:.9}.live-line.live-thinking .live-tag{color:var(--ink-muted)}.live-line.live-milestone .live-tag{color:var(--accent)}.live-summary{font-size:.85rem;color:var(--ink-muted);line-height:1.35}.live-detail{margin:.25rem 0 0;padding:.5rem .6rem;font-size:.72rem;overflow-x:auto;background:#00000040;border-radius:8px;color:var(--ink-muted)}.composer{display:flex;gap:.6rem;padding:.85rem 1.25rem 1.25rem;border-top:1px solid var(--border)}.composer input{flex:1}.workflow-strip{margin:0 1.25rem .5rem;padding:.75rem .9rem;border:1px solid var(--border);border-radius:14px;background:#10241fe6}.workflow-strip-title{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:.4rem}.workflow-list{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.wf-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.wf-id-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.25rem}.wf-id{font-size:.75rem;color:var(--accent);word-break:break-all}.workflow-actions,.workflow-resume{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.45rem}.workflow-resume input{flex:1;min-width:12rem;border:1px solid var(--border);background:var(--bg);color:var(--ink);border-radius:10px;padding:.45rem .65rem}.btn-tiny{padding:.35rem .7rem;font-size:.8rem}.error{color:var(--danger);font-size:.9rem}
