@import "https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700&family=Syne:wght@400;500;600;700;800&display=swap";:root{--bg:#09090b;--bg-2:#111113;--bg-3:#18181b;--bg-4:#222226;--bg-5:#2c2c30;--border:#ffffff0f;--border-strong:#ffffff1c;--amber:#f5a623;--amber-dim:#f5a62314;--amber-mid:#f5a6233d;--green:#4ade80;--red:#ef4444;--text:#e4e0d8;--text-muted:#52525b;--text-dim:#a1a1aa;--font-display:"Syne", sans-serif;--font-mono:"Space Mono", monospace;--r:4px;--r-lg:10px;--shadow:0 8px 32px #0009}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{width:100%;height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-display);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#root{width:100%;height:100%;display:block}.app-root{height:100%}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}textarea{resize:none;font-family:inherit}a{text-decoration:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes dotBounce{0%,to{opacity:.2;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@keyframes timerFlash{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes cursor{0%,to{opacity:1}50%{opacity:0}}.chat-root{height:100vh;animation:.35s fadeIn;display:flex;overflow:hidden}.chat-sidebar{background:var(--bg-2);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:232px;padding:20px 16px;display:flex;overflow-y:auto}.chat-sidebar::-webkit-scrollbar{width:0}.sidebar-logo{font-family:var(--font-mono);color:var(--amber);letter-spacing:.15em;margin-bottom:22px;font-size:12px;font-weight:700}.sidebar-section{margin-bottom:20px}.sidebar-label{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.2em;margin-bottom:8px;font-size:9px}.sidebar-value{color:var(--text);font-size:13px;font-weight:700}.mono{font-family:var(--font-mono);font-size:12px}.topic-badge{background:var(--amber-dim);color:var(--amber);font-family:var(--font-mono);border-radius:var(--r);border:1px solid var(--amber-mid);padding:3px 9px;font-size:10px;display:inline-block}.sidebar-current-q{font-family:var(--font-display);color:var(--text-dim);font-size:13px}.sidebar-qnum{color:var(--amber);margin-right:2px;font-size:24px;font-weight:800}.sidebar-qtotal{color:var(--text-muted);font-size:13px}.sidebar-divider{background:var(--border);height:1px;margin-bottom:20px}.sidebar-action{border-radius:var(--r);border:1px solid var(--border);width:100%;color:var(--text-dim);cursor:pointer;background:0 0;align-items:center;gap:8px;margin-bottom:8px;padding:9px 12px;font-size:12px;transition:all .15s;display:flex}.sidebar-action:hover:not(:disabled){border-color:var(--amber-mid);color:var(--amber);background:var(--amber-dim)}.sidebar-action--warn:hover:not(:disabled){color:var(--red);background:#ef444412;border-color:#ef444459}.sidebar-action:disabled{opacity:.35;cursor:not-allowed}.sidebar-action-badge{font-family:var(--font-mono);color:var(--text-muted);margin-left:auto;font-size:10px}.sidebar-spacer{flex:1}.exit-btn{font-family:var(--font-mono);color:var(--text-muted);text-align:left;padding:8px 4px;font-size:10px;transition:color .15s}.exit-btn:hover{color:var(--text)}.progress-wrap{width:100%}.progress-header{justify-content:space-between;margin-bottom:8px;display:flex}.progress-label{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.2em;font-size:9px}.progress-fraction{font-family:var(--font-mono);color:var(--amber);font-size:10px}.progress-of{color:var(--text-muted)}.progress-track{background:var(--bg-4);border-radius:2px;height:3px;margin-bottom:10px;position:relative;overflow:visible}.progress-fill{background:var(--amber);border-radius:2px;height:100%;transition:width .6s;box-shadow:0 0 8px #f5a62366}.progress-pip{background:var(--bg-4);border:1.5px solid var(--bg-5);border-radius:50%;width:8px;height:8px;transition:all .3s;position:absolute;top:50%;transform:translate(-50%,-50%)}.progress-pip--done{background:var(--amber);border-color:var(--amber)}.progress-steps{justify-content:space-between;display:flex}.progress-step{font-family:var(--font-mono);color:var(--text-muted);font-size:9px}.progress-step--done{color:var(--amber)}.progress-step--current{color:var(--amber);font-weight:700}.timer-display{flex-direction:column;gap:4px;display:flex}.timer-icon{color:var(--text-muted);font-size:12px}.timer-value{font-family:var(--font-mono);color:var(--text);letter-spacing:.05em;font-size:22px;font-weight:700;line-height:1}.timer--warn .timer-value{color:var(--amber)}.timer--critical .timer-value{color:var(--red);animation:1s ease-in-out infinite timerFlash}.timer-hint{font-family:var(--font-mono);color:var(--amber);font-size:9px}.timer-hint--critical{color:var(--red)}.chat-main{background:var(--bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid var(--border);background:var(--bg-2);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 28px;display:flex}.chat-header-left{align-items:center;gap:12px;display:flex}.interviewer-avatar{background:var(--amber);color:#000;width:38px;height:38px;font-family:var(--font-mono);border-radius:var(--r);justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.interviewer-name{color:var(--text);font-size:14px;font-weight:700}.interviewer-status{font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:6px;margin-top:2px;font-size:10px;display:flex}.status-dot{background:var(--green);width:6px;height:6px;box-shadow:0 0 6px var(--green);border-radius:50%;animation:2s ease-in-out infinite timerFlash}.status-dot--pulse{background:var(--amber)!important;box-shadow:0 0 6px var(--amber)!important}.chat-header-right{align-items:center;gap:8px;display:flex}.topic-chip{font-family:var(--font-mono);color:var(--amber);border:1px solid var(--amber-mid);border-radius:var(--r);background:var(--amber-dim);padding:3px 10px;font-size:10px}.qnum-chip{font-family:var(--font-mono);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--r);padding:3px 10px;font-size:10px}.company-chip{font-family:var(--font-mono);border-radius:var(--r);border:1px solid;padding:3px 10px;font-size:10px}.chat-progress-strip{background:var(--bg-4);flex-shrink:0;height:2px;overflow:hidden}.chat-progress-fill{background:linear-gradient(90deg, var(--amber), #ffd070);height:100%;transition:width .8s;box-shadow:0 0 8px #f5a62380}.messages-area{scroll-behavior:smooth;flex-direction:column;flex:1;gap:16px;padding:24px 28px;display:flex;overflow-y:auto}.messages-area::-webkit-scrollbar{width:3px}.messages-area::-webkit-scrollbar-thumb{background:var(--bg-5);border-radius:2px}.empty-state{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.empty-icon{color:var(--text-muted);font-size:28px;font-family:var(--font-mono)}.empty-text{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.message-row{align-items:flex-start;gap:10px;animation:.3s both msgIn;display:flex}.message-row--user{flex-direction:row-reverse}.message-col{flex-direction:column;gap:8px;max-width:70%;display:flex}.message-row--user .message-col{align-items:flex-end}.msg-avatar{width:34px;height:34px;font-family:var(--font-mono);border-radius:var(--r);flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:9px;font-weight:700;display:flex}.msg-avatar--bot{background:var(--amber);color:#000}.msg-avatar--user{background:var(--bg-4);color:var(--text-dim);border:1px solid var(--border-strong)}.q-badge{font-family:var(--font-mono);color:var(--amber);letter-spacing:.12em;border:1px solid var(--amber-mid);background:var(--amber-dim);border-radius:20px;align-self:flex-start;padding:2px 9px;font-size:9px}.message-bubble{border-radius:var(--r-lg);padding:14px 18px}.bubble--bot{background:var(--bg-2);border:1px solid var(--border);border-top-left-radius:0}.bubble--user{background:var(--bg-3);border:1px solid var(--border-strong);border-top-right-radius:0}.bubble--hint{background:#f5a6230a!important;border-color:#f5a62340!important}.bubble--solution{background:#ef44440a!important;border-color:#ef444440!important}.bubble-type-label{font-family:var(--font-mono);letter-spacing:.15em;margin-bottom:8px;font-size:9px;display:block}.bubble-type-label--hint{color:var(--amber)}.bubble-type-label--solution{color:var(--red)}.bubble-text{color:var(--text);white-space:pre-wrap;word-break:break-word;font-size:14px;font-weight:500;line-height:1.72}.bubble-text strong{color:var(--amber);font-weight:700}.bubble-cursor{background:var(--amber);vertical-align:middle;width:2px;height:14px;margin-left:2px;animation:.8s ease-in-out infinite cursor;display:inline-block}.bubble-time{font-family:var(--font-mono);color:var(--text-muted);margin-top:8px;font-size:9px;display:block}.bubble--typing{align-items:center;gap:10px;padding:12px 18px;display:flex}.typing-label{font-family:var(--font-mono);color:var(--text-muted);font-size:11px;font-style:italic}.typing-dots{gap:4px;display:flex}.typing-dots span{background:var(--amber);opacity:.4;border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite dotBounce}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}.eval-card{border-radius:var(--r-lg);border:1px solid;padding:12px 16px;animation:.3s both msgIn}.eval-top{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.eval-grade{font-family:var(--font-mono);letter-spacing:.08em;font-size:12px;font-weight:700}.eval-label{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.15em;font-size:9px}.eval-feedback{color:#b0adb8;font-size:13px;font-weight:500;line-height:1.55}.error-banner{border-radius:var(--r);color:#fca5a5;font-size:12px;font-family:var(--font-mono);background:#ef444414;border:1px solid #ef444438;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.error-banner button{color:#fca5a5;opacity:.6;font-size:13px}.input-area{border-top:1px solid var(--border);background:var(--bg-2);flex-shrink:0;padding:14px 28px 18px}.input-row{align-items:flex-end;gap:8px;margin-bottom:8px;display:flex}.input-wrapper{flex:1}.chat-input{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--r-lg);width:100%;color:var(--text);max-height:120px;padding:12px 16px;font-size:14px;font-weight:500;line-height:1.55;transition:border-color .15s;overflow-y:auto}.chat-input::placeholder{color:var(--text-muted)}.chat-input:focus{border-color:var(--amber);outline:none;box-shadow:0 0 0 2px #f5a62312}.chat-input:disabled{opacity:.45;cursor:not-allowed}.send-btn{background:var(--amber);color:#000;border-radius:var(--r);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;font-weight:700;transition:transform .12s,box-shadow .12s,opacity .15s;display:flex}.send-btn:hover:not(:disabled){transform:scale(1.06);box-shadow:0 4px 16px #f5a62347}.send-btn:disabled{opacity:.25;cursor:not-allowed}.input-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.action-pill{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;padding:5px 14px;font-size:11px;transition:all .15s}.action-pill:hover:not(:disabled){border-color:var(--amber-mid);color:var(--amber);background:var(--amber-dim)}.action-pill--warn:hover:not(:disabled){color:var(--red);background:#ef444412;border-color:#ef444459}.action-pill:disabled{opacity:.35;cursor:not-allowed}.char-hint{font-family:var(--font-mono);color:var(--text-muted);margin-left:auto;font-size:9px}.voice-wrap{align-items:center;gap:12px;margin-bottom:8px;display:flex}.voice-btn{border:1px solid var(--border-strong);color:var(--text-dim);background:0 0;border-radius:20px;align-items:center;gap:8px;padding:8px 18px;font-size:12px;transition:all .15s;display:flex;position:relative}.voice-btn:hover:not(:disabled){border-color:var(--amber-mid);color:var(--amber)}.voice-btn--active{border-color:var(--red)!important;color:var(--red)!important;background:#ef444412!important}.voice-unsupported{font-family:var(--font-mono);color:var(--text-muted);padding:8px 0;font-size:11px}.voice-transcript{font-family:var(--font-mono);color:var(--text-muted);font-size:11px}.voice-transcript-text{color:var(--text-dim);font-style:italic}.code-mode-wrap{margin-bottom:8px}.code-editor-wrap{border:1px solid var(--border);border-radius:var(--r-lg);background:#0c0c0e;overflow:hidden}.code-editor-header{background:var(--bg-3);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.code-editor-tabs{gap:8px;display:flex}.code-tab{font-family:var(--font-mono);color:var(--text-muted);border-radius:var(--r);padding:4px 10px;font-size:11px}.code-tab--active{color:var(--text);background:var(--bg-4)}.code-editor-actions{gap:8px;display:flex}.code-run-btn{font-family:var(--font-mono);color:var(--green);border-radius:var(--r);background:#4ade8012;border:1px solid #4ade804d;padding:4px 12px;font-size:11px;transition:all .15s}.code-run-btn:hover:not(:disabled){background:#4ade8026}.code-run-btn:disabled{opacity:.4}.code-submit-btn{font-family:var(--font-mono);color:var(--amber);border:1px solid var(--amber-mid);border-radius:var(--r);background:var(--amber-dim);padding:4px 12px;font-size:11px;transition:all .15s}.code-editor-body{max-height:200px;display:flex;overflow:auto}.code-line-nums{background:var(--bg-3);border-right:1px solid var(--border);font-family:var(--font-mono);color:var(--text-muted);text-align:right;-webkit-user-select:none;user-select:none;flex-direction:column;min-width:36px;padding:12px 10px;font-size:12px;line-height:1.6;display:flex}.code-textarea{color:var(--text);font-family:var(--font-mono);white-space:pre;background:0 0;border:none;outline:none;flex:1;padding:12px 16px;font-size:13px;line-height:1.6;overflow:auto}.code-output{border-top:1px solid var(--border);background:var(--bg-3);padding:10px 16px}.code-output-label{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.15em;margin-bottom:6px;font-size:9px;display:block}.code-output-text{font-family:var(--font-mono);color:var(--green);white-space:pre-wrap;font-size:12px}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000bf;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-box{background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-lg);text-align:center;width:90%;max-width:390px;box-shadow:var(--shadow);padding:40px 36px}.modal-icon{margin-bottom:16px;font-size:36px;display:block}.modal-title{color:var(--text);margin-bottom:12px;font-size:20px;font-weight:800}.modal-body{color:var(--text-muted);margin-bottom:28px;font-size:14px;line-height:1.65}.modal-actions{gap:12px;display:flex}.modal-btn{border-radius:var(--r);font-size:14px;font-weight:600;font-family:var(--font-display);cursor:pointer;flex:1;padding:12px;transition:all .15s}.modal-btn:hover{transform:translateY(-1px)}.modal-btn--cancel{background:var(--bg-4);color:var(--text-dim);border:1px solid var(--border-strong)}.modal-btn--confirm{background:var(--red);color:#fff;border:none}.summary-overlay{z-index:50;background:var(--bg);justify-content:center;align-items:center;padding:20px;animation:.4s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.summary-box{background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-lg);width:100%;max-width:540px;box-shadow:var(--shadow);padding:40px 36px}.summary-header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.summary-logo{font-family:var(--font-mono);color:var(--amber);letter-spacing:.15em;font-size:12px;font-weight:700}.summary-tag{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.2em;border:1px solid var(--border);border-radius:20px;padding:4px 12px;font-size:9px}.score-ring-wrap{width:128px;height:128px;margin:0 auto 18px;position:relative}.score-ring{width:100%;height:100%}.score-inner{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.score-pct{font-family:var(--font-display);color:var(--text);font-size:28px;font-weight:800;line-height:1}.score-label{font-family:var(--font-mono);letter-spacing:.1em;margin-top:3px;font-size:10px}.summary-topic{font-family:var(--font-mono);color:var(--text-muted);text-align:center;margin-bottom:28px;font-size:11px}.grade-breakdown{flex-direction:column;gap:12px;margin-bottom:28px;display:flex}.grade-row{align-items:center;gap:12px;display:flex}.grade-icon{text-align:center;width:12px;font-size:10px}.grade-key{font-family:var(--font-mono);color:var(--text-dim);width:60px;font-size:11px}.grade-bar-track{background:var(--bg-4);border-radius:2px;flex:1;height:4px;overflow:hidden}.grade-bar-fill{border-radius:2px;height:100%;transition:width .8s}.grade-count{font-family:var(--font-mono);text-align:right;width:16px;font-size:12px;font-weight:700}.feedback-list{margin-bottom:32px}.feedback-list-title{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.2em;margin-bottom:14px;font-size:9px}.feedback-item{border-bottom:1px solid var(--border);gap:14px;padding:12px 0;display:flex}.feedback-item:last-child{border-bottom:none}.feedback-qnum{font-family:var(--font-mono);color:var(--amber);flex-shrink:0;width:24px;font-size:10px}.feedback-text{color:var(--text-dim);font-size:13px;font-weight:500;line-height:1.6}.summary-actions{gap:12px;display:flex}.summary-btn{border-radius:var(--r);font-size:14px;font-weight:700;font-family:var(--font-display);cursor:pointer;flex:1;padding:14px;transition:all .15s}.summary-btn:hover{transform:translateY(-1px)}.summary-btn--secondary{background:var(--bg-4);color:var(--text-dim);border:1px solid var(--border-strong)}.summary-btn--primary{background:var(--amber);color:#000;border:none}@media (width<=768px){.chat-sidebar{display:none}.messages-area{padding:14px}.input-area{padding:10px 14px 14px}.message-col{max-width:86%}.summary-box{padding:28px 20px}.chat-header{padding:12px 16px}}
