@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-emerald-50:#ecfdf5;--color-emerald-700:#007956;--color-emerald-800:#005f46;--color-emerald-950:#002c22;--color-slate-500:#62748e;--color-slate-600:#45556c;--color-slate-900:#0f172b;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-semibold:600;--font-weight-bold:700;--radius-xl:.75rem;--radius-3xl:1.5rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-emerald-50:lab(97.8462% -6.94966 1.85487);--color-emerald-700:lab(44.4871% -41.0396 11.0361);--color-emerald-800:lab(35.3675% -33.1188 8.04002);--color-emerald-950:lab(15.0582% -17.9507 2.38369);--color-slate-500:lab(48.0876% -2.03595 -16.5814);--color-slate-600:lab(35.5623% -1.74978 -15.4316);--color-slate-900:lab(7.78673% 1.82345 -15.0537)}}}@layer base{*,:after,:before,::backdrop{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}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{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:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-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{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-8{margin-top:calc(var(--spacing) * 8)}.block{display:block}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-lg{max-width:var(--container-lg)}.grow{flex-grow:1}.place-items-center{place-items:center}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-emerald-700{border-color:var(--color-emerald-700)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-700{background-color:var(--color-emerald-700)}.bg-white{background-color:var(--color-white)}.p-8{padding:calc(var(--spacing) * 8)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-emerald-950\/5{--tw-shadow-color:#002c220d}@supports (color:color-mix(in lab, red, red)){.shadow-emerald-950\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-emerald-950) 5%, transparent) var(--tw-shadow-alpha), transparent)}}}:root{--green-950:#052e1a;--green-900:#0b4628;--green-800:#115e36;--green-700:#167044;--green-600:#1d8953;--green-500:#28a866;--green-200:#b9e9cc;--green-100:#dff5e7;--green-50:#effaf3;--lime-100:#eef8d8;--teal-100:#d9f3ef;--ink:#14251c;--muted:#64756c;--line:#dfe9e3;--surface:#fff;--canvas:#f5f8f6;--danger:#b42318;--warning:#a15c00;--shadow:0 12px 35px #0f372112;--radius:18px}*{box-sizing:border-box}html{background:var(--canvas);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}a{color:inherit;text-decoration:none}:focus-visible{outline-offset:2px;outline:3px solid #16704459}::selection{background:var(--green-200);color:var(--green-950)}.app-frame{min-height:100vh;padding-top:34px;padding-left:248px}.demo-banner{z-index:80;background:var(--green-950);color:#fff;letter-spacing:.01em;justify-content:center;align-items:center;gap:14px;height:34px;font-size:12px;display:flex;position:fixed;inset:0 0 auto}.demo-banner>span:first-child{align-items:center;gap:6px;font-weight:750;display:flex}.demo-banner-copy{color:#c8e8d4}.demo-banner button{color:#e0f7e8;background:0 0;border:0;align-items:center;gap:5px;padding:5px 7px;font-weight:650;display:flex}.demo-banner button:hover{color:#fff;text-decoration:underline}.sidebar{z-index:50;background:#fbfdfc;border-right:1px solid #e5ece8;flex-direction:column;width:248px;padding:25px 17px 18px;display:flex;position:fixed;top:34px;bottom:0;left:0}.brand{align-items:center;gap:11px;min-height:46px;padding:0 8px;display:flex}.brand-mark{background:var(--green-700);color:#fff;border-radius:13px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 7px 16px #16704433}.brand-mark.small{width:31px;height:31px;box-shadow:none;border-radius:9px}.brand strong{color:var(--green-900);font-family:Georgia,Times New Roman,serif;font-size:24px;line-height:.95;display:block}.brand small{color:var(--muted);letter-spacing:.17em;text-transform:uppercase;margin-top:3px;font-size:9px;font-weight:750;display:block}.sidebar nav{gap:5px;margin-top:36px;display:grid}.sidebar nav a{color:#52645a;border-radius:12px;align-items:center;gap:11px;min-height:45px;padding:0 13px;font-weight:620;transition:all .16s;display:flex}.sidebar nav a:hover{background:var(--green-50);color:var(--green-800)}.sidebar nav a[aria-current=page]{background:var(--green-100);color:var(--green-800);box-shadow:inset 3px 0 var(--green-600)}.sidebar-help{background:linear-gradient(145deg,#e9f8ef,#f4fbf6);border:1px solid #d8ede0;border-radius:16px;margin-top:auto;padding:17px}.help-icon{width:27px;height:27px;color:var(--green-700);background:#fff;border-radius:50%;place-items:center;margin-bottom:10px;font-weight:800;display:grid;box-shadow:0 3px 10px #115e361a}.sidebar-help strong{font-size:13px;display:block}.sidebar-help p{color:var(--muted);margin:4px 0 12px;font-size:11px;line-height:1.45}.sidebar-help button,.sidebar-help a{color:var(--green-700);background:0 0;border:0;padding:0;font-size:11px;font-weight:750}.sidebar-help a:hover{text-decoration:underline}.logout-form{margin-top:14px}.logout-link{color:#66766e;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:11px;align-items:center;gap:10px;padding:11px 13px;font-weight:620;display:flex}.logout-link:hover{color:var(--danger);background:#f5ecea}.workspace{min-height:calc(100vh - 34px)}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:40;background:#ffffffeb;align-items:center;height:82px;padding:0 32px;display:flex;position:sticky;top:34px}.page-heading>span,.panel-heading>div>span,.section-heading>div>span{color:var(--green-700);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:800;line-height:1.3;display:block}.page-heading h1{letter-spacing:-.02em;margin:3px 0 0;font-family:Georgia,Times New Roman,serif;font-size:25px;font-weight:700}.topbar-actions{align-items:center;gap:16px;margin-left:auto;display:flex}.role-switcher{align-items:center;gap:9px;display:flex}.role-switcher>label{color:var(--muted);font-size:11px;font-weight:650}.role-switcher>div{position:relative}.role-switcher select{appearance:none;border:1px solid var(--line);min-width:148px;height:36px;color:var(--green-900);background:#fff;border-radius:10px;padding:0 32px 0 11px;font-size:12px;font-weight:700}.role-switcher svg{pointer-events:none;position:absolute;top:11px;right:9px}.user-chip{border-left:1px solid var(--line);align-items:center;gap:9px;min-width:175px;padding-left:16px;display:flex}.user-avatar{background:var(--green-100);width:36px;height:36px;color:var(--green-700);border-radius:50%;place-items:center;display:grid}.user-chip strong,.user-chip small{display:block}.user-chip strong{font-size:12px}.user-chip small{color:var(--muted);margin-top:2px;font-size:10px}.mobile-brand,.mobile-nav,.mobile-fab,.mobile-filter-button{display:none}.main-content{max-width:1560px;margin:0 auto;padding:26px 32px 48px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 3px #0c2d1b05}.button{border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 17px;font-weight:720;transition:all .16s;display:inline-flex}.button.primary{background:var(--green-700);color:#fff;box-shadow:0 6px 15px #1670442e}.button.primary:hover{background:var(--green-800);transform:translateY(-1px)}.button.secondary{border-color:var(--line);color:#405148;background:#fff}.button.secondary:hover{border-color:var(--green-200);background:var(--green-50);color:var(--green-800)}.button.danger{background:var(--danger);color:#fff}.button.danger-ghost{color:var(--danger);background:#fff8f7;border-color:#f3cac6;margin-right:auto}.button.small{border-radius:9px;min-height:35px;padding:0 12px;font-size:12px}.button.tiny{border-radius:8px;min-height:30px;padding:0 10px;font-size:11px}.icon-button{border:1px solid var(--line);color:#596a61;background:#fff;border-radius:10px;place-items:center;width:38px;height:38px;padding:0;display:grid}.icon-button:hover{background:var(--green-50);color:var(--green-700);border-color:var(--green-200)}.icon-button.light{color:#fff;background:#ffffff21;border-color:#ffffff40}.icon-button.accent{background:var(--green-100);color:var(--green-700);border-color:#0000}.push-right{margin-left:auto}.toast{z-index:150;color:#fff;background:#0c6037;border-radius:13px;align-items:center;gap:10px;max-width:min(410px,100vw - 32px);min-height:52px;padding:12px 13px;animation:.22s ease-out toast-in;display:flex;position:fixed;top:86px;right:25px;box-shadow:0 18px 45px #052e1a38}.toast.error{background:#8f281f}.toast span{font-weight:620;line-height:1.35}.toast button{color:inherit;background:0 0;border:0;place-items:center;margin-left:auto;padding:5px;display:grid}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}.dashboard-stack,.agenda-stack,.directory-stack,.availability-stack,.pending-attendance-stack{gap:20px;display:grid}.welcome-row{align-items:flex-end;gap:20px;min-height:98px;display:flex}.welcome-row>div{flex:1}.today-label{color:var(--green-700);text-transform:capitalize;margin:0 0 7px;font-size:11px;font-weight:800}.welcome-row h2{letter-spacing:-.025em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(25px,2.7vw,35px);line-height:1.05}.welcome-row p:not(.today-label){color:var(--muted);margin:8px 0 0}.pending-alert{color:#6c4507;background:#fffaf0;border:1px solid #f2d59a;border-radius:14px;align-items:center;gap:13px;min-height:68px;padding:12px 17px;display:flex}.pending-alert-icon{color:#a05e00;background:#fff0cd;border-radius:10px;place-items:center;width:38px;height:38px;display:grid}.pending-alert div{flex:1}.pending-alert strong{font-size:13px}.pending-alert p{color:#8e6a2d;margin:3px 0 0;font-size:11px}.pending-alert a{color:#845000;align-items:center;gap:5px;font-size:12px;font-weight:750;display:inline-flex}.metric-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.metric-card{border:1px solid var(--line);background:#fff;border-radius:16px;min-height:150px;padding:18px;position:relative;overflow:hidden}.metric-card:after{content:"";background:var(--green-50);border-radius:50%;width:92px;height:92px;position:absolute;top:-45px;right:-38px}.metric-icon{width:38px;height:38px;color:var(--green-700);background:var(--green-100);border-radius:11px;place-items:center;display:grid}.metric-icon.forest{color:#14532d;background:#dcf1e2}.metric-icon.lime{color:#4d7c0f;background:var(--lime-100)}.metric-icon.teal{color:#0f766e;background:var(--teal-100)}.metric-context{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin:13px 0 1px;font-size:10px;font-weight:700;display:block}.metric-card>strong{color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:31px;line-height:1}.metric-card p{color:var(--muted);margin:4px 0 0;font-size:11px}.dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(270px,.85fr);gap:20px;display:grid}.upcoming-panel,.week-panel,.teacher-performance{padding:20px}.panel-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.panel-heading h2,.panel-heading h3{margin:3px 0 0;font-family:Georgia,Times New Roman,serif;font-size:20px}.panel-heading a,.panel-heading>button:not(.button):not(.icon-button){color:var(--green-700);align-items:center;gap:5px;font-size:11px;font-weight:750;display:flex}.upcoming-list{margin-top:14px}.upcoming-item{border-top:1px solid #edf2ef;grid-template-columns:67px minmax(150px,1fr) auto;align-items:center;gap:14px;min-height:70px;padding:10px 8px 10px 14px;display:grid;position:relative}.upcoming-item:first-child{border-top:0}.teacher-stripe{border-radius:3px;width:3px;position:absolute;top:14px;bottom:14px;left:0}.upcoming-time strong,.upcoming-time span,.upcoming-main strong,.upcoming-main span{display:block}.upcoming-time strong{font-size:14px}.upcoming-time span{color:var(--muted);text-transform:capitalize;margin-top:3px;font-size:10px}.upcoming-main strong{font-size:13px}.upcoming-main span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:5px;font-size:10px;overflow:hidden}.upcoming-main svg{vertical-align:-2px;margin-right:3px}.teacher-pill{color:#506158;align-items:center;gap:7px;padding-right:5px;font-size:10px;font-weight:650;display:flex}.teacher-pill>span{color:#fff;border-radius:50%;place-items:center;width:25px;height:25px;font-size:10px;display:grid}.total-chip,.subtle-badge,.count-badge{background:var(--green-50);color:var(--green-700);border-radius:9px;align-items:center;gap:5px;padding:6px 9px;font-size:10px;font-weight:750;display:inline-flex}.mini-chart{align-items:stretch;gap:10px;height:196px;padding:20px 5px 3px;display:flex}.chart-column{flex-direction:column;flex:1;align-items:center;gap:5px;min-width:24px;display:flex}.chart-count{min-height:17px;font-size:10px;font-weight:750}.chart-track{background:#edf4ef;border-radius:7px;flex:1;align-items:flex-end;width:100%;display:flex;overflow:hidden}.chart-track>span{background:linear-gradient(var(--green-500), var(--green-700));border-radius:7px 7px 0 0;width:100%;min-height:3px;display:block}.chart-label{color:var(--muted);text-transform:uppercase;font-size:9px}.teacher-bars{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:18px;display:grid}.teacher-bar-row{grid-template-columns:33px minmax(90px,auto) 1fr 22px;align-items:center;gap:9px;display:grid}.avatar-dot{color:#fff;border-radius:50%;place-items:center;width:31px;height:31px;font-size:11px;font-weight:800;display:grid}.teacher-bar-row strong{font-size:11px}.teacher-bar-row>span:last-child{color:var(--muted);text-align:right;font-size:11px}.bar-track{background:#edf3ef;border-radius:8px;height:7px;overflow:hidden}.bar-track span{border-radius:inherit;min-width:5px;height:100%;display:block}.pending-attendance-intro{align-items:center;gap:16px;min-height:116px;padding:20px 22px;display:flex}.pending-attendance-intro-icon{color:#9a5a00;background:#fff0cd;border-radius:14px;flex:none;place-items:center;width:48px;height:48px;display:grid}.pending-attendance-intro>div{flex:1}.pending-attendance-intro>div>span{color:var(--green-700);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:800}.pending-attendance-intro h2{margin:4px 0 0;font-family:Georgia,Times New Roman,serif;font-size:24px}.pending-attendance-intro p{max-width:760px;color:var(--muted);margin:6px 0 0;line-height:1.5}.pending-attendance-panel{padding:20px}.pending-attendance-table{border:1px solid var(--line);border-radius:13px;margin-top:15px;overflow:hidden}.pending-attendance-head,.pending-attendance-row{grid-template-columns:minmax(165px,.9fr) minmax(140px,1fr) minmax(150px,1fr) minmax(190px,1.4fr) minmax(160px,auto);align-items:center;gap:14px;display:grid}.pending-attendance-head{color:#7c8c83;letter-spacing:.07em;text-transform:uppercase;background:#f6f9f7;min-height:42px;padding:0 14px;font-size:9px;font-weight:800}.pending-attendance-row{background:#fff;border-top:1px solid #edf2ef;min-height:79px;padding:10px 14px;transition:background .16s}.pending-attendance-row:hover{background:#fbfdfc}.pending-attendance-date strong,.pending-attendance-date span{display:block}.pending-attendance-date strong{text-transform:capitalize;font-size:11px}.pending-attendance-date span{color:var(--muted);margin-top:5px;font-size:10px}.pending-attendance-date svg{vertical-align:-2px}.pending-attendance-subject{align-items:center;gap:9px;min-width:0;display:flex}.pending-attendance-subject>span{background:var(--green-50);width:31px;height:31px;color:var(--green-700);border-radius:9px;flex:none;place-items:center;display:grid}.pending-attendance-subject strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.pending-attendance-teacher{color:#506158;align-items:center;gap:7px;min-width:0;font-size:10px;font-weight:650;display:flex}.pending-attendance-teacher>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pending-attendance-teacher svg{vertical-align:-2px}.pending-attendance-students{min-width:0;color:var(--muted);align-items:center;gap:6px;font-size:10px;display:flex}.pending-attendance-students svg{flex:none}.pending-attendance-students span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pending-attendance-action{justify-content:flex-end;display:flex}.pending-attendance-action .button{white-space:nowrap}.agenda-toolbar{align-items:center;gap:16px;min-height:64px;padding:10px 12px 10px 16px;display:flex}.date-navigation{align-items:center;gap:7px;min-width:320px;display:flex}.date-navigation .icon-button{border-radius:8px;width:32px;height:32px}.today-button{border:1px solid var(--line);color:#405047;background:#fff;border-radius:8px;min-height:32px;padding:0 12px;font-size:11px;font-weight:750}.date-navigation h2{text-transform:capitalize;white-space:nowrap;margin:0 0 0 7px;font-family:Georgia,Times New Roman,serif;font-size:19px}.view-switcher,.segmented{background:#eef3f0;border-radius:10px;padding:3px;display:flex}.view-switcher{margin-left:auto}.view-switcher button,.segmented button{color:#607168;background:0 0;border:0;border-radius:8px;min-height:30px;padding:0 11px;font-size:10px;font-weight:700}.view-switcher button.active,.segmented button.active{color:var(--green-800);background:#fff;box-shadow:0 2px 7px #15372214}.add-lesson{min-height:40px;margin-left:3px}.filter-bar{align-items:center;gap:10px;min-height:61px;padding:10px 13px;display:flex}.search-field{border:1px solid var(--line);color:#7b8b82;background:#fafcfb;border-radius:10px;align-items:center;width:245px;height:39px;padding:0 10px;display:flex;position:relative}.search-field.wide{width:min(430px,100%)}.search-field input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;padding:0 7px;font-size:11px}.search-field>button{color:var(--muted);background:0 0;border:0;padding:3px}.filter-fields{flex:1;align-items:center;gap:8px;display:flex}.filter-fields label{flex:1;min-width:105px}.filter-fields label>span{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.filter-fields select{border:1px solid var(--line);color:#45564d;background:#fff;border-radius:10px;width:100%;height:39px;padding:0 9px;font-size:10px}.clear-filters{min-height:35px;color:var(--green-700);white-space:nowrap;background:0 0;border:0;align-items:center;gap:5px;font-size:10px;font-weight:700;display:inline-flex}.calendar-panel{padding:0 15px 15px;overflow:hidden}.teacher-legend{color:#596b61;border-bottom:1px solid #edf2ef;justify-content:flex-end;align-items:center;gap:13px;min-height:47px;font-size:9px;display:flex}.teacher-legend>span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.teacher-legend>span:first-child{color:#829088;text-transform:uppercase;letter-spacing:.07em;margin-right:auto;font-weight:750}.teacher-legend i{border-radius:50%;width:8px;height:8px}.fc{--fc-border-color:#e6eee9;--fc-page-bg-color:white;--fc-neutral-bg-color:#f8faf9;--fc-today-bg-color:#f0faf4;--fc-now-indicator-color:#dc3f33;color:var(--ink);font-size:11px}.fc .fc-scrollgrid{border:0}.fc-theme-standard td:last-child,.fc-theme-standard th:last-child{border-right:0}.fc .fc-col-header-cell{background:#fafcfb}.fc .fc-col-header-cell-cushion{color:#617168;text-transform:uppercase;padding:10px 4px;font-size:9px;font-weight:800}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{color:#849088;font-size:9px}.fc .fc-daygrid-day-number{color:#53645b;padding:7px 8px}.fc .fc-day-today .fc-daygrid-day-number{background:var(--green-700);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;margin:4px;padding:0;display:grid}.fc .fc-timegrid-now-indicator-line{border-width:1px 0 0}.fc .fc-timegrid-now-indicator-arrow{border-width:4px 0 4px 5px}.fc .fc-event{cursor:pointer;border-radius:6px;overflow:hidden;box-shadow:0 2px 5px #052e1a1a}.fc .fc-timegrid-event{min-height:28px}.fc .fc-event-main{padding:0}.calendar-event{flex-direction:column;height:100%;min-height:100%;padding:4px 5px;line-height:1.15;display:flex;overflow:hidden}.calendar-event.cancelled{opacity:.8;text-decoration:line-through}.calendar-event .event-time{opacity:.92;font-size:8px;font-weight:750}.calendar-event strong{white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10px;overflow:hidden}.calendar-event small{white-space:nowrap;text-overflow:ellipsis;opacity:.86;margin-top:2px;font-size:8px;overflow:hidden}.fc .fc-list{border:0}.fc .fc-list-day-cushion{background:#f3f8f5}.fc .fc-list-event:hover td{background:var(--green-50)}.modal-backdrop{z-index:120;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#071d117a;place-items:center;padding:18px;animation:.15s backdrop-in;display:grid;position:fixed;inset:0}@keyframes backdrop-in{0%{opacity:0}}.lesson-dialog,.details-dialog,.compact-dialog,.confirm-card{background:#fff;border-radius:20px;width:min(650px,100%);max-height:min(90vh,820px);animation:.18s ease-out dialog-in;overflow:hidden;box-shadow:0 28px 90px #031e1045}.details-dialog{width:min(590px,100%)}.compact-dialog{width:min(485px,100%)}.confirm-card{text-align:center;width:min(430px,100%);padding:28px}@keyframes dialog-in{0%{opacity:0;transform:translateY(9px)scale(.985)}}.dialog-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:78px;padding:14px 19px;display:flex}.dialog-header>div{align-items:center;gap:11px;display:flex}.dialog-icon{background:var(--green-100);width:39px;height:39px;color:var(--green-700);border-radius:11px;place-items:center;display:grid}.dialog-header small{color:var(--green-700);text-transform:uppercase;letter-spacing:.1em;font-size:9px;font-weight:800;display:block}.dialog-header h2{margin:2px 0 0;font-family:Georgia,Times New Roman,serif;font-size:21px}.dialog-scroll{gap:15px;max-height:calc(90vh - 152px);padding:19px;display:grid;overflow-y:auto}.dialog-footer,.details-footer{border-top:1px solid var(--line);background:#fbfdfc;justify-content:flex-end;align-items:center;gap:9px;min-height:70px;padding:12px 19px;display:flex}.form-error{color:#9b251d;background:#fff6f5;border:1px solid #f3c9c5;border-radius:10px;margin:0;padding:10px 12px;font-size:11px;line-height:1.45}.field{flex-direction:column;gap:6px;display:flex;position:relative}.field label,.settings-fieldset legend,.scope-fieldset legend{color:#35463d;font-size:11px;font-weight:750}.field label span,.label-row label span{color:#89958f;font-size:9px;font-weight:550}.field input,.field select,.field textarea,.filter-fields select,.teacher-selector select{width:100%;color:var(--ink);background:#fff;border:1px solid #d9e5de;border-radius:10px;outline:0}.field input,.field select{height:42px;padding:0 11px}.field textarea{resize:vertical;padding:10px 11px;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus,.picker-control:focus-within{border-color:var(--green-600);box-shadow:0 0 0 3px #1d89531c}.field>small{color:var(--muted);font-size:9px;line-height:1.45}.form-grid{gap:11px;display:grid}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-grid.three{grid-template-columns:1.2fr 1fr 1fr}.label-row{justify-content:space-between;align-items:center;display:flex}.label-row>button{color:var(--green-700);background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:10px;font-weight:700;display:inline-flex}.picker-control{color:#738078;background:#fff;border:1px solid #d9e5de;border-radius:10px;align-items:center;gap:7px;height:42px;padding:0 10px;display:flex}.picker-control input{border:0;flex:1;height:38px;padding:0;box-shadow:none!important}.picker-toggle{color:#738078;cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;width:26px;height:26px;display:grid}.picker-toggle:hover{background:var(--green-50);color:var(--green-700)}.picker-toggle:disabled{cursor:default;opacity:.5}.picker-menu{z-index:20;border:1px solid var(--line);background:#fff;border-radius:11px;max-height:255px;padding:6px;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow-y:auto;box-shadow:0 15px 35px #09301926}.picker-menu>button{width:100%;min-height:44px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:9px;padding:7px 8px;display:flex}.picker-menu>button:hover{background:var(--green-50)}.picker-menu>button:disabled{opacity:.4}.picker-menu>button>span:nth-child(2),.picker-menu>button>span:first-child:not(.picker-color):not(.check-box){flex:1}.picker-menu strong,.picker-menu small{display:block}.picker-menu strong{font-size:11px}.picker-menu small{color:var(--muted);margin-top:2px;font-size:9px}.picker-menu>p{color:var(--muted);margin:8px;font-size:10px}.picker-color{border-radius:50%;width:10px;height:10px}.check-box{border:1px solid #cddbd3;border-radius:5px;place-items:center;width:18px;height:18px;display:grid}.check-box.checked{border-color:var(--green-600);background:var(--green-600);color:#fff}.quick-add-option{margin-top:4px;font-weight:700;border-top:1px solid var(--line)!important;color:var(--green-700)!important}.selected-chips{flex-wrap:wrap;gap:5px;display:flex}.selected-chips>span{background:var(--green-50);min-height:26px;color:var(--green-800);border-radius:8px;align-items:center;gap:4px;padding:0 5px 0 9px;font-size:9px;font-weight:650;display:inline-flex}.selected-chips button{color:inherit;background:0 0;border:0;place-items:center;padding:3px;display:grid}.quick-student-card,.recurrence-card,.cancel-box{background:#f7fbf8;border:1px solid #d8e8de;border-radius:12px;padding:13px}.quick-student-card>div:first-child{justify-content:space-between;margin-bottom:10px;display:flex}.quick-student-card>div:first-child button{color:var(--muted);background:0 0;border:0}.switch-row{cursor:pointer;align-items:center;gap:9px;display:flex}.switch-row>input,.mini-switch>input{opacity:0;pointer-events:none;position:absolute}.switch{background:#cfd9d3;border-radius:20px;flex:none;width:37px;height:21px;transition:all .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:all .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0000002e}.switch-row input:checked+.switch{background:var(--green-600)}.switch-row input:checked+.switch:after{transform:translate(16px)}.switch-row>span:last-child strong,.switch-row>span:last-child small{display:block}.switch-row>span:last-child strong{font-size:11px}.switch-row>span:last-child small{color:var(--muted);margin-top:2px;font-size:9px}.recurrence-date{max-width:220px;margin-top:12px}.scope-fieldset,.settings-fieldset{border:1px solid var(--line);border-radius:11px;margin:0;padding:12px}.scope-fieldset{flex-wrap:wrap;gap:9px 20px;display:flex}.scope-fieldset legend{padding:0 5px}.scope-fieldset label{color:#4b5c53;align-items:center;gap:6px;font-size:10px;display:flex}.scope-fieldset input{accent-color:var(--green-700)}.confirm-icon{width:48px;height:48px;color:var(--danger);background:#fff0ee;border-radius:14px;place-items:center;margin:0 auto;display:grid}.confirm-card h2{margin:15px 0 7px;font-family:Georgia,Times New Roman,serif;font-size:22px}.confirm-card>p{color:var(--muted);margin:0;font-size:11px;line-height:1.55}.dialog-actions{justify-content:center;gap:8px;margin-top:19px;display:flex}.details-hero{background:linear-gradient(135deg, var(--green-900), var(--green-700));color:#fff;min-height:128px;padding:23px 57px 21px 28px;position:relative}.details-color{background:var(--teacher-color,white);width:7px;position:absolute;top:0;bottom:0;left:0}.details-hero>.icon-button{position:absolute;top:17px;right:17px}.detail-tags{gap:7px;display:flex}.status-badge,.series-badge{border-radius:7px;align-items:center;gap:4px;min-height:23px;padding:0 8px;font-size:9px;font-weight:750;display:inline-flex}.status-badge{color:var(--green-800);background:#fffffff0}.status-badge.cancelled,.status-badge.no_show{color:var(--danger)}.series-badge{color:#fff;background:#ffffff21}.details-hero h2{margin:12px 0 4px;font-family:Georgia,Times New Roman,serif;font-size:28px}.details-hero p{color:#d7f0e0;margin:0}.details-body{max-height:calc(90vh - 203px);padding:20px;overflow-y:auto}.review-warning{color:#845000;background:#fff7e8;border-radius:10px;gap:9px;margin-bottom:15px;padding:11px;display:flex}.review-warning strong,.review-warning span{display:block}.review-warning span{font-size:10px;line-height:1.4}.lesson-facts{grid-template-columns:repeat(2,1fr);gap:13px;margin:0;display:grid}.lesson-facts>div{background:#f7faf8;border-radius:11px;padding:12px}.lesson-facts dt{color:var(--muted);text-transform:uppercase;align-items:center;gap:6px;font-size:9px;font-weight:700;display:flex}.lesson-facts dd{text-transform:capitalize;align-items:center;gap:6px;margin:6px 0 0;font-size:11px;font-weight:700;display:flex}.teacher-dot{border-radius:50%;width:8px;height:8px}.detail-section{margin-top:19px}.detail-section h3{align-items:center;gap:7px;margin:0 0 9px;font-size:11px;display:flex}.participant-list{border:1px solid var(--line);border-radius:11px;overflow:hidden}.participant-block{border-top:1px solid var(--line)}.participant-block:first-child{border-top:0}.participant-row{align-items:center;gap:9px;min-height:53px;padding:7px 10px;display:flex}.student-avatar{background:var(--green-100);width:31px;height:31px;color:var(--green-800);border-radius:50%;flex:none;place-items:center;font-size:9px;font-weight:800;display:grid}.participant-row>strong{flex:1;font-size:11px}.participant-row>strong a{color:inherit;text-decoration:none}.participant-row>strong a:hover{text-decoration:underline}.report-card{background:#f7faf8;border:1px solid #dfeae4;border-radius:10px;margin:0 10px 10px;padding:11px 13px}.report-card-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.report-card-head span{color:var(--green-800);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:5px;font-size:9px;font-weight:750;display:inline-flex}.report-card-head small{color:var(--muted);font-size:9px}.report-card-head .button{margin-left:auto}.report-card p{color:#405248;white-space:pre-wrap;margin:8px 0 0;font-size:11px;line-height:1.55}.report-add{min-height:32px;color:var(--green-700);cursor:pointer;background:0 0;border:1px dashed #bcd4c6;border-radius:8px;align-items:center;gap:6px;margin:0 10px 10px;padding:0 11px;font-size:10px;font-weight:700;display:inline-flex}.report-add:hover{border-color:var(--green-500);background:var(--green-50)}.report-editor{border:1px solid var(--green-200);background:#fff;border-radius:10px;margin:0 10px 10px;padding:10px}.report-editor textarea{resize:vertical;width:100%}.report-editor .dialog-actions{justify-content:flex-end;margin-top:8px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.reminder-dialog{width:min(560px,100%)}.reminder-intro{color:#5c6d64;margin:0;font-size:11px;line-height:1.55}.reminder-row{border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px}.reminder-row-main{align-items:center;gap:10px;display:flex}.reminder-row-main>div{flex:1;min-width:0}.reminder-row-main strong{font-size:11px;display:block}.reminder-row-main small{color:var(--muted);margin-top:3px;font-size:9px;line-height:1.45;display:block}.reminder-actions{flex:none;justify-content:flex-end;gap:6px;display:flex}.reminder-editor{margin:10px 0 0}.reminder-footer-note{color:var(--muted);align-items:center;gap:6px;margin-right:auto;font-size:9px;display:inline-flex}.performance-heading{border-bottom:1px solid var(--line);padding-bottom:14px}.performance-heading h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:20px}.performance-heading p{color:var(--muted);margin:5px 0 0;font-size:10px}.report-timeline{gap:12px;margin-top:6px;display:grid}.report-timeline-item{border:1px solid var(--line);background:#fff;border-radius:14px;padding:15px}.report-timeline-item header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.report-timeline-item header strong{font-size:12px;display:block}.report-timeline-item header small{color:var(--muted);align-items:center;gap:6px;margin-top:4px;font-size:9px;display:flex}.report-timeline-item header small .teacher-dot{margin:0 2px;display:inline-block}.report-timeline-item>p{color:#405248;white-space:pre-wrap;margin:10px 0 0;font-size:11px;line-height:1.6}.report-timeline-item footer{border-top:1px dashed #dfeae4;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:11px;padding-top:10px;display:flex}.report-timeline-item footer span{color:var(--green-800);align-items:center;gap:5px;font-size:9px;font-weight:700;display:inline-flex}.report-timeline-item footer small{color:var(--muted);font-size:9px}.attendance-toggle{gap:4px;display:flex}.attendance-toggle button{border:1px solid var(--line);min-height:29px;color:var(--muted);background:#fff;border-radius:7px;align-items:center;gap:4px;padding:0 8px;font-size:9px;font-weight:700;display:inline-flex}.attendance-toggle button.active.present{background:var(--green-50);color:var(--green-700);border-color:#93d4ad}.attendance-toggle button.active.absent{color:var(--danger);background:#fff5f4;border-color:#efb3ae}.attendance-label{border-radius:6px;padding:4px 7px;font-size:9px;font-weight:700}.attendance-label.present{background:var(--green-100);color:var(--green-800)}.attendance-label.absent{color:var(--danger);background:#fff0ee}.attendance-label.pending{color:var(--muted);background:#eef2f0}.note-section p{border-left:3px solid var(--green-500);background:var(--green-50);color:#405248;white-space:pre-wrap;border-radius:0 9px 9px 0;margin:0;padding:12px;font-size:11px;line-height:1.55}.correction-field{margin-top:17px}.cancel-box{background:#fff8f7;border-color:#efcac6;margin-top:17px}.cancel-box>p{color:#7a5c58;margin:4px 0 12px;font-size:10px}.directory-summary{align-items:center;gap:13px;min-height:78px;display:flex}.directory-summary>div{border:1px solid var(--line);background:#fff;border-radius:14px;align-items:center;gap:11px;min-width:185px;height:69px;padding:11px 15px;display:flex}.directory-summary>.button{margin-left:auto}.summary-icon{background:var(--green-100);width:38px;height:38px;color:var(--green-700);border-radius:11px;place-items:center;display:grid}.summary-icon.mint{background:var(--teal-100);color:#0f766e}.directory-summary strong,.directory-summary span:not(.summary-icon):not(.student-avatar){display:block}.directory-summary strong{font-family:Georgia,Times New Roman,serif;font-size:22px}.directory-summary div div span{color:var(--muted);margin-top:2px;font-size:9px}.directory-panel{padding:15px}.directory-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding-bottom:14px;display:flex}.student-table-head,.student-table-row{grid-template-columns:1.3fr 1.1fr .55fr 80px;align-items:center;gap:14px;display:grid}.student-table-head{color:#819087;text-transform:uppercase;letter-spacing:.07em;min-height:40px;padding:0 12px;font-size:9px;font-weight:750}.student-table-row{border-top:1px solid #edf2ef;min-height:67px;padding:7px 12px}.student-identity{align-items:center;gap:9px;display:flex}.student-identity>span{background:var(--green-100);width:34px;height:34px;color:var(--green-800);border-radius:10px;place-items:center;font-size:9px;font-weight:800;display:grid}.student-identity strong,.student-identity small,.student-contact span{display:block}.student-identity strong{font-size:11px}.student-identity strong a{color:inherit;text-decoration:none}.student-identity strong a:hover{color:var(--green-700);text-decoration:underline}.student-identity small,.student-contact small{color:var(--muted);margin-top:3px;font-size:9px}.student-contact{color:#56675e;gap:3px;font-size:9px;display:grid}.student-contact svg{vertical-align:-3px;color:#85938b;margin-right:3px}.lesson-count{color:var(--green-700);align-items:center;gap:5px;font-size:10px;font-weight:700;display:inline-flex}.row-actions{justify-content:flex-end;gap:5px;display:flex}.row-actions button,.row-action-link{border:1px solid var(--line);color:#617168;background:#fff;border-radius:8px;place-items:center;width:31px;height:31px;display:grid}.row-actions button:hover,.row-action-link:hover{color:var(--green-700);border-color:var(--green-200)}.archived-label{color:#69776f;background:#edf1ef;border-radius:6px;padding:4px 7px;font-size:9px;font-weight:700}.table-empty{color:var(--muted);text-align:center;padding:35px 10px;font-size:11px}.availability-intro{justify-content:space-between;align-items:center;gap:18px;min-height:63px;display:flex}.availability-intro p{max-width:670px;color:var(--muted);margin:0;line-height:1.55}.teacher-selector{color:var(--muted);align-items:center;gap:9px;font-size:10px;font-weight:700;display:flex}.teacher-selector select{width:190px;height:40px;padding:0 10px}.selected-teacher-chip{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:9px;padding:8px 12px;display:flex}.selected-teacher-chip>span{color:#fff;border-radius:50%;place-items:center;width:31px;height:31px;font-weight:800;display:grid}.selected-teacher-chip small,.selected-teacher-chip strong{display:block}.selected-teacher-chip small{color:var(--muted);font-size:8px}.selected-teacher-chip strong{margin-top:2px;font-size:10px}.availability-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:20px;display:grid}.weekly-panel,.exceptions-panel{align-self:start;padding:19px}.exceptions-panel .panel-heading{align-items:flex-end}.exceptions-panel .panel-heading>.icon-button{margin-bottom:-4px}.day-list{border:1px solid var(--line);border-radius:13px;margin-top:15px;overflow:hidden}.day-row{border-top:1px solid var(--line);background:#fbfcfc;grid-template-columns:39px 1fr 40px minmax(290px,auto);align-items:center;gap:10px;min-height:61px;padding:8px 11px;display:grid}.day-row:first-child{border-top:0}.day-row.enabled{background:#fff}.day-short{color:#75837b;background:#eef3f0;border-radius:8px;place-items:center;width:34px;height:29px;font-size:9px;font-weight:800;display:grid}.day-row.enabled .day-short{background:var(--green-100);color:var(--green-800)}.day-name strong,.day-name small{display:block}.day-name strong{font-size:10px}.day-name small{color:var(--muted);margin-top:2px;font-size:8px}.mini-switch{width:34px;height:20px;position:relative}.mini-switch>span{background:#cfd9d3;border-radius:20px;width:34px;height:20px;display:block}.mini-switch>span:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:all .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000002e}.mini-switch input:checked+span{background:var(--green-600)}.mini-switch input:checked+span:after{transform:translate(14px)}.day-periods{justify-items:end;gap:6px;display:grid}.time-range{color:var(--muted);justify-content:flex-end;align-items:center;gap:7px;display:flex}.time-range input{border:1px solid var(--line);background:#fff;border-radius:8px;width:86px;height:34px;padding:0 6px;font-size:10px}.time-range input:disabled{color:#9ba69f;background:#f1f4f2}.time-range>span{font-size:9px}.period-index{color:#718078;text-align:center;width:15px;font-weight:750}.period-action-placeholder,.remove-period-button{flex:0 0 27px;width:27px}.remove-period-button{height:27px;color:var(--danger);background:#fff0ee;border:0;border-radius:7px;place-items:center;padding:0;display:grid}.remove-period-button:disabled{opacity:.45}.add-period-button{min-height:27px;color:var(--green-700);background:0 0;border:0;align-items:center;gap:4px;padding:0 7px;font-size:9px;font-weight:750;display:inline-flex}.panel-description{color:var(--muted);margin:8px 0 14px;font-size:10px;line-height:1.5}.exception-list{gap:8px;display:grid}.exception-list article{border:1px solid var(--line);border-radius:11px;align-items:center;gap:9px;min-height:67px;padding:9px;display:flex}.exception-icon{width:34px;height:34px;color:var(--danger);background:#fff0ee;border-radius:9px;flex:none;place-items:center;display:grid}.exception-icon.available{background:var(--green-100);color:var(--green-700)}.exception-list article>div{flex:1}.exception-list strong,.exception-list span,.exception-list small{display:block}.exception-list strong{text-transform:capitalize;font-size:10px}.exception-list span{color:#5d6d64;margin-top:2px;font-size:9px}.exception-list small{color:var(--muted);margin-top:3px;font-size:8px}.exception-list article>button{color:#8a9790;background:0 0;border:0;padding:5px}.exceptions-empty{text-align:center;color:#849188;border:1px dashed #cedbd3;border-radius:12px;padding:34px 12px}.exceptions-empty svg{margin:0 auto 8px}.exceptions-empty strong{color:#5f7067;font-size:10px;display:block}.exceptions-empty p{margin:4px 0 0;font-size:9px}.matrix-panel{padding:19px}.matrix-panel .panel-heading{align-items:flex-end}.matrix-counts{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.count-badge.amber{color:#8a5a00;background:#fff0cd}.matrix-scroll{border:1px solid var(--line);border-radius:13px;margin-top:15px;overflow-x:auto}.availability-matrix{min-width:880px}.matrix-row{border-top:1px solid #edf2ef;grid-template-columns:minmax(190px,1.15fr) repeat(7,minmax(64px,1fr)) minmax(190px,1.15fr);align-items:center;gap:6px;min-height:58px;padding:7px 11px;display:grid}.matrix-head{color:#819087;text-transform:uppercase;letter-spacing:.07em;border-top:0;min-height:40px;padding-block:0;font-size:9px;font-weight:750}.matrix-head>span:not(.matrix-teacher):not(.matrix-exceptions){text-align:center}.matrix-teacher{align-items:center;gap:9px;min-width:0;display:flex}.matrix-dot{border-radius:50%;flex:none;width:13px;height:13px;box-shadow:0 0 0 3px #fff,0 0 0 4px #e3ece7}.matrix-teacher strong,.matrix-teacher small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.matrix-teacher strong{font-size:10px}.matrix-teacher small{color:var(--muted);margin-top:2px;font-size:8px}.matrix-day{text-align:center;color:#a4aea7;background:#f4f7f5;border-radius:8px;min-height:32px;padding:4px 6px}.matrix-day em{font-size:9px;font-style:normal}.matrix-day.has-window{background:var(--green-100)}.matrix-day.has-window strong{color:var(--green-800);white-space:nowrap;font-size:9px;font-weight:800}.matrix-window-list{gap:2px;display:grid}.matrix-exceptions{flex-wrap:wrap;justify-content:flex-end;gap:5px;min-width:0;display:flex}.matrix-head .matrix-exceptions{white-space:nowrap}.exception-badge{white-space:nowrap;border-radius:7px;align-items:center;gap:4px;min-height:22px;padding:0 7px;font-size:8px;font-weight:750;display:inline-flex}.exception-badge.unavailable{color:var(--danger);background:#fff0ee}.exception-badge.available{background:var(--green-100);color:var(--green-800)}.exception-more,.matrix-none{color:#87948c;align-self:center;font-size:8px}.matrix-none{white-space:nowrap;font-style:normal}.matrix-legend{background:#fbfdfc;border:1px dashed #d6e2da;border-radius:11px;flex-wrap:wrap;align-items:center;gap:7px 14px;margin-top:12px;padding:10px 12px;display:flex}.legend-item{color:#62736a;align-items:center;gap:6px;font-size:9px;display:inline-flex}.legend-swatch{border-radius:4px;flex:none;width:13px;height:13px}.legend-swatch.window{background:var(--green-100);border:1px solid #bfe0cc}.legend-swatch.none{background:#f4f7f5;border:1px dashed #ccd8d0}.settings-layout{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:23px;display:grid}.settings-nav{border:1px solid var(--line);background:#fff;border-radius:15px;gap:3px;padding:7px;display:grid;position:sticky;top:138px}.settings-nav button{color:#596a61;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:9px;min-height:43px;padding:0 9px;font-size:10px;font-weight:650;display:flex}.settings-nav button svg:last-child{opacity:.45;margin-left:auto}.settings-nav button:hover{color:var(--green-800);background:#f6faf7}.settings-nav button.active{background:var(--green-100);color:var(--green-800)}.settings-content{min-width:0}.settings-section{gap:17px;display:grid}.section-heading{justify-content:space-between;align-items:center;gap:15px;min-height:64px;display:flex}.section-heading h2{margin:3px 0 0;font-family:Georgia,Times New Roman,serif;font-size:25px}.section-heading p{color:var(--muted);margin:5px 0 0;font-size:10px}.settings-form-card,.approval-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:19px}.settings-form-card{gap:15px;display:grid}.settings-fieldset{gap:11px;display:grid}.settings-fieldset>p{color:var(--muted);margin:0;font-size:9px}.timezone-preview{background:var(--green-50);min-height:68px;color:var(--green-700);border-radius:11px;align-items:center;gap:10px;margin-top:20px;padding:10px 13px;display:flex}.timezone-preview small,.timezone-preview strong{display:block}.timezone-preview small{font-size:8px}.timezone-preview strong{margin-top:3px;font-family:Georgia,Times New Roman,serif;font-size:20px}.info-card{background:var(--green-50);min-height:73px;color:var(--green-800);border:1px solid #d5e8dc;border-radius:13px;align-items:center;gap:12px;padding:13px 16px;display:flex}.info-card>div{flex:1}.info-card strong{font-size:11px;display:block}.info-card p{color:#537361;margin:4px 0 0;font-size:9px;line-height:1.5}.info-card.success{background:#f4fbf6}.approval-card h3{align-items:center;gap:7px;margin:0 0 10px;font-size:12px;display:flex}.approval-row{border-top:1px solid var(--line);grid-template-columns:34px minmax(130px,1fr) minmax(210px,1.4fr) auto auto;align-items:center;gap:8px;min-height:61px;padding:7px 0;display:grid}.approval-row>div strong,.approval-row>div small{display:block}.approval-row>div strong{font-size:10px}.approval-row>div small{color:var(--muted);font-size:8px}.approval-row select{border:1px solid var(--line);border-radius:8px;height:34px;font-size:9px}.approval-selects{grid-template-columns:minmax(95px,.7fr) minmax(180px,1.3fr);gap:7px;display:grid}.approval-selects label,.approval-selects label>span{gap:3px;display:grid}.approval-selects label>span{color:var(--muted);font-size:7px;font-weight:700}.card-title{justify-content:space-between;align-items:center;display:flex}.card-title h3{margin:0;font-size:12px}.card-title p{color:var(--muted);margin:4px 0 0;font-size:9px}.card-title>span{color:var(--muted);font-size:9px}.user-list{border:1px solid var(--line);border-radius:11px;overflow:hidden}.user-row{border-top:1px solid var(--line);grid-template-columns:34px 1fr 105px 67px 75px;align-items:center;gap:9px;min-height:57px;padding:7px 10px;display:grid}.user-row:first-child{border-top:0}.user-row>div strong,.user-row>div small{display:block}.user-row>div strong{font-size:10px}.user-row>div small{color:var(--muted);font-size:8px}.role-badge,.account-status{text-align:center;border-radius:7px;padding:5px 7px;font-size:8px;font-weight:750}.role-badge{color:#456152;background:#edf4ef}.role-badge.admin{background:var(--green-100);color:var(--green-800)}.account-status.active{color:var(--green-700)}.account-status.suspended{color:var(--danger)}.teacher-config-row{border-top:1px solid var(--line);grid-template-columns:220px 1fr;gap:14px;padding:14px 0;display:grid}.teacher-config-name{align-items:center;gap:9px;display:flex}.teacher-config-name input{border:1px solid var(--line);background:#fff;border-radius:9px;width:36px;height:36px;padding:2px}.teacher-config-name strong,.teacher-config-name small{display:block}.teacher-config-name strong{font-size:10px}.teacher-config-name small{color:var(--muted);font-size:8px}.subject-checks{flex-wrap:wrap;gap:5px;display:flex}.subject-checks label{position:relative}.subject-checks input{opacity:0;position:absolute}.subject-checks span{border:1px solid var(--line);color:#607168;cursor:pointer;border-radius:8px;align-items:center;min-height:28px;padding:0 9px;font-size:8px;font-weight:650;display:inline-flex}.subject-checks input:checked+span{border-color:var(--green-300,#83cda1);background:var(--green-50);color:var(--green-800)}.inline-create{border:1px solid var(--line);background:#fff;border-radius:14px;align-items:flex-end;gap:10px;padding:14px;display:flex}.inline-create .field{width:min(400px,100%)}.inline-create .grow{flex:1;width:auto}.subject-list article,.closure-list article{border-top:1px solid var(--line);align-items:center;gap:10px;min-height:58px;padding:7px 4px;display:flex}.subject-list article:first-child,.closure-list article:first-child{border-top:0}.subject-list article.archived{opacity:.6}.subject-icon{background:var(--green-50);width:34px;height:34px;color:var(--green-700);border-radius:9px;place-items:center;display:grid}.subject-list article>div,.closure-list article>div{flex:1}.subject-list strong,.subject-list small,.closure-list strong,.closure-list small{display:block}.subject-list strong,.closure-list strong{text-transform:capitalize;font-size:10px}.subject-list small,.closure-list small{color:var(--muted);margin-top:3px;font-size:8px}.closure-create .field:first-child{width:180px}.email-editor-grid{grid-template-columns:185px minmax(330px,1fr) minmax(260px,.8fr);align-items:start;gap:14px;display:grid}.template-list{border:1px solid var(--line);background:#fff;border-radius:13px;gap:3px;padding:6px;display:grid}.template-list button{color:#5c6d63;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;min-height:45px;padding:5px 7px;font-size:9px;font-weight:650;display:flex}.template-list button>span{background:#eef4f0;border-radius:7px;place-items:center;width:25px;height:25px;display:grid}.template-list button>svg:last-child{margin-left:auto}.template-list button.active{background:var(--green-100);color:var(--green-800)}.email-editor{gap:13px}.editor-toolbar{justify-content:space-between;align-items:center;display:flex}.editor-toolbar strong,.editor-toolbar small{display:block}.editor-toolbar strong{font-size:11px}.editor-toolbar small{color:var(--muted);font-size:8px}.editor-toolbar button{color:var(--green-700);background:0 0;border:0;align-items:center;gap:4px;font-size:8px;font-weight:700;display:flex}.variable-list{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.variable-list>span{color:var(--muted);align-items:center;gap:4px;margin-right:4px;font-size:8px;display:inline-flex}.variable-list button{background:var(--green-50);color:var(--green-700);border:1px solid #cfe4d7;border-radius:6px;padding:4px 6px;font-family:ui-monospace,monospace;font-size:7px}.email-preview{border:1px solid var(--line);background:#eef3f0;border-radius:14px;overflow:hidden}.preview-label{color:#687970;text-transform:uppercase;align-items:center;gap:6px;min-height:39px;padding:0 11px;font-size:8px;font-weight:750;display:flex}.email-preview article{background:#fff;border-radius:10px;min-height:305px;margin:0 10px 10px;padding:18px;box-shadow:0 5px 17px #0d2d1c12}.email-preview-top{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding-bottom:15px;display:flex}.email-preview-top strong,.email-preview-top small{display:block}.email-preview-top strong{font-size:9px}.email-preview-top small{color:var(--muted);font-size:7px}.email-preview h3{margin:18px 0 10px;font-family:Georgia,Times New Roman,serif;font-size:16px}.email-preview p{color:#48594f;white-space:pre-wrap;font-size:9px;line-height:1.65}.delivery-summary{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.delivery-summary>div{border:1px solid var(--line);background:#fff;border-radius:13px;grid-template-columns:29px 1fr;align-items:center;min-height:85px;padding:13px;display:grid}.delivery-summary svg{color:var(--green-700)}.delivery-summary strong{font-family:Georgia,serif;font-size:22px}.delivery-summary span{color:var(--muted);grid-column:2;font-size:8px}.delivery-list{gap:0;overflow:hidden}.delivery-head,.delivery-list article{grid-template-columns:1.3fr 1fr 135px 55px;align-items:center;gap:10px;display:grid}.delivery-head{color:var(--muted);text-transform:uppercase;padding:0 5px 10px;font-size:8px;font-weight:750}.delivery-list article{border-top:1px solid var(--line);min-height:57px;padding:8px 5px;font-size:9px}.delivery-list article strong,.delivery-list article small{display:block}.delivery-list article strong{font-size:9px}.delivery-list article small{color:var(--muted);margin-top:3px;font-size:7px}.delivery-status{border-radius:6px;width:fit-content;padding:4px 6px;font-size:8px;font-weight:750}.delivery-status.pending{color:#895400;background:#fff4d9}.delivery-status.accepted{color:#235b8e;background:#e9f2ff}.delivery-status.delivered{background:var(--green-100);color:var(--green-800)}.delivery-status.warning{color:#895400;background:#fff4d9}.delivery-status.failed{color:var(--danger);background:#fff0ee}.delivery-state{gap:3px;display:grid}.delivery-state small{color:var(--muted);font-size:7px}.audit-list{gap:0}.audit-list article{border-top:1px solid var(--line);grid-template-columns:12px 1fr 190px;align-items:start;gap:9px;min-height:64px;padding:9px 4px;display:grid}.audit-list article:first-child{border-top:0}.audit-dot{background:var(--green-500);width:8px;height:8px;box-shadow:0 0 0 2px var(--green-200);border:2px solid #fff;border-radius:50%;margin-top:3px}.audit-list strong,.audit-list small{display:block}.audit-list strong{font-size:9px}.audit-list small{color:var(--muted);margin-top:3px;font-size:8px}.audit-list p{color:#76504d;margin:4px 0 0;font-size:8px}.audit-list article>div:last-child{text-align:right}.teacher-stats-section{gap:15px}.teacher-stats-filter-card{background:linear-gradient(145deg,#f3fbf6,#fff);border:1px solid #d5e8dc;border-radius:15px;gap:13px;padding:15px 17px;display:grid}.teacher-stats-filter-heading,.teacher-stats-scope-heading,.teacher-stats-detail-heading,.teacher-stats-card-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.teacher-stats-filter-heading>div>span,.teacher-stats-card-heading>div>span,.teacher-stats-scope-heading>div>span,.teacher-stats-profile>div>span{color:var(--green-700);letter-spacing:.11em;text-transform:uppercase;font-size:8px;font-weight:800;display:block}.teacher-stats-filter-heading strong{margin-top:3px;font-size:12px;display:block}.teacher-stats-range-label{color:var(--green-700);white-space:nowrap;align-items:center;gap:5px;font-size:9px;font-weight:750;display:inline-flex}.teacher-stats-filters{grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:10px;display:grid}.teacher-stats-filters>.field{min-width:0}.teacher-stats-filter-error{color:var(--danger);margin:-3px 0 0;font-size:9px;font-weight:650}.teacher-stats-scope-heading{padding:2px 1px}.teacher-stats-scope-heading h3,.teacher-stats-detail-heading h3{margin:4px 0 0;font-family:Georgia,Times New Roman,serif;font-size:20px}.teacher-stats-scope-heading p,.teacher-stats-detail-heading p{color:var(--muted);margin:4px 0 0;font-size:9px}.teacher-stats-metric-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.teacher-stats-metric-card{min-height:137px;padding:15px}.teacher-stats-metric-card .metric-context{margin-top:10px;font-size:9px}.teacher-stats-metric-card>strong{font-size:27px}.teacher-stats-metric-card p{font-size:9px}.teacher-stats-status-card{border:1px solid var(--line);background:#fff;border-radius:15px;padding:17px}.teacher-stats-card-heading h3{margin:3px 0 0;font-family:Georgia,Times New Roman,serif;font-size:18px}.teacher-stats-card-heading p{color:var(--muted);margin:4px 0 0;font-size:9px}.teacher-stats-status-grid{grid-template-columns:repeat(5,1fr);gap:8px;margin-top:13px;display:grid}.teacher-stats-status-grid>div{background:#fbfdfc;border:1px solid #edf2ef;border-radius:10px;align-content:center;gap:3px;min-height:62px;padding:10px;display:grid}.teacher-stats-status-grid strong{font-family:Georgia,serif;font-size:20px}.teacher-stats-status-grid span{color:var(--muted);font-size:8px;line-height:1.25}.teacher-stats-note{color:var(--muted);margin:12px 0 0;font-size:8px;line-height:1.45}.teacher-stats-comparison{gap:13px}.teacher-stats-table-wrap{overflow-x:auto}.teacher-stats-table{border-collapse:collapse;width:100%;min-width:640px;font-size:10px}.teacher-stats-table th,.teacher-stats-table td{border-top:1px solid var(--line);text-align:right;white-space:nowrap;padding:10px 7px}.teacher-stats-table thead th{color:var(--muted);text-transform:uppercase;border-top:0;padding-top:0;font-size:8px;font-weight:750}.teacher-stats-table thead th:nth-child(2),.teacher-stats-table tbody th{text-align:left}.teacher-stats-table tbody th{font-weight:650}.teacher-stats-table tbody tr:hover{background:#fbfdfc}.teacher-stats-rank{background:var(--green-50);width:23px;height:23px;color:var(--green-700);border-radius:7px;place-items:center;font-size:8px;font-weight:800;display:inline-grid}.teacher-stats-teacher-button{color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.teacher-stats-teacher-button:hover strong{color:var(--green-700)}.teacher-stats-teacher-button>span:last-child{gap:2px;display:grid}.teacher-stats-teacher-button strong,.teacher-stats-teacher-button small{display:block}.teacher-stats-teacher-button strong{font-size:10px}.teacher-stats-teacher-button small{color:var(--muted);font-size:7px;font-weight:400}.teacher-stats-percent{color:var(--green-700);font-weight:800}.muted-value{color:var(--muted)}.teacher-stats-detail{gap:15px;display:grid}.teacher-stats-profile{align-items:center;gap:10px;display:flex}.teacher-stats-profile-avatar{color:#fff;border-radius:50%;place-items:center;width:39px;height:39px;font-weight:800;display:grid}.teacher-stats-legend{color:var(--muted);align-items:center;gap:9px;font-size:8px;display:flex}.teacher-stats-legend span{align-items:center;gap:4px;display:inline-flex}.teacher-stats-legend i{border-radius:2px;width:7px;height:7px;display:inline-block}.teacher-stats-legend i.completed,.teacher-stats-chart-bars .completed{background:var(--green-600)}.teacher-stats-legend i.planned,.teacher-stats-chart-bars .planned{background:#b6d889}.teacher-stats-detail-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:15px;display:grid}.teacher-stats-trend,.teacher-stats-subjects{min-width:0}.teacher-stats-chart{border-top:1px solid #edf2ef;align-items:stretch;gap:7px;min-height:190px;margin-top:15px;padding:12px 4px 0;display:flex;overflow-x:auto}.teacher-stats-chart-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;min-width:27px;display:flex}.teacher-stats-chart-bars{border-bottom:1px solid var(--line);justify-content:center;align-items:flex-end;gap:2px;width:100%;min-height:139px;display:flex}.teacher-stats-chart-bars>span{border-radius:3px 3px 0 0;width:8px;min-height:2px}.teacher-stats-chart-column small{color:var(--muted);white-space:nowrap;font-size:7px}.teacher-stats-subject-list{margin-top:13px;overflow-x:auto}.teacher-stats-subject-head,.teacher-stats-subject-row{grid-template-columns:minmax(130px,1fr) 45px 65px 55px 65px;align-items:center;gap:7px;min-width:390px;display:grid}.teacher-stats-subject-head{color:var(--muted);text-transform:uppercase;padding:0 3px 8px;font-size:8px;font-weight:750}.teacher-stats-subject-head span:not(:first-child),.teacher-stats-subject-row span{text-align:right}.teacher-stats-subject-row{border-top:1px solid var(--line);min-height:47px;padding:8px 3px;font-size:9px}.teacher-stats-subject-row strong{text-overflow:ellipsis;overflow:hidden}.teacher-stats-average{min-height:62px;padding:12px 15px}.teacher-stats-average strong{font-size:10px}.teacher-stats-average p{font-size:8px}.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}.system-test-section{gap:15px}.system-test-heading{min-height:72px}.system-test-intro{background:var(--green-50);color:var(--green-800);border:1px solid #d5e8dc;border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.system-test-intro>svg{flex:none;margin-top:1px}.system-test-intro strong{font-size:11px;display:block}.system-test-intro p{color:#537361;margin:4px 0 0;font-size:9px;line-height:1.5}.system-test-categories{gap:8px;display:grid}.system-test-category{border:1px solid var(--line);background:#fff;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;min-height:66px;padding:11px 13px;display:flex}.system-test-category.failed{border-color:#f0c4bf}.system-test-category.warning{border-color:#efd9a8}.system-test-category-copy{min-width:0}.system-test-category-title{min-width:0;color:var(--green-700);align-items:center;gap:7px;display:flex}.system-test-category-title>strong{color:var(--ink);font-size:10px}.system-test-category p{color:var(--muted);margin:4px 0 0 23px;font-size:8px;line-height:1.4}.system-test-category>.button{flex:none}.system-test-status{white-space:nowrap;border-radius:6px;align-items:center;gap:3px;width:fit-content;padding:3px 6px;font-size:7px;font-weight:800;display:inline-flex}.system-test-status.passed{background:var(--green-100);color:var(--green-800)}.system-test-status.warning{color:#895400;background:#fff4d9}.system-test-status.failed{color:var(--danger);background:#fff0ee}.system-test-status.skipped{color:#607168;background:#eef2ef}.system-test-empty{min-height:105px;color:var(--green-700);grid-template-columns:35px 1fr;align-items:center}.system-test-empty svg{justify-self:center}.system-test-empty strong{color:var(--ink);font-size:10px;display:block}.system-test-empty p{color:var(--muted);margin:4px 0 0;font-size:9px;line-height:1.45}.system-test-results{gap:11px;display:grid}.system-test-results-heading{justify-content:space-between;align-items:center;gap:12px;padding:2px 1px;display:flex}.system-test-results-heading>div>span{color:var(--green-700);letter-spacing:.11em;text-transform:uppercase;font-size:8px;font-weight:800}.system-test-results-heading h3{margin:4px 0 0;font-family:Georgia,Times New Roman,serif;font-size:19px}.system-test-results-heading p{color:var(--muted);margin:4px 0 0;font-size:8px}.system-test-summary{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.system-test-summary>div{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:25px 1fr;align-items:center;min-height:76px;padding:11px;display:grid}.system-test-summary svg{grid-row:1/3}.system-test-summary strong{font-family:Georgia,Times New Roman,serif;font-size:21px}.system-test-summary span{color:var(--muted);font-size:8px}.system-test-summary .passed svg{color:var(--green-700)}.system-test-summary .warning svg{color:#a86b00}.system-test-summary .failed svg{color:var(--danger)}.system-test-summary .skipped svg{color:#75837b}.system-test-report-list{gap:10px;display:grid}.system-test-report{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.system-test-report.failed{border-color:#f0c4bf}.system-test-report.warning{border-color:#efd9a8}.system-test-report>header{background:#fbfdfc;justify-content:space-between;align-items:flex-start;gap:10px;min-height:68px;padding:12px 14px;display:flex}.system-test-report>header>div{min-width:0}.system-test-report>header h4{margin:5px 0 0;font-size:11px}.system-test-report>header p{color:var(--muted);margin:3px 0 0;font-size:8px;line-height:1.4}.system-test-report>header small{color:var(--muted);white-space:nowrap;padding-top:4px;font-size:8px}.system-test-result-list{padding:0 14px}.system-test-result{border-top:1px solid var(--line);padding:12px 0}.system-test-result-main{grid-template-columns:21px 1fr;align-items:start;gap:8px;display:grid}.system-test-result.passed>.system-test-result-main>svg{color:var(--green-700)}.system-test-result.warning>.system-test-result-main>svg{color:#a86b00}.system-test-result.failed>.system-test-result-main>svg{color:var(--danger)}.system-test-result.skipped>.system-test-result-main>svg{color:#75837b}.system-test-result-title{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.system-test-result-title strong{font-size:10px}.system-test-result-title span{color:var(--muted);text-transform:uppercase;font-size:7px;font-weight:750}.system-test-result p{color:#52645a;margin:4px 0 0;font-size:9px;line-height:1.45}.system-test-result small{color:var(--muted);margin-top:5px;font-size:8px;line-height:1.4;display:block}.system-test-result small strong{color:#52645a}.system-test-result details{background:#fbfdfc;border:1px solid #dbe6de;border-radius:8px;margin:9px 0 0 29px}.system-test-result summary{cursor:pointer;color:var(--green-700);padding:7px 9px;font-size:8px;font-weight:750}.system-test-result details ul{color:#52645a;overflow-wrap:anywhere;margin:0;padding:0 12px 9px 25px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;line-height:1.5}.spinning{animation:.8s linear infinite system-test-spin}@keyframes system-test-spin{to{transform:rotate(360deg)}}.page-loading{min-height:55vh;color:var(--green-700);place-items:center;font-weight:700;display:grid}.muted-copy{color:var(--muted);text-align:center;padding:20px}.empty-state{text-align:center;color:var(--muted);padding:35px}.empty-state>span{color:var(--green-500);font-size:24px}.empty-state strong{color:var(--ink);margin:8px 0 4px;display:block}.empty-state p{margin:0}.access-error{text-align:center;max-width:500px;margin:8vh auto;padding:36px}.access-error>span{width:56px;height:56px;color:var(--danger);background:#fff0ee;border-radius:16px;place-items:center;margin:0 auto;display:grid}.access-error h2{margin:16px 0 7px;font-family:Georgia,Times New Roman,serif;font-size:24px}.access-error p{max-width:380px;color:var(--muted);margin:0 auto 20px;line-height:1.55}.auth-page{background:#fff;grid-template-columns:minmax(360px,.85fr) minmax(440px,1.15fr);min-height:100vh;display:grid}.auth-panel{flex-direction:column;justify-content:center;padding:40px clamp(30px,6vw,86px);display:flex}.auth-panel .brand{position:absolute;top:30px;left:clamp(30px,6vw,86px)}.auth-panel h1{letter-spacing:-.03em;max-width:430px;margin:30px 0 10px;font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,4vw,50px);line-height:1.04}.auth-panel>p{max-width:450px;color:var(--muted);margin:0 0 26px;line-height:1.6}.auth-card{border:1px solid var(--line);max-width:440px;box-shadow:var(--shadow);background:#fff;border-radius:17px;padding:22px}.auth-card>strong{margin-bottom:12px;display:block}.auth-card .button{width:100%;margin-top:8px}.google-mark{color:#4285f4;background:#fff;border-radius:50%;place-items:center;width:20px;height:20px;font-weight:900;display:grid}.demo-role-grid{gap:8px;display:grid}.demo-role-grid form button{border:1px solid var(--line);width:100%;min-height:49px;color:var(--ink);background:#fff;border-radius:11px;align-items:center;gap:10px;padding:0 13px;font-weight:700;display:flex}.demo-role-grid form button:hover{border-color:var(--green-300,#84cfa2);background:var(--green-50)}.auth-visual{color:#fff;background:linear-gradient(145deg,#0b4b2c,#178550);justify-content:center;align-items:center;padding:45px;display:flex;position:relative;overflow:hidden}.auth-visual:before,.auth-visual:after{content:"";border:1px solid #ffffff21;border-radius:50%;position:absolute}.auth-visual:before{width:560px;height:560px;top:-180px;right:-150px}.auth-visual:after{width:390px;height:390px;bottom:-170px;left:-170px}.auth-quote{z-index:2;max-width:460px;position:relative}.auth-quote>span{color:#c6ead5;text-transform:uppercase;letter-spacing:.14em;align-items:center;gap:6px;font-size:10px;font-weight:800;display:inline-flex}.auth-quote blockquote{margin:20px 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(27px,3vw,40px);line-height:1.2}.auth-quote p{color:#cde9d8;line-height:1.6}@media (max-width:1180px){.metric-grid,.teacher-stats-metric-grid{grid-template-columns:repeat(2,1fr)}.teacher-stats-status-grid{grid-template-columns:repeat(3,1fr)}.teacher-bars{grid-template-columns:1fr}.email-editor-grid{grid-template-columns:170px 1fr}.email-preview{grid-column:2}.filter-fields label{min-width:90px}.teacher-config-row{grid-template-columns:180px 1fr}}@media (max-width:940px){.delivery-summary{grid-template-columns:repeat(2,1fr)}.teacher-stats-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-stats-detail-grid{grid-template-columns:1fr}.app-frame{padding-left:78px}.sidebar{align-items:center;width:78px;padding-inline:11px}.sidebar .brand{padding:0}.sidebar nav a{justify-content:center;width:48px;padding:0}.sidebar nav a span,.sidebar-help,.logout-link:not(:hover):after{display:none}.logout-link{padding:11px}.dashboard-grid,.availability-grid{grid-template-columns:1fr}.topbar,.main-content{padding-inline:22px}.role-switcher>label{display:none}.teacher-config-row,.email-editor-grid{grid-template-columns:1fr}.template-list{display:flex;overflow-x:auto}.template-list button{min-width:145px}.email-preview{grid-column:1}}@media (max-width:720px){.app-frame{padding:31px 0 70px}.demo-banner{justify-content:space-between;height:31px;padding:0 10px}.demo-banner-copy,.sidebar{display:none}.topbar{height:66px;padding:0 14px;top:31px}.mobile-brand{margin-right:10px;display:block}.brand-mark{width:37px;height:37px}.page-heading>span,.user-chip,.role-switcher>label{display:none}.page-heading h1{font-size:20px}.topbar-actions{gap:5px}.role-switcher select{min-width:125px;height:34px;font-size:10px}.main-content{padding:17px 12px 28px}.mobile-nav{z-index:60;min-height:66px;padding:6px 7px max(6px, env(safe-area-inset-bottom));scrollbar-width:none;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff7;justify-content:flex-start;align-items:flex-start;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.mobile-nav::-webkit-scrollbar{display:none}.mobile-nav a{color:#75837b;flex-direction:column;flex:1 0 54px;justify-content:center;align-items:center;gap:3px;min-width:54px;min-height:48px;font-size:8px;font-weight:650;display:flex}.mobile-nav a[aria-current=page]{color:var(--green-700)}.welcome-row{align-items:flex-start;min-height:auto}.welcome-row .button{display:none}.welcome-row h2{font-size:27px}.metric-grid,.teacher-stats-metric-grid{grid-template-columns:repeat(2,1fr);gap:9px}.teacher-stats-filters{grid-template-columns:1fr}.teacher-stats-filter-heading,.teacher-stats-scope-heading,.teacher-stats-detail-heading,.teacher-stats-card-heading{flex-direction:column;align-items:flex-start}.teacher-stats-range-label{white-space:normal}.teacher-stats-status-grid{grid-template-columns:repeat(2,1fr)}.teacher-stats-status-card,.teacher-stats-comparison,.teacher-stats-trend,.teacher-stats-subjects{padding:14px}.teacher-stats-detail-heading>.button{width:100%}.metric-card{min-height:132px;padding:14px}.metric-card>strong{font-size:27px}.pending-alert{flex-wrap:wrap;align-items:flex-start}.pending-alert a{margin-left:51px}.upcoming-panel,.week-panel,.teacher-performance{padding:14px}.upcoming-item{grid-template-columns:53px minmax(0,1fr)}.teacher-pill{display:none}.pending-attendance-intro{flex-wrap:wrap;align-items:flex-start;padding:16px}.pending-attendance-intro>div{min-width:calc(100% - 64px)}.pending-attendance-intro .count-badge{margin-left:64px}.pending-attendance-panel{padding:14px}.pending-attendance-head{display:none}.pending-attendance-table{border:0;gap:10px;display:grid;overflow:visible}.pending-attendance-row{border:1px solid var(--line);border-radius:12px;grid-template-columns:minmax(0,1fr) auto;gap:10px;min-height:0;padding:14px;box-shadow:0 2px 3px #0c2d1b05}.pending-attendance-date,.pending-attendance-subject,.pending-attendance-teacher,.pending-attendance-students{grid-column:1}.pending-attendance-date{grid-row:1}.pending-attendance-subject{grid-row:2}.pending-attendance-teacher{grid-row:3;padding-left:40px}.pending-attendance-students{grid-row:4;padding-left:40px}.pending-attendance-action{grid-area:1/2/5;align-items:center}.pending-attendance-action .button{width:42px;padding:0;font-size:0}.agenda-toolbar{flex-wrap:wrap;padding:10px}.date-navigation{flex:1;min-width:0}.date-navigation h2{text-overflow:ellipsis;max-width:150px;font-size:16px;overflow:hidden}.view-switcher{order:3;width:100%}.view-switcher button{flex:1}.view-switcher button:first-child,.add-lesson{display:none}.filter-bar{grid-template-columns:1fr auto;display:grid}.search-field{width:100%}.filter-fields{grid-column:1/-1;grid-template-columns:repeat(2,1fr);padding-top:6px;display:none}.filter-fields.open{display:grid}.filter-fields label{min-width:0}.mobile-filter-button{border:1px solid var(--line);color:#52645a;background:#fff;border-radius:10px;align-items:center;gap:5px;min-height:39px;padding:0 10px;font-size:10px;font-weight:700;display:inline-flex}.mobile-filter-button span{background:var(--green-700);color:#fff;border-radius:50%;place-items:center;width:17px;height:17px;font-size:8px;display:grid}.calendar-panel{padding:0 8px 8px}.teacher-legend{justify-content:flex-start;overflow-x:auto}.teacher-legend>span:first-child{display:none}.fc .fc-list-event-title{font-size:10px}.mobile-fab{z-index:55;background:var(--green-700);color:#fff;border:0;border-radius:50%;place-items:center;width:51px;height:51px;display:grid;position:fixed;bottom:81px;right:17px;box-shadow:0 9px 24px #0546254d}.modal-backdrop{align-items:end;padding:0}.lesson-dialog,.details-dialog,.compact-dialog{border-radius:20px 20px 0 0;width:100%;max-height:94vh}.dialog-scroll{max-height:calc(94vh - 148px)}.details-body{max-height:calc(94vh - 198px)}.form-grid.three{grid-template-columns:repeat(2,1fr)}.form-grid.three .field:first-child{grid-column:1/-1}.lesson-facts{grid-template-columns:1fr;gap:7px}.participant-row{flex-wrap:wrap}.attendance-toggle{width:100%;padding-left:40px}.attendance-toggle button{flex:1;justify-content:center}.directory-summary{grid-template-columns:repeat(2,1fr);display:grid}.directory-summary>div{min-width:0}.directory-summary>.button{grid-column:1/-1;margin:0}.directory-toolbar{flex-direction:column;align-items:stretch}.student-table-head{display:none}.student-table-row{grid-template-columns:1fr auto;gap:8px;padding:13px 6px}.student-contact,.student-table-row>div:nth-child(3){grid-column:1;padding-left:43px}.row-actions{flex-direction:column;grid-area:1/2/4;align-self:center}.availability-intro{flex-direction:column;align-items:stretch}.teacher-selector{justify-content:space-between}.teacher-selector select{flex:1}.weekly-panel,.exceptions-panel,.matrix-panel{padding:13px}.matrix-counts{justify-content:flex-start}.day-row{grid-template-columns:35px 1fr 35px}.day-periods{grid-column:1/-1;justify-items:stretch;padding-left:45px}.time-range{justify-content:flex-end}.add-period-button{justify-self:end}.settings-layout{grid-template-columns:1fr}.settings-nav{padding:5px;display:flex;position:static;overflow-x:auto}.settings-nav button{min-width:max-content}.settings-nav button svg:last-child{display:none}.section-heading{flex-direction:column;align-items:flex-start}.section-heading>.button{width:100%}.approval-row{grid-template-columns:34px 1fr;padding:11px 0}.approval-selects{grid-column:2;grid-template-columns:1fr}.approval-row .button{grid-column:auto}.user-row{grid-template-columns:34px 1fr auto}.user-row .role-badge{grid-column:2;width:fit-content}.user-row .account-status{display:none}.user-row .button{grid-area:1/3/3}.teacher-config-row{grid-template-columns:1fr}.inline-create{flex-direction:column;align-items:stretch}.inline-create .field,.closure-create .field:first-child{width:100%}.delivery-head{display:none}.delivery-list article{grid-template-columns:1fr auto}.delivery-list article>span:nth-child(2){grid-column:1}.audit-list article{grid-template-columns:12px 1fr}.audit-list article>div:last-child{text-align:left;grid-column:2}.system-test-heading>.button{width:100%}.system-test-category{flex-direction:column;align-items:flex-start}.system-test-category>.button{width:100%}.system-test-category p{margin-left:0}.system-test-summary{grid-template-columns:repeat(2,1fr)}.system-test-results-heading{flex-direction:column;align-items:flex-start}.system-test-report>header{flex-direction:column}.system-test-result details{margin-left:0}.auth-page{grid-template-columns:1fr}.auth-visual{display:none}.auth-panel{justify-content:flex-start;padding:100px 22px 35px}.auth-panel .brand{left:22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}.guide-stack{gap:20px;display:grid}.guide-intro{gap:15px;padding:24px 26px;display:grid}.guide-intro-copy>span,.guide-section-head>span{color:var(--green-700);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:800;line-height:1.3;display:block}.guide-intro-copy h2{margin:4px 0 7px;font-family:Georgia,Times New Roman,serif;font-size:25px}.guide-intro-copy p{max-width:76ch;color:var(--muted);margin:0;line-height:1.55}.guide-chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.guide-chips li{border:1px solid var(--green-200);background:var(--green-50);color:var(--green-800);border-radius:999px;align-items:center;padding:6px 12px;font-size:11px;font-weight:700;display:inline-flex}.guide-section{padding:22px 26px 24px}.guide-section-head h2{margin:3px 0 0;font-family:Georgia,Times New Roman,serif;font-size:20px}.guide-section-head p{max-width:76ch;color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.5}.guide-steps{counter-reset:guide;gap:0;margin:16px 0 0;padding:0;list-style:none;display:grid}.guide-steps li{counter-increment:guide;color:#3c4c43;padding:0 0 15px 40px;font-size:13px;line-height:1.55;position:relative}.guide-steps li:before{content:counter(guide);background:var(--green-100);width:26px;height:26px;color:var(--green-800);border-radius:8px;place-items:center;font-size:12px;font-weight:800;display:grid;position:absolute;top:0;left:0}.guide-steps li:last-child{padding-bottom:0}.guide-steps code{border:1px solid var(--green-100);background:var(--green-50);color:var(--green-800);border-radius:6px;padding:1px 6px;font-family:inherit;font-size:12px}.guide-tips{border-top:1px dashed var(--line);gap:8px;margin:16px 0 0;padding:14px 0 0;list-style:none;display:grid}.guide-tips li{color:var(--muted);gap:10px;font-size:13px;line-height:1.5;display:flex}.guide-tips li:before{content:"";background:var(--green-500);border-radius:50%;flex:none;width:6px;height:6px;margin-top:7px}@media (max-width:720px){.guide-intro,.guide-section{padding:18px}.guide-tips li{font-size:12px}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
