/* S7 (security review, 25 Oct): styles that used to be inline, so the CSP can forbid inline styles.
   pw-N sets --w to N% (bars use width:var(--w), level columns height:var(--w)). reg-hue-N: avatar colours. */
.pre-line{white-space:pre-line}
.visually-off{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.d-inline-form{display:inline}
.scroll-24{max-height:24rem;overflow:auto}.scroll-22{max-height:22rem;overflow:auto}.scroll-20{max-height:20rem;overflow:auto}
.break-after-page{break-after:page}
.logo-80{max-height:80px}
.hm-bar i{width:var(--w,0%)}.hm-lv i{height:var(--w,2%)}
.reg-avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;color:#fff;font-size: .875rem;font-weight:700;margin-right:8px;vertical-align:middle}.reg-alerts .badge{margin-left:6px}
.admissions-form fieldset,.admissions-form form{margin:1rem 0}.admissions-form fieldset label,.admissions-form form>label{display:inline-flex;flex-direction:column;margin:.5rem;max-width:100%}.admissions-form input,.admissions-form select{max-width:100%}
.admissions-setup-form{display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0}.admissions-setup-form label{display:flex;flex-direction:column;max-width:100%}.admissions-setup-form input,.admissions-setup-form select{max-width:100%}.admissions-table-scroll{overflow-x:auto;max-width:100%}.admissions-setup section{margin-top:2rem}@media(max-width:600px){.admissions-setup-form{flex-direction:column}.admissions-setup-form label{width:100%}}
.pw-0{--w:0%}.pw-1{--w:1%}.pw-2{--w:2%}.pw-3{--w:3%}.pw-4{--w:4%}.pw-5{--w:5%}.pw-6{--w:6%}.pw-7{--w:7%}.pw-8{--w:8%}.pw-9{--w:9%}.pw-10{--w:10%}.pw-11{--w:11%}.pw-12{--w:12%}.pw-13{--w:13%}.pw-14{--w:14%}.pw-15{--w:15%}.pw-16{--w:16%}.pw-17{--w:17%}.pw-18{--w:18%}.pw-19{--w:19%}.pw-20{--w:20%}.pw-21{--w:21%}.pw-22{--w:22%}.pw-23{--w:23%}.pw-24{--w:24%}.pw-25{--w:25%}.pw-26{--w:26%}.pw-27{--w:27%}.pw-28{--w:28%}.pw-29{--w:29%}.pw-30{--w:30%}.pw-31{--w:31%}.pw-32{--w:32%}.pw-33{--w:33%}.pw-34{--w:34%}.pw-35{--w:35%}.pw-36{--w:36%}.pw-37{--w:37%}.pw-38{--w:38%}.pw-39{--w:39%}.pw-40{--w:40%}.pw-41{--w:41%}.pw-42{--w:42%}.pw-43{--w:43%}.pw-44{--w:44%}.pw-45{--w:45%}.pw-46{--w:46%}.pw-47{--w:47%}.pw-48{--w:48%}.pw-49{--w:49%}.pw-50{--w:50%}.pw-51{--w:51%}.pw-52{--w:52%}.pw-53{--w:53%}.pw-54{--w:54%}.pw-55{--w:55%}.pw-56{--w:56%}.pw-57{--w:57%}.pw-58{--w:58%}.pw-59{--w:59%}.pw-60{--w:60%}.pw-61{--w:61%}.pw-62{--w:62%}.pw-63{--w:63%}.pw-64{--w:64%}.pw-65{--w:65%}.pw-66{--w:66%}.pw-67{--w:67%}.pw-68{--w:68%}.pw-69{--w:69%}.pw-70{--w:70%}.pw-71{--w:71%}.pw-72{--w:72%}.pw-73{--w:73%}.pw-74{--w:74%}.pw-75{--w:75%}.pw-76{--w:76%}.pw-77{--w:77%}.pw-78{--w:78%}.pw-79{--w:79%}.pw-80{--w:80%}.pw-81{--w:81%}.pw-82{--w:82%}.pw-83{--w:83%}.pw-84{--w:84%}.pw-85{--w:85%}.pw-86{--w:86%}.pw-87{--w:87%}.pw-88{--w:88%}.pw-89{--w:89%}.pw-90{--w:90%}.pw-91{--w:91%}.pw-92{--w:92%}.pw-93{--w:93%}.pw-94{--w:94%}.pw-95{--w:95%}.pw-96{--w:96%}.pw-97{--w:97%}.pw-98{--w:98%}.pw-99{--w:99%}.pw-100{--w:100%}
.reg-hue-0{background:hsl(0 55% 42%)}.reg-hue-1{background:hsl(15 55% 42%)}.reg-hue-2{background:hsl(30 55% 42%)}.reg-hue-3{background:hsl(45 55% 42%)}.reg-hue-4{background:hsl(60 55% 42%)}.reg-hue-5{background:hsl(75 55% 42%)}.reg-hue-6{background:hsl(90 55% 42%)}.reg-hue-7{background:hsl(105 55% 42%)}.reg-hue-8{background:hsl(120 55% 42%)}.reg-hue-9{background:hsl(135 55% 42%)}.reg-hue-10{background:hsl(150 55% 42%)}.reg-hue-11{background:hsl(165 55% 42%)}.reg-hue-12{background:hsl(180 55% 42%)}.reg-hue-13{background:hsl(195 55% 42%)}.reg-hue-14{background:hsl(210 55% 42%)}.reg-hue-15{background:hsl(225 55% 42%)}.reg-hue-16{background:hsl(240 55% 42%)}.reg-hue-17{background:hsl(255 55% 42%)}.reg-hue-18{background:hsl(270 55% 42%)}.reg-hue-19{background:hsl(285 55% 42%)}.reg-hue-20{background:hsl(300 55% 42%)}.reg-hue-21{background:hsl(315 55% 42%)}.reg-hue-22{background:hsl(330 55% 42%)}.reg-hue-23{background:hsl(345 55% 42%)}
/* P4c: concern descriptions and chronology keep their line breaks. */
.mm-prewrap { white-space: pre-wrap; overflow-wrap: anywhere; }
/* P4d: the accident body map (outline from area codes; marked areas filled). */
.bm-map { width: 100%; max-width: 22rem; height: auto; color: inherit; }
.bm-area { fill: transparent; stroke: currentColor; stroke-width: 1; }
.bm-on { fill: #c0392b; }
.bm-label { fill: currentColor; }
.bm-areas { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: .25rem 1rem; }
/* U22: show-password button, live rules checklist and "passwords match" line on every password box. */
.mm-pw-wrap { display: flex; align-items: stretch; gap: .25rem; max-width: 100%; }
.mm-pw-wrap > input { flex: 1 1 auto; min-width: 0; }
.mm-pw-toggle { flex: 0 0 auto; min-width: 4.5rem; min-height: 2.5rem; padding: 0 .75rem; border: 1px solid currentColor; border-radius: .375rem; background: transparent; color: inherit; font-size: 1rem; cursor: pointer; }
.mm-pw-toggle:focus-visible { outline: 3px solid #1f6feb; outline-offset: 2px; }
.mm-pw-rules { list-style: none; margin: .5rem 0 0; padding: 0; font-size: .9375rem; }
.mm-pw-rule::before { content: "\25CB\00a0"; }
.mm-pw-rule.mm-pw-ok { color: #146c43; }
.mm-pw-rule.mm-pw-ok::before { content: "\2713\00a0"; }
.mm-pw-match { margin: .25rem 0 0; font-size: .9375rem; color: #9a3412; }
.mm-pw-match.mm-pw-ok { color: #146c43; }
.mm-pw-tip { margin: .25rem 0 0; font-size: .875rem; }
@media (prefers-color-scheme: dark) { .mm-pw-rule.mm-pw-ok, .mm-pw-match.mm-pw-ok { color: #6ee7a8; } .mm-pw-match { color: #fdba74; } }
/* U22 (owner, 3 Nov): password forms get room between the fields and the button (the Accept invitation button
   touched Confirm password). Works whether a box is hidden (password) or shown (inside .mm-pw-wrap). */
form:has(input[type="password"]) .form-field, form:has(.mm-pw-wrap) .form-field { margin-bottom: 1rem; }
form:has(input[type="password"]) > button[type="submit"], form:has(input[type="password"]) > .btn,
form:has(.mm-pw-wrap) > button[type="submit"], form:has(.mm-pw-wrap) > .btn { margin-top: 1.25rem; }
/* U22 (owner, 3 Nov): the green "Open school" card on Business > customer. Every word on it is white (white on
   #16794f is 5.4:1, on #0c4d30 9.3:1, both above WCAG AA 4.5:1), in both looks and in dark mode; the helper link
   is white and underlined with a white focus ring; the "Not a member" chip is dark text on white. */
.module-launch .eyebrow, body.mm-modern .module-launch .eyebrow,
.module-launch p, body.mm-modern .module-launch p,
.module-launch .mm-note, body.mm-modern .module-launch .mm-note { color: #fff; opacity: 1; }
.module-launch a:not(.btn), body.mm-modern .module-launch a:not(.btn) { color: #fff; text-decoration: underline; text-underline-offset: .15em; font-weight: 650; }
.module-launch a:focus-visible, body.mm-modern .module-launch a:focus-visible { outline: 3px solid #fff; outline-offset: 3px; border-radius: .25rem; }
.module-launch .mm-open-none, body.mm-modern .module-launch .mm-open-none { background: #fff; color: #0c4d30; }
@media (prefers-color-scheme: dark) { .module-launch .eyebrow, .module-launch p, .module-launch .mm-note, .module-launch a:not(.btn) { color: #fff; } }
/* The card's own "Open school" button: white with dark green text in both looks (the modern look made it green on green). */
.module-launch .btn, body.mm-modern .module-launch .btn, body.mm-modern .module-launch a.btn-brand { background: #fff; border-color: #fff; color: #0c4d30; }
body.mm-modern .module-launch .btn:hover, .module-launch .btn:hover { background: #e6f4ec; border-color: #e6f4ec; color: #0c4d30; }
.module-launch .btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
