@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../media/41e95f694c5c4549-s.2b_sldcwg6mn_.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6c55a692938ebbbc-s.1emuuracu50qd.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:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a218039a3287bcfd-s.p.43zbiuwnnoiok.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:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(../media/bdc7e24a509eb931-s.0ynx40_3oa9rk.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0da9c7f357bd9d4d-s.1975l3y3401x_.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:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(../media/8e6fa89aa22d24ec-s.p.2o7m9ogm38dql.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:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0a7740363b4d4863-s.3ji57o093q1kd.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5f9d24ebef5d5292-s.19xuq3td7fwu_.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:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e2334d715941921e-s.p.3o_v2fun1jzxk.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:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b53057dbf91a7acf-s.11ypmpdlzqdb_.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(../media/798ea22d9983e047-s.3go-kn2r40gie.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:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(../media/47fe1b7cd6e6ed85-s.p.3bh2vc0w-r-ll.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:Poppins Fallback;src:local(Arial);ascent-override:93.62%;descent-override:31.21%;line-gap-override:8.92%;size-adjust:112.16%}.poppins_88422670-module__HUMl_G__className{font-family:Poppins,Poppins Fallback;font-style:normal}.poppins_88422670-module__HUMl_G__variable{--font-sans:"Poppins", "Poppins Fallback"}
@font-face{font-family:visby;src:url(../media/VisbyCF_Heavy-s.p.3imfdv21x6kj8.ttf)format("truetype");font-display:swap;font-weight:700 900}@font-face{font-family:visby Fallback;src:local(Arial);ascent-override:88.88%;descent-override:16.72%;line-gap-override:0.0%;size-adjust:113.63%}.visby_65dec970-module__Szp-Fa__className{font-family:visby,visby Fallback}.visby_65dec970-module__Szp-Fa__variable{--font-serif:"visby", "visby Fallback"}
:root{--bg:#faf7f4;--panel:#fff;--border:#e6ddd2;--text:#241f1d;--muted:#695d54;--muted-fg:#8a7f7a;--accent:#d73b33;--accent-dark:#8e2523;--accent-soft:#fceceb;--accent-faint:#fdf3f2;--accent-blue:#5b92e5;--accent-text:#fff;--danger:#b91c1c;--ok:#15803d;--radius:8px;--font-sans-stack:var(--font-sans), "Poppins", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-serif-stack:var(--font-serif), var(--font-sans), "Poppins", system-ui, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans-stack);margin:0;padding:0;font-size:15px;line-height:1.5}h1,h2,h3,.serif{font-family:var(--font-serif-stack);color:var(--text);letter-spacing:-.01em}h2{margin:0 0 4px}h3{margin-top:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.app-shell{grid-template-columns:230px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--border);border-top:3px solid var(--accent);padding:22px 16px}.brand{align-items:baseline;gap:8px;margin:0 0 22px;display:flex}.brand-logo{width:132px;height:auto;display:block}.brand-mark{display:none}.brand-hub{font-family:var(--font-serif-stack);color:var(--accent-dark);font-size:20px;font-weight:800}.sidebar nav a{color:var(--text);border-radius:6px;align-items:center;gap:10px;margin-bottom:2px;padding:8px 10px;font-weight:500;display:flex}.sidebar nav a .nav-icon{color:var(--muted);flex:none;transition:color .12s}.sidebar nav a:hover .nav-icon,.sidebar nav a.active .nav-icon{color:var(--accent)}.sidebar nav a:hover:not(.active){background:var(--accent-faint);color:var(--accent-dark);text-decoration:none}.sidebar nav a.active{background:var(--accent-soft);color:var(--accent-dark);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.sidebar nav a.active:hover{text-decoration:none}@media (min-width:761px){.app-shell{grid-template-columns:64px 1fr}.content{grid-column:2}.sidebar{z-index:50;width:64px;height:100vh;padding:22px 0;transition:width .18s,box-shadow .18s;position:fixed;top:0;left:0;overflow:hidden}.sidebar:hover{width:236px;padding:22px 16px;overflow-y:auto;box-shadow:6px 0 28px #241f1d24}.sidebar:has(:focus-visible){width:236px;padding:22px 16px;overflow-y:auto;box-shadow:6px 0 28px #241f1d24}.sidebar .brand,.sidebar .rail-hidden,.sidebar .nav-group-title,.sidebar nav a span{display:none}.sidebar:hover .brand{display:flex}.sidebar:has(:focus-visible) .brand{display:flex}.sidebar:hover .rail-hidden,.sidebar:hover .nav-group-title{display:block}.sidebar:has(:focus-visible) .rail-hidden{display:block}.sidebar:has(:focus-visible) .nav-group-title{display:block}.sidebar:hover nav a span{display:inline}.sidebar:has(:focus-visible) nav a span{display:inline}.sidebar .brand-mark{color:var(--accent);justify-content:center;margin:2px 0 18px;display:flex}.sidebar:hover .brand-mark{display:none}.sidebar:has(:focus-visible) .brand-mark{display:none}.sidebar nav a{border-radius:0;justify-content:center}.sidebar:hover nav a{border-radius:6px;justify-content:flex-start}.sidebar:has(:focus-visible) nav a{border-radius:6px;justify-content:flex-start}}.content{max-width:1120px;padding:30px 36px}.content:has(.cal-fullbleed){max-width:1760px;margin-inline:auto}.hq-clock{background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:6px;align-items:center;gap:6px;margin-top:16px;padding:7px 10px;font-size:12px;display:flex}.hq-clock-label{color:var(--accent-dark);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.hq-clock-time{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.hq-cotime{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:3px;font-size:11px;display:block}.row-between{justify-content:space-between;align-items:center;gap:16px;display:flex}.row{align-items:center;gap:8px;display:flex}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:0 1px 2px #2a23200a}table{border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden;box-shadow:0 1px 2px #2a23200a}th,td{text-align:left;border-bottom:1px solid var(--border);padding:11px 14px;font-size:14px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;background:#fbf8f5;font-size:11px;font-weight:600}tbody tr:hover{background:#fdfbf9}tr:last-child td{border-bottom:none}.table-strong-first tbody td:first-child{font-weight:600}label{color:var(--muted);margin-top:14px;margin-bottom:4px;font-size:13px;display:block}input,select,textarea{border:1px solid var(--border);width:100%;font:inherit;color:var(--text);background:#fff;border-radius:6px;padding:9px 11px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input[type=checkbox],input[type=radio]{width:auto;padding:0}textarea{resize:vertical;min-height:80px}.btn{background:var(--accent);color:var(--accent-text);font:inherit;cursor:pointer;border:none;border-radius:6px;padding:9px 16px;font-weight:600;transition:background .15s;display:inline-block}.btn:hover{background:var(--accent-dark)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{background:var(--accent)}.btn.secondary{color:var(--text);border:1px solid var(--border);background:#fff}.btn.secondary:hover{background:var(--accent-soft);color:var(--accent-dark);border-color:var(--accent-soft)}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:18px;display:flex}.toolbar label{margin:0 0 4px}.toolbar .field{flex-direction:column;display:flex}.badge{background:var(--accent-soft);color:var(--accent-dark);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.badge.active_student{color:#15803d;background:#e9f6ee}.badge.inquiry{color:#b4541f;background:#fdf0e7}.badge.contacted{color:#b23a2e;background:#fbeeec}.badge.alumnus{color:#6b5f57;background:#f1ece8}.badge.paused,.badge.converted_not_enrolled{color:#9a2a22;background:#f7e9e7}.badge.scheduled{color:#b4541f;background:#fdf0e7}.badge.delivered{color:#15803d;background:#e9f6ee}.badge.cancelled{color:#6b5f57;background:#f1ece8}.timeline{flex-direction:column;gap:10px;display:flex}.badge.tl-note{background:var(--accent-soft);color:var(--accent-dark)}.badge.tl-interaction{color:#1f47b4;background:#e7eefd}.badge.tl-case{color:#9a2a22;background:#f7e9e7}.badge.tl-follow_up{color:#b4541f;background:#fdf0e7}details.ops-compose>summary{cursor:pointer;list-style:none;display:inline-block}details.ops-compose>summary::-webkit-details-marker{display:none}.ops-form{border:1px solid var(--border,#e5e7eb);border-radius:8px;max-width:560px;margin-top:12px;padding:14px}.ops-resolve{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ops-resolve input{flex:1;min-width:160px}.skeleton{background:linear-gradient(90deg, var(--border) 25%, #f5efe9 50%, var(--border) 75%);border-radius:var(--radius);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.form-cluster{border:1px solid var(--border);border-radius:var(--radius);background:#faf7f4;padding:14px}.muted{color:var(--muted)}.error{color:var(--danger)}.ok{color:var(--ok)}.note{border-left:3px solid var(--border);margin-bottom:14px;padding:8px 0 8px 14px}.note .meta{color:var(--muted);margin-bottom:4px;font-size:12px}.note.staff-only{border-left-color:var(--accent)}.login-wrap{background:linear-gradient(160deg,#faf7f4 0%,#f3e9e5 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{border-top:3px solid var(--accent);width:380px}.login-card h1,.login-card h2{font-size:26px}.login-shell{grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}.login-hero{background:radial-gradient(120% 120% at 0% 0%, #ffffff24, transparent 55%), linear-gradient(160deg, var(--accent) 0%, var(--accent-dark) 100%);color:var(--accent-text);align-items:center;padding:56px;display:flex}.login-hero-inner{max-width:460px}.login-hero-mark{font-family:var(--font-serif-stack);letter-spacing:.02em;opacity:.92;align-items:center;gap:8px;margin-bottom:28px;font-size:18px;display:inline-flex}.login-hero h1{font-family:var(--font-serif-stack);color:var(--accent-text);margin:0 0 16px;font-size:40px;line-height:1.1}.login-hero p{opacity:.94;margin:0 0 28px;font-size:17px;line-height:1.6}.login-hero-list{gap:12px;margin:0;padding:0;font-size:15px;list-style:none;display:grid}.login-hero-list li{opacity:.95;align-items:center;gap:10px;display:flex}.login-hero-list li svg{opacity:.85;flex:none}.login-pane{background:linear-gradient(160deg,#faf7f4 0%,#f3e9e5 100%);justify-content:center;align-items:center;padding:32px;display:flex}.login-pane .login-card{width:min(400px,100%)}.login-card-mark{font-family:var(--font-serif-stack);color:var(--accent);align-items:center;gap:6px;font-size:17px;font-weight:700;display:inline-flex}@media (max-width:820px){.login-shell{grid-template-columns:1fr}.login-hero{display:none}}.report-body{white-space:pre-wrap;font-size:15px;line-height:1.7}.letterhead{border-bottom:2px solid var(--accent);justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:10px;display:flex}.invoice-doc,.payable-doc{max-width:720px}.total-due{color:var(--accent)}.payment-methods{margin-top:24px}.payment-methods .pay-option{margin-top:12px}.student-group{page-break-inside:auto}.feedback-doc{max-width:820px;font-size:12.5px}.feedback-doc table{box-shadow:none;border:1px solid #c9c1ba;border-radius:0;margin-top:0}.feedback-doc th,.feedback-doc td{text-transform:none;letter-spacing:0;vertical-align:top;border:1px solid #c9c1ba;padding:6px 9px;font-size:12.5px;line-height:1.4}.feedback-doc .ff-head th,.feedback-doc .ff-notes th{background:var(--accent-soft);color:var(--text);white-space:nowrap;width:15%;font-weight:700}.feedback-doc .ff-head{margin-top:14px}.feedback-doc .ff-section-bar{background:var(--accent);color:var(--accent-text);margin-top:16px;padding:6px 9px;font-size:12.5px;font-weight:700}.feedback-doc .ff-notes td{height:22px}.feedback-doc .ff-log thead th{background:var(--accent);color:var(--accent-text);font-size:12px;font-weight:700}.feedback-doc .ff-group{page-break-inside:auto}.invoice-doc,.payable-doc{font-size:13px}.invoice-doc table,.payable-doc table{box-shadow:none;margin-top:6px}.line-items th,.line-items td{white-space:nowrap}.line-items .ln-wrap{white-space:normal}.invoice-doc th,.invoice-doc td,.payable-doc th,.payable-doc td{padding:5px 9px;font-size:12.5px;line-height:1.35}.invoice-doc th,.payable-doc th{font-size:10.5px}.invoice-doc .student-group,.payable-doc .student-group{margin-top:12px!important}@media print{.sidebar,.no-print{display:none!important}.app-shell{display:block}.content{max-width:none;padding:0}.panel{box-shadow:none;border:none;padding:0}.letterhead{border-bottom:2px solid var(--accent)}.invoice-doc table,.payable-doc table{page-break-inside:auto}.invoice-doc tr,.payable-doc tr{page-break-inside:avoid}.student-group>div:first-child,.payable-doc .row-between{page-break-after:avoid}.payment-methods{page-break-before:always}.payment-methods .pay-option{page-break-inside:avoid}.invoice-doc table,.payable-doc table{table-layout:fixed;width:100%;font-size:11px;overflow:visible}.invoice-doc th,.invoice-doc td,.payable-doc th,.payable-doc td{box-sizing:border-box;overflow-wrap:break-word;padding:5px 7px}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4 portrait;margin:12mm}}.invoice-doc table,.payable-doc table{table-layout:fixed}.invoice-doc th,.invoice-doc td,.payable-doc th,.payable-doc td{overflow-wrap:anywhere;word-break:break-word}.stack>*+*{margin-top:10px}.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}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;display:grid}.chart{page-break-inside:avoid}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.kpi-card{padding:14px 16px}.kpi-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.kpi-value{font-family:var(--font-serif-stack);margin:4px 0 2px;font-size:26px;font-weight:700;line-height:1.1}.kpi-foot{align-items:baseline;gap:8px;display:flex}.kpi-delta{font-size:12px;font-weight:700}.chart-title{margin-bottom:6px;font-size:13px;font-weight:600}.chart-card{position:relative}.chart-card-tools{opacity:.35;gap:4px;transition:opacity .12s;display:flex;position:absolute;top:8px;right:8px}.chart-card:hover .chart-card-tools,.chart-card-tools:focus-within{opacity:1}.chart-tool{border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:5px;width:24px;height:24px;padding:0;font-size:13px;line-height:1}.chart-tool:hover{color:var(--accent-dark);border-color:var(--accent-soft);background:var(--accent-soft)}.chart-modal{z-index:60;background:#2a23208c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.chart-modal-inner{background:var(--panel);border-radius:var(--radius);width:min(920px,96vw);max-height:92vh;padding:20px;overflow:auto;box-shadow:0 8px 40px #2a23204d}.chart-modal-svg svg{width:100%;height:auto}@media (max-width:760px){.chart-grid{grid-template-columns:1fr}}.report-bar{flex-wrap:wrap;align-items:flex-end;gap:14px;padding:14px 16px;display:flex}.report-bar .field{margin:0}.report-bar select,.report-bar input{min-width:190px}.grid-2{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}@media (max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);padding:14px 14px 10px}.brand{margin-bottom:10px}.sidebar nav{flex-wrap:wrap;gap:4px;display:flex}.sidebar nav a{margin-bottom:0}.content{padding:18px 14px;overflow-x:auto}.grid-2{grid-template-columns:1fr}.content>div>div[style*="grid-template-columns: 1fr 1fr"],.content div[style*="repeat(4, 1fr)"]{grid-template-columns:1fr!important}th,td{padding:8px 10px;font-size:13px}}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.cal-nav{align-items:center;gap:8px;display:flex}.cal-navbtn{padding:6px 12px}.cal-period{font-family:var(--font-serif-stack);margin-left:6px;font-size:16px}.cal-viewtoggle{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.cal-toggle{color:var(--muted);background:var(--panel);padding:7px 16px}.cal-toggle:hover{background:var(--accent-soft);text-decoration:none}.cal-toggle.active{background:var(--accent);color:var(--accent-text)}.cal-toggle.active:hover{background:var(--accent-dark)}.profile-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:18px;display:flex}.profile-tab{color:var(--muted);background:0 0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 16px;font-size:14px}.profile-tab:hover{color:var(--text);background:var(--accent-soft);text-decoration:none}.profile-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.profile-tab.active:hover{background:var(--accent-soft)}.cal-legend{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.cal-legend-item{border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:inline-flex}.cal-legend-item.off{opacity:.4;text-decoration:line-through}.cal-swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.cal-week{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow:hidden}.cal-week-agenda-fallback{display:none}.cal-week-head,.cal-week-body{grid-template-columns:56px repeat(7,1fr);display:grid}.cal-week-head{border-bottom:1px solid var(--border)}.cal-dayhead{text-align:center;border-left:1px solid var(--border);padding:8px 6px;font-size:13px}.cal-dayhead.today{background:var(--accent-soft);color:var(--accent-dark);font-weight:600}.cal-dow{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.cal-dom{font-weight:600}.cal-gutter{border:none}.cal-gutter-col{position:relative}.cal-hour-label{height:60px;color:var(--muted);text-align:right;padding-right:6px;font-size:12px;transform:translateY(-6px)}.cal-daycol{border-left:1px solid var(--border);height:900px;position:relative}.cal-daycol.today{background:#b23a2e08}.cal-hourline{border-top:1px solid var(--border);pointer-events:none;position:absolute;left:0;right:0}.cal-avail-band{z-index:0;pointer-events:none;background:#16a34a24;border-left:3px solid #16a34ab3;position:absolute;left:0;right:0}.cal-slot{z-index:1;display:block;position:absolute;left:0;right:0}.cal-slot:hover{background:var(--accent-soft);text-decoration:none}.cal-block{z-index:2;border:1px solid #0000000f;border-radius:5px;flex-direction:column;min-height:16px;padding:3px 7px;font-size:12px;line-height:1.22;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px 1px #0000000f}.cal-block:hover{filter:brightness(.97);z-index:5;text-decoration:none}.cal-block.cancelled{opacity:.5;text-decoration:line-through}.cal-block-time,.cal-block-title,.cal-block-sub{white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;overflow:hidden}.cal-block-time{font-weight:700}.cal-block-title{font-weight:600}.cal-block-sub{opacity:.85;font-size:11.5px}.cal-allday-row{border-bottom:1px solid var(--border);background:var(--panel);grid-template-columns:56px repeat(7,1fr);display:grid}.cal-allday-gutter{color:var(--muted);text-align:right;padding:4px 6px 0 0;font-size:10px}.cal-allday-cell{border-left:1px solid var(--border);flex-direction:column;gap:2px;min-height:22px;padding:3px 4px;display:flex}.cal-band{white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:2px 5px;font-size:11px;font-weight:600;display:block;overflow:hidden}.cal-block-event{cursor:default}.cal-chip-event{font-weight:600}.cal-band-exam,.cal-chip-exam{cursor:default;font-weight:600}a.cal-agenda-block,a.cal-band,a.cal-block-event,a.cal-chip-event{cursor:pointer;text-decoration:none}.cal-block.principal,.cal-chip.principal{font-weight:700}.cal-agenda-row.principal{box-shadow:inset 3px 0 0 0 var(--text,#111)}.cal-agenda-row.principal .cal-agenda-title{font-weight:700}.cal-month{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow:hidden}.cal-month-head,.cal-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-month-head{border-bottom:1px solid var(--border)}.cal-month-dow{text-align:center;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:6px;font-size:11px}.cal-month-cell{border-left:1px solid var(--border);border-top:1px solid var(--border);flex-direction:column;gap:3px;min-width:0;min-height:140px;padding:5px 6px;display:flex;position:relative}.cal-month-chips{z-index:1;flex-direction:column;gap:2px;max-height:320px;display:flex;position:relative;overflow-y:auto}.cal-month-free{z-index:1;color:#15803d;text-overflow:ellipsis;white-space:nowrap;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:4px;min-width:0;margin:3px 0 0;padding:1px 4px;font-size:10.5px;font-weight:600;position:relative;overflow:hidden}.cal-filter-teachers .cal-chip-row{flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:5px;display:flex}.cal-chip-lead{letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#7a6a5d);font-size:11px;font-weight:700}.cal-filter-chip{font:inherit;background:var(--accent,#b23b2e);border:1px solid var(--accent,#b23b2e);color:#fff;cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.cal-filter-chip-tick{opacity:.9;font-size:11px}.cal-filter-chip-x{opacity:.75;font-size:14px;line-height:1}.cal-filter-chip:hover .cal-filter-chip-x,.cal-filter-chip:focus-visible .cal-filter-chip-x{opacity:1}.cal-filter-chip:hover{background:var(--danger,#b3261e);border-color:var(--danger,#b3261e)}.cal-month-frees{flex-direction:column;gap:2px;margin-top:3px;display:flex}.cal-month-frees .cal-month-free{background:#f6fef9;border-color:#d6f5e0;margin:0;font-weight:500}.cal-month-free-more{opacity:.85;font-style:italic}.cal-month-slot{z-index:0;display:block;position:absolute;inset:0}.cal-month-slot:hover{background:var(--accent-soft);text-decoration:none}.cal-month-date,.cal-chip,.cal-more{z-index:1;position:relative}.cal-month-cell.muted-day{background:#faf7f4}.cal-month-cell.muted-day .cal-month-date{color:#bbb}.cal-month-cell.today .cal-month-date{background:var(--accent);color:var(--accent-text);border-radius:999px}.cal-month-date{justify-content:center;align-self:flex-start;align-items:center;width:22px;height:22px;font-size:12px;font-weight:600;display:flex}.cal-chip{white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:2px 5px;font-size:11px;display:block;overflow:hidden}.cal-chip:hover{filter:brightness(.94);text-decoration:none}.cal-chip.cancelled{opacity:.5;text-decoration:line-through}.cal-chip-lesson{white-space:normal;border:1px solid #0000000f;border-radius:5px;flex-direction:column;gap:0;min-width:0;padding:3px 7px;font-size:11.5px;line-height:1.2;display:flex}.cal-chip-lesson .cal-chip-line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cal-chip-time{align-items:center;gap:4px;font-weight:700;display:inline-flex}.cal-chip-label{opacity:.95;font-weight:500}.cal-more{color:var(--muted);font-size:11px}.finder-results{flex-direction:column;gap:8px;display:flex}.finder-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;display:flex}.finder-row.available_busy,.finder-row.outside_hours{opacity:.85;background:#fbf8f5}.finder-name{font-size:15px;font-weight:600}.finder-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:3px;font-size:13px;display:flex}.finder-chip{border:1px solid #0000;border-radius:999px;align-items:center;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.finder-chip.ok{color:#15803d;background:#e7f5ec;border-color:#bfe3cc}.finder-chip.busy{color:#b45309;background:#fdf0e1;border-color:#f2d9b4}.finder-chip.off{color:var(--muted);border-color:var(--border);background:#f1eeeb}.finder-action{flex:none}@media (max-width:560px){.finder-row{flex-direction:column;align-items:flex-start;gap:8px}}.report-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.report-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);padding:16px 18px;display:block;box-shadow:0 1px 2px #2a23200a}.report-card:hover{border-color:var(--accent);text-decoration:none;box-shadow:0 2px 10px #2a232014}.report-card-title{margin-bottom:6px;font-size:15px;font-weight:600}.report-card-body{color:var(--muted);margin:0 0 10px;font-size:13px;line-height:1.5}.report-card-cta{color:var(--accent);font-size:13px;font-weight:600}.finder-board-bar{flex-wrap:wrap;align-items:center;gap:16px;margin:0 0 10px;display:flex}.finder-onlyfree{color:var(--text);cursor:pointer;align-items:center;gap:6px;margin:0;font-size:12.5px;display:inline-flex}.finder-board-scroll{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:10px;overflow-x:auto}.finder-board{gap:6px;min-width:min-content;display:grid}.fb-head{flex-direction:column;align-items:flex-start;gap:4px;padding:0 2px 2px;font-size:13px;display:flex}.fb-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-weight:600;overflow:hidden}.fb-gutter{height:560px;position:relative}.fb-hour{color:var(--muted);white-space:nowrap;font-size:11px;position:absolute;right:6px;transform:translateY(-50%)}.fb-col{border:1px solid var(--border);background:var(--panel);border-radius:8px;height:560px;position:relative;overflow:hidden}.fb-line{border-top:1px solid var(--border);opacity:.5;pointer-events:none;position:absolute;left:0;right:0}.fb-avail{z-index:0;pointer-events:none;background:#16a34a24;border-left:3px solid #16a34a8c;position:absolute;left:0;right:0}.fb-head-note{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10.5px;overflow:hidden}.fb-reqline{z-index:1;border-top:2px dashed var(--accent);opacity:.55;pointer-events:none;position:absolute;left:0;right:0}.fb-slot{z-index:1;text-align:center;color:#15803d;border-radius:5px;justify-content:center;align-items:center;display:flex;position:absolute;left:2px;right:2px}.fb-slot:hover{outline-offset:-1px;background:#16a34a29;outline:1px dashed #16a34a99;text-decoration:none}.fb-slot-label{opacity:0;font-size:11px;font-weight:600}.fb-slot:hover .fb-slot-label{opacity:1}.fb-slot.requested{z-index:2;background:#16a34a1a;border:1px dashed #16a34ab3}.fb-slot.requested .fb-slot-label{opacity:1}.fb-none{z-index:0;text-align:center;color:var(--muted);font-size:11px;position:absolute;top:8px;left:0;right:0}.fb-block{z-index:2;border:1px solid #0000000f;border-radius:5px;flex-direction:column;padding:3px 6px;font-size:11.5px;line-height:1.2;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px 1px #0000000f}.fb-block-time{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.fb-block-label{opacity:.9;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.finder-list-fallback{display:none}@media (max-width:640px){.finder-board-wrap{display:none}.finder-list-fallback{display:flex}}.cal-agenda{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow:hidden}.cal-agenda-day{border-bottom:1px solid var(--border)}.cal-agenda-day:last-child{border-bottom:none}.cal-agenda-date{background:var(--accent-soft);border-bottom:1px solid var(--border);z-index:1;align-items:baseline;gap:8px;padding:8px 14px;display:flex;position:sticky;top:0}.cal-agenda-date.today{box-shadow:inset 3px 0 0 var(--accent)}.cal-agenda-dow{color:var(--text);font-size:14px;font-weight:700}.cal-agenda-dom{color:var(--muted);font-size:13px}.cal-agenda-todaytag{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-left:auto;font-size:11px;font-weight:700}.cal-agenda-blocks{flex-wrap:wrap;gap:6px;padding:8px 14px 0;display:flex}.cal-agenda-block{border-radius:999px;align-items:center;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.cal-agenda-empty{color:var(--muted);margin:0;padding:10px 14px;font-size:13px}.cal-agenda-list{flex-direction:column;gap:6px;margin:0;padding:6px;list-style:none;display:flex}.cal-agenda-row{border:1px solid var(--border);border-left:4px solid var(--accent);background:var(--panel);color:var(--text);border-radius:6px;align-items:center;gap:12px;padding:8px 10px;text-decoration:none;display:flex}.cal-agenda-row:hover{background:var(--accent-soft);text-decoration:none}.cal-agenda-row.cancelled{opacity:.5}.cal-agenda-row.cancelled .cal-agenda-title{text-decoration:line-through}.cal-agenda-time{flex-direction:column;min-width:92px;line-height:1.2;display:flex}.cal-agenda-start{white-space:nowrap;font-size:14px;font-weight:700}.cal-agenda-dur{color:var(--muted);font-size:11px}.cal-agenda-swatch{border-radius:3px;flex:none;width:10px;height:10px}.cal-agenda-main{flex-direction:column;gap:2px;min-width:0;display:flex}.cal-agenda-title{font-size:14px;font-weight:600}.cal-agenda-meta{color:var(--muted);font-size:12px}@media (max-width:760px){.cal-block-sub{display:none}.cal-month-cell{min-height:76px}.cal-chip{padding:1px 4px;font-size:10px}.cal-chip-lesson{gap:0;padding:2px 4px;font-size:10px}}@media (max-width:640px){.cal-week-grid-wrap{display:none}.cal-week-agenda-fallback{display:block}.profile-tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.profile-tab{white-space:nowrap;flex:none}}@media (max-width:760px){.panel{overflow-x:auto}table{min-width:520px}}.stat-card{align-items:center;gap:12px;display:flex}.stat-badge{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:11px;flex:none;justify-content:center;align-items:center;display:flex}.nav-group{margin-bottom:14px}.nav-group-title{letter-spacing:.09em;text-transform:uppercase;color:var(--muted-fg,#8a7f7a);opacity:.75;margin:2px 12px 4px;font-size:10.5px;font-weight:700}.cmdk-trigger{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--muted);font-size:13px;font-family:var(--font-sans-stack);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;margin-top:16px;padding:8px 12px;display:flex}.cmdk-trigger:hover{border-color:var(--accent);color:var(--text)}.cmdk-trigger kbd,.cmdk-footer kbd{background:var(--panel);border:1px solid var(--border);font-size:11px;font-family:var(--font-sans-stack);color:var(--muted);border-radius:4px;padding:2px 6px}.cmdk-overlay{z-index:100;background:#00000059;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.cmdk-panel{background:var(--panel);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius);flex-direction:column;width:100%;max-width:560px;display:flex;overflow:hidden;box-shadow:0 16px 48px #2a232038}.cmdk-input{border:none;border-bottom:1px solid var(--border);width:100%;font-size:16px;font-family:var(--font-sans-stack);color:var(--text);background:0 0;padding:18px 20px}.cmdk-input:focus{outline:none}.cmdk-input::placeholder{color:var(--muted)}.cmdk-list{max-height:320px;padding:8px;overflow-y:auto}.cmdk-group{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 12px 4px;font-size:11px;font-weight:600}.cmdk-group--recent{justify-content:space-between;align-items:center;display:flex}.cmdk-clear{font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}.cmdk-clear:hover{text-decoration:underline}.cmdk-item{width:100%;font-family:var(--font-sans-stack);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;font-size:14px;display:flex}.cmdk-item[data-active=true]{background:var(--accent-soft)}.cmdk-item[data-active=true] .cmdk-item-label{color:var(--accent-dark)}.cmdk-item-label{font-weight:500}.cmdk-item-sub{color:var(--muted);white-space:nowrap;font-size:12px}.cmdk-empty{text-align:center;color:var(--muted);padding:28px 16px;font-size:14px}.cmdk-footer{border-top:1px solid var(--border);color:var(--muted);gap:16px;padding:10px 16px;font-size:12px;display:flex}.cmdk-footer span{align-items:center;gap:4px;display:flex}.cal-popup-backdrop{z-index:60;background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.cal-popup{background:var(--bg,#fff);color:var(--text,#0f172a);border:1px solid var(--border);border-radius:12px;width:100%;max-width:420px;max-height:90vh;padding:20px 22px;position:relative;overflow-y:auto;box-shadow:0 20px 50px #0f172a40}.cal-popup-close{cursor:pointer;color:var(--muted,#64748b);background:0 0;border:0;font-size:24px;line-height:1;position:absolute;top:8px;right:10px}.cal-popup-iconbar{justify-content:flex-end;align-items:center;gap:2px;margin:-6px -6px 6px 0;display:flex}.cal-popup-iconbtn{width:32px;height:32px;color:var(--muted,#64748b);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.cal-popup-iconbtn:hover{background:var(--accent-soft);color:var(--accent-dark);text-decoration:none}.cal-popup-iconbtn.danger:hover{color:var(--danger);background:#fde8e8}.cal-popup-iconbtn.close{font-size:22px;line-height:1}.cal-popup-edit label{margin-top:12px}.cal-popup-edit label:first-child{margin-top:4px}.cal-popup-danger{border:1px solid var(--danger);background:#fdf3f2;border-radius:8px;margin-top:14px;padding:12px}.cal-popup-danger p{margin:0 0 10px;font-size:13px}.cal-popup-primary{text-align:center;justify-content:center;align-items:center;gap:7px;width:100%;margin-top:16px;display:flex}.cal-popup-title{margin:0 24px 2px 0;font-size:18px}.cal-popup-sub{color:var(--muted,#64748b);margin-bottom:14px;font-size:14px}.cal-popup-rows{gap:10px;margin:0;display:grid}.cal-popup-rows>div{grid-template-columns:96px 1fr;align-items:baseline;gap:10px;display:grid}.cal-popup-rows dt{color:var(--muted,#64748b);font-size:13px}.cal-popup-rows dd{margin:0;font-size:14px}.cal-popup-actions{gap:8px;margin-top:18px;display:flex}.rt-editor{gap:6px;display:grid}.rt-toolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.rt-btn{border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:6px;padding:2px 8px;font-size:13px;line-height:1.6}.rt-btn:hover{border-color:var(--accent);color:var(--accent-dark)}.rt-btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-dark)}.rt-preview{border:1px solid var(--border);background:var(--bg);border-radius:8px;min-height:64px;padding:8px 12px}.rt-p{margin:0 0 6px}.rt-p:last-child{margin-bottom:0}.rt-list{margin:4px 0 6px;padding-left:20px}.rt-list li{margin:2px 0}
