:root{--accent: #0e7a5f;--ink: #1c2b27;--muted: #5f7a71;--line: #e2e8e5;--radius: 14px;--pad: 24px;color-scheme:light}*{margin:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:transparent;overflow:hidden}.panel{position:absolute;inset:var(--pad);display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 40px #0000002e;overflow:hidden;transform-origin:bottom right;opacity:0;transform:scale(.5) translateY(8px);pointer-events:none;transition:opacity .22s cubic-bezier(.16,1,.3,1),transform .22s cubic-bezier(.16,1,.3,1)}.panel.is-open{opacity:1;transform:none;pointer-events:auto}@media(prefers-reduced-motion:reduce){.panel{transform:none;transition:opacity .18s ease}}.panel-header{display:flex;align-items:center;gap:10px;flex:none;padding:12px 16px;background:#fff;border-bottom:1px solid var(--line)}.panel-header .badge{width:32px;height:32px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;box-shadow:0 2px 10px color-mix(in srgb,var(--accent) 35%,transparent)}.panel-header .heading{min-width:0;flex:1}.panel-header .title{font-size:13.5px;font-weight:600}.panel-header .subtitle{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{flex:none;border:0;background:none;padding:4px;margin-right:-4px;border-radius:6px;color:var(--muted);cursor:pointer;display:flex;transition:background .15s ease,color .15s ease}.icon-btn:hover{background:#f0f4f2;color:var(--ink)}.voice-banner{flex:none;display:flex;align-items:center;gap:8px;padding:9px 14px;font-size:12px;color:var(--ink);background:color-mix(in srgb,var(--accent) 7%,#fff);border-bottom:1px solid color-mix(in srgb,var(--accent) 18%,#fff)}.voice-banner .vb-ic{display:flex;flex:none;color:var(--accent)}.voice-banner .vb-text{flex:1;min-width:0;line-height:1.4}.voice-banner .vb-min{flex:none;border:0;border-radius:999px;padding:5px 13px;cursor:pointer;background:var(--accent);color:#fff;font-size:12px;font-weight:600}.voice-banner .vb-min:hover{filter:brightness(1.06)}.voice-banner .vb-keep{flex:none;border:0;background:none;padding:5px 6px;cursor:pointer;color:var(--muted);font-size:12px;font-weight:600}.voice-banner .vb-keep:hover{color:var(--ink)}.stream{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#fafbfa}.stream>*{flex:none}.empty-card{margin-top:24px;padding:18px 16px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:12.5px;line-height:1.6}.empty-card .empty-ic{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:50%;margin-bottom:8px;background:color-mix(in srgb,var(--accent) 10%,#fff);color:var(--accent)}.empty-card p{margin:0}.bubble{max-width:85%;padding:9px 12px;border-radius:12px;font-size:13.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.bubble.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;padding:0;overflow:hidden;background:linear-gradient(color-mix(in srgb,var(--accent) 5%,#fff),#fff);border:1px solid color-mix(in srgb,var(--accent) 16%,#fff);border-bottom-left-radius:4px}.bubble.assistant.error{padding:9px 12px;background:#fdf1f0;border-color:#f0d4d2;color:#8c2f29}.ai-badge-row{padding:7px 12px;border-bottom:1px solid color-mix(in srgb,var(--accent) 10%,#fff)}.ai-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.ai-body{padding:9px 12px}.ai-body-plain{padding:0}.md{white-space:normal}.md>span>:first-child{margin-top:0}.md>span>:last-child{margin-bottom:0}.md p,.md ul,.md ol,.md table,.md pre{margin:6px 0}.md ul,.md ol{padding-left:18px}.md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#e8efec;padding:1px 4px;border-radius:4px}.md pre{background:#eef3f1;border:1px solid var(--line);border-radius:8px;padding:8px 10px;overflow-x:auto}.md pre code{background:none;padding:0}.md table{border-collapse:collapse;font-size:12.5px;display:block;overflow-x:auto;max-width:100%}.md th,.md td{border:1px solid var(--line);padding:4px 8px;text-align:left}.md th{background:color-mix(in srgb,var(--accent) 8%,#fff);font-weight:600}.md a{color:var(--accent)}.cursor{display:inline-block;width:2px;height:1em;margin-left:2px;vertical-align:text-bottom;background:var(--accent);animation:blink 1s steps(2,start) infinite}@keyframes blink{50%{opacity:0}}.thinking{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12.5px}.spinner{width:11px;height:11px;flex:none;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 25%,transparent);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:1.6s}.cursor{animation:none}}.suggestions{display:flex;flex-direction:column;gap:6px;margin-top:14px}.suggestion{font-size:12.5px;padding:7px 12px;border-radius:999px;cursor:pointer;background:#fff;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 30%,#fff);text-align:left;transition:background .15s ease}.suggestion:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 8%,#fff)}.suggestion:disabled{opacity:.5;cursor:default}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,#fff);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 25%,#fff)}.chip.running{animation:chip-pulse 1.4s ease-in-out infinite}@keyframes chip-pulse{50%{opacity:.6}}@media(prefers-reduced-motion:reduce){.chip.running{animation:none}}.chip.done{background:color-mix(in srgb,var(--accent) 14%,#fff)}.chip .chip-ic{flex:none}.composer{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff;flex:none}.composer input{flex:1;min-width:0;padding:9px 12px;border:1px solid var(--line);border-radius:8px;font-size:13.5px;outline:none;background:#fafbfa}.composer input:focus{border-color:var(--accent)}.composer button{padding:9px 16px;border:0;border-radius:8px;background:var(--accent);color:#fff;font-size:13.5px;cursor:pointer}.composer button:disabled{opacity:.45;cursor:default}.composer .stop-btn{background:#fff;color:var(--ink);border:1px solid var(--line)}.composer .stop-btn:hover{border-color:var(--accent);color:var(--accent)}.composer .mic-btn{flex:none;width:38px;padding:0;display:flex;align-items:center;justify-content:center;background:#fafbfa;color:var(--muted);border:1px solid var(--line);border-radius:8px;transition:background .15s ease,color .15s ease}.composer .mic-btn:hover:not(:disabled){color:var(--ink)}.composer .mic-btn.on{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 10px color-mix(in srgb,var(--accent) 40%,transparent);animation:mic-pulse 1.6s ease-in-out infinite}.composer .mic-btn.connecting{opacity:.6}@keyframes mic-pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.composer .mic-btn.on{animation:none}}.hud{position:absolute;inset:var(--pad);display:flex;align-items:center;gap:10px}.hud-bar{flex:1;min-width:0;height:56px;display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px #0000002e;padding:0 18px}.hud-caption{height:40px;width:100%;overflow:hidden}.hud-caption-text{font-size:13px;line-height:20px;color:var(--ink);transition:transform .2s ease-out}.hud-idle{height:100%;display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted)}.hud-idle svg{color:var(--accent)}.hud-btn{flex:none;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--muted);border:1px solid var(--line);box-shadow:0 8px 30px #0000001f;transition:color .15s ease,transform .15s ease}.hud-btn:hover{color:var(--ink);transform:scale(1.04)}.hud-btn.hud-mic{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 12px color-mix(in srgb,var(--accent) 45%,transparent);animation:mic-pulse 1.6s ease-in-out infinite}.hud-btn.hud-mic:hover{color:#fff}@media(prefers-reduced-motion:reduce){.hud-btn.hud-mic{animation:none}.hud-btn:hover{transform:none}.hud-caption-text{transition:none}}.confirm-card{margin-top:8px;padding:10px 12px;border-radius:10px;background:#fdf6e7;border:1px solid #ecd9a8}.confirm-card.resolved{opacity:.75}.confirm-title{font-size:12px;font-weight:600;color:#8a5e07}.confirm-preview{margin-top:6px;padding:6px 9px;border-radius:7px;background:#fff;font-size:12px;color:var(--ink);white-space:pre-wrap}.confirm-actions{display:flex;gap:8px;margin-top:8px}.confirm-actions button{border:0;border-radius:7px;padding:6px 14px;font-size:12.5px;cursor:pointer}.confirm-yes{background:var(--accent);color:#fff}.confirm-no{background:#fff;color:var(--ink);border:1px solid var(--line)!important}.confirm-status{margin-top:8px;font-size:12px;font-weight:600;color:#8a5e07}.preview-root{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.preview-launcher{position:absolute;bottom:20px;width:56px;height:56px;border:0;border-radius:50%;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;transition:transform .15s ease}.preview-launcher:hover{transform:scale(1.05)}.pv-suggestions{flex-direction:row;flex-wrap:wrap}@media(prefers-reduced-motion:reduce){.preview-launcher:hover{transform:none}}
