:root{color:#f4f4f5;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0f0f10;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}*{scrollbar-width:thin;scrollbar-color:#27272a transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#27272a;border-radius:999px}::-webkit-scrollbar-track{background:0 0}body{color:#f4f4f5;background:#0f0f10;margin:0}#root{background:#0f0f10;width:100%;min-height:100vh}h1,h2,h3{letter-spacing:-.02em;font-weight:600}.brand-logo{background:#1b1030;border-radius:50%;flex:none;padding:0;line-height:0;transition:transform .3s,box-shadow .3s;animation:3.2s ease-in-out infinite brandGlow;display:inline-block;position:relative;overflow:hidden;box-shadow:0 0 0 2px #d4af37a6,0 0 14px #a855f7a6,0 0 30px #2dd4bf59,0 8px 18px #0000008c,inset 0 -4px 8px #0006,inset 0 3px 6px #ffffff40}.brand-logo img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block;transform:scale(1.02)}.brand-logo:after{content:"";pointer-events:none;background:radial-gradient(circle at 30% 22%,#ffffff59,#0000 45%);border-radius:50%;position:absolute;inset:0}.brand-logo:hover{transform:translateY(-2px)scale(1.06)}.brand-float{animation:3.2s ease-in-out infinite brandGlow,4s ease-in-out infinite brandFloat}@keyframes brandGlow{0%,to{filter:drop-shadow(0 0 4px #a855f799)}50%{filter:drop-shadow(0 0 12px #2dd4bfd9)}}@keyframes brandFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.user-avatar{color:#fff;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:0;display:inline-flex;overflow:hidden;box-shadow:0 0 0 2px #d4af37b3,0 0 14px #a855f7a6,0 0 30px #2dd4bf59,0 8px 18px #0000008c,inset 0 -4px 8px #00000059,inset 0 3px 6px #ffffff40}.user-avatar svg{border-radius:50%;display:block}.brand-logo,.user-avatar{will-change:transform;animation:2.4s ease-in-out infinite brandBounce,3.2s ease-in-out infinite brandGlow}.user-avatar{animation-delay:.5s,0s}.brand-logo.brand-float{animation:2.8s ease-in-out infinite brandBounceBig,3.2s ease-in-out infinite brandGlow}.header .brand-logo{animation:2.6s ease-in-out infinite brandBounceSmall,3.2s ease-in-out infinite brandGlow;width:40px!important;height:40px!important}@keyframes brandBounce{0%,to{transform:perspective(320px)translateY(0)rotateY(0)scale(1)}22%{transform:perspective(320px)translateY(-9px)rotateY(18deg)scale(1.04)}42%{transform:perspective(320px)translateY(0)rotateY(0)scale(1.06,.93)}58%{transform:perspective(320px)translateY(-4px)rotateY(-14deg)scale(1)}74%{transform:perspective(320px)translateY(0)rotateY(0)scale(1)}}@keyframes brandBounceBig{0%,to{transform:perspective(600px)translateY(0)rotateY(0)scale(1)}25%{transform:perspective(600px)translateY(-22px)rotateY(22deg)scale(1.05)}45%{transform:perspective(600px)translateY(0)rotateY(0)scale(1.07,.92)}62%{transform:perspective(600px)translateY(-9px)rotateY(-16deg)scale(1)}80%{transform:perspective(600px)translateY(0)rotateY(0)scale(1)}}@keyframes brandBounceSmall{0%,to{transform:perspective(200px)translateY(0)rotateY(0)}30%{transform:perspective(200px)translateY(-3px)rotateY(16deg)}60%{transform:perspective(200px)translateY(0)rotateY(-12deg)}}@media (prefers-reduced-motion:reduce){.brand-logo,.user-avatar{animation:none!important}}.auth-container{width:100%;min-height:100vh;color:var(--text,#f4f4f5);background:radial-gradient(circle at 50% 20%,#1c1d24 0%,#0c0c0e 100%);justify-content:center;align-items:center;padding:24px;font-family:inherit;display:flex;position:relative;overflow:hidden}.auth-backdrop-glow{pointer-events:none;filter:blur(80px);background:radial-gradient(circle,#6366f11f 0%,#3b82f60d 50%,#0000 70%);width:600px;height:600px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.auth-card{z-index:2;-webkit-backdrop-filter:blur(20px);background:#17171ad9;border:1px solid #ffffff1a;border-radius:18px;width:100%;max-width:460px;padding:36px 32px;animation:.35s cubic-bezier(.16,1,.3,1) authFadeIn;position:relative;box-shadow:0 20px 50px #00000080,0 0 0 1px #ffffff0d}@keyframes authFadeIn{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.auth-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:24px;display:flex}.auth-logo-badge{filter:drop-shadow(0 4px 12px #6366f140);margin-bottom:12px}.auth-title{letter-spacing:-.03em;color:#fff;margin:0 0 6px;font-size:22px;font-weight:700}.auth-subtitle{color:#9f9fa9;margin:0 0 14px;font-size:13px;line-height:1.4}.auth-highlight-pill{color:#c7d2fe;background:#6366f11f;border:1px solid #6366f14d;border-radius:999px;align-items:center;gap:8px;padding:4px 12px;font-size:11.5px;font-weight:500;display:inline-flex}.dot-pulse{background:#22c55e;border-radius:50%;width:7px;height:7px;box-shadow:0 0 8px #22c55e}.auth-tabs{background:#18181b;border:1px solid #27272a;border-radius:10px;margin-bottom:20px;padding:4px;display:flex}.auth-tab{color:#a1a1aa;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:8px 12px;font-size:13px;font-weight:600;transition:all .2s}.auth-tab.active{color:#fff;background:#27272a;box-shadow:0 2px 6px #0000004d}.auth-tab:hover:not(.active){color:#d4d4d8}.auth-error-banner{color:#fca5a5;background:#ef44441f;border:1px solid #ef444459;border-radius:10px;align-items:center;gap:10px;margin-bottom:18px;padding:10px 14px;font-size:12.5px;display:flex}.auth-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-row{gap:12px;display:flex}.form-row .form-group{flex:1}.form-group label{color:#d4d4d8;font-size:12px;font-weight:500}.input-wrap{background:#141416;border:1px solid #2e2e34;border-radius:10px;align-items:center;transition:border-color .2s,box-shadow .2s;display:flex;position:relative}.input-wrap:focus-within{border-color:#6366f1;box-shadow:0 0 0 3px #6366f133}.input-icon{color:#71717a;flex-shrink:0;margin-left:12px}.input-prefix{color:#71717a;margin-left:12px;font-size:13px;font-weight:600}.input-wrap input,.input-wrap select{color:#f4f4f5;background:0 0;border:none;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:13.5px}.input-wrap select{cursor:pointer}.input-wrap select option{color:#f4f4f5;background:#1c1c20}.password-toggle{color:#71717a;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:8px 12px;display:flex}.password-toggle:hover{color:#e4e4e7}.auth-options{color:#a1a1aa;justify-content:space-between;align-items:center;font-size:12px;display:flex}.checkbox-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.checkbox-label input[type=checkbox]{accent-color:#6366f1;cursor:pointer;width:15px;height:15px}.auth-submit-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f46e5 0%,#3b82f6 100%);border:none;border-radius:10px;justify-content:center;align-items:center;width:100%;margin-top:4px;padding:11px;font-size:13.5px;font-weight:600;transition:opacity .2s,transform .1s;display:flex;box-shadow:0 4px 14px #4f46e559}.auth-submit-btn:hover:not(:disabled){opacity:.95;transform:translateY(-1px)}.auth-submit-btn:active:not(:disabled){transform:translateY(0)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-divider{text-align:center;color:#52525b;align-items:center;margin:6px 0;font-size:11px;font-weight:600;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-bottom:1px solid #27272a;flex:1}.auth-divider span{padding:0 10px}.auth-demo-btn{color:#d4d4d8;cursor:pointer;background:#ffffff0a;border:1px solid #27272a;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:10px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.auth-demo-btn:hover:not(:disabled){color:#fff;background:#ffffff14;border-color:#3f3f46}.auth-footer-features{border-top:1px solid #27272a;justify-content:space-between;margin-top:24px;padding-top:20px;display:flex}.feature-item{color:#71717a;align-items:center;gap:6px;font-size:11px;display:flex}.auth-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.pdf-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);background:#000000bf;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.pdf-modal-card{background:#17171a;border:1px solid #2e2e34;border-radius:16px;flex-direction:column;width:100%;max-width:680px;max-height:90vh;animation:.25s cubic-bezier(.16,1,.3,1) cardSlideUp;display:flex;overflow:hidden;box-shadow:0 24px 60px #0009,0 0 0 1px #ffffff0f}@keyframes cardSlideUp{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.pdf-modal-header{background:#1a1a1d;border-bottom:1px solid #27272a;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.pdf-header-left{align-items:center;gap:14px;display:flex}.pdf-icon-badge{color:#818cf8;background:#6366f126;border:1px solid #6366f14d;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.pdf-modal-title{color:#fff;letter-spacing:-.02em;margin:0 0 2px;font-size:17px;font-weight:700}.pdf-modal-subtitle{color:#9f9fa9;margin:0;font-size:12.5px}.pdf-close-btn{color:#71717a;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.pdf-close-btn:hover{color:#fff;background:#27272a}.pdf-modal-body{flex-direction:column;gap:20px;padding:22px 24px;display:flex;overflow-y:auto}.pdf-section{flex-direction:column;gap:10px;display:flex}.pdf-section-label{text-transform:uppercase;letter-spacing:.05em;color:#a1a1aa;font-size:12px;font-weight:600}.template-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.template-card{cursor:pointer;-webkit-user-select:none;user-select:none;background:#1e1e22;border:1px solid #2e2e34;border-radius:10px;padding:14px;transition:all .2s}.template-card:hover{background:#242429;border-color:#3f3f46}.template-card.active{background:#6366f11a;border-color:#6366f1;box-shadow:0 0 0 1px #6366f1}.template-card-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.template-color-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.template-name{color:#f4f4f5;flex:1;font-size:13.5px;font-weight:600}.template-badge{color:#a1a1aa;background:#27272a;border-radius:999px;padding:2px 7px;font-size:10.5px;font-weight:500}.template-card.active .template-badge{color:#c7d2fe;background:#6366f140}.template-desc{color:#8e8e98;margin:0;font-size:11.5px;line-height:1.35}.pdf-options-row{gap:12px;display:flex}.pdf-input-group{flex-direction:column;gap:6px;display:flex}.pdf-input-group.flex-2{flex:2}.pdf-input-group.flex-1{flex:1}.pdf-field-label{color:#a1a1aa;font-size:11.5px;font-weight:500}.pdf-text-input,.pdf-select-input{color:#fff;background:#141416;border:1px solid #2e2e34;border-radius:8px;outline:none;padding:9px 12px;font-family:inherit;font-size:13px}.pdf-text-input:focus,.pdf-select-input:focus{border-color:#6366f1}.pdf-checkboxes{flex-direction:column;gap:8px;margin-top:4px;display:flex}.pdf-check-item{color:#d4d4d8;cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.pdf-check-item input[type=checkbox]{accent-color:#6366f1;cursor:pointer;width:15px;height:15px}.pdf-preview-box{background:#121214;border:1px solid #27272a;border-radius:10px;padding:14px 16px}.pdf-preview-badge{text-transform:uppercase;color:#818cf8;letter-spacing:.05em;margin-bottom:8px;font-size:11px;font-weight:600}.pdf-preview-content{color:#0f172a;background:#fff;border-radius:6px;padding:14px;font-size:12px;box-shadow:0 4px 12px #0003}.pdf-mock-header{color:#0f172a;border-bottom:2px solid #1e3a8a;justify-content:space-between;margin-bottom:8px;padding-bottom:6px;font-size:13px;display:flex}.pdf-mock-line-short{background:#3b82f6;border-radius:2px;width:40px;height:3px;margin-bottom:8px}.pdf-mock-body{color:#334155;margin:0 0 10px;font-size:11.5px;line-height:1.4}.pdf-mock-footer{color:#64748b;border-top:1px solid #e2e8f0;justify-content:space-between;padding-top:6px;font-size:10px;display:flex}.pdf-modal-footer{background:#1a1a1d;border-top:1px solid #27272a;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;display:flex}.btn-primary-pdf{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f46e5 0%,#3b82f6 100%);border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;transition:opacity .2s;display:flex;box-shadow:0 2px 10px #4f46e566}.btn-primary-pdf:hover:not(:disabled){opacity:.92}.btn-primary-pdf:disabled{opacity:.6;cursor:not-allowed}.pdf-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}.template-card.wide{grid-column:1/-1}.model-modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#0a0e1abf;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.model-modal-container{background:var(--bg-surface,#1e2230);border:1px solid var(--border-color,#ffffff1f);width:100%;max-width:740px;max-height:90vh;color:var(--text-main,#f0f2f7);border-radius:16px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 60px #00000073}.model-modal-header{border-bottom:1px solid var(--border-color,#ffffff14);background:#ffffff05;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.model-modal-title-group{align-items:center;gap:14px;display:flex}.model-modal-icon{background:linear-gradient(135deg,#f59e0b33,#ef444433);border:1px solid #f59e0b66;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:26px;display:flex}.model-modal-title-group h3{letter-spacing:-.01em;margin:0;font-size:1.18rem;font-weight:700}.model-modal-title-group p{color:var(--text-muted,#94a3b8);margin:2px 0 0;font-size:.85rem}.model-modal-close{color:var(--text-muted,#94a3b8);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px;font-size:1.2rem;transition:all .15s}.model-modal-close:hover{color:#fff;background:#ffffff14}.model-modal-alert{border-radius:8px;margin:16px 24px 0;padding:12px 20px;font-size:.88rem}.model-modal-alert.error{color:#fca5a5;background:#ef444426;border:1px solid #ef444459}.model-modal-alert.success{color:#86efac;background:#22c55e26;border:1px solid #22c55e59}.model-modal-loading{color:var(--text-muted,#94a3b8);flex-direction:column;align-items:center;gap:16px;padding:60px 24px;display:flex}.model-spinner{border:3px solid #ffffff1a;border-top-color:var(--primary,#3b82f6);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.model-modal-body{flex-direction:column;gap:20px;padding:20px 24px;display:flex;overflow-y:auto}.providers-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}@media (width<=640px){.providers-grid{grid-template-columns:1fr}}.provider-card{cursor:pointer;background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;padding:16px;transition:all .2s;display:flex;position:relative}.provider-card:hover{background:#ffffff0f;border-color:#3b82f666;transform:translateY(-1px)}.provider-card.selected{border-color:var(--primary,#3b82f6);box-shadow:0 0 0 1px var(--primary,#3b82f6), 0 4px 16px #3b82f626;background:#3b82f614}.provider-card-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.provider-badge{color:var(--text-main,#f0f2f7);background:#ffffff14;border-radius:6px;padding:3px 8px;font-size:.78rem;font-weight:600}.provider-active-indicator{color:#4ade80;background:#22c55e33;border:1px solid #22c55e66;border-radius:10px;padding:2px 7px;font-size:.72rem;font-weight:600}.provider-name{margin:0;font-size:1.05rem;font-weight:700}.provider-tagline{color:#38bdf8;margin:2px 0 6px;font-size:.76rem;font-weight:500}.provider-desc{color:var(--text-muted,#94a3b8);flex:1;margin:0 0 12px;font-size:.8rem;line-height:1.4}.provider-status-row{align-items:center;margin-top:auto;display:flex}.status-pill{border-radius:6px;padding:3px 8px;font-size:.72rem;font-weight:600}.status-pill.ready{color:#4ade80;background:#22c55e1f}.status-pill.needs-key{color:#fbbf24;background:#f59e0b1f}.provider-config-box{background:#ffffff05;border:1px solid #ffffff14;border-radius:12px;padding:18px}.config-box-header{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.config-box-header h4{margin:0;font-size:.98rem;font-weight:600}.get-free-key-btn{color:#38bdf8;background:#38bdf81a;border:1px solid #38bdf840;border-radius:6px;padding:4px 10px;font-size:.78rem;font-weight:600;text-decoration:none;transition:all .15s}.get-free-key-btn:hover{color:#fff;background:#38bdf833}.config-fields{flex-direction:column;gap:14px;display:flex}.config-field{flex-direction:column;gap:6px;display:flex}.field-label-row{justify-content:space-between;align-items:center;display:flex}.config-field label{color:var(--text-main,#f0f2f7);align-items:center;gap:8px;font-size:.84rem;font-weight:600;display:flex}.free-badge{color:#4ade80;text-transform:uppercase;background:#22c55e2e;border-radius:4px;padding:1px 6px;font-size:.68rem;font-weight:700}.toggle-vis-btn{color:#38bdf8;cursor:pointer;background:0 0;border:none;font-size:.75rem}.model-select-input,.api-key-input{box-sizing:border-box;color:#fff;background:#00000040;border:1px solid #ffffff1f;border-radius:8px;outline:none;width:100%;padding:9px 12px;font-size:.88rem;transition:border-color .15s}.model-select-input:focus,.api-key-input:focus{border-color:var(--primary,#3b82f6)}.model-select-input option{color:#fff;background:#1e2230}.field-hint{color:var(--text-muted,#94a3b8);font-size:.72rem}.ollama-notice{background:#3b82f614;border:1px solid #3b82f633;border-radius:8px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.ollama-icon{font-size:20px}.ollama-notice strong{color:#93c5fd;margin-bottom:2px;font-size:.85rem;display:block}.ollama-notice p{color:var(--text-muted,#94a3b8);margin:0;font-size:.78rem;line-height:1.4}.model-modal-footer{border-top:1px solid var(--border-color,#ffffff14);background:#ffffff05;justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px;display:flex}.btn-modal-cancel{color:var(--text-muted,#94a3b8);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;padding:9px 18px;font-size:.88rem;font-weight:500;transition:all .15s}.btn-modal-cancel:hover{color:#fff;background:#ffffff1a}.btn-modal-save{background:var(--primary,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 22px;font-size:.88rem;font-weight:600;transition:all .15s;box-shadow:0 4px 12px #3b82f64d}.btn-modal-save:hover:not(:disabled){background:#2563eb;transform:translateY(-1px)}.btn-modal-save:disabled{opacity:.6;cursor:not-allowed}.model-cards-subgrid{grid-template-columns:repeat(2,1fr);gap:10px;max-height:240px;margin-top:4px;padding:4px 2px;display:grid;overflow-y:auto}@media (width<=640px){.model-cards-subgrid{grid-template-columns:1fr}}.model-subcard{cursor:pointer;background:#0003;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;transition:all .15s;display:flex}.model-subcard:hover{background:#ffffff0a;border-color:#3b82f64d}.model-subcard.active{border-color:var(--primary,#3b82f6);box-shadow:0 0 0 1px var(--primary,#3b82f6);background:#3b82f61f}.model-subcard-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.model-subcard-name{color:#fff;font-size:.82rem;font-weight:600;line-height:1.25}.model-subcard-badge{color:#fbbf24;white-space:nowrap;background:#f59e0b2e;border-radius:4px;padding:1px 6px;font-size:.68rem;font-weight:600}.model-subcard-desc{color:var(--text-muted,#94a3b8);margin:0;font-size:.74rem;line-height:1.35}.model-subcard-meta{flex-wrap:wrap;gap:5px;margin-top:auto;display:flex}.meta-tag{border-radius:4px;padding:2px 6px;font-size:.68rem;font-weight:500}.meta-tag.speed{color:#4ade80;background:#22c55e1f}.meta-tag.context{color:#38bdf8;background:#38bdf81f}.meta-tag.category{color:#c084fc;background:#a855f71f}:root{--bg:#0f0f10;--sidebar-bg:#0f0f10;--surface:#17171a;--surface-card:#1c1c1e;--surface-input:#1e1e20;--surface-hover:#232326;--text:#f4f4f5;--text-secondary:#9f9fa9;--text-muted:#71717a;--border:#27272a;--border-strong:#2e2e32;--accent:#f4f4f5;--accent-fg:#111113;--accent-hover:#e4e4e7;--danger-bg:#1c1212;--danger-border:#3a1f1f;--radius-sm:8px;--radius-md:10px;--shadow-sm:0 1px 2px #0006}*{box-sizing:border-box}html,body{height:100%}.app{background:var(--bg);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;flex-direction:column;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;display:flex}.header{background:var(--bg);border-bottom:1px solid var(--border);z-index:20;flex-shrink:0;height:46px;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:none;height:100%;padding:0 14px;display:flex}.header-left{align-items:center;gap:10px;min-width:0;display:flex}.sidebar-toggle{border:1px solid var(--border);background:var(--surface-card);width:30px;height:30px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;place-items:center;display:grid}.sidebar-toggle:hover{color:var(--text);border-color:var(--border-strong)}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{background:var(--surface-card);border:1px solid var(--border);width:28px;height:28px;color:var(--text);border-radius:7px;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid}.brand-text{flex-direction:column;line-height:1.1;display:flex}.brand-name{letter-spacing:-.02em;font-size:13.5px;font-weight:600}.brand-sub{color:var(--text-muted);font-size:11px;font-weight:500}.header-status{border:1px solid var(--border);color:var(--text-secondary);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:4px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.status-dot{background:#52525b;border-radius:50%;width:6px;height:6px}.status-dot.connected{background:#22c55e}.status-dot.disconnected{background:#ef4444}.status-dot.checking{background:#a1a1aa}.app-layout{background:var(--bg);flex:1;min-height:0;display:flex}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:14px;width:240px;height:calc(100vh - 46px);padding:14px 10px;display:flex;position:sticky;top:46px;overflow:auto}.new-chat-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-card);width:100%;color:var(--text);cursor:pointer;align-items:center;gap:7px;padding:8px 10px;font-size:13px;font-weight:500;display:inline-flex}.new-chat-btn:hover{background:var(--surface-hover);border-color:var(--border-strong)}.sidebar-nav{flex-direction:column;gap:4px;display:flex}.side-nav-item{border-radius:var(--radius-sm);width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:500;display:flex}.side-nav-item:hover,.side-nav-item.active{background:var(--surface-card);color:var(--text);border-color:var(--border)}.sidebar-section{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:6px;display:flex}.sidebar-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);padding:0 4px;font-size:11px;font-weight:600}.recent-empty{color:var(--text-muted);padding:4px;font-size:12.5px}.recent-list{flex-direction:column;gap:4px;display:flex}.recent-item{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex;overflow:hidden}.recent-item:hover{background:var(--surface-hover);color:var(--text)}.recent-item svg{opacity:.7;flex-shrink:0}.sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:10px}.sidebar-hint{color:var(--text-muted);padding:0 4px;font-size:11px;line-height:1.4}.sidebar-backdrop{display:none}.main-column{background:var(--bg);flex-direction:column;flex:1;min-width:0;display:flex}.main{background:var(--bg);flex:1;min-height:0;display:flex}.workspace{flex-direction:column;width:100%;min-height:0;display:flex}.workspace-chat{flex-direction:column;flex:1;width:100%;max-width:760px;min-height:calc(100vh - 46px);margin:0 auto;display:flex}.messages-area{flex-direction:column;flex:1;padding:0 16px;display:flex;overflow:auto}.welcome{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-height:38vh;padding:32px 16px 24px;display:flex}.welcome-title{letter-spacing:-.025em;margin:0;font-size:22px;font-weight:600;line-height:1.25}.welcome-subtitle{color:var(--text-secondary);max-width:520px;margin:0;font-size:13.5px;line-height:1.55}.suggestion-chips{flex-wrap:wrap;justify-content:center;gap:8px;max-width:560px;margin-top:14px;display:flex}.chip{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:8px 12px;font-size:13px;font-weight:500}.chip:hover{border-color:var(--border-strong);color:var(--text);background:var(--surface-hover)}.chip:disabled{opacity:.45;cursor:not-allowed}.messages{flex-direction:column;gap:14px;width:100%;max-width:760px;margin:0 auto;padding:18px 0 8px;display:flex}.msg-row{gap:10px;max-width:100%;display:flex}.msg-row.user{justify-content:flex-end}.msg-row.assistant{justify-content:flex-start;align-items:flex-start}.assistant-avatar{background:var(--surface-card);border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);border-radius:7px;flex-shrink:0;place-items:center;margin-top:2px;font-size:11px;font-weight:600;display:grid}.bubble{border-radius:var(--radius-md);word-wrap:break-word;white-space:pre-wrap;max-width:78%;padding:10px 12px;font-size:13.5px;line-height:1.6}.bubble-user{background:var(--accent);color:var(--accent-fg);border:1px solid var(--accent);font-weight:500}.bubble-assistant{background:var(--surface-card);border:1px solid var(--border);color:var(--text);min-width:200px;padding:11px 13px}.assistant-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:5px;font-size:11px;font-weight:600}.bubble-content{color:#e4e4e7}.thinking{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.dots{gap:3px;display:inline-flex}.dots i{background:#71717a;border-radius:50%;width:5px;height:5px;animation:1.1s infinite dot}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes dot{0%,80%,to{opacity:.35}40%{opacity:1}}.meta-badges{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.badge{border:1px solid var(--border);background:var(--surface-input);color:var(--text-secondary);border-radius:6px;align-items:center;padding:3px 7px;font-size:11px;font-weight:500;display:inline-flex}.badge-model{color:var(--text-muted);background:0 0}.msg-row.assistant.error .bubble-assistant{background:var(--danger-bg);border-color:var(--danger-border);color:#fca5a5}.error-banner{background:var(--danger-bg);border:1px solid var(--danger-border);color:#fca5a5;border-radius:var(--radius-sm);margin:0;padding:8px 10px;font-size:12.5px}.composer-wrap{background:linear-gradient(to top, var(--bg) 78%, transparent);flex-direction:column;gap:6px;padding:10px 16px 14px;display:flex;position:sticky;bottom:0}.composer{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-card);align-items:center;gap:8px;width:100%;max-width:760px;margin:0 auto;padding:6px 6px 6px 14px;display:flex}.composer:focus-within{border-color:var(--border-strong)}.composer-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:13.5px}.composer-input::placeholder{color:var(--text-muted)}.composer-input:disabled{opacity:.6}.composer-send{border:1px solid var(--accent);background:var(--accent);width:34px;height:34px;color:var(--accent-fg);cursor:pointer;border-radius:7px;flex-shrink:0;place-items:center;display:grid}.composer-send:hover:not(:disabled){background:var(--accent-hover)}.composer-send:disabled{background:var(--surface-hover);border-color:var(--border);color:#52525b;cursor:not-allowed}.send-spinner{border:2px solid #00000026;border-top-color:var(--accent-fg);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.composer-hint{width:100%;max-width:760px;color:var(--text-muted);margin:0 auto;padding:0 2px;font-size:11px}.composer--listening{background:var(--surface-card);border-color:#3f3f46}.composer--speaking{border-color:var(--border-strong)}.composer-mic{border:1px solid var(--border);background:var(--surface-card);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;border-radius:7px;flex-shrink:0;place-items:center;display:grid}.composer-mic:hover:not(:disabled){border-color:var(--border-strong);color:var(--text);background:var(--surface-hover)}.composer-mic:disabled{opacity:.45;cursor:not-allowed}.composer-mic.mic--listening{color:#f4f4f5;background:#1a1a1d;border-color:#52525b}.composer-mic.mic--stop{background:var(--surface-hover);border-color:var(--border-strong);color:var(--text)}.composer-mic.mic--active{color:var(--text-secondary)}.voice-listening-indicator{width:100%;max-width:760px;color:var(--text-secondary);align-items:center;gap:6px;margin:0 auto;padding:0 2px;font-size:11px;font-weight:500;display:flex}.voice-dot{background:#ef4444;border-radius:50%;flex-shrink:0;width:7px;height:7px}.voice-error{font-size:12px}.voice-unsupported{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-card);width:100%;max-width:760px;color:var(--text-muted);margin:0 auto;padding:7px 9px;font-size:11.5px;line-height:1.5}.workspace-interview{gap:14px;width:100%;max-width:720px;margin:0 auto;padding:22px 18px 28px}.workspace-head{border-bottom:1px solid var(--border);align-items:baseline;gap:10px;padding-bottom:10px;display:flex}.workspace-head h2{letter-spacing:-.02em;margin:0;font-size:15px;font-weight:600}.workspace-head span{color:var(--text-muted);font-size:12.5px}.workspace-footer{flex-wrap:wrap;gap:8px;padding-top:4px;display:flex}.workspace-footer .btn-text,.workspace-footer .btn-secondary{font-size:13px}.workspace-session{gap:12px;max-width:780px}.interview-schedule{flex-direction:column;gap:14px;padding:0;display:flex}.interview-schedule-header h2{letter-spacing:-.02em;margin:0;font-size:16px;font-weight:600}.interview-schedule-header p{color:var(--text-muted);margin:4px 0 0;font-size:12.5px}.interview-form{flex-direction:column;gap:12px;display:flex}.form-row{flex-direction:column;gap:6px;display:flex}.form-row label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);font-size:11px;font-weight:600}.form-row input,.form-row textarea{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-card);color:var(--text);outline:none;padding:9px 11px;font-family:inherit;font-size:13.5px}.form-row input:focus,.form-row textarea:focus{border-color:var(--border-strong)}.form-row textarea{resize:vertical;min-height:78px}.form-grid-3{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.resume-upload-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.file-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;padding:6px 10px;font-size:12px;font-weight:500}.file-btn:hover{border-color:var(--border-strong);color:var(--text)}.file-hint{color:var(--text-muted);font-size:11.5px}.form-actions{justify-content:flex-end;gap:8px;display:flex}.btn-primary{border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:var(--accent-fg);cursor:pointer;padding:8px 14px;font-size:13px;font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;padding:8px 12px;font-size:13px;font-weight:500}.btn-secondary:hover{border-color:var(--border-strong);color:var(--text);background:var(--surface-card)}.btn-secondary.small{padding:5px 9px;font-size:12px}.btn-text{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:7px 10px;font-size:13px;font-weight:500}.btn-text:hover{color:var(--text)}.btn-danger{border-radius:var(--radius-sm);border:1px solid var(--danger-border);color:#fca5a5;cursor:pointer;background:0 0;padding:7px 10px;font-size:13px;font-weight:500}.btn-danger:hover{background:var(--danger-bg)}.interview-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);flex-direction:column;gap:10px;padding:14px;display:flex}.interview-card.loading{text-align:center;color:var(--text-muted);padding:28px}.interview-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.interview-badge{background:var(--surface-input);border:1px solid var(--border);color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;border-radius:4px;padding:3px 7px;font-size:10.5px;font-weight:600}.status-pill{border:1px solid var(--border);background:var(--surface-input);color:var(--text-secondary);text-transform:capitalize;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:500}.status-pill.small{font-size:10.5px}.status-pill.active{color:#86efac;background:#0f1a14;border-color:#1a2e1f}.status-pill.completed{color:#a1a1aa;background:#15151a}.status-pill.cancelled{background:var(--danger-bg);color:#fca5a5}.interview-card-body{flex-direction:column;gap:6px;display:flex}.kv{justify-content:space-between;gap:12px;font-size:13px;display:flex}.kv span{color:var(--text-muted)}.kv strong{color:var(--text);font-weight:500}.kv .cap{text-transform:capitalize}.interview-lobby{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:2px 0;display:flex}.lobby-header{flex-direction:column;align-items:center;gap:2px;display:flex}.lobby-brand{letter-spacing:.08em;color:var(--text-muted);font-size:11px;font-weight:600}.lobby-title{letter-spacing:-.02em;font-size:15px;font-weight:600}.lobby-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);text-align:left;flex-direction:column;gap:10px;width:100%;max-width:520px;padding:14px;display:flex}.lobby-card-head{justify-content:space-between;align-items:center;display:flex}.lobby-card-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}.lobby-scheduled-detail{border-radius:var(--radius-sm);background:var(--surface-input);border:1px solid var(--border);text-align:center;flex-direction:column;gap:3px;padding:10px;display:flex}.lobby-scheduled-detail p{color:var(--text-muted);margin:0;font-size:11.5px}.lobby-scheduled-detail strong{font-size:13px;font-weight:600}.lobby-scheduled-detail span{color:var(--text-muted);font-size:11px}.countdown-block{flex-direction:column;align-items:center;gap:6px;display:flex}.countdown{border-radius:var(--radius-sm);background:var(--surface-input);border:1px solid var(--border);flex-direction:column;align-items:center;gap:2px;padding:8px 14px;display:flex}.countdown-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:600}.countdown-time{font-family:ui-monospace,monospace;font-size:17px;font-weight:600}.lobby-kv{justify-content:space-between;gap:12px;font-size:13px;display:flex}.lobby-kv span{color:var(--text-muted)}.lobby-kv strong{font-weight:500}.lobby-window-info{border-radius:var(--radius-sm);background:var(--surface-input);border:1px solid var(--border);color:var(--text-secondary);text-align:center;padding:9px 10px;font-size:12.5px}.lobby-join{width:100%;padding:9px;font-size:13.5px;font-weight:600}.lobby-success{border-radius:var(--radius-sm);color:#86efac;text-align:center;background:#0f1a14;border:1px solid #1a2e1f;padding:8px 10px;font-size:12.5px}.question-count-selector{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-input);flex-direction:column;gap:8px;padding:10px;display:flex}.selector-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);font-size:11px;font-weight:600}.selector-options{flex-wrap:wrap;gap:6px;display:flex}.selector-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-card);min-width:60px;color:var(--text-secondary);cursor:pointer;flex-direction:column;flex:1;align-items:center;gap:1px;padding:7px 8px;display:inline-flex}.selector-btn:hover{border-color:var(--border-strong);color:var(--text)}.selector-btn.active{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.selector-value{font-size:15px;font-weight:600}.selector-text{font-size:11px}.selector-badge{border:1px solid var(--border);color:var(--text-muted);border-radius:999px;margin-top:2px;padding:2px 5px;font-size:9px;font-weight:600}.selector-btn.active .selector-badge{color:var(--accent-fg);background:#00000014}.selector-hint{color:var(--text-muted);text-align:center;margin:0;font-size:11px}.lobby-actions{justify-content:center;gap:8px;display:flex}.lobby-meta{color:var(--text-muted);text-align:center;flex-direction:column;gap:3px;font-size:11px;display:flex}.interview-list-wrapper{flex:1;overflow:auto}.interview-list{flex-direction:column;gap:10px;display:flex}.interview-list-header{justify-content:space-between;align-items:center;display:flex}.interview-list-header h3{margin:0;font-size:14px;font-weight:600}.interview-list-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.interview-list-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);cursor:pointer;padding:11px}.interview-list-card:hover{border-color:var(--border-strong);background:var(--surface-hover)}.list-card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.list-card-sub{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:12.5px;overflow:hidden}.list-card-meta{color:var(--text-muted);font-size:11.5px}.list-card-id{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:10px;overflow:hidden}.empty{text-align:center;color:var(--text-muted);padding:18px;font-size:13px}.markdown{color:#e4e4e7;white-space:normal;overflow-wrap:break-word;flex-direction:column;gap:8px;font-size:13.5px;line-height:1.6;display:flex}.markdown .md-h1{color:var(--text);margin:4px 0 2px;font-size:15px;font-weight:600}.markdown .md-h2{color:var(--text);margin:6px 0 2px;font-size:14px;font-weight:600}.markdown .md-h3{color:var(--text);margin:6px 0 2px;font-size:13.5px;font-weight:600}.markdown .md-p{color:#d4d4d8;margin:0;line-height:1.6}.markdown strong{color:var(--text);font-weight:600}.markdown em{color:#d4d4d8;font-style:italic}.markdown .md-link{color:#a1a1aa;text-underline-offset:2px;text-decoration:underline}.markdown .md-link:hover{color:var(--text)}.markdown .md-ul,.markdown .md-ol{flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}.markdown .md-li{color:#d4d4d8;line-height:1.55}.markdown .md-li::marker{color:#71717a}.markdown .md-inline-code{border:1px solid var(--border);color:#e4e4e7;background:#18181b;border-radius:4px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:12px}.markdown .md-pre{border:1px solid var(--border);border-radius:var(--radius-sm);background:#18181b;margin:2px 0;padding:10px 12px;overflow:auto}.markdown .md-pre .md-code-block{color:#e4e4e7;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,monospace;font-size:12px;line-height:1.55}.interview-session{flex-direction:column;gap:12px;padding:0;display:flex}.interview-session.loading,.interview-session.error{text-align:center;min-height:260px;color:var(--text-muted);justify-content:center;padding:24px}.session-header{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.session-brand{letter-spacing:.1em;color:var(--text-muted);font-size:10px;font-weight:600}.session-title{letter-spacing:-.02em;font-size:14px;font-weight:600}.session-sub{color:var(--text-muted);font-size:12.5px}.session-progress-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);flex-direction:column;gap:7px;padding:10px 12px;display:flex}.session-progress-head{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;justify-content:space-between;font-size:11px;font-weight:500;display:flex}.session-progress-bar{background:var(--surface-input);border:1px solid var(--border);border-radius:999px;height:6px;overflow:hidden}.session-progress-fill{background:var(--text);height:100%;transition:width .3s}.session-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.topic-pill{background:var(--surface-input);border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:500}.diff-pill{border:1px solid var(--border);background:var(--surface-input);color:var(--text-secondary);text-transform:capitalize;border-radius:999px;padding:2px 7px;font-size:10.5px;font-weight:500}.question-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);padding:14px}.question-label{letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:6px;margin-bottom:7px;font-size:11px;font-weight:600;display:flex}.question-text{color:var(--text);white-space:pre-wrap;font-size:14.5px;font-weight:500;line-height:1.55}.answer-area{flex-direction:column;gap:7px;display:flex}.answer-label{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.answer-input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-card);width:100%;color:var(--text);resize:vertical;outline:none;min-height:96px;padding:9px 11px;font-family:inherit;font-size:13.5px;line-height:1.6}.answer-input:focus{border-color:var(--border-strong)}.answer-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.answer-hint{color:var(--text-muted);margin:0;font-size:11px;line-height:1.5}.report-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);flex-direction:column;gap:12px;padding:16px;display:flex}.report-card h3{margin:0;font-size:14px;font-weight:600}.report-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.report-score{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-input);flex-direction:column;align-items:center;gap:2px;padding:9px;display:flex}.report-score span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px;font-weight:500}.report-score strong{font-size:15px;font-weight:600}.report-row{justify-content:center;display:flex}.rec-pill{border:1px solid var(--border);background:var(--surface-input);color:var(--text-secondary);text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.rec-pill.strong{color:#86efac;background:#0f1a14;border-color:#1a2e1f}.rec-pill.needs-improvement{background:var(--danger-bg);color:#fca5a5}.report-summary{color:#d4d4d8;margin:0;font-size:13px;line-height:1.6}.report-section h4{letter-spacing:.04em;text-transform:uppercase;margin:0 0 5px;font-size:11px;font-weight:600}.report-section ul{color:#d4d4d8;flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:13px;line-height:1.5;display:flex}.topics-tags{flex-wrap:wrap;gap:6px;display:flex}.topic-tag{background:var(--surface-input);border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;padding:3px 7px;font-size:11px}.report-disclaimer{color:var(--text-muted);text-align:center;border-top:1px solid var(--border);margin:0;padding-top:8px;font-size:11px}.report-actions{justify-content:center;display:flex}.interview-session.setup{padding:0}.setup-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);flex-direction:column;gap:10px;padding:14px;display:flex}.setup-card h3{margin:0;font-size:14px;font-weight:600}.setup-desc{color:var(--text-muted);margin:0;font-size:12.5px}.setup-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.setup-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-input);flex-direction:column;gap:5px;padding:9px;display:flex}.setup-item.granted{background:#0f1a14;border-color:#1a2e1f}.setup-item.denied{border-color:var(--danger-border);background:var(--danger-bg)}.setup-item-head{align-items:center;gap:7px;display:flex}.setup-icon{background:var(--surface-card);border:1px solid var(--border);width:26px;height:26px;color:var(--text-muted);border-radius:6px;flex-shrink:0;place-items:center;display:grid}.setup-item.granted .setup-icon{color:#22c55e;background:#0f1a14;border-color:#1a2e1f}.setup-item.denied .setup-icon{color:#fca5a5}.setup-label{font-size:12.5px;font-weight:600}.setup-badge{border:1px solid var(--border);background:var(--surface-card);color:var(--text-secondary);border-radius:999px;margin-left:auto;padding:2px 7px;font-size:10px;font-weight:600}.setup-badge.granted{color:#86efac;background:#0f1a14;border-color:#1a2e1f}.setup-badge.denied{background:var(--danger-bg);color:#fca5a5}.setup-note{color:var(--text-muted);margin:0;font-size:11px}.setup-requirements{border-radius:var(--radius-sm);background:var(--surface-input);border:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;gap:8px;padding:8px 10px;font-size:11.5px;display:flex}.setup-requirements strong{color:var(--text);font-weight:600}.req-ok{color:#86efac;font-weight:500}.req-warn{color:#eab308;font-weight:500}.setup-preview{border:1px solid var(--border);border-radius:var(--radius-sm);background:#0a0a0b;position:relative;overflow:hidden}.setup-video{object-fit:cover;width:100%;height:180px;display:block}.setup-preview-label{color:#fff;background:#0009;border-radius:4px;padding:3px 6px;font-size:11px;position:absolute;bottom:6px;left:6px}.setup-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.setup-fallback{border-radius:var(--radius-sm);color:#fde68a;background:#eab30814;border:1px solid #eab30833;padding:8px 10px;font-size:12px}.setup-hint{color:var(--text-muted);text-align:center;margin:0;font-size:11px}.voice-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.camera-preview{border:1px solid var(--border);border-radius:var(--radius-sm);background:#0a0a0b;flex-shrink:0;width:120px;height:76px;position:relative;overflow:hidden}.camera-video{object-fit:cover;width:100%;height:100%}.camera-placeholder{color:var(--text-muted);background:#0a0a0b;place-items:center;font-size:11px;display:grid;position:absolute;inset:0}.camera-label{color:#fff;background:#0009;border-radius:4px;padding:2px 5px;font-size:9px;font-weight:600;position:absolute;bottom:3px;left:3px}.voice-state{color:var(--text-muted);align-items:center;gap:5px;font-size:11px;display:inline-flex}.voice-state .dot{background:#52525b;border-radius:50%;width:6px;height:6px}.voice-state .dot.speaking{background:#22c55e}.voice-state .dot.listening{background:#ef4444}.proctor-bar{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;font-size:11.5px;display:flex}.proctor-title{color:var(--text);font-size:11px;font-weight:600}.proctor-dot.active{color:#22c55e}.proctor-dot.inactive{color:#52525b}.proctor-warnings{color:#eab308;margin-left:auto;font-size:11px;font-weight:500}.proctor-warning{border-radius:var(--radius-sm);color:#fde68a;text-align:center;background:#eab30814;border:1px solid #eab30833;padding:8px 10px;font-size:12px}.speaking-badge{background:var(--surface-input);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;margin-left:6px;padding:2px 6px;font-size:10px}.voice-controls{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);flex-direction:column;gap:8px;padding:10px;display:flex}.voice-start{justify-content:center;align-items:center;gap:7px;padding:8px 12px;font-size:13px;display:inline-flex}.listening-box{border:1px solid var(--border);background:var(--surface-input);border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:9px;display:flex}.listening-indicator{color:var(--text);align-items:center;gap:7px;font-size:12.5px;font-weight:600;display:flex}.pulse-dot{background:#ef4444;border-radius:50%;width:7px;height:7px}.elapsed{color:var(--text-secondary);margin-left:auto;font-family:ui-monospace,monospace;font-size:12px;font-weight:600}.live-transcript-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.live-transcript{border-radius:var(--radius-sm);background:var(--surface-card);border:1px solid var(--border);color:var(--text);white-space:pre-wrap;min-height:34px;padding:7px 9px;font-size:13px}.transcript-review{border-radius:var(--radius-sm);background:var(--surface-input);border:1px solid var(--border);padding:7px 9px}.transcript-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:10px;font-weight:600}.transcript-text{color:var(--text);white-space:pre-wrap;font-size:13px}.interview-phase{border-radius:var(--radius-sm);background:var(--surface-input);border:1px solid var(--border);text-align:center;color:var(--text-muted);padding:6px 9px;font-size:12px}.timer-bar{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 10px;font-size:11.5px;display:flex}.timer-remaining strong{color:var(--text);font-family:ui-monospace,monospace;font-size:13px}.timer-elapsed strong{color:var(--text-secondary);font-family:ui-monospace,monospace;font-size:13px}.timer-warn{color:#eab308;font-weight:600}.timer-expired{color:#fca5a5;font-weight:600}.question-text.placeholder{color:var(--text-muted);align-items:center;gap:6px;font-size:13.5px;display:flex}.preparing-dot{color:var(--text-muted);font-size:8px}.preparing-dot.speaking{color:#22c55e}.question-speaking-hint{color:var(--text-muted);align-items:center;gap:5px;margin-top:6px;font-size:11.5px;display:flex}@media (width<=860px){.sidebar{z-index:30;height:calc(100vh - 46px);transition:transform .18s;position:fixed;top:46px;left:0;transform:translate(-100%);box-shadow:2px 0 12px #0006}.sidebar.open{transform:translate(0)}.sidebar-backdrop{z-index:29;background:#00000059;border:none;display:block;position:fixed;inset:46px 0 0}.bubble{max-width:86%}.form-grid-3{grid-template-columns:1fr}}@media (width<=520px){.brand-sub{display:none}.welcome{padding:20px 12px 16px}.welcome-title{font-size:19px}.suggestion-chips{gap:6px}.chip{padding:7px 10px;font-size:12.5px}.messages{padding:10px 0 6px}.composer-wrap{padding:8px 10px 10px}.workspace-interview{padding:14px 12px 18px}.report-grid{grid-template-columns:1fr 1fr}.setup-grid{grid-template-columns:1fr}.camera-preview{width:104px;height:68px}.voice-header{flex-direction:column}}.brand{align-items:center;gap:12px;display:flex}.header .brand-logo{box-shadow:0 0 0 2px #d4af37b3,0 0 16px #a855f7b3,0 0 34px #2dd4bf66,0 6px 14px #00000080,inset 0 3px 6px #ffffff40}.welcome>.brand-logo{margin:0 auto 22px;display:block;box-shadow:0 0 0 3px #d4af37bf,0 0 28px #a855f7bf,0 0 70px #2dd4bf73,0 18px 34px #0009,inset 0 -8px 14px #0006,inset 0 6px 12px #ffffff47}.msg-row{align-items:flex-start;gap:10px;display:flex}.msg-row.user{flex-direction:row;justify-content:flex-end}.msg-row.assistant{flex-direction:row;justify-content:flex-start}.msg-row .brand-logo,.msg-row .user-avatar{margin-top:2px}.msg-row.assistant .bubble-assistant{min-width:0}.lobby-brand,.session-brand{align-items:center;gap:10px;display:inline-flex}.sidebar-search-box{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;margin:6px 0 10px;padding:0 8px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.sidebar-search-box:focus-within{border-color:#6366f1;box-shadow:0 0 0 2px #6366f133}.sidebar-search-icon{color:var(--text-muted);flex-shrink:0;margin-right:6px}.sidebar-search-input{width:100%;color:var(--text);background:0 0;border:none;outline:none;padding:7px 0;font-family:inherit;font-size:12px}.sidebar-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:12px}.sidebar-search-clear:hover{color:var(--text);background:var(--surface-hover)}.sidebar-matches-count{color:var(--text-muted);padding:0 4px 6px;font-size:10.5px}.recent-item-container{border-radius:7px;align-items:center;transition:background .15s;display:flex;position:relative}.recent-item{min-width:0;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex:1;justify-content:space-between;align-items:center;padding:6px 8px;font-size:12.5px;display:flex}.recent-item:hover,.recent-item-container:hover .recent-item{background:var(--surface-hover);color:var(--text)}.recent-item.active{background:var(--surface-card);color:var(--text);border-color:var(--border)}.recent-item-main{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.recent-item-title{white-space:nowrap;text-overflow:ellipsis;text-align:left;overflow:hidden}.recent-actions{opacity:0;flex-shrink:0;align-items:center;gap:2px;margin-left:4px;transition:opacity .15s;display:flex}.recent-item-container:hover .recent-actions,.recent-item.active .recent-actions{opacity:1}.recent-action-btn{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex}.recent-action-btn:hover{background:var(--surface-card);color:var(--text)}.recent-action-btn.delete-btn:hover{color:#f87171;background:#ef444426}.recent-action-btn.pdf-btn:hover{color:#818cf8;background:#6366f126}.recent-action-btn.edit-btn:hover{color:#38bdf8;background:#38bdf826}.recent-edit-wrap{background:var(--surface-card);border:1px solid #6366f1;border-radius:7px;align-items:center;gap:4px;width:100%;padding:4px 6px;display:flex}.recent-edit-input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:12px}.recent-edit-btn{cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;display:flex}.recent-edit-save{color:#fff;background:#22c55e}.recent-edit-cancel{color:#fff;background:#ef4444}.recent-delete-confirm{color:#fca5a5;background:#ef444426;border:1px solid #ef444459;border-radius:7px;justify-content:space-between;align-items:center;width:100%;padding:4px 8px;font-size:11.5px;display:flex}.recent-delete-confirm-btns{gap:4px;display:flex}.delete-confirm-yes{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:4px;padding:2px 7px;font-size:11px}.delete-confirm-no{color:#fff;cursor:pointer;background:#3f3f46;border:none;border-radius:4px;padding:2px 7px;font-size:11px}.header-right{align-items:center;gap:10px;display:flex}.header-export-btn{color:#c7d2fe;cursor:pointer;background:#6366f11f;border:1px solid #6366f14d;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:500;transition:all .15s;display:flex}.header-export-btn:hover{color:#fff;background:#6366f138;border-color:#6366f1}.header-user-badge{background:var(--surface-card);border:1px solid var(--border);border-radius:999px;align-items:center;gap:8px;padding:3px 8px;font-size:12px;display:flex}.user-mini-avatar{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#3b82f6 100%);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:10px;font-weight:700;display:flex}.user-badge-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:100px;font-weight:600;overflow:hidden}.header-logout-btn{border:1px solid var(--border);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex}.header-logout-btn:hover{color:#f87171;background:#ef444426;border-color:#ef444459}.msg-actions-row{border-top:1px solid #ffffff0f;align-items:center;gap:6px;margin-top:10px;padding-top:8px;display:flex}.msg-action-pill{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:#ffffff0a;border-radius:6px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:500;transition:all .15s;display:flex}.msg-action-pill:hover{color:var(--text);border-color:var(--border-strong);background:#ffffff17}.msg-action-pill.copied{color:#22c55e;border-color:#22c55e66}.msg-action-pill.speaking-active{color:#4ade80;background:#22c55e29;border-color:#22c55e80;animation:1.5s infinite pulseSpeaking}@keyframes pulseSpeaking{0%,to{box-shadow:0 0 #4ade8059}50%{box-shadow:0 0 0 5px #4ade8000}}.header-model-btn{color:var(--text);cursor:pointer;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff24;border-radius:8px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;transition:all .2s;display:inline-flex}.header-model-btn:hover{color:#fff;background:#3b82f624;border-color:#3b82f673;transform:translateY(-1px)}.model-btn-label{text-overflow:ellipsis;white-space:nowrap;max-width:170px;overflow:hidden}.voice-muted-bar{color:#fde68a;background:#f59e0b14;border:1px solid #f59e0b38;border-radius:8px;justify-content:space-between;align-items:center;width:100%;max-width:760px;margin:0 auto;padding:5px 12px;font-size:12px;animation:.2s ease-out fadeIn;display:flex}.voice-muted-hint{color:#cbd5e1;font-size:11.5px}.btn-reexplain-chip{color:#fef08a;cursor:pointer;background:#f59e0b2e;border:1px solid #f59e0b66;border-radius:6px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;transition:all .15s;display:inline-flex}.btn-reexplain-chip:hover{color:#fff;background:#f59e0b4d;border-color:#f59e0b99}.composer-add-files-btn{border:1px solid var(--border);background:var(--surface-card);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;border-radius:8px;flex-shrink:0;place-items:center;transition:all .18s cubic-bezier(.16,1,.3,1);display:grid;position:relative}.composer-add-files-btn:hover:not(:disabled){color:#60a5fa;background:#3b82f61f;border-color:#3b82f6;transform:translateY(-1px);box-shadow:0 2px 8px #3b82f640}.composer-add-files-btn:active:not(:disabled){transform:translateY(0)}.composer-add-files-btn:disabled{opacity:.45;cursor:not-allowed}.composer-add-files-btn svg{transition:transform .2s}.composer-add-files-btn:hover:not(:disabled) svg{transform:rotate(90deg)scale(1.08)}.composer--drag-active{animation:1.5s infinite alternate pulseComposer;background:#3b82f614!important;border-color:#3b82f6!important;box-shadow:0 0 0 2px #3b82f64d,0 4px 16px #3b82f633!important}@keyframes pulseComposer{0%{border-color:#3b82f6}to{border-color:#60a5fa}}.attachment-tray{scrollbar-width:thin;scrollbar-color:var(--border) transparent;align-items:center;gap:8px;width:100%;max-width:760px;margin:0 auto;padding:6px 4px 8px;animation:.22s cubic-bezier(.16,1,.3,1) slideTrayUp;display:flex;overflow-x:auto}.attachment-tray::-webkit-scrollbar{height:4px}.attachment-tray::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}@keyframes slideTrayUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.attachment-chip{background:var(--surface-card);border:1px solid var(--border-strong);color:var(--text);border-radius:9px;flex-shrink:0;align-items:center;gap:8px;max-width:240px;padding:5px 8px 5px 6px;font-size:12px;transition:all .15s;display:inline-flex;box-shadow:0 2px 6px #00000040}.attachment-chip:hover{background:#ffffff0d;border-color:#3b82f6}.attachment-chip.uploading{color:#93c5fd;background:#3b82f614;border-color:#3b82f666}.att-chip-thumb{object-fit:cover;border:1px solid #ffffff1a;border-radius:5px;flex-shrink:0;width:28px;height:28px}.att-chip-icon{background:#ffffff0d;border-radius:6px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:15px;display:grid}.att-chip-info{flex-direction:column;min-width:0;display:flex;overflow:hidden}.att-chip-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;line-height:1.25;overflow:hidden}.att-chip-meta{color:var(--text-muted);white-space:nowrap;letter-spacing:.02em;font-size:10px}.att-chip-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;place-items:center;width:20px;height:20px;margin-left:2px;font-size:11px;transition:all .15s;display:grid}.att-chip-remove:hover{color:#ef4444;background:#ef44442e}.att-spinner{border:2px solid #3b82f633;border-top-color:#60a5fa;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin}.att-chip-uploading-text{color:#93c5fd;white-space:nowrap;font-size:11.5px}.attachment-add-more{border:1px dashed var(--border-strong);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;flex-shrink:0;align-items:center;gap:4px;padding:6px 10px;font-size:11.5px;font-weight:500;transition:all .15s;display:inline-flex}.attachment-add-more:hover{color:#60a5fa;background:#3b82f60f;border-color:#3b82f6}.msg-attachments-grid{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.msg-attachment-pill{color:#111113;background:#00000014;border:1px solid #00000026;border-radius:8px;align-items:center;gap:8px;max-width:260px;padding:6px 10px 6px 6px;display:inline-flex;box-shadow:0 1px 3px #0000000d}.msg-att-thumb{object-fit:cover;border:1px solid #0000001a;border-radius:6px;flex-shrink:0;width:32px;height:32px}.msg-att-icon{background:#0000000f;border-radius:6px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:16px;display:grid}.msg-att-details{flex-direction:column;min-width:0;display:flex;overflow:hidden}.msg-att-filename{white-space:nowrap;text-overflow:ellipsis;color:#111113;font-size:12px;font-weight:600;line-height:1.25;overflow:hidden}.msg-att-meta{color:#111113a6;white-space:nowrap;font-size:10px;font-weight:500}.msg-user-text{word-break:break-word;font-weight:450;line-height:1.55}.pdf-action-banner{background:linear-gradient(135deg,#ef444414 0%,#3b82f614 100%);border:1px solid #ef444447;border-radius:10px;margin-bottom:14px;animation:.3s cubic-bezier(.16,1,.3,1) fadeInPdf;overflow:hidden;box-shadow:0 4px 14px #0003}@keyframes fadeInPdf{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.pdf-action-banner-inner{align-items:center;gap:12px;padding:12px 14px;display:flex}.pdf-action-icon{color:#f87171;background:#ef444426;border:1px solid #ef444459;border-radius:9px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.pdf-action-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pdf-action-title{color:#fecaca;letter-spacing:-.01em;font-size:13.5px;font-weight:700}.pdf-action-sub{color:#94a3b8;font-size:11.5px;line-height:1.35}.btn-download-pdf-hero{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:1px solid #f87171;border-radius:8px;flex-shrink:0;align-items:center;gap:7px;padding:8px 14px;font-size:12.5px;font-weight:600;transition:all .18s;display:inline-flex;box-shadow:0 2px 8px #ef444459}.btn-download-pdf-hero:hover{color:#fff;background:linear-gradient(135deg,#f87171 0%,#ef4444 100%);transform:translateY(-1px);box-shadow:0 4px 14px #ef444480}.btn-download-pdf-hero:active{transform:translateY(0)}
