@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap";:root{--foreground: #0f172a;--muted-foreground: #64748b;--border: #e5e7eb;--card-hover: #f8fafc;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius: 12px;--radius-lg: 18px;--radius-xl: 26px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 14px 34px rgba(15, 23, 42, .08);--ep-accent: #1d4ed8;--ep-pink: #1d4ed8;--ep-blue: #2563eb}.ep-root{font-family:var(--font-sans);min-height:100vh;background:#f8fafc;color:var(--foreground);display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}.ep-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:#ffffffeb;border-bottom:1px solid var(--border);gap:16px;position:sticky;top:0;z-index:100;box-shadow:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.ep-header-brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.ep-header-logo{width:36px;height:36px;border-radius:11px;background:#0f172a;color:#fff;display:flex;align-items:center;justify-content:center}.ep-header-title{display:block;font-size:.96rem;font-weight:700;color:var(--foreground);letter-spacing:-.02em}.ep-header-subtitle{display:block;margin-top:2px;font-size:.74rem;color:var(--muted-foreground);font-weight:500}.ep-header-progress{display:flex;align-items:center;gap:16px;flex:1;justify-content:flex-end}.ep-leave-btn{height:32px;padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:#fff;color:#dc2626;font-family:var(--font-sans);font-size:.74rem;font-weight:700;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:4px}.ep-leave-btn:hover{background:#fef2f2;border-color:#fecaca}.ep-main{flex:1;display:flex;flex-direction:column;align-items:center;padding:36px 16px 80px;max-width:760px;margin:0 auto;width:100%}.ep-main.ep-main-questions{max-width:1100px;align-items:stretch}.ep-questions-layout{display:flex;gap:24px;width:100%;align-items:flex-start}.ep-questions-main{flex:1;min-width:0}.ep-qnav{width:220px;flex-shrink:0;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;position:sticky;top:72px;box-shadow:var(--shadow-sm)}.ep-qnav-header{display:flex;flex-direction:column;gap:4px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border)}.ep-qnav-title{font-size:.82rem;font-weight:700;color:var(--foreground)}.ep-qnav-summary{font-size:.72rem;color:var(--muted-foreground);font-weight:500}.ep-qnav-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.ep-qnav-btn{width:100%;aspect-ratio:1;min-height:34px;border-radius:8px;border:1px solid var(--border);background:#fff;font-family:var(--font-sans);font-size:.76rem;font-weight:700;color:var(--muted-foreground);cursor:pointer;transition:all .1s ease;padding:0}.ep-qnav-btn:hover{border-color:#93c5fd;background:#f8fbff}.ep-qnav-unanswered{background:#f8fafc;color:#94a3b8;border-color:#e2e8f0}.ep-qnav-answered{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}.ep-qnav-review{background:#fffbeb;color:#b45309;border-color:#fcd34d}.ep-qnav-current{background:#1d4ed8;color:#fff;border-color:#1d4ed8;box-shadow:0 0 0 2px #2563eb40}.ep-qnav-legend{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.ep-qnav-legend-item{display:flex;align-items:center;gap:5px;font-size:.68rem;color:var(--muted-foreground);font-weight:600}.ep-qnav-dot{width:10px;height:10px;border-radius:3px;display:inline-block;border:1px solid transparent}.ep-qnav-dot.current{background:#1d4ed8}.ep-qnav-dot.answered{background:#eff6ff;border-color:#93c5fd}.ep-qnav-dot.review{background:#fffbeb;border-color:#fcd34d}.ep-qnav-dot.unanswered{background:#f8fafc;border-color:#e2e8f0}.ep-mark-review-btn{padding:11px 14px;border-radius:var(--radius-lg);border:1px solid var(--border);background:#fff;font-family:var(--font-sans);font-size:.78rem;font-weight:700;color:var(--muted-foreground);cursor:pointer;transition:all .12s ease;white-space:nowrap}.ep-mark-review-btn:hover{border-color:#fcd34d;background:#fffbeb;color:#b45309}.ep-mark-review-btn.active{border-color:#f59e0b;background:#fffbeb;color:#b45309}.ep-progress-bar-wrap{flex:1;min-width:0}.ep-progress-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;font-size:.78rem;color:var(--muted-foreground);font-weight:500}.ep-progress-label strong{color:var(--foreground);font-weight:700}.ep-timer-badge{background:#fff;color:var(--foreground);padding:4px 10px;border-radius:99px;font-weight:700;font-size:.78rem;border:1px solid var(--border);display:flex;align-items:center;gap:5px}.ep-timer-low{background:#fef2f2;color:#ef4444;border-color:#fca5a5;animation:ep-pulse 1.2s ease-in-out infinite}.ep-progress-track{width:100%;height:6px;background:#e2e8f0;border-radius:99px;overflow:hidden}.ep-progress-fill{height:100%;border-radius:99px;background:#2563eb;transition:width .4s cubic-bezier(.4,0,.2,1)}.ep-intro{width:100%;display:flex;flex-direction:column;align-items:center;gap:16px;padding:34px 28px;max-width:520px;margin:40px auto 0;background:#fff;border-radius:20px;border:1px solid var(--border);box-shadow:var(--shadow-md)}.ep-intro-icon-wrap{width:64px;height:64px;background:#eff6ff;border-radius:18px;display:flex;align-items:center;justify-content:center;border:1px solid #bfdbfe}.ep-intro-grade-badge{color:var(--ep-blue);font-size:.72rem;font-weight:700;padding:3px 12px;border-radius:99px;text-transform:uppercase;letter-spacing:.04em;border:1px solid #bfdbfe;background:#eff6ff;width:fit-content}.ep-intro-title{font-size:1.5rem;font-weight:700;color:var(--foreground);margin:0;text-align:center;letter-spacing:-.02em}.ep-intro-subtitle{color:var(--muted-foreground);font-size:.84rem;margin:-8px 0 8px;font-weight:500;text-align:center;line-height:1.5;max-width:410px}.ep-intro-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;margin-bottom:10px}.ep-intro-stat-grid.practice{grid-template-columns:repeat(2,1fr)}.ep-intro-stat-card{background:#f8fafc;border:1px solid var(--border);border-radius:14px;padding:14px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.ep-intro-stat-label{font-size:.625rem;color:var(--muted-foreground);text-transform:uppercase;font-weight:700;letter-spacing:.05em}.ep-intro-stat-value{font-size:.88rem;font-weight:700;color:var(--foreground)}.ep-intro-actions{display:flex;width:100%}.ep-config-block{width:100%;display:flex;flex-direction:column;gap:10px}.ep-config-label{font-size:.72rem;font-weight:900;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}.ep-pill-group{display:flex;gap:8px;flex-wrap:wrap}.ep-pill{padding:8px 18px;border-radius:999px;border:1px solid var(--border);background:#fff;font-family:var(--font-sans);font-size:.84rem;font-weight:600;color:var(--foreground);cursor:pointer;transition:all .12s ease}.ep-pill:hover{border-color:#93c5fd;background:var(--card-hover)}.ep-pill-active{color:#fff!important;background:#2563eb!important;border-color:#2563eb!important}.ep-difficulty-group{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ep-difficulty-card{padding:14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;font-family:var(--font-sans);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;transition:all .12s ease}.ep-difficulty-card:hover{border-color:#93c5fd;box-shadow:var(--shadow-sm)}.ep-difficulty-active{border-color:#60a5fa!important;background:#eff6ff!important;box-shadow:var(--shadow-sm)}.ep-difficulty-icon{margin-bottom:2px}.ep-difficulty-label{font-size:.84rem;font-weight:700;color:var(--foreground)}.ep-difficulty-desc{font-size:.7rem;color:var(--muted-foreground);font-weight:500}.ep-timer-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.ep-toggle{width:40px;height:22px;border-radius:99px;border:none;background:#cbd5e1;cursor:pointer;position:relative;transition:background .15s ease;flex-shrink:0}.ep-toggle-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:left .15s ease}.ep-toggle-on .ep-toggle-knob{left:20px}.ep-toggle-on{background:#2563eb}.ep-timer-config{display:flex;flex-direction:column;gap:8px;border-top:1px dashed var(--border);padding-top:12px;margin-top:4px}.ep-timer-preview{font-size:.82rem;font-weight:600;color:var(--foreground);display:flex;align-items:center;gap:6px}.ep-timer-auto-tag{font-size:.625rem;font-weight:600;background:var(--card-hover);color:var(--foreground);padding:1px 6px;border-radius:99px;border:1px solid var(--border)}.ep-time-pills{display:flex;flex-wrap:wrap;gap:6px}.ep-time-pill{padding:4px 10px;border-radius:99px;border:1px solid var(--border);background:#fff;font-family:var(--font-sans);font-size:.72rem;font-weight:500;color:var(--muted-foreground);cursor:pointer;transition:all .1s ease}.ep-time-pill:hover{border-color:#94a3b8;color:var(--foreground)}.ep-time-pill-active{color:#fff!important;background:var(--foreground)!important;border-color:var(--foreground)!important}.ep-start-btn{width:100%;padding:14px 16px;border:none;border-radius:var(--radius-lg);color:#fff;background:#1d4ed8;font-family:var(--font-sans);font-size:.92rem;font-weight:700;cursor:pointer;transition:all .18s ease;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}.ep-start-btn:hover:not(:disabled){filter:saturate(1.05);transform:translateY(-1px)}.ep-start-btn:disabled{opacity:.55;cursor:not-allowed}.ep-start-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:ep-spin .6s linear infinite}.ep-question-screen{width:100%;display:flex;flex-direction:column;gap:20px}.ep-question-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--border)}.ep-q-number-badge{font-size:.76rem;font-weight:700;color:var(--ep-blue);background:var(--card-hover);padding:4px 12px;border-radius:99px;border:1px solid #bfdbfe}.ep-q-marks-badge{font-size:.72rem;color:#475569;font-weight:700;background:#f8fafc;padding:3px 10px;border-radius:999px;border:1px solid var(--border)}.ep-question-text{font-size:1.18rem;font-weight:700;color:var(--foreground);line-height:1.55;margin:2px 0 6px}.ep-hint-wrap{display:flex;flex-direction:column;gap:8px}.ep-hint-btn{align-self:flex-start;background:#f8fafc;border:1px solid var(--border);color:#475569;padding:6px 12px;border-radius:999px;font-family:var(--font-sans);font-size:.74rem;font-weight:700;cursor:pointer;transition:background .12s ease}.ep-hint-btn:hover{background:#eff6ff}.ep-hint-text{background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;font-size:.8rem;color:var(--foreground);line-height:1.55}.ep-options-grid{display:grid;grid-template-columns:1fr;gap:10px}.ep-option-card{display:flex;align-items:center;gap:14px;padding:14px 18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;font-family:var(--font-sans);font-size:.96rem;font-weight:500;color:var(--foreground);cursor:pointer;transition:all .15s ease;text-align:left;min-height:54px}.ep-option-card:hover:not(.ep-option-selected):not(.ep-option-correct):not(.ep-option-incorrect){border-color:#93c5fd;background:#f8fbff;transform:translate(3px)}.ep-option-selected{border-color:#60a5fa!important;background:#eff6ff!important;color:#1e293b!important}.ep-option-correct{border-color:#10b981!important;background:#ecfdf5!important}.ep-option-incorrect{border-color:#ef4444!important;background:#fef2f2!important}.ep-option-label{width:28px;height:28px;border-radius:8px;background:#f1f5f9;color:var(--muted-foreground);font-size:.75rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .12s ease}.ep-option-selected .ep-option-label{background:#60a5fa;color:#fff}.ep-option-correct .ep-option-label{background:#10b981;color:#fff}.ep-option-incorrect .ep-option-label{background:#ef4444;color:#fff}.ep-option-text{flex:1;line-height:1.45}.ep-option-check{margin-left:auto;display:flex;align-items:center}.ep-nav-row{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-top:12px;flex-wrap:wrap}.ep-nav-btn{padding:11px 18px;border-radius:var(--radius-lg);border:1px solid var(--border);background:#fff;font-family:var(--font-sans);font-size:.84rem;font-weight:700;color:var(--foreground);cursor:pointer;transition:all .12s ease}.ep-nav-btn:disabled{opacity:.38;cursor:not-allowed}.ep-nav-prev:not(:disabled):hover{background:var(--card-hover);border-color:#93c5fd}.ep-nav-next{flex:1}.ep-nav-next-active{font-weight:700;background:#1d4ed8!important;color:#fff!important;border-color:transparent!important}.ep-results-screen{width:100%;display:flex;flex-direction:column;gap:22px;animation:ep-slide-in .2s ease-out}.ep-score-card{background:#fff;border-radius:var(--radius-xl);padding:24px;border:1px solid var(--border);box-shadow:var(--shadow-md)}.ep-saving-badge{color:var(--muted-foreground);font-size:.72rem;animation:ep-pulse 1.5s ease-in-out infinite}.ep-results-actions{display:flex;gap:10px;flex-wrap:wrap}.ep-action-btn{flex:1;min-width:110px;padding:11px 16px;border-radius:var(--radius-lg);border:1px solid var(--border);background:#fff;font-family:var(--font-sans);font-size:.84rem;font-weight:700;color:var(--foreground);cursor:pointer;transition:all .12s ease;text-align:center}.ep-action-btn:hover{border-color:#93c5fd;background:var(--card-hover)}.ep-action-home{background:#1d4ed8!important;color:#fff!important;border-color:transparent!important}.ep-action-home:hover{opacity:.88}.ep-prep-loader{width:100%;max-width:560px;margin:40px auto 0;min-height:420px;padding:34px;border:1px solid var(--border);border-radius:var(--radius-xl);background:#fff;box-shadow:var(--shadow-md);display:flex;flex-direction:column;align-items:center;text-align:center}.ep-prep-loader-icon{width:62px;height:62px;border-radius:18px;background:#eff6ff;border:1px solid #bfdbfe;color:var(--ep-blue);display:flex;align-items:center;justify-content:center;margin-bottom:16px}.ep-prep-kicker{color:var(--ep-blue);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.ep-prep-loader h3{font-size:1.28rem;font-weight:700;color:var(--foreground);margin:0 0 8px}.ep-prep-loader p{max-width:390px;margin:0;color:var(--muted-foreground);font-size:.86rem;line-height:1.55}.ep-prep-progress{width:240px;height:5px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin:26px 0}.ep-prep-progress span{display:block;height:100%;width:45%;border-radius:inherit;background:#2563eb;animation:ep-loader-slide 1.5s ease-in-out infinite}.ep-prep-steps{width:100%;display:grid;gap:8px;text-align:left}.ep-prep-step{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;opacity:.65;transition:all .2s ease}.ep-prep-step.active,.ep-prep-step.done{opacity:1;background:#f8fafc}.ep-prep-step-dot{width:24px;height:24px;border-radius:999px;background:#eef2ff;color:var(--ep-blue);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.72rem;font-weight:700}.ep-prep-step-label{color:var(--foreground);font-size:.84rem;font-weight:700}.ep-prep-step-detail{color:var(--muted-foreground);font-size:.76rem;line-height:1.45;margin-top:2px}@keyframes ep-spin{to{transform:rotate(360deg)}}@keyframes ep-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes ep-slide-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes ep-loader-slide{0%{transform:translate(-110%)}55%,to{transform:translate(240%)}}.ep-generate-error{background:#fef2f2;border:1px solid #fca5a5;border-radius:var(--radius-lg);padding:14px 18px;color:#991b1b;font-size:.82rem;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:12px}.ep-generate-error button{background:none;border:1px solid #fca5a5;color:#991b1b;padding:4px 12px;border-radius:6px;cursor:pointer;font-size:.75rem;font-weight:600}@media (max-width: 900px){.ep-questions-layout{flex-direction:column-reverse}.ep-qnav{width:100%;position:static}.ep-qnav-grid{grid-template-columns:repeat(auto-fill,minmax(36px,1fr))}}@media (max-width: 700px){.ep-header{align-items:flex-start;flex-direction:column}.ep-header-progress{width:100%;align-items:stretch}.ep-progress-bar-wrap{width:100%}.ep-main{padding:20px 12px 56px}.ep-intro,.ep-prep-loader{margin-top:12px;padding:24px 18px;border-radius:18px}.ep-intro-stat-grid,.ep-intro-stat-grid.practice{grid-template-columns:1fr}.ep-nav-row{flex-direction:column}}@media print{body,.ep-root,.ep-main{background:#fff!important;color:#000!important;padding:0!important;margin:0!important;max-width:100%!important}.ep-header,.ep-results-actions,.ep-toggle,.ep-timer-badge{display:none!important}.ep-score-card{border:1px solid #000000!important;box-shadow:none!important}.ep-review-card{page-break-inside:avoid;border:1px solid #000000!important}}:root{--sp-bg: #f8fafc;--sp-surface: #ffffff;--sp-border: #e5e7eb;--sp-border-hover: #cbd5e1;--sp-text: #0f172a;--sp-muted: #64748b;--sp-radius: 14px;--sp-radius-sm: 9px;--sp-radius-lg: 18px;--sp-shadow: 0 1px 2px rgba(15, 23, 42, .05);--sp-shadow-md: 0 8px 24px rgba(15, 23, 42, .08);--sp-shadow-lg: 0 18px 40px rgba(15, 23, 42, .1);--sp-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--brand-primary: #1d4ed8;--brand-accent: #2563eb;--brand-accent-light: #eff6ff;--status-success: #10b981;--status-success-bg: #dcfce7;--status-warning: #f59e0b;--status-warning-bg: #fef3c7;--status-error: #ef4444;--status-error-bg: #fee2e2}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.sp-root{min-height:100vh;background:var(--sp-bg);font-family:var(--sp-font);color:var(--sp-text);-webkit-font-smoothing:antialiased;position:relative}.sp-layout{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sp-sidebar{border-right:1px solid var(--sp-border);background:#f9fafb;padding:18px 14px;display:flex;flex-direction:column;gap:20px}.sp-sidebar-brand{display:flex;align-items:center;gap:10px}.sp-sidebar-nav{display:flex;flex-direction:column;gap:6px}.sp-sidebar-footnote{margin-top:auto;display:flex;align-items:center;gap:8px;font-size:.76rem;color:#64748b;font-weight:700;padding:10px;border-radius:12px;background:#eff6ff;border:1px solid #dbeafe}.sp-main{min-width:0}.sp-root:before{display:none}.sp-header{background:#ffffffe6;border-bottom:1px solid var(--sp-border);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.sp-header-brand{display:flex;align-items:center;gap:10px}.sp-header-logo{width:40px;height:40px;background:#0f172a;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--sp-shadow)}.sp-header-title{font-size:1.02rem;font-weight:700;color:var(--sp-text);letter-spacing:-.02em}.sp-header-subtitle{font-size:.74rem;color:var(--sp-muted);font-weight:500;font-style:italic}.sp-header-logo-mark{background:#0f172a}.sp-header-right{display:flex;align-items:center;gap:10px}.sp-user-chip{display:flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;background:#f8fbff;border-radius:99px;border:1px solid var(--sp-border);font-size:.84rem;font-weight:600;color:var(--sp-text);cursor:pointer;font-family:var(--sp-font);transition:background .15s,border-color .15s}.sp-user-chip:hover,.sp-user-chip.open{background:#eff6ff;border-color:var(--sp-border-hover)}.sp-user-chevron{color:var(--sp-muted);flex-shrink:0;transition:transform .15s ease}.sp-user-chip.open .sp-user-chevron{transform:rotate(180deg)}.sp-user-menu-wrap{position:relative}.sp-user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:196px;background:#fff;border:1px solid var(--sp-border);border-radius:12px;box-shadow:0 12px 32px #0f172a1f;padding:6px;z-index:500;animation:sp-dropdown-in .15s ease-out}@keyframes sp-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sp-user-dropdown-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;border-radius:8px;background:transparent;font-family:var(--sp-font);font-size:.84rem;font-weight:600;color:var(--sp-text);cursor:pointer;text-align:left;transition:background .12s ease}.sp-user-dropdown-item:hover{background:#f8fafc}.sp-user-dropdown-item--danger{color:#dc2626}.sp-user-dropdown-item--danger:hover{background:#fef2f2}.sp-user-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#60a5fa,#22c55e);display:flex;align-items:center;justify-content:center;font-size:.72rem;color:#fff;font-weight:700;overflow:hidden;flex-shrink:0}.sp-user-avatar-img{width:100%;height:100%;object-fit:cover}.sp-breadcrumb{display:flex;align-items:center;gap:6px;padding:16px 24px 0;font-size:.8rem;font-weight:500;color:var(--sp-muted);flex-wrap:wrap;width:100%}.sp-breadcrumb-item{cursor:pointer;color:var(--sp-muted);transition:color .15s}.sp-breadcrumb-item:hover{color:var(--brand-accent)}.sp-breadcrumb-sep{color:#cbd5e1}.sp-breadcrumb-current{color:var(--sp-text);font-weight:600}.sp-content{width:100%;padding:24px 28px 48px}.sp-section-title{font-size:1.35rem;font-weight:700;color:var(--sp-text);margin-bottom:4px;letter-spacing:-.03em}.sp-section-sub{font-size:.92rem;color:var(--sp-muted);font-weight:500;margin-bottom:20px}.sp-grade-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-top:16px}.sp-grade-card{background:#fffffff0;border-radius:var(--sp-radius);border:1px solid var(--sp-border);padding:24px 16px;text-align:center;cursor:pointer;transition:all .2s ease;box-shadow:var(--sp-shadow);display:flex;flex-direction:column;align-items:center;position:relative;overflow:hidden}.sp-grade-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#2563eb,#60a5fa);opacity:0;transition:opacity .2s}.sp-grade-card:hover{transform:translateY(-2px);border-color:var(--sp-border-hover);box-shadow:var(--sp-shadow-md)}.sp-grade-card:hover:before{opacity:1}.sp-grade-card-icon{width:54px;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.sp-grade-card-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-accent)}.sp-grade-card-number{font-size:2rem;font-weight:700;margin:4px 0 2px;color:var(--sp-text)}.sp-grade-card-desc{font-size:.82rem;font-weight:500;color:var(--sp-muted)}.sp-subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.sp-subject-card{background:#fffffff0;border-radius:var(--sp-radius);border:1px solid var(--sp-border);padding:22px 20px;cursor:pointer;transition:all .2s ease;box-shadow:var(--sp-shadow);position:relative;overflow:hidden}.sp-subject-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#2563eb,#60a5fa);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.sp-subject-card:hover{transform:translateY(-2px);border-color:var(--sp-border-hover);box-shadow:var(--sp-shadow-md)}.sp-subject-card:hover:after{transform:scaleX(1)}.sp-subject-card-icon{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.sp-subject-card-name{font-size:1.05rem;font-weight:700;color:var(--sp-text);margin-bottom:10px}.sp-subject-badge-row{display:flex;gap:6px;flex-wrap:wrap}.sp-badge{font-size:.7rem;font-weight:600;padding:4px 10px;border-radius:6px;display:inline-flex;align-items:center;gap:4px}.sp-badge-practice{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.sp-badge-test{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}.sp-badge-chapters{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.sp-badge-concepts{background:#f5f3ff;color:#6d28d9;border:1px solid #ddd6fe}.sp-subject-hero{background:#ffffffe6;border:1px solid var(--sp-border);border-radius:var(--sp-radius-lg);padding:28px;margin-bottom:20px;display:flex;align-items:center;gap:20px;box-shadow:var(--sp-shadow)}.sp-subject-hero-icon{width:68px;height:68px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sp-subject-hero-content{flex:1}.sp-subject-hero-grade{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;color:var(--brand-accent)}.sp-subject-hero-title{font-size:1.55rem;font-weight:700;color:var(--sp-text);letter-spacing:-.03em;margin-bottom:6px}.sp-subject-hero-sub{font-size:.88rem;font-weight:500;line-height:1.45;color:var(--sp-muted);max-width:620px}.sp-subject-hero-meta{font-size:.9rem;color:var(--sp-muted);font-weight:500}.sp-subject-hero-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.sp-subject-stat-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:#f8fafc;border:1px solid var(--sp-border);color:#475569;font-size:.78rem;font-weight:700}.sp-full-exam-card{border-radius:var(--sp-radius);padding:22px 28px;background:#fffffff0;border:1px solid var(--sp-border);display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px;box-shadow:var(--sp-shadow);position:relative;overflow:hidden}.sp-full-exam-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:#2563eb}.sp-full-exam-title{font-size:1.08rem;font-weight:700;margin-bottom:5px;display:flex;align-items:center;gap:8px;color:var(--sp-text)}.sp-full-exam-sub{font-size:.86rem;color:var(--sp-muted);font-weight:500}.sp-full-exam-actions{display:flex;gap:10px;flex-shrink:0}.sp-btn-full-practice{background:#fff;color:#334155;border-color:#cbd5e1}.sp-btn-full-practice:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.sp-btn-full-test{background:#1e40af;color:#fff;border-color:#1e40af;font-weight:700}.sp-btn-full-test:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.sp-chapter-list{display:flex;flex-direction:column;gap:10px}.sp-chapter-row{background:#fffffff0;border:1px solid var(--sp-border);border-radius:var(--sp-radius);padding:18px 20px;display:flex;align-items:center;gap:16px;transition:all .2s ease}.sp-chapter-row:hover{border-color:var(--sp-border-hover);box-shadow:var(--sp-shadow-md)}.sp-chapter-row-clickable{cursor:pointer}.sp-chapter-row-clickable:focus-visible{outline:2px solid #bfdbfe;outline-offset:2px}.sp-chapter-seq{min-width:36px;height:36px;border-radius:10px;font-size:.85rem;font-weight:700;display:flex;align-items:center;justify-content:center}.sp-chapter-info{flex:1;min-width:0}.sp-chapter-name{font-size:1rem;font-weight:900;color:var(--sp-text);margin-bottom:6px}.sp-chapter-meta{display:flex;gap:8px;flex-wrap:wrap}.sp-chapter-row-chevron{color:#94a3b8;flex-shrink:0;display:flex;align-items:center}.sp-chapter-row-clickable:hover .sp-chapter-row-chevron{color:var(--brand-primary)}.sp-chapter-actions{display:flex;gap:8px;flex-shrink:0}.sp-btn{padding:10px 16px;border-radius:14px;font-size:.84rem;font-weight:900;cursor:pointer;border:1.5px solid transparent;display:inline-flex;align-items:center;gap:6px;transition:all .15s ease;font-family:var(--sp-font);white-space:nowrap}.sp-btn:disabled{opacity:.45;cursor:not-allowed}.sp-btn-practice{background:#fff;color:#334155;border-color:#cbd5e1}.sp-btn-practice:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.sp-btn-test{background:#1e40af;color:#fff;border-color:#1e40af}.sp-btn-test:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.sp-quiz-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;z-index:500;padding:32px 16px;overflow-y:auto}.sp-quiz-modal{background:var(--sp-surface);border-radius:26px;width:100%;max-width:700px;border:3px solid var(--sp-border);box-shadow:0 32px 60px -12px #00000047;overflow:hidden;animation:sp-fade-in .22s ease-out}@keyframes sp-fade-in{0%{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}.sp-quiz-header{padding:18px 22px;border-bottom:1px solid var(--sp-border);display:flex;align-items:center;justify-content:space-between}.sp-quiz-title{font-size:1rem;font-weight:900;color:var(--sp-text)}.sp-quiz-progress-text{font-size:.8rem;color:var(--sp-muted);font-weight:800;margin-top:3px}.sp-quiz-close{background:#f1f5f9;border:none;color:var(--sp-muted);width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.sp-quiz-close:hover{background:#e2e8f0;color:var(--sp-text)}.sp-quiz-progress-bar{height:4px;background:#f1f5f9}.sp-quiz-progress-fill{height:100%;background:linear-gradient(90deg,#22c55e,#60a5fa);transition:width .35s ease}.sp-quiz-body{padding:28px 24px}.sp-quiz-q-num{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sp-muted);margin-bottom:10px}.sp-quiz-question{font-size:1.18rem;font-weight:900;color:var(--sp-text);line-height:1.6;margin-bottom:22px}.sp-quiz-options{display:flex;flex-direction:column;gap:10px}.sp-quiz-option{padding:14px 16px;border-radius:16px;border:2px solid var(--sp-border);background:var(--sp-surface);font-size:.98rem;font-weight:800;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:14px;text-align:left;font-family:var(--sp-font);color:var(--sp-text)}.sp-quiz-option:hover:not(.selected):not(.correct):not(.wrong){border-color:var(--sp-border-hover);background:#f8fafc;transform:translate(2px)}.sp-quiz-option.selected{border-color:#60a5fa;background:#eff6ff;color:var(--sp-text)}.sp-quiz-option.correct{border-color:var(--status-success);background:var(--status-success-bg);color:#065f46}.sp-quiz-option.wrong{border-color:var(--status-error);background:var(--status-error-bg);color:#991b1b}.sp-quiz-option-letter{width:30px;height:30px;border-radius:8px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;color:var(--sp-muted);flex-shrink:0}.sp-quiz-option.selected .sp-quiz-option-letter{background:#60a5fa;color:#fff}.sp-quiz-option.correct .sp-quiz-option-letter{background:var(--status-success);color:#fff}.sp-quiz-option.wrong .sp-quiz-option-letter{background:var(--status-error);color:#fff}.sp-quiz-explanation{margin-top:20px;padding:14px 16px;background:#fff7ed;border-left:4px solid var(--brand-accent);border-radius:0 10px 10px 0;font-size:.88rem;color:var(--sp-text);line-height:1.6}.sp-quiz-explanation-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--sp-muted);margin-bottom:6px;display:block}.sp-quiz-footer{padding:18px 22px;border-top:1px solid var(--sp-border);display:flex;justify-content:space-between;align-items:center;background:#f8fafc}.sp-results{padding:36px 28px;text-align:center}.sp-results-icon{margin-bottom:20px;display:flex;justify-content:center;color:var(--brand-primary)}.sp-results-title{font-size:1.5rem;font-weight:900;color:var(--sp-text);margin-bottom:8px}.sp-results-sub{font-size:.88rem;color:var(--sp-muted);margin-bottom:28px}.sp-results-stats{display:flex;gap:14px;justify-content:center;margin-bottom:28px}.sp-stat-box{background:var(--sp-surface);border:1.5px solid var(--sp-border);border-radius:12px;padding:16px 22px;min-width:90px}.sp-stat-val{font-size:1.6rem;font-weight:800;margin-bottom:4px}.sp-stat-lbl{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--sp-muted)}.sp-results-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.sp-btn-primary{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border:none;padding:11px 24px;border-radius:14px;font-size:.9rem;font-weight:900;cursor:pointer;transition:transform .15s,filter .15s;font-family:var(--sp-font)}.sp-btn-primary:hover{filter:saturate(1.05);transform:translateY(-1px)}.sp-btn-primary:disabled{opacity:.55;cursor:not-allowed}.sp-btn-secondary{background:#fff;color:var(--sp-text);border:2px solid var(--sp-border);padding:11px 24px;border-radius:14px;font-size:.9rem;font-weight:900;cursor:pointer;transition:all .15s;font-family:var(--sp-font);display:inline-flex;align-items:center;gap:6px}.sp-btn-secondary:hover:not(:disabled){background:#eff6ff;border-color:var(--sp-border-hover)}.sp-btn-secondary:disabled{opacity:.55;cursor:not-allowed}.sp-btn-ghost{background:#fff;color:var(--sp-text);border:2px solid var(--sp-border);padding:11px 24px;border-radius:14px;font-size:.9rem;font-weight:900;cursor:pointer;transition:all .15s;font-family:var(--sp-font)}.sp-btn-ghost:hover{background:#eff6ff;border-color:var(--sp-border-hover)}.sp-loading{display:flex;flex-direction:column;align-items:center;padding:60px;color:var(--sp-muted);font-size:.88rem;font-weight:500;gap:14px}.sp-spinner{width:30px;height:30px;border:3px solid var(--sp-border);border-top-color:var(--brand-accent);border-radius:50%;animation:sp-spin .7s linear infinite}@keyframes sp-spin{to{transform:rotate(360deg)}}.sp-empty{text-align:center;padding:56px 20px;color:var(--sp-muted)}.sp-empty-icon{color:#cbd5e1;margin-bottom:14px;display:flex;justify-content:center}.sp-empty-title{font-size:1.05rem;font-weight:700;color:var(--brand-primary);margin-bottom:8px}.sp-empty-sub{font-size:.88rem}.sp-history-list{display:flex;flex-direction:column;gap:12px}.sp-top-nav{display:none}.sp-nav-btn{width:100%;display:flex;align-items:center;gap:10px;background:transparent;border:1px solid transparent;color:var(--sp-muted);font-size:.88rem;font-weight:800;cursor:pointer;transition:all .15s;padding:10px 12px;border-radius:12px}.sp-nav-btn:hover{background:#f8fbff;color:var(--brand-primary);border-color:#dbeafe}.sp-nav-btn.active{color:var(--brand-primary);font-weight:700;background:#eff6ff;border-color:#bfdbfe;box-shadow:none}.sp-nav-icon{display:flex;align-items:center}.sp-sidebar-learn-nav{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--sp-border);padding-top:14px}.sp-sidebar-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px 4px;color:var(--sp-muted);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.sp-sidebar-section-head button{border:none;background:transparent;color:var(--brand-primary);cursor:pointer;font-family:var(--sp-font);font-size:.68rem;font-weight:700;text-transform:none;letter-spacing:0}.sp-subject-nav-btn{width:100%;border:1px solid transparent;background:transparent;color:#475569;border-radius:10px;padding:8px 10px;display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer;font-family:var(--sp-font);font-size:.84rem;font-weight:500;transition:background .15s ease,border-color .15s ease,color .15s ease}.sp-subject-nav-btn:hover{background:#fff;border-color:var(--sp-border);color:var(--sp-text)}.sp-subject-nav-btn.active{background:#fff;border-color:#bfdbfe;color:var(--brand-primary);font-weight:700;box-shadow:var(--sp-shadow)}.sp-sidebar-subject-group{display:flex;flex-direction:column;gap:4px}.sp-sidebar-chapter-nav{display:flex;flex-direction:column;gap:3px;margin:0 0 4px 14px;padding-left:10px;border-left:1px solid #dbeafe}.sp-chapter-nav-btn{width:100%;border:1px solid transparent;background:transparent;color:#64748b;border-radius:8px;padding:7px 8px;display:flex;align-items:center;gap:7px;text-align:left;cursor:pointer;font-family:var(--sp-font);font-size:.78rem;font-weight:600;line-height:1.25;transition:background .15s ease,border-color .15s ease,color .15s ease}.sp-chapter-nav-btn:hover{background:#fff;border-color:var(--sp-border);color:var(--sp-text)}.sp-chapter-nav-btn.active{background:#eff6ff;border-color:#bfdbfe;color:var(--brand-primary)}.sp-chapter-nav-dot{width:6px;height:6px;border-radius:999px;background:currentColor;opacity:.55;flex-shrink:0}.sp-grade-badge-chip{display:flex;align-items:center;gap:6px;padding:5px 12px;background:#f8fafc;border-radius:99px;border:1px solid var(--sp-border);font-size:.8rem;font-weight:700;color:var(--sp-text)}.sp-grade-change-btn{background:none;border:none;color:var(--sp-muted);font-size:.72rem;font-weight:600;cursor:pointer;padding:0 0 0 8px;text-decoration:underline;border-left:1px solid rgba(15,23,42,.1);transition:color .15s}.sp-grade-change-btn:hover{color:var(--brand-primary)}.sp-score-ring-wrap{display:flex;justify-content:center;margin-bottom:24px}.sp-score-ring{position:relative;width:120px;height:120px}.sp-score-ring svg{transform:rotate(-90deg)}.sp-score-ring-bg{fill:none;stroke:#e2e8f0;stroke-width:8}.sp-score-ring-fill{fill:none;stroke-width:8;stroke-linecap:round;transition:stroke-dasharray .6s ease}.sp-score-ring-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.sp-score-pct{font-size:1.4rem;font-weight:900;color:var(--brand-primary)}.sp-score-label{font-size:.62rem;font-weight:600;color:var(--sp-muted);text-transform:uppercase;letter-spacing:.05em}.sp-review-list{margin-top:20px;display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;text-align:left;padding-bottom:8px}.sp-review-item{padding:14px;border-radius:10px;border:1px solid}.sp-review-item.correct{background:#f0fdf4;border-color:#bbf7d0}.sp-review-item.wrong{background:#fff5f5;border-color:#fecaca}.sp-review-q{font-size:.88rem;font-weight:600;color:var(--brand-primary);margin-bottom:8px}.sp-review-answers{font-size:.8rem;display:flex;flex-direction:column;gap:3px}.sp-review-your{color:#991b1b}.sp-review-correct{color:#065f46;font-weight:600}.sp-btn-next{background:var(--brand-primary);color:#fff;border:none;padding:10px 22px;border-radius:12px;font-size:.9rem;font-weight:700;cursor:pointer;transition:background .15s;font-family:var(--sp-font);display:inline-flex;align-items:center;justify-content:center;gap:6px}.sp-btn-next:hover:not(:disabled){filter:saturate(1.05);transform:translateY(-1px)}.sp-btn-next:disabled{opacity:.5;cursor:not-allowed}.sp-history-type-badge{padding:3px 9px;border-radius:6px;font-size:.7rem;font-weight:700;border:1px solid;white-space:nowrap}.sp-workspace-back{border:1px solid var(--sp-border);background:#fff;color:#475569;border-radius:10px;padding:8px 12px;display:inline-flex;align-items:center;gap:6px;font:700 .82rem var(--sp-font);cursor:pointer;transition:all .15s ease}.sp-workspace-back:hover{background:#f8fafc;border-color:var(--sp-border-hover);color:var(--brand-primary)}.sp-chapter-detail-hero{margin-top:0;background:#fffffff0;border:1px solid var(--sp-border);border-radius:var(--sp-radius-lg);padding:24px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;box-shadow:var(--sp-shadow)}.sp-chapter-detail-seq{width:54px;height:54px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:#eff6ff;color:var(--brand-primary);border:1px solid #bfdbfe;font-size:1.05rem;font-weight:800}.sp-chapter-detail-copy{min-width:0}.sp-chapter-stat-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.sp-stat-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.76rem;font-weight:700;border:1px solid transparent;white-space:nowrap}.sp-stat-chip.chapters{background:#f8fafc;color:#475569;border-color:#e2e8f0}.sp-stat-chip.concepts{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}.sp-stat-chip.questions{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.sp-stat-chip.practice{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.sp-stat-chip.test{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.sp-chapter-detail-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.sp-paper-mode-card{margin-top:14px;background:#fffffff0;border:1px solid var(--sp-border);border-radius:var(--sp-radius-lg);box-shadow:var(--sp-shadow);overflow:hidden}.sp-paper-mode-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--sp-border);background:#fff}.sp-paper-mode-title{color:var(--sp-text);font-size:.98rem;font-weight:800;letter-spacing:-.02em}.sp-paper-mode-sub{margin-top:3px;color:var(--sp-muted);font-size:.82rem;font-weight:500}.sp-paper-mode-tabs{display:inline-flex;gap:6px;padding:4px;border:1px solid var(--sp-border);border-radius:14px;background:#f8fafc;flex-shrink:0}.sp-paper-mode-tab{border:none;border-radius:10px;background:transparent;color:#475569;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:8px 12px;font:800 .8rem var(--sp-font);transition:background .15s ease,color .15s ease,box-shadow .15s ease;white-space:nowrap}.sp-paper-mode-tab span{min-width:20px;padding:1px 6px;border-radius:99px;background:#e2e8f0;color:#475569;font-size:.68rem}.sp-paper-mode-tab:hover{color:var(--brand-primary)}.sp-paper-mode-tab.active{background:#fff;color:var(--brand-primary);box-shadow:0 1px 4px #0f172a14}.sp-paper-mode-tab.active span{background:#dbeafe;color:#1d4ed8}.sp-workspace-section{margin-top:24px}.sp-workspace-shell,.sp-paper-picker-panel{width:min(100%,1180px)}.sp-concept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.sp-concept-card{background:#fff;border:1px solid var(--sp-border);border-radius:var(--sp-radius);padding:16px;display:flex;gap:12px;align-items:flex-start;box-shadow:var(--sp-shadow)}.sp-concept-body{flex:1;min-width:0}.sp-concept-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:5px}.sp-concept-title{color:var(--sp-text);font-size:.92rem;font-weight:800;min-width:0}.sp-concept-num{color:var(--brand-primary)}.sp-concept-index{width:28px;height:28px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#eff6ff;color:var(--brand-primary);border:1px solid #bfdbfe;font-size:.78rem;font-weight:800;flex-shrink:0}.sp-concept-desc{color:var(--sp-muted);font-size:.84rem;font-weight:500;line-height:1.5}.sp-concepts-empty{grid-column:1 / -1}.sp-paper-picker-panel{background:var(--sp-surface);border-radius:var(--sp-radius-lg);border:1px solid var(--sp-border);box-shadow:var(--sp-shadow);overflow:hidden;animation:sp-fade-in .22s ease-out}.sp-paper-picker-panel.embedded{width:100%;border:none;border-radius:0;box-shadow:none;animation:none}.sp-paper-picker-panel.embedded .sp-paper-picker-toolbar{padding:14px 18px}.sp-paper-picker-panel.embedded .sp-paper-picker-body{padding:0 18px 18px}.sp-paper-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a5c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;z-index:600;padding:24px 16px;overflow-y:auto}.sp-paper-picker-modal{background:var(--sp-surface);border-radius:20px;width:min(920px,100%);max-height:calc(100vh - 48px);border:1px solid var(--sp-border);box-shadow:0 24px 64px -24px #0f172a73;overflow:hidden;animation:sp-fade-in .22s ease-out;display:flex;flex-direction:column}.sp-paper-picker-header{padding:18px 22px 14px;border-bottom:1px solid var(--sp-border);display:flex;align-items:flex-start;justify-content:flex-start;gap:14px;position:sticky;top:0;background:#fff;z-index:2}.sp-paper-picker-title{font-size:1.04rem;font-weight:700;color:var(--sp-text);letter-spacing:-.02em;display:flex;align-items:center;gap:8px}.sp-paper-picker-sub{font-size:.82rem;color:var(--sp-muted);font-weight:500;margin-top:3px}.sp-paper-picker-toolbar{display:flex;align-items:center;gap:12px;padding:12px 22px;border-bottom:1px solid var(--sp-border);background:#fff;flex-wrap:wrap}.sp-paper-search{flex:1 1 320px;min-width:240px;display:flex;align-items:center;gap:8px;border:1px solid var(--sp-border);border-radius:12px;background:#f8fafc;padding:9px 12px;color:var(--sp-muted)}.sp-paper-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--sp-text);font:500 .86rem var(--sp-font)}.sp-paper-search input::placeholder{color:#94a3b8}.sp-paper-filter-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.sp-paper-filter-btn{border:1px solid var(--sp-border);background:#fff;color:#475569;border-radius:10px;padding:8px 10px;display:inline-flex;align-items:center;gap:7px;font:700 .75rem var(--sp-font);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.sp-paper-filter-btn:hover{background:#f8fafc;border-color:var(--sp-border-hover)}.sp-paper-filter-btn.active{background:#eff6ff;border-color:#bfdbfe;color:var(--brand-primary)}.sp-paper-filter-btn span{min-width:20px;padding:1px 6px;border-radius:99px;background:#f1f5f9;color:#64748b;font-size:.68rem}.sp-paper-filter-btn.active span{background:#dbeafe;color:#1d4ed8}.sp-paper-picker-count{color:var(--sp-muted);font-size:.78rem;font-weight:600;white-space:nowrap;margin-left:auto}.sp-paper-picker-body{padding:12px;overflow-y:auto}.sp-paper-table-wrap{width:100%;border:1px solid var(--sp-border);border-radius:14px;overflow:hidden;background:#fff}.sp-paper-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.8rem}.sp-paper-table th{background:#f8fafc;color:#475569;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-align:left;text-transform:uppercase;padding:9px 10px;border-bottom:1px solid var(--sp-border)}.sp-paper-table td{padding:10px;border-bottom:1px solid #eef2f7;color:#334155;vertical-align:middle;font-weight:600;min-width:0}.sp-paper-table th:first-child,.sp-paper-table td:first-child{width:25%}.sp-paper-table th:nth-child(2),.sp-paper-table td:nth-child(2){width:8%}.sp-paper-table th:nth-child(3),.sp-paper-table td:nth-child(3){width:13%}.sp-paper-table th:nth-child(4),.sp-paper-table td:nth-child(4){width:14%}.sp-paper-table th:nth-child(5),.sp-paper-table td:nth-child(5){width:12%}.sp-paper-table th:nth-child(6),.sp-paper-table td:nth-child(6){width:7%}.sp-paper-table th:nth-child(7),.sp-paper-table td:nth-child(7){width:11%}.sp-paper-table th:nth-child(8),.sp-paper-table td:nth-child(8){width:10%}.sp-paper-table tbody tr:last-child td{border-bottom:none}.sp-paper-row{transition:background .15s ease}.sp-paper-row:hover{background:#f8fbff}.sp-paper-row.status-new{box-shadow:inset 3px 0 #2563eb}.sp-paper-row.status-completed{box-shadow:inset 3px 0 #10b981}.sp-paper-row.status-in_progress{box-shadow:inset 3px 0 #d97706}.sp-paper-title-cell{display:flex;align-items:center;gap:10px;min-width:0}.sp-paper-title-cell>div{min-width:0}.sp-paper-number-badge{width:30px;height:30px;border-radius:9px;background:#eff6ff;color:var(--brand-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}.sp-paper-table-title{color:var(--sp-text);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-paper-table-sub{margin-top:2px;color:var(--sp-muted);font-size:.72rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-paper-status-badge{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:99px;font-size:.66rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.sp-paper-status-badge.new{background:#eff6ff;color:#2563eb}.sp-paper-status-badge.completed{background:#dcfce7;color:#16a34a}.sp-paper-status-badge.in_progress{background:#fffbeb;color:#b45309}.sp-paper-type-chip{display:inline-flex;align-items:center;border:1px solid #dbeafe;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:3px 9px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.sp-paper-progress-cell{display:flex;flex-direction:column;gap:3px}.sp-paper-progress-cell span:last-child,.sp-paper-muted{color:var(--sp-muted);font-size:.74rem;font-weight:600}.sp-paper-score-chip{font-size:.73rem;font-weight:700;color:var(--sp-muted);background:#f8fafc;padding:2px 8px;border-radius:6px;border:1px solid var(--sp-border)}.sp-paper-score-chip.great{color:#16a34a;background:#f0fdf4;border-color:#bbf7d0}.sp-paper-score-chip.ok{color:#b45309;background:#fffbeb;border-color:#fde68a}.sp-paper-score-chip.poor{color:#dc2626;background:#fff5f5;border-color:#fecaca}.sp-paper-action-col{text-align:right;white-space:nowrap}.sp-paper-start-btn{min-width:78px;justify-content:center;padding:7px 11px;border-radius:8px;font-size:.78rem;font-weight:800;cursor:pointer;border:none;display:inline-flex;align-items:center;gap:5px;transition:all .15s;font-family:var(--sp-font);white-space:nowrap}.sp-paper-start-btn.start{background:#1e40af;color:#fff;border:1px solid #1e40af}.sp-paper-start-btn.start:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.sp-paper-start-btn.in-progress-btn{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.sp-paper-start-btn.in-progress-btn:hover:not(:disabled){background:#ffedd5}.sp-paper-start-btn.redo{background:#fff;color:#334155;border:1px solid #cbd5e1}.sp-paper-start-btn.redo:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.sp-paper-start-btn:disabled{opacity:.5;cursor:not-allowed}.sp-paper-picker-loading{padding:44px;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--sp-muted);font-size:.88rem;font-weight:500}.sp-paper-picker-empty{padding:40px 20px;text-align:center;color:var(--sp-muted);font-size:.88rem}.sp-paper-pagination-slot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid var(--sp-border);background:#f8fafc;color:var(--sp-muted);font-size:.74rem;font-weight:700}.sp-progress-dashboard{background:#fffffff0;border:2px solid var(--sp-border);border-radius:var(--sp-radius-lg);padding:22px;margin-bottom:24px;box-shadow:var(--sp-shadow)}.sp-progress-dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.sp-ai-plan-card{display:flex;align-items:flex-start;gap:14px;padding:16px;margin-bottom:18px;border-radius:var(--sp-radius);border:1px solid #e2e8f0;background:linear-gradient(135deg,#f8fafc,#fff 68%)}.sp-ai-plan-icon{width:44px;height:44px;border-radius:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe}.sp-ai-plan-copy{flex:1;min-width:0}.sp-ai-plan-kicker{font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:#2563eb;margin-bottom:3px}.sp-ai-plan-title{font-size:1rem;font-weight:900;color:var(--sp-text);margin-bottom:4px}.sp-ai-plan-copy p{margin:0;font-size:.82rem;font-weight:800;line-height:1.45;color:var(--sp-muted)}.sp-progress-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.sp-progress-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.sp-progress-panel{border-radius:var(--sp-radius);border:2px solid var(--sp-border);background:#fff;padding:16px}.sp-progress-panel-practice{background:linear-gradient(135deg,#f0fdf4,#fff);border-color:#bbf7d0}.sp-progress-panel-tests{background:linear-gradient(135deg,#eff6ff,#fff);border-color:#bfdbfe}.sp-progress-panel-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.sp-progress-panel-icon{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:#fffc;color:var(--brand-primary);border:1px solid rgba(15,23,42,.06)}.sp-progress-panel-title{font-size:1rem;font-weight:900;color:var(--sp-text)}.sp-progress-panel-sub,.sp-progress-help{font-size:.8rem;font-weight:800;color:var(--sp-muted)}.sp-progress-help{margin-top:12px;line-height:1.45}.sp-progress-metric-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.sp-progress-stat{background:#f8fbff;border:1px solid var(--sp-border);border-radius:var(--sp-radius);padding:14px 16px}.sp-progress-stat-primary{background:linear-gradient(135deg,#2563eb,#60a5fa);border-color:#bfdbfe;color:#fff}.sp-progress-stat-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sp-muted)}.sp-progress-stat-primary .sp-progress-stat-label{color:#94a3b8}.sp-progress-stat-value{font-size:1.5rem;font-weight:800;margin-top:4px;color:var(--brand-primary)}.sp-progress-stat-value.small{font-size:1.2rem}.sp-progress-stat-primary .sp-progress-stat-value{color:#fff}.sp-progress-stat-primary .sp-progress-stat-value.success{color:#34d399}.sp-progress-stat-primary .sp-progress-stat-value.warning{color:#fbbf24}.sp-progress-stat-primary .sp-progress-stat-value.error{color:#f87171}.sp-progress-stat-value.success{color:var(--status-success)}.sp-progress-stat-value.warning{color:var(--status-warning)}.sp-progress-stat-value.error{color:var(--status-error)}.sp-progress-chart-card{background:#f8fafc;border:1px solid var(--sp-border);border-radius:var(--sp-radius);padding:16px 16px 12px;margin-bottom:16px}.sp-progress-chart-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sp-muted);margin-bottom:12px}.sp-progress-chart-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:.68rem;color:#94a3b8;font-weight:600}.sp-performance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}.sp-performance-card{background:#fff;border:1px solid var(--sp-border);border-radius:var(--sp-radius);padding:16px}.sp-performance-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--sp-border)}.sp-performance-row:last-child{border-bottom:none;padding-bottom:0}.sp-performance-name{font-size:.9rem;font-weight:900;color:var(--sp-text)}.sp-performance-meta{font-size:.75rem;font-weight:800;color:var(--sp-muted);margin-top:2px}.sp-weak-areas{border:1px solid var(--sp-border);border-radius:var(--sp-radius);padding:16px;background:#fafafa}.sp-weak-areas-title{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;color:var(--brand-primary);margin-bottom:12px}.sp-weak-area-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--sp-border)}.sp-weak-area-row:last-child{border-bottom:none;padding-bottom:0}.sp-weak-area-info{flex:1;min-width:0}.sp-weak-area-subject{font-size:.68rem;font-weight:600;color:var(--sp-muted);text-transform:uppercase;letter-spacing:.04em}.sp-weak-area-name{font-size:.88rem;font-weight:600;color:var(--brand-primary);margin-top:2px}.sp-weak-area-score{font-size:.82rem;font-weight:800;flex-shrink:0}.sp-weak-area-score.error{color:var(--status-error)}.sp-weak-area-score.warning{color:var(--status-warning)}.sp-btn-practice-link{padding:6px 12px;border-radius:6px;font-size:.75rem;font-weight:700;background:linear-gradient(135deg,#22c55e,#60a5fa);color:#fff;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-family:var(--sp-font);transition:background .15s}.sp-btn-practice-link:hover{filter:saturate(1.05)}.sp-analytics-bar{margin-bottom:20px;padding:14px 16px;background:var(--sp-surface);border:1.5px solid var(--sp-border);border-radius:var(--sp-radius)}.sp-analytics-bar-label{font-size:.72rem;font-weight:700;color:var(--sp-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;display:flex;align-items:center;gap:6px}.sp-analytics-pills{display:flex;flex-wrap:wrap;gap:8px}.sp-analytics-pill{background:#f8fafc;border:1px solid var(--sp-border);color:var(--sp-text);padding:7px 14px;border-radius:99px;font-size:.8rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s;font-family:var(--sp-font)}.sp-analytics-pill:hover{background:#eff6ff;border-color:var(--sp-border-hover)}.sp-subject-hero-icon-neutral{width:68px;height:68px;border-radius:16px;background:linear-gradient(135deg,#eff6ff,#fff7ed);border:2px solid var(--sp-border);color:var(--brand-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sp-chapter-seq-neutral{background:#eff6ff!important;color:var(--brand-primary)!important;border:1px solid #bfdbfe}@media (max-width: 640px){.sp-layout{grid-template-columns:1fr}.sp-sidebar{border-right:none;border-bottom:1px solid #dbe4f0;position:sticky;top:0;z-index:120;background:#fffffff2}.sp-sidebar-nav{flex-direction:row;overflow-x:auto}.sp-sidebar-learn-nav{flex-direction:row;overflow-x:auto;border-top:none;padding-top:0}.sp-sidebar-subject-group{flex-direction:row;align-items:center;gap:6px}.sp-sidebar-chapter-nav{flex-direction:row;border-left:none;margin:0;padding-left:0}.sp-chapter-nav-btn{min-width:max-content}.sp-sidebar-section-head{display:none}.sp-subject-nav-btn{min-width:max-content}.sp-nav-btn{min-width:132px}.sp-sidebar-footnote{display:none}.sp-content{padding:16px 14px 48px}.sp-subject-hero{flex-direction:column;text-align:center;gap:14px;padding:22px}.sp-full-exam-card{flex-direction:column;align-items:stretch;text-align:center;padding:20px}.sp-full-exam-actions{flex-direction:column}.sp-chapter-row{flex-direction:column;align-items:flex-start;gap:14px}.sp-chapter-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.sp-chapter-seq{display:none}.sp-chapter-detail-hero{grid-template-columns:1fr;align-items:flex-start;padding:20px}.sp-paper-mode-header{flex-direction:column;align-items:stretch}.sp-paper-mode-tabs{width:100%}.sp-paper-mode-tab{flex:1;justify-content:center}.sp-paper-picker-panel.embedded .sp-paper-picker-toolbar{padding:12px 14px}.sp-paper-picker-panel.embedded .sp-paper-picker-body{padding:0 14px 14px}.sp-chapter-detail-actions{width:100%;display:grid;grid-template-columns:1fr}.sp-paper-picker-header{flex-direction:column}.sp-paper-picker-toolbar{flex-direction:column;align-items:stretch;padding:12px 14px}.sp-paper-filter-group{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.sp-paper-filter-btn{flex-shrink:0}.sp-paper-table{display:block}.sp-paper-table thead{display:none}.sp-paper-table tbody,.sp-paper-table tr,.sp-paper-table td{display:block;width:100%!important}.sp-paper-table tr{border-bottom:1px solid var(--sp-border);padding:12px}.sp-paper-table tbody tr:last-child{border-bottom:none}.sp-paper-table td{border-bottom:none;padding:7px 0;display:flex;justify-content:space-between;gap:14px;text-align:right}.sp-paper-table td:before{content:attr(data-label);color:var(--sp-muted);font-size:.7rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;text-align:left}.sp-paper-table td:first-child{display:block;text-align:left}.sp-paper-table td:first-child:before{display:none}.sp-paper-action-col{text-align:right}.sp-paper-start-btn{width:100%;justify-content:center}.sp-progress-stats,.sp-progress-split,.sp-performance-grid{grid-template-columns:1fr}.sp-ai-plan-card{flex-direction:column}.sp-weak-area-row{flex-direction:column;align-items:flex-start}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sp-profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:700;display:flex;justify-content:flex-end}.sp-profile-panel{width:100%;max-width:420px;height:100%;background:var(--sp-surface);box-shadow:-8px 0 32px #0f172a1f;display:flex;flex-direction:column;animation:sp-profile-slide-in .25s ease-out}@keyframes sp-profile-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.sp-profile-header{padding:20px 22px 16px;border-bottom:1px solid var(--sp-border);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sp-profile-title{font-size:1.1rem;font-weight:700;color:var(--brand-primary);letter-spacing:-.02em}.sp-profile-sub{font-size:.78rem;color:var(--sp-muted);font-weight:500;margin-top:3px}.sp-profile-close{width:36px;height:36px;border-radius:9px;border:1px solid var(--sp-border);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--sp-muted);flex-shrink:0;transition:background .15s,color .15s}.sp-profile-close:hover{background:#f8fafc;color:var(--sp-text)}.sp-profile-body{flex:1;overflow-y:auto;padding:22px}.sp-profile-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 0;color:var(--sp-muted);font-size:.88rem}.sp-profile-avatar-section{display:flex;align-items:center;gap:16px;padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--sp-border)}.sp-profile-avatar-wrap{width:72px;height:72px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid var(--sp-border)}.sp-profile-avatar-img{width:100%;height:100%;object-fit:cover}.sp-profile-avatar-fallback{width:100%;height:100%;background:var(--brand-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700}.sp-profile-avatar-actions{flex:1;min-width:0}.sp-profile-upload-btn{padding:8px 14px;font-size:.82rem}.sp-profile-remove-btn{margin-left:8px;margin-top:8px;background:none;border:none;color:var(--status-error);font-size:.78rem;font-weight:600;cursor:pointer;font-family:var(--sp-font)}.sp-profile-remove-btn:hover:not(:disabled){text-decoration:underline}.sp-profile-remove-btn:disabled{opacity:.5;cursor:not-allowed}.sp-profile-hint{font-size:.72rem;color:var(--sp-muted);margin-top:8px}.sp-profile-form{display:flex;flex-direction:column;gap:16px}.sp-profile-field{display:flex;flex-direction:column;gap:6px}.sp-profile-label{font-size:.75rem;font-weight:600;color:var(--sp-muted);text-transform:uppercase;letter-spacing:.04em}.sp-profile-input{padding:10px 12px;border-radius:9px;border:1.5px solid var(--sp-border);font-size:.9rem;font-family:var(--sp-font);color:var(--sp-text);background:#fff;transition:border-color .15s}.sp-profile-input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 3px #0f172a14}.sp-profile-username{font-size:.78rem;color:var(--sp-muted);margin-top:4px}.sp-profile-account-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--sp-border)}.sp-profile-logout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:10px;border:1.5px solid #fecaca;background:#fef2f2;color:#dc2626;font-family:var(--sp-font);font-size:.86rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.sp-profile-logout-btn:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.sp-profile-logout-btn:disabled{opacity:.55;cursor:not-allowed}.sp-profile-footer{padding:16px 22px 22px;border-top:1px solid var(--sp-border);display:flex;gap:10px;justify-content:flex-end}.sp-profile-footer .sp-btn-primary,.sp-profile-footer .sp-btn-secondary{padding:10px 18px;font-size:.85rem}@media (max-width: 480px){.sp-profile-panel{max-width:100%}.sp-profile-avatar-section{flex-direction:column;align-items:flex-start}}.sp-curiosity-section{margin-bottom:24px;padding:18px;background:#ffffffeb;border:1px solid var(--sp-border);border-radius:var(--sp-radius);box-shadow:var(--sp-shadow)}.sp-curiosity-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap}.sp-curiosity-kicker{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:2px}.sp-curiosity-title{font-size:1rem;font-weight:800;color:var(--sp-text)}.sp-curiosity-difficulty{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;color:var(--sp-muted)}.sp-curiosity-diff-btn{padding:4px 10px;border-radius:99px;border:1px solid var(--sp-border);background:#fff;font-size:.7rem;font-weight:800;cursor:pointer;color:var(--sp-muted);font-family:var(--sp-font);text-transform:capitalize}.sp-curiosity-diff-btn.active{background:var(--brand-accent-light);border-color:#93c5fd;color:var(--brand-primary)}.sp-curiosity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.sp-curiosity-card{text-align:left;background:#f8fafc;border:1px solid var(--sp-border);border-radius:var(--sp-radius-sm);padding:14px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;font-family:var(--sp-font)}.sp-curiosity-scientist-img,.sp-curiosity-scientist-fallback{width:52px;height:52px;border-radius:12px;border:1px solid var(--sp-border);margin-bottom:8px;object-fit:cover}.sp-curiosity-scientist-fallback{background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center}.sp-curiosity-card:hover{border-color:#93c5fd;box-shadow:var(--sp-shadow);transform:translateY(-2px)}.sp-curiosity-card-skeleton{min-height:100px;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;animation:sp-shimmer 1.2s infinite;cursor:default}.sp-curiosity-card-icon{width:36px;height:36px;border-radius:10px;background:#fff;border:1px solid var(--sp-border);display:flex;align-items:center;justify-content:center;color:var(--brand-primary);margin-bottom:8px}.sp-curiosity-card-kicker{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:2px}.sp-curiosity-card-label{font-size:.72rem;font-weight:800;color:var(--brand-primary);margin-bottom:4px}.sp-curiosity-card-title{font-size:.85rem;font-weight:700;color:var(--sp-text);line-height:1.35}.sp-curiosity-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.sp-curiosity-modal{background:#fff;border-radius:var(--sp-radius);padding:24px;max-width:480px;width:100%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:var(--sp-shadow-lg);border:1px solid var(--sp-border)}.sp-curiosity-close{position:absolute;top:12px;right:12px;background:#f1f5f9;border:none;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--sp-muted)}.sp-curiosity-modal-kicker{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:6px}.sp-curiosity-modal-title{font-size:1.15rem;font-weight:800;color:var(--sp-text);margin-bottom:14px;padding-right:28px}.sp-curiosity-modal-body{font-size:.92rem;line-height:1.55;color:var(--sp-text)}.sp-curiosity-scientist-head{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:start;margin-bottom:8px}.sp-curiosity-points-list{margin:10px 0 8px 18px;display:grid;gap:6px}.sp-curiosity-options{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.sp-curiosity-option-chip{font-size:.76rem;border:1px solid #cbd5e1;border-radius:99px;padding:4px 8px;background:#f8fafc;font-weight:700;color:#334155}.sp-curiosity-modal-lead{font-size:1rem;font-weight:700;margin-bottom:12px}.sp-curiosity-hint{color:var(--sp-muted);margin-bottom:12px;font-size:.88rem}.sp-curiosity-answer{margin-top:12px;padding:12px;background:#f8fafc;border-radius:var(--sp-radius-sm);border:1px solid var(--sp-border)}.sp-curiosity-answer summary{cursor:pointer;font-weight:800;color:var(--brand-primary);font-size:.85rem}@keyframes sp-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}:root{--background: #ffffff;--sidebar-bg: #f9f9f9;--card: #ffffff;--card-hover: #f4f4f4;--border: #e5e5e5;--border-sidebar: #e5e5e5;--border-focus: #171717;--foreground: #0d0d0d;--muted-foreground: #8e8ea0;--sidebar-text: #0d0d0d;--sidebar-muted: #6e6e80;--brand: #1d4ed8;--brand-dark: #1e3a8a;--brand-light: #3b82f6;--brand-surface: rgba(29, 78, 216, .08);--indigo-400: #94a3b8;--indigo-500: #1d4ed8;--indigo-600: #1e3a8a;--indigo-glow: rgba(15, 23, 42, .05);--violet-500: #334155;--violet-600: #1e293b;--success: #19c37d;--warning: #d97706;--danger: #ef4444;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Inter", -apple-system, sans-serif;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 2px 8px rgba(0,0,0,.08)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-sans);font-size:15px;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#b4b4b4}.app-layout{display:flex;min-height:100vh;width:100vw;overflow-x:hidden}@media (max-width: 900px){.app-layout{flex-direction:column}}.sidebar{width:320px;background:var(--sidebar-bg);border-right:1px solid var(--border-sidebar);display:flex;flex-direction:column;flex-shrink:0;height:100vh;position:sticky;top:0;overflow-y:auto;overflow-x:hidden}.sidebar::-webkit-scrollbar{width:0}@media (max-width: 900px){.sidebar{width:100%;height:auto;position:relative;border-right:none;border-bottom:1px solid var(--border)}}.sidebar-header{padding:1.25rem 1rem 1rem;border-bottom:1px solid var(--border-sidebar);display:flex;flex-direction:column;gap:.15rem}.logo-group{display:flex;align-items:center;gap:.55rem}.logo-text{font-family:var(--font-sans);font-size:1rem;font-weight:700;letter-spacing:-.02em;color:var(--foreground)}.badge-beta{font-size:.6rem;font-weight:600;letter-spacing:.04em;background:#ececec;color:#6e6e80;padding:.1rem .4rem;border-radius:4px;border:1px solid #d4d4d4;text-transform:uppercase}.sidebar-subtitle{font-size:.68rem;color:var(--muted-foreground);margin-top:.1rem}.sidebar-content{padding:1rem .75rem;display:flex;flex-direction:column;gap:1rem;flex:1}.control-group{display:flex;flex-direction:column;gap:.4rem}.section-label{font-size:.65rem;font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.08em;padding:.5rem .25rem .35rem;display:flex;align-items:center;gap:.4rem}.textarea-wrapper{display:flex;flex-direction:column;gap:.5rem}.sidebar-input{width:100%;background:#fff;border:1px solid var(--border);border-radius:6px;color:var(--foreground);font-family:var(--font-sans);font-size:.825rem;padding:.5rem .65rem;outline:none;transition:border-color .15s ease}.sidebar-input:focus{border-color:#a3a3a3}.sidebar-input::placeholder{color:#b4b4b4}.sidebar-label{font-size:.68rem;font-weight:500;color:var(--muted-foreground);display:block;margin-bottom:.25rem}.prompt-textarea{width:100%;background:#fff;border:1px solid var(--border);color:var(--foreground);font-family:var(--font-sans);font-size:.825rem;padding:.65rem .75rem;border-radius:var(--radius);outline:none;resize:vertical;line-height:1.5;transition:border-color .15s ease}.prompt-textarea:focus{border-color:#a3a3a3}.prompt-textarea::placeholder{color:#b4b4b4}.enhance-btn{background:#171717;border:none;color:#fff;font-family:var(--font-sans);font-size:.825rem;font-weight:600;padding:.6rem 1rem;border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .15s ease}.enhance-btn:hover:not(:disabled){background:#2d2d2d}.enhance-btn:disabled{background:#e5e5e5;color:#a3a3a3;cursor:not-allowed}.sparkles-icon{color:#fff;flex-shrink:0}.field-block{display:flex;flex-direction:column;gap:.4rem}.field-header{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:600;color:var(--muted-foreground)}.model-badge-tag{font-size:.63rem;background:#f4f4f4;color:#6e6e80;padding:.1rem .35rem;border-radius:4px;border:1px solid #e5e5e5}.field-textarea{width:100%;background:#fff;border:1px solid var(--border);color:var(--foreground);font-family:var(--font-sans);font-size:.825rem;padding:.65rem;border-radius:var(--radius);outline:none;resize:vertical;line-height:1.5;transition:border-color .15s ease}.field-textarea:focus{border-color:#a3a3a3}.sub-label{font-size:.68rem;font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em;margin-top:.25rem}.presets-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;margin-bottom:.4rem}.preset-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:.5rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:all .12s ease;text-align:left}.preset-card:hover:not(:disabled){border-color:#a3a3a3;background:#fafafa}.preset-card.active{border-color:#171717;background:#fafafa}.preset-aspect-box-wrapper{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:#f4f4f4;border-radius:4px;border:1px solid #e5e5e5;flex-shrink:0}.preset-aspect-box{background:#a3a3a3;border-radius:1px;max-width:14px;max-height:14px;width:12px;height:12px;transition:background .12s ease}.preset-card.active .preset-aspect-box{background:#171717}.preset-meta-info{display:flex;flex-direction:column}.preset-ratio-name{font-size:.72rem;font-weight:600;color:var(--foreground)}.preset-pixel-size{font-size:.6rem;color:var(--muted-foreground)}.dimensions-row{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}.dimension-col{display:flex;flex-direction:column;gap:.3rem}.input-field-title{font-size:.7rem;font-weight:600;color:var(--muted-foreground)}.dimension-select,.steps-number-input{background:#fff;border:1px solid var(--border);color:var(--foreground);font-family:var(--font-sans);font-size:.825rem;padding:.45rem .6rem;border-radius:var(--radius);outline:none;width:100%}.dimension-select:focus,.steps-number-input:focus{border-color:#a3a3a3}.render-generate-btn{background:#171717;color:#fff;border:none;font-family:var(--font-sans);font-size:.875rem;font-weight:600;padding:.75rem 1.25rem;border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .15s ease;margin-top:.75rem;width:100%}.render-generate-btn:hover{background:#2d2d2d}.render-generate-btn:disabled{background:#e2e8f0;color:#94a3b8;box-shadow:none;cursor:not-allowed}.sidebar-header-action-btn{background:transparent;color:var(--muted-foreground);border:none;font-family:var(--font-sans);font-size:.72rem;font-weight:600;text-transform:none;letter-spacing:normal;cursor:pointer;padding:.2rem .45rem;border-radius:4px;display:flex;align-items:center;gap:.25rem;transition:all .15s ease}.sidebar-header-action-btn:hover{color:var(--foreground);background:var(--border-sidebar)}.sidebar-header-action-btn:disabled{color:var(--muted-foreground);opacity:.4;cursor:not-allowed;background:transparent}.sidebar-footer{padding:1rem;border-top:1px solid var(--border-sidebar)}.connection-pill{display:flex;align-items:center;gap:.45rem;font-size:.68rem;color:#8792a2}.dot-pulse{width:6px;height:6px;background:var(--success);border-radius:50%;flex-shrink:0}.workspace-main{flex:1;padding:1.5rem 2rem;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto;height:100vh}@media (max-width: 900px){.workspace-main{padding:1.5rem;height:auto;overflow-y:visible}}.canvas-section{display:flex;flex-direction:column;gap:1rem}.canvas-header-nav{display:flex;justify-content:space-between;align-items:center}@media (max-width: 600px){.canvas-header-nav{flex-direction:column;align-items:flex-start;gap:.75rem}}.canvas-title-group{display:flex;align-items:center;gap:.75rem}.workspace-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--foreground);letter-spacing:-.02em}.resolution-badge{font-size:.68rem;font-weight:600;background-color:#f1f5f9;color:#475569;border:1px solid var(--border);padding:.15rem .45rem;border-radius:99px}.canvas-actions-bar{display:flex;gap:.5rem}@media (max-width: 600px){.canvas-actions-bar{width:100%}}.canvas-action-btn{background-color:#fff;border:1px solid var(--border);color:#0f172a;font-family:var(--font-sans);font-size:.78rem;font-weight:600;padding:.45rem .85rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:all .15s ease}.canvas-action-btn:hover{background-color:#f1f5f9;border-color:#cbd5e1}.primary-action-style{background-color:#0f172a;color:#fff;border:none}.primary-action-style:hover{background-color:#1e293b;color:#fff}.canvas-viewport{background-color:var(--card);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:0 4px 12px #00000008,0 1px 3px #00000005}.canvas-sub-tab-btn{background:none;border:none;font-family:var(--font-sans);font-size:1.05rem;font-weight:600;color:var(--muted-foreground);cursor:pointer;padding:.25rem .5rem;border-bottom:2px solid transparent;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.canvas-sub-tab-btn:hover{color:var(--foreground)}.canvas-sub-tab-btn.active{color:var(--foreground);border-bottom:2px solid var(--brand)}.canvas-split-container{display:flex;width:100%;height:100%;align-items:stretch;flex:1;min-height:0}.canvas-image-pane{flex:6.5;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at center,#fff,#f8fafc);position:relative;height:100%}.canvas-metadata-pane{flex:3.5;border-left:1px solid var(--border);background-color:#fafafa;display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:1.25rem}.metadata-pane-header{display:flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;color:#334155;border-bottom:1px solid #f1f5f9;padding-bottom:.75rem;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.03em}.metadata-pane-body{display:flex;flex-direction:column;gap:.85rem}.detail-meta-row-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.25rem;border-top:1px solid #f1f5f9;padding-top:.75rem}.canvas-library-pane{width:100%;height:100%;overflow:hidden;background-color:#fafafa;flex:1;display:flex}.library-split-container{display:flex;width:100%;height:100%;align-items:stretch}.library-grid-pane{flex:6;padding:1.5rem;overflow-y:auto;height:100%}.library-detail-pane{flex:4;border-left:1px solid var(--border);background-color:#fafafa;display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:1.5rem}.library-detail-preview-container{width:100%;aspect-ratio:1.25;border-radius:6px;overflow:hidden;border:1px solid var(--border);box-shadow:0 2px 8px #0000000a;background-color:#fff;display:flex;align-items:center;justify-content:center}.library-detail-preview-img{max-width:100%;max-height:100%;object-fit:contain}@media (max-width: 900px){.canvas-split-container{flex-direction:column;overflow-y:auto}.canvas-image-pane{aspect-ratio:1.25;flex:none;height:auto}.canvas-metadata-pane{flex:none;border-left:none;border-top:1px solid var(--border);height:auto;overflow-y:visible}.library-split-container{flex-direction:column;overflow-y:auto}.library-grid-pane{flex:none;height:auto;overflow-y:visible}.library-detail-pane{flex:none;border-left:none;border-top:1px solid var(--border);height:auto;overflow-y:visible}}.workspace-image-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(circle at center,#fff,#f8fafc)}.workspace-rendered-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 4px 15px #00000014;animation:fadeIn .3s ease-out}.workspace-canvas-placeholder{text-align:center;color:var(--muted-foreground);padding:2.5rem;display:flex;flex-direction:column;align-items:center;gap:.875rem}.placeholder-brand-icon{background-color:#f1f5f9;border:1px solid #e2e8f0;width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--indigo-500)}.placeholder-camera-svg{filter:drop-shadow(0 1px 2px rgba(15,23,42,.08))}.workspace-canvas-placeholder h3{font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:#0f172a}.workspace-canvas-placeholder p{font-size:.8125rem;line-height:1.5;max-width:420px}.placeholder-subtext{color:#94a3b8;font-size:.75rem!important}.canvas-render-loading{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#ffffffed;display:flex;align-items:center;justify-content:center;z-index:20}.render-loader-card{background-color:#fff;border:1px solid var(--border);border-radius:10px;padding:2rem;width:100%;max-width:380px;text-align:center;display:flex;flex-direction:column;align-items:center;box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #0000000d}.orbits-loading-container{position:relative;width:48px;height:48px;margin-bottom:1.25rem;display:flex;align-items:center;justify-content:center}.loader-inner-circle{width:12px;height:12px;background-color:var(--indigo-500);border-radius:50%;box-shadow:0 0 6px #0f172a26}.loader-outer-orbit{position:absolute;width:100%;height:100%;border:1.5px solid rgba(15,23,42,.08);border-top-color:var(--indigo-500);border-radius:50%;animation:spin 1s linear infinite}.render-loader-title{font-family:var(--font-display);font-size:1rem;font-weight:600;color:#0f172a;margin-bottom:.35rem}.render-loader-desc{font-size:.75rem;color:var(--muted-foreground);margin-bottom:1.25rem}.render-loader-progress-track{width:100%;height:4px;background-color:#e2e8f0;border-radius:99px;overflow:hidden;margin-bottom:1.25rem}.render-loader-progress-fill{height:100%;background:linear-gradient(90deg,var(--indigo-500),var(--violet-500));transition:width .4s ease-out;border-radius:99px}.render-loader-stages{width:100%;display:flex;justify-content:space-between;font-size:.7rem;color:#94a3b8}.stage-step-item{display:flex;align-items:center;gap:.35rem;font-weight:600}.stage-step-indicator-dot{width:6px;height:6px;border-radius:50%;background-color:#cbd5e1}.stage-step-item.active{color:#0f172a}.stage-step-item.active .stage-step-indicator-dot{background-color:var(--indigo-500);box-shadow:0 0 4px var(--indigo-500)}.stage-step-item.complete{color:#16a34a}.stage-step-item.complete .stage-step-indicator-dot{background-color:#16a34a}.canvas-image-metadata-details{margin-top:.5rem}.metadata-detail-card{background-color:#fff;border:1px solid var(--border);border-radius:8px;padding:1.25rem;box-shadow:0 1px 3px #00000005}.metadata-detail-header{display:flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;color:#334155;border-bottom:1px solid #f1f5f9;padding-bottom:.5rem;margin-bottom:.75rem}.timestamp-detail-label{margin-left:auto;font-size:.72rem;color:var(--muted-foreground);font-weight:400}.metadata-detail-body{display:flex;flex-direction:column;gap:.75rem}.detail-meta-row{display:flex;flex-direction:column;gap:.25rem}.meta-row-label{font-size:.68rem;font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}.meta-row-val{font-size:.78rem;color:#334155;line-height:1.4;word-break:break-word}.studio-library-section{border-top:1px solid var(--border);padding-top:2rem}.library-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.library-title-group{display:flex;align-items:center;gap:.6rem;color:var(--foreground)}.library-header-icon{color:var(--indigo-500)}.library-section-title{font-family:var(--font-display);font-size:1.125rem;font-weight:700}.library-badge-count{font-size:.68rem;font-weight:700;background-color:#f1f5f9;border:1px solid #cbd5e1;color:#334155;padding:.125rem .5rem;border-radius:99px}.library-grid-layout{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.25rem}.library-asset-card{background-color:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer;transition:all .15s ease;position:relative;box-shadow:0 1px 3px #00000005}.library-asset-card:hover{transform:translateY(-1px);border-color:#cbd5e1;box-shadow:0 4px 10px #0000000d}.library-asset-card.selected-card{border-color:var(--brand);box-shadow:0 0 0 2px #0f172a1f}.library-asset-preview-wrap{aspect-ratio:4 / 3;width:100%;overflow:hidden;position:relative}.library-asset-img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}.library-asset-card:hover .library-asset-img{transform:scale(1.02)}.library-asset-overlay-hover{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,rgba(15,23,42,.95) 0%,rgba(15,23,42,.4) 60%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:.75rem;opacity:0;transition:opacity .2s ease}.library-asset-card:hover .library-asset-overlay-hover{opacity:1}.asset-overlay-prompt-text{font-size:.72rem;font-weight:500;color:#fafafa;margin-bottom:.4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.asset-overlay-metadata{display:flex;justify-content:space-between;font-size:.625rem;color:#cbd5e1}.library-empty-placeholder{text-align:center;color:var(--muted-foreground);font-size:.8125rem;padding:3rem 1.5rem;border:1px dashed var(--border);border-radius:6px}.error-toast-banner{background-color:#fef2f2;border:1px solid #fca5a5;color:#991b1b;border-radius:6px;padding:.85rem 1.25rem;font-size:.8125rem;display:flex;align-items:center;gap:.75rem;animation:slideDown .2s ease-out}.toast-text-area{display:flex;flex-direction:column;flex:1}.toast-title{font-weight:700;color:#b91c1c}.toast-msg{color:#7f1d1d;margin-top:.1rem}.toast-close{background:none;border:none;color:#b91c1c;font-size:1.25rem;cursor:pointer;padding:.25rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:scale(.99)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}.skeleton-loader{background:linear-gradient(90deg,#f8fafc 25%,#f1f5f9,#f8fafc 75%);background-size:200% 100%;animation:skeleton-loading 1.6s infinite ease-in-out}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-textarea{width:100%;background-color:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;display:flex;flex-direction:column;gap:.5rem;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #00000005}.skeleton-textarea:before{content:attr(data-placeholder);position:absolute;top:.75rem;left:.75rem;font-size:.75rem;color:var(--muted-foreground);font-weight:500;animation:text-pulse 1.5s infinite ease-in-out}@keyframes text-pulse{0%,to{opacity:.6}50%{opacity:1}}.skeleton-bar{height:8px;border-radius:4px;background-color:#f1f5f9;align-self:flex-start;margin-top:1rem;animation:skeleton-loading 1.6s infinite ease-in-out}.skeleton-bar.short{width:40%}.skeleton-bar.medium{width:70%;margin-top:0}.skeleton-bar.long{width:90%;margin-top:0}.qb-skeleton{display:block;background:linear-gradient(90deg,var(--sidebar-bg) 25%,color-mix(in srgb,var(--border) 65%,var(--sidebar-bg)) 50%,var(--sidebar-bg) 75%);background-size:200% 100%;animation:skeleton-loading 1.6s infinite ease-in-out;border-radius:6px}.qb-skeleton--pill{border-radius:10px}.qb-skeleton--circle{border-radius:50%}.qb-skeleton-table{width:100%;border-collapse:collapse;font-size:.78rem}.qb-skeleton-table th,.qb-skeleton-table td{padding:10px 12px;border-bottom:1px solid var(--border)}.qb-skeleton-table th{background:var(--sidebar-bg)}.status-thinking-badge{font-size:.65rem;font-weight:600;color:#475569;background-color:#f1f5f9;border:1px dashed #cbd5e1;padding:.1rem .4rem;border-radius:4px}.workspace-image-container-loading{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#f8fafc}.tab-navigation-capsule{display:flex;background:#ececec;border-radius:8px;padding:2px;margin-top:.75rem;border:1px solid var(--border-sidebar);gap:2px}.tab-nav-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.22rem;background:none;border:none;color:var(--muted-foreground);font-family:var(--font-sans);font-size:.68rem;font-weight:500;padding:.38rem .18rem;border-radius:6px;cursor:pointer;transition:all .12s ease;white-space:nowrap}.tab-nav-btn:hover{color:var(--foreground);background:#0000000a}.tab-nav-btn.active{background:#171717;color:#fff;font-weight:600;box-shadow:0 1px 3px #00000026}.chat-layout{display:flex;flex-direction:column;height:100%;width:100%;max-width:1040px;margin:0 auto;position:relative;padding:0 1rem}.chat-messages-container{flex:1;overflow-y:auto;padding:1.5rem .5rem 2rem;display:flex;flex-direction:column;gap:1.75rem;min-height:250px}.chat-message-item{display:flex;gap:1.15rem;max-width:82%;align-items:flex-start;animation:fadeIn .2s ease-out}.chat-message-item.user-message{align-self:flex-end;flex-direction:row-reverse}.chat-message-item.assistant-message{align-self:flex-start}.chat-avatar-badge{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 4px #0000000a}.user-message .chat-avatar-badge{background:linear-gradient(135deg,#f4f4f5,#e4e4e7);color:#27272a;border:1px solid #d4d4d8}.assistant-message .chat-avatar-badge{background:linear-gradient(135deg,#f1f5f9,#f8fafc);border:1px solid #cbd5e1}.chat-message-content-wrapper{display:flex;flex-direction:column;gap:.35rem;max-width:calc(100% - 52px)}.chat-message-bubble{padding:.95rem 1.25rem;border-radius:16px;font-size:.88rem;line-height:1.55;word-break:break-word}.user-message .chat-message-bubble{background-color:#18181b;color:#fff;border-bottom-right-radius:4px;box-shadow:0 2px 5px #0000000d}.assistant-message .chat-message-bubble{background-color:#fff;color:var(--foreground);border-bottom-left-radius:4px;border:1px solid var(--border);box-shadow:0 2px 5px #00000005}.chat-message-bubble p{margin-bottom:.75rem;line-height:1.6}.chat-message-bubble p:last-child{margin-bottom:0}.chat-message-bubble h1,.chat-message-bubble h2,.chat-message-bubble h3,.chat-message-bubble h4{font-family:var(--font-sans);color:var(--foreground);font-weight:600;margin-top:1rem;margin-bottom:.5rem;line-height:1.3}.chat-message-bubble h1{font-size:1.25rem}.chat-message-bubble h2{font-size:1.15rem}.chat-message-bubble h3{font-size:1.05rem}.chat-message-bubble h4{font-size:.95rem}.chat-message-bubble ul,.chat-message-bubble ol{margin-top:.25rem;margin-bottom:.75rem;padding-left:1.25rem}.chat-message-bubble li{margin-bottom:.25rem;line-height:1.6}.chat-message-bubble li:last-child{margin-bottom:0}.chat-message-bubble ul{list-style-type:disc}.chat-message-bubble ol{list-style-type:decimal}.chat-message-bubble table{width:100%;border-collapse:collapse;margin-top:.75rem;margin-bottom:.75rem;font-size:.8125rem;line-height:1.5;overflow-x:auto;display:block}.chat-message-bubble th{font-weight:600;background-color:#f4f4f5;border:1px solid var(--border);padding:.5rem .75rem;text-align:left}.chat-message-bubble td{border:1px solid var(--border);padding:.5rem .75rem}.chat-message-bubble tr:nth-child(2n){background-color:#fafafa}.chat-message-bubble pre{background-color:#09090b;border:1px solid #27272a;color:#f4f4f5;padding:.875rem;border-radius:6px;overflow-x:auto;margin:.75rem 0;font-family:monospace,Courier,monospace;font-size:.8rem;line-height:1.5}.chat-message-bubble code{font-family:monospace,Courier,monospace;background-color:#f4f4f5;color:#09090b;padding:.15rem .3rem;border-radius:4px;font-size:.8rem}.chat-message-bubble pre code{background-color:transparent;color:inherit;padding:0;border-radius:0;font-size:inherit}.user-message .chat-message-bubble code{background-color:#ffffff26;color:#fff}.user-message .chat-message-bubble pre{background-color:#0003;border:1px solid rgba(255,255,255,.1);color:#fff}.chat-message-bubble blockquote{border-left:3px solid #cbd5e1;color:#64748b;padding-left:.85rem;margin:.75rem 0;font-style:italic}.chat-message-bubble a{color:#2563eb;text-decoration:underline;text-underline-offset:2px}.chat-message-bubble a:hover{color:#1d4ed8}.chat-message-meta{font-size:.68rem;color:var(--muted-foreground);margin-top:.15rem}.user-message .chat-message-meta{text-align:right}.typing-cursor{display:inline-block;width:2px;height:14px;background:#171717;margin-left:3px;vertical-align:middle;animation:cursor-blink 1s infinite;border-radius:1px}.user-message .typing-cursor{background:#fffc}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.thinking-pulse-container{display:flex;align-items:center;gap:5px;padding:4px 6px}.thinking-pulse-orb{width:7px;height:7px;background:#a3a3a3;border-radius:50%;animation:thinking-blink 1.4s infinite ease-in-out}.thinking-pulse-orb:nth-child(2){animation-delay:.2s}.thinking-pulse-orb:nth-child(3){animation-delay:.4s}.thinking-pulse-orb:after{display:none}@keyframes thinking-blink{0%,80%,to{opacity:.3;transform:scale(.9)}40%{opacity:1;transform:scale(1.1)}}.thinking-text{font-size:.8125rem;color:var(--muted-foreground);font-weight:400}.chat-input-bar-wrap{background:#fff;border:1px solid var(--border);border-radius:12px;padding:.65rem .85rem;display:flex;align-items:flex-end;gap:.75rem;box-shadow:0 2px 8px #0000000a;margin-top:1rem;margin-bottom:1.5rem}.chat-input-bar-wrap:focus-within{border-color:#a3a3a3;box-shadow:none}.chat-input-textarea{flex:1;border:none;outline:none;background:transparent;resize:none;font-family:var(--font-sans);font-size:.9rem;line-height:1.5;padding:.4rem .5rem;max-height:150px;color:var(--foreground)}.chat-input-textarea::placeholder{color:#b4b4b4}.chat-send-btn{background:#171717;color:#fff;border:none;border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease;flex-shrink:0}.chat-send-btn:hover:not(:disabled){background:#2d2d2d}.chat-send-btn:disabled{background:#e5e5e5;color:#a3a3a3;cursor:not-allowed}.chat-stop-btn{background:#171717;color:#fff;border:none;border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease;flex-shrink:0}.chat-stop-btn:hover{background:#ef4444}.chat-header-actions{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:1rem;margin-bottom:1rem}.chat-model-info{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;color:#18181b}.chat-clear-btn{background:none;border:1px solid var(--border);color:#71717a;font-family:var(--font-sans);font-size:.75rem;font-weight:600;padding:.4rem .8rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.35rem;transition:all .15s ease}.chat-clear-btn:hover{background-color:#fef2f2;border-color:#fca5a5;color:#b91c1c}.chat-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem;color:var(--muted-foreground);gap:1rem}.chat-empty-icon{background-color:#f4f4f5;border:1px solid #e4e4e7;width:54px;height:54px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#18181b}.chat-empty-state h3{font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:#18181b}.chat-empty-state p{font-size:.8125rem;max-width:360px;line-height:1.5}.chat-suggestions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;max-width:500px;width:100%;margin-top:1rem}.chat-suggestion-card{background-color:#fff;border:1px solid var(--border);border-radius:8px;padding:.75rem;font-size:.78rem;font-weight:500;color:#475569;cursor:pointer;transition:all .15s ease;text-align:left;line-height:1.4;box-shadow:0 1px 2px #00000005}.chat-suggestion-card:hover{border-color:#18181b;background-color:#fafafa;transform:translateY(-1px)}.new-chat-btn{background:#171717;color:#fff;border:none;font-family:var(--font-sans);font-size:.8rem;font-weight:600;padding:.6rem 1rem;border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.45rem;transition:background .12s ease;width:100%}.new-chat-btn:hover{background:#2d2d2d}.conversations-list{display:flex;flex-direction:column;gap:.1rem;margin-top:.25rem}.convo-list-item{background:none;border:none;font-family:var(--font-sans);font-size:.8rem;font-weight:400;color:var(--foreground);padding:.5rem .6rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.5rem;text-align:left;transition:background .1s ease;width:100%}.convo-list-item:hover{background:#ececec}.convo-list-item.active{background:#e5e5e5;font-weight:500}.convo-icon{color:#a3a3a3;flex-shrink:0}.convo-list-item:hover .convo-icon,.convo-list-item.active .convo-icon{color:#6e6e80}.convo-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.convo-list-item-wrapper{display:flex;align-items:center;justify-content:space-between;border-radius:6px;transition:background .1s ease;width:100%}.convo-list-item-wrapper:hover{background:#ececec}.convo-list-item-wrapper.active{background:#e5e5e5}.convo-list-item-wrapper .convo-list-item{flex:1;background:transparent!important}.convo-list-item-wrapper .session-delete-btn{background:transparent;border:none;padding:8px 10px;color:#a3a3a3;cursor:pointer;display:flex;align-items:center;border-radius:4px;opacity:0;transition:opacity .15s ease,color .15s ease}.convo-list-item-wrapper:hover .session-delete-btn{opacity:1}.convo-list-item-wrapper .session-delete-btn:hover{color:#ef4444}.mermaid-diagram{background-color:#fff;border:1px solid var(--border);border-radius:8px;padding:1.25rem;margin:.85rem 0;display:flex;justify-content:center;align-items:center;overflow-x:auto;box-shadow:0 1px 3px #00000005}.mermaid-diagram svg{max-width:100%;height:auto}.katex-display{margin:.75rem 0;overflow-x:auto;overflow-y:hidden}.chat-mic-btn{background-color:#f4f4f5;color:#71717a;border:1px solid var(--border);border-radius:6px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;flex-shrink:0;box-shadow:0 1px 2px #00000005}.chat-mic-btn:hover{background-color:#e4e4e7;color:#18181b}.chat-mic-btn.recording{background-color:#ef4444;color:#fff;border-color:#ef4444;animation:pulse-recording 1.5s infinite}@keyframes pulse-recording{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 6px #ef444400}to{box-shadow:0 0 #ef444400}}.chat-recording-indicator{flex:1;display:flex;align-items:center;gap:.75rem;padding:.55rem;font-size:.875rem;color:#ef4444;font-weight:500;min-height:38px}.recording-dot{width:8px;height:8px;background-color:#ef4444;border-radius:50%;animation:blink-recording 1s infinite}@keyframes blink-recording{0%,to{opacity:.3}50%{opacity:1}}.recording-wave{display:flex;align-items:flex-end;gap:2px;height:14px}.wave-bar{width:2px;height:4px;background-color:#ef4444;border-radius:1px;animation:bounce-wave 1.2s ease-in-out infinite}.wave-bar:nth-child(1){animation-delay:.1s;height:6px}.wave-bar:nth-child(2){animation-delay:.3s;height:10px}.wave-bar:nth-child(3){animation-delay:.2s;height:8px}.wave-bar:nth-child(4){animation-delay:.4s;height:5px}@keyframes bounce-wave{0%,to{transform:scaleY(1)}50%{transform:scaleY(2.2)}}.voice-player-widget{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.65rem .85rem;display:flex;align-items:center;gap:.75rem;margin-top:.5rem;max-width:320px;box-shadow:0 1px 3px #00000005}.voice-play-btn{background-color:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0000000d;flex-shrink:0}.voice-play-btn:hover{background-color:#f1f5f9;color:#0f172a;border-color:#94a3b8}.voice-slider-container{flex:1;display:flex;flex-direction:column;gap:2px}.voice-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:3px;border-radius:2px;background:#e5e5e5;outline:none;cursor:pointer}.voice-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#171717;cursor:pointer;transition:transform .1s ease}.voice-slider::-webkit-slider-thumb:hover{transform:scale(1.25)}.voice-time-info{display:flex;justify-content:space-between;font-size:.75rem;color:#64748b;font-family:monospace}.voice-mute-btn{background:transparent;border:none;color:#64748b;cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;transition:color .15s ease;flex-shrink:0}.voice-mute-btn:hover{color:#0f172a}.voice-tab-container{display:flex;flex-direction:column;height:100%;width:100%;max-width:1040px;margin:0 auto;position:relative;padding:0 1rem;overflow:hidden}.voice-split-layout{display:flex;flex:1;width:100%;gap:2.5rem;min-height:0;overflow:hidden;margin-top:1rem}.voice-transcript-left-pane{flex:8;display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--border);padding-right:2.5rem;height:100%;overflow:hidden}.voice-orb-right-pane{flex:2;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;height:100%;padding:1rem 0}.voice-orb-section{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:100%;position:relative;padding:1rem 0 .5rem}.voice-status-text{font-size:1.1rem;font-weight:500;color:var(--muted-foreground);margin-top:2rem;text-align:center;min-height:1.5rem}.voice-status-subtext{font-size:.85rem;color:#94a3b8;margin-top:.5rem;text-align:center}.voice-orb-wrapper{position:relative;width:160px;height:160px;display:flex;align-items:center;justify-content:center}.voice-orb-glow{display:none}.voice-orb{position:relative;width:110px;height:110px;border-radius:50%;background:#fff;border:2px solid #e5e5e5;box-shadow:0 4px 14px #0000000f;display:flex;align-items:center;justify-content:center;z-index:2;transition:all .25s cubic-bezier(.4,0,.2,1);overflow:hidden;outline:none}.voice-orb:hover{transform:scale(1.04);box-shadow:0 6px 20px #00000014;border-color:#cbd5e1}.voice-orb:active{transform:scale(.96)}.voice-orb-core{width:86px;height:86px;border-radius:50%;background:#f9f9f9;transition:background .3s ease;display:flex;align-items:center;justify-content:center}.voice-orb.idle{animation:orb-breath 4s ease-in-out infinite}@keyframes orb-breath{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.voice-orb.recording{border-color:#df1b41;background:#0f172a;box-shadow:0 0 0 4px #df1b411a,var(--shadow-md)}.voice-orb.recording .voice-orb-core{background:#0f172a}.voice-orb.processing{border-color:var(--brand);box-shadow:0 0 0 4px #0f172a14,var(--shadow-md);animation:orb-processing-pulse 1.4s ease-in-out infinite alternate}.voice-orb.processing .voice-orb-core{background:conic-gradient(from 0deg,#f4f4f5,#cbd5e1 45%,#475569 75%,#0f172a);animation:orb-spin-core 1.6s linear infinite}@keyframes orb-processing-pulse{0%{transform:scale(1)}to{transform:scale(1.04)}}@keyframes orb-spin-core{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.voice-orb.speaking{border-color:var(--brand);box-shadow:0 0 0 4px #0f172a1a,var(--shadow-md);animation:orb-speak-pulse 1s ease-in-out infinite alternate}.voice-orb.speaking .voice-orb-core{background:#e4e4e7}@keyframes orb-speak-pulse{0%{transform:scale(1.02)}to{transform:scale(1.06)}}.voice-ripple{position:absolute;border-radius:50%;background:transparent;border:1px solid rgba(15,23,42,.08);width:130px;height:130px;z-index:0;pointer-events:none;opacity:0;transition:all .5s ease;top:15px;left:15px}.voice-ripple.active-1{animation:ripple-out-1 2s cubic-bezier(.1,.8,.3,1) infinite}.voice-ripple.active-2{animation:ripple-out-2 2s cubic-bezier(.1,.8,.3,1) infinite;animation-delay:.6s}.voice-ripple.active-3{animation:ripple-out-3 2s cubic-bezier(.1,.8,.3,1) infinite;animation-delay:1.2s}@keyframes ripple-out-1{0%{transform:scale(1);opacity:.8}to{transform:scale(1.4);opacity:0}}@keyframes ripple-out-2{0%{transform:scale(1);opacity:.8}to{transform:scale(1.6);opacity:0}}@keyframes ripple-out-3{0%{transform:scale(1);opacity:.8}to{transform:scale(1.8);opacity:0}}.voice-waveform{display:flex;align-items:center;justify-content:center;gap:4px;width:80px;height:48px;z-index:3}.voice-waveform-bar{width:4px;min-height:5px;border-radius:2px;background:#fff;transition:height .08s ease;flex-shrink:0}.voice-transcript-pending{opacity:.75;animation:fade-in-up .3s ease}@keyframes fade-in-up{0%{opacity:0;transform:translateY(6px)}to{opacity:.75;transform:translateY(0)}}.voice-thinking-dots{display:inline-flex;align-items:center;gap:4px;padding:2px 0}.voice-thinking-dots span{display:inline-block;width:6px;height:6px;border-radius:50%;background:#a3a3a3;animation:thinking-bounce 1.2s ease-in-out infinite}.voice-thinking-dots span:nth-child(2){animation-delay:.2s}.voice-thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinking-bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-5px);opacity:1}}.voice-mic-control-btn{height:40px;border-radius:20px;border:1px solid var(--border);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0000000a;color:var(--foreground);font-family:var(--font-sans);font-size:.85rem;font-weight:500;padding:0 1.25rem;gap:.5rem;transition:all .2s cubic-bezier(.4,0,.2,1)!important;margin-top:1.5rem}.voice-mic-control-btn:hover:not(:disabled){background:#f9f9f9;border-color:#cbd5e1;box-shadow:0 4px 12px #0000000f}.voice-mic-control-btn.active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 4px 12px #0f172a26}.voice-mic-control-btn.active:hover{background:var(--brand-dark);border-color:var(--brand-dark)}.voice-mic-control-btn:disabled{background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0;cursor:not-allowed;box-shadow:none}.voice-actions-row{display:flex;align-items:center;gap:1.5rem;width:100%;justify-content:center;margin-top:1rem}.voice-action-btn-small{background:transparent;border:1px solid var(--border);color:var(--muted-foreground);border-radius:6px;padding:.5rem .85rem;font-size:.785rem;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:.35rem}.voice-action-btn-small:hover:not(:disabled){background-color:#f4f4f5;color:var(--foreground);border-color:#cbd5e1}.voice-action-btn-small:disabled{opacity:.5;cursor:not-allowed}.voice-transcript-card{width:100%;display:flex;flex-direction:column;flex:1;min-height:0;text-align:left}.voice-transcript-header{display:flex;justify-content:space-between;align-items:center;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);font-weight:600;margin-bottom:.75rem;flex-shrink:0}.voice-transcript-viewport{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding-right:.25rem;padding-bottom:.5rem}.voice-transcript-item{display:flex;flex-direction:column;gap:3px;padding:.75rem 1rem;border-radius:var(--radius);font-size:.85rem;line-height:1.55;color:var(--foreground);margin-bottom:.5rem;transition:all .12s ease;width:fit-content;max-width:80%}.voice-transcript-item.user{background:#f4f4f5;align-self:flex-end;border-bottom-right-radius:4px}.voice-transcript-item.assistant{background:#fff;border:1px solid var(--border);align-self:flex-start;border-bottom-left-radius:4px;box-shadow:0 1px 3px #00000005}.voice-transcript-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.voice-transcript-item.user .voice-transcript-label{color:var(--muted-foreground)}.voice-transcript-item.assistant .voice-transcript-label{color:#171717}.enhance-btn,.render-generate-btn,.sidebar-header-action-btn,.tab-nav-btn,.chat-send-btn,.chat-stop-btn,.chat-clear-btn,.new-chat-btn,.chat-mic-btn,.voice-play-btn,.voice-mute-btn,.voice-mic-control-btn,.voice-action-btn-small,.preset-card,.canvas-action-btn,.chat-suggestion-card{transition:all .2s cubic-bezier(.4,0,.2,1)!important}.enhance-btn:active,.render-generate-btn:active,.sidebar-header-action-btn:active,.tab-nav-btn:active,.chat-send-btn:active,.chat-stop-btn:active,.chat-clear-btn:active,.new-chat-btn:active,.chat-mic-btn:active,.voice-play-btn:active,.voice-mute-btn:active,.voice-mic-control-btn:active,.voice-action-btn-small:active,.preset-card:active,.canvas-action-btn:active,.chat-suggestion-card:active{transform:scale(.96)!important}.login-page{min-height:100vh;position:relative;display:flex;align-items:center;justify-content:center;background:#eef2ff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;padding:40px 32px;-webkit-font-smoothing:antialiased;overflow:hidden}.login-page-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 55% 45% at 85% 12%,rgba(37,99,235,.16),transparent 60%),radial-gradient(ellipse 50% 40% at 8% 88%,rgba(99,102,241,.14),transparent 58%),radial-gradient(ellipse 40% 30% at 50% 100%,rgba(16,185,129,.08),transparent 55%),url(/login-bg.svg) center / cover no-repeat;pointer-events:none}.login-page-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(148,163,184,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.07) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(ellipse 85% 75% at 50% 45%,#000 20%,transparent 100%);mask-image:radial-gradient(ellipse 85% 75% at 50% 45%,#000 20%,transparent 100%)}.login-shell{position:relative;z-index:1;width:min(1180px,100%);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:20px;align-items:stretch}.login-hero,.login-card{background:#ffffffeb;border:1px solid rgba(255,255,255,.8);border-radius:20px;box-shadow:0 1px 2px #0f172a0a,0 16px 48px #0f172a14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-hero{padding:32px 34px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:100%}.login-hero-top,.login-hero-bottom{display:flex;flex-direction:column;gap:20px}.login-hero-bottom{gap:16px}.login-card{padding:36px 34px;display:flex;flex-direction:column;justify-content:center;gap:22px}.login-card.shake{animation:login-shake .45s ease}@keyframes login-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.login-brand{display:flex;align-items:center;gap:10px}.login-brand-logo{width:40px;height:40px;border-radius:12px;background:#0f172a;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.login-brand-title{font-size:1.02rem;font-weight:700;color:#0f172a;letter-spacing:-.02em}.login-brand-sub{font-size:.74rem;color:#64748b;font-weight:500;font-style:italic}.login-kicker{margin:0 0 8px;color:#2563eb;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.login-title{max-width:560px;font-size:clamp(1.85rem,3.4vw,2.45rem);font-weight:700;line-height:1.12;color:#0f172a;margin:0;letter-spacing:-.03em}.login-subtitle{max-width:540px;color:#64748b;font-size:.98rem;font-weight:500;line-height:1.6;margin:12px 0 0}.login-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.login-feature-card{display:flex;align-items:flex-start;gap:10px;padding:16px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc;min-height:88px}.login-feature-icon{width:34px;height:34px;border-radius:10px;background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;display:flex;align-items:center;justify-content:center;flex-shrink:0}.login-feature-card strong,.login-feature-card span{display:block}.login-feature-card strong{color:#0f172a;font-size:.84rem;font-weight:700}.login-feature-card span{color:#64748b;font-size:.76rem;font-weight:500;margin-top:2px;line-height:1.4}.login-stat-row{display:flex;flex-wrap:wrap;gap:8px}.login-stat-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.76rem;font-weight:700;border:1px solid transparent;white-space:nowrap}.login-stat-chip.concepts{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}.login-stat-chip.questions{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.login-stat-chip.practice{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.login-stat-chip.test{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.login-card-header{display:flex;flex-direction:column;gap:4px}.login-card-title{margin:0;color:#0f172a;font-size:1.5rem;font-weight:700;letter-spacing:-.03em}.login-card-sub{margin:0;color:#64748b;font-size:.86rem;font-weight:500}.login-form{display:flex;flex-direction:column;gap:14px}.login-field-group{display:flex;flex-direction:column;gap:6px}.login-label{font-size:.78rem;font-weight:600;color:#475569}.login-input-wrap{position:relative;display:flex;align-items:center}.login-input-icon{position:absolute;left:12px;color:#94a3b8;pointer-events:none;flex-shrink:0}.login-input{width:100%;padding:11px 42px 11px 40px;border:1px solid #e5e7eb;border-radius:12px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.9rem;font-weight:500;color:#0f172a;background:#f8fafc;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;outline:none}.login-input:focus{background:#fff;border-color:#bfdbfe;box-shadow:0 0 0 3px #2563eb1f}.login-input::placeholder{color:#94a3b8}.login-input:disabled{opacity:.55;background:#f1f5f9}.login-eye-btn{position:absolute;right:13px;background:none;border:none;color:#64748b;cursor:pointer;padding:4px;display:flex;align-items:center;transition:color .12s,transform .12s}.login-eye-btn:hover{color:#2563eb}.login-error{display:flex;align-items:center;gap:8px;background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:10px 12px;border-radius:10px;font-size:.84rem;font-weight:600}.login-submit-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border:none;border-radius:12px;background:#1e40af;color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.9rem;font-weight:700;cursor:pointer;transition:background .15s ease,transform .15s ease}.login-submit-btn:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.login-submit-btn:disabled{background:#e2e8f0;color:#94a3b8;cursor:not-allowed}.login-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.login-footer-note{text-align:center;font-size:.78rem;color:#64748b;font-weight:500;margin:0}.login-divider{display:flex;align-items:center;gap:12px;color:#94a3b8;font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#e5e7eb}.login-google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px 14px;border:1px solid #bfdbfe;border-radius:12px;background:#fff;color:#1e293b;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}.login-google-btn:hover:not(:disabled){background:#eff6ff;border-color:#60a5fa;color:#1d4ed8;box-shadow:0 6px 18px #2563eb24;transform:translateY(-1px)}.login-google-btn:disabled{opacity:.55;cursor:not-allowed}.login-parent-note{margin:0;color:#64748b;font-size:.78rem;font-weight:500;line-height:1.45;text-align:center}@media (max-width: 920px){.login-page{align-items:flex-start;padding:24px 18px}.login-shell{grid-template-columns:1fr}.login-hero,.login-card{padding:26px}.login-hero{min-height:auto;justify-content:flex-start}.login-feature-grid{grid-template-columns:1fr}}@media (max-width: 560px){.login-page{padding:14px}.login-hero,.login-card{padding:18px}.login-title{font-size:1.45rem}}.sidebar-user-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:7px 10px;background:#fff;border-radius:var(--radius);border:1px solid var(--border)}.sidebar-user-info{display:flex;align-items:center;gap:7px}.sidebar-user-avatar{font-size:13px;color:var(--muted-foreground)}.sidebar-user-name{font-size:.75rem;font-weight:600;color:var(--foreground)}.sidebar-logout-btn{background:none;border:1px solid var(--border);border-radius:5px;color:var(--muted-foreground);padding:4px 6px;cursor:pointer;display:flex;align-items:center;transition:all .12s ease}.sidebar-logout-btn:hover{color:var(--danger);border-color:#fca5a5;background:#fef2f2}.sidebar-section-tabs{display:flex;gap:2px;background:var(--sidebar-bg);padding:3px;border-radius:var(--radius);margin-bottom:6px;border:1px solid var(--border)}.sidebar-section-tab{flex:1;padding:5px;border-radius:5px;border:none;background:transparent;font-family:var(--font-sans);font-size:.7rem;font-weight:600;color:var(--muted-foreground);cursor:pointer;transition:all .12s ease;letter-spacing:.01em}.sidebar-section-tab.active{background:#fff;color:var(--foreground);box-shadow:var(--shadow-sm)}.admin-sidebar-nav{display:flex;flex-direction:column;gap:4px;padding:12px 10px;flex:1}.admin-sidebar-nav-btn{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid transparent;border-radius:8px;background:transparent;font-family:var(--font-sans);font-size:.84rem;font-weight:500;color:var(--sidebar-muted);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;text-align:left}.admin-sidebar-nav-btn:hover{background:#fff;color:var(--foreground);border-color:var(--border)}.admin-sidebar-nav-btn.active{background:#fff;color:var(--foreground);font-weight:600;border-color:var(--border);box-shadow:var(--shadow-sm)}.admin-student-link{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;font-size:.72rem;color:#fff;text-decoration:none;font-weight:700;padding:8px 10px;border-radius:6px;background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 2px 8px #6366f14d;transition:opacity .15s ease}.admin-student-link:hover{opacity:.92}.admin-tab-bar{display:flex;align-items:center;gap:4px;padding:4px;background:var(--sidebar-bg);border:1px solid var(--border);border-radius:var(--radius)}.admin-tab-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:none;border-radius:6px;background:transparent;font-family:var(--font-sans);font-size:.8rem;font-weight:500;color:var(--muted-foreground);cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease;white-space:nowrap}.admin-tab-btn:hover{color:var(--foreground);background:var(--card-hover)}.admin-tab-btn.active{background:var(--background);color:var(--foreground);font-weight:600;box-shadow:var(--shadow-sm)}.admin-tab-btn svg{flex-shrink:0;opacity:.7}.admin-tab-btn.active svg{opacity:1}.quick-test-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:4px}.quick-test-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 3px;border-radius:var(--radius);border:1px solid var(--border);background:#fff;cursor:pointer;font-size:14px;transition:all .12s ease}.quick-test-btn:hover{border-color:#a3a3a3;background:#fafafa;transform:translateY(-1px)}.quick-test-label{font-size:.55rem;font-weight:600;color:var(--muted-foreground);white-space:nowrap;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.03em}.sidebar-empty-note{font-size:.75rem;color:var(--muted-foreground);padding:8px 4px;margin:0;font-style:italic}.exam-history-item{display:flex!important;align-items:center!important;gap:7px!important;padding:7px 8px!important}.exam-history-emoji{font-size:13px;flex-shrink:0}.exam-history-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.exam-history-title{font-size:.72rem;font-weight:600;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exam-history-meta{font-size:.625rem;color:var(--muted-foreground)}.exam-score-badge{font-size:.625rem;font-weight:700;padding:2px 6px;border-radius:99px;flex-shrink:0;border:1px solid transparent}.convo-list-item-deletable{display:flex!important;align-items:center!important;gap:5px!important;position:relative}.convo-delete-btn{background:none;border:none;color:var(--muted-foreground);font-size:14px;line-height:1;cursor:pointer;padding:0 2px;opacity:0;transition:opacity .12s,color .12s;flex-shrink:0}.convo-list-item-deletable:hover .convo-delete-btn{opacity:1}.convo-delete-btn:hover{color:var(--danger)}.exam-suggestions-wrap{width:100%;margin-top:12px}.exam-suggestions-header{margin-bottom:12px}.exam-suggestions-header h3{font-size:.875rem;font-weight:600;color:var(--foreground);margin:0 0 3px}.exam-suggestions-header p{font-size:.78rem;color:var(--muted-foreground);margin:0}.exam-subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.exam-subject-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px;display:flex;flex-direction:column;gap:8px;transition:border-color .12s ease,box-shadow .12s ease}.exam-subject-card:hover{border-color:#a3a3a3;box-shadow:var(--shadow-sm)}.exam-subject-card-top{display:flex;align-items:center;gap:7px}.exam-subject-emoji{font-size:17px}.exam-subject-name{font-size:.78rem;font-weight:600;color:var(--foreground)}.exam-grade-row{display:flex;gap:3px;flex-wrap:wrap}.exam-grade-btn{padding:2px 7px;border-radius:4px;border:1px solid var(--border);background:transparent;font-family:var(--font-sans);font-size:.68rem;font-weight:600;color:var(--muted-foreground);cursor:pointer;transition:all .12s ease}.exam-grade-btn:hover{border-color:#a3a3a3;color:var(--foreground);background:#fafafa}.exam-grade-btn-active{background:var(--foreground);border-color:var(--foreground);color:#fff}.exam-generate-btn{width:100%;padding:7px;border-radius:var(--radius);border:none;background:var(--foreground);color:#fff;font-family:var(--font-sans);font-size:.72rem;font-weight:600;cursor:pointer;transition:background .12s ease}.exam-generate-btn:hover{background:#2d2d2d}.exam-detector-card{margin-top:8px;background:#fafafa;border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;animation:slide-in-up .25s ease}.exam-detector-preview{display:flex;align-items:center;gap:9px;min-width:0}.exam-detector-emoji{font-size:18px;flex-shrink:0}.exam-detector-info{display:flex;flex-direction:column;gap:2px;min-width:0}.exam-detector-info strong{font-size:.8125rem;font-weight:600;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exam-detector-info span{font-size:.72rem;color:var(--muted-foreground);text-transform:capitalize}.exam-open-btn{flex-shrink:0;padding:8px 14px;border-radius:var(--radius);border:none;background:var(--foreground);color:#fff;font-family:var(--font-sans);font-size:.78rem;font-weight:600;cursor:pointer;transition:background .12s ease;white-space:nowrap}.exam-open-btn:hover{background:#2d2d2d}@keyframes slide-in-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sidebar-subject-group{margin-bottom:6px;border-radius:8px;overflow:hidden}.sidebar-subject-header{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s ease;font-family:var(--font-sans)}.sidebar-subject-header:hover{background-color:#0000000a}.sidebar-subject-header-title{font-size:.78rem;font-weight:600;color:var(--foreground);flex:1}.sidebar-subject-badge{font-size:.65rem;font-weight:700;background-color:#e2e8f0;color:#475569;padding:1px 6px;border-radius:99px;margin-right:4px}.sidebar-subject-chevron{display:flex;align-items:center;color:var(--muted-foreground);transition:transform .2s ease}.sidebar-subject-chevron.expanded{transform:rotate(0)}.sidebar-subject-chevron.collapsed{transform:rotate(-90deg)}.sidebar-subject-content{padding-left:12px;border-left:1px solid var(--border);margin-left:17px;margin-top:2px;margin-bottom:6px;display:flex;flex-direction:column;gap:3px;animation:slide-in-up .15s ease-out}.sidebar-subject-empty{font-size:.68rem;color:var(--muted-foreground);padding:4px 8px;font-style:italic}
