/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@import "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:"Geist",system-ui,-apple-system,sans-serif;--font-mono:"Geist Mono","JetBrains Mono",monospace;--spacing:.25rem;--radius-xs:4px;--radius-sm:6px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #00000059,0 2px 8px #0003;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin .75s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--radius:10px;--color-background:#060810;--color-surface:#0b1019;--color-card:#0e1622;--color-card-hover:#121e2e;--color-border:#1e2c44;--color-border-subtle:#141e30;--color-border-strong:#2a3d5e;--color-muted:#0d1828;--color-muted-foreground:#8aa5c4;--color-muted-foreground-soft:#5a7a98;--color-foreground:#f0f4ff;--color-foreground-soft:#d4ddf0;--color-foreground-muted:#a8bdd4;--color-primary:#e8a020;--color-primary-hover:#f0af2e;--color-primary-active:#d4920e;--color-primary-foreground:#070a10;--color-primary-dim:#e8a0201f;--color-primary-border:#e8a02040;--color-success:#1fb86a;--color-success-dim:#1fb86a1a;--color-success-border:#1fb86a3d;--color-success-foreground:#30d478;--color-warning-dim:#e8a0201a;--color-warning-border:#e8a0203d;--color-warning-foreground:#e8a020;--color-error:#d94f4f;--color-error-dim:#d94f4f1a;--color-error-border:#d94f4f3d;--color-error-foreground:#f07878;--color-info:#3b8fd4;--color-info-dim:#3b8fd41a;--color-info-border:#3b8fd43d;--color-info-foreground:#6db8ff;--font-display:"Instrument Serif",Georgia,serif;--radius-full:9999px;--shadow-card:0 1px 3px #0006,0 8px 24px #00000047,0 0 0 1px #ffffff05 inset;--shadow-card-hover:0 2px 4px #00000073,0 12px 32px #00000059,0 0 0 1px #ffffff08 inset;--shadow-modal:0 4px 8px #00000080,0 24px 64px #00000080;--shadow-glow:0 0 32px #e8a02024;--transition-fast:all .12s ease;--transition-base:all .18s ease;--animate-scale-in:scaleIn .32s cubic-bezier(.22,1,.36,1) both}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.col-span-1{grid-column:span 1/span 1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-full{height:100%}.h-screen{height:100vh}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.border{border-style:var(--tw-border-style);border-width:1px}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:64rem){.lg\:hidden{display:none}}}:root,html:not(.light){--color-background:#060810;--color-surface:#0b1019;--color-card:#0e1622;--color-card-hover:#121e2e;--color-card-active:#162236;--color-border:#1e2c44;--color-border-subtle:#141e30;--color-border-strong:#2a3d5e;--color-muted:#0d1828;--color-muted-foreground:#8aa5c4;--color-muted-foreground-soft:#5a7a98;--color-foreground:#f0f4ff;--color-foreground-soft:#d4ddf0;--color-foreground-muted:#a8bdd4;--color-foreground-bright:#fff;--color-primary:#e8a020;--color-primary-hover:#f5b030;--color-primary-active:#d4920e;--color-primary-foreground:#050810;--color-primary-dim:#e8a02021;--color-primary-dim-hover:#e8a02033;--color-primary-border:#e8a02047;--color-success:#1fb86a;--color-success-dim:#1fb86a1a;--color-success-border:#1fb86a3d;--color-success-foreground:#30d478;--color-warning:#e8a020;--color-warning-dim:#e8a0201a;--color-warning-border:#e8a0203d;--color-warning-foreground:#e8a020;--color-error:#d94f4f;--color-error-dim:#d94f4f1a;--color-error-border:#d94f4f3d;--color-error-foreground:#f07878;--color-info:#3b8fd4;--color-info-dim:#3b8fd41a;--color-info-border:#3b8fd43d;--color-info-foreground:#6db8ff;--color-surface-raised:#141e30;--color-success-bg:#1fb86a1f;--card-inner-highlight:#ffffff08;--btn-secondary-bg:#ffffff0f;--btn-secondary-bg-hover:#ffffff1a;--input-bg:#ffffff0a;--input-bg-hover:#ffffff0f;--nav-hover-bg:#ffffff0d;--nav-hover-bg-strong:#ffffff17;--shimmer-base:#ffffff08;--shimmer-highlight:#ffffff12;--row-hover-bg:#ffffff08;--table-row-bg:#ffffff08;--list-item-bg:#ffffff08;--color-overlay:#000000a6;--transition-spring:all .4s cubic-bezier(.34,1.56,.64,1)}.light,html.light{--color-background:#f2f4f9;--color-surface:#e8ecf5;--color-card:#fff;--color-card-hover:#f5f7fd;--color-card-active:#eaedfa;--color-border:#d0d7ea;--color-border-subtle:#dce2f0;--color-border-strong:#b8c4de;--color-muted:#e8ecf5;--color-muted-foreground:#3d5068;--color-muted-foreground-soft:#6a80a0;--color-foreground:#080f1c;--color-foreground-soft:#162033;--color-foreground-muted:#2e4260;--color-foreground-bright:#000;--color-primary:#b87708;--color-primary-hover:#a56706;--color-primary-active:#8f5804;--color-primary-foreground:#fff;--color-primary-dim:#b877081a;--color-primary-dim-hover:#b877082e;--color-primary-border:#b8770852;--color-success:#0d9e5a;--color-success-dim:#0d9e5a17;--color-success-border:#0d9e5a47;--color-success-foreground:#086038;--color-warning:#b87708;--color-warning-dim:#b8770817;--color-warning-border:#b8770847;--color-warning-foreground:#b87708;--color-error:#c41f1f;--color-error-dim:#c41f1f14;--color-error-border:#c41f1f40;--color-error-foreground:#9b1515;--color-info:#1560a8;--color-info-dim:#1560a817;--color-info-border:#1560a840;--color-info-foreground:#0d4a88;--color-surface-raised:#fff;--color-success-bg:#0d9e5a1a;--card-inner-highlight:#ffffffbf;--btn-secondary-bg:#0000000d;--btn-secondary-bg-hover:#00000017;--input-bg:#00000006;--input-bg-hover:#0000000d;--nav-hover-bg:#0000000d;--nav-hover-bg-strong:#00000017;--shimmer-base:#0000000a;--shimmer-highlight:#00000014;--row-hover-bg:#00000008;--table-row-bg:#00000006;--list-item-bg:#00000005;--color-overlay:#00000073}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes achievementUnlock{0%{opacity:0;transform:scale(.5)rotate(-8deg)}65%{transform:scale(1.07)rotate(1.5deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes flame{0%,to{filter:brightness();transform:scale(1)rotate(-1.5deg)}25%{filter:brightness(1.1);transform:scale(1.06)rotate(2deg)}50%{filter:brightness(.95);transform:scale(.94)rotate(-.5deg)}75%{filter:brightness(1.05);transform:scale(1.04)rotate(1deg)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 #e8a02047}50%{box-shadow:0 0 20px 5px #e8a0201a}}@keyframes pulseDot{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pageSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes orbitFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(18px,-12px)scale(1.04)}66%{transform:translate(-10px,10px)scale(.97)}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;tab-size:4}body{background:var(--color-background);color:var(--color-foreground);font-family:var(--font-sans);font-feature-settings:"rlig" 1,"calt" 1,"ss01" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(80% 50% at 10% -10%,#e8a02017 0,#0000 60%),radial-gradient(60% 60% at 95% 110%,#3b8fd412 0,#0000 60%),radial-gradient(40% 40%,#e8a02006 0,#0000 80%);min-height:100vh;font-size:14.5px;line-height:1.65;transition:background-color .2s,color .2s}.light body{background-image:radial-gradient(80% 50% at 10% -10%,#c8880a12 0,#0000 60%),radial-gradient(60% 60% at 95% 110%,#1d6fb80d 0,#0000 60%)}.light .card{box-shadow:0 1px 3px #00000012,0 4px 16px #00000012,inset 0 0 0 1px #00000008}.light .card-hover:hover{box-shadow:0 2px 6px #00000017,0 8px 28px #0000001a}.light .glass-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe6}.light .text-body,.light .text-body-sm{color:var(--color-foreground-soft)}.light .text-caption,.light .text-micro{color:var(--color-muted-foreground)}.light .progress-fill-amber{background:linear-gradient(90deg,#a06606,#c8880a,#e8aa30);box-shadow:0 0 10px #b8770859}.light .progress-fill-green{background:linear-gradient(90deg,#0a7a44,#0d9e5a,#1ec070);box-shadow:0 0 10px #0d9e5a40}.light .nav-item{color:var(--color-muted-foreground)}.light .nav-item:hover{color:var(--color-foreground-soft);background:var(--nav-hover-bg)}.light .nav-item.active{color:var(--color-primary);background:var(--color-primary-dim)}.light .section-label{color:var(--color-muted-foreground)}.light .empty-state-icon{border-color:var(--color-border);background:#0000000a}.light .badge-green{color:#075c34;background:#0d9e5a1f;border-color:#0d9e5a4d}.light .badge-blue{color:#0c4a88;background:#1560a81a;border-color:#1560a847}.light .badge-red{color:#7a1010;background:#c41f1f1a;border-color:#c41f1f47}.light .badge-amber{color:#7a4c00;background:#b877081f;border-color:#b877084d}.light .badge-gray{color:var(--color-muted-foreground);border-color:var(--color-border);background:#0000000f}.light .status-dot-green{background:#0d9e5a;box-shadow:0 0 6px #0d9e5a66}.light .status-dot-amber{background:#b87708;box-shadow:0 0 6px #b8770866}.light .status-dot-blue{background:#1560a8;box-shadow:0 0 6px #1560a859}.light .status-dot-red{background:#c41f1f;box-shadow:0 0 6px #c41f1f59}.light ::-webkit-scrollbar-thumb{background:var(--color-border)}.light ::-webkit-scrollbar-thumb:hover{background:#c8880a59}.light ::selection{background:#c8880a33}.light :focus-visible{outline-color:#c8880a8c}*{scrollbar-width:thin;scrollbar-color:#e8a02040 transparent}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#e8a02038;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#e8a02066}::selection{color:var(--color-foreground);background:#e8a02038}:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #e8a020b3}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:2px solid #e8a020b3}:focus:not(:focus-visible){outline:none}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.text-display-lg{letter-spacing:-.02em;font-size:clamp(28px,4vw,38px);line-height:1.18}.text-display-lg,.text-display-md{font-family:var(--font-display);color:var(--color-foreground);font-weight:400}.text-display-md{letter-spacing:-.015em;font-size:clamp(22px,3vw,28px);line-height:1.22}.text-display-sm{font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-foreground);font-size:20px;font-weight:400;line-height:1.3}.text-heading{color:var(--color-foreground);font-size:16px;font-weight:600;line-height:1.4}.text-label{letter-spacing:.07em;text-transform:uppercase;color:var(--color-muted-foreground);font-size:11.5px;font-weight:700}.text-body{font-size:14px;line-height:1.6}.text-body,.text-body-sm{color:var(--color-foreground-soft)}.text-body-sm{font-size:13px;line-height:1.55}.text-caption{font-size:12px;line-height:1.5}.text-caption,.text-micro{color:var(--color-muted-foreground)}.text-micro{font-size:11px;line-height:1.45}.gradient-text{-webkit-text-fill-color:transparent;background:linear-gradient(125deg,#e8a020,#f5c84a 45%,#d08010);-webkit-background-clip:text;background-clip:text}.page-wrapper{max-width:920px}.page-wrapper,.page-wrapper-wide{margin:0 auto;padding:36px 32px;animation:pageSlideIn .35s cubic-bezier(.22,1,.36,1) both}.page-wrapper-wide{max-width:1100px}.page-wrapper-narrow{max-width:720px;padding:36px 32px}.page-container,.page-wrapper-narrow{margin:0 auto;animation:pageSlideIn .35s cubic-bezier(.22,1,.36,1) both}.page-container{width:100%;max-width:920px;padding:32px 24px}.page-header{margin-bottom:32px}.page-header h1{margin-bottom:6px}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:box-shadow .2s,border-color .2s,background .2s;position:relative;overflow:hidden}.card:before{content:"";border-radius:inherit;background:linear-gradient(145deg,var(--card-inner-highlight,#ffffff08) 0,transparent 55%);pointer-events:none;position:absolute;inset:0}.card-hover{cursor:pointer;transition:all .2s cubic-bezier(.22,1,.36,1)}.card-hover:hover{background:var(--color-card-hover);border-color:var(--color-border-strong);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.card-hover:active{transition:all .1s;transform:translateY(0)}.card-interactive{cursor:pointer;transition:all .18s cubic-bezier(.22,1,.36,1)}.card-interactive:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px);background:var(--color-card-hover)!important;border-color:var(--color-border-strong)!important}.card-interactive:active{transition:all 80ms;transform:translateY(0)}.card-primary{border-color:var(--color-primary-border);background:linear-gradient(145deg,#e8a02014,#e8a02008)}.card-success{background:linear-gradient(145deg,var(--color-success-dim) 0,#1fb86a08 100%);border-color:var(--color-success-border)}.card-error{background:linear-gradient(145deg,var(--color-error-dim) 0,#d94f4f08 100%);border-color:var(--color-error-border)}.card-info{background:linear-gradient(145deg,var(--color-info-dim) 0,#3b8fd408 100%);border-color:var(--color-info-border)}.glass-card{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-card);background:#0f1520d9}.student-row{transition:background .14s}.student-row:hover{background:var(--color-card-hover)!important}.file-row{transition:background var(--transition-fast)}.file-row:hover{background:var(--color-card-hover)!important}.lesson-row{transition:background var(--transition-fast)}.lesson-row:hover{background:var(--color-card-hover)!important}.leaderboard-row{transition:background var(--transition-fast)}.leaderboard-row:hover{background:var(--row-hover-bg)!important}.schedule-past-row{transition:background var(--transition-fast)}.schedule-past-row:hover{background:var(--color-card-hover)!important}.data-table-container{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.data-table-header{background:var(--color-surface,var(--color-card))}.data-table tbody tr:nth-child(2n){background:var(--table-row-bg,#ffffff07)}.btn{border-radius:var(--radius);font-family:var(--font-sans);letter-spacing:.01em;cursor:pointer;transition:var(--transition-base);white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:13.5px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:focus-visible{outline-offset:2px;outline:2px solid #e8a0208c}.btn:disabled,.btn[aria-disabled=true]{opacity:.48;cursor:not-allowed;pointer-events:none}.btn-primary{color:var(--color-primary-foreground);letter-spacing:.015em;background:linear-gradient(135deg,#f0a820,#d08010);box-shadow:0 2px 12px #e8a02061,0 1px 3px #0003}.btn-primary:hover{background:linear-gradient(135deg,#ffb830,#e09820);transform:translateY(-1px);box-shadow:0 4px 22px #e8a02080,0 2px 6px #00000040}.btn-primary:active{background:linear-gradient(135deg,#d4920e,#c07808);transform:translateY(0);box-shadow:0 2px 8px #e8a02047}.btn-secondary{background:var(--btn-secondary-bg,#ffffff0f);border:1px solid var(--color-border);color:var(--color-foreground-soft);font-weight:500}.btn-secondary:hover{background:var(--btn-secondary-bg-hover,#ffffff1a);border-color:var(--color-border-strong);color:var(--color-foreground)}.btn-secondary:active{background:var(--btn-secondary-bg,#ffffff0f)}.btn-ghost{color:var(--color-muted-foreground);background:0 0;border:1px solid #0000}.btn-ghost:hover{background:var(--nav-hover-bg,#ffffff0d);color:var(--color-foreground)}.btn-danger{background:var(--color-error-dim);border:1px solid var(--color-error-border);color:var(--color-error-foreground)}.btn-danger:hover{background:#d94f4f2e;border-color:#d94f4f59}.btn-warning{background:var(--color-warning-dim);border:1px solid var(--color-warning-border);color:var(--color-warning-foreground)}.btn-warning:hover{background:#e8a0202e;border-color:#e8a02061}.btn-success{background:var(--color-success-dim);border:1px solid var(--color-success-border);color:var(--color-success-foreground);font-weight:600}.btn-success:hover{background:#1fb86a2b;border-color:#1fb86a61}.btn-success:active{background:#1fb86a38}.btn-sm{border-radius:var(--radius-sm);padding:7px 14px;font-size:12.5px}.btn-lg{padding:13px 28px;font-size:15px}.btn-lg,.btn-xl{border-radius:var(--radius-md)}.btn-xl{padding:15px 36px;font-size:16px}.btn-icon{border-radius:var(--radius);aspect-ratio:1;padding:8px}.btn-icon-sm{border-radius:var(--radius-sm);padding:6px}.form-field{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--color-muted-foreground);letter-spacing:.05em;text-transform:uppercase;font-size:11.5px;font-weight:600}.form-input{background:var(--input-bg,#ffffff08);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;font-family:var(--font-sans);color:var(--color-foreground);transition:var(--transition-base);appearance:none;outline:none;padding:11px 14px;font-size:14px}.form-input::placeholder{color:var(--color-muted-foreground-soft)}.form-input:hover{border-color:var(--color-border-strong);background:var(--input-bg-hover,#ffffff0a)}.form-input:focus{background:var(--input-bg-hover,#ffffff0f);border-color:#e8a020a6;box-shadow:0 0 0 3px #e8a0201f,0 0 0 1px #e8a02066}.form-input.error{border-color:var(--color-error-border);box-shadow:0 0 0 3px var(--color-error-dim)}.form-input:disabled{opacity:.5;cursor:not-allowed}.form-hint{color:var(--color-muted-foreground);font-size:12px}.form-error{color:var(--color-error-foreground);font-size:12px}.badge{border-radius:var(--radius-full);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:600;line-height:1;display:inline-flex}.badge-amber{background:var(--color-primary-dim);color:var(--color-primary);border:1px solid var(--color-primary-border)}.badge-green{background:var(--color-success-dim);color:var(--color-success-foreground);border:1px solid var(--color-success-border)}.badge-blue{background:var(--color-info-dim);color:var(--color-info-foreground);border:1px solid var(--color-info-border)}.badge-red{background:var(--color-error-dim);color:var(--color-error-foreground);border:1px solid var(--color-error-border)}.badge-gray{background:var(--btn-secondary-bg,#ffffff0d);color:var(--color-muted-foreground);border:1px solid var(--color-border)}.status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-dot-green{background:var(--color-success-foreground);box-shadow:0 0 8px #30d478a6}.status-dot-amber{background:var(--color-primary);box-shadow:0 0 8px #e8a020a6}.status-dot-blue{background:var(--color-info-foreground);box-shadow:0 0 8px #6db8ff8c}.status-dot-gray{background:var(--color-muted-foreground)}.status-dot-red{background:var(--color-error-foreground);box-shadow:0 0 8px #f078788c}.notif-badge{letter-spacing:0;border-radius:99px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.notif-badge-amber{color:#f5c040;background:#e8a02033;border:1px solid #e8a02066;box-shadow:0 0 8px #e8a02047}.notif-badge-red{color:var(--color-error-foreground);border:1px solid var(--color-error-border);background:#d94f4f26}.nav-item{border-radius:var(--radius);letter-spacing:.005em;color:var(--color-muted-foreground);cursor:pointer;align-items:center;gap:10px;padding:9px 12px;font-size:13.5px;font-weight:450;text-decoration:none;transition:background .13s,color .13s,transform .13s;display:flex;position:relative;overflow:hidden}.nav-item:hover{background:var(--nav-hover-bg,#ffffff0d);color:var(--color-foreground-soft);transform:translate(1px)}.nav-item:active{transform:translate(0)}.nav-item:hover .nav-icon{opacity:.9}.nav-item.active{background:var(--color-primary-dim);color:var(--color-primary);font-weight:550}.nav-item.active .nav-icon{color:var(--color-primary);opacity:1}.nav-item.active:before{content:"";background:linear-gradient(180deg,var(--color-primary),#e8a02080);border-radius:0 4px 4px 0;width:3px;height:22px;position:absolute;top:50%;left:0;transform:translateY(-50%);box-shadow:0 0 10px #e8a02066}.nav-icon{opacity:.6;flex-shrink:0;width:16px;height:16px;transition:opacity .13s,color .13s}.progress-track{border-radius:var(--radius-full);background:var(--nav-hover-bg-strong,#ffffff0f);height:6px;overflow:hidden}.progress-track-sm{height:4px}.progress-track-lg{height:8px}.progress-fill{border-radius:var(--radius-full);height:100%;transition:width .7s cubic-bezier(.22,1,.36,1)}.progress-fill-amber{background:linear-gradient(90deg,#c47d10,#f0a820,#ffd060);box-shadow:0 0 12px #e8a02073}.progress-fill-green{background:linear-gradient(90deg,#0fa050,#1fb86a,#34d399);box-shadow:0 0 12px #1fb86a59}.progress-fill-blue{background:linear-gradient(90deg,#2878b8,#3b8fd4,#6db8ff);box-shadow:0 0 12px #3b8fd459}.alert{border-radius:var(--radius-md);align-items:flex-start;gap:12px;padding:13px 16px;font-size:13.5px;line-height:1.5;display:flex}.alert-error{background:var(--color-error-dim);border:1px solid var(--color-error-border);color:var(--color-error-foreground)}.alert-success{background:var(--color-success-dim);border:1px solid var(--color-success-border);color:var(--color-success-foreground)}.alert-warning{background:var(--color-warning-dim);border:1px solid var(--color-warning-border);color:var(--color-primary)}.alert-info{background:var(--color-info-dim);border:1px solid var(--color-info-border);color:var(--color-info-foreground)}.empty-state{text-align:center;background:var(--color-card);flex-direction:column;gap:12px;padding:56px 24px}.empty-state,.empty-state-icon{border-radius:var(--radius-lg);border:1px solid var(--color-border);justify-content:center;align-items:center;display:flex}.empty-state-icon{width:52px;height:52px;color:var(--color-muted-foreground);background:#ffffff0d;margin-bottom:4px;box-shadow:inset 0 1px #ffffff0f}.empty-state-title{color:var(--color-foreground-soft);letter-spacing:-.01em;font-size:15px;font-weight:600}.empty-state-desc{color:var(--color-muted-foreground);max-width:30ch;font-size:13.5px;line-height:1.6}.divider{background:var(--color-border);border:none;height:1px;margin:0}.divider-label{letter-spacing:.07em;text-transform:uppercase;color:var(--color-muted-foreground);align-items:center;gap:12px;margin-bottom:16px;font-size:11.5px;font-weight:700;display:flex}.divider-label:after,.divider-label:before{content:"";background:var(--color-border);flex:1;height:1px}.shimmer{background:linear-gradient(90deg,var(--shimmer-base,#ffffff06) 0,var(--shimmer-highlight,#ffffff0f) 50%,var(--shimmer-base,#ffffff06) 100%);border-radius:var(--radius);background-size:200% 100%;animation:shimmer 2.2s linear infinite}.skeleton{background:var(--shimmer-base,#ffffff0a);border-radius:var(--radius-sm);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,transparent 0,var(--shimmer-highlight,#ffffff0a) 50%,transparent 100%);background-size:200% 100%;animation:shimmer 2.2s linear infinite;position:absolute;inset:0}.section-header{justify-content:space-between;margin-bottom:16px}.section-header,.section-label{align-items:center;display:flex}.section-label{letter-spacing:.07em;text-transform:uppercase;color:var(--color-muted-foreground);gap:8px;font-size:11.5px;font-weight:700}.section-link{color:var(--color-primary);transition:var(--transition-fast);font-size:12px;font-weight:500;text-decoration:none}.section-link:hover{color:var(--color-primary-hover)}.data-table{border-collapse:collapse;width:100%;font-size:13.5px}.data-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted-foreground);border-bottom:1px solid var(--color-border);padding:11px 16px;font-size:11.5px;font-weight:700}.data-table td{border-bottom:1px solid var(--color-border-subtle);color:var(--color-foreground-soft);vertical-align:middle;padding:13px 16px;font-size:13.5px}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr{transition:var(--transition-fast)}.data-table tbody tr:hover{background:var(--row-hover-bg,#ffffff05)}.filter-bar{flex-wrap:wrap;gap:6px;display:flex}.filter-pill{border-radius:var(--radius-full);transition:var(--transition-fast);background:var(--nav-hover-bg,#ffffff0a);border:1px solid var(--color-border);color:var(--color-muted-foreground);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-sans);align-items:center;gap:7px;padding:7px 14px;text-decoration:none;display:inline-flex}.filter-pill:hover{background:var(--nav-hover-bg-strong,#ffffff12);color:var(--color-foreground-soft)}.filter-pill.active{background:var(--color-primary-dim);border:1px solid var(--color-primary-border);color:var(--color-primary);font-weight:600;box-shadow:0 0 12px #e8a0202e}.filter-pill .pill-count{min-width:18px;height:17px;color:inherit;background:#ffffff14;border-radius:99px;justify-content:center;align-items:center;padding:0 5px;font-size:10.5px;font-weight:700;display:inline-flex}.filter-pill.active .pill-count{background:#e8a02033}.stat-card{border-radius:var(--radius-lg);background:var(--color-card);border:1px solid var(--color-border);box-shadow:var(--shadow-card);padding:20px 22px}.stat-value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-foreground);margin-bottom:4px;font-size:38px;font-weight:400;line-height:1}.stat-label{color:var(--color-muted-foreground);gap:6px;font-size:12px}.stat-label,.streak-card{align-items:center;display:flex}.streak-card{border-radius:var(--radius-lg);text-align:center;background:linear-gradient(145deg,#e8a02014,#e8a02008);border:1px solid #e8a02033;flex-direction:column;justify-content:center;gap:4px;padding:22px}.streak-flame{font-size:36px;line-height:1;animation:flame 1.8s ease-in-out infinite;display:block}.streak-value{font-family:var(--font-display);color:var(--color-primary);font-size:44px;font-weight:700;line-height:1.05}.streak-unit{color:var(--color-muted-foreground);font-size:12px}.streak-record{border-radius:var(--radius-full);color:#c47d10;background:#e8a0201a;border:1px solid #e8a0202e;margin-top:10px;padding:3px 11px;font-size:11px}.achievement-item{border-radius:var(--radius-md);transition:var(--transition-base);background:linear-gradient(135deg,#e8a0200f,#e8a02005);border:1px solid #e8a0202e;align-items:flex-start;gap:12px;padding:14px 16px;display:flex;position:relative;overflow:hidden}.achievement-item:hover{box-shadow:0 0 24px #e8a0201a,var(--shadow-card);background:linear-gradient(135deg,#e8a02017,#e8a0200a);border-color:#e8a02052}.achievement-item:not(.achievement-locked):after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#e8a02059,#0000);height:1px;position:absolute;top:0;left:0;right:0}.achievement-icon{border-radius:var(--radius);background:#e8a0201f;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:20px;display:flex}.achievement-locked{opacity:.5;filter:grayscale(.75)brightness(.8);pointer-events:none;background:#ffffff04;border-color:#ffffff0d}.achievement-locked:hover{box-shadow:none;background:#ffffff04;border-color:#ffffff0d}.achievement-locked .achievement-icon{filter:brightness(.5)saturate(.2);background:#ffffff08}.light .achievement-locked{filter:grayscale(.7)brightness(.9);background:#00000008;border-color:#0000000f}@media (max-width:1023px){.page-container,.page-wrapper,.page-wrapper-narrow,.page-wrapper-wide{padding:20px 16px}.page-header{margin-bottom:20px}.text-display-lg{font-size:clamp(22px,6vw,32px)}.text-display-md{font-size:clamp(18px,5vw,26px)}}@media (max-width:639px){.page-container,.page-wrapper,.page-wrapper-narrow,.page-wrapper-wide{padding:16px 14px}.filter-bar{gap:6px}.filter-pill{padding:6px 11px;font-size:12px}.btn{padding:9px 16px;font-size:13px}.data-table td,.data-table th{padding:10px 12px}}.truncate-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ring-amber{box-shadow:0 0 0 2px #e8a02059}a{transition:color .12s}button{font-family:var(--font-sans)}*{-webkit-tap-highlight-color:transparent}.main-content{padding-bottom:0}@media (max-width:767px){.main-content{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}.mobile-nav-pb{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))!important}}.main-chat-active{height:100%!important;min-height:0!important;padding:0!important;position:relative!important;overflow:hidden!important}.chat-input-bar{flex-shrink:0}.chat-hint{display:none}@media (min-width:768px){.chat-hint{display:block}.chat-sidebar-col{flex-shrink:0!important;width:280px!important}.chat-main-col,.chat-sidebar-col{min-height:0!important;display:flex!important;position:relative!important;overflow:hidden!important}.chat-main-col{flex:1!important;min-width:0!important}}.lesson-row-link:hover{background:var(--color-card-hover)}.notif-row{color:inherit;text-decoration:none;transition:background .14s}.notif-row:hover{background:var(--color-card-hover)!important}.back-link{border-radius:var(--radius-sm);color:var(--color-muted-foreground);cursor:pointer;font-size:12.5px;font-weight:500;font-family:var(--font-sans);background:0 0;border:none;align-items:center;gap:6px;margin-bottom:20px;padding:5px 10px 5px 6px;text-decoration:none;transition:color .13s,background .13s;display:inline-flex}.back-link:hover{color:var(--color-foreground-soft);background:var(--nav-hover-bg,#ffffff0d)}.back-link:focus-visible{outline-offset:2px;border-radius:var(--radius-sm);outline:2px solid #e8a020b3}.lesson-item-row{border-radius:var(--radius);background:var(--list-item-bg,#ffffff06);border:1px solid var(--color-border-subtle);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;transition:background .14s,border-color .14s;display:flex}.lesson-item-row:hover{background:var(--color-card-hover);border-color:var(--color-border-strong)}details[open]>summary .faq-chevron{transform:rotate(180deg)}.faq-chevron{flex-shrink:0;transition:transform .2s}.password-toggle{cursor:pointer;color:var(--color-muted-foreground);border-radius:var(--radius-xs);background:0 0;border:none;align-items:center;padding:3px;line-height:0;transition:color .13s;display:flex;position:absolute;top:50%;right:13px;transform:translateY(-50%)}.password-toggle:hover{color:var(--color-foreground-soft)}.password-toggle:focus-visible{outline-offset:1px;outline:2px solid #e8a020b3}.sidebar-signout-btn{width:100%;color:var(--color-muted-foreground);cursor:pointer;text-align:left;font-size:12px;font-family:var(--font-sans);background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;transition:background .15s,color .15s;display:flex}.sidebar-signout-btn:hover{color:var(--color-error-foreground);background:#d94f4f1a}.sidebar-signout-btn:focus-visible{outline-offset:2px;border-radius:var(--radius-sm);outline:2px solid #e8a020b3}.sidebar-user-avatar{transition:box-shadow .2s,transform .2s}.sidebar-user-avatar:hover{transform:scale(1.05);box-shadow:0 0 0 2.5px #e8a02059}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.teacher-students-table .teacher-table-header{background:var(--color-surface,var(--color-card));border-bottom:1px solid var(--color-border);grid-template-columns:1fr 80px 80px 80px 120px 100px;gap:12px;padding:10px 20px;display:grid}.teacher-students-table .teacher-table-row{grid-template-columns:1fr 80px 80px 80px 120px 100px;align-items:center;gap:12px;padding:14px 20px;display:grid}.teacher-lessons-table .teacher-table-header{border-bottom:1px solid var(--color-border);background:var(--color-surface);grid-template-columns:1fr 120px 160px 110px 110px;padding:11px 20px;display:grid}.teacher-lessons-table .teacher-table-row{grid-template-columns:1fr 120px 160px 110px 110px;align-items:center;padding:14px 20px;display:grid}@media (max-width:1023px){.teacher-lessons-table .teacher-table-header,.teacher-students-table .teacher-table-header{display:none}.teacher-lessons-table .teacher-table-row,.teacher-students-table .teacher-table-row{flex-direction:column;gap:0;padding:14px 16px;display:flex}.teacher-col-duration,.teacher-col-hw,.teacher-col-lessons,.teacher-col-streak{display:none}.teacher-col-date,.teacher-col-payment,.teacher-col-status{margin-top:6px}.teacher-col-actions{margin-top:10px;justify-content:flex-start!important}}.page-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:32px;display:flex}@media (max-width:1023px){.page-title-row{margin-bottom:20px}}@media (max-width:639px){.page-header-actions{flex-wrap:wrap;gap:12px!important}.page-header-actions .btn{padding:8px 14px;font-size:12.5px}}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes listItemIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-stagger>*{animation:listItemIn .32s cubic-bezier(.22,1,.36,1) both}.animate-stagger>:first-child{animation-delay:0s}.animate-stagger>:nth-child(2){animation-delay:55ms}.animate-stagger>:nth-child(3){animation-delay:.11s}.animate-stagger>:nth-child(4){animation-delay:.165s}.animate-stagger>:nth-child(5){animation-delay:.22s}.animate-stagger>:nth-child(6){animation-delay:.275s}.animate-stagger>:nth-child(7){animation-delay:.33s}.animate-stagger>:nth-child(8){animation-delay:.385s}.list-item-animate{animation:listItemIn .3s cubic-bezier(.22,1,.36,1) both}.section-header-accent{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:12px;display:flex}.shimmer-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);position:relative;overflow:hidden}.shimmer-card:after{content:"";background:linear-gradient(105deg,#0000 40%,#ffffff0a 50%,#0000 60%) 0 0/200% 100%;animation:shimmer 2s linear infinite;position:absolute;inset:0}.link-hover{color:var(--color-primary);text-decoration:none;transition:color .15s;position:relative}.link-hover:after{content:"";background:var(--color-primary);width:0;height:1px;transition:width .2s;position:absolute;bottom:-1px;left:0}.link-hover:hover:after{width:100%}.card-glow-amber{box-shadow:var(--shadow-card),0 0 30px #e8a0201f;border-color:var(--color-primary-border)}.card-glow-green{box-shadow:var(--shadow-card),0 0 30px #1fb86a1a;border-color:var(--color-success-border)}.card-glow-blue{box-shadow:var(--shadow-card),0 0 30px #3b8fd41a;border-color:var(--color-info-border)}.card-glow-red{box-shadow:var(--shadow-card),0 0 30px #d94f4f1a;border-color:var(--color-error-border)}.light .card-glow-amber{box-shadow:0 1px 3px #00000012,0 4px 16px #00000012,0 0 20px #b877081a}.light .card-glow-green{box-shadow:0 1px 3px #00000012,0 4px 16px #00000012,0 0 20px #0d9e5a1a}.light .card-glow-blue{box-shadow:0 1px 3px #00000012,0 4px 16px #00000012,0 0 20px #1560a81a}.light .card-glow-red{box-shadow:0 1px 3px #00000012,0 4px 16px #00000012,0 0 20px #c41f1f1a}.progress-ring{flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:inline-flex;position:relative}.progress-ring svg{position:absolute;inset:0;overflow:visible;transform:rotate(-90deg)}.progress-ring svg circle.track{fill:none;stroke:var(--ring-track,#ffffff14);stroke-width:5px}.light .progress-ring svg circle.track{stroke:#00000012}.progress-ring svg circle.fill{fill:none;stroke:var(--ring-color,var(--color-primary));stroke-width:5px;stroke-linecap:round;stroke-dasharray:163.36;stroke-dashoffset:calc(163.36 * (1 - var(--ring-pct,0) / 100));filter:drop-shadow(0 0 4px var(--ring-color,var(--color-primary)));transition:stroke-dashoffset 1s cubic-bezier(.22,1,.36,1)}.progress-ring-label{font-family:var(--font-display);color:var(--color-foreground);z-index:1;letter-spacing:-.02em;font-size:15px;font-weight:600;line-height:1}.gradient-border{border-radius:var(--radius-lg);background:var(--color-card);position:relative}.gradient-border:before{content:"";border-radius:calc(var(--radius-lg) + 1px);pointer-events:none;opacity:.8;background:linear-gradient(135deg,#e8a02099,#e8a0201a 35%,#3b8fd41a 65%,#3b8fd466);padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.gradient-border:hover:before{opacity:1;background:linear-gradient(135deg,#e8a020e6,#e8a02033 35%,#3b8fd433 65%,#3b8fd4b3)}.btn-magnetic{will-change:transform;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s}.btn-magnetic:hover{transform:scale(1.04)translateY(-1px)}.btn-magnetic:active{transform:scale(.97)translateY(0)}.fab{cursor:pointer;z-index:50;width:52px;height:52px;font-family:var(--font-sans);opacity:0;border:none;border-radius:50%;justify-content:center;align-items:center;text-decoration:none;transition:all .25s cubic-bezier(.34,1.56,.64,1);animation:fabAppear .5s cubic-bezier(.34,1.56,.64,1) .8s both;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 4px 20px #00000040,0 2px 8px #00000026}.fab:hover{transform:scale(1.1)translateY(-2px);box-shadow:0 8px 32px #0000004d,0 4px 12px #0003}.fab:active{transition:transform .1s;transform:scale(.96)}.fab-primary{color:#050810;background:linear-gradient(135deg,#f0a820,#c87808);box-shadow:0 4px 20px #e8a02073,0 2px 8px #00000026}.fab-primary:hover{box-shadow:0 8px 32px #e8a02099,0 4px 12px #0003}.fab-label{white-space:nowrap;background:var(--color-card);border:1px solid var(--color-border);color:var(--color-foreground);border-radius:var(--radius);box-shadow:var(--shadow-sm);opacity:0;pointer-events:none;padding:6px 12px;font-size:12.5px;font-weight:500;transition:all .2s;position:absolute;right:60px;transform:translate(8px)}.fab:hover .fab-label{opacity:1;transform:translate(0)}@keyframes fabAppear{0%{opacity:0;transform:scale(.5)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (max-width:1023px){.fab{bottom:calc(72px + env(safe-area-inset-bottom,0px));width:48px;height:48px;right:20px}}.dynamic-island{z-index:100;cursor:pointer;background:#0a0f1a;border:1px solid #ffffff1f;border-radius:28px;max-width:90vw;transition:all .4s cubic-bezier(.34,1.2,.64,1);position:fixed;top:16px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 24px #00000080,inset 0 0 0 1px #ffffff0a}.light .dynamic-island{background:#1a2235;border-color:#ffffff26}.dynamic-island-collapsed{justify-content:center;align-items:center;gap:8px;width:120px;height:34px;padding:0 16px;display:flex}.dynamic-island-expanded{border-radius:22px;width:340px;padding:16px 20px}.dynamic-island-dot{background:var(--color-primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:pulseDot 2s ease-in-out infinite}.dynamic-island-text{color:#ffffffe6;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}@keyframes islandIn{0%{opacity:0;transform:translate(-50%)translateY(-20px)scale(.85)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.dynamic-island-enter{animation:islandIn .45s cubic-bezier(.34,1.4,.64,1) both}.glass-premium{-webkit-backdrop-filter:blur(20px)saturate(1.4);background:#0e1622bf;border:1px solid #ffffff14;box-shadow:0 4px 24px #00000059,inset 0 1px #ffffff0d,inset 0 -1px #0003}.light .glass-premium{-webkit-backdrop-filter:blur(20px)saturate(1.6);background:#ffffffc7;border:1px solid #00000014;box-shadow:0 4px 24px #0000001a,inset 0 1px #fffc}.bento-grid{grid-template-columns:repeat(12,1fr);gap:12px;display:grid}.bento-1x1{grid-area:span 1/span 3}.bento-2x1{grid-area:span 1/span 6}.bento-3x1{grid-area:span 1/span 9}.bento-4x1{grid-area:span 1/span 12}.bento-1x2{grid-area:span 2/span 3}.bento-2x2{grid-area:span 2/span 6}.bento-3x2{grid-area:span 2/span 9}@media (max-width:1023px){.bento-1x1,.bento-1x2{grid-column:span 6}.bento-2x1,.bento-2x2,.bento-3x1,.bento-3x2{grid-column:span 12}}@media (max-width:639px){.bento-1x1,.bento-1x2,.bento-2x1,.bento-2x2,.bento-3x1{grid-column:span 12}}.stepper{gap:0}.stepper,.stepper-step{align-items:center;display:flex;position:relative}.stepper-step{cursor:pointer;flex-direction:column;flex:1}.stepper-step:not(:last-child):after{content:"";background:var(--color-border);z-index:0;width:100%;height:2px;position:absolute;top:16px;left:50%}.stepper-step.completed:after{background:linear-gradient(90deg,var(--color-primary),var(--color-primary))}.stepper-dot{z-index:1;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;transition:all .25s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative}.stepper-dot.pending{background:var(--color-surface);border:2px solid var(--color-border);color:var(--color-muted-foreground)}.stepper-dot.active{color:#050810;background:linear-gradient(135deg,#f0a820,#c87808);border:none;animation:pulseGlow 2.5s ease-in-out infinite;box-shadow:0 0 20px #e8a02066,0 4px 12px #0003}.stepper-dot.completed{background:var(--color-success);color:#fff;border:none;box-shadow:0 0 16px #1fb86a59}.stepper-step:hover .stepper-dot{transform:scale(1.15)}.stepper-label{color:var(--color-muted-foreground);text-align:center;white-space:nowrap;margin-top:8px;font-size:11px;font-weight:500}.stepper-step.active .stepper-label{color:var(--color-primary);font-weight:600}.stepper-step.completed .stepper-label{color:var(--color-success-foreground)}@keyframes checkDraw{0%{stroke-dashoffset:30px}to{stroke-dashoffset:0}}.checkmark-path{stroke-dasharray:30;stroke-dashoffset:30px;animation:checkDraw .45s cubic-bezier(.22,1,.36,1) forwards}.parallax-card{transform-style:preserve-3d;will-change:transform;transition:transform .1s;position:relative;overflow:hidden}.parallax-card:after{content:"";border-radius:inherit;background:radial-gradient(circle at var(--shine-x,50%) var(--shine-y,50%),#ffffff12 0,transparent 60%);opacity:0;pointer-events:none;z-index:1;transition:opacity .2s;position:absolute;inset:0}.parallax-card:hover:after{opacity:1}.parallax-card:not(:hover){transition:transform .6s cubic-bezier(.22,1,.36,1)}.light [style*="color: var(--color-muted-foreground)"],.light [style*="color:var(--color-muted-foreground)"]{color:var(--color-muted-foreground)!important}.light .nav-item.active:before{background:linear-gradient(180deg,var(--color-primary),#b8770880);box-shadow:0 0 10px #b8770866}.light .filter-pill.active{color:var(--color-primary);background:var(--color-primary-dim);border-color:var(--color-primary-border);box-shadow:0 0 12px #b8770833}.light .notif-badge-amber{color:#7a4c00;background:#b8770826;border:1px solid #b8770859;box-shadow:0 0 8px #b8770833}[data-magnetic]{will-change:transform;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.light .gradient-text{-webkit-text-fill-color:transparent;background:linear-gradient(125deg,#b87708,#d4960a 45%,#8f5804);-webkit-background-clip:text;background-clip:text}@keyframes typingBounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.typing-dot{background:var(--color-muted-foreground);border-radius:50%;width:6px;height:6px;display:inline-block}.typing-dot:first-child{animation:typingBounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation:typingBounce 1.2s ease-in-out .2s infinite}.typing-dot:nth-child(3){animation:typingBounce 1.2s ease-in-out .4s infinite}@keyframes bubbleIn{0%{opacity:0;transform:scale(.92)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.bubble-new{animation:bubbleIn .22s cubic-bezier(.22,1,.36,1) both}.conv-active-glow{box-shadow:inset 3px 0 0 var(--color-primary),inset 0 0 20px #e8a0200a}.onboarding-step-connector{background:linear-gradient(#e8a02059,#e8a02014);flex:1;width:1px;min-height:24px;margin:3px 0}.page-hero{border-radius:var(--radius-xl);background:var(--color-card);border:1px solid var(--color-border);box-shadow:var(--shadow-card);padding:32px;position:relative;overflow:hidden}.page-hero:before{content:"";pointer-events:none;background:radial-gradient(at 90% 20%,#e8a0201a 0,#0000 65%);width:50%;height:100%;position:absolute;top:0;right:0}.quick-link-card{border-radius:var(--radius-md);background:var(--color-muted);border:1px solid var(--color-border);color:inherit;transition:var(--transition-base);cursor:pointer;flex-direction:column;gap:10px;padding:14px;text-decoration:none;display:flex}.quick-link-card:hover{background:var(--color-card-hover);border-color:var(--color-primary-border);transform:translateY(-1px);box-shadow:0 4px 16px #0000002e}.quick-link-card:active{transform:translateY(0)}.quick-link-icon{background:var(--color-primary-dim);border:1px solid var(--color-primary-border);width:32px;height:32px;color:var(--color-primary);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}details[open] summary svg:last-child{transform:rotate(180deg)}details summary:hover{background:var(--color-card-hover)}details>summary::-webkit-details-marker{display:none}details>summary::marker{display:none}@media (max-width:767px){.page-container,.page-wrapper,.page-wrapper-narrow,.page-wrapper-wide{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}}.table-responsive{-webkit-overflow-scrolling:touch;border-radius:var(--radius-lg);overflow-x:auto}.page-section{margin-bottom:28px}.page-section:last-child{margin-bottom:0}.stat-delta{align-items:center;gap:3px;font-size:11px;font-weight:600;display:inline-flex}.stat-delta-up{color:var(--color-success-foreground)}.stat-delta-down{color:var(--color-error-foreground)}.input-search{align-items:center;width:100%;display:flex;position:relative}.input-search .form-input{padding-left:36px}.input-search-icon{color:var(--color-muted-foreground);pointer-events:none;flex-shrink:0;position:absolute;left:12px}.filter-pill{transition:background .14s,color .14s,border-color .14s,box-shadow .14s}.filter-pill.active{transform:none}.stagger-grid>*{animation:listItemIn .32s cubic-bezier(.22,1,.36,1) both}.stagger-grid>:first-child{animation-delay:0s}.stagger-grid>:nth-child(2){animation-delay:40ms}.stagger-grid>:nth-child(3){animation-delay:80ms}.stagger-grid>:nth-child(4){animation-delay:.12s}.stagger-grid>:nth-child(5){animation-delay:.16s}.stagger-grid>:nth-child(6){animation-delay:.2s}.stagger-grid>:nth-child(7){animation-delay:.24s}.stagger-grid>:nth-child(8){animation-delay:.28s}.stagger-grid>:nth-child(9){animation-delay:.32s}.stagger-grid>:nth-child(10){animation-delay:.36s}.hw-item-row{border-radius:var(--radius);background:var(--color-muted);padding:11px 13px;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s;display:block}.hw-item-row:hover{background:var(--color-card-hover);box-shadow:0 2px 8px #0000001f}.student-stats{flex-shrink:0;align-items:center;gap:20px;display:flex}@media (max-width:540px){.student-stats{display:none!important}}.auth-page{background:radial-gradient(ellipse 80% 60% at 15% -10%,#e8a02021 0,transparent 60%),radial-gradient(ellipse 60% 50% at 90% 110%,#3b8fd41a 0,transparent 60%),radial-gradient(ellipse 50% 50% at 60% 40%,#e8a0200a 0,transparent 70%),var(--color-background);justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex;position:relative;overflow:hidden}.auth-orb{pointer-events:none;will-change:transform;filter:blur();border-radius:50%;position:fixed}.auth-orb-1{background:radial-gradient(circle,#e8a02017 0,#0000 65%);width:55vw;max-width:640px;height:55vw;max-height:640px;animation:orbitFloat 9s ease-in-out infinite;top:-18%;right:-8%}.auth-orb-2{background:radial-gradient(circle,#3b8fd412 0,#0000 65%);width:50vw;max-width:580px;height:50vw;max-height:580px;animation:orbitFloat 12s ease-in-out -4s infinite reverse;bottom:-20%;left:-10%}.auth-orb-3{background:radial-gradient(circle,#e8a0200a 0,#0000 65%);width:30vw;max-width:360px;height:30vw;max-height:360px;animation:orbitFloat 15s ease-in-out -7s infinite;top:40%;left:30%}.auth-card{z-index:10;width:100%;animation:pageSlideIn .4s cubic-bezier(.22,1,.36,1) both;position:relative}.auth-form-card{-webkit-backdrop-filter:blur(22px);border-radius:var(--radius-xl);background:#0e1622e0;border:1px solid #ffffff12;position:relative;overflow:hidden;box-shadow:0 4px 6px #00000040,0 20px 60px #00000073,inset 0 0 0 1px #ffffff08,0 0 60px #e8a0200a}.auth-form-card:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#e8a02047 40% 60%,#0000);height:1px;position:absolute;top:0;left:0;right:0}.auth-logo-line{background:linear-gradient(90deg,#e8a020cc,#e8a02033);border-radius:2px;width:40px;height:2px;margin:10px auto 0}.light .auth-form-card{background:#ffffffeb;border-color:#0000000f;box-shadow:0 4px 6px #0000000f,0 20px 60px #0000001f,inset 0 0 0 1px #fffc}.light .auth-form-card:before{background:linear-gradient(90deg,#0000,#b877084d 40% 60%,#0000)}.tab-btn{border-radius:var(--radius);cursor:pointer;color:var(--color-muted-foreground);font-size:12.5px;font-weight:500;font-family:var(--font-sans);background:0 0;border:none;align-items:center;gap:6px;padding:5px 12px;transition:background .14s,color .14s,box-shadow .14s;display:flex}.tab-btn:hover{background:var(--nav-hover-bg-strong,#ffffff0f);color:var(--color-foreground-soft)}.tab-btn[aria-selected=true]{background:var(--color-surface);color:var(--color-foreground);box-shadow:var(--shadow-sm)}.tab-btn-count{color:var(--color-muted-foreground);text-align:center;border-radius:10px;min-width:18px;padding:0 5px;font-size:11px;transition:background .14s}.tab-btn[aria-selected=true] .tab-btn-count{background:var(--color-muted)}@keyframes toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-6px)}30%{transform:translate(5px)}45%{transform:translate(-4px)}60%{transform:translate(3px)}75%{transform:translate(-2px)}}.shake{animation:shake .5s ease-in-out}@keyframes badgePulse{0%,to{transform:scale(1);box-shadow:0 0 #e8a02066}50%{transform:scale(1.08);box-shadow:0 0 8px 2px #e8a02040}}.notif-badge-amber{animation:badgePulse 2.5s ease-in-out infinite}.notif-badge-red{animation:badgePulse 2s ease-in-out infinite}.skeleton{background:linear-gradient(90deg,var(--color-surface) 25%,var(--color-border) 50%,var(--color-surface) 75%);border-radius:var(--radius);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}.form-field-float{position:relative}.form-field-float .form-input{padding-top:20px}.form-field-float .form-label-float{color:var(--color-muted-foreground);pointer-events:none;font-size:14px;transition:all .2s;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.form-field-float .form-input:focus+.form-label-float,.form-field-float .form-input:not(:placeholder-shown)+.form-label-float{color:var(--color-primary);font-size:10.5px;font-weight:600;top:8px;transform:translateY(0)}@keyframes bottomSheetIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes bottomSheetOut{0%{transform:translateY(0)}to{transform:translateY(100%)}}.theme-toggle-icon{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.theme-toggle-icon.rotating{transform:rotate(1turn)}.tab-indicator{background:var(--color-primary);border-radius:1px;height:2px;transition:left .3s cubic-bezier(.34,1.56,.64,1),width .3s;position:absolute;bottom:0}.card-enter{opacity:0;animation:listItemIn .4s forwards;transform:translateY(12px)}.progress-fill-animated{transition:width 1s cubic-bezier(.22,1,.36,1)}.btn-loading{pointer-events:none;position:relative;color:#0000!important}.btn-loading:after{content:"";width:16px;height:16px;color:var(--color-primary-foreground);border:2px solid;border-right:2px solid #0000;border-radius:50%;margin:-8px 0 0 -8px;animation:spin .6s linear infinite;position:absolute;top:50%;left:50%}.btn-secondary.btn-loading:after{color:var(--color-foreground)}.nav-icon-animated{transition:transform .2s}.nav-item:hover .nav-icon-animated{transform:scale(1.12)}.modal-exit{animation:fadeOut .2s forwards,scaleOut .2s forwards}@keyframes fadeOut{to{opacity:0}}@keyframes scaleOut{to{transform:scale(.95)}}@keyframes countUp{0%{opacity:0;filter:blur(4px);transform:translateY(8px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes overlayFadeOut{0%{opacity:1}to{opacity:0}}@keyframes confettiDrop{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(2turn)}}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes scrollReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes labelFloat{0%{font-size:14px;top:50%}to{font-size:11px;top:6px}}.filter-pill.active{animation:pillActivate .25s cubic-bezier(.34,1.56,.64,1)}@keyframes pillActivate{0%{transform:scale(.95)}50%{transform:scale(1.05)}to{transform:scale(1)}}.skeleton-text{border-radius:4px;height:14px}.skeleton-title{border-radius:4px;width:60%;height:20px}.skeleton-card{border-radius:var(--radius-md);height:80px}.skeleton-avatar{border-radius:50%;width:40px;height:40px}.skeleton-stat{border-radius:var(--radius-md);height:100px}.input-error{animation:shake .4s;border-color:var(--color-error)!important}.notif-badge-pulse{animation:badgePulse 2s ease-in-out infinite}.scroll-reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(20px)}.scroll-reveal.visible{opacity:1;transform:translateY(0)}.stat-animate{animation:countUp .6s cubic-bezier(.16,1,.3,1) both}.toast-container{z-index:200;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:16px;right:16px}.toast-container>*{pointer-events:auto}.toast{border-radius:var(--radius-md);background:var(--color-card);border:1px solid var(--color-border);box-shadow:var(--shadow-modal);color:var(--color-foreground);align-items:center;gap:10px;max-width:380px;padding:12px 16px;font-size:13.5px;animation:toastSlideIn .3s cubic-bezier(.34,1.56,.64,1);display:flex}.toast.toast-exit{animation:toastSlideOut .25s forwards}.toast-success{border-left:3px solid var(--color-success)}.toast-error{border-left:3px solid var(--color-error)}.toast-info{border-left:3px solid var(--color-info)}@keyframes bottomSheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes bottomSheetDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}@media (max-width:767px){.mobile-bottom-sheet{max-height:85vh;overflow-y:auto;border-radius:var(--radius-xl) var(--radius-xl) 0 0!important;max-width:100%!important;animation:bottomSheetUp .35s cubic-bezier(.16,1,.3,1)!important;position:fixed!important;inset:auto 0 0!important}}.theme-icon-rotate{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.theme-icon-rotate:hover{transform:rotate(30deg)}.nav-item:hover .nav-icon svg{transition:transform .2s;transform:scale(1.1)}.nav-item.active .nav-icon svg{transform:scale(1.05)}.progress-fill{transition:width 1s cubic-bezier(.16,1,.3,1)!important}.confetti-piece{z-index:300;pointer-events:none;width:8px;height:8px;animation:confettiDrop var(--confetti-duration,2.5s) cubic-bezier(.25,.46,.45,.94) forwards;animation-delay:var(--confetti-delay,0s);border-radius:2px;position:fixed}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}