@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=DM+Sans:wght@400;500;600&display=swap";:root{--bg-deep: #0a0c0f;--bg-surface: #111418;--bg-raised: #181c22;--bg-hover: #1f252d;--border: #252b35;--border-active: #3a4250;--text-primary: #d4dae4;--text-secondary: #6b7a8d;--text-dim: #3d4a5a;--accent: #d4a24e;--accent-dim: rgba(212, 162, 78, .15);--accent-glow: rgba(212, 162, 78, .25);--green: #4ec980;--green-dim: rgba(78, 201, 128, .12);--red: #e05c5c;--red-dim: rgba(224, 92, 92, .12);--mono: "JetBrains Mono", "SF Mono", "Cascadia Code", monospace;--sans: "DM Sans", -apple-system, sans-serif;--radius: 6px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;background:var(--bg-deep);color:var(--text-primary);font-family:var(--sans);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100%;max-width:720px;margin:0 auto}.header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;gap:12px}.header-left,.header-right{display:flex;align-items:center;gap:8px}.brand{font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:.12em;color:var(--accent);background:var(--accent-dim);padding:4px 8px;border-radius:3px;border:1px solid rgba(212,162,78,.2);-webkit-user-select:none;user-select:none}.mode-selector{display:flex;background:var(--bg-deep);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.mode-btn{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.mode-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.mode-btn.active{color:var(--accent);background:var(--accent-dim)}.project-picker{display:flex;align-items:center;gap:6px}.project-picker label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim)}.project-picker select{font-family:var(--mono);font-size:12px;background:var(--bg-deep);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;cursor:pointer;max-width:180px}.project-picker select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.project-picker.error{color:var(--red);font-size:12px}.tts-toggle,.logout-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;padding:5px 7px;display:flex;align-items:center;transition:all .15s}.tts-toggle:hover,.logout-btn:hover{color:var(--text-primary);border-color:var(--border-active)}.tts-toggle.active{color:var(--green);border-color:#4ec9804d;background:var(--green-dim)}.main{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.transcript-view{display:flex;flex-direction:column;gap:8px}.transcript-entry{padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-surface)}.transcript-entry.user{border-left:2px solid var(--text-dim)}.transcript-entry.assistant{border-left:2px solid var(--accent);background:var(--bg-raised)}.transcript-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.transcript-role{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.transcript-entry.assistant .transcript-role{color:var(--accent)}.transcript-time{font-family:var(--mono);font-size:10px;color:var(--text-dim)}.transcript-text{font-size:14px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.response-panel{padding:14px 16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-raised)}.response-panel.loading{display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-family:var(--mono);font-size:13px}.response-panel.error{border-color:#e05c5c4d;background:var(--red-dim)}.error-text{color:var(--red);font-family:var(--mono);font-size:13px}.response-source{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:6px}.response-text{font-size:14px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dock{padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;display:flex;flex-direction:column;gap:8px;align-items:center}.cancel-speech{font-family:var(--mono);font-size:11px;color:var(--red);background:var(--red-dim);border:1px solid rgba(224,92,92,.25);border-radius:var(--radius);padding:4px 12px;cursor:pointer}.voice-input{display:flex;align-items:center;gap:10px;width:100%}.mic-btn{width:56px;height:56px;border-radius:50%;border:2px solid var(--border);background:var(--bg-raised);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;position:relative}.mic-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);box-shadow:0 0 12px var(--accent-dim)}.mic-btn.listening{border-color:var(--red);color:var(--red);background:var(--red-dim);animation:pulse-ring 1.5s ease-out infinite}.mic-btn:disabled{opacity:.4;cursor:not-allowed}@keyframes pulse-ring{0%{box-shadow:0 0 #e05c5c59}70%{box-shadow:0 0 0 12px #e05c5c00}to{box-shadow:0 0 #e05c5c00}}.live-transcript{font-family:var(--mono);font-size:13px;color:var(--text-secondary);font-style:italic;animation:blink-cursor 1s steps(1) infinite;flex:1;min-width:0}@keyframes blink-cursor{50%{opacity:.5}}.text-fallback{display:flex;gap:6px;flex:1;min-width:0}.text-fallback input{flex:1;font-family:var(--sans);font-size:14px;background:var(--bg-deep);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;outline:none;transition:border-color .15s}.text-fallback input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.text-fallback input::placeholder{color:var(--text-dim)}.text-fallback input:disabled{opacity:.4}.text-fallback button{font-family:var(--mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;padding:10px 16px;background:var(--accent-dim);color:var(--accent);border:1px solid rgba(212,162,78,.25);border-radius:var(--radius);cursor:pointer;transition:all .15s;white-space:nowrap}.text-fallback button:hover:not(:disabled){background:var(--accent-glow);border-color:var(--accent)}.text-fallback button:disabled{opacity:.3;cursor:not-allowed}.auth-screen{display:flex;align-items:center;justify-content:center;height:100%;background:var(--bg-deep);padding:24px}.auth-card{width:100%;max-width:360px;text-align:center}.auth-sigil{font-family:var(--mono);font-weight:700;font-size:28px;letter-spacing:.2em;color:var(--accent);border:2px solid var(--accent);width:72px;height:72px;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;border-radius:50%;box-shadow:0 0 24px var(--accent-dim),inset 0 0 12px var(--accent-dim)}.auth-card h1{font-family:var(--mono);font-size:18px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}.auth-card p{font-size:13px;color:var(--text-secondary);margin-bottom:28px}.auth-card form{display:flex;flex-direction:column;gap:12px}.auth-card input{font-family:var(--mono);font-size:14px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;outline:none;text-align:center;letter-spacing:.15em;transition:border-color .15s}.auth-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.auth-card input::placeholder{color:var(--text-dim);letter-spacing:.05em}.auth-card button{font-family:var(--mono);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;padding:12px;background:var(--accent);color:var(--bg-deep);border:none;border-radius:var(--radius);cursor:pointer;transition:all .15s}.auth-card button:hover:not(:disabled){background:#e0b060;box-shadow:0 0 20px var(--accent-dim)}.auth-card button:disabled{opacity:.3;cursor:not-allowed}.debug-toggle{background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;padding:5px 7px;display:flex;align-items:center;transition:all .15s}.debug-toggle:hover{color:var(--text-primary);border-color:var(--border-active)}.debug-panel{position:fixed;bottom:90px;right:16px;width:380px;max-width:calc(100vw - 32px);max-height:320px;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 32px #00000080;z-index:100;padding:8px}.debug-header{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);padding:4px 6px 8px;border-bottom:1px solid var(--border);margin-bottom:6px}.debug-empty{font-family:var(--mono);font-size:11px;color:var(--text-dim);text-align:center;padding:16px}.debug-entry{padding:6px 8px;border-radius:4px;margin-bottom:4px;border-left:2px solid var(--border)}.debug-entry.debug-ok{border-left-color:var(--green)}.debug-entry.debug-error{border-left-color:var(--red)}.debug-entry.debug-pending{border-left-color:var(--accent)}.debug-row{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px}.debug-method{color:var(--accent);font-weight:600}.debug-endpoint{color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.debug-status-badge{font-size:10px;font-weight:600;padding:1px 5px;border-radius:3px}.debug-status-badge.ok{color:var(--green);background:var(--green-dim)}.debug-status-badge.error{color:var(--red);background:var(--red-dim)}.debug-status-badge.pending{color:var(--accent);background:var(--accent-dim)}.debug-details{color:var(--text-secondary);margin-top:3px;font-size:10px;gap:10px}.debug-error{color:var(--red);margin-top:3px;font-size:10px;word-break:break-word}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-active)}@media(max-width:480px){.header{flex-wrap:wrap;gap:8px}.header-right{width:100%;justify-content:space-between}.project-picker select{max-width:140px}.mic-btn{width:52px;height:52px}}
