@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--background:#f8f9ff;--on-background:#0b1c30;--surface:#fff;--surface-dim:#cbdbf5;--surface-bright:#f8f9ff;--surface-container-lowest:#fff;--surface-container-low:#eff4ff;--surface-container:#e5eeff;--surface-container-high:#dce9ff;--on-surface:#0b1c30;--on-surface-variant:#64748b;--inverse-surface:#213145;--inverse-on-surface:#eaf1ff;--outline:#94a3b8;--outline-variant:#e2e8f0;--primary:#4f46e5;--primary-dark:#3525cd;--on-primary:#fff;--secondary:#7c3aed;--on-secondary:#fff;--error:#dc2626;--on-error:#fff;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 24px #0000000a;--shadow-xl:0 16px 40px #00000014;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--navbar-height:64px;--gradient-primary:linear-gradient(135deg, #4f46e5, #7c3aed)}[data-theme=dark]{--background:#0b1220;--on-background:#e8eeff;--surface:#151d2e;--surface-dim:#0d1520;--surface-bright:#1a2538;--surface-container-lowest:#0a1018;--surface-container-low:#121b2a;--surface-container:#182336;--surface-container-high:#1e2d44;--on-surface:#e8eeff;--on-surface-variant:#9aa4b8;--outline:#5a6478;--outline-variant:#2d3748;--primary:#818cf8;--primary-dark:#6366f1;--secondary:#a78bfa;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 16px #00000040;--shadow-lg:0 10px 30px #0003;--shadow-xl:0 20px 50px #0000004d;--gradient-primary:linear-gradient(135deg, #6366f1, #8b5cf6)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--background);color:var(--on-surface);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}h1{letter-spacing:-.02em;font-size:32px;font-weight:700}h2{font-size:24px;font-weight:600}h3{font-size:20px;font-weight:600}h4{font-size:16px;font-weight:600}.top-navbar{z-index:100;height:var(--navbar-height);background:var(--surface);border-bottom:1px solid var(--outline-variant);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);justify-content:space-between;align-items:center;padding:0 32px;display:flex;position:fixed;top:0;left:0;right:0}.nav-left{align-items:center;gap:32px;display:flex}.nav-logo{color:var(--on-surface);align-items:center;gap:10px;font-size:17px;font-weight:800;display:flex}.nav-logo-icon{background:var(--gradient-primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:800;display:flex}.nav-links{gap:4px;display:flex}.nav-link{border-radius:var(--radius-md);color:var(--on-surface-variant);align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.nav-link:hover{background:var(--surface-container-low);color:var(--on-surface)}.nav-link.active{background:var(--primary);color:#fff;font-weight:600}.nav-link .material-symbols-rounded{font-size:18px}.nav-right{align-items:center;gap:16px;display:flex}.nav-search{border-radius:var(--radius-full);border:1px solid var(--outline-variant);background:var(--surface-container-lowest);align-items:center;gap:8px;width:200px;padding:6px 14px;display:flex}.nav-search input{color:var(--on-surface);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.search-icon{color:var(--on-surface-variant);font-size:18px}.nav-icon-btn{cursor:pointer;border-radius:var(--radius-md);color:var(--on-surface-variant);background:0 0;border:none;padding:8px;transition:all .15s}.nav-icon-btn:hover{background:var(--surface-container-low);color:var(--on-surface)}.nav-user{cursor:pointer;border-radius:var(--radius-md);align-items:center;gap:10px;padding:4px 8px;transition:background .15s;display:flex}.nav-user:hover{background:var(--surface-container-low)}.nav-user-info{text-align:right}.nav-user-name{color:var(--on-surface);font-size:13px;font-weight:600;display:block}.nav-plan-badge{letter-spacing:.05em;border-radius:var(--radius-full);padding:1px 6px;font-size:10px;font-weight:700}.nav-plan-badge.free{color:#0369a1;background:#e0f2fe}.nav-plan-badge.pro{background:var(--gradient-primary);color:#fff}.nav-avatar{background:var(--gradient-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:flex}.nav-dropdown{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);z-index:200;min-width:180px;position:absolute;top:60px;right:32px;overflow:hidden}.nav-dropdown-item{cursor:pointer;color:var(--on-surface);align-items:center;gap:10px;padding:12px 16px;font-size:14px;transition:background .1s;display:flex}.nav-dropdown-item:hover{background:var(--surface-container-low)}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-main{margin-top:var(--navbar-height);flex:1;width:100%;max-width:1400px;margin-left:auto;margin-right:auto;padding:32px 40px}.app-footer{border-top:1px solid var(--outline-variant);color:var(--on-surface-variant);justify-content:space-between;padding:16px 40px;font-size:12px;display:flex}.footer-links{gap:16px;display:flex}.footer-links a{color:var(--on-surface-variant);cursor:pointer}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--outline-variant);padding:24px}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background:var(--gradient-primary);color:#fff}.btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px #4f46e54d}.btn-secondary{background:var(--surface);color:var(--on-surface);border:1px solid var(--outline-variant)}.btn-secondary:hover{background:var(--surface-container-low)}.btn-ghost{color:var(--on-surface-variant);background:0 0}.btn-ghost:hover{background:var(--surface-container-low);color:var(--on-surface)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.input-field{border:1px solid var(--outline-variant);border-radius:var(--radius-md);background:var(--surface-container-lowest);width:100%;color:var(--on-surface);padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .2s}.input-field:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #4f46e51a}.input-label{margin-bottom:6px;font-size:14px;font-weight:500;display:block}.toast{border-radius:var(--radius-full);z-index:9999;opacity:0;pointer-events:none;padding:12px 24px;font-size:14px;font-weight:500;transition:all .3s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toast-info{background:var(--inverse-surface);color:var(--inverse-on-surface)}.toast-success{color:#fff;background:#15803d}.toast-error{color:#fff;background:#dc2626}.onboarding-step{display:none}.onboarding-step.active{display:block}.day-chip{border-radius:var(--radius-full);border:1px solid var(--outline-variant);cursor:pointer;background:var(--surface);padding:10px 16px;font-family:inherit;font-size:14px;transition:all .2s}.day-chip.selected,.pace-btn.selected{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}.progress-dots{justify-content:center;gap:8px;margin-bottom:40px;display:flex}.progress-dots .dot{background:var(--outline-variant);border-radius:50%;width:10px;height:10px;transition:all .3s}.progress-dots .dot.active{background:var(--primary);border-radius:5px;width:28px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.dashboard-page{animation:.3s fadeIn}.dash-header{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.dash-greeting{letter-spacing:-.02em;font-size:28px;font-weight:700}.dash-date{color:var(--on-surface-variant);margin-top:4px;font-size:14px}.study-mode-badge{border-radius:var(--radius-full);color:var(--primary);letter-spacing:.04em;background:#4f46e514;align-items:center;gap:6px;padding:6px 14px;font-size:11px;font-weight:700;display:flex}.dash-grid{grid-template-columns:1fr 340px;gap:28px;display:grid}.dash-stats{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px;display:grid}.dash-stat-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);padding:20px}.dash-stat-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.dash-stat-label{letter-spacing:.04em;color:var(--on-surface-variant);font-size:11px;font-weight:700}.dash-stat-icon{font-size:22px}.dash-stat-row{align-items:baseline;gap:4px;margin-bottom:8px;display:flex}.dash-stat-big{letter-spacing:-.03em;color:var(--on-surface);font-size:36px;font-weight:800}.dash-stat-sub{color:var(--on-surface-variant);font-size:20px;font-weight:600}.dash-stat-unit{color:var(--on-surface-variant);font-size:16px;font-weight:500}.dash-stat-pct{color:var(--primary);margin-left:auto;font-size:14px;font-weight:700}.dash-progress-track{background:var(--surface-container);border-radius:3px;height:6px}.dash-progress-fill{background:var(--gradient-primary);border-radius:3px;height:100%;transition:width .5s}.dash-stat-trend{color:#10b981;font-size:12px;font-weight:600}.dash-stat-trend.up{color:#10b981}.dash-stat-note{color:var(--on-surface-variant);margin-top:4px;font-size:12px}.dash-tasks-section{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);margin-bottom:24px;padding:24px}.dash-tasks-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.dash-filter-tabs{gap:4px;display:flex}.filter-tab{border-radius:var(--radius-full);border:1px solid var(--outline-variant);background:var(--surface);cursor:pointer;color:var(--on-surface-variant);padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s}.filter-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.dash-task-list{flex-direction:column;gap:4px;display:flex}.dash-task-item{border-radius:var(--radius-md);align-items:center;gap:14px;padding:14px;transition:background .1s;display:flex}.dash-task-item:hover{background:var(--surface-container-lowest)}.dash-task-item.completed{opacity:.6}.task-checkbox{border:2px solid var(--outline-variant);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:all .2s;display:flex}.task-checkbox.checked{background:var(--primary);border-color:var(--primary);color:#fff}.task-checkbox .material-symbols-rounded{font-size:16px}.task-info{flex:1;min-width:0}.task-name{font-size:14px;font-weight:500;display:block}.task-name.done{color:var(--on-surface-variant);text-decoration:line-through}.task-meta{color:var(--on-surface-variant);align-items:center;gap:6px;margin-top:4px;font-size:12px;display:flex}.task-subject-tag{border-radius:var(--radius-full);background:var(--surface-container);padding:1px 8px;font-size:11px;font-weight:600}.task-start-btn{border-radius:var(--radius-full);border:1px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;padding:6px 16px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s}.task-start-btn:hover{background:var(--primary);color:#fff}.mentor-tip-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);align-items:flex-start;gap:16px;padding:20px;display:flex}.mentor-tip-icon{background:#f59e0b1a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.mentor-tip-icon .material-symbols-rounded{color:#f59e0b;font-size:20px}.mentor-tip-title{margin-bottom:4px;font-size:14px;font-weight:600}.mentor-tip-text{color:var(--on-surface-variant);font-size:13px;line-height:1.5}.dash-right{flex-direction:column;gap:20px;display:flex}.dash-widget{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);padding:20px}.widget-title{letter-spacing:.04em;color:var(--on-surface-variant);margin-bottom:16px;font-size:11px;font-weight:700}.widget-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.widget-header .widget-title{margin-bottom:0}.widget-link{color:var(--primary);font-size:12px;font-weight:600}.widget-footer{color:var(--on-surface-variant);justify-content:space-between;margin-top:12px;font-size:12px;display:flex}.weekly-bars{align-items:flex-end;gap:8px;height:100px;display:flex}.bar-col{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.bar-track{align-items:flex-end;width:100%;height:80px;display:flex}.bar-fill{background:var(--surface-container-high);border-radius:4px 4px 0 0;width:100%;transition:height .3s}.bar-fill.today{background:var(--primary)}.bar-label{color:var(--on-surface-variant);font-size:11px;font-weight:500}.bar-label.today{color:var(--primary);font-weight:700}.coming-up-list{flex-direction:column;gap:12px;display:flex}.coming-up-item{align-items:flex-start;gap:12px;display:flex}.coming-up-bar{border-radius:2px;flex-shrink:0;width:3px;height:36px;margin-top:2px}.coming-up-bar.red{background:#ef4444}.coming-up-bar.blue{background:#4f46e5}.coming-up-bar.orange{background:#f59e0b}.coming-up-item strong{font-size:13px;display:block}.coming-up-item span{color:var(--on-surface-variant);font-size:12px}.dash-upgrade-card{background:var(--gradient-primary);border-radius:var(--radius-lg);color:#fff;text-align:center;padding:24px}.dash-upgrade-card h3{margin-bottom:8px;font-size:18px}.dash-upgrade-card p{opacity:.85;margin-bottom:16px;font-size:13px}.upgrade-cta-btn{border-radius:var(--radius-full);color:var(--primary);background:#fff;padding:10px 24px;font-size:14px;font-weight:700;transition:transform .15s;display:inline-block}.upgrade-cta-btn:hover{transform:scale(1.03)}.plan-page{animation:.3s fadeIn}.plan-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.plan-header-left{align-items:center;gap:14px;display:flex}.plan-subject-badge{border-radius:var(--radius-full);color:var(--primary);background:#4f46e514;padding:4px 12px;font-size:12px;font-weight:700}.plan-header-actions{gap:8px;display:flex}.plan-overview-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);margin-bottom:24px;padding:28px}.plan-overview-left{margin-bottom:20px}.plan-overview-left h2{margin-bottom:6px}.plan-overview-desc{color:var(--on-surface-variant);font-size:14px}.plan-overview-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.plan-overview-stat{background:var(--surface-container-lowest);border:1px solid var(--outline-variant);border-radius:var(--radius-md);text-align:center;padding:14px}.plan-stat-label{letter-spacing:.04em;color:var(--on-surface-variant);margin-bottom:4px;font-size:11px;font-weight:700;display:block}.plan-stat-value{color:var(--on-surface);font-size:18px;font-weight:700}.plan-progress-section{margin-top:8px}.plan-progress-header{justify-content:space-between;margin-bottom:8px;font-size:13px;display:flex}.plan-progress-pct{color:var(--primary);font-weight:700}.plan-progress-track{background:var(--surface-container);border-radius:4px;height:8px}.plan-progress-fill{background:var(--gradient-primary);border-radius:4px;height:100%;transition:width .5s}.plan-week-tabs{flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.plan-week-tab{border-radius:var(--radius-full);border:1px solid var(--outline-variant);background:var(--surface);cursor:pointer;color:var(--on-surface-variant);align-items:center;gap:4px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:flex}.plan-week-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.plan-week-tab.done{color:#10b981;border-color:#10b981}.plan-week-tab.done .material-symbols-rounded{color:#10b981}.plan-week-detail{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);margin-bottom:24px;padding:24px}.plan-week-heading{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.plan-week-pct-badge{letter-spacing:.04em;border-radius:var(--radius-full);color:var(--primary);background:#4f46e514;padding:4px 10px;font-size:11px;font-weight:700}.plan-week-desc{color:var(--on-surface-variant);margin-bottom:12px;font-size:14px}.plan-topic-tags{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.topic-tag{border-radius:var(--radius-full);background:var(--surface-container);color:var(--on-surface-variant);padding:4px 10px;font-size:12px;font-weight:500}.plan-task-table{border:1px solid var(--outline-variant);border-radius:var(--radius-md);overflow:hidden}.plan-table-header{background:var(--surface-container-lowest);letter-spacing:.04em;color:var(--on-surface-variant);border-bottom:1px solid var(--outline-variant);grid-template-columns:60px 1fr 100px 80px 80px;padding:10px 16px;font-size:11px;font-weight:700;display:grid}.plan-table-row{border-bottom:1px solid var(--outline-variant);grid-template-columns:60px 1fr 100px 80px 80px;align-items:center;padding:12px 16px;font-size:14px;transition:background .1s;display:grid}.plan-table-row:last-child{border-bottom:none}.plan-table-row:hover{background:var(--surface-container-lowest)}.plan-table-row.today-row{background:#4f46e50a}.plan-cell-day{color:var(--on-surface-variant);font-size:13px;font-weight:600}.plan-cell-day.today{color:var(--primary)}.plan-cell-type{color:var(--on-surface-variant);align-items:center;gap:4px;font-size:13px;display:flex}.plan-cell-duration{color:var(--on-surface-variant);font-size:13px}.plan-cell-duration.bold{color:var(--primary);font-weight:700}.status-done{color:#10b981;align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.status-today{letter-spacing:.04em;border-radius:var(--radius-full);background:var(--primary);color:#fff;padding:3px 10px;font-size:11px;font-weight:700}.status-pending{color:var(--outline);font-size:13px}.plan-insight-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);align-items:center;gap:16px;padding:20px;display:flex}.insight-icon{background:#4f46e514;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.insight-icon .material-symbols-rounded{color:var(--primary);font-size:20px}.insight-content{flex:1}.insight-content h4{margin-bottom:4px}.insight-content p{color:var(--on-surface-variant);font-size:13px}.insight-actions{gap:8px;display:flex}.tutor-page{height:calc(100vh - var(--navbar-height) - 64px);border-radius:0;margin:-32px -40px;display:flex}.tutor-sidebar{border-right:1px solid var(--outline-variant);background:var(--surface-container-lowest);flex-direction:column;flex-shrink:0;width:260px;padding:16px;display:flex}.new-chat-btn{border-radius:var(--radius-md);border:1px solid var(--outline-variant);background:var(--surface);cursor:pointer;width:100%;color:var(--on-surface);align-items:center;gap:8px;margin-bottom:20px;padding:10px;font-family:inherit;font-size:14px;font-weight:600;transition:background .1s;display:flex}.new-chat-btn:hover{background:var(--surface-container-low)}.chat-history{flex:1;overflow-y:auto}.chat-history-label{letter-spacing:.04em;color:var(--on-surface-variant);margin-bottom:8px;font-size:11px;font-weight:700;display:block}.chat-history-item{border-radius:var(--radius-md);cursor:pointer;margin-bottom:2px;padding:10px;transition:background .1s}.chat-history-item:hover{background:var(--surface-container-low)}.ch-title{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;display:block;overflow:hidden}.ch-time{color:var(--on-surface-variant);font-size:11px}.tutor-main{flex-direction:column;flex:1;min-width:0;display:flex}.tutor-topbar{border-bottom:1px solid var(--outline-variant);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.tutor-topbar-left{align-items:center;gap:12px;display:flex}.tutor-topic-label{letter-spacing:.04em;border-radius:var(--radius-full);background:var(--surface-container);color:var(--on-surface-variant);padding:3px 10px;font-size:11px;font-weight:700}.tutor-topbar-right{align-items:center;gap:12px;display:flex}.level-selector{background:var(--surface-container);border-radius:var(--radius-full);gap:2px;padding:2px;display:flex}.level-pill{border-radius:var(--radius-full);cursor:pointer;color:var(--on-surface-variant);background:0 0;border:none;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s}.level-pill.active{background:var(--primary);color:#fff}.tutor-messages{flex-direction:column;flex:1;gap:20px;padding:24px;display:flex;overflow-y:auto}.tutor-empty{text-align:center;margin:auto;padding:40px}.tutor-empty h3{color:var(--on-surface);margin-bottom:8px}.tutor-empty p{color:var(--on-surface-variant);font-size:14px}.tutor-msg{gap:12px;animation:.3s fadeIn;display:flex}.tutor-msg.user{justify-content:flex-end}.tutor-ai-avatar{background:var(--gradient-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.tutor-ai-avatar .material-symbols-rounded{color:#fff;font-size:18px}.tutor-bubble{border-radius:var(--radius-lg);max-width:680px;padding:16px 20px;font-size:14px;line-height:1.6}.tutor-bubble.user{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.tutor-bubble.ai{background:var(--surface);border:1px solid var(--outline-variant);border-bottom-left-radius:4px}.structured-response{flex-direction:column;gap:16px;display:flex}.sr-label{letter-spacing:.06em;color:var(--primary);text-transform:uppercase;font-size:10px;font-weight:800}.sr-summary{font-size:18px;font-weight:600;line-height:1.3}.sr-explanation{color:var(--on-surface);font-size:14px;line-height:1.7}.sr-analogy{border-radius:var(--radius-md);border-left:3px solid var(--primary);color:var(--on-surface-variant);background:#4f46e50a;padding:12px 16px;font-size:14px}.sr-keypoints{flex-direction:column;gap:8px;display:flex}.sr-keypoints li{align-items:center;gap:8px;font-size:14px;display:flex}.sr-related{flex-wrap:wrap;gap:6px;display:flex}.related-tag{border-radius:var(--radius-full);background:var(--surface-container);cursor:pointer;padding:4px 10px;font-size:12px;font-weight:500;transition:background .15s}.related-tag:hover{background:var(--surface-container-high)}.sr-actions{border-top:1px solid var(--outline-variant);align-items:center;gap:4px;padding-top:12px;display:flex}.sr-actions button{border-radius:var(--radius-md);cursor:pointer;color:var(--on-surface-variant);background:0 0;border:none;align-items:center;gap:4px;padding:6px 10px;font-family:inherit;font-size:12px;transition:background .1s;display:flex}.sr-actions button:hover{background:var(--surface-container-low)}.typing-indicator{gap:4px;padding:4px 0;display:flex}.typing-indicator span{background:var(--on-surface-variant);border-radius:50%;width:8px;height:8px;animation:1.4s infinite bounce}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}.tutor-input-area{border-top:1px solid var(--outline-variant);padding:16px 24px}.tutor-file-preview{border-radius:var(--radius-md);background:var(--surface-container);align-items:center;gap:6px;margin-bottom:8px;padding:8px 12px;font-size:13px;display:flex}.remove-file{cursor:pointer;margin-left:auto;font-size:16px}.tutor-input-form{border-radius:var(--radius-lg);border:1px solid var(--outline-variant);background:var(--surface);align-items:center;gap:8px;padding:8px 12px;display:flex}.tutor-attach-btn{cursor:pointer;color:var(--on-surface-variant);border-radius:var(--radius-md);padding:6px;transition:background .1s;display:flex}.tutor-attach-btn:hover{background:var(--surface-container-low)}.tutor-text-input{color:var(--on-surface);background:0 0;border:none;outline:none;flex:1;padding:4px;font-family:inherit;font-size:14px}.tutor-send-btn{background:var(--gradient-primary);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:opacity .15s;display:flex}.tutor-send-btn:disabled{opacity:.3;cursor:not-allowed}.tutor-footer-text{text-align:center;letter-spacing:.06em;color:var(--outline);margin-top:8px;font-size:10px;font-weight:700}.progress-page{animation:.3s fadeIn}.progress-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.progress-subtitle{color:var(--on-surface-variant);margin-top:4px;font-size:14px}.progress-header-right{align-items:center;gap:12px;display:flex}.period-tabs{background:var(--surface-container);border-radius:var(--radius-full);gap:2px;padding:2px;display:flex}.period-tab{border-radius:var(--radius-full);cursor:pointer;color:var(--on-surface-variant);background:0 0;border:none;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s}.period-tab.active{background:var(--primary);color:#fff}.progress-stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.progress-stat-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);padding:20px}.psc-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.psc-icon{font-size:22px}.psc-trend{border-radius:var(--radius-full);color:#10b981;background:#10b9811a;padding:2px 8px;font-size:11px;font-weight:700}.psc-trend.down{color:#ef4444;background:#ef44441a}.psc-value{letter-spacing:-.03em;font-size:32px;font-weight:800}.psc-label{letter-spacing:.04em;color:var(--on-surface-variant);margin-top:4px;font-size:11px;font-weight:700}.progress-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);margin-bottom:20px;padding:24px}.pc-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.pc-legend{color:var(--on-surface-variant);align-items:center;gap:6px;font-size:12px;display:flex}.legend-dot{background:var(--primary);border-radius:50%;width:8px;height:8px}.activity-bars{align-items:flex-end;gap:3px;height:120px;display:flex}.activity-bar-wrapper{flex:1;align-items:flex-end;height:100%;display:flex}.activity-bar{background:var(--primary);opacity:.7;border-radius:2px 2px 0 0;width:100%;transition:height .3s}.activity-labels{color:var(--on-surface-variant);justify-content:space-between;margin-top:8px;font-size:11px;display:flex}.progress-split{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.heatmap-grid{grid-template-columns:repeat(15,1fr);gap:3px;margin-bottom:12px;display:grid}.heatmap-cell{aspect-ratio:1;border-radius:3px}.heatmap-cell.level-0{background:var(--surface-container)}.heatmap-cell.level-1{background:#4f46e533}.heatmap-cell.level-2{background:#4f46e580}.heatmap-cell.level-3{background:var(--primary)}.heatmap-legend{color:var(--on-surface-variant);justify-content:flex-end;align-items:center;gap:4px;font-size:10px;display:flex}.heatmap-legend .heatmap-cell{aspect-ratio:auto;width:12px;height:12px}.strengths-list{flex-direction:column;gap:14px;margin-top:16px;display:flex}.strength-row{align-items:center;gap:12px;display:flex}.strength-name{min-width:140px;font-size:13px;font-weight:500}.strength-bar-track{background:var(--surface-container);border-radius:4px;flex:1;height:8px}.strength-bar-fill{border-radius:4px;height:100%;transition:width .5s}.strength-pct{text-align:right;min-width:40px;font-size:14px;font-weight:700}.attention-card{margin-bottom:20px}.attention-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.attention-desc{color:var(--on-surface-variant);margin-bottom:16px;font-size:13px}.attention-topics{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.attention-topic-card{background:var(--surface-container-lowest);border:1px solid var(--outline-variant);border-radius:var(--radius-md);text-align:center;padding:16px}.attention-topic-card h4{margin:8px 0;font-size:13px}.practice-btn{border-radius:var(--radius-full);border:1px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;padding:6px 16px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s}.practice-btn:hover{background:var(--primary);color:#fff}.mentor-insight-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);gap:16px;margin-bottom:24px;padding:24px;display:flex}.mi-icon{background:#4f46e514;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.mi-icon .material-symbols-rounded{color:var(--primary);font-size:20px}.mi-content{flex:1}.mi-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.mi-time{letter-spacing:.04em;color:var(--on-surface-variant);font-size:10px;font-weight:700}.mi-content p{color:var(--on-surface-variant);margin-bottom:8px;font-size:14px;line-height:1.6}.mi-badges{align-items:center;gap:8px;margin-top:8px;display:flex}.mi-highlight{color:var(--primary);font-size:13px;font-weight:600}.achievements-section{margin-bottom:24px}.achievements-section h3{margin-bottom:16px}.achievements-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.achievement-card{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);text-align:center;flex-direction:column;align-items:center;gap:4px;padding:24px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.achievement-card.unlocked:hover{box-shadow:var(--shadow-lg);border-color:var(--primary);transform:translateY(-4px)}.achievement-card.locked{background:var(--surface-container-lowest);border-style:dashed}.achievement-card.locked .achievement-icon-wrap{filter:grayscale();opacity:.5;background:var(--outline-variant)}.achievement-card.locked .achievement-name{opacity:.6}.achievement-icon-wrap{background:var(--gradient-primary);border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:8px;display:flex;position:relative;box-shadow:0 4px 12px #4f46e533}.achievement-icon-wrap .material-symbols-rounded{color:#fff;font-size:28px}.lock-icon{background:var(--surface);border-radius:50%;padding:2px;position:absolute;bottom:-4px;right:-4px;box-shadow:0 2px 4px #0000001a;color:var(--on-surface-variant)!important;font-size:16px!important}.achievement-name{letter-spacing:.02em;color:var(--on-surface);font-size:12px;font-weight:700}.achievement-desc{color:var(--on-surface-variant);margin-top:2px;font-size:11px;line-height:1.4}.plan-card{flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;position:relative}.plan-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-6px)}.plan-card.featured{border:2px solid var(--primary)}.check-item{align-items:center;gap:10px;font-size:15px;display:flex}.check-item:before{content:"✓";color:var(--primary);min-width:16px;font-weight:700}.badge-pro{background:var(--gradient-primary);color:#fff;border-radius:var(--radius-full);padding:3px 10px;font-size:11px;font-weight:600}.hero-h1{letter-spacing:-.04em;font-size:56px;font-weight:700;line-height:1.1}.navbar{z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--outline-variant);background:#fffc;justify-content:space-between;align-items:center;height:72px;padding:0 40px;display:flex;position:fixed;top:0;left:0;right:0}[data-theme=dark] .navbar{background:#151d2ed9}.btn-lg{padding:14px 28px;font-size:16px}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.03em;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}@media (width<=1100px){.dash-grid{grid-template-columns:1fr}.dash-stats,.progress-stats{grid-template-columns:repeat(2,1fr)}.progress-split{grid-template-columns:1fr}.achievements-grid{grid-template-columns:repeat(3,1fr)}.attention-topics,.plan-overview-stats{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.app-main{padding:20px 16px}.nav-links,.nav-search,.tutor-sidebar{display:none}.tutor-page{margin:-20px -16px}.dash-stats,.progress-stats{grid-template-columns:1fr}.plan-table-header,.plan-table-row{grid-template-columns:50px 1fr 80px 60px 60px;font-size:12px}.achievements-grid{grid-template-columns:repeat(2,1fr)}}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.assignment-modal{background:#fff;border-radius:16px;width:90%;max-width:600px;padding:30px;position:relative;box-shadow:0 10px 40px #0000001a}.assignment-modal h2{color:var(--text-dark);margin-top:0;margin-bottom:5px}.assignment-modal .subtitle{color:var(--text-light);margin-bottom:20px;font-weight:500}.modal-close{cursor:pointer;color:var(--text-light);background:0 0;border:none;transition:all .2s;position:absolute;top:20px;right:20px}.modal-close:hover{color:var(--text-dark)}.loading-state,.error-state,.result-state{text-align:center;padding:40px 0}.spinner{border:4px solid #0000001a;border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;margin:0 auto 20px;animation:1s linear infinite spin}.quiz-progress{color:var(--text-light);margin-bottom:15px;font-size:.9rem;font-weight:600}.question-block h3{color:var(--text-dark);margin-bottom:20px;font-size:1.2rem;line-height:1.5}.options-list{flex-direction:column;gap:12px;margin-bottom:30px;display:flex}.option-label{background:var(--bg-color);cursor:pointer;border:2px solid #0000;border-radius:12px;align-items:center;gap:12px;padding:15px 20px;font-weight:500;transition:all .2s;display:flex}.option-label:hover{background:#f1f5f9}.option-label.selected{border-color:var(--primary);background:#4f46e50d}.option-label input[type=radio]{accent-color:var(--primary);width:18px;height:18px}.quiz-footer{border-top:1px solid #e2e8f0;justify-content:space-between;padding-top:20px;display:flex}.result-icon{border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;display:flex}.result-icon span{color:#fff;font-size:40px}.result-icon.passed{background:var(--success)}.result-icon.failed{background:var(--danger)}.result-state h3{margin-bottom:10px;font-size:1.5rem}.score-text{color:var(--primary);margin-bottom:10px;font-size:1.2rem;font-weight:700}.result-message{color:var(--text-light);margin-bottom:30px}
