:root{--ivy-900: #0A2415;--ivy-950: #06160D;--ivy-800: #0C2A18;--ivy-750: #0F2F1C;--surface-1: #0F3320;--surface-2: #123A25;--surface-3: #17472E;--paper-0: #f8fcf9;--paper-1: #f6fbf7;--paper-2: #eff6f1;--gold-600: #C9A44C;--gold-500: #D6B25E;--color-primary: var(--ivy-900);--color-primary-light: rgba(10, 36, 21, .14);--color-primary-dark: var(--ivy-950);--color-primary-rgb: 10, 36, 21;--color-accent: var(--gold-600);--color-accent-light: rgba(201, 164, 76, .18);--app-bg-gradient: linear-gradient(180deg, var(--ivy-900) 0%, var(--ivy-800) 35%, var(--ivy-750) 70%, var(--ivy-900) 100%);--color-bg-primary: var(--paper-1);--color-bg-secondary: var(--paper-2);--color-bg-tertiary: #ffffff;--color-bg-surface: #ffffff;--color-bg-panel: rgba(10, 36, 21, .06);--color-text-primary: #0f172a;--color-text-secondary: rgba(15, 23, 42, .72);--color-text-tertiary: rgba(15, 23, 42, .52);--color-text-muted: rgba(15, 23, 42, .62);--color-border: rgba(15, 23, 42, .14);--color-border-light: rgba(15, 23, 42, .08);--color-border-dark: rgba(15, 23, 42, .22);--color-border-accent: rgba(10, 36, 21, .25);--color-success: #166534;--color-success-light: rgba(22, 101, 52, .14);--color-warning: #a16207;--color-warning-light: rgba(161, 98, 7, .14);--color-danger: #b91c1c;--color-danger-light: rgba(185, 28, 28, .14);--color-info: #0ea5e9;--color-deep-bg: var(--color-bg-primary);--color-deep-card: var(--color-bg-surface);--color-deep-ink: var(--color-text-primary);--color-deep-ink-muted: var(--color-text-secondary);--color-deep-grid: var(--color-border);--color-deep-grid-soft: var(--color-border-light);--shadow-default: 0 10px 26px rgba(2, 6, 23, .1);--shadow-medium: 0 12px 32px rgba(2, 6, 23, .12);--shadow-large: 0 18px 46px rgba(2, 6, 23, .16);--shadow-elevated: 0 28px 80px rgba(2, 6, 23, .22);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--space-4xl: 40px;--font-family-sans: system-ui, -apple-system, "Segoe UI", Inter, Roboto, Arial, sans-serif;--font-family-serif: Georgia, "Times New Roman", Times, serif;--font-family-mono: ui-monospace, "SF Mono", Monaco, "Cascadia Mono", "Roboto Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--sidebar-width: 260px;--topbar-height: 70px;--container-max-width: 1400px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--transition-bounce: .4s cubic-bezier(.34, 1.56, .64, 1);--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-toast: 1080}@media (prefers-color-scheme: dark){:root{--color-bg-primary: #071c10;--color-bg-secondary: #082214;--color-bg-tertiary: #0b2616;--color-bg-surface: #0f3320;--color-text-primary: #f1f5f9;--color-text-secondary: rgba(241, 245, 249, .78);--color-text-tertiary: rgba(241, 245, 249, .58);--color-text-muted: rgba(241, 245, 249, .68);--color-border: rgba(241, 245, 249, .14);--color-border-light: rgba(241, 245, 249, .08);--color-border-dark: rgba(241, 245, 249, .22);--color-border-accent: rgba(201, 164, 76, .28)}}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth}html:focus-within{scroll-behavior:smooth}body{min-height:100dvh;text-rendering:optimizeSpeed;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg-primary);color:var(--color-text-primary)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root,#__next{isolation:isolate}@media (prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{font-family:var(--font-family-sans);font-size:var(--text-sm);font-weight:var(--font-weight-normal);line-height:var(--leading-normal);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-serif);font-weight:var(--font-weight-bold);line-height:var(--leading-tight);color:var(--color-text-primary);margin-bottom:var(--space-md);letter-spacing:-.2px}h1{font-size:var(--text-3xl);font-weight:var(--font-weight-extrabold)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}h5{font-size:var(--text-base);font-family:var(--font-family-sans);font-weight:var(--font-weight-semibold)}h6{font-size:var(--text-sm);font-family:var(--font-family-sans);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}p{margin-bottom:var(--space-md);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}p:last-child{margin-bottom:0}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}a:focus-visible{outline:2px solid rgba(var(--color-primary-rgb),.55);outline-offset:2px;border-radius:var(--radius-sm)}ul,ol{margin-bottom:var(--space-md);padding-left:var(--space-xl)}li{margin-bottom:var(--space-xs)}li:last-child{margin-bottom:0}code{font-family:var(--font-family-mono);font-size:.92em;padding:.18em .38em;background-color:var(--color-bg-panel);border-radius:var(--radius-sm);color:var(--color-danger)}pre{font-family:var(--font-family-mono);padding:var(--space-md);background-color:var(--color-bg-panel);border:1px solid var(--color-border-light);border-radius:var(--radius-md);overflow-x:auto;margin-bottom:var(--space-md)}pre code{background-color:transparent;padding:0;color:inherit}blockquote{padding-left:var(--space-lg);border-left:3px solid var(--color-border-accent);margin-bottom:var(--space-md);font-style:italic;color:var(--color-text-secondary)}small{font-size:var(--text-xs);color:var(--color-text-tertiary)}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.font-light{font-weight:300}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.font-extrabold{font-weight:var(--font-weight-extrabold)}.leading-tight{line-height:var(--leading-tight)}.leading-snug{line-height:var(--leading-snug)}.leading-normal{line-height:var(--leading-normal)}.leading-relaxed{line-height:var(--leading-relaxed)}.leading-loose{line-height:2}.hidden{display:none!important}.visible{display:block!important}.inline{display:inline!important}.inline-block{display:inline-block!important}.flex{display:flex!important}.inline-flex{display:inline-flex!important}.grid{display:grid!important}.flex-col{flex-direction:column!important}.flex-row{flex-direction:row!important}.items-center{align-items:center!important}.items-start{align-items:flex-start!important}.items-end{align-items:flex-end!important}.items-baseline{align-items:baseline!important}.items-stretch{align-items:stretch!important}.justify-center{justify-content:center!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.justify-around{justify-content:space-around!important}.justify-evenly{justify-content:space-evenly!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-1{flex:1 1 0%!important}.flex-auto{flex:1 1 auto!important}.flex-none{flex:none!important}.gap-0{gap:0!important}.gap-1{gap:var(--space-xs)!important}.gap-2{gap:var(--space-sm)!important}.gap-3{gap:var(--space-md)!important}.gap-4{gap:var(--space-lg)!important}.gap-5{gap:var(--space-xl)!important}.gap-6{gap:var(--space-2xl)!important}.gap-8{gap:var(--space-3xl)!important}.grid-cols-1{grid-template-columns:repeat(1,1fr)!important}.grid-cols-2{grid-template-columns:repeat(2,1fr)!important}.grid-cols-3{grid-template-columns:repeat(3,1fr)!important}.grid-cols-4{grid-template-columns:repeat(4,1fr)!important}.grid-cols-5{grid-template-columns:repeat(5,1fr)!important}.grid-cols-6{grid-template-columns:repeat(6,1fr)!important}.grid-cols-7{grid-template-columns:repeat(7,1fr)!important}.grid-cols-8{grid-template-columns:repeat(8,1fr)!important}.grid-cols-9{grid-template-columns:repeat(9,1fr)!important}.grid-cols-10{grid-template-columns:repeat(10,1fr)!important}.grid-cols-11{grid-template-columns:repeat(11,1fr)!important}.grid-cols-12{grid-template-columns:repeat(12,1fr)!important}.col-span-1{grid-column:span 1!important}.col-span-2{grid-column:span 2!important}.col-span-3{grid-column:span 3!important}.col-span-4{grid-column:span 4!important}.col-span-5{grid-column:span 5!important}.col-span-6{grid-column:span 6!important}.col-span-7{grid-column:span 7!important}.col-span-8{grid-column:span 8!important}.col-span-9{grid-column:span 9!important}.col-span-10{grid-column:span 10!important}.col-span-11{grid-column:span 11!important}.col-span-12{grid-column:span 12!important}.col-span-full{grid-column:1 / -1!important}.m-0{margin:0!important}.m-1{margin:var(--space-xs)!important}.m-2{margin:var(--space-sm)!important}.m-3{margin:var(--space-md)!important}.m-4{margin:var(--space-lg)!important}.m-5{margin:var(--space-xl)!important}.m-6{margin:var(--space-2xl)!important}.m-auto{margin:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.p-0{padding:0!important}.p-1{padding:var(--space-xs)!important}.p-2{padding:var(--space-sm)!important}.p-3{padding:var(--space-md)!important}.p-4{padding:var(--space-lg)!important}.p-5{padding:var(--space-xl)!important}.p-6{padding:var(--space-2xl)!important}.w-full{width:100%!important}.w-screen{width:100vw!important}.h-full{height:100%!important}.h-screen{height:100vh!important}.min-w-0{min-width:0!important}.max-w-full{max-width:100%!important}.min-h-screen{min-height:100vh!important}.rounded-sm{border-radius:var(--radius-sm)!important}.rounded{border-radius:var(--radius-md)!important}.rounded-lg{border-radius:var(--radius-lg)!important}.rounded-xl{border-radius:var(--radius-xl)!important}.rounded-2xl{border-radius:var(--radius-2xl)!important}.rounded-full{border-radius:var(--radius-full)!important}.border{border-width:1px!important;border-style:solid!important}.border-primary{border-color:var(--color-primary)!important}.border-accent{border-color:var(--color-accent)!important}.border-success{border-color:var(--color-success)!important}.border-warning{border-color:var(--color-warning)!important}.border-danger{border-color:var(--color-danger)!important}.border-gray{border-color:var(--color-border)!important}.border-gray-light{border-color:var(--color-border-light)!important}.bg-primary{background-color:var(--color-primary)!important}.bg-primary-light{background-color:var(--color-primary-light)!important}.bg-accent{background-color:var(--color-accent)!important}.bg-success{background-color:var(--color-success)!important}.bg-warning{background-color:var(--color-warning)!important}.bg-danger{background-color:var(--color-danger)!important}.bg-surface{background-color:var(--color-bg-surface)!important}.bg-panel{background-color:var(--color-bg-panel)!important}.bg-secondary{background-color:var(--color-bg-secondary)!important}.bg-tertiary{background-color:var(--color-bg-tertiary)!important}.text-primary{color:var(--color-text-primary)!important}.text-secondary{color:var(--color-text-secondary)!important}.text-tertiary{color:var(--color-text-tertiary)!important}.text-muted{color:var(--color-text-muted)!important}.text-primary-color{color:var(--color-primary)!important}.text-accent{color:var(--color-accent)!important}.text-success{color:var(--color-success)!important}.text-warning{color:var(--color-warning)!important}.text-danger{color:var(--color-danger)!important}.text-white{color:#fff!important}.overflow-hidden{overflow:hidden!important}.overflow-auto{overflow:auto!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.static{position:static!important}.fixed{position:fixed!important}.absolute{position:absolute!important}.relative{position:relative!important}.sticky{position:sticky!important}.z-10{z-index:10!important}.z-20{z-index:20!important}.z-30{z-index:30!important}.z-40{z-index:40!important}.z-50{z-index:50!important}.shadow-none{box-shadow:none!important}.shadow{box-shadow:var(--shadow-default)!important}.shadow-lg{box-shadow:var(--shadow-large)!important}.cursor-pointer{cursor:pointer!important}.cursor-default{cursor:default!important}.cursor-not-allowed{cursor:not-allowed!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.btn{cursor:pointer;border:1px solid transparent;border-radius:10px;padding:9px 13px;font:inherit;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .12s ease,box-shadow .16s ease;font-weight:var(--font-weight-semibold);position:relative;overflow:hidden;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn--primary{background:color-mix(in srgb,var(--color-primary) 88%,#000 12%);color:#fffffff5;border-color:#c9a44c38;box-shadow:var(--shadow-default)}.btn--secondary{background:var(--color-bg-surface);color:var(--color-text-primary);border-color:var(--color-border-light)}.btn--icon{background:var(--color-bg-surface);border-color:var(--color-border-light);color:var(--color-text-primary);padding:7px;border-radius:10px;min-width:36px;min-height:36px}.btn--danger{background:color-mix(in srgb,var(--color-danger) 10%,transparent);border-color:color-mix(in srgb,var(--color-danger) 22%,var(--color-border-light));color:var(--color-danger)}.btn--sm{padding:6px 10px;font-size:var(--text-xs)}.btn--lg{padding:12px 20px;font-size:var(--text-base)}.card-action,.add-button,.neo-btn{cursor:pointer;border:1px solid transparent;border-radius:10px;padding:9px 13px;background:color-mix(in srgb,var(--color-primary) 88%,#000 12%);color:#fffffff5;border-color:#c9a44c38;box-shadow:var(--shadow-default);transition:background-color .16s ease,border-color .16s ease,transform .12s ease,box-shadow .16s ease}.neo-btn{background:var(--color-bg-surface);color:var(--color-text-primary);border-color:var(--color-border-light);box-shadow:none}.neo-btn.warn{background:color-mix(in srgb,var(--color-danger) 10%,transparent);border-color:color-mix(in srgb,var(--color-danger) 22%,var(--color-border-light));color:var(--color-danger)}.auth-btn{margin-top:6px;border:1px solid transparent;border-radius:12px;padding:10px 13px;font-size:var(--text-sm);font-weight:var(--font-weight-semibold);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .12s ease,box-shadow .16s ease,filter .16s ease,border-color .16s ease}.auth-btn-primary{background:linear-gradient(90deg,rgba(201,164,76,.18),color-mix(in srgb,var(--color-primary) 86%,#000 14%));color:#fffffff5;border-color:#c9a44c47;box-shadow:0 14px 30px #0206172e}.quick-action-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:12px;cursor:pointer;transition:transform .12s ease,border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.focus-toggle{position:fixed;bottom:20px;right:20px;background:color-mix(in srgb,var(--color-primary) 88%,#000 12%);color:#fffffff5;border:1px solid rgba(201,164,76,.22);border-radius:50%;width:50px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-default);z-index:100}.mini-icon{border:1px solid var(--color-border-light);background:var(--color-bg-surface);border-radius:10px;padding:4px 6px;cursor:pointer}.btn-mini{border-radius:12px;padding:10px 12px;font-weight:var(--font-weight-bold);border:1px solid var(--color-border-light);background:var(--color-bg-surface);color:var(--color-text-primary);cursor:pointer}.close-modal{background:var(--color-bg-surface);border:1px solid var(--color-border-light);color:var(--color-text-primary);border-radius:10px;padding:6px 10px;cursor:pointer}.schedule-toolbar .btn{background:var(--color-bg-surface);color:var(--color-text-primary);border:1px solid var(--color-border-light);border-radius:10px;padding:6px 10px;font-size:var(--text-xs);cursor:pointer}.event-actions .btn-edit,.event-actions .btn-delete{background:var(--color-bg-surface);border:1px solid var(--color-border-light);color:var(--color-text-primary);padding:4px 6px;border-radius:9px;cursor:pointer}.class-actions button{background:var(--color-bg-surface);border:1px solid var(--color-border-light);padding:7px 9px;border-radius:10px;color:var(--color-text-primary)}.assignment-actions .btn-icon{background:var(--color-bg-surface);border:1px solid var(--color-border-light);color:var(--color-text-primary);padding:6px 8px;border-radius:10px;cursor:pointer}.note-actions .btn-edit,.note-actions .btn-delete{background:var(--color-bg-surface);border:1px solid var(--color-border-light);padding:7px;border-radius:10px}.modal-footer .btn-primary,.modal-footer .btn-secondary{padding:9px 13px;border-radius:10px;font-weight:var(--font-weight-semibold)}.btn:hover:not(:disabled),.card-action:hover:not(:disabled),.add-button:hover:not(:disabled),.neo-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 28px #02061724;border-color:#c9a44c47}.btn--secondary:hover:not(:disabled),.quick-action-btn:hover:not(:disabled),.schedule-toolbar .btn:hover:not(:disabled),.event-actions .btn-edit:hover:not(:disabled),.assignment-actions .btn-icon:hover:not(:disabled),.class-actions button:hover:not(:disabled),.note-actions .btn-edit:hover:not(:disabled),.note-actions .btn-delete:hover:not(:disabled),.close-modal:hover:not(:disabled){border-color:#0a241538;background:var(--color-bg-tertiary);transform:translateY(-1px);box-shadow:0 12px 26px #0206171a}.event-actions .btn-delete:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-danger) 30%,var(--color-border-light));background:color-mix(in srgb,var(--color-danger) 10%,transparent)}.auth-btn-primary:hover:not(:disabled){filter:brightness(1.03);transform:translateY(-1px)}.auth-btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 10px 22px #02061724}.btn:disabled,.card-action:disabled,.add-button:disabled,.neo-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;filter:none!important;box-shadow:none!important}.btn:focus-visible,.card-action:focus-visible,.add-button:focus-visible{outline:2px solid rgba(201,164,76,.75);outline-offset:2px}.btn:active:not(:disabled),.card-action:active:not(:disabled){transform:translateY(0);transition-duration:50ms}.auth-spinner{display:none;width:16px;height:16px;border-radius:var(--radius-full);border:2px solid rgba(255,255,255,.22);border-top-color:#ffffffeb;animation:authSpin .8s linear infinite}.btn i,.card-action i,.auth-btn i{display:inline-flex;align-items:center;justify-content:center}.btn-group{display:inline-flex;gap:var(--space-xs)}.btn-group .btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .btn:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.btn--full{width:100%;display:flex}.card{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-default);overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:border-color .16s ease,box-shadow .16s ease,transform .12s ease}.card:hover{transform:translateY(-1px);border-color:#0a241538;box-shadow:0 14px 32px #0206171f}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border-bottom:1px solid var(--color-border-light);background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.card-title{font-weight:var(--font-weight-semibold);font-size:var(--text-base);color:var(--color-text-primary);margin:0}.card-actions{display:flex;gap:8px;align-items:center}.card-content{padding:12px 14px;flex:1}.card-content:only-child{padding:16px 18px}.card-footer{padding:12px 14px;border-top:1px solid var(--color-border-light);background:var(--color-bg-secondary)}.card--elevated{box-shadow:var(--shadow-large)}.card--flat{box-shadow:none;border:1px solid var(--color-border-light)}.card--bordered{border:2px solid var(--color-border-light)}.card-schedule{background:var(--color-bg-surface);color:var(--color-text-primary);border:1px solid var(--color-border-light);border-radius:14px;box-shadow:var(--shadow-default);overflow:hidden}.card-schedule .card-header{background:color-mix(in srgb,var(--color-accent) 10%,transparent);border-bottom:1px solid var(--color-border-light);padding:12px 14px}.card-schedule .card-title{font-family:var(--font-family-serif);font-weight:800;letter-spacing:.02em}.stat-card{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:11px;text-align:center}.stat-icon{font-size:18px;opacity:.9;color:var(--color-primary)}.stat-value{font-family:var(--font-family-serif);font-size:22px;font-weight:var(--font-weight-bold);margin:6px 0;color:var(--color-text-primary)}.stat-label{color:var(--color-text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em}.note-card{border:1px solid var(--color-border-light);border-radius:12px;padding:12px;background:var(--color-bg-surface);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .12s ease}.note-card:hover{transform:translateY(-1px);border-color:#0a241538;box-shadow:0 12px 26px #0206171a}.note-title{font-family:var(--font-family-serif);font-weight:800;font-size:var(--text-base);color:var(--color-text-primary);flex:1;min-width:0}.note-body{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.55;margin-bottom:8px;white-space:pre-wrap;word-break:break-word}.task-card{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:1rem;margin-bottom:.75rem;display:flex;align-items:flex-start;transition:border-color .16s ease,box-shadow .16s ease,transform .12s ease;box-shadow:none}.task-card:hover{transform:translateY(-1px);border-color:#0a241538;box-shadow:0 12px 26px #0206171a}.task-card.completed{opacity:.85;background:var(--color-bg-secondary)}.task-card.completed .task-title{text-decoration:line-through}.goal-card{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:16px;overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease,transform .12s ease;box-shadow:none;position:relative}.goal-card:hover{transform:translateY(-2px);border-color:#0a241538;box-shadow:0 16px 34px #0206171f}.goal-card.completed{opacity:.96;background:color-mix(in srgb,var(--color-success) 8%,var(--color-bg-surface))}.goal-card.completed:before{content:"";position:absolute;top:0;right:0;width:60px;height:60px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-success) 75%,#000 25%) 0%,var(--color-success) 100%);clip-path:polygon(100% 0,0 0,100% 100%)}.goal-card.completed:after{content:"✓";position:absolute;top:8px;right:8px;color:#fffffff5;font-size:1rem;font-weight:700;z-index:1}.goal-card-footer{padding:1.25rem;border-top:1px solid var(--color-border-light);background:var(--color-bg-secondary)}.auth-card{background:color-mix(in srgb,var(--color-bg-surface) 92%,transparent);border:1px solid var(--color-border-light);border-radius:16px;box-shadow:var(--shadow-default);overflow:hidden;transform-origin:50% 50%;opacity:0;transform:translateY(18px) scale(.98);animation:authCardIn .65s cubic-bezier(.22,.8,.35,1) forwards}.progress-circle{width:80px;height:80px;border-radius:50%;background:conic-gradient(var(--color-primary) 0% 88%,var(--color-border) 88% 100%);display:flex;align-items:center;justify-content:center;position:relative}.progress-circle-inner{width:70px;height:70px;border-radius:50%;background:var(--color-bg-surface);display:flex;align-items:center;justify-content:center;flex-direction:column}.progress-circle-value{font-size:18px;font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.progress-circle-label{font-size:10px;color:var(--color-text-secondary)}.timer-card,.insights-card,.risk-item,.class-item{border:1px solid var(--color-border-light);border-radius:12px;padding:12px;background:var(--color-bg-surface)}.timer-header{font-weight:var(--font-weight-semibold);margin-bottom:8px;color:var(--color-text-primary)}.insights-header{display:flex;justify-content:space-between;align-items:center;font-weight:var(--font-weight-semibold);margin-bottom:6px}.risk-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.event-card{background:color-mix(in srgb,var(--color-accent) 12%,transparent);border:1px solid rgba(201,164,76,.28);border-left:3px solid rgba(201,164,76,.75);border-radius:12px;padding:7px 9px;margin:6px 0;box-shadow:none;max-width:100%;overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease,transform .12s ease}.event-card:hover{border-color:#c9a44c73;box-shadow:0 12px 26px #0206171a;transform:translateY(-1px)}.assignment-item{display:grid;grid-template-columns:36px 1fr auto;align-items:start;gap:12px;background:color-mix(in srgb,var(--color-accent) 10%,transparent);border:1px solid rgba(201,164,76,.22);border-left:3px solid rgba(10,36,21,.65);border-radius:12px;padding:10px 12px;box-shadow:none;transition:border-color .16s ease,transform .12s ease,box-shadow .16s ease,background-color .16s ease}.assignment-item:hover{border-color:#0a241538;box-shadow:0 12px 26px #0206171a}.history-item{background:color-mix(in srgb,var(--color-accent) 9%,transparent);border:1px solid rgba(201,164,76,.22);border-left:3px solid rgba(10,36,21,.65);border-radius:12px;padding:11px 13px;box-shadow:none;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,transform .12s ease}.history-item:hover{border-color:#0a241538;box-shadow:0 12px 26px #0206171a}.template-card,.milestone-item{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:16px}.template-card{padding:1.5rem;transition:border-color .16s ease,transform .12s ease,box-shadow .16s ease;display:flex;align-items:flex-start;gap:1rem;cursor:pointer;position:relative;overflow:hidden}.template-card:hover{border-color:#0a241538;transform:translateY(-2px);box-shadow:0 16px 34px #0206171f}.milestone-item{display:flex;align-items:center;gap:1rem;padding:1rem;margin-bottom:.75rem;transition:border-color .16s ease,transform .12s ease,box-shadow .16s ease;position:relative}.milestone-item:hover{border-color:#0a241538;transform:translate(4px);box-shadow:0 12px 26px #0206171a}.milestone-item.completed{background:color-mix(in srgb,var(--color-success) 10%,transparent);border-color:color-mix(in srgb,var(--color-success) 24%,var(--color-border-light))}.empty-state{display:grid;place-items:center;gap:8px;padding:16px;color:var(--color-text-secondary)}.empty-state i{opacity:.85;font-size:24px;color:var(--color-text-tertiary)}.empty-state p{margin:0;text-align:center;font-size:var(--text-sm)}.card--no-padding .card-content{padding:0}.card--no-shadow{box-shadow:none}.card--interactive{cursor:pointer}.card--interactive:hover{border-color:#0a241538}.card--horizontal{flex-direction:row}.card--horizontal .card-content{flex:1}.card--with-image .card-header{padding:0;border-bottom:none}.card--with-image img{width:100%;height:180px;object-fit:cover}.cards-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}@media (max-width: 768px){.card{border-radius:12px}.card-header,.card-content,.card-footer{padding:12px}.cards-grid{grid-template-columns:1fr;gap:12px}}input,select,textarea,button{font-family:inherit;font-size:inherit;line-height:inherit}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input[type=search],input[type=tel],input[type=url],select,textarea{width:100%;background:var(--color-bg-surface);color:var(--color-text-primary);border:1px solid var(--color-border-light);border-radius:12px;padding:10px 12px;outline:none;transition:border-color .18s ease,box-shadow .18s ease,transform .12s ease;font-size:var(--text-sm)}input:focus,select:focus,textarea:focus{border-color:#c9a44c8c;box-shadow:0 0 0 3px #c9a44c24}input:disabled,select:disabled,textarea:disabled{background:var(--color-bg-secondary);color:var(--color-text-tertiary);cursor:not-allowed;opacity:.75}::placeholder{color:var(--color-text-tertiary);opacity:.75}.mini-input{max-width:120px}.neo-input,.neo-select,.add-input,.auth-input,.modal-input{width:100%;background:var(--color-bg-surface);color:var(--color-text-primary);border:1px solid var(--color-border-light);border-radius:12px;padding:10px 12px;outline:none}.auth-input{background:color-mix(in srgb,var(--color-bg-surface) 88%,transparent);border:1px solid var(--color-border-light);border-radius:14px;padding:10px 12px;color:var(--color-text-primary);transition:border-color .18s ease,box-shadow .18s ease,transform .12s ease}.auth-input::placeholder{color:var(--color-text-tertiary)}.auth-input:focus{outline:none;border-color:#c9a44c99;box-shadow:0 0 0 3px #c9a44c24,0 12px 26px #0206171f;transform:translateY(-1px)}.modal-input{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:10px 12px;font-size:var(--text-sm)}.modal-input:focus{outline:none;border-color:#c9a44c8c;box-shadow:0 0 0 3px #c9a44c24}.task-input{flex:1;background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:10px 12px;color:var(--color-text-primary)}.gpa-input,.gpa-select{width:100%;padding:10px 12px;border:1px solid var(--color-border-light);border-radius:12px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:var(--text-sm)}.gpa-input[disabled]{background:var(--color-bg-secondary)}.weight-input{width:100%;padding:10px 36px 10px 12px;border:1px solid var(--color-border-light);border-radius:12px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:15px;font-weight:var(--font-weight-medium);transition:border-color .18s ease,box-shadow .18s ease}.weight-input:focus{outline:none;border-color:#c9a44c8c;box-shadow:0 0 0 3px #c9a44c24}.weight-input.valid{border-color:var(--color-success)}.weight-input.invalid{border-color:var(--color-danger)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%238a8f98' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .7rem center;background-repeat:no-repeat;background-size:1.2em 1.2em;padding-right:2.5rem}textarea{min-height:110px;resize:vertical;font-family:inherit;line-height:1.5}.form-group{margin-bottom:16px}.form-group:last-child{margin-bottom:0}.input-label,.form-label,.auth-label,.modal-label{display:block;font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:6px;font-weight:var(--font-weight-medium)}.hint{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:4px;display:block}.checkbox-label,.radio-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:var(--text-sm);-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox],.radio-label input[type=radio]{width:16px;height:16px;margin:0}.task-checkbox{position:relative;width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);cursor:pointer}.task-checkbox.checked{background:color-mix(in srgb,var(--color-success) 18%,transparent);border-color:color-mix(in srgb,var(--color-success) 28%,var(--color-border-light))}.assignment-check{width:26px;height:26px;border-radius:50%;border:2px solid rgba(201,164,76,.55);display:flex;align-items:center;justify-content:center;cursor:pointer;margin-top:2px;background:var(--color-bg-surface)}.milestone-checkbox input{opacity:0;position:absolute;width:100%;height:100%;cursor:pointer;z-index:1}.milestone-checkbox .checkmark{display:block;width:24px;height:24px;border:2px solid color-mix(in srgb,var(--color-text-tertiary) 70%,transparent);border-radius:8px;position:relative;transition:all .2s ease;background:var(--color-bg-surface)}.milestone-checkbox input:checked+.checkmark:after{content:"✓";position:absolute;color:#fffffff5;font-size:14px;font-weight:700;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes checkmarkPop{0%{transform:scale(.86)}60%{transform:scale(1.08)}to{transform:scale(1)}}.form-grid{display:grid;gap:10px}.form-grid.two-col{grid-template-columns:1fr 1fr}.form-grid.three-col{grid-template-columns:1fr 1fr 1fr}.add-item-form,.task-input-container{display:flex;gap:10px;margin-top:12px}.timer-row{display:grid;gap:6px;margin-top:10px}.weight-row{display:grid;grid-template-columns:minmax(220px,1fr) 360px;gap:18px;align-items:center}.weight-controls{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:start;justify-content:end}.weight-control{min-width:0}.weight-input-wrapper{width:100%}.weight-unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);font-size:14px;font-weight:var(--font-weight-medium)}.weight-validation{display:flex;align-items:center;gap:8px;padding:10px 12px;background:color-mix(in srgb,var(--color-danger) 10%,transparent);border-radius:12px;font-size:13px;color:var(--color-danger);margin-top:12px;border:1px solid color-mix(in srgb,var(--color-danger) 18%,var(--color-border-light))}.auth-tabs{display:inline-flex;gap:8px;padding:4px;margin-bottom:12px;background:color-mix(in srgb,var(--color-bg-secondary) 72%,transparent);border-radius:999px;border:1px solid var(--color-border-light)}.auth-tab{position:relative;flex:1;padding:7px 14px;border-radius:999px;border:none;background:transparent;color:var(--color-text-secondary);font-size:13px;cursor:pointer;transition:color .2s ease,background-color .2s ease}.auth-tab.active{color:#fffffff5}.auth-tab.active:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:color-mix(in srgb,var(--color-primary) 88%,#000 12%);z-index:-1;border:1px solid rgba(201,164,76,.22);box-shadow:0 12px 26px #02061729}.search-form{position:relative}.search-input{padding-left:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a8f98' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 12px center;background-size:16px}.file-input{padding:10px;border:2px dashed var(--color-border);background:var(--color-bg-secondary);text-align:center;cursor:pointer;border-radius:12px}.file-input:hover{border-color:#c9a44c73;background:var(--color-bg-tertiary)}input[type=range]{height:6px;background:var(--color-border);border-radius:3px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-primary);cursor:pointer}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:none}.field-with-icon{position:relative}.field-with-icon i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary)}.field-with-icon input{padding-left:36px}input.error,select.error,textarea.error{border-color:var(--color-danger)}.error-message{font-size:var(--text-xs);color:var(--color-danger);margin-top:4px}input.success,select.success,textarea.success{border-color:var(--color-success)}input.warning,select.warning,textarea.warning{border-color:var(--color-warning)}@media (max-width: 768px){.form-grid.two-col,.form-grid.three-col,.weight-row{grid-template-columns:1fr}.weight-controls{grid-template-columns:1fr;justify-content:start}.add-item-form,.auth-tabs{flex-direction:column}.auth-tab{width:100%}}@media print{input,select,textarea{border:1px solid #000;background:none;box-shadow:none}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:none;place-items:center;background:rgba(2,6,23,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal-backdrop);padding:16px;opacity:1;transition:opacity .2s ease}.modal[style*="display: none"]{display:none!important}.modal-content{width:100%;max-width:720px;background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:16px;box-shadow:0 30px 80px #02061759;overflow:hidden;z-index:var(--z-modal);position:relative;animation:modalSlideIn .22s ease}.modal-content.wide{max-width:980px}.event-details-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}.modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(2,6,23,.65);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-header{padding:12px 14px;border-bottom:1px solid var(--color-border-light);background:color-mix(in srgb,var(--color-accent) 10%,transparent);display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:18px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.modal-body{padding:14px;max-height:70vh;overflow-y:auto}.modal-footer{padding:12px 14px;border-top:1px solid var(--color-border-light);background:var(--color-bg-secondary);display:flex;gap:10px;justify-content:flex-end}.close-modal{background:var(--color-bg-surface);border:1px solid var(--color-border-light);color:var(--color-text-primary);border-radius:10px;padding:6px 10px;cursor:pointer;font-size:14px;transition:background-color .16s ease,border-color .16s ease,transform .12s ease}.close-modal:hover{background:var(--color-bg-tertiary);border-color:#c9a44c4d;transform:translateY(-1px)}.modal-close{background:transparent;border:none;font-size:18px;color:var(--color-text-tertiary);cursor:pointer;padding:4px;border-radius:8px;transition:background-color .16s ease,color .16s ease;line-height:1}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.modal-label{display:block;font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:6px}.event-detail-header{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--color-border-light)}.detail-title{font-size:22px;font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:10px;line-height:1.3}.detail-date{font-size:14px;color:var(--color-text-secondary);margin-bottom:10px}.detail-time{font-size:14px;color:var(--color-primary);font-weight:var(--font-weight-semibold);display:flex;align-items:center;gap:8px;margin-bottom:8px}.event-detail-content{margin-bottom:22px}.detail-section{margin-bottom:18px}.detail-label{font-size:var(--text-xs);text-transform:uppercase;color:var(--color-text-secondary);letter-spacing:.5px;margin-bottom:8px;display:flex;align-items:center;gap:6px}.detail-value{font-size:14px;color:var(--color-text-primary);line-height:1.55;padding-left:18px}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:14px;border-top:1px solid var(--color-border-light)}.modal-sm .modal-content{max-width:400px}.modal-lg .modal-content{max-width:900px}.modal-xl .modal-content{max-width:1200px}.modal-full .modal-content{max-width:95vw;max-height:95vh}.modal-top .modal-content{margin-top:20px;margin-bottom:auto}.modal-bottom .modal-content{margin-top:auto;margin-bottom:20px}.modal-center .modal-content{margin:auto}.modal-backdrop-blur .modal{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-backdrop-dark .modal{background:rgba(2,6,23,.78)}.modal-backdrop-light .modal{background:rgba(255,255,255,.72)}.modal-scrollable .modal-body{overflow-y:auto}.modal-close-top-right{position:absolute;top:16px;right:16px;z-index:10}.modal-close-top-left{position:absolute;top:16px;left:16px;z-index:10}.modal-with-image .modal-header{padding:0;border-bottom:none}.modal-with-image img{width:100%;height:200px;object-fit:cover}.modal-loading .modal-content{position:relative;min-height:200px}.modal-loading:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border:3px solid var(--color-border-light);border-top-color:var(--color-primary);border-radius:50%;animation:modalSpin 1s linear infinite}@keyframes modalSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}.modal-tabs{display:flex;border-bottom:1px solid var(--color-border-light);background:var(--color-bg-secondary)}.modal-tab{flex:1;padding:12px 16px;text-align:center;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease;border-bottom:3px solid transparent}.modal-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.modal-tab:hover:not(.active){background:var(--color-bg-tertiary)}.modal-confirmation .modal-content{max-width:400px}.modal-confirmation .modal-body{text-align:center;padding:28px}.modal-confirmation .modal-footer{justify-content:center}.modal-with-sidebar{display:flex;max-height:80vh}.modal-sidebar{width:250px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border-light);padding:16px;overflow-y:auto}.modal-main{flex:1;padding:16px;overflow-y:auto}@media (max-width: 768px){.modal{padding:10px}.modal-content{max-width:95%;margin:10px}.modal-actions{flex-direction:column}.modal-actions .btn-primary,.modal-actions .btn-secondary{width:100%}.grid-2,.grid-3{grid-template-columns:1fr}.modal-with-sidebar{flex-direction:column}.modal-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--color-border-light)}}@media (max-width: 480px){.modal-header,.modal-body,.modal-footer{padding:12px}.detail-title{font-size:20px}}@media print{.modal{position:static;background:white;display:block!important}.modal-content{box-shadow:none;border:1px solid #000}.modal-close,.close-modal{display:none}}.modal:focus{outline:none}.modal-content:focus{outline:2px solid rgba(201,164,76,.75);outline-offset:2px}table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:12px;font-size:var(--text-sm)}th,td{padding:9px 11px;border-bottom:1px solid var(--color-border-light);text-align:left;vertical-align:middle}thead th{font-size:var(--text-xs);color:var(--color-text-secondary);background:color-mix(in srgb,var(--color-accent) 12%,transparent);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.1em;border-bottom:2px solid var(--color-border-light);position:sticky;top:0;z-index:10}tbody tr{transition:background-color .18s ease}tbody tr:hover{background-color:color-mix(in srgb,var(--color-bg-tertiary) 70%,transparent)}tbody tr:last-child td{border-bottom:none}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;background:var(--color-bg-surface);color:var(--color-text-primary);border:1px solid var(--color-border-light);border-radius:12px;overflow:hidden}.schedule-table thead th{position:sticky;top:0;background:color-mix(in srgb,var(--color-accent) 14%,transparent);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;padding:9px 8px;border-bottom:1px solid var(--color-border-light);z-index:2}.time-group-header td{background:var(--color-bg-secondary);color:var(--color-text-secondary);border-top:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light);font-weight:var(--font-weight-bold)}.time-group-label{font-weight:var(--font-weight-bold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em}.time-slot{color:var(--color-text-tertiary);font-weight:var(--font-weight-semibold);font-feature-settings:"tnum" 1;white-space:nowrap}.day-cell{min-height:60px;background:color-mix(in srgb,var(--color-bg-primary) 40%,var(--color-bg-surface));transition:background .15s ease}.day-cell:hover{background:color-mix(in srgb,rgba(201,164,76,.18) 55%,var(--color-bg-surface))}.is-today{background:color-mix(in srgb,rgba(201,164,76,.2) 60%,var(--color-bg-surface));outline:1px solid rgba(201,164,76,.3)}.now-line:after{content:"";position:absolute;left:0;right:0;top:calc(50% - 1px);height:2px;background:rgba(201,164,76,.85);opacity:.7}.grades-table{border:1px solid var(--color-border-light);border-radius:12px;overflow:hidden}.grades-header,.table-header{display:grid;grid-template-columns:1.5fr repeat(3,1fr) 1fr;gap:0;padding:9px 11px;background:color-mix(in srgb,var(--color-accent) 12%,transparent);border-bottom:1px solid var(--color-border-light);font-size:var(--text-xs);color:var(--color-text-secondary)}.table-row,.grades-row{display:grid;grid-template-columns:1.5fr repeat(3,1fr) 1fr;gap:0;padding:9px 11px;border-bottom:1px solid var(--color-border-light);align-items:center}.course-name{font-weight:var(--font-weight-semibold)}.grade-table th,.grade-table td{padding:10px 12px;border-bottom:1px solid var(--color-border-light)}.grade-table th{background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-text-secondary);font-size:var(--text-xs)}.gpa-ops-table{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:14px;overflow:hidden}.gpa-ops-table-head{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:12px;padding:16px 18px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-light);font-size:13px;font-weight:var(--font-weight-extrabold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.1em}.gpa-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:12px;padding:16px 18px;align-items:center;border-top:1px solid var(--color-border-light)}.gpa-row:hover{background:var(--color-bg-tertiary)}.gpa-course{font-weight:var(--font-weight-bold);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-table th{background:color-mix(in srgb,var(--color-accent) 10%,transparent);padding:.75rem;text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);border-bottom:1px solid var(--color-border-light)}.history-table td{padding:.75rem;border-bottom:1px solid var(--color-border-light)}.history-term-summary{background:var(--color-bg-secondary);font-weight:var(--font-weight-bold)}.ev-cell{vertical-align:top;padding:6px;min-width:110px}.ev-stack{display:flex;flex-direction:column;gap:6px}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.schedule-table th:first-child,.schedule-table td:first-child{position:sticky;left:0;z-index:1;background:color-mix(in srgb,var(--color-accent) 12%,var(--color-bg-surface))}@media (max-width: 768px){.grade-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.grade-table th,.grade-table td{min-width:120px}.gpa-ops-table-head,.gpa-row{grid-template-columns:1.6fr 1fr 1fr;row-gap:8px}}.table-striped tbody tr:nth-child(odd){background-color:#ffffff08}.table-bordered th,.table-bordered td{border:1px solid var(--color-border-light)}.table-hover tbody tr:hover{background-color:var(--color-bg-tertiary)}.table-sm th,.table-sm td{padding:6px 8px;font-size:var(--text-xs)}.table-lg th,.table-lg td{padding:14px 16px;font-size:var(--text-base)}caption{caption-side:bottom;padding:8px;color:var(--color-text-secondary);font-size:var(--text-xs);text-align:center}.table-fixed-header{display:block;overflow-y:auto;max-height:400px}.table-fixed-header thead{position:sticky;top:0;z-index:10}.sidebar{background:linear-gradient(to bottom,color-mix(in srgb,var(--color-accent) 14%,transparent),color-mix(in srgb,var(--color-accent) 6%,transparent)),var(--color-bg-secondary);border-right:1px solid var(--color-border-light);padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto;position:relative}.logo{display:flex;align-items:center;gap:10px;color:var(--color-text-primary);margin:6px 6px 14px}.logo i{color:#c9a44ceb;font-size:18px}.logo h1{margin:0;font-size:14px;letter-spacing:.12em;font-weight:var(--font-weight-bold);text-transform:uppercase;color:var(--color-text-primary)}.nav-section{margin:18px 6px}.nav-title{color:var(--color-text-secondary);font-size:var(--text-xs);text-transform:uppercase;margin:6px 10px 8px;font-weight:var(--font-weight-semibold);letter-spacing:.1em}.nav-item{position:relative;display:flex;align-items:center;gap:10px;color:var(--color-text-primary);text-decoration:none;padding:9px 11px;border-radius:12px;transition:background-color .16s ease,border-color .16s ease,transform .12s ease,color .16s ease;border:1px solid transparent;cursor:pointer;background:rgba(255,255,255,.03)}.nav-item i{width:18px;text-align:center;opacity:.85;font-size:14px;color:#c9a44cd9}.nav-item:hover{background:rgba(255,255,255,.06);border-color:#c9a44c24;transform:translateY(-1px)}.nav-item.active{background:rgba(201,164,76,.14);border-color:#c9a44c3d;font-weight:var(--font-weight-semibold)}.nav-item.active i{opacity:1}.nav-badge{margin-left:auto;background:color-mix(in srgb,var(--color-primary) 88%,#000 12%);color:#fffffff5;font-size:11px;padding:2px 6px;border-radius:10px;font-weight:var(--font-weight-semibold);min-width:20px;text-align:center;border:1px solid rgba(201,164,76,.18)}.nav-submenu{margin-left:24px;margin-top:4px;border-left:2px solid var(--color-border-light);padding-left:12px}.nav-subitem{padding:6px 8px;font-size:var(--text-xs);color:var(--color-text-secondary);text-decoration:none;border-radius:8px;transition:background-color .16s ease,color .16s ease}.nav-subitem:hover{background:rgba(255,255,255,.06);color:var(--color-text-primary)}.nav-subitem.active{background:rgba(201,164,76,.12);color:var(--color-text-primary);font-weight:var(--font-weight-medium);border:1px solid rgba(201,164,76,.18)}.top-bar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;background:color-mix(in srgb,var(--color-bg-surface) 78%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--color-border-light)}.user-info{display:flex;align-items:center;gap:10px;margin-left:auto;text-align:right}.user-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.user-status{font-size:var(--text-xs);color:var(--color-text-secondary)}.date-time-display{display:flex;align-items:center;gap:12px;margin-right:16px}.date,.time{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.auth-logo-icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:rgba(201,164,76,.18);border:1px solid rgba(201,164,76,.28);color:#0a2415eb;box-shadow:0 12px 26px #0206171f}.auth-title{margin:0;font-size:20px;letter-spacing:.09em;text-transform:uppercase;font-weight:var(--font-weight-bold)}.auth-subtitle{margin:4px 0 0;font-size:13px;color:var(--color-text-secondary)}.auth-shell{width:100%;max-width:520px;position:relative;z-index:2}.auth-head{padding:18px 18px 10px;background:color-mix(in srgb,var(--color-accent) 12%,transparent);border-bottom:1px solid rgba(201,164,76,.16)}.auth-mark{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(201,164,76,.16);border:1px solid rgba(201,164,76,.28);color:#0a2415eb}.breadcrumbs{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:var(--text-sm)}.breadcrumb-item{color:var(--color-text-secondary);text-decoration:none;display:flex;align-items:center;gap:8px}.breadcrumb-item:hover{color:var(--color-primary)}.breadcrumb-item.active{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.breadcrumb-separator{color:var(--color-border);opacity:.7}.tabs{display:flex;border-bottom:1px solid var(--color-border-light);margin-bottom:16px}.tab{padding:12px 20px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-medium);border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease,background-color .2s ease;white-space:nowrap}.tab:hover{color:var(--color-primary)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 12px 0}.auth-tab{border:1px solid var(--color-border-light);background:var(--color-bg-surface);color:var(--color-text-primary);padding:10px 12px;border-radius:12px;font-weight:var(--font-weight-bold);cursor:pointer;text-align:center}.auth-tab.is-active{border-color:#c9a44c73;background:rgba(201,164,76,.14)}.pagination{display:flex;align-items:center;gap:8px;justify-content:center;margin-top:20px}.page-item{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;border:1px solid var(--color-border-light);border-radius:10px;background:var(--color-bg-surface);color:var(--color-text-primary);text-decoration:none;font-size:var(--text-sm);transition:border-color .2s ease,color .2s ease,background-color .2s ease}.page-item:hover:not(.disabled){border-color:#c9a44c73;color:var(--color-text-primary);background:var(--color-bg-tertiary)}.page-item.active{background:color-mix(in srgb,var(--color-primary) 88%,#000 12%);border-color:#c9a44c38;color:#fffffff5;font-weight:var(--font-weight-semibold)}.page-item.disabled{opacity:.5;cursor:not-allowed}.steps{display:flex;justify-content:space-between;margin-bottom:32px;position:relative}.steps:before{content:"";position:absolute;top:16px;left:0;right:0;height:2px;background:var(--color-border);z-index:1}.step{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px}.step-number{width:32px;height:32px;border-radius:50%;background:var(--color-bg-surface);border:2px solid var(--color-border-light);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.step.active .step-number{background:color-mix(in srgb,var(--color-primary) 88%,#000 12%);border-color:#c9a44c38;color:#fffffff5}.step.completed .step-number{background:var(--color-success);border-color:var(--color-success);color:#fffffff5}.step-label{font-size:var(--text-xs);color:var(--color-text-secondary);text-align:center}.step.active .step-label{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.sidebar-footer{position:absolute;left:16px;right:16px;bottom:16px;width:auto;z-index:5;padding-top:16px;border-top:1px solid var(--color-border-light)}@media (max-width: 780px){.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--color-border-light);padding:12px}.nav-item{padding:8px 10px}.top-bar{flex-wrap:wrap;padding:10px 12px}.user-info{order:3;width:100%;justify-content:flex-end;margin-top:8px}.date-time-display{margin-right:0;font-size:var(--text-xs)}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{padding:10px 16px;font-size:var(--text-xs)}}@media (max-width: 480px){.logo h1{font-size:14px}.nav-item{font-size:var(--text-xs)}.auth-title{font-size:18px}.steps{gap:4px}.step-label{font-size:10px}}.nav-item:focus-visible,.tab:focus-visible,.auth-tab:focus-visible{outline:2px solid rgba(201,164,76,.75);outline-offset:2px;border-radius:8px}.nav-icons-only .nav-item{justify-content:center;padding:10px}.nav-icons-only .nav-item span{display:none}.nav-icons-only .nav-title{text-align:center}.nav-item.has-notification:after{content:"";position:absolute;top:8px;right:8px;width:8px;height:8px;background:var(--color-danger);border-radius:50%;border:2px solid var(--color-bg-secondary)}.nav-collapsible .nav-section{cursor:pointer}.nav-collapsible .nav-section:after{content:"›";margin-left:auto;transition:transform .3s ease}.nav-collapsible .nav-section.collapsed:after{transform:rotate(90deg)}.nav-collapsible .nav-submenu{max-height:0;overflow:hidden;transition:max-height .3s ease}.nav-collapsible .nav-section:not(.collapsed) .nav-submenu{max-height:500px}.badge,.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-border-light);background:var(--color-bg-surface);padding:2px 8px;border-radius:999px;font-size:var(--text-xs);font-weight:var(--font-weight-medium);white-space:nowrap;vertical-align:middle}.badge-sm,.chip-sm{padding:1px 6px;font-size:10px}.badge-lg,.chip-lg{padding:4px 12px;font-size:var(--text-sm)}.badge-primary,.chip-primary{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 22%,var(--color-border-light))}.badge-secondary,.chip-secondary{background:var(--color-bg-secondary);color:var(--color-text-secondary);border-color:var(--color-border-light)}.badge-success,.chip-success{background:color-mix(in srgb,var(--color-success) 12%,transparent);color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 22%,var(--color-border-light))}.badge-warning,.chip-warning{background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 22%,var(--color-border-light))}.badge-danger,.chip-danger{background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 22%,var(--color-border-light))}.badge-info,.chip-info{background:color-mix(in srgb,var(--color-info) 12%,transparent);color:var(--color-info);border-color:color-mix(in srgb,var(--color-info) 22%,var(--color-border-light))}.badge-course{background:color-mix(in srgb,var(--color-accent) 14%,transparent);color:var(--color-text-primary);border:1px solid color-mix(in srgb,var(--color-accent) 26%,var(--color-border-light))}.badge-google{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--color-success);background:color-mix(in srgb,var(--color-success) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-success) 22%,var(--color-border-light));padding:2px 6px;border-radius:999px}.event-chip{display:inline-flex;align-items:center;border:1px solid var(--color-border-light);border-radius:10px;padding:8px;margin:4px 0;background:var(--color-bg-surface);font-size:var(--text-xs)}.event-chip-title{font-weight:var(--font-weight-bold);line-height:1.2}.event-chip-time,.event-chip-loc{opacity:.8;margin-top:4px;font-size:11px}.alert-chip{border:1px solid var(--color-border-light);border-radius:999px;padding:6px 10px;font-size:var(--text-xs);display:inline-block;margin:4px 6px 0 0;background:var(--color-bg-surface);font-weight:var(--font-weight-medium)}.alert-danger{border-color:color-mix(in srgb,var(--color-danger) 28%,var(--color-border-light));background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger)}.alert-warn{border-color:color-mix(in srgb,var(--color-warning) 28%,var(--color-border-light));background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:var(--color-warning)}.alert-ok{opacity:.9;border-color:color-mix(in srgb,var(--color-success) 28%,var(--color-border-light));background:color-mix(in srgb,var(--color-success) 10%,transparent);color:var(--color-success)}.risk-badge{font-size:var(--text-xs);font-weight:var(--font-weight-extrabold);padding:4px 10px;border-radius:999px;border:1px solid var(--color-border-light);background:var(--color-bg-secondary)}.risk-badge.risk-danger{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 26%,var(--color-border-light))}.risk-badge.risk-warn{color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 26%,var(--color-border-light))}.risk-badge.risk-watch{color:var(--color-accent);border-color:color-mix(in srgb,var(--color-accent) 26%,var(--color-border-light))}.risk-badge.risk-ok{color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 26%,var(--color-border-light))}.risk-tag{font-size:var(--text-xs);font-weight:var(--font-weight-bold);padding:4px 8px;border-radius:999px;border:1px solid var(--color-border-light);background:var(--color-bg-secondary);color:var(--color-text-secondary)}.risk-tag-danger{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 26%,var(--color-border-light))}.risk-tag-warn{color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 26%,var(--color-border-light))}.risk-tag-ok{color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 26%,var(--color-border-light))}.grade-badge{padding:2px 8px;border-radius:12px;font-weight:var(--font-weight-bold);font-size:.85em;border:1px solid var(--color-border-light);background:var(--color-bg-secondary);color:var(--color-text-primary)}.grade-A,.grade-A+{background:color-mix(in srgb,var(--color-success) 14%,transparent);color:var(--color-success)}.grade-A-{background:color-mix(in srgb,var(--color-info) 14%,transparent);color:var(--color-info)}.grade-B+,.grade-B{background:color-mix(in srgb,var(--color-warning) 14%,transparent);color:var(--color-warning)}.grade-B-{background:color-mix(in srgb,var(--color-warning) 10%,transparent);color:var(--color-warning)}.grade-C+,.grade-C{background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger)}.grade-C-{background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger)}.grade-D+,.grade-D{background:color-mix(in srgb,var(--color-text-primary) 6%,transparent);color:var(--color-text-primary)}.grade-F{background:var(--color-danger);color:#fffffff5;border-color:color-mix(in srgb,var(--color-danger) 40%,var(--color-border-light))}.grade-P,.grade-CR{background:var(--color-success);color:#fffffff5;border-color:color-mix(in srgb,var(--color-success) 40%,var(--color-border-light))}.grade-W,.grade-I{background:color-mix(in srgb,var(--color-text-primary) 18%,transparent);color:var(--color-text-primary)}.task-priority{font-size:11px;padding:4px 8px;border-radius:999px;border:1px solid var(--color-border-light);background:var(--color-bg-surface)}.priority-low{background:color-mix(in srgb,var(--color-info) 10%,transparent);color:var(--color-info)}.priority-medium{background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:var(--color-warning)}.priority-high{background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger)}.notification-badge{background:var(--color-danger);color:#fffffff5;border-radius:50%;width:18px;height:18px;font-size:10px;display:flex;align-items:center;justify-content:center;position:absolute;top:-5px;right:-5px;font-weight:var(--font-weight-bold);border:1px solid rgba(255,255,255,.65)}.today-badge{display:inline-block;background:color-mix(in srgb,var(--color-primary) 86%,#000 14%);color:#fffffff5;font-size:11px;padding:2px 8px;border-radius:10px;margin-top:6px;font-weight:var(--font-weight-semibold);border:1px solid rgba(201,164,76,.22)}.goal-progress-badge{font-size:.75rem;font-weight:var(--font-weight-semibold);color:#fffffff5;padding:.25rem .5rem;border-radius:9999px;margin-left:.5rem;background:color-mix(in srgb,var(--color-primary) 86%,#000 14%);border:1px solid rgba(201,164,76,.22)}.overdue-badge{font-size:.7rem;padding:.15rem .5rem;background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger);border-radius:6px;margin-left:.5rem;border:1px solid color-mix(in srgb,var(--color-danger) 22%,var(--color-border-light))}.days-badge{font-size:.7rem;padding:.15rem .5rem;background:color-mix(in srgb,var(--color-info) 10%,transparent);color:var(--color-info);border-radius:6px;margin-left:.5rem;border:1px solid color-mix(in srgb,var(--color-info) 20%,var(--color-border-light))}.badge-pill{border-radius:10rem;padding:.25em .6em;font-size:.75em;font-weight:var(--font-weight-semibold);line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline}.badge-pill.badge-danger{background-color:var(--color-danger);color:#fffffff5}.badge-pill.badge-success{background-color:var(--color-success);color:#fffffff5}.badge-pill.badge-secondary{background-color:var(--color-text-tertiary);color:#fffffff5}.badge-pill.badge-info{background-color:var(--color-info);color:#fffffff5}.badge-pill.badge-light{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-light)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-border)}.status-dot.online{background:var(--color-success)}.status-dot.offline{background:var(--color-danger)}.status-dot.away{background:var(--color-warning)}.status-dot.busy{background:var(--color-danger)}.badge-close{padding-right:4px;cursor:pointer}.badge-close:hover{opacity:.85}.badge-group{display:inline-flex;gap:4px;flex-wrap:wrap}.badge-with-icon,.chip-with-icon{padding-left:6px}.badge-with-icon i,.chip-with-icon i{font-size:10px;opacity:.85}.badge-outlined,.chip-outlined{background:transparent;border:1px solid currentColor}.badge-soft,.chip-soft{background:color-mix(in srgb,var(--color-text-primary) 6%,transparent);border:none}@media (max-width: 480px){.badge,.chip{font-size:10px;padding:1px 6px}.badge-lg,.chip-lg{font-size:var(--text-xs);padding:3px 8px}}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.badge-pulse{animation:badgePulse 2s infinite}a .badge,a .chip{text-decoration:none}a .badge:hover,a .chip:hover{opacity:.92}.container{display:flex;flex-direction:column;min-height:100dvh;width:100%;overflow-x:hidden;background:var(--color-bg-primary)}.dashboard-grid-view{padding:24px 0;display:grid;gap:24px;grid-template-columns:repeat(12,minmax(0,1fr))}.card{grid-column:span 6}.card-large{grid-column:span 12}.card-half{grid-column:span 6}.card-tasks{grid-column:span 8}.card-calendar,.card-stats{grid-column:span 4}.card-grades,.card.command-center,.card-gpa{grid-column:span 12}.notes-grid,.goals-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.full-width{grid-column:1 / -1}@media (max-width: 1200px){.dashboard-grid-view{gap:20px}}@media (max-width: 900px){.dashboard-grid-view{grid-template-columns:1fr;gap:16px}.card,.card-large,.card-half,.card-tasks,.card-calendar,.card-stats,.card-grades,.card.command-center,.card-gpa{grid-column:1 / -1}.notes-grid,.goals-grid{grid-template-columns:1fr}}.mobile-nav-drawer{position:fixed;top:0;left:0;width:280px;height:100dvh;background:#fff;border-right:1px solid var(--color-border);z-index:var(--z-modal);transform:translate(-100%);transition:transform .3s ease;box-shadow:var(--shadow-large);overflow-y:auto}.mobile-nav-drawer.open{transform:translate(0)}.mobile-nav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);z-index:calc(var(--z-modal) - 1);display:none}.mobile-nav-overlay.open{display:block}.mobile-nav-content{padding:24px 20px}.mobile-nav-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.mobile-nav-logo{display:flex;align-items:center;gap:12px;color:var(--color-text-primary);font-family:var(--font-serif);font-size:18px;font-weight:700;letter-spacing:.5px}.mobile-nav-logo i{font-size:20px;color:var(--color-primary)}.mobile-nav-close{background:none;border:none;font-size:20px;color:var(--color-text-secondary);cursor:pointer;padding:8px;border-radius:6px;transition:background-color .2s ease}.mobile-nav-close:hover{background-color:#0000000d}.mobile-nav-section{margin-bottom:28px}.mobile-nav-section:last-child{margin-bottom:0}.mobile-nav-title{font-size:var(--text-xs);text-transform:uppercase;color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);letter-spacing:.5px;margin-bottom:12px;padding-left:8px}.mobile-nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;color:var(--color-text-primary);text-decoration:none;border-radius:8px;transition:all .2s ease;margin-bottom:4px}.mobile-nav-item:hover{background-color:#0000000d}.mobile-nav-item.active{background-color:var(--color-primary-light);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.mobile-nav-item i{width:20px;text-align:center;font-size:16px}.dark-theme .mobile-nav-drawer{background:var(--color-bg-surface-dark);border-right-color:var(--color-border-dark)}.dark-theme .mobile-nav-header{border-bottom-color:var(--color-border-dark)}.dark-theme .mobile-nav-logo,.dark-theme .mobile-nav-item{color:var(--color-text-primary-dark)}.dark-theme .mobile-nav-item:hover{background-color:#ffffff0d}.dark-theme .mobile-nav-item.active{background-color:rgba(var(--color-primary-rgb),.2);color:var(--color-primary)}@media print{.mobile-nav-drawer,.mobile-nav-overlay{display:none}}.university-header{position:sticky;top:0;z-index:var(--z-sticky);width:100%;background:var(--app-bg-gradient);border-bottom:1px solid rgba(201,164,76,.22);box-shadow:0 10px 26px #02061738;padding:0;position:fixed}.top-bar{width:100%;max-width:none;margin:0;padding:0 24px;background:var(--app-bg-gradient);height:var(--topbar-height);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;min-height:100%;box-sizing:border-box}.university-branding{display:flex;align-items:center;min-width:0}.wordmark{display:inline-flex;flex-direction:column;gap:2px;min-width:0;text-decoration:none}.wordmark-main{font-family:var(--font-family-serif);font-size:22px;font-weight:800;letter-spacing:.03em;color:#fffffff5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wordmark-sub{font-family:var(--font-family-sans);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#ffffffb3}.primary-navigation{display:flex;justify-content:center;align-items:center;gap:8px;min-width:0}.nav-link{position:relative;padding:12px 14px;color:#ffffffdb;text-decoration:none;font-weight:var(--font-weight-medium);font-size:var(--text-sm);letter-spacing:.04em;transition:color .18s ease;white-space:nowrap;border-radius:10px}.nav-link:hover{color:#fffffffa}.nav-link.active{color:#fffffffa;font-weight:var(--font-weight-semibold)}.nav-link:after{content:"";position:absolute;left:10px;right:10px;bottom:7px;height:2px;background:rgba(201,164,76,.8);transform:scaleX(0);transform-origin:center;transition:transform .18s ease;border-radius:2px}.nav-link:hover:after,.nav-link.active:after{transform:scaleX(1)}.mega{position:relative;display:inline-flex;align-items:center}.mega-trigger{display:inline-flex;align-items:center;gap:8px;padding:12px 14px;border:0;background:transparent;color:#ffffffdb;font-weight:var(--font-weight-medium);font-size:var(--text-sm);letter-spacing:.04em;cursor:pointer;border-radius:10px;transition:color .18s ease;white-space:nowrap}.mega-trigger:hover{color:#fffffffa}.mega-trigger.is-open{color:#fffffffa;font-weight:var(--font-weight-semibold)}.mega-trigger i{font-size:12px;opacity:.9}.mega-panel{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%);width:360px;display:none;background:rgba(8,30,18,.98);border:1px solid rgba(201,164,76,.22);border-radius:14px;box-shadow:0 24px 60px #02061766;padding:10px;z-index:var(--z-modal);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.mega-panel.open{display:block}.mega-panel:before{content:"";position:absolute;top:-8px;left:50%;width:14px;height:14px;background:rgba(8,30,18,.98);border-left:1px solid rgba(201,164,76,.22);border-top:1px solid rgba(201,164,76,.22);transform:translate(-50%) rotate(45deg)}.mega-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;text-decoration:none;color:#ffffffe0;font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:background-color .16s ease,color .16s ease}.mega-link i{width:18px;text-align:center;color:#ffffffad}.mega-link:hover{background:rgba(255,255,255,.06);color:#fffffffa}.mega-link:hover i{color:#c9a44cf2}.user-controls{display:flex;align-items:center;gap:16px;min-width:0}.user-profile{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(201,164,76,.18);transition:background-color .16s ease,border-color .16s ease;cursor:pointer}.user-profile:hover{background:rgba(255,255,255,.1);border-color:#c9a44c4d}.user-avatar{width:34px;height:34px;border-radius:50%;background:rgba(201,164,76,.16);border:1px solid rgba(201,164,76,.28);display:flex;align-items:center;justify-content:center;color:#ffffffeb;font-weight:var(--font-weight-bold);font-size:12px;flex-shrink:0}.user-info-mini{display:flex;flex-direction:column;min-width:0}.user-name{font-weight:var(--font-weight-semibold);color:#ffffffeb;font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-status{font-size:var(--text-xs);color:#ffffffa8}.mobile-menu-toggle{display:none;background:rgba(255,255,255,.06);border:1px solid rgba(201,164,76,.18);padding:10px;cursor:pointer;color:#ffffffe6;font-size:18px;border-radius:10px;transition:background-color .16s ease,border-color .16s ease}.mobile-menu-toggle:hover{background:rgba(255,255,255,.1);border-color:#c9a44c4d}.academic-utility-bar{background:rgba(8,30,18,.7);border-bottom:1px solid rgba(201,164,76,.14);padding:10px 24px}.utility-content{width:100%;max-width:none;margin:0;display:flex;justify-content:space-between;align-items:center;gap:18px}.current-term,.date-time-display{display:flex;align-items:center;gap:10px;color:#ffffffc2;font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.current-term i{font-size:14px;color:#c9a44cf2}.date,.time{display:flex;align-items:center;gap:6px}.date i,.time i{font-size:14px;opacity:.9}@media (max-width: 1200px){.university-header{padding:0 20px}.top-bar{gap:22px}}@media (max-width: 1024px){.top-bar{gap:18px}.mega-panel{width:330px}}@media (max-width: 900px){.primary-navigation{display:none}.mobile-menu-toggle{display:inline-flex}.user-name{display:none}}@media (max-width: 768px){.university-header{padding:0 16px}.top-bar{height:60px}.wordmark-main{font-size:18px}.wordmark-sub{font-size:10px}.academic-utility-bar{padding:8px 16px}.utility-content{flex-direction:column;align-items:flex-start;gap:6px}.date-time-display{flex-wrap:wrap}}@media (max-width: 480px){.wordmark-sub{display:none}}@media print{.university-header,.academic-utility-bar{display:none}}section[data-view]{display:none}section[data-view].active{display:block;opacity:1;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}main#appMain{flex:1;width:100%;max-width:none;margin:0;padding:32px 24px;background:var(--color-bg-primary)}.page-header{margin-bottom:32px;padding-bottom:20px;border-bottom:1px solid rgba(201,164,76,.22)}.page-title{font-family:var(--font-serif, Georgia, serif);font-size:var(--text-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 12px;letter-spacing:-.5px}.page-subtitle{color:var(--color-text-secondary);font-size:var(--text-lg);margin:0;max-width:900px}.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-bottom:32px}.academic-card{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:24px;transition:border-color .18s ease,box-shadow .18s ease;height:100%}.academic-card:hover{border-color:#0a241538;box-shadow:0 14px 32px #0206171a}.academic-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--color-border-light)}.academic-card-title{font-family:var(--font-serif, Georgia, serif);font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.academic-card-subtitle{color:var(--color-text-secondary);font-size:var(--text-sm);margin:4px 0 0}.academic-card-actions{display:flex;gap:8px;align-items:center}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:32px}.metric-card{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:24px;text-align:center;transition:border-color .18s ease,box-shadow .18s ease;position:relative;overflow:hidden}.metric-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:rgba(201,164,76,.75);opacity:.8}.metric-card:hover{border-color:#0a241538;box-shadow:0 14px 32px #0206171a}.metric-value{font-family:var(--font-serif, Georgia, serif);font-size:42px;font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 8px;letter-spacing:-1px}.metric-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:1px;margin:0 0 12px}.metric-change{font-size:var(--text-sm);font-weight:var(--font-weight-medium);display:flex;align-items:center;justify-content:center;gap:4px}.metric-change.positive{color:var(--color-success)}.metric-change.negative{color:var(--color-danger)}.charts-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px;margin-bottom:32px}.chart-container{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:24px}.chart-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.chart-title{font-family:var(--font-serif, Georgia, serif);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 4px}.chart-description{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0;max-width:500px}.activity-feed{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:24px;max-height:400px;overflow-y:auto}.activity-title{font-family:var(--font-serif, Georgia, serif);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 20px}.activity-item{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid var(--color-border-light)}.activity-item:last-child{border-bottom:none;padding-bottom:0}.activity-icon{width:40px;height:40px;border-radius:12px;background:var(--color-primary-light);display:flex;align-items:center;justify-content:center;color:var(--color-primary);flex-shrink:0}.activity-content{flex:1;min-width:0}.activity-text{font-size:var(--text-sm);color:var(--color-text-primary);margin:0 0 4px;line-height:1.4}.activity-time{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.quick-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:32px}.stat-item{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:6px}.stat-value{font-family:var(--font-serif, Georgia, serif);font-size:28px;font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.stat-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin:0}.stat-subtitle{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.empty-state{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:28px 20px;text-align:center}.empty-state i{font-size:48px;color:var(--color-text-tertiary);margin-bottom:16px}.empty-state-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 8px}.empty-state-description{color:var(--color-text-secondary);max-width:400px;margin:0 auto}@media (max-width: 1200px){.charts-grid{grid-template-columns:1fr}.quick-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){main#appMain{padding:20px 16px}.metrics-grid,.quick-stats-grid{grid-template-columns:1fr}.dashboard-grid{gap:16px}.academic-card{padding:20px}.metric-value{font-size:36px}.chart-container,.activity-feed{padding:20px}}@media (max-width: 480px){.page-title{font-size:var(--text-2xl)}.page-subtitle{font-size:var(--text-base)}.metric-card,.chart-container,.activity-feed{padding:16px}.metric-value{font-size:32px}}@media print{main#appMain{background:white!important;box-shadow:none!important;border:1px solid #000!important}.academic-card,.metric-card,.chart-container,.activity-feed{break-inside:avoid}.activity-feed{max-height:none;overflow:visible}}.auth-section{min-height:100vh;padding:32px 20px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(900px 520px at 100% 0%,color-mix(in srgb,var(--color-accent) 18%,transparent),transparent 55%),radial-gradient(900px 520px at 0% 100%,color-mix(in srgb,rgba(201,164,76,.22)70%,transparent),transparent 55%),var(--color-bg-secondary)}.auth-bg-orbit,.auth-bg-orbit.orbit-2{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,rgba(201,164,76,.28) 65%,transparent),transparent 65%);opacity:.22;filter:blur(2px);pointer-events:none;animation:orbitFloat 18s ease-in-out infinite alternate}.auth-bg-orbit{width:420px;height:420px;top:-140px;right:-80px}.auth-bg-orbit.orbit-2{width:360px;height:360px;bottom:-120px;left:-40px;background:radial-gradient(circle at 60% 40%,color-mix(in srgb,var(--color-accent) 18%,transparent),transparent 65%);animation-duration:22s}@keyframes orbitFloat{0%{transform:translateZ(0) scale(1)}50%{transform:translate3d(-12px,10px,0) scale(1.05)}to{transform:translate3d(10px,-6px,0) scale(1.02)}}.auth-container{width:100%;max-width:460px;position:relative;z-index:1}.auth-card{background:linear-gradient(180deg,#ffffff 0%,#fbfdfb 100%);border-radius:22px;border:1px solid rgba(13,44,29,.14);box-shadow:0 40px 80px #02061724,0 10px 26px #0206171a;padding:0;overflow:hidden}@keyframes authCardIn{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-logo-row{display:flex;align-items:center;gap:12px}.auth-logo-icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:radial-gradient(circle at 20% 0%,color-mix(in srgb,rgba(201,164,76,.55) 70%,transparent),rgba(201,164,76,.85));color:#fffffff5;border:1px solid rgba(201,164,76,.25);box-shadow:0 12px 26px #0206172e}.auth-logo-icon i{font-size:18px}.auth-title{color:#f8fafc}.auth-subtitle{color:#e2e8f0d9}.auth-tabs{background:linear-gradient(180deg,#f4f8f4 0%,#eef4ef 100%);border:1px solid rgba(13,44,29,.14);border-radius:999px;padding:6px;gap:6px;box-shadow:inset 0 1px #ffffffd9,0 10px 22px #02061714}.auth-tab{color:#0d2c1dc7;font-weight:750;letter-spacing:.01em}.auth-tab:hover{color:#0d2c1deb}.auth-tab.active,.auth-tab.is-active{color:#102a1c}.auth-tab.active:before,.auth-tab.is-active:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,#e6cf8a 0%,#c9a44c 100%);border:1px solid rgba(201,164,76,.55);box-shadow:0 10px 20px #02061724,inset 0 1px #ffffff8c;z-index:-1}.auth-form{display:none;flex-direction:column;gap:10px;margin-top:4px}.auth-form.active{display:flex}.auth-field{display:flex;flex-direction:column;gap:4px}.auth-label{font-size:12px;color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.auth-input{background:#ffffff;border-radius:14px;border:1px solid rgba(13,44,29,.18);padding:12px 14px;font-size:15px;box-shadow:inset 0 1px #ffffffe6}.auth-input:focus{border-color:#c9a44cbf;box-shadow:0 0 0 3px #c9a44c2e,inset 0 1px #fff}.auth-input::placeholder{color:var(--color-text-tertiary);opacity:.75}.auth-btn{margin-top:6px;border:none;border-radius:12px;padding:10px 13px;font-size:var(--text-sm);font-weight:var(--font-weight-semibold);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .13s ease,box-shadow .13s ease,filter .13s ease}.auth-btn-primary{background:linear-gradient(180deg,rgba(217,186,115,.96),rgba(201,164,76,.9));color:#102a1c;border-radius:14px;border:1px solid rgba(201,164,76,.45);box-shadow:0 10px 26px #02061738,inset 0 1px #ffffff59;font-weight:700;letter-spacing:.02em;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.auth-btn-primary:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 14px 32px #02061747,inset 0 1px #ffffff73}.auth-btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 8px 18px #02061738,inset 0 2px 6px #0206172e}.auth-btn.is-loading{pointer-events:none;filter:saturate(.9) brightness(.95)}.auth-btn[disabled]{opacity:.7;cursor:not-allowed}.auth-pass{position:relative;display:grid}.auth-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:1px solid var(--color-border-light);background:var(--color-bg-surface);color:var(--color-text-secondary);width:36px;height:34px;border-radius:10px;cursor:pointer;display:grid;place-items:center;transition:background-color .16s ease,border-color .16s ease,transform .12s ease}.auth-eye:hover{background:var(--color-bg-tertiary);border-color:#c9a44c4d;transform:translateY(-1px)}.auth-spinner{display:none;width:16px;height:16px;border-radius:999px;border:2px solid rgba(2,6,23,.22);border-top-color:#020617d9;animation:authSpin .8s linear infinite}.auth-btn.is-loading .auth-spinner{display:inline-block}.auth-btn.is-loading .auth-btn-icon{display:none}@keyframes authSpin{to{transform:rotate(360deg)}}.auth-footnote{margin-top:16px;font-size:14px;color:#0f172aa6}.auth-inline-link{background:none;border:none;padding:0;margin:0 0 0 3px;font-size:inherit;color:var(--color-accent);cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.auth-inline-link:hover{color:color-mix(in srgb,var(--color-accent) 84%,#fff 16%)}.auth-status{margin-top:12px;padding:10px;border-radius:12px;font-size:var(--text-sm);text-align:center;border:1px solid var(--color-border-light);background:var(--color-bg-secondary);color:var(--color-text-secondary)}.auth-status.success{background:color-mix(in srgb,var(--color-success) 10%,transparent);color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 22%,var(--color-border-light))}.auth-status.error{background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 22%,var(--color-border-light))}.auth-status.warning{background:color-mix(in srgb,var(--color-warning) 10%,transparent);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 22%,var(--color-border-light))}@media (max-width: 640px){.auth-section{padding:20px 12px}.auth-card{padding:18px 16px}.auth-title{font-size:18px}.auth-tabs{flex-direction:column}.auth-tab{width:100%}}.auth{position:relative;min-height:100vh;display:grid;place-items:center;padding:18px;background:var(--color-bg-primary);color:var(--color-text-primary)}.auth-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.auth-orbit{position:absolute;width:720px;height:720px;border-radius:999px;border:1px solid rgba(201,164,76,.22);top:-240px;left:-220px;filter:blur(.2px)}.auth-orbit-2{width:860px;height:860px;border-color:color-mix(in srgb,var(--color-accent) 22%,transparent);bottom:-320px;right:-320px;top:auto;left:auto}.auth-shell{display:flex;align-items:center;justify-content:center;min-height:100vh}.auth-head{padding:22px 22px 18px;background:linear-gradient(180deg,#0f3a26 0%,#0b2c1c 100%);border-bottom:1px solid rgba(255,255,255,.1)}.auth-brand{display:flex;gap:12px;align-items:center}.auth-mark{background:radial-gradient(circle at 20% 20%,rgba(201,164,76,.35),rgba(6,32,20,.95));border:1px solid rgba(201,164,76,.45);color:#f8fafc}.auth-panel{padding:22px 22px 26px}.auth-panel.is-active{display:block}.auth-link{border:0;background:transparent;color:var(--color-accent);font-weight:var(--font-weight-bold);cursor:pointer;padding:0 4px}.auth-link:hover{text-decoration:underline}.auth-validation{font-size:12px;margin-top:4px;padding:6px 8px;border-radius:10px;display:none;border:1px solid var(--color-border-light);background:var(--color-bg-secondary);color:var(--color-text-secondary)}.auth-validation.error{display:block;background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 22%,var(--color-border-light))}.auth-validation.success{display:block;background:color-mix(in srgb,var(--color-success) 10%,transparent);color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 22%,var(--color-border-light))}#authSection .auth-panel{display:none!important}#authSection .auth-panel.is-active{display:block!important}section[data-view=profile] .dashboard-grid-view{display:grid;grid-template-columns:1fr;max-width:100%;overflow-x:hidden}section[data-view=profile] .academic-card{width:100%;max-width:100%;min-width:0;box-sizing:border-box}section[data-view=profile] .profile-card{width:100%;max-width:100%;min-width:0;box-sizing:border-box}section[data-view=profile] input,section[data-view=profile] textarea{max-width:100%;box-sizing:border-box}section[data-view=profile] *{min-width:0}section[data-view=profile] .academic-card-header{padding:18px 18px 12px;border-bottom:1px solid var(--border, rgba(255,255,255,.1))}section[data-view=profile] .academic-card-title{margin:0;font-size:18px;font-weight:800;letter-spacing:.2px;color:var(--text, #e9eef5)}section[data-view=profile] .academic-card-subtitle{margin:6px 0 0;font-size:13px;color:var(--muted, rgba(255,255,255,.62))}#profileContent{padding:18px}#profileContent .empty-state{border:1px dashed var(--border, rgba(255,255,255,.18));background:var(--panel, rgba(0,0,0,.08));border-radius:16px;padding:26px 18px;text-align:center;color:var(--muted, rgba(255,255,255,.68))}#profileContent .empty-state i{font-size:22px;margin-bottom:8px;opacity:.75}#profileContent .empty-state p{margin:0}.profile-grid{display:grid;grid-template-columns:1fr;gap:16px}.profile-card{border-radius:16px;border:1px solid var(--border, rgba(255,255,255,.12));background:var(--panel, rgba(0,0,0,.08));padding:16px;box-shadow:var(--shadow, 0 10px 26px rgba(0,0,0,.2))}.profile-row{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06)}.profile-row:last-of-type{border-bottom:none}.profile-row.two{grid-template-columns:1fr 1fr;gap:14px;padding-top:14px}.profile-row.two>div{border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.03);padding:12px}.profile-label{font-size:12px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--muted, rgba(255,255,255,.65))}.profile-value{font-size:14px;color:var(--text, #e9eef5);word-break:break-word}#profileContent .neo-input{width:100%;border-radius:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.14);color:var(--text, #e9eef5);outline:none;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}#profileContent .neo-input::placeholder{color:#ffffff73}#profileContent .neo-input:focus{border-color:#785aff8c;box-shadow:0 0 0 3px #785aff2e;background:rgba(0,0,0,.18)}.profile-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;padding-top:14px;margin-top:10px;border-top:1px solid rgba(255,255,255,.06)}#profileContent .btn-primary,#profileContent .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:10px 12px;min-width:132px;font-weight:800;letter-spacing:.2px}.profile-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06);color:var(--muted, rgba(255,255,255,.58));font-size:12px}.text-line-through{text-decoration:line-through;opacity:.65}@media (max-width: 720px){#profileContent,.profile-card{padding:14px}.profile-row{grid-template-columns:1fr;gap:8px}.profile-actions{justify-content:stretch}#profileContent .btn-primary,#profileContent .btn-secondary{width:100%;min-width:0}.profile-meta{grid-template-columns:1fr}}#classesContainer{display:flex;flex-direction:column;gap:12px;width:100%}.class-item{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:16px;padding:14px 16px;box-shadow:0 10px 26px #02061714;overflow:hidden;transition:transform .14s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.class-item:hover{transform:translateY(-1px);box-shadow:0 14px 34px #0206171f;border-color:#c9a44c4d;background:color-mix(in srgb,var(--color-bg-surface) 92%,var(--color-bg-secondary) 8%)}.class-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.class-title{font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);font-size:16px;line-height:1.25;min-width:0;word-break:break-word}.class-grade{flex-shrink:0;font-weight:900;color:var(--color-text-primary);background:color-mix(in srgb,rgba(201,164,76,.14) 70%,transparent);border:1px solid rgba(201,164,76,.22);padding:6px 10px;border-radius:999px;font-size:12px;letter-spacing:.06em}.class-progress{display:grid;gap:6px;margin-bottom:12px}.progress-bar{height:10px;width:100%;background:color-mix(in srgb,var(--color-bg-secondary) 85%,transparent);border:1px solid var(--color-border-light);border-radius:999px;overflow:hidden}.progress-fill{height:100%;width:0%;background:linear-gradient(90deg,color-mix(in srgb,rgba(201,164,76,.92) 70%,#000 30%),color-mix(in srgb,rgba(201,164,76,.7) 70%,#000 30%));border-radius:999px;transition:width .35s ease}.progress-label{font-size:12px;color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}.class-details{display:grid;gap:6px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--color-bg-secondary) 84%,transparent);border:1px solid var(--color-border-light);color:var(--color-text-secondary);font-size:13px}.class-details>div{display:flex;align-items:center;gap:8px;line-height:1.35;min-width:0;word-break:break-word}.class-details i{width:16px;text-align:center;color:#c9a44cf2;opacity:.95;flex-shrink:0}.class-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.class-actions button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--color-border-light);background:var(--color-bg-surface);color:var(--color-text-primary);border-radius:12px;padding:9px 12px;font-size:13px;font-weight:var(--font-weight-semibold);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:transform .12s ease,background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;box-shadow:0 6px 16px #0206170f}.class-actions button i{font-size:13px;opacity:.95}.class-actions button:hover{transform:translateY(-1px);background:var(--color-bg-tertiary);border-color:#c9a44c4d;box-shadow:0 10px 22px #0206171a}.class-actions .btn-edit:hover{border-color:color-mix(in srgb,var(--color-accent) 28%,var(--color-border-light));background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-accent)}.class-actions .btn-secondary:hover{border-color:#c9a44c73;background:color-mix(in srgb,rgba(201,164,76,.14) 70%,transparent)}.class-actions .btn-delete:hover{border-color:color-mix(in srgb,var(--color-danger) 24%,var(--color-border-light));background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger)}#classesContainer .empty-state{background:var(--color-bg-surface);border:2px dashed var(--color-border);border-radius:16px;padding:42px 18px;text-align:center;color:var(--color-text-secondary)}#classesContainer .empty-state p:first-child{font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin-bottom:6px}@media (max-width: 768px){.class-item{padding:12px}.class-header{flex-direction:column;align-items:flex-start;gap:8px}.class-grade{align-self:flex-start}.class-actions button{width:100%;justify-content:center}}.grade-layout{display:grid;grid-template-columns:1fr 2fr;gap:24px;align-items:start}@media (max-width: 1200px){.grade-layout{grid-template-columns:1fr;gap:32px}}.weights-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014}.panel-title{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-size:18px;font-weight:600;color:var(--text-primary)}.panel-title i{color:var(--primary);font-size:20px}.weights-grid{display:flex;flex-direction:column;gap:20px}.weight-row{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:20px;transition:all .2s ease}.weight-row:hover{border-color:var(--primary-light);box-shadow:0 4px 12px #0000000d}.weight-row.valid{border-left:4px solid var(--success)}.weight-row.warning{border-left:4px solid var(--warning)}.weight-row.invalid{border-left:4px solid var(--danger)}.weight-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-light)}.weight-course .course-title{font-weight:600;font-size:16px;color:var(--text-primary);margin-bottom:4px}.weight-course .course-code{font-size:14px;color:var(--text-secondary);font-family:var(--font-mono)}.weight-total-display{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-weight:500;font-size:14px}.weight-total-display.valid{background:rgba(var(--success-rgb),.1);color:var(--success)}.weight-total-display.warning{background:rgba(var(--warning-rgb),.1);color:var(--warning)}.weight-total-display.invalid{background:rgba(var(--danger-rgb),.1);color:var(--danger)}.cat-head{display:grid;grid-template-columns:1.6fr .7fr .7fr 44px;gap:12px;padding:8px 2px 10px;margin-top:6px;color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.4px}.cat-h{opacity:.9}.cat-list{display:flex;flex-direction:column;gap:10px}.cat-row{display:grid;grid-template-columns:1.6fr .7fr .7fr 44px;gap:12px;align-items:center;padding:8px 0;transition:all .2s ease}.cat-row.error{background:rgba(var(--danger-rgb),.05);border-radius:6px;padding:8px}.cat-name,.cat-weight,.cat-score{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;font-weight:500;transition:border-color .18s ease,box-shadow .18s ease}.cat-name:focus,.cat-weight:focus,.cat-score:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1)}.cat-name.error{border-color:var(--danger);background:rgba(var(--danger-rgb),.05)}.cat-weight-wrap,.cat-score-wrap{position:relative}.cat-unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);font-size:13px;font-weight:600;pointer-events:none}.cat-weight,.cat-score{padding-right:34px}.cat-del.btn-icon{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .12s ease}.cat-del.btn-icon:hover{background:var(--bg-tertiary);border-color:var(--border-dark);color:var(--danger);transform:translateY(-1px)}.cat-actions{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:12px}.cat-hint{color:var(--text-secondary);font-size:13px}.weight-validation{display:flex;align-items:center;gap:8px;padding:10px 12px;background:rgba(var(--danger-rgb),.05);border-radius:8px;font-size:13px;color:var(--danger);margin-top:12px}.weight-validation i{font-size:14px}.weights-footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.weights-total{font-size:16px;font-weight:600}.weights-total.valid{color:var(--success)}.weights-total.invalid{color:var(--danger)}.weights-total.warning{color:var(--warning)}.grades-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014;overflow:hidden}.grade-table{width:100%;border-collapse:separate;border-spacing:0}.grade-table thead th{text-align:left;padding:14px 16px;font-weight:600;color:var(--text-secondary);font-size:14px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);background:var(--bg-secondary)}.grade-table thead th.text-center{text-align:center}.grade-table tbody td{padding:20px 16px;border-bottom:1px solid var(--border-light);vertical-align:top}.grade-table tbody tr:last-child td{border-bottom:none}.grade-table tbody tr:hover{background:var(--bg-secondary)}.course-info{min-width:200px}.course-name{margin-bottom:6px}.course-name strong{font-size:16px;font-weight:600;color:var(--text-primary)}.course-code{font-size:14px;color:var(--text-secondary);font-family:var(--font-mono);margin-top:2px}.course-meta{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-tertiary)}.instructor{display:inline-flex;align-items:center;gap:6px}.assignment-count{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--bg-tertiary);border-radius:12px;font-size:12px}.grade-value{font-size:18px;font-weight:600;margin-bottom:4px}.grade-hint{font-size:12px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px}.value-empty{color:var(--text-tertiary);font-style:italic}.value-filled{display:inline-block;padding:2px 0}.grade-excellent{color:var(--success)}.grade-good{color:var(--primary)}.grade-average{color:var(--warning)}.grade-poor{color:var(--orange)}.grade-failing{color:var(--danger)}.overall-grade{display:flex;flex-direction:column;align-items:center;gap:6px}.overall-numeric{font-size:22px;font-weight:700;padding:8px 16px;border-radius:10px;min-width:100px;text-align:center;transition:all .3s ease}.overall-numeric.excellent{background:rgba(var(--success-rgb),.1);color:var(--success);border:2px solid var(--success)}.overall-numeric.good{background:rgba(var(--primary-rgb),.1);color:var(--primary);border:2px solid var(--primary)}.overall-numeric.average{background:rgba(var(--warning-rgb),.1);color:var(--warning);border:2px solid var(--warning)}.overall-numeric.poor{background:rgba(var(--orange-rgb),.1);color:var(--orange);border:2px solid var(--orange)}.overall-numeric.failing{background:rgba(var(--danger-rgb),.1);color:var(--danger);border:2px solid var(--danger)}.letter-grade{font-size:16px;font-weight:600;color:var(--text-secondary)}.weight-hint{font-size:11px;color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 8px;border-radius:10px;font-family:var(--font-mono)}.no-overall{display:flex;flex-direction:column;align-items:center;gap:4px}.actions-cell{min-width:120px}.action-buttons{display:flex;gap:8px;justify-content:center}.btn-icon{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.btn-icon:hover{background:var(--bg-tertiary);border-color:var(--border-dark);transform:translateY(-1px)}.btn-icon.edit:hover{color:var(--primary)}.btn-icon.weights:hover{color:var(--warning)}.empty-state{text-align:center;padding:60px 20px}.empty-content{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-secondary)}.empty-content i{font-size:48px;color:var(--border);margin-bottom:8px}.empty-content p{font-size:16px;font-weight:500;margin:0}.empty-content small{font-size:14px;opacity:.7}.empty-weights{text-align:center;padding:40px 20px}.empty-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:50%;margin:0 auto 16px;color:var(--border);font-size:28px}@media (max-width: 768px){.grade-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.grade-table thead th,.grade-table tbody td{min-width:120px}.course-info{min-width:180px}.overall-numeric{font-size:18px;padding:6px 12px;min-width:80px}.cat-head{display:none}.cat-row{grid-template-columns:1fr;gap:10px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-primary)}.cat-del.btn-icon{width:100%;height:40px;justify-content:center}.cat-actions{flex-direction:column;align-items:stretch}.action-buttons{flex-direction:column;gap:6px}}.btn-primary{background:var(--primary);color:#fff;border:none;padding:10px 24px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease}.btn-primary:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--primary-rgb),.2)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);padding:10px 24px;border-radius:8px;font-weight:500;font-size:14px;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--border-dark)}.goals-feature{padding:1.5rem}.goal-stats-container{border-radius:16px;padding:1.5rem;margin-bottom:2rem;color:#fffffff5;background:radial-gradient(900px 520px at 100% 0%,color-mix(in srgb,var(--color-accent) 20%,transparent),transparent 55%),radial-gradient(900px 520px at 0% 100%,color-mix(in srgb,rgba(201,164,76,.28) 70%,transparent),transparent 55%),linear-gradient(135deg,color-mix(in srgb,var(--color-bg-primary) 92%,#0a2415 8%),color-mix(in srgb,var(--color-bg-secondary) 88%,#0a2415 12%));border:1px solid color-mix(in srgb,var(--color-border-light) 70%,rgba(201,164,76,.35));box-shadow:0 18px 44px #02061738}.goal-stats-container h2{font-size:1.35rem;font-weight:var(--font-weight-extrabold);margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;letter-spacing:.02em}.goal-stats-container h2 i{font-size:1.15rem;color:#c9a44cf2}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem}.stat-card{border-radius:14px;padding:1.25rem;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .25s ease,background .25s ease,border-color .25s ease}.stat-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.11);border-color:#ffffff38}.stat-value{font-size:2.15rem;font-weight:var(--font-weight-extrabold);line-height:1;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.stat-value .progress-ring{width:40px;height:40px}.stat-label{font-size:.875rem;opacity:.9;font-weight:var(--font-weight-medium)}.stat-trend{font-size:.75rem;margin-top:.5rem;display:flex;align-items:center;gap:.25rem}.stat-trend.positive{color:var(--color-success)}.stat-trend.negative{color:var(--color-danger)}.category-filter-section{margin-bottom:1.5rem}.category-filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.category-filter-header h3{font-size:1.125rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.category-filter-grid{display:flex;flex-wrap:wrap;gap:.75rem}.category-filter-item{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;border-radius:999px;cursor:pointer;background:var(--color-bg-surface);border:1px solid var(--color-border-light);color:var(--color-text-secondary);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease,color .22s ease;font-size:.875rem;font-weight:var(--font-weight-medium)}.category-filter-item:hover{border-color:#c9a44c59;transform:translateY(-2px);box-shadow:0 10px 26px #0206171f;background:var(--color-bg-tertiary);color:var(--color-text-primary)}.category-filter-item.active{background:color-mix(in srgb,rgba(201,164,76,.92) 70%,#000 30%);border-color:#c9a44c40;color:#fffffff5;box-shadow:0 14px 30px #02061729}.category-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.category-count{background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:999px;padding:.125rem .625rem;font-size:.75rem;font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);transition:all .22s ease}.category-filter-item.active .category-count{background:rgba(255,255,255,.16);border-color:#ffffff2e;color:#fffffff5}.goals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;margin-top:1.5rem}.goal-card{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:16px;overflow:hidden;position:relative;cursor:pointer;box-shadow:0 10px 26px #0206171a;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,filter .28s ease}.goal-card:hover{transform:translateY(-6px);box-shadow:0 18px 44px #02061729;border-color:#c9a44c38}.goal-card.completed{opacity:.88;filter:saturate(.92);background:linear-gradient(180deg,color-mix(in srgb,rgba(201,164,76,.1) 70%,transparent),transparent),var(--color-bg-surface)}.goal-card.completed:before{content:"";position:absolute;top:0;right:0;width:62px;height:62px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-success) 75%,#000 25%),var(--color-success));clip-path:polygon(100% 0,0 0,100% 100%);opacity:.95}.goal-card.completed:after{content:"✓";position:absolute;top:10px;right:10px;color:#fffffff5;font-size:1rem;font-weight:var(--font-weight-extrabold);z-index:1}.goal-card-header{padding:1.25rem 1.25rem 0;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.goal-category{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .875rem;border-radius:999px;font-size:.75rem;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;background:color-mix(in srgb,rgba(201,164,76,.14) 60%,transparent);border:1px solid rgba(201,164,76,.22);color:var(--color-text-primary)}.goal-category i{font-size:.75rem}.goal-actions{display:flex;gap:.375rem}.goal-card-body{padding:1.25rem}.goal-title{font-size:1.25rem;font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin-bottom:.75rem;line-height:1.4}.goal-card.completed .goal-title{color:var(--color-text-tertiary);text-decoration:line-through}.goal-description{font-size:.9375rem;color:var(--color-text-secondary);margin-bottom:1.25rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.goal-target{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:12px;margin-bottom:1.25rem;background:color-mix(in srgb,var(--color-bg-tertiary) 82%,transparent);border:1px solid var(--color-border-light);border-left:4px solid rgba(201,164,76,.75)}.goal-target i{color:#c9a44cf2;font-size:1.125rem}.goal-target span{font-size:.9375rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.goal-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.8125rem;color:var(--color-text-secondary);margin-top:1rem}.goal-due,.goal-milestones{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:10px;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);font-weight:var(--font-weight-medium)}.goal-due.overdue{background:color-mix(in srgb,var(--color-danger) 10%,transparent);border-color:color-mix(in srgb,var(--color-danger) 22%,var(--color-border-light));color:var(--color-danger)}.goal-due.overdue .badge{background:var(--color-danger);color:#fffffff5;padding:.125rem .5rem;border-radius:6px;font-size:.6875rem;font-weight:var(--font-weight-semibold)}.goal-card-footer{padding:1.25rem;border-top:1px solid var(--color-border-light);background:color-mix(in srgb,var(--color-bg-secondary) 84%,transparent)}.goal-progress{margin-bottom:1.25rem}.progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.progress-label{font-size:.875rem;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);display:flex;align-items:center;gap:.5rem}.progress-value{font-size:1.125rem;font-weight:var(--font-weight-extrabold);color:var(--color-text-primary)}.progress-bar{height:10px;background:var(--color-border);border-radius:999px;overflow:hidden;position:relative}.progress-fill{height:100%;border-radius:999px;position:relative;overflow:hidden;transition:width .8s cubic-bezier(.4,0,.2,1);background:linear-gradient(90deg,rgba(201,164,76,.85),var(--color-accent))}.progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,.28) 50%,rgba(255,255,255,.12) 100%);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.goal-actions-footer{display:flex;gap:.75rem}.goal-actions-footer .btn{flex:1;padding:.625rem 1rem;font-size:.875rem;font-weight:var(--font-weight-semibold);border-radius:12px;display:flex;align-items:center;justify-content:center;gap:.5rem}.milestone-item{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:14px;margin-bottom:.75rem;background:var(--color-bg-surface);border:1px solid var(--color-border-light);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease;position:relative}.milestone-item:hover{border-color:#c9a44c47;transform:translate(4px);box-shadow:0 12px 26px #0206171a}.milestone-item.completed{background:color-mix(in srgb,var(--color-success) 10%,transparent);border-color:color-mix(in srgb,var(--color-success) 22%,var(--color-border-light))}.milestone-checkbox{position:relative;width:24px;height:24px}.milestone-checkbox input{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;z-index:1}.milestone-checkbox .checkmark{display:block;width:24px;height:24px;border:2px solid var(--color-border);border-radius:8px;position:relative;transition:all .22s ease;background:var(--color-bg-secondary)}.milestone-checkbox input:checked+.checkmark{background:var(--color-success);border-color:var(--color-success);animation:checkmarkPop .3s ease}.milestone-checkbox input:checked+.checkmark:after{content:"✓";position:absolute;color:#fffffff5;font-size:14px;font-weight:var(--font-weight-extrabold);top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes checkmarkPop{0%{transform:scale(.8)}50%{transform:scale(1.1)}to{transform:scale(1)}}.milestone-main{flex:1;min-width:0}.milestone-title{font-weight:var(--font-weight-semibold);margin-bottom:.375rem;color:var(--color-text-primary);font-size:.9375rem}.milestone-item.completed .milestone-title{color:var(--color-text-secondary);text-decoration:line-through}.milestone-description{font-size:.8125rem;color:var(--color-text-secondary);margin-bottom:.5rem;line-height:1.4}.milestone-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--color-text-tertiary)}.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-top:1rem}.template-card{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:16px;padding:1.5rem;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,background .28s ease;display:flex;align-items:flex-start;gap:1rem;cursor:pointer;position:relative;overflow:hidden}.template-card:hover{border-color:#c9a44c38;transform:translateY(-4px);box-shadow:0 18px 44px #0206171f}.template-card:before{content:"";position:absolute;top:0;right:0;width:64px;height:64px;background:linear-gradient(135deg,rgba(201,164,76,.95),var(--color-accent));clip-path:polygon(100% 0,0 0,100% 100%);opacity:.1}.template-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fffffff5;font-size:1.5rem;flex-shrink:0;background:linear-gradient(135deg,rgba(201,164,76,.92),var(--color-accent));box-shadow:0 14px 30px #0206172e;border:1px solid rgba(201,164,76,.22)}.template-content{flex:1;min-width:0}.template-title{font-size:1.125rem;font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin-bottom:.5rem}.template-description{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:1rem;line-height:1.5}.template-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--color-text-tertiary)}.template-category{padding:.25rem .75rem;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:999px;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.empty-state{text-align:center;padding:4rem 2rem;background:var(--color-bg-surface);border-radius:16px;border:2px dashed var(--color-border);margin:2rem 0;color:var(--color-text-secondary)}.empty-state-sm{text-align:center;padding:2rem 1rem;background:var(--color-bg-secondary);border-radius:12px;border:1px dashed var(--color-border);margin:1rem 0;color:var(--color-text-tertiary)}.empty-icon i{font-size:3rem;color:#c9a44c8c}.empty-state h3{font-size:1.35rem;font-weight:var(--font-weight-extrabold);margin-bottom:.75rem;color:var(--color-text-primary)}.empty-state p{color:var(--color-text-secondary);margin-bottom:1.5rem;max-width:440px;margin-left:auto;margin-right:auto}.completed-section{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--color-border-light)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-title{font-size:1.125rem;font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);display:flex;align-items:center;gap:.75rem}.section-title i{color:var(--color-success)}.progress-ring{position:relative;width:80px;height:80px}.progress-ring-bg{fill:none;stroke:var(--color-border);stroke-width:8}.progress-ring-fill{fill:none;stroke-linecap:round;stroke-width:8;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1s ease}.progress-ring-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.25rem;font-weight:var(--font-weight-extrabold);color:#fffffff5}.goal-progress-badge{font-size:.75rem;font-weight:var(--font-weight-semibold);color:#fffffff5;padding:.25rem .5rem;border-radius:999px;margin-left:.5rem}.goal-click-hint{display:flex;align-items:center;justify-content:center;padding-top:.75rem;border-top:1px solid var(--color-border-light);color:var(--color-accent);font-size:.75rem;font-weight:var(--font-weight-medium)}@media (max-width: 768px){.goals-grid{grid-template-columns:1fr;gap:1rem}.stats-grid{grid-template-columns:1fr 1fr}.category-filter-grid{overflow-x:auto;padding-bottom:.5rem;flex-wrap:nowrap}.template-card{flex-direction:column}.template-icon{align-self:center}.goal-card-header,.goal-card-body,.goal-card-footer{padding:1rem}.goal-title{font-size:1.125rem}.section-header{flex-direction:column;align-items:flex-start;gap:1rem}}@media (max-width: 480px){.goal-stats-container{padding:1rem}.goal-actions-footer{flex-direction:column}.stat-card{padding:1rem}.stat-value{font-size:1.75rem}.template-card{padding:1rem}.template-icon{width:48px;height:48px;font-size:1.25rem}}.card-schedule{background:var(--color-bg-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-large);overflow:hidden}.card-schedule .card-header{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(245,158,11,.08),rgba(245,158,11,0));border-bottom:1px solid var(--color-border);padding:12px 14px}.card-schedule .card-title{font-weight:var(--font-weight-bold);letter-spacing:.2px;color:var(--color-text-primary)}.schedule-toolbar .btn{background:#fff7e0;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer;transition:border-color .2s ease}.schedule-toolbar .btn:hover{border-color:var(--color-primary)}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;background:var(--color-bg-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.schedule-table thead th{position:sticky;top:0;background:#fff5dd;color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:12px;text-transform:uppercase;letter-spacing:.4px;padding:9px 8px;border-bottom:1px solid var(--color-border);z-index:2}.schedule-table tbody td,.schedule-table tbody th{border-bottom:1px solid var(--color-border-light);border-right:1px solid var(--color-border-light);padding:8px;vertical-align:top}.time-group-header td{background:rgba(255,243,205,.9);color:var(--color-text-secondary);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.time-group-label{font-weight:var(--font-weight-bold);font-size:12px;text-transform:uppercase;letter-spacing:.4px}.time-slot{color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);font-feature-settings:"tnum" 1;white-space:nowrap}.day-cell{min-height:60px;background:linear-gradient(180deg,rgba(249,250,251,.8),rgba(250,250,249,.6));transition:background .15s ease}.day-cell:hover{background:rgba(254,249,195,.6)}.is-today{background:linear-gradient(180deg,rgba(254,240,138,.7),rgba(254,240,138,.25));outline:1px solid rgba(234,179,8,.5)}.now-line:after{content:"";position:absolute;left:0;right:0;top:calc(50% - 1px);height:2px;background:var(--color-primary);opacity:.6}.event-card{background:#fff5dd;border:1px solid rgba(245,158,11,.4);border-left:3px solid var(--color-primary);border-radius:9px;padding:7px 9px;margin:6px 0;box-shadow:0 2px 8px #94794d40;max-width:100%;overflow:hidden;cursor:pointer;transition:all .2s ease}.event-card:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #4361ee26;transform:translateY(-2px)}.event-time{font-size:12px;color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}.badge-google{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#16a34a;background:rgba(22,163,74,.08);border:1px solid rgba(22,163,74,.3);padding:2px 6px;border-radius:999px}.event-title{white-space:normal;word-break:break-word;font-size:14px;font-weight:var(--font-weight-medium);color:var(--color-text-primary);line-height:1.3}.event-desc,.event-location,.event-meta{font-size:12px;color:var(--color-text-secondary);margin-top:4px;white-space:pre-wrap;word-break:break-word}.event-chip{display:inline-flex;align-items:center;border:1px solid var(--color-border);background:rgba(249,250,251,.9);padding:2px 6px;border-radius:999px;font-size:11px}.schedule-table th:first-child,.schedule-table td:first-child{position:sticky;left:0;z-index:1;background:#fff5dd}#eventsContainer.compact .event-card{margin:4px 0;padding:6px 8px}.span-fill{height:8px;margin:6px 8px;border-radius:6px;background:rgba(254,240,138,.7);border:1px solid rgba(234,179,8,.6)}.events-calendar-view{background:white;border-radius:12px;box-shadow:0 4px 20px #00000014;padding:24px;margin-bottom:24px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e9ecef}.calendar-title i{font-size:24px;color:#4361ee}.calendar-title h3{margin:0;font-size:20px;font-weight:var(--font-weight-semibold);color:#2d3748}.calendar-summary{color:#718096;font-size:14px;background:#f7fafc;padding:6px 12px;border-radius:20px}.calendar-days-container{display:flex;gap:20px;overflow-x:auto;padding-bottom:16px;min-height:400px}.calendar-days-container::-webkit-scrollbar{height:6px}.calendar-days-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.calendar-days-container::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:3px}.calendar-days-container::-webkit-scrollbar-thumb:hover{background:#a0aec0}.event-day-column{flex:0 0 280px;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0;overflow:hidden;min-height:350px;transition:all .2s ease}.event-day-column:hover{border-color:#cbd5e0;box-shadow:0 4px 12px #0000000d}.event-day-column.today{border-color:#4361ee;background:linear-gradient(to bottom,#f0f4ff,#f8fafc)}.day-header{background:white;padding:16px;border-bottom:1px solid #e2e8f0;text-align:center}.day-name{font-size:14px;color:#718096;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.day-date{font-size:24px;font-weight:var(--font-weight-bold);color:#2d3748}.today-badge{display:inline-block;background:#4361ee;color:#fff;font-size:11px;padding:2px 8px;border-radius:10px;margin-top:6px;font-weight:var(--font-weight-semibold)}.day-events{padding:16px;display:flex;flex-direction:column;gap:12px;height:calc(100% - 80px);overflow-y:auto}.event-card{background:white;border-radius:8px;padding:16px;border:1px solid #e2e8f0;cursor:pointer;transition:all .2s ease;position:relative}.event-card:hover{border-color:#4361ee;box-shadow:0 4px 12px #4361ee26;transform:translateY(-2px)}.event-time{font-size:13px;color:#4361ee;font-weight:var(--font-weight-semibold);margin-bottom:6px;display:flex;align-items:center;gap:6px}.event-time:before{content:"";width:8px;height:8px;background:#4361ee;border-radius:50%;display:inline-block}.event-title{font-size:16px;font-weight:var(--font-weight-semibold);color:#2d3748;margin-bottom:8px;line-height:1.3}.event-location{font-size:13px;color:#718096;display:flex;align-items:center;gap:6px;margin-bottom:8px}.event-location i{font-size:11px}.event-description-preview{font-size:13px;color:#4a5568;line-height:1.4;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-view-details{display:flex;justify-content:center}.btn-view-details{background:transparent;border:1px solid #e2e8f0;color:#718096;font-size:12px;padding:6px 12px;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.btn-view-details:hover{background:#f7fafc;border-color:#cbd5e0;color:#4a5568}.no-events{text-align:center;padding:40px 20px;color:#a0aec0}.no-events i{font-size:32px;margin-bottom:12px;opacity:.5}.events-empty-state{text-align:center;padding:60px 20px;background:white;border-radius:12px;border:2px dashed #e2e8f0}.empty-icon{font-size:48px;color:#cbd5e0;margin-bottom:20px}.events-empty-state h3{color:#4a5568;margin-bottom:8px;font-weight:var(--font-weight-semibold)}.events-empty-state p{color:#718096;margin-bottom:24px}.calendar-footer{margin-top:20px;padding-top:16px;border-top:1px solid #e9ecef;text-align:center;color:#718096;font-size:14px}.ev-chip{width:100%;text-align:left;border:1px solid var(--color-border);border-radius:10px;padding:8px;background:var(--color-bg-surface);cursor:pointer}.ev-chip:hover{opacity:.95}.ev-title{font-weight:var(--font-weight-extrabold);font-size:12.5px;color:var(--color-text-primary)}.ev-meta{font-size:11.5px;opacity:.8;margin-top:2px;color:var(--color-text-secondary)}.ev-more{font-size:11px;opacity:.75;padding-left:2px}.ev-compact .ev-meta{display:none}.schedule-table .is-today{background:rgba(120,90,255,.08)}.event-actions .btn-edit,.event-actions .btn-delete{background:#fff7df;border:1px solid var(--color-border);color:var(--color-text-primary);padding:4px 6px;border-radius:7px;cursor:pointer;font-size:12px}.event-actions .btn-edit:hover{border-color:var(--color-primary)}.event-actions .btn-delete:hover{border-color:var(--color-danger)}.ev-time{font-size:12px;opacity:.8;white-space:nowrap;color:var(--color-text-secondary)}@media (max-width: 768px){.calendar-days-container{flex-direction:column;overflow-x:visible;gap:16px}.event-day-column{flex:1;min-width:100%}.calendar-header{flex-direction:column;align-items:flex-start;gap:12px}.events-calendar-view{padding:16px}}.event-details-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:1;transition:opacity .3s ease}.event-details-modal[style*="display: none"]{display:none!important}.modal-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:white;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;z-index:10000;position:relative;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn .3s ease;margin:auto}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}body.modal-open{overflow:hidden}.event-detail-header{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #e2e8f0}.detail-title{font-size:24px;font-weight:var(--font-weight-bold);color:#2d3748;margin-bottom:12px;line-height:1.3}.detail-date{font-size:15px;color:#718096;margin-bottom:12px}.detail-time{font-size:15px;color:#4361ee;font-weight:var(--font-weight-semibold);display:flex;align-items:center;gap:8px;margin-bottom:8px}.event-detail-content{margin-bottom:32px}.detail-section{margin-bottom:20px}.detail-label{font-size:12px;text-transform:uppercase;color:#718096;letter-spacing:.5px;margin-bottom:8px;display:flex;align-items:center;gap:6px}.detail-value{font-size:15px;color:#4a5568;line-height:1.5;padding-left:18px}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:20px;border-top:1px solid #e2e8f0}.btn-primary,.btn-secondary{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:var(--font-weight-semibold);cursor:pointer;border:none;display:flex;align-items:center;gap:8px;transition:all .2s ease;min-width:100px;justify-content:center}.btn-primary{background:#4361ee;color:#fff}.btn-primary:hover{background:#3a56d4;transform:translateY(-1px);box-shadow:0 4px 12px #4361ee4d}.btn-secondary{background:#f7fafc;color:#4a5568;border:1px solid #e2e8f0}.btn-secondary:hover{background:#edf2f7}@media (max-width: 768px){.event-details-modal{padding:10px}.modal-content{max-width:95%;margin:10px}.modal-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}.detail-title{font-size:20px}}#assignmentsContainer{display:flex;flex-direction:column;gap:10px;background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:14px;box-shadow:var(--shadow-default);padding:12px;color:var(--color-text-primary);min-height:140px}.assignment-item{display:grid;grid-template-columns:36px 1fr auto;align-items:start;gap:12px;background:linear-gradient(180deg,color-mix(in srgb,var(--color-accent) 10%,transparent),color-mix(in srgb,var(--color-bg-surface) 86%,transparent));border:1px solid var(--color-border-light);border-left:3px solid rgba(201,164,76,.75);border-radius:14px;padding:10px 12px;box-shadow:0 10px 26px #0206171a;transition:background .2s ease,border-color .2s ease,transform .05s ease,box-shadow .2s ease;cursor:pointer}.assignment-item:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--color-accent) 14%,transparent),color-mix(in srgb,var(--color-bg-surface) 82%,transparent));border-color:color-mix(in srgb,rgba(201,164,76,.55) 60%,var(--color-border-light));transform:translateY(-1px);box-shadow:0 14px 34px #02061724}.assignment-item.overdue{border-left:4px solid var(--color-danger);background:linear-gradient(90deg,color-mix(in srgb,var(--color-danger) 14%,transparent) 0%,transparent 12%),var(--color-bg-surface)}.assignment-item.completed{opacity:.74;background:linear-gradient(90deg,color-mix(in srgb,var(--color-success) 12%,transparent) 0%,transparent 12%),var(--color-bg-surface)}.assignment-main.completed .assignment-title{text-decoration:line-through;color:var(--color-text-tertiary)}.assignment-check{width:26px;height:26px;border-radius:50%;border:2px solid rgba(201,164,76,.55);display:flex;align-items:center;justify-content:center;cursor:pointer;margin-top:2px;background:var(--color-bg-secondary);transition:all .2s ease;flex-shrink:0}.assignment-check.checked{background:var(--color-success);border-color:var(--color-success);color:#fffffff5}.assignment-check:hover{border-color:#c9a44cd9}.assignment-title{font-weight:var(--font-weight-extrabold);letter-spacing:.2px;line-height:1.2;margin-bottom:4px;color:var(--color-text-primary);word-break:break-word;font-size:15px}.assignment-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.assignment-grade{font-weight:var(--font-weight-bold);font-size:13px;padding:2px 8px;border-radius:10px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-light);color:var(--color-text-secondary);flex-shrink:0}.assignment-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--color-text-secondary);margin-bottom:6px}.assignment-notes{font-size:13px;color:var(--color-text-secondary);padding:8px;background:color-mix(in srgb,var(--color-bg-tertiary) 82%,transparent);border-radius:12px;border-left:3px solid rgba(201,164,76,.55);margin-top:8px}.assignment-actions{display:flex;gap:8px;flex-shrink:0}.btn-icon{width:34px;height:34px;border:1px solid var(--color-border-light);border-radius:12px;background:var(--color-bg-surface);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:var(--color-text-secondary)}.btn-icon:hover{background:var(--color-bg-tertiary);border-color:#c9a44c59;color:#c9a44cf2}.btn-edit:hover{background:color-mix(in srgb,var(--color-accent) 14%,transparent);border-color:color-mix(in srgb,var(--color-accent) 38%,var(--color-border-light));color:var(--color-accent)}.btn-delete:hover{background:color-mix(in srgb,var(--color-danger) 12%,transparent);border-color:color-mix(in srgb,var(--color-danger) 28%,var(--color-border-light));color:var(--color-danger)}.badge,.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-border-light);background:var(--color-bg-secondary);padding:2px 8px;border-radius:999px;font-size:11px;color:var(--color-text-secondary)}.chip-danger{border-color:color-mix(in srgb,var(--color-danger) 30%,var(--color-border-light));background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger)}.chip-warning{border-color:color-mix(in srgb,var(--color-warning) 30%,var(--color-border-light));background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:var(--color-warning)}.chip-success{border-color:color-mix(in srgb,var(--color-success) 30%,var(--color-border-light));background:color-mix(in srgb,var(--color-success) 12%,transparent);color:var(--color-success)}.chip-info{border-color:color-mix(in srgb,var(--color-accent) 30%,var(--color-border-light));background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-accent)}.badge-course{border-color:#c9a44c38;background:color-mix(in srgb,rgba(201,164,76,.14) 60%,transparent);color:var(--color-text-primary)}#assignmentsContainer .empty-state{text-align:center;padding:24px 8px;color:var(--color-text-secondary);display:flex;flex-direction:column;align-items:center;gap:8px}#assignmentsContainer .empty-state i{font-size:26px;color:#c9a44cd9;opacity:.75}#assignmentsContainer .empty-state p{margin:0;font-size:14px;color:var(--color-text-tertiary)}.assignment-priority{font-size:11px;padding:4px 8px;border-radius:999px;border:1px solid var(--color-border-light);font-weight:var(--font-weight-semibold);background:var(--color-bg-secondary);color:var(--color-text-secondary)}.priority-low{background:color-mix(in srgb,var(--color-accent) 10%,transparent);border-color:color-mix(in srgb,var(--color-accent) 20%,var(--color-border-light));color:var(--color-accent)}.priority-medium{background:color-mix(in srgb,var(--color-warning) 10%,transparent);border-color:color-mix(in srgb,var(--color-warning) 20%,var(--color-border-light));color:var(--color-warning)}.priority-high{background:color-mix(in srgb,var(--color-danger) 10%,transparent);border-color:color-mix(in srgb,var(--color-danger) 20%,var(--color-border-light));color:var(--color-danger)}.assignment-due{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-light);border-radius:999px;font-size:11px;font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.assignment-due.overdue{background:color-mix(in srgb,var(--color-danger) 10%,transparent);border-color:color-mix(in srgb,var(--color-danger) 22%,var(--color-border-light));color:var(--color-danger)}.assignment-course{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-light);border-radius:999px;font-size:11px;font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.assignment-status{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;border:1px solid var(--color-border-light)}.assignment-status.pending{background:color-mix(in srgb,var(--color-warning) 10%,transparent);border-color:color-mix(in srgb,var(--color-warning) 22%,var(--color-border-light));color:var(--color-warning)}.assignment-status.in-progress{background:color-mix(in srgb,var(--color-accent) 10%,transparent);border-color:color-mix(in srgb,var(--color-accent) 22%,var(--color-border-light));color:var(--color-accent)}.assignment-status.completed{background:color-mix(in srgb,var(--color-success) 10%,transparent);border-color:color-mix(in srgb,var(--color-success) 22%,var(--color-border-light));color:var(--color-success)}.assignment-status.submitted{background:color-mix(in srgb,rgba(201,164,76,.14) 60%,transparent);border-color:#c9a44c3d;color:var(--color-text-primary)}.assignment-progress{margin-top:8px;padding-top:8px;border-top:1px solid var(--color-border-light)}.progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:11px;color:var(--color-text-secondary)}.assignment-progress-bar{height:6px;background:var(--color-border);border-radius:999px;overflow:hidden}.assignment-progress-fill{height:100%;background:linear-gradient(90deg,rgba(201,164,76,.75),var(--color-accent));border-radius:999px;transition:width .3s ease}.assignment-attachments{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}.attachment-item{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:10px;font-size:11px;color:var(--color-text-secondary);text-decoration:none;transition:all .2s ease}.attachment-item:hover{background:var(--color-bg-tertiary);border-color:#c9a44c4d;color:var(--color-text-primary)}.attachment-item i{font-size:10px}.assignments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.assignment-card{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:16px;padding:16px;transition:all .2s ease;display:flex;flex-direction:column;gap:12px}.assignment-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-default);border-color:#c9a44c47}.assignment-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.assignment-card-title{font-size:16px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:1.3;flex:1}.assignment-card-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--color-text-secondary)}.assignment-card-actions{display:flex;gap:8px;margin-top:auto}.assignment-filter{display:flex;gap:12px;margin-bottom:16px;padding:12px;background:var(--color-bg-secondary);border-radius:14px;border:1px solid var(--color-border-light)}.filter-group{display:flex;align-items:center;gap:8px}.filter-label{font-size:12px;color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.filter-select{padding:6px 10px;border:1px solid var(--color-border-light);border-radius:12px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:12px;min-width:120px}.filter-select:focus{outline:none;border-color:#c9a44c8c;box-shadow:0 0 0 3px #c9a44c24}@media (max-width: 768px){.assignment-item{grid-template-columns:1fr;gap:10px}.assignment-check{order:1;width:20px;height:20px}.assignment-main{order:2}.assignment-actions{order:3;justify-content:flex-end}.assignment-header{flex-direction:column;align-items:flex-start;gap:8px}.assignment-meta{flex-direction:column;align-items:flex-start;gap:6px}.sep{display:none}.assignments-grid{grid-template-columns:1fr}.assignment-filter{flex-direction:column;gap:8px}.filter-group{width:100%}.filter-select{flex:1}}@keyframes assignmentComplete{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.assignment-item.completed .assignment-check{animation:assignmentComplete .3s ease}.assignment-item.dragging{opacity:.6;transform:rotate(2deg);box-shadow:0 18px 46px #02061738}.assignment-dropzone{border:2px dashed var(--color-border);border-radius:14px;padding:20px;text-align:center;background:var(--color-bg-secondary);color:var(--color-text-tertiary);margin:10px 0;transition:all .3s ease}.assignment-dropzone.active{border-color:#c9a44c8c;background:color-mix(in srgb,rgba(201,164,76,.14) 60%,transparent);color:var(--color-text-primary)}.assignment-bulk-actions{display:flex;gap:8px;padding:12px;background:var(--color-bg-secondary);border-radius:14px;border:1px solid var(--color-border-light);margin-bottom:16px;align-items:center}.bulk-checkbox{width:20px;height:20px;border:2px solid var(--color-border);border-radius:6px;background:var(--color-bg-surface);cursor:pointer;display:flex;align-items:center;justify-content:center}.bulk-checkbox.checked{background:rgba(201,164,76,.85);border-color:#c9a44cd9;color:#fffffff5}.bulk-checkbox.checked:after{content:"✓";font-size:12px;font-weight:var(--font-weight-bold)}.bulk-action-buttons{display:flex;gap:8px;margin-left:auto}.bulk-action-btn{padding:6px 12px;border:1px solid var(--color-border-light);border-radius:12px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:12px;font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease}.bulk-action-btn:hover{background:var(--color-bg-tertiary);border-color:#c9a44c59;color:var(--color-text-primary)}.bulk-action-btn:disabled{opacity:.55;cursor:not-allowed}section[data-view=tasks]{width:100%;max-width:none;margin:0}section[data-view=tasks] .dashboard-grid-view{display:block;width:100%;max-width:none;margin:0}section[data-view=tasks] .card-tasks{width:100%;max-width:none;grid-column:1 / -1}section[data-view=tasks] #tasksContainer{width:100%;max-width:none}.tasks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;padding:10px 0}.task-card{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:16px;padding:20px;display:flex;flex-direction:column;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 20px #0206170d;position:relative;overflow:hidden}.task-card:hover{transform:translateY(-4px);border-color:#c9a44c66;box-shadow:0 12px 40px #0206171f;background:color-mix(in srgb,var(--color-bg-surface) 96%,var(--color-bg-secondary) 4%)}.task-card.completed{opacity:.7;background:color-mix(in srgb,var(--color-bg-secondary) 90%,transparent)}.task-card.completed:hover{opacity:.85}.task-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.task-checkbox{width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:var(--color-bg-secondary);border:2px solid var(--color-border-light);cursor:pointer;position:relative;transition:all .2s ease}.task-checkbox:hover{border-color:#c9a44c80;transform:scale(1.05)}.task-checkbox input[type=checkbox]{opacity:0;position:absolute;width:100%;height:100%;cursor:pointer;z-index:2}.task-checkbox .checkmark{display:inline-block;width:20px;height:20px;border-radius:5px;background:var(--color-bg-surface);transition:all .2s ease;position:relative}.task-checkbox input:checked+.checkmark{background:var(--color-success);border-color:var(--color-success);transform:scale(1.1)}.task-checkbox input:checked+.checkmark:after{content:"✓";position:absolute;color:#fffffffa;font-size:14px;font-weight:700;top:50%;left:50%;transform:translate(-50%,-50%)}.task-priority{font-size:11px;padding:6px 12px;border-radius:999px;font-weight:var(--font-weight-extrabold);letter-spacing:.05em;text-transform:uppercase;border:2px solid transparent}.priority-high{background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 25%,transparent)}.priority-medium{background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 25%,transparent)}.priority-low{background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-accent);border-color:color-mix(in srgb,var(--color-accent) 25%,transparent)}.task-card-body{flex:1;margin-bottom:16px}.task-title{font-size:16px;font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin-bottom:12px;line-height:1.4;word-break:break-word}.task-title.text-line-through{text-decoration:line-through;color:var(--color-text-tertiary)}.task-description{font-size:13px;color:var(--color-text-secondary);line-height:1.5;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-due-info{margin-top:auto}.due-date{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:var(--color-bg-secondary);border-radius:999px;font-size:12px;color:var(--color-text-secondary);border:1px solid var(--color-border-light)}.due-date.overdue{background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 25%,transparent)}.due-date.due-soon{background:color-mix(in srgb,var(--color-warning) 10%,transparent);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 25%,transparent)}.due-badge{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:var(--font-weight-extrabold);margin-left:4px}.overdue-badge{background:var(--color-danger);color:#fff}.due-soon-badge{background:var(--color-warning);color:#fff}.task-card-footer{display:flex;gap:8px;padding-top:16px;border-top:1px solid var(--color-border-light)}.task-card-footer .btn{flex:1;padding:8px 12px;font-size:13px}.task-details-modal{max-width:600px;background:var(--color-bg-surface);border-radius:24px;border:1px solid var(--color-border-light);box-shadow:0 20px 60px #02061733;overflow:hidden}.task-details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.task-details-priority{font-size:12px;padding:8px 16px;border-radius:999px;font-weight:var(--font-weight-extrabold);letter-spacing:.05em;text-transform:uppercase}.task-details-status{font-size:13px;padding:6px 12px;border-radius:999px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}.task-details-status.completed{background:color-mix(in srgb,var(--color-success) 15%,transparent);color:var(--color-success)}.task-details-title{font-size:24px;font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin-bottom:24px;line-height:1.3;word-break:break-word}.task-details-description{margin-bottom:32px}.task-details-description h4{font-size:16px;font-weight:var(--font-weight-extrabold);color:var(--color-text-secondary);margin-bottom:12px}.task-details-description p{font-size:15px;color:var(--color-text-primary);line-height:1.6;background:var(--color-bg-secondary);padding:20px;border-radius:12px;border:1px solid var(--color-border-light)}.task-details-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;padding:24px;background:var(--color-bg-secondary);border-radius:16px;border:1px solid var(--color-border-light)}.meta-item{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--color-text-primary)}.meta-item i{width:20px;color:var(--color-text-secondary);font-size:14px}.task-details-actions{display:flex;justify-content:space-between;align-items:center;width:100%;padding:20px 0 0;border-top:1px solid var(--color-border-light)}.action-buttons{display:flex;gap:12px}.task-details-actions .btn{padding:10px 20px;font-size:14px;font-weight:var(--font-weight-semibold)}.task-details-actions .btn-toggle-complete{min-width:150px}@media (max-width: 768px){.tasks-grid{grid-template-columns:1fr;gap:16px}.task-card{padding:16px}.task-details-modal{margin:10px;max-width:calc(100% - 20px)}.task-details-meta{grid-template-columns:1fr}.task-details-actions{flex-direction:column;gap:16px}.action-buttons{width:100%;flex-direction:column}.action-buttons .btn{width:100%}}@media (max-width: 480px){.task-card-header{flex-direction:column;align-items:flex-start;gap:12px}.task-priority{align-self:flex-start}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.task-card{animation:fadeInUp .4s ease forwards}.empty-state{text-align:center;padding:60px 20px;color:var(--color-text-secondary)}.empty-state i{font-size:48px;margin-bottom:20px;opacity:.3}.empty-state p{font-size:16px;margin-bottom:8px;color:var(--color-text-secondary)}.empty-state .text-muted{font-size:14px;opacity:.7}#taskDetailsModal .modal-footer{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}#taskDetailsModal .modal-footer .btn-primary,#taskDetailsModal .modal-footer .btn-secondary{min-width:110px}.note-card{border:1px solid var(--color-border-light);border-radius:16px;padding:14px;background:var(--color-bg-surface);cursor:pointer;box-shadow:0 10px 26px #0206171a;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;position:relative;overflow:hidden}.note-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(700px 320px at 100% 0%,color-mix(in srgb,var(--color-accent) 16%,transparent),transparent 55%),radial-gradient(700px 320px at 0% 100%,color-mix(in srgb,rgba(201,164,76,.18) 70%,transparent),transparent 55%);opacity:.55;pointer-events:none}.note-card>*{position:relative;z-index:1}.note-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px #02061724;border-color:#c9a44c4d;background:color-mix(in srgb,var(--color-bg-surface) 92%,var(--color-bg-secondary) 8%)}.note-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.note-title{font-weight:var(--font-weight-extrabold);font-size:16px;color:var(--color-text-primary);flex:1;line-height:1.3}.note-tag{font-size:12px;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,rgba(201,164,76,.14) 60%,transparent);border:1px solid rgba(201,164,76,.22);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);white-space:nowrap}.note-body,.note-content{font-size:13px;color:var(--color-text-secondary);line-height:1.5;margin-bottom:8px;white-space:pre-wrap;word-break:break-word}.note-date{font-size:12px;color:var(--color-text-tertiary);text-align:right}.note-actions{display:flex;gap:6px}.note-actions .btn-edit,.note-actions .btn-delete{background:var(--color-bg-secondary);border:1px solid var(--color-border-light);padding:8px;border-radius:12px;cursor:pointer;font-size:12px;color:var(--color-text-secondary);transition:background .18s ease,border-color .18s ease,transform .12s ease,color .18s ease}.note-actions .btn-edit:hover{background:color-mix(in srgb,var(--color-accent) 12%,transparent);border-color:color-mix(in srgb,var(--color-accent) 28%,var(--color-border-light));color:var(--color-accent);transform:translateY(-1px)}.note-actions .btn-delete:hover{background:color-mix(in srgb,var(--color-danger) 10%,transparent);border-color:color-mix(in srgb,var(--color-danger) 24%,var(--color-border-light));color:var(--color-danger);transform:translateY(-1px)}.note-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.note-tag-item{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:999px;font-size:11px;color:var(--color-text-secondary);cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}.note-tag-item:hover{background:var(--color-bg-tertiary);border-color:#c9a44c4d;color:var(--color-text-primary)}.note-category{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:999px;font-size:11px;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:10px}.note-priority{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:var(--font-weight-extrabold);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--color-border-light)}.note-priority.high{background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 24%,var(--color-border-light))}.note-priority.medium{background:color-mix(in srgb,var(--color-warning) 10%,transparent);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 24%,var(--color-border-light))}.note-priority.low{background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-accent);border-color:color-mix(in srgb,var(--color-accent) 24%,var(--color-border-light))}.note-preview{max-height:200px;overflow:hidden;position:relative}.note-preview:after{content:"";position:absolute;bottom:0;left:0;right:0;height:46px;background:linear-gradient(transparent,var(--color-bg-surface));pointer-events:none}.note-full-content{max-height:none;overflow:visible}.note-full-content .note-preview:after{display:none}.note-metadata{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--color-border-light);font-size:11px;color:var(--color-text-tertiary)}.note-info{display:flex;align-items:center;gap:12px}.note-stat{display:flex;align-items:center;gap:6px}.note-stat i{font-size:10px;opacity:.85}.note-search{margin-bottom:16px}.search-input-wrapper{position:relative}.search-input-wrapper i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);font-size:14px}.note-search-input{width:100%;padding:10px 12px 10px 36px;border:1px solid var(--color-border-light);border-radius:12px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:14px}.note-search-input:focus{outline:none;border-color:#c9a44c8c;box-shadow:0 0 0 3px #c9a44c24}.note-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.filter-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--color-border-light);border-radius:999px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:12px;font-weight:var(--font-weight-semibold);cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .12s ease}.filter-chip:hover{background:var(--color-bg-tertiary);border-color:#c9a44c4d;color:var(--color-text-primary);transform:translateY(-1px)}.filter-chip.active{background:color-mix(in srgb,rgba(201,164,76,.92) 70%,#000 30%);border-color:#c9a44c38;color:#fffffff5}.note-sort{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:13px;color:var(--color-text-secondary)}.sort-options{display:flex;gap:8px;flex-wrap:wrap}.sort-option{padding:7px 12px;border:1px solid var(--color-border-light);border-radius:12px;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:12px;font-weight:var(--font-weight-semibold);cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}.sort-option:hover{background:var(--color-bg-tertiary);border-color:#c9a44c4d;color:var(--color-text-primary)}.sort-option.active{background:color-mix(in srgb,rgba(201,164,76,.92) 70%,#000 30%);border-color:#c9a44c38;color:#fffffff5}.note-editor{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:16px;padding:18px;margin-bottom:18px;box-shadow:0 10px 26px #02061714}.editor-toolbar{display:flex;gap:8px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--color-border-light);flex-wrap:wrap}.toolbar-button{width:38px;height:38px;border:1px solid var(--color-border-light);border-radius:12px;background:var(--color-bg-secondary);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .12s ease}.toolbar-button:hover{background:var(--color-bg-tertiary);border-color:#c9a44c4d;color:var(--color-text-primary);transform:translateY(-1px)}.toolbar-button.active{background:color-mix(in srgb,rgba(201,164,76,.92) 70%,#000 30%);border-color:#c9a44c38;color:#fffffff5}.note-editor-input{width:100%;min-height:200px;padding:12px;border:1px solid var(--color-border-light);border-radius:14px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:14px;line-height:1.6;resize:vertical}.note-editor-input:focus{outline:none;border-color:#c9a44c8c;box-shadow:0 0 0 3px #c9a44c24}.note-empty-state{text-align:center;padding:60px 20px;color:var(--color-text-secondary);background:var(--color-bg-surface);border:2px dashed var(--color-border);border-radius:16px}.note-empty-icon{font-size:48px;color:#c9a44c8c;margin-bottom:16px;opacity:.7}.note-empty-state h3{font-size:18px;font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin-bottom:8px}.note-empty-state p{color:var(--color-text-secondary);margin-bottom:24px;max-width:320px;margin-left:auto;margin-right:auto}.note-pinned{border-left:4px solid rgba(201,164,76,.95);background:linear-gradient(90deg,color-mix(in srgb,rgba(201,164,76,.14) 60%,transparent) 0%,transparent 14%),var(--color-bg-surface)}.note-shared{border-left:4px solid var(--color-accent);background:linear-gradient(90deg,color-mix(in srgb,var(--color-accent) 10%,transparent) 0%,transparent 14%),var(--color-bg-surface)}.note-locked{opacity:.85;position:relative}.note-locked .note-body{filter:blur(4px);-webkit-user-select:none;user-select:none}.note-locked:hover .note-body{filter:none;-webkit-user-select:text;user-select:text}@media (max-width: 1100px){.notes-grid{grid-template-columns:1fr}}@media (max-width: 768px){.note-card-head{flex-direction:column;align-items:flex-start;gap:8px}}.events-calendar-view{background:var(--color-bg-surface);border-radius:16px;box-shadow:var(--shadow-default);padding:22px;margin-bottom:24px;border:1px solid var(--color-border-light)}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--color-border-light)}.calendar-title{display:flex;align-items:center;gap:12px}.calendar-title i{font-size:22px;color:#c9a44ce6}.calendar-title h3{margin:0;font-size:20px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.calendar-summary{color:var(--color-text-secondary);font-size:13px;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);padding:6px 12px;border-radius:999px}.calendar-days-container{display:flex;gap:18px;overflow-x:auto;padding-bottom:16px;min-height:400px}.calendar-days-container::-webkit-scrollbar{height:8px}.calendar-days-container::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:999px}.calendar-days-container::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.calendar-days-container::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--color-border) 70%,rgba(201,164,76,.35))}.event-day-column{flex:0 0 280px;background:var(--color-bg-secondary);border-radius:14px;border:1px solid var(--color-border-light);overflow:hidden;min-height:350px;transition:all .2s ease}.event-day-column:hover{border-color:#c9a44c38;box-shadow:0 12px 26px #0206171a}.event-day-column.today{border-color:#c9a44c8c;background:linear-gradient(to bottom,color-mix(in srgb,rgba(201,164,76,.14) 60%,transparent),var(--color-bg-secondary))}.day-header{background:var(--color-bg-surface);padding:14px 16px;border-bottom:1px solid var(--color-border-light);text-align:center}.day-name{font-size:12px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;font-weight:var(--font-weight-semibold)}.day-date{font-size:24px;font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.today-badge{display:inline-block;background:rgba(201,164,76,.9);color:#fffffff5;font-size:11px;padding:2px 8px;border-radius:999px;margin-top:6px;font-weight:var(--font-weight-semibold);border:1px solid rgba(201,164,76,.22)}.day-events{padding:14px;display:flex;flex-direction:column;gap:12px;height:calc(100% - 80px);overflow-y:auto}.event-card{background:var(--color-bg-surface);border-radius:14px;padding:14px;border:1px solid var(--color-border-light);cursor:pointer;transition:all .2s ease;position:relative}.event-card:hover{border-color:#c9a44c66;box-shadow:0 12px 26px #0206171f;transform:translateY(-2px)}.event-time{font-size:13px;color:#c9a44ceb;font-weight:var(--font-weight-semibold);margin-bottom:6px;display:flex;align-items:center;gap:8px}.event-time:before{content:"";width:8px;height:8px;background:rgba(201,164,76,.92);border-radius:50%;display:inline-block}.event-title{font-size:15px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:8px;line-height:1.3}.event-location{font-size:13px;color:var(--color-text-secondary);display:flex;align-items:center;gap:6px;margin-bottom:8px}.event-location i{font-size:11px;opacity:.85}.event-description-preview{font-size:13px;color:var(--color-text-secondary);line-height:1.4;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.btn-view-details{background:transparent;border:1px solid var(--color-border-light);color:var(--color-text-secondary);font-size:12px;padding:6px 12px;border-radius:12px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}.btn-view-details:hover{background:var(--color-bg-tertiary);border-color:#c9a44c4d;color:var(--color-text-primary)}.no-events{text-align:center;padding:40px 20px;color:var(--color-text-tertiary)}.no-events i{font-size:32px;margin-bottom:12px;opacity:.55;color:#c9a44ca6}.no-events p{margin:0;font-size:14px}.events-empty-state{text-align:center;padding:60px 20px;background:var(--color-bg-surface);border-radius:16px;border:2px dashed var(--color-border)}.empty-icon{font-size:48px;color:var(--color-border);margin-bottom:20px}.events-empty-state h3{color:var(--color-text-primary);margin-bottom:8px}.events-empty-state p{color:var(--color-text-secondary);margin-bottom:24px}.calendar-footer{margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border-light);text-align:center;color:var(--color-text-secondary);font-size:14px}@media (max-width: 768px){.calendar-days-container{flex-direction:column;overflow-x:visible;gap:16px}.event-day-column{flex:1;min-width:100%}.calendar-header{flex-direction:column;align-items:flex-start;gap:12px}}.card.command-center .card-content.acc-grid{display:grid;grid-template-columns:1.15fr .95fr .75fr;gap:18px;align-items:start}@media (max-width: 1200px){.card.command-center .card-content.acc-grid{grid-template-columns:1fr}}.acc-charts{display:grid;gap:14px}.acc-chart{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:14px 14px 10px;overflow:hidden}.acc-chart-title{font-weight:700;color:var(--text-primary);margin-bottom:10px}.acc-risk-alerts{display:grid;gap:10px}.acc-subtitle{font-weight:700;color:var(--text-primary);margin-bottom:6px}.risk-list{display:grid;gap:12px}.risk-item{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:12px}.risk-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.risk-name{font-weight:800;color:var(--text-primary);max-width:62%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.risk-right{display:inline-flex;align-items:center;gap:8px}.risk-tag{font-size:12px;font-weight:700;padding:4px 8px;border-radius:999px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary)}.risk-tag-danger{color:var(--danger);border-color:#e5393559}.risk-tag-warn{color:var(--warning);border-color:#f59e0b59}.risk-tag-ok{color:var(--success);border-color:#10b98159}.risk-badge{font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-secondary)}.risk-badge.risk-danger{color:var(--danger)}.risk-badge.risk-warn{color:var(--warning)}.risk-badge.risk-watch{color:var(--accent)}.risk-badge.risk-ok{color:var(--success)}.risk-bar{height:10px;border-radius:999px;background:rgba(0,0,0,.06);overflow:hidden;border:1px solid var(--border-light);margin-bottom:10px}.risk-fill{height:100%;border-radius:999px;background:var(--accent)}.risk-item.risk-danger .risk-fill{background:var(--danger)}.risk-item.risk-warn .risk-fill{background:var(--warning)}.risk-item.risk-watch .risk-fill{background:var(--accent)}.risk-item.risk-ok .risk-fill{background:var(--success)}.risk-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.risk-kv{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:10px;padding:8px 10px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}.risk-kv .k{font-size:12px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.risk-kv .v{font-weight:800;color:var(--text-primary)}.risk-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.btn-mini{border-radius:10px;padding:10px 12px;font-weight:700;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer}.btn-mini i{margin-right:8px}.risk-footnote{margin-top:10px;display:flex;gap:10px;color:var(--text-tertiary);font-size:12px}.alerts-strip{display:flex;flex-wrap:wrap;gap:10px}.alert-chip{border-radius:999px;padding:10px 12px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-weight:700;cursor:pointer}.alert-chip:disabled{cursor:default;opacity:.9}.alert-danger{border-color:#e5393559}.alert-warn{border-color:#f59e0b59}.alert-ok{border-color:#10b98159}.acc-side{display:grid;gap:14px}.focus-card,.insights-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:14px}.focus-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}.focus-title{font-weight:900;color:var(--text-primary)}.focus-meta{font-size:12px;font-weight:800;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-light);padding:6px 10px;border-radius:999px}.focus-course{font-weight:900;font-size:16px;color:var(--text-primary);margin-bottom:6px}.focus-reason{color:var(--text-secondary);font-size:13px;line-height:1.35;min-height:34px}.focus-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.insights-header{display:flex;justify-content:space-between;align-items:center;font-weight:800;margin-bottom:10px;color:var(--text-primary)}.mini-link{background:transparent;border:none;color:var(--accent);cursor:pointer;font-weight:800}.insights-list{margin:0;padding-left:18px;color:var(--text-secondary);line-height:1.35}.insight-item{margin:6px 0}.card-prepcenter .prep-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.prep-grid{display:grid;grid-template-columns:360px 1fr;gap:16px;align-items:start}.prep-timer,.prep-history{border:1px solid var(--color-border-light);background:var(--color-bg-surface);border-radius:16px;padding:14px;box-shadow:0 10px 26px #0206171a}.timer-big{font-size:34px;font-weight:900;letter-spacing:.06em;text-align:center;padding:14px 10px;border:1px solid var(--color-border-light);border-radius:16px;background:color-mix(in srgb,var(--color-bg-secondary) 84%,transparent);color:var(--color-text-primary)}.timer-row{display:grid;gap:8px;margin-top:12px}.timer-row.two{grid-template-columns:1fr 1fr;gap:10px}.timer-hint{margin-top:10px;font-size:12px;color:var(--color-text-tertiary)}.card-prepcenter .panel-title,.prep-timer .panel-title,.prep-history .panel-title{display:flex;align-items:center;gap:8px;font-weight:var(--font-weight-extrabold);margin-bottom:10px;color:var(--color-text-primary);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.panel-title i{color:#c9a44cf2}.sessions-list{display:grid;gap:10px}.session-item{border:1px solid var(--color-border-light);background:var(--color-bg-secondary);border-radius:16px;padding:12px;transition:transform .12s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.session-item:hover{border-color:#c9a44c4d;background:var(--color-bg-tertiary);box-shadow:0 14px 34px #0206171f;transform:translateY(-1px)}.session-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.session-title{font-weight:var(--font-weight-extrabold);color:var(--color-text-primary)}.session-meta{font-size:12px;color:var(--color-text-tertiary);margin-top:4px}.timer-card{border:1px solid var(--color-border-light);border-radius:16px;padding:14px;background:var(--color-bg-secondary)}.timer-header{font-weight:var(--font-weight-extrabold);margin-bottom:8px;color:var(--color-text-primary)}.timer-display{font-size:32px;font-weight:900;text-align:center;margin:10px 0;color:var(--color-text-primary)}.timer-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.timer-meta{font-size:12px;color:var(--color-text-tertiary);margin-top:6px}.chip{background:rgba(201,164,76,.15);color:#c9a44cf2;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}.empty-state{text-align:center;padding:40px 20px;color:var(--color-text-tertiary)}.empty-state i{font-size:48px;margin-bottom:16px;color:var(--color-border-light)}.empty-state p{margin:0;font-size:14px}@media (max-width: 1050px){.prep-grid,.timer-row.two{grid-template-columns:1fr}}#historyContainer{display:flex;flex-direction:column;gap:12px;padding:10px 8px;background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:14px;box-shadow:var(--shadow-default);color:var(--color-text-primary);min-height:140px;max-height:10880px;overflow-y:auto}#historyContainer::-webkit-scrollbar{width:8px}#historyContainer::-webkit-scrollbar-track{background:transparent}#historyContainer::-webkit-scrollbar-thumb{background:color-mix(in srgb,rgba(201,164,76,.55) 70%,var(--color-border));border-radius:999px}.history-item{background:linear-gradient(180deg,color-mix(in srgb,rgba(201,164,76,.12) 60%,transparent),color-mix(in srgb,var(--color-bg-surface) 90%,transparent));border:1px solid color-mix(in srgb,rgba(201,164,76,.22) 60%,var(--color-border-light));border-left:3px solid rgba(201,164,76,.85);border-radius:14px;padding:12px 14px;box-shadow:0 10px 26px #0206171a;transition:background .2s ease,border-color .2s ease,transform .08s ease,box-shadow .2s ease}.history-item:hover{background:linear-gradient(180deg,color-mix(in srgb,rgba(201,164,76,.18) 70%,transparent),color-mix(in srgb,var(--color-bg-surface) 86%,transparent));border-color:#c9a44c59;transform:translateY(-1px);box-shadow:0 14px 34px #02061724}.history-title{font-weight:var(--font-weight-extrabold);font-size:15px;color:var(--color-text-primary);margin-bottom:4px}.history-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--color-text-secondary);font-size:12px;margin-bottom:6px}.history-meta i{color:#c9a44cf2;font-size:11px;opacity:.9}.history-desc{font-size:13px;color:var(--color-text-secondary);white-space:pre-wrap;line-height:1.45;margin-top:2px}#historyContainer .empty-state{text-align:center;padding:24px 10px;color:var(--color-text-tertiary);display:flex;flex-direction:column;align-items:center;gap:10px}#historyContainer .empty-state i{font-size:26px;color:#c9a44cd9}.history-term-block{margin-bottom:18px;border:1px solid var(--color-border-light);border-radius:14px;overflow:hidden;background:var(--color-bg-surface);box-shadow:0 10px 26px #02061714}.history-term-header{background:color-mix(in srgb,var(--color-bg-secondary) 84%,transparent);padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--color-border-light)}.history-term-title{margin:0;color:var(--color-text-primary);font-size:16px;font-weight:var(--font-weight-extrabold)}.history-term-gpa{color:var(--color-text-secondary);font-size:13px;font-weight:var(--font-weight-semibold);padding:6px 10px;border-radius:999px;border:1px solid var(--color-border-light);background:var(--color-bg-surface);white-space:nowrap}.history-table{width:100%;border-collapse:collapse}.history-table th{background:color-mix(in srgb,var(--color-bg-secondary) 80%,rgba(201,164,76,.1));padding:12px;text-align:left;font-weight:var(--font-weight-extrabold);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-light);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.history-table td{padding:12px;border-bottom:1px solid var(--color-border-light);color:var(--color-text-primary)}.history-table tr:hover td{background:var(--color-bg-secondary)}.history-term-summary{background:color-mix(in srgb,var(--color-bg-secondary) 84%,transparent);font-weight:var(--font-weight-extrabold)}#advPreviewWrap{max-height:260px;overflow-y:auto;padding:10px;border-radius:14px;border:1px solid var(--color-border-light);background:color-mix(in srgb,var(--color-bg-secondary) 82%,transparent)}#advPreviewWrap::-webkit-scrollbar{width:8px}#advPreviewWrap::-webkit-scrollbar-thumb{background:color-mix(in srgb,rgba(201,164,76,.55) 70%,var(--color-border));border-radius:999px}#advPreviewWrap::-webkit-scrollbar-track{background:transparent}.adv-preview-table{width:100%;border-collapse:collapse;font-size:.85rem}.adv-preview-table th,.adv-preview-table td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.adv-preview-table th:nth-child(2),.adv-preview-table td:nth-child(2){white-space:normal;min-width:200px;max-width:300px}.adv-preview-table td.editing{background:var(--color-bg-secondary);padding:4px}.adv-preview-table input[type=text],.adv-preview-table input[type=number],.adv-preview-table select{width:100%;padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:.85rem;background:var(--surface)}.row-actions{display:flex;gap:4px;justify-content:center}.row-actions button{padding:4px 8px;font-size:.75rem;border-radius:4px;border:1px solid var(--border);background:var(--surface);cursor:pointer}.row-actions button:hover{background:var(--color-bg-secondary)}.row-actions .save-btn{background:#10b981;color:#fff;border-color:#10b981}.row-actions .cancel-btn{background:#ef4444;color:#fff;border-color:#ef4444}.adv-preview-table tr.valid-row{background:rgba(16,185,129,.05)}.adv-preview-table tr.invalid-row{background:rgba(239,68,68,.05)}.adv-preview-table tr.invalid-row td{border-left:3px solid #ef4444}@media (max-width: 768px){#historyContainer{padding:10px}.history-term-header{flex-direction:column;align-items:flex-start}.adv-preview-table th:nth-child(2),.adv-preview-table td:nth-child(2){min-width:150px;max-width:200px}}.card.gpa-ops{background:var(--color-bg-surface, var(--card-bg));border:1px solid var(--color-border-light, var(--border));border-radius:16px;box-shadow:var(--shadow-default, none);overflow:hidden}.card.gpa-ops .card-header{background:var(--color-bg-surface, var(--card-bg));border-bottom:1px solid var(--color-border-light, var(--border));padding:18px 20px}.card.gpa-ops .gpa-ops-title{font-size:16px;font-weight:var(--font-weight-extrabold);color:var(--color-text-primary, var(--text-primary));letter-spacing:.02em}.card.gpa-ops .card-actions{display:flex;gap:10px}.card.gpa-ops .card-action{width:44px;height:40px;border-radius:12px;background:var(--color-bg-secondary, var(--bg-secondary));border:1px solid var(--color-border-light, var(--border));color:var(--color-text-secondary, var(--text-primary));transition:background .18s ease,border-color .18s ease,transform .12s ease}.card.gpa-ops .card-action:hover{background:var(--color-bg-tertiary, var(--bg-tertiary));border-color:#c9a44c47;transform:translateY(-1px)}.card.gpa-ops .card-content{padding:22px;background:var(--color-bg-surface, var(--card-bg))}.gpa-ops-grid{display:grid;grid-template-columns:minmax(420px,1fr) minmax(720px,1.7fr);gap:22px;align-items:start}.gpa-ops-section-title{font-size:12px;font-weight:var(--font-weight-extrabold);color:var(--color-text-secondary, var(--text-secondary));text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--color-border-light, var(--border-light));padding-bottom:10px;margin-bottom:16px}.gpa-ops-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}.gpa-ops-cards .gpa-ops-card:nth-child(3){grid-column:1 / -1}.gpa-ops-card{background:var(--color-bg-secondary, var(--bg-secondary));border:1px solid var(--color-border-light, var(--border));border-radius:14px;padding:20px;min-height:170px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 10px 26px #0206171a}.gpa-ops-card-head{font-size:13px;font-weight:var(--font-weight-bold);color:var(--color-text-secondary, var(--text-secondary))}.gpa-ops-big{font-size:46px;font-weight:900;color:var(--color-text-primary, var(--text-primary));text-align:center;line-height:1.1}.gpa-ops-sub{font-size:14px;color:var(--color-text-tertiary, var(--text-tertiary));text-align:center}.gpa-ops-footnote{margin-top:12px;font-size:13px;color:var(--color-text-tertiary, var(--muted))}.gpa-ops-table{background:var(--color-bg-surface, var(--card-bg));border:1px solid var(--color-border-light, var(--border));border-radius:14px;overflow:hidden}.gpa-ops-table-head{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:12px;padding:16px 18px;background:var(--color-bg-secondary, var(--bg-secondary));border-bottom:1px solid var(--color-border-light, var(--border));font-size:12px;font-weight:var(--font-weight-extrabold);color:var(--color-text-secondary, var(--text-secondary));text-transform:uppercase;letter-spacing:.08em}.gpa-ops-table-body{max-height:620px;overflow-y:auto}.gpa-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:12px;padding:16px 18px;align-items:center;border-top:1px solid var(--color-border-light, var(--border-light))}.gpa-row:hover{background:var(--color-bg-secondary, var(--bg-secondary))}.gpa-course{font-weight:var(--font-weight-bold);color:var(--color-text-primary, var(--text-primary));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gpa-input,.gpa-select{width:100%;padding:10px 12px;border:1px solid var(--color-border-light, var(--border));border-radius:10px;background:var(--color-bg-surface, var(--card-bg));color:var(--color-text-primary, var(--text-primary));font-size:14px;transition:border-color .18s ease,box-shadow .18s ease,transform .12s ease}.gpa-input:focus,.gpa-select:focus{outline:none;border-color:#c9a44c8c;box-shadow:0 0 0 3px #c9a44c24;transform:translateY(-1px)}.gpa-input[disabled]{background:var(--color-bg-secondary, var(--bg-secondary))}.gpa-btn{width:100%;padding:10px;border-radius:10px;font-size:13px;font-weight:var(--font-weight-bold);border:1px solid var(--color-border-light, var(--border));background:var(--color-bg-secondary, var(--bg-secondary));color:var(--color-text-primary, var(--text-primary));transition:transform .12s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.gpa-btn:hover:not(:disabled){background:var(--color-bg-tertiary, var(--bg-tertiary));border-color:#c9a44c47;transform:translateY(-1px)}.gpa-btn.add{background:color-mix(in srgb,var(--color-success) 10%,transparent);border-color:color-mix(in srgb,var(--color-success) 24%,var(--color-border-light));color:var(--color-success)}.gpa-btn.remove{background:color-mix(in srgb,var(--color-danger) 10%,transparent);border-color:color-mix(in srgb,var(--color-danger) 24%,var(--color-border-light));color:var(--color-danger)}.gpa-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.grades-table{border:1px solid var(--color-border-light, var(--border));border-radius:12px;overflow:hidden}.grades-header,.table-header{display:grid;grid-template-columns:1.5fr repeat(3,1fr) 1fr;padding:9px 11px;background:color-mix(in srgb,var(--color-bg-secondary) 78%,rgba(201,164,76,.1));border-bottom:1px solid var(--color-border-light, var(--border));font-size:12px;color:var(--color-text-secondary, var(--muted))}.table-row,.grades-row{display:grid;grid-template-columns:1.5fr repeat(3,1fr) 1fr;padding:9px 11px;border-bottom:1px solid var(--color-border-light, var(--border));align-items:center}.course-name{font-weight:600}.gpa-display{text-align:center;margin-bottom:12px}.current-gpa{font-size:32px;font-weight:var(--font-weight-extrabold);color:#c9a44ceb}.gpa-label{font-size:12px;color:var(--color-text-tertiary, var(--muted));margin-bottom:4px}.total-credits{font-size:12px;color:var(--color-text-tertiary, var(--muted))}.grade-table{width:100%;border-collapse:collapse}.grade-table th,.grade-table td{padding:10px 12px;border-bottom:1px solid var(--color-border-light, var(--border))}.grade-table th{background:color-mix(in srgb,var(--color-bg-secondary) 78%,rgba(201,164,76,.1));color:var(--color-text-secondary, var(--muted));font-size:12px}.grade-badge{padding:2px 8px;border-radius:999px;font-weight:var(--font-weight-bold);font-size:.85em;border:1px solid var(--color-border-light);background:var(--color-bg-secondary);color:var(--color-text-primary)}.grade-A,.grade-A+{background:color-mix(in srgb,var(--color-success) 12%,transparent);color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 24%,var(--color-border-light))}.grade-A-{background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-accent);border-color:color-mix(in srgb,var(--color-accent) 24%,var(--color-border-light))}.grade-B+,.grade-B{background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 24%,var(--color-border-light))}.grade-B-{background:color-mix(in srgb,var(--color-warning) 10%,transparent);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 22%,var(--color-border-light))}.grade-C+,.grade-C{background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 22%,var(--color-border-light))}.grade-C-{background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 24%,var(--color-border-light))}.grade-D+,.grade-D{background:color-mix(in srgb,var(--color-border) 60%,transparent);color:var(--color-text-secondary)}.grade-F{background:var(--color-danger);color:#fffffff5;border-color:color-mix(in srgb,var(--color-danger) 60%,var(--color-border-light))}.grade-P,.grade-CR{background:var(--color-success);color:#fffffff5;border-color:color-mix(in srgb,var(--color-success) 60%,var(--color-border-light))}.grade-W,.grade-I{background:var(--color-border);color:#ffffffeb;border-color:var(--color-border)}@media (max-width: 1200px){.gpa-ops-grid,.gpa-ops-cards{grid-template-columns:1fr}}@media (max-width: 600px){.gpa-ops-big{font-size:36px}.gpa-ops-table-head,.gpa-row{grid-template-columns:1.6fr 1fr 1fr;row-gap:8px}.gpa-btn{font-size:12px}}:root{--cn-gray-50: #f6f8f6;--cn-gray-100: #eef2ef;--cn-gray-200: #dde5df;--cn-gray-300: #c8d3cb;--cn-gray-400: #97a79d;--cn-gray-500: #6f8076;--cn-gray-600: #55685d;--cn-gray-700: #3d5146;--cn-gray-800: #26362d;--cn-gray-900: #17241d;--cn-blue-50: #eef7f1;--cn-blue-300: #7fb39a;--cn-blue-600: #1b6b4a;--cn-blue-700: #14553b;--cn-red-500: #ef4444;--cn-surface: #ffffff;--cn-bg: #f3f6f4;--cn-ink: #0b1220;--cn-ink-2: #1f2a37;--cn-ink-3: #334155;--cn-border: #d7e1da;--cn-border-strong: #c4d2c9;--cn-shadow: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--cn-shadow-lg: 0 10px 25px rgba(0, 0, 0, .12);--cn-radius: 4px;--cn-radius-sm: 2px;--cn-gap: 8px;--cn-gap-sm: 4px;--cn-gap-lg: 12px;--cn-font: "Segoe UI", system-ui, -apple-system, sans-serif;--cn-font-mono: "Cascadia Code", "Consolas", monospace}.cn-overlay{z-index:50000!important}.cn-overlay~.modal,.cn-overlay~.confirm-dialog,.cn-overlay~.prompt-dialog{z-index:60000!important}.modal,.confirm-dialog,.prompt-dialog,[role=dialog]{position:fixed;z-index:60000}.cn-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--cn-bg);display:flex;flex-direction:column;font-family:var(--cn-font)}.cn-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.cn-header{background:var(--cn-surface);border-bottom:1px solid var(--cn-border);display:flex;flex-direction:column;flex-shrink:0;position:relative;z-index:100}.cn-title-area{display:flex;align-items:center;padding:6px 12px;background:var(--cn-gray-50);border-bottom:1px solid var(--cn-border);height:44px}.cn-app-title{display:flex;align-items:center;gap:8px;margin-right:24px;font-weight:700;color:var(--cn-gray-700);font-size:14px}.cn-btn-app-menu{background:transparent;border:none;padding:4px;color:var(--cn-gray-700)}.cn-btn-app-menu:hover{background:var(--cn-gray-200)}.cn-app-name{font-weight:700}.cn-file-info{display:flex;align-items:center;gap:8px;flex:1}.cn-class-title{font-weight:700;font-size:14px;color:var(--cn-gray-700);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cn-separator{color:var(--cn-gray-400)}.cn-lecture-title{flex:1;max-width:400px;padding:4px 8px;border:1px solid var(--cn-border);border-radius:var(--cn-radius-sm);background:var(--cn-surface);color:var(--cn-ink);font-size:14px;outline:none}.cn-lecture-title:focus{border-color:var(--cn-blue-600);box-shadow:0 0 0 1px #1b6b4a8c}.cn-toolbar-row{display:flex;align-items:center;padding:6px 12px;gap:24px;border-bottom:1px solid var(--cn-border);background:var(--cn-surface);height:48px;overflow:visible}.cn-toolbar-group{display:flex;align-items:center;gap:8px;position:relative;overflow:visible}.cn-group{position:relative;display:flex;align-items:center;gap:2px;overflow:visible}.cn-group.cn-icons{gap:1px}.cn-btn-toolbar{padding:6px 12px;border:1px solid transparent;background:transparent;color:var(--cn-gray-700);font-size:13px;border-radius:var(--cn-radius-sm)}.cn-btn-toolbar:hover{background:var(--cn-gray-100);border-color:var(--cn-gray-300)}.cn-btn-icon{width:32px;height:32px;padding:0;border:1px solid transparent;background:transparent;color:var(--cn-gray-700);border-radius:var(--cn-radius-sm);display:inline-flex;align-items:center;justify-content:center}.cn-btn-icon:hover{background:var(--cn-gray-100);border-color:var(--cn-gray-300)}.cn-btn-small{width:28px;height:28px}.cn-pages-group{margin-left:auto;gap:4px}.cn-select-wrap{position:relative;min-width:180px}.cn-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--cn-surface);border:1px solid var(--cn-border);border-radius:var(--cn-radius-sm);padding:6px 28px 6px 10px;font-size:13px;color:var(--cn-gray-700);width:100%;outline:none}.cn-select:focus{border-color:var(--cn-blue-600);box-shadow:0 0 0 1px #1b6b4a8c}.cn-select-caret{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--cn-gray-500);pointer-events:none;font-size:12px}.cn-status-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 12px;background:var(--cn-surface);border-top:1px solid var(--cn-border);height:fit-content;width:fit-content;font-size:12px;color:var(--cn-gray-600)}.cn-status-left{display:flex;align-items:center;gap:16px;width:fit-content}.cn-status{display:inline-flex;align-items:center;gap:6px}.cn-status-dot{width:8px;height:8px;border-radius:50%;background:#22c55e}.cn-status.cn-status-saving .cn-status-dot{background:#f59e0b}.cn-status.cn-status-error .cn-status-dot{background:#ef4444}.cn-status-text{font-size:12px;color:var(--cn-gray-600)}.cn-timer{display:flex;align-items:center;gap:4px;padding:2px 6px;border:1px solid var(--cn-border);border-radius:var(--cn-radius-sm);background:var(--cn-gray-50)}.cn-timer-read{font-variant-numeric:tabular-nums;font-size:11px;color:var(--cn-gray-700)}.cn-date,.cn-page-count,.cn-word-count{font-size:11px;color:var(--cn-gray-600)}.cn-btn-primary{background:var(--cn-blue-600);color:#fff;border:1px solid var(--cn-blue-700);padding:6px 16px;font-weight:700;font-size:13px}.cn-btn-primary:hover{background:var(--cn-blue-700)}.cn-btn-close{margin-left:8px;border:1px solid var(--cn-border)}.cn-btn-close:hover{background:var(--cn-gray-100)}.cn-btn-danger:hover{background:#fee2e2;color:var(--cn-red-500)}.cn-menu{position:absolute;top:100%;left:0;min-width:200px;background:var(--cn-surface);border:1px solid var(--cn-border);border-radius:var(--cn-radius);box-shadow:var(--cn-shadow-lg);padding:4px;z-index:1000;margin-top:4px}.cn-menu-right{left:auto;right:0}.cn-menu button{width:100%;text-align:left;padding:8px 12px;border:0;background:transparent;border-radius:var(--cn-radius-sm);cursor:pointer;color:var(--cn-gray-700);font-size:13px}.cn-menu button:hover{background:var(--cn-gray-100)}.cn-doc{flex:1;overflow:auto;padding:24px;background:var(--cn-gray-100);position:relative}.cn-ruler{position:absolute;left:24px;right:24px;top:24px;height:20px;background:linear-gradient(to bottom,var(--cn-gray-300) 0%,var(--cn-gray-300) 1px,transparent 1px,transparent 100%);background-size:20px 20px;pointer-events:none;opacity:.28}.cn-page{max-width:8.5in;min-height:11in;margin:0 auto;background:var(--cn-surface);box-shadow:var(--cn-shadow);padding:72px;position:relative;border:1px solid var(--cn-border)}.cn-editor{min-height:calc(11in - 144px);outline:none;color:var(--cn-ink);font-size:11pt;line-height:1.5;font-family:Calibri,Segoe UI,sans-serif}.cn-editor:empty:before{content:attr(data-placeholder);color:var(--cn-gray-400);position:absolute;top:72px;left:72px}.cn-editor h2{font-size:16pt;font-weight:700;margin:18pt 0 6pt;color:var(--cn-gray-800)}.cn-editor h3{font-size:14pt;font-weight:700;margin:14pt 0 4pt;color:var(--cn-gray-800)}.cn-editor p{margin:0 0 12pt}.cn-editor blockquote{margin:12pt 0;padding:8pt 12pt;border-left:3px solid var(--cn-blue-300);background:var(--cn-blue-50);font-style:italic;color:var(--cn-gray-700)}.cn-editor pre{margin:12pt 0;padding:10pt;background:var(--cn-gray-50);border:1px solid var(--cn-gray-200);border-radius:var(--cn-radius);overflow:auto;font-family:var(--cn-font-mono);font-size:10pt}.cn-editor ul,.cn-editor ol{margin:12pt 0;padding-left:24pt}.cn-editor li{margin:4pt 0}.cn-editor table{width:100%;border-collapse:collapse;margin:12pt 0;border:1px solid var(--cn-gray-300)}.cn-editor th{background:var(--cn-gray-50);font-weight:700;text-align:left}.cn-editor th,.cn-editor td{border:1px solid var(--cn-gray-300);padding:6pt 8pt;font-size:10.5pt}.cn-focus .cn-header{display:none}.cn-focus .cn-doc{padding:0;background:#0b1f16}.cn-focus .cn-page{max-width:none;min-height:100vh;margin:0;padding:48px;box-shadow:none;background:var(--cn-surface)}.cn-focus .cn-editor{min-height:calc(100vh - 96px);font-size:14pt;line-height:1.8}.cn-header,.cn-toolbar-row,.cn-toolbar-group,.cn-group{overflow:visible!important;position:relative}.cn-btn-close-visible{background:#dc2626!important;color:#fff!important;border:1px solid #b91c1c!important;border-radius:var(--cn-radius-sm)!important;width:40px!important;height:40px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin-left:12px!important;transition:all .2s ease!important}.cn-btn-close-visible:hover{background:#b91c1c!important;transform:scale(1.05)!important;box-shadow:0 2px 8px #dc26264d!important}.cn-btn-close-visible:active{transform:scale(.98)!important}.math-notation{font-family:"STIX Two Math","Cambria Math",Times New Roman,serif!important;font-size:1.15em!important;padding:2px 4px!important;background:rgba(27,107,74,.08)!important;border-radius:4px!important;display:inline-block!important;vertical-align:middle!important;border:1px solid rgba(27,107,74,.22)!important}.cn-math-toolbar{display:flex!important;gap:8px!important;background:var(--cn-gray-50)!important;border:1px solid var(--cn-border)!important;border-radius:var(--cn-radius)!important;padding:12px!important;margin-top:8px!important;flex-wrap:wrap!important}.cn-math-category{display:flex!important;flex-direction:column!important;gap:6px!important;min-width:120px!important}.cn-math-category h4{margin:0 0 4px!important;font-size:11px!important;font-weight:700!important;color:var(--cn-gray-600)!important;text-transform:uppercase!important;letter-spacing:.5px!important}.cn-math-symbols{display:grid!important;grid-template-columns:repeat(6,1fr)!important;gap:4px!important}.cn-math-symbol-btn{width:36px!important;height:36px!important;padding:0!important;border:1px solid var(--cn-border)!important;background:var(--cn-surface)!important;border-radius:4px!important;font-family:"STIX Two Math","Cambria Math",serif!important;font-size:16px!important;cursor:pointer!important;transition:all .15s ease!important}.cn-math-symbol-btn:hover{background:var(--cn-blue-50)!important;border-color:var(--cn-blue-300)!important;transform:translateY(-1px)!important}.cn-editor-tools{display:flex!important;align-items:center!important;gap:8px!important;padding:8px 12px!important;background:var(--cn-gray-50)!important;border-bottom:1px solid var(--cn-border)!important}.cn-btn-eraser{background:linear-gradient(135deg,#fef3c7,#fde68a)!important;border:1px solid #f59e0b!important;color:#92400e!important}.cn-btn-eraser:hover{background:linear-gradient(135deg,#fde68a,#fcd34d)!important}.cn-context-menu{position:absolute!important;background:var(--cn-surface)!important;border:1px solid var(--cn-border)!important;border-radius:var(--cn-radius)!important;box-shadow:var(--cn-shadow-lg)!important;padding:6px!important;z-index:10000!important;min-width:160px!important}.cn-context-menu-item{display:flex!important;align-items:center!important;gap:8px!important;padding:8px 12px!important;border:none!important;background:none!important;width:100%!important;text-align:left!important;font-size:13px!important;color:var(--cn-gray-700)!important;border-radius:var(--cn-radius-sm)!important;cursor:pointer!important;transition:background .15s ease!important}.cn-context-menu-item:hover{background:var(--cn-gray-100)!important}.cn-context-menu-divider{height:1px!important;background:var(--cn-border)!important;margin:4px 0!important}.cn-editor table.selected{outline:2px solid #dc2626!important;outline-offset:2px!important}.cn-editor ul.selected,.cn-editor ol.selected{outline:2px solid #dc2626!important;outline-offset:4px!important;border-radius:4px!important}.cn-editor img.selected{outline:2px solid #dc2626!important;outline-offset:2px!important;border-radius:4px!important}.cn-dropdown-content{max-height:300px!important;overflow-y:auto!important;padding:8px!important}.cn-math-palette{display:grid!important;grid-template-columns:repeat(8,1fr)!important;gap:4px!important;padding:8px!important}.cn-math-palette-btn{width:32px!important;height:32px!important;padding:0!important;font-size:14px!important}@media (max-width: 1200px){.cn-page{padding:48px;max-width:100%}.cn-editor{min-height:auto}.cn-toolbar-row{gap:12px;flex-wrap:wrap;height:auto;padding:8px 12px}.cn-pages-group{margin-left:0;width:100%;order:3;margin-top:8px;justify-content:flex-start}}@media (max-width: 768px){.cn-status-bar{flex-direction:column;height:auto;gap:8px;padding:8px 12px}.cn-status-left,.cn-status-right{width:100%;justify-content:space-between}.cn-page{padding:24px}.cn-doc{padding:12px}}:root{--cn-forest-950: #071a10;--cn-forest-925: #081f12;--cn-forest-900: #0b2415;--cn-forest-875: #0f2a1d;--cn-forest-850: #123323;--cn-header-ink: rgba(255,255,255,.92);--cn-header-muted: rgba(255,255,255,.72);--cn-header-faint: rgba(255,255,255,.55);--cn-header-border: rgba(255,255,255,.1);--cn-header-hover: rgba(255,255,255,.08);--cn-header-active: rgba(255,255,255,.12)}.cn-header{background:linear-gradient(180deg,var(--cn-forest-900) 0%,var(--cn-forest-950) 100%)!important;border-bottom:1px solid rgba(0,0,0,.35)!important}.cn-title-area{background:transparent!important;border-bottom:1px solid var(--cn-header-border)!important;height:54px!important;padding:10px 14px!important}.cn-toolbar-row{background:transparent!important;border-bottom:0!important;height:54px!important;padding:10px 14px!important;gap:18px!important}.cn-app-title,.cn-app-title *{color:var(--cn-header-ink)!important}.cn-class-title{color:var(--cn-header-ink)!important;display:flex!important;align-items:center;max-width:fit-content!important}.cn-separator{color:var(--cn-header-faint)!important;display:flex!important;max-width:fit-content!important}.cn-lecture-title{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.14)!important;color:var(--cn-header-ink)!important}.cn-lecture-title::placeholder{color:#ffffff8c!important}.cn-lecture-title:focus{border-color:#78d2a58c!important;box-shadow:0 0 0 2px #78d2a538!important}.cn-btn-app-menu,.cn-btn-toolbar,.cn-btn-icon,.cn-btn-close{color:var(--cn-header-muted)!important}.cn-btn-toolbar:hover,.cn-btn-icon:hover,.cn-btn-app-menu:hover,.cn-btn-close:hover{background:var(--cn-header-hover)!important;border-color:#ffffff2e!important;color:var(--cn-header-ink)!important}.cn-btn-toolbar.is-active,.cn-btn-icon.is-active,.cn-btn-toolbar[aria-pressed=true],.cn-btn-icon[aria-pressed=true]{background:var(--cn-header-active)!important;border-color:#ffffff38!important;color:var(--cn-header-ink)!important}.cn-btn-primary{background:rgba(120,210,165,.18)!important;border:1px solid rgba(120,210,165,.35)!important;color:#ffffffeb!important}.cn-btn-primary:hover{background:rgba(120,210,165,.24)!important;border-color:#78d2a57a!important}.cn-select{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.14)!important;color:var(--cn-header-ink)!important}.cn-select:focus{border-color:#78d2a58c!important;box-shadow:0 0 0 2px #78d2a538!important}.cn-select-caret{color:#ffffffa6!important}.cn-timer{background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.14)!important}.cn-timer-read,.cn-date{color:var(--cn-header-muted)!important}.cn-menu{border:1px solid rgba(18,51,35,.45)!important}.cn-status-bar{background:#ffffff!important;border-top:1px solid var(--cn-border)!important}@media (max-width: 768px){.cn-title-area,.cn-toolbar-row{height:auto!important;padding:10px 12px!important}.cn-app-title{margin-right:12px!important}.cn-lecture-title{max-width:none!important}}#classNotesOverlay .cn-menu[hidden]{display:none!important}#classNotesOverlay:not(.is-open) .cn-menu{display:none!important}#classNotesOverlay .cn-header{z-index:65000!important}#classNotesOverlay .cn-menu{z-index:65010!important}:root{--bg: #f6fbf7;--bg-2: #eef6f0;--panel: #f6fbf7;--card: #ffffff;--card-2: #f7faf8;--text: #0f172a;--muted: #475569;--brand: #0A2415;--brand-2: #123a22;--accent: #D6B25E;--danger: #b91c1c;--success: #166534;--warning: #a16207;--border: rgba(15, 23, 42, .12);--shadow: 0 14px 38px rgba(2, 6, 23, .1);--radius: 12px;--container-max-width: 1400px;--color-bg-primary: var(--bg);--color-bg-secondary: var(--bg-2);--color-bg-surface: var(--card);--color-border: rgba(15, 23, 42, .14);--color-border-light: rgba(15, 23, 42, .08);--color-border-accent: rgba(10, 36, 21, .25);--color-text-primary: var(--text);--color-text-secondary: rgba(15, 23, 42, .72);--color-text-tertiary: rgba(15, 23, 42, .52);--color-primary: var(--brand);--color-primary-light: rgba(10, 36, 21, .12);--color-primary-dark: #06160D;--font-serif: Georgia, "Times New Roman", Times, serif;--text-xs: 12px;--text-sm: 13px;--text-md: 14px;--text-lg: 18px;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--border-color: var(--color-border);--card-bg: var(--color-bg-surface);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--text-tertiary: var(--color-text-tertiary);--primary: var(--color-primary);--primary-light: var(--color-primary-light)}body{margin:0;color:var(--text);font:400 14px/1.45 system-ui,Segoe UI,Inter,Arial;background:radial-gradient(1200px 600px at 18% -10%,rgba(10,36,21,.1),transparent 55%),radial-gradient(900px 500px at 90% 10%,rgba(214,178,94,.1),transparent 58%),linear-gradient(180deg,#f8fcf9 0%,#eff6f1 55%,#f6fbf7 100%)}.sidebar{background:linear-gradient(180deg,rgba(10,36,21,.98) 0%,rgba(6,22,13,.98) 100%);color:#ffffffeb;border-right:1px solid rgba(255,255,255,.1);padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto}.sidebar a,.sidebar button,.sidebar .nav-link{color:#ffffffe0}.sidebar a:hover,.sidebar button:hover,.sidebar .nav-link:hover{color:#fff}.card{grid-column:span 4;background:linear-gradient(180deg,var(--card),var(--card-2));border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;min-width:0}.notes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.note-item{display:grid;grid-template-columns:1fr auto;gap:12px;padding:12px;background:#ffffff;border:1px solid var(--color-border-light);border-radius:12px}.note-title{font-weight:600}.note-content{color:var(--color-text-secondary)}.note-actions .btn-edit,.note-actions .btn-delete{background:rgba(10,36,21,.06);border:1px solid rgba(10,36,21,.16);padding:7px;border-radius:10px;color:var(--color-text-primary)}.note-actions .btn-edit:hover,.note-actions .btn-delete:hover{border-color:#0a24154d}.task-item{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:10px;background:#ffffff;border:1px solid var(--color-border-light);border-radius:12px}.task-checkbox{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:rgba(10,36,21,.06);border:1px solid rgba(10,36,21,.18)}.task-checkbox.checked{background:linear-gradient(135deg,rgba(22,101,52,.95),rgba(34,197,94,.85));border-color:#16653473}.task-text.completed{opacity:.6;text-decoration:line-through}.mini-input,.neo-input,.neo-select,.add-input,.auth-input,.modal-input,textarea,input,select{width:100%;background:#ffffff;color:var(--color-text-primary);border:1px solid var(--color-border-light);border-radius:10px;padding:10px 12px;outline:none}.mini-input:focus,.neo-input:focus,.neo-select:focus,.add-input:focus,.auth-input:focus,.modal-input:focus,textarea:focus,input:focus,select:focus{border-color:#0a241566;box-shadow:0 0 0 3px #0a24151f}.btn-primary,.btn-secondary,.card-action,.add-button,.neo-btn{cursor:pointer;border:0;border-radius:10px;padding:10px 14px;box-shadow:0 10px 24px #0206171a;transition:transform .08s ease,filter .15s ease,box-shadow .15s ease}.btn-primary,.add-button{background:linear-gradient(180deg,var(--brand),var(--color-primary-dark));color:#fff}.btn-primary:hover,.add-button:hover{filter:brightness(1.05)}.btn-primary:active,.add-button:active{transform:translateY(1px)}.btn-secondary{background:#ffffff;color:var(--color-text-primary);border:1px solid var(--color-border);box-shadow:none}.btn-secondary:hover{background:rgba(10,36,21,.04);border-color:#0a241538}.neo-btn{background:rgba(214,178,94,.14);border:1px solid rgba(214,178,94,.32);color:var(--color-text-primary);box-shadow:none}.neo-btn.warn{background:rgba(185,28,28,.1);border-color:#b91c1c40;color:#7f1d1d}.note-card{border:1px solid var(--border-color);border-radius:12px;padding:12px;background:var(--card-bg);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.note-card:hover{transform:translateY(-2px);border-color:#0a241538;box-shadow:0 14px 28px #0206171f}.note-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.note-title{font-weight:650;font-size:16px;color:var(--text-primary);flex:1}.note-tag{font-size:12px;padding:3px 9px;border-radius:999px;background:rgba(10,36,21,.1);color:var(--primary);margin-left:8px;border:1px solid rgba(10,36,21,.18)}.note-body{color:var(--text-secondary);font-size:14px;line-height:1.5;margin-bottom:8px}.note-date{font-size:12px;color:var(--text-tertiary);text-align:right}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-card{background:#ffffff;border:1px solid var(--color-border-light);border-radius:12px;padding:12px}.stat-icon{font-size:18px;opacity:.9}.stat-value{font-size:22px;font-weight:750;margin:6px 0}.stat-label{color:var(--muted);font-size:12px}@media (max-width: 900px){.notes-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 768px){.stats-grid{grid-template-columns:1fr}}:root{--deep-bg: var(--color-bg-primary, #f6fbf7);--deep-card: var(--color-bg-surface, #ffffff);--deep-ink: var(--color-text-primary, #0f172a);--deep-ink-muted: var(--color-text-secondary, rgba(15, 23, 42, .72));--deep-grid: var(--color-border, rgba(15, 23, 42, .14));--deep-grid-soft: var(--color-border-light, rgba(15, 23, 42, .08));--deep-accent: var(--color-primary, #0A2415);--deep-accent-2: rgba(10, 36, 21, .7);--google: #16a34a;--shadow: 0 14px 32px rgba(2, 6, 23, .12);--surface: var(--deep-card);--border: var(--deep-grid)}.card-schedule{background:var(--deep-card);color:var(--deep-ink);border:1px solid var(--deep-grid);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.card-schedule .card-header{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(10,36,21,.1),rgba(10,36,21,0));border-bottom:1px solid var(--deep-grid);padding:12px 14px}.card-schedule .card-title{font-weight:700;letter-spacing:.2px}.schedule-toolbar{display:flex;gap:8px}.schedule-toolbar .btn{background:rgba(10,36,21,.08);color:var(--deep-ink);border:1px solid rgba(10,36,21,.16);border-radius:10px;padding:6px 10px;font-size:12px;cursor:pointer}.schedule-toolbar .btn:hover{border-color:#0a241552}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;background:var(--deep-card);color:var(--deep-ink);border:1px solid var(--deep-grid);border-radius:12px;overflow:hidden}.schedule-table thead th{position:sticky;top:0;background:rgba(10,36,21,.06);color:var(--deep-ink);font-weight:650;font-size:12px;text-transform:uppercase;letter-spacing:.4px;padding:10px 8px;border-bottom:1px solid var(--deep-grid);z-index:2}.schedule-table th:first-child,.schedule-table td:first-child{width:80px}.schedule-table tbody td,.schedule-table tbody th{border-bottom:1px solid var(--deep-grid-soft);border-right:1px solid var(--deep-grid-soft);padding:8px;vertical-align:top}.schedule-table tbody td:last-child,.schedule-table thead th:last-child{border-right:none}.time-group-header td{background:rgba(10,36,21,.06);color:var(--deep-ink-muted);border-top:1px solid var(--deep-grid);border-bottom:1px solid var(--deep-grid)}.time-group-label{font-weight:750;font-size:12px;text-transform:uppercase;letter-spacing:.4px}.time-slot{color:var(--deep-ink-muted);font-weight:650;font-feature-settings:"tnum" 1;white-space:nowrap}.day-cell{min-height:60px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,250,248,.92));transition:background .15s ease}.day-cell:hover{background:rgba(10,36,21,.05)}.is-today{background:linear-gradient(180deg,rgba(10,36,21,.1),rgba(10,36,21,.04));outline:1px solid rgba(10,36,21,.22)}.now-line{position:relative}.now-line:after{content:"";position:absolute;left:0;right:0;top:calc(50% - 1px);height:2px;background:var(--deep-accent);opacity:.55}.event-card{background:#ffffff;border:1px solid rgba(10,36,21,.18);border-left:3px solid var(--deep-accent);border-radius:11px;padding:8px 10px;margin:6px 0;box-shadow:0 10px 22px #02061714;max-width:100%;overflow:hidden}.event-card .event-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.event-time{font-size:12px;color:var(--deep-ink-muted);font-weight:650}.badge-google{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--google);background:rgba(22,163,74,.08);border:1px solid rgba(22,163,74,.28);padding:2px 6px;border-radius:999px}.event-title{white-space:normal;word-break:break-word;font-size:14px}.event-desc,.event-location,.event-meta{font-size:12px;color:var(--deep-ink-muted);margin-top:4px;white-space:pre-wrap;word-break:break-word}.event-meta{display:flex;flex-wrap:wrap;gap:8px}.event-chip{display:inline-flex;align-items:center;border:1px solid var(--deep-grid);background:rgba(10,36,21,.05);padding:2px 8px;border-radius:999px;font-size:11px}.events-only .time-row td{padding-top:10px;padding-bottom:10px}.schedule-table th:first-child,.schedule-table td:first-child{position:sticky;left:0;z-index:1;background:rgba(10,36,21,.04)}#eventsContainer.compact .day-cell{padding:4px}#eventsContainer.compact .event-card{margin:4px 0;padding:7px 9px}.event-actions{display:flex;gap:6px;margin-top:6px}.event-actions .btn-edit,.event-actions .btn-delete{background:rgba(10,36,21,.06);border:1px solid rgba(10,36,21,.16);color:var(--deep-ink);padding:5px 7px;border-radius:9px;cursor:pointer}.event-actions .btn-edit:hover{border-color:#0a24154d}.event-actions .btn-delete:hover{border-color:#b91c1c59}.span-fill{height:8px;margin:6px 8px;border-radius:6px;background:rgba(10,36,21,.1);border:1px solid rgba(10,36,21,.22)}.event-chip{border:1px solid var(--border);border-radius:10px;padding:8px;margin:4px 0;background:var(--surface);font-size:12px}.event-chip.is-complete{opacity:.7;text-decoration:line-through}.event-chip-top{display:flex;gap:8px;justify-content:space-between;align-items:flex-start}.event-chip-title{font-weight:750;line-height:1.2}.event-chip-actions{display:flex;gap:6px}.mini-icon{border:1px solid rgba(10,36,21,.18);background:transparent;border-radius:8px;padding:4px 6px;cursor:pointer}.event-chip-time,.event-chip-loc{opacity:.82;margin-top:4px}.schedule-compact .sched-row td,.schedule-compact .sched-row th{padding-top:6px;padding-bottom:6px}.schedule-table .is-today{background:rgba(10,36,21,.06)}#assignmentsContainer{display:flex;flex-direction:column;gap:10px;background:var(--deep-card);border:1px solid var(--deep-grid);border-radius:12px;box-shadow:var(--shadow);padding:10px;color:var(--deep-ink);min-height:140px}.assignment-item{display:grid;grid-template-columns:36px 1fr auto;align-items:start;gap:12px;background:#ffffff;border:1px solid rgba(10,36,21,.18);border-left:3px solid var(--deep-accent);border-radius:12px;padding:10px 12px;box-shadow:0 12px 22px #02061714;transition:background .2s ease,border-color .2s ease,transform .05s ease}.assignment-item:hover{background:rgba(10,36,21,.04);border-color:#0a241547}.assignment-check{width:26px;height:26px;border-radius:50%;border:2px solid rgba(10,36,21,.5);display:flex;align-items:center;justify-content:center;cursor:pointer;margin-top:2px;background:rgba(10,36,21,.06)}.assignment-check.checked{background:rgba(22,101,52,.95);border-color:#16653473;color:#fff}.assignment-check i{font-size:13px}.assignment-main{min-width:0}.assignment-title{font-weight:800;letter-spacing:.2px;line-height:1.2;margin-bottom:4px;color:var(--deep-ink);word-break:break-word}.assignment-main.completed .assignment-title{opacity:.65;text-decoration:line-through}.assignment-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--deep-ink-muted)}.assignment-meta .sep{opacity:.55}.badge,.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(10,36,21,.18);background:rgba(10,36,21,.05);padding:2px 8px;border-radius:999px;font-size:11px}.chip-danger{border-color:#b91c1c47;background:rgba(185,28,28,.08);color:#7f1d1d}.chip-warning{border-color:#a162074d;background:rgba(161,98,7,.1);color:#854d0e}.chip-success{border-color:#16653447;background:rgba(22,101,52,.1);color:#166534}.assignment-actions{display:flex;gap:8px}.btn-icon{background:rgba(10,36,21,.06);border:1px solid rgba(10,36,21,.18);color:var(--deep-ink);padding:6px 8px;border-radius:10px;cursor:pointer}.btn-icon:hover{border-color:#0a241552}#assignmentsContainer .empty-state{text-align:center;padding:24px 8px;color:var(--deep-ink-muted);display:flex;flex-direction:column;align-items:center;gap:8px}#assignmentsContainer .empty-state i{font-size:26px;color:#0a2415bf}@media (max-width: 900px){.schedule-table th:nth-child(2),.schedule-table td:nth-child(2),.schedule-table th:nth-child(3),.schedule-table td:nth-child(3),.schedule-table th:nth-child(4),.schedule-table td:nth-child(4){display:none}.schedule-table th:first-child,.schedule-table td:first-child{width:64px}}
