@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700;800&display=swap";:root,[data-theme=light]{--font-body: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-heading: "Space Grotesk", -apple-system, BlinkMacSystemFont, sans-serif;--bg-base: #f4f7fb;--bg-gradient: radial-gradient(ellipse at 80% 0%, rgba(20, 184, 166, .07) 0%, transparent 50%), radial-gradient(ellipse at 20% 80%, rgba(99, 102, 241, .05) 0%, transparent 50%), linear-gradient(180deg, #f4f7fb 0%, #eef2f9 100%);--surface-card: #ffffff;--surface-overlay: rgba(255, 255, 255, .95);--surface-subtle: #f1f5fb;--surface-hover: #e5ecf6;--surface-glass: rgba(255, 255, 255, .7);--text-main: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--border-subtle: #e2e8f0;--border-focus: #0ea5e9;--primary-color: #0d9488;--primary-hover: #0f766e;--primary-light: rgba(13, 148, 136, .12);--primary-glow: rgba(13, 148, 136, .28);--primary-vivid: #14b8a6;--accent-gold: #f59e0b;--accent-gold-subtle: #fef3c7;--accent-purple: #7c3aed;--accent-purple-subtle: rgba(124, 58, 237, .1);--status-danger: #ef4444;--status-danger-subtle: #fee2e2;--status-success: #10b981;--status-success-subtle: #d1fae5;--status-warn: #f59e0b;--shadow-xs: 0 1px 2px rgba(0,0,0,.04);--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 12px 32px rgba(0,0,0,.1), 0 4px 8px rgba(0,0,0,.06);--shadow-xl: 0 24px 64px rgba(0,0,0,.12), 0 8px 16px rgba(0,0,0,.06);--shadow-glow: 0 0 28px rgba(13, 148, 136, .22);--sidebar-width: 240px}[data-theme=dark]{--bg-base: #080d18;--bg-gradient: radial-gradient(ellipse at 80% 0%, rgba(13, 148, 136, .18) 0%, transparent 40%), radial-gradient(ellipse at 20% 80%, rgba(99, 102, 241, .1) 0%, transparent 40%), linear-gradient(180deg, #080d18 0%, #0d1627 100%);--surface-card: #101827;--surface-overlay: rgba(16, 24, 39, .96);--surface-subtle: #162033;--surface-hover: #1e2d47;--surface-glass: rgba(16, 24, 39, .8);--text-main: #f0f6ff;--text-secondary: #c8d8f0;--text-muted: #8ba3c4;--border-subtle: #1a2d45;--border-focus: #38bdf8;--primary-color: #14b8a6;--primary-hover: #2dd4bf;--primary-light: rgba(20, 184, 166, .15);--primary-glow: rgba(20, 184, 166, .35);--primary-vivid: #5eead4;--accent-gold: #fbbf24;--accent-gold-subtle: rgba(251, 191, 36, .12);--accent-purple: #a78bfa;--accent-purple-subtle: rgba(167, 139, 250, .12);--status-danger: #f87171;--status-danger-subtle: rgba(239, 68, 68, .16);--status-success: #34d399;--status-success-subtle: rgba(16, 185, 129, .16);--status-warn: #fbbf24;--shadow-xs: 0 1px 2px rgba(0,0,0,.3);--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.5);--shadow-lg: 0 12px 40px rgba(0,0,0,.6);--shadow-xl: 0 24px 70px rgba(0,0,0,.7);--shadow-glow: 0 0 35px rgba(20, 184, 166, .3)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);color:var(--text-main);background:var(--bg-base);min-width:320px;line-height:1.5;transition:background-color .3s ease,color .3s ease;overflow-x:hidden}button,input,textarea,select{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--border-focus);outline-offset:2px}button:disabled{cursor:not-allowed}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}h1,h2,h3,h4,h5{font-family:var(--font-heading);letter-spacing:-.025em;line-height:1.2}.eyebrow{color:var(--primary-color);font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}input,textarea,select{width:100%;border:1.5px solid var(--border-subtle);border-radius:10px;padding:11px 14px;color:var(--text-main);background:var(--surface-subtle);font:inherit;font-size:.9rem;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}input:focus,textarea:focus,select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-light);background:var(--surface-card)}label{display:grid;gap:7px;font-size:.82rem;font-weight:700;color:var(--text-secondary)}.form-stack{display:grid;gap:18px}.primary-btn,.primary-button,.start-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff;border:0;border-radius:10px;padding:11px 20px;font:inherit;font-weight:700;font-size:.88rem;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 8px var(--primary-glow);white-space:nowrap}.primary-btn:hover:not(:disabled),.primary-button:hover:not(:disabled),.start-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px var(--primary-glow)}.primary-btn:disabled,.primary-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.text-btn,.text-button{border:0;background:none;color:var(--primary-color);font:inherit;font-weight:700;font-size:.88rem;cursor:pointer;padding:8px 12px;border-radius:8px;transition:background .15s}.text-btn:hover{background:var(--primary-light)}.icon-btn{display:grid;place-items:center;border:1.5px solid var(--border-subtle);background:var(--surface-card);color:var(--text-muted);border-radius:8px;width:36px;height:36px;cursor:pointer;transition:all .15s;flex-shrink:0}.icon-btn:hover{background:var(--surface-hover);color:var(--text-main)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg-gradient);position:relative;overflow:hidden}.auth-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%230d9488' fill-opacity='0.04'%3E%3Ccircle cx='30' cy='30' r='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}.auth-card{position:relative;width:min(100%,460px);padding:44px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:20px;box-shadow:var(--shadow-xl);animation:fade-rise .4s cubic-bezier(.16,1,.3,1) both}.brand-mark{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff;display:grid;place-items:center;margin-bottom:26px;box-shadow:var(--shadow-glow)}.auth-card h1{font-size:1.8rem;margin:4px 0 10px}.auth-card .intro{color:var(--text-muted);font-size:.88rem;line-height:1.6}.auth-error-banner{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:12px;border:1.5px solid transparent;margin-top:20px;animation:fade-rise .25s cubic-bezier(.16,1,.3,1) both}.auth-error-banner--network{background:#f59e0b1a;border-color:#f59e0b59;color:var(--accent-gold)}.auth-error-banner--field{background:var(--status-danger-subtle);border-color:#ef444459;color:var(--status-danger)}.auth-error-icon{display:grid;place-items:center;flex-shrink:0;margin-top:1px}.auth-error-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.auth-error-body strong{font-size:.82rem;font-weight:800;display:block}.auth-error-body span{font-size:.8rem;line-height:1.5;opacity:.9}.auth-error-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.auth-error-retry{border:1.5px solid currentColor;background:transparent;color:inherit;border-radius:7px;padding:5px 11px;font:inherit;font-size:.76rem;font-weight:700;cursor:pointer;transition:background .15s,opacity .15s;white-space:nowrap}.auth-error-retry:hover{background:#ffffff26}.auth-error-dismiss{display:grid;place-items:center;border:0;background:transparent;color:inherit;opacity:.6;cursor:pointer;padding:4px;border-radius:6px;transition:opacity .15s}.auth-error-dismiss:hover{opacity:1}.auth-spinner{display:inline-block;width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.planner-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) 1fr;background:var(--bg-gradient);background-attachment:fixed}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 12px;background:var(--surface-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--border-subtle);overflow:hidden;z-index:100}.sidebar:before{content:"";position:absolute;top:0;right:0;width:1px;height:100%;background:linear-gradient(180deg,transparent 0%,var(--primary-color) 30%,var(--accent-purple) 70%,transparent 100%);opacity:.3}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 24px;font-family:var(--font-heading);font-weight:800;font-size:1.1rem;letter-spacing:-.02em}.sidebar-brand .brand-mark{width:34px;height:34px;margin:0;border-radius:10px;flex-shrink:0}.sidebar-nav{display:flex;flex-direction:column;gap:3px}.nav-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:var(--text-muted);font-weight:600;font-size:.85rem;cursor:pointer;border:0;background:transparent;text-align:left;transition:all .2s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;width:100%}.nav-link:hover{color:var(--text-main);background:var(--surface-hover)}.nav-link--active{color:var(--primary-color);background:var(--primary-light);font-weight:700}.nav-link--active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;background:linear-gradient(180deg,var(--primary-color),var(--primary-vivid));border-radius:0 3px 3px 0}.nav-link-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--surface-subtle);transition:all .2s;flex-shrink:0}.nav-link--active .nav-link-icon{background:var(--primary-color);color:#fff;box-shadow:0 4px 12px var(--primary-glow)}.nav-link:hover:not(.nav-link--active) .nav-link-icon{background:var(--surface-hover);color:var(--text-main)}.sidebar-section-label{font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:16px 12px 6px;opacity:.7}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:4px;padding-top:16px;border-top:1px solid var(--border-subtle)}.theme-toggle-btn,.logout-button{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;border:0;background:none;color:var(--text-muted);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s;width:100%;text-align:left}.theme-toggle-btn:hover,.logout-button:hover{background:var(--surface-hover);color:var(--text-main)}.planner-content{min-width:0;padding:32px clamp(20px,3.5vw,52px) 48px}.top-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.program-switcher{display:flex;align-items:center;gap:5px;background:var(--surface-card);padding:5px;border-radius:12px;border:1.5px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.program-chip{border:0;background:none;padding:7px 14px;border-radius:8px;color:var(--text-muted);font-size:.8rem;font-family:var(--font-body);font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap}.program-chip.active{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff;box-shadow:0 2px 8px var(--primary-glow)}.add-program-chip{border:1.5px dashed var(--border-subtle);background:none;padding:6px 12px;border-radius:8px;color:var(--text-muted);font-size:.78rem;font-family:var(--font-body);font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:5px}.add-program-chip:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--primary-light)}.page-heading{margin-bottom:28px}.page-heading h1{font-size:clamp(1.5rem,3vw,2rem);margin:4px 0 8px}.page-heading p{color:var(--text-muted);font-size:.9rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px;flex-wrap:wrap}.topbar h1{font-size:clamp(1.5rem,3vw,2rem);margin:4px 0 0}.hero-decision-card{background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:16px;padding:28px 32px;margin-bottom:28px;box-shadow:var(--shadow-md);position:relative;overflow:hidden;transition:box-shadow .2s}.hero-decision-card:hover{box-shadow:var(--shadow-lg)}.hero-decision-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary-color),var(--accent-purple),var(--accent-gold))}.hero-decision-card:after{content:"";position:absolute;top:-60px;right:-60px;width:200px;height:200px;border-radius:50%;background:var(--primary-light);pointer-events:none}.hero-content{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.hero-details{max-width:680px;position:relative}.hero-details h2{font-size:clamp(1.3rem,2.5vw,1.8rem);margin:6px 0 12px}.decision-reason-box{display:inline-flex;align-items:flex-start;gap:8px;background:var(--surface-subtle);padding:10px 14px;border-radius:10px;border-left:3px solid var(--primary-color);color:var(--text-secondary);font-size:.85rem;max-width:100%}.hero-start-btn{padding:14px 28px;font-size:.95rem;border-radius:12px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:32px}.metric-card{background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.metric-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--primary-color),var(--accent-purple));opacity:0;transition:opacity .2s}.metric-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.metric-card:hover:before{opacity:1}.metric-card span{font-size:.72rem;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.metric-card strong{font-size:1.9rem;font-family:var(--font-heading);color:var(--text-main);font-weight:800;line-height:1;margin:4px 0}.metric-card small{font-size:.78rem;color:var(--text-muted)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}.section-heading h2{font-size:1.25rem}.section-count{font-size:.78rem;font-weight:700;color:var(--text-muted);background:var(--surface-subtle);padding:5px 12px;border-radius:999px;border:1px solid var(--border-subtle)}.session-list{display:flex;flex-direction:column;gap:12px}.session-card{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:18px;padding:18px 22px;background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:14px;box-shadow:var(--shadow-xs);transition:all .2s cubic-bezier(.16,1,.3,1);cursor:pointer}.session-card:hover{transform:translateY(-2px);border-color:var(--primary-color);box-shadow:var(--shadow-md),0 0 0 1px var(--primary-color)}.session-card:focus-visible{outline:3px solid var(--border-focus);outline-offset:2px}.session-card--done{opacity:.55}.session-card--expanded{grid-template-columns:80px 1fr auto;align-items:start;border-color:var(--primary-color);box-shadow:var(--shadow-md),0 0 0 1px var(--primary-color);background:var(--surface-card)}.session-detail-panel{grid-column:1 / -1;padding-top:16px;margin-top:4px;border-top:1px solid var(--border-subtle);animation:fade-rise .18s cubic-bezier(.16,1,.3,1) both}.session-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:14px}.session-detail-item{background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:4px}.session-detail-item span{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.session-detail-item strong{font-size:1.05rem;font-family:var(--font-heading);color:var(--text-main);font-weight:700}.session-detail-progress{margin-bottom:4px}.session-time{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-muted);font-size:.78rem;font-weight:700}.session-time i{width:1px;height:12px;background:var(--border-subtle);display:block}.session-main h3{font-size:1.05rem;margin:4px 0 5px}.session-course{font-size:.82rem;color:var(--primary-color);font-weight:700}.session-reason{font-size:.8rem;color:var(--text-muted);margin-top:4px}.session-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.session-action{display:flex;align-items:center;gap:8px;flex-shrink:0}.priority{display:inline-block;padding:3px 8px;border-radius:6px;font-size:.65rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.priority--high{color:#b91c1c;background:#fee2e2}.priority--normal{color:#047857;background:#d1fae5}.reschedule-btn{border:1.5px solid var(--border-subtle);background:var(--surface-subtle);color:var(--text-secondary);border-radius:8px;padding:7px 12px;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .15s}.reschedule-btn:hover{background:var(--surface-hover);border-color:var(--primary-color)}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted);background:var(--surface-card);border:1.5px dashed var(--border-subtle);border-radius:16px;display:flex;flex-direction:column;align-items:center;gap:12px}.empty-state h3{color:var(--text-main);font-size:1.1rem}.empty-state p{font-size:.88rem;max-width:380px}.planner-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin:-12px 0 24px}.shortcut-chip{border:1.5px solid var(--border-subtle);background:var(--surface-card);color:var(--text-secondary);border-radius:999px;padding:8px 12px;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.shortcut-chip:hover{border-color:var(--primary-color);color:var(--primary-color)}.shortcut-chip:disabled{opacity:.5;cursor:not-allowed}.due-soon-strip{background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:16px;padding:16px 18px;margin-bottom:28px}.due-soon-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--border-subtle);font-size:.88rem}.due-soon-left{display:flex;flex-direction:column;gap:2px;min-width:0}.due-soon-left span{color:var(--text-muted);font-size:.8rem}.due-soon-days{flex-shrink:0;font-size:.74rem;font-weight:800;padding:4px 10px;border-radius:999px;white-space:nowrap}.quick-add-tabs{display:flex;gap:8px;flex-wrap:wrap}.quick-add-tab{border:1.5px solid var(--border-subtle);background:var(--surface-subtle);color:var(--text-secondary);border-radius:999px;padding:8px 12px;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.quick-add-tab.active{background:var(--primary-light);color:var(--primary-color);border-color:var(--primary-color)}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.availability-grid{display:grid;gap:10px}.availability-header-row{display:grid;grid-template-columns:140px 1fr 1fr minmax(110px,auto) minmax(110px,auto);gap:10px;padding:0 12px 4px}.availability-header-row span{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.availability-row{display:grid;grid-template-columns:140px 1fr 1fr minmax(110px,auto) minmax(110px,auto);gap:10px;align-items:center;padding:10px 12px;border:1.5px solid var(--border-subtle);border-radius:12px;background:var(--surface-subtle)}.availability-row.is-rest{grid-template-columns:140px 1fr}.availability-day{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.88rem}.rest-pill{color:var(--text-muted);font-size:.8rem;font-weight:700}.minutes-field{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-muted);font-weight:700}.minutes-field input{width:76px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px;flex-wrap:wrap}.view-toggle{border:1.5px solid var(--border-subtle);background:var(--surface-card);color:var(--text-muted);padding:8px 16px;border-radius:8px;font:inherit;font-weight:700;font-size:.82rem;cursor:pointer;transition:all .15s}.view-toggle--active,.view-toggle:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--primary-light)}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;min-height:480px}.week-grid--full{min-height:calc(100vh - 255px)}.week-grid--month{min-height:0;grid-auto-rows:minmax(150px,1fr)}.week-grid--month .day-column{min-height:150px;padding:10px 7px}.day-column--outside{opacity:.5;background:var(--surface-subtle)}.calendar-period{font-size:.84rem;font-weight:800;color:var(--text-secondary);min-width:130px;text-align:center}.day-column{background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:14px;padding:12px 8px;display:flex;flex-direction:column;gap:6px;min-height:420px;transition:border-color .2s}.day-column--today{border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color),var(--shadow-glow)}.day-heading{display:flex;flex-direction:column;align-items:center;gap:3px;padding-bottom:10px;border-bottom:1px solid var(--border-subtle);margin-bottom:4px}.day-heading span{font-size:.68rem;font-weight:800;text-transform:uppercase;color:var(--text-muted);letter-spacing:.06em}.day-heading strong{font-size:1.2rem;font-family:var(--font-heading);color:var(--text-main)}.day-column--today .day-heading strong{width:32px;height:32px;background:var(--primary-color);color:#fff;border-radius:50%;display:grid;place-items:center;font-size:.95rem}.calendar-event{border-radius:8px;padding:7px 9px;font-size:.72rem;border-left:3px solid transparent;transition:transform .15s;cursor:default}.calendar-event:hover{transform:scale(1.02)}.calendar-event strong{display:block;font-weight:700;font-size:.73rem;margin-bottom:2px}.course-study-tips{white-space:pre-line;margin:10px 0 0;padding:9px 10px;background:var(--accent-gold-subtle);border-left:3px solid var(--accent-gold);border-radius:8px;color:var(--text-muted);font-size:.75rem;line-height:1.45}.calendar-event span,.calendar-event small{display:block;color:var(--text-muted);font-size:.68rem}.event--class{background:#2563eb1a;border-left-color:#2563eb}.event--study{background:var(--primary-light);border-left-color:var(--primary-color)}.event--deadline{background:#f59e0b1a;border-left-color:var(--accent-gold)}.event--exam{background:#ef44441a;border-left-color:var(--status-danger)}.exams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.exam-card{background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:16px;padding:22px;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;display:flex;flex-direction:column;gap:14px}.exam-card:hover{transform:translateY(-4px);border-color:var(--primary-color);box-shadow:var(--shadow-lg)}.exam-card-urgency-bar{position:absolute;top:0;left:0;right:0;height:4px;border-radius:16px 16px 0 0}.exam-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:8px}.exam-type-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:6px;font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:var(--accent-gold-subtle);color:var(--accent-gold)}.exam-countdown{text-align:right}.exam-days-num{font-size:2.4rem;font-weight:800;font-family:var(--font-heading);line-height:1;color:var(--primary-color)}.exam-days-label{font-size:.65rem;font-weight:800;text-transform:uppercase;color:var(--text-muted);letter-spacing:.08em}.exam-card h3{font-size:1.05rem;margin:0}.exam-course-tag{font-size:.78rem;color:var(--primary-color);font-weight:700;display:flex;align-items:center;gap:5px}.exam-urgency-label{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-muted);padding:8px 12px;background:var(--surface-subtle);border-radius:8px}.exam-progress-track{height:4px;background:var(--border-subtle);border-radius:99px;overflow:hidden}.exam-progress-fill{height:100%;border-radius:99px;transition:width .6s ease}.local-date-picker{display:flex;flex-direction:column;gap:8px;background:var(--surface-subtle);border:1.5px solid var(--border-subtle);border-radius:14px;padding:16px}.local-date-toolbar{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-bottom:4px}.local-date-toolbar strong{flex:1;text-align:center;font-size:.92rem;font-family:var(--font-heading);font-weight:700;color:var(--text-main)}.local-date-toolbar .text-btn{font-size:.76rem;padding:5px 10px}.local-date-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}.local-date-weekdays span{text-align:center;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:4px 0}.local-date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.local-date-day{aspect-ratio:1;display:grid;place-items:center;border:0;background:transparent;border-radius:8px;font:inherit;font-size:.82rem;font-weight:600;color:var(--text-main);cursor:pointer;transition:all .12s;padding:0}.local-date-day:hover:not(:disabled){background:var(--surface-hover);color:var(--primary-color)}.local-date-day.is-outside{color:var(--text-muted);opacity:.4}.local-date-day.is-today{color:var(--primary-color);font-weight:800;background:var(--primary-light)}.local-date-day.is-selected{background:var(--primary-color);color:#fff;font-weight:800;box-shadow:0 2px 8px var(--primary-glow)}.local-date-day.is-selected.is-today{box-shadow:0 0 0 3px var(--primary-glow)}.local-date-day.is-disabled{opacity:.3;cursor:not-allowed;background:transparent}.local-date-value{font-size:.78rem;color:var(--text-muted);text-align:center;margin-top:6px;padding-top:10px;border-top:1px solid var(--border-subtle)}.local-date-value strong{color:var(--text-main)}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px}.course-card{background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:16px;padding:0;box-shadow:var(--shadow-sm);transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;position:relative;overflow:hidden}.course-card:hover{box-shadow:var(--shadow-md)}.course-card--expanded{grid-column:1 / -1;border-color:var(--primary-color);box-shadow:var(--shadow-lg),0 0 0 1px var(--primary-color)}.course-card-header{display:flex;flex-direction:column;gap:12px;padding:20px 22px 16px;cursor:pointer;-webkit-user-select:none;user-select:none}.course-card-header:focus-visible{outline:3px solid var(--border-focus);outline-offset:-3px;border-radius:14px}.course-card--expanded .course-card-header{border-bottom:1px solid var(--border-subtle);padding-bottom:16px}.course-card-header-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.course-card-header-meta{display:flex;align-items:center;gap:8px}.course-card-header-left{display:flex;flex-direction:column;gap:4px;min-width:0}.course-card-header-left h3{font-size:1.05rem;margin:0}.course-card-header-left .course-card-sub{font-size:.76rem;color:var(--text-muted)}.course-card-progress-row{display:flex;align-items:center;gap:10px}.course-card-progress-row .progress-track{flex:1;height:6px}.course-card-progress-label{font-size:.75rem;font-weight:700;color:var(--primary-color);white-space:nowrap;min-width:36px;text-align:right}.course-card-progress-sub{font-size:.72rem;color:var(--text-muted);white-space:nowrap}.course-card-actions-top{display:flex;gap:6px;flex-wrap:wrap}.course-card-header-right{display:flex;flex-direction:column;gap:8px;align-items:flex-end;min-width:180px}.course-card-header-right .progress-track{height:5px;width:140px}.course-card-hint{font-size:.72rem;color:var(--text-muted);padding:0 22px 14px;opacity:.7}.course-card-expanded-body{padding:14px 22px 22px;animation:fade-rise .2s cubic-bezier(.16,1,.3,1) both}.course-card-top{display:flex;align-items:center;justify-content:space-between}.course-code{background:var(--primary-light);color:var(--primary-color);padding:4px 10px;border-radius:6px;font-size:.7rem;font-weight:800;letter-spacing:.06em}.course-card h3{font-size:1.05rem;margin:0}.progress-track{height:6px;background:var(--border-subtle);border-radius:999px;overflow:hidden}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,var(--primary-color),var(--primary-vivid));border-radius:999px;transition:width .5s ease}.course-progress{display:flex;justify-content:space-between;font-size:.78rem}.course-progress strong{color:var(--primary-color)}.course-progress span{color:var(--text-muted)}.course-next-plan{margin:14px 0;padding:10px 12px;border-left:3px solid var(--primary-color);border-radius:0 9px 9px 0;background:var(--primary-light)}.course-next-plan>span{display:block;margin-bottom:4px;color:var(--primary-color);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.course-next-plan p{color:var(--text-secondary);font-size:.76rem;line-height:1.55}.topic-check-button{width:24px;height:24px;display:grid;place-items:center;flex:0 0 24px;border:2px solid var(--text-muted);border-radius:7px;background:var(--surface-card);color:#fff;cursor:pointer;box-shadow:inset 0 0 0 2px var(--surface-card)}.topic-check-button.is-complete{border-color:var(--status-success);background:var(--status-success);box-shadow:none}.topic-check-button:hover{border-color:var(--primary-color);background:var(--primary-light)}.topic-check-button:focus-visible{outline:3px solid var(--primary-glow);outline-offset:2px}.units-accordion{display:flex;flex-direction:column;gap:6px;margin-top:4px}.unit-block{border:1px solid var(--border-subtle);border-radius:10px;overflow:hidden}.unit-block-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;cursor:pointer;background:var(--surface-subtle);transition:background .15s;border:0;width:100%;text-align:left;font:inherit;color:var(--text-main)}.unit-block-header:hover{background:var(--surface-hover)}.unit-title{font-size:.8rem;font-weight:700;color:var(--text-secondary)}.unit-topic-count{font-size:.68rem;font-weight:700;color:var(--primary-color);background:var(--primary-light);padding:2px 7px;border-radius:5px}.unit-topics{padding:8px 12px;display:flex;flex-direction:column;gap:5px;background:var(--surface-card)}.topic-row{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;padding:5px 4px;border-radius:5px;transition:background .1s}.topic-row:hover{background:var(--surface-subtle)}.topic-completion-bar{display:flex;align-items:center;gap:8px}.topic-pct{color:var(--text-muted);font-weight:700;font-size:.72rem;min-width:30px;text-align:right}.topic-chip--complete{border-color:var(--status-success);color:var(--status-success);background:var(--status-success-subtle)}.course-actions{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}.ai-test-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:linear-gradient(135deg,var(--accent-purple),#a855f7);color:#fff;border:0;border-radius:8px;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #7c3aed4d}.ai-test-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #7c3aed66}.syllabus-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--surface-subtle);color:var(--text-secondary);border:1.5px solid var(--border-subtle);border-radius:8px;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .15s}.syllabus-btn:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--primary-light)}.self-checks-grid{display:grid;gap:14px}.selfcheck-card{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:18px;padding:18px 22px;background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:14px;box-shadow:var(--shadow-xs);transition:all .2s cubic-bezier(.16,1,.3,1)}.selfcheck-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary-color)}.selfcheck-score-display{display:flex;flex-direction:column;align-items:center;gap:3px}.selfcheck-score-num{font-size:1.5rem;font-weight:800;font-family:var(--font-heading);color:var(--primary-color);line-height:1}.selfcheck-score-label{font-size:.65rem;font-weight:800;text-transform:uppercase;color:var(--text-muted);letter-spacing:.06em}.timer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:grid;place-items:center;padding:20px}.timer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#080d18d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.timer-container{position:relative;width:min(100%,540px);background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:24px;padding:36px;box-shadow:0 32px 80px #00000080;text-align:center;animation:fade-rise .3s cubic-bezier(.16,1,.3,1) both}.timer-overlay--fullscreen .timer-container{width:100vw;height:100vh;border-radius:0;display:flex;flex-direction:column;justify-content:center}.timer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.timer-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--primary-light);color:var(--primary-color);font-size:.78rem;font-weight:700}.timer-subject h2{font-size:1.6rem;margin:8px 0 4px}.course-pill{display:inline-block;padding:3px 10px;border-radius:6px;background:var(--surface-subtle);color:var(--text-muted);font-size:.76rem;font-weight:700}.timer-presets{display:flex;justify-content:center;gap:8px;margin:22px 0 28px;flex-wrap:wrap}.preset-btn{border:1.5px solid var(--border-subtle);background:var(--surface-subtle);color:var(--text-secondary);padding:7px 14px;border-radius:8px;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s}.preset-btn.active,.preset-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.timer-clock{padding:30px;background:var(--surface-subtle);border-radius:20px;margin-bottom:30px;background:linear-gradient(135deg,var(--surface-subtle),var(--surface-card));border:1px solid var(--border-subtle)}.clock-digits{font-family:var(--font-heading);font-size:clamp(3.5rem,10vw,5.5rem);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--text-main)}.clock-label{font-size:.8rem;color:var(--text-muted);font-weight:700;text-transform:uppercase;margin-top:6px}.timer-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.timer-main-btn{padding:13px 28px;border-radius:12px;border:0;font:inherit;font-weight:700;font-size:.95rem;cursor:pointer;display:inline-flex;align-items:center;gap:8px;color:#fff;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));box-shadow:0 4px 14px var(--primary-glow)}.timer-finish-btn{padding:13px 20px;border-radius:12px;border:1.5px solid var(--border-subtle);background:var(--surface-subtle);color:var(--text-main);font:inherit;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.timer-pill{position:fixed;bottom:24px;right:24px;z-index:10000;display:flex;align-items:center;gap:12px;padding:10px 14px 10px 16px;background:var(--surface-card);border:1.5px solid var(--primary-color);border-radius:999px;box-shadow:var(--shadow-lg),0 0 0 1px var(--primary-glow);animation:fade-rise .2s cubic-bezier(.16,1,.3,1) both;min-width:260px;max-width:360px}.timer-pill-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0;overflow:hidden}.timer-pill-mode{font-size:1rem;flex-shrink:0}.timer-pill-time{font-family:var(--font-heading);font-size:1.05rem;font-weight:800;color:var(--primary-color);letter-spacing:-.02em;flex-shrink:0}.timer-pill-topic{font-size:.78rem;color:var(--text-muted);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timer-pill-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.timer-pill-btn{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--border-subtle);background:var(--surface-subtle);color:var(--text-secondary);cursor:pointer;transition:all .15s;flex-shrink:0}.timer-pill-btn:hover{background:var(--primary-light);color:var(--primary-color);border-color:var(--primary-color)}.timer-pill-btn--expand{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.timer-pill-btn--expand:hover{background:var(--primary-hover)}.reflection-card{text-align:left}.reflection-header{text-align:center;margin-bottom:24px}.success-icon{width:56px;height:56px;border-radius:50%;background:var(--status-success-subtle);color:var(--status-success);display:grid;place-items:center;margin:0 auto 14px}.reflection-group{margin-bottom:20px}.rating-options{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.rating-pill{border:1.5px solid var(--border-subtle);background:var(--surface-subtle);color:var(--text-secondary);padding:8px 14px;border-radius:8px;font:inherit;font-weight:700;font-size:.84rem;cursor:pointer;transition:all .15s}.rating-pill.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.reflection-footer{display:flex;align-items:center;justify-content:space-between;margin-top:28px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;display:grid;place-items:center;padding:20px}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#080d18cc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-card{position:relative;width:min(100%,640px);max-height:92vh;overflow-y:auto;background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:20px;padding:32px;box-shadow:var(--shadow-xl);animation:fade-rise .3s cubic-bezier(.16,1,.3,1) both}.modal-card--lg{width:min(100%,800px)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--border-subtle)}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:28px;padding-top:18px;border-top:1px solid var(--border-subtle)}.questions-container{display:grid;gap:20px;margin-bottom:24px}.question-item{background:var(--surface-subtle);border:1.5px solid var(--border-subtle);border-radius:12px;padding:18px}.question-header{display:flex;gap:10px;font-weight:700;margin-bottom:12px}.q-number{background:var(--primary-color);color:#fff;border-radius:6px;padding:2px 8px;font-size:.78rem;height:fit-content}.expected-answer-box{margin:10px 0;padding:10px;border-left:3px solid var(--accent-gold);background:var(--accent-gold-subtle);border-radius:4px;font-size:.8rem;color:var(--text-secondary)}.self-grade-row{display:flex;align-items:center;justify-content:space-between;margin-top:12px;font-size:.82rem;gap:12px;flex-wrap:wrap}.grade-buttons{display:flex;gap:8px}.grade-btn{border:1.5px solid var(--border-subtle);background:var(--surface-card);padding:6px 12px;border-radius:6px;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .15s}.grade-btn--correct.selected{background:var(--status-success);color:#fff;border-color:var(--status-success)}.grade-btn--wrong.selected{background:var(--status-danger);color:#fff;border-color:var(--status-danger)}.countdown-ticker{display:flex;align-items:center;justify-content:center;gap:12px;margin:24px 0}.exam-revision-modal{width:min(100%,900px);max-height:92vh;overflow-y:auto}.countdown-ticker--urgent{background:var(--status-danger-subtle);border:1px solid color-mix(in srgb,var(--status-danger) 45%,transparent)}.countdown-ticker--urgent .ticker-num,.countdown-ticker--urgent .ticker-sep,.countdown-ticker--urgent .ticker-label{color:var(--status-danger)}.ticker-unit{background:var(--surface-subtle);border:1.5px solid var(--border-subtle);border-radius:14px;padding:16px 20px;text-align:center;min-width:84px}.ticker-num{font-size:2.2rem;font-weight:800;font-family:var(--font-heading);color:var(--primary-color);display:block;line-height:1}.ticker-label{font-size:.7rem;color:var(--text-muted);font-weight:700;text-transform:uppercase;margin-top:6px;display:block}.ticker-sep{font-size:1.8rem;font-weight:800;color:var(--text-muted)}.revision-summary-bar{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:10px;background:var(--primary-light);color:var(--text-secondary);border-left:3px solid var(--primary-color);font-size:.85rem;margin-bottom:24px}.revision-timeline{margin-top:8px}.timeline-list{display:grid;gap:12px;margin-top:16px}.timeline-item{display:flex;gap:16px;padding:14px;border:1.5px solid var(--border-subtle);background:var(--surface-subtle);border-radius:12px}.timeline-badge{background:var(--primary-color);color:#fff;font-weight:800;font-size:.72rem;padding:6px 10px;border-radius:6px;height:fit-content;white-space:nowrap}.timeline-content{flex:1}.timeline-theme-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.session-type-pill{background:var(--surface-card);border:1px solid var(--border-subtle);padding:3px 8px;border-radius:6px;font-size:.72rem;font-weight:700;color:var(--text-muted)}.timeline-topics{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.timeline-subtext{color:var(--text-muted);font-size:.84rem;margin-top:4px}.topic-chip{display:inline-flex;align-items:center;gap:5px;background:var(--surface-card);padding:4px 8px;border-radius:6px;font-size:.72rem;border:1px solid var(--border-subtle);color:var(--text-secondary)}.revision-topic-check{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1.5px solid var(--border-subtle);border-radius:8px;background:var(--surface-card);color:var(--text-secondary);font:inherit;font-size:.75rem;font-weight:650;cursor:pointer;text-align:left;transition:.15s ease}.revision-topic-check:hover:not(:disabled){border-color:var(--primary-color);background:var(--primary-light);color:var(--primary-color)}.revision-topic-check:disabled{opacity:.6;cursor:wait}.revision-topic-checkbox{width:16px;height:16px;flex:0 0 16px;border:2px solid var(--primary-color);border-radius:5px;background:var(--surface-card)}.revision-topic-check.is-complete{border-color:var(--status-success);background:var(--status-success-subtle);color:var(--status-success);text-decoration:line-through}.revision-topic-check.is-complete .revision-topic-checkbox{display:grid;place-items:center;border-color:var(--status-success);background:var(--status-success);color:#fff;font-size:11px;font-weight:900}.build-week-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;background:linear-gradient(135deg,var(--accent-purple),#a855f7);color:#fff;border:0;border-radius:10px;font:inherit;font-weight:700;font-size:.88rem;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 10px #7c3aed59;white-space:nowrap}.build-week-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #7c3aed73}.build-week-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.hero-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch;flex-shrink:0;min-width:200px}@media(min-width:640px){.hero-actions{flex-direction:row;align-items:center;flex-wrap:wrap}}.today-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:28px}@media(max-width:860px){.today-two-col{grid-template-columns:1fr}}.week-strip-card,.study-hours-card{background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:16px;padding:18px 20px 16px;box-shadow:var(--shadow-sm)}.week-strip-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px}.week-strip-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.week-strip-day{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px 8px;border-radius:10px;transition:background .15s}.week-strip-day--today{background:var(--primary-light)}.week-strip-dow{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.week-strip-date{font-size:.95rem;font-weight:700;font-family:var(--font-heading);color:var(--text-main);width:28px;height:28px;display:grid;place-items:center;border-radius:50%}.week-strip-date--today{background:var(--primary-color);color:#fff;box-shadow:0 2px 8px var(--primary-glow)}.week-strip-sessions{display:flex;gap:2px;flex-wrap:wrap;justify-content:center;min-height:8px}.week-strip-dot{width:5px;height:5px;border-radius:50%;background:var(--border-subtle);border:1px solid var(--text-muted)}.week-strip-dot--done{background:var(--status-success);border-color:var(--status-success)}.week-strip-empty{min-height:8px;display:block}.week-strip-badge{font-size:.55rem;font-weight:900;padding:1px 5px;border-radius:4px;letter-spacing:.04em}.week-strip-badge--exam{background:#ef444426;color:var(--status-danger)}.week-strip-badge--due{background:#f59e0b26;color:var(--accent-gold)}.study-hours-bars{display:flex;align-items:flex-end;gap:6px;height:88px;margin-bottom:10px}.study-hours-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;gap:4px}.study-hours-bar-label{font-size:.6rem;font-weight:700;color:var(--text-muted);min-height:14px;line-height:1;text-align:center}.study-hours-bar-track{flex:1;width:100%;background:var(--surface-subtle);border-radius:5px;overflow:hidden;display:flex;align-items:flex-end;border:1px solid var(--border-subtle)}.study-hours-bar-fill{width:100%;background:var(--primary-color);border-radius:4px;transition:height .5s cubic-bezier(.16,1,.3,1);min-height:3px;opacity:.75}.study-hours-bar-fill--today{background:linear-gradient(180deg,var(--primary-vivid),var(--primary-color));opacity:1;box-shadow:0 0 8px var(--primary-glow)}.study-hours-bar-day{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.study-hours-bar-day--today{color:var(--primary-color);font-weight:800}.study-hours-total{display:flex;align-items:center;gap:6px;padding-top:10px;border-top:1px solid var(--border-subtle);font-size:.78rem;color:var(--text-muted)}.study-hours-total strong{color:var(--primary-color);font-size:1rem;font-family:var(--font-heading);font-weight:800}.remember-me-label{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-size:.82rem;font-weight:600;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.remember-me-label input[type=checkbox]{width:16px!important;height:16px!important;padding:0!important;border-radius:4px!important;flex-shrink:0;cursor:pointer}.streak-banner{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#f59e0b1a,#ef444414);border:1.5px solid rgba(245,158,11,.25);padding:20px 24px;border-radius:16px;margin-bottom:24px}.streak-badge{display:flex;align-items:center;gap:16px}.flame-icon{color:#f59e0b}.streak-stat strong{font-size:1.6rem;font-family:var(--font-heading);color:#f59e0b}.chart-card{background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow-sm)}.performance-split-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.performance-card{background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:14px;padding:22px}.area-list{display:grid;gap:8px;margin-top:12px}.area-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--surface-subtle);border-radius:8px}.area-pill{padding:3px 8px;border-radius:6px;font-size:.7rem;font-weight:800}.area-pill.warn{background:#fee2e2;color:#b91c1c}.area-pill.success{background:#d1fae5;color:#047857}.ai-badge-icon{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-glow);flex-shrink:0}.ai-error-box{display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border-radius:10px;margin-top:12px;background:var(--status-danger-subtle);color:var(--status-danger);font-size:.82rem;font-weight:600;border:1px solid rgba(239,68,68,.2)}.ai-spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.config-section{margin-bottom:22px}.config-label{font-size:.8rem;font-weight:700;color:var(--text-secondary);display:block;margin-bottom:10px}.course-select-grid{display:grid;gap:8px}.course-select-btn{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;border:1.5px solid var(--border-subtle);background:var(--surface-subtle);cursor:pointer;transition:all .2s;text-align:left;font:inherit;color:var(--text-main)}.course-select-btn:hover{border-color:var(--course-color, var(--primary-color));background:var(--surface-hover)}.course-select-btn.selected{border-color:var(--course-color, var(--primary-color));background:color-mix(in srgb,var(--course-color, var(--primary-color)) 10%,var(--surface-card));box-shadow:0 0 0 1px var(--course-color, var(--primary-color))}.course-dot{width:12px;height:12px;border-radius:50%;background:var(--course-color, var(--primary-color));flex-shrink:0}.course-select-btn span{display:flex;flex-direction:column;gap:2px}.course-select-btn strong{font-size:.88rem}.course-select-btn small{font-size:.73rem;color:var(--text-muted)}.topic-checkbox-grid{display:grid;gap:5px;max-height:220px;overflow-y:auto}.topic-check-btn{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;border:1.5px solid var(--border-subtle);background:var(--surface-subtle);cursor:pointer;transition:all .15s;text-align:left;font:inherit;font-size:.82rem;color:var(--text-main)}.topic-check-btn:hover{background:var(--surface-hover)}.topic-check-btn.selected{border-color:var(--primary-color);background:var(--primary-light)}.check-box{width:18px;height:18px;border-radius:5px;border:2px solid var(--border-subtle);flex-shrink:0;transition:all .15s;display:grid;place-items:center}.check-box.checked{background:var(--primary-color);border-color:var(--primary-color)}.check-box.checked:after{content:"✓";color:#fff;font-size:11px;font-weight:700}.topic-completion{margin-left:auto;font-size:.72rem;color:var(--text-muted);font-weight:700}.difficulty-picker{display:flex;gap:8px;flex-wrap:wrap}.difficulty-btn{border:1.5px solid var(--border-subtle);background:var(--surface-subtle);color:var(--text-secondary);padding:8px 18px;border-radius:8px;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .15s}.difficulty-btn.selected{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.difficulty-btn:hover:not(.selected){border-color:var(--primary-color);color:var(--primary-color)}.ai-test-modal{max-height:92vh;overflow-y:auto}.ai-subtext{color:var(--text-muted);font-size:.88rem;margin-bottom:22px}.quiz-progress-bar{height:4px;background:var(--border-subtle);border-radius:99px;overflow:hidden;margin-bottom:6px}.quiz-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--accent-purple));border-radius:99px;transition:width .4s ease}.quiz-question-card{background:var(--surface-subtle);border:1.5px solid var(--border-subtle);border-radius:14px;padding:22px;margin-bottom:20px}.quiz-prompt{font-size:.98rem;font-weight:600;line-height:1.6;margin-bottom:18px}.q-type-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:6px;font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.q-type-badge.mcq{background:var(--accent-gold-subtle);color:var(--accent-gold)}.q-type-badge.short{background:var(--primary-light);color:var(--primary-color)}.topic-tag{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:var(--text-muted);font-weight:600}.diff-dot{width:8px;height:8px;border-radius:50%}.mcq-options{display:grid;gap:8px}.mcq-option{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:10px;border:1.5px solid var(--border-subtle);background:var(--surface-card);cursor:pointer;font:inherit;font-size:.88rem;color:var(--text-main);text-align:left;transition:all .15s}.mcq-option:hover,.mcq-option.selected{border-color:var(--primary-color);background:var(--primary-light)}.opt-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-subtle);flex-shrink:0;margin-top:2px;transition:all .15s}.mcq-option.selected .opt-radio{border-color:var(--primary-color);background:var(--primary-color)}.short-answer-input{resize:vertical;min-height:80px}.self-grade-box{margin-top:14px}.quiz-nav{display:flex;justify-content:space-between}.results-hero{display:flex;align-items:center;gap:20px;padding:20px;background:var(--surface-subtle);border-radius:14px;margin-bottom:20px}.score-ring{width:80px;height:80px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid;flex-shrink:0}.score-ring.pass{border-color:var(--status-success);color:var(--status-success)}.score-ring.mid{border-color:var(--accent-gold);color:var(--accent-gold)}.score-ring.fail{border-color:var(--status-danger);color:var(--status-danger)}.score-num{font-size:1.4rem;font-weight:800;font-family:var(--font-heading);line-height:1}.score-label{font-size:.65rem;font-weight:700;text-transform:uppercase;opacity:.7}.results-breakdown{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto}.result-item{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:10px;border:1px solid}.result-item.correct{border-color:#10b98133;background:#10b9810f}.result-item.wrong{border-color:#ef444433;background:#ef44440f}.result-status{flex-shrink:0;padding-top:1px}.file-dropzone{border:2px dashed var(--border-subtle);border-radius:14px;padding:36px 24px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;margin-bottom:18px;min-height:120px}.file-dropzone:hover{border-color:var(--primary-color);background:var(--primary-light)}.syllabus-summary-bar{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;background:var(--primary-light);color:var(--text-secondary);font-size:.86rem;margin-bottom:14px}.ai-tips-box{padding:12px 16px;border-radius:10px;background:var(--accent-gold-subtle);color:var(--text-secondary);border-left:3px solid var(--accent-gold);margin-bottom:14px}.syllabus-units-list{display:flex;flex-direction:column;gap:12px;margin-bottom:10px;max-height:380px;overflow-y:auto}.syllabus-unit-card{border:1.5px solid var(--border-subtle);border-radius:12px;overflow:hidden}.syllabus-unit-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface-subtle)}.import-unit-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:7px;border:1.5px solid var(--border-subtle);background:var(--surface-card);font:inherit;font-size:.76rem;font-weight:700;cursor:pointer;transition:all .15s;color:var(--text-secondary)}.import-unit-btn:hover:not(.imported):not(:disabled){border-color:var(--primary-color);color:var(--primary-color);background:var(--primary-light)}.import-unit-btn.imported{background:var(--status-success-subtle);color:var(--status-success);border-color:var(--status-success)}.import-unit-btn:disabled{opacity:.5;cursor:not-allowed}.syllabus-topics{padding:8px 16px;display:flex;flex-direction:column;gap:4px}.syllabus-topic-row{display:flex;align-items:center;gap:8px;font-size:.8rem;padding:4px 0}.syllabus-topic-dot{width:6px;height:6px;border-radius:50%;background:var(--primary-color);flex-shrink:0}.add-prog-steps{display:flex;align-items:center;gap:0;margin:20px 0}.step-indicator{display:flex;align-items:center;gap:8px;flex:1}.step-indicator:last-child{flex:0}.step-dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:.78rem;font-weight:800;border:2px solid var(--border-subtle);background:var(--surface-card);color:var(--text-muted);transition:all .2s;flex-shrink:0}.step-indicator.active .step-dot{border-color:var(--primary-color);background:var(--primary-color);color:#fff}.step-indicator.done .step-dot{border-color:var(--status-success);background:var(--status-success);color:#fff}.step-indicator span{font-size:.78rem;font-weight:700;color:var(--text-muted)}.step-indicator.active span{color:var(--primary-color)}.step-indicator.done span{color:var(--status-success)}.step-line{flex:1;height:2px;background:var(--border-subtle);margin:0 8px}.step-indicator.done .step-line{background:var(--status-success)}.course-form-row{padding:14px;background:var(--surface-subtle);border:1.5px solid var(--border-subtle);border-radius:10px;display:flex;flex-direction:column;gap:10px}.color-swatch-picker{display:flex;gap:6px;flex-wrap:wrap}.color-swatch{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .15s}.color-swatch.selected{border-color:var(--text-main);transform:scale(1.2)}.color-swatch:hover{transform:scale(1.15)}.gemini-panel-overlay{position:fixed;bottom:24px;right:24px;z-index:9997;animation:fade-rise .3s cubic-bezier(.16,1,.3,1) both}.gemini-panel{width:380px;max-height:580px;background:var(--surface-card);border:1.5px solid var(--border-subtle);border-radius:20px;box-shadow:var(--shadow-xl),0 0 0 1px #14b8a61a;display:flex;flex-direction:column;overflow:hidden}.gemini-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:linear-gradient(135deg,var(--surface-subtle),var(--surface-card));border-bottom:1px solid var(--border-subtle);flex-shrink:0}.gemini-avatar{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--primary-color),var(--accent-purple));color:#fff;display:grid;place-items:center;box-shadow:0 4px 12px var(--primary-glow)}.ai-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--status-success);margin-left:6px;box-shadow:0 0 6px var(--status-success);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.panel-mode-tabs{display:flex;gap:3px;background:var(--surface-subtle);padding:3px;border-radius:8px}.panel-tab{border:0;background:none;padding:5px 10px;border-radius:6px;font:inherit;font-size:.75rem;font-weight:700;cursor:pointer;color:var(--text-muted);transition:all .15s;display:inline-flex;align-items:center;gap:5px}.panel-tab.active{background:var(--surface-card);color:var(--primary-color);box-shadow:var(--shadow-sm)}.gemini-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.gemini-msg{display:flex;gap:8px;align-items:flex-start}.gemini-msg.user{flex-direction:row-reverse}.gemini-msg-avatar{width:26px;height:26px;border-radius:8px;flex-shrink:0;background:linear-gradient(135deg,var(--primary-color),var(--accent-purple));color:#fff;display:grid;place-items:center}.gemini-msg-bubble{max-width:82%;padding:10px 14px;border-radius:14px;font-size:.84rem;line-height:1.55}.gemini-msg.ai .gemini-msg-bubble{background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:4px 14px 14px}.gemini-msg.user .gemini-msg-bubble{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff;border-radius:14px 4px 14px 14px}.gemini-typing{display:flex;gap:4px;align-items:center;padding:12px 16px}.gemini-typing span{width:7px;height:7px;border-radius:50%;background:var(--text-muted);animation:typing-bounce 1.2s ease-in-out infinite}.gemini-typing span:nth-child(2){animation-delay:.2s}.gemini-typing span:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,80%,to{transform:scale(.8);opacity:.4}40%{transform:scale(1);opacity:1}}.quick-prompts{display:flex;flex-wrap:wrap;gap:5px;padding:0 16px 10px}.quick-prompt-btn{border:1px solid var(--border-subtle);background:var(--surface-subtle);color:var(--text-secondary);padding:5px 10px;border-radius:7px;font:inherit;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s}.quick-prompt-btn:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--primary-light)}.gemini-input-row{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border-subtle);flex-shrink:0}.gemini-input{flex:1;resize:none;border-radius:10px;padding:10px 12px;min-height:40px;max-height:120px;font-size:.85rem;line-height:1.45}.gemini-send-btn{width:40px;height:40px;border-radius:10px;border:0;flex-shrink:0;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff;cursor:pointer;display:grid;place-items:center;transition:all .2s;box-shadow:0 2px 8px var(--primary-glow)}.gemini-send-btn:hover:not(:disabled){transform:scale(1.05)}.gemini-send-btn:disabled{opacity:.4;cursor:not-allowed}.reschedule-panel{padding:16px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;flex:1}.reschedule-header{text-align:center;padding:12px 0;display:flex;flex-direction:column;align-items:center;gap:8px}.reschedule-header h3{font-size:1rem;margin:0}.reschedule-header p{color:var(--text-muted);font-size:.82rem}.plan-view{display:flex;flex-direction:column;gap:10px}.plan-summary-bar{padding:10px 14px;border-radius:10px;border-left:4px solid;background:var(--surface-subtle);display:flex;flex-direction:column;gap:5px}.urgency-badge{display:inline-block;padding:2px 8px;border-radius:5px;font-size:.65rem;font-weight:800;color:#fff;width:fit-content}.plan-day-card{background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:10px;overflow:hidden}.plan-day-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:none;border:0;cursor:pointer;font:inherit;color:var(--text-main);width:100%;text-align:left;transition:background .15s}.plan-day-header:hover{background:var(--surface-hover)}.plan-sessions{padding:8px 14px;display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border-subtle)}.plan-session-item{display:flex;gap:10px;align-items:flex-start}.priority-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}.priority-dot--high{background:var(--status-danger)}.priority-dot--medium{background:var(--accent-gold)}.priority-dot--low{background:var(--status-success)}.plan-tips{padding:10px 14px;background:var(--accent-gold-subtle);border-radius:10px;border-left:3px solid var(--accent-gold)}.plan-apply-message{padding:10px 12px;border-radius:9px;background:var(--status-success-subtle);color:var(--status-success);font-size:.8rem;font-weight:700}.field-hint{margin-top:6px;color:var(--text-muted);font-size:.75rem;line-height:1.45}.ai-fab{position:fixed;bottom:24px;right:24px;z-index:9996;width:56px;height:56px;border-radius:16px;border:0;background:linear-gradient(135deg,var(--primary-color),var(--accent-purple));color:#fff;cursor:pointer;display:grid;place-items:center;box-shadow:0 8px 24px #0d948866,0 4px 8px #0003;transition:all .2s cubic-bezier(.16,1,.3,1);animation:fade-rise .4s cubic-bezier(.16,1,.3,1) both}.ai-fab:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 14px 36px #0d948880,0 6px 12px #0003}.ai-fab-pulse{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:20px;border:2px solid var(--primary-color);animation:fab-pulse 2.5s ease-in-out infinite}@keyframes fab-pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:0;transform:scale(1.12)}}@keyframes fade-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.planner-shell{grid-template-columns:70px 1fr;--sidebar-width: 70px}.sidebar-brand span,.nav-link span,.theme-toggle-btn span,.logout-button span,.sidebar-section-label{display:none}.nav-link{justify-content:center;padding:10px 0}.nav-link--active:before{display:none}.nav-link-icon{width:36px;height:36px}.theme-toggle-btn,.logout-button{justify-content:center;padding:10px 0}.week-grid{grid-template-columns:repeat(4,1fr);overflow-x:auto}.session-card{grid-template-columns:1fr}.session-time{flex-direction:row;gap:8px}.session-time i{width:12px;height:1px}.selfcheck-card,.exams-grid,.course-grid{grid-template-columns:1fr}.gemini-panel{width:calc(100vw - 48px)}}@media(max-width:600px){.week-grid{grid-template-columns:repeat(3,1fr)}.countdown-ticker{gap:6px}.ticker-unit{min-width:60px;padding:10px 12px}.ticker-num{font-size:1.6rem}.availability-row,.availability-row.is-rest,.form-row-2{grid-template-columns:1fr}.planner-content{padding:20px 16px 40px}}
