:root{font-family:Arial,Helvetica,sans-serif;color:#112e5b;background:#f5f9fe;font-synthesis:none;--border:#e0e9f4;--muted:#627792;--blue:#0076df}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #1687ee;outline-offset:3px}svg{width:20px;height:20px;flex-shrink:0}button{color:inherit}p{line-height:1.5}.app-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.side{background:linear-gradient(170deg,#fff,#f5faff);border-right:1px solid var(--border);padding:30px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:3px;margin-left:12px;width:max-content}.brand b{font-size:51px;line-height:1;letter-spacing:-3px;background:linear-gradient(#5c9dd8,#124b88);background-clip:text;color:transparent;padding-right:3px}.brand span{font-size:25px;line-height:1;font-weight:800;letter-spacing:-1px}.brand small{display:block;font-size:9px;letter-spacing:0;font-weight:400;line-height:1.6;margin-top:3px}.center-switch{margin:32px 0 30px;display:flex;gap:10px;align-items:center;padding:13px 10px;background:#f0f7ff;border:1px solid #e2edf9;border-radius:10px}.center-switch strong{display:block;font-size:12px}.center-switch small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.center-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#deeeff;color:#0876d5}.nav-label{font-size:9px;font-weight:700;letter-spacing:1.5px;color:#788ba6;margin:0 12px 12px;display:block}.side nav{display:grid;gap:6px}.side nav a{display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:8px;font-size:13px;color:#47607e}.side nav a:hover{background:#ebf5ff}.side nav a.active{background:#cee8ff;color:#093a6c;font-weight:700}.side nav svg{width:18px;height:18px}.future{margin-top:32px}.future p{font-size:12px;color:#8a98ac;margin:16px 15px}.side-footer{margin-top:auto;padding:28px 12px 0;color:#6280a1}.heart-mark{color:#2685de;display:block}.side-footer p{font-size:12px;margin:10px 0 20px}.side-footer a{font-size:10px}.main-shell{min-width:0;display:flex;flex-direction:column}.topbar{height:83px;background:white;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--border);gap:18px}.crumb{font-size:12px;color:var(--muted)}.crumb span{margin:0 12px;color:#b3c0d2}.crumb strong{color:#244367;font-weight:600}.profile{display:flex;gap:10px;align-items:center}.profile strong{font-size:11px;display:block}.profile small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.profile-avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#dc7b2d;color:white;font-size:12px;font-weight:bold}.icon-button{border:0;background:transparent;padding:8px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px}.icon-button:hover{background:#eaf3ff}.notifications{margin-right:14px;position:relative}.notifications i{position:absolute;width:6px;height:6px;border:1px solid white;border-radius:50%;background:#f48739;right:11px;top:7px}.menu-toggle{display:none}.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 36px;background:#eaf5ff;color:#49708e;font-size:11px;border-bottom:1px solid #dfecf9}.demo-banner b{color:#1f6ca6}.demo-safe{font-size:10px;white-space:nowrap}main{padding:32px 36px 28px;flex:1;outline:none;max-width:1500px;width:100%;margin:0 auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}h1{font-size:27px;letter-spacing:-.8px;margin:0 0 9px;line-height:1.2}.page-heading p{font-size:12px;color:var(--muted);margin:0}h2{font-size:16px;letter-spacing:-.3px;margin:0}h3{font-size:14px}.date-chip{display:flex;align-items:center;gap:9px;font-size:10px;color:#466185;white-space:nowrap}.date-chip svg{color:#5888b5;width:17px}.date-chip small{display:block;font-size:9px;margin-top:5px;color:#8597ac}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.kpi{border:1px solid var(--border);border-radius:14px;background:linear-gradient(130deg,#fff,#fafdff);padding:20px;text-align:left;position:relative;box-shadow:0 3px 10px #315f9505}.kpi:hover{border-color:#a9cff2;box-shadow:0 5px 16px #2268a512}.tile{width:39px;height:39px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.tile svg{width:23px;height:23px}.tile.green,.room-symbol.green{background:#dff8e9;color:#19af58}.tile.purple,.room-symbol.purple{background:#efe3ff;color:#9450e8}.tile.rose{background:#ffe1e9;color:#f34268}.tile.orange{background:#fff0d7;color:#f09613}.tile.yellow,.room-symbol.yellow{background:#fff5d2;color:#d99600}.tile.blue,.room-symbol.blue{background:#e0f1ff;color:#0788e9}.kpi strong{font-size:31px;line-height:1.2;display:block;margin-top:12px}.kpi h2{font-size:12px;margin:3px 0 0;letter-spacing:0}.kpi p{font-size:10px;color:var(--muted);margin:5px 0 0}.kpi-arrow{position:absolute;right:17px;top:18px;color:#acc4dc;font-size:18px}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.panel{background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px;box-shadow:0 3px 12px #23497004;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.panel-heading>a{display:flex;align-items:center;gap:6px;color:#0075df;font-size:10px;white-space:nowrap}.panel-heading>a svg{width:13px}.panel-caption{font-size:11px;color:var(--muted);margin:9px 0 16px}.room-row{display:flex;width:100%;align-items:center;gap:12px;padding:14px 0;border:0;border-bottom:1px solid #f0f4f9;background:transparent;text-align:left}.room-row:hover{background:#f8fbff}.room-symbol{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;flex-shrink:0}.room-symbol svg{width:18px;height:18px}.room-name{flex:1}.room-name strong{font-size:12px;display:block}.room-name small{display:block;font-size:10px;margin-top:5px;color:var(--muted)}.room-count{font-size:11px;text-align:right;color:#5c7391;width:105px}.room-count b{color:#153c6a}.chevron{font-size:20px;color:#9bb1c9;margin-left:3px}meter{display:block;height:9px;width:100%;margin-top:7px;border:0}meter::-webkit-meter-bar{background:#edf2f8;border:0;border-radius:20px}meter.green::-webkit-meter-optimum-value{background:#28c16b}meter.blue::-webkit-meter-optimum-value{background:#1388f4}meter.yellow::-webkit-meter-optimum-value{background:#ffbf21}meter.purple::-webkit-meter-optimum-value{background:#965be8}.panel-foot{font-size:10px;color:#68809a;padding-top:16px;display:flex;align-items:center;gap:6px}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.dot.green{background:#28ba66}.arrival-row{display:flex;align-items:center;gap:11px;width:100%;background:transparent;border:0;border-bottom:1px solid #f0f4f9;padding:11px 0;text-align:left}.arrival-row:hover{background:#f8fbff}.avatar{display:inline-flex;justify-content:center;align-items:center;width:36px;height:36px;border-radius:50%;font-size:11px;font-weight:600;flex-shrink:0}.avatar.green{color:#2c8059;background:#e0f0e6}.avatar.blue{color:#3475ac;background:#e2effb}.avatar.yellow{color:#99751c;background:#f9efd3}.avatar.purple{color:#8560a6;background:#efe5f6}.arrival-row strong{font-size:11px;display:block}.arrival-row small{font-size:10px;color:var(--muted);display:block;margin-top:5px}.arrival-row time{margin-left:auto;white-space:nowrap;font-size:10px;color:#7289a2}.arrival-check{color:#22b864;background:#eaf9f0;border-radius:50%;display:grid;place-items:center;width:19px;height:19px}.arrival-check svg{width:12px;height:12px}.bottom-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:22px;margin-top:22px}.soft-label{font-size:10px;color:#6b8ba8;background:#f0f6fc;padding:5px 8px;border-radius:6px}.notice-row{display:flex;gap:13px;align-items:center;width:100%;border:0;border-top:1px solid #edf2f8;margin-top:16px;padding:15px 0 0;background:none;text-align:left}.notice-row strong{font-size:12px}.notice-row p{font-size:10px;color:var(--muted);margin:5px 0 0}.notice-row>span:last-child{margin-left:auto;color:#91aec7}.care-banner{border:1px solid #dfedfb;background:linear-gradient(130deg,#eaf6ff,#f7fcff);border-radius:14px;padding:23px;position:relative;overflow:hidden}.care-banner h2{margin-top:13px}.care-banner p{color:#6482a1;font-size:11px;line-height:1.6}.primary,.secondary{display:inline-flex;gap:10px;align-items:center;justify-content:center;border:1px solid #0879de;background:#0879de;border-radius:8px;color:white;padding:11px 16px;font-size:11px;font-weight:600}.primary svg,.secondary svg{width:15px;height:15px}.secondary{background:white;color:#0a75d4;border-color:#c5ddf5}.secondary:hover{background:#f2f8ff}.wide{width:100%}.care-decoration{position:absolute;font-size:150px;color:#dbeeff;right:5px;bottom:-24px;transform:rotate(-12deg);pointer-events:none}.care-banner .primary{position:relative;z-index:1}.main-footer{padding:20px 36px;display:flex;justify-content:space-between;font-size:9px;color:#8599af}.total-chip{background:#edf5ff;color:#4476a2;padding:10px 13px;border-radius:8px;font-size:11px;white-space:nowrap}.filters{display:flex;gap:12px;align-items:center;border-bottom:1px solid #eaf0f8;padding-bottom:20px}.search-field{display:flex;gap:10px;align-items:center;flex:1;min-width:140px;border:1px solid #d9e4f0;border-radius:8px;padding:0 12px}.search-field svg{width:16px;height:16px;color:#87a0b8}.search-field input{min-width:0;width:100%;border:0;background:transparent;padding:12px 0;color:#173a65;font-size:12px}.filters select{border:1px solid #d9e4f0;border-radius:8px;background:white;padding:12px 28px 12px 11px;color:#496685;font-size:11px;max-width:100%}.text-button{background:none;border:0;color:#0b75d1;font-size:11px;padding:10px}.results-count{font-size:10px;color:#758ca3;margin:15px 0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:11px;text-align:left}thead{color:#7890a8;background:#f7faff}th{padding:13px 12px;font-size:10px;font-weight:600}td{padding:11px 12px;border-bottom:1px solid #edf2f8;color:#4b6886}.student-link{border:0;background:none;display:flex;gap:10px;align-items:center;text-align:left;padding:0;min-width:155px}.student-link strong{font-size:11px;display:block;color:#18395f}.student-link small{display:block;font-size:9px;color:#8194a9;margin-top:5px}.student-link:hover strong{text-decoration:underline}.status{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:6px;font-size:9px}.status i,.summary-item i{height:5px;width:5px;background:currentColor;display:inline-block;border-radius:50%}.present{color:#19944a;background:#e9f8ef}.pending{color:#a67b22;background:#fff7e3}.left{color:#697c94;background:#f0f3f7}.absent{color:#cf6264;background:#fff0ef}.footnote{font-size:10px;color:#8196aa;line-height:1.6}.attendance-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.summary-item{display:flex;align-items:center;gap:8px;border:1px solid #e1e9f3;border-radius:10px;padding:17px;font-size:11px}.summary-item b{margin-left:auto;font-size:23px}.empty-state{text-align:center;padding:50px 15px;color:#8498ae}.empty-state>svg{width:35px;height:35px}.empty-state h2{margin:18px 0 8px;color:#315475}.empty-state p{font-size:12px}.classroom-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.classroom-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.classroom h2{font-size:21px}.teacher{font-size:11px;color:#748ca5;margin:9px 0 25px}.teacher strong{font-weight:500;color:#42658a}.classroom-metric{display:flex;align-items:center;justify-content:space-between}.classroom-metric>strong{font-size:30px}.classroom-metric small{font-size:15px;font-weight:400;color:#92a5b9}.classroom-metric>span{font-size:11px;color:#6f879f}.classroom meter{height:12px;margin:13px 0 19px}.classroom-info{display:flex;gap:30px;font-size:10px;color:#7891ab}.classroom-info b{color:#345779;margin-left:8px}.mini-avatars{display:flex;margin:25px 0}.mini-avatars .avatar{border:3px solid white;margin-right:-6px}.remaining{background:#f1f6fc;color:#7895b1}.helper-strip{border:1px solid #ddebf8;background:#eef7ff;color:#6083a2;display:flex;gap:12px;align-items:center;padding:17px;border-radius:10px;font-size:11px;margin-top:25px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{width:min(520px,92vw);max-height:88vh;overflow-y:auto;padding:26px;border:1px solid #dce7f3;border-radius:18px;color:#173b66;box-shadow:0 20px 80px #15386130}dialog::backdrop{background:#0b2a5070;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:21px}.student-hero{display:flex;gap:18px;align-items:center;margin-bottom:27px}.student-hero>.avatar{width:65px;height:65px;font-size:20px}.student-hero h2{font-size:23px}.student-hero p{font-size:12px;color:#7088a0;margin:7px 0 10px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid #e9f0f7;border-bottom:1px solid #e9f0f7;padding:22px 0}.detail-grid small{font-size:10px;color:#7890a6;display:block;margin-bottom:7px}.detail-grid strong{font-size:12px;font-weight:500}.health-note{display:flex;gap:12px;background:#fff8e8;border:1px solid #f8e5b9;border-radius:10px;padding:14px;margin:20px 0;color:#8b691e}.health-note strong{font-size:12px}.health-note p{font-size:11px;margin:5px 0 0}.timeline{display:grid;gap:17px;padding:10px 0}.timeline>div{display:flex;gap:12px;align-items:flex-start}.timeline i{width:8px;height:8px;background:#28be69;border-radius:50%;margin-top:4px}.timeline strong{font-size:12px;display:block}.timeline small{font-size:10px;color:#758da3;margin-top:6px;display:block}.muted{color:#7189a1;font-size:12px}.alert-item{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid #ecf1f7;align-items:center}.alert-item strong{font-size:12px;display:block}.alert-item small{display:block;font-size:11px;color:#7d94a9;margin-top:5px}dialog>.wide{margin-top:20px}
@media(min-width:1500px){.app-shell{grid-template-columns:250px 1fr}main{padding:40px 46px}.kpi{padding:24px}.kpi strong{font-size:37px}.panel{padding:26px}.room-row{padding:18px 0}.arrival-row{padding:15px 0}}
@media(max-width:1150px){.app-shell{grid-template-columns:200px 1fr}.side{padding:26px 12px}.brand b{font-size:43px}.brand span{font-size:22px}.brand small{font-size:8px}main{padding:26px 23px}.topbar,.demo-banner{padding-left:23px;padding-right:23px}.kpis{gap:10px}.kpi{padding:16px}.kpi p{font-size:9px}.page-heading{align-items:flex-start}.date-chip{display:none}.overview-grid{gap:15px}.panel{padding:18px}.room-symbol{display:none}.room-count{width:75px}.arrival-check{display:none}.bottom-grid{gap:15px}.filters{flex-wrap:wrap}.search-field{flex-basis:100%}.filters label:not(.search-field){flex:1}.filters select{width:100%}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.side{display:none;position:fixed;top:0;bottom:0;left:0;z-index:20;width:230px;height:100dvh;box-shadow:8px 0 45px #20436c30;overflow:auto}.side.is-open{display:flex}.topbar{height:69px;padding:0 18px}.menu-toggle{display:flex}.crumb{margin-right:auto;font-size:11px}.profile>div{display:none}.notifications{margin-right:0}.profile-avatar{width:30px;height:30px;font-size:10px}.demo-banner{padding:10px 18px;font-size:10px;line-height:1.6}.demo-safe{display:none}main{padding:24px 17px}.page-heading{gap:12px;margin-bottom:21px;flex-wrap:wrap}h1{font-size:23px}.page-heading p{font-size:11px}.kpis{grid-template-columns:repeat(2,1fr);gap:11px}.kpi{padding:17px}.kpi strong{font-size:29px}.kpi h2{font-size:11px}.kpi p{font-size:9px}.tile{width:34px;height:34px}.tile svg{width:21px}.overview-grid,.bottom-grid{grid-template-columns:1fr;gap:18px}.room-symbol{display:grid}.room-count{width:100px}.panel{padding:19px}.arrival-check{display:grid}.main-footer{padding:20px 17px;gap:15px;font-size:8px}.total-chip{font-size:10px}.directory{padding:14px}.table-scroll{margin:0 -4px}.filters{gap:8px}.filters select{font-size:10px;padding:11px 7px}.filters .text-button{font-size:10px}.attendance-summary{grid-template-columns:1fr 1fr;gap:9px}.summary-item{padding:12px;font-size:10px}.summary-item b{font-size:22px}.classroom-grid{grid-template-columns:1fr;gap:17px}.care-banner{padding:22px}.helper-strip{align-items:flex-start;font-size:10px}.detail-grid{gap:18px 12px}dialog{padding:20px}.student-hero h2{font-size:21px}}

.mobile-close{display:none}@media(max-width:760px){.mobile-close{display:flex;position:absolute;right:8px;top:7px}}
html{overflow-x:clip}.app-shell{min-width:0}.directory{overflow:hidden}.table-scroll{max-width:100%;overscroll-behavior-x:contain}

.center-controls{margin-bottom:28px}.center-controls>label{display:grid;gap:7px;font-size:11px;color:#627792;min-width:0}.center-controls select{max-width:320px}.room-count small{display:block;margin-top:5px;font-size:9px}.classroom .classroom-metric+.wide{margin-top:24px}.main-footer{flex-wrap:wrap}.profile strong{max-width:240px;overflow:hidden;text-overflow:ellipsis}.center-switch strong{overflow-wrap:anywhere}.center-controls>label{max-width:100%}

.registration-action{display:flex;justify-content:flex-end;margin:-10px 0 20px}.student-form{display:grid;gap:16px;margin-top:22px}.student-form label{display:grid;gap:7px;font-size:12px;font-weight:600}.student-form label small{font-weight:400;color:var(--muted)}.student-form input{width:100%;min-width:0;padding:12px;border:1px solid #d9e4f0;border-radius:8px;color:#173a65;background:white}.form-actions{display:flex;justify-content:flex-end;gap:12px}.form-feedback{font-size:12px;color:#315475;margin:0;line-height:1.6}button:disabled{opacity:.6;cursor:wait}

.setup-steps{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0}.setup-steps span,.setup-steps button{padding:9px 10px;font-size:11px;border:1px solid #dae8f5;border-radius:8px;background:#f5f9fe;color:#5a7898}.setup-steps .selected{background:#0879de;border-color:#0879de;color:white}.setup-notice{font-size:12px;color:#1c659e;line-height:1.5}.setup-notice:empty{display:none}.student-form select{padding:12px;border:1px solid #d9e4f0;border-radius:8px;background:white;color:#173a65;max-width:100%;min-width:0}.student-form fieldset{border:1px solid #d9e4f0;border-radius:10px;display:grid;gap:15px;padding:16px;margin:0;min-width:0}.student-form [hidden]{display:none}.student-form legend{font-size:12px;padding:0 7px}.student-form .check-field{display:flex;align-items:center;gap:10px;line-height:1.5}.check-field input{width:18px;height:18px;flex-shrink:0;accent-color:#0879de}.setup-records{display:grid;gap:10px;margin:15px 0}.setup-records>div{border:1px solid #deebf7;border-radius:10px;padding:15px;background:#f8fbff}.setup-records strong{font-size:13px}.setup-records p{font-size:12px;color:#627792;margin:7px 0}.contact-badges{display:flex;gap:6px;flex-wrap:wrap}.contact-badges span{font-size:10px;padding:5px 7px;background:#e4f2ff;color:#186aa8;border-radius:6px}#center-detail>.primary,#center-detail>.secondary{margin-top:15px}

.classroom-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.classroom-actions .primary{font-size:11px;padding:9px 12px}

.classroom-enrollment-status{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:11px;color:#627792;margin:14px 0 20px}.classroom-enrollment-status span:last-child{color:#1c659e}

.support-fields{border:1px solid #d8e5f2;border-radius:16px;padding:18px;margin:12px 0;display:grid;gap:16px;min-width:0}.support-fields legend{font-weight:700;color:#153e6e;padding:0 8px}.support-fields textarea{width:100%;box-sizing:border-box;border:1px solid #ccdbea;border-radius:10px;padding:12px;font:inherit;color:#183d68;resize:vertical;background:white}.support-fields [hidden]{display:none}.support-history{margin-top:24px}.support-history summary{cursor:pointer;font-weight:700;color:#0869cd}.support-history .panel{margin-top:12px;padding:16px;overflow-wrap:anywhere}
.allergy-alert{border:1px solid #f3c07c;border-left:5px solid #e68a18;background:#fff7eb;color:#603b14;border-radius:12px;padding:16px;margin:18px 0;overflow-wrap:anywhere}.allergy-alert p{white-space:pre-wrap;margin:8px 0}.support-fields h3{margin:8px 0 0}
.student-form textarea{font:inherit;width:100%;box-sizing:border-box;border:1px solid #ccdbea;border-radius:10px;padding:12px;color:#183d68;background:#fff;resize:vertical}.med-copy{white-space:pre-wrap;overflow-wrap:anywhere}

/* Incident records follow the compact, blue-and-white student dashboard. */
dialog:has(> .incident-view){width:min(660px,92vw);box-sizing:border-box}
.incident-view{font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.incident-view .dialog-top{margin-bottom:16px}
.incident-view h2{font-size:21px;line-height:1.25;letter-spacing:-.5px}
.incident-view .incident-student{font-size:13px;color:#627792;margin:7px 0 20px}
.incident-view h3{font-size:13px;line-height:1.4;margin:0 0 7px}
.incident-view p{margin:7px 0 12px;font-size:13px}
.incident-view .muted,.incident-view .incident-caption{font-size:11px;color:#71849c}
.incident-badges{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px}
.incident-badges span{font-size:10px;font-weight:600;padding:5px 9px;border-radius:6px;background:#f0f4f9;color:#60758e}
.incident-badges .incident-state{background:#e5f2ff;color:#006bc8}
.incident-badges .is-closed{background:#eef1f5;color:#586a80}
.incident-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;background:#f5f9fe;border:1px solid #e0ebf6;border-radius:12px;padding:16px;margin:0 0 20px}
.incident-attended{grid-column:1/-1}
.incident-view dt{font-size:10px;color:#71849c;margin:0 0 4px}
.incident-view dd{font-size:12px;font-weight:600;margin:0;color:#24486f}
.incident-narrative{display:grid;gap:17px}
.incident-narrative p{color:#415b79;margin:0}
.incident-view .form-actions{flex-wrap:wrap;gap:8px}
.incident-actions{justify-content:flex-start;border-top:1px solid #e5edf6;padding-top:18px;margin:22px 0}
.incident-view .primary,.incident-view .secondary{font-size:11px;padding:10px 13px;line-height:1.4}
.incident-view .incident-notice{background:#edf6ff;border-radius:8px;padding:10px 12px;color:#2068a7;font-size:11px;margin:0 0 16px}
.incident-history{border-top:1px solid #e5edf6;padding-top:20px;margin-top:20px}
.incident-timeline{list-style:none;margin:16px 0 22px;padding:0 0 0 16px;border-left:2px solid #e3edf8}
.incident-timeline li{position:relative;background:#f8fbff;border:1px solid #e3edf7;border-radius:10px;padding:13px 15px;margin:0 0 12px}
.incident-timeline li:before{content:"";position:absolute;left:-23px;top:17px;width:8px;height:8px;background:#1180df;border:2px solid white;border-radius:50%}
.incident-event-heading{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:5px 14px}
.incident-event-heading strong{font-size:12px}.incident-event-heading time{font-size:10px;color:#71849c}
.incident-view .incident-author{font-size:10px;color:#71849c;margin:4px 0 9px}
.incident-timeline .med-copy{font-size:12px;color:#415b79;margin:8px 0 0}
.incident-contact{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.incident-contact>div:last-child{grid-column:1/-1}
.incident-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.incident-view input,.incident-view select,.incident-view textarea{min-width:0;max-width:100%;font-size:13px}
.incident-view .setup-records .incident-badges{margin:10px 0}
.incident-view>.wide{margin-top:10px}
@media(max-width:520px){.incident-view h2{font-size:19px}.incident-facts,.incident-date-fields,.incident-contact{grid-template-columns:1fr}.incident-actions>button{flex:1 1 100%}.incident-view .soft-label{font-size:9px}.incident-view .form-actions>button{max-width:100%}}

.birthday-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:6px;background:#fff0cf;color:#785318;font-size:10px;font-weight:600;line-height:1.4;white-space:nowrap}.student-link+.birthday-badge{display:flex;width:fit-content;margin-top:5px}.birthday-row td{background:#fffaf0}.birthday-row td:first-child{box-shadow:inset 3px 0 #f2ba46}.birthday-banner{display:flex;align-items:center;gap:13px;border:1px solid #f4dfab;background:#fffaf0;border-radius:12px;padding:14px 16px;margin-top:18px;color:#725019}.birthday-banner>span{font-size:25px}.birthday-banner strong{font-size:13px}.birthday-banner p{font-size:12px;margin:4px 0 0}.arrival-row .birthday-badge{margin-top:5px}

.staff-toolbar,.staff-tabs,.staff-heading-status{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.staff-toolbar{justify-content:space-between;margin:0 0 18px}.staff-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.staff-role summary,.staff-history summary{cursor:pointer;font-size:12px;font-weight:600;color:#1169b7}.staff-role ul{font-size:12px;line-height:1.9;color:#60758e;padding-left:18px}.staff-subtitle{display:block;color:#71849c;font-size:10px;margin-top:5px}.staff-notice{font-size:12px;background:#edf6ff;color:#2068a7;padding:12px;border-radius:9px}dialog:has(>.staff-dialog){width:min(640px,92vw);box-sizing:border-box}.staff-dialog{font-size:13px;overflow-wrap:anywhere}.staff-dialog h2{font-size:20px}.staff-dialog h3{font-size:13px}.staff-heading-status{margin:14px 0}.staff-facts,.staff-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.staff-facts{padding:16px;background:#f5f9fe;border:1px solid #e0ebf6;border-radius:12px}.staff-dialog dt{font-size:10px;color:#71849c;margin-bottom:5px}.staff-dialog dd{margin:0;font-size:12px;color:#24486f}.staff-assigned{margin:18px 0}.staff-assigned ul{padding-left:18px;color:#415b79;font-size:12px}.staff-classrooms{border:1px solid #dce7f3;border-radius:10px;padding:15px;display:grid;gap:12px;min-width:0}.staff-classrooms legend{font-size:12px;font-weight:600;padding:0 6px}.staff-dialog .check-field{display:flex;align-items:center;gap:9px;font-size:12px}.staff-dialog input[type=checkbox]{width:16px;height:16px;flex-shrink:0}.staff-dialog input,.staff-dialog select{min-width:0;width:100%;box-sizing:border-box}.staff-history{margin-top:24px;border-top:1px solid #e5edf6;padding-top:18px}.staff-history-entry{border:1px solid #e0ebf6;background:#f8fbff;border-radius:10px;padding:13px;margin-top:12px}.staff-history-entry strong{font-size:12px}.staff-history-entry dl{display:grid;gap:10px}.staff-dialog .form-actions{flex-wrap:wrap}@media(max-width:520px){.staff-role-grid,.staff-form-grid,.staff-facts{grid-template-columns:1fr}.staff-toolbar>.primary{width:100%}}

/* Shared filter-label hierarchy: captions stay secondary to the page heading. */
.filters>label{font-size:11px;font-weight:500;line-height:1.4;color:#627792}
.staff-filters{align-items:flex-end;gap:12px}
.filters>.filter-field{display:grid;gap:7px;min-width:0;flex:0 1 180px}
.filters>.filter-grow{flex:1 1 260px}
.filter-field>span{font-size:11px;font-weight:500;color:#627792}
.filter-field input,.filter-field select{box-sizing:border-box;width:100%;min-width:0;height:40px;border:1px solid #d9e4f0;border-radius:8px;background:#fff;padding:10px 12px;font-family:inherit;font-size:12px;font-weight:400;color:#496685}
.filter-field input::placeholder{color:#8094aa;opacity:1}
@media(max-width:600px){.staff-filters>.filter-field{flex:1 1 100%}}

.staff-access-summary,.staff-access-scope{border:1px solid #dfebf6;border-radius:12px;background:#f5f9fe;padding:15px;margin:18px 0}.staff-access-summary p,.staff-access-scope p{font-size:12px;color:#627792;line-height:1.6}.staff-access-actions{justify-content:flex-start}.staff-invite-result{border:1px solid #dce7f3;border-radius:10px;padding:14px;margin-top:15px}.staff-invite-result label{display:grid;gap:7px;font-size:11px;color:#627792}.staff-invite-result input{padding:10px;border:1px solid #dce7f3;border-radius:8px;color:#496685;font-size:12px;margin-bottom:10px}.staff-dialog .staff-notice{font-size:11px;line-height:1.6}

/* Center-wide controls live with navigation, outside each page's content. */
#center-sidebar{overflow-y:auto}
.center-switch.center-menu{display:block;margin:24px 0;padding:14px 12px}
.center-menu-name{font-size:12px;line-height:1.5;color:#244367;margin-bottom:12px}
.center-menu-controls{display:grid;gap:12px;min-width:0}
.center-menu-controls label{display:grid;gap:6px;min-width:0;font-size:10px;font-weight:500;color:#627792}
.center-menu-controls select{box-sizing:border-box;min-width:0;width:100%;max-width:100%;font-family:inherit;font-size:11px;line-height:1.4;color:#496685;padding:9px 7px;background:#fff;border:1px solid #d9e4f0;border-radius:8px}
.center-menu-controls .secondary{width:100%;padding:9px 10px;font-size:10px}
.active-center-context{min-width:0;overflow-wrap:anywhere}
.active-center-context #active-location{font-weight:400;color:#627792}
/* Classroom modules follow the same compact visual hierarchy as student records. */
.care-view{font-size:13px;line-height:1.55;color:#29496e}
.care-view h2{font-size:21px;line-height:1.3;margin:20px 0 8px;color:#153761}
.care-view h3{font-size:15px;line-height:1.4;margin:0 0 8px;color:#153761}
.care-view .care-muted,.care-view .care-meta{font-size:12px;line-height:1.6;color:#7089a3}
.care-module{display:flex;align-items:center;flex-wrap:wrap;gap:12px;background:#f1f8ff;border:1px solid #dceafa;border-radius:16px;padding:18px;margin:20px 0 12px}
.care-module>div{flex:1 1 210px}.care-module p{font-size:12px;margin:0;color:#607e9e}
.care-view button{font-size:12px;padding:11px 16px;min-height:40px}.care-view .icon-button{font-size:22px}
.care-state{font-size:10px;border-radius:20px;padding:4px 9px;background:#e5edf5;color:#647d96}.care-state.enabled{background:#e5f7eb;color:#267646}
.care-future{font-size:12px;color:#7089a3;margin:16px 0}.care-future summary{cursor:pointer;font-size:12px;font-weight:600}.care-future p{font-size:12px}
.care-daily{border-top:1px solid #e0eaf5;padding-top:20px;margin-top:20px}
.care-section-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap}
.care-section-heading h3{margin:0}.care-filters{display:grid;grid-template-columns:150px 1fr auto;gap:12px;align-items:end}
.care-view label{display:grid;gap:6px;font-size:11px;color:#7189a4;font-weight:500}
.care-view input,.care-view select,.care-view textarea{width:100%;min-width:0;border:1px solid #d5e3f2;border-radius:10px;padding:10px 12px;background:white;color:#24456b;font:inherit;font-size:13px;box-sizing:border-box}
.care-view input,.care-view select{min-height:42px}.care-view textarea{resize:vertical}
.care-form{display:grid;gap:16px}.care-time-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.care-time-fields [hidden]{display:none}
.care-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.care-counts>div{background:#f5f9fd;border-radius:12px;padding:12px}.care-counts strong{display:block;font-size:19px;color:#1d4976}.care-counts span{font-size:10px;color:#7189a4}
.care-records{display:grid;gap:12px;margin:18px 0}.care-record{border:1px solid #dfe9f4;border-radius:14px;padding:16px}.care-record-heading{display:flex;justify-content:space-between;gap:12px;font-size:13px}.care-record-heading>span{font-size:11px;color:#7189a4;white-space:nowrap}
.care-kind{font-size:11px;font-weight:600;color:#1680d2;margin:6px 0}.care-notes{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0}.care-record .care-meta{font-size:10px;margin:6px 0}.care-record.voided{background:#f7f9fb}.care-record.voided .care-kind{color:#7b8799}.care-record button{margin-top:6px}
.care-empty{text-align:center;padding:24px 12px;color:#7189a4;font-size:12px}.care-empty strong{font-size:14px;color:#456789}.care-notice{background:#edf8f0;padding:12px;border-radius:10px;color:#33744c;font-size:12px}
@media(max-width:600px){.care-filters{grid-template-columns:1fr 1fr}.care-filters button{grid-column:1/-1}.care-counts{grid-template-columns:repeat(2,1fr)}.care-record-heading{flex-wrap:wrap}.care-time-fields{grid-template-columns:1fr}}
/* Medication dialog: compact headings, clear sections and quiet metadata. */
dialog:has(>.medication-view){width:min(660px,92vw);box-sizing:border-box}
.medication-view{font-size:13px;line-height:1.55;overflow-wrap:anywhere;color:#29496e}
.medication-view .dialog-top{margin-bottom:18px}.medication-view .soft-label{font-size:10px;padding:6px 10px}
.medication-view h2{font-size:21px;line-height:1.3;letter-spacing:-.4px;margin:0 0 7px}
.medication-view p{font-size:13px;line-height:1.6;margin:8px 0 12px}
.medication-view .med-student{font-size:13px;font-weight:500;color:#607b99;margin:0 0 20px}
.medication-view h3{font-size:14px;line-height:1.4;margin:0 0 12px}
.medication-view .muted{font-size:11px;color:#71849c}
.medication-view .form-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
.medication-view .med-toolbar{justify-content:flex-start;margin:18px 0 22px}
.medication-view .primary,.medication-view .secondary{font-size:12px;line-height:1.4;padding:11px 15px;min-height:40px}
.medication-view .med-section{padding:18px;margin:0 0 16px;border:1px solid #e0eaf5;border-radius:14px;background:#fbfdff}
.med-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.med-section-heading h3{margin:0}.med-date{font-size:11px;color:#6582a1;background:#edf5ff;padding:5px 9px;border-radius:8px}
.medication-view .setup-records{margin:12px 0 0;display:grid;gap:12px}.medication-view .setup-records>p{font-size:12px;color:#71849c;margin:0;padding:12px;background:#f1f6fc;border-radius:9px}
.medication-view .setup-records>div{margin:0;padding:14px;border:1px solid #e0eaf5;border-radius:10px;background:white}.medication-view .setup-records strong{font-size:13px}
.medication-view .support-history{border:1px solid #e0eaf5;border-radius:12px;padding:14px 16px;margin:18px 0}
.medication-view .support-history summary{font-size:13px;font-weight:600;line-height:1.5;cursor:pointer;color:#315779}
.medication-view .support-history p{font-size:12px}.medication-view .support-history .panel{padding:12px;margin-top:10px;border-radius:10px;box-shadow:none}.medication-view .support-history strong{font-size:12px}
.medication-view .student-form{gap:16px;margin-top:18px}.medication-view .student-form label{font-size:11px;color:#69829e;line-height:1.5;gap:6px}
.medication-view input,.medication-view select,.medication-view textarea{font-size:13px;min-width:0;max-width:100%}.medication-view .check-field{font-size:12px;align-items:flex-start}.medication-view .check-field input{flex-shrink:0}
.medication-view .med-notice{font-size:12px;background:#edf7ef;color:#37704c;padding:12px;border-radius:10px}
.medication-view>.wide{margin-top:4px}
@media(max-width:520px){.medication-view h2{font-size:19px}.medication-view .med-section{padding:14px}.medication-view .med-toolbar>button{flex:1 1 auto}.med-section-heading{flex-wrap:wrap}}
.classroom-actions .secondary{font-size:11px;padding:9px 12px;min-width:132px}
.classroom-actions .primary{min-width:132px}
.classroom-footer-actions{display:grid;gap:12px;margin-top:20px}
.classroom .classroom-footer-actions>.secondary{margin:0;min-height:44px;padding:12px 16px;border-radius:11px;font-size:12px;line-height:1.4}
.classroom-footer-actions>[data-classroom-care]{background:#f2f7fd;border-color:#dce8f5;color:#315d87}
.rooms-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.rooms-heading .page-heading{margin:0}.rooms-heading .total-chip{display:none}.rooms-heading>.primary{white-space:nowrap;font-size:12px;padding:12px 16px}
.room-filters{display:flex;gap:14px;align-items:end;margin-bottom:12px}.room-filters label{display:grid;gap:6px;font-size:11px;color:#71849c;min-width:0}.room-filters label:first-child{flex:1;max-width:480px}.room-filters input,.room-filters select{width:100%;font-size:12px;color:#315779;background:white;border:1px solid #d6e4f4;border-radius:9px;padding:12px;min-height:42px}.room-results-count{font-size:11px;color:#71849c;margin:12px 0}
.classroom-grid.compact-classrooms{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.compact-classrooms .classroom{padding:16px;min-width:0;display:flex;flex-direction:column}.compact-classrooms .classroom-header{align-items:flex-start;gap:10px;margin-bottom:16px}.classroom-identity{display:flex;align-items:flex-start;gap:9px;min-width:0}.classroom-identity>div{min-width:0}.compact-classrooms h2{font-size:16px;line-height:1.3;margin:0;overflow-wrap:anywhere}.compact-classrooms .tile{width:32px;height:32px;flex-shrink:0}.compact-classrooms .tile svg{width:18px;height:18px}.classroom-site{font-size:11px;color:#71849c;margin:5px 0}.compact-classrooms .teacher{font-size:10px;margin:7px 0 0}.compact-classrooms .classroom-actions{gap:7px;flex-shrink:0}.compact-classrooms .classroom-actions button{font-size:10px;padding:8px;min-width:102px}.compact-classrooms .classroom-enrollment-status{margin:0 0 16px;gap:8px 12px;font-size:10px}.classroom-enrollment-status>span{display:flex;align-items:center;gap:6px}.room-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.room-dot.active{background:#36ba83}.room-dot.upcoming{background:#a3c9ee}.compact-classrooms .classroom-footer-actions{margin-top:auto;gap:8px}.compact-classrooms .classroom-footer-actions>.secondary{font-size:11px;min-height:36px;padding:9px 12px;border-radius:8px}
.room-pagination{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:22px;color:#71849c;font-size:11px}.room-pagination>div{display:flex;align-items:center;gap:10px}.room-pagination button{font-size:11px;padding:9px 12px}.room-pagination button:disabled{opacity:.45;cursor:default}
@media(max-width:1350px){.classroom-grid.compact-classrooms{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.classroom-grid.compact-classrooms{grid-template-columns:1fr}.room-filters{align-items:stretch;flex-direction:column}.room-filters label:first-child{max-width:none}.rooms-heading{gap:10px}.rooms-heading .page-heading p{max-width:200px}.room-pagination{align-items:flex-start;flex-direction:column}}
.learning-view .learning-section{border-top:1px solid #e0eaf5;padding-top:20px;margin:20px 0}
.learning-view .learning-objectives{font-size:12px;color:#526f8f}.learning-objectives summary{cursor:pointer;padding:10px 0}.learning-objectives .care-record{margin:10px 0}.learning-objectives strong{font-size:13px}
.learning-state{display:inline-block;font-size:10px;padding:4px 9px;margin:8px 0;border-radius:20px;background:#edf2f8;color:#637d97}.learning-state.in_progress{background:#e7f2ff;color:#226aad}.learning-state.achieved{background:#e5f5eb;color:#2f784b}.learning-state.not_started{background:#fff4df;color:#926b20}.learning-annulled{font-size:10px;margin-left:10px;color:#8a6670}
.learning-progress{display:grid;gap:10px;margin-top:16px}.learning-progress>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid #e0eaf5;background:#fbfdff;border-radius:12px;padding:12px 14px}.learning-progress strong{font-size:12px;flex:1 1 160px}.learning-progress small{font-size:10px;color:#71849c}.learning-view .learning-pupil{font-size:13px;font-weight:600;color:#315779;margin:12px 0 18px}.module-catalog{margin:20px 0}.module-catalog .care-module>div{flex-basis:220px}

/* Compact saved attendance receipt. Scoped to confirmations only. */
#center-detail:has(.attendance-confirmation){width:min(440px,calc(100vw - 32px));padding:26px;box-sizing:border-box}
.attendance-confirmation{font-size:13px;line-height:1.5;color:#29496e}
.attendance-confirmation .dialog-top{margin-bottom:20px}
.attendance-confirmation .soft-label{font-size:11px;padding:6px 10px}
.attendance-success-mark{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 14px;border-radius:50%;background:#eaf8ef;color:#299b58;font-size:25px;font-weight:600}
.attendance-confirmation h2{font-size:21px;line-height:1.3;text-align:center;margin:0 0 8px;color:#153761}
.attendance-confirmation .attendance-pupil{font-size:15px;line-height:1.5;font-weight:500;text-align:center;margin:0 0 22px;overflow-wrap:anywhere}
.attendance-receipt{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:#f4f9fe;border:1px solid #e3edf7;border-radius:14px;padding:18px;margin:0}
.attendance-receipt .attendance-room{grid-column:1/-1}
.attendance-receipt dt{font-size:11px;color:#7189a4;margin-bottom:4px}
.attendance-receipt dd{font-size:13px;font-weight:500;margin:0;overflow-wrap:anywhere}
.attendance-confirmation .attendance-author{font-size:11px;line-height:1.5;text-align:center;color:#7189a4;margin:16px 0 22px;overflow-wrap:anywhere}
.attendance-confirmation .primary{font-size:13px;min-height:44px;padding:12px 16px}
.attendance-confirmation .icon-button{font-size:22px}
@media(max-width:420px){#center-detail:has(.attendance-confirmation){padding:20px}.attendance-confirmation h2{font-size:20px}}

#center-detail:has(.attendance-entry){width:min(520px,calc(100vw - 32px));padding:28px;box-sizing:border-box}
.attendance-entry{font-size:13px;line-height:1.55;color:#29496e}
.attendance-entry .dialog-top{margin-bottom:20px}.attendance-entry .soft-label{font-size:11px;padding:6px 10px}
.attendance-entry h2{font-size:22px;line-height:1.3;margin:0 0 20px;color:#153761}
.attendance-entry .attendance-student{display:grid;gap:4px;padding:16px 18px;background:#f3f8fe;border:1px solid #e1ecf7;border-radius:12px;margin-bottom:14px}
.attendance-student>span{font-size:11px;color:#7189a4}.attendance-student>strong{font-size:15px;font-weight:600;overflow-wrap:anywhere}.attendance-student>small{font-size:12px;color:#7189a4}
.attendance-entry .attendance-hint,.attendance-entry .muted,.attendance-entry [role=status]{font-size:12px;font-weight:400;color:#7089a3;margin:10px 0 18px;line-height:1.6}
.attendance-entry .student-form{display:grid;gap:18px;margin-top:20px}
.attendance-entry .attendance-pickup{display:grid;gap:7px;font-size:12px;font-weight:500;color:#597796}
.attendance-entry .attendance-pickup select{width:100%;min-width:0;min-height:44px;font:inherit;font-size:13px;font-weight:400;color:#24456b;padding:11px 12px;border:1px solid #d5e3f2;border-radius:10px;background:white}
.attendance-entry .attendance-identity{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid #e1ecf7;border-radius:10px;background:#fbfdff;font-size:12px;font-weight:400;color:#526f8f;line-height:1.55}
.attendance-entry .attendance-identity input{width:18px;height:18px;margin:1px 0 0;flex:0 0 18px}
.attendance-entry .form-feedback:empty{display:none}.attendance-entry .form-feedback{margin:0}
.attendance-entry .form-actions{margin:0;padding-top:4px;gap:12px}
.attendance-entry button{font-size:13px;min-height:42px;padding:11px 18px}.attendance-entry .icon-button{font-size:22px;padding:6px;min-height:32px}
@media(max-width:420px){#center-detail:has(.attendance-entry){padding:20px}.attendance-entry .form-actions{display:grid;grid-template-columns:1fr 1fr}.attendance-entry .form-actions button{padding:11px 8px}.attendance-entry h2{font-size:20px}}
.plan-overview{max-width:780px}.plan-overview .care-section-heading{flex-wrap:wrap}.plan-overview h2{margin:0;font-size:20px}.plan-overview .care-module{margin:20px 0}.plan-overview .care-records{margin-top:22px}
.evaluation-view .learning-section{border-top:1px solid #e0eaf5;padding-top:20px;margin:20px 0}.evaluation-view .care-form{display:grid;gap:16px}.evaluation-view [hidden]{display:none!important}.evaluation-view [data-results]{margin-top:16px}.evaluation-view .learning-pupil{font-size:14px;font-weight:600}.evaluation-view .care-record+.care-record{margin-top:12px}.evaluation-view .care-record .form-actions{margin-top:10px;gap:10px}

/* Academic gradebook: full page, compact labels, scrollable sheet. */
.gradebook-page{--grade-color-0:#3993ef;--grade-color-1:#43bb9c;--grade-color-2:#ffbb42;--grade-color-3:#a573e8;--grade-color-4:#7991aa}.gradebook-page .page-heading{gap:18px;align-items:center;margin-bottom:20px}.gradebook-page h1{font-size:24px;line-height:1.3;letter-spacing:-.5px;margin-bottom:7px}.gradebook-page p{font-size:14px;line-height:1.6}.gradebook-page label,.gradebook-editor label{display:grid;gap:7px;font-size:13px;color:#6883a1;font-weight:400}.gradebook-page input,.gradebook-page select,.gradebook-page textarea,.gradebook-editor input,.gradebook-editor select{width:100%;min-width:0;border:1px solid #d5e2f2;border-radius:9px;background:white;padding:11px 12px;color:#193b65;font:inherit;font-size:14px}.gradebook-heading-copy{min-width:0}.gradebook-page .gradebook-heading-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.gradebook-page .gradebook-heading-meta p{font-size:12px;line-height:1.5;margin:0}.gradebook-page .gradebook-heading-meta .care-state{font-size:10px;line-height:1.4;white-space:nowrap;padding:4px 8px}.gradebook-page .page-heading>[data-new]{font-size:12px;min-height:40px;padding:10px 14px;flex-shrink:0;white-space:nowrap}.gradebook-navigation{background:#fff;border:1px solid #e0e9f4;border-radius:12px;padding:17px 18px 0;margin-bottom:20px;min-width:0}.gradebook-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:14px;margin:0 0 16px}.gradebook-navigation .gradebook-filters label{font-size:11px;font-weight:500;line-height:1.4;gap:6px;color:#627e9b;min-width:0}.gradebook-navigation .gradebook-filters select{font-size:12px;font-weight:400;line-height:1.4;min-height:42px;padding:10px 30px 10px 11px;border-radius:8px;color:#365978;text-overflow:ellipsis}.gradebook-tabs{display:flex;gap:8px;border-top:1px solid #edf2f8;margin:0;overflow-x:auto;padding:5px 0 8px;scrollbar-width:thin}.gradebook-tabs button{white-space:nowrap;border:1px solid transparent;border-radius:7px;padding:10px 12px;min-height:38px;background:transparent;color:#627e9b;font-size:12px;font-weight:500;flex-shrink:0;line-height:1.4}.gradebook-tabs button:hover{background:#f5f9fe;color:#245b8d}.gradebook-tabs button.active{color:#0876d5;background:#eaf5ff;border-color:#dcedfb}.gradebook-tabs button:focus-visible{outline:2px solid #1687ee;outline-offset:-2px}.gradebook-panel{padding:18px!important;min-width:0}.gradebook-toolbar{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:18px}.gradebook-toolbar label{width:min(340px,70%)}.gradebook-table{border-collapse:separate;border-spacing:0;min-width:700px;width:100%;font-size:13px}.gradebook-table th,.gradebook-table td{padding:14px 12px;border-right:1px solid #e5edf6;border-bottom:1px solid #e5edf6;text-align:center;white-space:nowrap}.gradebook-table thead th{background:#f4f8fd;color:#173963}.gradebook-table th:first-child{position:sticky;left:0;background:white;z-index:1;text-align:left;min-width:170px;max-width:230px;white-space:normal}.gradebook-table thead th:first-child{background:#f4f8fd}.gradebook-table th button{border:0;background:none;color:inherit;padding:0;font-size:13px;font-weight:600}.gradebook-table th small{display:block;font-size:11px;font-weight:400;color:#7990aa;margin-top:7px}.gradebook-table .grade-cell{padding:7px 10px;background:transparent;color:#173963;border:1px solid transparent;border-radius:7px;font-size:13px;font-weight:400}.gradebook-table .grade-cell:hover{border-color:#87bdf7;background:#eef6ff}.gradebook-table .pending{background:#fff1d7;color:#986016;font-size:12px}.gradebook-table .grade-average{background:#edf6ff;font-weight:600}.gradebook-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}.gradebook-foot p{font-size:12px;max-width:560px;margin:0;color:#7088a2}.gradebook-foot>div{display:flex;align-items:center;gap:9px;font-size:12px}.gradebook-foot button{padding:8px;font-size:12px}.gradebook-bottom{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.gradebook-bottom h2,.gradebook-settings h2{font-size:17px}.weight-bar{display:flex;height:9px;overflow:hidden;border-radius:9px;margin:20px 0}.weight-labels{display:flex;flex-wrap:wrap;gap:18px;font-size:12px;color:#7388a4}.weight-labels strong{display:block;color:#173963;margin-top:6px;font-size:14px}.evaluation-activity{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid #e1eaf4}.evaluation-activity h3{font-size:16px;margin:0}.evaluation-activity p{margin:8px 0}.rubric-list{font-size:13px;min-width:260px}.rubric-list>div{display:flex;justify-content:space-between;gap:20px;margin:12px 0}.gradebook-settings{max-width:1000px}.gradebook-settings h2:not(:first-child){margin-top:28px}.module-setting{display:flex;justify-content:space-between;align-items:center;gap:18px}.weight-inputs{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin:22px 0}.gradebook-settings details{margin-top:28px;font-size:13px}.gradebook-settings summary{cursor:pointer;color:#087bea;font-weight:500}.gradebook-editor{max-width:1100px;margin:auto}.gradebook-editor .care-view{max-width:850px;margin:auto}.gradebook-editor .care-view>h2{font-size:24px}.gradebook-editor .care-form{max-width:760px}.rubric-builder{border:1px solid #dce8f5;border-radius:12px;padding:18px}.rubric-builder legend{font-size:14px;font-weight:600}.criterion-row{display:grid;grid-template-columns:1fr 110px 44px;gap:12px;align-items:end;margin:12px 0}.criterion-row button{padding:10px}.gradebook-page [hidden],.gradebook-editor [hidden]{display:none!important}@media(max-width:900px){.gradebook-bottom{grid-template-columns:1fr}.gradebook-foot{align-items:start;flex-direction:column}.weight-inputs{grid-template-columns:repeat(2,1fr)}}@media(max-width:540px){.gradebook-page h1{font-size:22px}.gradebook-page .page-heading{align-items:flex-start;flex-direction:column;gap:14px}.gradebook-navigation{padding:14px 14px 0}.gradebook-filters{grid-template-columns:1fr;gap:12px;margin-bottom:14px}.evaluation-activity{align-items:start;flex-direction:column}.criterion-row{grid-template-columns:1fr 75px 35px;gap:6px}.gradebook-tabs{gap:4px}.gradebook-tabs button{font-size:12px;padding:10px}}
.gradebook-table tbody th{font-size:13px;font-weight:500;text-transform:none;letter-spacing:normal}.gradebook-editor .dialog-top button{font-size:14px}.gradebook-editor .dialog-top{margin-bottom:22px}

.period-reports .panel-heading{align-items:center;gap:15px}.report-filters{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}.period-reports [data-observation]{display:grid;gap:15px;max-width:800px;margin:25px auto}.period-reports [data-observation] button{justify-self:start}.period-actions{display:flex;justify-content:flex-end;border-top:1px solid #e0e9f3;padding-top:20px}.report-confirm{max-width:750px}.report-confirm form{display:grid;gap:16px}.period-reports details{font-size:13px;line-height:1.6}.period-reports summary{cursor:pointer;color:#94702c}@media(max-width:600px){.report-filters{grid-template-columns:1fr}.period-reports .panel-heading{align-items:start;flex-direction:column}}
.period-reports label,.report-confirm label{display:grid;gap:7px;font-size:13px;font-weight:400;color:#6883a1}.period-reports input,.period-reports select,.period-reports textarea,.report-confirm textarea{font:inherit;font-size:14px;color:#193b65;min-width:0;width:100%;padding:11px 12px;border:1px solid #d5e2f2;border-radius:9px;background:white}.period-reports textarea,.report-confirm textarea{resize:vertical}.period-reports p,.report-confirm p{font-size:14px;line-height:1.6}.period-reports h2,.report-confirm h2{font-size:21px}

.period-reports [data-observation] h3{font-size:14px;line-height:1.4;margin:0;color:#315777}.period-reports .panel-heading h2{font-size:18px;line-height:1.4}.period-reports .panel-heading p{font-size:12px;color:#6883a1;margin:5px 0 0}.period-reports .care-notice{font-size:12px}
/* Server-dated trial status, separate from classroom notifications. */
.center-trial{margin:0 0 24px;padding:18px 20px;border:1px solid #d5e7f9;border-radius:14px;background:#fff;box-shadow:0 3px 12px #23497004;font-size:12px;color:#365b7d}.center-trial .ct-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.center-trial .ct-label{display:block;font-size:10px;color:#577b9c;margin-bottom:5px}.center-trial h2{font-size:15px;letter-spacing:-.2px;line-height:1.4;margin:0;color:#173b69}.center-trial p{font-size:12px;line-height:1.6;margin:5px 0 0}.center-trial .secondary{white-space:nowrap;font-size:11px}.center-trial summary{font-size:11px;color:#166fba;cursor:pointer;line-height:1.5}.center-trial .ct-details{margin-top:13px}.center-trial .ct-details>p{max-width:820px}.center-trial .ct-facts{display:flex;flex-wrap:wrap;gap:15px 28px;margin:14px 0;color:#5c7692;font-size:11px}.center-trial .ct-facts strong{display:block;color:#294f76;font-weight:600;margin-top:4px}.center-trial .ct-muted{color:#627792;font-size:11px}.center-trial .ct-muted a{color:#166fba;text-decoration:underline}.center-trial .ct-notices{margin-top:14px;padding-top:13px;border-top:1px solid #e6eef8}.center-trial .ct-count{display:inline-block;padding:2px 7px;background:#e6f2ff;border-radius:5px;font-size:10px;margin-left:6px}.center-trial .ct-notice{border:1px solid #e0e9f4;border-radius:10px;background:#fafdff;padding:15px 16px;margin-top:12px}.center-trial .ct-notice.ct-unread{border-left:3px solid #0879de}.center-trial .ct-notice-head{display:flex;justify-content:space-between;gap:12px}.center-trial h3{margin:0;font-size:12px;line-height:1.5;font-weight:600}.center-trial time{font-size:10px;color:#627792;white-space:nowrap}.center-trial .ct-notice p{white-space:pre-line;max-width:820px;margin-top:10px}.center-trial .ct-notice .text-button{font-size:11px;margin-top:10px;padding:0;min-height:30px}.center-trial .ct-error{font-size:11px;color:#92520b}.center-trial.ct-restricted{border-color:#efdba8;background:#fffdf6}.center-trial.ct-restricted .ct-label{color:#8b651d}[data-trial-disabled]{opacity:.5;cursor:not-allowed!important}[data-trial-disabled][hidden]{display:none!important}@media(max-width:600px){.center-trial{padding:15px;margin-bottom:18px}.center-trial .ct-heading{align-items:flex-start;gap:12px;flex-wrap:wrap}.center-trial .ct-heading .secondary{min-height:36px}.center-trial .ct-notice-head{flex-wrap:wrap;gap:5px}.center-trial .ct-notice{padding:12px}}
.center-loading,.refresh-loading{font-family:Arial,Helvetica,sans-serif;color:#16365f;background:#f4f8ff;min-height:100dvh;box-sizing:border-box}.center-loading{display:grid;place-items:center;margin:0;padding:24px;text-align:center}.loading-brand{display:flex;align-items:center;justify-content:center;gap:3px;width:max-content;margin:0 auto}.loading-brand b{font-size:52px;line-height:1;font-weight:700;letter-spacing:-3px;background:linear-gradient(#559ada,#154d86);background-clip:text;color:transparent;padding-right:3px}.loading-brand span{font-size:25px;font-weight:700;line-height:1;letter-spacing:-1px}.loading-brand small{display:block;font-size:9px;font-weight:400;letter-spacing:0;line-height:1.6;margin-top:4px}.center-loading p{font-size:13px;color:#71849c;margin:12px 0;line-height:1.6}.loading-dots{display:inline-flex;gap:6px;align-items:center}.center-loading .loading-dots{margin-top:28px}.loading-dots i{width:6px;height:6px;border-radius:50%;background:#1684df;animation:loading-pulse 1.3s ease-in-out infinite}.loading-dots i:nth-child(2){animation-delay:.16s}.loading-dots i:nth-child(3){animation-delay:.32s}
.refresh-loading{display:grid;grid-template-columns:230px 1fr}.loading-sidebar{padding:30px 24px;background:white;border-right:1px solid #e0e9f4}.loading-sidebar .loading-brand{margin-bottom:40px}.refresh-loading>main{padding:0;min-width:0}.refresh-loading header{background:white;min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 32px;border-bottom:1px solid #e0e9f4}.refresh-loading header .loading-brand{margin:0;transform:scale(.7);transform-origin:left center}.refresh-loading header>span{font-size:12px;color:#71849c;display:flex;align-items:center;gap:12px}.loading-placeholder{padding:32px}.skeleton-line{height:13px;background:#e6eff9;border-radius:6px;margin-bottom:18px;animation:loading-pulse 1.8s ease-in-out infinite}.skeleton-title{height:25px;width:220px;max-width:80%}.skeleton-subtitle{width:350px;max-width:90%;height:12px;margin-bottom:32px}.skeleton-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.skeleton-card{border:1px solid #e0e9f4;border-radius:14px;background:white;padding:24px;min-height:190px}.skeleton-card .skeleton-line:first-child{width:60%;height:18px}.skeleton-card .skeleton-line:nth-child(2){width:40%;margin-bottom:40px}.skeleton-card .skeleton-line:last-child{height:32px;margin:0}
@keyframes loading-pulse{0%,100%{opacity:.45}50%{opacity:1}}
@media(max-width:1350px){.skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.refresh-loading{grid-template-columns:1fr}.loading-sidebar{display:none}.refresh-loading header{padding:14px 18px}.loading-placeholder{padding:24px 17px}}
@media(max-width:620px){.skeleton-grid{grid-template-columns:1fr}.refresh-loading header{gap:0}.refresh-loading header>span{font-size:11px;flex-wrap:wrap}.refresh-loading header .loading-brand{transform:scale(.6);width:145px}}
@media(prefers-reduced-motion:reduce){.loading-dots i,.skeleton-line{animation:none;opacity:.75}}
.organization-branding{max-width:960px;color:#29496e;font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.organization-branding [hidden]{display:none!important}
.organization-branding *{box-sizing:border-box}
.organization-branding .organization-branding-heading{margin:0 0 24px}
.organization-branding h2{font-size:20px;line-height:1.3;font-weight:600;color:#153761;margin:0 0 6px;letter-spacing:-.3px}
.organization-branding h3{font-size:13px;font-weight:600;line-height:1.4;margin:0 0 8px;color:#315777}
.organization-branding p{font-size:13px;font-weight:400;line-height:1.6;margin:0 0 15px;color:#627e9b}
.organization-branding-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;align-items:start}
.organization-branding-settings{min-width:0}
.organization-branding-picker{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:19px 0 8px}
.organization-branding button{font-family:inherit;font-size:12px;font-weight:500;line-height:1.4;min-height:40px;padding:10px 15px;cursor:pointer}
.organization-branding button:disabled{cursor:default;opacity:.5}
.organization-branding button:focus-visible{outline:3px solid #a1ceff;outline-offset:3px}
.organization-branding .organization-branding-remove,.organization-branding .organization-branding-reload{border:0;padding:7px 0;min-height:36px;background:transparent;border-radius:3px;color:#557692;text-decoration:underline;text-underline-offset:3px}
.organization-branding .organization-branding-help{font-size:11px;color:#7189a4;margin:0 0 12px}
.organization-branding .organization-branding-file{font-size:11px;color:#496e92;margin:8px 0 12px}
.organization-branding .organization-branding-saved{font-size:11px;color:#7189a4;border-top:1px solid #e3edf6;padding-top:13px;margin:18px 0 0}
.organization-branding-preview{padding:16px;background:#f4f8fd;border:1px solid #e0eaf5;border-radius:12px;min-width:0}
.organization-branding-caption{display:block;font-size:11px;font-weight:400;color:#7189a4;margin-bottom:12px}
.organization-branding-paper{padding:20px;background:#fff;border:1px solid #dce7f3;border-radius:9px;box-shadow:0 3px 8px #1d47700a}
.organization-branding-paper header{display:flex;align-items:center;gap:12px;margin:0;padding:0;background:none;min-height:64px}
.organization-branding-paper header img{display:block;max-width:92px;max-height:64px;width:auto;height:auto;object-fit:contain;flex:0 0 auto}
.organization-branding-paper header>div{min-width:0}
.organization-branding-paper header strong{display:block;font-size:13px;line-height:1.45;font-weight:600;color:#1e436d}
.organization-branding-paper header span{display:block;font-size:10px;line-height:1.5;color:#7890a8;margin-top:4px}
.organization-branding-lines{display:grid;gap:8px;border-top:1px solid #e7eef7;padding-top:20px;margin-top:17px}
.organization-branding-lines i{display:block;background:#eff4fa;height:5px;border-radius:4px}
.organization-branding-lines i:nth-child(2){width:78%}
.organization-branding-lines i:nth-child(3){width:55%}
.organization-branding .organization-branding-feedback{font-size:12px;color:#377351;background:#f0f9f3;border-radius:9px;padding:11px 13px;margin:20px 0 0}
.organization-branding .organization-branding-feedback.is-error{color:#94535b;background:#fff3f3}
.organization-branding-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:20px;border-top:1px solid #e2ebf5;margin-top:24px}
.organization-branding-actions>span{font-size:11px;font-weight:400;color:#7189a4;margin-right:auto}
@media(max-width:680px){.organization-branding-grid{grid-template-columns:1fr;gap:23px}.organization-branding .organization-branding-heading{margin-bottom:20px}.organization-branding-preview{padding:14px}.organization-branding-paper{padding:16px}.organization-branding-actions{flex-wrap:wrap}.organization-branding-actions>span{flex-basis:100%;margin:0 0 2px}}
#center-detail #student-photo{margin:18px 0 22px}
.student-photo{display:flex;gap:15px;align-items:center;margin:0;padding:0;color:#29496e;font-family:inherit;font-size:12px;line-height:1.5;min-width:0}
.student-photo *{box-sizing:border-box}
.student-photo [hidden]{display:none!important}
.student-photo .student-photo-portrait{flex:0 0 80px;display:flex;align-items:center;justify-content:center;overflow:hidden;width:80px;height:80px;border:1px solid #dce7f3;border-radius:14px;background:#f5f9ff}
.student-photo .student-photo-portrait img{display:block;object-fit:contain;width:100%;height:100%;border:0;border-radius:0}
.student-photo .student-photo-portrait.is-empty>span:first-child{color:#6d91b6;font-size:23px;font-weight:500;line-height:1}
.student-photo .student-photo-content{flex:1;min-width:0;overflow-wrap:anywhere}
.student-photo .student-photo-picker,.student-photo .student-photo-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0}
.student-photo .student-photo-actions{margin-top:10px}
.student-photo button{font-family:inherit;font-size:12px;font-weight:500;line-height:1.4;cursor:pointer;min-height:36px;border-radius:8px;box-shadow:none;letter-spacing:0;text-transform:none;margin:0;flex:none;width:auto}
.student-photo button:focus-visible{outline:3px solid #a1ceff;outline-offset:3px}
.student-photo button:disabled{opacity:.55;cursor:default}
.student-photo .student-photo-button{background:#fff;border:1px solid #cedff3;color:#1762a7;padding:8px 12px}
.student-photo .student-photo-remove,.student-photo .student-photo-retry,.student-photo .student-photo-cancel{background:transparent;border:0;color:#65809b;padding:8px 3px;text-decoration:underline;text-underline-offset:3px}
.student-photo .student-photo-save{background:#087ae3;border:1px solid #087ae3;color:#fff;padding:8px 12px}
.student-photo p{font-size:11px;font-weight:400;line-height:1.5;color:#7890a8;margin:5px 0 0}
.student-photo .student-photo-saved{font-size:10px;margin-top:6px}
.student-photo .student-photo-file{color:#597896}
.student-photo .student-photo-feedback{font-size:11px;color:#587897;margin:7px 0 0}
.student-photo .student-photo-feedback.is-error{color:#98505c}
.student-photo .student-photo-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:420px){.student-photo{gap:12px;align-items:flex-start}.student-photo .student-photo-portrait{width:72px;height:72px;flex-basis:72px}.student-photo .student-photo-picker{gap:5px}.student-photo .student-photo-actions{gap:8px}}
/* Shared application scale. Component sheets below refine their own content. */
.app-shell {
  --ui-title:24px;
  --ui-dialog-title:20px;
  --ui-text:13px;
  --ui-label:11px;
  --ui-control:12px;
  --ui-space:16px;
  --ui-radius:12px;
}
.app-shell .page-heading {gap:16px;margin-bottom:22px}
.app-shell .page-heading h1 {font-size:var(--ui-title);font-weight:700;line-height:1.3;letter-spacing:-.5px;overflow-wrap:anywhere}
.app-shell .page-heading p {font-size:12px;line-height:1.6;max-width:720px}
.app-shell .panel-heading {flex-wrap:wrap;gap:10px}
.app-shell .panel-heading h2 {font-size:16px;line-height:1.4}
.app-shell :where(.primary,.secondary) {font-size:12px;line-height:1.4;min-height:40px;padding:10px 14px;white-space:normal}
.app-shell :where(.icon-button) {min-width:36px;min-height:36px}
.app-shell :where(.primary,.secondary,.icon-button):focus-visible {outline:2px solid #1687ee;outline-offset:3px}
.app-shell :where(button):disabled {cursor:default}
.app-shell .helper-strip {font-size:12px;line-height:1.6;padding:16px;margin-top:20px}
.app-shell .room-filters {padding:16px;background:white;border:1px solid var(--border);border-radius:var(--ui-radius);gap:14px}
.app-shell .room-filters label:first-child {max-width:none}
.app-shell .room-filters label:not(:first-child) {flex:0 1 240px}
.app-shell .center-sync-note {font-size:12px;line-height:1.5;color:#627e9b;background:#eef5fc;border:1px solid #dfebf7;border-radius:9px;padding:10px 13px;margin:0 0 16px}
.app-shell .center-sync-note[hidden],#center-site-switch:empty {display:none}
.app-shell .directory .filters {align-items:end;gap:14px;padding-bottom:18px}
.app-shell .directory .filters>.filter-field {flex:0 1 210px;min-width:140px;max-width:100%}
.app-shell .directory .filters>.filter-grow {flex:1 1 240px}
.app-shell .directory .filters input,.app-shell .directory .filters select {font-size:12px;min-height:42px;height:auto;line-height:1.4;padding:10px 12px}
.app-shell .directory .filters .text-button {min-height:42px;font-size:12px;padding:10px}
.app-shell .directory .results-count {font-size:11px;margin:16px 0}
.app-shell .directory table {font-size:12px}
.app-shell .directory th {font-size:11px;font-weight:500;padding:12px}
.app-shell .directory td {padding:14px 12px}
.app-shell .directory .student-link {min-height:32px}
.app-shell .directory .student-link strong {font-size:12px;font-weight:600}
.app-shell .status {font-size:10px;line-height:1.4}
.app-shell .compact-classrooms .classroom-actions button {min-height:40px;font-size:11px;line-height:1.4}
.app-shell .compact-classrooms .classroom-footer-actions>.secondary {min-height:40px;font-size:12px}
.app-shell .compact-classrooms .classroom-site {font-size:12px}
.app-shell .compact-classrooms .teacher,.app-shell .compact-classrooms .classroom-enrollment-status {font-size:11px;line-height:1.5}
.app-shell .center-context {font-size:12px}

/* Baseline for legacy record, enrollment, contact and history windows. */
#center-detail {font-size:13px;line-height:1.55;padding:24px;max-height:calc(100dvh - 40px);width:min(580px,calc(100vw - 32px));overflow-wrap:anywhere;overscroll-behavior:contain}
#center-detail>.dialog-top {margin-bottom:18px;gap:12px}
#center-detail>.dialog-top .soft-label {font-size:11px;line-height:1.4;font-weight:400}
#center-detail>.dialog-top .icon-button {font-size:20px;flex-shrink:0}
#center-detail>h2 {font-size:20px;line-height:1.35;letter-spacing:-.3px;margin:0 0 12px;font-weight:700}
#center-detail>h3 {font-size:14px;line-height:1.4;margin:22px 0 12px}
#center-detail>p {font-size:12px;line-height:1.6;margin:10px 0 16px}
#center-detail :where(.student-form) {gap:16px;margin-top:20px}
#center-detail :where(.student-form) label {font-size:11px;color:#627e9b;font-weight:500;line-height:1.5;gap:6px;min-width:0}
#center-detail :where(.student-form) input:not([type=checkbox]):not([type=radio]),
#center-detail :where(.student-form) select,
#center-detail :where(.student-form) textarea {font-family:inherit;font-size:13px;font-weight:400;line-height:1.5;min-height:42px;padding:10px 12px;border:1px solid #d5e2f2;border-radius:8px;color:#29496e;max-width:100%}
#center-detail :where(.student-form) textarea {min-height:90px;resize:vertical}
#center-detail :where(.student-form) label small {font-size:11px;line-height:1.5}
#center-detail :where(.student-form) .check-field {font-size:12px;font-weight:400;align-items:flex-start;gap:10px}
#center-detail :where(.student-form) input[type=checkbox],
#center-detail :where(.student-form) input[type=radio] {width:18px;height:18px;min-height:18px;padding:0;margin:1px 0 0;flex:0 0 18px}
#center-detail :where(.student-form) fieldset {padding:16px;border-color:#e0e9f4;border-radius:12px;gap:14px}
#center-detail :where(.student-form) legend {font-size:12px;font-weight:500;color:#365978}
#center-detail :where(.student-form) .muted {font-size:12px;line-height:1.6;margin:0}
#center-detail :where(.form-actions) {gap:12px;flex-wrap:wrap;align-items:center}
#center-detail>.form-actions,#center-detail>.student-form>.form-actions {border-top:1px solid #e5edf6;padding-top:16px;margin-top:4px}
#center-detail :where(.primary,.secondary) {font-size:12px;min-height:40px;padding:10px 14px;line-height:1.4}
#center-detail :where(.form-feedback) {font-size:12px;line-height:1.6}
#center-detail :where(.form-feedback:empty) {display:none}
#center-detail>.wide {margin-top:16px}
#student-registration {grid-template-columns:repeat(2,minmax(0,1fr))}
#student-registration>:is(p,fieldset,.form-actions) {grid-column:1/-1}
#center-detail .setup-steps {gap:8px;margin:18px 0}
#center-detail .setup-steps :is(span,button) {font-size:11px;line-height:1.4;padding:10px 12px;min-height:38px;font-weight:500}
#center-detail .setup-steps .selected {background:#eaf5ff;color:#0876d5;border-color:#cde4f9}
#center-detail>.setup-records {gap:12px;margin:18px 0}
#center-detail>.setup-records>div {padding:16px;background:#fbfdff;border-color:#e0e9f4;border-radius:12px}
#center-detail>.setup-records strong {font-size:13px;font-weight:600}
#center-detail>.setup-records p {font-size:12px;line-height:1.6;margin:8px 0}
#center-detail>.setup-records .form-actions {margin-top:14px}
#center-detail>.detail-grid {gap:18px 24px;padding:20px 0}
#center-detail>.detail-grid>div {min-width:0}
#center-detail>.detail-grid small {font-size:11px;margin-bottom:5px;line-height:1.4;color:#627e9b}
#center-detail>.detail-grid strong {font-size:13px;line-height:1.5;font-weight:500;display:block}
.student-record-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.student-record-actions>button {margin:0;min-height:44px}
.student-record-actions>[data-setup],.student-record-actions>[data-support] {grid-column:1/-1}
#student-allergy-alert {font-size:12px;line-height:1.6;margin:18px 0}
#center-detail .student-photo button {min-height:40px}

@media(max-width:760px) {
  .app-shell {--ui-title:22px}
  .app-shell .page-heading {gap:12px}
  .app-shell .page-heading p {font-size:12px}
  .app-shell .directory .filters {gap:12px}
  .app-shell .room-filters label:last-child {flex:auto}
}
@media(max-width:520px) {
  #student-registration {grid-template-columns:1fr}
  #center-detail {padding:20px;max-height:calc(100dvh - 24px)}
  #center-detail>h2 {font-size:18px}
  #center-detail>.detail-grid {gap:16px 18px}
  .student-record-actions {grid-template-columns:1fr}
  .student-record-actions>[data-setup],.student-record-actions>[data-support] {grid-column:auto}
  .app-shell .directory .filters>.filter-field {flex:1 1 100%}
  .app-shell .rooms-heading {flex-wrap:wrap}
  #center-detail :where(.form-actions)>button {flex:1 1 auto;max-width:100%}
}
@media(prefers-reduced-motion:reduce) {.app-shell * {scroll-behavior:auto}}
/* Care and attendance dialogs follow DESIGN-REFERENCE.md. The direct dialog
   child scope intentionally excludes the gradebook page, editor and reports. */
#center-detail:has(> :is(.support-view,.medication-view,.incident-view,.care-view)) {
  width:min(660px,calc(100vw - 32px));
  max-height:min(88vh,calc(100dvh - 32px));
  padding:24px;
  box-sizing:border-box;
}
dialog > :is(.attendance-entry,.attendance-confirmation,.support-view,.medication-view,.incident-view,.care-view) {
  min-width:0;
  font-size:13px;
  line-height:1.55;
  color:#29496e;
  overflow-wrap:anywhere;
}
dialog > :is(.attendance-entry,.attendance-confirmation,.support-view,.medication-view,.incident-view,.care-view) .dialog-top {
  gap:12px;
  margin-bottom:20px;
}
dialog > :is(.attendance-entry,.attendance-confirmation,.support-view,.medication-view,.incident-view,.care-view) .soft-label {
  font-size:11px;
  font-weight:400;
  line-height:1.4;
  padding:6px 9px;
}
dialog > :is(.attendance-entry,.attendance-confirmation,.support-view,.medication-view,.incident-view,.care-view) h2 {
  font-size:20px;
  font-weight:600;
  line-height:1.3;
  letter-spacing:-.35px;
  margin:0 0 8px;
  color:#173b66;
}
dialog > :is(.attendance-entry,.attendance-confirmation,.support-view,.medication-view,.incident-view,.care-view) h3 {
  font-size:13px;
  font-weight:600;
  line-height:1.45;
  letter-spacing:0;
  margin:0 0 10px;
  color:#315779;
}
dialog > :is(.attendance-entry,.attendance-confirmation,.support-view,.medication-view,.incident-view,.care-view) p {
  font-size:13px;
  line-height:1.6;
}
dialog > :is(.support-view,.medication-view,.incident-view,.care-view) :is(.muted,.care-muted,.care-meta,.incident-caption,.incident-author,[role="status"]) {
  font-size:12px;
  font-weight:400;
  color:#6b819a;
  line-height:1.6;
}
dialog > :is(.support-view,.medication-view,.incident-view,.care-view) :is(.support-student,.med-student,.incident-student) {
  font-size:13px;
  font-weight:500;
  color:#597592;
  margin:0 0 20px;
}
dialog > :is(.attendance-entry,.attendance-confirmation,.support-view,.medication-view,.incident-view,.care-view) :is(.primary,.secondary,.text-button) {
  min-height:40px;
  max-width:100%;
  padding:10px 14px;
  font-size:12px;
  font-weight:600;
  line-height:1.45;
  border-radius:8px;
  white-space:normal;
}
dialog > :is(.attendance-entry,.attendance-confirmation,.support-view,.medication-view,.incident-view,.care-view) .icon-button {
  min-width:36px;
  min-height:36px;
  padding:6px;
  flex-shrink:0;
  font-size:22px;
  line-height:1;
}
dialog > :is(.attendance-entry,.attendance-confirmation,.support-view,.medication-view,.incident-view,.care-view) :is(button,input,select,textarea,summary):focus-visible {
  outline:2px solid #1687ee;
  outline-offset:3px;
}
dialog > :is(.attendance-entry,.support-view,.medication-view,.incident-view,.care-view) :is(.student-form,.care-form) {
  display:grid;
  gap:16px;
  margin-top:20px;
  min-width:0;
}
dialog > :is(.attendance-entry,.support-view,.medication-view,.incident-view,.care-view) label {
  min-width:0;
  display:grid;
  gap:6px;
  font-size:11px;
  font-weight:500;
  line-height:1.5;
  color:#627e9b;
}
dialog > :is(.attendance-entry,.support-view,.medication-view,.incident-view,.care-view) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  width:100%;
  min-width:0;
  max-width:100%;
  min-height:42px;
  box-sizing:border-box;
  border:1px solid #d5e2f2;
  border-radius:8px;
  background:#fff;
  padding:10px 12px;
  color:#365978;
  font:inherit;
  font-size:13px;
  font-weight:400;
  line-height:1.45;
}
dialog > :is(.attendance-entry,.support-view,.medication-view,.incident-view,.care-view) textarea {resize:vertical;}
dialog > :is(.attendance-entry,.support-view,.medication-view,.incident-view,.care-view) .check-field {
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:12px;
  font-weight:400;
  color:#526f8f;
}
dialog > :is(.attendance-entry,.support-view,.medication-view,.incident-view,.care-view) :is(input[type="checkbox"],input[type="radio"]) {
  width:18px;
  height:18px;
  min-height:18px;
  margin:1px 0 0;
  flex:0 0 18px;
  accent-color:#0879de;
}
dialog > :is(.attendance-entry,.support-view,.medication-view,.incident-view,.care-view) .form-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}
dialog > :is(.attendance-entry,.support-view,.medication-view,.incident-view,.care-view) form > .form-actions {
  border-top:1px solid #e8eef6;
  padding-top:16px;
  margin-top:0;
}
dialog > :is(.support-view,.medication-view,.incident-view,.care-view) > .wide {margin-top:20px;}

/* Information and histories share the same quiet card treatment. */
dialog > .support-view .support-fields {
  border:1px solid #e0e9f4;
  border-radius:12px;
  padding:18px;
  margin:0;
  gap:16px;
  background:#fff;
}
dialog > .support-view .support-fields legend {
  padding:0 7px;
  font-size:12px;
  font-weight:600;
  color:#315779;
}
dialog > .support-view .support-fields h3 {
  border-top:1px solid #edf2f8;
  padding-top:16px;
  margin:4px 0 0;
}
dialog > .support-view .support-fields > p {margin:0;font-size:12px;}
dialog > :is(.support-view,.medication-view) .support-history,
dialog > .care-view :is(.care-future,.learning-objectives) {
  border:1px solid #e0e9f4;
  border-radius:12px;
  padding:14px 16px;
  background:#fff;
  margin:20px 0;
}
dialog > :is(.support-view,.medication-view) .support-history summary,
dialog > .care-view :is(.care-future,.learning-objectives) summary {
  padding:2px 0;
  cursor:pointer;
  font-size:12px;
  line-height:1.5;
  font-weight:500;
  color:#315779;
}
dialog > :is(.support-view,.medication-view) .support-history :is(p,strong,b) {font-size:12px;}
dialog > :is(.support-view,.medication-view) .support-history :is(strong,b) {font-weight:500;}
dialog > :is(.support-view,.medication-view) .support-history .panel {
  padding:14px;
  margin-top:12px;
  border-radius:10px;
  background:#f8fbff;
  box-shadow:none;
}
dialog > .medication-view .med-section {
  padding:18px;
  margin:0 0 16px;
  border-color:#e0e9f4;
  border-radius:12px;
  background:#fff;
}
dialog > .medication-view .med-toolbar {justify-content:flex-start;margin:18px 0 20px;}
dialog > .medication-view .med-section-heading {gap:12px;flex-wrap:wrap;}
dialog > .medication-view .med-date {font-size:11px;font-weight:400;}
dialog > :is(.medication-view,.incident-view) .setup-records {gap:12px;margin:16px 0;}
dialog > :is(.medication-view,.incident-view) .setup-records > div {padding:14px;border-color:#e0e9f4;background:#f8fbff;}
dialog > :is(.medication-view,.incident-view) .setup-records strong {font-size:13px;font-weight:600;}
dialog > :is(.attendance-entry,.medication-view,.incident-view) .allergy-alert {
  padding:14px 16px;
  margin:18px 0;
  border-left-width:3px;
  font-size:12px;
}
dialog > :is(.attendance-entry,.medication-view,.incident-view) .allergy-alert p {font-size:12px;margin:7px 0 0;}
dialog > .incident-view .incident-facts {gap:16px;padding:16px;margin-bottom:20px;}
dialog > .incident-view dt {font-size:11px;}
dialog > .incident-view dd {font-size:13px;font-weight:500;}
dialog > .incident-view .incident-actions {gap:10px;padding-top:18px;margin:20px 0;}
dialog > .incident-view .incident-narrative {gap:18px;}
dialog > .incident-view .incident-narrative p {margin:0;font-size:13px;}
dialog > .incident-view .incident-badges span {font-size:11px;font-weight:500;}
dialog > .incident-view :is(.incident-author,.incident-event-heading time) {font-size:11px;}

/* Classroom modules stay compact even with several active modules. */
dialog > .care-view > .care-muted {font-size:12px;margin:0 0 16px;}
dialog > .care-view .care-module {
  padding:16px;
  margin:18px 0;
  gap:12px;
  border-color:#e0e9f4;
  border-radius:12px;
  background:#fff;
}
dialog > .care-view .care-module > div {min-width:0;flex:1 1 220px;}
dialog > .care-view .care-module p {font-size:12px;margin:0;}
dialog > .care-view :is(.care-state,.learning-state) {font-size:11px;font-weight:400;}
dialog > .care-view .care-section-heading {gap:12px;margin-bottom:16px;}
dialog > .care-view .care-section-heading h3 {margin:0;}
dialog > .care-view .care-filters {
  grid-template-columns:minmax(120px,.8fr) minmax(0,1.4fr) auto;
  border:1px solid #e0e9f4;
  border-radius:12px;
  background:#fff;
  padding:14px;
  gap:12px;
}
dialog > .care-view :is(.care-filters,.care-time-fields,.criterion-row) > * {min-width:0;}
dialog > .care-view :is(.care-daily,.learning-section) {padding-top:20px;margin:20px 0;border-top:1px solid #e0e9f4;}
dialog > .care-view .care-counts {grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0;}
dialog > .care-view .care-counts > div {padding:12px;border:1px solid #e5edf6;border-radius:10px;}
dialog > .care-view .care-counts strong {font-size:18px;font-weight:600;}
dialog > .care-view .care-counts span {font-size:11px;}
dialog > .care-view .care-record {padding:16px;border-color:#e0e9f4;border-radius:12px;background:#fff;}
dialog > .care-view .care-record.voided {background:#f7f9fb;}
dialog > .care-view .care-record-heading {flex-wrap:wrap;gap:8px 12px;}
dialog > .care-view .care-record-heading > strong {min-width:0;font-size:13px;font-weight:600;}
dialog > .care-view .care-record-heading > span {white-space:normal;}
dialog > .care-view .care-record .care-meta {font-size:11px;}
dialog > .care-view .care-notes {font-size:13px;}
dialog > .care-view .care-empty {border:1px dashed #dce7f3;border-radius:12px;padding:24px 16px;background:#fbfdff;}
dialog > .care-view .care-empty strong {font-size:13px;font-weight:500;}
dialog > .care-view .care-empty p {font-size:12px;}
dialog > .care-view :is(.learning-pupil,.learning-progress strong) {font-size:13px;font-weight:500;}
dialog > .care-view .learning-progress > div {background:#fff;border-color:#e0e9f4;}
dialog > .care-view .learning-progress small {font-size:11px;}
dialog > .care-view .rubric-builder {padding:16px;border-color:#e0e9f4;border-radius:12px;}
dialog > .care-view .rubric-builder legend {font-size:12px;font-weight:500;}

dialog > .attendance-entry h2 {margin-bottom:18px;}
dialog > .attendance-entry .attendance-student {padding:14px 16px;gap:5px;}
dialog > .attendance-entry .attendance-student strong {font-size:14px;font-weight:500;}
dialog > .attendance-entry .attendance-student :is(span,small) {font-size:11px;}
dialog > .attendance-entry .attendance-identity {padding:14px;line-height:1.6;}
dialog > .attendance-confirmation .attendance-pupil {font-size:13px;font-weight:500;margin-bottom:20px;}
dialog > .attendance-confirmation .attendance-receipt {padding:16px;border-radius:12px;gap:16px;}
dialog > .attendance-confirmation .attendance-author {font-size:12px;margin:16px 0 20px;}

@media(max-width:540px) {
  #center-detail:has(> :is(.support-view,.medication-view,.incident-view,.care-view)) {padding:20px;}
  dialog > :is(.attendance-entry,.attendance-confirmation,.support-view,.medication-view,.incident-view,.care-view) h2 {font-size:18px;}
  dialog > :is(.support-view,.medication-view) :is(.support-fields,.med-section) {padding:14px;}
  dialog > :is(.attendance-entry,.support-view,.medication-view,.incident-view,.care-view) .form-actions > button {flex:1 1 150px;}
  dialog > .attendance-entry .form-actions {display:flex;}
  dialog > .care-view .care-filters {grid-template-columns:1fr;}
  dialog > .care-view .care-counts {grid-template-columns:repeat(2,minmax(0,1fr));}
  dialog > .care-view .care-module > button {width:100%;}
  dialog > .care-view .care-time-fields {grid-template-columns:1fr;}
  dialog > .care-view .criterion-row {grid-template-columns:minmax(0,1fr) 70px 40px;gap:8px;}
  dialog > .care-view .criterion-row button {padding:8px;}
}
/* Academic workspaces use DESIGN-REFERENCE.md. The approved navigation and
   the student-report / PDF sheet keep their own styles. */
.gradebook-page [data-tab-body] > .panel,
.gradebook-bottom > .panel,
.gradebook-editor {
  border-color: #e0e9f4;
  border-radius: 12px;
  padding: 20px;
}
.gradebook-page [data-tab-body] > .panel:not(.period-reports) > h2,
.gradebook-page [data-tab-body] > .panel > .panel-heading h2,
.gradebook-bottom h2,
.gradebook-settings h2 {
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: -.2px;
}
.gradebook-page [data-tab-body] > .panel > .panel-heading {
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 4px;
}
.gradebook-page [data-tab-body] > .panel > .panel-heading > span {
  font-size: 11px;
  font-weight: 400;
  color: #68809a;
}
.gradebook-page [data-tab-body] > .panel:not(.period-reports) > p,
.gradebook-bottom p,
.gradebook-settings p,
.evaluation-activity p {
  font-size: 12px;
  line-height: 1.6;
  color: #627792;
  overflow-wrap: anywhere;
}
.gradebook-page > .care-notice {
  font-size: 12px;
  line-height: 1.6;
  margin: 0 0 16px;
}
.gradebook-panel button,
.gradebook-bottom button,
.evaluation-activity button,
.gradebook-settings button,
.period-reports > .panel-heading button,
.period-reports [data-observation] button,
.period-actions button,
.report-confirm button {
  min-height: 40px;
  padding: 10px 14px;
  font-size: 12px;
  line-height: 1.4;
  font-weight: 600;
  border-radius: 8px;
  max-width: 100%;
}
.gradebook-toolbar {
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
  margin-bottom: 16px;
}
.gradebook-toolbar label {
  flex: 1 1 240px;
  width: auto;
  max-width: 360px;
}
.gradebook-toolbar label,
.gradebook-settings label,
.period-reports .report-filters label,
.period-reports [data-observation] label,
.report-confirm label {
  min-width: 0;
  display: grid;
  gap: 6px;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 500;
  color: #627e9b;
}
.gradebook-toolbar input,
.gradebook-settings input,
.gradebook-settings textarea,
.period-reports .report-filters select,
.period-reports [data-observation] input,
.period-reports [data-observation] textarea,
.report-confirm textarea {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid #d5e2f2;
  border-radius: 8px;
  background: #fff;
  color: #365978;
  font-family: inherit;
  font-size: 12px;
  line-height: 1.5;
  font-weight: 400;
}
.gradebook-settings textarea,
.period-reports [data-observation] textarea,
.report-confirm textarea {
  resize: vertical;
  min-height: 88px;
}
.gradebook-panel .table-scroll {
  max-width: 100%;
  border: 1px solid #e5edf6;
  border-radius: 9px;
}
.gradebook-table th,
.gradebook-table td {
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.5;
  vertical-align: middle;
}
.gradebook-table tbody th {
  font-size: 12px;
  font-weight: 500;
}
.gradebook-table th button {
  min-height: 40px;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 4px;
  max-width: 220px;
  white-space: normal;
  overflow-wrap: anywhere;
}
.gradebook-table th small {
  font-size: 10px;
  line-height: 1.4;
  margin-top: 4px;
}
.gradebook-table .grade-cell {
  min-height: 40px;
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 400;
}
.gradebook-table .grade-cell.pending {
  font-size: 11px;
  background: #fff7e8;
  color: #866322;
}
.gradebook-table .grade-average {
  font-size: 13px;
  font-weight: 500;
}
.gradebook-foot {
  gap: 16px;
  margin-top: 16px;
}
.gradebook-foot p {
  font-size: 11px;
  line-height: 1.6;
}
.gradebook-foot > div {
  flex-wrap: wrap;
  gap: 8px;
  color: #68809a;
  font-size: 11px;
}
.gradebook-foot button {
  padding: 9px 11px;
  flex-shrink: 0;
}
.gradebook-bottom {
  gap: 16px;
  margin-top: 16px;
}
.gradebook-bottom .weight-bar {
  height: 7px;
  margin: 16px 0;
}
.gradebook-bottom .weight-labels {
  gap: 12px 20px;
  font-size: 11px;
  line-height: 1.5;
}
.gradebook-bottom .weight-labels strong {
  font-size: 13px;
  font-weight: 500;
  margin-top: 3px;
}
.gradebook-bottom .text-button {
  margin-top: 12px;
  padding-left: 0;
  font-weight: 500;
}
.gradebook-panel .empty-state,
.gradebook-page [data-tab-body] > .panel > .empty-state {
  padding: 36px 16px;
}
.gradebook-panel .empty-state h2,
.gradebook-page [data-tab-body] > .panel > .empty-state h2 {
  font-size: 16px;
  line-height: 1.4;
}
.gradebook-panel .empty-state p,
.gradebook-page [data-tab-body] > .panel > .empty-state p {
  font-size: 12px;
}
.evaluation-activity {
  align-items: center;
  gap: 16px;
  padding: 18px 0;
}
.evaluation-activity:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.evaluation-activity > div {
  min-width: 0;
  flex: 1;
}
.evaluation-activity h3 {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.evaluation-activity p {
  margin: 5px 0 8px;
}
.evaluation-activity > button {
  flex-shrink: 0;
}
.evaluation-activity .soft-label {
  display: inline-block;
  font-size: 10px;
  line-height: 1.5;
}
.evaluation-activity .rubric-list {
  min-width: 0;
  max-width: 520px;
  font-size: 12px;
  line-height: 1.5;
  margin: 12px 0 0;
  padding: 12px 14px;
  border: 1px solid #e4edf7;
  background: #f8fbff;
  border-radius: 9px;
}
.evaluation-activity .rubric-list > div {
  gap: 16px;
  margin: 0;
  padding: 6px 0;
}
.evaluation-activity .rubric-list dt {
  min-width: 0;
  overflow-wrap: anywhere;
  color: #466481;
}
.evaluation-activity .rubric-list dd {
  margin: 0;
  white-space: nowrap;
  color: #627e9b;
  font-size: 11px;
}
.gradebook-settings .module-setting {
  flex-wrap: wrap;
  gap: 12px;
  margin: 16px 0;
  padding: 14px 16px;
  border: 1px solid #e2edf8;
  background: #f5faff;
  border-radius: 10px;
}
.gradebook-settings .module-setting p {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
}
.gradebook-settings h2:not(:first-child) {
  margin-top: 24px;
}
.gradebook-settings .weight-inputs {
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 14px;
  margin: 18px 0;
}
.gradebook-settings [data-policy] > p {
  margin: 12px 0;
  font-size: 11px;
}
.gradebook-settings details {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #e5edf6;
  font-size: 12px;
  line-height: 1.6;
}
.gradebook-settings details summary {
  padding: 8px 0;
  min-height: 40px;
  font-size: 12px;
  font-weight: 500;
  color: #246ba9;
}
.gradebook-settings .care-record {
  margin-top: 12px;
  padding: 14px;
  border-radius: 10px;
}
.gradebook-settings .care-record strong {
  font-size: 12px;
  font-weight: 600;
}
.gradebook-settings .care-record p {
  margin: 6px 0;
}
.gradebook-settings .care-record small {
  font-size: 10px;
  color: #70869e;
}

/* Evaluation editor, result entry and their confirmation states. */
.evaluation-view {
  min-width: 0;
  color: #29496e;
  font-size: 13px;
  overflow-wrap: anywhere;
}
.evaluation-view .dialog-top {
  gap: 12px;
  margin-bottom: 16px;
}
.evaluation-view h2 {
  font-size: 20px;
  line-height: 1.35;
  margin: 0 0 8px;
}
.gradebook-editor .evaluation-view > h2 {
  font-size: 24px;
}
.evaluation-view h3 {
  font-size: 14px;
  line-height: 1.45;
  margin: 0 0 10px;
}
.evaluation-view > h3 {
  margin-top: 20px;
}
.evaluation-view .care-muted,
.evaluation-view .care-notes,
.evaluation-view .care-notice {
  font-size: 12px;
  line-height: 1.6;
}
.evaluation-view .care-meta {
  font-size: 10px;
  line-height: 1.5;
}
.evaluation-view .care-module {
  border-radius: 10px;
  padding: 14px 16px;
  margin: 18px 0;
}
.evaluation-view .care-module h3 {
  font-size: 13px;
  margin-bottom: 4px;
}
.evaluation-view .learning-section {
  padding-top: 18px;
  margin: 18px 0;
}
.evaluation-view .care-section-heading {
  margin-bottom: 14px;
  gap: 12px;
}
.evaluation-view .care-section-heading h3 {
  margin: 0;
}
.evaluation-view .learning-pupil {
  font-size: 14px;
  line-height: 1.5;
  font-weight: 600;
  margin: 10px 0 4px;
}
.evaluation-view .care-form {
  gap: 16px;
  margin-top: 18px;
}
.gradebook-editor .evaluation-view .care-form:has([name=title]) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 18px;
}
.gradebook-editor .evaluation-view .care-form:has([name=title]) > :is(label:has([name=title]), label:has([name=description]), fieldset, p, .form-actions) {
  grid-column: 1 / -1;
}
.evaluation-view label {
  min-width: 0;
  gap: 6px;
  color: #627e9b;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 500;
}
.evaluation-view input,
.evaluation-view select,
.evaluation-view textarea {
  min-height: 42px;
  padding: 10px 12px;
  color: #365978;
  border-color: #d5e2f2;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.5;
  font-weight: 400;
}
.evaluation-view textarea {
  min-height: 88px;
  font-family: inherit;
}
.evaluation-view button {
  min-height: 40px;
  max-width: 100%;
  font-size: 12px;
  line-height: 1.4;
  padding: 10px 14px;
}
.evaluation-view .icon-button {
  min-width: 40px;
  font-size: 20px;
  padding: 8px;
}
.gradebook-editor .evaluation-view .dialog-top button {
  font-size: 12px;
  font-weight: 500;
}
.evaluation-view .form-actions {
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}
.evaluation-view [data-results] {
  margin-top: 16px;
}
.evaluation-view .care-record {
  padding: 14px 16px;
  border-radius: 10px;
}
.evaluation-view .care-record-heading {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}
.evaluation-view .care-record strong {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}
.evaluation-view .care-record-heading .learning-state {
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
  margin: 0;
  padding: 5px 8px;
  border-radius: 6px;
}
.evaluation-view .rubric-builder {
  min-width: 0;
  margin: 0;
  padding: 14px 16px 16px;
  border-radius: 10px;
  background: #f8fbff;
}
.evaluation-view .rubric-builder legend {
  padding: 0 6px;
  font-size: 12px;
  line-height: 1.5;
  font-weight: 600;
}
.evaluation-view .rubric-builder > p {
  margin: 4px 0 12px;
}
.evaluation-view .criterion-row {
  grid-template-columns: minmax(0, 1fr) 92px 40px;
  gap: 12px;
  margin: 12px 0;
}
.evaluation-view .criterion-row button {
  min-height: 42px;
  padding: 8px;
  font-size: 18px;
}
.evaluation-view [role=status]:empty,
.period-reports [data-observation] [role=status]:empty,
.report-confirm [role=status]:empty {
  display: none;
}
.evaluation-view textarea:focus-visible,
.gradebook-settings textarea:focus-visible,
.period-reports [data-observation] textarea:focus-visible,
.report-confirm textarea:focus-visible {
  outline: 3px solid #1687ee;
  outline-offset: 3px;
}

/* Controls around a report are independent of its frozen/printable sheet. */
.period-reports > .panel-heading {
  align-items: center;
  gap: 14px;
}
.period-reports > .panel-heading h2 {
  font-size: 16px;
  line-height: 1.4;
}
.period-reports .report-filters {
  gap: 14px;
  margin: 18px 0;
  padding: 16px;
  border: 1px solid #e2ebf6;
  border-radius: 10px;
  background: #f8fbff;
}
.period-reports .report-filters select {
  padding-right: 30px;
  text-overflow: ellipsis;
}
.period-reports > .care-notice,
.period-reports > p,
.period-reports > details {
  font-size: 12px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.period-reports > details {
  padding: 12px 14px;
  margin: 14px 0;
  background: #fffaf0;
  border: 1px solid #f0e4c8;
  border-radius: 9px;
}
.period-reports > details summary {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  min-height: 40px;
  padding: 7px 0;
}
.period-reports > details ul {
  padding-left: 18px;
  margin-bottom: 0;
}
.period-reports [data-observation] {
  max-width: 840px;
  gap: 14px;
  margin: 20px auto;
  padding: 18px;
  border: 1px solid #e0e9f4;
  border-radius: 10px;
  background: #f8fbff;
}
.period-reports [data-observation] h3 {
  font-size: 13px;
  line-height: 1.5;
  font-weight: 600;
}
.period-reports [data-observation] [role=status] {
  margin: 0;
  font-size: 12px;
  line-height: 1.6;
}
.period-actions {
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 18px;
  margin-top: 20px;
}
.report-confirm {
  padding: 20px;
  border-radius: 12px;
  overflow-wrap: anywhere;
}
.report-confirm h2 {
  font-size: 20px;
  line-height: 1.4;
  margin: 0 0 12px;
}
.report-confirm p {
  font-size: 12px;
  line-height: 1.6;
  color: #627792;
  margin: 10px 0;
}
.report-confirm p strong {
  font-size: 13px;
  font-weight: 600;
  color: #365978;
}
.report-confirm form {
  gap: 16px;
  margin-top: 20px;
}
.report-confirm .form-actions {
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 4px;
}
@media (max-width: 600px) {
  .period-reports > .panel-heading {
    align-items: flex-start;
  }
  .gradebook-page [data-tab-body] > .panel,
  .gradebook-bottom > .panel,
  .gradebook-editor,
  .report-confirm {
    padding: 16px;
  }
  .gradebook-toolbar label {
    max-width: none;
  }
  .gradebook-foot > div {
    width: 100%;
  }
  .gradebook-settings .weight-inputs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .gradebook-editor .evaluation-view > h2 {
    font-size: 22px;
  }
  .gradebook-editor .evaluation-view .care-form:has([name=title]) {
    grid-template-columns: minmax(0, 1fr);
  }
  .evaluation-view .dialog-top {
    flex-wrap: wrap;
  }
  .evaluation-view .care-record {
    padding: 14px;
  }
  .period-reports .report-filters,
  .period-reports [data-observation] {
    padding: 14px;
  }
}
@media (max-width: 420px) {
  .gradebook-toolbar > button {
    width: 100%;
  }
  .evaluation-activity > button {
    width: 100%;
  }
  .evaluation-view .rubric-builder {
    padding: 12px;
  }
  .evaluation-view .criterion-row {
    grid-template-columns: minmax(0, 1fr) 40px;
    gap: 8px;
    padding: 12px 0;
    border-top: 1px solid #e3ecf7;
  }
  .evaluation-view .criterion-row > label:first-child {
    grid-column: 1 / -1;
  }
  .evaluation-view .form-actions > button,
  .report-confirm .form-actions > button {
    flex: 1 1 130px;
  }
  .period-reports [data-observation] > button,
  .period-actions > button {
    width: 100%;
  }
}
/* Personal, plan y configuración: misma escala que la referencia visual vigente. */
.center-settings .page-heading {margin-bottom:20px;gap:16px}
.center-settings .page-heading h1 {font-size:24px;line-height:1.3;letter-spacing:-.5px;margin-bottom:7px}
.center-settings .page-heading p {font-size:13px;line-height:1.6}
.center-settings-nav {display:flex;flex-wrap:wrap;gap:8px;background:#fff;border:1px solid #e0e9f4;border-radius:12px;padding:8px;margin-bottom:20px}
.center-settings-nav a {display:flex;align-items:center;min-height:40px;padding:10px 14px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:500;line-height:1.4;color:#627e9b}
.center-settings-nav a:hover {background:#f5f9fe;color:#245b8d}
.center-settings-nav a[aria-current="page"] {background:#eaf5ff;color:#0876d5;border-color:#dcedfb}
.center-settings-nav a:focus-visible {outline:2px solid #1687ee;outline-offset:2px}
.room-filters.single-site label {flex:1 1 auto}

#staff-panel,
.staff-dialog,
#location-plan,
.plan-dialog,
#organization-branding {
  min-width:0;
  color:#29496e;
  font-size:13px;
  line-height:1.55;
  overflow-wrap:anywhere;
}

#staff-panel .panel,
#location-plan .panel,
#organization-branding .panel {
  padding:20px;
  border:1px solid #e0e9f4;
  border-radius:12px;
  background:#fff;
  box-shadow:0 3px 12px #23497004;
}

#staff-panel :is(.primary,.secondary),
.staff-dialog :is(.primary,.secondary),
#location-plan button,
.plan-dialog button,
#organization-branding button {
  min-height:40px;
  padding:10px 14px;
  font-size:12px;
  font-weight:500;
  line-height:1.4;
  border-radius:8px;
}

#staff-panel :is(button,input,select,summary):focus-visible,
.staff-dialog :is(button,input,select,summary):focus-visible,
#location-plan button:focus-visible,
.plan-dialog :is(button,input):focus-visible {
  outline:2px solid #1687ee;
  outline-offset:3px;
}

/* Equipo y perfiles: la navegación queda separada de la acción principal. */
#staff-panel .staff-toolbar {gap:12px;margin:0 0 18px;align-items:center}
#staff-panel .staff-tabs {gap:6px;max-width:100%}
#staff-panel .staff-tabs button {
  background:transparent;
  border-color:transparent;
  color:#627e9b;
  white-space:normal;
}
#staff-panel .staff-tabs button:hover {background:#f5f9fe;color:#245b8d}
#staff-panel .staff-tabs button[aria-pressed="true"] {color:#0876d5;background:#eaf5ff;border-color:#dcedfb}
#staff-panel .helper-strip {margin:0 0 18px;padding:13px 15px;font-size:12px;line-height:1.6;border-radius:10px}
#staff-panel .staff-notice {margin:0 0 18px;padding:13px 15px;font-size:12px;line-height:1.6;border:1px solid #dceafa}
#staff-panel .staff-filters {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,200px);
  align-items:end;
  gap:14px;
  padding:0 0 18px;
  margin:0;
}
#staff-panel .staff-filters .filter-field {display:grid;gap:6px;min-width:0}
#staff-panel .staff-filters :is(label,label>span) {font-size:11px;font-weight:500;line-height:1.4;color:#627e9b}
#staff-panel .staff-filters :is(input,select) {height:42px;font-size:12px;font-weight:400;line-height:1.4;color:#365978;padding:10px 12px;border-color:#d5e3f2;border-radius:8px}
#staff-panel .results-count {font-size:11px;margin:16px 0;color:#71849c}
#staff-panel .table-scroll {max-width:100%;margin:0;overflow-x:auto}
#staff-panel table {font-size:12px}
#staff-panel th {font-size:11px;font-weight:500;padding:12px;color:#627e9b;background:#f6f9fd}
#staff-panel td {font-size:12px;padding:13px 12px;vertical-align:middle}
#staff-panel .student-link {min-height:40px;max-width:260px;white-space:normal}
#staff-panel .student-link strong {font-size:12px;font-weight:600;line-height:1.5}
#staff-panel .staff-subtitle {font-size:11px;max-width:260px;white-space:normal;margin:0;color:#71849c}
#staff-panel .status {font-size:10px;font-weight:500;white-space:nowrap}
#staff-panel .empty-state {padding:38px 18px}
#staff-panel .empty-state h2 {font-size:16px;font-weight:600;line-height:1.4;margin:0 0 8px}
#staff-panel .empty-state p {font-size:12px;line-height:1.6;margin:0 auto;max-width:440px}
#staff-panel .staff-role-grid {gap:16px}
#staff-panel .staff-role h2 {font-size:16px;font-weight:600;line-height:1.4;letter-spacing:-.2px;margin:0 0 7px}
#staff-panel .staff-role p {font-size:12px;line-height:1.6;margin:0 0 16px}
#staff-panel .staff-role summary {min-height:40px;padding:9px 0;font-size:12px;font-weight:500;line-height:1.6}
#staff-panel .staff-role ul {font-size:12px;line-height:1.7;margin:8px 0 0;padding-left:18px;overflow-wrap:anywhere}
#staff-panel .staff-role li+li {margin-top:6px}

/* Ficha, edición e invitaciones de colaboradores. */
#center-detail:has(>.staff-dialog) {width:min(640px,calc(100vw - 32px));padding:24px;box-sizing:border-box}
.staff-dialog .dialog-top {gap:12px;margin-bottom:18px}
.staff-dialog .dialog-top .icon-button,
.plan-dialog .dialog-top .icon-button {width:40px;min-width:40px;height:40px;min-height:40px;padding:8px;font-size:22px;line-height:1}
.staff-dialog h2 {font-size:20px;font-weight:600;line-height:1.35;letter-spacing:-.3px;margin:0 0 8px}
.staff-dialog h3 {font-size:13px;font-weight:600;line-height:1.4;margin:0 0 8px}
.staff-dialog p {font-size:12px;font-weight:400;line-height:1.6;margin:0 0 16px}
.staff-dialog .soft-label,
.plan-dialog .soft-label {display:inline-block;font-size:10px;font-weight:500;line-height:1.5;padding:5px 8px;border-radius:7px}
.staff-dialog .staff-heading-status {gap:8px;margin:16px 0}
.staff-dialog .status {font-size:10px;font-weight:500}
.staff-dialog .staff-facts {gap:16px 20px;padding:16px;margin:0 0 18px;border-color:#e0e9f4;border-radius:12px;background:#f7faff}
.staff-dialog dt {font-size:11px;font-weight:500;line-height:1.4;color:#627e9b;margin-bottom:6px}
.staff-dialog dd {font-size:13px;font-weight:400;line-height:1.5;color:#29496e;overflow-wrap:anywhere}
.staff-dialog .staff-assigned {margin:18px 0;padding:0 0 18px;border-bottom:1px solid #e7eef6}
.staff-dialog .staff-assigned :is(p,ul) {margin:0;font-size:12px;line-height:1.6}
.staff-dialog .staff-assigned li+li {margin-top:6px}
.staff-dialog :is(.staff-access-summary,.staff-access-scope) {border-color:#e0e9f4;border-radius:12px;background:#f7faff;padding:16px;margin:18px 0}
.staff-dialog :is(.staff-access-summary,.staff-access-scope) p:last-child {margin-bottom:0}
.staff-dialog .staff-access-summary p {margin-bottom:12px}
.staff-dialog .staff-access-scope strong {font-weight:500}
.staff-dialog .staff-notice {padding:12px 14px;margin:16px 0;font-size:12px;line-height:1.6;border:1px solid #dceafa;border-radius:10px}
.staff-dialog .student-form {gap:18px;margin-top:18px}
.staff-dialog .staff-form-grid {gap:16px}
.staff-dialog .student-form label {font-size:11px;font-weight:500;line-height:1.4;color:#627e9b;gap:6px;min-width:0}
.staff-dialog .student-form label small {font-size:10px}
.staff-dialog :is(input:not([type="checkbox"]),select) {min-height:42px;padding:10px 12px;border:1px solid #d5e3f2;border-radius:8px;background:#fff;font-family:inherit;font-size:13px;font-weight:400;line-height:1.4;color:#29496e}
.staff-dialog .student-form>p {margin:0}
.staff-dialog .student-form .staff-classrooms {padding:16px;gap:10px;border-color:#e0e9f4;border-radius:12px;background:#fff}
.staff-dialog .staff-classrooms legend {font-size:11px;font-weight:500;line-height:1.5;color:#627e9b;padding:0 6px}
.staff-dialog .staff-classrooms p {margin:0;font-size:12px}
.staff-dialog .staff-classrooms .check-field {font-size:12px;font-weight:400;line-height:1.5;min-height:40px;gap:10px;align-items:center;color:#365978}
.staff-dialog .staff-classrooms input[type="checkbox"] {width:18px;height:18px;min-width:18px;padding:0;margin:0;accent-color:#0879de}
.staff-dialog .form-actions {gap:10px;flex-wrap:wrap;margin-top:2px;padding-top:18px;border-top:1px solid #e7eef6}
.staff-dialog .form-feedback {margin:0;font-size:12px;line-height:1.6}
.staff-dialog .form-feedback:empty {display:none}
.staff-dialog .staff-history {margin-top:20px;padding-top:16px;border-color:#e0e9f4}
.staff-dialog .staff-history summary {min-height:40px;padding:9px 0;font-size:12px;font-weight:500;line-height:1.6}
.staff-dialog .staff-history>p {margin:6px 0 12px;font-size:11px}
.staff-dialog .staff-history-entry {padding:14px;margin:12px 0 0;border-color:#e0e9f4;border-radius:10px;background:#f8fbff}
.staff-dialog .staff-history-entry strong {font-size:12px;font-weight:600}
.staff-dialog .staff-history-entry p {font-size:11px;margin:5px 0 0}
.staff-dialog .staff-history-entry dl {margin:14px 0 0;gap:12px}
.staff-dialog .staff-history-entry dd {font-size:12px}
.staff-dialog .staff-invite-result {padding:16px;margin-top:18px;border-color:#e0e9f4;border-radius:12px}
.staff-dialog .staff-invite-result label {font-size:11px;line-height:1.4;gap:6px;color:#627e9b}
.staff-dialog .staff-invite-result input {font-size:12px}
.staff-dialog .staff-invite-result p {margin:12px 0 0}

/* Módulos y sedes: capacidad compacta y acciones con su propio espacio. */
#location-plan .plan-overview {max-width:860px}
#location-plan .plan-student-capacity {margin-bottom:18px}
#location-plan .plan-capacity-facts {display:flex;flex-wrap:wrap;gap:16px 40px;margin:18px 0 12px}
#location-plan .plan-capacity-facts>div {display:grid;gap:5px}
#location-plan .plan-capacity-facts span {font-size:11px;line-height:1.4;color:#627e9b}
#location-plan .plan-capacity-facts strong {font-size:15px;line-height:1.4;font-weight:600;color:#29496e}
#location-plan .plan-capacity-meter {display:block;width:100%;height:6px;margin:0 0 14px;border:0;border-radius:6px;overflow:hidden;appearance:none;background:#eaf2fb;accent-color:#087de2}
#location-plan .plan-capacity-meter::-webkit-progress-bar {border-radius:6px;background:#eaf2fb}
#location-plan .plan-capacity-meter::-webkit-progress-value {border-radius:6px;background:#087de2}
#location-plan .plan-capacity-meter::-moz-progress-bar {border-radius:6px;background:#087de2}
#location-plan .plan-capacity-full {padding:10px 12px;border:1px solid #efdcae;border-radius:8px;background:#fffaf0;color:#715519}
#location-plan .plan-capacity-help {padding-top:14px;margin-bottom:0;border-top:1px solid #e7eef6}
#location-plan .care-section-heading {gap:12px;margin-bottom:10px;align-items:center}
#location-plan .care-section-heading h2 {font-size:16px;font-weight:600;line-height:1.4;letter-spacing:-.2px;margin:0}
#location-plan .soft-label {font-size:10px;line-height:1.5;font-weight:500;padding:5px 8px}
#location-plan p {font-size:12px;line-height:1.6;margin:0 0 16px}
#location-plan .care-module {gap:16px;padding:16px;margin:18px 0;background:#f4f9ff;border-radius:12px;border-color:#dfeaf6}
#location-plan .care-module h3 {font-size:13px;font-weight:600;line-height:1.4;margin:0 0 6px}
#location-plan .care-module p {font-size:12px;line-height:1.6;margin:0}
#location-plan .care-module>button {flex-shrink:0}
#location-plan .care-records {gap:10px;margin:18px 0 0;padding-top:18px;border-top:1px solid #e7eef6}
#location-plan .care-record {padding:14px 16px;border-radius:10px;border-color:#e0e9f4}
#location-plan .care-record-heading {align-items:center;gap:12px;font-size:13px}
#location-plan .care-record-heading strong {font-size:13px;font-weight:500;min-width:0}
#location-plan .care-record-heading .care-state {font-size:10px;line-height:1.5;font-weight:500;flex-shrink:0}
#center-detail:has(>.plan-dialog) {width:min(520px,calc(100vw - 32px));padding:24px;box-sizing:border-box}
.plan-dialog .dialog-top {margin-bottom:18px;gap:12px}
.plan-dialog h2 {font-size:20px;font-weight:600;line-height:1.35;letter-spacing:-.3px;margin:0 0 8px}
.plan-dialog h3 {font-size:13px;font-weight:600;line-height:1.4;margin:0 0 8px}
.plan-dialog p {font-size:12px;line-height:1.6;margin:0 0 16px}
.plan-dialog .care-module {padding:16px;margin:18px 0;border-radius:12px;border-color:#e0e9f4;background:#f7faff}
.plan-dialog .care-module p {margin:0}
.plan-dialog .care-form {gap:18px;margin-top:18px}
.plan-dialog .care-form label {font-size:11px;font-weight:500;line-height:1.4;gap:6px;color:#627e9b}
.plan-dialog .care-form input {min-height:42px;font-size:13px;font-weight:400;line-height:1.4;padding:10px 12px;border-radius:8px;color:#29496e}
.plan-dialog .care-form p {margin:0}
.plan-dialog [role="status"]:empty {display:none}
.plan-dialog .form-actions {gap:10px;flex-wrap:wrap;padding-top:18px;border-top:1px solid #e7eef6}
.plan-dialog>.wide {margin-top:4px}

/* Logo: conserva la vista previa del boletín sin agrandar las ayudas. */
#organization-branding .organization-branding-heading {margin-bottom:20px}
#organization-branding .organization-branding-heading h2 {font-size:16px;line-height:1.4;letter-spacing:-.2px}
#organization-branding .organization-branding-grid {gap:24px}
#organization-branding .organization-branding p {font-size:12px;line-height:1.6}
#organization-branding .organization-branding :is(.organization-branding-help,.organization-branding-file,.organization-branding-saved) {font-size:11px}
#organization-branding .organization-branding-picker {gap:12px;margin:16px 0 8px}
#organization-branding :is(.organization-branding-remove,.organization-branding-reload) {padding:9px 6px;min-height:40px;font-size:12px}
#organization-branding .organization-branding-actions {gap:10px;padding-top:18px;margin-top:20px}

@media(max-width:680px) {
  #staff-panel .staff-role-grid {grid-template-columns:minmax(0,1fr)}
  #staff-panel .staff-filters {grid-template-columns:minmax(0,1fr);gap:12px}
  #staff-panel .staff-toolbar {align-items:flex-start}
  #staff-panel .staff-tabs {flex-wrap:wrap}
  #organization-branding .organization-branding-grid {gap:20px}
}
@media(max-width:520px) {
  #staff-panel .panel,
  #location-plan .panel,
  #organization-branding .panel {padding:16px}
  #center-detail:has(>.staff-dialog),
  #center-detail:has(>.plan-dialog) {padding:20px}
  .staff-dialog .staff-form-grid,
  .staff-dialog .staff-facts {grid-template-columns:minmax(0,1fr)}
  .staff-dialog .form-actions>button,
  .plan-dialog .form-actions>button {flex:1 1 120px}
  #location-plan .care-module>button {width:100%}
  #location-plan .care-section-heading {align-items:flex-start}
}

/* Each independently contracted site keeps a compact quota card. */
#location-plan .plan-site-capacity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
#location-plan .plan-site-capacity-grid .care-record{margin:0;padding:18px;min-width:0}
#location-plan .plan-site-capacity-grid .care-record-heading{align-items:flex-start;gap:12px}
#location-plan .plan-site-capacity-grid .care-state{white-space:normal;text-align:right}
#location-plan .plan-site-capacity-grid .plan-capacity-facts{display:grid;gap:10px;margin:16px 0 12px}
#location-plan .plan-site-capacity-grid .plan-capacity-facts>div{display:flex;justify-content:space-between;gap:16px;align-items:baseline}
#location-plan .plan-site-capacity-grid .plan-capacity-facts strong{font-size:13px;font-weight:600;text-align:right}
@media(max-width:700px){#location-plan .plan-site-capacity-grid{grid-template-columns:minmax(0,1fr)}}
/* Student expediente: same compact blue/white scale as the rest of the center. */
.student-record-page{display:grid;gap:18px;color:#29496e;font-size:13px;line-height:1.6;min-width:0;max-width:1280px;margin:0 auto;overflow-wrap:anywhere}
.student-record-page *{box-sizing:border-box}
.student-record-page [hidden]{display:none!important}
.student-record-page :is(h1,h2,h3,h4,p,dl,dd,ol){margin:0}
.student-record-page h1{font-size:24px;line-height:1.35;font-weight:700;letter-spacing:-.4px;color:#173b68}
.student-record-page h2{font-size:16px;line-height:1.45;font-weight:650;color:#23466e}
.student-record-page :is(h3,h4){font-size:13px;line-height:1.5;font-weight:600;color:#294d74}
.student-record-page p{font-size:12px;line-height:1.65}
.student-record-page :is(button,a){font-family:inherit}
.student-record-page button{font-size:12px;font-weight:500;line-height:1.4;cursor:pointer}
.student-record-page :is(button,a,select,input):focus-visible{outline:2px solid #1687ee;outline-offset:3px}
.student-record-page button:disabled{cursor:default;opacity:.6}
.student-record-page .sr-page-heading,.student-record-page .sr-identity-top,.student-record-page .sr-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;min-width:0}
.student-record-page .sr-page-heading{gap:8px}
.student-record-page .sr-back{display:inline-flex;align-items:center;min-height:40px;font-size:12px;font-weight:500;color:#176cba;text-decoration:none}
.student-record-page .sr-meta,.student-record-page .sr-muted{font-size:11px;line-height:1.6;color:#71869f;font-weight:400}
.student-record-page .sr-panel,.student-record-page .sr-card{border:1px solid #e0e9f4;border-radius:12px;padding:20px;background:#fff;min-width:0;display:grid;gap:16px;align-content:start}
.student-record-page .sr-identity{padding:24px;gap:20px}
.student-record-page .sr-identity-top>div{min-width:0;flex:1 1 250px}
.student-record-page .sr-identity-top>.secondary{flex:none;min-height:40px;margin:0;align-self:flex-start}
.student-record-page .sr-identity-top>.sr-identity-actions{flex:0 0 auto;align-self:flex-start;display:grid;gap:8px;max-width:100%}
.student-record-page .sr-identity-actions button{width:100%;min-height:38px;margin:0;padding:9px 13px;font-size:11px}
.student-record-page .sr-identity-actions .sr-status-action--deactivate{color:#9c5260;border-color:#ecdde1;background:#fff}
.student-record-page .sr-identity-actions .sr-status-action--deactivate:hover{background:#fff7f8;border-color:#e2c6ce}
.student-record-page .sr-eyebrow{font-size:10px;letter-spacing:.6px;font-weight:500;color:#6b87a2;margin-bottom:7px}
.student-record-page .sr-identity-meta{display:flex;gap:10px 16px;align-items:center;flex-wrap:wrap;color:#6a829a;font-size:12px;margin-top:8px}
.student-record-page .sr-identity-bottom{display:grid;grid-template-columns:minmax(200px,1fr) minmax(200px,1.2fr);align-items:center;gap:24px;border-top:1px solid #edf2f8;padding-top:20px}
.student-record-page .sr-header-facts,.student-record-page .sr-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;min-width:0}
.student-record-page :is(.sr-header-facts,.sr-facts)>div{min-width:0}
.student-record-page dt{font-size:11px;color:#7089a3;line-height:1.45;margin-bottom:5px;font-weight:400}
.student-record-page dd{font-size:13px;line-height:1.55;font-weight:500;white-space:pre-wrap;color:#29496e}
.student-record-page .sr-navigation{display:flex;align-items:stretch;gap:6px;padding:7px;background:#fff;border:1px solid #e0e9f4;border-radius:12px;flex-wrap:wrap}
.student-record-page .sr-navigation>button{flex:1 1 auto;border:1px solid transparent;border-radius:8px;min-height:42px;background:transparent;color:#5c7795;padding:10px 14px;white-space:normal}
.student-record-page .sr-navigation>button:hover{background:#f5f9ff}
.student-record-page .sr-navigation>button[aria-current=page]{background:#edf6ff;border-color:#d7e9fb;color:#0776d4}
.student-record-page #student-record-content,.student-record-page .sr-health,.student-record-page [data-sr-health-content]{display:grid;gap:18px;min-width:0}
.student-record-page #student-record-content:focus{outline:none}
.student-record-page .sr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.student-record-page .sr-list,.student-record-page .sr-records{display:grid;gap:12px;min-width:0}
.student-record-page .sr-item,.student-record-page .sr-record{display:grid;gap:10px;min-width:0;padding:16px;border:1px solid #e4edf7;background:#fbfdff;border-radius:10px}
.student-record-page .sr-item strong,.student-record-page .sr-record strong{font-size:13px;font-weight:600}
.student-record-page .sr-item p,.student-record-page .sr-record p{white-space:pre-wrap}
.student-record-page .sr-empty{padding:20px;color:#72869e;text-align:center;background:#f8fbff;border:1px dashed #dfeaf6;border-radius:10px;font-size:12px}
.student-record-page .sr-note{padding:12px 14px;background:#f1f7ff;border:1px solid #e0ecf9;border-radius:9px;color:#647f9a;font-size:11px}
.student-record-page .sr-section-heading p{margin-top:4px}
.student-record-page .sr-link{border:0;background:none;padding:8px 0;min-height:36px;color:#0876d5;max-width:100%;text-align:left}
.student-record-page .sr-status,.student-record-page .sr-chip{display:inline-flex;align-items:center;gap:5px;justify-self:start;border:1px solid #dfeaf5;border-radius:6px;background:#f2f7fd;padding:4px 8px;font-size:10px;font-weight:500;line-height:1.5;color:#567592}
.student-record-page .sr-status--green{background:#edf9f1;color:#3c7c57;border-color:#dbeee2}
.student-record-page .sr-status--blue{background:#edf6ff;color:#3677b3}
.student-record-page .sr-status--muted{background:#f6f8fb;color:#778ca2}
.student-record-page .sr-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.student-record-page .sr-actions:empty{display:none}
.student-record-page .sr-actions button{margin:0;max-width:100%}
.student-record-page .sr-tabs,.student-record-page .sr-module-tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.student-record-page :is(.sr-tabs,.sr-module-tabs)>button{border:1px solid #dfe9f4;border-radius:8px;background:#fff;color:#64809d;min-height:40px;padding:9px 13px}
.student-record-page :is(.sr-tabs,.sr-module-tabs)>button:is([aria-pressed=true],[aria-selected=true],[aria-current=page],.active){background:#eaf5ff;color:#1179cf;border-color:#cfe4f9}
.student-record-page .sr-timeline{display:grid;gap:12px;list-style:none;padding:0}
.student-record-page .sr-timeline>li{display:grid;gap:8px;padding:14px 16px;border-left:2px solid #d5e7f9;background:#f9fcff;border-radius:0 9px 9px 0}
.student-record-page .sr-timeline strong{font-size:12px;font-weight:600}
.student-record-page .sr-timeline :is(time,small){font-size:11px;color:#748ba2}
.student-record-page .sr-divider{border-top:1px solid #e8eff7}
.student-record-page .sr-birthday{display:flex;gap:12px;align-items:center;background:#fff9eb;border:1px solid #f3e7c8;border-radius:12px;padding:14px 20px;color:#796340}
.student-record-page .sr-birthday strong{font-size:12px;font-weight:600}
.student-record-page .sr-avatar{display:flex;align-items:center;justify-content:center;background:#edf5fd;border:1px solid #dce7f3;border-radius:14px;width:80px;height:80px;font-size:23px;color:#7196ba}
.student-record-page .sr-allergy-summary .allergy-alert{margin:0;font-size:12px}
.student-record-page .sr-allergy-summary strong{font-size:12px}
.student-record-page .sr-filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px}
.student-record-page .sr-filters label{display:grid;gap:6px;min-width:0;flex:1 1 180px;font-size:11px;color:#6b85a0;font-weight:400}
.student-record-page :is(select,input){font-family:inherit;font-size:12px;font-weight:400;line-height:1.5;color:#29496e;border:1px solid #d5e2f2;border-radius:8px;background:#fff;padding:10px 12px;min-height:42px;width:100%;min-width:0;max-width:100%}
.student-record-page details>summary{cursor:pointer;font-size:12px;font-weight:500;color:#38668e;padding:10px 0;min-height:40px}
.student-record-page details[open]>summary{margin-bottom:10px}
@media(max-width:900px){.student-record-page .sr-grid{grid-template-columns:1fr}}
@media(max-width:600px){.student-record-page .sr-identity-bottom{grid-template-columns:1fr;gap:18px}.student-record-page .sr-header-facts{border-top:1px solid #edf2f8;padding-top:16px}}
@media(max-width:520px){.student-record-page{gap:14px}.student-record-page h1{font-size:22px}.student-record-page .sr-panel,.student-record-page .sr-card,.student-record-page .sr-identity{padding:16px}.student-record-page .sr-page-heading>.sr-meta{display:none}.student-record-page .sr-navigation{gap:5px}.student-record-page .sr-navigation>button{flex:1 1 calc(50% - 5px);padding:10px 8px;font-size:11px}.student-record-page .sr-header-facts,.student-record-page .sr-facts{gap:16px}.student-record-page .sr-identity-top{gap:14px}.student-record-page .sr-actions{justify-content:flex-start}.student-record-page .sr-actions button{flex:1 1 auto}.student-record-page .sr-section-heading{align-items:flex-start}.student-record-page .sr-item,.student-record-page .sr-record{padding:13px}}

.student-record-page [data-sr-module-content]{display:grid;gap:16px;min-width:0}

/* Compact summary cards respond to available content width, not viewport width. */
.student-record-page .sr-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:14px;align-items:stretch;min-width:0}
.student-record-page .sr-overview-card{padding:16px 18px;gap:12px}
.student-record-page .sr-overview-card .sr-section-heading{gap:8px;min-height:32px}
.student-record-page .sr-overview-card h2{font-size:14px}
.student-record-page .sr-overview-card .sr-link{font-size:11px;min-height:32px;padding:6px 0}
.student-record-page .sr-overview-facts{display:grid;grid-template-columns:1fr;gap:0;min-width:0}
.student-record-page .sr-overview-facts>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:baseline;padding:9px 0;border-bottom:1px solid #edf2f8;min-width:0}
.student-record-page .sr-overview-facts>div:first-child{padding-top:0}
.student-record-page .sr-overview-facts>div:last-child{border-bottom:0;padding-bottom:0}
.student-record-page .sr-overview-facts dt{font-size:11px;margin:0}
.student-record-page .sr-overview-facts dd{font-size:12px;font-weight:500;text-align:right;margin:0}

/* Student lifecycle confirmation stays within the same restrained dialog scale. */
#center-detail .student-status-dialog{display:grid;gap:18px;color:#29496e;font-size:12px;line-height:1.6}
#center-detail .student-status-dialog :is(h2,h3,p){margin:0}
#center-detail .student-status-dialog .dialog-top{margin:0;gap:12px}
#center-detail .student-status-dialog .soft-label{font-size:11px;font-weight:400;line-height:1.4}
#center-detail .student-status-dialog .icon-button{font-size:20px;flex-shrink:0}
#center-detail .student-status-dialog h2{font-size:20px;line-height:1.35;letter-spacing:-.3px;color:#173b68}
#center-detail .student-status-dialog .student-status-name{font-size:13px;font-weight:500;margin-top:7px;color:#526f8e;overflow-wrap:anywhere}
#center-detail .student-status-dialog .student-status-summary{display:grid;gap:9px;padding:14px 16px;border:1px solid #e1ebf6;border-radius:10px;background:#f7fbff}
#center-detail .student-status-dialog p{font-size:12px;line-height:1.6}
#center-detail .student-status-dialog .student-form{display:grid;gap:12px;margin:0}
#center-detail .student-status-dialog label{display:grid;gap:7px;font-size:11px;font-weight:500;color:#627e9b}
#center-detail .student-status-dialog .student-status-help{font-size:11px;color:#71869f}
#center-detail .student-status-dialog .student-status-feedback{font-size:12px;color:#8a5360;background:#fff8f9;border:1px solid #efdde2;border-radius:8px;padding:10px 12px}
#center-detail .student-status-dialog .student-status-feedback:empty{display:none}
#center-detail .student-status-dialog .form-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e8eff7;padding-top:16px;margin-top:4px}
#center-detail .student-status-dialog .student-status-confirm{font:inherit;font-size:12px;font-weight:500;line-height:1.4;min-height:40px;padding:10px 14px;border:1px solid #9c5260;border-radius:8px;background:#9c5260;color:#fff;cursor:pointer}
#center-detail .student-status-dialog .student-status-confirm:disabled{opacity:.6;cursor:default}
#center-detail .student-status-dialog :is(button,textarea):focus-visible{outline:2px solid #1687ee;outline-offset:3px}
#center-detail .student-status-dialog .student-status-success{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid #dcecdf;border-radius:10px;background:#f3faf5}
#center-detail .student-status-dialog .student-status-success>span{display:flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#deefe3;color:#42724e;font-size:16px}
#center-detail .student-status-dialog .student-status-success h3{font-size:14px;line-height:1.5;font-weight:600;color:#315e3d}
#center-detail .student-status-dialog .student-status-success p{font-size:12px;margin-top:4px;color:#607e69}
@media(max-width:520px){.student-record-page .sr-identity-top>.sr-identity-actions{grid-template-columns:1fr;min-width:150px}#center-detail .student-status-dialog{gap:16px}#center-detail .student-status-dialog h2{font-size:18px}}
.student-record-page .sf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.student-record-page .sf-section-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:10px}
.student-record-page .sf-card{display:grid;gap:14px;border:1px solid #e1eaf5;border-radius:11px;padding:18px;min-width:0;background:#fff}
.student-record-page .sf-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.student-record-page .sf-card-header>div{min-width:0}
.student-record-page .sf-card-header h3{font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.student-record-page .sf-card-header .sr-link{flex:0 0 auto;font-size:11px;min-height:30px;padding:4px 0;max-width:130px;text-align:right}
.student-record-page .sf-card-header .sr-meta{margin-top:3px}
.student-record-page .sf-contact-details{display:grid;gap:8px}
.student-record-page .sf-contact-details>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;align-items:baseline}
.student-record-page .sf-contact-details dt{margin:0;font-size:11px}
.student-record-page .sf-contact-details dd{font-size:12px;overflow-wrap:anywhere}
.student-record-page .sf-permissions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}
.student-record-page .sf-permissions .sr-status{font-size:10px;line-height:1.5}
.student-record-page .sf-access-slot{padding-top:14px;border-top:1px solid #e9eff7;min-width:0}
.student-record-page .sf-access-slot .guardian-access{border-top:0;padding-top:0}
.student-record-page .sf-existing-account{font-size:11px;padding:8px 0;margin-top:4px;text-align:left}
.student-record-page [data-family-existing-action]:empty{display:none}
.student-record-page .sf-footer-note{font-size:11px;color:#74899f;margin:0}
.student-record-page [data-family-new]:empty,.student-record-page [data-family-extra]:empty{display:none}
.student-record-page .sf-editing{border:1px solid #cfe2f7;background:#fafdff;border-radius:11px;padding:18px;min-width:0}
@media(max-width:850px){.student-record-page .sf-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:520px){.student-record-page .sf-card,.student-record-page .sf-editing{padding:14px}.student-record-page .sf-card-header{gap:10px}.student-record-page .sf-card-header .sr-link{max-width:105px}.student-record-page .sf-contact-details>div{grid-template-columns:85px minmax(0,1fr)}}
.family-contact-editor{display:grid;gap:18px;min-width:0;padding:20px;border:1px solid #dfe9f4;border-radius:12px;background:#fff;color:#29496e;font-size:12px;line-height:1.6}
.family-contact-editor *{box-sizing:border-box}
.family-contact-editor [hidden]{display:none!important}
.family-contact-editor :is(h3,h4,p,fieldset){margin:0}
.family-contact-editor .fce-heading{display:grid;gap:5px}
.family-contact-editor .fce-heading h3{font-size:15px;line-height:1.5;font-weight:650;color:#23466e}
.family-contact-editor .fce-heading p,.family-contact-editor .fce-help{font-size:11px;line-height:1.6;color:#71869f}
.family-contact-editor form{display:grid;gap:16px;min-width:0;margin:0}
.family-contact-editor .fce-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;min-width:0}
.family-contact-editor label{display:grid;gap:6px;min-width:0;font-size:11px;font-weight:500;line-height:1.5;color:#627e9b}
.family-contact-editor input:not([type=checkbox]),.family-contact-editor select{width:100%;max-width:100%;min-width:0;min-height:42px;padding:10px 12px;border:1px solid #d5e2f2;border-radius:8px;background:#fff;color:#29496e;font-family:inherit;font-size:12px;font-weight:400;line-height:1.5}
.family-contact-editor .fce-authorizations{display:grid;gap:16px;min-width:0;padding:16px;border:1px solid #e2ebf5;border-radius:10px;background:#fbfdff}
.family-contact-editor .fce-authorizations legend{padding:0 6px;font-size:12px;font-weight:500;color:#456787}
.family-contact-editor .fce-authorization{display:grid;gap:9px;min-width:0}
.family-contact-editor .fce-authorization+.fce-authorization{border-top:1px solid #e7eef7;padding-top:14px}
.family-contact-editor .fce-check{display:flex;align-items:flex-start;gap:10px;font-size:12px;font-weight:400;color:#365978}
.family-contact-editor input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;min-height:18px;margin:1px 0 0;padding:0;accent-color:#0879de}
.family-contact-editor .fce-priority{grid-template-columns:1fr;gap:3px;width:min(200px,calc(100% - 28px));margin-left:28px}
.family-contact-editor .fce-priority input{margin-top:3px}
.family-contact-editor .fce-priority small,.family-contact-editor .fce-authorization>p{font-size:11px;font-weight:400;line-height:1.5;color:#71869f}
.family-contact-editor .fce-authorization>p{margin-left:28px}
.family-contact-editor .fce-feedback{font-size:12px;line-height:1.6;color:#315475;border:1px solid #dce9f6;border-radius:8px;padding:10px 12px;background:#f3f8fe}
.family-contact-editor .fce-feedback:empty{display:none}
.family-contact-editor .fce-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding-top:16px;border-top:1px solid #e8eff7}
.family-contact-editor .fce-actions button{font-family:inherit;font-size:12px;font-weight:500;line-height:1.4;min-height:40px;padding:10px 14px;max-width:100%;margin:0;border-radius:8px;white-space:normal;cursor:pointer}
.family-contact-editor :is(input,select,button):focus-visible{outline:2px solid #1687ee;outline-offset:3px}
.family-contact-editor :is(input,select,button):disabled{opacity:.6;cursor:default}
.family-contact-editor .fce-saved{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #deede3;border-radius:10px;background:#f3faf6}
.family-contact-editor .fce-saved>span{display:flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#dfeee4;color:#42724e;font-size:16px}
.family-contact-editor .fce-saved h4{font-size:13px;font-weight:600;line-height:1.5;color:#315e3d}
.family-contact-editor .fce-saved p{font-size:12px;line-height:1.6;margin-top:4px;color:#607e69}
@media(max-width:540px){.family-contact-editor{padding:16px;gap:16px}.family-contact-editor .fce-fields{grid-template-columns:minmax(0,1fr);gap:14px}.family-contact-editor .fce-actions>button{flex:1 1 auto}.family-contact-editor .fce-authorizations{padding:14px}}
.family-existing-link{display:grid;gap:18px;min-width:0;padding:20px;border:1px solid #dfe9f4;border-radius:12px;background:#fff;color:#29496e;font-size:12px;line-height:1.6}
.family-existing-link *{box-sizing:border-box}
.family-existing-link [hidden]{display:none!important}
.family-existing-link :is(h3,h4,p,fieldset){margin:0}
.family-existing-link .fel-heading{display:grid;gap:5px}
.family-existing-link .fel-heading h3{font-size:15px;line-height:1.5;font-weight:650;color:#23466e}
.family-existing-link .fel-heading p,.family-existing-link .fel-help{font-size:11px;line-height:1.6;color:#71869f}
.family-existing-link form{display:grid;gap:16px;min-width:0;margin:0}
.family-existing-link .fel-search{display:flex;gap:12px;align-items:flex-end}
.family-existing-link .fel-search>label{flex:1 1 auto}
.family-existing-link .fel-search>button{flex:0 0 auto;min-height:42px}
.family-existing-link label{display:grid;gap:6px;min-width:0;font-size:11px;font-weight:500;line-height:1.5;color:#627e9b}
.family-existing-link input:not([type=checkbox]),.family-existing-link select{width:100%;max-width:100%;min-width:0;min-height:42px;padding:10px 12px;border:1px solid #d5e2f2;border-radius:8px;background:#fff;color:#29496e;font-family:inherit;font-size:12px;font-weight:400;line-height:1.5}
.family-existing-link .fel-results{display:grid;gap:10px;min-width:0}
.family-existing-link .fel-candidate{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid #e3ecf6;border-radius:10px;background:#fbfdff;min-width:0}
.family-existing-link .fel-person{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}
.family-existing-link .fel-person h4{font-size:13px;line-height:1.5;font-weight:600;color:#294d74}
.family-existing-link .fel-person p{font-size:12px;line-height:1.5;color:#5f7b97}
.family-existing-link .fel-person .fel-source{font-size:11px;color:#7c90a5}
.family-existing-link .fel-candidate-action{display:grid;justify-items:end;gap:6px;min-width:110px;max-width:50%}
.family-existing-link .fel-linked{font-size:10px;line-height:1.5;font-weight:400;color:#6a849b;text-align:right}
.family-existing-link .fel-selected{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;padding:16px;border:1px solid #e0eaf5;border-radius:10px;background:#f7fbff}
.family-existing-link .fel-target{display:grid;gap:5px;min-width:0;border-left:1px solid #e0eaf5;padding-left:16px;overflow-wrap:anywhere}
.family-existing-link .fel-target span{font-size:11px;color:#71869f}
.family-existing-link .fel-target strong{font-size:13px;font-weight:500;line-height:1.5;color:#294d74}
.family-existing-link .fel-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;min-width:0}
.family-existing-link .fel-authorizations{display:grid;gap:14px;min-width:0;padding:16px;border:1px solid #e2ebf5;border-radius:10px;background:#fbfdff}
.family-existing-link .fel-authorizations legend{padding:0 6px;font-size:12px;font-weight:500;color:#456787}
.family-existing-link .fel-authorization{display:grid;gap:9px;min-width:0}
.family-existing-link .fel-check{display:flex;align-items:flex-start;gap:10px;font-size:12px;font-weight:400;color:#365978}
.family-existing-link input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;min-height:18px;margin:1px 0 0;padding:0;accent-color:#0879de}
.family-existing-link .fel-priority{grid-template-columns:1fr;gap:3px;width:min(200px,calc(100% - 28px));margin-left:28px}
.family-existing-link .fel-priority input{margin-top:3px}
.family-existing-link .fel-priority small{font-size:11px;font-weight:400;line-height:1.5;color:#71869f}
.family-existing-link .fel-confirmation{padding:14px 16px;border:1px solid #dce9f7;border-radius:9px;background:#f3f8fe;line-height:1.6}
.family-existing-link .fel-note,.family-existing-link .fel-empty{font-size:12px;line-height:1.6;padding:14px 16px;border:1px solid #e1ebf6;border-radius:9px;background:#f7fbff;color:#627e9b}
.family-existing-link .fel-feedback{font-size:12px;line-height:1.6;color:#315475;border:1px solid #dce9f6;border-radius:8px;padding:10px 12px;background:#f3f8fe}
.family-existing-link .fel-feedback.is-error{color:#8c5361;background:#fff8f9;border-color:#efdee3}
.family-existing-link .fel-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding-top:16px;border-top:1px solid #e8eff7}
.family-existing-link button{font-family:inherit;font-size:12px;font-weight:500;line-height:1.4;min-height:40px;padding:10px 14px;max-width:100%;margin:0;border-radius:8px;white-space:normal;cursor:pointer}
.family-existing-link :is(input,select,button):focus-visible{outline:2px solid #1687ee;outline-offset:3px}
.family-existing-link :is(input,select,button):disabled{opacity:.6;cursor:default}
.family-existing-link .fel-saved{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #deede3;border-radius:10px;background:#f3faf6}
.family-existing-link .fel-saved>span{display:flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#dfeee4;color:#42724e;font-size:16px}
.family-existing-link .fel-saved h4{font-size:13px;font-weight:600;line-height:1.5;color:#315e3d}
.family-existing-link .fel-saved p{font-size:12px;line-height:1.6;margin-top:4px;color:#607e69}
@media(max-width:540px){.family-existing-link{padding:16px;gap:16px}.family-existing-link .fel-fields,.family-existing-link .fel-selected{grid-template-columns:minmax(0,1fr);gap:14px}.family-existing-link .fel-target{border-left:0;border-top:1px solid #e0eaf5;padding-left:0;padding-top:12px}.family-existing-link .fel-candidate{align-items:flex-start;padding:13px}.family-existing-link .fel-candidate-action{min-width:90px}.family-existing-link .fel-actions>button{flex:1 1 auto}.family-existing-link .fel-authorizations{padding:14px}.family-existing-link .fel-search{gap:8px}}
/* Family contacts share the compact student-record visual hierarchy. */
#center-detail .setup-contacts-view {
  display: grid;
  gap: 16px;
  min-width: 0;
  color: #29496e;
  font-size: 12px;
  line-height: 1.5;
}
#center-detail .setup-contacts-view [hidden] {
  display: none !important;
}
#center-detail .setup-contacts-view h3 {
  margin: 0;
  color: #29496e;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -.1px;
}
#center-detail .setup-contacts-view .muted {
  margin: 0;
  color: #6c839b;
  font-size: 11px;
  line-height: 1.6;
}
#center-detail .setup-contacts-view .setup-contact-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  margin: 0;
}
#center-detail .setup-contacts-view .setup-contact-card {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 14px;
  border: 1px solid #e0e9f4;
  border-radius: 12px;
  background: #fff;
}
#center-detail .setup-contacts-view .setup-contact-identity {
  display: grid;
  gap: 4px;
  min-width: 0;
}
#center-detail .setup-contacts-view .setup-contact-identity h4 {
  margin: 0;
  color: #29496e;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
#center-detail .setup-contacts-view .setup-contact-identity p {
  margin: 0;
  color: #6c839b;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
#center-detail .setup-contacts-view .setup-contact-flags {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 6px;
}
#center-detail .setup-contacts-view .setup-contact-flags:empty {
  display: none;
}
#center-detail .setup-contacts-view .setup-contact-flags span {
  display: inline-flex;
  max-width: 100%;
  padding: 4px 8px;
  border: 1px solid #e1edf8;
  border-radius: 6px;
  background: #f1f7fd;
  color: #547a9c;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
#center-detail .setup-contacts-view .setup-contact-flags .is-pickup {
  border-color: #e0efe7;
  background: #f1f8f4;
  color: #507c65;
}
#center-detail .setup-contacts-view .setup-contact-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid #edf2f7;
}
#center-detail .setup-contacts-view button {
  min-height: 40px;
  max-width: 100%;
  padding: 10px 13px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  white-space: normal;
}
#center-detail .setup-contacts-view .setup-contact-actions button {
  width: auto;
  margin: 0;
}
#center-detail .setup-contacts-view .setup-contact-form {
  display: grid;
  gap: 16px;
  margin: 4px 0 0;
  padding: 18px 0 0;
  border-top: 1px solid #e5edf6;
  min-width: 0;
}
#center-detail .setup-contacts-view .setup-contact-form-heading {
  display: grid;
  gap: 5px;
}
#center-detail .setup-contacts-view .setup-contact-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  min-width: 0;
}
#center-detail .setup-contacts-view .setup-contact-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
  margin: 0;
  color: #627e9b;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
}
#center-detail .setup-contacts-view .setup-contact-form input:not([type=checkbox]),
#center-detail .setup-contacts-view .setup-contact-form select {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid #d5e2f2;
  border-radius: 8px;
  background: #fff;
  color: #29496e;
  font-family: inherit;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
}
#center-detail .setup-contacts-view .setup-contact-authorizations {
  display: grid;
  gap: 14px;
  min-width: 0;
  margin: 0;
  padding: 14px;
  border: 1px solid #e0e9f4;
  border-radius: 12px;
  background: #fbfdff;
}
#center-detail .setup-contacts-view .setup-contact-authorizations legend {
  padding: 0 6px;
  color: #365978;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
}
#center-detail .setup-contacts-view .setup-contact-form .check-field {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 24px;
  color: #365978;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
}
#center-detail .setup-contacts-view .setup-contact-form input[type=checkbox] {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 1px 0 0;
  padding: 0;
  accent-color: #0879de;
}
#center-detail .setup-contacts-view #priority-field {
  width: min(100%, 230px);
  margin: -2px 0 0 28px;
  max-width: calc(100% - 28px);
}
#center-detail .setup-contacts-view .form-feedback {
  margin: 0;
  color: #315475;
  font-size: 12px;
  line-height: 1.6;
}
#center-detail .setup-contacts-view .form-feedback:empty {
  display: none;
}
#center-detail .setup-contacts-view .form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid #e5edf6;
}
#center-detail .setup-contacts-view .setup-contact-footer {
  display: flex;
  justify-content: flex-start;
  padding-top: 14px;
  border-top: 1px solid #e5edf6;
}
#center-detail .setup-contacts-view .setup-contact-footer button {
  width: auto;
  margin: 0;
}
@media (max-width: 520px) {
  #center-detail .setup-contacts-view .setup-contact-fields {
    grid-template-columns: minmax(0, 1fr);
  }
  #center-detail .setup-contacts-view .setup-contact-card {
    padding: 12px;
  }
  #center-detail .setup-contacts-view .setup-contact-actions button,
  #center-detail .setup-contacts-view .form-actions > button,
  #center-detail .setup-contacts-view .setup-contact-footer button {
    flex: 1 1 100%;
    width: 100%;
  }
}
.pickup-notices{color-scheme:light;--pickup-ink:#193b68;--pickup-muted:#56718e;--pickup-line:#dfe9f5;--pickup-blue:#0872ca;--pickup-soft:#eaf5ff;font:14px/1.5 Arial,sans-serif;color:var(--pickup-ink);max-width:1180px;margin:0 auto}
.pickup-notices *{box-sizing:border-box}
.pickup-notices [hidden]{display:none!important}
.pickup-notices h2,.pickup-notices h3,.pickup-notices h4,.pickup-notices p{margin:0}
.pickup-notices h2{font:700 22px/1.25 Arial,sans-serif;letter-spacing:-.3px;color:var(--pickup-ink)}
.pickup-notices h3{font:600 14px/1.45 Arial,sans-serif;color:var(--pickup-ink)}
.pickup-notices h4{font:600 14px/1.45 Arial,sans-serif;color:var(--pickup-ink)}
.pickup-notices svg{height:17px;width:17px;flex-shrink:0;vertical-align:middle}
.pickup-notices .pickup-muted,.pickup-notices .pickup-date{font-size:12px;color:var(--pickup-muted)}
.pickup-notices .pickup-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px}
.pickup-notices .pickup-heading>div>p{margin-top:6px}
.pickup-notices .pickup-heading-tools{display:flex;align-items:center;gap:12px;flex-shrink:0}
.pickup-notices .pickup-date{white-space:nowrap}
.pickup-notices .pickup-feedback{padding:10px 13px;border:1px solid #d9eaff;background:var(--pickup-soft);border-radius:9px;font-size:12px;color:#245a8d;margin:0 0 16px}
.pickup-notices .pickup-feedback:empty{display:none}
.pickup-notices .pickup-feedback.is-error{background:#fff3ed;color:#963c22;border-color:#f2d5c9}
.pickup-notices .pickup-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 12px;border:1px solid #bfd7ef;border-radius:8px;background:#fff;color:#0866b5;font:600 12px/1.5 Arial,sans-serif;cursor:pointer;text-decoration:none;max-width:100%;box-shadow:none;white-space:normal}
.pickup-notices .pickup-button:hover{background:#f0f7ff}
.pickup-notices .pickup-button.primary{background:var(--pickup-blue);border-color:var(--pickup-blue);color:#fff}
.pickup-notices .pickup-button.primary:hover{background:#0864b1}
.pickup-notices .pickup-button.danger{background:#fff6f3;border-color:#e6c1b6;color:#963c22}
.pickup-notices .pickup-button.text{background:transparent;border-color:transparent;padding:7px 0;font-weight:500;min-height:36px}
.pickup-notices .pickup-button:disabled{background:#f0f4f8;border-color:#e1e8ef;color:#657a8c;cursor:default}
.pickup-notices .pickup-button.full{width:100%}
.pickup-notices .pickup-button:focus-visible,.pickup-notices input:focus-visible,.pickup-notices select:focus-visible{outline:3px solid #91c5f2;outline-offset:3px}
.pickup-notices .pickup-student-tools{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:16px}
.pickup-notices .pickup-student-tools>label{max-width:480px;width:100%}
.pickup-notices label{display:grid;gap:6px;font:400 12px/1.5 Arial,sans-serif;color:var(--pickup-muted);min-width:0}
.pickup-notices input,.pickup-notices select{width:100%;min-height:42px;border:1px solid #ccdeef;background:#fff;border-radius:8px;padding:9px 11px;font:400 14px/1.5 Arial,sans-serif;color:var(--pickup-ink);min-width:0;box-shadow:none}
.pickup-notices input:disabled,.pickup-notices select:disabled{color:#657a8c;background:#f4f7fa}
.pickup-notices .pickup-filters{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(140px,1fr) minmax(150px,1fr);gap:12px;margin-bottom:18px}
.pickup-notices .pickup-card{padding:18px;background:#fff;border:1px solid var(--pickup-line);border-radius:12px;min-width:0;box-shadow:none}
.pickup-notices .pickup-card.is-notification-target{border-color:#9cc8ef;background:#fbfdff;box-shadow:0 0 0 2px #eaf4ff}
.pickup-notices .pickup-card.is-notification-target:focus{outline:none}
.pickup-notices .pickup-target-message{padding:10px 13px;margin-bottom:16px;border:1px solid #dce8f5;border-radius:9px;background:#f4f8fd;color:#5d7894;font-size:12px;line-height:1.6}
.pickup-notices .pickup-editor{margin-bottom:18px;background:#fafdff;border-color:#bddaf3}
.pickup-notices .pickup-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:17px}
.pickup-notices .pickup-form-wide{grid-column:1/-1}
.pickup-notices .pickup-form-message{font-size:12px;color:#963c22}
.pickup-notices .pickup-form-message:empty{display:none}
.pickup-notices .pickup-list-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 12px}
.pickup-notices .pickup-list{display:grid;gap:16px}
.pickup-notices .pickup-notice-heading{display:flex;gap:11px;align-items:center;border-bottom:1px solid var(--pickup-line);padding:0 0 15px;margin:0 0 15px}
.pickup-notices .pickup-notice-heading>div:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}
.pickup-notices .pickup-notice-heading p{margin-top:3px}
.pickup-notices .pickup-student-avatar{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:10px;background:var(--pickup-soft);color:#4676a4;font-size:14px;font-weight:600}
.pickup-notices .pickup-pill{display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:4px 8px;font-size:12px;line-height:1.5;background:var(--pickup-soft);color:#386c9b;max-width:100%}
.pickup-notices .pickup-pill.arrived{background:#fff5df;color:#815510}
.pickup-notices .pickup-pill.completed{background:#edf8f1;color:#26754d}
.pickup-notices .pickup-pill.cancelled{background:#f2f4f7;color:#626d7e}
.pickup-notices .pickup-card-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
.pickup-notices .pickup-details{margin:0 0 16px;display:grid}
.pickup-notices .pickup-details>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #edf2f8}
.pickup-notices dt{font-size:12px;color:var(--pickup-muted);margin:0}
.pickup-notices dd{font-size:14px;font-weight:500;text-align:right;margin:0;overflow-wrap:anywhere;max-width:68%}
.pickup-notices dd small{display:block;margin-top:2px;color:var(--pickup-muted);font-size:12px;font-weight:400}
.pickup-notices .pickup-actions{display:flex;gap:13px;align-items:center;flex-wrap:wrap;margin-top:14px}
.pickup-notices .pickup-helper{font-size:12px;color:var(--pickup-muted);margin-top:10px;line-height:1.6}
.pickup-notices .pickup-form>.pickup-helper{margin-top:0}
.pickup-notices .pickup-arrival-message{font-size:12px;color:#815510;background:#fff5df;border:1px solid #f3e7cd;padding:12px;border-radius:8px}
.pickup-notices .pickup-followup{padding-left:24px;border-left:1px solid var(--pickup-line)}
.pickup-notices .pickup-receipts{display:grid;margin-top:5px}
.pickup-notices .pickup-receipt{display:flex;align-items:center;gap:9px;padding:12px 0;border-bottom:1px solid #edf2f8}
.pickup-notices .pickup-receipt:last-child{border-bottom:0}
.pickup-notices .pickup-receipt>div{min-width:0;overflow-wrap:anywhere}
.pickup-notices .pickup-receipt strong{display:block;font-size:12px;font-weight:600}
.pickup-notices .pickup-receipt strong>.pickup-muted{font-weight:400}
.pickup-notices .pickup-receipt div>span,.pickup-notices .pickup-receipt small{display:block;font-size:12px;color:var(--pickup-muted);margin-top:2px}
.pickup-notices .pickup-receipt-icon{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:8px;color:#5082af;background:var(--pickup-soft)}
.pickup-notices .pickup-receipt-icon.read{background:#edf8f1;color:#26754d}
.pickup-notices .pickup-read-label{margin-left:auto;font-size:12px;color:#26754d;white-space:nowrap}
.pickup-notices .pickup-warning{font-size:12px;color:#815510;background:#fff9ed;border-radius:8px;padding:10px;margin-top:10px}
.pickup-notices .pickup-delivery>.pickup-button{margin-top:13px}
.pickup-notices .pickup-cancel-prompt{padding:12px;margin-top:12px;border:1px solid #e6c1b6;border-radius:8px;font-size:12px;background:#fffaf8}
.pickup-notices .pickup-empty{padding:30px 18px;text-align:center}
.pickup-notices .pickup-empty p{font-size:12px;color:var(--pickup-muted);margin:8px auto 0;max-width:520px}
.pickup-notices .pickup-sync{margin-top:16px}
@media(max-width:800px){.pickup-notices .pickup-card-grid{grid-template-columns:1fr;gap:18px}.pickup-notices .pickup-followup{padding:16px 0 0;border-left:0;border-top:1px solid var(--pickup-line)}.pickup-notices .pickup-heading{align-items:flex-start;flex-direction:column}.pickup-notices .pickup-heading-tools{width:100%;justify-content:space-between}.pickup-notices .pickup-filters{grid-template-columns:1fr 1fr}.pickup-notices .pickup-search{grid-column:1/-1}}
@media(max-width:540px){.pickup-notices h2{font-size:20px}.pickup-notices .pickup-card{padding:16px}.pickup-notices .pickup-form{grid-template-columns:1fr}.pickup-notices .pickup-form-wide{grid-column:auto}.pickup-notices .pickup-student-tools{align-items:stretch;flex-direction:column}.pickup-notices .pickup-notice-heading{flex-wrap:wrap}.pickup-notices .pickup-notice-heading>.pickup-pill{margin-left:51px}.pickup-notices .pickup-button{min-height:44px}.pickup-notices .pickup-actions>.pickup-button{flex:1}.pickup-notices input,.pickup-notices select{font-size:16px}.pickup-notices .pickup-filters{grid-template-columns:1fr}.pickup-notices .pickup-search{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.pickup-notices *{scroll-behavior:auto}}
/* A narrow visual system for student-scoped family invitations. */
#center-detail .family-access{display:grid;gap:18px;min-width:0;color:#29496e;font-size:12px;line-height:1.55}
#center-detail .family-access *{box-sizing:border-box}
#center-detail .family-access h3{margin:0;font-size:14px;font-weight:600;line-height:1.5}
#center-detail .family-access h4{margin:0;font-size:13px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
#center-detail .family-access p{margin:0;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
#center-detail .family-access-intro,#center-detail .family-access-identity{display:grid;gap:5px}
#center-detail .family-access-intro p,#center-detail .family-access-identity p{color:#6c839b}
#center-detail .family-access-list{display:grid;gap:12px}
#center-detail .family-access-card{display:grid;gap:12px;min-width:0;padding:16px;border:1px solid #e0e9f4;border-radius:12px;background:#fff}
#center-detail .family-access-status{justify-self:start;display:inline-flex;padding:4px 8px;border-radius:6px;background:#f0f6fd;color:#587a9b;font-size:10px;font-weight:500}
#center-detail .family-access-status.is-active{background:#edf8f1;color:#427559}
#center-detail .family-access .family-access-note{font-size:11px;color:#6c839b}
#center-detail .family-access-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding-top:4px}
#center-detail .family-access button{width:auto;min-height:40px;max-width:100%;margin:0;padding:10px 13px;border-radius:8px;font-family:inherit;font-size:12px;font-weight:600;line-height:1.5;white-space:normal}
#center-detail .family-access button.text-button{border:0;background:transparent;color:#527797;font-size:12px;font-weight:500}
#center-detail .family-access button:disabled{opacity:.6;cursor:wait}
#center-detail .family-access-form,#center-detail .family-access-result,#center-detail .family-access-confirm{display:grid;gap:14px;margin:0;padding:16px;border:1px solid #e0e9f4;border-radius:12px;background:#fbfdff}
#center-detail .family-access label{display:grid;gap:6px;margin:0;min-width:0;color:#627e9b;font-size:11px;font-weight:500}
#center-detail .family-access input{box-sizing:border-box;width:100%;min-width:0;min-height:42px;padding:10px 12px;border:1px solid #d5e2f2;border-radius:8px;background:#fff;color:#29496e;font-family:inherit;font-size:12px;font-weight:400;line-height:1.5}
#center-detail .family-access .family-access-empty{padding:16px;border:1px dashed #dfe9f5;border-radius:12px;color:#6c839b}
#center-detail .family-access .family-access-feedback{font-size:12px;color:#315475}
#center-detail .family-access-feedback:empty{display:none}
#center-detail .family-access-footer{display:flex;justify-content:flex-start;padding-top:14px;border-top:1px solid #e5edf6}
@media(max-width:520px){#center-detail .family-access-actions>button,#center-detail .family-access-footer>button{flex:1 1 100%;width:100%}#center-detail .family-access-card{padding:12px}}

/* Inline account access belongs to its guardian's contact card. */
.student-record-page .guardian-access{display:grid;gap:10px;min-width:0;border-top:1px solid #e5edf6;padding-top:14px;color:#29496e;font-size:12px;line-height:1.6}
.student-record-page .guardian-access [hidden]{display:none!important}
.student-record-page .guardian-access-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px}
.student-record-page .guardian-access-heading h4{font-size:12px;font-weight:600;line-height:1.5;margin:0}
.student-record-page .guardian-access-status{display:inline-flex;align-items:center;justify-self:start;max-width:100%;padding:3px 7px;border:1px solid #e0e9f4;border-radius:6px;background:#f3f7fc;color:#64809c;font-size:10px;line-height:1.5;font-weight:500}
.student-record-page .guardian-access-status.is-active{border-color:#dceee2;background:#edf8f1;color:#427559}
.student-record-page .guardian-access-email{display:grid;gap:3px;font-size:12px;line-height:1.5;overflow-wrap:anywhere;white-space:normal}
.student-record-page .guardian-access-email>span:first-child{font-size:11px;color:#71869f}
.student-record-page .guardian-access :is(.guardian-access-form,.guardian-access-result,.guardian-access-confirm){display:grid;grid-template-columns:minmax(0,1fr);gap:9px;margin:0;padding:12px;background:#f7faff;border:1px solid #e2ebf5;border-radius:9px;min-width:0}
.student-record-page .guardian-access label{display:block;margin:0;color:#627e9b;font-size:11px;font-weight:500;line-height:1.4}
.student-record-page .guardian-access input{box-sizing:border-box;width:100%;min-width:0;min-height:40px;padding:9px 11px;margin:0;border:1px solid #d5e2f2;border-radius:8px;background:#fff;color:#29496e;font:inherit;font-size:12px;font-weight:400;line-height:1.5}
.student-record-page .guardian-access input[readonly]{background:#fff;font-size:11px}
.student-record-page .guardian-access .guardian-access-help{margin:0;font-size:11px;color:#6c839b;line-height:1.55;white-space:normal}
.student-record-page .guardian-access-help strong{font-size:inherit;font-weight:500;overflow-wrap:anywhere}
.student-record-page .guardian-access-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;padding-top:2px}
.student-record-page .guardian-access-actions:empty{display:none}
.student-record-page .guardian-access button{width:auto;max-width:100%;min-height:36px;margin:0;padding:8px 11px;border-radius:8px;font-family:inherit;font-size:11px;font-weight:500;line-height:1.45;white-space:normal}
.student-record-page .guardian-access button.guardian-access-text{border:0;background:transparent;color:#627b95;padding-left:0;padding-right:0}
.student-record-page .guardian-access button.guardian-access-revoke{color:#9c5260;border-color:#ecdde1;background:#fff}
.student-record-page .guardian-access button:disabled{opacity:.6;cursor:wait}
.student-record-page .guardian-access .guardian-access-feedback{font-size:11px;color:#426d8b;line-height:1.5;white-space:normal;margin:0}
.student-record-page .guardian-access .guardian-access-feedback.is-error{color:#a34d57}
.student-record-page .guardian-financial-access{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;padding-top:9px;border-top:1px solid #e5edf6}
.student-record-page .guardian-financial-access>button{margin:0}
@media(max-width:420px){.student-record-page .guardian-access-actions>button{flex:1 1 auto}}
.family-portal{min-height:100vh;background:#f4f8ff;color:#193b68;font-size:14px;line-height:1.5;--fp-muted:#7189a2;--fp-border:#dfe9f5}
.family-portal *{box-sizing:border-box}
.family-portal h1,.family-portal h2,.family-portal h3,.family-portal p,.family-portal dl,.family-portal dd{margin:0}
.family-portal button,.family-portal select{font-family:inherit}
.family-portal button:disabled{cursor:default;opacity:.6}
.family-portal button:focus-visible,.family-portal a:focus-visible,.family-portal select:focus-visible{outline:3px solid #1687ee;outline-offset:3px}
.family-portal [hidden]{display:none!important}
.family-portal-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px max(24px,calc((100vw - 1120px)/2));background:#fff;border-bottom:1px solid var(--fp-border)}
.family-portal .brand{margin-left:0}
.family-portal-account{display:flex;align-items:center;gap:12px}
.family-portal-account>span{font-size:11px;color:var(--fp-muted);overflow-wrap:anywhere;max-width:230px}
.family-portal .secondary{font-size:12px;padding:10px 16px;min-height:40px;border-radius:10px;border:1px solid #cce0f7;background:#fff;color:#0875d1;line-height:1.4;font-weight:600}
.family-portal-main{max-width:1168px;margin:auto;padding:32px 24px 40px;width:100%}
.family-portal-footer{max-width:1168px;margin:auto;padding:0 24px 24px;color:#7a91a8;font-size:11px}
.family-portal .fp-sync{font-size:12px;padding:11px 14px;margin:0 0 18px;border:1px solid #d8e8f9;border-radius:10px;background:#edf6ff;color:#3e6a92}
.family-portal .fp-sync.is-error{background:#fff7eb;border-color:#f2dfbd;color:#805b27}
.family-portal .fp-page-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:23px}
.family-portal .fp-eyebrow{display:block;font-size:11px;color:#6d88a5;font-weight:600;letter-spacing:.02em;line-height:1.5;margin-bottom:5px}
.family-portal h1{font-size:26px;letter-spacing:-.5px;line-height:1.3;font-weight:700}
.family-portal h1:focus{outline:none}
.family-portal .fp-page-heading p{font-size:13px;color:var(--fp-muted);margin-top:7px}
.family-portal .fp-center-filter{display:grid;gap:6px;color:var(--fp-muted);font-size:11px;min-width:210px}
.family-portal .fp-center-filter select{border:1px solid #d6e4f4;border-radius:10px;padding:10px 12px;min-height:42px;font-size:12px;background:#fff;color:#365d86;max-width:100%}
.family-portal .fp-student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.family-portal .fp-student-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--fp-border);border-radius:16px;padding:21px;box-shadow:0 3px 12px #315f9504}
.family-portal .fp-card-identity{display:flex;gap:13px;align-items:center;min-width:0}
.family-portal .fp-card-identity>div{min-width:0}
.family-portal .fp-avatar{display:flex;align-items:center;justify-content:center;flex:0 0 46px;height:46px;background:#eaf4ff;border:1px solid #d9e9fb;color:#5788b6;border-radius:13px;font-size:15px;font-weight:600}
.family-portal .fp-card-identity h2{font-size:15px;letter-spacing:0;line-height:1.45;overflow-wrap:anywhere}
.family-portal .fp-card-identity p{font-size:11px;color:var(--fp-muted);margin-top:4px;overflow-wrap:anywhere}
.family-portal .fp-card-facts{display:flex;flex-wrap:wrap;align-items:center;gap:9px 14px;margin-top:19px;font-size:12px;color:#557597}
.family-portal .fp-card-facts>span{display:flex;gap:6px;align-items:center;min-width:0;overflow-wrap:anywhere}
.family-portal .fp-card-facts svg{width:15px;height:15px;color:#7d9bb8}
.family-portal .fp-card-today{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin-top:18px;padding-top:16px;border-top:1px solid #edf2f8;font-size:11px;color:var(--fp-muted);flex:1}
.family-portal .fp-status{display:inline-flex;gap:5px;align-items:center;max-width:100%;border-radius:7px;padding:5px 9px;background:#f0f4f9;color:#667e98;font-size:11px;font-weight:500;line-height:1.5}
.family-portal .fp-status svg{width:13px;height:13px}
.family-portal .fp-status--green{background:#e6f6ee;color:#248057}
.family-portal .fp-status--amber{background:#fff4df;color:#92652e}
.family-portal .fp-status--blue{background:#e9f3ff;color:#3475af}
.family-portal .fp-open{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:41px;margin-top:20px;padding:10px 12px;border:1px solid #d0e3f9;border-radius:9px;background:#f6faff;color:#0875d1;font-size:12px;font-weight:600;text-align:left}
.family-portal .fp-open:hover{background:#eaf4ff;border-color:#b6d5f5}
.family-portal .fp-open svg{width:17px;height:17px}
.family-portal .fp-caption{font-size:11px;line-height:1.6;color:#7b91a8;margin-top:15px}
.family-portal .fp-back,.family-portal .fp-inline-link{display:inline-flex;align-items:center;gap:7px;background:none;border:0;color:#0875d1;font-size:12px;font-weight:500;padding:8px 0;min-height:34px;line-height:1.4}
.family-portal .fp-back{margin-bottom:18px}
.family-portal .fp-inline-link{margin-top:12px}
.family-portal .fp-inline-link svg{width:15px;height:15px}
.family-portal .fp-student-heading{display:flex;align-items:center;gap:18px;border:1px solid var(--fp-border);border-radius:16px;background:#fff;padding:24px;margin-bottom:18px}
.family-portal .fp-avatar--large{flex-basis:66px;height:66px;font-size:23px;border-radius:17px}
.family-portal .fp-student-heading>div{min-width:0}
.family-portal .fp-student-heading h1{font-size:23px;overflow-wrap:anywhere}
.family-portal .fp-student-heading p{font-size:12px;color:var(--fp-muted);margin-top:7px}
.family-portal .fp-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:6px;background:#fff;border:1px solid var(--fp-border);border-radius:12px;margin-bottom:18px}
.family-portal .fp-tabs button{background:none;color:#6a85a1;border:1px solid transparent;border-radius:8px;padding:11px 23px;font-size:12px;min-height:40px}
.family-portal .fp-tabs button[aria-current=page]{background:#eaf4ff;border-color:#d6e9ff;color:#0875d1;font-weight:600}
.family-portal .fp-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.family-portal .fp-panel{background:#fff;border:1px solid var(--fp-border);border-radius:14px;padding:21px;min-width:0}
.family-portal .fp-panel h2{font-size:14px;letter-spacing:0;line-height:1.4}
.family-portal .fp-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.family-portal .fp-panel-heading>span{font-size:11px;color:var(--fp-muted)}
.family-portal .fp-facts{display:grid;gap:0;margin-top:13px}
.family-portal .fp-facts>div{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid #edf2f8}
.family-portal .fp-facts>div:last-child{border-bottom:0;padding-bottom:0}
.family-portal .fp-facts dt{font-size:11px;color:var(--fp-muted)}
.family-portal .fp-facts dd{font-size:12px;color:#365b82;text-align:right;overflow-wrap:anywhere}
.family-portal .fp-attendance{margin-top:18px}
.family-portal .fp-table-scroll{overflow-x:auto}
.family-portal .fp-attendance table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}
.family-portal .fp-attendance th{font-size:11px;font-weight:500;color:#718ba6;background:#f6f9fe;padding:11px 13px;border-bottom:1px solid var(--fp-border);white-space:nowrap}
.family-portal .fp-attendance td{padding:11px 13px;border-bottom:1px solid #edf2f8;white-space:nowrap;color:#43688e}
.family-portal .fp-attendance tr:last-child td{border-bottom:0}
.family-portal .fp-attendance .fp-status{font-size:10px}
.family-portal .fp-empty{text-align:center;border:1px solid var(--fp-border);background:#fff;border-radius:16px;padding:50px 24px}
.family-portal .fp-empty-icon{display:inline-flex;padding:14px;background:#edf6ff;color:#5b94c7;border-radius:16px;margin-bottom:17px}
.family-portal .fp-empty h1{font-size:20px}
.family-portal .fp-empty p{font-size:12px;max-width:420px;margin:10px auto 20px;color:var(--fp-muted)}
.family-portal .fp-loading{display:grid;gap:13px;border:1px solid var(--fp-border);border-radius:16px;background:#fff;padding:26px;min-height:200px;align-content:start}
.family-portal .fp-loading>span{height:13px;width:65%;background:#edf3fa;border-radius:7px}
.family-portal .fp-loading>span:first-child{height:22px;width:38%;margin-bottom:7px}
.family-portal .fp-loading>span:nth-child(3){width:50%}
.family-portal .fp-loading p{font-size:11px;color:var(--fp-muted);margin-top:10px}
.family-portal .fp-pickups .pickup-student-tools>label{display:none}
.family-portal .fp-pickups .pickup-heading h2{font-size:17px}
.family-portal .fp-pickups .pickup-notices{font-size:12px}
.pickup-nav-count{margin-left:auto;background:#e4f2ff;color:#087be0;font-size:11px;line-height:20px;min-width:20px;text-align:center;border-radius:8px;padding:0 4px}.pickup-nav-count[hidden]{display:none}.family-access-dialog h2{font-size:20px;margin:0 0 20px}.family-access-dialog .dialog-top{margin-bottom:12px}
@media(max-width:950px){.family-portal .fp-student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.family-portal-header{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,180px);align-items:center;padding:16px;gap:12px}.family-portal-account{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-left:auto}.family-portal-account>span{width:100%;max-width:none;text-align:right}.family-portal-main{padding:22px 14px 30px}.family-portal .brand span{font-size:22px}.family-portal .brand b{font-size:42px}.family-portal .fp-page-heading{align-items:stretch;flex-direction:column;gap:15px}.family-portal h1{font-size:23px}.family-portal .fp-student-grid,.family-portal .fp-summary-grid{grid-template-columns:minmax(0,1fr);gap:14px}.family-portal .fp-student-card,.family-portal .fp-panel{padding:18px}.family-portal .fp-student-heading{padding:19px 16px;gap:13px}.family-portal .fp-avatar--large{flex-basis:52px;height:52px;font-size:19px;border-radius:13px}.family-portal .fp-student-heading h1{font-size:19px}.family-portal .fp-student-heading p{font-size:11px}.family-portal .fp-tabs button{flex:1 1 calc(50% - 8px);padding:10px 12px;white-space:nowrap}.family-portal .fp-attendance td,.family-portal .fp-attendance th{padding:10px}.family-portal .fp-empty{padding:35px 18px}.family-portal .fp-empty h1{font-size:18px}.family-portal .fp-pickups .pickup-heading{flex-wrap:wrap}}

.family-portal .fp-space-nav{display:flex;gap:8px;padding:0 max(22px,calc((100% - 1180px)/2));background:#fff;border-bottom:1px solid var(--fp-border,#e0e9f4)}
.family-portal .fp-space-nav button{background:transparent;color:var(--fp-muted,#617e9c);border:0;border-bottom:2px solid transparent;border-radius:0;min-height:46px;padding:12px 15px;font-size:12px;font-weight:500}
.family-portal .fp-space-nav button[aria-current="page"]{color:#087de0;border-bottom-color:#087de0}
@media(max-width:640px){.family-portal .fp-space-nav{padding:0 14px}}
/* Explicit family publication uses the same compact cards as student records. */
.family-publication-editor {color:#29496e;font-size:13px;line-height:1.55;min-width:0;max-width:100%;overflow-wrap:anywhere;}
.family-publication-editor :is(h2,h3,h4,p) {margin:0;}
.family-publication-editor .fpub-heading {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;}
.family-publication-editor .fpub-heading h2 {font-size:18px;font-weight:600;line-height:1.35;color:#173b66;letter-spacing:-.2px;}
.family-publication-editor .fpub-heading p {font-size:12px;color:#6b819a;margin-top:5px;}
.family-publication-editor .fpub-state {flex-shrink:0;padding:5px 9px;border-radius:7px;font-size:11px;color:#557996;background:#f1f6fd;}
.family-publication-editor .fpub-state.is-published {background:#ecf8f0;color:#26734c;}
.family-publication-editor .fpub-context {display:flex;gap:8px 18px;flex-wrap:wrap;padding:12px 14px;margin:0 0 18px;border:1px solid #dfe9f5;border-radius:10px;background:#f7faff;}
.family-publication-editor .fpub-context strong {font-size:13px;font-weight:600;}
.family-publication-editor .fpub-context span {font-size:12px;color:#627e9b;}
.family-publication-editor .fpub-caption {font-size:12px;color:#6b819a;line-height:1.6;margin:10px 0 16px;}
.family-publication-editor .fpub-section {padding:16px;border:1px solid #dfe9f5;border-radius:12px;background:white;margin-bottom:16px;min-width:0;}
.family-publication-editor .fpub-section h3 {font-size:13px;line-height:1.5;font-weight:600;color:#315779;margin-bottom:12px;}
.family-publication-editor .fpub-records {display:grid;gap:8px;margin:0;padding:0;list-style:none;}
.family-publication-editor .fpub-record {display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid #e4ecf7;border-radius:9px;background:#fbfdff;}
.family-publication-editor .fpub-record input {flex:0 0 17px;width:17px;height:17px;min-height:17px;margin:2px 0 0;accent-color:#087be0;}
.family-publication-editor .fpub-record strong {display:block;font-size:12px;line-height:1.5;font-weight:500;color:#315779;}
.family-publication-editor .fpub-record span {display:block;font-size:11px;font-weight:400;color:#6b819a;}
.family-publication-editor .fpub-note-label {display:grid;gap:7px;font-size:12px;font-weight:500;color:#627e9b;}
.family-publication-editor .fpub-note {width:100%;box-sizing:border-box;min-height:96px;border:1px solid #d5e2f2;border-radius:8px;padding:11px 12px;resize:vertical;background:white;font:inherit;font-size:13px;color:#365978;line-height:1.55;}
.family-publication-editor .fpub-preview-note {padding-top:14px;margin-top:14px;border-top:1px solid #e8eef6;white-space:pre-wrap;font-size:13px;}
.family-publication-editor .fpub-confirmation {display:flex;align-items:flex-start;gap:10px;font-size:12px;font-weight:400;line-height:1.6;color:#526f8f;margin:16px 0;}
.family-publication-editor .fpub-confirmation input {flex:0 0 17px;width:17px;height:17px;min-height:17px;margin:2px 0 0;accent-color:#087be0;}
.family-publication-editor .fpub-actions {display:flex;flex-wrap:wrap;gap:10px;padding-top:16px;margin-top:18px;border-top:1px solid #e8eef6;align-items:center;}
.family-publication-editor :is(.primary,.secondary) {font-size:12px;font-weight:600;line-height:1.45;min-height:40px;padding:10px 14px;border-radius:8px;white-space:normal;max-width:100%;}
.family-publication-editor .fpub-error {font-size:12px;color:#a03937;line-height:1.6;margin:12px 0;}
.family-publication-editor .fpub-notice {font-size:12px;color:#476b8c;padding:12px 14px;background:#f0f7ff;border:1px solid #dce9fa;border-radius:10px;line-height:1.6;margin-bottom:16px;}
.family-publication-editor :is(input,textarea,button):focus-visible {outline:2px solid #1687ee;outline-offset:3px;}
.family-publication-editor .student-report {margin:0;box-shadow:none;}
.family-publication-editor .fpub-report-preview {min-width:0;overflow-x:auto;}
.care-family-publication {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;margin:16px 0;border:1px solid #dfe9f5;border-radius:12px;background:#f7faff;}
.care-family-publication p {margin:0;font-size:12px;color:#627e9b;}
.period-reports .report-family-actions {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0;padding:14px 16px;border:1px solid #dfe9f5;border-radius:12px;background:#f7faff;}
.period-reports .report-family-actions p {margin:0;font-size:12px;color:#627e9b;}
@media(max-width:540px){
 .family-publication-editor .fpub-heading {flex-wrap:wrap;gap:10px;}
 .family-publication-editor .fpub-section {padding:14px;}
 .family-publication-editor .fpub-actions > button {flex:1 1 150px;}
 .care-family-publication,.period-reports .report-family-actions {align-items:flex-start;flex-direction:column;}
 .care-family-publication button,.period-reports .report-family-actions button {width:100%;}
}
.family-portal .family-publications{background:#fff;border:1px solid #dfe9f5;border-radius:14px;padding:22px;color:#345b82;min-width:0}
.family-publications .fpub-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}
.family-publications .fpub-heading h2{font-size:16px;line-height:1.4;letter-spacing:0;color:#193b68}
.family-publications .fpub-heading h2:focus{outline:none}
.family-publications .fpub-heading p{font-size:12px;line-height:1.6;color:#7189a2;margin-top:6px}
.family-publications .fpub-date-filter{display:grid;gap:6px;max-width:330px;font-size:11px;color:#7189a2;margin-bottom:20px}
.family-publications .fpub-date-filter select{min-width:0;width:100%;min-height:42px;border:1px solid #d6e4f4;border-radius:9px;background:#fff;color:#3c658c;padding:9px 12px;font-size:12px}
.family-publications .fpub-day-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid #e8eff8;padding-top:20px}
.family-publications .fpub-day-heading h3{font-size:15px;line-height:1.4;letter-spacing:0}
.family-publications .fpub-day-heading p{font-size:11px;color:#7189a2;margin-top:4px}
.family-publications .fpub-published{font-size:10px;padding:5px 9px;border-radius:7px;background:#eaf5ef;color:#398064;line-height:1.5}
.family-publications .fpub-timeline{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:0;max-width:640px}
.family-publications .fpub-timeline li{display:flex;gap:13px;padding:0 0 20px;position:relative;align-items:flex-start}
.family-publications .fpub-timeline li:not(:last-child):before{content:"";position:absolute;left:16px;top:33px;bottom:0;width:1px;background:#e4edf7}
.family-publications .fpub-care-icon{display:flex;align-items:center;justify-content:center;width:33px;height:33px;flex-shrink:0;border-radius:10px;background:#eff6ff;color:#5c95c9}
.family-publications .fpub-care-icon svg{width:16px;height:16px}
.family-publications .fpub-timeline h4,.family-publications .fpub-family-note h4{font-size:12px;line-height:1.5;font-weight:600;letter-spacing:0;margin:0}
.family-publications .fpub-timeline p{font-size:11px;color:#7890a9;margin-top:4px}
.family-publications .fpub-family-note{padding:16px 18px;border:1px solid #deebf8;border-radius:11px;background:#f6faff;margin-top:2px}
.family-publications .fpub-family-note p{font-size:12px;line-height:1.7;margin-top:7px;color:#557795;white-space:pre-wrap;overflow-wrap:anywhere}
.family-publications .fpub-caption{display:block;font-size:10px;color:#8195aa;line-height:1.6;margin-top:10px}
.family-publications .fpub-muted{font-size:12px;color:#7189a2;line-height:1.6}
.family-publications .fpub-loading{padding:24px 0;min-height:110px}
.family-publications .fpub-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.family-publications .fpub-report-card{display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:12px;border:1px solid #dfe9f5;border-radius:12px;padding:18px;min-width:0;align-content:start}
.family-publications .fpub-report-card.is-target{border-color:#a8cef3;background:#f8fbff}
.family-publications .fpub-report-card .fpub-published{display:inline-block;margin-top:8px}
.family-publications [data-fpub-care-target]:focus{outline:none}
.family-publications [data-fpub-retry-target]{margin-top:10px}
.family-publications .fpub-report-icon{display:flex;align-items:center;justify-content:center;background:#edf5ff;color:#578dbc;border-radius:10px;width:36px;height:36px}
.family-publications .fpub-report-icon svg{width:18px;height:18px}
.family-publications .fpub-report-card h3{font-size:14px;line-height:1.5;letter-spacing:0;color:#234c74;overflow-wrap:anywhere}
.family-publications .fpub-period{font-size:12px;color:#527796;margin-top:5px;overflow-wrap:anywhere}
.family-publications .fpub-report-card .fpub-muted{font-size:11px;margin-top:4px}
.family-publications .fpub-report-card .secondary{grid-column:1/-1;margin-top:18px;width:100%}
.family-publications .fpub-empty{text-align:center;padding:28px 14px}
.family-publications .fpub-empty>span{display:inline-flex;border-radius:12px;background:#f0f6fd;color:#7a9dbc;padding:11px;margin-bottom:13px}
.family-publications .fpub-empty>span svg{width:21px;height:21px}
.family-publications .fpub-empty h3{font-size:14px;line-height:1.5;letter-spacing:0}
.family-publications .fpub-empty p{font-size:12px;color:#7890a6;line-height:1.7;max-width:420px;margin:8px auto 0}
.family-publications .fpub-empty button{margin-top:16px}
.family-publications .fpub-feedback{font-size:12px;line-height:1.6;color:#3e6a92;background:#eff7ff;border:1px solid #dcebf9;border-radius:9px;padding:10px 12px;margin-top:16px}
.family-publications .fpub-feedback.is-error{background:#fff8ee;border-color:#f0dfc0;color:#85602e}
.family-publications .fpub-pagination{display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:18px;border-top:1px solid #e8eff8}
@media(max-width:640px){.family-portal .family-publications{padding:18px}.family-publications .fpub-report-grid{grid-template-columns:minmax(0,1fr)}.family-publications .fpub-date-filter{max-width:none}.family-publications .fpub-report-card{padding:16px}.family-publications .fpub-pagination button{flex:1}}
.family-payments{--fpay-ink:#193b65;--fpay-text:#466481;--fpay-muted:#7289a1;--fpay-line:#e0e9f4;color:var(--fpay-text);font-size:12px;line-height:1.6;min-width:0}
.family-payments *{box-sizing:border-box}.family-payments h2,.family-payments h3,.family-payments p,.family-payments dl,.family-payments dd{margin:0;letter-spacing:0}.family-payments button{font:inherit;letter-spacing:0;cursor:pointer}.family-payments button:disabled{cursor:default;opacity:.55}.family-payments button:focus-visible{outline:3px solid #94caff;outline-offset:3px}.family-payments svg{width:18px;height:18px}
.family-payments .fpay-heading{margin-bottom:18px}.family-payments .fpay-heading h2{font-size:19px;font-weight:600;line-height:1.4;color:var(--fpay-ink)}.family-payments .fpay-heading p{font-size:12px;color:var(--fpay-muted);margin-top:5px}.family-payments [data-fpay-heading]:focus{outline:none}
.family-payments .fpay-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.family-payments .fpay-totals>section{padding:16px 18px;background:white;border:1px solid var(--fpay-line);border-radius:12px;min-width:0}.family-payments .fpay-totals span{display:block;font-size:11px;color:var(--fpay-muted)}.family-payments .fpay-totals strong{display:block;font-size:19px;font-weight:600;line-height:1.45;color:#315a81;margin-top:5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.family-payments .fpay-totals .is-overdue{background:#fffaf8;border-color:#eddfd8}.family-payments .fpay-totals .is-overdue strong{color:#946349}.family-payments .fpay-asof{font-size:11px;color:var(--fpay-muted);margin-top:9px}
.family-payments .fpay-tabs{display:flex;gap:7px;margin:22px 0 15px}.family-payments .fpay-tabs button{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;min-height:40px;background:transparent;border:1px solid transparent;border-radius:8px;color:#6884a0;font-size:12px;font-weight:500}.family-payments .fpay-tabs button[aria-pressed=true]{background:#eaf4ff;border-color:#cfe5fc;color:#146daf}.family-payments .fpay-tabs span{font-size:10px;min-width:18px;text-align:center;color:#7896af;font-weight:400}
.family-payments .fpay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.family-payments .fpay-card{border:1px solid var(--fpay-line);border-radius:12px;padding:17px;background:#fff;min-width:0}.family-payments .fpay-card.is-void{background:#fcfdff}.family-payments .fpay-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.family-payments .fpay-card-heading>div{min-width:0}.family-payments .fpay-card-heading h3{font-size:13px;line-height:1.5;font-weight:600;color:#315776;overflow-wrap:anywhere}.family-payments .fpay-card-heading p{font-size:11px;color:var(--fpay-muted);margin-top:3px;overflow-wrap:anywhere}.family-payments .fpay-status{display:inline-flex;flex-shrink:0;font-size:10px;font-weight:500;padding:3px 7px;line-height:1.5;border-radius:6px;background:#f0f5fb;color:#7289a1}.family-payments .fpay-status.is-overdue{background:#fff1e9;color:#a66d45}.family-payments .fpay-status.is-paid{background:#edf8f1;color:#497a5f}
.family-payments .fpay-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 18px}.family-payments .fpay-facts dt{font-size:11px;font-weight:400;color:var(--fpay-muted)}.family-payments .fpay-facts dd{font-size:12px;font-weight:400;color:var(--fpay-text);margin-top:3px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.family-payments .fpay-caption{font-size:11px;color:var(--fpay-muted);margin-top:12px}
.family-payments .fpay-card-footer{display:flex;flex-direction:column;align-items:flex-start;gap:11px;margin-top:16px;padding-top:13px;border-top:1px solid #edf2f8}.family-payments .fpay-card-footer p{font-size:11px;color:var(--fpay-muted)}.family-payments .fpay-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border:1px solid #cbdff5;border-radius:8px;background:#fff;padding:9px 13px;color:#1273c6;font-size:12px;font-weight:500;text-decoration:none;line-height:1.45;white-space:normal;box-shadow:none}
.family-payments .fpay-empty{padding:34px 20px;background:#fff;border:1px solid var(--fpay-line);border-radius:12px;text-align:center}.family-payments .fpay-empty>span{display:grid;place-items:center;width:37px;height:37px;background:#edf5ff;color:#4a82b1;border-radius:10px;margin:0 auto 12px}.family-payments .fpay-empty h3{font-size:14px;font-weight:600;color:#315a81}.family-payments .fpay-empty p{font-size:12px;max-width:430px;margin:7px auto 0;color:var(--fpay-muted)}
.family-payments .fpay-feedback{margin:0 0 16px;padding:12px 14px;border:1px solid #dceaf8;border-radius:9px;background:#f0f7ff;color:#5e809e;font-size:12px}.family-payments .fpay-feedback.is-error{background:#fff7ef;color:#926b42;border-color:#ecdcc8}.family-payments .fpay-feedback button{margin-top:10px}
.family-payments .fpay-download-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;padding:12px 14px;border:1px solid #dceaf8;border-radius:9px;background:#f0f7ff;color:#5e809e;font-size:12px}
.family-payments .fpay-loading{padding:23px;border:1px solid var(--fpay-line);border-radius:12px;background:white;display:grid;gap:13px;min-height:155px}.family-payments .fpay-loading span{height:13px;width:65%;background:#eff5fc;border-radius:5px}.family-payments .fpay-loading span:first-child{width:35%}.family-payments .fpay-loading p{font-size:11px;color:var(--fpay-muted)}
.family-payments .fpay-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:18px}.family-payments .fpay-pagination>span{font-size:11px;color:var(--fpay-muted);text-align:center}
@media(max-width:760px){.family-payments .fpay-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:440px){.family-payments .fpay-totals{gap:9px}.family-payments .fpay-totals>section{padding:13px 12px}.family-payments .fpay-totals strong{font-size:17px}.family-payments .fpay-card{padding:15px}.family-payments .fpay-button,.family-payments .fpay-tabs button{min-height:44px}.family-payments .fpay-card-footer .fpay-button{width:100%}.family-payments .fpay-pagination{gap:9px}.family-payments .fpay-pagination .fpay-button{padding:9px 10px}.family-payments .fpay-heading h2{font-size:18px}}
/* Compact, scoped notifications shared by the family and staff headers. */
.notifications{position:relative;flex:0 0 auto;color:#29496e;font-size:13px;line-height:1.5;text-align:left;}
.notifications :is(button,h2,h3,p){margin:0;}
.notifications button{font:inherit;cursor:pointer;}
.notifications button:disabled{cursor:default;opacity:.55;}
.notifications button:focus-visible{outline:2px solid #1688ec;outline-offset:3px;}
.notifications .ntf-bell{position:relative;display:grid;place-items:center;width:42px;height:42px;min-height:42px;padding:10px;border:1px solid #dce8f6;border-radius:12px;background:#fff;color:#315b87;}
.notifications .ntf-bell:hover,.notifications .ntf-bell[aria-expanded=true]{background:#edf6ff;border-color:#bad8f8;}
.notifications .ntf-bell svg{width:21px;height:21px;}
.notifications .ntf-badge{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;padding:0 4px;display:grid;place-items:center;border:2px solid white;border-radius:10px;background:#0778dc;color:#fff;font-size:10px;line-height:1;font-weight:600;box-sizing:border-box;}
.notifications .ntf-badge[hidden],.notifications .ntf-panel[hidden]{display:none;}
.notifications .ntf-badge.is-error{background:#ab6417;}
.notifications .ntf-panel{position:absolute;z-index:110;right:0;top:calc(100% + 12px);width:min(390px,calc(100vw - 28px));max-height:min(620px,calc(100dvh - 110px));display:flex;flex-direction:column;border:1px solid #dce7f4;border-radius:16px;background:white;box-shadow:0 15px 46px #173b6623;overflow:hidden;box-sizing:border-box;}
.notifications .ntf-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 18px 14px;}
.notifications .ntf-heading h2{font-size:16px;font-weight:600;line-height:1.35;color:#173b66;letter-spacing:-.15px;}
.notifications .ntf-heading p{margin-top:4px;font-size:11px;color:#7488a1;}
.notifications .ntf-close{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;min-height:30px;padding:7px;border:0;border-radius:8px;background:#f4f8fe;color:#647f9d;}
.notifications .ntf-close svg{width:16px;height:16px;}
.notifications .ntf-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 18px 14px;border-bottom:1px solid #e9eff7;}
.notifications .ntf-filters{display:flex;padding:3px;gap:3px;border-radius:9px;background:#f3f7fc;}
.notifications .ntf-filters button{padding:5px 10px;min-height:30px;border:0;border-radius:7px;background:transparent;color:#667e99;font-size:12px;font-weight:500;}
.notifications .ntf-filters button[aria-pressed=true]{background:white;color:#0878d3;box-shadow:0 1px 4px #173b6610;}
.notifications :is(.ntf-link,.ntf-refresh,.ntf-open,.ntf-read){display:inline-flex;align-items:center;gap:5px;min-height:30px;border:0;background:transparent;padding:3px 0;color:#0878d3;font-size:11px;font-weight:500;text-align:left;}
.notifications .ntf-refresh{color:#7187a1;}
.notifications .ntf-list{overflow-y:auto;overscroll-behavior:contain;min-height:0;}
.notifications .ntf-item{display:flex;gap:11px;padding:16px 18px;border-bottom:1px solid #edf2f8;background:white;}
.notifications .ntf-item:last-child{border-bottom:0;}
.notifications .ntf-item.is-unread{background:#f8fbff;}
.notifications .ntf-kind{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:#e8f3ff;color:#2981c7;}
.notifications .ntf-kind svg{width:17px;height:17px;}
.notifications .ntf-kind--care{color:#319279;background:#eaf7f1;}
.notifications .ntf-kind--report{color:#8a64b5;background:#f2ecfc;}
.notifications .ntf-item-body{min-width:0;flex:1;overflow-wrap:anywhere;}
.notifications .ntf-item-heading{display:flex;align-items:center;gap:8px;}
.notifications .ntf-item-heading h3{font-size:12px;font-weight:600;line-height:1.5;color:#284c74;flex:1;}
.notifications .ntf-dot{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#1988e7;}
.notifications .ntf-item-body>p{font-size:12px;color:#6d829b;line-height:1.55;margin:4px 0 6px;}
.notifications .ntf-item-body>.ntf-student{font-size:12px;font-weight:500;color:#3c6187;margin:3px 0;}
.notifications .ntf-student>span{font-weight:400;color:#8192a8;}
.notifications .ntf-item time,.notifications .ntf-organization{display:block;color:#8192a8;font-size:10px;line-height:1.6;}
.notifications .ntf-organization{margin-bottom:2px;color:#627e9d;}
.notifications .ntf-item-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 12px;margin-top:7px;}
.notifications .ntf-open svg{width:13px;height:13px;}
.notifications .ntf-read{color:#6d86a1;font-size:10px;}
.notifications .ntf-read-state{font-size:10px;color:#8b9db1;}
.notifications .ntf-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 18px;border-top:1px solid #e9eff7;flex-shrink:0;}
.notifications .ntf-footer>span{font-size:10px;color:#8496ac;}
.notifications .ntf-feedback{margin:0;padding:10px 18px;color:#427497;background:#f3f9ff;font-size:11px;line-height:1.55;flex-shrink:0;}
.notifications .ntf-feedback.is-error{background:#fff9ef;color:#8b641e;}
.notifications .ntf-feedback .ntf-link{font-size:11px;}
.notifications .ntf-empty{display:flex;align-items:center;flex-direction:column;text-align:center;padding:32px 25px 38px;color:#748ba4;}
.notifications .ntf-empty svg{width:28px;height:28px;margin-bottom:13px;color:#a8bfd8;}
.notifications .ntf-empty strong{font-size:13px;font-weight:500;color:#496d91;}
.notifications .ntf-empty p{font-size:11px;line-height:1.6;max-width:230px;margin-top:6px;}
.notifications .ntf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
@media(max-width:600px){.notifications .ntf-panel{position:fixed;top:80px;right:14px;left:14px;width:auto;max-height:calc(100dvh - 100px);}.notifications .ntf-heading{padding:16px 15px 12px;}.notifications .ntf-tools{padding:0 15px 12px;}.notifications .ntf-item{padding:14px 15px;}.notifications .ntf-footer{padding:10px 15px;}.notifications .ntf-bell{width:38px;height:38px;min-height:38px;padding:8px;}}
@media(prefers-reduced-motion:reduce){.notifications *{scroll-behavior:auto;}}
.announcements{color:#345b82;min-width:0;--ann-line:#e0e9f4;--ann-blue:#087be6;--ann-muted:#7189a2;--ann-dark:#193b68}
.announcements *{box-sizing:border-box}
.announcements h1,.announcements h2,.announcements h3,.announcements h4,.announcements p{margin:0;letter-spacing:0}
.announcements button,.announcements input,.announcements select,.announcements textarea{font:inherit;letter-spacing:0}
.announcements button{cursor:pointer}
.announcements button:disabled{cursor:wait;opacity:.6}
.announcements button:focus-visible,.announcements input:focus-visible,.announcements select:focus-visible,.announcements textarea:focus-visible{outline:3px solid #8ec6fc;outline-offset:3px}
.announcements [hidden]{display:none!important}
.announcements .ann-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.announcements .ann-heading h1{font-size:24px;line-height:1.3;font-weight:700;color:var(--ann-dark)}
.announcements .ann-heading h1:focus{outline:none}
.announcements .ann-heading p{font-size:12px;line-height:1.7;color:var(--ann-muted);margin-top:6px;max-width:620px}
.announcements .ann-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 15px;border:1px solid #ccdef3;border-radius:9px;background:white;color:var(--ann-blue);font-size:12px;font-weight:600;line-height:1.4;white-space:normal;text-align:center;box-shadow:none}
.announcements .ann-button svg{width:16px;height:16px;flex-shrink:0}
.announcements .ann-button.ann-primary{background:var(--ann-blue);border-color:var(--ann-blue);color:white}
.announcements .ann-button.ann-text{padding:5px 0;min-height:32px;border:0;background:transparent;font-weight:500}
.announcements .ann-button.ann-danger{color:#9b564f;border-color:#ecd7d3}
.announcements .ann-back{margin-bottom:15px}
.announcements .ann-filters,.announcements .ann-paper,.announcements .ann-message{background:#fff;border:1px solid var(--ann-line);border-radius:13px;min-width:0}
.announcements .ann-filters{padding:16px 18px;margin-bottom:18px}
.announcements .ann-filter-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(180px,1fr) auto;gap:14px;align-items:end}
.announcements label.ann-field{display:grid;gap:7px;font-size:11px;font-weight:500;line-height:1.5;color:var(--ann-muted);min-width:0;margin:0}
.announcements .ann-field input,.announcements .ann-field select,.announcements .ann-field textarea{width:100%;min-width:0;min-height:42px;padding:10px 12px;border:1px solid #d7e4f4;border-radius:9px;background:#fff;color:#345b82;font-size:12px;font-weight:400;line-height:1.5;box-shadow:none}
.announcements .ann-field textarea{min-height:220px;resize:vertical;white-space:pre-wrap}
.announcements .ann-field input::placeholder,.announcements .ann-field textarea::placeholder{color:#91a3b8;font-weight:400}
.announcements .ann-tabs{display:flex;gap:7px;flex-wrap:wrap;padding-top:15px;margin-top:15px;border-top:1px solid #edf2f9}
.announcements .ann-tabs button{min-height:36px;border:1px solid transparent;border-radius:8px;background:transparent;color:#6e85a0;padding:7px 13px;font-size:12px;font-weight:500;line-height:1.5}
.announcements .ann-tabs button[aria-pressed="true"]{color:var(--ann-blue);background:#edf6ff;border-color:#d4e7ff}
.announcements .ann-detail-tabs{padding:0;border:0;margin:0 0 18px}
.announcements .ann-list{display:grid;gap:14px}
.announcements .ann-message{padding:20px 22px}
.announcements .ann-message.ann-unread{border-color:#b8d8f8}
.announcements .ann-message-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:9px;margin-bottom:12px}
.announcements .ann-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.announcements .ann-tag{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:500;line-height:1.5;padding:4px 8px;border-radius:6px;color:#6484a6;background:#f0f6fd;max-width:100%;overflow-wrap:anywhere}
.announcements .ann-tag.ann-published{background:#edf8f1;color:#3c8561}
.announcements .ann-tag.ann-draft{background:#fff6e5;color:#987132}
.announcements .ann-tag.ann-withdrawn{background:#f5f0f0;color:#8d6969}
.announcements .ann-dot{display:inline-block;width:6px;height:6px;background:var(--ann-blue);border-radius:50%;margin-right:3px;flex-shrink:0}
.announcements .ann-meta,.announcements .ann-caption{font-size:10px;font-weight:400;color:#7e94ac;line-height:1.65;overflow-wrap:anywhere}
.announcements .ann-message h2,.announcements .ann-paper h2{font-size:16px;font-weight:600;line-height:1.5;color:#234b75;overflow-wrap:anywhere;margin-bottom:8px}
.announcements .ann-message .ann-excerpt{font-size:12px;line-height:1.75;color:#607d9a;overflow-wrap:anywhere}
.announcements .ann-message-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid #edf2f9;margin-top:15px;padding-top:11px}
.announcements .ann-message-footer>div{min-width:0}
.announcements .ann-message-footer .ann-button{flex-shrink:0}
.announcements .ann-empty{text-align:center;padding:40px 20px;background:white;border:1px solid var(--ann-line);border-radius:13px}
.announcements .ann-empty-icon{display:inline-flex;padding:12px;border-radius:12px;color:#72a0cc;background:#f0f6ff;margin-bottom:14px}
.announcements .ann-empty-icon svg{width:24px;height:24px}
.announcements .ann-empty h2{font-size:15px;color:#345b82;line-height:1.5;font-weight:600}
.announcements .ann-empty p{max-width:430px;margin:7px auto 0;font-size:12px;color:#7189a2;line-height:1.75}
.announcements .ann-empty button{margin-top:17px}
.announcements .ann-paper{padding:24px}
.announcements .ann-letter{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.9;color:#476887;margin-top:17px}
.announcements .ann-byline{display:flex;gap:11px;align-items:center;padding-top:20px;border-top:1px solid #edf2f9;margin-top:23px;font-size:12px;color:#4d6b8d}
.announcements .ann-avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#eaf4ff;color:#668caf;font-size:11px;flex-shrink:0}
.announcements .ann-byline .ann-caption{display:block;margin-top:3px}
.announcements .ann-callout{display:flex;gap:11px;align-items:flex-start;padding:14px 16px;border:1px solid #dceafa;border-radius:10px;background:#f2f8ff;color:#54789c;font-size:12px;line-height:1.65;margin-top:17px}
.announcements .ann-callout>svg{width:18px;height:18px;margin-top:2px;flex-shrink:0;color:#659acb}
.announcements .ann-callout strong{font-weight:500;color:#385f86}
.announcements .ann-callout .ann-caption{margin-top:3px}
.announcements .ann-composer{display:grid;gap:20px}
.announcements .ann-two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
.announcements .ann-actions{display:flex;gap:12px;justify-content:flex-end;align-items:center;margin-top:20px;flex-wrap:wrap}
.announcements .ann-feedback{padding:12px 15px;background:#eff7ff;border:1px solid #dceafa;border-radius:9px;color:#3f729e;font-size:12px;line-height:1.6;margin:0 0 18px;overflow-wrap:anywhere}
.announcements .ann-feedback.ann-error{background:#fff8ef;color:#916c39;border-color:#efdfc4}
.announcements .ann-pagination{display:flex;justify-content:flex-end;gap:12px;align-items:center;margin-top:20px;padding-top:17px;border-top:1px solid #e4edf8}
.announcements .ann-subheading{font-size:14px;font-weight:600;color:#345b82;line-height:1.5;margin-bottom:15px}
.announcements .ann-receipt{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;padding:15px 0;border-bottom:1px solid #edf2f9;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.announcements .ann-receipt:last-child{border-bottom:0}
.announcements .ann-receipt strong{font-size:12px;font-weight:500;color:#365a81}
.announcements .ann-receipt p{font-size:11px;color:#7b91a9;margin-top:4px}
.announcements .ann-receipt-side{text-align:right}
.announcements .ann-withdraw{margin-top:20px;border:1px solid #ecd8d4;border-radius:12px;background:#fffaf9;padding:18px}
.announcements .ann-withdraw h3{font-size:14px;font-weight:600;line-height:1.6;margin-bottom:7px}
.announcements .ann-withdraw p{font-size:12px;line-height:1.7;margin-bottom:14px;color:#896c66}
.announcements .ann-loading{min-height:180px;padding:30px 20px;display:grid;gap:12px;align-content:start;background:white;border:1px solid var(--ann-line);border-radius:13px}
.announcements .ann-loading span{display:block;height:12px;border-radius:5px;background:#edf4fc;max-width:65%}
.announcements .ann-loading span:first-child{max-width:40%;height:17px}.announcements .ann-loading span:nth-child(3){max-width:52%}
.announcements .ann-loading p{font-size:11px;color:var(--ann-muted);margin-top:7px}
.announcements.ann-family{max-width:820px;margin:0 auto}
@media(max-width:700px){.announcements .ann-filter-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.announcements .ann-filter-grid>.ann-button{grid-column:1/-1;justify-self:start}.announcements .ann-two-fields{grid-template-columns:minmax(0,1fr)}.announcements .ann-paper{padding:20px}}
@media(max-width:480px){.announcements .ann-heading{align-items:flex-start;flex-direction:column;gap:14px}.announcements .ann-heading h1{font-size:22px}.announcements .ann-filter-grid{grid-template-columns:minmax(0,1fr)}.announcements .ann-filters,.announcements .ann-message,.announcements .ann-paper{padding:17px}.announcements .ann-field input,.announcements .ann-field select,.announcements .ann-field textarea{font-size:16px}.announcements .ann-button{min-height:44px}.announcements .ann-message-footer{flex-wrap:wrap;gap:4px}.announcements .ann-receipt{grid-template-columns:minmax(0,1fr);gap:6px}.announcements .ann-receipt-side{text-align:left}.announcements .ann-actions{justify-content:stretch}.announcements .ann-actions>.ann-button{flex:1}.announcements .ann-pagination{flex-wrap:wrap}.announcements .ann-letter{font-size:12px}.announcements .ann-heading p{max-width:none}}

.announcements .ann-caption.ann-note{margin-top:14px}
.announcements .ann-tabs[aria-label="Vistas de comunicación"]{padding:0;border:0;margin:0 0 18px}
.announcements .ann-event-details{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px;padding:13px 15px;margin:13px 0;background:#f5f9ff;border:1px solid #e7eff9;border-radius:9px}
.announcements .ann-event-details span{display:block;font-size:10px;color:#7e94ac;font-weight:400;line-height:1.5}
.announcements .ann-event-details p{font-size:12px;font-weight:400;color:#547696;line-height:1.6;margin-top:3px;overflow-wrap:anywhere}
.announcements .ann-event-editor{display:grid;gap:15px;min-width:0;margin:0;padding:18px;border:1px solid #e0e9f4;border-radius:10px;background:#f9fbff}
.announcements .ann-event-editor legend{font-size:12px;font-weight:500;color:#547696;padding:0 6px}
.announcements .ann-kind-field{max-width:280px}
.announcements .ann-check{display:flex;align-items:center;gap:9px;font-size:12px;line-height:1.6;font-weight:400;color:#547696;min-height:40px;margin:0}
.announcements .ann-check input{width:18px;height:18px;min-height:18px;accent-color:#087be6;margin:0}
.announcements .ann-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 15px}
.announcements .ann-calendar-toolbar h2{font-size:16px;font-weight:600;line-height:1.5;color:#345b82}
.announcements .ann-calendar-toolbar>div{display:flex;gap:8px;align-items:center}
.announcements .ann-calendar-toolbar .ann-button{font-size:12px;min-width:40px;padding:8px 12px}
.announcements .ann-calendar{background:#fff;border:1px solid #e0e9f4;border-radius:12px;overflow:hidden}
.announcements .ann-weekdays,.announcements .ann-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.announcements .ann-weekdays{background:#f7faff;border-bottom:1px solid #e5edf7}
.announcements .ann-weekdays span{font-size:10px;font-weight:500;color:#7e94ac;text-align:center;padding:10px 3px}
.announcements .ann-calendar-day{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:11px;min-width:0;min-height:72px;padding:12px 10px;border:0;border-right:1px solid #eef3f9;border-bottom:1px solid #eef3f9;border-radius:0;background:#fff;color:#547696;font-size:12px;font-weight:400;line-height:1.5;text-align:left}
.announcements .ann-calendar-day:nth-child(7n){border-right:0}
.announcements .ann-calendar-day:nth-last-child(-n+7){border-bottom:0}
.announcements .ann-calendar-day:hover{background:#f7fbff}
.announcements .ann-calendar-day.is-selected{background:#eaf5ff;box-shadow:inset 0 0 0 1px #a8cff2;color:#176eaf}
.announcements .ann-calendar-day.is-outside{color:#bac8d7;background:#fbfcfe}
.announcements .ann-calendar-day:focus-visible{outline-offset:-3px;position:relative;z-index:1}
.announcements .ann-day-count{font-size:10px;line-height:1.4;color:#5087b3;background:#eaf4fd;border-radius:5px;padding:3px 5px;overflow-wrap:anywhere}
.announcements .ann-day-placeholder{height:20px}
.announcements .ann-calendar-note{margin:10px 0 22px}
.announcements .ann-day-agenda>h2{font-size:14px;font-weight:600;color:#345b82;line-height:1.5;margin-bottom:13px}
.announcements .ann-day-agenda .ann-empty{padding:25px 18px}
@media(max-width:700px){.announcements .ann-event-details{grid-template-columns:minmax(0,1fr)}.announcements .ann-day-word{display:none}.announcements .ann-calendar-day{min-height:72px;padding:9px 7px;gap:5px}.announcements .ann-calendar-day .ann-day-count{font-size:9px;min-width:17px;text-align:center}}
@media(max-width:480px){.announcements .ann-calendar-toolbar{gap:10px;flex-wrap:wrap}.announcements .ann-calendar-toolbar h2{font-size:14px}.announcements .ann-calendar-toolbar .ann-button{min-height:40px;padding:8px 10px;font-size:11px}.announcements .ann-calendar-day{min-height:61px;padding:7px 5px;font-size:11px}.announcements .ann-weekdays span{font-size:9px;padding:9px 1px}.announcements .ann-event-editor{padding:13px;gap:12px}.announcements .ann-kind-field{max-width:none}}
.student-payments{--pay-ink:#193b68;--pay-text:#345a7e;--pay-muted:#6d86a0;--pay-line:#e0e9f4;--pay-blue:#087be6;color:var(--pay-text);min-width:0;font-size:12px;line-height:1.6}
.student-payments *{box-sizing:border-box}
.student-payments h1,.student-payments h2,.student-payments h3,.student-payments p{margin:0;letter-spacing:0}
.student-payments button,.student-payments input,.student-payments select,.student-payments textarea{font:inherit;letter-spacing:0}
.student-payments button{cursor:pointer}.student-payments button:disabled{cursor:default;opacity:.55}
.student-payments button:focus-visible,.student-payments input:focus-visible,.student-payments select:focus-visible,.student-payments textarea:focus-visible{outline:3px solid #8ec6fc;outline-offset:3px}
.student-payments [hidden]{display:none!important}.student-payments svg{width:17px;height:17px;flex-shrink:0}
.student-payments .pay-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}
.student-payments .pay-heading h1{font-size:24px;font-weight:700;line-height:1.3;color:var(--pay-ink);overflow-wrap:anywhere}.student-payments [data-pay-heading]:focus{outline:none}
.student-payments .pay-heading p{font-size:12px;color:var(--pay-muted);margin-top:6px;line-height:1.7}
.student-payments .pay-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.student-payments .pay-row-actions{display:grid;justify-items:start;gap:5px;max-width:190px}.student-payments .pay-row-actions .pay-button{text-align:left;justify-content:flex-start}
.student-payments .pay-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 13px;border:1px solid #cadff5;border-radius:8px;background:#fff;color:var(--pay-blue);font-size:12px;font-weight:600;line-height:1.45;text-align:center;box-shadow:none;white-space:normal}
.student-payments .pay-primary{background:var(--pay-blue);color:white;border-color:var(--pay-blue)}
.student-payments .pay-button.pay-link{border:0;background:transparent;padding:6px 0;font-weight:500;min-height:32px}.student-payments .pay-button.pay-danger{color:#a25449;border-color:#ecd7d3}
.student-payments .pay-back{margin-bottom:13px}.student-payments .pay-end{justify-content:flex-end;margin-top:18px}
.student-payments .pay-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.student-payments .pay-metric{background:white;border:1px solid var(--pay-line);border-radius:12px;padding:16px;min-width:0}
.student-payments .pay-metric-label{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--pay-muted)}
.student-payments .pay-metric-value{font-size:21px;color:#224d78;font-weight:600;margin:8px 0 4px;line-height:1.5;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.student-payments .pay-metric small{display:block;font-size:11px;font-weight:400;color:var(--pay-muted)}
.student-payments .pay-metric.pay-overdue{background:#fffafa;border-color:#efdeda}.student-payments .pay-overdue .pay-metric-value{color:#985a50}
.student-payments .pay-box{background:white;border:1px solid var(--pay-line);border-radius:12px;min-width:0}.student-payments .pay-pad{padding:19px}
.student-payments .pay-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.4fr) auto;gap:13px;align-items:end}
.student-payments label.pay-field{display:grid;gap:6px;margin:0;font-size:11px;font-weight:500;line-height:1.5;color:var(--pay-muted);min-width:0}
.student-payments .pay-field input,.student-payments .pay-field select,.student-payments .pay-field textarea{width:100%;min-width:0;min-height:42px;padding:10px 11px;border:1px solid #d5e3f4;border-radius:8px;background:#fff;color:var(--pay-text);font-size:12px;font-weight:400;line-height:1.5;box-shadow:none}
.student-payments .pay-field textarea{min-height:85px;resize:vertical}.student-payments input::placeholder,.student-payments textarea::placeholder{color:#859bb1}
.student-payments .pay-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:15px}
.student-payments .pay-tabs button{min-height:38px;padding:8px 11px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--pay-muted);font-size:12px;font-weight:500}
.student-payments .pay-tabs button[aria-pressed=true]{color:var(--pay-blue);border-color:#d6e8fc;background:#edf6ff}.student-payments .pay-account-tabs{margin:0 0 16px}
.student-payments .pay-table-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:15px 19px 9px;font-size:11px;color:var(--pay-muted)}
.student-payments .pay-table-wrap{overflow-x:auto}.student-payments table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}
.student-payments th{padding:11px 15px;border-bottom:1px solid var(--pay-line);background:#f8fbff;color:var(--pay-muted);font-size:11px;font-weight:500;white-space:nowrap}
.student-payments td{padding:16px 15px;border-bottom:1px solid #edf2f9;vertical-align:middle;overflow-wrap:anywhere}.student-payments tbody tr:last-child td{border-bottom:0}
.student-payments .pay-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.student-payments .pay-name{display:block;color:#244e78;font-weight:600;font-size:12px;line-height:1.5}
.student-payments .pay-name-line{display:flex;gap:10px;align-items:center}.student-payments .pay-avatar{display:grid;place-items:center;width:32px;height:32px;background:#eaf4ff;border-radius:10px;font-size:11px;color:#4378a6;flex-shrink:0}
.student-payments .pay-meta{display:block;margin-top:4px;font-size:11px;font-weight:400;color:var(--pay-muted);line-height:1.6;overflow-wrap:anywhere}
.student-payments .pay-negative{color:#9b594f}.student-payments .pay-tag{display:inline-flex;align-items:center;max-width:100%;padding:4px 7px;background:#f0f6fc;color:#587c9e;border-radius:6px;font-size:10px;font-weight:500;line-height:1.5;white-space:normal}
.student-payments .pay-tag.pay-danger{color:#a25449;background:#fff0ec}.student-payments .pay-tag.pay-good{color:#397d57;background:#edf8f1}.student-payments .pay-tag.pay-wait{color:#92712e;background:#fff7e4}
.student-payments .pay-profile{display:flex;align-items:center;flex-wrap:wrap;gap:13px;background:white;border:1px solid var(--pay-line);border-radius:12px;padding:20px;margin-bottom:17px}
.student-payments .pay-profile>.pay-avatar{width:46px;height:46px;font-size:16px}.student-payments .pay-profile h1{font-size:20px;line-height:1.4;color:var(--pay-ink);font-weight:600;overflow-wrap:anywhere}
.student-payments .pay-profile>div{min-width:0}.student-payments .pay-profile .pay-actions{margin-left:auto}
.student-payments .pay-account-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.student-payments .pay-balance{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 17px;border:1px solid var(--pay-line);border-radius:10px;background:white;font-size:11px;color:var(--pay-muted)}
.student-payments .pay-balance strong{font-size:17px;font-weight:600;color:#2b557e;font-variant-numeric:tabular-nums}.student-payments .pay-balance.pay-overdue strong{color:#a25449}
.student-payments .pay-foot{border-top:1px solid var(--pay-line);padding:13px 18px;font-size:11px;color:var(--pay-muted)}
.student-payments .pay-callout{display:flex;gap:10px;align-items:flex-start;padding:13px 15px;border:1px solid #dfebf9;border-radius:9px;background:#edf6ff;color:#4b7398;font-size:12px;line-height:1.65;margin:16px 0}
.student-payments .pay-callout>div{min-width:0}.student-payments .pay-callout svg{margin-top:2px}.student-payments .pay-error{background:#fff7ef;border-color:#efdfc4;color:#916c39}.student-payments .pay-success{background:#edf8f2;border-color:#d8ebdf;color:#337656}
.student-payments .pay-callout .pay-actions{margin-top:10px}
.student-payments .pay-empty{text-align:center;padding:34px 20px;font-size:12px;line-height:1.75;color:var(--pay-muted)}.student-payments .pay-empty h2{font-size:15px;font-weight:600;line-height:1.5;color:var(--pay-text)}.student-payments .pay-empty p{margin:7px auto 0;max-width:460px}.student-payments .pay-empty button{margin-top:15px}
.student-payments .pay-loading{display:grid;gap:13px;align-content:start;min-height:180px;padding:30px 20px}.student-payments .pay-loading span{height:12px;border-radius:5px;background:#edf4fc;max-width:65%}.student-payments .pay-loading span:first-child{height:17px;max-width:40%}.student-payments .pay-loading p{font-size:11px;color:var(--pay-muted)}
.student-payments .pay-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:17px;align-items:start}.student-payments .pay-form{display:grid;gap:18px}.student-payments .pay-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.student-payments .pay-box h2,.student-payments .pay-box h3{font-size:14px;font-weight:600;line-height:1.5;color:var(--pay-ink);margin-bottom:13px}
.student-payments .pay-facts{margin:0;font-size:12px}.student-payments .pay-facts>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #edf2f9}.student-payments .pay-facts>div:last-child{border:0}
.student-payments .pay-facts dt{font-size:11px;color:var(--pay-muted)}.student-payments .pay-facts dd{margin:0;text-align:right;overflow-wrap:anywhere;min-width:0;max-width:70%}
.student-payments .pay-review{max-width:660px;margin:0 auto}.student-payments .pay-review-title{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--pay-line);padding-bottom:17px;margin-bottom:7px}.student-payments .pay-review-title h2{margin:0}
.student-payments .pay-history{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:15px 0;border-bottom:1px solid #edf2f9}.student-payments .pay-history:last-child{border:0}.student-payments .pay-history strong{font-size:12px;font-weight:500}.student-payments .pay-history time{font-size:11px;color:var(--pay-muted);text-align:right}
@media(max-width:760px){.student-payments .pay-form-layout{grid-template-columns:minmax(0,1fr)}.student-payments .pay-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.student-payments .pay-filters>.pay-button{grid-column:1/-1;justify-self:start}.student-payments .pay-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.student-payments .pay-heading h1{font-size:22px}.student-payments .pay-metrics,.student-payments .pay-account-metrics,.student-payments .pay-pair,.student-payments .pay-filters{grid-template-columns:minmax(0,1fr)}.student-payments .pay-metric{padding:13px 15px;display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center}.student-payments .pay-metric-value{font-size:19px;margin:0}.student-payments .pay-metric small{grid-column:1/-1}.student-payments .pay-pad,.student-payments .pay-profile{padding:16px}.student-payments .pay-profile h1{font-size:18px}.student-payments .pay-profile .pay-actions{margin-left:0;width:100%}.student-payments .pay-field input,.student-payments .pay-field select,.student-payments .pay-field textarea{font-size:16px}.student-payments .pay-button,.student-payments .pay-tabs button{min-height:44px}.student-payments .pay-table-wrap table,.student-payments .pay-table-wrap tbody,.student-payments .pay-table-wrap tr,.student-payments .pay-table-wrap td{display:block;width:100%}.student-payments .pay-table-wrap thead{display:none}.student-payments .pay-table-wrap tr{padding:14px 17px;border-bottom:1px solid var(--pay-line)}.student-payments .pay-table-wrap td{padding:6px 0;border:0;text-align:left;white-space:normal}.student-payments td[data-label]{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-payments td[data-label]::before{content:attr(data-label);font-size:11px;color:var(--pay-muted)}.student-payments .pay-history{grid-template-columns:1fr;gap:5px}.student-payments .pay-history time{text-align:left}.student-payments .pay-end .pay-button{flex:1}.student-payments .pay-facts dd{max-width:65%}}
.payment-reports .report-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end;margin:18px 0 14px}
.payment-reports .report-search{grid-column:span 2}.payment-reports .report-filters>button{justify-self:start}
.payment-reports .report-check{display:flex;align-items:center;gap:9px;font-size:12px;min-height:40px}.payment-reports .report-check input{width:17px;height:17px;margin:0;accent-color:var(--pay-blue)}
.payment-reports .pay-metrics{margin-top:20px}.payment-reports .report-context{font-size:11px;color:var(--pay-muted);margin:0 0 12px}
.payment-reports .report-total{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 18px;background:#f2f7ff;border-top:1px solid var(--pay-line);font-size:12px}.payment-reports .report-total strong{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.payment-reports .report-methods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.payment-reports .report-methods>div{background:white;border:1px solid var(--pay-line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:5px;font-size:11px}.payment-reports .report-methods strong{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.payment-reports .report-pagination{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:15px 18px;font-size:11px}.payment-reports .pay-table-head strong{font-size:12px;font-weight:600}.payment-reports .report-account-link{display:inline-flex;align-items:center;min-height:40px;white-space:nowrap;text-decoration:none}
.payment-reports .pay-back{display:inline-block;text-decoration:none}.payment-reports a:focus-visible{outline:3px solid #8ec6fc;outline-offset:3px}.student-payments .pay-reports-link{display:inline-flex;align-items:center;min-height:40px;text-decoration:none;margin-top:16px;font-weight:500}
@media(max-width:850px){.payment-reports .report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.payment-reports .report-filters{grid-template-columns:minmax(0,1fr)}.payment-reports .report-search{grid-column:auto}.payment-reports .report-filters>button{width:100%}.payment-reports .report-methods{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-reports .report-total{align-items:flex-start}.payment-reports .report-pagination{justify-content:space-between;gap:8px}}
.monthly-charges .monthly-steps{display:flex;gap:24px;list-style:none;padding:0;margin:0 0 18px;color:#7890a9;font-size:11px;font-weight:500;flex-wrap:wrap}
.monthly-charges .monthly-steps li{display:flex;align-items:center;gap:8px;line-height:1.4}.monthly-charges .monthly-steps li>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;border:1px solid #deebf8;background:#f3f8ff;font-size:11px}.monthly-charges .monthly-steps li[aria-current=step]{color:#1a6fb4}.monthly-charges .monthly-steps li[aria-current=step]>span{border-color:#badcff;background:#e7f3ff}.monthly-charges .monthly-steps svg{width:13px;height:13px}
.monthly-charges .monthly-details{max-width:900px}.monthly-charges .monthly-details h2{margin-bottom:20px;font-size:14px}
.monthly-charges .monthly-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.monthly-charges .monthly-wide{grid-column:span 2}.monthly-charges .monthly-hint{grid-column:1/-1;border:1px solid #e2edf8;border-radius:8px;background:#f7fbff;padding:12px 14px;color:#6d86a0;font-size:11px;line-height:1.75}
.monthly-charges .monthly-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.monthly-charges a.pay-button{text-decoration:none}.monthly-charges a:focus-visible{outline:3px solid #8ec6fc;outline-offset:3px}
.monthly-charges .monthly-review-summary{display:flex;align-items:center;gap:20px;margin-bottom:16px}.monthly-charges .monthly-review-summary dl{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0;min-width:0}.monthly-charges dt{font-size:11px;color:#6d86a0;font-weight:400}.monthly-charges dd{font-size:12px;color:#345a7e;margin:5px 0 0;overflow-wrap:anywhere;font-weight:500}
.monthly-charges .monthly-list-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 19px;border-bottom:1px solid #e0e9f4}.monthly-charges .monthly-list-heading h2{font-size:13px;margin:0}.monthly-charges .monthly-list-heading p{font-size:11px;color:#7b91a7;margin-top:3px}.monthly-charges .monthly-check-all{display:flex;align-items:center;gap:8px;font-size:11px;color:#547695;font-weight:400;cursor:pointer;margin:0}
.monthly-charges input[type=checkbox]{appearance:auto;width:17px;height:17px;min-height:17px;margin:0;accent-color:#087be6;box-shadow:none;flex-shrink:0;padding:0}.monthly-charges input[type=checkbox]:disabled{opacity:.45;cursor:default}
.monthly-charges .monthly-student-list{max-height:480px;overflow-y:auto;overscroll-behavior:contain}.monthly-charges label.monthly-student{display:flex;align-items:center;gap:12px;margin:0;padding:15px 19px;border-bottom:1px solid #edf2f9;font-size:12px;font-weight:400;line-height:1.55;cursor:pointer}.monthly-charges .monthly-student:last-child{border-bottom:0}.monthly-charges .monthly-student-name{flex:1;min-width:0}.monthly-charges .monthly-student strong{font-size:12px;font-weight:500;color:#345a7e;display:block;overflow-wrap:anywhere}.monthly-charges .monthly-student small{font-size:11px;font-weight:400;color:#7890a8;display:block;overflow-wrap:anywhere;margin-top:2px}.monthly-charges .monthly-student-state{text-align:right;font-size:12px;max-width:40%;overflow-wrap:anywhere;line-height:1.55;font-variant-numeric:tabular-nums}.monthly-charges label.monthly-excluded{cursor:default;background:#fbfcfe}.monthly-charges .monthly-excluded strong{color:#69849d}.monthly-charges .monthly-student-state .pay-tag{font-size:10px}
.monthly-charges .monthly-review-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 19px;border-top:1px solid #e0e9f4;background:#f9fcff;border-radius:0 0 12px 12px}.monthly-charges .monthly-total>span{display:block;font-size:11px;color:#6d86a0}.monthly-charges .monthly-total strong{display:block;font-size:18px;line-height:1.5;font-weight:600;color:#244e78;font-variant-numeric:tabular-nums;margin-top:2px}.monthly-charges .monthly-total small{display:block;font-size:11px;color:#7890a8;font-weight:400;margin-top:2px}.monthly-charges .monthly-note{font-size:11px;color:#7890a8;margin:12px 0 0}
.monthly-charges .monthly-success{max-width:600px;margin:0 auto;text-align:center;padding:30px}.monthly-charges .monthly-success-icon{display:grid;place-items:center;margin:0 auto 14px;width:40px;height:40px;background:#edf8f2;color:#398360;border-radius:12px}.monthly-charges .monthly-success-icon svg{width:20px;height:20px}.monthly-charges .monthly-success h2{font-size:18px;margin-bottom:7px}.monthly-charges .monthly-success dl{margin:20px auto;background:#f5faff;border-radius:9px;padding:14px;max-width:300px}.monthly-charges .monthly-success dd{font-size:18px;font-weight:600}.monthly-charges .monthly-success .pay-actions{justify-content:center;margin-top:20px}
@media(max-width:850px){.monthly-charges .monthly-review-summary{align-items:flex-start;flex-direction:column;gap:12px}.monthly-charges .monthly-review-summary dl{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.monthly-charges .monthly-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.monthly-charges .monthly-wide{grid-column:1/-1}.monthly-charges .monthly-list-heading{padding:15px;align-items:flex-start;flex-direction:column;gap:12px}.monthly-charges label.monthly-student{padding:14px 15px;gap:10px;align-items:flex-start}.monthly-charges .monthly-student>input{margin-top:2px}.monthly-charges .monthly-student-state{max-width:42%;font-size:11px}.monthly-charges .monthly-review-footer{padding:15px;align-items:stretch;flex-direction:column;gap:15px}.monthly-charges .monthly-review-footer .pay-actions{display:grid;grid-template-columns:1fr 1fr}.monthly-charges .monthly-form-actions>.pay-button{flex:1}.monthly-charges .monthly-steps{gap:14px}.monthly-charges .monthly-success{padding:24px 16px}}
.center-import{color:#244b73;font-size:12px;line-height:1.6;max-width:1140px;margin:0 auto;min-width:0}
.center-import *{box-sizing:border-box}.center-import h1,.center-import h2,.center-import p{margin:0}.center-import .ci-heading{margin:18px 0 22px}.center-import .ci-heading h1{font-size:24px;line-height:1.3;color:#173d68;font-weight:650;margin:0 0 7px}.center-import .ci-heading p{font-size:12px;color:#7188a1}
.center-import .ci-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 14px;border:1px solid #cadff4;border-radius:8px;background:#fff;color:#0878d3;text-decoration:none;font-size:12px;font-weight:500;line-height:1.45;cursor:pointer;max-width:100%;white-space:normal;text-align:center}.center-import .ci-primary{background:#087ddd;border-color:#087ddd;color:#fff}.center-import .ci-button:hover:not(:disabled){background:#edf7ff}.center-import .ci-primary:hover:not(:disabled){background:#096abe}.center-import .ci-button:disabled{opacity:.48;cursor:default}.center-import button:focus-visible,.center-import a:focus-visible,.center-import input:focus-visible,.center-import select:focus-visible{outline:3px solid #91c8f9;outline-offset:3px}
.center-import .ci-steps{list-style:none;display:flex;flex-wrap:wrap;gap:25px;margin:0 0 20px;padding:0;color:#7e92a7;font-size:11px}.center-import .ci-steps li{display:flex;align-items:center;gap:8px}.center-import .ci-steps li>span{display:grid;place-items:center;width:26px;height:26px;border:1px solid #dce9f5;background:#f3f8fe;border-radius:50%;font-size:11px}.center-import .ci-steps [aria-current]{color:#1673bd}.center-import .ci-steps [aria-current]>span{background:#e9f4ff;border-color:#bcddff}.center-import .ci-steps svg{width:13px;height:13px}
.center-import .ci-card{padding:23px;border:1px solid #e0e9f4;border-radius:12px;background:#fff;margin-bottom:18px;min-width:0}.center-import .ci-intro{display:flex;gap:13px;align-items:center;margin:0 0 18px;padding:14px 17px;background:#eef7ff;border:1px solid #d9eafa;border-radius:10px}.center-import .ci-intro p{font-size:12px;color:#436884}.center-import .ci-intro small{font-size:11px;color:#7a90a6;display:block;margin-top:2px}.center-import .ci-intro-icon{display:grid;place-items:center;color:#0785df;flex:0 0 32px;width:32px;height:32px}.center-import .ci-intro-icon svg{width:24px;height:24px}
.center-import .ci-section-heading{margin-bottom:15px}.center-import .ci-section-heading h2{font-size:14px;font-weight:600;color:#264f76;margin:0 0 4px}.center-import .ci-section-heading p{font-size:11px;color:#7b90a6}.center-import .ci-template-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.center-import .ci-columns{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}.center-import .ci-columns>span{font-size:11px;background:#f3f8fd;border:1px solid #e4edf7;border-radius:6px;padding:6px 10px;color:#547796}.center-import .ci-help{font-size:11px;color:#7b91a7;line-height:1.7;margin:7px 0 0;overflow-wrap:anywhere}
.center-import .ci-scope{border-top:1px solid #e7eef7;margin-top:20px;padding-top:20px}.center-import .ci-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.center-import .ci-field{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:400;color:#6a84a0;min-width:0;margin:0}.center-import .ci-field input,.center-import .ci-field select{font:inherit;font-size:12px;font-weight:400;color:#345b80;min-height:42px;padding:9px 11px;background:#fff;border:1px solid #d6e3f1;border-radius:8px;width:100%;min-width:0;max-width:100%;box-shadow:none}.center-import .ci-field input::placeholder{color:#96a9bc}.center-import .ci-field input[type=file]{padding:9px;background:#fcfdff}.center-import .ci-field input[type=file]::file-selector-button{border:0;border-radius:5px;padding:6px 9px;margin-right:12px;background:#edf6ff;color:#2071b2;font:inherit;cursor:pointer}.center-import .ci-wide{grid-column:1/-1}.center-import .ci-single-location{grid-column:1/-1;color:#7b91a7;font-size:11px}.center-import .ci-single-location strong{font-weight:500;color:#456a89}
.center-import .ci-file-area{margin-top:22px;padding-top:20px;border-top:1px solid #e7eef7}.center-import .ci-file-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:12px;background:#f7fbff;border-radius:8px;padding:11px 12px}.center-import .ci-file-summary>span{font-size:12px;color:#436984;overflow-wrap:anywhere;flex:1;min-width:140px}.center-import .ci-file-summary small{font-size:11px;color:#7b91a7}.center-import .ci-quota{font-size:11px;color:#6c86a0;margin-top:14px}.center-import .ci-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.center-import .ci-end{justify-content:flex-end}
.center-import .ci-notice{display:flex;gap:11px;align-items:flex-start;border:1px solid #dce9f6;border-radius:9px;background:#f5faff;padding:13px 15px;margin:0 0 17px;color:#50708e;font-size:12px}.center-import .ci-notice>svg{flex:0 0 18px;width:18px;height:18px;margin-top:2px}.center-import .ci-notice p{margin:0;overflow-wrap:anywhere}.center-import .ci-error{background:#fff7f6;border-color:#f2dcd7;color:#985d53}.center-import .ci-warning{background:#fffaf0;border-color:#eee2c5;color:#947236;margin-top:15px}.center-import .ci-notice .ci-actions{margin-top:11px}
.center-import .ci-counts{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:9px}.center-import .ci-counts>span{background:#f4f8fc;border:1px solid #e5edf5;border-radius:7px;padding:7px 11px;font-size:11px;color:#6b839d}.center-import .ci-counts strong{font-weight:600;color:#3d6486;margin-right:4px;font-size:12px}.center-import .ci-all{display:flex;gap:8px;align-items:center;font-size:11px;font-weight:400;color:#567795;margin:19px 0 13px}.center-import input[type=checkbox]{appearance:auto;accent-color:#087ddd;width:17px;height:17px;min-height:17px;margin:0;padding:0;flex-shrink:0;box-shadow:none}.center-import .ci-table-wrap{overflow-x:auto;max-width:100%;border:1px solid #e5edf6;border-radius:9px}.center-import .ci-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px;min-width:510px}.center-import .ci-table th,.center-import .ci-table td{padding:12px 13px;text-align:left;vertical-align:top;border-bottom:1px solid #eaf0f7;overflow-wrap:anywhere}.center-import .ci-table th{font-weight:500;font-size:11px;background:#f5f9fe;color:#7490a9}.center-import .ci-table tr:last-child td{border-bottom:0}.center-import .ci-table th:first-child{width:44px}.center-import .ci-table th:nth-child(2){width:53px}.center-import .ci-table th:nth-child(3){width:40%}.center-import .ci-table td strong{font-size:12px;font-weight:500;color:#3a6082}.center-import .ci-table td small{display:block;font-size:11px;color:#7b92a8;margin-top:3px}.center-import .ci-row-number{font-size:11px;color:#7b92a8}.center-import .ci-row-error,.center-import .ci-row-duplicate{background:#fdfdfe}.center-import .ci-status{font-size:10px;padding:4px 7px;border-radius:5px;background:#edf8f2;color:#468166;display:inline-block;line-height:1.5}.center-import .ci-status-error{background:#fff0ed;color:#ac695b}.center-import .ci-status-duplicate{background:#fff6e7;color:#967c4a}.center-import .ci-messages{margin:7px 0 0;padding-left:14px;font-size:11px;color:#8293a4;line-height:1.6}.center-import .ci-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:13px 0 0;color:#7b91a7}.center-import .ci-pagination>small{font-size:11px}.center-import .ci-pagination>div{display:flex;align-items:center;gap:10px;font-size:11px}.center-import .ci-confirm{border-top:1px solid #e5edf6;display:flex;justify-content:space-between;gap:22px;align-items:center;margin:20px 0 0;padding:20px 0 0}.center-import .ci-confirm strong{font-size:13px;font-weight:600;color:#345b7e}.center-import .ci-confirm p{font-size:11px;color:#7a91a7;max-width:520px;margin-top:4px}.center-import .ci-confirm>.ci-button{flex-shrink:0}
.center-import .ci-success{max-width:650px;margin:35px auto;text-align:center;padding:32px}.center-import .ci-success h2{font-size:19px;margin:14px 0 8px;color:#234c74}.center-import .ci-success p{font-size:12px;color:#7590a8;max-width:430px;margin:0 auto}.center-import .ci-success-icon{display:grid;place-items:center;width:43px;height:43px;background:#ebf8f0;color:#489a6d;border-radius:12px;margin:0 auto}.center-import .ci-success-icon svg{width:23px;height:23px}.center-import .ci-success .ci-actions{justify-content:center;margin-top:23px}.center-import .ci-empty{text-align:center;padding:38px 20px}.center-import .ci-empty h2{font-size:17px;margin-bottom:7px}.center-import .ci-empty p{color:#7b91a7;font-size:12px;margin-bottom:15px}.center-import .ci-loading>span{display:block;max-width:330px;height:15px;border-radius:5px;background:#edf4fb;margin-bottom:12px}.center-import .ci-loading>span+span{max-width:200px}.center-import .ci-loading p{font-size:11px;color:#7b91a7;margin-top:18px}.center-import .ci-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:650px){.center-import .ci-heading h1{font-size:22px}.center-import .ci-heading{margin:17px 0 20px}.center-import .ci-card{padding:17px}.center-import .ci-template-heading{flex-direction:column;align-items:flex-start;gap:12px}.center-import .ci-fields{grid-template-columns:1fr;gap:14px}.center-import .ci-intro{padding:13px;align-items:flex-start;gap:8px}.center-import .ci-intro-icon{flex-basis:26px}.center-import .ci-steps{gap:17px}.center-import .ci-pagination{flex-direction:column;align-items:flex-start}.center-import .ci-pagination>div{width:100%;justify-content:space-between}.center-import .ci-confirm{flex-direction:column;align-items:stretch;gap:14px}.center-import .ci-confirm>.ci-button{width:100%}.center-import .ci-table th,.center-import .ci-table td{padding:11px 9px}.center-import .ci-success{padding:26px 18px}.center-import .ci-file-summary{align-items:flex-start}.center-import .ci-file-summary .ci-button{min-height:36px}.center-import .ci-counts{gap:7px}}

.import-list-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.import-list-actions>.secondary,.import-list-actions>.primary{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 14px;font-size:12px;line-height:1.45;border-radius:8px;text-decoration:none;margin:0}.import-list-actions>a.secondary{background:#fff;border:1px solid #cadff4;color:#0878d3}.import-list-actions>a.secondary:hover{background:#edf7ff}@media(max-width:600px){.import-list-actions{justify-content:flex-start}.import-list-actions>.secondary,.import-list-actions>.primary{flex:1}}
#location-plan :is(.plan-student-capacity,.plan-existing-sites){width:100%;max-width:none;min-width:0;box-sizing:border-box}
#location-plan .plan-existing-sites{margin-top:24px}
#location-plan .plan-student-capacity .plan-capacity-facts{margin:14px 0 12px;gap:14px 36px}
#location-plan .plan-student-capacity .plan-capacity-facts strong{font-size:13px;font-weight:500}
#location-plan .module-config{--mc-ink:#193b68;--mc-text:#345a7e;--mc-muted:#657f99;--mc-line:#e0e9f4;--mc-blue:#087be6;--mc-soft:#edf6ff;container:module-configuration / inline-size;min-width:0;margin-top:24px;color:var(--mc-text);font-size:12px;line-height:1.6;overflow-wrap:anywhere}
#location-plan .module-config *{box-sizing:border-box}
#location-plan .module-config :is(h2,h3,h4,p){margin:0}
#location-plan .module-config h2{font-size:20px;line-height:1.35;font-weight:600;color:var(--mc-ink)}
#location-plan .module-config h3{font-size:14px;line-height:1.45;font-weight:600;color:var(--mc-ink)}
#location-plan .module-config p{font-size:12px;line-height:1.6}
#location-plan .module-config button{min-height:40px;padding:9px 13px;border:1px solid #caddf3;border-radius:8px;font-family:inherit;line-height:1.45;font-size:12px;font-weight:500;cursor:pointer;white-space:normal}
#location-plan .module-config button.primary{background:var(--mc-blue);color:#fff;border-color:var(--mc-blue)}
#location-plan .module-config button.secondary{background:#fff;color:#0774d6}
#location-plan .module-config :is(button,input,summary):focus-visible{outline:2px solid #1687ee;outline-offset:3px}
#location-plan .module-config .mc-heading{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px 16px;margin-bottom:16px}
#location-plan .module-config .mc-heading>div{flex:1 1 220px}
#location-plan .module-config .mc-heading p{margin-top:6px;color:var(--mc-muted)}
#location-plan .module-config .soft-label{font-size:10px;line-height:1.4;font-weight:400;padding:5px 8px;background:var(--mc-soft);color:#507598;border-radius:7px}
#location-plan .module-config .mc-note{font-size:11px;color:var(--mc-muted)}
#location-plan .module-config .mc-proposal-note{padding:11px 13px;border:1px solid #daeafa;border-radius:9px;background:var(--mc-soft);margin-bottom:14px}
#location-plan .module-config .mc-trial{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 16px;background:#fff;border:1px solid var(--mc-line);border-radius:12px;padding:15px 17px;margin-bottom:20px}
#location-plan .module-config .mc-trial>div{flex:1 1 220px}
#location-plan .module-config .mc-trial h3{font-size:13px}
#location-plan .module-config .mc-trial p{font-size:11px;color:var(--mc-muted);margin-top:4px}
#location-plan .module-config .mc-trial .mc-trial-note{flex-basis:100%;margin-top:3px;padding-top:9px;border-top:1px solid var(--mc-line)}
#location-plan .module-config .mc-plan-options{min-width:0;border:0;padding:0;margin:0 0 14px}
#location-plan .module-config .mc-plan-options legend{font-size:13px;font-weight:500;color:var(--mc-ink);padding:0;margin-bottom:11px}
#location-plan .module-config .mc-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#location-plan .module-config .mc-plan{display:flex;flex-direction:column;gap:0;min-width:0;padding:16px;background:#fff;border:1px solid var(--mc-line);border-radius:12px;cursor:pointer}
#location-plan .module-config .mc-plan[data-selected="true"]{border-color:var(--mc-blue);box-shadow:inset 0 0 0 1px var(--mc-blue);background:#f5faff}
#location-plan .module-config .mc-plan-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}
#location-plan .module-config .mc-plan-top strong{font-size:13px;font-weight:600;color:var(--mc-ink)}
#location-plan .module-config .mc-plan-top input{appearance:auto;accent-color:var(--mc-blue);width:17px;height:17px;max-width:17px;flex:0 0 17px;min-height:0;padding:0;margin:0;border:0;cursor:pointer}
#location-plan .module-config .mc-price{font-size:20px;font-weight:600;line-height:1.35;color:var(--mc-ink);margin-top:12px;font-variant-numeric:tabular-nums}
#location-plan .module-config .mc-price small{font-size:11px;font-weight:400;color:var(--mc-muted)}
#location-plan .module-config .mc-plan-capacity{font-size:12px;font-weight:500;margin-top:10px;line-height:1.55}
#location-plan .module-config .mc-plan-includes{font-size:11px;font-weight:400;margin-top:4px;color:var(--mc-muted)}
#location-plan .module-config .mc-consult{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;margin-bottom:20px;border:1px solid var(--mc-line);border-radius:10px;background:#fff}
#location-plan .module-config .mc-consult>div{flex:1 1 240px}
#location-plan .module-config .mc-consult h3{font-size:12px;font-weight:500}
#location-plan .module-config .mc-consult p{font-size:11px;color:var(--mc-muted);margin-top:3px}
#location-plan .module-config .mc-consult[data-consultation="true"]{border-color:#b6d9fb;background:#f5faff}
#location-plan .module-config .mc-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;align-items:start}
#location-plan .module-config .mc-layout>aside{min-width:0}
#location-plan .module-config :is(.mc-box,.mc-summary){min-width:0;padding:18px;border:1px solid var(--mc-line);border-radius:12px;background:#fff}
#location-plan .module-config .mc-section-head{margin-bottom:15px}
#location-plan .module-config .mc-section-head p{font-size:11px;color:var(--mc-muted);margin-top:5px}
#location-plan .module-config .mc-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px}
#location-plan .module-config .mc-module{display:flex;align-items:flex-start;gap:9px;padding:0;margin:0;min-width:0}
#location-plan .module-config .mc-module h4{font-size:12px;line-height:1.45;font-weight:600;color:var(--mc-ink)}
#location-plan .module-config .mc-module p{font-size:11px;font-weight:400;color:var(--mc-muted);margin-top:4px}
#location-plan .module-config .mc-module-check{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:6px;background:#e9f7ef;color:#248258;font-size:12px}
#location-plan .module-config .mc-family-note{margin-top:16px;padding-top:12px;border-top:1px solid var(--mc-line);font-size:11px;color:var(--mc-muted)}
#location-plan .module-config .mc-summary-top{font-size:11px;color:var(--mc-muted);margin-top:4px;margin-bottom:12px}
#location-plan .module-config .mc-summary-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--mc-line);font-size:11px}
#location-plan .module-config .mc-summary-row strong{display:block;font-size:12px;font-weight:500}
#location-plan .module-config .mc-summary-row small{display:block;font-size:11px;color:var(--mc-muted);margin-top:3px}
#location-plan .module-config .mc-summary-row>span{flex:0 1 75px;max-width:45%;text-align:right;color:var(--mc-muted)}
#location-plan .module-config .mc-summary-total{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:15px 0 8px;font-size:12px}
#location-plan .module-config .mc-summary-total strong{font-size:14px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--mc-ink)}
#location-plan .module-config .mc-summary-total small{font-size:11px;font-weight:400;color:var(--mc-muted)}
#location-plan .module-config .mc-summary .mc-note{margin-top:8px}
#location-plan .module-config .mc-summary button.primary{width:100%;margin-top:15px}
#location-plan .module-config .mc-review{max-width:740px}
#location-plan .module-config .mc-review>button{margin-bottom:16px}
#location-plan .module-config .mc-review h2{margin-bottom:7px}
#location-plan .module-config .mc-review-intro{margin-bottom:18px;color:var(--mc-muted)}
#location-plan .module-config .mc-review .mc-box .mc-summary{background:transparent;border:0;padding:0}
#location-plan .module-config .mc-review details{font-size:11px;margin-top:12px}
#location-plan .module-config .mc-review summary{display:list-item;list-style:disclosure-closed;min-height:40px;padding:10px 0;font-size:12px;font-weight:500;color:#0774d6;cursor:pointer}
#location-plan .module-config .mc-review details[open]>summary{list-style:disclosure-open}
#location-plan .module-config .mc-review ul{display:grid;gap:6px;margin:4px 0;padding-left:18px;line-height:1.65}
#location-plan .module-config .mc-review-message{margin-top:16px;padding:13px 15px;border:1px solid #daeafa;border-radius:9px;background:var(--mc-soft);font-size:11px}
@container module-configuration (max-width:760px){#location-plan .module-config .mc-layout{grid-template-columns:minmax(0,1fr)}}
@container module-configuration (max-width:560px){#location-plan .module-config .mc-plan-grid{grid-template-columns:minmax(0,1fr)}#location-plan .module-config .mc-plan{padding:14px 16px}}
@container module-configuration (max-width:480px){#location-plan .module-config .mc-module-grid{grid-template-columns:minmax(0,1fr);gap:14px}#location-plan .module-config :is(.mc-box,.mc-summary){padding:15px}#location-plan .module-config .mc-layout{gap:14px}#location-plan .module-config h2{font-size:18px}#location-plan .module-config button{min-height:44px}}
@media(max-width:600px){#location-plan .module-config :is(.mc-layout,.mc-plan-grid,.mc-module-grid){grid-template-columns:minmax(0,1fr)}#location-plan .module-config button{min-height:44px}}
:is(.location-subscriptions,.pls-requests){--ls-ink:#193b68;--ls-text:#365b7d;--ls-muted:#627b94;--ls-line:#dce7f3;--ls-blue:#0874d6;min-width:0;color:var(--ls-text);font-family:inherit;font-size:14px;line-height:1.55;overflow-wrap:anywhere}
:is(.location-subscriptions,.pls-requests) *{box-sizing:border-box}
:is(.location-subscriptions,.pls-requests) :is(h1,h2,h3,p,dl,dd,ul){margin:0}
.location-subscriptions h1{font-size:26px;line-height:1.25;letter-spacing:-.3px;font-weight:600;color:var(--ls-ink)}
:is(.location-subscriptions,.pls-requests) h2{font-size:16px;line-height:1.4;font-weight:600;color:var(--ls-ink)}
:is(.location-subscriptions,.pls-requests) h3{font-size:14px;line-height:1.4;font-weight:600;color:var(--ls-ink)}
:is(.location-subscriptions,.pls-requests) p{font-size:13px;line-height:1.6}
:is(.location-subscriptions,.pls-requests) a{color:#066fc8;text-decoration:none}
:is(.location-subscriptions,.pls-requests) a:hover{text-decoration:underline}
.location-subscriptions .ls-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.location-subscriptions .ls-heading p{margin-top:6px;color:var(--ls-muted)}
:is(.location-subscriptions,.pls-requests) .ls-card{background:#fff;border:1px solid var(--ls-line);border-radius:13px;padding:23px;min-width:0}
.location-subscriptions .ls-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,1fr);gap:20px;align-items:start;margin-bottom:24px}
.location-subscriptions .ls-form>h2{margin-bottom:20px}
.location-subscriptions .ls-field{display:grid;gap:7px;margin-bottom:20px;min-width:0}
.location-subscriptions .ls-field>label,.location-subscriptions .ls-plan-fieldset>legend{font-size:13px;line-height:1.5;font-weight:500;color:var(--ls-text)}
.location-subscriptions .ls-field input{display:block;width:100%;max-width:100%;min-height:44px;padding:10px 12px;border:1px solid #cbddee;border-radius:8px;background:#fff;color:var(--ls-ink);font-family:inherit;font-size:14px;font-weight:400;line-height:1.5;box-shadow:none}
.location-subscriptions .ls-field input::placeholder{color:#70869c;font-size:13px}
.location-subscriptions .ls-field input[aria-invalid=true]{border-color:#b96652}
.location-subscriptions .ls-field-error{font-size:12px;line-height:1.45;color:#964936}
.location-subscriptions .ls-field-error:empty{display:none}
.location-subscriptions .ls-plan-fieldset{min-width:0;padding:0;border:0;margin:0}
.location-subscriptions .ls-plan-fieldset>legend{margin-bottom:9px;padding:0}
.location-subscriptions .ls-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.location-subscriptions .ls-plan{display:flex;align-items:flex-start;gap:10px;margin:0;padding:15px 13px;border:1px solid var(--ls-line);border-radius:10px;background:#fff;cursor:pointer;min-width:0}
.location-subscriptions .ls-plan.is-selected{border-color:#7bb9ec;background:#f1f8ff;box-shadow:0 0 0 1px #c3e1f9}
.location-subscriptions .ls-plan input[type=radio]{appearance:auto;display:inline-block;flex:0 0 16px;width:16px;height:16px;min-height:0;margin:3px 0 0;padding:0;accent-color:var(--ls-blue);box-shadow:none}
.location-subscriptions .ls-plan-content{display:grid;gap:4px;min-width:0}
.location-subscriptions .ls-plan-name{color:var(--ls-ink);font-size:14px;font-weight:600}
.location-subscriptions .ls-plan-capacity{color:var(--ls-muted);font-size:12px;font-weight:400}
.location-subscriptions .ls-plan-price{margin-top:6px;font-size:16px;line-height:1.5;font-weight:600;color:#21547e}
.location-subscriptions .ls-plan-price small{font-size:11px;font-weight:400;color:var(--ls-muted);margin-left:4px}
.location-subscriptions .ls-custom-capacity{margin-top:18px;margin-bottom:0;max-width:270px}
.location-subscriptions .ls-includes{margin-top:15px;color:var(--ls-muted);font-size:12px}
.location-subscriptions .ls-summary-facts{margin-top:17px}
.location-subscriptions .ls-summary-facts>div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #eaf0f7}
.location-subscriptions .ls-summary-facts dt{font-size:12px;color:var(--ls-muted);max-width:55%}
.location-subscriptions .ls-summary-facts dd{font-size:13px;line-height:1.5;text-align:right;color:var(--ls-ink)}
.location-subscriptions .ls-summary-price dd{font-size:16px;font-weight:600;color:#21547e}
:is(.location-subscriptions,.pls-requests) .ls-note{margin-top:13px;color:var(--ls-muted);font-size:12px;line-height:1.6}
.location-subscriptions .ls-next-step{margin-top:20px;padding:15px;background:#f1f7fe;border:1px solid #e0ecf8;border-radius:10px}
.location-subscriptions .ls-next-step h3{font-size:13px}
.location-subscriptions .ls-next-step p{margin-top:6px;color:var(--ls-text);font-size:12px}
.location-subscriptions .ls-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;margin-top:22px;padding-top:17px;border-top:1px solid var(--ls-line)}
:is(.location-subscriptions,.pls-requests) button{font-family:inherit;font-size:13px;font-weight:500;line-height:1.5;min-height:42px;max-width:100%;padding:10px 15px;border:1px solid #bfd8ef;border-radius:8px;cursor:pointer;white-space:normal}
.location-subscriptions .ls-primary{background:var(--ls-blue);border-color:var(--ls-blue);color:#fff}
.location-subscriptions .ls-secondary{background:#fff;color:#086ec5}
:is(.location-subscriptions,.pls-requests) .ls-text-button{padding:6px 3px;min-height:40px;background:transparent;border:0;color:#086ec5;font-size:12px;flex-shrink:0}
:is(.location-subscriptions,.pls-requests) button:disabled{opacity:.58;cursor:default}
.location-subscriptions :is(button,input,a):focus-visible,.pls-requests :is(button,a):focus-visible{outline:2px solid #1687ee;outline-offset:3px}
:is(.location-subscriptions,.pls-requests) .ls-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
:is(.location-subscriptions,.pls-requests) .ls-section-heading p{margin-top:5px;font-size:12px;color:var(--ls-muted)}
:is(.location-subscriptions,.pls-requests) .ls-count{white-space:nowrap;font-size:11px;color:var(--ls-muted)}
:is(.location-subscriptions,.pls-requests) .ls-request-list{list-style:none;padding:0}
:is(.location-subscriptions,.pls-requests) .ls-request{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-top:1px solid #e6edf6}
:is(.location-subscriptions,.pls-requests) .ls-request:first-child{padding-top:0;border-top:0}
:is(.location-subscriptions,.pls-requests) .ls-request:last-child{padding-bottom:0}
:is(.location-subscriptions,.pls-requests) .ls-request-main{min-width:0}
:is(.location-subscriptions,.pls-requests) .ls-request-heading{display:flex;align-items:center;flex-wrap:wrap;gap:9px}
:is(.location-subscriptions,.pls-requests) .ls-request p{margin-top:7px;font-size:12px;color:var(--ls-text)}
:is(.location-subscriptions,.pls-requests) .ls-status{display:inline-flex;font-size:10px;font-weight:500;line-height:1.5;padding:3px 7px;border-radius:6px;background:#edf5ff;color:#456e93}
:is(.location-subscriptions,.pls-requests) .ls-status.is-cancelled{background:#f2f4f7;color:#69788b}
:is(.location-subscriptions,.pls-requests) .ls-meta{display:block;margin-top:4px;color:var(--ls-muted);font-size:11px}
:is(.location-subscriptions,.pls-requests) .ls-empty{padding:25px 0;color:var(--ls-muted)}
.location-subscriptions>.ls-empty{padding:23px}
.location-subscriptions .ls-alert{padding:12px 15px;margin-bottom:18px;border:1px solid #cde1f4;border-radius:9px;background:#eff7ff;color:#315f85;font-size:13px}
.location-subscriptions .ls-alert.is-error{background:#fff7f4;border-color:#ecd6cc;color:#914733}
.location-subscriptions .ls-pending,.location-subscriptions .ls-cancel-confirm{margin-bottom:22px}
.location-subscriptions .ls-pending p,.location-subscriptions .ls-cancel-confirm p{margin-top:9px;color:var(--ls-muted)}
.location-subscriptions .ls-pending button{margin-top:17px}
.pls-requests .ls-history{margin-top:20px}
@media(max-width:850px){.location-subscriptions .ls-layout{grid-template-columns:minmax(0,1fr)}.location-subscriptions .ls-summary-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}}
@media(max-width:520px){.location-subscriptions h1{font-size:24px}.location-subscriptions .ls-heading{align-items:flex-start;flex-direction:column;gap:13px}.location-subscriptions .ls-heading button{min-height:44px}:is(.location-subscriptions,.pls-requests) .ls-card{padding:18px}.location-subscriptions .ls-layout{gap:16px}.location-subscriptions .ls-summary-facts{display:block}.location-subscriptions .ls-plan{padding:13px 10px;gap:8px}.location-subscriptions .ls-plan-price{font-size:15px}.location-subscriptions .ls-plan-name{font-size:13px}.location-subscriptions .ls-plan-capacity{font-size:11px}.location-subscriptions .ls-actions button{flex:1 1 140px;min-height:44px}:is(.location-subscriptions,.pls-requests) .ls-request{align-items:flex-start;gap:10px;flex-direction:column}:is(.location-subscriptions,.pls-requests) .ls-section-heading{gap:10px}:is(.location-subscriptions,.pls-requests) .ls-count{font-size:10px}}

.location-subscriptions .ls-review{margin-bottom:24px;max-width:800px}.location-subscriptions .ls-review-summary{margin-top:18px;padding-top:18px;border-top:1px solid var(--ls-line)}.location-subscriptions .ls-review-summary>h2{font-size:14px}.location-subscriptions .ls-review .ls-next-step p:first-child{margin-top:0}
.location-renewal-notices{--lrn-ink:#244769;--lrn-muted:#627b93;--lrn-line:#dce7f2;--lrn-blue:#0874d6;min-width:0;color:var(--lrn-ink);font:inherit;overflow-wrap:anywhere}
.location-renewal-notices *{box-sizing:border-box}.location-renewal-notices[hidden]{display:none!important}
.location-renewal-notices :is(h2,h3,h4,p,dl,dd,ul){margin:0}.location-renewal-notices:empty{display:none}
.location-renewal-notices .lrn-panel{padding:12px 16px;margin-bottom:16px;background:#fff;border:1px solid var(--lrn-line);border-radius:12px;min-width:0}
.location-renewal-notices .lrn-heading,.location-renewal-notices .lrn-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.location-renewal-notices .lrn-heading h2{font-size:16px;font-weight:600;line-height:1.5;color:var(--lrn-ink)}
.location-renewal-notices .lrn-heading p,.location-renewal-notices .lrn-title p{font-size:12px;color:var(--lrn-muted);line-height:1.6;margin-top:3px}
.location-renewal-notices .lrn-unread,.location-renewal-notices .lrn-read{font-size:12px;color:var(--lrn-muted);line-height:1.5}
.location-renewal-notices .lrn-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:15px}
.location-renewal-notices .lrn-item{min-width:0;padding:15px;background:#f8fbff;border:1px solid #e1eaf4;border-radius:9px}
.location-renewal-notices .lrn-item.lrn-expired{background:#fffaf6;border-color:#eddfd2}
.location-renewal-notices .lrn-title h3{font-size:15px;font-weight:600;line-height:1.5;color:var(--lrn-ink)}
.location-renewal-notices .lrn-title>div{min-width:0}.location-renewal-notices .lrn-state{flex:0 1 auto;font-size:12px;line-height:1.5;padding:3px 6px;background:#edf4fc;color:#476783;border-radius:5px;text-align:right}
.location-renewal-notices .lrn-expired .lrn-state{background:#f8eee4;color:#896343}
.location-renewal-notices .lrn-facts,.lrn-site-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:13px 0 10px}
.location-renewal-notices .lrn-facts dt,.lrn-site-facts dt{font-size:12px;color:#627b93;line-height:1.5}
.location-renewal-notices .lrn-facts dd,.lrn-site-facts dd{margin:3px 0 0;font-size:14px;font-weight:500;line-height:1.5;color:#244769;font-variant-numeric:tabular-nums}
.location-renewal-notices .lrn-note{font-size:13px;line-height:1.65;color:var(--lrn-muted);margin-top:7px}
.location-renewal-notices .lrn-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.location-renewal-notices button{font-family:inherit;font-size:13px;font-weight:500;line-height:1.5;min-height:40px;max-width:100%;padding:8px 12px;border-radius:7px;border:1px solid #bdd9f1;background:white;color:#096bb8;cursor:pointer;white-space:normal}
.location-renewal-notices .lrn-primary{background:#fff;border-color:#bdd9f1;color:#096bb8}.location-renewal-notices .lrn-link{padding:6px 0;border:0;background:transparent;font-weight:400}
.location-renewal-notices button:disabled{opacity:.55;cursor:default}.location-renewal-notices :is(button,a):focus-visible{outline:2px solid #1687ee;outline-offset:3px}
.location-renewal-notices .lrn-renewal{margin-top:12px;padding-top:12px;border-top:1px solid var(--lrn-line)}
.location-renewal-notices .lrn-renewal h4{font-size:14px;font-weight:600}.location-renewal-notices .lrn-renewal p{margin-top:6px;font-size:13px;line-height:1.6}.location-renewal-notices .lrn-renewal strong{font-weight:500}
.location-renewal-notices a{color:#096bb8;text-decoration:none;font-size:13px;line-height:1.5}.location-renewal-notices a:hover{text-decoration:underline}.location-renewal-notices .lrn-renewal a{display:inline-flex;align-items:center;min-height:40px;margin-top:3px}
.location-renewal-notices .lrn-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;margin:0 0 14px;background:#f5f9ff;border:1px solid #dce8f5;border-radius:9px;font-size:13px;line-height:1.6}
.location-renewal-notices .lrn-summary a{flex-shrink:0;min-height:28px;display:inline-flex;align-items:center;gap:6px}
.location-renewal-notices .lrn-error{font-size:12px;line-height:1.6;color:var(--lrn-muted);margin:0 0 14px}.location-renewal-notices .lrn-error button{border:0;background:transparent;padding:4px 7px;font-size:13px}
@media(max-width:680px){.location-renewal-notices .lrn-list{grid-template-columns:minmax(0,1fr)}.location-renewal-notices .lrn-panel{padding:16px}.location-renewal-notices .lrn-item{padding:13px}.location-renewal-notices .lrn-summary{align-items:flex-start;flex-wrap:wrap;gap:4px 12px}.location-renewal-notices .lrn-summary a{min-height:36px}.location-renewal-notices button{min-height:44px}}

.location-renewal-notices summary.lrn-heading{align-items:center;cursor:pointer;list-style:none;min-height:28px}.location-renewal-notices summary.lrn-heading::-webkit-details-marker{display:none}.location-renewal-notices .lrn-summary-title{font-size:14px;font-weight:500;line-height:1.5;flex:1;min-width:0}.location-renewal-notices .lrn-summary-title>span{color:var(--lrn-muted);font-weight:400}.location-renewal-notices .lrn-chevron{font-size:17px;line-height:1;color:#647e98;transition:transform .15s}.location-renewal-notices details[open] .lrn-chevron{transform:rotate(180deg)}.location-renewal-notices summary:focus-visible{outline:2px solid #1687ee;outline-offset:4px;border-radius:4px}@media(max-width:680px){.location-renewal-notices summary.lrn-heading{min-height:36px;gap:8px}.location-renewal-notices .lrn-summary-title{font-size:13px}.location-renewal-notices .lrn-unread{font-size:12px}.location-renewal-notices .lrn-panel{padding:10px 13px}}
.subscription-billing{--sb-ink:#193b68;--sb-text:#345a7e;--sb-muted:#607b96;--sb-line:#e0e9f4;--sb-blue:#0874d6;--sb-soft:#edf6ff;container:subscription-billing / inline-size;min-width:0;color:var(--sb-text);font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.subscription-billing *{box-sizing:border-box}
.subscription-billing :is(h1,h2,h3,p,dl,dd){margin:0}
.subscription-billing h1{font-size:24px;font-weight:600;line-height:1.3;color:var(--sb-ink)}
.subscription-billing h2{font-size:14px;font-weight:600;line-height:1.45;color:var(--sb-ink)}
.subscription-billing h3{font-size:12px;font-weight:600;line-height:1.5;color:var(--sb-ink)}
.subscription-billing p{font-size:12px;line-height:1.6}
.subscription-billing .sb-heading{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 20px;margin-bottom:22px}
.subscription-billing .sb-heading>div{flex:1 1 320px}
.subscription-billing .sb-heading p{margin-top:7px;color:var(--sb-muted)}
.subscription-billing .sb-link{font-size:12px;color:#056dc8;text-decoration:none;min-height:40px;display:inline-flex;align-items:center;padding:8px 0;gap:6px}
.subscription-billing .sb-link:hover{text-decoration:underline}
.subscription-billing .sb-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.48fr);gap:18px;align-items:start}
.subscription-billing .sb-card{min-width:0;background:#fff;border:1px solid var(--sb-line);border-radius:12px;padding:20px}
.subscription-billing .sb-card-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;margin-bottom:18px}
.subscription-billing .sb-card-heading>div>.sb-note{margin-top:4px}
.subscription-billing .sb-badge{display:inline-flex;padding:4px 8px;background:var(--sb-soft);color:#4d7091;border-radius:7px;font-size:10px;font-weight:400;line-height:1.5}
.subscription-billing .sb-facts>div{display:grid;grid-template-columns:155px minmax(0,1fr);gap:12px;border-bottom:1px solid var(--sb-line);padding:12px 0}
.subscription-billing .sb-facts>div:first-child{padding-top:0}
.subscription-billing .sb-facts>div:last-child{padding-bottom:0;border-bottom:0}
.subscription-billing .sb-facts dt{font-size:11px;color:var(--sb-muted)}
.subscription-billing .sb-facts dd{font-size:12px;text-align:right;white-space:pre-wrap}
.subscription-billing .sb-note{font-size:11px;font-weight:400;line-height:1.6;color:var(--sb-muted)}
.subscription-billing .sb-empty{padding:4px 0 12px}
.subscription-billing .sb-empty .sb-note{margin-top:7px}
.subscription-billing .sb-updated{padding-top:14px;margin-top:18px;border-top:1px solid var(--sb-line);font-size:11px;color:var(--sb-muted)}
.subscription-billing .sb-updated span{display:block;margin-top:3px;font-variant-numeric:tabular-nums}
.subscription-billing .sb-document-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--sb-soft);color:var(--sb-blue);margin-bottom:12px}
.subscription-billing .sb-document-icon svg{display:block;width:24px;height:24px}
.subscription-billing .sb-documents>.sb-note{margin-top:12px}
.subscription-billing .sb-documents>.sb-link{margin-top:12px}
.subscription-billing .sb-page-note{margin-top:16px;font-size:11px;color:var(--sb-muted)}
.subscription-billing :is(button,input,textarea){font-family:inherit;font-size:12px;line-height:1.5}
.subscription-billing button{min-height:40px;max-width:100%;padding:9px 13px;font-weight:500;border:1px solid #b9d7f3;border-radius:8px;cursor:pointer;white-space:normal}
.subscription-billing button.sb-primary{background:var(--sb-blue);color:#fff;border-color:var(--sb-blue)}
.subscription-billing button.sb-secondary{background:#fff;color:#056dc8}
.subscription-billing button:disabled{cursor:default;opacity:.58}
.subscription-billing :is(button,input,textarea,a):focus-visible{outline:2px solid #1687ee;outline-offset:3px}
.subscription-billing .sb-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.subscription-billing .sb-field{min-width:0;display:flex;flex-direction:column;gap:6px}
.subscription-billing .sb-field-wide{grid-column:1/-1}
.subscription-billing .sb-field label{display:block;font-size:11px;font-weight:500;color:var(--sb-text);line-height:1.5;margin:0}
.subscription-billing .sb-field label span{font-weight:400;color:var(--sb-muted)}
.subscription-billing .sb-field :is(input,textarea){display:block;width:100%;max-width:100%;min-width:0;min-height:40px;margin:0;border:1px solid #cfdfef;border-radius:8px;padding:10px 12px;color:var(--sb-ink);background:#fff;box-shadow:none;font-weight:400}
.subscription-billing .sb-field textarea{resize:vertical;min-height:78px}
.subscription-billing .sb-field :is(input,textarea)[aria-invalid=true]{border-color:#c64545}
.subscription-billing .sb-field-error{font-size:11px;color:#aa3030;line-height:1.6}
.subscription-billing .sb-plan-options{min-width:0;padding:0;margin:22px 0 0;border:0}
.subscription-billing .sb-plan-options legend{padding:0;margin-bottom:5px;font-size:12px;font-weight:500;color:var(--sb-ink)}
.subscription-billing .sb-plan-options legend span{font-size:11px;font-weight:400;color:var(--sb-muted)}
.subscription-billing .sb-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.subscription-billing .sb-plan{display:flex;flex-direction:column;gap:7px;padding:12px;border:1px solid var(--sb-line);background:#fff;border-radius:9px;cursor:pointer;min-width:0;font-weight:400}
.subscription-billing .sb-plan[data-selected=true]{border-color:var(--sb-blue);box-shadow:inset 0 0 0 1px var(--sb-blue);background:#f5faff}
.subscription-billing .sb-plan-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:500;color:var(--sb-ink)}
.subscription-billing :is(.sb-plan,.sb-no-plan) input{appearance:auto;accent-color:var(--sb-blue);width:17px;height:17px;max-width:17px;min-height:0;flex:0 0 17px;padding:0;margin:0;border:0}
.subscription-billing .sb-plan-price{font-size:14px;line-height:1.5;font-weight:500;color:var(--sb-ink);font-variant-numeric:tabular-nums}
.subscription-billing .sb-plan-price small{font-size:11px;font-weight:400;color:var(--sb-muted)}
.subscription-billing .sb-no-plan{display:flex;align-items:center;gap:8px;min-height:40px;margin:8px 0 2px;font-size:11px;font-weight:400;cursor:pointer}
.subscription-billing .sb-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--sb-line)}
.subscription-billing .sb-feedback{margin:0 0 16px;padding:10px 12px;background:#edf7f1;border:1px solid #cce8d8;border-radius:8px;color:#286648;font-size:12px}
.subscription-billing .sb-editor .sb-feedback{margin-top:18px;margin-bottom:0}
.subscription-billing .sb-feedback.is-error{background:#fff4f2;border-color:#f0d0ca;color:#993b31}
.subscription-billing .sb-feedback[hidden]{display:none}
.subscription-billing .sb-conflict{margin-top:20px;padding:14px;background:#fff9ed;border:1px solid #e8d8af;border-radius:9px}
.subscription-billing .sb-conflict>p{margin-top:6px;font-size:11px}
.subscription-billing .sb-conflict>button{margin-top:12px}
.subscription-billing .sb-comparison{margin-top:14px}
.subscription-billing :is(.sb-comparison-heading,.sb-comparison-row){display:grid;grid-template-columns:.8fr 1fr 1fr;gap:10px;padding:9px 0;border-bottom:1px solid #e7dfcc;font-size:11px}
.subscription-billing .sb-comparison-heading{color:#6d6452}
.subscription-billing .sb-comparison-row strong{font-weight:500}
.subscription-billing .sb-comparison-row span{white-space:pre-wrap}
.subscription-billing .sb-comparison-row small{display:none}
.subscription-billing .sb-inline-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}
.subscription-billing .sb-loading p{color:var(--sb-muted)}
.subscription-billing .sb-loading button{margin-top:12px}
@container subscription-billing (max-width:850px){.subscription-billing .sb-layout{grid-template-columns:minmax(0,1fr)}.subscription-billing .sb-documents{max-width:none}}
@container subscription-billing (max-width:500px){.subscription-billing h1{font-size:22px}.subscription-billing .sb-card{padding:16px}.subscription-billing .sb-form-grid{grid-template-columns:minmax(0,1fr)}.subscription-billing .sb-facts>div{grid-template-columns:minmax(0,1fr);gap:4px}.subscription-billing .sb-facts dd{text-align:left}.subscription-billing .sb-comparison-heading{display:none}.subscription-billing .sb-comparison-row{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-billing .sb-comparison-row strong{grid-column:1/-1}.subscription-billing .sb-comparison-row small{display:block;font-size:10px;color:#6d6452;margin-bottom:2px}.subscription-billing button{min-height:44px}}
@media(max-width:600px){.subscription-billing .sb-layout,.subscription-billing .sb-form-grid{grid-template-columns:minmax(0,1fr)}.subscription-billing h1{font-size:22px}.subscription-billing button{min-height:44px}}

#subscription-checkout{margin-top:20px}
.subscription-billing .sb-layout:has(.sb-payment-list){grid-template-columns:repeat(2,minmax(0,1fr))}
.subscription-billing .sb-fulfillment{padding:13px 14px;background:#f6faff;border:1px solid var(--sb-line);border-radius:9px;margin-bottom:16px}
.subscription-billing .sb-fulfillment-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.subscription-billing .sb-fulfillment-state{font-size:10px;color:#53748f;border-radius:6px;padding:3px 7px;background:#eaf2fc}
.subscription-billing .sb-fulfillment-state.active{background:#e5f6ed;color:#276744}
.subscription-billing .sb-fulfillment-state.needs_review{background:#fff0d8;color:#80591f}
.subscription-billing .sb-fulfillment dl{margin-top:8px}
.subscription-billing .sb-fulfillment dl>div{display:flex;justify-content:space-between;gap:14px;padding:4px 0}
.subscription-billing .sb-fulfillment dt{font-size:11px;color:var(--sb-muted)}
.subscription-billing .sb-fulfillment dd{font-size:12px;text-align:right;color:var(--sb-ink)}
.subscription-billing .sb-fulfillment p{font-size:11px;color:var(--sb-muted);margin-top:8px}
.subscription-billing .sb-payment-list{list-style:none;margin:0;padding:0}
.subscription-billing .sb-payment-list li{display:flex;flex-direction:column;align-items:start;gap:7px;border-top:1px solid var(--sb-line);padding:15px 0}
.subscription-billing .sb-payment-list li:first-child{border-top:0;padding-top:0}
.subscription-billing .sb-payment-list li:last-child{padding-bottom:0}
.subscription-billing .sb-payment-top{display:flex;justify-content:space-between;align-items:start;gap:12px;width:100%}
.subscription-billing .sb-payment-top strong,.subscription-billing .sb-payment-top>span{font-size:12px;font-weight:500;color:var(--sb-ink)}
.subscription-billing .sb-payment-top>span{white-space:nowrap;font-variant-numeric:tabular-nums}
.subscription-billing .sb-delivery{font-size:10px;line-height:1.6;color:var(--sb-muted)}
.subscription-billing .sb-delivery:is(.failed,.review,.sent_after_void){color:#80591f}
.subscription-billing .sb-delivery.sent{color:#276744}
.subscription-billing .sb-payment-list button{margin-top:2px;font-size:11px;min-height:36px}
.subscription-billing .sb-receipt-note{border-top:1px solid var(--sb-line);padding-top:13px;margin-top:18px}
@container subscription-billing (max-width:850px){.subscription-billing .sb-layout:has(.sb-payment-list){grid-template-columns:minmax(0,1fr)}}
.center-data-export{--cde-ink:#193b68;--cde-text:#345a7e;--cde-muted:#607b96;--cde-line:#e0e9f4;--cde-blue:#0874d6;min-width:0;color:var(--cde-text);font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.center-data-export *{box-sizing:border-box}
.center-data-export :is(h2,h3,p,dl,dd){margin:0}
.center-data-export h2{font-size:16px;font-weight:600;line-height:1.4;color:var(--cde-ink)}
.center-data-export h3{font-size:12px;font-weight:600;line-height:1.5;color:var(--cde-ink)}
.center-data-export p{font-size:12px;line-height:1.6}
.center-data-export .cde-card{padding:22px;background:#fff;border:1px solid var(--cde-line);border-radius:13px}
.center-data-export .cde-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.center-data-export .cde-heading p{margin-top:5px;color:var(--cde-muted)}
.center-data-export .cde-badge{display:inline-flex;flex-shrink:0;padding:4px 8px;border-radius:7px;background:#edf6ff;color:#4d7091;font-size:10px;font-weight:400}
.center-data-export .cde-includes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px}
.center-data-export .cde-includes>div{display:flex;align-items:flex-start;gap:11px;min-width:0}
.center-data-export .cde-includes p{font-size:11px;color:var(--cde-muted);margin-top:3px}
.center-data-export .cde-file-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:9px;color:#0874d6;background:#edf6ff;font-size:9px;font-weight:600}
.center-data-export .cde-status{padding:16px;background:#f7faff;border:1px solid var(--cde-line);border-radius:10px}
.center-data-export .cde-status>p{margin-top:6px;color:var(--cde-muted);font-size:11px}
.center-data-export .cde-status.is-complete{background:#f4faf6;border-color:#d4e9dc}
.center-data-export .cde-status.is-complete h3{color:#286844}
.center-data-export .cde-facts{margin-top:13px;padding-top:10px;border-top:1px solid var(--cde-line)}
.center-data-export .cde-facts>div{display:flex;justify-content:space-between;gap:16px;padding:4px 0}
.center-data-export .cde-facts dt{color:var(--cde-muted);font-size:11px}
.center-data-export .cde-facts dd{color:var(--cde-ink);font-size:12px;text-align:right}
.center-data-export .cde-progress{display:flex;align-items:center;gap:13px;margin-top:14px}
.center-data-export .cde-progress progress{accent-color:var(--cde-blue);height:8px;flex:1;min-width:0}
.center-data-export .cde-progress span{font-size:10px;color:var(--cde-muted);white-space:nowrap}
.center-data-export .cde-status>.cde-filename{margin-top:13px;font-size:11px;color:#286844;font-weight:500}
.center-data-export .cde-note{font-size:11px;color:var(--cde-muted);margin-top:16px}
.center-data-export .cde-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--cde-line)}
.center-data-export button{font-family:inherit;font-size:12px;font-weight:500;line-height:1.5;min-height:40px;padding:9px 14px;max-width:100%;border:1px solid #bbd8f2;border-radius:8px;cursor:pointer;white-space:normal}
.center-data-export button.cde-primary{background:var(--cde-blue);border-color:var(--cde-blue);color:#fff}
.center-data-export button.cde-secondary{background:#fff;color:#056dc8}
.center-data-export button:disabled{opacity:.58;cursor:default}
.center-data-export button:focus-visible{outline:2px solid #1687ee;outline-offset:3px}
.center-data-export .cde-error{margin-top:14px;padding:11px 13px;border-radius:8px;background:#fff6f3;border:1px solid #ecd5cc;color:#914633;font-size:11px}
@media(max-width:600px){.center-data-export .cde-card{padding:17px}.center-data-export .cde-includes{grid-template-columns:minmax(0,1fr);gap:16px}.center-data-export .cde-heading{flex-wrap:wrap}.center-data-export .cde-actions button{flex:1 1 150px;min-height:44px}.center-data-export .cde-facts>div{gap:12px}.center-data-export .cde-facts dt{flex:0 0 35%}}
.center-closure{--ccl-ink:#193b68;--ccl-text:#345a7e;--ccl-muted:#607b96;--ccl-line:#e0e9f4;--ccl-blue:#0874d6;min-width:0;color:var(--ccl-text);font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.center-closure *{box-sizing:border-box}
.center-closure :is(h2,h3,p,dl,dd){margin:0}
.center-closure h2{font-size:16px;font-weight:600;line-height:1.4;color:var(--ccl-ink)}
.center-closure h3{font-size:12px;font-weight:600;line-height:1.5;color:var(--ccl-ink)}
.center-closure p{font-size:12px;line-height:1.6}
.center-closure .ccl-card{padding:22px;background:#fff;border:1px solid var(--ccl-line);border-radius:13px}
.center-closure .ccl-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.center-closure .ccl-heading p{margin-top:5px;color:var(--ccl-muted)}
.center-closure .ccl-badge{display:inline-flex;flex-shrink:0;padding:4px 8px;border-radius:7px;background:#edf6ff;color:#4d7091;font-size:10px;font-weight:400}
.center-closure .ccl-export{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px;border:1px solid #d8e9f9;background:#f3f8ff;border-radius:10px;margin-bottom:18px}
.center-closure .ccl-export p{font-size:11px;color:var(--ccl-muted);margin-top:3px}
.center-closure .ccl-export a{color:#056dc8;font-size:12px;white-space:nowrap;text-decoration:none}
.center-closure .ccl-export a[aria-disabled]{opacity:.5;cursor:default}
.center-closure .ccl-status{padding:16px;background:#fafcff;border:1px solid var(--ccl-line);border-radius:10px}
.center-closure .ccl-status>p{font-size:11px;color:var(--ccl-muted);margin-top:6px}
.center-closure .ccl-facts{margin-top:13px;padding-top:10px;border-top:1px solid var(--ccl-line)}
.center-closure .ccl-facts>div{display:flex;justify-content:space-between;gap:16px;padding:5px 0}
.center-closure .ccl-facts dt{font-size:11px;color:var(--ccl-muted)}
.center-closure .ccl-facts dd{font-size:12px;color:var(--ccl-ink);text-align:right}
.center-closure .ccl-status>.ccl-note{margin-top:13px;font-size:11px;color:#637b92}
.center-closure .ccl-scope-note{margin-top:16px;font-size:11px;color:var(--ccl-muted)}
.center-closure .ccl-confirm{margin-top:19px}
.center-closure .ccl-confirm>label{display:block;font-size:11px;color:var(--ccl-muted);font-weight:400}
.center-closure .ccl-name-hint{margin-top:3px;font-size:12px;color:var(--ccl-ink)}
.center-closure input[type=text]{display:block;width:100%;max-width:460px;margin-top:8px;padding:10px 12px;min-height:42px;border:1px solid #cbdced;border-radius:8px;font-family:inherit;font-size:12px;font-weight:400;line-height:1.5;background:#fff;color:var(--ccl-ink)}
.center-closure .ccl-confirm>.ccl-check{display:flex;align-items:flex-start;gap:10px;margin-top:16px;font-size:11px;line-height:1.6;color:var(--ccl-text)}
.center-closure .ccl-check input{flex:0 0 16px;width:16px;height:16px;margin:1px 0 0;accent-color:var(--ccl-blue)}
.center-closure .ccl-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--ccl-line)}
.center-closure button,.center-closure .ccl-actions>a{font-family:inherit;font-size:12px;font-weight:500;line-height:1.5;min-height:40px;padding:9px 14px;max-width:100%;border:1px solid #bbd8f2;border-radius:8px;cursor:pointer;white-space:normal;text-decoration:none;text-align:center}
.center-closure .ccl-actions .ccl-primary{background:var(--ccl-blue);border-color:var(--ccl-blue);color:#fff}
.center-closure button.ccl-secondary{background:#fff;color:#056dc8}
.center-closure button:disabled,.center-closure a[aria-disabled]{opacity:.55;cursor:default}
.center-closure :is(button,input,a):focus-visible{outline:2px solid #1687ee;outline-offset:3px}
.center-closure :is(.ccl-error,.ccl-notice){margin-top:14px;padding:11px 13px;border-radius:8px;font-size:11px}
.center-closure .ccl-error{background:#fff6f3;border:1px solid #ecd5cc;color:#914633}
.center-closure .ccl-notice{background:#f1f8f3;border:1px solid #d4e9dc;color:#286844}
@media(max-width:600px){.center-closure .ccl-card{padding:17px}.center-closure .ccl-heading{flex-wrap:wrap}.center-closure .ccl-export{align-items:flex-start;flex-direction:column;gap:10px}.center-closure .ccl-actions :is(button,a){flex:1 1 150px;min-height:44px}.center-closure .ccl-facts dt{flex:0 0 45%}.center-closure .ccl-facts>div{gap:12px}}
.app-shell .center-welcome{background:#fff;border:1px solid #dce8f5;border-radius:14px;padding:22px;margin:0 0 24px;min-width:0}
.app-shell .welcome-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.app-shell .welcome-eyebrow{font-size:10px;font-weight:600;letter-spacing:1.2px;color:#527492}
.app-shell .welcome-heading h2{font-size:18px;line-height:1.4;letter-spacing:-.2px;margin:5px 0;color:#173b66}
.app-shell .welcome-progress-label{font-size:12px;color:#55718d;margin:4px 0 0}
.app-shell .welcome-later{background:transparent;border:0;color:#126db5;font:inherit;font-size:12px;min-height:40px;padding:8px;cursor:pointer;flex-shrink:0}
.app-shell .welcome-progress{display:block;width:100%;height:5px;border:0;border-radius:20px;overflow:hidden;margin:18px 0;background:#edf3fa;accent-color:#0c7ce5}
.app-shell .welcome-progress::-webkit-progress-bar{background:#edf3fa;border-radius:20px}
.app-shell .welcome-progress::-webkit-progress-value{background:#0c7ce5;border-radius:20px}
.app-shell .welcome-progress::-moz-progress-bar{background:#0c7ce5;border-radius:20px}
.app-shell .welcome-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:0}
.app-shell .welcome-step{display:flex;flex-direction:column;min-width:0;border:1px solid #e0e9f4;border-radius:11px;padding:16px;background:#fbfdff}
.app-shell .welcome-step-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.app-shell .welcome-number{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;color:#0974ce;background:#eaf4ff;font-size:12px;font-weight:600}
.app-shell .is-done .welcome-number{background:#e7f7ef;color:#187747}
.app-shell .welcome-step-state{font-size:10px;color:#59738e}
.app-shell .is-done .welcome-step-state{color:#28744c}
.app-shell .welcome-step h3{font-size:13px;font-weight:600;line-height:1.4;margin:0 0 6px;color:#20466f}
.app-shell .welcome-step p{font-size:12px;line-height:1.55;color:#536f8b;margin:0 0 12px;overflow-wrap:anywhere}
.app-shell .welcome-step .welcome-step-detail{font-size:11px;color:#496b8c;margin-top:auto;margin-bottom:14px}
.app-shell .welcome-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}
.app-shell .welcome-actions a{font-size:11px;text-decoration:none}
.app-shell .welcome-import{color:#086bc0;min-height:40px;display:inline-flex;align-items:center}
.app-shell .welcome-note{font-size:11px;line-height:1.6;color:#59738e;margin:14px 0 0}
.app-shell .welcome-unavailable{display:flex;align-items:center;gap:14px;justify-content:space-between;margin-top:12px}
.app-shell .welcome-unavailable p{font-size:12px;color:#59738e;line-height:1.5;margin:0}
.app-shell .center-welcome.is-collapsed{padding:16px 20px}
.app-shell .center-welcome.is-collapsed h2{font-size:15px}
@media(min-width:1450px){.app-shell .welcome-steps{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:580px){.app-shell .center-welcome{padding:16px}.app-shell .welcome-steps{grid-template-columns:1fr}.app-shell .welcome-heading{align-items:flex-start;flex-wrap:wrap;gap:10px}.app-shell .welcome-heading h2{font-size:17px}.app-shell .welcome-later{padding:0;min-height:36px}.app-shell .welcome-unavailable{align-items:flex-start;flex-wrap:wrap}}
.account-security{color:#193d68;font-size:14px;line-height:1.5}.account-security .account-heading h2{font-size:25px;line-height:1.2;margin:12px 0 8px}.account-security .account-heading>p{color:#667f9b;font-size:14px;margin:0 0 20px}.account-security .account-email{display:grid;gap:4px;padding:13px 16px;border:1px solid #dfebf8;border-radius:12px;background:#f5f9fe;margin-bottom:22px;overflow-wrap:anywhere}.account-security .account-email span{font-size:12px;color:#637e9c}.account-security .account-email strong{font-size:14px;font-weight:600}.account-security .account-password-form{display:grid;gap:16px}.account-security .account-field{display:grid;gap:6px}.account-security .account-field label{font-size:13px;font-weight:600;margin:0}.account-security .account-field input{box-sizing:border-box;width:100%;font-size:15px;padding:11px 13px;border:1px solid #cddff1;border-radius:10px;margin:0;min-height:44px}.account-security .account-field small{font-size:12px;color:#667f9b}.account-security .account-password-form>button{margin:4px 0 0;min-height:44px;font-size:14px}.account-security .account-feedback{font-size:13px;line-height:1.5;padding:11px 13px;border-radius:10px;margin:0}.account-security .account-feedback.is-error{background:#fff1f1;color:#a52d39}.account-security .account-feedback.is-success{background:#edf9f1;color:#216c44}.account-security .account-feedback[hidden],.account-security [data-recovery-feedback][hidden]{display:none}.account-security .account-recovery{border-top:1px solid #e2ebf5;margin:22px 0 16px;padding-top:18px;display:grid;gap:7px;font-size:13px;color:#637e9c}.account-security .account-recovery .link{font-size:13px;justify-self:start;width:auto;padding:0;margin:0;min-height:30px;text-align:left}.account-security .account-back{font-size:14px;min-height:42px;width:100%;margin:0}.account-security input:focus-visible,.account-security button:focus-visible{outline:3px solid #9fcbf5;outline-offset:3px}.account-security input:disabled{background:#f3f6fa}.account-security button:disabled{opacity:.65;cursor:wait}

.app-shell .side-footer #center-account{display:block;width:100%;font-size:13px;font-weight:600;min-height:40px;padding:10px 12px;margin:0 0 14px;border-radius:10px;text-align:left}
/* Legal pages use the same quiet, white-and-blue visual language as 2CENTES. */
.legal-page{margin:0;background:#f5f9fe;color:#17395f;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.65;font-synthesis:none}
.legal-page *{box-sizing:border-box}
.legal-page a{color:#006ccb;text-decoration:none;text-underline-offset:3px}
.legal-page a:hover{text-decoration:underline}
.legal-page a:focus-visible,.app-legal-links a:focus-visible{outline:3px solid #1687ee;outline-offset:4px;border-radius:3px}
.legal-header{max-width:1080px;margin:0 auto;padding:24px 20px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.legal-brand{display:inline-flex;align-items:center;gap:3px;color:#0c2e60!important;white-space:nowrap;text-decoration:none!important}
.legal-brand b{font-size:45px;line-height:1;letter-spacing:-3px;padding-right:3px;background:linear-gradient(#5c9dd8,#124b88);background-clip:text;color:transparent}
.legal-brand>span{font-size:23px;font-weight:800;line-height:1;letter-spacing:-.7px}
.legal-brand small{display:block;margin-top:4px;font-size:8px;font-weight:400;letter-spacing:0;line-height:1.4}
.legal-home{min-height:40px;display:inline-flex;align-items:center;padding:8px 12px;border:1px solid #cbdff4;border-radius:9px;background:#fff;font-size:12px;font-weight:500;text-align:center}
.legal-layout{max-width:1080px;margin:0 auto;padding:8px 20px 32px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}
.legal-toc{position:sticky;top:20px;padding:20px 16px;background:#fff;border:1px solid #e0e9f4;border-radius:12px;min-width:0}
.legal-toc h2,.legal-toc h3{margin:0 0 12px;color:#547393;font-size:12px;font-weight:600;line-height:1.45}
.legal-toc nav{display:grid;gap:4px}
.legal-toc a{display:block;padding:8px 9px;min-height:36px;border-radius:7px;color:#416384;font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.legal-toc a:hover{background:#f0f7ff;color:#006ccb;text-decoration:none}
.legal-document{min-width:0;padding:30px;background:#fff;border:1px solid #e0e9f4;border-radius:14px}
.legal-kicker{margin:0 0 8px;color:#6c87a5;font-size:11px;font-weight:600;letter-spacing:.04em}
.legal-document h1{margin:0 0 10px;color:#133565;font-size:24px;line-height:1.3;letter-spacing:-.4px;overflow-wrap:anywhere}
.legal-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin:0 0 20px;color:#69839d;font-size:12px;line-height:1.5}
.legal-status{display:block;margin:0 0 20px;padding:14px 16px;background:#edf5ff;color:#446c95;border:1px solid #dbe9f7;border-radius:9px;font-size:12px;font-weight:400}
.legal-status>strong{display:block;margin-bottom:6px}
.legal-toc nav>strong{font-size:12px;font-weight:600;margin-bottom:10px;color:#547393}
.legal-summary{margin:0 0 24px;padding:16px 18px;background:#f0f7ff;border:1px solid #daeafa;border-radius:10px;color:#355c81;font-size:13px}
.legal-summary p{margin:0}
.legal-summary p+p{margin-top:10px}
.legal-document section{margin-top:28px;padding-top:22px;border-top:1px solid #e7eef7;scroll-margin-top:24px}
.legal-document h2{margin:0 0 12px;color:#234b77;font-size:17px;line-height:1.4;font-weight:600}
.legal-document h3{margin:20px 0 8px;font-size:14px;line-height:1.5;font-weight:600;color:#34597c}
.legal-document p{margin:0 0 12px;overflow-wrap:anywhere}
.legal-document p:last-child{margin-bottom:0}
.legal-document ul,.legal-document ol{margin:10px 0 16px;padding-left:21px}
.legal-document li{padding-left:2px;margin:7px 0;overflow-wrap:anywhere}
.legal-document strong{font-weight:600}
.legal-document code{font-size:.93em;overflow-wrap:anywhere}
.legal-pending{margin:18px 0;padding:16px 18px;border:1px solid #e6d8b8;border-radius:10px;background:#fffcf5;color:#67573a;font-size:13px}
.legal-pending h2,.legal-pending h3{color:#67573a}
.legal-pending ul:last-child{margin-bottom:0}
.legal-table-scroll{max-width:100%;overflow-x:auto;margin:14px 0 20px;border:1px solid #e0e9f4;border-radius:9px}
.legal-table{width:100%;border-collapse:collapse;font-size:12px;line-height:1.55}
.legal-table th,.legal-table td{padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid #e4edf7;overflow-wrap:anywhere}
.legal-table th{background:#f3f8ff;color:#537495;font-size:11px;font-weight:600}
.legal-table th:first-child,.legal-table td:first-child{width:30%;overflow-wrap:normal;word-break:normal}
.legal-table caption{padding:10px 12px;text-align:left;color:#69839d;font-size:11px}
.legal-table tbody tr:last-child td{border-bottom:0}
.legal-table td p{margin-bottom:7px}
.legal-footer{max-width:1080px;margin:0 auto;padding:0 20px 28px;display:flex;align-items:center;justify-content:space-between;gap:12px 24px;color:#6d86a0;font-size:11px;flex-wrap:wrap}
.legal-footer nav{display:flex;flex-wrap:wrap;gap:4px 18px}
.legal-footer a{display:inline-flex;align-items:center;min-height:40px}
/* Footer links remain separate from form controls and always open a new tab. */
.app-legal-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 16px;font-size:11px;line-height:1.5}
.app-legal-links a{display:inline-flex;align-items:center;min-height:36px;color:#527599;text-decoration:none;text-underline-offset:3px}
.app-legal-links a:hover{text-decoration:underline;color:#006ccb}
.auth-footer{align-items:center;flex-wrap:wrap}
.main-footer{align-items:center;gap:6px 20px}
.family-portal-footer{display:flex;align-items:center;justify-content:space-between;gap:8px 24px;flex-wrap:wrap}
.footer.wrap{flex-wrap:wrap;gap:16px 22px}
.footer.wrap nav{flex-wrap:wrap;align-items:center;gap:8px 20px}
.footer.wrap .app-legal-links{width:100%;order:4;justify-content:flex-end;border-top:1px solid #edf3f9;padding-top:8px}
@media(max-width:800px){
 .legal-header{padding:20px}
 .legal-layout{grid-template-columns:minmax(0,1fr);gap:16px}
 .legal-toc{position:static;padding:15px}
 .legal-toc nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px}
 .legal-document{padding:25px}
}
@media(max-width:480px){
 .legal-page{font-size:14px}
 .legal-header{gap:12px;padding:19px 16px}
 .legal-brand b{font-size:39px}
 .legal-brand>span{font-size:20px}
 .legal-brand small{font-size:7px}
 .legal-home{max-width:130px;font-size:11px;padding:8px 10px}
 .legal-layout{padding:0 12px 24px}
 .legal-toc{padding:13px}
 .legal-toc nav{gap:3px 8px}
 .legal-toc a{font-size:11px;padding:8px 6px;min-height:40px}
 .legal-document{padding:21px 18px;border-radius:12px}
 .legal-document h1{font-size:22px}
 .legal-document h2{font-size:16px}
 .legal-document section{margin-top:24px;padding-top:20px}
 .legal-summary,.legal-pending{padding:14px}
 .legal-table th,.legal-table td{padding:10px}
 .legal-table th:first-child,.legal-table td:first-child{width:36%}
 .legal-footer{padding:0 18px 20px;align-items:flex-start}
 .auth-footer .app-legal-links,.main-footer .app-legal-links,.family-portal-footer .app-legal-links{width:100%;justify-content:flex-start}
 .auth-footer .app-legal-links{justify-content:center}
 .app-legal-links a{min-height:40px}
 .footer.wrap .app-legal-links{justify-content:flex-start}
}
@media print{
 .legal-page{background:#fff;color:#222;font-size:11pt}
 .legal-header,.legal-toc,.legal-footer{display:none}
 .legal-layout{display:block;max-width:none;padding:0}
 .legal-document{padding:0;border:0;border-radius:0}
 .legal-document section{break-inside:auto}
 .legal-document h2,.legal-document h3{break-after:avoid}
 .legal-table-scroll{overflow:visible}
 .legal-page a{color:inherit;text-decoration:underline}
}

.student-report{box-sizing:border-box;background:#fff;border:1px solid #dae6f3;border-radius:14px;padding:24px;max-width:840px;min-width:0;margin:22px auto;color:#193b65;font:13px/1.5 Arial,Helvetica,sans-serif;overflow-wrap:anywhere}
.student-report *{box-sizing:border-box}
.student-report .report-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 18px;padding:0 0 16px;border-bottom:1px solid #e5edf6}
.student-report .report-brand{display:flex;align-items:center;gap:12px;color:#153866;min-width:0}
.student-report .report-brand img{display:block;width:auto;height:auto;max-width:120px;max-height:52px;object-fit:contain;flex-shrink:0}
.student-report .report-brand span{font-size:13px;font-weight:600;line-height:1.4;letter-spacing:0;overflow-wrap:anywhere}
.student-report .report-state{font-size:11px;line-height:1.4;font-weight:500;color:#55799c;background:#eff6fd;padding:5px 9px;border-radius:6px;text-align:center}
.student-report .report-title{font-size:18px;font-weight:700;line-height:1.3;letter-spacing:-.3px;margin:0 0 16px;color:#153866}
.student-report .report-student{padding:15px 16px;border:1px solid #e2ecf7;border-radius:10px;background:#f8fbff;margin:0 0 20px}
.student-report .report-label,.student-report dt{display:block;font-size:11px;font-weight:400;line-height:1.4;color:#617c98;margin:0 0 4px}
.student-report .report-student-name{font-size:16px;font-weight:600;line-height:1.4;margin:0;color:#193b65;letter-spacing:0}
.student-report .report-facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 24px;margin:14px 0 0;padding-top:13px;border-top:1px solid #e2ecf7}
.student-report .report-facts>div{min-width:0}
.student-report dd{font-size:12px;font-weight:500;line-height:1.5;margin:0;color:#365978}
.student-report .report-table-wrap{max-width:100%;margin:0 0 16px}
.student-report table{display:table;table-layout:fixed;border-collapse:collapse;width:100%;margin:0;white-space:normal;text-align:left}
.student-report th,.student-report td{padding:10px 9px;border-bottom:1px solid #e3ebf5;text-align:left;font-size:12px;line-height:1.5;vertical-align:top;min-width:0;color:#466481}
.student-report th{background:#f4f8fd;color:#617c98;font-size:11px;font-weight:500}
.student-report .report-date-column{width:24%}
.student-report .report-result-column{width:24%}
.student-report th:last-child,.student-report td:last-child{text-align:right}
.student-report td strong{font-size:12px;font-weight:600;color:#244b71}
.student-report td small{display:block;font-size:11px;font-weight:400;line-height:1.5;margin:3px 0 0;color:#687f98}
.student-report td p{font-size:12px;line-height:1.5;margin:6px 0 0;color:#526e89;white-space:pre-wrap}
.student-report .report-average{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;background:#eef6ff;border:1px solid #e0edfa;border-radius:9px}
.student-report .report-average-label{font-size:12px;font-weight:600;color:#28577f}
.student-report .report-average-value{font-size:13px;line-height:1.4;font-weight:500;white-space:nowrap;color:#28577f}
.student-report .report-average-value.is-pending{font-size:12px;line-height:1.4;font-weight:500;color:#687f98;background:#fff;padding:5px 9px;border-radius:6px;border:1px solid #dfebf6}
.student-report .report-method{font-size:11px;line-height:1.5;color:#617c98;margin:7px 0 0;white-space:normal}
.student-report .report-observation{margin:18px 0;padding:14px 15px;border:1px solid #e3ebf5;border-radius:9px}
.student-report .report-observation h3{font-size:12px;line-height:1.5;font-weight:600;letter-spacing:0;margin:0 0 7px;color:#315777}
.student-report .report-observation p{font-size:12px;line-height:1.65;font-weight:400;margin:0;color:#466481;white-space:pre-wrap}
.student-report .report-observation .report-empty{color:#71859b}
.student-report .report-observation small{display:block;font-size:10px;line-height:1.5;color:#6b8198;margin-top:9px}
.student-report .report-footer{display:block;border-top:1px solid #e5edf6;padding:12px 0 0;margin:0}
.student-report .report-footer p,.student-report .report-footer small{display:block;font-size:10px;font-weight:400;line-height:1.5;color:#6b8198;margin:0 0 4px;white-space:normal}
@media(max-width:520px){
 .student-report{padding:16px;margin:18px auto}
 .student-report .report-header{gap:10px;margin-bottom:16px;padding-bottom:13px}
 .student-report .report-brand{gap:8px;flex-wrap:wrap}
 .student-report .report-brand img{max-width:90px;max-height:44px}
 .student-report .report-title{font-size:17px}
 .student-report .report-student{padding:12px}
 .student-report .report-facts{gap:12px 16px}
 .student-report th,.student-report td{padding:9px 5px;font-size:11px}
 .student-report td strong,.student-report td p{font-size:11px}
 .student-report .report-date-column{width:28%}
 .student-report .report-result-column{width:25%}
 .student-report .report-average,.student-report .report-observation{padding:12px}
}
@media print{
 /* Printing the report view must exclude application navigation and branding. */
 body:has(.student-report) *:not(.student-report):not(.student-report *):not(:has(.student-report)){display:none!important}
 body:has(.student-report),body :has(.student-report){display:block!important;margin:0!important;padding:0!important;max-width:none!important;width:auto!important;min-height:0!important;background:#fff!important;border:0!important;box-shadow:none!important}
 .student-report{max-width:none;margin:0;padding:0;border:0;border-radius:0}
 .student-report .report-header,.student-report .report-student,.student-report .report-average{break-inside:avoid}
 .student-report .report-title,.student-report .report-observation h3{break-after:avoid}
 .student-report .report-table-wrap{overflow:visible}
 .student-report thead{display:table-header-group}
 .student-report tr{break-inside:avoid}
}
.subscription-checkout{--sco-ink:#193b68;--sco-text:#345a7e;--sco-muted:#607b96;--sco-line:#e0e9f4;font-size:12px;line-height:1.6;color:var(--sco-text);min-width:0;overflow-wrap:anywhere}
.subscription-checkout *{box-sizing:border-box}
.subscription-checkout :is(h2,h3,p,ul,dl,dd){margin:0}
.subscription-checkout .sco-card{padding:20px;background:#fff;border:1px solid var(--sco-line);border-radius:12px;min-width:0}
.subscription-checkout h2{font-size:14px;font-weight:600;line-height:1.45;color:var(--sco-ink)}
.subscription-checkout h3{font-size:12px;font-weight:500;line-height:1.6;color:var(--sco-ink)}
.subscription-checkout p{font-size:11px;line-height:1.7;color:var(--sco-muted)}
.subscription-checkout .sco-heading{display:flex;justify-content:space-between;align-items:start;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.subscription-checkout .sco-heading p{margin-top:4px}
.subscription-checkout .sco-badge{font-size:10px;border-radius:7px;padding:4px 8px;background:#eef6fe;color:#527799;line-height:1.5;font-weight:400}
.subscription-checkout .sco-preparation{display:flex;align-items:start;gap:13px;padding:4px 0 12px}
.subscription-checkout .sco-preparation p{margin-top:5px}
.subscription-checkout .sco-icon{display:grid;place-items:center;background:#f0f7fe;border-radius:9px;width:32px;height:32px;flex:0 0 32px;color:#729bc1;font-size:18px}
.subscription-checkout button{min-height:40px;max-width:100%;border-radius:8px;padding:9px 13px;font-family:inherit;font-size:12px;font-weight:500;line-height:1.5;cursor:pointer;white-space:normal}
.subscription-checkout .sco-primary{background:#0874d6;color:#fff;border:1px solid #0874d6;font-family:inherit;font-size:12px;line-height:1.5}
.subscription-checkout .sco-secondary{background:#fff;border:1px solid #b9d7f3;color:#056dc8;font-family:inherit;font-size:12px;line-height:1.5}
.subscription-checkout .sco-link{background:transparent;border:0;color:#056dc8;padding:8px 0;font-family:inherit;font-size:11px;line-height:1.5;text-align:left}
.subscription-checkout button:disabled{opacity:.55;cursor:default}
.subscription-checkout :is(button,input):focus-visible{outline:2px solid #1687ee;outline-offset:3px}
.subscription-checkout .sco-sandbox-note{border:1px solid #deebf9;background:#f2f8fe;border-radius:9px;padding:11px 13px;margin-bottom:16px;color:#516e8b}
.subscription-checkout .sco-charges article{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #e6edf6;padding:15px 0}
.subscription-checkout .sco-charges article:first-child{border-top:0;padding-top:0}
.subscription-checkout .sco-charges p{margin-top:4px}
.subscription-checkout .sco-charge-action{display:flex;flex-direction:column;align-items:end;gap:8px;flex-shrink:0}
.subscription-checkout .sco-charge-action strong{font-size:13px;font-weight:500;color:var(--sco-ink);white-space:nowrap}
.subscription-checkout .sco-status{font-size:10px;font-weight:400;line-height:1.5;padding:4px 8px;border-radius:7px;color:#527391;background:#eef4fa;white-space:nowrap}
.subscription-checkout .sco-status.paid_test{background:#eaf6ee;color:#34724c}
.subscription-checkout .sco-status.needs_review{background:#fff5df;color:#805e25}
.subscription-checkout .sco-status.declined,.subscription-checkout .sco-status.error{background:#fcf1f1;color:#9b5d64}
.subscription-checkout .sco-review{padding:15px;background:#f7faff;border:1px solid #e0eaf5;border-radius:10px}
.subscription-checkout .sco-review>span{font-size:10px;color:var(--sco-muted)}
.subscription-checkout .sco-review h3{margin-top:5px}
.subscription-checkout .sco-review dl{margin-top:10px}
.subscription-checkout .sco-review dl>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid #e5edf7}
.subscription-checkout .sco-review dt{font-size:11px;color:var(--sco-muted)}
.subscription-checkout .sco-review dd{font-size:12px;color:var(--sco-ink);text-align:right;min-width:0}
.subscription-checkout .sco-check{display:flex;align-items:start;gap:10px;font-size:11px;font-weight:400;line-height:1.7;margin-top:16px;color:var(--sco-text)}
.subscription-checkout .sco-check input{width:18px;height:18px;flex:0 0 18px;margin:1px 0 0;accent-color:#0874d6}
.subscription-checkout .sco-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}
.subscription-checkout .sco-history{border-top:1px solid #e3ecf6;margin-top:16px;padding-top:16px}
.subscription-checkout .sco-history ul{list-style:none;padding:0;margin:9px 0}
.subscription-checkout .sco-history li{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:10px 0;font-size:11px}
.subscription-checkout .sco-history small{display:block;font-size:10px;color:var(--sco-muted);margin-top:3px}
.subscription-checkout .sco-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid #e4edf7;margin-top:18px;padding-top:13px}
.subscription-checkout .sco-footer p{flex:1 1 220px}
.subscription-checkout .sco-notice{border:1px solid #e5e0cd;border-radius:9px;background:#fffcf2;color:#78643c;padding:12px 14px}
.subscription-checkout .sco-error{color:#9a3540;font-size:11px;margin-top:12px}
.subscription-checkout .sco-loading p{margin-top:10px}
.subscription-checkout .sco-loading button{margin-top:13px}
@media(max-width:600px){.subscription-checkout .sco-card{padding:17px}.subscription-checkout .sco-charges article{align-items:start;flex-direction:column;gap:12px}.subscription-checkout .sco-charge-action{width:100%;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.subscription-checkout .sco-actions button{flex:1 1 130px}.subscription-checkout .sco-history li{flex-wrap:wrap}.subscription-checkout .sco-status{white-space:normal}.subscription-checkout .sco-review{padding:13px}}
