*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0a;--surface: #141414;--border: #262626;--text: #f0f0f0;--dim: #666;--accent: #3b82f6;--accent-dim: rgba(59, 130, 246, .2);--user-bg: #0f2e1a;--user-border: #1d5c35;--bot-bg: #0f1e35;--bot-border: #1d3660;--danger: #dc2626;--danger-dim: rgba(220, 38, 38, .25);--green: #22c55e;--green-dim: rgba(34, 197, 94, .25);--amber: #f59e0b}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);height:100dvh;display:flex;flex-direction:column;overflow:hidden}#app{flex:1;min-height:0;display:flex;flex-direction:column}header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.app-title{font-size:1.05rem;font-weight:600;letter-spacing:-.01em}.header-right{display:flex;align-items:center;gap:.875rem}.status{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--dim)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);transition:background .3s ease}.status-dot.connecting{background:var(--amber);animation:pulse-dot 1s ease-in-out infinite}.status-dot.ready{background:var(--green)}#transcript-area{flex:1;min-height:0;overflow-y:auto;padding:1rem 1rem .5rem;display:flex;flex-direction:column;gap:.6rem;-webkit-overflow-scrolling:touch}#transcript-area::-webkit-scrollbar{width:4px}#transcript-area::-webkit-scrollbar-track{background:transparent}#transcript-area::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}#transcript{display:flex;flex-direction:column;gap:.6rem}.message{max-width:78%;padding:.7rem 1rem;border-radius:1.1rem;font-size:.95rem;line-height:1.5;word-break:break-word;animation:fade-in .2s ease}.message.user{align-self:flex-end;background:var(--user-bg);border:1px solid var(--user-border);border-bottom-right-radius:.3rem;color:#d1fae5}.message.bot{align-self:flex-start;background:var(--bot-bg);border:1px solid var(--bot-border);border-bottom-left-radius:.3rem;color:#dbeafe}.message.interim{opacity:.55;font-style:italic}.bot-thinking{align-self:flex-start;display:flex;gap:5px;padding:.75rem 1rem;background:var(--bot-bg);border:1px solid var(--bot-border);border-radius:1.1rem 1.1rem 1.1rem .3rem;animation:fade-in .2s ease}.bot-thinking .dot{width:7px;height:7px;border-radius:50%;background:var(--bot-border);animation:bounce 1.2s ease-in-out infinite}.bot-thinking .dot:nth-child(2){animation-delay:.2s}.bot-thinking .dot:nth-child(3){animation-delay:.4s}.suggestions-panel{background:var(--surface);flex-shrink:0;overflow:hidden;max-height:0;padding:0 1rem;border-top:0 solid var(--border);border-bottom:0 solid var(--border);opacity:0;transition:max-height .28s ease,padding .28s ease,opacity .18s ease,border-width .28s ease}.suggestions-panel.open{max-height:240px;padding:.65rem 1rem .8rem;border-top-width:1px;border-bottom-width:1px;opacity:1;overflow-y:auto}.suggestions-label{font-size:.68rem;color:var(--dim);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.45rem}.suggestions-list{display:flex;flex-wrap:wrap;gap:.4rem}.suggestions-empty{font-size:.8rem;color:var(--dim);font-style:italic}.suggestion-chip{padding:.35rem .65rem;background:var(--bg);border:1px solid var(--border);border-radius:.5rem;font-size:.85rem;line-height:1.35}.suggestion-chip .gloss{color:var(--dim);font-size:.75rem;margin-left:.35rem;font-style:italic}.suggestions-btn{display:flex;align-items:center;gap:.4rem;padding:.35rem .85rem;border-radius:2rem;border:1px solid var(--border);background:transparent;color:var(--dim);font-size:.78rem;font-family:inherit;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.suggestions-btn:hover{color:var(--text);border-color:var(--dim)}.suggestions-btn .chevron{font-size:.7rem;transition:transform .25s ease}.suggestions-btn[aria-expanded=true]{color:var(--text);border-color:var(--accent);background:var(--accent-dim)}.suggestions-btn[aria-expanded=true] .chevron{transform:rotate(180deg)}footer{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem 1.25rem 2rem;background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.ptt-hint{font-size:.75rem;color:var(--dim);letter-spacing:.04em;text-transform:uppercase;min-height:1em;transition:color .2s}.welcome-panel{max-width:380px;margin:2.5rem auto 0;padding:1.5rem 1.5rem 1.75rem;background:var(--surface);border:1px solid var(--border);border-radius:1rem;display:flex;flex-direction:column;gap:1.1rem;animation:fade-in .25s ease}.welcome-title{font-size:1.5rem;text-align:center;font-weight:600}.welcome-subtitle{color:var(--dim);text-align:center;font-size:.85rem;line-height:1.5;margin-top:-.4rem;margin-bottom:.25rem}.field{display:flex;flex-direction:column;gap:.4rem}.field-label{font-size:.72rem;color:var(--dim);letter-spacing:.06em;text-transform:uppercase}.select{padding:.65rem 2rem .65rem .85rem;border-radius:.55rem;background:var(--bg);color:var(--text);border:1px solid var(--border);font-size:.95rem;font-family:inherit;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23666'><path d='M5.5 7.5 10 12l4.5-4.5z'/></svg>");background-repeat:no-repeat;background-position:right .6rem center;background-size:18px;transition:border-color .15s}.select:hover{border-color:var(--dim)}.select:focus{outline:none;border-color:var(--accent)}.mic-level{width:160px;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.mic-level-bar{height:100%;width:0%;background:var(--green);transition:width .08s ease-out}#ptt-btn{width:88px;height:88px;border-radius:50%;border:none;background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .12s ease,background .15s ease,box-shadow .15s ease}#ptt-btn:disabled{background:var(--border);cursor:default;opacity:.5}#ptt-btn:not(:disabled):active,#ptt-btn.recording{background:var(--green);transform:scale(1.12);box-shadow:0 0 0 10px var(--green-dim)}.connect-btn{padding:.55rem 2rem;border-radius:2rem;border:1px solid var(--accent);background:var(--accent-dim);color:var(--text);font-size:.9rem;cursor:pointer;transition:background .15s}.connect-btn:hover{background:var(--accent)}.ghost-btn{padding:.55rem 1.5rem;border-radius:2rem;border:1px solid var(--border);background:transparent;color:var(--dim);font-size:.9rem;font-family:inherit;cursor:pointer;transition:color .15s,border-color .15s}.ghost-btn:hover{color:var(--text);border-color:var(--dim)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:transparent;color:var(--dim);cursor:pointer;border-radius:6px;transition:color .15s,background .15s}.icon-btn:hover{color:var(--text);background:var(--border)}.modal-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fade-in .2s ease}.modal-content{width:100%;max-width:380px;display:flex;flex-direction:column;gap:1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1.5rem 1.5rem 1.75rem}.modal-title{font-size:1.4rem;text-align:center;font-weight:600}.modal-subtitle{color:var(--dim);text-align:center;font-size:.85rem;line-height:1.5;margin-top:-.4rem;margin-bottom:.25rem}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.3rem}.end-chat-btn{margin-top:.4rem;padding:.5rem 1.5rem;border-radius:2rem;border:1px solid var(--danger);background:transparent;color:var(--danger);font-size:.85rem;font-family:inherit;cursor:pointer;transition:background .15s,color .15s}.end-chat-btn:hover{background:var(--danger);color:#fff}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
