*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}a,a:visited{color:inherit}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-16: 64px;--ink: oklch(.14 .012 58);--ink-light: oklch(.36 .012 58);--ink-faint: oklch(.58 .01 58);--cream: oklch(.98 .005 78);--cream-dark: oklch(.94 .009 78);--warm: oklch(.9 .016 75);--surface: oklch(.99 .003 78);--accent: oklch(.56 .14 44);--accent-light: oklch(from var(--accent) min(.82, calc(l + .11) ) c h);--accent-bg: oklch(from var(--accent) min(.97, calc(l + .4) ) calc(c*.16) h);--sidebar-bg: oklch(.14 .012 58);--green: oklch(.46 .1 155);--green-bg: oklch(.95 .038 155);--red: oklch(.47 .14 25);--red-bg: oklch(.96 .028 25);--blue: oklch(.4 .09 248);--blue-bg: oklch(.95 .03 248);--amber: oklch(.5 .11 78);--amber-bg: oklch(.96 .026 82);--shadow-sm: 0 1px 3px oklch(.14 .012 58 / .07);--shadow: 0 4px 16px oklch(.14 .012 58 / .09);--shadow-lg: 0 8px 32px oklch(.14 .012 58 / .13);--radius: 10px;--radius-sm: 6px;--font-display: "Vollkorn", Georgia, serif;--font-body: "Figtree", system-ui, sans-serif;--transition: .16s cubic-bezier(.25, 0, 0, 1)}[data-theme=dark]{--ink: oklch(.94 .005 78);--ink-light: oklch(.75 .008 75);--ink-faint: oklch(.56 .008 65);--cream: oklch(.13 .01 58);--cream-dark: oklch(.19 .012 58);--warm: oklch(.26 .015 58);--surface: oklch(.17 .01 58);--accent-bg: oklch(from var(--accent) max(.16, calc(l - .3) ) calc(c*.36) h);--green-bg: oklch(.17 .04 155);--red-bg: oklch(.19 .05 25);--blue-bg: oklch(.18 .04 248);--amber-bg: oklch(.19 .05 78);--green: oklch(.68 .12 155);--red: oklch(.7 .14 25);--blue: oklch(.7 .12 248);--amber: oklch(.72 .13 78);--shadow-sm: 0 1px 3px oklch(0 0 0 / .4);--shadow: 0 4px 16px oklch(0 0 0 / .5);--shadow-lg: 0 8px 32px oklch(0 0 0 / .6)}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--warm)!important}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:var(--ink-faint)}[data-theme=dark] .card-inner{background:var(--cream-dark)!important}[data-theme=dark] ::-webkit-scrollbar{width:8px;height:8px}[data-theme=dark] ::-webkit-scrollbar-track{background:var(--cream-dark)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--warm);border-radius:4px}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}[data-theme=dark] .modal-overlay{background:#000000b8}body{font-family:var(--font-body);background:var(--cream);color:var(--ink);line-height:1.6;font-size:.9375rem;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition),color var(--transition)}h1{font-family:var(--font-display);font-size:1.75rem;font-weight:600;line-height:1.2;letter-spacing:-.02em;text-wrap:balance}h2{font-family:var(--font-display);font-size:1.375rem;font-weight:600;line-height:1.2;letter-spacing:-.01em;text-wrap:balance}h3{font-family:var(--font-display);font-size:1.125rem;font-weight:600;line-height:1.3;text-wrap:balance}button{cursor:pointer;font-family:var(--font-body);border:none;transition:all var(--transition)}input,select,textarea{font-family:var(--font-body);outline:none;transition:border-color var(--transition),box-shadow var(--transition)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}button:focus:not(:focus-visible){outline:none}a:focus:not(:focus-visible){outline:none}.tabular-nums{font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:8px 18px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;transition:all var(--transition)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-light);transform:translateY(-1px);box-shadow:var(--shadow)}.btn-secondary{background:var(--cream-dark);color:var(--ink);border:1px solid var(--warm)}.btn-secondary:hover{background:var(--warm)}.btn-ghost{background:transparent;color:var(--ink-light)}.btn-ghost:hover{background:var(--cream-dark)}.btn-danger{background:var(--red-bg);color:var(--red)}.btn-danger:hover{background:var(--red);color:#fff}.btn-sm{padding:5px 12px;font-size:.8125rem}.btn-icon{padding:6px;border-radius:var(--radius-sm);background:transparent;color:var(--ink-faint)}.btn-icon:hover{background:var(--cream-dark);color:var(--ink)}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--cream-dark)}.form-group{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.form-group label{font-size:.8125rem;font-weight:500;color:var(--ink-light);letter-spacing:.01em}.form-group input,.form-group select,.form-group textarea{padding:10px 14px;border:1.5px solid var(--warm);border-radius:var(--radius-sm);font-size:.875rem;background:var(--surface);color:var(--ink)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:100px;font-size:.75rem;font-weight:500}.badge-green{background:var(--green-bg);color:var(--green)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-blue{background:var(--blue-bg);color:var(--blue)}.badge-warm{background:var(--accent-bg);color:var(--accent)}.badge-grey{background:var(--cream-dark);color:var(--ink-faint)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d08058c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .14s ease}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--space-8);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;animation:slideUp .22s cubic-bezier(.25,0,0,1)}.modal h2{font-size:1.375rem;margin-bottom:var(--space-6);color:var(--ink)}.modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-6)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:200% 0}50%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulseNew{0%,to{box-shadow:0 2px 8px #b5542466;transform:scale(1)}50%{box-shadow:0 4px 16px #b55424b3;transform:scale(1.06)}}@keyframes toastIn{0%{opacity:0;transform:translate(16px) scale(.97)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes nowPulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes colonBlink{0%,49%{opacity:1}50%,to{opacity:.25}}@keyframes secPulse{0%{transform:scale(1)}10%{transform:scale(1.18)}30%{transform:scale(1)}}@keyframes confirmIn{0%{opacity:0;transform:scale(.94) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.meeting-btn{width:60px;height:60px;border-radius:50%;background:var(--surface);border:2px solid var(--warm);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;text-decoration:none;transition:border-color .3s,box-shadow .3s;flex-shrink:0}.meeting-btn .mbicon{position:relative;z-index:3;transition:color .35s,transform .5s;display:flex;align-items:center;justify-content:center}.meeting-btn:hover .mbicon{color:#fff!important;transform:rotateY(360deg)}.meeting-btn:before{content:"";position:absolute;top:100%;left:0;width:100%;height:100%;transition:top .35s cubic-bezier(.25,0,0,1);z-index:2}.meeting-btn:hover:before{top:0}.meeting-btn:hover{box-shadow:0 6px 20px #0003;border-color:transparent}.meeting-btn.teams:before{background:#6264a7}.meeting-btn.zoom:before{background:#2d8cff}.meeting-btn.meet:before{background:#00897b}.mobile-hamburger{display:none}.mobile-fullscreen-nav{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--sidebar-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;animation:mobileNavIn .22s cubic-bezier(.25,0,0,1) both}@keyframes mobileNavIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.mobile-fullscreen-nav .mfn-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;background:#ffffff14;color:#fff9;display:flex;align-items:center;justify-content:center;font-size:20px;transition:background .15s,color .15s}.mobile-fullscreen-nav .mfn-close:hover{background:#ffffff24;color:#fff}.mobile-fullscreen-nav .mfn-brand{position:absolute;top:20px;left:20px;display:flex;align-items:center;gap:10px}.mobile-fullscreen-nav .mfn-brand-mark{width:30px;height:30px;border-radius:7px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:13px;font-weight:700;color:#fff;letter-spacing:-.03em}.mobile-fullscreen-nav .mfn-brand-name{font-family:var(--font-display);font-size:15px;font-weight:600;color:#f4f1ee;letter-spacing:-.015em}.mfn-item{font-size:1.75rem;font-family:var(--font-display);font-weight:600;color:#ffffffd9;position:relative;display:inline-block;text-decoration:none;padding:4px 0;cursor:pointer;background:none;border:none;letter-spacing:-.02em;transition:color .2s}.mfn-item:after,.mfn-item:before{content:"";position:absolute;width:100%;height:2px;background:var(--accent);left:0;transform:scaleX(0);transition:transform .35s cubic-bezier(.25,0,0,1)}.mfn-item:after{bottom:-2px;transform-origin:right}.mfn-item:before{top:-2px;transform-origin:left}.mfn-item:hover,.mfn-item.active{color:#fff}.mfn-item:hover:after,.mfn-item:hover:before,.mfn-item.active:after,.mfn-item.active:before{transform:scaleX(1)}.mfn-divider{width:40px;height:1px;background:#ffffff1f;margin:6px 0}@media (max-width: 700px){.mobile-hamburger{display:flex!important}.admin-sidebar-nav{display:none!important}.admin-main-content{padding:64px 16px 20px!important}}@keyframes tvOff{0%{transform:scale(1);filter:brightness(1);opacity:1}18%{transform:scale(1.05,.06);filter:brightness(6) saturate(0);opacity:1}42%{transform:scale(.45,.025);filter:brightness(3) saturate(0);opacity:.9}70%{transform:scale(.07,.015);filter:brightness(1.8) saturate(0);opacity:.6}to{transform:scale(0);filter:brightness(0);opacity:0}}.tv-off{animation:tvOff .46s cubic-bezier(.55,0,1,.45) forwards!important;pointer-events:none;overflow:hidden;transform-origin:center center}@keyframes staggerIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg,var(--cream-dark) 25%,var(--warm) 50%,var(--cream-dark) 75%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:var(--radius-sm)}.stat-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--cream-dark);box-shadow:var(--shadow-sm);padding:16px 20px}.stagger-list>*{animation:staggerIn .28s cubic-bezier(.25,0,0,1) both}.stagger-list>*:nth-child(1){animation-delay:0ms}.stagger-list>*:nth-child(2){animation-delay:40ms}.stagger-list>*:nth-child(3){animation-delay:80ms}.stagger-list>*:nth-child(4){animation-delay:.12s}.stagger-list>*:nth-child(5){animation-delay:.16s}.stagger-list>*:nth-child(6){animation-delay:.2s}.page-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--space-6);margin-bottom:var(--space-8);border-bottom:1px solid var(--cream-dark)}.page-header h1{font-size:1.75rem}.page-header>div>p{font-size:.8125rem;color:var(--ink-faint);margin-top:var(--space-1)}.empty-state{text-align:center;padding:60px 20px;color:var(--ink-faint)}.empty-state p{font-size:.9375rem;margin-top:var(--space-2)}.dash-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}@media (max-width: 640px){.dash-cards{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;gap:12px}.dash-cards::-webkit-scrollbar{display:none}}.dash-main-grid{display:grid;grid-template-columns:1fr;gap:0}@media (min-width: 900px){.dash-main-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:40px;align-items:start}}.dash-row{scrollbar-width:none;-ms-overflow-style:none;padding-bottom:8px}.dash-row::-webkit-scrollbar{display:none}.mat-card .mat-hover{opacity:0;transition:opacity .28s ease}.mat-card:hover .mat-hover{opacity:1}.mat-card .mat-frost{opacity:1;transition:opacity .32s cubic-bezier(.25,0,0,1)}.mat-card:hover .mat-frost{opacity:0}.login-dark .form-group{margin-bottom:14px}.login-dark .form-group label{color:#ffffff61;font-size:.8125rem}.login-dark .form-group input,.login-dark .form-group select{background:#ffffff12;border:1px solid oklch(1 0 0 / .11);color:#f7f5f2;border-radius:10px}.login-dark .form-group input::placeholder{color:#ffffff40}.login-dark .form-group input:focus,.login-dark .form-group select:focus{border-color:var(--accent);outline:none;background:#ffffff1a;box-shadow:0 0 0 3px #b554242e}.login-dark select option{background:#0d0805;color:#f7f5f2}.login-btn{width:100%;margin-top:8px;padding:13px;background:var(--accent);color:#faf8f5;border:none;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;box-shadow:0 4px 22px #b554246b;transition:opacity .15s,transform .15s,box-shadow .15s}.login-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.login-btn:disabled{opacity:.75;box-shadow:none;cursor:default}.login-privacy-btn{background:none;border:none;color:#fff3;font-size:.75rem;cursor:pointer;text-decoration:underline;text-decoration-color:#ffffff1a;text-underline-offset:3px;transition:color var(--transition)}.login-privacy-btn:hover{color:#ffffff6b}.nav-pill{display:flex;align-items:center;text-decoration:none;color:#ffffff73;background:transparent;transition:background .2s,color .2s,box-shadow .2s,border-radius .28s,width .28s,padding .28s;position:relative;white-space:nowrap}.nav-pill[aria-current=page]{background:linear-gradient(135deg,var(--pill-g1),var(--pill-g2));color:#fff;box-shadow:0 4px 14px var(--pill-glow);font-weight:600}.nav-pill:not([aria-current=page]):hover{background:#ffffff17;color:#ffffffe0;box-shadow:0 3px 10px var(--pill-glow, transparent)}.nav-pill .nav-pill-tip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#130e0a;color:#f4f1ee;padding:5px 10px;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:200;box-shadow:0 4px 14px #00000059}.nav-pill:hover .nav-pill-tip{opacity:1}@media (max-width: 640px){.app-main{padding:20px!important}}.tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:100px;font-size:.75rem;background:var(--cream-dark);color:var(--ink-light);gap:var(--space-1)}.divider{height:1px;background:var(--cream-dark);margin:20px 0}.card-inner{background:var(--cream);border-radius:var(--radius-sm);padding:8px 12px}[data-bg=default] body,[data-bg=default] main{background:var(--cream)}[data-bg=washi] body,[data-bg=washi] main{background-color:#faf8f5;background-image:linear-gradient(transparent 27px,#ded6cc 27px,#ded6cc 28px);background-size:100% 28px}[data-theme=dark][data-bg=washi] body,[data-theme=dark][data-bg=washi] main{background-color:#0a0704;background-image:linear-gradient(transparent 27px,#251e18 27px,#251e18 28px);background-size:100% 28px}[data-bg=stone] body,[data-bg=stone] main{background-color:#f0f2f3;background-image:linear-gradient(oklch(.91 .004 205) 1px,transparent 1px),linear-gradient(90deg,oklch(.91 .004 205) 1px,transparent 1px);background-size:32px 32px}[data-theme=dark][data-bg=stone] body,[data-theme=dark][data-bg=stone] main{background-color:#090c0c;background-image:linear-gradient(oklch(.22 .006 205) 1px,transparent 1px),linear-gradient(90deg,oklch(.22 .006 205) 1px,transparent 1px);background-size:32px 32px}[data-bg=grove] body,[data-bg=grove] main{background:#eaf5ed}[data-theme=dark][data-bg=grove] body,[data-theme=dark][data-bg=grove] main{background:#040905}[data-bg=sand] body,[data-bg=sand] main{background-color:#f2eade;background-image:radial-gradient(oklch(.85 .02 72) 1px,transparent 1px);background-size:18px 18px}[data-theme=dark][data-bg=sand] body,[data-theme=dark][data-bg=sand] main{background-color:#0f0703;background-image:radial-gradient(oklch(.22 .022 58) 1px,transparent 1px);background-size:18px 18px}[data-bg=dusk] body,[data-bg=dusk] main{background:linear-gradient(160deg,#ededfc,#fbefec)}[data-theme=dark][data-bg=dusk] body,[data-theme=dark][data-bg=dusk] main{background:linear-gradient(160deg,#080810,#130b0a)}[data-bg=slate] body,[data-bg=slate] main{background:#eaeff2}[data-theme=dark][data-bg=slate] body,[data-theme=dark][data-bg=slate] main{background:#05080a}[data-bg=mocha] body,[data-bg=mocha] main{background:linear-gradient(170deg,#f4e9dd,#edded3)}[data-theme=dark][data-bg=mocha] body,[data-theme=dark][data-bg=mocha] main{background:linear-gradient(170deg,#130c06,#090502)}.app-main{background:var(--cream)}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--warm);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}@media (max-width: 768px){.admin-layout{flex-direction:column!important;min-height:100vh}.admin-layout>nav{position:fixed!important;bottom:0!important;top:auto!important;left:0;right:0;width:100%!important;height:auto!important;flex-direction:row!important;padding:0!important;z-index:1000;border-top:1px solid oklch(1 0 0 / .1)}.admin-layout>nav>div:first-child{display:none!important}.admin-layout>nav>div:nth-child(2){display:flex!important;flex-direction:row!important;overflow-x:auto;padding:6px 8px!important;gap:2px!important;-webkit-overflow-scrolling:touch}.admin-layout>nav>div:nth-child(2) a{flex-shrink:0;padding:8px 10px!important;font-size:.75rem!important;gap:4px!important;border-radius:6px!important;white-space:nowrap}.admin-layout>nav>div:last-child{display:none!important}.admin-layout>main,.app-main{padding:16px 16px 72px!important;width:100%!important}.page-header{flex-direction:column;align-items:flex-start!important;gap:var(--space-3)}.page-header h1{font-size:1.375rem!important}.modal{max-width:100%!important;margin:0;padding:20px!important;max-height:95vh;border-radius:16px 16px 0 0}.modal-overlay{align-items:flex-end!important;padding:0}.form-group input,.form-group select,.form-group textarea{font-size:1rem!important}.earnings-summary,.materials-grid,.student-detail-grid{grid-template-columns:1fr!important}}@media (max-width: 480px){.admin-layout>main,.app-main{padding:12px 12px 68px!important}.page-header h1{font-size:1.25rem!important}.btn{padding:7px 14px;font-size:.8125rem}.btn-sm{padding:5px 10px;font-size:.75rem}}@media (min-width: 769px) and (max-width: 1024px){.admin-layout>nav{width:180px!important}.admin-layout>main,.app-main{padding:24px!important}}
