@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Sora:wght@600;700&display=swap";*{box-sizing:border-box}body{min-height:100vh;margin:0}#root{min-height:100vh}.dashboard{flex-direction:column;gap:.9rem;width:100%;display:flex}.dashboard-header{background:linear-gradient(135deg,#3b82f621,#8b5cf61f);border:1px solid #22d3ee38;border-radius:14px;justify-content:space-between;align-items:center;gap:.8rem;padding:.85rem;display:flex}.dashboard-header h2{margin:0;font-size:1.28rem}.dashboard-subtitle{color:var(--color-text-secondary);margin:.35rem 0 0}.dashboard-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.dashboard-card{border:1px solid var(--color-border);background:#0b0f1aa3;border-radius:14px;padding:.88rem}.dashboard-card h3{margin:0 0 .65rem}.dashboard-chart{height:280px}.dashboard-note{color:var(--color-text-secondary);margin:.65rem 0 0;font-size:.88rem}.dashboard-error{background:#ef44441f;border:1px solid #ef444459;border-radius:10px;padding:10px 12px}.dashboard-demo-banner{color:var(--color-text-secondary);background:#22d3ee17;border:1px solid #22d3ee47;border-radius:12px;padding:.72rem .8rem;font-size:.86rem}.dashboard-demo-banner strong{color:var(--color-text-primary)}.dashboard-table-wrap{overflow:auto}.dashboard-demo-explain{flex-direction:column;gap:.5rem;display:flex}.dashboard-demo-explain p{color:var(--color-text-secondary);margin:0;font-size:.88rem}.dashboard-table{border-collapse:collapse;width:100%}.dashboard-table th,.dashboard-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #94a3b824;padding:.62rem}.dashboard-table th{color:var(--color-text-secondary);letter-spacing:.02em;font-size:.82rem;font-weight:700}.dashboard-empty{color:var(--color-text-secondary);text-align:center;padding:1.5rem 1rem}.dashboard-empty p{margin:0 0 .35rem}.dashboard-empty-hint{color:var(--muted,#8888a0);font-size:.88rem}.dashboard-plan-focus{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.68rem;display:flex}.dashboard-plan-days{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.62rem;display:grid}.dashboard-plan-day{border:1px solid var(--color-border);background:#121826c7;border-radius:12px;padding:.7rem}.dashboard-plan-day-header{justify-content:space-between;gap:.55rem;margin-bottom:.42rem;display:flex}.dashboard-plan-day ul{margin:0 0 .5rem;padding-left:1rem}.dashboard-plan-day li{color:var(--color-text-secondary);margin-bottom:.25rem;font-size:.86rem}.dashboard-plan-outcome{color:var(--color-text-secondary);font-size:.84rem}@media (width<=900px){.dashboard-header{flex-wrap:wrap;align-items:flex-start}}.dashboard-actions-cell{white-space:nowrap;align-items:center;gap:.4rem;display:flex}:root{--color-bg-primary:#0b0f1a;--color-bg-secondary:#121826;--color-primary:#3b82f6;--color-accent:#8b5cf6;--color-cyan:#22d3ee;--color-text-primary:#e5e7eb;--color-text-secondary:#9ca3af;--color-border:#1f2937;--glow-primary:#3b82f659;--glow-accent:#8b5cf659}body{background:radial-gradient(circle at 12% 0%, #3b82f629 0%, transparent 38%), radial-gradient(circle at 92% 14%, #8b5cf629 0%, transparent 34%), var(--color-bg-primary);color:var(--color-text-primary);margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;line-height:1.5}h1,h2,h3,h4{font-family:Sora,Inter,Segoe UI,sans-serif}.app{max-width:1380px;min-height:100vh;margin:0 auto;padding:1rem 1.1rem}.layout{align-items:flex-start;gap:1rem;display:flex}.sidebar{border:1px solid var(--color-border);background:linear-gradient(#121826f0,#121826e0);border-radius:16px;width:252px;padding:1rem;position:sticky;top:1rem;box-shadow:0 16px 38px #00000052}.sidebar-title{color:var(--color-text-secondary);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.75rem;font-size:.82rem;font-weight:700}.sidebar-divider{border:none;border-top:1px solid var(--color-border);margin:.6rem 0}.sidebar-section-label{color:var(--color-text-secondary);letter-spacing:.06em;text-transform:uppercase;padding:0 .4rem .4rem;font-size:.72rem;font-weight:700}.sidebar-item{text-align:left;width:100%;color:var(--color-text-primary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;padding:.72rem .84rem;font-weight:500;transition:all .18s}.sidebar-item:hover:not(.sidebar-item--active){border-color:var(--color-border);background:#ffffff08}.sidebar-item--active{color:#f8fafc;background:linear-gradient(135deg,#3b82f638,#8b5cf638);border-color:#22d3ee73;box-shadow:inset 0 0 0 1px #22d3ee14}.content{flex:1;min-width:0}.topbar{border:1px solid var(--color-border);background:linear-gradient(#121826e6,#121826c7);border-radius:16px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.9rem 1rem;display:flex;box-shadow:0 12px 34px #00000052}.topbar-brand{align-items:center;gap:.72rem;display:flex}.brand-mark{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));width:40px;height:40px;box-shadow:0 0 0 1px #ffffff14, 0 8px 24px var(--glow-accent);color:#fff;border-radius:12px;place-items:center;font-size:1.02rem;font-weight:800;display:grid}.brand-copy h1{margin:0;font-size:1.38rem}.brand-copy p{color:var(--color-text-secondary);margin:.22rem 0 0;font-size:.9rem}.topbar-actions{flex-wrap:wrap;gap:.55rem;display:flex}.sidebar-toggle{background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;font:inherit;border-radius:10px;padding:.55rem .7rem;display:none}.btn-settings,.btn-dashboard,.btn-modal-secondary,.btn{color:var(--color-text-primary);cursor:pointer;background:#94a3b814;border:1px solid #94a3b847;border-radius:10px;padding:.58rem .95rem;font-weight:600;transition:all .18s}.btn-settings:hover,.btn-dashboard:hover,.btn-modal-secondary:hover,.btn:hover{background:#94a3b824}.btn-primary,.btn-new,.btn-modal-primary,.btn-view-report{color:#fff;cursor:pointer;background:linear-gradient(135deg, var(--color-primary), var(--color-accent));border:0;border-radius:11px;padding:.65rem 1rem;font-weight:700;transition:transform .15s,opacity .15s;box-shadow:0 10px 28px #3b82f647}.btn-primary:hover:not(:disabled),.btn-new:hover:not(:disabled),.btn-modal-primary:hover:not(:disabled),.btn-view-report:hover:not(:disabled){opacity:.95;transform:translateY(-1px)}.btn:disabled,.btn-primary:disabled,.btn-settings:disabled,.btn-modal-primary:disabled,.btn-modal-secondary:disabled{opacity:.62;cursor:not-allowed}.main{border:1px solid var(--color-border);background:linear-gradient(#121826f0,#121826d6);border-radius:16px;padding:1.2rem;box-shadow:0 18px 44px #00000057}.start-form{flex-direction:column;gap:.9rem;display:flex}.start-form-hero{background:linear-gradient(150deg,#3b82f62e,#8b5cf629);border:1px solid #22d3ee3d;border-radius:14px;padding:.95rem}.start-form-title h2{margin:0;font-size:1.2rem}.start-form-title p{color:var(--color-text-secondary);margin:.3rem 0 0}.start-form-badges{flex-wrap:wrap;gap:.45rem;margin-top:.7rem;display:flex}.start-form-badges span{color:#dbeafe;background:#22d3ee1a;border:1px solid #22d3ee47;border-radius:999px;padding:.3rem .56rem;font-size:.78rem}.start-grid{grid-template-columns:2fr 1fr;gap:.85rem;display:grid}.start-main-panel,.start-side-panel{border:1px solid var(--color-border);background:#0b0f1aad;border-radius:14px;padding:.9rem}.start-form label{color:var(--color-text-secondary);margin-bottom:.9rem;font-size:.9rem;display:block}.start-form textarea,.start-form select,.modal-field input,.modal-field select{background:var(--color-bg-primary);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);font:inherit;border-radius:10px;margin-top:.35rem;padding:.66rem .75rem;display:block}.start-form textarea{resize:vertical;min-height:136px}.start-side-note,.trial-note,.modal-hint{color:var(--color-text-secondary);border:1px dashed var(--color-border);background:#ffffff05;border-radius:10px;padding:.66rem .72rem;font-size:.86rem}.start-actions{justify-content:flex-end;display:flex}.start-type-context{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.start-context-block{border:1px solid var(--color-border);background:#0b0f1a9e;border-radius:12px;padding:.75rem}.start-context-block h3{margin:0 0 .4rem;font-size:.9rem}.start-context-block p{color:var(--color-text-secondary);margin:0;font-size:.86rem}.start-context-block ul{flex-direction:column;gap:.3rem;margin:0;padding-left:1rem;display:flex}.start-context-block li{color:var(--color-text-secondary);font-size:.83rem}.start-focus-list{flex-wrap:wrap;gap:.4rem;display:flex}.start-focus-list span{background:#22d3ee14;border:1px solid #22d3ee47;border-radius:999px;padding:.22rem .5rem;font-size:.78rem}.trial-banner{background:#8b5cf626;border:1px solid #8b5cf657;border-radius:12px;margin-bottom:.3rem;padding:.72rem .9rem;font-size:.9rem}.trial-banner-link{color:var(--color-cyan);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}.chat-layout{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:.82rem;min-height:580px;display:grid}.chat{border:1px solid var(--color-border);background:#0b0f1aa8;border-radius:14px;flex-direction:column;gap:.7rem;min-height:0;padding:.85rem;display:flex}.chat-messages{flex-direction:column;flex:1;gap:.82rem;max-height:58vh;padding-right:.2rem;display:flex;overflow-y:auto}.message{border-radius:12px;max-width:92%;padding:.74rem .9rem}.message-user{color:#fff;background:linear-gradient(135deg,#3b82f6f0,#8b5cf6e6);align-self:flex-end;box-shadow:0 10px 22px #3b82f633}.message-assistant{border:1px solid var(--color-border);background:#121826eb;align-self:flex-start}.message-content{white-space:pre-wrap;word-break:break-word}.message-eval{color:var(--color-text-secondary);margin-top:.45rem;font-size:.81rem}.message-eval .feedback{color:var(--color-text-primary);margin-top:.2rem;display:block}.message-coach-tip{border-left:3px solid var(--color-cyan);background:#22d3ee1f;border-radius:7px;margin-top:.46rem;padding:.45rem .55rem;font-size:.84rem}.chat-input{border-top:1px solid var(--color-border);gap:.5rem;padding-top:.7rem;display:flex}.chat-input input{background:var(--color-bg-primary);border:1px solid var(--color-border);color:var(--color-text-primary);font:inherit;border-radius:10px;flex:1;padding:.66rem .75rem}.chat-input .input-listening{border-color:var(--color-cyan);box-shadow:0 0 0 2px #22d3ee33}.chat-input button{border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;background:#94a3b814;border-radius:10px}.btn-mic{min-width:44px;padding:0 .75rem}.btn-mic-active{color:#ef4444!important;background:#ef444433!important;border-color:#ef4444!important}.chat-side-panel{border:1px solid var(--color-border);background:#0b0f1ab3;border-radius:14px;flex-direction:column;gap:.72rem;padding:.86rem;display:flex}.chat-side-panel h3,.chat-side-card h4{margin:0}.chat-side-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.52rem;display:grid}.chat-stat,.chat-side-card{border:1px solid var(--color-border);background:#121826db;border-radius:12px;padding:.66rem}.chat-stat span,.chat-side-card p{color:var(--color-text-secondary);margin:0;font-size:.82rem}.chat-stat strong{margin-top:.25rem;display:block}.chat-side-card ul{flex-direction:column;gap:.4rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.chat-side-card li{justify-content:space-between;gap:.5rem;font-size:.84rem;display:flex}.btn-tts{border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;background:#94a3b81a;border-radius:6px;margin-top:.35rem;padding:.2rem .46rem;font-size:.84rem}.btn-stop-tts{color:#ef4444;background:#ef44441f;border:1px solid #ef44444d;border-radius:10px;width:100%;padding:.46rem .68rem}.typing-indicator{align-items:center;gap:4px;padding:4px 0;display:flex}.typing-indicator span{background:var(--color-text-secondary);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite both typing-bounce}.typing-indicator span:first-child{animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.chat-auto-submit{color:var(--color-text-secondary);font-size:.82rem}.chat-auto-submit-cancel{color:var(--color-cyan);cursor:pointer;background:0 0;border:none}.enhanced-answer{border:1px solid var(--color-border);background:#0b0f1ac7;border-radius:8px;margin-top:.5rem;overflow:hidden}.enhanced-answer summary{color:#c4b5fd;cursor:pointer;padding:.46rem .7rem;font-size:.84rem}.enhanced-answer-content{border-top:1px solid var(--color-border);padding:.56rem .7rem}.enhanced-answer-label{color:var(--color-cyan)}.chat-ended{text-align:center;border-top:1px solid var(--color-border);padding:.85rem .2rem}.chat-ended p{color:var(--color-text-secondary);margin:0 0 .75rem}.final-feedback{flex-direction:column;gap:.85rem;display:flex}.final-hero{background:linear-gradient(140deg,#3b82f629,#8b5cf61f);border:1px solid #22d3ee38;border-radius:14px;justify-content:space-between;align-items:center;gap:.8rem;padding:.9rem;display:flex}.final-hero h2{margin:0}.final-hero p{color:var(--color-text-secondary);margin:.3rem 0 0}.final-score-badge{border:1px solid var(--color-border);text-align:center;background:#0b0f1aa3;border-radius:12px;min-width:130px;padding:.65rem}.final-score-badge span{color:var(--color-text-secondary);font-size:.75rem;display:block}.final-score-badge strong{font-size:1.6rem}.scores{flex-wrap:wrap;gap:.56rem;display:flex}.scores span{border:1px solid var(--color-border);background:#94a3b814;border-radius:999px;padding:.36rem .62rem;font-size:.85rem}.final-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.78rem;display:grid}.final-card{border:1px solid var(--color-border);background:#0b0f1a9e;border-radius:14px;padding:.86rem}.final-card h3{margin:0 0 .5rem}.final-card ul{margin:0;padding-left:1.2rem}.final-card li{margin-bottom:.34rem}.final-card-plan{margin-top:.12rem}.final-feedback-actions{flex-wrap:wrap;gap:.6rem;display:flex}.feedback-placeholder{text-align:center;padding:2rem}.modal-overlay{z-index:90;background:#020617b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--color-border);background:linear-gradient(#121826fa,#121826ed);border-radius:14px;width:540px;max-width:100%;overflow:hidden;box-shadow:0 20px 56px #00000080}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:.92rem 1rem;display:flex}.modal-header h2{margin:0}.btn-modal-close{border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;background:#94a3b814;border-radius:10px;padding:.45rem .65rem}.modal-body{flex-direction:column;gap:.9rem;padding:1rem;display:flex}.modal-field{color:var(--color-text-secondary);flex-direction:column;gap:.32rem;font-size:.9rem;display:flex}.auth-tabs{gap:.5rem;display:flex}.auth-tab{border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;background:#94a3b814;border-radius:10px;flex:1;padding:.58rem .72rem;font-weight:700}.auth-tab--active{background:linear-gradient(135deg,#3b82f633,#8b5cf633);border-color:#22d3ee6b}.auth-rules{border:1px dashed var(--color-border);border-radius:10px;flex-direction:column;gap:.3rem;padding:.72rem;display:flex}.auth-rule{color:var(--color-text-secondary);font-size:.86rem}.auth-rule--ok{color:var(--color-text-primary);font-weight:700}.modal-error{color:#fca5a5;background:#ef44441f;border:1px solid #ef444459;border-radius:10px;padding:.5rem .72rem;font-size:.9rem;font-weight:600}.modal-success{color:#86efac;background:#22c55e1a;border:1px solid #22c55e59;border-radius:10px;padding:.5rem .72rem;font-size:.9rem;font-weight:700}.modal-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.5rem;padding:.9rem 1rem;display:flex}.active-session-modal{max-width:440px}.active-session-desc{color:var(--color-text-primary);margin:0 0 .9rem;line-height:1.6}.active-session-stats{color:var(--color-text-secondary);flex-wrap:wrap;gap:1rem;margin-bottom:.9rem;font-size:.85rem;display:flex}.active-session-stats strong{color:var(--color-text-primary)}.active-session-hint{color:var(--color-text-secondary);margin:0;font-size:.82rem;font-style:italic}.active-session-footer{justify-content:space-between}.btn-view-chat-sm{color:#93c5fd;cursor:pointer;background:linear-gradient(135deg,#3b82f629,#8b5cf61f);border:1px solid #3b82f652;border-radius:7px;padding:.28rem .7rem;font-size:.78rem;font-weight:600;transition:background .2s,border-color .2s}.btn-view-chat-sm:hover{background:linear-gradient(135deg,#3b82f647,#8b5cf638);border-color:#3b82f694}.btn-continue-session{color:#86efac;cursor:pointer;background:linear-gradient(135deg,#22c55e2e,#10b9811f);border:1px solid #22c55e59;border-radius:7px;padding:.28rem .7rem;font-size:.78rem;font-weight:600;transition:background .2s,border-color .2s}.btn-continue-session:hover{background:linear-gradient(135deg,#22c55e47,#10b98138);border-color:#22c55e99}@media (width<=1100px){.chat-layout{grid-template-columns:1fr}.chat-side-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.layout{gap:.75rem}.sidebar-toggle{display:inline-flex}.sidebar{z-index:100;height:calc(100vh - 2rem);transition:transform .2s;position:fixed;top:1rem;left:1rem;transform:translate(-110%)}.sidebar--open{transform:translate(0)}.topbar{flex-wrap:wrap}.start-grid,.start-type-context,.final-grid{grid-template-columns:1fr}.chat-side-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.auth-consent{color:var(--color-text-muted);cursor:pointer;align-items:flex-start;gap:10px;margin-top:12px;font-size:.85rem;display:flex}.auth-consent input[type=checkbox]{accent-color:var(--color-accent);flex-shrink:0;margin-top:2px}.auth-link{color:var(--color-accent);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.auth-link:hover{opacity:.8}.btn-secondary{border:1px solid var(--color-border,#444);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:10px 20px;font-size:.9rem;transition:background .15s,color .15s}.btn-secondary:hover{background:var(--color-surface-hover,#ffffff0f);color:var(--color-text,#fff)}.topbar-credits{background:#7c6af71f;border:1px solid #7c6af74d;border-radius:20px;align-items:center;gap:4px;padding:4px 12px;font-size:.82rem;line-height:1;display:flex}.topbar-credits-count{color:#a89cf7;font-size:.95rem;font-weight:700}.topbar-credits-label{color:var(--color-text-muted,#888)}
