@import "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap";.auth-menu{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);width:260px;box-shadow:var(--shadow-popover);z-index:20;flex-direction:column;gap:10px;padding:16px;display:flex;position:absolute;top:46px;right:28px}.auth-menu-email{color:var(--text-secondary);word-break:break-all;font-size:13px;font-weight:600}.auth-menu-disabled{color:var(--text-muted);font-size:12.5px;line-height:1.5}.auth-menu-disabled code{background:var(--border-light);border-radius:4px;padding:1px 5px;font-size:11.5px}.auth-menu-input{border:1px solid var(--neutral-border);border-radius:var(--radius-sm);padding:8px 10px;font-family:inherit;font-size:13px}.auth-menu-error{color:var(--danger-text);font-size:12px}.auth-menu-row{gap:8px;display:flex}.auth-menu-btn{flex:1;padding:9px;font-size:12.5px}.auth-menu-divider{text-align:center;color:var(--text-faint);font-size:11px}.google-btn{color:#1f1f1f;width:100%;height:40px;font-family:"Roboto", var(--font-sans);cursor:pointer;background:#fff;border:1px solid #747775;border-radius:4px;align-items:center;gap:10px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;display:flex}.google-btn:hover{box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.google-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.google-btn-icon{flex:none}:root[data-theme=dark] .google-btn{color:#e3e3e3;background:#131314;border-color:#8e918f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) .google-btn{color:#e3e3e3;background:#131314;border-color:#8e918f}}.top-nav{background:var(--card-bg);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:12px;height:60px;padding:0 28px;display:flex;position:sticky;top:0}.top-nav-logo{border-radius:var(--radius-sm);background:var(--primary);color:#fff;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:flex}.top-nav-title{font-size:15px;font-weight:600}.top-nav-setup-label{color:var(--text-muted);border-left:1px solid var(--border);padding-left:12px;font-size:12px}.top-nav-tabs{background:var(--border-light);border-radius:var(--radius-md);gap:4px;margin-left:20px;padding:3px;display:flex}.top-nav-tabs button{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:6px 16px;font-size:13px;font-weight:500}.top-nav-tabs button.active{background:var(--card-bg);color:var(--text-primary);box-shadow:var(--shadow-card);font-weight:600}.top-nav-spacer{flex:1}.top-nav-theme-toggle{z-index:20;border:1px solid var(--border);background:var(--card-bg);border-radius:var(--radius-sm);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);justify-content:center;align-items:center;font-size:13px;display:flex;position:relative}.top-nav-theme-toggle:hover{background:var(--border-light)}.top-nav-sync{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.sync-dot{border-radius:var(--radius-pill);background:var(--text-faint);width:7px;height:7px}.sync-dot.synced{background:var(--success)}.top-nav-avatar-wrap{position:relative}.top-nav-avatar{border-radius:var(--radius-pill);background:var(--border);width:30px;height:30px;color:var(--text-muted);cursor:pointer;border:none;justify-content:center;align-items:center;font-family:inherit;font-size:11px;font-weight:600;display:flex}.top-nav-backdrop{z-index:15;position:fixed;inset:0}@media (width<=640px){.top-nav{gap:8px;padding:0 14px}.top-nav-title{text-overflow:ellipsis;white-space:nowrap;max-width:88px;overflow:hidden}.top-nav-tabs{margin-left:8px}.top-nav-tabs button{padding:6px 10px;font-size:12px}.top-nav-sync{display:none}}.wizard-layout{gap:36px;max-width:1080px;margin:0 auto;padding:32px 40px 120px;display:flex}.wizard-rail{flex-direction:column;flex:none;align-self:flex-start;gap:2px;width:210px;display:flex;position:sticky;top:84px}.wizard-rail-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:0 12px 10px;font-size:11px;font-weight:600}.wizard-rail-step{border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:500;display:flex}.wizard-rail-step.done{color:var(--text-primary)}.wizard-rail-dot{border-radius:var(--radius-pill);border:1.5px solid var(--neutral-border);background:var(--card-bg);box-sizing:border-box;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;display:flex}.wizard-rail-step.done .wizard-rail-dot{background:var(--success);border-color:var(--success);color:#fff}.wizard-main{flex-direction:column;flex:1;gap:20px;min-width:0;display:flex}.wizard-card{box-shadow:var(--shadow-card);padding:24px}.wizard-card-title{font-size:16px;font-weight:600}.wizard-card-title-row{justify-content:space-between;align-items:baseline;display:flex}.wizard-card-sub{color:var(--text-muted);margin:2px 0 16px;font-size:13px}.wizard-empty-hint{color:var(--text-faint);font-size:12.5px}.exam-type-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.exam-type-tile{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);text-align:left;cursor:pointer;padding:14px 16px}.exam-type-tile.selected{border:2px solid var(--primary);background:var(--primary-bg-soft)}.exam-type-label{color:var(--text-primary);justify-content:space-between;align-items:center;font-size:13.5px;font-weight:600;display:flex}.exam-type-label .check{color:var(--primary)}.exam-type-blurb{color:var(--text-muted);margin-top:4px;font-size:12px}.exam-discipline-block{border-top:1px solid var(--border-light);margin-top:18px;padding-top:16px}.wizard-subheading{color:var(--text-secondary);margin-bottom:12px;font-size:13px;font-weight:600}.exam-grid{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.exam-tile{border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);background:var(--card-bg);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;padding:13px 16px;font-size:13px;font-weight:500;display:flex}.exam-tile.selected{border:2px solid var(--primary);background:var(--primary-bg-soft);color:var(--text-primary);font-weight:600}.exam-tile .check{color:var(--primary)}.mode-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mode-option{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);text-align:left;cursor:pointer;padding:16px}.mode-option.selected{border:2px solid var(--primary);background:var(--primary-bg-soft)}.mode-option-head{align-items:center;gap:9px;display:flex}.radio-dot{border-radius:var(--radius-pill);border:1.5px solid var(--neutral-border);background:var(--card-bg);box-sizing:border-box;flex:none;width:16px;height:16px}.mode-option.selected .radio-dot{border:5px solid var(--primary)}.mode-option-title{font-size:14px;font-weight:600}.mode-option:not(.selected) .mode-option-title{color:var(--text-muted)}.mode-option-desc{color:var(--text-muted);margin:6px 0 12px 25px;font-size:12px}.mode-option:not(.selected) .mode-option-desc{color:var(--text-faint)}.mode-date-input{border:1px solid var(--neutral-border);border-radius:var(--radius-sm);background:var(--card-bg);margin-left:25px;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:500}.availability-inputs{color:var(--text-muted);align-items:center;gap:14px;margin-left:25px;font-size:12px;display:flex}.availability-inputs label{align-items:center;gap:6px;display:flex}.availability-inputs input{border:1px solid var(--neutral-border);border-radius:6px;width:52px;padding:4px 6px;font-family:inherit}.availability-customize-toggle{margin:10px 0 0 25px;font-size:11.5px;font-weight:600;display:block}.weekly-hours-grid{flex-wrap:wrap;gap:8px;margin-left:25px;display:flex}.weekly-hours-cell{color:var(--text-muted);flex-direction:column;align-items:center;gap:4px;font-size:10.5px;font-weight:600;display:flex}.weekly-hours-cell input{border:1px solid var(--neutral-border);text-align:center;border-radius:6px;width:44px;padding:4px;font-family:inherit;font-size:12px}.weekday-row{align-items:center;gap:8px;display:flex}.weekday-pill{border-radius:var(--radius-md);border:1px solid var(--border);width:40px;height:40px;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;font-size:13px;font-weight:500;display:flex}.weekday-pill.off{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}.weekday-hint{color:var(--text-faint);margin-left:6px;font-size:12px}.excluded-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.excluded-chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-bg);align-items:center;gap:8px;padding:6px 12px;font-size:12px;font-weight:500;display:inline-flex}.chip-x{color:var(--text-faint);cursor:pointer}.excluded-row input[type=date]{border:1px solid var(--neutral-border);border-radius:var(--radius-sm);padding:6px 8px;font-family:inherit;font-size:12px}.prep-grid{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.prep-tile{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);text-align:left;cursor:pointer;padding:14px 16px}.prep-tile.selected{border:2px solid var(--primary);background:var(--primary-bg-soft)}.prep-tile-head{color:var(--text-muted);justify-content:space-between;font-size:13px;font-weight:600;display:flex}.prep-tile.selected .prep-tile-head{color:var(--text-primary)}.prep-tile-head .check{color:var(--primary)}.prep-tile-sub{color:var(--text-faint);margin-top:2px;font-size:12px}.prep-tile.selected .prep-tile-sub{color:var(--text-muted)}.budget-slider-row{align-items:center;gap:16px;margin-top:18px;display:flex}.budget-slider-row>span:first-child{color:var(--text-muted);flex:none;font-size:12px}.budget-slider-row input[type=range]{accent-color:var(--primary);flex:1}.budget-value{flex:none;font-size:14px;font-weight:700}.hard-count{color:var(--danger);font-size:12px;font-weight:600}.attempt-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.attempt-tile{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);text-align:left;cursor:pointer;padding:14px 16px;font-family:inherit}.attempt-tile.selected{border:2px solid var(--primary);background:var(--primary-bg-soft)}.attempt-tile-head{color:var(--text-primary);justify-content:space-between;align-items:center;font-size:13.5px;font-weight:600;display:flex}.attempt-tile-head .check{color:var(--primary)}.attempt-tile-sub{color:var(--text-muted);margin-top:3px;font-size:12px;line-height:1.5}.attempt-grid+.diagnostic-upload{margin-top:14px;margin-bottom:0}.diagnostic-upload{border:1px dashed var(--neutral-border);border-radius:var(--radius-md);background:var(--primary-bg-soft);margin-bottom:14px;padding:12px 14px}.diagnostic-upload-row{align-items:center;gap:12px;display:flex}.diagnostic-upload-btn{flex:none;padding:8px 14px;font-size:12.5px}.diagnostic-upload-hint{color:var(--text-muted);font-size:12px;line-height:1.5}.diagnostic-upload-input{display:none}.diagnostic-upload-manual-toggle{margin-top:10px;font-size:12px;display:inline-block}.diagnostic-manual{border-top:1px solid var(--border-light);margin-top:10px;padding-top:12px}.diagnostic-manual-hint{color:var(--text-faint);margin-bottom:10px;font-size:11.5px}.diagnostic-manual-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 16px;display:grid}.diagnostic-manual-row{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.diagnostic-manual-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.diagnostic-manual-row input{border:1px solid var(--neutral-border);border-radius:var(--radius-sm);flex:none;width:68px;padding:5px 8px;font-family:inherit;font-size:12.5px}.diagnostic-manual-apply{margin-top:12px;padding:8px 16px;font-size:12.5px}.diagnostic-upload-message{margin-top:10px;font-size:12.5px;font-weight:500}.diagnostic-upload-message.parsing{color:var(--text-muted)}.diagnostic-upload-message.done{color:var(--success)}.diagnostic-upload-message.error{color:var(--danger-text)}.diagnostic-results{border-top:1px solid var(--border-light);margin-top:14px;padding-top:14px}.diagnostic-score-row{align-items:baseline;gap:14px;display:flex}.diagnostic-score-value{font-size:30px;font-weight:700;line-height:1.1}.diagnostic-score-value.below,.diagnostic-score-verdict.below{color:var(--danger-text)}.diagnostic-score-value.between,.diagnostic-score-verdict.between{color:var(--warning-text)}.diagnostic-score-value.above,.diagnostic-score-verdict.above{color:var(--success)}.diagnostic-score-verdict{font-size:13px;font-weight:600}.diagnostic-score-sub{color:var(--text-faint);margin-top:2px;font-size:11.5px}.diagnostic-bar{border-radius:var(--radius-pill);background:var(--border-light);height:10px;margin-top:12px;position:relative;overflow:hidden}.diagnostic-bar-band{background:var(--success);opacity:.5;position:absolute;top:0;bottom:0}.diagnostic-bar-marker{background:var(--text-primary);border-radius:2px;width:3px;position:absolute;top:-3px;bottom:-3px;transform:translate(-50%)}.diagnostic-bar-marker.below{background:var(--danger)}.diagnostic-bar-marker.above{background:var(--success)}.diagnostic-bar-scale{color:var(--text-faint);justify-content:space-between;margin-top:5px;font-size:10.5px;display:flex;position:relative}.diagnostic-bar-band-label{white-space:nowrap;position:absolute;transform:translate(-50%)}.diagnostic-attribution{color:var(--text-faint);margin:12px 0 0;font-size:11px;line-height:1.6}.diagnostic-attribution b{color:var(--text-muted)}.diagnostic-priorities{margin-top:16px}.diagnostic-section-title{color:var(--text-primary);font-size:13px;font-weight:700}.diagnostic-section-sub{color:var(--text-muted);margin:2px 0 10px;font-size:11.5px;line-height:1.5}.diagnostic-priority-row{margin-bottom:10px}.diagnostic-priority-head{justify-content:space-between;gap:10px;margin-bottom:4px;font-size:12.5px;display:flex}.diagnostic-priority-name{color:var(--text-secondary);font-weight:600}.diagnostic-priority-star{color:var(--danger)}.diagnostic-priority-impact{color:var(--primary);font-variant-numeric:tabular-nums;flex:none;font-weight:600}.diagnostic-priority-detail{color:var(--text-faint);margin-top:3px;font-size:11px}.diagnostic-table-toggle{margin-top:8px;font-size:12px;display:inline-block}.diagnostic-table{margin-top:10px;font-size:11.5px}.diagnostic-table-row{border-bottom:1px solid var(--border-lighter);color:var(--text-muted);grid-template-columns:1fr 52px 64px 84px 84px;gap:8px;padding:5px 0;display:grid}.diagnostic-table-head,.diagnostic-table-total{color:var(--text-secondary);font-weight:700}.diagnostic-table-total{border-bottom:none;border-top:1px solid var(--border)}.diagnostic-table-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.diagnostic-table .align-right{text-align:right;font-variant-numeric:tabular-nums}.diagnostic-upload-results{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 16px;margin-top:10px;display:grid}.diagnostic-upload-result{color:var(--text-muted);justify-content:space-between;gap:10px;padding:2px 0;font-size:12px;display:flex}.diagnostic-upload-result.picked{color:var(--danger-text);font-weight:600}.diagnostic-upload-result-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.diagnostic-upload-result-score{font-variant-numeric:tabular-nums;flex:none}.diagnostic-upload-scale{color:var(--text-faint);grid-column:1/-1;margin-top:6px;font-size:11px}.topic-chip-row{flex-wrap:wrap;gap:8px;display:flex}.topic-chip{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;padding:7px 14px;font-size:12.5px;font-weight:500}.topic-chip.selected{border:1.5px solid var(--danger);color:var(--danger-text);background:var(--danger-bg);font-weight:600}.topic-chip.disabled{opacity:.4;cursor:not-allowed}.advanced-toggle{border-top:1px solid var(--border-light);margin-top:16px;padding-top:12px}.advanced-toggle>a{font-size:12.5px;font-weight:600}.confidence-list{flex-direction:column;gap:10px;margin-top:14px;display:flex}.confidence-header-row{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;grid-template-columns:1fr 40px 170px 90px;gap:12px;padding-bottom:2px;font-size:10.5px;font-weight:700;display:grid}.confidence-row{grid-template-columns:1fr 40px 170px 90px;align-items:center;gap:12px;font-size:12.5px;display:grid}.confidence-row.skipped{opacity:.5}.confidence-row input[type=range]{accent-color:var(--primary)}.confidence-row input[type=checkbox]{width:16px;height:16px}.confidence-slider-cell{align-items:center;gap:8px;display:flex}.confidence-slider-cell input[type=range]{flex:1}.confidence-value{text-align:right;flex:none;width:14px;font-weight:700}.override-hours-input{border:1px solid var(--neutral-border);border-radius:var(--radius-sm);width:70px;padding:6px 8px;font-family:inherit;font-size:12.5px}.stepper-row{align-items:center;gap:14px;display:flex}.stepper{border:1px solid var(--neutral-border);border-radius:var(--radius-sm);align-items:center;display:inline-flex;overflow:hidden}.stepper button{width:36px;height:36px;color:var(--text-muted);background:var(--card-bg);cursor:pointer;border:none;justify-content:center;align-items:center;font-size:16px;display:flex}.stepper button:first-child{border-right:1px solid var(--border)}.stepper button:last-child{border-left:1px solid var(--border)}.stepper span{text-align:center;width:44px;font-size:15px;font-weight:700}.stepper-hint{color:var(--text-faint);font-size:12px}.wizard-footer{background:var(--card-bg);border-top:1px solid var(--border);box-shadow:var(--shadow-footer);align-items:center;gap:20px;padding:16px 40px;display:flex;position:sticky;bottom:0}.wizard-footer-stats{color:var(--text-muted);font-size:13px}.wizard-footer-stats b{color:var(--text-primary)}.wizard-footer-spacer{flex:1}@media (width<=900px){.wizard-layout{flex-direction:column;padding:20px 16px 120px}.wizard-rail{display:none}.exam-grid,.prep-grid{grid-template-columns:1fr 1fr}.mode-grid{grid-template-columns:1fr}}.lock-cta{border:1px solid var(--primary);background:var(--primary-bg);border-radius:var(--radius-lg);align-items:center;gap:16px;display:flex}.lock-cta-body{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.lock-cta-icon{flex:none;font-size:20px}.lock-cta-title{color:var(--text-primary);font-size:14px;font-weight:700}.lock-cta-subtitle{color:var(--text-muted);margin-top:2px;font-size:12.5px}.lock-cta-btn{white-space:nowrap;flex:none}.lock-cta-banner{padding:14px 18px}.lock-cta-card{text-align:center;flex-direction:column;gap:14px;padding:32px 24px}.lock-cta-card .lock-cta-body{flex-direction:column;gap:8px}.lock-cta-card .lock-cta-icon{font-size:28px}.lock-cta-row{border-bottom:none;border-left:none;border-right:none;border-radius:0;padding:14px 18px}@media (width<=700px){.lock-cta-banner{text-align:center;flex-direction:column;align-items:stretch}.lock-cta-banner .lock-cta-body{flex-direction:column}}.calendar-export{position:relative}.calendar-export-backdrop{z-index:15;position:fixed;inset:0}.calendar-export-menu{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);width:280px;box-shadow:var(--shadow-popover);z-index:20;flex-direction:column;padding:6px;display:flex;position:absolute;top:40px;right:0}.calendar-export-item{border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 10px;font-family:inherit;display:flex}.calendar-export-item:hover{background:var(--border-light)}.calendar-export-item-label{color:var(--text-primary);font-size:13px;font-weight:600}.calendar-export-item-hint{color:var(--text-faint);font-size:11px}@media (width<=640px){.calendar-export-menu{width:calc(100vw - 32px);max-width:320px;position:fixed;top:50%;left:50%;right:auto;transform:translate(-50%,-50%)}}.day-editor-backdrop{z-index:30;background:#10182873;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.day-editor-modal{background:var(--card-bg);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-popover);flex-direction:column;gap:16px;padding:20px;display:flex}.day-editor-header{justify-content:space-between;align-items:center;display:flex}.day-editor-title{color:var(--text-primary);font-size:15px;font-weight:700}.day-editor-close{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:4px;font-size:14px}.day-editor-kind-row{background:var(--border-light);border-radius:var(--radius-md);gap:6px;padding:3px;display:flex}.day-editor-kind-btn{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:8px 6px;font-size:12.5px;font-weight:600}.day-editor-kind-btn.selected{background:var(--card-bg);color:var(--primary);box-shadow:var(--shadow-card)}.day-editor-fields{align-items:flex-end;gap:12px;display:flex}.day-editor-field{color:var(--text-muted);flex-direction:column;flex:1;gap:6px;font-size:12px;font-weight:600;display:flex}.day-editor-field select,.day-editor-field input[type=text]{border:1px solid var(--neutral-border);border-radius:var(--radius-sm);color:var(--text-primary);padding:8px 10px;font-family:inherit;font-size:13px}.day-editor-field-hours{flex:none;width:90px}.day-editor-field-hours input{border:1px solid var(--neutral-border);border-radius:var(--radius-sm);box-sizing:border-box;width:100%;padding:8px 10px;font-family:inherit;font-size:13px}.day-editor-mock-note{color:var(--text-muted);font-size:12.5px}.day-editor-actions{gap:10px;display:flex}.day-editor-actions button{flex:1}.day-editor-swap{border-top:1px solid var(--border-light);padding-top:14px}.day-editor-swap-label{color:var(--text-secondary);margin-bottom:8px;font-size:12.5px;font-weight:600}.day-editor-swap-row{gap:8px;display:flex}.day-editor-swap-row input{border:1px solid var(--neutral-border);border-radius:var(--radius-sm);flex:1;padding:8px 10px;font-family:inherit;font-size:13px}.day-editor-swap-hint{color:var(--text-faint);margin-top:6px;font-size:11px}.schedule-view{flex-direction:column;gap:16px;padding:24px 28px;display:flex}.schedule-exam-badge{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.schedule-exam-badge-label{color:var(--primary);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}.schedule-exam-badge b{color:var(--text-primary);font-size:14px}.schedule-exam-badge-days{color:var(--text-faint);border-left:1px solid var(--border);padding-left:8px;font-size:12px}.schedule-exam-edit-pencil{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:12px}.schedule-exam-edit-pencil:hover{color:var(--primary)}.schedule-exam-edit-row{align-items:center;gap:8px;display:flex}.schedule-exam-edit-row input[type=date]{border:1px solid var(--neutral-border);border-radius:var(--radius-sm);padding:6px 8px;font-family:inherit;font-size:13px}.schedule-exam-edit-btn{padding:6px 12px;font-size:12px}.schedule-toolbar{align-items:center;gap:16px;display:flex}.schedule-toolbar-spacer{flex:1}.schedule-toolbar-actions{align-items:center;gap:16px;display:flex}.month-nav{align-items:center;gap:10px;display:flex}.month-nav button{border:1px solid var(--border);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);background:var(--card-bg);cursor:pointer;justify-content:center;align-items:center;font-size:10px;display:flex}.month-nav span{font-size:15px;font-weight:700}.month-nav .today-btn{width:auto;height:auto;padding:6px 12px;font-size:12px}.feasibility-warning{border:1px solid var(--warning-border);background:var(--warning-bg);border-radius:var(--radius-md);align-items:center;gap:12px;padding:11px 16px;display:flex}.feasibility-warning-text{color:var(--warning-text);flex:1;font-size:13px}.schedule-body{align-items:flex-start;gap:20px;display:flex}.schedule-main{flex:1;min-width:0}.month-header-row{color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;grid-template-columns:repeat(7,1fr);padding:0 2px 8px;font-size:11px;font-weight:600;display:grid}.month-header-row span{padding-left:10px}.month-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.month-cell{border-radius:var(--radius-md);background:var(--card-bg);border:1px solid var(--border);min-height:88px;padding:8px 10px}.month-cell.empty{background:0 0;border-color:#0000}.month-cell.editable,.week-row.editable,.table-row.editable{cursor:pointer}.month-cell.editable:hover{box-shadow:0 0 0 1.5px var(--primary)}.week-row.editable:hover,.table-row.editable:hover{background:var(--primary-bg)}.month-cell.is-today{box-shadow:0 0 0 2px var(--primary)}.month-cell.kind-locked{background:var(--rest-bg);border-color:#0000;flex-direction:column;display:flex}.month-cell-lock{opacity:.4;flex:1;justify-content:center;align-items:center;font-size:16px;display:flex}.month-cell.is-done{opacity:.75}.month-cell-top{color:var(--text-faint);justify-content:space-between;align-items:center;gap:6px;font-size:11px;display:flex}.month-cell-check{color:var(--success);font-size:12px;font-weight:700}.month-cell-top b{color:var(--text-secondary)}.month-cell-label{margin-top:6px;font-size:12.5px;font-weight:600}.month-cell-focus{color:var(--text-muted);font-size:11px}.month-cell-rest-label{color:var(--text-faint);margin-top:6px;font-size:11.5px;font-weight:500}.month-cell.kind-rest,.month-cell.kind-excluded{background:var(--rest-bg);border-color:#0000}.month-cell.kind-hard{border-color:var(--danger-border-soft)}.month-cell.kind-hard .month-cell-label{color:var(--danger-text)}.month-cell.kind-mock{background:var(--primary);border-color:var(--primary);color:#fff}.month-cell.kind-mock .month-cell-top,.month-cell.kind-mock .month-cell-focus{color:var(--primary-text-soft)}.month-cell.kind-mock .month-cell-top b,.month-cell.kind-mock .month-cell-label{color:#fff}.month-cell.kind-review{background:var(--warning-bg);border-color:var(--warning-border)}.month-cell.kind-review .month-cell-top{color:var(--warning-accent)}.month-cell.kind-review .month-cell-top b,.month-cell.kind-review .month-cell-label{color:var(--warning-text)}.month-cell.kind-review .month-cell-focus{color:var(--warning-accent)}.month-legend{color:var(--text-muted);align-items:center;gap:18px;margin-top:12px;font-size:11.5px;display:flex}.month-legend span{align-items:center;gap:6px;display:flex}.legend-swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.swatch-study{background:var(--card-bg);border:1px solid var(--neutral-border)}.swatch-hard{background:var(--card-bg);border:1px solid var(--danger)}.swatch-mock{background:var(--primary)}.swatch-review{background:var(--warning-bg);border:1px solid var(--warning-border)}.swatch-rest{background:var(--rest-bg)}.week-list-view{flex-direction:column;gap:12px;display:flex}.week-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.week-card-header{border-bottom:1px solid var(--border-light);background:var(--surface-bg);align-items:center;gap:14px;padding:13px 18px;display:flex}.week-card-title{font-size:13.5px;font-weight:700}.week-card-range{color:var(--text-faint);font-size:12px}.week-card-spacer{flex:1}.week-card-meta{color:var(--text-muted);font-size:12px}.week-card-meta b{color:var(--text-secondary)}.week-card-rows{flex-direction:column;display:flex}.week-row{border-bottom:1px solid var(--border-lighter);align-items:center;gap:14px;padding:11px 18px;font-size:13px;display:flex}.week-row:last-child{border-bottom:none}.week-row.kind-rest,.week-row.kind-excluded{background:var(--surface-bg)}.week-row.kind-mock{background:var(--primary-bg)}.week-row.kind-review{background:var(--warning-bg)}.week-row.kind-locked{background:var(--rest-bg)}.week-row-locked{color:var(--text-faint);font-weight:600}.week-row-date{width:52px;color:var(--text-faint);flex:none;font-size:11.5px;font-weight:600}.week-row-check{flex:none;width:14px;height:14px}.week-row-check-spacer{flex:none;width:14px}.week-row-topic{flex:1;font-weight:600}.week-row.kind-hard .week-row-topic{color:var(--danger-text)}.week-row.kind-mock .week-row-topic{color:var(--primary);font-weight:700}.week-row.kind-review .week-row-topic{color:var(--warning-text)}.week-row-focus{width:170px;color:var(--text-muted);font-size:12px}.week-row-hours{text-align:right;width:44px;font-size:12px;font-weight:600}.week-list-more{align-self:center;padding:6px;font-size:12.5px;font-weight:600}.table-view{padding:0;overflow:hidden}.table-header-row,.table-row{grid-template-columns:110px 1fr 1fr 70px 100px 110px;align-items:center;padding:11px 18px;font-size:12.5px;display:grid}.table-header-row{background:var(--surface-bg);border-bottom:1px solid var(--border);color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;font-size:10.5px;font-weight:700}.table-row{border-bottom:1px solid var(--border-lighter)}.table-row.kind-rest,.table-row.kind-excluded{background:var(--surface-bg)}.table-row.kind-mock{background:var(--primary-bg)}.table-row.kind-review{background:var(--warning-bg)}.table-row .muted{color:var(--text-muted)}.table-row .italic{font-style:italic}.table-row .bold{font-weight:600}.table-row .danger-text{color:var(--danger-text)}.align-right{text-align:right}.pill-badge{border-radius:var(--radius-pill);padding:2px 8px;font-size:11px;font-weight:600}.badge-hard{background:var(--danger-bg-soft);color:var(--danger-text)}.badge-mock{background:var(--primary-bg);color:var(--primary)}.badge-review{background:var(--warning-badge-bg);color:var(--warning-text)}.status-toggle{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;font-weight:600}.status-toggle.done{color:var(--success)}.table-footer{color:var(--text-faint);align-items:center;gap:14px;padding:12px 18px;font-size:11.5px;display:flex}.table-footer-spacer{flex:1}.topic-sidebar{flex-direction:column;flex:none;gap:14px;width:280px;display:flex}.sidebar-card{padding:18px}.sidebar-card-header{justify-content:space-between;align-items:baseline;margin-bottom:14px;font-size:13px;font-weight:700;display:flex}.sidebar-card-header-hint{color:var(--text-faint);font-size:11px;font-weight:400}.sidebar-topic-list{flex-direction:column;gap:12px;display:flex}.sidebar-topic-row{cursor:pointer}.sidebar-topic-row.locked{opacity:.55;filter:blur(2px);cursor:pointer}.sidebar-topic-row.locked:hover{opacity:.75}.sidebar-topic-row-head{justify-content:space-between;margin-bottom:5px;font-size:12px;display:flex}.sidebar-topic-row .bold{font-weight:600}.sidebar-topic-row .danger-text{color:var(--danger-text)}.sidebar-topic-row .muted{color:var(--text-muted)}.sidebar-resources-title{margin-bottom:4px;font-size:13px;font-weight:700}.sidebar-resources-list{color:var(--text-muted);font-size:12px;line-height:1.6}@media (width<=900px){.schedule-body{flex-direction:column}.topic-sidebar{width:100%}.month-grid,.month-header-row{grid-template-columns:repeat(7,minmax(36px,1fr))}.table-header-row,.table-row{grid-template-columns:80px 1fr 60px}.table-header-row span:nth-child(3),.table-header-row span:nth-child(5),.table-row span:nth-child(3),.table-row span:nth-child(5){display:none}}@media (width<=640px){.schedule-view{padding:16px}.schedule-toolbar{flex-wrap:wrap}.schedule-toolbar-spacer{flex-basis:100%;height:0}.schedule-toolbar .segmented,.month-nav{width:100%}.schedule-toolbar .segmented button{flex:1}.month-nav{justify-content:space-between}.schedule-toolbar-actions{width:100%}.schedule-toolbar-actions>*{flex:1}.month-grid,.month-header-row{gap:3px}.month-header-row span{padding-left:3px;font-size:9px}.month-cell{min-height:60px;padding:5px 6px}.month-cell-top{font-size:9.5px}.month-cell-label,.month-cell-rest-label{white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:10px;overflow:hidden}.month-cell-focus{display:none}}.dashboard{align-items:flex-start;gap:20px;padding:24px 28px;display:flex}.dashboard-left{flex-direction:column;flex:1.5;gap:16px;min-width:0;display:flex}.dashboard-right{flex-direction:column;flex:1;gap:16px;min-width:0;display:flex}.today-card{box-shadow:var(--shadow-card-md);border-radius:var(--radius-xl);padding:24px}.today-card-top-right{align-items:center;gap:12px;display:flex}.streak-badge{color:var(--warning-text);background:var(--warning-badge-bg);border-radius:var(--radius-pill);padding:4px 10px;font-size:12px;font-weight:600}.today-card-top{justify-content:space-between;align-items:baseline;display:flex}.today-card-label{color:var(--primary);text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:700}.today-card-hours{font-size:14px;font-weight:700}.today-card-title{margin:6px 0 2px;font-size:22px;font-weight:700}.today-card-title.danger-text{color:var(--danger-text)}.today-card-sub{color:var(--text-muted);min-height:1em;margin-bottom:16px;font-size:13px}.today-checklist{flex-direction:column;gap:9px;margin-bottom:18px;display:flex}.today-checklist-item{align-items:center;gap:10px;font-size:13.5px;display:flex}.checklist-icon{border:1.5px solid var(--neutral-border);background:var(--card-bg);box-sizing:border-box;border-radius:6px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;display:flex}.checklist-icon.checked{background:var(--success);border-color:var(--success);color:#fff}.struck{color:var(--text-faint);text-decoration:line-through}.today-card-actions{gap:10px;display:flex}.up-next-banner{border:1px dashed var(--neutral-border);border-radius:var(--radius-md);color:var(--text-muted);background:var(--surface-bg);padding:12px 18px;font-size:13px}.up-next-banner b{color:var(--text-secondary)}.up-next-locked{text-align:left;cursor:pointer;border-color:var(--primary);width:100%;color:var(--text-secondary);background:var(--primary-bg);font-family:inherit;display:block}.topic-progress-card{padding:22px}.topic-progress-grid{grid-template-columns:1fr 1fr;gap:14px 28px;display:grid}.topic-progress-row-head{justify-content:space-between;margin-bottom:5px;font-size:12.5px;display:flex}.topic-progress-row.locked{cursor:pointer;opacity:.55;filter:blur(2px)}.topic-progress-row.locked:hover{opacity:.75}.topic-progress-row-head .muted{color:var(--text-muted)}.progress-track.thick{height:7px}.countdown-card{box-shadow:var(--shadow-card);border-radius:var(--radius-xl);padding:22px}.countdown-row{align-items:center;gap:18px;display:flex}.countdown-ring{border-radius:var(--radius-pill);flex:none;justify-content:center;align-items:center;width:104px;height:104px;display:flex}.countdown-ring-inner{border-radius:var(--radius-pill);background:var(--card-bg);flex-direction:column;justify-content:center;align-items:center;width:82px;height:82px;display:flex}.countdown-days{font-size:24px;font-weight:700;line-height:1}.countdown-days-label{color:var(--text-faint);margin-top:2px;font-size:10.5px}.countdown-meta{flex-direction:column;gap:5px;display:flex}.countdown-exam-label{font-size:14px;font-weight:700}.success-text{color:var(--success)}.status-pill{align-self:flex-start;margin-top:3px}.reschedule-btn{width:100%;padding:13px}.reschedule-hint{color:var(--text-faint);text-align:center;margin-top:-8px;font-size:11.5px}.mock-card{padding:22px}.mock-score-list{flex-direction:column;gap:12px;display:flex}.mock-score-row{align-items:center;gap:12px;font-size:12.5px;display:flex}.mock-score-label{width:74px;color:var(--text-muted);flex:none}.mock-score-value{text-align:right;width:34px}.mock-add-btn{width:100%;margin-top:14px}.weak-areas-banner{background:var(--danger-bg);color:var(--danger-text);border-radius:9px;align-items:center;gap:8px;margin-top:14px;padding:10px 12px;font-size:12px;display:flex}.mock-form-full{border-top:1px solid var(--border-light);margin-top:14px;padding-top:14px}.mock-form-hint{color:var(--text-muted);margin-bottom:10px;font-size:12px}.mock-form-grid{grid-template-columns:1fr 1fr;gap:8px 16px;max-height:280px;display:grid;overflow-y:auto}.mock-form-row{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.mock-form-row input{border:1px solid var(--neutral-border);border-radius:var(--radius-sm);text-align:center;width:52px;padding:5px 6px;font-family:inherit}.mock-form-actions{gap:8px;margin-top:14px;display:flex}@media (width<=900px){.dashboard{flex-direction:column}.topic-progress-grid{grid-template-columns:1fr}}:root{color-scheme:light;--page-bg:#eceef1;--surface-bg:#f7f8fa;--card-bg:#fff;--border:#e4e7ec;--border-light:#f0f2f5;--border-lighter:#f4f5f7;--neutral-border:#cdd3dd;--text-primary:#1a1f2b;--text-secondary:#344054;--text-muted:#667085;--text-faint:#98a2b3;--primary:#2e63e7;--primary-hover:#1d4bc0;--primary-bg:#eef3fe;--primary-bg-soft:#f7faff;--primary-text-soft:#5a7fd6;--success:#1e8e4e;--success-bg:#e8f5ee;--danger:#d7454d;--danger-text:#b1333a;--danger-bg:#fdecec;--danger-bg-soft:#fbeaeb;--danger-border-soft:#f3c6c9;--warning-text:#7a5b06;--warning-border:#f0d590;--warning-bg:#fdf6e3;--warning-badge-bg:#f8edcf;--warning-accent:#b0995a;--score-amber:#e08a2e;--rest-bg:#f0f2f5;--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--radius-xl:14px;--radius-pill:999px;--shadow-card:0 1px 2px #1018280a;--shadow-card-md:0 1px 3px #1018280f;--shadow-popover:0 1px 3px #10182814, 0 8px 24px #1018280f;--shadow-footer:0 -4px 16px #1018280f;--font-sans:"Geist", system-ui, sans-serif}:root[data-theme=dark]{color-scheme:dark;--page-bg:#0d0f13;--surface-bg:#14171d;--card-bg:#1b1f27;--border:#2a2f3a;--border-light:#232730;--border-lighter:#20242c;--neutral-border:#3a4150;--text-primary:#eef1f6;--text-secondary:#c3c9d4;--text-muted:#8b93a3;--text-faint:#5f6779;--primary:#5b8def;--primary-hover:#7ba3f2;--primary-bg:#17233d;--primary-bg-soft:#141b2e;--primary-text-soft:#8fb0f0;--success:#34c17a;--success-bg:#123424;--danger:#f2777d;--danger-text:#ff9aa0;--danger-bg:#3a1c1f;--danger-bg-soft:#33191c;--danger-border-soft:#5a2d30;--warning-text:#e8c169;--warning-border:#6b551f;--warning-bg:#332a13;--warning-badge-bg:#3d3018;--warning-accent:#cbab5c;--score-amber:#e8a24d;--rest-bg:#1c2028;--shadow-card:0 1px 2px #0006;--shadow-card-md:0 1px 3px #00000073;--shadow-popover:0 1px 3px #00000080, 0 8px 24px #00000080;--shadow-footer:0 -4px 16px #00000080}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){color-scheme:dark;--page-bg:#0d0f13;--surface-bg:#14171d;--card-bg:#1b1f27;--border:#2a2f3a;--border-light:#232730;--border-lighter:#20242c;--neutral-border:#3a4150;--text-primary:#eef1f6;--text-secondary:#c3c9d4;--text-muted:#8b93a3;--text-faint:#5f6779;--primary:#5b8def;--primary-hover:#7ba3f2;--primary-bg:#17233d;--primary-bg-soft:#141b2e;--primary-text-soft:#8fb0f0;--success:#34c17a;--success-bg:#123424;--danger:#f2777d;--danger-text:#ff9aa0;--danger-bg:#3a1c1f;--danger-bg-soft:#33191c;--danger-border-soft:#5a2d30;--warning-text:#e8c169;--warning-border:#6b551f;--warning-bg:#332a13;--warning-badge-bg:#3d3018;--warning-accent:#cbab5c;--score-amber:#e8a24d;--rest-bg:#1c2028;--shadow-card:0 1px 2px #0006;--shadow-card-md:0 1px 3px #00000073;--shadow-popover:0 1px 3px #00000080, 0 8px 24px #00000080;--shadow-footer:0 -4px 16px #00000080}}*{box-sizing:border-box}body{background:var(--page-bg);font-family:var(--font-sans);color:var(--text-primary);margin:0}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}button{font-family:inherit}input,select,textarea{background:var(--card-bg);color:var(--text-primary)}input::placeholder,textarea::placeholder{color:var(--text-faint)}#root{min-height:100vh}.app-shell{background:var(--surface-bg);max-width:1240px;min-height:100vh;margin:0 auto}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;padding:11px 20px;font-size:13.5px;font-weight:600}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #1018281a}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{background:var(--neutral-border);cursor:not-allowed}.btn-secondary{background:var(--card-bg);color:var(--text-secondary);border:1px solid var(--neutral-border)}.btn-secondary:hover{background:var(--border-light)}.pill{border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-flex}.pill-success{color:var(--success);background:var(--success-bg)}.pill-danger{color:var(--danger-text);background:var(--danger-bg-soft)}.pill-warning{color:var(--warning-text);background:var(--warning-badge-bg)}.pill-mock{color:var(--primary);background:var(--primary-bg)}.progress-track{border-radius:var(--radius-pill);background:var(--border-light);height:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-pill);height:100%}.segmented{background:var(--border-light);border-radius:9px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:5px 14px;font-size:12.5px;font-weight:500}.segmented button.active{background:var(--card-bg);color:var(--text-primary);box-shadow:var(--shadow-card);font-weight:600}
