@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--background:#fff7fa;--surface:#fff7faa8;--surface-strong:#fffbfce0;--surface-soft:#fce7f39e;--border:#c9367829;--primary:#c93678;--primary-hover:#ad285f;--primary-soft:#fce7f3;--text:#2b2025;--text-secondary:#625159;--muted:#75666d;--success:#235f49;--success-soft:#dcf1e7e0;--warning:#7c5920;--warning-soft:#fdf1d7c2;--danger:#8c3c3c;--danger-soft:#fdebebd1;--neutral-soft:#efe7ebc7;--ink:var(--text);--line:var(--border);--glass:var(--surface);--glass-strong:var(--surface-strong);--accent:var(--primary);--accent-dark:var(--primary-hover);--shadow:0 22px 60px #702d4c1a;--radius:24px}*{box-sizing:border-box}html{background:var(--background);min-height:100%}body{min-height:100vh;color:var(--ink);background:radial-gradient(circle at 9% 10%, #f472b61f, transparent 28rem), radial-gradient(circle at 90% 0%, #ec489914, transparent 30rem), linear-gradient(135deg, #fff8fb 0%, var(--background) 55%, #fdf2f8 100%);font-family:var(--font-geist-sans), Arial, sans-serif;-webkit-font-smoothing:antialiased;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{color:inherit}.glass{background:var(--glass);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(24px)saturate(145%);backdrop-filter:blur(24px)saturate(145%)}.app-shell{min-height:100vh;padding:20px 20px 20px 236px}.sidebar{z-index:10;background:var(--glass-strong);border-radius:28px;flex-direction:column;width:196px;padding:22px 14px 16px;display:flex;position:fixed;inset:20px auto 20px 20px}.sidebar-profile-link{background:linear-gradient(145deg, var(--primary-soft), #fffffff0);border:1px solid #ffffffe6;border-radius:50%;width:70px;height:70px;margin:0 auto 30px;padding:3px;display:block;overflow:hidden;box-shadow:0 12px 28px #ad285f38}.sidebar-profile-image{object-fit:cover;object-position:50% 27%;border-radius:50%;width:100%;height:100%;display:block}.sidebar nav{gap:7px;display:grid}.nav-item{min-height:46px;color:var(--text-secondary);border-radius:14px;align-items:center;gap:12px;padding:0 13px;font-size:.9rem;font-weight:560;transition:all .16s;display:flex}.nav-item:hover{color:var(--ink);background:#fce7f38a}.nav-item.active{color:var(--primary-hover);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--border)}.nav-item span:first-child{text-align:center;width:18px;font-size:1.1rem}.sidebar-foot{margin-top:auto}.workspace{max-width:1480px;margin:0 auto;padding:18px clamp(4px,2vw,30px) 40px}.topbar{justify-content:space-between;align-items:flex-end;gap:20px;margin:4px 2px 24px;display:flex}.eyebrow{color:var(--muted);letter-spacing:.02em;margin:0 0 7px;font-size:.82rem}h1{letter-spacing:-.045em;margin:0;font-size:clamp(1.55rem,2.3vw,2.25rem);font-weight:650}.primary-button{cursor:pointer;color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary-hover));border:0;border-radius:15px;min-height:45px;padding:0 18px;font-size:.9rem;font-weight:650;transition:all .16s;box-shadow:0 12px 24px #ad285f38}.primary-button:hover{background:linear-gradient(135deg, var(--primary-hover), #98204f);transform:translateY(-1px);box-shadow:0 15px 28px #ad285f45}.primary-button:focus-visible,button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #c936784d}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.metric-card{border-radius:21px;grid-template-columns:auto 1fr;align-items:end;min-height:112px;padding:19px 21px;display:grid}.metric-card>span{color:var(--muted);grid-column:1/-1;align-self:start;font-size:.82rem;font-weight:540}.metric-card strong{letter-spacing:-.06em;font-size:2rem;font-weight:650;line-height:1}.metric-card small{color:var(--muted);margin:0 0 2px 9px;font-size:.74rem}.calendar-card{border-radius:28px;overflow:hidden}.calendar-toolbar{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;min-height:76px;padding:16px 20px;display:grid}.month-control{align-items:center;gap:10px;display:flex}.month-control h2{text-align:center;letter-spacing:-.02em;min-width:228px;margin:0;font-size:.98rem}.month-control button,.today-button{border:1px solid var(--line);cursor:pointer;background:#fff7fab8}.month-control button{border-radius:10px;width:31px;height:31px;font-size:1.2rem}.view-control{background:var(--surface-soft);border-radius:13px;padding:4px;display:flex}.view-control a,.view-control button{min-height:32px;color:var(--muted);background:0 0;border:0;border-radius:9px;align-items:center;padding:0 13px;font-size:.75rem;display:inline-flex}.view-control a.selected,.view-control button.selected{color:var(--primary-hover);background:var(--surface-strong);box-shadow:0 3px 9px #702d4c17}.today-button{border-radius:11px;justify-self:end;min-height:34px;padding:0 13px;font-size:.78rem;font-weight:570}.calendar-grid{grid-template-rows:64px 1fr;grid-template-columns:68px repeat(5,minmax(128px,1fr));height:500px;display:grid;overflow-x:auto}.time-head,.day-head{border-bottom:1px solid var(--line)}.day-head{border-left:1px solid var(--line);justify-content:center;align-items:center;gap:8px;display:flex}.day-head span{color:var(--muted);text-transform:uppercase;font-size:.75rem}.day-head strong{border-radius:50%;place-items:center;width:31px;height:31px;font-size:.86rem;display:grid}.day-head.current strong{color:#fff;background:var(--accent);box-shadow:0 6px 16px #ad285f3d}.time-column{position:relative}.time-column span{height:52px;color:var(--muted);text-align:right;padding:8px 10px 0 0;font-size:.65rem;display:block;position:relative}.day-column{border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom, transparent 0, transparent 51px, var(--line) 52px);position:relative}.day-column.current{background-color:#fce7f357}.lesson-card{text-align:left;cursor:pointer;border:1px solid #fff7fac7;border-radius:13px;flex-direction:column;align-items:flex-start;padding:8px 10px;transition:all .15s;display:flex;position:absolute;left:7px;right:7px;overflow:hidden;box-shadow:0 7px 18px #702d4c1a}.lesson-card:hover{z-index:2;transform:translateY(-2px)}.lesson-card span{color:var(--text-secondary);font-size:.65rem}.lesson-card strong{margin-top:3px;font-size:.79rem}.lesson-card small{color:var(--muted);margin-top:2px;font-size:.65rem}.lesson-card.blue{color:var(--primary-hover);background:#fcddecf0}.lesson-card.green{background:var(--success-soft);color:var(--success)}.lesson-card.amber{background:var(--warning-soft);color:var(--warning)}.mobile-nav{display:none}@media (max-width:1000px){.metric-grid{grid-template-columns:repeat(2,1fr)}.calendar-toolbar{grid-template-columns:1fr auto}.view-control{max-width:100%;overflow-x:auto}}@media (max-width:760px){.app-shell{padding:0 0 88px}.sidebar{display:none}.workspace{padding:24px 14px}.topbar{align-items:center;margin-bottom:20px}.eyebrow{font-size:.75rem}h1{font-size:1.48rem}.metric-grid{scrollbar-width:none;margin-inline:-14px;padding:0 14px 5px;display:flex;overflow-x:auto}.metric-card{flex:0 0 146px;min-height:102px;padding:16px}.calendar-card{border-radius:22px}.calendar-toolbar{grid-template-columns:1fr auto;min-height:68px;padding:12px}.month-control{gap:4px}.month-control h2{min-width:168px;font-size:.84rem}.month-control button{width:28px;height:28px}.today-button{display:none}.calendar-grid{grid-template-columns:58px minmax(270px,1fr);height:540px}.day-head:not(.current),.day-column:not(.current){display:none}.mobile-nav{z-index:20;min-height:68px;padding:7px 4px calc(6px + env(safe-area-inset-bottom));background:var(--glass-strong);border-radius:21px;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:10px;left:10px;right:10px}.mobile-nav a{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:.66rem;font-weight:560;display:flex}.mobile-nav a span{font-size:1.05rem}.mobile-nav a.active{color:var(--primary-hover)}}.loading-shell{min-height:100vh;padding:20px 20px 20px 236px;display:flex}.loading-sidebar{border-radius:28px;width:196px;position:fixed;inset:20px auto 20px 20px}.loading-content{width:min(100%,1420px);margin:20px auto}.skeleton{background:linear-gradient(100deg,#fce7f361 25%,#fffbfcdb 45%,#fce7f361 65%) 0 0/220% 100%;border-radius:18px;animation:1.4s linear infinite shimmer}.title-skeleton{width:280px;height:42px;margin-bottom:24px}.skeleton-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.card-skeleton{height:112px}.calendar-skeleton{border-radius:28px;height:520px;margin-top:16px}.error-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.error-shell section{width:min(100%,520px);min-height:0}.error-shell h1{margin:0 0 12px}.error-shell p:not(.eyebrow){margin:0 0 24px}@keyframes shimmer{to{background-position:-220% 0}}@media (max-width:760px){.loading-shell{padding:24px 14px}.loading-sidebar{display:none}.skeleton-grid{grid-template-columns:1fr 1fr}}.period-tabs{border-radius:15px;gap:3px;width:fit-content;margin-bottom:16px;padding:5px;display:flex;overflow-x:auto}.period-tabs a{min-height:35px;color:var(--muted);white-space:nowrap;border-radius:10px;align-items:center;padding:0 13px;font-size:.75rem;font-weight:610;display:inline-flex}.period-tabs a.active{color:var(--primary-hover);background:var(--primary-soft)}.finance-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;display:grid}.finance-card{border-radius:22px;flex-direction:column;min-height:142px;padding:20px;display:flex}.finance-card>span{color:var(--muted);font-size:.76rem}.finance-card strong{letter-spacing:-.05em;margin-top:auto;font-size:clamp(1.1rem,1.8vw,1.55rem)}.finance-card small{color:var(--muted);margin-top:6px;font-size:.68rem}.warning-card{background:var(--warning-soft);border-color:#c497462e}.finance-table .table-row{grid-template-columns:1.4fr repeat(5,1fr)}.warning-text{color:var(--warning)}.finance-footnote{max-width:680px;color:var(--muted);margin:18px 4px 0;font-size:.72rem;line-height:1.5}.export-list{gap:7px;display:grid}.export-list a{border:1px solid var(--line);min-height:44px;color:var(--text-secondary);text-transform:capitalize;background:#fff7faad;border-radius:12px;align-items:center;gap:10px;padding:0 13px;font-size:.82rem;display:flex}.settings-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.settings-card{border-radius:23px;padding:24px}.settings-card>div:first-child{margin-bottom:26px}.settings-card h2{margin:0;font-size:1.05rem}.settings-card label small{color:var(--muted);font-size:.68rem;font-weight:450}.settings-card input:disabled{color:var(--muted);background:#efe7eb9e}.settings-wide{grid-column:1/-1}.settings-note{color:var(--muted);margin:0;font-size:.76rem;line-height:1.55}.settings-actions{grid-column:1/-1;justify-content:flex-end;display:flex}@media (max-width:1000px){.finance-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.finance-metrics{gap:9px}.finance-card{min-height:124px;padding:16px}.settings-grid{grid-template-columns:1fr}.settings-wide,.settings-actions{grid-column:auto}.settings-actions .primary-button{width:100%}}.search-bar{border-radius:19px;align-items:center;gap:11px;min-height:58px;margin-bottom:16px;padding:8px 9px 8px 18px;display:flex}.search-bar svg{color:var(--muted)}.search-bar input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:.9rem}.search-bar button{border:1px solid var(--line);cursor:pointer;background:#fff7fab8;border-radius:12px;min-height:40px;padding:0 16px}.table-card{border-radius:24px;overflow-x:auto}.data-table{min-width:890px}.table-row{border-bottom:1px solid var(--line);min-height:70px;color:var(--text-secondary);grid-template-columns:1.5fr 1fr .7fr .7fr .7fr 1.2fr 22px;align-items:center;gap:14px;padding:0 20px;font-size:.82rem;transition:background .15s;display:grid}a.table-row:hover,.student-data-row:hover{background:#fce7f35c}.table-row:last-child{border-bottom:0}.table-head{min-height:50px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;font-weight:650}.student-cell strong,.student-cell small{display:block}.student-cell strong{color:var(--ink);font-size:.9rem}.student-cell small{color:var(--muted);text-overflow:ellipsis;margin-top:4px;overflow:hidden}.numeric{color:var(--ink);font-size:.92rem;font-weight:650}.balance-pill{background:var(--success-soft);width:fit-content;min-width:34px;min-height:29px;color:var(--success);white-space:nowrap;border-radius:10px;place-items:center;padding:5px 9px;display:grid}.balance-pill.low{color:var(--warning);background:var(--warning-soft)}.table-empty{color:var(--muted);text-align:center;padding:42px 20px;font-size:.85rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.back-link{color:var(--muted);align-items:center;gap:7px;margin:2px 0 20px;font-size:.8rem;font-weight:620;display:inline-flex}.student-header{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;display:flex}.student-header h1{margin-bottom:5px}.student-header>div>p:last-child{color:var(--muted);margin:0;font-size:.9rem}.header-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.student-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.big-stat{border-radius:23px;flex-direction:column;justify-content:space-between;min-height:136px;padding:24px;display:flex}.big-stat strong{letter-spacing:-.07em;font-size:2.5rem;font-weight:650;line-height:1}.big-stat span{color:var(--muted);font-size:.8rem}.big-stat:first-child:not(.debt-stat){background:#fff7fab8}.big-stat:nth-child(2){background:#fce7f3ad}.big-stat.debt-stat{background:var(--danger-soft);border-color:#b25c5c3d}.big-stat.debt-stat strong{color:var(--danger)}.accent-stat{color:#fff;background:linear-gradient(145deg,#c93678f0,#ad285feb);border-color:#fff7fa7a}.accent-stat span{color:#ffffffc7}.detail-tabs{border-radius:17px;gap:4px;margin:16px 0;padding:7px;display:flex;overflow-x:auto}.detail-tabs a{min-height:37px;color:var(--muted);white-space:nowrap;border-radius:11px;align-items:center;padding:0 14px;font-size:.76rem;font-weight:610;display:inline-flex}.detail-tabs a:first-child{color:var(--primary-hover);background:var(--primary-soft)}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.detail-card{border-radius:22px;min-height:175px;padding:22px}.card-title{color:var(--primary);align-items:center;gap:9px;margin-bottom:24px;display:flex}.card-title h2{color:var(--ink);margin:0;font-size:.86rem}.detail-card>p{color:var(--muted);margin:8px 0 0;font-size:.82rem;line-height:1.55}.feature-value{font-size:1.12rem}.summary-lines{gap:10px;display:grid}.summary-lines p{color:var(--muted);justify-content:space-between;gap:12px;margin:0;font-size:.78rem;display:flex}.summary-lines strong{color:var(--ink);text-align:right;font-size:.8rem}.section-block{padding-top:34px;scroll-margin-top:20px}.section-heading{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px;display:flex}.section-heading h2{margin:0;font-size:1.18rem}.timeline{gap:10px;display:grid;position:relative}.timeline-item{border-radius:19px;grid-template-columns:105px 1fr auto;align-items:start;gap:18px;min-height:108px;padding:18px 20px;display:grid}.timeline-item time{color:var(--muted);font-size:.72rem;font-weight:610}.timeline-item time span{color:var(--ink);margin-top:4px;font-size:1rem;display:block}.timeline-item h3{margin:8px 0 4px;font-size:.9rem}.timeline-item p{color:var(--muted);margin:0;font-size:.78rem;line-height:1.45}.lesson-adjustment{color:var(--primary-hover);margin-top:8px;font-size:.7rem;display:block}.status-badge{color:var(--text-secondary);background:var(--neutral-soft);text-transform:uppercase;letter-spacing:.04em;border-radius:7px;padding:4px 7px;font-size:.62rem;font-weight:700}.status-scheduled{color:var(--primary-hover);background:var(--primary-soft)}.status-completed{color:var(--success);background:var(--success-soft)}.status-needs_review,.status-cancelled_late,.status-no_show{color:var(--warning);background:var(--warning-soft)}.secondary-button.compact{min-height:35px;padding:0 11px;font-size:.74rem}.timeline-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.compact-list{border-radius:21px;overflow:hidden}.compact-list>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:70px;padding:14px 20px;display:flex}.compact-list>div:last-child{border-bottom:0}.compact-list span,.compact-list strong,.compact-list small{display:block}.compact-list strong{font-size:.84rem}.compact-list small{color:var(--muted);text-transform:capitalize;margin-top:5px;font-size:.7rem}.compact-list>div>span:last-child{text-align:right}.check-label{align-items:center;min-height:42px;grid-template-columns:18px 1fr!important}.check-label input{width:17px!important;min-height:17px!important}@media (max-width:760px){.table-card{overflow-x:auto}.student-header{flex-direction:column;align-items:flex-start}.header-actions{justify-content:flex-start}.student-header .primary-button{color:#fff;width:auto;padding:0 14px;font-size:.78rem}.student-stats{grid-template-columns:1fr;gap:9px}.big-stat{min-height:96px;padding:17px}.big-stat strong{font-size:2rem}.detail-grid{grid-template-columns:1fr}.timeline-item{grid-template-columns:76px 1fr;gap:12px}.timeline-item>:last-child{grid-column:2;justify-self:start}.section-heading{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass{background:#fff7faf5}}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:var(--glass-strong);border-color:var(--border);-webkit-backdrop-filter:blur(30px)saturate(150%);backdrop-filter:blur(30px)saturate(150%);border-radius:30px;width:min(100%,430px);padding:clamp(30px,6vw,48px)}.login-panel h1{margin-bottom:30px}.form-stack{gap:17px;display:grid}.form-stack label{color:var(--text-secondary);gap:8px;font-size:.83rem;font-weight:620;display:grid}.form-stack input,.form-stack select,.form-stack textarea{border:1px solid var(--border);width:100%;min-height:46px;color:var(--ink);background:#fff7fabd;border-radius:13px;outline:none;padding:10px 13px}.form-stack input:focus,.form-stack select:focus,.form-stack textarea:focus{border-color:#ad285f8f;box-shadow:0 0 0 3px #c936781f}.primary-button.wide{width:100%;margin-top:6px}.form-alert{color:var(--danger);background:var(--danger-soft);border:1px solid #b25c5c2e;border-radius:13px;margin:0 0 18px;padding:12px 14px;font-size:.82rem;line-height:1.45}.action-feedback{border-radius:12px;margin:0;padding:11px 13px;font-size:.78rem;line-height:1.45;display:none}.action-feedback.error{color:var(--danger);background:var(--danger-soft);border:1px solid #b25c5c2e;display:block}.action-feedback.success{color:var(--success);background:var(--success-soft);border:1px solid #3c87642e;display:block}.form-alert p{margin:0}.portal-sidebar .nav-item svg{flex:none}.nav-button{cursor:pointer;text-align:left;background:0 0;border:0;width:100%}.portal-topbar .primary-button,.secondary-button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.money-metric{letter-spacing:-.04em!important;font-size:clamp(1.15rem,2vw,1.65rem)!important}.dashboard-layout{grid-template-columns:minmax(0,1fr) 268px;align-items:start;gap:16px;display:grid}.real-calendar{min-width:0}.month-control.stacked{gap:3px;display:grid}.month-control.stacked h2{text-align:left;min-width:0}.calendar-kicker{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;font-size:.68rem}.link-button{color:var(--ink);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.week-grid{grid-template-columns:62px repeat(var(--calendar-days,7), minmax(118px, 1fr));grid-template-rows:64px 1fr;height:640px;display:grid;overflow:auto}.week-times span{height:64px}.week-day{background:repeating-linear-gradient(to bottom, transparent 0, transparent 63px, var(--line) 64px);min-height:768px}.lesson-card.muted{background:var(--neutral-soft);color:var(--text-secondary)}.blocked-card{z-index:1;color:var(--text-secondary);background:#efe7ebb8;border:1px dashed #75666d52;border-radius:12px;padding:8px 10px;position:absolute;left:7px;right:7px;overflow:hidden}.blocked-card strong,.blocked-card span{display:block}.blocked-card strong{font-size:.72rem}.blocked-card span{margin-top:3px;font-size:.62rem}.today-panel{border-radius:25px;min-height:360px;padding:22px}.panel-heading{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:flex-start;padding-bottom:17px;display:flex}.panel-heading .eyebrow{margin-bottom:3px}.panel-heading h2{color:var(--ink);margin:0;font-size:1.05rem}.agenda-list{padding-top:7px;display:grid}.agenda-list a{border-bottom:1px solid var(--line);grid-template-columns:44px 1fr auto;align-items:center;gap:8px;min-height:62px;display:grid}.agenda-list time{color:var(--primary-hover);font-size:.78rem;font-weight:680}.agenda-list span,.agenda-list strong,.agenda-list small{min-width:0;display:block}.agenda-list strong{font-size:.82rem}.agenda-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:.68rem;overflow:hidden}.review-callout{color:var(--warning);background:var(--warning-soft);border:1px solid #c497462e;border-radius:14px;gap:10px;margin-top:18px;padding:12px;display:flex}.review-callout strong,.review-callout small{display:block}.review-callout strong{font-size:.77rem}.review-callout small{color:var(--warning);margin-top:2px;font-size:.67rem;line-height:1.35}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:190px;padding:26px 10px;display:flex}.empty-state>span{width:42px;height:42px;color:var(--primary-hover);background:var(--primary-soft);border-radius:14px;place-items:center;margin-bottom:12px;display:grid}.empty-state strong{font-size:.85rem}.empty-state p{max-width:190px;color:var(--muted);margin:6px 0 0;font-size:.75rem;line-height:1.45}.modal{background:0 0;border:0;width:100%;max-width:none;height:100%;padding:20px;overflow-y:auto}.modal::backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#401d2d4d}.modal-card{border-color:var(--border);background:#fff8fbeb;border-radius:27px;width:min(100%,600px);margin:4vh auto;padding:24px;box-shadow:0 28px 80px #5b1f3a2e}.modal-head{justify-content:space-between;gap:20px;margin-bottom:22px;display:flex}.modal-head h2{margin:0;font-size:1.2rem}.modal-head p{color:var(--muted);margin:6px 0 0;font-size:.78rem;line-height:1.45}.icon-button{border:1px solid var(--line);cursor:pointer;background:#fff7fac7;border-radius:12px;flex:none;place-items:center;width:36px;height:36px;display:grid}.modal-form{gap:14px}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-stack textarea{resize:vertical;line-height:1.45}.credit-preview{border:1px solid var(--border);background:var(--surface-soft);border-radius:15px;grid-template-columns:repeat(4,1fr);gap:8px;padding:13px;display:grid}.credit-preview>div{gap:3px;display:grid}.credit-preview span{color:var(--muted);font-size:.64rem}.credit-preview strong{font-size:.94rem}.credit-preview p{color:var(--danger);grid-column:1/-1;margin:5px 0 0;font-size:.72rem;line-height:1.4}.credit-preview.insufficient{background:var(--danger-soft);border-color:#b25c5c33}.credit-preview .wide-preview{border-top:1px solid var(--border);grid-column:1/-1;padding-top:8px}.review-adjustment{border:1px solid var(--line);background:#fff7fa85;border-radius:17px;gap:13px;padding:15px;display:grid}.review-adjustment p{margin:0}.negative-confirm{background:var(--danger-soft);border:1px solid #b25c5c3d;border-radius:14px;align-items:flex-start;gap:10px;padding:13px;flex-direction:row!important;display:flex!important}.negative-confirm input{width:auto;margin-top:3px}.negative-confirm span,.negative-confirm strong,.negative-confirm small{display:block}.negative-confirm small{color:var(--danger);margin-top:4px;line-height:1.4}.notes-grid{gap:12px;display:grid}.academic-note{border-radius:21px;padding:20px}.academic-note header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.academic-note h3{margin:7px 0 0;font-size:.95rem}.academic-note p{color:var(--text-secondary);white-space:pre-wrap;margin:15px 0;font-size:.82rem;line-height:1.65}.academic-note footer{color:var(--muted);font-size:.68rem}.primary-button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.secondary-button{border:1px solid var(--border);min-height:42px;color:var(--text-secondary);cursor:pointer;background:#fff7fab3;border-radius:13px;padding:0 15px;font-size:.82rem;font-weight:620}.secondary-button:hover,.calendar-arrow:hover,.icon-button:hover{color:var(--primary-hover);background:var(--primary-soft);border-color:#ad285f47}.secondary-button:disabled{cursor:not-allowed;opacity:.48}.calendar-arrow{border:1px solid var(--line);background:#fff7fab8;border-radius:11px;flex:none;place-items:center;width:34px;height:34px;display:grid}.month-control .stacked{flex:1;min-width:0}.calendar-agenda{min-height:500px;padding:8px 20px 24px}.agenda-day{border-bottom:1px solid var(--line);grid-template-columns:82px 1fr;gap:18px;padding:18px 0;display:grid}.agenda-day:last-child{border-bottom:0}.agenda-day>header span,.agenda-day>header strong{display:block}.agenda-day>header span{color:var(--muted);text-transform:uppercase;font-size:.68rem}.agenda-day>header strong{margin-top:4px;font-size:.92rem}.agenda-day>div{gap:8px;display:grid}.agenda-day a,.agenda-block{border:1px solid var(--line);background:#fff7fa85;border-radius:13px;grid-template-columns:50px 1fr auto;align-items:center;gap:10px;min-height:56px;padding:8px 12px;display:grid}.agenda-day time{color:var(--primary-hover);font-size:.75rem;font-weight:680}.agenda-day a span strong,.agenda-day a span small,.agenda-block span strong,.agenda-block span small{display:block}.agenda-day small{color:var(--muted);margin-top:3px;font-size:.7rem}.filter-banner{border:1px solid var(--border);color:var(--text-secondary);background:var(--surface-soft);border-radius:13px;justify-content:space-between;gap:12px;margin:-4px 0 14px;padding:10px 14px;font-size:.78rem;display:flex}.filter-banner a{color:var(--primary-hover);font-weight:650}@media (max-width:1180px){.dashboard-layout{grid-template-columns:1fr}.today-panel{order:-1;min-height:0}.agenda-list{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.agenda-list a{border:1px solid var(--line);border-radius:13px;padding:0 8px}}@media (max-width:760px){.portal-workspace{padding-bottom:14px}.portal-topbar .primary-button{white-space:nowrap;color:#0000;gap:0;width:44px;overflow:hidden}.portal-topbar .primary-button svg{color:#fff}.dashboard-layout{gap:12px}.today-panel{border-radius:21px;padding:18px}.real-calendar .calendar-toolbar{grid-template-columns:1fr}.real-calendar .view-control{width:100%;display:flex}.week-grid{grid-template-columns:54px repeat(var(--calendar-days,7), minmax(260px, 1fr));height:560px}.calendar-agenda{padding:4px 14px 18px}.agenda-day{grid-template-columns:62px 1fr;gap:10px}.form-row{grid-template-columns:1fr}.credit-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.academic-note header{flex-direction:column}.modal{padding:8px}.modal-card{border-radius:23px;margin:1vh auto;padding:20px}}
