@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@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;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@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;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}.absolute{position:absolute}.fixed{position:fixed}.static{position:static}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.text-right{text-align:right}.lowercase{text-transform:lowercase}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--brand-50:#eef2ff;--brand-100:#e0e7ff;--brand-200:#c7d2fe;--brand-300:#a5b4fc;--brand-400:#818cf8;--brand-500:#6366f1;--brand-600:#4f46e5;--brand-700:#4338ca;--brand-800:#3730a3;--brand-900:#312e81;--accent-500:#7c3aed;--accent-600:#6d28d9;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--success:#15803d;--success-bg:#f0fdf4;--success-border:#bbf7d0;--warning:#b45309;--warning-bg:#fffbeb;--warning-border:#fde68a;--danger:#b91c1c;--danger-bg:#fef2f2;--danger-border:#fecaca;--info:#0369a1;--info-bg:#f0f9ff;--info-border:#bae6fd;--color-primary:var(--brand-600);--color-primary-hover:var(--brand-700);--color-primary-dark:var(--brand-900);--color-text:var(--slate-900);--color-text-muted:var(--slate-600);--color-background:var(--slate-50);--color-surface:#fff;--color-surface-soft:var(--slate-100);--color-border:var(--slate-200);--color-border-strong:var(--slate-300);--space-1:3px;--space-2:5px;--space-3:7px;--space-4:10px;--space-5:12px;--space-6:15px;--space-8:19px;--space-10:24px;--space-12:29px;--space-16:38px;--radius-xs:4px;--radius-sm:5px;--radius-md:6px;--radius-lg:9px;--radius-xl:11px;--radius-2xl:14px;--radius-full:999px;--shadow-sm:0 1px 2px #0f172a09;--shadow-md:0 4px 14px #0f172a12;--shadow-lg:0 10px 30px #0f172a14;--shadow-brand:0 12px 36px #4f46e521;--transition-fast:.15s ease;--transition-base:.22s ease}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-background);min-height:100vh;color:var(--color-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.82rem}body.navigation-open{overflow:hidden}img,svg{max-width:100%}button,input,select,textarea{font:inherit}button{border:0}::selection{background:var(--brand-200);color:var(--brand-900)}h1,h2,h3,h4,h5,h6{color:var(--color-text);margin-top:0;font-weight:800}h1{letter-spacing:-.035em;margin-bottom:9px;font-size:clamp(1.35rem,5vw,1.7rem);line-height:1.12}h2{letter-spacing:-.025em;margin-bottom:8px;font-size:clamp(1.05rem,4vw,1.3rem);line-height:1.18}h3{margin-bottom:6px;font-size:.94rem;line-height:1.3}h4{margin-bottom:5px;font-size:.86rem}h5{font-size:.8rem}h6{font-size:.75rem}p{color:var(--color-text-muted);margin-top:0;margin-bottom:9px;font-size:.82rem;line-height:1.5}small{color:var(--slate-500);font-size:.7rem}strong{color:var(--color-text)}.eyebrow{color:var(--accent-600);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;font-size:.54rem;font-weight:800;display:inline-block}a{color:var(--color-primary);transition:color var(--transition-fast),opacity var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-hover)}a.link-muted{color:var(--slate-600)}a.link-muted:hover{color:var(--slate-900)}a.link-danger{color:var(--danger)}.container{width:100%;max-width:1080px;margin-inline:auto;padding-inline:12px}.section{padding:24px 0}.section-sm{padding:15px 0}.section-lg{padding:34px 0}.page-shell{min-height:calc(100vh - 48px)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.row,.row-between{flex-direction:column;align-items:stretch;gap:7px;display:flex}.app-shell{background:var(--color-background);min-height:100dvh}.app-main{min-width:0;padding:16px 0 34px}.app-header{z-index:60;border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;position:sticky;top:0}.app-header__start,.app-header__actions{align-items:center;gap:6px;display:flex}.brand{color:var(--color-primary-dark);letter-spacing:-.035em;white-space:nowrap;font-size:.95rem;font-weight:900}.brand:hover{color:var(--color-primary)}.user-summary{align-items:center;gap:5px;display:flex}.user-summary__name{max-width:110px;color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:700;display:none;overflow:hidden}.user-avatar{background:linear-gradient(145deg,var(--brand-700),var(--accent-500));color:#fff;border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font-size:.64rem;font-weight:800;display:grid}.user-avatar--large{width:36px;height:36px;font-size:.78rem}.icon-button{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:32px;height:32px;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);flex:none;place-items:center;padding:0;display:inline-grid}.icon-button svg{width:16px;height:16px}.icon-button:hover{background:var(--color-surface-soft);border-color:var(--color-border-strong)}.icon-button:active{transform:scale(.96)}.desktop-navigation{border-top:1px solid var(--color-border);flex:100%;order:3;width:100%;min-width:0;margin:0;display:block;overflow:hidden}.dashboard-nav{flex-direction:column;gap:2px;width:100%;min-width:0;display:flex}.dashboard-nav__links{flex-direction:column;gap:2px;min-width:0;display:flex}.dashboard-nav__utilities{align-items:center;gap:4px;min-width:0;display:flex}.nav-link{border-radius:var(--radius-md);width:100%;min-height:34px;color:var(--color-text-muted);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);border:1px solid #0000;align-items:center;gap:6px;padding:6px 8px;font-size:.72rem;font-weight:700;line-height:1.2;text-decoration:none;display:flex}.nav-link:hover{background:var(--color-surface-soft);color:var(--color-text)}.nav-link.active{background:var(--brand-100);border-color:var(--brand-200);color:var(--brand-800)}.nav-link:focus-visible{outline:none;box-shadow:0 0 0 3px #6366f129}.nav-link__icon{flex:0 0 17px;place-items:center;width:17px;font-size:.8rem;display:inline-grid}.nav-link__label{min-width:0;display:inline-block}.desktop-navigation .dashboard-nav{overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-direction:row;align-items:center;gap:2px;width:100%;min-width:0;display:flex;overflow:auto hidden}.desktop-navigation .dashboard-nav::-webkit-scrollbar{display:none}.desktop-navigation .dashboard-nav:has(.dashboard-nav__links){overflow:hidden}.desktop-navigation .dashboard-nav__links{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-direction:row;flex:auto;align-items:center;gap:2px;min-width:0;padding:3px 0;display:flex;overflow:auto hidden}.desktop-navigation .nav-link{white-space:nowrap;scroll-snap-align:start;flex:none;width:auto;min-height:34px;padding:6px 8px}.desktop-navigation .dashboard-nav__utilities{background:var(--color-surface);border-left:1px solid var(--color-border);flex:none;justify-content:center;align-self:stretch;padding:3px 4px 3px 7px}.desktop-navigation .dashboard-nav__utilities>a,.desktop-navigation .dashboard-nav__utilities>button{min-width:34px;min-height:34px}@media(max-width:639px){.desktop-navigation{background:var(--color-surface);width:calc(100% + 24px);margin-inline:-12px;padding-inline:8px}.desktop-navigation .dashboard-nav__links{padding-block:3px}.desktop-navigation .nav-link{gap:5px;min-height:38px;padding:7px 8px;font-size:.7rem}.desktop-navigation .nav-link__icon{display:inline-grid}.desktop-navigation .dashboard-nav__utilities{min-width:42px;padding-left:6px}}@media(max-width:380px){.desktop-navigation .nav-link{padding-inline:7px;font-size:.67rem}.desktop-navigation .nav-link__icon{flex-basis:15px;width:15px;font-size:.74rem}}.mobile-nav{z-index:100;background:var(--color-surface);border-right:1px solid var(--color-border);visibility:hidden;width:min(82vw,270px);height:100dvh;transition:transform var(--transition-base),visibility var(--transition-base);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:14px 0 40px #0f172a26}.mobile-nav.is-open{visibility:visible;transform:translate(0)}.mobile-nav__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:7px;min-height:48px;padding:8px 12px;display:flex}.mobile-nav__user{border-bottom:1px solid var(--color-border);align-items:center;gap:8px;padding:11px 12px;display:flex}.mobile-nav__user strong,.mobile-nav__user small{display:block}.mobile-nav__user small{text-overflow:ellipsis;white-space:nowrap;max-width:170px;margin-top:2px;overflow:hidden}.mobile-nav__links{flex:1;padding:7px;overflow-y:auto}.mobile-nav__footer{border-top:1px solid var(--color-border);padding:9px 11px}.mobile-nav__footer form{width:100%;margin:5px 0 0}.mobile-nav-backdrop{z-index:90;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity var(--transition-base),visibility var(--transition-base);background:#0f172a75;position:fixed;inset:0}.mobile-nav-backdrop.is-open{opacity:1;visibility:visible}.button,button.button{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;min-height:34px;box-shadow:var(--shadow-sm);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:5px;padding:7px 11px;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.button:hover{background:var(--color-primary-hover);color:#fff;box-shadow:var(--shadow-md);transform:translateY(-1px)}.button:active{transform:translateY(0)}.button:focus-visible{outline:none;box-shadow:0 0 0 3px #6366f129}.button-secondary{color:var(--color-primary-dark);border-color:var(--color-border-strong);background:#fff}.button-secondary:hover{background:var(--slate-50);color:var(--color-primary-dark)}.button-ghost{color:var(--slate-700);background:0 0;border-color:#0000}.button-ghost:hover{background:var(--slate-100);color:var(--slate-900)}.button-danger{background:var(--danger);color:#fff}.button-danger:hover{background:#991b1b}.button-success{background:var(--success)}.button-small{min-height:29px;padding:5px 8px;font-size:.67rem}.button-large{min-height:38px;padding:8px 14px;font-size:.76rem}.button-block{width:100%}button:disabled,.button:disabled,.button[aria-disabled=true]{opacity:.55;cursor:not-allowed;pointer-events:none}.actions{flex-direction:column;align-items:stretch;gap:7px;width:100%;margin-top:14px;display:flex}.actions .button,.actions button{width:100%}.card,.cards article,.dashboard-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.cards{grid-template-columns:1fr;gap:9px;display:grid}.cards article{border-radius:var(--radius-lg);min-width:0;transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);padding:13px}.cards article:hover{border-color:var(--brand-200);box-shadow:var(--shadow-md);transform:translateY(-1px)}.card{border-radius:var(--radius-lg);padding:13px}.dashboard-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:15px}.card-muted{background:var(--slate-50)}.dashboard-heading{flex-direction:column;gap:10px;margin-bottom:15px;display:flex}.dashboard-heading .actions{width:100%;margin-top:0}.metric-grid{grid-template-columns:1fr;gap:7px;display:grid}.metric-grid article{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px}.metric-grid strong{color:var(--color-text);margin-bottom:2px;font-size:1rem;display:block}.metric-grid span{color:var(--slate-500);font-size:.64rem}.form-group{margin-bottom:11px}form{width:100%}form label{color:var(--slate-700);margin:10px 0 4px;font-size:.72rem;font-weight:700;display:block}input,select,textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;min-height:36px;color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);background:#fff;outline:none;padding:7px 9px;font-size:.78rem}input::placeholder,textarea::placeholder{color:var(--slate-400)}input:hover,select:hover,textarea:hover{border-color:var(--slate-400)}input:focus,select:focus,textarea:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px #6366f11c}input:disabled,select:disabled,textarea:disabled{background:var(--slate-100);color:var(--slate-500);cursor:not-allowed}input[type=checkbox],input[type=radio]{width:auto;min-height:auto;accent-color:var(--color-primary)}textarea{resize:vertical;min-height:76px}.field-error,.field-help{margin-top:4px;font-size:.66rem}.field-error{color:var(--danger)}.field-help{color:var(--slate-500)}.alert{border-radius:var(--radius-md);border:1px solid #0000;margin-bottom:12px;padding:9px 10px;font-size:.74rem;transition:opacity .2s,transform .2s}.alert.is-dismissing{opacity:0;transform:translateY(-4px)}.alert-success{color:var(--success);background:var(--success-bg);border-color:var(--success-border)}.alert-warning{color:var(--warning);background:var(--warning-bg);border-color:var(--warning-border)}.alert-error{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.alert-info{color:var(--info);background:var(--info-bg);border-color:var(--info-border)}.badge{border-radius:var(--radius-full);background:var(--slate-100);min-height:19px;color:var(--slate-700);align-items:center;padding:2px 6px;font-size:.62rem;font-weight:700;display:inline-flex}.badge-primary{background:var(--brand-100);color:var(--brand-800)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.table-wrapper{-webkit-overflow-scrolling:touch;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:560px}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:8px 10px}th{background:var(--slate-50);color:var(--slate-700);text-transform:uppercase;letter-spacing:.04em;font-size:.62rem;font-weight:800}td{color:var(--slate-700);font-size:.72rem}tbody tr:hover{background:var(--slate-50)}tbody tr:last-child td{border-bottom:0}.empty-state{text-align:center;background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:28px 15px}.empty-state h3{margin-bottom:5px}.empty-state p{max-width:420px;margin-inline:auto}.progress{border-radius:var(--radius-full);background:var(--slate-200);height:5px;margin-top:7px;overflow:hidden}.progress span{border-radius:inherit;background:var(--color-primary);height:100%;display:block}.book-list{margin-top:17px}.book{align-items:center;gap:8px;display:flex}.book p{margin:2px 0;font-size:.7rem}.cover{border-radius:var(--radius-xs);background:linear-gradient(145deg,var(--brand-900),var(--accent-500));color:#fff;flex-shrink:0;place-items:center;width:32px;height:43px;font-size:.68rem;font-weight:800;display:grid}.site-header{z-index:50;border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;position:sticky;top:0}.public-nav{justify-content:space-between;align-items:center;gap:7px;min-height:48px;display:flex}.public-nav__links{align-items:center;gap:5px;display:flex}.public-nav__links>a:not(.button){display:none}.hero{background:radial-gradient(circle at 90% 5%,var(--brand-100),transparent 36%),linear-gradient(180deg,#fff,var(--slate-50));padding:32px 0 28px}.hero-grid{grid-template-columns:1fr;gap:25px;display:grid}.hero-copy{max-width:560px;font-size:.82rem}.hero-preview{min-width:0}.preview-header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:13px;display:flex}.hero-trust{grid-template-columns:1fr;gap:6px;margin-top:18px;display:grid}.hero-trust>div{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#ffffffb8;padding:8px 10px}.hero-trust strong,.hero-trust span{display:block}.hero-trust strong{font-size:.72rem}.hero-trust span{color:var(--color-text-muted);margin-top:2px;font-size:.62rem}.section-heading{max-width:580px;margin-bottom:18px}.section-heading p{margin-bottom:0}.feature-grid article{position:relative;overflow:hidden}.feature-number{border-radius:var(--radius-md);background:var(--brand-100);width:24px;height:24px;color:var(--brand-800);justify-content:center;align-items:center;margin-bottom:10px;font-size:.58rem;font-weight:800;display:inline-flex}.class-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px 0;display:grid}.class-stats>div{background:var(--color-surface-soft);border-radius:var(--radius-md);min-width:0;padding:7px 8px}.class-stats strong,.class-stats span{display:block}.class-stats strong{margin-bottom:2px;font-size:.86rem}.class-stats span{color:var(--color-text-muted);font-size:.6rem}@media(max-width:380px){.class-stats{grid-template-columns:1fr}}.cta-card{border:1px solid var(--brand-200);border-radius:var(--radius-2xl);background:linear-gradient(145deg,var(--brand-50),#fff);box-shadow:var(--shadow-brand);flex-direction:column;gap:15px;padding:15px;display:flex}.cta-card h2{margin-bottom:6px}.site-footer,footer{background:var(--color-surface);border-top:1px solid var(--color-border);color:var(--slate-500);padding:19px 0}.footer-inner p{margin:4px 0 0}.footer-copy{color:var(--color-text-muted);font-size:.68rem}hr{border:0;border-top:1px solid var(--color-border);margin:19px 0}.checkbox-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;align-items:center;gap:7px;margin:0;padding:8px 10px;display:flex}@media(min-width:640px){.checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}html[data-theme=dark]{--color-text:#f8fafc;--color-text-muted:#cbd5e1;--color-background:#0f172a;--color-surface:#111827;--color-surface-soft:#1e293b;--color-border:#263244;--color-border-strong:#334155}html[data-theme=dark] body{background:var(--color-background);color:var(--color-text)}html[data-theme=dark] .app-header,html[data-theme=dark] .site-header{background:#0f172aeb}html[data-theme=dark] .card,html[data-theme=dark] .cards article,html[data-theme=dark] .dashboard-card,html[data-theme=dark] .metric-grid article,html[data-theme=dark] .table-wrapper,html[data-theme=dark] footer,html[data-theme=dark] .site-footer,html[data-theme=dark] .mobile-nav{background:var(--color-surface)}html[data-theme=dark] .icon-button{background:var(--color-surface);color:var(--color-text)}html[data-theme=dark] .nav-link{color:var(--slate-300)}html[data-theme=dark] .nav-link:hover{background:var(--slate-800);color:#fff}html[data-theme=dark] .nav-link.active{color:var(--brand-200);background:#4f46e540;border-color:#818cf847}html[data-theme=dark] .desktop-navigation{border-top-color:var(--color-border);background:var(--color-surface)}html[data-theme=dark] .desktop-navigation .dashboard-nav__utilities{background:var(--color-surface);border-left-color:var(--color-border)}html[data-theme=dark] .metric-grid strong{color:#fff}html[data-theme=dark] .card-muted{background:var(--slate-800)}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea{color:#f8fafc;background:#0f172a}html[data-theme=dark] form label{color:var(--slate-300)}html[data-theme=dark] th{color:#cbd5e1;background:#1e293b}html[data-theme=dark] td{color:#cbd5e1}html[data-theme=dark] tbody tr:hover{background:#ffffff08}html[data-theme=dark] p{color:var(--color-text-muted)}html[data-theme=dark] strong{color:var(--color-text)}html[data-theme=dark] .button-secondary{color:#f8fafc;border-color:var(--slate-700);background:#1e293b}html[data-theme=dark] .button-secondary:hover{background:var(--slate-700);color:#fff}html[data-theme=dark] .button-ghost{color:var(--slate-300)}html[data-theme=dark] .button-ghost:hover{background:var(--slate-800);color:#fff}html[data-theme=dark] .hero{background:radial-gradient(circle at 90% 5%,#4f46e52e,#0000 36%),linear-gradient(#111827,#0f172a)}html[data-theme=dark] .hero-trust>div{background:#1e293bb8}html[data-theme=dark] .cta-card{background:linear-gradient(145deg,#312e8166,var(--color-surface))}@media(max-width:639px){input,select,textarea{min-height:42px;font-size:16px}}@media(min-width:640px){.container,.app-header__inner{padding-inline:16px}.user-summary__name{display:inline-block}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.actions{flex-direction:row;align-items:center;width:auto}.actions .button,.actions button{width:auto}.row{flex-direction:row;align-items:center}.row-between{flex-direction:row;justify-content:space-between;align-items:center}.public-nav__links{gap:10px}.public-nav__links>a:not(.button){display:inline-flex}.hero{padding:40px 0 34px}.hero-trust{grid-template-columns:repeat(3,minmax(0,1fr))}.cta-card{padding:19px}}@media(min-width:768px){.app-main{padding-top:20px}.dashboard-heading{flex-direction:row;justify-content:space-between;align-items:flex-start}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.section{padding:30px 0}}@media(min-width:1024px){.mobile-menu-button,.mobile-nav,.mobile-nav-backdrop{display:none!important}.app-header__inner{flex-wrap:nowrap}.desktop-navigation{order:initial;border-top:0;flex:auto;width:auto;min-width:0;margin-inline:14px;overflow:visible}.desktop-navigation .dashboard-nav,.desktop-navigation .dashboard-nav:has(.dashboard-nav__links){flex-direction:row;justify-content:center;align-items:center;gap:1px;width:100%;display:flex;overflow:visible}.desktop-navigation .dashboard-nav__links{flex:0 auto;justify-content:center;padding:0;overflow:auto hidden}.desktop-navigation .dashboard-nav__utilities{background:0 0;align-self:center;margin-left:3px;padding:0 0 0 5px}.desktop-navigation .nav-link{white-space:nowrap;width:auto;min-height:29px;padding:5px 6px;font-size:.66rem}.desktop-navigation .nav-link__icon{display:none}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-card{padding:16px}.hero{padding:52px 0}.hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);align-items:center;gap:42px}.cta-card{flex-direction:row;justify-content:space-between;align-items:center;padding:27px}.cta-card>div:first-child{max-width:560px}.cta-card .actions{flex-shrink:0;margin-top:0}.footer-inner{flex-direction:row;justify-content:space-between;align-items:center}}@media(min-width:1280px){.desktop-navigation .nav-link{padding:5px 7px;font-size:.68rem}.desktop-navigation .nav-link__icon{display:inline-grid}}.form-group{min-width:0;margin-bottom:10px}.form-group label{color:var(--color-text);margin:0 0 4px;font-size:.7rem;font-weight:700;line-height:1.3;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:100%;min-height:36px;color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);outline:none;padding:7px 9px;font-size:.76rem;line-height:1.35}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:var(--color-surface-soft);color:var(--color-text-muted);cursor:not-allowed}.field-help{color:var(--color-text-muted);margin-top:4px;font-size:.64rem;line-height:1.4}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea{border-color:var(--danger)}.form-card{width:100%}.form-card__header{margin-bottom:14px}.form-card__header h2,.form-card__header h3{margin-bottom:4px}.form-section{border-bottom:1px solid var(--color-border);margin-bottom:14px;padding:0 0 14px}.form-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.form-section__heading{margin-bottom:10px}.form-section__heading h3{margin-bottom:3px}.form-section__heading p{margin-bottom:0;font-size:.7rem}.checkbox-row,.radio-row{cursor:pointer;align-items:center;gap:6px;margin:0;display:flex}.checkbox-row input,.radio-row input{width:auto;min-height:auto;accent-color:var(--color-primary);margin:0}.checkbox-row span,.radio-row span{color:var(--color-text-muted);font-size:.7rem}.checkbox-grid{grid-template-columns:1fr;gap:6px;display:grid}.checkbox-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);align-items:center;gap:7px;padding:8px 9px;display:flex}.checkbox-card:hover{border-color:var(--brand-300);background:var(--color-surface-soft)}.checkbox-card input{width:auto;min-height:auto;margin:0}.checkbox-card span{font-size:.7rem;font-weight:700}@media(min-width:640px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.form-actions{flex-direction:row;align-items:center}.form-actions .button{width:auto}.checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.checkbox-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.form-card{width:100%;max-width:100%}.form-card__header{border-bottom:1px solid var(--color-border);margin-bottom:14px;padding-bottom:10px}.form-card__header h3{margin-bottom:3px}.form-card__header p{margin-bottom:0}.form-grid{grid-template-columns:1fr;gap:10px;display:grid}.form-group{min-width:0;margin:0}.form-group label{color:var(--color-text);margin-bottom:4px;font-size:.7rem;font-weight:700;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:100%;min-height:36px;color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);outline:none;padding:7px 9px;font-size:.76rem}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--slate-400)}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:var(--slate-400)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px #6366f11a}.form-group select{cursor:pointer}.form-group textarea{resize:vertical;min-height:90px}.field-error{color:var(--danger);margin-top:4px;font-size:.64rem;font-weight:600}.field-help{color:var(--color-text-muted);margin-top:4px;font-size:.64rem}.form-actions{border-top:1px solid var(--color-border);flex-direction:column;gap:7px;margin-top:16px;padding-top:12px;display:flex}.form-actions .button{width:100%}@media(max-width:639px){.form-group input,.form-group select,.form-group textarea{min-height:42px;font-size:16px}}@media(min-width:640px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.form-actions{flex-direction:row;align-items:center}.form-actions .button{width:auto}}html[data-theme=dark] .form-group input,html[data-theme=dark] .form-group select,html[data-theme=dark] .form-group textarea{background:var(--color-surface);color:var(--color-text)}html[data-theme=dark] .form-card__header{border-color:var(--color-border)}.library-toolbar{width:100%}.library-grid{grid-template-columns:1fr;gap:10px;display:grid}.library-resource-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast);overflow:hidden}.library-resource-card:hover{border-color:var(--brand-200);box-shadow:var(--shadow-md);transform:translateY(-2px)}.library-resource-card__cover{aspect-ratio:16/10;background:var(--color-surface-soft);overflow:hidden}.library-resource-card__cover img{object-fit:cover;width:100%;height:100%;display:block}.library-resource-placeholder{background:linear-gradient(145deg,var(--brand-900),var(--accent-500));color:#fff;place-items:center;width:100%;height:100%;font-size:1.5rem;font-weight:900;display:grid}.library-resource-card__body{padding:11px}.library-resource-card__meta{margin-bottom:7px}.library-resource-card__body h3{margin-bottom:3px}.library-resource-card__body p{margin-bottom:7px}.resource-description{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.library-resource-card__actions{align-items:center;gap:6px;margin-top:10px;display:flex}.report-filter-card{width:100%}@media(min-width:640px){.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.teacher-class-list{flex-wrap:wrap;align-items:center;gap:4px;min-width:130px;display:flex}.teacher-class-list .badge{white-space:nowrap}.table-wrapper table{border-collapse:collapse;width:100%}.table-wrapper th,.table-wrapper td{vertical-align:middle;padding:6px 8px}.table-wrapper th{text-transform:uppercase;letter-spacing:.045em;white-space:nowrap;font-size:.59rem;font-weight:800}.table-wrapper td{font-size:.68rem;line-height:1.25}.table-wrapper tbody tr{height:42px}.directory-person{align-items:center;gap:7px;min-width:0;display:inline-flex}.directory-avatar{border:1px solid var(--color-border);background:var(--color-surface-soft);width:27px;height:27px;color:var(--color-primary);border-radius:50%;flex:0 0 27px;justify-content:center;align-items:center;font-size:.62rem;font-weight:800;line-height:1;display:inline-flex}.directory-person__details{min-width:0}.directory-person__name{align-items:center;min-width:0;display:flex}.directory-person__name a{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;font-weight:750;line-height:1.2;text-decoration:none;overflow:hidden}.directory-person__name a:hover{color:var(--color-primary)}.directory-person__meta{color:var(--color-text-muted);white-space:nowrap;margin-top:1px;font-size:.58rem}.table-value,.table-link,.table-email{font-size:.66rem}.table-link{color:var(--color-primary);font-weight:700;text-decoration:none}.table-link:hover{text-decoration:underline}.table-email{text-overflow:ellipsis;white-space:nowrap;max-width:190px;display:inline-block;overflow:hidden}.table-secondary{color:var(--color-text-muted);margin-top:1px;font-size:.56rem;display:block}.table-icon-actions{white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.table-icon-form{width:auto;margin:0;display:inline-flex}.table-icon-button{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);flex:0 0 28px;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.table-icon-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px;display:block}.table-icon-button:hover{color:var(--color-primary);border-color:var(--brand-300);background:var(--color-surface-soft)}.table-icon-button--danger:hover{color:var(--danger);border-color:var(--danger)}.table-wrapper .badge{white-space:nowrap;padding:3px 6px;font-size:.56rem}@media(max-width:767px){.table-wrapper th,.table-wrapper td{padding:6px}.directory-avatar{flex-basis:25px;width:25px;height:25px}.table-icon-button{flex-basis:27px;width:27px;height:27px}}.teacher-class-list{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:3px;max-width:180px;display:inline-flex}.teacher-class-list .badge{padding:3px 5px;font-size:.55rem}.directory-person--small{gap:5px}.directory-avatar--small{flex-basis:22px;width:22px;height:22px;font-size:.52rem}.table-condensed .directory-person__name strong{white-space:nowrap;font-size:.68rem;font-weight:750}.table-condensed .table-link{font-size:.64rem}.table-condensed td:last-child,.table-condensed th:last-child{white-space:nowrap;width:1%}@media(prefers-reduced-motion:reduce){.nav-link,.mobile-nav,.mobile-nav-backdrop,.icon-button{transition-duration:.01ms!important}.desktop-navigation .dashboard-nav,.desktop-navigation .dashboard-nav__links{scroll-behavior:auto}}.mpesa-reconciliation{gap:var(--space-8);display:grid}.reconciliation-summary{gap:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.reconciliation-summary__card{justify-content:space-between;align-items:center;gap:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);min-height:88px;color:var(--color-text);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);padding:14px 16px;text-decoration:none;display:flex}.reconciliation-summary__card:hover,.reconciliation-summary__card.is-active{border-color:var(--brand-300);box-shadow:var(--shadow-md);transform:translateY(-1px)}.reconciliation-summary__card.is-warning.is-active{border-color:var(--warning-border);background:var(--warning-bg)}.reconciliation-summary__card.is-danger.is-active{border-color:var(--danger-border);background:var(--danger-bg)}.reconciliation-summary__card.is-success.is-active{border-color:var(--success-border);background:var(--success-bg)}.reconciliation-summary__card span{gap:3px;display:grid}.reconciliation-summary__card strong{font-size:.78rem}.reconciliation-summary__card small{color:var(--color-text-muted);font-size:.68rem}.reconciliation-summary__card b{letter-spacing:-.04em;font-size:1.35rem}.reconciliation-filter{padding:var(--space-6)}.reconciliation-filter__form{align-items:end;gap:var(--space-4);grid-template-columns:minmax(220px,1fr) minmax(150px,220px) auto auto;display:grid}.reconciliation-table-card{overflow:hidden}.reconciliation-table-card>.payment-section-heading{padding:var(--space-6);border-bottom:1px solid var(--color-border)}.reconciliation-table{border-collapse:collapse;width:100%}.reconciliation-table th,.reconciliation-table td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle;padding:12px 14px}.reconciliation-table th{color:var(--color-text-muted);background:var(--color-surface-soft);letter-spacing:.055em;text-transform:uppercase;font-size:.58rem;font-weight:800}.reconciliation-table td>strong,.reconciliation-table td>small{display:block}.reconciliation-table td>small{color:var(--color-text-muted);margin-top:3px;font-size:.66rem}.reconciliation-table tbody tr:hover{background:var(--slate-50)}.mono-reference{letter-spacing:.015em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.status-badge--pending{color:var(--warning);border-color:var(--warning-border);background:var(--warning-bg)}.status-badge--applied{color:var(--success);border-color:var(--success-border);background:var(--success-bg)}.status-badge--review{color:var(--danger);border-color:var(--danger-border);background:var(--danger-bg)}.verification-badge{border:1px solid var(--color-border);border-radius:var(--radius-full);letter-spacing:.02em;white-space:nowrap;align-items:center;width:max-content;padding:4px 8px;font-size:.58rem;font-weight:800;line-height:1;display:inline-flex}.verification-badge--verified{color:var(--success);border-color:var(--success-border);background:var(--success-bg)}.verification-badge--pending{color:var(--info);border-color:var(--info-border);background:var(--info-bg)}.verification-badge--unverified,.verification-badge--failed{color:var(--danger);border-color:var(--danger-border);background:var(--danger-bg)}.reconciliation-empty{justify-items:center;gap:var(--space-3);text-align:center;padding:52px 20px;display:grid}.reconciliation-empty--compact{border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface-soft);padding:30px 20px}.reconciliation-empty__icon{border-radius:var(--radius-full);width:38px;height:38px;color:var(--success);background:var(--success-bg);place-items:center;font-weight:900;display:grid}.reconciliation-empty h3,.reconciliation-empty p{margin:0}.reconciliation-empty p{max-width:540px;color:var(--color-text-muted)}.pagination-shell{padding:var(--space-6)}.reconciliation-detail-header{justify-content:space-between;align-items:flex-end;gap:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:linear-gradient(135deg,#fff 0%,var(--brand-50) 100%);box-shadow:var(--shadow-md);padding:22px;display:flex}.reconciliation-detail-header h1,.reconciliation-detail-header p{margin-bottom:0}.reconciliation-detail-header p{color:var(--color-text-muted)}.reconciliation-detail-header__amount{text-align:right;justify-items:end;gap:5px;display:grid}.reconciliation-detail-header__amount>span:first-child{color:var(--color-text-muted);text-transform:uppercase;font-size:.66rem;font-weight:750}.reconciliation-detail-header__amount>strong{letter-spacing:-.04em;font-size:1.5rem}.reconciliation-detail-grid{gap:var(--space-6);grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);display:grid}.reconciliation-facts,.reconciliation-safety-note,.reconciliation-allocation,.reconciliation-applied,.reconciliation-blocked,.provider-verification-panel,.reconciliation-verification-block{padding:var(--space-6)}.provider-verification-panel{justify-content:space-between;align-items:center;gap:var(--space-6);border-color:var(--info-border);background:var(--info-bg);display:flex}.provider-verification-panel--verified{border-color:var(--success-border);background:var(--success-bg)}.provider-verification-panel--failed,.reconciliation-verification-block{border-color:var(--danger-border);background:var(--danger-bg)}.provider-verification-panel h2,.reconciliation-verification-block h2{margin:var(--space-3) 0}.provider-verification-panel p,.reconciliation-verification-block p{color:var(--slate-700);margin:0;line-height:1.55}.provider-verification-panel__reference{overflow-wrap:anywhere;margin-top:var(--space-3)!important}.provider-verification-panel__error{font-weight:700;margin-top:var(--space-3)!important;color:var(--danger)!important}.configuration-required{max-width:260px;color:var(--danger);text-align:right;font-size:.68rem;font-weight:700;display:block}@media(max-width:720px){.provider-verification-panel{flex-direction:column;align-items:stretch}.provider-verification-panel form,.provider-verification-panel .button{width:100%}.configuration-required{text-align:left;max-width:none}}.duplicate-review-form{gap:var(--space-5);max-width:720px;margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--danger-border);display:grid}.duplicate-review-form .button{width:max-content}.reconciliation-facts dl{margin:var(--space-5) 0 0;border:1px solid var(--color-border);border-radius:var(--radius-lg);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.reconciliation-facts dl>div{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:12px 14px}.reconciliation-facts dl>div:nth-child(2n){border-right:0}.reconciliation-facts dl>div:nth-last-child(-n+2){border-bottom:0}.reconciliation-facts dt{color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;font-size:.58rem;font-weight:800}.reconciliation-facts dd{margin:0;font-weight:700}.reconciliation-safety-note{border-color:var(--info-border);background:var(--info-bg)}.reconciliation-safety-note p,.reconciliation-safety-note li{color:var(--slate-700);line-height:1.55}.reconciliation-safety-note ul{margin-bottom:0;padding-left:18px}.reconciliation-applied{justify-content:space-between;align-items:center;gap:var(--space-6);border-color:var(--success-border);background:var(--success-bg);display:flex}.reconciliation-blocked{border-color:var(--danger-border);background:var(--danger-bg)}.reconciliation-applied h2,.reconciliation-blocked h2{margin:var(--space-3) 0}.invoice-candidate-search{gap:var(--space-3);margin:var(--space-5) 0;display:grid}.invoice-candidate-search>div{gap:var(--space-3);display:flex}.invoice-candidate-search input{flex:1}.invoice-allocation-form{gap:var(--space-6);display:grid}.invoice-candidate-list{gap:var(--space-3);display:grid}.invoice-candidate{align-items:center;gap:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast);grid-template-columns:auto minmax(0,1fr) auto;padding:13px 14px;display:grid}.invoice-candidate:hover,.invoice-candidate:has(input:checked){border-color:var(--brand-400);background:var(--brand-50);box-shadow:var(--shadow-sm)}.invoice-candidate.is-recommended{border-color:var(--success-border)}.invoice-candidate input{width:17px;height:17px;accent-color:var(--brand-600)}.invoice-candidate__main,.invoice-candidate__amounts,.invoice-candidate__main>span,.invoice-candidate__amounts>span{gap:3px;display:grid}.invoice-candidate__main small,.invoice-candidate__amounts span{color:var(--color-text-muted);font-size:.66rem}.invoice-candidate__amounts{text-align:right;grid-template-columns:repeat(2,auto);gap:22px}.invoice-candidate__amounts strong{color:var(--color-text);font-size:.75rem}.reference-match{border-radius:var(--radius-full);background:var(--success-bg);width:max-content;padding:2px 7px;font-weight:750;color:var(--success)!important}.reconciliation-submit{justify-content:space-between;align-items:center;gap:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border);display:flex}.reconciliation-submit p{max-width:600px;color:var(--color-text-muted);margin:0;font-size:.7rem}@media(max-width:900px){.reconciliation-detail-grid{grid-template-columns:1fr}.reconciliation-filter__form{grid-template-columns:1fr 1fr}}@media(max-width:680px){.reconciliation-summary,.reconciliation-filter__form,.reconciliation-facts dl{grid-template-columns:1fr}.reconciliation-facts dl>div,.reconciliation-facts dl>div:nth-child(2n),.reconciliation-facts dl>div:nth-last-child(-n+2){border-right:0;border-bottom:1px solid var(--color-border)}.reconciliation-facts dl>div:last-child{border-bottom:0}.reconciliation-detail-header,.reconciliation-applied,.reconciliation-submit{flex-direction:column;align-items:stretch}.reconciliation-detail-header__amount{text-align:left;justify-items:start}.invoice-candidate{grid-template-columns:auto minmax(0,1fr)}.invoice-candidate__amounts{text-align:left;grid-column:2}.invoice-candidate-search>div{flex-direction:column}.reconciliation-table{min-width:920px}}[x-cloak]{display:none!important}.dashboard-nav,.dashboard-nav__utilities{overflow:visible}.dashboard-nav__utilities{z-index:80;flex:none;align-items:center;gap:4px;display:flex;position:relative}.notification-bell{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:34px;height:34px;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);flex:0 0 34px;place-items:center;padding:0;text-decoration:none;display:inline-grid;position:relative}.notification-bell:hover{color:var(--color-primary);background:var(--color-surface-soft);border-color:var(--brand-300)}.notification-bell:active{transform:scale(.96)}.notification-bell:focus-visible{outline:none;box-shadow:0 0 0 3px #6366f124}.notification-bell__icon{place-items:center;width:17px;height:17px;display:grid}.notification-bell__icon svg{width:17px;height:17px;display:block}.notification-bell__badge{border:2px solid var(--color-surface);border-radius:var(--radius-full);background:var(--danger);color:#fff;pointer-events:none;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.54rem;font-weight:800;line-height:1;display:inline-flex;position:absolute;top:-5px;right:-5px;box-shadow:0 2px 5px #0f172a26}.user-menu__trigger{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:34px;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);align-items:center;gap:6px;padding:3px 6px 3px 3px;display:inline-flex}.user-menu__avatar,.user-menu__profile-avatar{background:linear-gradient(145deg,var(--brand-700),var(--accent-500));color:#fff;border-radius:50%;flex-shrink:0;place-items:center;font-weight:800;display:grid}.user-menu__avatar{width:27px;height:27px;font-size:.62rem}.user-menu__profile-avatar{width:40px;height:40px;font-size:.82rem}.user-menu__summary{min-width:0;display:none}.user-menu__name{max-width:110px;color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;font-weight:700;display:block;overflow:hidden}.user-menu__trigger[aria-expanded=true] .user-menu__chevron{transform:rotate(180deg)}.user-menu__dropdown{z-index:150;overscroll-behavior:contain;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(360px,100vw - 20px);max-height:min(620px,100dvh - 90px);position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 18px 48px #0f172a29}.user-menu__profile{border-bottom:1px solid var(--color-border);align-items:flex-start;gap:10px;padding:13px;display:flex}.user-menu__profile-details{flex:1;min-width:0}.user-menu__profile-details strong{text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;font-size:.76rem;display:block;overflow:hidden}.user-menu__profile-details>span{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;display:block;overflow:hidden}.user-menu__roles{flex-wrap:wrap;gap:4px;margin-top:7px;display:flex}.user-menu__role{border-radius:var(--radius-full);background:var(--brand-50);color:var(--brand-800);padding:2px 5px;font-size:.54rem;font-weight:700;display:inline-flex}.user-menu__count{border-radius:var(--radius-full);background:var(--brand-100);min-width:20px;height:20px;color:var(--brand-800);justify-content:center;align-items:center;padding:0 5px;font-size:.56rem;font-weight:800;display:inline-flex}.user-menu__section-heading{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px 6px;font-size:.6rem;font-weight:800;display:flex}.user-menu__notification-list{max-height:270px;overflow-y:auto}.user-menu__notification{color:var(--color-text);border-top:1px solid var(--color-border);gap:7px;padding:9px 11px;text-decoration:none;display:flex;position:relative}.user-menu__notification-content small{font-size:.56rem}.user-menu__view-all{color:var(--color-primary);text-align:center;border-top:1px solid var(--color-border);padding:9px 11px;font-size:.66rem;font-weight:700;display:block}.dashboard-logout{width:auto;margin:0;display:none}.dashboard-logout__button{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:34px;color:var(--danger);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);align-items:center;gap:5px;padding:6px 8px;font-size:.66rem;font-weight:700;display:inline-flex}.dashboard-logout__button svg{flex:0 0 15px;width:15px;height:15px}.dashboard-logout__button:hover{background:var(--danger-bg);border-color:var(--danger-border)}.dashboard-logout__button:focus-visible{outline:none;box-shadow:0 0 0 3px #b91c1c1f}@media(max-width:1023px){.desktop-navigation .dashboard-nav__utilities{z-index:90;background:var(--color-surface);border-left:1px solid var(--color-border);flex-shrink:0;padding-inline:4px;position:relative}.user-menu__summary,.dashboard-logout{display:none}}@media(min-width:1024px){.desktop-navigation .dashboard-nav__utilities{margin-left:6px;overflow:visible}.user-menu__summary{display:block}.dashboard-logout{display:inline-flex}}@media(min-width:1280px){.user-menu__name{max-width:150px}.dashboard-logout__button{padding-inline:9px}}html[data-theme=dark] .notification-bell,html[data-theme=dark] .user-menu__trigger,html[data-theme=dark] .user-menu__dropdown,html[data-theme=dark] .dashboard-nav__utilities,html[data-theme=dark] .dashboard-logout__button{background:var(--color-surface);border-color:var(--color-border)}html[data-theme=dark] .notification-bell{color:var(--slate-300)}html[data-theme=dark] .notification-bell__badge{border-color:var(--color-surface)}html[data-theme=dark] .user-menu__role{color:var(--brand-200);background:#4f46e533}html[data-theme=dark] .user-menu__logout:hover,html[data-theme=dark] .dashboard-logout__button:hover{background:#b91c1c24}@media(prefers-reduced-motion:reduce){.notification-bell,.user-menu__trigger,.user-menu__chevron,.dashboard-logout__button{transition-duration:.01ms!important}}.notification-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:14px;display:grid}.notification-summary__item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 12px}.notification-summary__item strong,.notification-summary__item span{display:block}.notification-summary__item strong{margin-bottom:2px;font-size:1rem}.notification-summary__item span{color:var(--color-text-muted);font-size:.64rem}.notification-tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;align-items:center;gap:4px;margin-bottom:12px;display:flex;overflow-x:auto}.notification-tabs::-webkit-scrollbar{display:none}.notification-tab{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);flex:none;padding:6px 10px;font-size:.68rem;font-weight:700}.notification-tab:hover{background:var(--color-surface-soft);color:var(--color-text)}.notification-tab.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.notification-filter-card{margin-bottom:14px}.notification-filter-form{flex-direction:column;gap:8px;display:flex}.notification-filter-form .form-group{margin:0}.notification-filter-actions{flex-wrap:wrap;gap:6px;display:flex}.notification-list{flex-direction:column;gap:7px;display:flex}.notification-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);flex-direction:column;gap:10px;padding:12px;display:flex;position:relative}.notification-item:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.notification-item.is-unread{background:var(--brand-50);border-color:var(--brand-200)}.notification-item--high{border-left:3px solid var(--warning)}.notification-item--critical{border-left:3px solid var(--danger)}.notification-item__body{flex:1;min-width:0}.notification-item__meta{flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:6px;display:flex}.notification-item__unread-marker{background:var(--color-primary);border-radius:50%;flex:0 0 7px;width:7px;height:7px}.notification-item__category{color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.58rem;font-weight:800}.notification-item__title{margin-bottom:4px;font-size:.8rem}.notification-item__message{max-width:760px;margin-bottom:6px;font-size:.72rem;line-height:1.45}.notification-item__time{color:var(--color-text-muted);font-size:.6rem}.notification-item__primary-action{margin-top:9px}.notification-item__controls{flex:none}.notification-item__controls form{width:auto;margin:0}.notification-pagination{margin-top:18px}@media(min-width:640px){.notification-summary{max-width:360px}.notification-filter-form{grid-template-columns:minmax(220px,320px) auto;align-items:end;display:grid}.notification-item{flex-direction:row;justify-content:space-between;align-items:flex-start}.notification-item__controls{padding-top:2px}}html[data-theme=dark] .notification-summary__item,html[data-theme=dark] .notification-tab,html[data-theme=dark] .notification-item{background:var(--color-surface)}html[data-theme=dark] .notification-item.is-unread{background:#4f46e51f;border-color:#818cf852}html,body{min-height:100%}body{min-height:100dvh}.app-shell{background:var(--color-background);flex-direction:column;width:100%;min-width:0;min-height:100dvh;display:flex}.app-header{z-index:100;border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(18px);background:#fffffff5;flex:none;width:100%;position:sticky;top:0}.app-header__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:7px;width:100%;min-height:48px;padding:6px 12px;display:flex}.app-header__start,.app-header__actions{align-items:center;gap:6px;min-width:0;display:flex}.app-header__navigation{z-index:101;background:var(--color-surface);border-top:1px solid var(--color-border);width:100%;min-width:0;position:relative}.app-header__navigation>.container,.app-header__navigation .container{width:100%;max-width:none;margin-inline:auto;padding-inline:8px}.app-header__navigation .dashboard-nav{width:100%;min-width:0}.app-main{flex:1 0 auto;width:100%;min-width:0;padding:16px 0 34px}.site-footer,.app-shell>footer{background:var(--color-surface);border-top:1px solid var(--color-border);width:100%;color:var(--slate-500);flex:none;margin-top:auto;padding:19px 0}.footer-inner{flex-direction:column;gap:12px;display:flex}.footer-inner>*{min-width:0}.footer-inner strong{font-size:.76rem;display:block}.footer-inner p,.footer-copy{color:var(--color-text-muted);margin:4px 0 0;font-size:.68rem}.footer-links{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.footer-links a{min-height:30px;color:var(--color-text-muted);align-items:center;font-size:.66rem;font-weight:700;text-decoration:none;display:inline-flex}.footer-links a:hover{color:var(--color-primary)}.footer-links a:focus-visible{border-radius:var(--radius-sm);outline:none;box-shadow:0 0 0 3px #6366f124}@media(max-width:639px){.app-header__inner{padding-inline:12px}.app-header__navigation>.container,.app-header__navigation .container{padding-inline:8px}.app-main{padding:12px 0 28px}.site-footer,.app-shell>footer{padding:15px 0}.footer-links{gap:5px 10px}}@media(min-width:640px){.app-header__inner,.app-header__navigation>.container,.app-header__navigation .container{padding-inline:16px}}@media(min-width:1024px){.app-header__navigation>.container,.app-header__navigation .container{max-width:1440px;margin-inline:auto}.footer-inner{flex-direction:row;justify-content:space-between;align-items:center}.footer-links{justify-content:flex-end}}html[data-theme=dark] .app-header{border-bottom-color:var(--color-border);background:#0f172af5}html[data-theme=dark] .app-header__navigation,html[data-theme=dark] .site-footer,html[data-theme=dark] .app-shell>footer{background:var(--color-surface);border-color:var(--color-border)}html[data-theme=dark] .footer-links a{color:var(--slate-300)}html[data-theme=dark] .footer-links a:hover{color:var(--brand-200)}@media print{.app-header,.app-header__navigation,.site-footer,.app-shell>footer{box-shadow:none;-webkit-backdrop-filter:none;position:static}.app-main{padding:0}}@media(prefers-reduced-motion:reduce){.footer-links a{transition-duration:.01ms!important}}.desktop-navigation,.desktop-navigation .dashboard-nav,.desktop-navigation .dashboard-nav:has(.dashboard-nav__links){overflow:visible!important}.desktop-navigation .dashboard-nav__links{scrollbar-width:none;-webkit-overflow-scrolling:touch;min-width:0;overflow:auto hidden!important}.desktop-navigation .dashboard-nav__links::-webkit-scrollbar{display:none}.dashboard-nav__utilities,.desktop-navigation .dashboard-nav__utilities{z-index:220;position:relative;overflow:visible!important}.user-menu{flex:none;display:inline-flex;position:relative}.user-menu>summary{list-style:none}.user-menu>summary::-webkit-details-marker{display:none}.user-menu>summary::marker{content:""}.user-menu__trigger{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:34px;color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);align-items:center;gap:6px;padding:3px 6px 3px 3px;display:inline-flex}.user-menu__trigger:hover{background:var(--color-surface-soft);border-color:var(--color-border-strong)}.user-menu__trigger:focus-visible{outline:none;box-shadow:0 0 0 3px #6366f124}.user-menu[open] .user-menu__trigger{background:var(--brand-50);border-color:var(--brand-200)}.user-menu__chevron{width:13px;height:13px;color:var(--color-text-muted);transition:transform var(--transition-fast);flex:0 0 13px}.user-menu[open] .user-menu__chevron{transform:rotate(180deg)}.user-menu__dropdown{z-index:500;overscroll-behavior:contain;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(370px,100vw - 24px);max-height:min(620px,100dvh - 90px);position:absolute;top:calc(100% + 8px);right:0;overflow:hidden auto;box-shadow:0 20px 54px #0f172a33}.user-menu__section{border-bottom:1px solid var(--color-border);padding:6px}.user-menu__link{border-radius:var(--radius-sm);min-height:36px;color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;font-size:.7rem;font-weight:700;text-decoration:none;display:flex}.user-menu__link:hover{background:var(--color-surface-soft);color:var(--color-text)}.user-menu__count{border-radius:var(--radius-full);background:var(--danger);color:#fff;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.56rem;font-weight:800;display:inline-flex}.user-menu__notifications{border-bottom:1px solid var(--color-border)}.user-menu__section-heading{color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px 6px;font-size:.6rem;font-weight:800;display:flex}.user-menu__section-heading span:last-child{color:var(--color-primary)}.user-menu__notification-list{overscroll-behavior:contain;max-height:280px;overflow-y:auto}.user-menu__notification{color:var(--color-text);border-top:1px solid var(--color-border);gap:8px;padding:9px 11px;text-decoration:none;display:flex}.user-menu__notification:first-child{border-top:0}.user-menu__notification:hover{background:var(--color-surface-soft)}.user-menu__notification.is-unread{background:var(--brand-50)}.user-menu__notification.is-unread:hover{background:var(--brand-100)}.user-menu__notification-marker{background:0 0;border-radius:50%;flex:0 0 7px;width:7px;height:7px;margin-top:5px}.user-menu__notification.is-unread .user-menu__notification-marker{background:var(--color-primary)}.user-menu__notification-content{flex:1;min-width:0;display:block}.user-menu__notification-content strong{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;font-size:.69rem;display:block;overflow:hidden}.user-menu__notification-message{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:.62rem;line-height:1.4;display:-webkit-box;overflow:hidden}.user-menu__notification-content small{font-size:.56rem;display:block}.user-menu__notification-empty{color:var(--color-text-muted);text-align:center;padding:22px 12px;font-size:.66rem}.user-menu__view-all{min-height:38px;color:var(--color-primary);border-top:1px solid var(--color-border);justify-content:center;align-items:center;padding:8px 11px;font-size:.66rem;font-weight:800;text-decoration:none;display:flex}.user-menu__view-all:hover{background:var(--color-surface-soft)}.user-menu__footer{padding:6px}.user-menu__footer form{width:100%;margin:0}.user-menu__logout{border-radius:var(--radius-sm);width:100%;min-height:36px;color:var(--danger);cursor:pointer;background:0 0;align-items:center;gap:7px;padding:7px 8px;font-size:.7rem;font-weight:700;display:flex}.user-menu__logout svg{width:15px;height:15px}.user-menu__logout:hover{background:var(--danger-bg)}@media(max-width:639px){.desktop-navigation .dashboard-nav{align-items:center}.desktop-navigation .dashboard-nav__utilities{background:var(--color-surface);border-left:1px solid var(--color-border);flex:none;min-width:auto;padding:3px 5px 3px 7px;box-shadow:-8px 0 14px #0f172a0a}.user-menu__dropdown{border-radius:var(--radius-xl);width:auto;max-height:min(72dvh,590px);position:fixed;inset:auto 12px 12px;box-shadow:0 24px 70px #0f172a47}.user-menu__summary{display:none}.user-menu__trigger{min-width:36px;padding:3px}.user-menu__chevron{display:none}.dashboard-logout{display:none!important}}@media(min-width:640px)and (max-width:1023px){.user-menu__dropdown{width:min(370px,100vw - 32px)}.dashboard-logout{display:none!important}}@media(min-width:1024px){.user-menu__summary{display:block}.dashboard-logout{display:inline-flex}}html[data-theme=dark] .user-menu[open] .user-menu__trigger{background:#4f46e533;border-color:#818cf84d}html[data-theme=dark] .user-menu__dropdown{background:var(--color-surface);border-color:var(--color-border);box-shadow:0 20px 54px #00000070}html[data-theme=dark] .user-menu__notification.is-unread{background:#4f46e524}html[data-theme=dark] .user-menu__notification.is-unread:hover{background:#4f46e538}@media(prefers-reduced-motion:reduce){.user-menu__trigger,.user-menu__chevron{transition:none}}.assignment-section-gap{height:14px}.assignment-section-gap--small{height:12px}.assignment-filters{grid-template-columns:minmax(240px,1fr) 180px auto auto;gap:8px;display:grid}.assignment-filters input,.assignment-filters select{width:100%}.assignment-title{flex-direction:column;gap:2px;display:flex}.assignment-title strong{color:var(--color-text);font-size:.58rem}.assignment-title span{color:var(--color-text-muted);font-size:.49rem}.assignment-status{background:var(--color-surface-soft);color:var(--color-text-muted);text-transform:capitalize;border-radius:999px;align-items:center;padding:4px 7px;font-size:.48rem;font-weight:750;display:inline-flex}.assignment-status--published{color:var(--color-primary)}.assignment-status--closed,.assignment-status--archived{opacity:.7}.table-link{color:var(--color-primary);font-size:.52rem;font-weight:750;text-decoration:none}.table-link:hover{color:var(--color-primary-hover)}.pagination-shell{margin-top:16px}.text-danger{color:var(--danger)}@media(max-width:750px){.assignment-filters{grid-template-columns:1fr 1fr}}@media(max-width:480px){.assignment-filters{grid-template-columns:1fr}}.assignment-page{width:100%;min-width:0;color:var(--color-text);background:var(--color-background);padding:24px 0 48px}.assignment-page .page-shell{width:min(1200px,100%);margin-inline:auto;padding-inline:12px}.assignment-page .top-navigation{margin-bottom:14px}.assignment-page .back-link{min-height:32px;color:var(--color-text-muted);align-items:center;font-size:.72rem;font-weight:700;text-decoration:none;display:inline-flex}.assignment-page .back-link:hover{color:var(--color-primary)}.assignment-page .assignment-header{justify-content:space-between;align-items:flex-start;gap:var(--space-5);margin-bottom:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-wrap:wrap;padding:18px;display:flex}.assignment-page .assignment-header-main{flex:520px;min-width:0}.assignment-page .assignment-header h1{color:var(--color-text);overflow-wrap:anywhere;margin:8px 0 10px;font-size:clamp(1.35rem,3.5vw,2.25rem);line-height:1.15}.assignment-page .header-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:6px 16px;font-size:.72rem;display:flex}.assignment-page .header-meta strong{color:var(--color-text)}.assignment-page .header-actions{flex-wrap:wrap;flex:0 auto;gap:7px;display:flex}.assignment-page .status-badge{border-radius:var(--radius-full);letter-spacing:.05em;text-transform:uppercase;align-items:center;min-height:22px;padding:3px 7px;font-size:.58rem;font-weight:800;display:inline-flex}.assignment-page .status-published{background:var(--success-bg);color:var(--success)}.assignment-page .status-draft,.assignment-page .status-archived{background:var(--color-surface-soft);color:var(--color-text-muted)}.assignment-page .status-closed{background:var(--danger-bg);color:var(--danger)}.assignment-page .metric-grid{margin-bottom:var(--space-5);grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.assignment-page .metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:0;box-shadow:var(--shadow-sm);padding:13px}.assignment-page .metric-card span{color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.58rem;font-weight:700;display:block}.assignment-page .metric-card strong{color:var(--color-text);margin-top:4px;font-size:1.25rem;display:block}.assignment-page .assignment-layout-grid{grid-template-columns:minmax(0,1fr) minmax(260px,300px);grid-template-areas:"work status""details status""roster roster";align-items:start;gap:14px;display:grid}.assignment-page .assignment-submission-summary{grid-area:work}.assignment-page .assignment-sidebar{grid-area:status;align-self:start;gap:12px;min-width:0;display:grid}.assignment-page .assignment-details{grid-area:details}.assignment-page .student-roster{grid-area:roster}.assignment-page .card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-sm);padding:18px}.assignment-page .assignment-status-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-sm)}.assignment-page .card-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.assignment-page .card-heading h2{color:var(--color-text);margin:2px 0 0;font-size:1rem}.assignment-page .field-label{color:var(--accent-600);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-size:.56rem;font-weight:800;display:block}.assignment-page .section-description,.assignment-page .submission-management-note{color:var(--color-text-muted);line-height:1.55}.assignment-page .assignment-submission-summary{gap:12px;display:grid}.assignment-page .assignment-submission-summary .section-description{margin:0}.assignment-page .submission-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;display:grid}.assignment-page .submission-stat{background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:0;padding:10px}.assignment-page .submission-stat span{color:var(--color-text-muted);text-transform:uppercase;font-size:.55rem;font-weight:700;display:block}.assignment-page .submission-stat strong{color:var(--color-text);margin-top:3px;font-size:1rem;display:block}.assignment-page .submission-management-note{margin:0;font-size:.68rem}.assignment-page .assignment-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;display:grid}.assignment-page .assignment-details>div{border-bottom:1px solid var(--color-border);min-width:0;padding:12px 0}.assignment-page .assignment-details>div:nth-last-child(-n+2){border-bottom-color:#0000}.assignment-page .assignment-resource{grid-column:1/-1}.assignment-page .assignment-details strong{color:var(--color-text)}.assignment-page .assignment-resource h2{color:var(--color-text);margin:3px 0 5px;font-size:1rem}.assignment-page .assignment-resource p{color:var(--color-text-muted);margin:3px 0}.assignment-page .resource-publisher{font-size:.68rem}.assignment-page .assignment-resource .button{margin-top:9px}.assignment-page .instructions{color:var(--color-text);line-height:1.65}.assignment-page .field-note{color:var(--color-text-muted);margin:5px 0 0;font-size:.65rem}.assignment-page .danger-text{color:var(--danger)!important}.assignment-page .sidebar-card h3{color:var(--color-text);margin:0 0 12px;font-size:.86rem}.assignment-page .sidebar-card dl{margin:0}.assignment-page .sidebar-card dl div{border-top:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:12px;padding:9px 0;display:flex}.assignment-page .sidebar-card dl div:first-child{border-top:0;padding-top:0}.assignment-page .sidebar-card dt{color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;flex:none;font-size:.56rem;font-weight:700}.assignment-page .sidebar-card dd{min-width:0;color:var(--color-text);text-align:right;overflow-wrap:anywhere;margin:0;font-size:.7rem;font-weight:700}.assignment-page .sidebar-actions{gap:7px;display:grid}.assignment-page .danger-card{background:var(--danger-bg);border-color:var(--danger-border)}.assignment-page .danger-card p{color:var(--danger);font-size:.68rem;line-height:1.5}.assignment-page .roster-count{color:var(--color-text-muted);font-size:.67rem}.assignment-page .table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.assignment-page .student-table{border-collapse:collapse;width:100%;min-width:720px}.assignment-page .student-table th{background:var(--color-surface-soft);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);text-align:left;text-transform:uppercase;padding:9px;font-size:.56rem;font-weight:800}.assignment-page .student-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;padding:10px 9px;font-size:.68rem}.assignment-page .student-table tbody tr:last-child td{border-bottom:0}.assignment-page .student-table td strong,.assignment-page .student-table td small{display:block}.assignment-page .student-table td small{color:var(--color-text-muted);margin-top:2px}.assignment-page .student-status{border-radius:var(--radius-full);text-transform:uppercase;align-items:center;min-height:20px;padding:2px 6px;font-size:.54rem;font-weight:800;display:inline-flex}.assignment-page .student-status-none,.assignment-page .student-status-draft{background:var(--color-surface-soft);color:var(--color-text-muted)}.assignment-page .student-status-submitted{background:var(--info-bg);color:var(--info)}.assignment-page .student-status-late{background:var(--danger-bg);color:var(--danger)}.assignment-page .student-status-graded{background:var(--warning-bg);color:var(--warning)}.assignment-page .table-action{color:var(--color-primary);font-weight:700;text-decoration:none}.assignment-page .table-action:hover{color:var(--color-primary-hover)}.assignment-page .button-full{width:100%}.assignment-page .empty-state{color:var(--color-text-muted);text-align:center;padding:22px 12px}.assignment-page .muted{color:var(--slate-400)}@media(max-width:1024px){.assignment-page .assignment-layout-grid{grid-template-columns:minmax(0,1fr) minmax(235px,270px);gap:10px}.assignment-page .submission-stats,.assignment-page .metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.assignment-page{padding:16px 0 36px}.assignment-page .assignment-layout-grid{grid-template-columns:1fr;grid-template-areas:"work""status""details""roster"}.assignment-page .assignment-sidebar{width:100%}.assignment-page .assignment-header{padding:14px}.assignment-page .header-actions{width:100%}.assignment-page .header-actions .button{flex:150px}.assignment-page .assignment-details{grid-template-columns:1fr}.assignment-page .assignment-details>div,.assignment-page .assignment-details>div:nth-last-child(-n+2){border-bottom:1px solid var(--color-border)}.assignment-page .assignment-details>div:last-child{border-bottom:0}}@media(max-width:560px){.assignment-page .metric-grid,.assignment-page .submission-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.assignment-page .card-heading{flex-direction:column}.assignment-page .card-heading .button{width:100%}.assignment-page .sidebar-card dl div{align-items:center}}@media(max-width:390px){.assignment-page .metric-grid,.assignment-page .submission-stats{grid-template-columns:1fr}.assignment-page .header-actions .button{flex-basis:100%;width:100%}}html[data-theme=dark] .assignment-page .status-published{color:#86efac;background:#15803d2e}html[data-theme=dark] .assignment-page .status-closed,html[data-theme=dark] .assignment-page .student-status-late,html[data-theme=dark] .assignment-page .danger-card{background:#b91c1c24}html[data-theme=dark] .assignment-page .student-status-submitted{color:#7dd3fc;background:#0369a12e}html[data-theme=dark] .assignment-page .student-status-graded{color:#fcd34d;background:#b453092e}.review-page{flex-direction:column;gap:1.25rem;display:flex}.review-page .review-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.review-page .review-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:.4rem;font-size:.75rem;font-weight:700;display:inline-block}.review-page .review-title{color:var(--color-text);margin:0;font-size:clamp(1.5rem,3vw,2rem);line-height:1.2}.review-page .review-subtitle{color:var(--color-text-muted);margin:.5rem 0 0;font-size:.95rem}.review-page .review-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.review-page .review-btn{border:1px solid var(--color-border-strong);background:var(--color-surface);min-height:42px;color:var(--color-text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:.65rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.review-page .review-btn:hover{background:var(--color-surface-soft)}.review-page .review-btn--primary:hover{background:var(--slate-800)}.review-page .review-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px}.review-page .review-card__header{border-bottom:1px solid var(--color-border);padding:1rem 1.25rem}.review-page .review-card__header h2{color:var(--color-text);margin:0;font-size:1rem}.review-page .review-card__body{padding:1.25rem}.review-page .review-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);align-items:start;gap:1.25rem;display:grid}.review-page .review-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.review-page .review-meta-item{min-width:0}.review-page .review-meta-label{color:var(--color-text-muted);margin-bottom:.3rem;font-size:.78rem;font-weight:600;display:block}.review-page .review-meta-value{color:var(--color-text);word-break:break-word;font-size:.9rem}.review-page .review-badge{border-radius:999px;align-items:center;padding:.3rem .6rem;font-size:.75rem;font-weight:700;display:inline-flex}.review-page .review-response{white-space:pre-wrap;color:var(--slate-700);font-size:.95rem;line-height:1.7}.review-page .review-empty{color:var(--slate-400);font-style:italic}.review-page .review-attachment{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.review-page .review-attachment__name{color:var(--color-text);word-break:break-word;font-weight:600}.review-page .review-attachment__meta{color:var(--color-text-muted);margin-top:.25rem;font-size:.8rem}.review-page .review-alert{border:1px solid var(--warning-border);background:var(--color-surface)7ed;color:var(--warning);border-radius:6px;padding:1rem;font-size:.9rem;line-height:1.6}.review-page .review-score-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.review-page .review-score{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:6px;padding:.9rem}.review-page .review-score__label{color:var(--color-text-muted);margin-bottom:.3rem;font-size:.75rem;display:block}.review-page .review-score__value{color:var(--color-text);font-size:1.25rem;font-weight:700}.review-page .review-field{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.review-page .review-field label{color:var(--slate-700);font-size:.82rem;font-weight:600}.review-page .review-field input,.review-page .review-field textarea{border:1px solid var(--color-border-strong);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;border-radius:6px;padding:.7rem .8rem}.review-page .review-field textarea{resize:vertical}.review-page .review-error{color:var(--danger);margin-top:.3rem;font-size:.8rem}.review-page .review-help{color:var(--color-text-muted);margin-top:.3rem;font-size:.8rem;line-height:1.5}.review-page .review-feedback{white-space:pre-wrap;color:var(--slate-700);line-height:1.65}.review-page .review-divider{background:var(--color-border);height:1px;margin:1.25rem 0}.review-page .review-success{border:1px solid var(--success-border);background:var(--success-bg);color:var(--success);border-radius:6px;padding:1rem}.review-page .review-errors{border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger);border-radius:6px;padding:1rem}.review-page .review-errors ul{margin:.5rem 0 0 1.25rem;padding:0}@media(max-width:950px){.review-page .review-grid{grid-template-columns:1fr}}@media(max-width:640px){.review-page .review-meta-grid,.review-page .review-score-grid{grid-template-columns:1fr}.review-page .review-actions{width:100%}.review-page .review-actions .review-btn{flex:1}}.review-page{width:100%;min-width:0}.review-page .review-content-stack{gap:var(--space-6);flex-direction:column;display:flex}.review-page .review-alert__body{margin-top:var(--space-2)}.review-page .review-alert--spaced{margin-bottom:var(--space-4)}.review-page .review-btn--full{width:100%}.review-page .review-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.review-page .review-btn{border-radius:var(--radius-md);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.review-page .review-btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.review-page .review-btn--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}.review-page .review-grid{gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(280px,340px)}.review-page .review-grade-card{align-self:start;position:sticky;top:78px}.review-page .review-field input:focus,.review-page .review-field textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #6366f11f}.review-page .review-badge--submitted{background:var(--success-bg);color:var(--success)}.review-page .review-badge--late{background:var(--warning-bg);color:var(--warning)}.review-page .review-badge--graded{background:var(--info-bg);color:var(--info)}.review-page .review-badge--draft{background:var(--color-surface-soft);color:var(--color-text-muted)}@media(max-width:900px){.review-page .review-grid{gap:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(250px,300px)}}@media(max-width:760px){.review-page .review-grid{grid-template-columns:1fr}.review-page .review-grade-card{position:static}.review-page .review-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.review-page .review-header{flex-direction:column;align-items:stretch}.review-page .review-actions,.review-page .review-actions .review-btn{width:100%}.review-page .review-meta-grid,.review-page .review-score-grid{grid-template-columns:1fr}.review-page .review-attachment{flex-direction:column;align-items:flex-start}.review-page .review-attachment .review-btn{width:100%}}html[data-theme=dark] .review-page .review-card,html[data-theme=dark] .review-page .review-field input,html[data-theme=dark] .review-page .review-field textarea{background:var(--color-surface);border-color:var(--color-border)}html[data-theme=dark] .review-page .review-attachment,html[data-theme=dark] .review-page .review-score{background:var(--color-surface-soft)}.student-assignment-page{background:var(--color-background);min-height:100vh;color:var(--color-text);padding:28px 20px 64px}.student-assignment-page .page-shell{width:min(1180px,100%);margin:0 auto}.student-assignment-page .top-navigation{margin-bottom:18px}.student-assignment-page .back-link{color:var(--color-text-muted);font-size:14px;font-weight:600;text-decoration:none}.student-assignment-page .back-link:hover{color:var(--color-primary)}.student-assignment-page .assignment-header{background:var(--color-surface);border:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:30px;margin-bottom:16px;padding:26px;display:flex}.student-assignment-page .assignment-header-main{min-width:0}.student-assignment-page .assignment-header h1{color:var(--color-primary);overflow-wrap:anywhere;margin:10px 0 12px;font-size:clamp(27px,4vw,39px);line-height:1.15}.student-assignment-page .header-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:8px 22px;font-size:14px;display:flex}.student-assignment-page .header-meta strong{color:var(--color-text)}.student-assignment-page .status-badge{letter-spacing:.03em;text-transform:uppercase;align-items:center;padding:5px 9px;font-size:11px;font-weight:700;display:inline-flex}.student-assignment-page .marks-card{text-align:right;flex:none;min-width:130px}.student-assignment-page .marks-card span{color:var(--color-text-muted);font-size:12px;display:block}.student-assignment-page .marks-card strong{color:var(--color-primary);margin-top:5px;font-size:34px;display:block}.student-assignment-page .timeline-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px;display:grid}.student-assignment-page .timeline-card{background:var(--color-surface);border:1px solid var(--color-border);padding:16px}.student-assignment-page .timeline-label{color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px;font-size:11px;display:block}.student-assignment-page .timeline-card strong{color:var(--color-text);font-size:14px}.student-assignment-page .danger-text{color:var(--danger)!important}.student-assignment-page .student-assignment-layout{grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:18px;display:grid}.student-assignment-page .panel,.student-assignment-page .sidebar-panel{background:var(--color-surface);border:1px solid var(--color-border);padding:24px}.student-assignment-page .panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.student-assignment-page .section-label{color:var(--info);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.student-assignment-page .panel-heading h2{color:var(--color-primary);margin:0;font-size:20px}.student-assignment-page .book-card{justify-content:space-between;align-items:center;gap:24px;display:flex}.student-assignment-page .book-info{min-width:0}.student-assignment-page .book-info h3{color:var(--color-primary);overflow-wrap:anywhere;margin:0 0 5px;font-size:20px}.student-assignment-page .book-author,.student-assignment-page .book-publisher{color:var(--color-text-muted);margin:4px 0 0}.student-assignment-page .book-publisher{font-size:13px}.student-assignment-page .book-actions{flex:none}.student-assignment-page .reading-range{margin-top:14px}.student-assignment-page .reading-range span{color:var(--color-text-muted);text-transform:uppercase;font-size:11px;display:block}.student-assignment-page .reading-range strong{color:var(--color-text);margin-top:4px;display:block}.student-assignment-page .instructions{color:var(--color-text);overflow-wrap:anywhere;line-height:1.75}.student-assignment-page .instructions p{margin:0}.student-assignment-page .response-label{color:var(--color-text);margin-bottom:8px;font-weight:600;display:block}.student-assignment-page #assignment-response{resize:vertical;border:1px solid var(--color-border-strong);background:var(--color-surface);box-sizing:border-box;width:100%;min-height:320px;color:var(--color-text);font:inherit;padding:15px;line-height:1.6;display:block}.student-assignment-page #assignment-response:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}.student-assignment-page .response-counter{color:var(--color-text-muted);justify-content:space-between;gap:15px;margin-top:7px;font-size:11px;display:flex}.student-assignment-page .response-footer{justify-content:space-between;align-items:center;gap:20px;margin-top:16px;display:flex}.student-assignment-page .response-footer p{color:var(--color-text-muted);margin:0;font-size:13px}.student-assignment-page .response-actions{flex-shrink:0;gap:9px;display:flex}.student-assignment-page .response-action-form{margin:0}.student-assignment-page .draft-indicator{color:var(--color-text-muted);font-size:12px;font-weight:600}.student-assignment-page .late-warning{color:var(--danger)!important;margin-top:5px!important}.student-assignment-page .submitted-response{background:var(--color-surface-soft);border:1px solid var(--color-border);min-height:70px;color:var(--color-text);overflow-wrap:anywhere;padding:18px;line-height:1.75}.student-assignment-page .submission-meta{color:var(--color-text-muted);justify-content:space-between;gap:15px;margin-top:12px;font-size:12px;display:flex}.student-assignment-page .late-note{color:var(--danger);font-weight:600}.student-assignment-page .graded-note{color:var(--warning);font-weight:600}.student-assignment-page .empty-response-state{background:var(--color-surface-soft);border:1px solid var(--color-border);padding:18px}.student-assignment-page .empty-response-state strong{color:var(--color-text)}.student-assignment-page .empty-response-state p{color:var(--color-text-muted);margin:5px 0 0}.student-assignment-page .attachment-section{border-top:1px solid var(--color-border);margin-top:20px;padding-top:20px}.student-assignment-page #assignment-attachment{box-sizing:border-box;border:1px solid var(--color-border-strong);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;padding:11px 12px;display:block}.student-assignment-page #assignment-attachment:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}.student-assignment-page .attachment-help{color:var(--color-text-muted);margin-top:7px;font-size:12px;line-height:1.5}.student-assignment-page .existing-attachment,.student-assignment-page .submitted-document{border:1px solid var(--color-border);background:var(--color-surface-soft);justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:14px 16px;display:flex}.student-assignment-page .submitted-document{margin-top:12px}.student-assignment-page .existing-attachment>div,.student-assignment-page .submitted-document>div{min-width:0}.student-assignment-page .existing-attachment-label,.student-assignment-page .submitted-document-label{color:var(--color-text-muted);text-transform:uppercase;margin-bottom:4px;font-size:11px;display:block}.student-assignment-page .existing-attachment strong,.student-assignment-page .submitted-document strong{color:var(--color-text);overflow-wrap:anywhere;display:block}.student-assignment-page .existing-attachment small,.student-assignment-page .submitted-document small{color:var(--color-text-muted);margin-top:3px;display:block}.student-assignment-page .remove-attachment{color:var(--danger);cursor:pointer;flex:none;align-items:center;gap:7px;font-size:12px;display:inline-flex}.student-assignment-page .penalty-note{border:1px solid var(--warning-border);background:var(--warning-bg);color:var(--warning);margin:-8px 0 20px;padding:11px 13px;font-size:13px;line-height:1.5}.student-assignment-page .grade-panel{border-top:3px solid var(--warning)}.student-assignment-page .grade-summary{flex-wrap:wrap;gap:12px;margin-bottom:22px;display:flex}.student-assignment-page .score-box{border:1px solid var(--color-border);min-width:130px;padding:16px}.student-assignment-page .score-box span{color:var(--color-text-muted);text-transform:uppercase;font-size:11px;display:block}.student-assignment-page .score-box strong{color:var(--color-primary);margin-top:5px;font-size:27px;display:block}.student-assignment-page .score-box small{color:var(--color-text-muted);font-size:15px}.student-assignment-page .score-status{font-size:18px!important}.student-assignment-page .feedback-block{border-top:1px solid var(--color-border);padding-top:18px}.student-assignment-page .feedback-block h3{color:var(--color-primary);margin:0 0 10px}.student-assignment-page .feedback-text{color:var(--color-text);overflow-wrap:anywhere;margin-bottom:14px;line-height:1.7}.student-assignment-page .feedback-block small{color:var(--color-text-muted)}.student-assignment-page .student-assignment-sidebar{gap:14px;display:grid}.student-assignment-page .sidebar-panel h3{color:var(--color-primary);margin:0 0 16px;font-size:17px}.student-assignment-page .sidebar-description{color:var(--color-text-muted);margin:0 0 14px;line-height:1.6}.student-assignment-page .sidebar-panel dl{margin:0}.student-assignment-page .sidebar-panel dl div{border-top:1px solid var(--color-border);padding:12px 0}.student-assignment-page .sidebar-panel dl div:first-child{border-top:0;padding-top:0}.student-assignment-page .sidebar-panel dt{color:var(--color-text-muted);text-transform:uppercase;font-size:11px}.student-assignment-page .sidebar-panel dd{color:var(--color-text);overflow-wrap:anywhere;margin:4px 0 0;font-weight:600}.student-assignment-page .warning-panel{border-color:var(--danger-border);background:var(--danger-bg)}.student-assignment-page .warning-panel p{color:var(--danger);margin-bottom:0;line-height:1.6}.student-assignment-page .info-panel{border-color:var(--info-border);background:var(--info-bg)}.student-assignment-page .info-panel p{color:var(--info);margin-bottom:0;line-height:1.6}.student-assignment-page .success-panel{border-color:var(--success-border);background:var(--success-bg)}.student-assignment-page .success-panel p{color:var(--success);margin-bottom:0;line-height:1.6}.student-assignment-page .grade-sidebar{border-color:var(--warning-border);background:var(--warning-bg)}.student-assignment-page .grade-sidebar p{color:var(--warning);margin-bottom:0;line-height:1.6}.student-assignment-page .notice-panel{background:var(--color-background)}.student-assignment-page .notice-panel h2{color:var(--color-primary);margin:0 0 8px;font-size:18px}.student-assignment-page .notice-panel p{color:var(--color-text-muted);margin:0;line-height:1.6}.student-assignment-page .btn{min-height:42px;font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;padding:9px 16px;font-weight:600;text-decoration:none;display:inline-flex}.student-assignment-page .btn-primary:hover{background:var(--color-primary-hover)}.student-assignment-page .btn-full{width:100%}.student-assignment-page .alert{border:1px solid;margin-bottom:16px;padding:14px 16px}.student-assignment-page .alert-success{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.student-assignment-page .alert-error{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.student-assignment-page .alert-error ul{margin:8px 0 0;padding-left:20px}.student-assignment-page .availability-note,.student-assignment-page .muted{color:var(--color-text-muted)}@media(max-width:900px){.student-assignment-page .student-assignment-layout{grid-template-columns:1fr}.student-assignment-page .student-assignment-sidebar{grid-row:auto}}@media(max-width:650px){.student-assignment-page{padding:20px 13px 48px}.student-assignment-page .assignment-header{flex-direction:column}.student-assignment-page .marks-card{text-align:left}.student-assignment-page .book-card{flex-direction:column;align-items:flex-start}.student-assignment-page .book-actions,.student-assignment-page .book-actions .btn{width:100%}.student-assignment-page .existing-attachment,.student-assignment-page .submitted-document{flex-direction:column;align-items:flex-start}.student-assignment-page .remove-attachment{width:100%}.student-assignment-page .response-counter{flex-direction:column;gap:3px}.student-assignment-page .response-footer{flex-direction:column;align-items:stretch}.student-assignment-page .response-actions{flex-direction:column}.student-assignment-page .response-action-form,.student-assignment-page .response-actions .btn{width:100%}.student-assignment-page .submission-meta,.student-assignment-page .grade-summary{flex-direction:column}.student-assignment-page .score-box{box-sizing:border-box;width:100%}}@media(prefers-reduced-motion:reduce){.student-assignment-page *,.student-assignment-page :before,.student-assignment-page :after{scroll-behavior:auto!important;transition:none!important}}.student-assignment-page{background:var(--color-background);width:100%;min-width:0;color:var(--color-text)}.student-assignment-page .page-shell{width:min(1180px,100%);min-width:0;margin-inline:auto}.student-assignment-page .student-assignment-layout{gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(255px,290px);align-items:start;display:grid}.student-assignment-page .student-assignment-main,.student-assignment-page .student-assignment-sidebar{min-width:0}.student-assignment-page .student-assignment-main{gap:var(--space-6);display:grid}.student-assignment-page .student-assignment-sidebar{gap:var(--space-4);align-content:start;display:grid}.student-assignment-page .assignment-header,.student-assignment-page .timeline-card,.student-assignment-page .panel,.student-assignment-page .sidebar-panel,.student-assignment-page .marks-card,.student-assignment-page .score-box,.student-assignment-page .submitted-document,.student-assignment-page .existing-attachment{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.student-assignment-page .assignment-header,.student-assignment-page .timeline-card,.student-assignment-page .panel,.student-assignment-page .sidebar-panel{background:var(--color-surface);border-color:var(--color-border)}.student-assignment-page .status-badge,.student-assignment-page .draft-indicator,.student-assignment-page .graded-note,.student-assignment-page .late-note{border-radius:var(--radius-full)}.student-assignment-page .status-available{background:var(--success-bg);color:var(--success)}.student-assignment-page .status-upcoming,.student-assignment-page .status-submitted{background:var(--info-bg);color:var(--info)}.student-assignment-page .status-overdue,.student-assignment-page .status-late{background:var(--danger-bg);color:var(--danger)}.student-assignment-page .status-graded{background:var(--warning-bg);color:var(--warning)}.student-assignment-page .status-draft{background:var(--color-surface-soft);color:var(--color-text-muted)}.student-assignment-page .section-label,.student-assignment-page .back-link:hover{color:var(--color-primary)}.student-assignment-page .assignment-header h1,.student-assignment-page .panel-heading h2,.student-assignment-page .book-info h3,.student-assignment-page .sidebar-panel h3,.student-assignment-page .marks-card strong{color:var(--color-text)}.student-assignment-page #assignment-response:focus,.student-assignment-page input:focus,.student-assignment-page textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #6366f11f}.student-assignment-page .btn{border-radius:var(--radius-md);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.student-assignment-page .btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.student-assignment-page .btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.student-assignment-page .btn-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-primary)}.student-assignment-page .btn-secondary:hover{background:var(--color-surface-soft)}.student-assignment-page .warning-panel{background:var(--danger-bg);border-color:var(--danger-border)}.student-assignment-page .warning-panel p{color:var(--danger)}.student-assignment-page .info-panel{background:var(--info-bg);border-color:var(--info-border)}.student-assignment-page .info-panel p{color:var(--info)}.student-assignment-page .success-panel{background:var(--success-bg);border-color:var(--success-border)}.student-assignment-page .success-panel p{color:var(--success)}.student-assignment-page .grade-sidebar{background:var(--warning-bg);border-color:var(--warning-border)}.student-assignment-page .grade-sidebar p{color:var(--warning)}@media(max-width:980px){.student-assignment-page .student-assignment-layout{gap:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(235px,270px)}}@media(max-width:820px){.student-assignment-page .student-assignment-layout{grid-template-columns:1fr}.student-assignment-page .student-assignment-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.student-assignment-page .grade-sidebar,.student-assignment-page .warning-panel,.student-assignment-page .info-panel,.student-assignment-page .success-panel{min-width:0}}@media(max-width:650px){.student-assignment-page{padding:18px 10px 42px}.student-assignment-page .assignment-header{gap:var(--space-4);flex-direction:column}.student-assignment-page .marks-card{text-align:left;width:100%}.student-assignment-page .timeline-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-assignment-page .student-assignment-sidebar{grid-template-columns:1fr}.student-assignment-page .book-card,.student-assignment-page .existing-attachment,.student-assignment-page .submitted-document,.student-assignment-page .response-footer,.student-assignment-page .grade-summary{flex-direction:column;align-items:stretch}.student-assignment-page .book-actions,.student-assignment-page .response-actions,.student-assignment-page .response-action-form,.student-assignment-page .response-actions .btn,.student-assignment-page .book-actions .btn,.student-assignment-page .score-box{width:100%}}@media(max-width:430px){.student-assignment-page .timeline-grid{grid-template-columns:1fr}.student-assignment-page .response-counter,.student-assignment-page .submission-meta{gap:var(--space-1);flex-direction:column}}html[data-theme=dark] .student-assignment-page,html[data-theme=dark] .student-assignment-page .notice-panel{background:var(--color-background)}html[data-theme=dark] .student-assignment-page .assignment-header,html[data-theme=dark] .student-assignment-page .timeline-card,html[data-theme=dark] .student-assignment-page .panel,html[data-theme=dark] .student-assignment-page .sidebar-panel,html[data-theme=dark] .student-assignment-page #assignment-response,html[data-theme=dark] .student-assignment-page input,html[data-theme=dark] .student-assignment-page textarea{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}html[data-theme=dark] .student-assignment-page .status-available{color:#86efac;background:#15803d2e}html[data-theme=dark] .student-assignment-page .status-upcoming,html[data-theme=dark] .student-assignment-page .status-submitted{color:#7dd3fc;background:#0369a12e}html[data-theme=dark] .student-assignment-page .status-overdue,html[data-theme=dark] .student-assignment-page .status-late{color:#fca5a5;background:#b91c1c29}html[data-theme=dark] .student-assignment-page .status-graded{color:#fcd34d;background:#b453092e}.admin-schools-page{gap:var(--space-5);min-width:0;display:grid}.admin-school-title-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.admin-school-title-row h1{margin:0}.admin-school-filter-card,.admin-school-form-card,.admin-school-detail-card,.admin-school-directory-card{background:var(--color-surface);border-color:var(--color-border);box-shadow:var(--shadow-sm)}.admin-school-filters{align-items:end;gap:var(--space-3);grid-template-columns:minmax(220px,1fr) minmax(160px,220px) auto;display:grid}.admin-school-filter-actions{align-items:center;gap:var(--space-2);padding-bottom:1px;display:flex}.admin-school-section-heading{margin-bottom:var(--space-3)}.admin-school-section-heading h2,.admin-school-section-heading h3,.admin-school-form-heading h2{margin-bottom:var(--space-1);color:var(--color-text)}.admin-school-section-heading p,.admin-school-form-heading p{color:var(--color-text-muted)}.admin-school-form-page{width:min(1040px,100%);margin-inline:auto}.admin-school-form{gap:var(--space-5);display:grid}.admin-school-form-card{gap:var(--space-4);display:grid}.admin-school-form-heading{padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.admin-school-form-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-school-form-grid__wide{grid-column:1/-1}.admin-school-form-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);display:flex}.admin-school-overview-grid{gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:start;display:grid}.admin-school-side-stack{gap:var(--space-4);min-width:0;display:grid}.admin-school-detail-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;display:grid}.admin-school-detail-list>div{min-width:0;padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.admin-school-detail-list>div:nth-child(odd){padding-right:var(--space-4)}.admin-school-detail-list dt{color:var(--color-text-muted);letter-spacing:.035em;text-transform:uppercase;margin-bottom:3px;font-size:.62rem;font-weight:800}.admin-school-detail-list dd{color:var(--color-text);overflow-wrap:anywhere;margin:0;font-size:.72rem}.admin-school-pagination-inner{padding-inline:var(--space-3);padding-bottom:var(--space-3)}.admin-schools-page .directory-person__name>span{color:var(--color-text);font-size:.7rem;font-weight:750}.admin-schools-page .text-danger{color:var(--danger)}@media(max-width:900px){.admin-school-overview-grid{gap:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(235px,280px)}}@media(max-width:760px){.admin-school-filters,.admin-school-overview-grid{grid-template-columns:1fr}.admin-school-filter-actions{width:100%}.admin-school-filter-actions .button{flex:1}.admin-school-detail-list{grid-template-columns:1fr}.admin-school-detail-list>div:nth-child(odd){padding-right:0}}@media(max-width:600px){.admin-school-form-grid{grid-template-columns:1fr}.admin-school-form-grid__wide{grid-column:auto}.admin-school-form-actions{flex-direction:column-reverse;align-items:stretch}.admin-school-form-actions .button,.admin-schools-page .dashboard-heading .actions,.admin-schools-page .dashboard-heading .actions .button{width:100%}}html[data-theme=dark] .admin-school-filter-card,html[data-theme=dark] .admin-school-form-card,html[data-theme=dark] .admin-school-detail-card,html[data-theme=dark] .admin-school-directory-card{background:var(--color-surface);border-color:var(--color-border)}.teacher-dashboard{gap:22px;display:grid}.teacher-dashboard .page-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.teacher-dashboard .page-header h1{margin:4px 0}.teacher-dashboard .page-header p{color:var(--color-text-muted);margin:0;font-size:.62rem}.teacher-dashboard .page-header__actions{flex-wrap:wrap;gap:7px;display:flex}.teacher-dashboard .teacher-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.teacher-dashboard .teacher-stat{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:16px}.teacher-dashboard .teacher-stat span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.52rem;font-weight:700;display:block}.teacher-dashboard .teacher-stat strong{color:var(--color-text);margin:6px 0 3px;font-size:1.35rem;display:block}.teacher-dashboard .teacher-stat small{color:var(--color-text-muted);font-size:.51rem}.teacher-dashboard .teacher-section{gap:12px;display:grid}.teacher-dashboard .section-heading{justify-content:space-between;align-items:center;display:flex}.teacher-dashboard .section-heading h2{margin:3px 0 0;font-size:.88rem}.teacher-dashboard .teacher-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.teacher-dashboard .teacher-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;min-height:190px;padding:15px;transition:border-color .15s,transform .15s;display:flex}.teacher-dashboard .teacher-card:hover{border-color:var(--brand-300);transform:translateY(-1px)}.teacher-dashboard .teacher-card__icon{border-radius:var(--radius-md);background:var(--color-surface-soft);width:32px;height:32px;color:var(--color-primary);justify-content:center;align-items:center;font-size:.68rem;font-weight:850;display:inline-flex}.teacher-dashboard .teacher-card__body{flex:1}.teacher-dashboard .teacher-card h3{margin:13px 0 4px;font-size:.74rem}.teacher-dashboard .teacher-card p{color:var(--color-text-muted);margin:0;font-size:.55rem;line-height:1.6}.teacher-dashboard .teacher-card__link{border-top:1px solid var(--color-border);color:var(--color-primary);justify-content:space-between;align-items:center;margin-top:16px;padding-top:10px;font-size:.54rem;font-weight:750;text-decoration:none;display:flex}.teacher-dashboard .teacher-card__disabled{border-top:1px solid var(--color-border);color:var(--color-text-muted);margin-top:16px;padding-top:10px;font-size:.51rem;font-weight:650}.teacher-dashboard .teacher-workflow{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.teacher-dashboard .workflow-step{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);align-items:flex-start;gap:10px;padding:14px;display:flex}.teacher-dashboard .workflow-step>span{background:var(--color-primary);color:#fff;border-radius:50%;flex:0 0 25px;justify-content:center;align-items:center;width:25px;height:25px;font-size:.52rem;font-weight:800;display:inline-flex}.teacher-dashboard .workflow-step strong{color:var(--color-text);font-size:.58rem;display:block}.teacher-dashboard .workflow-step p{color:var(--color-text-muted);margin:3px 0 0;font-size:.51rem;line-height:1.5}@media(max-width:1000px){.teacher-dashboard .teacher-stats,.teacher-dashboard .teacher-workflow,.teacher-dashboard .teacher-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.teacher-dashboard .page-header{flex-direction:column}.teacher-dashboard .teacher-stats,.teacher-dashboard .teacher-grid,.teacher-dashboard .teacher-workflow{grid-template-columns:1fr}}.learner-dashboard{gap:22px;display:grid}.learner-dashboard .page-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.learner-dashboard .page-header h1{margin:4px 0}.learner-dashboard .page-header p{max-width:680px;color:var(--color-text-muted);margin:0;font-size:.62rem;line-height:1.55}.learner-dashboard .page-header__actions{flex-wrap:wrap;gap:7px;display:flex}.learner-dashboard .learner-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.learner-dashboard .learner-stat{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:16px}.learner-dashboard .learner-stat>span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.51rem;font-weight:750;display:block}.learner-dashboard .learner-stat strong{color:var(--color-text);margin:6px 0 3px;font-size:1.3rem;display:block}.learner-dashboard .learner-stat small{color:var(--color-text-muted);font-size:.5rem}.learner-dashboard .learner-section{gap:12px;display:grid}.learner-dashboard .section-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.learner-dashboard .section-heading h2{margin:3px 0 0;font-size:.88rem}.learner-dashboard .learner-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.learner-dashboard .learner-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;min-height:190px;padding:15px;transition:border-color .15s,transform .15s;display:flex}.learner-dashboard .learner-card:hover{border-color:var(--brand-300);transform:translateY(-1px)}.learner-dashboard .learner-card__icon{border-radius:var(--radius-md);background:var(--color-surface-soft);width:32px;height:32px;color:var(--color-primary);justify-content:center;align-items:center;font-size:.68rem;font-weight:850;display:inline-flex}.learner-dashboard .learner-card__body{flex:1}.learner-dashboard .learner-card h3{margin:13px 0 4px;font-size:.74rem}.learner-dashboard .learner-card p{color:var(--color-text-muted);margin:0;font-size:.55rem;line-height:1.6}.learner-dashboard .learner-card__link{border-top:1px solid var(--color-border);color:var(--color-primary);justify-content:space-between;align-items:center;margin-top:16px;padding-top:10px;font-size:.54rem;font-weight:750;text-decoration:none;display:flex}.learner-dashboard .learner-card__disabled{border-top:1px solid var(--color-border);color:var(--color-text-muted);margin-top:16px;padding-top:10px;font-size:.51rem;font-weight:650}.learner-dashboard .learner-workflow{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.learner-dashboard .workflow-step{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);align-items:flex-start;gap:10px;padding:14px;display:flex}.learner-dashboard .workflow-step>span{background:var(--color-primary);color:#fff;border-radius:50%;flex:0 0 25px;justify-content:center;align-items:center;width:25px;height:25px;font-size:.52rem;font-weight:800;display:inline-flex}.learner-dashboard .workflow-step strong{color:var(--color-text);font-size:.58rem;display:block}.learner-dashboard .workflow-step p{color:var(--color-text-muted);margin:3px 0 0;font-size:.51rem;line-height:1.5}@media(max-width:1000px){.learner-dashboard .learner-stats,.learner-dashboard .learner-workflow,.learner-dashboard .learner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.learner-dashboard .page-header{flex-direction:column}.learner-dashboard .learner-stats,.learner-dashboard .learner-grid,.learner-dashboard .learner-workflow{grid-template-columns:1fr}}.school-context-switcher{align-items:center;gap:4px;width:auto;min-width:0;margin:0;display:inline-flex}.school-context-switcher__label{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.school-context-switcher__select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:clamp(120px,15vw,210px);min-height:32px;color:var(--color-text);padding:4px 24px 4px 7px;font-size:.62rem;font-weight:700}.school-context-switcher__button,.root-school-context__exit{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-soft);min-height:32px;color:var(--color-primary);cursor:pointer;padding:4px 7px;font-size:.6rem;font-weight:800}.school-context-switcher__button:hover,.root-school-context__exit:hover{border-color:var(--brand-300);background:var(--brand-50)}.root-school-context{border:1px solid var(--danger-border);border-radius:var(--radius-md);background:var(--danger-bg);align-items:center;gap:5px;min-width:0;padding:3px 5px;display:inline-flex}.root-school-context__badge{border-radius:var(--radius-xs);background:var(--danger);color:#fff;letter-spacing:.05em;flex:none;padding:2px 4px;font-size:.52rem;font-weight:900}.root-school-context__text{max-width:150px;color:var(--danger);text-overflow:ellipsis;white-space:nowrap;font-size:.6rem;font-weight:800;overflow:hidden}.root-school-context__link{color:var(--danger);font-size:.58rem;font-weight:800;text-decoration:none}.root-school-context__link:hover{text-decoration:underline}.root-school-context__form,.admin-school-root-entry-form{width:auto;margin:0;display:inline-flex}.root-school-context__exit{border-color:var(--danger-border);color:var(--danger);background:0 0}.admin-school-root-entry-form .button{width:auto}@media(max-width:980px){.school-context-switcher__select{width:130px}.school-context-switcher__button{min-width:32px;padding-inline:6px}.root-school-context__text{max-width:90px}}@media(max-width:720px){.dashboard-nav__utilities .school-context-switcher{max-width:118px}.school-context-switcher__select{width:112px;min-height:30px;font-size:.58rem}.root-school-context__link,.root-school-context__text{display:none}.root-school-context{padding-inline:3px}}@media(max-width:430px){.dashboard-nav__utilities .school-context-switcher{max-width:116px}.school-context-switcher__select{width:82px;padding-right:19px}.school-context-switcher__button{min-width:28px;min-height:30px;padding-inline:4px}.root-school-context__exit{padding-inline:5px}}html[data-theme=dark] .school-context-switcher__select,html[data-theme=dark] .school-context-switcher__button{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}html[data-theme=dark] .root-school-context{background:#b91c1c24;border-color:#f8717159}html[data-theme=dark] .root-school-context__text,html[data-theme=dark] .root-school-context__link,html[data-theme=dark] .root-school-context__exit{color:#fca5a5}.school-teachers-page{gap:0;min-width:0;display:grid}.school-teachers-page .teacher-directory-search{width:min(100%,320px);margin:0}.school-teachers-page .teacher-directory-search__field{flex:1;min-width:0}.school-teachers-page .teacher-directory-spacer{width:100%}.school-teachers-page .teacher-directory-spacer--lg{height:14px}.school-teachers-page .teacher-directory-spacer--sm{height:12px}.school-teachers-page .teacher-class-list{flex-wrap:wrap;gap:5px;display:flex}@media(max-width:720px){.school-teachers-page .card>.row-between{align-items:stretch;gap:var(--space-3);flex-direction:column}.school-teachers-page .teacher-directory-search{width:100%}}.teacher-form{gap:var(--space-5);display:grid}.teacher-form__section{gap:var(--space-4);display:grid}.teacher-form__heading{padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.teacher-form__heading h2{margin-bottom:var(--space-1);color:var(--color-text)}.teacher-form__heading p{color:var(--color-text-muted)}.teacher-form__class-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.teacher-form__class-option{align-items:flex-start;gap:var(--space-2);min-width:0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;display:flex}.teacher-form__class-option:hover{border-color:var(--brand-300);background:var(--brand-50)}.teacher-form__class-option input{width:auto;margin-top:2px}.teacher-form__class-option-body{gap:2px;min-width:0;display:grid}.teacher-form__class-option-body strong{color:var(--color-text);font-size:.72rem}.teacher-form__class-option-body small{color:var(--color-text-muted);font-size:.62rem}.teacher-form__actions{justify-content:flex-end;align-items:center;gap:var(--space-2);display:flex}@media(max-width:720px){.teacher-form__class-grid{grid-template-columns:1fr}}@media(max-width:560px){.teacher-form__actions{flex-direction:column-reverse;align-items:stretch}.teacher-form__actions .button{width:100%}}html[data-theme=dark] .teacher-form__class-option{background:var(--color-surface)}html[data-theme=dark] .teacher-form__class-option:hover{background:var(--color-surface-soft)}.school-dashboard,.subscription-page{gap:22px;display:grid}.institution-status{align-items:center;gap:8px;display:flex}.subscription-overview{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);border-left-width:4px;gap:18px;padding:20px;display:grid}.subscription-overview__heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.subscription-overview__heading h2{margin:4px 0}.subscription-overview__heading p{color:var(--color-text-muted);margin:0}.subscription-overview__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.subscription-state-badge{border:1px solid var(--color-border);letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;min-height:28px;padding:5px 10px;font-size:.55rem;font-weight:800;display:inline-flex}.subscription-state--active{border-left-color:#15803d}.subscription-state--active .subscription-state-badge{background:#15803d17;border-color:#15803d47}.subscription-state--trial{border-left-color:#0369a1}.subscription-state--trial .subscription-state-badge{background:#0369a117;border-color:#0369a147}.subscription-state--warning{border-left-color:#b45309}.subscription-state--warning .subscription-state-badge{background:#b4530917;border-color:#b4530947}.subscription-state--expired,.subscription-state--suspended{border-left-color:#b91c1c}.subscription-state--expired .subscription-state-badge,.subscription-state--suspended .subscription-state-badge{background:#b91c1c17;border-color:#b91c1c47}.subscription-metrics,.subscription-capacity-grid,.dashboard-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.dashboard-stat-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.subscription-metric,.subscription-capacity-card,.dashboard-stat{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:6px;padding:14px;display:grid}.subscription-metric>span,.subscription-capacity-card>span,.dashboard-stat>span:last-child{color:var(--color-text-muted);font-size:.52rem}.subscription-metric strong,.subscription-capacity-card strong,.dashboard-stat strong{color:var(--color-text);font-size:.9rem}.subscription-metric small,.subscription-capacity-card small{color:var(--color-text-muted);font-size:.5rem}.subscription-metric progress,.subscription-capacity-card progress{background:var(--color-border);border:0;border-radius:999px;width:100%;height:7px;overflow:hidden}.subscription-metric progress::-webkit-progress-bar{background:var(--color-border);border-radius:999px}.subscription-capacity-card progress::-webkit-progress-bar{background:var(--color-border);border-radius:999px}.subscription-metric progress::-webkit-progress-value{background:var(--color-primary);border-radius:999px}.subscription-capacity-card progress::-webkit-progress-value{background:var(--color-primary);border-radius:999px}.subscription-metric progress::-moz-progress-bar{background:var(--color-primary);border-radius:999px}.subscription-capacity-card progress::-moz-progress-bar{background:var(--color-primary);border-radius:999px}.subscription-feature-strip,.subscription-feature-list{flex-wrap:wrap;gap:7px;display:flex}.subscription-feature-chip{border:1px solid var(--color-border);border-radius:999px;align-items:center;min-height:26px;padding:4px 9px;font-size:.51rem;font-weight:700;display:inline-flex}.subscription-feature-chip--enabled{background:#15803d12;border-color:#15803d3d}.subscription-feature-chip--disabled{color:var(--color-text-muted);background:var(--color-surface-muted)}.subscription-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.subscription-detail-list{gap:0;margin:12px 0 0;display:grid}.subscription-detail-list>div{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(120px,.8fr) minmax(0,1.2fr);gap:16px;padding:9px 0;display:grid}.subscription-detail-list>div:last-child{border-bottom:0}.subscription-detail-list dt{color:var(--color-text-muted);font-size:.52rem}.subscription-detail-list dd{color:var(--color-text);text-align:right;margin:0;font-size:.55rem;font-weight:700}.subscription-resolution{border:1px dashed var(--color-border);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex}.subscription-resolution strong{color:var(--color-text);font-size:.6rem;display:block}.subscription-resolution p{max-width:720px;color:var(--color-text-muted);margin:4px 0 0;font-size:.52rem;line-height:1.55}@media(max-width:1100px){.dashboard-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.subscription-metrics,.subscription-capacity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.subscription-overview__heading,.subscription-resolution{flex-direction:column;align-items:stretch}.subscription-overview__actions{justify-content:flex-start}.subscription-detail-grid,.dashboard-stat-grid{grid-template-columns:1fr}}@media(max-width:560px){.subscription-metrics,.subscription-capacity-grid{grid-template-columns:1fr}.subscription-detail-list>div{grid-template-columns:1fr;gap:3px}.subscription-detail-list dd{text-align:left}}.student-dashboard{gap:22px;display:grid}.student-stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.student-stat{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:15px}.student-stat span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.5rem;font-weight:750;display:block}.student-stat strong{color:var(--color-text);margin:6px 0 3px;font-size:1.15rem;display:block}.student-stat small{color:var(--color-text-muted);font-size:.49rem}.student-section{gap:12px;display:grid}.student-action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.student-action-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;min-height:180px;padding:15px;display:flex}.student-action-card__icon{border-radius:var(--radius-md);background:var(--color-surface-soft);width:32px;height:32px;color:var(--color-primary);justify-content:center;align-items:center;font-size:.68rem;font-weight:850;display:inline-flex}.student-action-card h3{margin:13px 0 4px;font-size:.74rem}.student-action-card p{color:var(--color-text-muted);margin:0;font-size:.55rem;line-height:1.6}.student-action-card__link,.student-action-card__disabled{border-top:1px solid var(--color-border);margin-top:auto;padding-top:10px;font-size:.53rem;font-weight:700}.student-action-card__link{color:var(--color-primary);justify-content:space-between;align-items:center;text-decoration:none;display:flex}.student-action-card__disabled{color:var(--color-text-muted)}.student-class-list{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.student-class-list span{border:1px solid var(--color-border);color:var(--color-text);border-radius:999px;padding:5px 8px;font-size:.5rem;font-weight:650;display:inline-flex}.student-assignment-list{gap:8px;display:grid}.student-assignment-row{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);justify-content:space-between;align-items:center;gap:14px;padding:13px 14px;display:flex}.student-assignment-row strong{color:var(--color-text);font-size:.58rem;display:block}.student-assignment-row>div:first-child>span{color:var(--color-text-muted);margin-top:3px;font-size:.5rem;display:block}.student-assignment-row__meta{justify-content:flex-end;align-items:center;gap:10px;display:flex}.student-assignment-row__meta>span{color:var(--color-text-muted);white-space:nowrap;font-size:.5rem}@media(max-width:1100px){.student-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.student-action-grid{grid-template-columns:1fr}.student-assignment-row{flex-direction:column;align-items:flex-start}.student-assignment-row__meta{justify-content:space-between;width:100%}}@media(max-width:560px){.student-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.admin-subscriptions,.admin-school-subscription,.admin-subscription-record{gap:20px;display:grid}.subscription-admin-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;display:grid}.subscription-admin-summary--compact{grid-template-columns:repeat(4,minmax(0,1fr))}.subscription-admin-stat{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-height:82px;color:inherit;gap:5px;padding:13px;text-decoration:none;display:grid}.subscription-admin-stat:hover{border-color:var(--brand-300)}.subscription-admin-stat span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.49rem;font-weight:750}.subscription-admin-stat strong{color:var(--color-text);font-size:1.12rem}.subscription-admin-filters{grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(130px,1fr)) auto;align-items:end;gap:10px;display:grid}.subscription-admin-filter-actions{align-items:center;gap:6px;display:flex}.table-subtext{color:var(--color-text-muted);margin-top:3px;font-size:.48rem;display:block}.subscription-admin-pagination{margin-top:14px}.subscription-admin-school-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.subscription-admin-school-state{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:5px;padding:15px;display:grid}.subscription-admin-school-state strong{color:var(--color-text);font-size:.72rem}.subscription-admin-school-state p{color:var(--color-text-muted);margin:0;font-size:.51rem;line-height:1.55}.subscription-admin-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.subscription-admin-form{gap:12px;margin-top:12px;display:grid}.subscription-admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.subscription-admin-overrides{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:10px 0}.subscription-admin-overrides summary{cursor:pointer;color:var(--color-primary);font-size:.53rem;font-weight:750}.subscription-admin-overrides[open] summary{margin-bottom:10px}.subscription-admin-lifecycle-buttons{flex-wrap:wrap;gap:6px;margin:13px 0;display:flex}.button-danger{color:#b91c1c;background:#b91c1c14;border-color:#b91c1c59}.button-danger:hover{background:#b91c1c21;border-color:#b91c1c8c}@media(max-width:1200px){.subscription-admin-summary,.subscription-admin-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.subscription-admin-actions-grid,.subscription-admin-school-summary{grid-template-columns:1fr}.subscription-admin-summary,.subscription-admin-summary--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-admin-filters,.subscription-admin-form-grid{grid-template-columns:1fr}}@media(max-width:520px){.subscription-admin-summary,.subscription-admin-summary--compact{grid-template-columns:1fr}}.admin-subscription-plans,.admin-subscription-plan-editor{gap:20px;display:grid}.subscription-plan-filters{grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(150px,1fr)) auto;align-items:end;gap:10px;display:grid}.subscription-plan-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.subscription-plan-features-card{grid-column:1/-1}.subscription-plan-feature-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px;display:grid}.subscription-plan-feature-option{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);cursor:pointer;align-items:flex-start;gap:8px;min-height:68px;padding:11px;display:flex}.subscription-plan-feature-option input{margin-top:3px}.subscription-plan-feature-option span{gap:3px;display:grid}.subscription-plan-feature-option strong{color:var(--color-text);font-size:.55rem}.subscription-plan-feature-option small{color:var(--color-text-muted);font-size:.47rem}.subscription-plan-toggle{color:var(--color-text);align-items:flex-start;gap:8px;padding:10px 0;font-size:.53rem;font-weight:700;display:flex}.subscription-plan-toggle input{margin-top:2px}.subscription-plan-snapshot-notice{border-radius:var(--radius-lg);background:#0369a10f;border:1px solid #0369a140;padding:14px}.subscription-plan-snapshot-notice strong{color:var(--color-text);font-size:.6rem;display:block}.subscription-plan-snapshot-notice p{color:var(--color-text-muted);margin:4px 0 0;font-size:.52rem;line-height:1.6}.table-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;display:flex}.subscription-audit-header{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.subscription-audit-header>div{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:5px;padding:13px;display:grid}.subscription-audit-header span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.48rem;font-weight:750}.subscription-audit-header strong{color:var(--color-text);font-size:.65rem}.subscription-audit-timeline{gap:0;margin-top:12px;display:grid;position:relative}.subscription-audit-event{grid-template-columns:20px minmax(0,1fr);gap:11px;padding-bottom:16px;display:grid;position:relative}.subscription-audit-event:not(:last-child):before{content:"";background:var(--color-border);width:1px;position:absolute;top:13px;bottom:-1px;left:6px}.subscription-audit-event__marker{z-index:1;border:3px solid var(--color-surface);background:var(--color-primary);width:13px;height:13px;box-shadow:0 0 0 1px var(--color-border);border-radius:50%;margin-top:4px;position:relative}.subscription-audit-event__body{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:11px 12px}.subscription-audit-event__heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.subscription-audit-event__heading>div{gap:2px;display:grid}.subscription-audit-event__heading strong{color:var(--color-text);font-size:.56rem}.subscription-audit-event__heading span{color:var(--color-text-muted);font-size:.47rem}.subscription-audit-event__body p{color:var(--color-text-muted);margin:7px 0 0;font-size:.51rem;line-height:1.55}.subscription-audit-event__body small{color:var(--color-text-muted);margin-top:5px;font-size:.47rem;display:block}.badge-neutral{border-color:var(--color-border);background:var(--color-surface-muted);color:var(--color-text-muted)}@media(max-width:1100px){.subscription-plan-feature-grid,.subscription-audit-header,.subscription-plan-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.subscription-plan-form-grid,.subscription-plan-feature-grid,.subscription-audit-header,.subscription-plan-filters{grid-template-columns:1fr}.subscription-plan-features-card{grid-column:auto}.subscription-audit-event__heading{flex-direction:column}}.admin-subscription-accounts,.admin-subscription-account,.admin-subscription-account-create{gap:20px;display:grid}.subscription-account-filters{grid-template-columns:minmax(220px,1.6fr) repeat(2,minmax(150px,1fr)) auto;align-items:end;gap:10px;display:grid}.subscription-group-warning,.subscription-group-context-notice{border-radius:var(--radius-lg);background:#0369a10f;border:1px solid #0369a140;gap:5px;padding:14px;display:grid}.subscription-group-warning strong,.subscription-group-context-notice strong{color:var(--color-text);font-size:.6rem}.subscription-group-warning p,.subscription-group-context-notice p{color:var(--color-text-muted);margin:0;font-size:.52rem;line-height:1.6}.subscription-group-context-notice .button{justify-self:start;margin-top:4px}.subscription-group-create-form{gap:12px;display:grid}.subscription-group-school-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px;display:grid}.subscription-group-school-option{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);cursor:pointer;align-items:flex-start;gap:9px;min-height:88px;padding:12px;display:flex}.subscription-group-school-option:hover{border-color:var(--brand-300)}.subscription-group-school-option input{margin-top:3px}.subscription-group-school-option>span{gap:3px;display:grid}.subscription-group-school-option strong{color:var(--color-text);font-size:.56rem}.subscription-group-school-option small{color:var(--color-text-muted);font-size:.48rem;line-height:1.45}.subscription-group-primary-field{margin-top:14px}.subscription-account-identity-grid,.subscription-account-management-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.subscription-group-limit-warning{border-radius:var(--radius-lg);background:#b4530912;border:1px solid #b453093d;gap:4px;margin-top:12px;padding:12px;display:grid}.subscription-group-limit-warning strong{color:var(--color-text);font-size:.56rem}.subscription-group-limit-warning p{color:var(--color-text-muted);margin:0;font-size:.5rem;line-height:1.55}@media(max-width:1100px){.subscription-group-school-grid,.subscription-account-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.subscription-account-identity-grid,.subscription-account-management-grid,.subscription-group-school-grid,.subscription-account-filters{grid-template-columns:1fr}}.admin-billing-invoices,.admin-billing-invoice,.admin-billing-invoice-create{gap:20px;display:grid}.billing-invoice-filters{grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(150px,1fr)) auto;align-items:end;gap:10px;display:grid}.billing-boundary-notice,.billing-invoice-action-panel{border-radius:var(--radius-lg);background:#0369a10f;border:1px solid #0369a140;justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex}.billing-boundary-notice{gap:5px;display:grid}.billing-boundary-notice strong,.billing-invoice-action-panel strong{color:var(--color-text);font-size:.6rem}.billing-boundary-notice p,.billing-invoice-action-panel p{color:var(--color-text-muted);margin:0;font-size:.52rem;line-height:1.6}.billing-invoice-create-form{gap:12px;display:grid}.billing-invoice-form-grid,.billing-invoice-party-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.billing-invoice-status-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.billing-invoice-status-grid article,.billing-account-summary>div{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:5px;padding:13px;display:grid}.billing-invoice-status-grid article>span,.billing-account-summary span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.48rem;font-weight:750}.billing-invoice-status-grid article>strong,.billing-account-summary strong{color:var(--color-text);font-size:.68rem}.billing-invoice-issue-form{align-items:end;gap:8px;display:flex}.billing-invoice-issue-form .form-field{min-width:170px}.billing-invoice-totals{justify-content:flex-end;padding-top:14px;display:flex}.billing-invoice-totals dl{gap:0;width:min(100%,390px);margin:0;display:grid}.billing-invoice-totals dl>div{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:20px;padding:8px 0;display:flex}.billing-invoice-totals dt{color:var(--color-text-muted);font-size:.51rem}.billing-invoice-totals dd{color:var(--color-text);margin:0;font-size:.54rem;font-weight:750}.billing-invoice-totals .billing-invoice-total-row,.billing-invoice-totals .billing-invoice-balance-row{padding:11px 0}.billing-invoice-totals .billing-invoice-total-row dt,.billing-invoice-totals .billing-invoice-total-row dd,.billing-invoice-totals .billing-invoice-balance-row dt,.billing-invoice-totals .billing-invoice-balance-row dd{font-size:.61rem;font-weight:800}.billing-invoice-notes{white-space:pre-line;color:var(--color-text-muted);margin:12px 0 0;font-size:.52rem;line-height:1.65}.billing-invoice-danger-zone{border-radius:var(--radius-lg);background:#b91c1c0d;border:1px solid #b91c1c47;justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex}.billing-invoice-danger-zone>div:first-child{gap:5px;display:grid}.billing-invoice-danger-zone strong{color:var(--color-text);font-size:.6rem}.billing-invoice-danger-zone p{color:var(--color-text-muted);margin:0;font-size:.51rem;line-height:1.55}.billing-invoice-danger-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.billing-account-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0;display:grid}.billing-print-body{color:#18181b;background:#f4f4f5;margin:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.billing-print-sheet{background:#fff;border:1px solid #e4e4e7;width:min(100% - 40px,900px);margin:28px auto;padding:42px}.billing-print-header,.billing-print-parties,.billing-print-meta{justify-content:space-between;gap:24px;display:flex}.billing-print-header{border-bottom:2px solid #18181b;align-items:flex-start;padding-bottom:24px}.billing-print-brand{letter-spacing:-.02em;font-size:1.3rem;font-weight:850;display:block}.billing-print-header p,.billing-print-parties p,.billing-print-footer p,.billing-print-notes p{color:#52525b;margin:5px 0 0;font-size:.82rem;line-height:1.55}.billing-print-heading{text-align:right;gap:4px;display:grid}.billing-print-heading span,.billing-print-label,.billing-print-meta span{color:#71717a;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:750}.billing-print-heading strong{font-size:1.1rem}.billing-print-meta{border-top:1px solid #e4e4e7;border-bottom:1px solid #e4e4e7;margin:24px 0;padding:14px 0}.billing-print-meta>div{gap:4px;display:grid}.billing-print-meta strong{font-size:.84rem}.billing-print-parties{margin:28px 0}.billing-print-parties article{width:48%}.billing-print-parties strong{margin-top:7px;font-size:.95rem;display:block}.billing-print-items table{border-collapse:collapse;width:100%;font-size:.78rem}.billing-print-items th,.billing-print-items td{text-align:left;border-bottom:1px solid #e4e4e7;padding:10px 8px}.billing-print-items th{color:#52525b;text-transform:uppercase;letter-spacing:.04em;font-size:.67rem}.billing-print-summary{justify-content:flex-end;margin-top:22px;display:flex}.billing-print-summary dl{width:min(100%,350px);margin:0}.billing-print-summary dl>div{border-bottom:1px solid #e4e4e7;justify-content:space-between;gap:20px;padding:7px 0;display:flex}.billing-print-summary dt,.billing-print-summary dd{margin:0;font-size:.8rem}.billing-print-summary dd{font-weight:750}.billing-print-total,.billing-print-balance{font-weight:850;padding:11px 0!important}.billing-print-notes{border-top:1px solid #e4e4e7;margin-top:30px;padding-top:18px}.billing-print-footer{border-top:1px solid #e4e4e7;justify-content:space-between;gap:20px;margin-top:42px;padding-top:16px;display:flex}.billing-print-footer p{font-size:.7rem}@media(max-width:1100px){.billing-invoice-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.billing-invoice-form-grid,.billing-invoice-party-grid,.billing-invoice-status-grid,.billing-account-summary,.billing-invoice-filters{grid-template-columns:1fr}.billing-invoice-action-panel,.billing-invoice-danger-zone,.billing-invoice-issue-form{flex-direction:column;align-items:stretch}.billing-print-sheet{border:0;width:100%;margin:0;padding:24px}.billing-print-header,.billing-print-parties,.billing-print-meta,.billing-print-footer{flex-direction:column}.billing-print-heading{text-align:left}.billing-print-parties article{width:100%}}@media print{.billing-print-body{background:#fff}.billing-print-sheet{border:0;width:100%;margin:0;padding:0}.billing-print-footer,.billing-print-items tr,.billing-print-summary{break-inside:avoid}}.admin-billing-payments,.admin-billing-payment,.admin-billing-receipt{gap:20px;display:grid}.billing-payment-filters{grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(145px,1fr)) repeat(2,minmax(135px,.85fr)) auto;align-items:end;gap:10px;display:grid}.billing-payment-entry-form{grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:10px;margin-top:12px;display:grid}.billing-payment-entry-form__notes{grid-column:1/-2}.billing-payment-entry-form__action{justify-content:flex-end;align-items:end;min-height:100%;display:flex}.billing-payment-status-grid,.billing-receipt-status-grid,.billing-payment-reconciliation-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.billing-payment-status-grid article,.billing-receipt-status-grid article,.billing-payment-reconciliation-grid>div{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:5px;padding:13px;display:grid}.billing-payment-status-grid article>span,.billing-receipt-status-grid article>span,.billing-payment-reconciliation-grid>div>span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.48rem;font-weight:750}.billing-payment-status-grid article>strong,.billing-receipt-status-grid article>strong,.billing-payment-reconciliation-grid>div>strong{color:var(--color-text);font-size:.68rem}.billing-payment-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.billing-payment-verification-panel{border-radius:var(--radius-lg);background:#0369a10f;border:1px solid #0369a140;justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex}.billing-payment-verification-panel>div:first-child{gap:5px;display:grid}.billing-payment-verification-panel strong{color:var(--color-text);font-size:.6rem}.billing-payment-verification-panel p{color:var(--color-text-muted);margin:0;font-size:.51rem;line-height:1.6}.billing-payment-lifecycle-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.billing-receipt-void-notice{border-radius:var(--radius-lg);background:#b91c1c0f;border:1px solid #b91c1c4d;gap:5px;padding:13px;display:grid}.billing-receipt-void-notice strong{color:var(--color-text);font-size:.6rem}.billing-receipt-void-notice p{color:var(--color-text-muted);margin:0;font-size:.51rem;line-height:1.55}.billing-account-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px;display:grid}.billing-account-activity-grid>div{min-width:0}.billing-currency-stack{gap:2px;display:grid}.billing-receipt-print-sheet{background:#fff;border:1px solid #e4e4e7;width:min(100% - 40px,760px);margin:28px auto;padding:42px}.billing-receipt-print-void{color:#991b1b;text-align:center;letter-spacing:.12em;border:2px solid #991b1b;margin:22px 0 0;padding:11px 14px;font-size:.78rem;font-weight:850}.billing-receipt-print-amount{text-align:center;border-top:1px solid #e4e4e7;border-bottom:1px solid #e4e4e7;gap:6px;margin:26px 0;padding:22px;display:grid}.billing-receipt-print-amount span{color:#71717a;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:750}.billing-receipt-print-amount strong{color:#18181b;letter-spacing:-.02em;font-size:1.65rem}.billing-receipt-print-details{margin-top:28px}.billing-receipt-print-details dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:0;display:grid}.billing-receipt-print-details dl>div{border-bottom:1px solid #e4e4e7;justify-content:space-between;gap:18px;padding:10px 0;display:flex}.billing-receipt-print-details dt{color:#71717a;font-size:.72rem}.billing-receipt-print-details dd{color:#18181b;text-align:right;margin:0;font-size:.76rem;font-weight:700}@media(max-width:1180px){.billing-payment-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.billing-payment-entry-form{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-payment-entry-form__notes{grid-column:1/-1}.billing-payment-entry-form__action{justify-content:flex-start}}@media(max-width:800px){.billing-payment-filters,.billing-payment-entry-form,.billing-payment-status-grid,.billing-receipt-status-grid,.billing-payment-reconciliation-grid,.billing-payment-detail-grid,.billing-account-activity-grid{grid-template-columns:1fr}.billing-payment-entry-form__notes{grid-column:auto}.billing-payment-verification-panel{flex-direction:column;align-items:stretch}.billing-receipt-print-sheet{border:0;width:100%;margin:0;padding:24px}.billing-receipt-print-details dl{grid-template-columns:1fr}}@media print{.billing-receipt-print-sheet{border:0;width:100%;margin:0;padding:0}.billing-receipt-print-void,.billing-receipt-print-amount,.billing-receipt-print-details dl>div{break-inside:avoid}}.billing-orchestration-panel{border-radius:var(--radius-lg);background:#0369a10f;border:1px solid #0369a140;justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex}.billing-orchestration-panel__content{gap:5px;display:grid}.billing-orchestration-panel__content strong{color:var(--color-text);font-size:.62rem}.billing-orchestration-panel__content p{max-width:760px;color:var(--color-text-muted);margin:0;font-size:.51rem;line-height:1.6}.billing-orchestration-panel__content small{color:var(--color-text-muted);font-size:.47rem}.billing-orchestration-summary{grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px;min-width:min(100%,520px);display:grid}.billing-orchestration-summary>div{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);gap:3px;padding:9px;display:grid}.billing-orchestration-summary span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.45rem;font-weight:750}.billing-orchestration-summary strong,.billing-orchestration-summary a{color:var(--color-text);font-size:.5rem;font-weight:780}.billing-payment-fulfilment-lock{border-radius:var(--radius-lg);background:#b453090f;border:1px solid #b4530947;justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex}.billing-payment-fulfilment-lock>div{gap:5px;display:grid}.billing-payment-fulfilment-lock strong{color:var(--color-text);font-size:.6rem}.billing-payment-fulfilment-lock p{max-width:780px;color:var(--color-text-muted);margin:0;font-size:.51rem;line-height:1.6}.billing-payment-orchestration-strip{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.billing-payment-orchestration-strip>span:first-child{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.47rem;font-weight:750}.billing-payment-orchestration-strip strong{color:var(--color-text);font-size:.51rem}.billing-payment-orchestration-strip span,.billing-payment-orchestration-strip a{font-size:.49rem}@media(max-width:1000px){.billing-orchestration-panel{flex-direction:column;align-items:stretch}.billing-orchestration-summary{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}}@media(max-width:800px){.billing-orchestration-summary{grid-template-columns:1fr}.billing-payment-fulfilment-lock{flex-direction:column;align-items:stretch}}.school-billing-page{gap:20px;display:grid}.school-billing-readonly-notice,.school-billing-group-notice,.school-billing-void-notice{border-radius:var(--radius-lg);background:#0369a10f;border:1px solid #0369a13d;gap:5px;padding:14px;display:grid}.school-billing-group-notice{background:#7c3aed0f;border-color:#7c3aed38}.school-billing-void-notice{background:#b91c1c0f;border-color:#b91c1c47}.school-billing-readonly-notice strong,.school-billing-group-notice strong,.school-billing-void-notice strong{color:var(--color-text);font-size:.6rem}.school-billing-readonly-notice p,.school-billing-group-notice p,.school-billing-void-notice p{color:var(--color-text-muted);margin:0;font-size:.51rem;line-height:1.62}.school-billing-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;display:grid}.school-billing-summary-grid--compact{grid-template-columns:repeat(4,minmax(0,1fr))}.school-billing-summary-grid article,.school-billing-document-status>div{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:5px;padding:13px;display:grid}.school-billing-summary-grid article>span,.school-billing-document-status>div>span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.47rem;font-weight:760}.school-billing-summary-grid article>strong,.school-billing-document-status>div>strong{color:var(--color-text);font-size:.66rem;line-height:1.35}.school-billing-summary-grid article>small{color:var(--color-text-muted);font-size:.47rem}.school-billing-financial-grid,.school-billing-detail-grid,.school-billing-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.school-billing-currency-list{gap:0;margin-top:12px;display:grid}.school-billing-currency-list>div{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;padding:9px 0;display:flex}.school-billing-currency-list span{color:var(--color-text-muted);font-size:.49rem;font-weight:740}.school-billing-currency-list strong{color:var(--color-text);font-size:.58rem}.school-billing-action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.school-billing-action-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:6px;padding:15px;text-decoration:none;display:grid}.school-billing-action-card:hover{border-color:var(--brand-300)}.school-billing-action-card>strong{color:var(--color-text);font-size:.68rem}.school-billing-action-card>p{color:var(--color-text-muted);margin:0;font-size:.5rem;line-height:1.58}.school-billing-action-card>small{color:var(--color-text-muted);font-size:.47rem;font-weight:720}.school-billing-filter-form{grid-template-columns:minmax(220px,1.6fr) minmax(170px,1fr) auto;align-items:end;gap:10px;display:grid}.school-billing-filter-form--wide{grid-template-columns:minmax(220px,1.6fr) repeat(2,minmax(160px,1fr)) auto}.school-billing-filter-actions{align-items:center;gap:6px;display:flex}.school-billing-document-status{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.school-billing-document-status--nested{margin-top:12px}.school-billing-totals{justify-content:flex-end;padding-top:14px;display:flex}.school-billing-totals dl{width:min(100%,390px);margin:0;display:grid}.school-billing-totals dl>div{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:20px;padding:8px 0;display:flex}.school-billing-totals dt{color:var(--color-text-muted);font-size:.51rem}.school-billing-totals dd{color:var(--color-text);margin:0;font-size:.54rem;font-weight:750}.school-billing-totals__strong dt,.school-billing-totals__strong dd{font-size:.61rem;font-weight:820}.school-billing-notes{white-space:pre-line;color:var(--color-text-muted);margin:12px 0 0;font-size:.52rem;line-height:1.65}@media(max-width:1100px){.school-billing-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.school-billing-summary-grid--compact,.school-billing-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.school-billing-summary-grid,.school-billing-summary-grid--compact,.school-billing-financial-grid,.school-billing-detail-grid,.school-billing-activity-grid,.school-billing-action-grid,.school-billing-filter-form,.school-billing-filter-form--wide,.school-billing-document-status{grid-template-columns:1fr}.school-billing-filter-actions{justify-content:flex-start}}.school-payment-checkout{gap:20px;display:grid}.payment-security-banner{border-radius:var(--radius-lg);background:#0369a10f;border:1px solid #0369a142;gap:5px;padding:14px;display:grid}.payment-security-banner strong{color:var(--color-text);font-size:.62rem}.payment-security-banner p{color:var(--color-text-muted);margin:0;font-size:.51rem;line-height:1.65}.school-payment-checkout-grid{grid-template-columns:minmax(260px,.8fr) minmax(0,1.7fr);gap:12px;display:grid}.secure-payment-form{gap:16px;margin-top:12px;display:grid}.payment-method-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.payment-method-option{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);cursor:pointer;gap:5px;min-height:130px;padding:14px;display:grid;position:relative}.payment-method-option:has(input:checked){border-color:var(--brand-500);box-shadow:0 0 0 2px #0369a117}.payment-method-option--disabled{opacity:.56;cursor:not-allowed}.payment-method-option input{width:auto;margin:0 0 5px}.payment-method-option__title{color:var(--color-text);font-size:.64rem;font-weight:820}.payment-method-option small,.payment-method-option__state,.payment-card-brands{color:var(--color-text-muted);font-size:.47rem;line-height:1.5}.payment-method-option__state{margin-top:auto;font-weight:760}.payment-card-brands{letter-spacing:.02em;font-weight:780}.secure-payment-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.secure-payment-fields .form-label{color:var(--color-text);margin-bottom:6px;font-size:.5rem;font-weight:720;display:block}.payment-locked-amount{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-soft);min-height:38px;color:var(--color-text);padding:9px 10px;font-size:.68rem;display:block}.secure-payment-checklist{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.secure-payment-checklist>div{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-soft);gap:3px;padding:10px;display:grid}.secure-payment-checklist strong{color:var(--color-text);font-size:.5rem}.secure-payment-checklist span{color:var(--color-text-muted);font-size:.45rem;line-height:1.5}.payment-method-unavailable,.payment-pending-guidance,.payment-success-panel{border-radius:var(--radius-lg);color:var(--color-text);background:#b453090f;border:1px solid #b453093d;gap:5px;padding:12px;font-size:.51rem;display:grid}.payment-pending-guidance{background:#0369a10f;border-color:#0369a13d}.payment-success-panel{background:#16a34a0f;border-color:#16a34a3d}.payment-method-unavailable p,.payment-pending-guidance p,.payment-success-panel p{color:var(--color-text-muted);margin:0;line-height:1.6}.payment-status-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:15px;width:min(100%,720px);padding:18px;display:grid}.payment-status-card__state{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:14px;padding-bottom:12px;display:flex}.payment-status-card__state span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.5rem}.payment-status-card__state strong{color:var(--color-text);font-size:.72rem}@media(max-width:1000px){.school-payment-checkout-grid,.payment-method-grid,.secure-payment-fields,.secure-payment-checklist{grid-template-columns:1fr}}.visually-hidden{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.payment-page-header{border-bottom:1px solid var(--color-border);align-items:flex-end;padding-bottom:16px}.payment-page-header>div:first-child{max-width:760px}.payment-title-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.payment-title-line h1{margin-bottom:0}.payment-record-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px;margin-bottom:0;display:flex}.payment-record-meta code,.payment-reference{color:var(--slate-700);overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem}.payment-overview{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.payment-overview-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-height:92px;color:var(--color-text);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);grid-template-columns:4px minmax(0,1fr) auto;align-items:center;gap:11px;padding:14px;text-decoration:none;display:grid;position:relative;overflow:hidden}.payment-overview-card:hover{color:var(--color-text);border-color:var(--brand-300);box-shadow:var(--shadow-md);transform:translateY(-1px)}.payment-overview-card:focus-visible{outline-offset:2px;outline:3px solid #4f46e538}.payment-overview-card.is-active{border-color:var(--brand-400);box-shadow:0 0 0 2px #4f46e514}.payment-overview-card__indicator{border-radius:var(--radius-full);background:var(--slate-300);align-self:stretch;width:4px;min-height:46px}.payment-overview-card--warning .payment-overview-card__indicator{background:var(--warning)}.payment-overview-card--success .payment-overview-card__indicator{background:var(--success)}.payment-overview-card--danger .payment-overview-card__indicator{background:var(--danger)}.payment-overview-card__copy{gap:4px;min-width:0;display:grid}.payment-overview-card__title{color:var(--color-text-muted);letter-spacing:.025em;text-transform:uppercase;font-size:.6rem;font-weight:780}.payment-overview-card__copy small{font-size:.53rem;line-height:1.35}.payment-overview-card>strong{color:var(--color-text);letter-spacing:-.035em;font-size:1.3rem}.payment-filter-panel,.payment-ledger{padding:0;overflow:hidden}.payment-section-heading{border-bottom:1px solid var(--color-border);background:linear-gradient(180deg,var(--color-surface),var(--color-surface-soft));justify-content:space-between;align-items:flex-start;gap:18px;padding:16px 18px;display:flex}.payment-section-heading--compact{align-items:center}.payment-section-heading h2{margin-bottom:3px;font-size:.96rem}.payment-section-heading p{margin:0;font-size:.62rem}.payment-filter-state,.payment-record-count{border:1px solid var(--brand-200);border-radius:var(--radius-full);background:var(--brand-50);color:var(--brand-700);flex:none;padding:5px 8px;font-size:.55rem;font-weight:780}.payment-filter-panel .billing-payment-filters{padding:16px 18px 18px}.payment-ledger .table-wrapper{box-shadow:none;border:0;border-radius:0}.payment-ledger-table{border-collapse:separate;border-spacing:0;width:100%}.payment-ledger-table thead th{z-index:2;border-bottom:1px solid var(--color-border-strong);background:var(--color-surface-soft);color:var(--slate-600);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;padding:10px 12px;font-size:.52rem;font-weight:800;position:sticky;top:0}.payment-ledger-table tbody td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:12px}.payment-ledger-table tbody tr:last-child td{border-bottom:0}.payment-ledger-row{transition:background var(--transition-fast)}.payment-ledger-row:hover{background:#4f46e506}.payment-method-chip{border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-surface-soft);min-height:23px;color:var(--color-text);white-space:nowrap;align-items:center;padding:3px 7px;font-size:.57rem;font-weight:760;display:inline-flex}.payment-reference{border:1px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-surface-soft);max-width:180px;padding:2px 5px;display:inline-block}.payment-amount-cell{text-align:right;white-space:nowrap}.payment-amount{font-variant-numeric:tabular-nums}.payment-date{white-space:nowrap;gap:2px;font-size:.62rem;display:grid}.payment-date small{font-size:.52rem}.payment-row-action{text-align:right}.payment-ledger .subscription-admin-pagination{border-top:1px solid var(--color-border);margin:0;padding:14px 18px}.payment-status-hero .payment-metric{min-height:116px;box-shadow:var(--shadow-sm);gap:7px;padding:16px;position:relative;overflow:hidden}.payment-status-hero .payment-metric:before{content:"";background:var(--slate-300);width:4px;position:absolute;inset:0 auto 0 0}.payment-status-hero .payment-metric--success:before{background:var(--success)}.payment-status-hero .payment-metric--warning:before{background:var(--warning)}.payment-status-hero .payment-metric--danger:before{background:var(--danger)}.payment-status-hero .payment-metric--amount strong{font-variant-numeric:tabular-nums;font-size:.92rem}.payment-status-hero .payment-metric small{margin-top:auto;font-size:.53rem;line-height:1.4}.payment-security-banner{border-left:4px solid var(--info);box-shadow:var(--shadow-sm);padding:16px 16px 16px 18px;position:relative;overflow:hidden}.payment-security-banner:after{content:"Secure checkout";color:#0369a129;letter-spacing:.08em;text-transform:uppercase;font-size:.55rem;font-weight:850;position:absolute;top:10px;right:12px}.school-payment-checkout-grid>.card{box-shadow:var(--shadow-sm)}.payment-method-option{box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);overflow:hidden}.payment-method-option:not(.payment-method-option--disabled):hover{border-color:var(--brand-300);box-shadow:var(--shadow-md);transform:translateY(-1px)}.payment-method-option:focus-within{outline-offset:2px;outline:3px solid #4f46e52e}.payment-method-option:has(input:checked){border-color:var(--brand-500);background:linear-gradient(180deg,var(--color-surface),#6366f10e);box-shadow:0 0 0 2px #4f46e51a}.payment-method-option input[type=radio]{accent-color:var(--brand-600)}.payment-method-option--disabled{filter:grayscale(.15)}.secure-payment-fields{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-soft);padding:14px}.secure-payment-checklist>div{border-left:3px solid var(--success)}.secure-payment-form>.button,.secure-payment-form button[type=submit]{min-height:42px}.payment-status-card{box-shadow:var(--shadow-md)}.payment-action-panel{border-left:4px solid var(--info);box-shadow:var(--shadow-sm)}.payment-action-panel--danger{border-color:#b91c1c40;border-left:4px solid var(--danger);background:var(--danger-bg);align-items:flex-start}.payment-action-form{gap:8px;min-width:220px;display:grid}.payment-action-form input[type=text]{min-width:220px}.payment-verification-check{max-width:280px;color:var(--color-text-muted);align-items:flex-start;gap:7px;font-size:.53rem;line-height:1.45;display:flex}.payment-verification-check input{flex:none;width:auto;margin-top:2px}.billing-payment-lifecycle-actions--stacked{grid-template-columns:repeat(2,minmax(220px,1fr));align-items:start;width:min(100%,620px);display:grid}.payment-correction-form{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid #b91c1c2e;gap:7px;padding:11px;display:grid}.payment-correction-form label{color:var(--color-text);font-size:.55rem;font-weight:760}.payment-correction-form textarea{resize:vertical;min-height:58px}.payment-correction-form .button{justify-self:start}html[data-theme=dark] .payment-record-meta code,html[data-theme=dark] .payment-reference{color:var(--slate-200)}html[data-theme=dark] .payment-filter-state,html[data-theme=dark] .payment-record-count{color:var(--brand-200);background:#4f46e529;border-color:#818cf859}html[data-theme=dark] .payment-action-panel--danger{background:#b91c1c14}@media(max-width:1180px){.payment-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.payment-page-header{align-items:flex-start}.payment-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-payment-lifecycle-actions--stacked{grid-template-columns:1fr;width:100%}}@media(max-width:1000px)and (min-width:681px){.payment-method-grid,.secure-payment-checklist,.secure-payment-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.payment-overview{grid-template-columns:1fr}.payment-overview-card{min-height:78px}.payment-section-heading{flex-direction:column;align-items:flex-start;padding:14px}.payment-filter-panel .billing-payment-filters{padding:14px}.payment-ledger .table-wrapper{background:var(--color-surface-soft);padding:10px;overflow:visible}.payment-ledger-table,.payment-ledger-table tbody{display:block}.payment-ledger-table thead{display:none}.payment-ledger-row{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);margin-bottom:10px;padding:8px 12px;display:grid}.payment-ledger-row:last-child{margin-bottom:0}.payment-ledger-table .payment-ledger-row td{border-bottom:1px solid var(--color-border);text-align:right;justify-content:space-between;align-items:center;gap:14px;min-width:0;padding:9px 0;display:flex}.payment-ledger-table .payment-ledger-row td:before{content:attr(data-label);color:var(--color-text-muted);letter-spacing:.035em;text-align:left;text-transform:uppercase;flex:0 0 86px;font-size:.52rem;font-weight:780}.payment-ledger-table .payment-ledger-row td:last-child{border-bottom:0}.payment-reference{max-width:190px}.payment-date{justify-items:end}.payment-row-action .button{width:auto}.payment-action-form,.payment-action-form input[type=text]{width:100%;min-width:0}}@media(prefers-reduced-motion:reduce){.payment-overview-card,.payment-ledger-row,.payment-method-option{transition:none}.payment-overview-card:hover,.payment-method-option:not(.payment-method-option--disabled):hover{transform:none}}.login-page{isolation:isolate;background:radial-gradient(circle at 12% 8%,#6366f121,#0000 30%),radial-gradient(circle at 92% 92%,#7c3aed17,#0000 32%),linear-gradient(145deg,#f8fafc,#f3f5fb);place-items:center;min-height:100dvh;padding:clamp(18px,4vw,48px);display:grid;position:relative;overflow:hidden}.login-page:before,.login-page:after{z-index:-1;content:"";filter:blur(1px);pointer-events:none;border-radius:999px;position:absolute}.login-page:before{border:1px solid #6366f11c;width:340px;height:340px;top:-150px;right:-110px}.login-page:after{border:1px solid #7c3aed17;width:420px;height:420px;bottom:-210px;left:-130px}.login-frame{background:#fff;border:1px solid #94a3b833;border-radius:18px;grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr);width:min(100%,1040px);min-height:650px;display:grid;overflow:hidden;box-shadow:0 30px 80px #0f172a1f,0 8px 24px #0f172a0f}.login-brand{isolation:isolate;color:#fff;background:linear-gradient(150deg,#312e81fa,#4338caf5 58%,#6d28d9f0);flex-direction:column;padding:clamp(30px,5vw,58px);display:flex;position:relative;overflow:hidden}.login-brand:before{z-index:-1;content:"";opacity:.34;background-image:linear-gradient(#ffffff0f 1px,#0000 1px),linear-gradient(90deg,#ffffff0f 1px,#0000 1px);background-size:34px 34px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(to bottom right,#000,#0000 72%);mask-image:linear-gradient(to bottom right,#000,#0000 72%)}.login-brand:after{z-index:-1;content:"";border:80px solid #ffffff0e;border-radius:50%;width:390px;height:390px;position:absolute;bottom:-150px;right:-130px}.login-brand__identity{color:#fff;align-items:center;gap:12px;width:fit-content;text-decoration:none;display:inline-flex}.login-brand__identity:hover{color:#fff}.login-brand__identity:focus-visible{outline-offset:5px;border-radius:8px;outline:3px solid #fff6}.login-brand__mark{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff21;border:1px solid #ffffff3d;border-radius:11px;flex:0 0 42px;place-items:center;width:42px;height:42px;display:grid;box-shadow:inset 0 1px #ffffff29}.login-brand__mark svg{stroke:currentColor;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;width:25px;height:25px}.login-brand__name{color:#fff;letter-spacing:-.02em;gap:1px;font-size:1.08rem;font-weight:800;display:grid}.login-brand__name small{color:#ffffffa8;letter-spacing:.02em;font-size:.64rem;font-weight:600}.login-brand__content{width:min(100%,455px);margin:auto 0;padding:56px 0 46px}.login-brand__eyebrow,.login-card__eyebrow{text-transform:uppercase;letter-spacing:.13em;align-items:center;gap:8px;font-size:.67rem;font-weight:800;display:inline-flex}.login-brand__eyebrow{color:#ffffffb8}.login-brand__eyebrow:before{content:"";background:#ffffff80;width:24px;height:1px}.login-brand h1{color:#fff;letter-spacing:-.045em;max-width:440px;margin:16px 0;font-size:clamp(2rem,4vw,2.85rem);line-height:1.08}.login-brand__content>p{color:#ffffffb8;max-width:420px;margin:0;font-size:.86rem;line-height:1.7}.login-brand__features{gap:13px;margin-top:34px;display:grid}.login-brand__feature{align-items:center;gap:12px;display:flex}.login-brand__feature>span{background:#ffffff17;border:1px solid #ffffff2b;border-radius:9px;flex:0 0 34px;place-items:center;width:34px;height:34px;display:grid}.login-brand__feature svg{stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.login-brand__feature div{gap:2px;display:grid}.login-brand__feature strong{color:#fff;font-size:.75rem;font-weight:750}.login-brand__feature small{color:#ffffff9c;font-size:.66rem}.login-brand__footer{color:#ffffff94;margin:0;font-size:.64rem}.login-panel{background:#fffffffa;place-items:center;padding:clamp(28px,5vw,60px);display:grid}.login-card{width:min(100%,390px)}.login-card__header{margin-bottom:25px}.login-card__eyebrow{color:var(--brand-600);margin-bottom:9px}.login-card__header h2{color:var(--slate-900);letter-spacing:-.035em;margin-bottom:8px;font-size:clamp(1.55rem,3vw,1.85rem);line-height:1.15}.login-card__header p{color:var(--slate-500);margin:0;font-size:.76rem;line-height:1.55}.login-alert{border:1px solid;border-radius:8px;align-items:flex-start;gap:9px;margin-bottom:18px;padding:10px 11px;font-size:.7rem;font-weight:600;line-height:1.45;display:flex}.login-alert--success{border-color:var(--success-border);color:var(--success);background:var(--success-bg)}.login-alert--error{border-color:var(--danger-border);color:var(--danger);background:var(--danger-bg)}.login-alert__icon{flex:0 0 18px;place-items:center;width:18px;height:18px;display:grid}.login-alert__icon svg{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.login-form{width:100%}.login-field{margin-bottom:16px}.login-field>label,.login-field__heading label{color:var(--slate-700);margin:0 0 6px;font-size:.7rem;font-weight:750;line-height:1.3;display:block}.login-field__heading{justify-content:space-between;align-items:baseline;gap:14px;display:flex}.login-field__heading a{color:var(--brand-600);font-size:.67rem;font-weight:700;text-decoration:none}.login-field__heading a:hover{color:var(--brand-700);text-underline-offset:3px;text-decoration:underline}.login-field__heading a:focus-visible{outline-offset:3px;border-radius:3px;outline:3px solid #6366f129}.login-input{position:relative}.login-input__icon{z-index:1;width:18px;height:18px;color:var(--slate-400);pointer-events:none;place-items:center;display:grid;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.login-input__icon svg{stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.login-input input,.login-field .login-input input{border:1px solid var(--slate-300);width:100%;min-height:46px;color:var(--slate-900);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);background:#fff;border-radius:9px;margin:0;padding:10px 14px 10px 43px;font-size:.78rem;line-height:1.4;box-shadow:0 1px 2px #0f172a06}.login-input--password input,.login-field .login-input--password input{padding-right:76px}.login-input input::placeholder{color:var(--slate-400)}.login-input input:hover{border-color:var(--slate-400)}.login-input:focus-within input{border-color:var(--brand-500);outline:none;box-shadow:0 0 0 4px #6366f11c}.login-input:focus-within .login-input__icon{color:var(--brand-600)}.login-field--invalid .login-input input{border-color:var(--danger)}.login-field--invalid .login-input:focus-within input{box-shadow:0 0 0 4px #b91c1c17}.login-field__error{color:var(--danger);margin:5px 0 0;font-size:.65rem;font-weight:650;line-height:1.4}.login-password-toggle{min-height:32px;color:var(--slate-500);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:4px;padding:5px 7px;font-size:.63rem;font-weight:750;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.login-password-toggle:hover{color:var(--brand-700);background:var(--brand-50)}.login-password-toggle:focus-visible{outline-offset:1px;outline:3px solid #6366f129}.login-password-toggle svg{stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.login-form__options{justify-content:space-between;align-items:center;gap:14px;margin:2px 0 18px;display:flex}.login-checkbox{color:var(--slate-600);cursor:pointer;align-items:center;gap:8px;margin:0;font-size:.68rem;font-weight:600;display:inline-flex}.login-checkbox input{width:16px;height:16px;min-height:16px;accent-color:var(--brand-600);border-radius:4px;margin:0}.login-form__security{color:var(--slate-400);white-space:nowrap;align-items:center;gap:4px;font-size:.62rem;font-weight:650;display:inline-flex}.login-form__security svg{stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:13px;height:13px}.login-submit{color:#fff;background:linear-gradient(135deg,var(--brand-600),var(--accent-600));cursor:pointer;width:100%;min-height:46px;transition:transform var(--transition-fast),box-shadow var(--transition-fast),filter var(--transition-fast);border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:9px;padding:10px 16px;font-size:.76rem;font-weight:800;display:inline-flex;box-shadow:0 8px 20px #4f46e533}.login-submit:hover{color:#fff;filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 11px 25px #4f46e542}.login-submit:active{transform:translateY(0)}.login-submit:focus-visible{outline-offset:3px;outline:3px solid #6366f138}.login-submit:disabled{opacity:.75;cursor:wait;transform:none}.login-submit__arrow{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.login-submit__spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite login-spin;display:none}.login-submit.is-loading .login-submit__arrow{display:none}.login-submit.is-loading .login-submit__spinner{display:block}@keyframes login-spin{to{transform:rotate(360deg)}}.login-register{margin-top:24px}.login-divider{color:var(--slate-400);text-align:center;align-items:center;gap:11px;margin-bottom:14px;font-size:.62rem;font-weight:700;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--slate-200);flex:1;height:1px}.login-divider span{white-space:nowrap}.login-register__primary{border:1px solid var(--slate-300);width:100%;min-height:42px;color:var(--slate-700);transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast);background:#fff;border-radius:9px;justify-content:center;align-items:center;padding:9px 14px;font-size:.7rem;font-weight:750;text-decoration:none;display:inline-flex}.login-register__primary:hover{border-color:var(--brand-300);color:var(--brand-700);background:var(--brand-50)}.login-register__primary:focus-visible{outline-offset:2px;outline:3px solid #6366f129}.login-register__options{justify-content:center;gap:18px;margin-top:12px;display:flex}.login-register__options a{color:var(--slate-500);font-size:.64rem;font-weight:650;text-decoration:none}.login-register__options a:hover{color:var(--brand-700);text-underline-offset:3px;text-decoration:underline}.login-legal{max-width:330px;color:var(--slate-400);text-align:center;margin:22px auto 0;font-size:.59rem;line-height:1.55}html[data-theme=dark] .login-page{background:radial-gradient(circle at 12% 8%,#6366f126,#0000 30%),radial-gradient(circle at 92% 92%,#7c3aed1c,#0000 32%),#0b1020}html[data-theme=dark] .login-frame{background:#111827;border-color:#94a3b826}html[data-theme=dark] .login-panel{background:#111827}html[data-theme=dark] .login-card__header h2,html[data-theme=dark] .login-field>label,html[data-theme=dark] .login-field__heading label{color:#f8fafc}html[data-theme=dark] .login-card__header p,html[data-theme=dark] .login-checkbox{color:#94a3b8}html[data-theme=dark] .login-input input,html[data-theme=dark] .login-field .login-input input,html[data-theme=dark] .login-register__primary{color:#f8fafc;background:#0f172a;border-color:#334155}html[data-theme=dark] .login-input input:hover{border-color:#475569}html[data-theme=dark] .login-divider:before,html[data-theme=dark] .login-divider:after{background:#334155}html[data-theme=dark] .login-register__primary:hover{border-color:var(--brand-500);color:#c7d2fe;background:#4f46e51f}@media(max-width:860px){.login-frame{grid-template-columns:1fr;min-height:0}.login-brand{min-height:250px;padding:28px 32px 30px}.login-brand__content{width:100%;padding:40px 0 8px}.login-brand h1{max-width:640px;margin:11px 0 10px;font-size:clamp(1.65rem,5vw,2.15rem)}.login-brand__content>p{max-width:630px}.login-brand__features,.login-brand__footer{display:none}.login-panel{padding:36px 30px 40px}}@media(max-width:520px){.login-page{background:#fff;min-height:100dvh;padding:0;display:block}.login-page:before,.login-page:after{display:none}.login-frame{min-height:100dvh;box-shadow:none;border:0;border-radius:0}.login-brand{border-radius:0 0 18px 18px;min-height:210px;padding:24px 22px 27px}.login-brand__mark{flex-basis:38px;width:38px;height:38px}.login-brand__content{padding:29px 0 0}.login-brand h1{font-size:1.52rem}.login-brand__content>p{display:none}.login-panel{align-items:start;padding:31px 22px 36px}.login-card__header{margin-bottom:22px}.login-form__security{display:none}.login-register__options{flex-direction:column;align-items:center;gap:8px}}@media(prefers-reduced-motion:reduce){.login-page *,.login-page :before,.login-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
