:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body,#root{height:100%;margin:0;padding:0}html[data-theme=dark]{--radius-card:12px;--radius-btn:8px;--shadow-card:0 2px 8px #0006;--border-card:1px solid var(--border);--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Space Grotesk", system-ui, sans-serif;--font-label:"Space Grotesk", system-ui, sans-serif;--display-tracking:-.03em;--display-weight:700;--display-transform:none}html[data-theme=brutalist]{--bg:#f9f9f9;--bg-surface:#fff;--bg-elevated:#fff;--bg-hover:#f3f3f3;--border:#000;--text:#1b1b1b;--text-secondary:#55414a;--text-muted:#7a6770;--primary:#f09;--primary-hover:#c07;--accent:#f09;--danger:#b42625;--success:#765b00;--warning:#fec719;--radius-card:6px;--radius-btn:4px;--shadow-card:6px 6px 0 0 #000, 10px 10px 16px -2px #00000059;--border-card:2px solid #000;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Space Grotesk", system-ui, sans-serif;--font-label:"Space Grotesk", system-ui, sans-serif;--display-tracking:-.03em;--display-weight:700;--display-transform:uppercase;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=editorial]{--bg:#f4f0e8;--bg-surface:#fbf8f1;--bg-elevated:#fff;--bg-hover:#ece6d8;--border:#d9cfb8;--text:#1f1b14;--text-secondary:#6b5d47;--text-muted:#9b8f77;--primary:#8b4513;--primary-hover:#6e3510;--accent:#5e7a4f;--danger:#9c3a2a;--success:#5e7a4f;--warning:#b8860b;--radius-card:2px;--radius-btn:2px;--shadow-card:none;--border-card:1px solid var(--border);--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Space Grotesk", system-ui, sans-serif;--font-label:"Space Grotesk", system-ui, sans-serif;--display-tracking:-.03em;--display-weight:700;--display-transform:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=neon]{--bg:#07070c;--bg-surface:#141423b3;--bg-elevated:#1e1e32d9;--bg-hover:#2d2d46d9;--border:#00f0ff40;--text:#e8f4ff;--text-secondary:#8a9bb4;--text-muted:#4a5a74;--primary:#00f0ff;--primary-hover:#6cffff;--accent:#ff2ec8;--danger:#ff4566;--success:#3dffa1;--warning:#ffcb47;--radius-card:14px;--radius-btn:10px;--shadow-card:0 0 0 1px #00f0ff4d, 0 8px 32px #00f0ff26, inset 0 1px 0 #ffffff0d;--border-card:1px solid #00f0ff40;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Space Grotesk", system-ui, sans-serif;--font-label:"Space Grotesk", system-ui, sans-serif;--display-tracking:-.03em;--display-weight:700;--display-transform:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme] body{font-family:var(--font-body)}html[data-theme=neon] body{background:radial-gradient(1200px 600px at 10% -10%, #00f0ff14, transparent 60%), radial-gradient(900px 500px at 110% 20%, #ff2ec814, transparent 60%), var(--bg)}html[data-theme=brutalist] body,html[data-theme=editorial] body{background:var(--bg)}html[data-theme] h1,html[data-theme] h2,html[data-theme] h3,html[data-theme] .page-title,html[data-theme] .page-header h1{font-family:var(--font-display);letter-spacing:var(--display-tracking);font-weight:var(--display-weight)}html[data-theme=brutalist] .page-header h1{text-transform:uppercase;-webkit-text-fill-color:var(--text);color:var(--text);background:0 0}html[data-theme=editorial] .page-header h1{-webkit-text-fill-color:var(--text);color:var(--text);background:0 0;font-style:italic}html[data-theme] .show-card,html[data-theme] .card,html[data-theme] .panel{border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}html[data-theme=brutalist] .show-card:hover,html[data-theme=brutalist] .card:hover{transform:translate(-1px,-1px);box-shadow:7px 7px #000,11px 11px 16px -2px #0000004d}html[data-theme=neon] .show-card:hover{box-shadow:0 0 0 1px #00f0ff73,0 10px 32px #00f0ff2e}html[data-theme] .btn{border-radius:var(--radius-btn);font-family:var(--font-body)}html[data-theme=brutalist] .btn{border:2px solid #000;font-weight:700;box-shadow:3px 3px #000}html[data-theme=brutalist] .btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px #000}html[data-theme=brutalist] .btn:active{box-shadow:none;transform:translate(3px,3px)}html[data-theme=brutalist] .btn-primary{background:var(--accent);color:#fff;border-color:#000}html[data-theme=neon] .btn-primary{background:linear-gradient(135deg, var(--primary), var(--accent));color:#07070c;border:none;box-shadow:0 4px 20px #00f0ff66}html[data-theme=editorial] .btn{letter-spacing:.02em;border-radius:2px;font-weight:500}html[data-theme] .subtitle,html[data-theme] .page-subtitle{font-family:var(--font-label)}html[data-theme=brutalist] input,html[data-theme=brutalist] select,html[data-theme=brutalist] textarea{font-weight:600;color:#000!important;background:#fff!important;border:2px solid #000!important;border-radius:4px!important}html[data-theme=brutalist] input:focus,html[data-theme=brutalist] select:focus,html[data-theme=brutalist] textarea:focus{outline:none;box-shadow:3px 3px #000;background:#ffe0f0!important}html[data-theme=neon] input,html[data-theme=neon] select,html[data-theme=neon] textarea{color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#14142399;border:1px solid #00f0ff4d}html[data-theme=neon] input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #00f0ff33}html[data-theme=brutalist] .hub-tabs{border-bottom:2px solid #000!important}html[data-theme=brutalist] .hub-tab{font-weight:700;font-family:var(--font-label);text-transform:uppercase;letter-spacing:.04em;box-shadow:none;border-radius:4px;padding:6px 14px;font-size:11.5px;background:var(--bg-surface)!important;color:var(--text)!important;border:2px solid #000!important}html[data-theme=brutalist] .hub-tab:hover{transform:translate(-1px,-1px);box-shadow:3px 3px #000;background:var(--bg-hover)!important}html[data-theme=brutalist] .hub-tab.active{box-shadow:3px 3px #000;background:var(--accent)!important;color:#000!important}html[data-theme=editorial] .hub-tab{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.08em;font-size:12px}html[data-theme=neon] .hub-tab{color:var(--text-muted);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0a;border-color:#00f0ff4d}html[data-theme=neon] .hub-tab.active{border-color:var(--primary);color:var(--text);background:#00f0ff26;box-shadow:0 0 12px #00f0ff4d}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0f;--bg-surface:#12121a;--bg-elevated:#1a1a26;--bg-hover:#22222e;--border:#2a2a3a;--text:#e8e8ef;--text-secondary:#8888a0;--text-muted:#555568;--primary:#6c5ce7;--primary-hover:#7d6ff0;--accent:#00cec9;--danger:#ff4757;--success:#2ed573;--warning:#ffa502}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}.app{flex-direction:column;min-height:100vh;display:flex}.page{width:100%;max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.page.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;display:flex}.search-input{background:var(--bg-surface);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;padding:.6rem 1rem;font-size:.95rem}.search-input:focus{border-color:var(--primary)}.page-header{margin-bottom:2rem}.page-header h1{background:linear-gradient(135deg, var(--primary), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.25rem;font-size:2rem;font-weight:700}.subtitle{color:var(--text-secondary);font-size:1rem}.error{color:var(--danger)}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;margin:1rem auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);cursor:pointer;border-radius:8px;padding:.6rem 1.4rem;font-size:.95rem;transition:all .15s}.btn:hover{background:var(--bg-hover);border-color:var(--text-muted)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-secondary{border-color:var(--primary);color:var(--primary);background:0 0}.btn-secondary:hover{background:#6c5ce71a}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-large{padding:.9rem 2rem;font-size:1.1rem}.back-link{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;margin-bottom:1rem;padding:0;font-size:.9rem;display:inline-block}.back-link:hover{color:var(--text)}.breadcrumbs{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.75rem;font-size:.85rem;display:flex}.crumb{align-items:center;gap:.4rem;display:inline-flex}.crumb-sep{color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:.95rem}.crumb-link{cursor:pointer;color:var(--text-secondary);font:inherit;background:0 0;border:none;padding:0;transition:color .2s}.crumb-link:hover{color:var(--primary);text-decoration:underline}.crumb-current{color:var(--text);font-weight:600}.show-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-auto-rows:200px;grid-auto-flow:dense;gap:1.25rem;display:grid}.show-grid>.show-card{min-height:0}.show-grid>.show-card.grid-wide{grid-column:span 2}.show-grid>.show-card.grid-tall{grid-row:span 2}.show-grid>.show-card.grid-big{grid-area:span 2/span 2}@media (width<=600px){.show-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:160px}.show-grid>.show-card.grid-wide,.show-grid>.show-card.grid-big{grid-column:span 1}}.show-card{background:var(--bg-surface);border:1px solid var(--border);text-align:left;cursor:pointer;width:100%;min-height:180px;color:inherit;isolation:isolate;background-position:50%;background-size:cover;border-radius:12px;flex-direction:column;gap:.5rem;padding:1.25rem;font-family:inherit;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .4s,background-color .4s;display:flex;position:relative;overflow:hidden}.show-card:before{content:"";opacity:0;z-index:-1;pointer-events:none;background:linear-gradient(#0000 0%,#0009 55%,#000000e6 100%);height:60%;transition:opacity .45s,height .5s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:0;left:0;right:0}.show-card.has-image:before{opacity:1}.show-card.has-image:hover:before{height:70%}.show-card.has-image{color:#fff}.show-card:not(.has-image){background:linear-gradient(135deg, var(--bg-elevated) 0%, var(--bg-surface) 60%, color-mix(in srgb, var(--primary) 12%, var(--bg-surface)) 100%)}.show-card:hover{transform:translateY(-1px)}.show-card-body{flex-direction:column;gap:.25rem;margin-top:auto;display:flex}.show-card h2{font-size:1.25rem;font-weight:600;line-height:1.2}.show-card-meta{opacity:0;flex-wrap:wrap;gap:.5rem .75rem;max-height:0;margin:0;font-size:.78rem;transition:opacity .45s,max-height .5s cubic-bezier(.2,.8,.2,1),transform .45s,margin-top .45s;display:flex;overflow:hidden;transform:translateY(4px)}.show-card:hover .show-card-meta{opacity:.9;max-height:3em;margin-top:.2rem;transform:translateY(0)}.show-card-meta span{white-space:nowrap}@media (hover:none){.show-card-meta{opacity:.85;max-height:3em;margin-top:.2rem;transform:none}}.show-type{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.show-desc{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.9rem;display:-webkit-box;overflow:hidden}.show-season-count{color:var(--primary);font-size:.8rem;font-weight:600}.universe-header{border-bottom:1px solid var(--border);margin-top:1.5rem;margin-bottom:.75rem;padding-bottom:.5rem}.universe-header h2{color:var(--accent);font-size:1.1rem;font-weight:600}.universe-desc{color:var(--text-secondary);margin-top:.25rem;font-size:.85rem}.show-persona{margin-top:auto;padding-top:.75rem}.persona-tag{color:var(--primary);background:#6c5ce726;border-radius:20px;padding:.25rem .75rem;font-size:.8rem;font-weight:500}.setup-section{background:var(--bg-surface);border:none;border-radius:14px;margin-bottom:1rem;padding:1.2rem 1.5rem;box-shadow:0 1px 2px #00000014,0 6px 20px #00000024}.setup-section h2{color:var(--accent);margin-bottom:1rem;font-size:1.1rem}details.setup-section>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}details.setup-section>summary::-webkit-details-marker{display:none}details.setup-section>summary:before{content:"›";color:var(--text-secondary);text-align:center;width:1em;font-size:1.5rem;line-height:1;transition:transform .25s cubic-bezier(.2,.8,.2,1);display:inline-block}details.setup-section[open]>summary:before{transform:rotate(90deg)}details.setup-section>summary h2{margin:0}details.setup-section[open]>summary{margin-bottom:1.25rem}details.setup-section[open]{padding-bottom:1.5rem}.rag-stats{background:var(--bg-surface);border-radius:12px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden;box-shadow:0 1px 2px #00000014,0 4px 14px #0000001f}.rag-stats .stat{flex-direction:column;gap:.2rem;padding:.9rem 1.25rem;display:flex}.rag-stats .stat+.stat{border-left:1px solid var(--border)}.rag-stats .stat-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);font-size:.7rem;font-weight:600}.rag-stats .stat-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700;line-height:1.1}.rag-stats .stat.highlight .stat-value{color:var(--accent)}.persona-card{flex-direction:column;gap:.6rem;display:flex}.persona-detail{gap:.5rem;display:flex}.persona-detail .label,.persona-rules .label{color:var(--text-secondary);flex-shrink:0;min-width:110px;font-weight:600}.persona-rules ul{margin-top:.25rem;padding-left:1.5rem}.persona-rules li{color:var(--text-secondary);margin-bottom:.25rem;font-size:.9rem}.progress-selector{align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.progress-selector label{color:var(--text-secondary);white-space:nowrap;font-weight:500}.progress-selector select{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:8px;flex:1;padding:.5rem .75rem;font-size:.95rem}.included-episodes h3{color:var(--text-secondary);margin-bottom:.75rem;font-size:.9rem;font-weight:500}.episode-pills{flex-wrap:wrap;gap:.5rem;display:flex}.episode-pill{white-space:nowrap;border-radius:20px;padding:.3rem .75rem;font-size:.8rem}.episode-pill.included{color:var(--success);background:#2ed57326;border:1px solid #2ed5734d}.episode-pill.excluded{color:var(--text-muted);border:1px solid var(--border);background:#ff47571a}.optimization-toggles{flex-direction:column;gap:.75rem;display:flex}.opt-toggle{background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex;position:relative}.opt-toggle.disabled{opacity:.45;cursor:not-allowed}.opt-toggle-info{flex-direction:column;gap:.15rem;display:flex}.opt-toggle-label{color:var(--text-primary);font-size:.9rem;font-weight:600}.opt-toggle-detail{color:var(--text-muted);font-size:.75rem}.opt-switch{opacity:0;width:0;height:0;position:absolute}.opt-slider{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;flex-shrink:0;width:44px;height:24px;transition:background .2s;position:relative}.opt-slider:after{content:"";background:var(--text-muted);border-radius:50%;width:18px;height:18px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.opt-switch:checked+.opt-slider{background:var(--primary);border-color:var(--primary)}.opt-switch:checked+.opt-slider:after{background:#fff;transform:translate(20px)}.setup-actions{gap:1rem;margin-top:1.5rem;display:flex}.session-header{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.back-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:.3rem .75rem;font-size:.85rem}.back-btn:hover{color:var(--text);border-color:var(--text-muted)}.session-info{flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.9rem;display:flex}.show-title{color:var(--text);font-weight:600}.persona-name{color:var(--primary);font-weight:500}.progress{color:var(--accent);font-weight:500}.separator{color:var(--text-muted)}.model-tag{color:var(--text-muted);background:var(--bg-elevated);border-radius:4px;padding:.15rem .5rem;font-family:monospace;font-size:.7rem}.chat-page{flex-direction:column;height:100vh;display:flex}.chat-layout{flex:1;display:flex;overflow:hidden}.context-panel{background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;transition:width .2s;display:flex}.context-panel.open{width:380px;min-width:380px}.context-panel.closed{width:auto;min-width:auto}.context-toggle{background:var(--bg-elevated);border:none;border-bottom:1px solid var(--border);color:var(--text-secondary);cursor:pointer;text-align:left;white-space:nowrap;padding:.6rem 1rem;font-size:.8rem}.context-toggle:hover{color:var(--text);background:var(--bg-hover)}.context-content{color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;flex:1;padding:1rem;font-family:SF Mono,Fira Code,monospace;font-size:.75rem;line-height:1.5;overflow:auto}.chat-area{flex-direction:column;flex:1;display:flex;overflow:hidden}.messages-container{flex-direction:column;flex:1;gap:1rem;padding:1.5rem;display:flex;overflow-y:auto}.empty-chat{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.5rem;display:flex}.empty-chat .hint{color:var(--text-muted);font-size:.85rem}.message-bubble{flex-direction:column;gap:.25rem;max-width:75%;display:flex}.message-bubble.user{align-self:flex-end}.message-bubble.model{align-self:flex-start}.bubble-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:600}.message-bubble.user .bubble-label{text-align:right}.bubble-text{white-space:pre-wrap;word-break:break-word;border-radius:12px;padding:.75rem 1rem;font-size:.95rem;line-height:1.5}.message-bubble.user .bubble-text{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.message-bubble.model .bubble-text{background:var(--bg-elevated);border:1px solid var(--border);border-bottom-left-radius:4px}.bubble-text.typing{color:var(--text-muted);font-style:italic}.bubble-feedback{flex-direction:column;gap:.5rem;margin-top:.25rem;display:flex}.feedback-actions{align-items:center;gap:.25rem;display:flex}.feedback-btn{cursor:pointer;opacity:.45;background:0 0;border:1px solid #0000;border-radius:8px;padding:.25rem .4rem;font-size:.95rem;line-height:1;transition:opacity .15s,background .15s,border-color .15s}.feedback-btn:hover:not(:disabled){opacity:1;background:var(--bg-elevated)}.feedback-btn:disabled{cursor:wait}.feedback-btn.active{opacity:1;border-color:var(--border);background:var(--bg-elevated)}.feedback-btn.active.up{border-color:var(--primary,#4caf50)}.feedback-btn.active.down{border-color:#c0392b}.feedback-thanks{color:var(--text-muted);margin-left:.25rem;font-size:.75rem}.feedback-detail{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.5rem;padding:.6rem .75rem;display:flex}.feedback-chips{flex-wrap:wrap;gap:.35rem;display:flex}.feedback-chip{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:.2rem .6rem;font-size:.75rem}.feedback-chip.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.feedback-comment{resize:vertical;border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text);border-radius:8px;padding:.4rem .6rem;font-family:inherit;font-size:.8rem}.feedback-detail-actions{gap:.5rem;display:flex}.chat-input-bar{background:var(--bg-surface);border-top:1px solid var(--border);gap:.75rem;padding:1rem 1.5rem;display:flex}.chat-input-bar input{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;flex:1;padding:.7rem 1rem;font-size:.95rem;transition:border-color .15s}.chat-input-bar input:focus{border-color:var(--primary)}.chat-input-bar input::placeholder{color:var(--text-muted)}.send-btn{background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:.7rem 1.5rem;font-size:.95rem;font-weight:600;transition:background .15s}.send-btn:hover:not(:disabled){background:var(--primary-hover)}.send-btn:disabled{opacity:.5;cursor:not-allowed}.end-session-btn{background:var(--accent);border-color:var(--accent);color:#000;white-space:nowrap;font-size:.85rem;font-weight:600}.end-session-btn:hover:not(:disabled){background:#00b5b0;border-color:#00b5b0}.end-session-btn:disabled{opacity:.5;cursor:not-allowed}.voice-container{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2rem;padding:3rem;display:flex}.voice-visual{position:relative}.voice-orb{background:radial-gradient(circle, var(--primary), transparent 70%);border-radius:50%;justify-content:center;align-items:center;width:160px;height:160px;transition:all .3s;display:flex}.voice-orb.idle{opacity:.4}.voice-orb.connecting{opacity:.7;animation:1.5s ease-in-out infinite pulse}.voice-orb.active{opacity:1;animation:1s ease-in-out infinite pulse}.voice-orb.error{background:radial-gradient(circle, var(--danger), transparent 70%);opacity:.6}.orb-inner{background:var(--bg-surface);border:2px solid var(--primary);border-radius:50%;width:80px;height:80px}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.voice-status{text-align:center;max-width:500px}.voice-status h2{margin-bottom:.5rem;font-size:1.4rem}.voice-status p{color:var(--text-secondary);font-size:.95rem}.status-message{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-muted);border-radius:8px;margin-top:1rem;padding:1rem;font-size:.85rem}.voice-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.voice-feedback-buttons{justify-content:center;align-items:center;gap:1.25rem;margin-top:1.5rem;animation:.28s ease-out voice-fb-fadein;display:flex}@keyframes voice-fb-fadein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.voice-feedback-btn{background:var(--bg-elevated,#ffffff0f);border:1px solid var(--border,#ffffff26);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.75rem;line-height:1;transition:transform .14s,background .14s;display:inline-flex}.voice-feedback-btn:not(:disabled):hover{background:var(--bg-hover,#ffffff1f);transform:scale(1.08)}.voice-feedback-btn:not(:disabled):active{transform:scale(.95)}.voice-feedback-btn:disabled{cursor:default}.voice-feedback-btn.flying-this{pointer-events:none;animation:1s cubic-bezier(.25,.8,.4,1) forwards voice-fb-fly}.voice-feedback-btn.fading{pointer-events:none;animation:.28s ease-out forwards voice-fb-fade}@keyframes voice-fb-fly{0%{opacity:1;transform:translateY(0)scale(1)}18%{opacity:1;transform:translateY(-12px)scale(1.25)}to{opacity:0;transform:translateY(-180px)scale(.65)}}@keyframes voice-fb-fade{to{opacity:0}}@media (width<=768px){.chat-layout{flex-direction:column}.context-panel.open{border-right:none;border-bottom:1px solid var(--border);width:100%;min-width:100%;max-height:200px}.session-info{font-size:.8rem}.message-bubble{max-width:90%}.setup-actions{flex-direction:column}.progress-selector{flex-direction:column;align-items:stretch}}.user-bar{background:var(--bg-surface);border-bottom:1px solid var(--border);justify-content:flex-end;align-items:center;gap:.75rem;padding:.4rem 1.5rem;font-size:.8rem;display:flex}.user-bar-name{color:var(--text-secondary)}.user-bar-signout{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;text-decoration:underline}.user-bar-signout:hover{color:var(--text)}.backend-switch{border:1px solid var(--border);border-radius:6px;margin-right:auto;display:flex;overflow:hidden}.backend-btn{background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;border:none;padding:.2rem .6rem;font-size:.7rem;font-weight:500;transition:all .15s}.backend-btn:first-child{border-right:1px solid var(--border)}.backend-btn.active{background:var(--primary);color:#fff}.backend-btn:hover:not(.active){background:var(--bg-hover);color:var(--text-secondary)}.login-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:400px;padding:2rem}.login-tabs{border:1px solid var(--border);border-radius:8px;margin-bottom:1.5rem;display:flex;overflow:hidden}.login-tab{background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;border:none;flex:1;padding:.5rem;font-size:.9rem;font-weight:500;transition:all .15s}.login-tab.active{background:var(--primary);color:#fff}.login-tab:hover:not(.active){background:var(--bg-hover)}.login-form{flex-direction:column;gap:.75rem;display:flex}.login-input{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;padding:.7rem 1rem;font-size:.95rem;transition:border-color .15s}.login-input:focus{border-color:var(--primary)}.login-input::placeholder{color:var(--text-muted)}.login-divider{color:var(--text-muted);align-items:center;gap:1rem;margin:1.25rem 0;font-size:.8rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}.login-google{background:var(--bg-elevated);border:1px solid var(--border);width:100%;color:var(--text)}.login-google:hover{background:var(--bg-hover);border-color:var(--text-muted)}.build-version{color:var(--text-muted);opacity:.5;pointer-events:none;font-size:10px;position:fixed;bottom:4px;right:8px}.hub-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;padding-bottom:12px;display:flex}.hub-tab{color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 14px;font-family:inherit;font-size:13px;text-decoration:none}.hub-tab:hover{color:var(--text)}.hub-tab.active{background:var(--bg-elevated);border-color:var(--text-muted);color:var(--text)}
