:root{color-scheme:light;--bg: #f5f5f5;--surface: #ffffff;--surface-alt: #f8f8f8;--text-primary: #111111;--text-secondary: #666666;--text-tertiary: #8a8a8a;--border: #e6e6e6;--divider: #efefef;--primary: #2f5f9f;--primary-hover: #28538c;--primary-active: #224878;--success: #18a058;--warning: #f5a623;--danger: #e5484d;--input-bg: #ffffff;--overlay: rgba(17, 17, 17, .35);--shadow-card: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 24px rgba(0, 0, 0, .04);--shadow-overlay: 0 12px 40px rgba(0, 0, 0, .14);--radius-sm: 10px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--focus-ring: color-mix(in srgb, var(--primary) 18%, transparent);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,sans-serif}[data-theme=dark]{color-scheme:dark;--bg: #0b0b0c;--surface: #141416;--surface-alt: #1a1b1e;--text-primary: #f5f5f5;--text-secondary: #b5b5b8;--text-tertiary: #8c8d91;--border: #2a2b2f;--divider: #232428;--primary: #7aa7d9;--primary-hover: #8db5e0;--primary-active: #6795c7;--overlay: rgba(0, 0, 0, .55);--shadow-card: 0 1px 2px rgba(0, 0, 0, .25), 0 8px 28px rgba(0, 0, 0, .35);--shadow-overlay: 0 12px 44px rgba(0, 0, 0, .55)}:root,.dashboard-theme{--background: var(--bg);--foreground: var(--text-primary);--card: var(--surface);--card-foreground: var(--text-primary);--primary-foreground: #ffffff;--secondary: var(--surface-alt);--muted: var(--surface-alt);--muted-foreground: var(--text-secondary);--input: var(--border);--ring: var(--focus-ring);--danger-soft: color-mix(in srgb, var(--danger) 10%, var(--surface));--primary-soft: color-mix(in srgb, var(--primary) 10%, var(--surface));--radius: var(--radius-lg);--shadow-sm: var(--shadow-card);--shadow-md: var(--shadow-overlay)}[data-theme=dark] .dashboard-theme,[data-theme=dark]:root{--primary-foreground: #0f1720}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text-primary)}button,input,select,textarea{font:inherit}button{cursor:pointer}.ui-modal-scroll,.draft-list,pre,textarea,.main{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--primary) 42%,transparent) transparent}.ui-modal-scroll::-webkit-scrollbar,.draft-list::-webkit-scrollbar,pre::-webkit-scrollbar,textarea::-webkit-scrollbar,.main::-webkit-scrollbar{width:12px;height:12px}.ui-modal-scroll::-webkit-scrollbar-track,.draft-list::-webkit-scrollbar-track,pre::-webkit-scrollbar-track,textarea::-webkit-scrollbar-track,.main::-webkit-scrollbar-track{margin:16px 0;background:transparent}.ui-modal-scroll::-webkit-scrollbar-thumb,.draft-list::-webkit-scrollbar-thumb,pre::-webkit-scrollbar-thumb,textarea::-webkit-scrollbar-thumb,.main::-webkit-scrollbar-thumb{border:4px solid transparent;border-radius:999px;background:color-mix(in srgb,var(--primary) 42%,var(--surface-alt));background-clip:content-box}.app-shell{min-height:100vh;display:grid;grid-template-columns:184px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:18px 12px;border-right:1px solid var(--border);background:var(--surface)}.brand{display:flex;gap:10px;align-items:center;padding:6px 8px 24px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-sm);color:var(--primary-foreground);background:var(--primary);box-shadow:var(--shadow-card)}.brand strong{display:block;line-height:1.1;letter-spacing:.01em}.brand span,.eyebrow,.hint,.chart-card p{color:var(--text-secondary);font-size:13px}.sidebar nav{display:grid;gap:5px}.sidebar button,.mobile-nav button{border:0;color:var(--text-secondary);background:transparent;display:flex;align-items:center;gap:9px;border-radius:var(--radius-sm);min-height:40px;padding:0 12px;font-weight:500;transition:background .15s ease,color .15s ease}.sidebar button:hover,.mobile-nav button:hover{color:var(--text-primary);background:var(--surface-alt)}.sidebar button.active,.mobile-nav button.active{color:var(--primary);background:var(--primary-soft);font-weight:600}.main{min-width:0;padding:22px 26px 60px;background:var(--bg)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.topbar h1{margin:3px 0 0;font-size:28px;line-height:1.1;letter-spacing:0}.eyebrow{margin:0;text-transform:uppercase;font-weight:700;letter-spacing:.14em;font-size:12px;color:var(--text-tertiary)}.top-actions{display:flex;align-items:center;gap:10px}.icon-btn,.user-chip,.primary,.secondary,.danger,.segmented button{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease,box-shadow .15s ease}.icon-btn{width:36px;height:36px;min-height:36px;padding:0;background:var(--surface-alt)}.icon-btn:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:var(--primary-soft)}.user-chip{min-height:36px}.user-chip:hover{background:var(--surface-alt)}.primary{min-height:44px;border-color:transparent;border-radius:var(--radius-md);padding:10px 16px;font-size:14px;font-weight:600;background:var(--primary);color:var(--primary-foreground);box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 24%,transparent)}.primary:hover{background:var(--primary-hover)}.primary:active{background:var(--primary-active);transform:scale(.98)}.primary:disabled{opacity:.55;cursor:not-allowed}.secondary{min-height:40px;font-weight:500}.secondary:hover{background:var(--surface-alt)}.secondary:active{transform:scale(.98)}.danger{min-height:40px;border-color:transparent;border-radius:var(--radius-md);font-weight:600;background:var(--danger);color:#fff}.danger:hover{background:color-mix(in srgb,var(--danger) 88%,#000)}.danger:active{transform:scale(.98)}.pill{font-size:12px;color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);border-radius:999px;padding:6px 10px;font-weight:600}.avatar{width:22px;height:22px;border-radius:7px;object-fit:cover}.avatar-fallback{display:grid;place-items:center;padding-top:.04em;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:800;line-height:1;text-align:center;overflow:hidden}.profile-wrap{position:relative}.profile-popover{position:absolute;right:0;top:calc(100% + 8px);width:292px;z-index:40;display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-overlay)}.profile-head{display:flex;align-items:center;gap:12px}.profile-head span{display:block;color:var(--text-secondary);font-size:13px;margin-top:3px;overflow-wrap:anywhere}.profile-avatar{width:48px;height:48px;border-radius:var(--radius-md);object-fit:cover;background:var(--primary-soft);display:grid;place-items:center;color:var(--primary);font-size:20px;font-weight:800}.page-fade{animation:fade .2s ease-out}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.workspace,.stack{display:grid;gap:16px}.hero-strip{display:flex;justify-content:space-between;gap:16px;align-items:end;padding:18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card)}.hero-strip span{color:var(--text-tertiary);font-size:12px;text-transform:uppercase;font-weight:700;letter-spacing:.14em}.hero-strip strong{display:block;margin-top:4px;font-size:30px;line-height:1.1}.hero-strip p{margin:6px 0 0;color:var(--text-secondary)}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.schedule-toolbar{flex-wrap:nowrap}.segmented{display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-alt)}.segmented button{min-height:32px;border:0;box-shadow:none;background:transparent;color:var(--text-secondary)}.segmented button.active{background:var(--surface);color:var(--text-primary);font-weight:600;box-shadow:var(--shadow-card)}.week-control button{transition:transform .12s ease,background .12s ease,color .12s ease}.week-control button:active{transform:scale(.92);background:var(--primary);color:var(--primary-foreground)}.week-current{min-width:92px;color:var(--text-primary)!important;font-weight:700}.today-btn{color:var(--primary)!important;font-weight:600}.week-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.week-picker button{min-height:42px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text-primary)}.week-picker button:hover,.week-picker button.active{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground)}.panel,.stat-card{background:var(--surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.panel{padding:18px}.panel h2{margin:0 0 12px;font-size:17px;letter-spacing:0}.schedule-grid{display:grid;grid-template-columns:72px repeat(7,minmax(110px,1fr));gap:1px;padding:0;overflow:hidden;background:var(--divider)}.grid-head,.period,.cell{min-height:82px;padding:10px;background:var(--surface)}.grid-head,.period{min-height:52px;display:grid;place-items:center;align-content:center;gap:2px;font-size:13px;font-weight:700;color:var(--text-secondary);border:0;border-radius:0}.grid-head.day{cursor:pointer;transition:background .15s ease,color .15s ease}.grid-head.day:hover{background:var(--surface-alt);color:var(--text-primary)}.grid-head .head-date{font-size:11px;font-weight:500;color:var(--text-tertiary)}.grid-head.today{background:var(--primary-soft);color:var(--primary)}.grid-head.today .head-date{color:var(--primary);font-weight:700}.cell{display:grid;align-content:start;gap:8px}.cell.today-col{background:color-mix(in srgb,var(--primary) 4%,var(--surface))}.cell.conflict{outline:2px solid var(--warning);outline-offset:-2px}.course-block{width:100%;min-height:126px;border-left:4px solid var(--course);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--course),var(--surface) 90%);color:var(--text-primary);padding:10px;display:grid;gap:5px}.item-head{display:flex;justify-content:space-between;gap:10px;align-items:start}.course-block strong{font-size:14px}.course-block span,.course-block em{font-size:12px;color:var(--text-secondary);font-style:normal}.danger-icon{width:30px;min-width:30px;height:30px;border:1px solid transparent;border-radius:8px;color:var(--danger);background:transparent;display:inline-grid;place-items:center}.danger-icon:hover{border-color:color-mix(in srgb,var(--danger),transparent 70%);background:var(--danger-soft)}.mobile-timeline{display:none}.timeline-item{display:grid;grid-template-columns:56px 1fr auto;gap:12px;padding:10px 0;border-top:1px solid var(--divider);align-items:start}.timeline-item time{color:var(--primary);font-weight:700}.timeline-item span{display:block;color:var(--text-secondary);font-size:13px;margin-top:4px}.empty-note{margin:0;color:var(--text-secondary);line-height:1.6}.two-col{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.course-card{display:grid;gap:12px}.course-card h2{margin:0 0 4px}.course-card p{margin:0;color:var(--text-secondary)}.metric-row{display:flex;justify-content:space-between;align-items:end}.metric-row strong{font-size:30px}.metric-row span{color:var(--text-secondary)}.progress{height:8px;border-radius:999px;background:var(--surface-alt);border:1px solid var(--divider);overflow:hidden}.progress span{display:block;height:100%;background:var(--primary)}.progress.warn span{background:var(--warning)}.progress.danger span{background:var(--danger)}.grade-list{display:grid;gap:8px}.grade-list div,.row,.risk-list div{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-alt)}.grade-list em,.row em,.risk-list em{grid-column:1 / -1;color:var(--text-secondary);font-size:13px;font-style:normal}.form-panel{position:sticky;top:20px;display:grid;gap:12px}label{display:grid;gap:7px;font-size:13px;font-weight:600;color:var(--text-secondary)}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text-primary);min-height:44px;padding:10px 12px;outline:none;transition:border-color .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s cubic-bezier(.2,.8,.2,1)}textarea{min-height:92px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}.stats-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.stat-card{padding:15px;display:grid;gap:10px;min-height:92px}.stat-card span{color:var(--text-secondary);font-size:13px}.stat-card strong{font-size:24px;letter-spacing:0;overflow-wrap:anywhere}.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.chart-card{min-height:360px}.recharts-cartesian-grid line{stroke:var(--divider)}.recharts-text{fill:var(--text-secondary);font-size:12px}.recharts-default-tooltip{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:var(--radius-sm);color:var(--text-primary)!important}.simulator{display:grid;gap:12px}.simulator p{color:var(--text-secondary);margin:0}.bad{color:var(--danger)}.compare{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:10px;padding:12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-alt)}.compare em{color:var(--primary);font-style:normal;font-weight:700}.risk-list{display:grid;gap:8px}.risk-list div{grid-template-columns:1fr auto}.uploader{display:grid;gap:14px;align-content:start;min-height:420px}.uploader p{color:var(--text-secondary);margin:0}.dropzone{border:1px dashed var(--border);border-radius:var(--radius-md);min-height:180px;display:grid;place-items:center;align-content:center;gap:10px;background:var(--surface-alt);color:var(--text-primary);transition:border-color .15s ease,background .15s ease}.dropzone:hover{border-color:var(--primary);background:var(--primary-soft)}.dropzone input{display:none}.draft-list{display:grid;gap:12px;max-height:70vh;overflow:auto;overscroll-behavior:contain}.draft-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;display:grid;gap:10px;background:var(--surface-alt)}.draft-card span{display:block;color:var(--text-secondary);font-size:13px;margin-top:4px}pre{margin:0;white-space:pre-wrap;overflow:auto;overscroll-behavior:contain;max-height:260px;font-size:12px;color:var(--text-secondary)}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.editable-panel{display:grid;gap:12px;align-content:start}.semester-list{display:grid;gap:8px}.semester-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}.semester-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.semester-row .status-on{grid-column:auto;color:var(--primary);font-style:normal;font-weight:600;font-size:13px;white-space:nowrap}.row-action{min-height:32px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:13px;font-weight:600}.row-action:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:var(--primary-soft)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text-secondary);overflow-wrap:anywhere}.rule-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.rule-list div{padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--divider);background:var(--surface-alt);display:flex;justify-content:space-between;gap:8px}.status-list,.gpa-editor{display:grid;gap:10px}.status-list div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--divider);background:var(--surface-alt)}.status-list strong{color:var(--text-secondary)}.status-list .status-on{color:var(--primary)}.gpa-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-alt)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.switch{display:flex;align-items:center;gap:10px;color:var(--text-primary)}.switch input{width:20px;min-height:20px}.button-row{display:flex;gap:10px;flex-wrap:wrap}.button-row.right{justify-content:flex-end}.status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.landing-admin{display:grid;gap:12px}.background-manage-card{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-alt)}.background-manage-card img,.background-manage-card .ui-logo-badge{width:96px;height:54px;flex:0 0 auto;border-radius:var(--radius-md);object-fit:cover;box-shadow:var(--shadow-card)}.ui-logo-badge{display:grid;place-items:center;color:var(--primary);background:var(--primary-soft);font-weight:800}.background-manage-card strong,.background-manage-card span,.background-manage-card em{display:block}.background-manage-card span,.background-manage-card em{margin-top:3px;color:var(--text-secondary);font-size:12px;font-style:normal;overflow-wrap:anywhere}.background-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bg-action{width:100%;min-height:42px;cursor:pointer}.bg-action input{display:none}.bg-action:disabled{cursor:not-allowed;opacity:.48}.dash-list{display:grid;gap:8px;max-height:300px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-right:2px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;display:flex;align-items:end;justify-content:center;overscroll-behavior:none;padding:8px;background:var(--overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:modalFade .18s ease-out}.modal-card{position:relative;width:min(760px,100%);max-height:96dvh;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-overlay);transform-origin:bottom center;animation:modalRise .2s ease-out}.modal-card-compact{width:min(520px,100%)}.modal-close{position:absolute;right:16px;top:16px;z-index:30;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);box-shadow:var(--shadow-card)}.modal-close:hover{color:var(--text-primary);background:var(--surface-alt)}.modal-heading{padding-right:48px}.modal-heading h2{margin:0;font-size:20px;letter-spacing:0}.modal-body{display:grid;gap:14px;max-height:96dvh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;padding:64px 20px max(28px,env(safe-area-inset-bottom))}@keyframes modalFade{0%{opacity:0}to{opacity:1}}@keyframes modalRise{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.confirm-box{display:flex;gap:12px;align-items:start;padding:12px;border:1px solid color-mix(in srgb,var(--danger),transparent 65%);border-radius:var(--radius-md);background:var(--danger-soft)}.confirm-box p{margin:0;line-height:1.6}.confirm-mark{width:42px;height:42px;border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--danger);background:color-mix(in srgb,var(--danger),transparent 84%);flex:0 0 auto}.date-field{position:relative}.ui-date-trigger{width:100%;min-height:44px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--input-bg);color:var(--text-primary);text-align:left;padding:0 12px;transition:border-color .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s cubic-bezier(.2,.8,.2,1),background-color .18s cubic-bezier(.2,.8,.2,1)}.ui-date-trigger:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}.calendar-popover{position:absolute;left:0;top:calc(100% + 8px);z-index:50;width:min(316px,calc(100vw - 24px));padding:10px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-overlay)}.calendar-head{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:4px;padding-bottom:7px}.calendar-head button,.calendar-actions button,.calendar-grid button{border:0;border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text-primary)}.calendar-head button{display:grid;place-items:center;min-height:34px}.calendar-head strong{text-align:center;color:var(--text-primary)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar-weekdays span{display:grid;place-items:center;height:24px;font-size:12px;color:var(--text-tertiary)}.calendar-grid button,.calendar-grid span{display:grid;place-items:center;min-height:34px}.calendar-grid button.active,.calendar-grid button:hover{background:var(--primary);color:var(--primary-foreground)}.calendar-actions{display:flex;justify-content:space-between;gap:8px;margin-top:4px}.calendar-actions button{min-height:32px;padding:0 10px}.crop-editor{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:18px;align-items:center}.crop-frame{position:relative;width:min(100%,520px);margin:0 auto;overflow:hidden;border-radius:var(--radius-lg);background:var(--surface-alt);box-shadow:inset 0 0 0 1px var(--border),var(--shadow-overlay)}.crop-frame img{position:absolute;left:50%;top:50%;max-width:none;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none}.crop-controls{display:grid;gap:14px}.crop-control{display:grid;gap:8px}.crop-control>div{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px}.crop-control button{min-height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text-primary)}.landing{min-height:100vh;position:relative;overflow:hidden;background:var(--bg);color:var(--text-primary);display:flex;flex-direction:column}.landing-media{position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--landing-bg);background-size:cover;background-position:center;opacity:var(--landing-opacity)}.landing:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,color-mix(in srgb,var(--bg),transparent 2%),color-mix(in srgb,var(--bg),transparent 13%) 54%,color-mix(in srgb,var(--bg),transparent 36%))}.landing-nav,.landing-hero{position:relative;z-index:1}.landing-nav{display:flex;align-items:center;justify-content:space-between;padding:22px clamp(18px,5vw,70px)}.landing-hero{width:min(780px,calc(100% - 32px));padding:clamp(54px,14vh,150px) 0 32px;margin-left:clamp(18px,7vw,96px)}.landing-hero h1{margin:10px 0 16px;font-size:clamp(42px,8vw,86px);line-height:.98;letter-spacing:0;font-family:Georgia,Times New Roman,serif}.landing-hero p{width:min(560px,100%);color:var(--text-secondary);font-size:17px;line-height:1.7;margin:0}.landing-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.loading{min-height:100vh;display:grid;place-content:center;gap:16px;justify-items:center;background:var(--bg)}.skeleton{height:14px;width:160px;border-radius:999px;background:linear-gradient(90deg,var(--surface-alt),var(--border),var(--surface-alt));background-size:200% 100%;animation:pulse 1.4s linear infinite}.skeleton.wide{width:220px}@keyframes pulse{to{background-position:-200% 0}}.mobile-nav{display:none}@media (max-width: 1100px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-grid,.settings-grid,.two-col{grid-template-columns:1fr}.form-panel{position:static}}@media (min-width: 761px){.modal-backdrop{align-items:center;padding:16px}.modal-card{max-height:94dvh;transform-origin:center}.modal-body{max-height:94dvh;padding-inline:24px}}@media (max-width: 760px){.app-shell{display:block}.sidebar{display:none}.main{padding:16px 14px 88px}.topbar{align-items:flex-start;flex-direction:column}.topbar h1{font-size:24px}.top-actions{width:100%;gap:6px;flex-wrap:wrap;justify-content:flex-start}.user-chip{max-width:150px;overflow:hidden;white-space:nowrap}.hero-strip,.toolbar{align-items:stretch;flex-direction:column}.schedule-toolbar{display:grid;grid-template-columns:1fr;align-items:stretch;gap:10px}.schedule-toolbar .week-control{width:100%;min-width:0;justify-content:space-between}.schedule-toolbar .week-control button{min-height:42px}.schedule-toolbar .week-current{min-width:0;flex:1;white-space:nowrap}.schedule-toolbar>.primary{min-height:48px;white-space:nowrap;padding-inline:12px}.schedule-grid{display:none}.mobile-timeline{display:block}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card strong{font-size:20px}.import-layout{grid-template-columns:1fr}.mobile-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:8px max(8px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface),transparent 4%);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:20}.mobile-nav button{min-height:52px;justify-content:center;flex-direction:column;gap:3px;padding:0;font-size:11px}.panel{border-radius:var(--radius-md);padding:14px}.rule-list{grid-template-columns:repeat(2,minmax(0,1fr))}.week-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid,.gpa-row{grid-template-columns:1fr}.gpa-row .icon-btn{width:100%}.crop-editor{grid-template-columns:1fr}.crop-frame{width:100%}.calendar-popover{position:static;width:100%;margin-top:8px}.profile-popover{left:0;right:auto;width:min(320px,calc(100vw - 28px))}.landing-nav{padding:14px}.landing-hero{margin:0 auto;padding-top:44px}.landing-hero p{font-size:16px}}
