/* v22.3.0: two obsolete :root palette generations were removed here. Both
   defined the same token names as the brand block below with pre-rebrand
   values, and both were fully overridden by it, so the top of this file
   misrepresented what actually rendered. Only tokens with no later
   definition are retained. */
:root{--green:#46725b;--red:#a84835}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--cream);color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif}button,input,select,textarea{font:inherit}button{color:inherit}.muted{color:var(--muted)}.eyebrow{margin:0;color:#8b7657;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.13em}.button{min-height:45px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;border:1px solid transparent;border-radius:9px;font-weight:750;cursor:pointer}.button.primary{color:#171717;background:var(--gold);box-shadow:0 4px 13px rgba(214,158,46,.18)}.button.primary:hover{background:#e3aa38}.button.secondary{border-color:var(--border);background:var(--surface);color:var(--ink)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(214,158,46,.55);outline-offset:2px}
.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(330px,.85fr) minmax(470px,1.15fr)}.login-brand{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:50px;color:#fff;text-align:center;background:linear-gradient(160deg,var(--navy),var(--navy2))}.beacon-logo{width:110px;height:110px;display:grid;place-items:center;margin-bottom:24px;border:2px solid var(--gold);border-radius:50%;color:var(--gold);font:700 28px Georgia,serif;box-shadow:0 0 0 10px rgba(214,158,46,.08)}.login-brand h1{margin:0;font:600 42px/1.05 Georgia,serif}.login-brand p{margin:14px 0 45px;color:#efc76e;font-size:17px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.login-brand span{padding-top:18px;border-top:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.65);font-size:12px}.login-panel{display:grid;place-items:center;padding:40px;background:radial-gradient(circle at 70% 10%,#fff,var(--cream) 60%)}.login-card{width:min(430px,100%);display:grid;gap:18px;padding:38px;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:var(--shadow)}.login-card h2{margin:3px 0 0;color:var(--ink);font-size:30px}.login-card p{margin:0 0 5px}.login-card label,.drawer label,.install-card label{display:grid;gap:7px;color:var(--ink);font-size:12px;font-weight:750}.login-card input,.drawer input,.drawer select,.drawer textarea,.install-card input{min-height:47px;padding:10px 12px;border:1px solid #d2c4b1;border-radius:8px;background:#fff}.form-error,.install-error{padding:12px;border-radius:7px;color:#8b2f20;background:#fff0ec;font-size:12px}
.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:248px;display:flex;flex-direction:column;padding:28px 18px 20px;color:#fff;background:linear-gradient(180deg,var(--navy),var(--navy2));box-shadow:7px 0 28px rgba(9,35,58,.12)}.brand-lockup{display:flex;align-items:center;gap:11px;padding:0 10px}.brand-lockup strong{display:block;font:600 23px/1 Georgia,serif}.brand-lockup span{display:block;margin-top:4px;font-size:12px;opacity:.84}.mini-beacon{width:50px;height:50px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font:700 12px Georgia,serif}.product-label{margin:18px 10px 32px;padding-top:14px;border-top:1px solid rgba(214,158,46,.5);color:#efbd50;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.sidebar nav{display:grid;gap:7px}.sidebar nav button{position:relative;min-height:50px;display:flex;align-items:center;gap:15px;padding:0 16px;border:0;border-radius:9px;color:rgba(255,255,255,.87);background:transparent;text-align:left;font-weight:650;cursor:pointer}.sidebar nav button>span{width:21px;text-align:center;font-size:19px}.sidebar nav button:hover{background:rgba(255,255,255,.08)}.sidebar nav button.active{color:var(--ink);background:#fffaf1}.sidebar nav button.active:before{content:"";position:absolute;left:-4px;top:8px;bottom:8px;width:5px;border-radius:4px;background:var(--gold)}.sidebar-bottom{margin-top:auto;padding:17px 11px 0;border-top:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.63);font-size:11px}.sidebar-bottom i{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:#77ca9f}
.content{min-height:100vh;margin-left:248px;padding:0 30px 42px}.topbar{min-height:140px;display:flex;align-items:center;gap:18px}.topbar h1{margin:0;color:var(--ink);font-size:clamp(28px,3vw,41px);line-height:1.05;letter-spacing:-.035em}.topbar p{margin:9px 0 0;color:#4c6a83;font-size:19px;font-weight:650}.top-actions{margin-left:auto;display:flex;align-items:center;gap:14px}.decision-people{display:flex;align-items:center;gap:7px;padding-right:16px;border-right:1px solid var(--border)}.decision-people span{width:65px;color:var(--muted);font-size:10px;font-weight:750;text-transform:uppercase}.decision-people img,.profile-button img{width:38px;height:38px;border:2px solid #fff;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px var(--border)}.profile-button{display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;cursor:pointer}.profile-button span{display:none}.mobile-toggle{display:none}.notice{margin:-12px 0 18px;padding:13px 16px;border:1px solid #d6c89f;border-radius:8px;color:#71530f;background:#fff8dd;font-size:13px}
.loading-card,.panel,.metric{border:1px solid var(--border);border-radius:12px;background:rgba(255,253,249,.95);box-shadow:var(--shadow)}.loading-card{padding:35px;text-align:center;color:var(--muted)}.stack{display:grid;gap:20px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.metric{min-height:155px;padding:24px}.metric span{display:block;color:var(--muted);font-size:13px;font-weight:650}.metric strong{display:block;margin-top:14px;color:var(--ink);font-size:43px;line-height:1}.metric small{display:block;margin-top:10px;color:var(--muted)}.dashboard{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.85fr);gap:20px}.panel-head{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:21px 24px}.panel-head h2{margin:4px 0 0;color:var(--ink);font-size:23px}.attention-head,.attention-row{display:grid;grid-template-columns:1.2fr .9fr 1.3fr .8fr .65fr;align-items:center;gap:12px}.attention-head,.table-head{min-height:42px;padding:0 23px;color:var(--muted);background:#fcf8f1;border-top:1px solid #e8dfd2;border-bottom:1px solid #e8dfd2;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.attention-row{min-height:82px;padding:12px 23px;border-bottom:1px solid #e9e0d4;cursor:pointer}.attention-row:hover,.table-row:hover{background:var(--pale)}.attention-row strong,.table-row strong{display:block;color:var(--ink);font-size:13px}.attention-row small,.table-row small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.badge{width:max-content;max-width:100%;display:inline-flex;align-items:center;min-height:27px;padding:3px 9px;border:1px solid #c8d8e5;border-radius:7px;color:#28567b;background:#edf5fa;font-size:10px;font-weight:750}.badge.accepted,.badge.enrolled,.badge.reviewed,.badge.active,.badge.decision-maker{border-color:#c6d8c5;color:#3f6b4e;background:#edf5eb}.badge.declined,.badge.withdrawn{border-color:#e5c2b9;color:#94432f;background:#fff0eb}.badge.waitlisted,.badge.pending,.badge.waiting-for-documents{border-color:#e6d09c;color:#8a6111;background:#fff7df}.badge.ready-for-review,.badge.awaiting-decision{border-color:#d2c7ea;color:#60458a;background:#f3eefc}.pipeline{padding:0 23px 24px}.pipeline-row{min-height:51px;display:grid;grid-template-columns:100px 1fr 30px;align-items:center;gap:10px;border-bottom:1px solid #e9e0d4;color:var(--ink);font-size:13px}.pipeline-row i,.bar{height:7px;overflow:hidden;border-radius:8px;background:#e6ebee}.pipeline-row i b,.bar b{display:block;height:100%;border-radius:inherit;background:#5f8db4}.pipeline-row strong{text-align:right}.decision-note{display:flex;align-items:center;justify-content:space-between;margin-top:19px;padding-top:16px;border-top:1px solid var(--border);color:var(--muted);font-size:11px}.decision-note div{display:flex}.decision-note img{width:33px;height:33px;border:2px solid white;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px var(--border)}.decision-note img+img{margin-left:-7px}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 21px;border-bottom:1px solid var(--border)}.search{width:min(440px,45vw);min-height:var(--control-height,38px);padding:0 13px;border:1px solid #d2c5b3;border-radius:8px;background:#fff}.table{overflow-x:auto}.table-head,.table-row{min-width:920px;display:grid;align-items:center;gap:13px}.table-head{border-top:0}.table-row{min-height:73px;padding:11px 23px;border-bottom:1px solid #e9e0d4;font-size:12px;cursor:pointer}.applications-table .table-head,.applications-table .table-row{grid-template-columns:1.25fr .9fr .95fr 1.3fr .9fr .7fr}.tours-table .table-head,.tours-table .table-row{grid-template-columns:1.18fr 1fr .9fr .95fr .8fr 1.05fr .85fr}.simple-table .table-head,.simple-table .table-row{grid-template-columns:1.2fr 1fr 1.15fr .9fr 1.2fr}.empty{padding:50px;text-align:center;color:var(--muted)}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.report-card{padding:25px}.report-card h2{margin:5px 0;color:var(--ink);font-size:18px}.report-card strong{display:block;margin:21px 0 15px;color:var(--ink);font-size:41px}.settings-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.user-row{min-height:78px;display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:10px 23px;border-top:1px solid #e8dfd2}.user-row img{width:38px;height:38px;border-radius:50%;object-fit:cover}.user-row small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.email-journey{display:grid;gap:11px;padding:0 24px 25px}.email-step{display:flex;align-items:flex-start;gap:10px}.email-step i{width:24px;height:24px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:var(--green);background:#e8f2ea;font-style:normal;font-size:12px}.email-step strong{display:block;color:var(--ink);font-size:12px}.email-step small{display:block;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.4}
.overlay{position:fixed;inset:0;z-index:50;display:flex;justify-content:flex-end;background:rgba(9,27,43,.45);backdrop-filter:blur(2px)}.drawer{width:min(600px,95vw);height:100%;overflow-y:auto;background:var(--surface);box-shadow:-15px 0 45px rgba(9,27,43,.2)}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:27px 29px 22px;border-bottom:1px solid var(--border)}.drawer-head h2{margin:5px 0 2px;color:var(--ink);font-size:27px}.close{width:39px;height:39px;border:0;border-radius:50%;background:transparent;cursor:pointer}.close:hover{background:var(--pale)}.drawer-body{display:grid;gap:18px;padding:24px 29px 34px}.drawer label{display:grid;gap:7px;color:var(--ink);font-size:11px;font-weight:750}.drawer input,.drawer select,.drawer textarea{width:100%;min-height:44px;padding:10px 11px;border:1px solid #d2c5b3;border-radius:8px;background:#fff}.drawer textarea{min-height:90px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:5px}.auto-note{padding:14px;border-radius:8px;color:#4d6377;background:var(--pale);font-size:11px;line-height:1.45}.detail-block{display:grid;gap:12px;padding:17px;border-radius:9px;background:#faf6ef}.detail-block h3{margin:0;color:var(--ink);font-size:14px}.people{display:flex;gap:18px}.people span{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700}.people img{width:32px;height:32px;border-radius:50%;object-fit:cover}.toast{position:fixed;right:24px;bottom:24px;z-index:80;max-width:420px;padding:15px 18px;border-radius:9px;color:#fff;background:var(--ink);box-shadow:0 12px 35px rgba(9,27,43,.27);font-size:12px}
.install-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at 70% 10%,#fff,var(--cream) 60%)}.install-card{width:min(560px,100%);display:grid;gap:18px;padding:34px;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:var(--shadow)}.install-brand{display:flex;align-items:center;gap:13px;padding-bottom:19px;border-bottom:1px solid var(--border)}.install-brand strong{display:block;color:var(--ink);font:600 20px Georgia,serif}.install-brand small{display:block;margin-top:4px;color:var(--muted)}.install-beacon{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:var(--gold);background:var(--navy);font:700 12px Georgia,serif}.install-card h1{margin:4px 0;color:var(--ink);font-size:27px}.install-card p{margin:0;color:var(--muted);line-height:1.5}.install-card form{display:grid;gap:16px}.install-success{padding:13px;border-radius:7px;color:#315c3f;background:#eaf4eb;font-size:12px}
@media(max-width:1120px){.decision-people{display:none}.metrics{grid-template-columns:repeat(2,1fr)}.dashboard,.settings-grid{grid-template-columns:1fr}.report-grid{grid-template-columns:1fr}}
@media(max-width:780px){.sidebar{transform:translateX(-105%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.content{margin-left:0;padding:0 15px 30px}.topbar{min-height:108px}.mobile-toggle{display:block;width:41px;height:41px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.topbar h1{font-size:26px}.topbar p{font-size:14px}.top-actions .button{width:44px;padding:0;font-size:0}.login-layout{grid-template-columns:1fr}.login-brand{min-height:310px}.login-panel{padding:25px}.profile-button{display:none}}
@media(max-width:560px){.metrics{grid-template-columns:1fr}.attention-head{display:none}.attention-row{grid-template-columns:1.2fr .8fr;gap:8px}.toolbar{align-items:stretch;flex-direction:column}.search{width:100%}.form-grid{grid-template-columns:1fr}.login-brand h1{font-size:34px}}
@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* LCA brand refresh inspired by the vivid magenta, gold, and blue used on the school bus page. */

html,body{background:var(--cream)}
.login-brand,.sidebar{background:linear-gradient(160deg,#3157c8 0%,#7432b8 55%,#991d69 100%)}
.login-brand{gap:0}.login-logo-wrap{width:min(520px,92%);padding:14px;border-radius:13px;background:#fff;box-shadow:0 12px 34px rgba(21,11,63,.25)}.login-logo-wrap img{display:block;width:100%;height:auto}.login-brand p{color:#ffe08a}.login-panel,.install-page{background:radial-gradient(circle at 72% 8%,#eef8ff 0,var(--cream) 58%)}
.sidebar{padding-top:26px;box-shadow:8px 0 30px rgba(34,22,91,.22)}.brand-lockup{display:flex;align-items:center;padding:8px;border-radius:11px;background:#fff;box-shadow:0 8px 22px rgba(21,11,63,.18)}.brand-lockup img{display:block;width:100%;height:auto}.product-label{border-top-color:rgba(255,255,255,.35);color:#ffe08a}.sidebar nav button.active{background:#fff;box-shadow:0 5px 15px rgba(34,22,91,.16)}.sidebar-bottom i{background:#a8f2cf}
.button.primary{position:relative;overflow:hidden;color:#fff;border-color:var(--soft-gold);background:var(--magenta);box-shadow:0 5px 15px rgba(153,29,105,.25)}.button.primary:after{content:"";position:absolute;inset:-50% auto -50% -45%;width:22%;transform:rotate(18deg);background:rgba(255,224,138,.48);animation:lca-gold-sweep 5.5s ease-in-out infinite}.button.primary:hover{background:var(--magenta2)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:rgba(57,175,229,.55)}
.eyebrow{color:var(--magenta)}.loading-card,.panel,.metric,.login-card,.install-card{background:rgba(255,255,255,.96)}.metric{border-top:4px solid var(--purple)}.metric:nth-child(2){border-top-color:var(--sky)}.metric:nth-child(3){border-top-color:var(--gold)}.metric:nth-child(4){border-top-color:var(--magenta)}
.attention-head,.table-head{color:#565173;background:linear-gradient(90deg,#f1ebff,#eef8ff);border-color:#ddd7ec}.pipeline-row i b,.bar b{background:linear-gradient(90deg,var(--purple),var(--sky))}.badge.ready-for-review,.badge.awaiting-decision{border-color:#cbb8eb;color:#5a288f;background:#f2eaff}.auto-note{background:linear-gradient(135deg,#f4efff,#eef8ff)}.detail-block{background:#f7f2ff}.email-step i{color:var(--purple);background:#f0e8ff}
.install-brand{display:block;padding:0 0 19px}.install-logo{display:block;width:100%;height:auto}.install-card{border-top:5px solid var(--magenta)}
@keyframes lca-gold-sweep{0%,62%{left:-45%}82%,100%{left:130%}}
@media(prefers-reduced-motion:reduce){.button.primary:after{animation-duration:.01ms!important}}


/* Safe bulk deletion for application records. */
.toolbar-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.button.danger{color:#fff;border-color:#9f2f3a;background:#b43b47;box-shadow:0 5px 15px rgba(180,59,71,.2)}.button.danger:hover{background:#922f39}.button.danger:disabled{cursor:not-allowed;opacity:.45;box-shadow:none}.applications-table .table-head,.applications-table .table-row{grid-template-columns:42px 1.25fr .9fr .95fr 1.3fr .9fr .7fr}.select-cell{display:grid;place-items:center}.select-cell input{width:18px;height:18px;margin:0;accent-color:var(--magenta);cursor:pointer}.table-row:has(.record-select:checked){background:#f8f1fb}
@media(max-width:560px){.toolbar-actions{justify-content:flex-end}.toolbar-actions .button{flex:1}}

/* Ensure hidden overlays, dialogs, and notices stay hidden. */
[hidden]{display:none!important}
.overlay[hidden]{display:none!important}

/* Checkbox column for deleting tour requests. */
.selectable-tours-table .table-head,.selectable-tours-table .table-row{grid-template-columns:42px 1.15fr 1fr .95fr .8fr 1.15fr .9fr}.table-row:has(.tour-record-select:checked){background:#f8f1fb}


/* Expanded public and staff tour intake forms. */
.child-card{display:grid;gap:12px;margin-top:12px;padding:16px;border:1px solid var(--border);border-radius:10px;background:#fff}.child-card h3,.child-card h4{margin:0;color:var(--ink);font-size:14px}.public-form-page{min-height:100vh;padding:28px;background:radial-gradient(circle at 75% 5%,#eef8ff,var(--cream) 62%)}.public-form-shell{width:min(920px,100%);margin:0 auto;border:1px solid var(--border);border-top:6px solid var(--magenta);border-radius:16px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.public-form-brand{display:grid;grid-template-columns:250px 1fr;align-items:center;gap:28px;padding:30px;background:linear-gradient(135deg,#fff,#f4efff)}.public-form-brand img{width:100%;height:auto}.public-form-brand h1{margin:4px 0 8px;color:var(--ink);font-size:34px}.public-form-brand p{margin:0;color:var(--muted);line-height:1.55}.public-tour-form{display:grid;gap:24px;padding:30px}.public-tour-form section{display:grid;gap:15px;padding:22px;border:1px solid var(--border);border-radius:12px;background:#fcfbff}.public-tour-form h2{margin:0 0 3px;color:var(--ink);font-size:20px}.public-tour-form label{display:grid;gap:7px;color:var(--ink);font-size:12px;font-weight:750}.public-tour-form label b{color:#b02f46}.public-tour-form input,.public-tour-form select,.public-tour-form textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #cec5dd;border-radius:8px;background:#fff;font:inherit}.public-tour-form textarea{min-height:120px;resize:vertical}.public-submit{justify-self:start;min-width:210px}.public-success{padding:48px 34px;text-align:center}.public-success h2{color:var(--ink);font-size:27px}.public-success p{color:var(--muted)}.public-error{margin:24px 30px 0;padding:14px;border-radius:8px}.drawer .child-card{background:#fcfbff}
@media(max-width:700px){.public-form-page{padding:0}.public-form-shell{border-radius:0}.public-form-brand{grid-template-columns:1fr;padding:24px}.public-form-brand img{max-width:300px}.public-tour-form{padding:18px}.public-tour-form section{padding:17px}}

.clickable-row { cursor: pointer; }
.clickable-row:hover { filter: brightness(0.985); }
.clickable-row:focus { outline: 3px solid rgba(73, 61, 151, 0.25); outline-offset: -3px; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.detail-grid > div { padding: 12px; border: 1px solid var(--line, #e4e4ea); border-radius: 10px; background: #fff; }
.field-label { display: block; margin-bottom: 4px; color: #6c6c78; font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
@media (max-width: 700px) { .detail-grid { grid-template-columns: 1fr; } }

.form-help{margin:.6rem 0 0;color:#5f6472;font-size:.92rem;line-height:1.45}.form-help b{color:#b42318}

/* LCA Admissions v19 official brand system */
:root{
  --ink:#2B2D31;--navy:#2F588B;--navy2:#24466f;--cream:#F2F2F2;--surface:#fff;
  --gold:#D8A74C;--gold2:#b78632;--text:#2B2D31;--muted:#68717d;--border:#d9dee5;
  --pale:#edf3f8;--purple:#2F588B;--magenta:#2F588B;--magenta2:#24466f;--sky:#7f9c88;
  --soft-gold:#D8A74C;--sage:#7F9C88;--shadow:0 12px 34px rgba(43,45,49,.10)
}
html,body{background:#f5f7f9;color:var(--text)}
.login-brand,.sidebar{background:linear-gradient(165deg,var(--navy) 0%,#24466f 72%,var(--ink) 100%)}
.product-label{color:#f5d48c}.sidebar nav button.active{color:var(--navy)}.sidebar nav button.active:before{background:var(--gold)}
.button.primary{border-color:var(--navy);background:var(--navy);box-shadow:0 5px 15px rgba(47,88,139,.22)}
.button.primary:hover{background:#24466f}.button.primary:after{display:none}
.topbar{border-bottom:1px solid rgba(47,88,139,.12)}.topbar h1,.panel h2,.metric strong{color:var(--ink)}
.eyebrow{color:var(--navy)}.metric{border-top-color:var(--navy)}.metric:nth-child(2){border-top-color:var(--sage)}.metric:nth-child(3){border-top-color:var(--gold)}.metric:nth-child(4){border-top-color:var(--ink)}
.attention-head,.table-head{background:linear-gradient(90deg,#eef3f8,#f5f7f9);color:var(--ink);border-color:#d9dee5}
.pipeline-row i b,.bar b{background:linear-gradient(90deg,var(--navy),var(--sage))}
.auto-note{background:linear-gradient(135deg,#edf3f8,#f3f7f4)}.detail-block{background:#f7f9fb}
.badge.accepted,.badge.enrolled,.badge.completed{color:#45614f;background:#edf5ef;border-color:#b8cdbf}
.badge.ready-for-review,.badge.awaiting-decision{color:#76591f;background:#fbf5e8;border-color:#e4c980}
.clickable-tile,.pipeline{cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.clickable-tile:hover,.pipeline:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(47,88,139,.14);border-color:#b8c8da}
.clickable-tile:focus-visible,.pipeline:focus-visible{outline:3px solid rgba(216,167,76,.5);outline-offset:3px}
.public-form-page{background:linear-gradient(180deg,#eef3f8 0,#f5f7f9 300px)}
.public-form-shell{border-top-color:var(--gold);border-color:#d9dee5;box-shadow:0 18px 50px rgba(43,45,49,.12)}
.public-form-brand{background:linear-gradient(120deg,#fff 0%,#edf3f8 100%);border-bottom:4px solid var(--navy)}
.public-form-brand h1{color:var(--navy)}.public-tour-form section{background:#fff;border-color:#d9dee5;box-shadow:0 6px 18px rgba(43,45,49,.05)}
.public-tour-form section h2{padding-bottom:10px;border-bottom:3px solid var(--gold);color:var(--navy)}
.public-tour-form input,.public-tour-form select,.public-tour-form textarea{border-color:#cfd7df;border-radius:9px}
.public-tour-form input:focus,.public-tour-form select:focus,.public-tour-form textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(47,88,139,.12);outline:0}
.child-card{border-left:5px solid var(--sage);background:#f8faf9}

.time-picker{display:grid;grid-template-columns:minmax(70px,1fr) auto minmax(80px,1fr) minmax(84px,1fr);gap:8px;align-items:center}.time-picker select{min-width:0}.datetime-picker{display:grid;grid-template-columns:minmax(150px,1fr) minmax(250px,1.6fr);gap:12px;align-items:center}@media(max-width:680px){.datetime-picker{grid-template-columns:1fr}.time-picker{grid-template-columns:minmax(60px,1fr) auto minmax(72px,1fr) minmax(72px,1fr)}}

.attention-row:focus { outline: 3px solid rgba(47, 88, 139, 0.28); outline-offset: -3px; background: var(--pale); }


/* v20.12 clickable admissions pipeline */
.pipeline-link{width:100%;padding:0;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer;grid-template-columns:100px 1fr 30px 18px}
.pipeline-link:hover,.pipeline-link:focus-visible{background:#f3f7fa;outline:none}
.pipeline-link:focus-visible{box-shadow:inset 0 0 0 2px var(--navy)}
.pipeline-link em{color:var(--navy);font-size:24px;font-style:normal;text-align:right;transition:transform .15s ease}
.pipeline-link:hover em,.pipeline-link:focus-visible em{transform:translateX(3px)}
.active-filter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 20px 16px;padding:12px 14px;border:1px solid #c8d8e5;border-radius:10px;background:#edf5fa;color:var(--ink);font-size:13px}
.active-filter button{border:0;background:transparent;color:var(--navy);font-weight:750;cursor:pointer;text-decoration:underline}


/* v20.13 phone-first tour follow-up */
.call-nudge{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 18px;padding:16px 18px;border-left:5px solid var(--gold);border-radius:12px;background:#f7f9fc;color:var(--ink)}
.call-nudge strong{color:var(--navy)}
.call-nudge span{flex:1 1 260px}
.button.compact{padding:10px 16px;min-height:auto;text-decoration:none}

input.lca-invalid, input[aria-invalid="true"]{border-color:#b42318!important;background:#fff7f6!important;box-shadow:0 0 0 3px rgba(180,35,24,.10)!important}
input.lca-invalid:focus, input[aria-invalid="true"]:focus{outline:2px solid rgba(180,35,24,.24);outline-offset:1px}

/* v20.19 user and school year management */
.user-management,.school-year-list,.audit-list{display:grid;gap:10px}.user-admin-row,.school-year-row{display:grid;grid-template-columns:minmax(220px,1.5fr) auto auto minmax(190px,auto);align-items:center;gap:12px;padding:14px;border:1px solid var(--border);border-radius:10px;background:#fff}.user-admin-row span,.school-year-row span{display:grid}.user-admin-row small,.school-year-row small{color:var(--muted);margin-top:4px}.row-actions{display:flex;gap:8px;justify-content:flex-end}.audit-list>div{display:grid;grid-template-columns:1fr 1.5fr auto;gap:10px;padding:11px 0;border-bottom:1px solid var(--border)}.audit-list span,.audit-list small{color:var(--muted)}@media(max-width:800px){.user-admin-row,.school-year-row{grid-template-columns:1fr}.row-actions{justify-content:flex-start}.audit-list>div{grid-template-columns:1fr}}

/* v20.19.1 user management and responsive audit log */
.settings-stack,.settings-stack>.panel,.audit-panel{min-width:0;max-width:100%}.audit-panel{overflow:hidden}.audit-list{max-height:min(52vh,560px);overflow:auto;padding:0 20px 16px}.audit-list>div{grid-template-columns:minmax(150px,.9fr) minmax(0,1.6fr) minmax(130px,auto);align-items:start}.audit-list strong,.audit-list span,.audit-list small{min-width:0;overflow-wrap:anywhere;word-break:break-word}.role-control{display:grid;gap:5px;min-width:165px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.role-control select{width:100%;min-height:38px;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--ink);font-size:12px;text-transform:none;letter-spacing:normal}.role-control select:disabled{background:#f3f0ea;color:var(--muted)}.primary-admin-label{display:inline-flex;margin-left:7px;padding:3px 7px;border-radius:999px;background:#efe8ff;color:#5b3f87;font-size:9px;font-style:normal;font-weight:800;vertical-align:middle}.user-admin-row{grid-template-columns:minmax(220px,1.5fr) minmax(165px,.7fr) auto minmax(260px,auto)}
@media(max-width:1100px){.user-admin-row{grid-template-columns:minmax(220px,1fr) minmax(165px,.7fr)}.user-admin-row>.badge{justify-self:start}.user-admin-row .row-actions{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}.audit-list>div{grid-template-columns:minmax(125px,.8fr) minmax(0,1.4fr)}}
@media(max-width:700px){.audit-list{max-height:58vh;padding:0 14px 14px}.audit-list>div{grid-template-columns:1fr}.user-admin-row{grid-template-columns:1fr}.user-admin-row .row-actions{grid-column:auto}.primary-admin-label{display:flex;width:max-content;margin:6px 0 0}}

/* v20.19.3 matched status and action control heights */
.button{
  min-height:38px;
  height:38px;
  padding:0 13px;
  border-radius:8px;
  font-size:12px;
  line-height:1;
  white-space:nowrap;
}
.button.compact{
  min-height:34px;
  height:34px;
  padding:0 11px;
  font-size:11px;
}
.toolbar-actions .button,
.row-actions .button,
.form-actions .button,
.panel-head>.button,
.school-year-row>.button{
  min-width:112px;
}
.badge{
  min-width:92px;
  min-height:38px;
  height:38px;
  justify-content:center;
  padding:0 9px;
  line-height:1;
  white-space:nowrap;
}
.row-actions{align-items:center;flex-wrap:wrap}
.role-control select{height:38px;min-height:38px}
.public-submit{width:auto;min-width:170px;justify-self:start}
.install-card .button,.login-card .button{width:max-content;min-width:120px}
@media(max-width:780px){
  .top-actions .button{width:38px;height:38px;min-height:38px;min-width:38px}
}
@media(max-width:560px){
  .toolbar-actions .button,.form-actions .button,.row-actions .button{min-width:0;flex:1 1 auto}
  .badge{min-width:86px}
}

/* v20.19.4 unified staff control heights */
.app{
  --control-height:38px;
}
.app .button,
.app .badge,
.app .role-control select,
.app .search,
.app .toolbar input:not([type="checkbox"]):not([type="radio"]),
.app .toolbar select,
.app .panel input:not([type="checkbox"]):not([type="radio"]),
.app .panel select{
  height:var(--control-height);
  min-height:var(--control-height);
  max-height:var(--control-height);
  box-sizing:border-box;
}
.app .role-control select,
.app .search,
.app .toolbar input:not([type="checkbox"]):not([type="radio"]),
.app .toolbar select,
.app .panel input:not([type="checkbox"]):not([type="radio"]),
.app .panel select{
  padding-top:0;
  padding-bottom:0;
  line-height:normal;
  border-radius:8px;
}
.app .role-control select{
  padding-left:12px;
  padding-right:34px;
}
.app .user-admin-row>.badge,
.app .school-year-row>.badge,
.app .row-actions>.button,
.app .toolbar-actions>.button{
  align-self:center;
}

/* v20.19.5 unified control alignment */
.app .user-admin-row,
.app .school-year-row{
  align-items:end;
}
.app .user-admin-row>span:first-child,
.app .school-year-row>span:first-child{
  align-self:center;
}
.app .user-admin-row>.role-control,
.app .school-year-row>label,
.app .user-admin-row>.badge,
.app .school-year-row>.badge,
.app .user-admin-row>.row-actions,
.app .school-year-row>.row-actions{
  align-self:end;
}
.app .row-actions{
  min-height:var(--control-height);
  display:flex;
  align-items:flex-end;
}
.app .row-actions>.button,
.app .user-admin-row>.badge,
.app .school-year-row>.badge,
.app .role-control select{
  margin:0;
  vertical-align:top;
}
.app .role-control{
  align-content:end;
}
@media(max-width:1100px){
  .app .user-admin-row,
  .app .school-year-row{
    align-items:start;
  }
  .app .user-admin-row>span:first-child,
  .app .school-year-row>span:first-child,
  .app .user-admin-row>.role-control,
  .app .school-year-row>label,
  .app .user-admin-row>.badge,
  .app .school-year-row>.badge,
  .app .user-admin-row>.row-actions,
  .app .school-year-row>.row-actions{
    align-self:start;
  }
}

/* v20.19.6 connected control groups */
@media(min-width:1101px){
  .app .user-admin-row{
    column-gap:0;
  }
  .app .user-admin-row>.role-control{
    margin-left:12px;
  }
  .app .user-admin-row>.role-control select{
    border-radius:8px 0 0 8px;
  }
  .app .user-admin-row>.badge{
    margin-left:-1px;
    border-radius:0;
  }
  .app .user-admin-row>.row-actions{
    gap:0;
  }
  .app .user-admin-row>.row-actions>.button{
    margin-left:-1px;
    border-radius:0;
  }
  .app .user-admin-row>.row-actions>.button:last-child{
    border-radius:0 8px 8px 0;
  }
}


/* v20.19.7 consistent spacing and rounded controls */
.app .user-admin-row{
  grid-template-columns:minmax(260px,1fr) auto;
  align-items:center;
  column-gap:20px;
}
.app .user-admin-controls{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:10px;
  min-width:0;
}
.app .user-admin-controls>.role-control{
  width:min(420px,32vw);
  min-width:240px;
  margin:0;
}
.app .user-admin-controls>.badge,
.app .user-admin-controls>.row-actions,
.app .user-admin-controls>.row-actions>.button{
  margin:0;
}
.app .user-admin-controls>.row-actions{
  display:flex;
  align-items:flex-end;
  justify-content:flex-start;
  gap:10px;
}
.app .user-admin-controls .role-control select,
.app .user-admin-controls>.badge,
.app .user-admin-controls>.row-actions>.button{
  border-radius:8px;
}
/* Keep controls individually rounded across the staff program. */
.app button,
.app .button,
.app .badge,
.app input:not([type="checkbox"]):not([type="radio"]),
.app select,
.app textarea,
.app .search{
  border-radius:8px;
}
@media(max-width:1350px){
  .app .user-admin-row{grid-template-columns:1fr;}
  .app .user-admin-controls{justify-content:flex-start;flex-wrap:wrap;}
  .app .user-admin-controls>.role-control{width:min(100%,460px);}
}
@media(max-width:700px){
  .app .user-admin-controls{display:grid;grid-template-columns:1fr;gap:10px;}
  .app .user-admin-controls>.role-control{width:100%;min-width:0;}
  .app .user-admin-controls>.badge{justify-self:start;}
  .app .user-admin-controls>.row-actions{flex-wrap:wrap;}
}


/* v20.20.2 compact checkbox controls */
.app .drawer .checkbox-field{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:10px;
  width:max-content;
  max-width:100%;
  min-height:38px;
  margin:0;
  color:var(--ink);
  font-size:12px;
  font-weight:750;
  cursor:pointer;
}
.app .drawer .checkbox-field input[type="checkbox"]{
  appearance:auto;
  -webkit-appearance:checkbox;
  width:18px;
  height:18px;
  min-width:18px;
  min-height:18px;
  max-width:18px;
  max-height:18px;
  margin:0;
  padding:0;
  flex:0 0 18px;
  border-radius:4px;
  accent-color:var(--navy);
  cursor:pointer;
}
.app .drawer .checkbox-field span{
  display:inline;
  line-height:1.35;
}


/* v20.20.3 separate administration views and reliable compact checkbox */
.app .panel-subsection{padding:20px 24px 24px;border-top:1px solid var(--border)}
.app .panel-subsection h3{margin:0 0 12px;color:var(--ink);font-size:16px}
.app .drawer label.checkbox-field{
  position:relative;
  display:inline-flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;
  width:auto !important;
  min-height:28px !important;
  margin:0 !important;
  cursor:pointer;
}
.app .drawer label.checkbox-field input.compact-checkbox[type="checkbox"]{
  position:absolute !important;
  opacity:0 !important;
  pointer-events:none;
  width:1px !important;
  height:1px !important;
  min-width:1px !important;
  min-height:1px !important;
  margin:0 !important;
  padding:0 !important;
}
.app .drawer label.checkbox-field span{
  position:relative;
  display:inline-flex !important;
  align-items:center;
  gap:10px;
  min-height:24px;
  line-height:1.35;
}
.app .drawer label.checkbox-field span::before{
  content:"";
  width:18px;
  height:18px;
  flex:0 0 18px;
  border:1.5px solid #8b8b8b;
  border-radius:4px;
  background:#fff;
  box-shadow:inset 0 0 0 2px #fff;
}
.app .drawer label.checkbox-field input.compact-checkbox:checked + span::before{
  border-color:var(--navy);
  background:var(--navy);
}
.app .drawer label.checkbox-field input.compact-checkbox:checked + span::after{
  content:"";
  position:absolute;
  left:5px;
  top:5px;
  width:7px;
  height:4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg);
}
.app .drawer label.checkbox-field input.compact-checkbox:focus-visible + span::before{
  outline:3px solid rgba(214,158,46,.55);
  outline-offset:2px;
}


/* v20.20.4 compact decision checkbox and full-height audit page */
.app .drawer label.decision-checkbox-control{
  display:inline-flex !important;
  grid-template-columns:none !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:9px !important;
  width:max-content !important;
  max-width:100% !important;
  min-height:24px !important;
  margin:0 !important;
  padding:0 !important;
  cursor:pointer;
}
.app .drawer label.decision-checkbox-control>input[type="checkbox"]{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  min-width:1px !important;
  min-height:1px !important;
  max-width:1px !important;
  max-height:1px !important;
  margin:-1px !important;
  padding:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  border:0 !important;
  opacity:0 !important;
}
.app .drawer .decision-checkbox-box{
  position:relative;
  display:inline-block !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  max-width:18px !important;
  max-height:18px !important;
  flex:0 0 18px !important;
  margin:0 !important;
  padding:0 !important;
  border:1.5px solid #7f8790 !important;
  border-radius:4px !important;
  background:#fff !important;
  box-sizing:border-box !important;
}
.app .drawer .decision-checkbox-label{
  display:inline !important;
  width:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1.35 !important;
}
.app .drawer label.decision-checkbox-control>input[type="checkbox"]:checked + .decision-checkbox-box{
  border-color:var(--navy) !important;
  background:var(--navy) !important;
}
.app .drawer label.decision-checkbox-control>input[type="checkbox"]:checked + .decision-checkbox-box::after{
  content:"";
  position:absolute;
  left:4px;
  top:4px;
  width:7px;
  height:4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg);
}
.app .drawer label.decision-checkbox-control>input[type="checkbox"]:focus-visible + .decision-checkbox-box{
  outline:3px solid rgba(214,158,46,.55);
  outline-offset:2px;
}
.app .audit-panel{
  height:calc(100vh - 182px);
  min-height:520px;
  display:flex;
  flex-direction:column;
}
.app .audit-panel .audit-list{
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  overflow-y:auto;
}
@media(max-width:700px){
  .app .audit-panel{height:calc(100vh - 150px);min-height:420px;}
}


/* v20.20.5 isolated compact admissions-decision control */
.app .drawer .decision-checkbox-control{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;
  width:auto !important;
  min-height:24px !important;
  margin:0 !important;
  padding:0 !important;
}
.app .drawer .decision-check-button{
  appearance:none !important;
  -webkit-appearance:none !important;
  display:inline-grid !important;
  place-items:center !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  max-width:18px !important;
  max-height:18px !important;
  flex:0 0 18px !important;
  margin:0 !important;
  padding:0 !important;
  border:1.5px solid #7f8790 !important;
  border-radius:4px !important;
  background:#fff !important;
  box-shadow:none !important;
  cursor:pointer !important;
  overflow:visible !important;
}
.app .drawer .decision-check-button[aria-pressed="true"]{
  border-color:var(--navy) !important;
  background:var(--navy) !important;
}
.app .drawer .decision-check-button[aria-pressed="true"]::after{
  content:"";
  width:7px;
  height:4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:translateY(-1px) rotate(-45deg);
}
.app .drawer .decision-check-button:focus-visible{
  outline:3px solid rgba(214,158,46,.55) !important;
  outline-offset:2px !important;
}
.app .drawer .decision-checkbox-label{
  display:inline !important;
  width:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  color:var(--ink) !important;
  font-size:12px !important;
  font-weight:750 !important;
  line-height:1.35 !important;
}


/* v20.20.6 native admissions-decision checkbox and clearer role guidance */
.app .drawer label.decision-native-control{
  display:flex !important;
  grid-template-columns:none !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;
  width:max-content !important;
  min-height:24px !important;
  margin:0 !important;
  padding:0 !important;
  color:var(--ink) !important;
  font-size:14px !important;
  font-weight:650 !important;
  line-height:1.35 !important;
  cursor:pointer !important;
}
.app .drawer input.decision-native-checkbox[type="checkbox"]{
  -webkit-appearance:checkbox !important;
  appearance:auto !important;
  display:inline-block !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  max-width:18px !important;
  max-height:18px !important;
  flex:0 0 18px !important;
  margin:0 !important;
  padding:0 !important;
  border:initial !important;
  border-radius:initial !important;
  background:initial !important;
  box-shadow:none !important;
  accent-color:var(--navy);
  cursor:pointer !important;
}
.app .drawer .account-role-help{
  display:block !important;
  margin-top:2px !important;
  color:var(--muted) !important;
  font-size:14px !important;
  font-weight:650 !important;
  line-height:1.45 !important;
}


/* v20.20.7 definitive native checkbox reset and matched guidance text */
.app .drawer .decision-option-row{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;
  width:100% !important;
  min-height:24px !important;
  margin:0 !important;
  padding:0 !important;
}
.app .drawer .decision-option-row input.decision-native-checkbox[type="checkbox"]{
  all:revert !important;
  -webkit-appearance:checkbox !important;
  appearance:auto !important;
  box-sizing:border-box !important;
  display:inline-block !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  max-width:18px !important;
  max-height:18px !important;
  flex:0 0 18px !important;
  margin:0 !important;
  padding:0 !important;
  vertical-align:middle !important;
  accent-color:var(--navy) !important;
  cursor:pointer !important;
}
.app .drawer .decision-option-row label.decision-option-label,
.app .drawer .account-role-help{
  display:inline-block !important;
  width:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  color:var(--ink) !important;
  font-size:14px !important;
  font-weight:650 !important;
  line-height:1.4 !important;
  letter-spacing:normal !important;
  text-transform:none !important;
}
.app .drawer .decision-option-row label.decision-option-label{
  cursor:pointer !important;
}
.app .drawer .account-role-help{
  margin-top:4px !important;
}


/* v20.20.8 final invitation checkbox correction */
.app .drawer .decision-option-row{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;
  width:100% !important;
  min-height:24px !important;
  margin:0 !important;
  padding:0 !important;
}
.app .drawer .decision-option-row > input#invite-decision-maker[type="checkbox"]{
  appearance:auto !important;
  -webkit-appearance:checkbox !important;
  display:inline-block !important;
  box-sizing:border-box !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  max-width:18px !important;
  max-height:18px !important;
  margin:0 !important;
  padding:0 !important;
  flex:0 0 18px !important;
  border:initial !important;
  border-radius:initial !important;
  background:initial !important;
  box-shadow:none !important;
  vertical-align:middle !important;
  accent-color:var(--navy) !important;
}
.app .drawer .decision-option-row > label.decision-option-label,
.app .drawer .account-role-help{
  color:var(--ink) !important;
  font-size:16px !important;
  font-weight:650 !important;
  line-height:1.4 !important;
  letter-spacing:normal !important;
  text-transform:none !important;
}

/* v20.20.9 audit log header and typography correction */
.app .audit-panel{
  overflow:hidden;
}
.app .audit-panel .panel-head{
  flex:0 0 auto;
  min-height:0;
  align-items:flex-start;
  padding:28px 24px 22px;
  overflow:visible;
}
.app .audit-panel .panel-head > div{
  min-width:0;
  overflow:visible;
}
.app .audit-panel .panel-head .eyebrow{
  display:block;
  margin:0 0 6px;
  padding:1px 0 0;
  line-height:1.25;
  overflow:visible;
}
.app .audit-panel .panel-head h2{
  margin:0;
}
.app .audit-panel .panel-head .muted{
  margin:12px 0 0;
}
.app .audit-panel .audit-list > div{
  font-size:12px;
  line-height:1.45;
}
.app .audit-panel .audit-list strong,
.app .audit-panel .audit-list span,
.app .audit-panel .audit-list small{
  font-size:12px;
  line-height:1.45;
}
.app .audit-panel .audit-list strong{
  font-weight:750;
}
.app .audit-panel .audit-list span,
.app .audit-panel .audit-list small{
  font-weight:400;
}

/* v20.21 compact Book a Tour form */
.public-form-page{
  padding:20px;
  background:linear-gradient(180deg,#eef3f8 0,#f7f8fa 260px);
}
.public-form-shell{
  width:min(800px,100%);
  border-top-width:5px;
  border-radius:14px;
  box-shadow:0 14px 38px rgba(43,45,49,.10);
}
.public-form-brand{
  grid-template-columns:175px 1fr;
  gap:22px;
  padding:22px 26px;
  border-bottom-width:3px;
}
.public-form-brand img{max-height:125px;object-fit:contain}
.public-form-brand h1{margin:2px 0 5px;font-size:29px;line-height:1.15}
.public-form-brand p{font-size:14px;line-height:1.45}
.public-form-brand .eyebrow{font-size:11px;letter-spacing:.13em}
.public-tour-form{
  gap:14px;
  padding:20px 24px 24px;
}
.public-tour-form section{
  gap:11px;
  padding:16px 18px;
  border-radius:10px;
  box-shadow:0 3px 11px rgba(43,45,49,.045);
}
.public-tour-form section h2{
  margin:0 0 1px;
  padding-bottom:7px;
  border-bottom-width:2px;
  font-size:17px;
}
.public-tour-form label{gap:5px;font-size:12px}
.public-tour-form input,
.public-tour-form select,
.public-tour-form textarea{
  min-height:40px;
  padding:8px 10px;
  border-radius:8px;
  font-size:14px;
}
.public-tour-form textarea{min-height:82px}
.public-tour-form .form-grid{gap:12px}
.public-tour-form .child-card{
  gap:10px;
  margin-top:8px;
  padding:13px 14px;
  border-radius:9px;
  background:#f9fbfd;
}
.public-tour-form .child-card h3{font-size:13px;color:var(--navy)}
.public-tour-form .compact-field{max-width:230px}
.public-tour-form .time-picker{gap:6px}
.public-tour-form .time-picker select{min-width:0;padding-left:8px;padding-right:24px}
.public-tour-form .form-help{margin:0;font-size:12px;line-height:1.45;color:var(--muted)}
.public-submit{
  justify-self:end;
  min-width:185px;
  min-height:42px;
  padding:0 20px;
  border-radius:9px;
}
.public-success{padding:38px 30px}
.public-error{margin:18px 24px 0}
@media(max-width:700px){
  .public-form-page{padding:0}
  .public-form-shell{border-radius:0}
  .public-form-brand{grid-template-columns:120px 1fr;gap:15px;padding:18px}
  .public-form-brand h1{font-size:24px}
  .public-form-brand p{font-size:13px}
  .public-tour-form{gap:12px;padding:14px}
  .public-tour-form section{padding:14px}
  .public-tour-form .form-grid{grid-template-columns:1fr}
  .public-tour-form .compact-field{max-width:none}
  .public-submit{width:100%;justify-self:stretch}
}
@media(max-width:480px){
  .public-form-brand{grid-template-columns:1fr;text-align:center}
  .public-form-brand img{max-width:180px;margin:0 auto}
}


/* v20.21.1 parent grade-placement review */
.parent-grade-review{display:grid;gap:10px;padding:13px 14px;border:1px solid #d7dee6;border-radius:10px;background:#f7f9fb}
.public-tour-form .public-check-row{display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.4;cursor:pointer}
.public-tour-form .public-check-row input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;max-height:18px!important;margin:0!important;padding:0!important;flex:0 0 18px;border-radius:3px}
.grade-review-details{display:grid;gap:7px;padding-top:2px}
.grade-review-details[hidden]{display:none!important}
.grade-review-details textarea{min-height:72px}


/* v20.21.2 live BC grade-to-birthdate validation */
.grade-birthdate-live{display:none;margin-top:9px;padding:9px 11px;border-radius:8px;font-size:13px;font-weight:700;line-height:1.35}
.grade-birthdate-live.is-valid,.grade-birthdate-live.is-review{display:block}
.grade-birthdate-live.is-valid{border:1px solid #c6d8c5;background:#edf5eb;color:#3f6b4e}
.grade-birthdate-live.is-review{border:1px solid #e6d09c;background:#fff7df;color:#7a5713}
.parent-grade-review[hidden]{display:none!important}
.parent-grade-review.is-needed{display:grid}

/* v20.21.5: automatic grade-placement explanation */
.parent-grade-review .grade-review-message{margin:0;font-size:13px;line-height:1.45;color:var(--ink)}
.parent-grade-review .grade-review-message strong{font-weight:700}

/* v20.21.8: prevent table headers, badges, and secondary details from overlapping or being clipped. */
.table-head > *,
.table-row > * {
  min-width: 0;
}
.table-head > span,
.table-row > span,
.table-row strong,
.table-row small {
  overflow-wrap: anywhere;
  word-break: normal;
}
.table-row .badge {
  width: fit-content;
  max-width: 100%;
  min-width: 0;
  white-space: normal;
  line-height: 1.25;
  text-align: center;
  justify-content: center;
}
/* The current applications view has six cells. Do not reserve the removed bulk-select column. */
.applications-table .table-head,
.applications-table .table-row {
  grid-template-columns:
    minmax(175px, 1.25fr)
    minmax(145px, .9fr)
    minmax(130px, .95fr)
    minmax(175px, 1.3fr)
    minmax(125px, .9fr)
    minmax(105px, .7fr);
}
.tours-table .table-head,
.tours-table .table-row {
  grid-template-columns:
    minmax(155px, 1.2fr)
    minmax(135px, 1.1fr)
    minmax(145px, 1fr)
    minmax(120px, .8fr)
    minmax(155px, 1.1fr)
    minmax(120px, .9fr);
}
.simple-table .table-head,
.simple-table .table-row {
  grid-template-columns:
    minmax(165px, 1.2fr)
    minmax(120px, 1fr)
    minmax(145px, 1.15fr)
    minmax(115px, .9fr)
    minmax(155px, 1.2fr);
}
.table-row {
  height: auto;
  overflow: visible;
}
.table-head {
  overflow: visible;
}

.nav-section{padding:16px 18px 6px;font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--sage)}.calendar-links{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 18px}.calendar-links a{padding:9px 12px;border-radius:8px;background:#eef3f8;color:var(--navy);font-weight:700;text-decoration:none}.availability-grid,.capacity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.availability-card,.capacity-card{border:1px solid #dfe5ea;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:7px;background:#fff}.availability-card strong{text-transform:capitalize}.link-button{border:0;background:none;color:var(--navy);text-align:left;padding:0;cursor:pointer;font-weight:700}.capacity-meter{height:9px;background:#edf0f2;border-radius:9px;overflow:hidden}.capacity-meter i{display:block;height:100%;background:var(--sage)}.capacity-stats{display:flex;justify-content:space-between}.capacity-stats b{font-size:20px;color:var(--navy)}.settings-list{display:grid;gap:12px}.settings-list article{padding:14px;border:1px solid #e0e4e8;border-radius:10px}.settings-list code{display:block;margin-top:7px;white-space:normal;word-break:break-all;color:var(--ink)}


/* v20.28.3 operational workspace redesign */
.workspace-layout{display:grid;grid-template-columns:285px minmax(0,1fr);gap:20px;align-items:start}.workspace-main{min-width:0}.workspace-panel{overflow:hidden}.workspace-header{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--border);background:linear-gradient(120deg,#fff 0%,#f3f7fb 100%)}.workspace-header h2{margin:4px 0 0;font-size:24px}.workspace-header .muted{max-width:760px;margin:8px 0 0;line-height:1.45}.header-chip{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 12px;border:1px solid #c7d4e2;border-radius:999px;background:#edf3f8;color:var(--navy);font-size:12px;font-weight:800;white-space:nowrap}.workspace-guide{position:sticky;top:22px;overflow:hidden;border:1px solid var(--border);border-top:5px solid var(--navy);border-radius:14px;background:#fff;box-shadow:var(--shadow);padding:22px}.workspace-guide.gold{border-top-color:var(--gold)}.workspace-guide.sage{border-top-color:var(--sage)}.guide-kicker{margin:0 0 6px;color:var(--navy);font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.workspace-guide h3{margin:0;color:var(--ink);font-size:19px}.workspace-guide>p:not(.guide-kicker){margin:10px 0 16px;color:var(--muted);font-size:12px;line-height:1.55}.workspace-guide ol{display:grid;gap:12px;margin:0;padding:0;list-style:none;counter-reset:guide}.workspace-guide li{position:relative;min-height:28px;padding-left:38px;color:var(--ink);font-size:12px;line-height:1.45;counter-increment:guide}.workspace-guide li:before{content:counter(guide);position:absolute;left:0;top:-2px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--navy);color:#fff;font-size:11px;font-weight:800}.workspace-guide.gold li:before{background:var(--gold2)}.workspace-guide.sage li:before{background:var(--sage)}
.sheet-table{width:100%;overflow:auto;background:#fff}.sheet-head,.sheet-row{display:grid;align-items:center;gap:14px;min-width:960px}.sheet-head{position:sticky;top:0;z-index:2;min-height:42px;padding:0 20px;border-bottom:1px solid #cfd8e2;background:#edf3f8;color:var(--ink);font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.sheet-row{min-height:54px;padding:8px 20px;border-bottom:1px solid #e3e8ed;background:#fff;color:var(--ink);font-size:12px}.sheet-row:nth-child(odd){background:#fbfcfd}.sheet-row:hover{background:#f1f6fa}.sheet-row>*,.sheet-head>*{min-width:0}.sheet-row strong{display:block;font-size:12px}.sheet-row small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.primary-cell{min-width:0}.clip-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-cell{white-space:nowrap;font-variant-numeric:tabular-nums}.sheet-toolbar{display:flex;gap:10px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);background:#fff}.sheet-toolbar .search{width:min(460px,60%)}.sheet-toolbar select{min-height:44px;padding:0 12px;border:1px solid #d2c5b3;border-radius:8px;background:#fff;color:var(--ink)}
.work-sheet .sheet-head,.work-sheet .sheet-row{grid-template-columns:minmax(180px,1.3fr) minmax(130px,.8fr) minmax(210px,1.35fr) minmax(125px,.75fr) minmax(105px,.65fr)}.calendar-sheet .sheet-head,.calendar-sheet .sheet-row{grid-template-columns:minmax(190px,1.2fr) minmax(175px,1fr) minmax(130px,.75fr) minmax(180px,1fr) minmax(100px,.55fr) minmax(90px,.45fr)}.availability-sheet .sheet-head,.availability-sheet .sheet-row{grid-template-columns:minmax(135px,.8fr) minmax(150px,.9fr) minmax(155px,.85fr) minmax(220px,1.3fr) minmax(90px,.5fr)}.document-sheet .sheet-head,.document-sheet .sheet-row{grid-template-columns:minmax(170px,1fr) minmax(260px,1.55fr) minmax(135px,.8fr) minmax(150px,.8fr) minmax(145px,.75fr)}.enrollment-sheet .sheet-head,.enrollment-sheet .sheet-row{grid-template-columns:minmax(190px,1.15fr) minmax(105px,.55fr) minmax(155px,.9fr) minmax(225px,1.25fr) minmax(260px,1.5fr)}.grade-band{min-width:960px;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px;padding:7px 20px;border-top:2px solid var(--navy);border-bottom:1px solid #ccd7e3;background:linear-gradient(90deg,#dfeaf4,#eef4f8);color:var(--navy);font-size:13px;font-weight:850}.grade-band small{color:#5f6f80;font-size:10px;font-weight:750}.enrollment-row .badge{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-links{padding:14px 20px 0}.calendar-links a{border:1px solid #cbd8e5;background:#edf3f8}.stack .workspace-panel+.workspace-panel{margin-top:0}
@media(max-width:1180px){.workspace-layout{grid-template-columns:1fr}.workspace-guide{position:static;display:grid;grid-template-columns:190px 1fr;gap:14px;align-items:start}.workspace-guide>p:not(.guide-kicker){grid-column:1}.workspace-guide ol{grid-column:2;grid-row:1/4}.guide-kicker,.workspace-guide h3{grid-column:1}}@media(max-width:700px){.workspace-header{align-items:flex-start;flex-direction:column}.workspace-guide{display:block}.workspace-guide ol{margin-top:14px}.sheet-toolbar{align-items:stretch;flex-direction:column}.sheet-toolbar .search{width:100%}.sheet-head,.sheet-row,.grade-band{min-width:850px}}


/* v20.28.4 left-side guidance and enrollment capacity summary */
.enrollment-capacity-summary{margin-bottom:20px;overflow:hidden}.capacity-summary-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid var(--border);background:linear-gradient(120deg,#fff 0%,#f3f7fb 100%)}.capacity-summary-top h3{margin:4px 0 0;color:var(--ink);font-size:22px}.capacity-total-cards{display:flex;gap:10px;flex-wrap:wrap}.capacity-total-cards article{min-width:126px;padding:11px 14px;border:1px solid #cbd8e5;border-radius:10px;background:#fff}.capacity-total-cards span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.capacity-total-cards strong{display:block;margin-top:3px;color:var(--navy);font-size:22px}.capacity-total-cards article.warning{border-color:var(--gold);background:#fff8e9}.capacity-total-cards article.warning strong{color:#9a6512}.capacity-summary-table{overflow:auto}.capacity-summary-head,.capacity-summary-row{display:grid;grid-template-columns:minmax(180px,1.2fr) repeat(3,minmax(95px,.65fr));align-items:center;gap:12px;min-width:620px;padding:0 20px}.capacity-summary-head{min-height:38px;background:var(--navy);color:#fff;font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.capacity-summary-row{min-height:38px;border-bottom:1px solid #e3e8ed;font-size:12px}.capacity-summary-row:nth-child(odd){background:#fbfcfd}.capacity-summary-row .available-cell{font-weight:850;color:#557b64}.capacity-summary-row.over-capacity{background:#fff3e1}.capacity-summary-row.over-capacity .available-cell{color:#a45f00}.workspace-guide{grid-column:1}.workspace-main{grid-column:2}.enrollment-capacity-summary+.enrollment-panel{margin-top:0}
@media(max-width:1180px){.workspace-layout{grid-template-columns:1fr}.workspace-guide,.workspace-main{grid-column:1}.workspace-guide{order:1}.workspace-main{order:2}.capacity-summary-top{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.capacity-total-cards{width:100%}.capacity-total-cards article{flex:1;min-width:100px}}

/* LCA Admissions v20.28.5: full-width workspace instructions above content */
.workspace-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:20px;
  align-items:start;
}
.workspace-guide,
.workspace-main{
  grid-column:1;
  min-width:0;
}
.workspace-guide{
  position:static;
  display:grid;
  grid-template-columns:minmax(190px,260px) minmax(0,1fr);
  column-gap:28px;
  row-gap:6px;
  align-items:start;
  width:100%;
  padding:20px 24px;
}
.workspace-guide .guide-kicker,
.workspace-guide h3,
.workspace-guide>p:not(.guide-kicker){
  grid-column:1;
}
.workspace-guide>p:not(.guide-kicker){
  margin:6px 0 0;
}
.workspace-guide ol{
  grid-column:2;
  grid-row:1 / span 3;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:12px 18px;
  align-self:center;
}
.workspace-guide li{
  min-height:32px;
  padding:5px 0 5px 38px;
}
.workspace-main{grid-row:2}
@media(max-width:820px){
  .workspace-guide{display:block;padding:20px}
  .workspace-guide ol{display:grid;grid-template-columns:1fr;margin-top:16px}
}

.day-checkbox-field{border:1px solid #d8e0e7;border-radius:10px;padding:14px;margin:0}.day-checkbox-field legend{padding:0 6px;font-weight:800;color:var(--ink)}.day-checkbox-field .form-help{margin:0 0 10px}.day-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.day-checkbox-grid label{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 10px;border:1px solid #dfe5ea;border-radius:8px;background:#f8fafb;cursor:pointer}.day-checkbox-grid input{width:18px;height:18px;margin:0;accent-color:var(--navy)}.day-checkbox-grid label:has(input:checked){border-color:var(--sage);background:#edf4ef}.day-checkbox-grid span{font-weight:700}


/* v20.28.7 family documents, clickable grade planning, and roomier capacity cards */
.document-family-sheet .sheet-head,.document-family-row{grid-template-columns:minmax(220px,.9fr) minmax(420px,2fr) minmax(80px,.3fr)}
.document-family-row{align-items:start;cursor:pointer;padding-top:16px;padding-bottom:16px}
.document-family-row:hover{background:var(--pale)}
.document-family-files{display:grid;gap:8px;min-width:0}
.document-file-link{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;padding:10px 12px;border:1px solid #d8e2eb;border-radius:9px;background:#fff;color:var(--ink);text-decoration:none}
.document-file-link:hover{border-color:var(--navy);background:#f3f7fb}
.document-file-link span:first-child{min-width:0}
.document-file-link strong,.document-file-link small{display:block;overflow-wrap:anywhere}
.document-file-link small{margin-top:3px;color:var(--muted);font-size:10px}
.document-file-link>span:last-child{flex:0 0 auto;color:var(--navy);font-size:11px;font-weight:800}
.document-count-badge{justify-self:end;white-space:nowrap;padding:6px 9px;border-radius:999px;background:#edf3f8;color:var(--navy);font-size:11px;font-weight:800}
.capacity-summary-row.capacity-grade-link{width:100%;border:0;border-bottom:1px solid #e3e8ed;text-align:left;font:inherit;color:inherit;cursor:pointer}
.capacity-summary-row.capacity-grade-link:hover,.capacity-summary-row.capacity-grade-link:focus-visible{background:#edf4fa;outline:none}
.capacity-summary-row.capacity-grade-link small{display:block;margin-top:2px;color:var(--navy);font-size:9px;font-weight:750}
.capacity-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px;padding:0 20px 22px}
.capacity-card{min-width:0;gap:14px;padding:20px}
.capacity-card-heading{display:grid;gap:5px;min-width:0}
.capacity-card-heading strong{font-size:19px;line-height:1.25;overflow-wrap:anywhere}
.capacity-card-heading small{display:block;color:var(--muted);font-size:13px;line-height:1.35}
.capacity-card-heading small b{color:var(--ink);font-size:15px}
.capacity-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.capacity-stats span{display:flex;align-items:baseline;gap:7px;min-width:0;white-space:normal}
.capacity-stats b{font-size:24px;line-height:1}
.capacity-stats em{font-style:normal;color:var(--ink);font-size:13px;overflow-wrap:anywhere}
@media(max-width:760px){.document-family-sheet .sheet-head,.document-family-row{grid-template-columns:minmax(170px,.8fr) minmax(320px,1.8fr) 70px}.capacity-grid{grid-template-columns:1fr;padding:0 14px 16px}}

/* v20.28.8: improve spacing in School-wide Planning enrollment summary */
.enrollment-capacity-summary{margin-bottom:28px}
.capacity-summary-top{padding:26px 28px;gap:30px}
.capacity-summary-top>div:first-child{min-width:260px}
.capacity-summary-top h3{margin-top:6px;font-size:24px;line-height:1.2}
.capacity-total-cards{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:12px;width:min(100%,500px);flex:0 1 500px}
.capacity-total-cards article{min-width:0;padding:14px 16px;border-radius:12px}
.capacity-total-cards span{font-size:10px;line-height:1.25}
.capacity-total-cards strong{margin-top:5px;font-size:24px;line-height:1.1}
.capacity-summary-head,.capacity-summary-row{grid-template-columns:minmax(250px,1.35fr) repeat(3,minmax(115px,.75fr));gap:24px;min-width:760px;padding-left:28px;padding-right:28px}
.capacity-summary-head{min-height:46px;font-size:11px}
.capacity-summary-row{min-height:54px;font-size:14px;line-height:1.25}
.capacity-summary-row>span:not(:first-child){justify-self:start}
.capacity-summary-row.capacity-grade-link small{margin-top:4px;font-size:10px;line-height:1.2}
.capacity-summary-row.capacity-grade-link strong{font-size:16px;line-height:1.2}
.enrollment-capacity-summary+.enrollment-panel{margin-top:28px}
@media(max-width:900px){
  .capacity-summary-top{padding:22px}
  .capacity-total-cards{width:100%;grid-template-columns:repeat(3,minmax(115px,1fr))}
  .capacity-summary-head,.capacity-summary-row{padding-left:20px;padding-right:20px;gap:18px}
}
@media(max-width:620px){
  .capacity-total-cards{grid-template-columns:1fr}
  .capacity-summary-top>div:first-child{min-width:0}
}

.enrollment-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(170px,240px) auto;align-items:center;gap:12px}.enrollment-back-top{white-space:nowrap;background:var(--navy)!important;border-color:var(--navy)!important;color:#fff!important;box-shadow:0 4px 12px rgba(47,88,139,.24)}.enrollment-back-top:hover{background:#24466f!important;border-color:#24466f!important}.enrollment-back-top[hidden]{display:none}@media(max-width:760px){.enrollment-toolbar{grid-template-columns:1fr}.enrollment-back-top{width:100%}}

/* v20.28.11 editable enrollment fields */
.inline-enrollment-select{width:100%;min-width:145px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;font:inherit;font-size:.86rem}.inline-enrollment-note{width:100%;min-height:42px;resize:vertical;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;font:inherit;font-size:.86rem}.inline-enrollment-select:focus,.inline-enrollment-note:focus{outline:3px solid rgba(47,88,139,.18);border-color:var(--navy)}


/* v20.28.13 enrollment manual override */
.enrollment-note-actions{display:grid;grid-template-columns:minmax(190px,1fr) auto;align-items:center;gap:10px}.enrollment-override-button{min-width:92px;background:#b42318!important;border-color:#b42318!important;color:#fff!important;box-shadow:0 3px 9px rgba(180,35,24,.2)}.enrollment-override-button:hover{background:#8f1c13!important;border-color:#8f1c13!important}.enrollment-override-button.active{outline:3px solid rgba(180,35,24,.18)}.override-explanation{display:grid;gap:4px;padding:14px 16px;border:1px solid #f0b5af;border-radius:12px;background:#fff5f4;color:#7a271a}.override-explanation span{font-size:.88rem;line-height:1.45}.enrollment-row .badge{display:inline-flex;max-width:100%;white-space:normal;line-height:1.2}.enrollment-sheet .sheet-head,.enrollment-sheet .sheet-row{grid-template-columns:minmax(190px,1.05fr) minmax(105px,.5fr) minmax(155px,.8fr) minmax(205px,1.05fr) minmax(360px,1.8fr)}
@media(max-width:1050px){.enrollment-note-actions{grid-template-columns:1fr}.enrollment-override-button{justify-self:start}}


/* v20.28.14 compact, nested sidebar navigation */
.sidebar{height:100vh;overflow:hidden;padding:18px 14px 12px}
.brand-lockup{padding:6px;flex:0 0 auto}
.brand-lockup img{max-height:72px;object-fit:contain}
.product-label{margin:12px 8px 10px;padding-top:10px;flex:0 0 auto}
.sidebar nav{display:block;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 3px 8px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.38) transparent}
.sidebar nav::-webkit-scrollbar{width:7px}.sidebar nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.32);border-radius:999px}.sidebar nav::-webkit-scrollbar-track{background:transparent}
.nav-section-static{padding:9px 12px 5px}
.nav-items{display:grid;gap:3px;padding:3px 0 7px}
.sidebar nav button{min-height:40px;padding:0 12px;gap:11px;border-radius:8px;font-size:13px}
.sidebar nav button>span{width:19px;font-size:17px}
.sidebar nav button.active:before{top:6px;bottom:6px}
.nav-group{margin:4px 0;border-radius:9px}
.nav-group>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px 7px;color:#9fb39f;font-size:10px;font-weight:800;letter-spacing:.12em;cursor:pointer;user-select:none}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary i{font-style:normal;font-size:15px;line-height:1;transition:transform .18s ease;color:#d7e0e8}
.nav-group[open]>summary i{transform:rotate(180deg)}
.nav-group>summary:hover,.nav-group>summary:focus-visible{color:#fff;outline:none}
.nav-group .nav-items{padding-top:0}
.sidebar-bottom{margin-top:6px;padding:9px 8px 0;flex:0 0 auto}
@media(max-height:760px) and (min-width:781px){
  .sidebar{padding-top:10px}.brand-lockup img{max-height:58px}.product-label{margin-top:8px;margin-bottom:6px}.sidebar nav button{min-height:36px}.nav-group>summary{padding-top:8px;padding-bottom:5px}.sidebar-bottom{display:none}
}


/* v20.28.15 workflow and enrollment controls */
.top-actions{flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}
#new-official-application,#print-blank-application{white-space:nowrap}
.clickable-work-row{cursor:pointer;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}
.clickable-work-row:hover,.clickable-work-row:focus-visible{background:#f3f7fc;box-shadow:inset 4px 0 0 var(--navy);outline:none}
.enrollment-bottom-controls{display:flex;justify-content:flex-end;padding:20px;margin:18px 0 0;border:1px solid #d8e0ea;border-radius:16px;background:#f7f9fc}
.enrollment-bottom-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.enrollment-grade-picker select{min-width:210px;height:48px;font-size:16px;font-weight:700}
.enrollment-bottom-button{width:210px;min-height:48px;font-size:16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;text-align:center}
@media(max-width:900px){.enrollment-bottom-actions{width:100%}.enrollment-grade-picker{width:100%}.enrollment-grade-picker select{width:100%}.enrollment-bottom-button{flex:1 1 210px}}
@media(max-width:560px){.enrollment-bottom-controls{padding:14px}.enrollment-bottom-actions{flex-direction:column;align-items:stretch}.enrollment-bottom-button{width:100%}}


/* v20.28.17 compact grade controls and protected credentials */
.enrollment-bottom-controls{padding:12px 14px;margin-top:14px}
.enrollment-bottom-actions{gap:8px}
.enrollment-bottom-button{width:auto;min-width:150px;min-height:34px;height:34px;padding:0 12px;font-size:12px;font-weight:700;border-radius:8px}
.enrollment-grade-select{appearance:auto;cursor:pointer;text-align:left}
.credential-list{display:grid;gap:10px}
.credential-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px;border:1px solid #d8e0ea;border-radius:12px;background:#fff}
.credential-row>div:first-child{display:grid;gap:5px;min-width:0}
.credential-row code{font-size:13px;overflow-wrap:anywhere}
.credential-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.credential-actions .button{min-height:34px;padding:0 11px;font-size:12px}
.credential-status{display:inline-flex;width:max-content;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:800}
.credential-status.configured{background:#e9f3ec;color:#456b51}.credential-status.missing{background:#fff0ed;color:#a83d2c}
.credential-security-note{display:grid;gap:4px;padding:13px 14px;border:1px solid #e2c98e;border-radius:10px;background:#fff9ea;color:#5b4a24}
.credential-security-note span{font-size:13px;line-height:1.45}
@media(max-width:700px){.credential-row{align-items:stretch;flex-direction:column}.credential-actions{justify-content:flex-start}.enrollment-bottom-actions{width:100%}.enrollment-bottom-button{flex:1 1 150px}}

/* v20.28.19: enrollment note counts */
.enrollment-student-cell{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.enrollment-note-pill,.grade-note-pill{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:4px 9px;border:1px solid var(--gold);border-radius:999px;background:#fff7df;color:#76520f;font-size:10px;font-weight:850;line-height:1;white-space:nowrap}
.enrollment-note-pill{cursor:pointer}
.enrollment-note-pill:hover,.enrollment-note-pill:focus-visible{background:#f9e9b7;outline:2px solid rgba(216,167,76,.28);outline-offset:1px}
.grade-note-pill{min-width:68px}
.no-notes{color:#7a8793;font-size:11px}
.capacity-summary-head,.capacity-summary-row{grid-template-columns:minmax(250px,1.35fr) repeat(3,minmax(105px,.68fr)) minmax(95px,.58fr)}
@media(max-width:760px){.capacity-summary-head,.capacity-summary-row{min-width:850px}}


/* v20.28.20 enrollment record editor */
.enrollment-record-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.locked-note-preview{display:flex;align-items:flex-start;gap:7px;min-width:0;color:#64748b;font-size:.78rem;line-height:1.35}.locked-note-preview>span:last-child{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.enrollment-edit-record{white-space:nowrap;font-size:10px;min-height:28px;padding:5px 9px}.enrollment-pill-stack{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.override-indicator{display:inline-flex;padding:3px 6px;border-radius:999px;background:#fee4e2;color:#9b2117;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.enrollment-record-form .detail-block{display:grid;gap:14px}.record-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.record-section-heading h3{margin:0}.record-section-heading p{margin:4px 0 0;color:#64748b;font-size:.84rem;line-height:1.45}.override-switch{display:flex!important;align-items:center;gap:8px;min-width:max-content;padding:7px 10px;border:1px solid #f0b5af;border-radius:999px;background:#fff5f4;color:#8f1c13;font-size:.78rem;font-weight:800}.override-switch input{width:auto}.automatic-status-note{display:grid;gap:3px;padding:11px 13px;border:1px solid #d7e2ec;border-radius:10px;background:#f7fafc}.automatic-status-note span{color:#64748b;font-size:.82rem;line-height:1.4}.protected-note-section textarea[readonly]{background:#f4f6f8;color:#475569;cursor:default}.protected-note-section textarea:not([readonly]){background:#fff;border-color:var(--navy);box-shadow:0 0 0 3px rgba(47,88,139,.12)}.note-lock-label{display:inline-flex;margin-left:6px;padding:3px 7px;border-radius:999px;background:#e9eef3;color:#526273;font-size:9px;font-weight:850;text-transform:uppercase;vertical-align:middle}@media(max-width:1050px){.enrollment-record-actions{grid-template-columns:1fr}.enrollment-edit-record{justify-self:start}}@media(max-width:680px){.record-section-heading{display:grid}.override-switch{justify-self:start}}


/* v20.28.24 Enrollment Register alignment and refined LCA brand hierarchy. */
.enrollment-sheet .sheet-head,.enrollment-sheet .sheet-row{
  grid-template-columns:minmax(190px,1.05fr) 84px minmax(105px,.5fr) minmax(155px,.8fr) minmax(205px,1.05fr) minmax(360px,1.8fr);
}
.enrollment-student-cell{display:block}
.enrollment-notes-cell{display:flex;align-items:center;justify-content:flex-start;min-width:0}
.enrollment-no-notes{color:#8a929d;font-size:10px;font-weight:700}
.enrollment-note-pill{min-width:66px;border-color:var(--gold);background:#fff8e8;color:#6f5318}
.enrollment-note-pill:hover,.enrollment-note-pill:focus-visible{background:#f8edcf}
/* Use the brand palette by function: blue actions, sage success, gold attention, charcoal text. */
.badge.enrollment-confirmed,.badge.confirmed,.badge.accepted,.badge.enrolled,.badge.completed{
  color:#45614f;background:#edf5ef;border-color:#b8cdbf;
}
.badge.pending,.badge.waitlisted,.badge.waiting-for-documents{
  color:#76591f;background:#fbf5e8;border-color:#e4c980;
}
.override-indicator{color:#8b2f25!important;background:#fbe9e6!important;border-color:#e7b8b1!important}
.locked-note-preview{color:#59636f}
.grade-band{border-top-color:var(--navy);background:linear-gradient(90deg,#e7eef6,#f4f7fa)}
.capacity-summary-head{background:var(--navy);color:#fff}
@media(max-width:700px){.enrollment-sheet .sheet-head,.enrollment-sheet .sheet-row{min-width:1040px}}


/* v20.28.25 interface consistency, accessibility, and usability */
:root{
  --lca-blue:#2F588B;
  --lca-blue-dark:#24466f;
  --lca-sage:#7F9C88;
  --lca-gold:#D8A74C;
  --lca-charcoal:#2B2D31;
  --lca-offwhite:#F2F2F2;
  --ui-border:#d8e0e8;
  --ui-muted:#64748b;
  --ui-radius:12px;
  --ui-control-height:40px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{color:var(--lca-charcoal);background:#f5f7fa}
button,input,select,textarea{font:inherit}
button,a,select,input,textarea,[role="button"]{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[role="button"]:focus-visible{
  outline:3px solid rgba(47,88,139,.28)!important;outline-offset:2px!important
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Shared page and section rhythm */
.main-content,.content,.workspace{min-width:0}
.panel,.workspace-panel,.card{border-color:var(--ui-border);border-radius:var(--ui-radius)}
.workspace-panel{overflow:visible}
.workspace-header,.page-header{align-items:flex-start;gap:18px;flex-wrap:wrap}
.workspace-header>div:first-child,.page-header>div:first-child{min-width:0;flex:1 1 420px}
.workspace-header h1,.workspace-header h2,.page-header h1,.page-header h2{line-height:1.18;overflow-wrap:anywhere}
.top-actions,.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.muted,.help-text,.field-help{line-height:1.5}

/* Shared controls */
.button,button.button,input[type="submit"],input[type="button"]{
  min-height:var(--ui-control-height);padding:8px 14px;border-radius:9px;font-size:13px;font-weight:750;line-height:1.2;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;text-align:center;white-space:normal
}
.button.primary,.button:not(.secondary):not(.danger):not(.positive){background:var(--lca-blue);border-color:var(--lca-blue);color:#fff}
.button.primary:hover,.button:not(.secondary):not(.danger):not(.positive):hover{background:var(--lca-blue-dark);border-color:var(--lca-blue-dark)}
.button.secondary{background:#fff;border-color:var(--lca-blue);color:var(--lca-blue)}
.button.secondary:hover{background:#eef4fa}
.button.positive{background:var(--lca-sage);border-color:var(--lca-sage);color:#fff}
.button.danger,.button.sensitive{background:#b42318;border-color:#b42318;color:#fff}
.button.compact{min-height:30px;padding:5px 10px;font-size:11px;border-radius:8px}

/* Forms */
label{line-height:1.35}
input:not([type="checkbox"]):not([type="radio"]),select,textarea{
  min-height:var(--ui-control-height);border:1px solid #cbd5df;border-radius:9px;background:#fff;color:var(--lca-charcoal)
}
textarea{min-height:110px;line-height:1.5;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--lca-blue);box-shadow:0 0 0 3px rgba(47,88,139,.12)}
.required,.required-marker{color:#a52a20;font-weight:850}
.form-grid,.detail-grid{align-items:start}
.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:9px;flex-wrap:wrap;padding-top:18px;margin-top:20px;border-top:1px solid var(--ui-border)}

/* Tables and sheets */
.sheet-table,.table-wrap,.responsive-table{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.sheet-head,.sheet-row{align-items:center}
.sheet-head{font-size:11px;letter-spacing:.035em}
.sheet-row{min-height:52px}
.sheet-head>*,.sheet-row>*{min-width:0;padding-top:10px;padding-bottom:10px;align-self:stretch;display:flex;align-items:center}
.sheet-row:hover{background:#f8fafc}
.sheet-row button,.sheet-row .button{flex-shrink:0}

/* Enrollment Register: stable columns, clean notes, aligned controls */
.enrollment-sheet{overflow-x:auto}
.enrollment-sheet .sheet-head,.enrollment-sheet .sheet-row{
  min-width:1110px;
  grid-template-columns:minmax(190px,1.05fr) 78px 105px 165px 205px minmax(330px,1.65fr);
  align-items:stretch
}
.enrollment-sheet .sheet-head>*,.enrollment-sheet .sheet-row>*{display:flex;align-items:center;min-width:0}
.enrollment-notes-cell{min-height:100%}
.enrollment-no-notes{display:none!important}
.enrollment-note-pill{min-width:62px;min-height:26px;padding:4px 8px;font-size:10px}
.enrollment-pill-stack{align-items:center;flex-wrap:nowrap;min-width:0}
.enrollment-row .badge{min-height:27px;padding:5px 9px;display:inline-flex;align-items:center;justify-content:center;line-height:1.15;white-space:normal;text-align:center}
.enrollment-row>span:nth-child(4) .badge{min-width:126px}
.enrollment-row>span:nth-child(5) .badge{min-width:155px}
.override-indicator{flex:0 0 auto;padding:3px 6px;font-size:9px}
.enrollment-record-actions{width:100%;grid-template-columns:minmax(0,1fr) 88px;align-items:center}
.locked-note-preview{min-height:32px;align-items:center;line-height:1.35}
.locked-note-preview>span:last-child{white-space:pre-line;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.locked-note-preview>span:last-child:empty,.locked-note-preview:has(>span:last-child:empty){visibility:hidden}
.enrollment-edit-record{width:88px;min-height:30px;justify-self:end}
.grade-band{min-width:1110px}

/* Pills by meaning */
.badge{border:1px solid transparent;border-radius:999px;font-weight:800}
.badge.enrollment-confirmed,.badge.confirmed,.badge.accepted,.badge.enrolled,.badge.completed{color:#3f5d49;background:#edf5ef;border-color:#b8cdbf}
.badge.pending,.badge.waitlisted,.badge.waiting-for-documents{color:#725517;background:#fff8e8;border-color:#e4c980}
.override-indicator{color:#8b2f25!important;background:#fbe9e6!important;border:1px solid #e7b8b1!important}

/* Sidebar */
.sidebar{overflow:hidden}
.sidebar nav{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:3px}
.sidebar nav button{align-items:center;line-height:1.25;overflow-wrap:anywhere}
.sidebar nav button.active{font-weight:850}
.nav-group>summary{min-height:34px}

/* Quick guides and empty states */
.quick-guide,.guide-box{overflow:hidden}
.quick-guide-steps,.guide-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.empty-state,.sheet-empty{padding:30px 22px;text-align:center;color:var(--ui-muted);line-height:1.55}
.empty-state strong,.sheet-empty strong{display:block;color:var(--lca-charcoal);margin-bottom:5px}

/* Responsive behaviour */
@media(max-width:1100px){
  .workspace-header,.page-header{display:flex}
  .top-actions,.header-actions{width:100%;justify-content:flex-start}
}
@media(max-width:780px){
  .button,button.button{min-height:42px}
  .form-grid,.detail-grid{grid-template-columns:1fr!important}
  .workspace-header,.page-header{gap:12px}
  .sheet-toolbar{align-items:stretch;flex-direction:column}
  .sheet-toolbar input,.sheet-toolbar select,.sheet-toolbar .button{width:100%}
  .form-actions{align-items:stretch;flex-direction:column}
  .form-actions .button{width:100%}
}
@media(max-width:520px){
  .panel,.workspace-panel,.card{border-radius:10px}
  .top-actions,.header-actions{align-items:stretch;flex-direction:column}
  .top-actions .button,.header-actions .button{width:100%}
}


/* v20.28.26 shared calendar and availability */
.team-availability-sheet .sheet-head,.team-availability-sheet .sheet-row{grid-template-columns:minmax(180px,1.05fr) minmax(125px,.7fr) minmax(145px,.8fr) minmax(150px,.8fr) minmax(210px,1.15fr) minmax(80px,.45fr)}
.calendar-filter-bar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid #e2e8ee;border-bottom:1px solid #e2e8ee;background:#f8fafc}.calendar-filter-bar label{display:grid;gap:5px;min-width:190px;font-size:12px;font-weight:800;color:var(--ink)}.calendar-filter-bar select{min-height:38px}.calendar-user-roster{display:flex;flex-wrap:wrap;gap:8px;padding:14px 20px 4px}.calendar-user-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid #d8e1e9;border-radius:999px;background:#fff;font-size:12px;font-weight:750;color:var(--ink)}.availability-person{display:flex;align-items:center;gap:9px;min-width:0}.availability-person>span{display:grid;min-width:0}.availability-person strong,.availability-person small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:0 0 10px;background:var(--navy)}.user-colour-0{background:var(--navy)}.user-colour-1{background:var(--sage)}.user-colour-2{background:var(--gold)}.user-colour-3{background:#8a6fa8}.user-colour-4{background:#4f8f9d}.user-colour-5{background:#b36b5e}.user-colour-6{background:#6f7f4f}.user-colour-7{background:#6b7280}.availability-empty-row{color:#6b7280;background:#fafbfc}.button.compact{min-height:38px;padding:8px 12px;font-size:12px}@media(max-width:900px){.calendar-filter-bar label{min-width:160px;flex:1}.team-availability-sheet{overflow-x:auto}.team-availability-sheet .sheet-head,.team-availability-sheet .sheet-row{min-width:980px}}

/* v20.28.27 parent self-service tour booking */
.tour-booking-section{display:grid;gap:18px}.booking-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.booking-choice>label{display:flex;gap:10px;align-items:flex-start;padding:16px;border:2px solid #dbe3ea;border-radius:12px;background:#fff;cursor:pointer}.booking-choice>label:has(input:checked){border-color:var(--navy);background:#f2f6fa;box-shadow:0 0 0 3px rgba(47,88,139,.10)}.booking-choice input{margin-top:4px}.booking-choice span{display:grid;gap:4px}.booking-choice strong{color:var(--ink)}.booking-choice small{color:#65717d;line-height:1.4}.instant-booking-panel,.request-time-panel{display:grid;gap:14px}.tour-slot-status{padding:12px 14px;border-radius:10px;background:#edf3f8;color:var(--navy);font-weight:700;line-height:1.45}.tour-slot-list{display:grid;gap:16px}.tour-slot-day{display:grid;gap:10px}.tour-slot-day h3{margin:0;color:var(--ink);font-size:16px}.tour-slot-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px}.tour-slot-option{display:flex;align-items:flex-start;gap:9px;padding:12px;border:1px solid #d8e1e9;border-radius:10px;background:#fff;cursor:pointer}.tour-slot-option:has(input:checked){border-color:var(--sage);background:#f2f7f3;box-shadow:0 0 0 3px rgba(127,156,136,.12)}.tour-slot-option input{margin-top:4px}.tour-slot-option span{display:grid;gap:3px}.tour-slot-option strong{color:var(--navy);font-size:15px}.tour-slot-option small{color:#5f6b76}.instant-booking-panel[hidden],.request-time-panel[hidden]{display:none!important}@media(max-width:700px){.booking-choice{grid-template-columns:1fr}.tour-slot-options{grid-template-columns:1fr 1fr}}@media(max-width:480px){.tour-slot-options{grid-template-columns:1fr}}

/* v20.28.27.2: collapse available times after selection */
.tour-slot-list[hidden]{display:none!important}.tour-slot-selected{display:flex;align-items:center;justify-content:space-between;gap:18px}.tour-slot-selected>div{display:grid;gap:3px}.tour-slot-selected-label{font-size:12px;line-height:1.2;text-transform:uppercase;letter-spacing:.06em;color:#65717d}.tour-slot-selected strong{font-size:17px;color:var(--ink)}.tour-slot-selected small{font-weight:600;color:#5f6b76}.tour-slot-change{flex:0 0 auto;white-space:nowrap}@media(max-width:560px){.tour-slot-selected{align-items:stretch;flex-direction:column}.tour-slot-change{width:100%}}

/* v20.28.27.7 courtesy follow-up */
.courtesy-call-nudge{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.courtesy-call-nudge .button.compact{width:auto;min-height:34px;padding:7px 12px}.button.attention{background:var(--gold);color:var(--ink);border-color:var(--gold)}.button.attention:hover{filter:brightness(.96)}

/* v20.28.27.8 courtesy workflow visibility and readable helper text */
.drawer-body label > small.muted,
.drawer-body .detail-block > small.muted,
.drawer-body .detail-block p.muted,
.drawer-body .field-help,
.drawer-body .help-text{
  display:block;
  margin-top:8px;
  font-size:14px;
  line-height:1.55;
  font-weight:600;
}
.courtesy-call-nudge{
  border-left:5px solid var(--gold);
  background:#fff8e8;
  color:var(--ink);
}
.courtesy-call-nudge strong{font-size:16px}
.courtesy-call-nudge span{font-size:14px;line-height:1.5}

/* v20.28.27.9: compact courtesy card and clearer field guidance */
.courtesy-call-nudge span{
  flex:none;
  width:100%;
}
.courtesy-call-nudge .button.compact{
  margin-top:4px;
}
.drawer-body label > small.muted,
.drawer-body .detail-block > small.muted,
.drawer-body .detail-block p.muted,
.drawer-body .field-help,
.drawer-body .help-text{
  font-size:15px;
  line-height:1.6;
  font-weight:600;
}

/* v20.28.27.12: fine-tune Tour Management helper text */
.drawer-body label > small.muted,
.drawer-body .detail-block > small.muted,
.drawer-body .detail-block p.muted,
.drawer-body .field-help,
.drawer-body .help-text{
  margin-top:6px;
  font-size:11.5px;
  line-height:1.5;
  font-weight:600;
}


/* v20.28.27.26: simplified, responsive parent tour scheduling experience */
.tour-booking-section{gap:0!important;padding:0!important;overflow:hidden;background:#fff!important}
.tour-booking-section>h2{display:none}
.tour-booking-heading{display:grid;gap:6px;padding:24px 24px 18px;border-bottom:1px solid #e2e7ec;background:#fff}
.tour-booking-heading h2{display:block!important;margin:0!important;padding:0!important;border:0!important;font-size:24px!important;line-height:1.2;color:var(--navy)!important}
.tour-booking-heading p{max-width:650px;margin:0;color:#5f6b76;font-size:14px;line-height:1.5}
.tour-step-label{font-size:11px;font-weight:850;letter-spacing:.11em;text-transform:uppercase;color:var(--sage)}
.booking-choice{display:flex!important;gap:6px!important;margin:18px 24px 0;padding:5px!important;border:1px solid #d8e0e7;border-radius:12px;background:#eef2f5}
.booking-choice>label.booking-choice-card{position:relative;display:flex;align-items:center!important;min-height:0!important;flex:1;padding:11px 14px!important;border:0!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important;cursor:pointer;transition:background .16s ease,box-shadow .16s ease}
.booking-choice>label.booking-choice-card:hover{transform:none!important;background:rgba(255,255,255,.65)!important;box-shadow:none!important}
.booking-choice>label.booking-choice-card:has(input:checked){background:#fff!important;box-shadow:0 2px 8px rgba(43,45,49,.10)!important}
.booking-choice-card input{position:absolute;opacity:0;pointer-events:none}
.booking-choice-copy{display:grid!important;gap:2px!important;text-align:center;width:100%}
.booking-choice-copy strong{font-size:14px;line-height:1.3;color:var(--ink)}
.booking-choice-copy small{font-size:11.5px;line-height:1.35;color:#65717d}
.instant-booking-panel,.request-time-panel{display:grid;gap:15px;margin:0;padding:20px 24px 24px;background:#fff}
.tour-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.tour-panel-heading>div{display:grid;gap:4px}
.tour-panel-heading strong{color:var(--ink);font-size:17px}
.tour-panel-heading span{max-width:650px;color:#65717d;font-size:12.5px;line-height:1.45}
.tour-slot-status{padding:10px 0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#5f6b76!important;font-size:13px!important;font-weight:650!important}
.tour-slot-list{display:grid;gap:0!important;border-top:1px solid #e3e8ed}
.tour-slot-day{display:grid!important;grid-template-columns:minmax(150px,190px) 1fr;gap:18px!important;padding:17px 0;border-bottom:1px solid #e3e8ed!important;border-radius:0!important;background:#fff!important;overflow:visible!important}
.tour-slot-day-heading{display:block!important;padding:4px 0!important;border:0!important;background:transparent!important}
.tour-slot-day h3{margin:0!important;font-size:14px!important;line-height:1.4;color:var(--ink)!important}
.tour-slot-options{display:flex!important;flex-wrap:wrap;gap:9px!important;padding:0!important}
.tour-slot-option{position:relative;display:flex!important;align-items:center!important;justify-content:center!important;min-width:132px;min-height:50px!important;padding:8px 12px!important;border:1px solid #cbd6df!important;border-radius:9px!important;background:#fff!important;box-shadow:none!important;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.tour-slot-option:hover{border-color:var(--navy)!important;background:#f6f9fc!important}
.tour-slot-option input{position:absolute;opacity:0;pointer-events:none}
.tour-slot-option:has(input:checked){border-color:var(--navy)!important;background:#edf3f8!important;box-shadow:0 0 0 2px rgba(47,88,139,.12)!important}
.tour-slot-time{display:grid!important;gap:1px!important;text-align:center}
.tour-slot-time strong{font-size:15px!important;line-height:1.15;color:var(--navy)!important}
.tour-slot-time small{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px!important;font-weight:650;color:#65717d!important}
.tour-slot-select-text{display:none!important}
.tour-slot-selected{display:grid!important;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;min-height:0!important;padding:15px 16px;border:1px solid #b9cfbf;border-radius:10px;background:#f3f8f4}
.tour-selected-check{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--sage);color:#fff;font-size:19px;font-weight:900}
.tour-slot-selected>div{display:grid;gap:2px}
.tour-slot-selected-label{font-size:10.5px!important;font-weight:850;text-transform:uppercase;letter-spacing:.07em;color:#607167!important}
.tour-slot-selected strong{font-size:16px!important;line-height:1.3;color:var(--ink)!important}
.tour-slot-selected small{font-size:12px;color:#65717d}
.tour-slot-change{white-space:nowrap}
.request-time-fields{align-items:end}
.tour-request-note{margin:0;padding:12px 14px;border-left:4px solid var(--gold);border-radius:7px;background:#fff8e8;color:#4c4638;font-size:12.5px;line-height:1.5}
.public-submit{width:calc(100% - 48px);justify-self:center;justify-content:center;min-height:52px;margin:0 24px 24px;font-size:15px}
.instant-booking-panel[hidden],.request-time-panel[hidden],.tour-slot-list[hidden]{display:none!important}
@media(max-width:700px){
  .tour-booking-heading{padding:20px 18px 16px}
  .tour-booking-heading h2{font-size:21px!important}
  .booking-choice{margin:15px 18px 0}
  .booking-choice>label.booking-choice-card{padding:10px 8px!important}
  .booking-choice-copy small{display:none}
  .instant-booking-panel,.request-time-panel{padding:18px}
  .tour-slot-day{grid-template-columns:1fr;gap:10px!important;padding:15px 0}
  .tour-slot-day-heading{padding:0!important}
  .tour-slot-options{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}
  .tour-slot-option{min-width:0;width:100%}
  .public-submit{width:calc(100% - 36px);margin-left:18px;margin-right:18px}
}
@media(max-width:480px){
  .booking-choice-copy strong{font-size:12.5px}
  .tour-slot-options{grid-template-columns:1fr}
  .tour-slot-option{min-height:54px!important}
  .tour-slot-selected{grid-template-columns:1fr;align-items:stretch}
  .tour-selected-check{display:none}
  .tour-slot-change{width:100%}
}



/* v20.28.27.27: feature the next available tour date and collapse later dates */
.tour-slot-list{border-top:0!important;gap:18px!important}
.tour-next-date{display:grid;gap:8px;padding:16px;border:1px solid #d8e1e9;border-radius:12px;background:#f8fafc}
.tour-availability-label{font-size:10.5px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:var(--sage)}
.tour-next-date .tour-slot-day{grid-template-columns:minmax(150px,190px) 1fr;padding:0!important;border:0!important;background:transparent!important}
.tour-next-date .tour-slot-day h3{font-size:17px!important;color:var(--navy)!important}
.tour-other-dates{display:grid;gap:12px;padding-top:2px}
.tour-other-date-field{display:grid;gap:7px;max-width:420px;margin:0!important;font-weight:750;color:var(--ink)}
.tour-other-date-field>span{font-size:13px}
.tour-other-date-field select{width:100%}
.tour-other-date-times{display:grid;gap:0;border-top:1px solid #e3e8ed}
.tour-other-date-times[hidden]{display:none!important}
.tour-other-date-times .tour-slot-day{border-bottom:0!important;padding-bottom:0!important}
.tour-other-date-times .tour-slot-day h4{margin:0!important;font-size:14px!important;line-height:1.4;color:var(--ink)!important}
@media(max-width:700px){
  .tour-next-date{padding:14px}
  .tour-next-date .tour-slot-day{grid-template-columns:1fr;gap:10px!important}
  .tour-other-date-field{max-width:none}
}

/* v20.28.27.28: compact public tour choices and controlled availability time pickers */
#availability-form .time-picker{width:100%;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) minmax(0,1.15fr)}
#availability-form .time-picker select{min-width:0;width:100%}
.tour-next-date{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;gap:6px!important}
.tour-next-date .tour-slot-day{grid-template-columns:minmax(145px,180px) 1fr!important;align-items:start}
.tour-slot-options{gap:7px!important}
.tour-slot-option{min-width:0!important;min-height:40px!important;padding:7px 10px!important;border-radius:8px!important;justify-content:flex-start!important}
.tour-slot-time{display:flex!important;align-items:center;gap:5px!important;min-width:0;text-align:left!important;white-space:nowrap}
.tour-slot-time strong{font-size:13.5px!important;line-height:1.2!important;white-space:nowrap}
.tour-slot-time small{max-width:115px!important;font-size:11px!important;line-height:1.2!important;font-weight:650!important}
.tour-slot-time small::before{content:'· ';color:#9aa5af}
.tour-other-date-times .tour-slot-option{min-height:38px!important}
@media(max-width:700px){
  .tour-next-date .tour-slot-day{grid-template-columns:1fr!important;gap:8px!important}
  .tour-slot-options{display:flex!important;flex-wrap:wrap!important}
  .tour-slot-option{flex:0 1 auto!important;width:auto!important;max-width:100%}
}
@media(max-width:430px){
  .tour-slot-option{flex:1 1 calc(50% - 4px)!important}
  .tour-slot-time{justify-content:center;width:100%}
  .tour-slot-time small{max-width:88px!important}
}


/* v20.28.27.29: align available tour times by tour giver */
.tour-slot-day{grid-template-columns:minmax(145px,180px) minmax(0,1fr)!important}
.tour-host-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;align-items:start;min-width:0}
.tour-host-column{display:grid;gap:8px;min-width:0}
.tour-host-column h5{margin:0;padding:0 2px 7px;border-bottom:2px solid #d8e1e9;font-size:12px;line-height:1.25;font-weight:800;color:var(--ink)}
.tour-host-column .tour-slot-options{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
.tour-host-column .tour-slot-option{width:100%!important;min-height:40px!important;justify-content:center!important;text-align:center!important}
.tour-host-column .tour-slot-time{justify-content:center!important;width:100%;text-align:center!important}
.tour-host-column .tour-slot-time small{display:none!important}
@media(max-width:700px){
  .tour-slot-day{grid-template-columns:1fr!important}
  .tour-host-columns{grid-template-columns:1fr;gap:16px}
  .tour-host-column .tour-slot-options{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:430px){
  .tour-host-column .tour-slot-options{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .tour-host-column .tour-slot-option{min-width:0!important;max-width:none!important;flex:none!important}
}


/* v20.28.27.30: simplified availability identity */
.availability-for-block{display:grid;gap:4px;padding:14px 16px;border:1px solid #d9e2ea;border-radius:10px;background:#f8fafc}
.availability-for-label{font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:#667789}
.availability-for-block>strong{font-size:16px;color:var(--ink)}
.availability-change-user{width:max-content;margin-top:5px;font-size:12px}
.availability-user-selector{margin-top:8px}


/* v20.28.27.31: sidebar release version */
.sidebar-bottom{display:grid;gap:5px}
.sidebar-status{display:flex;align-items:center;min-width:0}
.sidebar-status i{flex:0 0 auto}
.sidebar-version{padding-left:14px;color:rgba(255,255,255,.42);font-size:10px;font-weight:650;letter-spacing:.04em}

/* v20.28.27.32: restore Admissions Events and Email Centre presentation */
.events-page,.email-centre-page{display:grid;gap:22px;min-width:0}
.events-hero,.email-centre-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:24px 26px;border:1px solid #dbe3ea;border-radius:14px;background:linear-gradient(135deg,#fff 0%,#f7fafc 100%)}
.events-hero>div,.email-centre-hero>div{display:grid;gap:6px;min-width:0}
.events-hero h2,.email-centre-hero h2{margin:0;color:var(--ink);font-size:28px;line-height:1.15}
.events-hero p,.email-centre-hero p{margin:0;max-width:720px;color:#65717d;line-height:1.5}
.events-summary,.email-centre-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.events-summary article,.email-centre-summary article{display:grid;gap:5px;min-width:0;padding:18px 20px;border:1px solid #dbe3ea;border-radius:12px;background:#fff}
.events-summary span,.email-centre-summary span{font-size:11px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:#6b7884}
.events-summary strong,.email-centre-summary strong{font-size:26px;line-height:1;color:var(--navy)}
.events-summary small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#65717d}
.events-list-panel,.email-centre-panel{padding:0!important;overflow:hidden}
.events-list-heading,.email-centre-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid #e1e7ec}
.events-list-heading h3,.email-centre-heading h3{margin:0 0 4px;color:var(--ink)}
.events-list-heading p,.email-centre-heading p{margin:0;color:#65717d;line-height:1.45}
.admissions-event-list{display:grid;gap:12px;padding:18px}
.admissions-event-card{display:grid;grid-template-columns:74px minmax(0,1fr);gap:18px;align-items:stretch;padding:16px;border:1px solid #dbe3ea;border-radius:12px;background:#fff;box-shadow:0 2px 8px rgba(43,45,49,.04)}
.event-date-tile{display:grid;align-content:center;justify-items:center;min-height:86px;border-radius:10px;background:#eef3f8;color:var(--navy)}
.event-date-tile span{font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.event-date-tile strong{font-size:28px;line-height:1}
.event-card-main{display:grid;gap:14px;min-width:0}
.event-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.event-card-heading h3{margin:5px 0 0;color:var(--ink);font-size:19px;line-height:1.25}
.event-type-pill,.event-status{display:inline-flex;align-items:center;width:max-content;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}
.event-type-pill{background:#f3f5f7;color:#64717d}
.event-status.open{background:#edf6ef;color:#4f7658}.event-status.full{background:#fbeeed;color:#9d4c45}
.event-detail-grid{display:grid;grid-template-columns:1.2fr 1fr .7fr;gap:12px}
.event-detail-grid>div{display:grid;gap:3px;min-width:0}
.event-detail-grid span,.event-capacity span{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#7a8792}
.event-detail-grid strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#39434c;font-size:13px}
.event-capacity{display:grid;gap:7px}
.event-capacity>div:first-child{display:flex;justify-content:space-between;gap:12px}
.event-capacity-bar{height:7px;overflow:hidden;border-radius:999px;background:#e8edf1}.event-capacity-bar i{display:block;height:100%;border-radius:inherit;background:var(--sage)}
.events-empty{display:grid;justify-items:center;gap:9px;padding:42px 24px;text-align:center;color:#65717d}.events-empty h3,.events-empty p{margin:0}.events-empty-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#eef3f8;color:var(--navy);font-size:22px}
.email-centre-summary{grid-template-columns:repeat(5,minmax(0,1fr))}
.email-centre-summary.has-delete-all{grid-template-columns:repeat(6,minmax(0,1fr))}
.email-centre-summary article.has-failures{border-color:#e3b3ae;background:#fff8f7}.email-centre-summary article.has-failures strong{color:#a24740}
.email-centre-delete-all-card{align-content:center}.email-centre-delete-all-card .button{width:100%;min-height:36px;padding:8px 10px}
.email-centre-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.email-centre-table{min-width:980px}
.email-centre-table.has-actions{min-width:1080px}
.email-centre-head,.email-centre-row{display:grid;grid-template-columns:minmax(190px,1.25fr) minmax(250px,1.8fr) minmax(150px,.9fr) 120px 155px;gap:16px;align-items:center;padding:12px 20px}
.email-centre-head{position:sticky;top:0;z-index:1;background:#f6f8fa;border-bottom:1px solid #dfe6ec;color:#65717d;font-size:10px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.email-centre-row{min-height:64px;border-bottom:1px solid #edf0f3;background:#fff}
.email-centre-row:last-child{border-bottom:0}
.email-centre-row:hover{background:#fafcfd}
.email-centre-head:has(+ .email-centre-row.has-actions),.email-centre-row.has-actions{grid-template-columns:minmax(190px,1.2fr) minmax(250px,1.65fr) minmax(150px,.85fr) 120px 155px 90px}
.email-recipient,.email-subject{display:grid;gap:3px;min-width:0}
.email-recipient strong,.email-subject{overflow:hidden;text-overflow:ellipsis}
.email-recipient strong,.email-subject{color:var(--ink);font-size:13px}
.email-recipient small,.email-error{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#74808b;font-size:11px}
.email-error{color:#a24740}
.email-template{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5e6a75;font-size:12px;text-transform:capitalize}
.email-status{min-width:0}.email-date{color:#5e6a75;font-size:12px;white-space:nowrap}.email-actions{text-align:right}
@media(max-width:980px){
  .events-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .email-centre-summary,.email-centre-summary.has-delete-all{grid-template-columns:repeat(3,minmax(0,1fr))}
  .event-detail-grid{grid-template-columns:1fr 1fr}.event-detail-grid>div:last-child{grid-column:1/-1}
}
@media(max-width:700px){
  .events-page,.email-centre-page{gap:16px}
  .events-hero,.email-centre-hero{align-items:stretch;flex-direction:column;padding:20px}
  .events-hero .button{width:100%}
  .events-summary,.email-centre-summary,.email-centre-summary.has-delete-all{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .events-summary article,.email-centre-summary article{padding:14px 15px}
  .admissions-event-card{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:13px}
  .event-date-tile{min-height:68px}.event-date-tile strong{font-size:23px}
  .event-card-heading{display:grid}.event-status{grid-row:1;justify-self:end}
  .event-detail-grid{grid-template-columns:1fr}.event-detail-grid>div:last-child{grid-column:auto}
  .events-list-heading,.email-centre-heading{padding:17px 18px}
  .header-chip{display:none}
}
@media(max-width:440px){
  .events-summary,.email-centre-summary,.email-centre-summary.has-delete-all{grid-template-columns:1fr 1fr}
  .admissions-event-card{grid-template-columns:1fr}.event-date-tile{grid-template-columns:auto auto;justify-content:start;gap:6px;min-height:0;padding:8px 10px}.event-date-tile strong{font-size:16px}
}


/* v20.28.27.33: navigation access, mobile action contrast, and personal account menu */
.sidebar{overflow:hidden!important}
.sidebar #main-nav{flex:1 1 auto;min-height:0;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:12px}
.sidebar-bottom{flex:0 0 auto}
.profile-menu-wrap{position:relative;flex:0 0 auto}
.profile-button{min-width:42px;min-height:42px;justify-content:center;border-radius:999px}
.profile-button:focus-visible{outline:3px solid rgba(216,167,76,.38);outline-offset:3px}
.profile-initials{display:grid!important;place-items:center;width:38px;height:38px;border:2px solid #fff;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:850;letter-spacing:.03em;box-shadow:0 0 0 1px var(--border)}
.profile-name{display:none!important}
.profile-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:80;width:250px;padding:8px;border:1px solid #dbe3ea;border-radius:13px;background:#fff;box-shadow:0 18px 46px rgba(43,45,49,.18)}
.profile-menu[hidden]{display:none}
.profile-menu-identity{display:grid;gap:3px;padding:10px 11px 12px;border-bottom:1px solid #e8edf1;margin-bottom:5px}
.profile-menu-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:13px}
.profile-menu-identity span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6f7a84;font-size:11px}
.profile-menu button{width:100%;min-height:39px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:#36414a;text-align:left;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.profile-menu button:hover,.profile-menu button:focus-visible{background:#f1f5f8;outline:none}
.profile-menu-divider{height:1px;margin:5px 4px;background:#e8edf1}
.profile-menu .profile-menu-signout{color:#9b403b}
.profile-details-card{display:grid;gap:0;border:1px solid #dbe3ea;border-radius:12px;overflow:hidden;background:#fff}
.profile-details-card>div{display:grid;gap:4px;padding:15px 17px;border-bottom:1px solid #e8edf1}.profile-details-card>div:last-child{border-bottom:0}
.profile-details-card span{color:#6f7a84;font-size:10px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.profile-details-card strong{color:var(--ink)}
.profile-guidance{margin:0}
.profile-picture-preview{display:grid;place-items:center;min-height:180px;border:1px dashed #bdc9d3;border-radius:12px;background:#f7f9fb;color:#71808d;font-weight:750}
.profile-picture-preview img{display:block;width:150px;height:150px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px #dbe3ea}
@media(max-width:780px){
  #new-tour-request,#new-official-application{color:#fff!important;-webkit-text-fill-color:#fff!important}
  .profile-menu-wrap{display:none}
}
@media(max-width:780px){
  .top-actions{width:auto!important;margin-left:auto!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-direction:row!important;gap:7px!important;flex-wrap:wrap!important}
  .profile-menu-wrap{display:block!important}
  .profile-button{display:flex!important}
  .profile-menu{position:fixed;top:82px;right:12px;left:auto;width:min(280px,calc(100vw - 24px))}
}
@media(max-width:520px){
  .top-actions{align-items:center!important;flex-direction:row!important}
  .top-actions .button{width:38px!important;min-width:38px!important}
}


/* v20.28.27.34: rebuilt mobile dashboard header and action layout */
.topbar-heading{min-width:0}
@media(max-width:780px){
  .content{padding:0 14px 30px}
  .topbar{
    min-height:0;
    display:grid;
    grid-template-columns:48px minmax(0,1fr) 46px;
    grid-template-areas:
      "menu heading profile"
      "actions actions actions";
    align-items:center;
    column-gap:12px;
    row-gap:14px;
    padding:18px 0 16px;
  }
  .mobile-toggle{
    grid-area:menu;
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    padding:0;
    font-size:25px;
    line-height:1;
  }
  .topbar-heading{grid-area:heading;align-self:center}
  .topbar h1{
    margin:0;
    max-width:none;
    font-size:clamp(25px,7.2vw,32px);
    line-height:1.02;
    letter-spacing:-.035em;
    overflow-wrap:normal;
    word-break:normal;
  }
  .topbar p{margin-top:6px;font-size:16px;line-height:1.2}
  .top-actions{
    grid-area:actions;
    width:100%!important;
    margin:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px!important;
    align-items:stretch!important;
  }
  .top-actions .decision-people,
  #print-blank-application{display:none!important}
  .top-actions .button{
    width:100%!important;
    min-width:0!important;
    min-height:50px;
    height:auto;
    padding:9px 10px!important;
    border-radius:11px;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    font-size:12px!important;
    font-weight:800;
    line-height:1.15;
    text-align:center;
    white-space:normal;
  }
  #new-tour-request,#new-official-application{
    background:var(--navy)!important;
    border-color:var(--navy)!important;
    box-shadow:0 5px 14px rgba(47,88,139,.18)!important;
  }
  #new-tour-request:hover,#new-official-application:hover{background:#244a78!important}
  .profile-menu-wrap{
    grid-area:profile;
    display:block!important;
    justify-self:end;
  }
  .profile-button{
    width:44px;
    min-width:44px;
    height:44px;
    min-height:44px;
    display:flex!important;
  }
  .profile-button img,.profile-initials{width:40px;height:40px}
  .profile-menu{top:76px}
}
@media(max-width:390px){
  .topbar{grid-template-columns:44px minmax(0,1fr) 42px;column-gap:9px}
  .mobile-toggle{width:42px;height:42px}
  .profile-button{width:40px;min-width:40px;height:40px;min-height:40px}
  .profile-button img,.profile-initials{width:37px;height:37px}
  .topbar h1{font-size:24px}
  .topbar p{font-size:14px}
  .top-actions{gap:8px!important}
  .top-actions .button{min-height:48px;padding:8px!important;font-size:11px!important}
}

/* v20.28.27.35: mobile header cleanup */
@media(max-width:780px){
  .topbar{
    grid-template-columns:52px minmax(0,1fr) 48px;
    grid-template-areas:
      "profile heading menu"
      "actions actions actions";
    column-gap:12px;
    row-gap:16px;
    padding:18px 0 18px;
  }
  .profile-menu-wrap{
    grid-area:profile;
    justify-self:start;
  }
  .profile-button{
    width:48px;
    min-width:48px;
    height:48px;
    min-height:48px;
  }
  .profile-button img,.profile-initials{
    width:44px;
    height:44px;
  }
  .mobile-toggle{
    grid-area:menu;
    justify-self:end;
    width:46px;
    height:46px;
  }
  .topbar-heading{
    grid-area:heading;
    min-width:0;
  }
  .topbar h1{
    font-size:clamp(24px,7vw,31px);
    line-height:1.04;
  }
  .topbar p{
    margin-top:5px;
    font-size:15px;
  }
  .top-actions{
    grid-area:actions;
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    gap:10px!important;
  }
  .top-actions .button{
    width:100%!important;
    min-height:52px;
    padding:12px 16px!important;
    font-size:15px!important;
    line-height:1.2;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
  .profile-menu{
    top:78px;
    right:auto;
    left:12px;
  }
}
@media(max-width:390px){
  .topbar{
    grid-template-columns:48px minmax(0,1fr) 44px;
    column-gap:9px;
  }
  .profile-button{
    width:44px;
    min-width:44px;
    height:44px;
    min-height:44px;
  }
  .profile-button img,.profile-initials{
    width:40px;
    height:40px;
  }
  .mobile-toggle{
    width:42px;
    height:42px;
  }
  .topbar h1{font-size:23px}
  .topbar p{font-size:14px}
  .top-actions .button{
    min-height:50px;
    padding:11px 14px!important;
    font-size:14px!important;
  }
}


/* v20.28.27.36: simplified, stable mobile dashboard header */
@media(min-width:781px){
  .topbar>.profile-menu-wrap{margin-left:0}
}
@media(max-width:780px){
  .topbar{
    display:grid!important;
    grid-template-columns:52px minmax(0,1fr) 52px!important;
    grid-template-areas:
      "menu spacer profile"
      "heading heading heading"
      "actions actions actions"!important;
    column-gap:10px!important;
    row-gap:12px!important;
    align-items:center!important;
    padding:16px 0 18px!important;
  }
  .mobile-toggle{
    grid-area:menu!important;
    justify-self:start!important;
    width:46px!important;
    height:46px!important;
  }
  .topbar>.profile-menu-wrap{
    grid-area:profile!important;
    display:block!important;
    justify-self:end!important;
  }
  .topbar>.profile-menu-wrap .profile-button{
    width:46px!important;
    min-width:46px!important;
    height:46px!important;
    min-height:46px!important;
  }
  .topbar>.profile-menu-wrap .profile-button img,
  .topbar>.profile-menu-wrap .profile-initials{
    width:42px!important;
    height:42px!important;
  }
  .topbar-heading{
    grid-area:heading!important;
    width:100%!important;
    text-align:left!important;
  }
  .topbar h1{
    margin:0!important;
    font-size:clamp(28px,8vw,36px)!important;
    line-height:1.04!important;
    letter-spacing:-.035em!important;
  }
  .topbar p{
    margin:6px 0 0!important;
    font-size:16px!important;
    line-height:1.2!important;
  }
  .top-actions{
    grid-area:actions!important;
    width:100%!important;
    margin:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .top-actions .decision-people,
  #print-blank-application{display:none!important}
  .top-actions .button{
    width:100%!important;
    min-width:0!important;
    min-height:50px!important;
    padding:12px 16px!important;
    font-size:15px!important;
    line-height:1.2!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  .profile-menu{
    top:72px!important;
    right:12px!important;
    left:auto!important;
  }
}
@media(max-width:390px){
  .topbar{grid-template-columns:48px minmax(0,1fr) 48px!important}
  .topbar h1{font-size:27px!important}
  .topbar p{font-size:15px!important}
  .top-actions .button{font-size:14px!important}
}


/* v20.28.27.37: fixed Enrollment Register internal-note and action columns */
.enrollment-sheet .sheet-head,.enrollment-sheet .sheet-row{
  min-width:1180px;
  grid-template-columns:minmax(190px,1.05fr) 78px 105px 165px 205px minmax(300px,1.45fr) 104px;
}
.enrollment-internal-note{width:100%;min-width:0}
.enrollment-actions-cell{display:flex!important;align-items:center;justify-content:flex-end;min-width:0}
.enrollment-edit-record{width:96px;min-width:96px;justify-content:center}
.enrollment-sheet .sheet-head>span:last-child{justify-content:flex-end}
@media(max-width:700px){.enrollment-sheet .sheet-head,.enrollment-sheet .sheet-row{min-width:1180px}}
/* v20.28.27.44 Google Calendar connection status */
.calendar-connection-card{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft,#f7f8fa)}
.calendar-connection-card>div:first-child{display:grid;gap:5px}.calendar-connection-card span,.calendar-connection-card small{display:block}.error-text{color:#9b2c2c}.calendar-user-chip small{font-size:.72rem;opacity:.78;margin-left:4px}
.calendar-connection-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.calendar-connection-summary>span{padding:8px 11px;border:1px solid var(--border);border-radius:999px;background:#fff}.calendar-connection-summary label{display:flex;align-items:center;gap:8px;margin-left:auto}.calendar-connection-summary select{min-width:220px}
@media(max-width:760px){.calendar-connection-summary label{width:100%;margin-left:0;display:grid}.calendar-connection-summary select{min-width:0;width:100%}}

/* v20.28.27.46 native checkbox correction for staff grade-placement confirmations */
.app .drawer .native-checkbox-row{display:flex!important;align-items:flex-start!important;gap:10px!important;grid-template-columns:none!important;cursor:pointer}
.app .drawer input.native-checkbox[type="checkbox"]{appearance:auto!important;-webkit-appearance:checkbox!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;max-height:18px!important;margin:1px 0 0!important;padding:0!important;flex:0 0 18px!important;border-radius:3px!important;box-shadow:none!important}
.app .drawer .native-checkbox-row>span{display:block;line-height:1.45}

/* v20.28.27.49: keep grade-placement confirmations as true native checkboxes. */
.app .drawer #tour-grade-override label.native-checkbox-row,
.app .drawer #official-grade-override label.native-checkbox-row {
  display: flex !important;
  grid-template-columns: 18px minmax(0,1fr) !important;
  align-items: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
}
.app .drawer #tour-grade-override label.native-checkbox-row > input.native-checkbox[type="checkbox"],
.app .drawer #official-grade-override label.native-checkbox-row > input.native-checkbox[type="checkbox"] {
  appearance: checkbox !important;
  -webkit-appearance: checkbox !important;
  display: inline-block !important;
  box-sizing: border-box !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  max-width: 18px !important;
  max-height: 18px !important;
  margin: 2px 0 0 0 !important;
  padding: 0 !important;
  flex: 0 0 18px !important;
  border-radius: 3px !important;
  box-shadow: none !important;
}


/* v20.28.27.49: isolated compact grade-placement confirmation and clearer calendar-only birthdate entry. */
.app .drawer label.grade-confirmation-control {
  display: inline-grid !important;
  grid-template-columns: 20px minmax(0, 1fr) !important;
  align-items: start !important;
  column-gap: 10px !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  cursor: pointer;
}
.app .drawer label.grade-confirmation-control > input[type="checkbox"] {
  position: absolute !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.app .drawer .grade-confirmation-box {
  display: block !important;
  box-sizing: border-box !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  margin-top: 2px !important;
  border: 2px solid #667085 !important;
  border-radius: 4px !important;
  background: #fff !important;
  box-shadow: none !important;
}
.app .drawer label.grade-confirmation-control > input[type="checkbox"]:checked + .grade-confirmation-box {
  background: var(--primary, var(--navy)) !important;
  border-color: var(--primary, var(--navy)) !important;
  position: relative;
}
.app .drawer label.grade-confirmation-control > input[type="checkbox"]:checked + .grade-confirmation-box::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 0px;
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.app .drawer label.grade-confirmation-control > input[type="checkbox"]:focus-visible + .grade-confirmation-box {
  outline: 3px solid rgba(47,88,139,.25) !important;
  outline-offset: 2px;
}
.app .drawer .grade-confirmation-text { display:block !important; line-height:1.45 !important; }
.date-picker-help {
  display:block;
  margin-top:7px;
  color:#5f6b7a;
  font-size:.82rem;
  font-weight:600;
  line-height:1.35;
}
input.calendar-only-date { cursor:pointer; }

/* v20.28.27.52: dynamic production copyright beneath the application version. */
.sidebar-copyright{padding-left:14px;color:rgba(255,255,255,.5);font-size:10px;font-weight:600;line-height:1.35;letter-spacing:.02em}


/* v20.28.27.52: isolated button-based grade confirmation and in-field date prompt. */
.app .drawer .grade-confirmation-control{display:block!important;width:100%!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;}
.app .drawer .grade-confirmation-toggle{display:inline-flex!important;align-items:flex-start!important;gap:10px!important;width:auto!important;max-width:100%!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--ink)!important;font:inherit!important;text-align:left!important;cursor:pointer!important;}
.app .drawer .grade-confirmation-toggle .grade-confirmation-box{position:relative!important;display:inline-block!important;box-sizing:border-box!important;flex:0 0 18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;max-height:18px!important;margin:2px 0 0!important;padding:0!important;border:2px solid #667085!important;border-radius:4px!important;background:#fff!important;box-shadow:none!important;}
.app .drawer .grade-confirmation-toggle[aria-checked="true"] .grade-confirmation-box{border-color:var(--navy)!important;background:var(--navy)!important;}
.app .drawer .grade-confirmation-toggle[aria-checked="true"] .grade-confirmation-box::after{content:""!important;position:absolute!important;left:4px!important;top:0!important;width:5px!important;height:10px!important;border:solid #fff!important;border-width:0 2px 2px 0!important;transform:rotate(45deg)!important;}
.app .drawer .grade-confirmation-toggle:focus-visible .grade-confirmation-box{outline:3px solid rgba(47,88,139,.25)!important;outline-offset:2px!important;}
.app .drawer .grade-confirmation-toggle .grade-confirmation-text{display:block!important;line-height:1.45!important;font-weight:750!important;}
.calendar-date-shell{position:relative;display:block;width:100%;}
.calendar-date-shell>input.calendar-only-date{position:relative;z-index:1;width:100%;cursor:pointer;color:inherit;background-color:#fff;}
.calendar-date-shell .calendar-date-prompt{position:absolute;z-index:2;left:13px;right:42px;top:50%;transform:translateY(-50%);overflow:hidden;color:#667085;font-weight:650;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;}
.calendar-date-shell.has-value .calendar-date-prompt{display:none;}


/* v20.28.27.52 definitive compact checkbox and date-selector controls. */
.drawer label.compact-check-row{display:flex!important;grid-template-columns:none!important;align-items:flex-start!important;gap:10px!important;width:100%!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;cursor:pointer!important;}
.drawer label.compact-check-row>input.compact-check[type="checkbox"]{appearance:auto!important;-webkit-appearance:checkbox!important;accent-color:var(--navy)!important;display:inline-block!important;position:static!important;box-sizing:border-box!important;flex:0 0 18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;max-height:18px!important;margin:3px 0 0!important;padding:0!important;border-radius:3px!important;box-shadow:none!important;opacity:1!important;pointer-events:auto!important;}
.drawer label.compact-check-row>span{display:block!important;min-width:0!important;line-height:1.45!important;font-weight:750!important;}
.calendar-date-control{position:relative!important;display:block!important;width:100%!important;min-height:60px!important;}
.calendar-date-display{position:absolute!important;inset:0!important;z-index:1!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:0 18px!important;border:1px solid var(--border,#d6dce3)!important;border-radius:12px!important;background:#fff!important;color:#667085!important;font-weight:700!important;pointer-events:none!important;}
.calendar-date-control.has-value .calendar-date-display{color:var(--ink,#17212b)!important;}
.calendar-date-icon{font-size:18px!important;color:var(--ink,#17212b)!important;line-height:1!important;}
.calendar-date-control>input.calendar-only-date[type="date"]{position:absolute!important;inset:0!important;z-index:2!important;width:100%!important;height:100%!important;min-height:60px!important;margin:0!important;padding:0!important;border:0!important;opacity:.001!important;cursor:pointer!important;color:transparent!important;background:transparent!important;box-shadow:none!important;}
.calendar-date-control:focus-within .calendar-date-display{outline:3px solid rgba(47,88,139,.24)!important;outline-offset:2px!important;border-color:var(--navy)!important;}


/* v20.28.27.54: shared birthdate-field sizing and native grade-placement checkbox isolation. */
.calendar-date-control {
  position: relative !important;
  display: block !important;
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 46px !important;
  min-height: 46px !important;
  margin: 0 !important;
}
.calendar-date-display {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  padding: 10px 12px !important;
  border: 1px solid #cec5dd !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #667085 !important;
  font: inherit !important;
  font-weight: 700 !important;
  line-height: normal !important;
  pointer-events: none !important;
  overflow: hidden !important;
}
.calendar-date-text {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.calendar-date-control.has-value .calendar-date-display { color: var(--ink, #17212b) !important; }
.calendar-date-control > input.calendar-only-date[type="date"] {
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  display: block !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 8px !important;
  opacity: 0.001 !important;
  color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  cursor: pointer !important;
  caret-color: transparent !important;
}
.calendar-date-control > input.calendar-only-date[type="date"]::-webkit-date-and-time-value,
.calendar-date-control > input.calendar-only-date[type="date"]::-webkit-datetime-edit,
.calendar-date-control > input.calendar-only-date[type="date"]::-webkit-datetime-edit-fields-wrapper,
.calendar-date-control > input.calendar-only-date[type="date"]::-webkit-calendar-picker-indicator {
  color: transparent !important;
  opacity: 0 !important;
}
.calendar-date-control:focus-within .calendar-date-display {
  outline: 3px solid rgba(47,88,139,.24) !important;
  outline-offset: 2px !important;
  border-color: var(--navy) !important;
}
.app .drawer .calendar-date-control {
  height: 44px !important;
  min-height: 44px !important;
}
.app .drawer .calendar-date-display {
  padding: 10px 11px !important;
  border-color: #d2c5b3 !important;
  border-radius: 8px !important;
}
.drawer label.compact-check-row {
  display: inline-flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  cursor: pointer !important;
}
.drawer label.compact-check-row > input.compact-check[type="checkbox"] {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  display: inline-block !important;
  position: static !important;
  box-sizing: border-box !important;
  flex: none !important;
  align-self: flex-start !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  max-width: 18px !important;
  max-height: 18px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  border: initial !important;
  border-radius: initial !important;
  background: initial !important;
  box-shadow: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  accent-color: var(--navy) !important;
}
.drawer label.compact-check-row > span {
  display: block !important;
  min-width: 0 !important;
  line-height: 1.45 !important;
  font-weight: 750 !important;
}

/* v20.28.27.55: mobile readability, action wrapping, and safe responsive controls */
@media (max-width:900px){
  .content,.topbar,#view-content,.panel,.drawer,.drawer-body,.detail-block,.form-grid,.detail-grid{min-width:0!important;max-width:100%!important}
  .topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .top-actions{width:100%;min-width:0;display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
  .top-actions .button,.top-actions a.button{width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;min-height:44px!important;padding:10px 12px!important;white-space:normal!important;line-height:1.25!important;text-align:center!important;overflow-wrap:anywhere!important}
  .panel-head,.email-centre-heading,.drawer-head{align-items:flex-start!important;gap:10px!important;flex-wrap:wrap!important}
  .panel-head>.button,.panel-head>a.button,.drawer-head>.button{max-width:100%!important;white-space:normal!important}
  .form-actions,.row-actions,.tour-save-actions,.enrollment-actions,.credential-actions,.user-admin-controls{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;gap:8px!important}
  .form-actions .button,.form-actions a.button,.row-actions .button,.tour-save-actions .button,.enrollment-actions .button,.credential-actions .button,.user-admin-controls .button{width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;min-height:44px!important;padding:10px 12px!important;white-space:normal!important;line-height:1.25!important;overflow-wrap:anywhere!important}
  .table,.email-centre-scroll,.capacity-table-wrap{max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  .table-head,.table-row{min-width:760px}
  .simple-table .table-head,.simple-table .table-row{min-width:650px}
  .drawer{width:min(100vw,560px)!important;padding-left:max(14px,env(safe-area-inset-left))!important;padding-right:max(14px,env(safe-area-inset-right))!important}
  .drawer input,.drawer select,.drawer textarea{max-width:100%!important;min-width:0!important}
  .drawer h2,.panel h2,.panel h3,.topbar-heading h1{overflow-wrap:anywhere}
  .button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
}
@media (max-width:520px){
  .drawer{width:100vw!important}
  .form-grid,.detail-grid{grid-template-columns:minmax(0,1fr)!important}
  .table-head,.table-row{min-width:680px}
  .profile-menu{max-height:calc(100dvh - 92px);overflow-y:auto}
}


/* v20.28.27.57: responsive status pills and accessible calendar icon */
.calendar-date-icon{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 22px!important;
  width:22px!important;
  height:22px!important;
  color:var(--navy)!important;
}
.calendar-date-icon svg{display:block!important;width:22px!important;height:22px!important;overflow:visible!important}

@media (max-width:680px){
  .app .badge{
    width:fit-content!important;
    min-width:0!important;
    max-width:min(100%,230px)!important;
    min-height:0!important;
    height:auto!important;
    padding:7px 10px!important;
    border-radius:10px!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    line-height:1.25!important;
    text-align:left!important;
    justify-content:flex-start!important;
  }
  .work-sheet{overflow:visible!important;max-width:100%!important}
  .work-sheet .sheet-head{display:none!important}
  .work-sheet .sheet-row{
    min-width:0!important;
    width:100%!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,auto)!important;
    align-items:start!important;
    gap:10px 12px!important;
    padding:16px!important;
    border-bottom:1px solid #dce3ea!important;
  }
  .work-sheet .work-record-cell{min-width:0!important}
  .work-sheet .work-status-cell{min-width:0!important;max-width:52vw!important;justify-self:end!important}
  .work-sheet .work-status-cell .badge{max-width:100%!important}
  .work-sheet .work-detail-cell{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:92px minmax(0,1fr)!important;
    gap:10px!important;
    min-width:0!important;
    color:#4f5d6d!important;
    line-height:1.4!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  .work-sheet .work-detail-cell::before{
    content:attr(data-label);
    color:var(--ink);
    font-size:11px;
    font-weight:850;
    letter-spacing:.04em;
    text-transform:uppercase;
  }
}
@media (max-width:390px){
  .work-sheet .sheet-row{grid-template-columns:minmax(0,1fr)!important}
  .work-sheet .work-status-cell{justify-self:start!important;max-width:100%!important}
  .work-sheet .work-detail-cell{grid-template-columns:82px minmax(0,1fr)!important}
}

/* v20.28.27.57: shared spacing, grade-placement layout, and reliable calendar icon. */
.calendar-date-icon{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 24px!important;
  width:24px!important;
  height:24px!important;
  color:var(--navy)!important;
}
.calendar-date-icon svg{display:none!important}
.calendar-icon-glyph{
  position:relative!important;
  display:block!important;
  box-sizing:border-box!important;
  width:19px!important;
  height:18px!important;
  border:2px solid currentColor!important;
  border-radius:3px!important;
}
.calendar-icon-glyph::before{
  content:""!important;
  position:absolute!important;
  left:-2px!important;
  right:-2px!important;
  top:4px!important;
  border-top:2px solid currentColor!important;
}
.calendar-icon-glyph::after{
  content:""!important;
  position:absolute!important;
  left:3px!important;
  top:-5px!important;
  width:9px!important;
  height:5px!important;
  border-left:2px solid currentColor!important;
  border-right:2px solid currentColor!important;
}
.drawer [id$="grade-override"]{
  width:100%!important;
  min-width:0!important;
}
.drawer [id$="grade-override"] > .compact-check-row{
  display:flex!important;
  width:100%!important;
  max-width:100%!important;
  align-items:flex-start!important;
  gap:10px!important;
}
.drawer [id$="grade-override"] > .compact-check-row > span{
  flex:1 1 auto!important;
  min-width:0!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  line-height:1.45!important;
}
.drawer [id$="grade-override"] > small{
  display:block!important;
  width:100%!important;
  margin:8px 0 10px 28px!important;
  padding:0!important;
  max-width:calc(100% - 28px)!important;
  line-height:1.5!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
}
.drawer [id$="grade-override"] > label:not(.compact-check-row){
  display:block!important;
  width:100%!important;
  margin-top:10px!important;
}
@media (max-width:680px){
  .work-sheet .work-record-cell{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:4px!important;
    align-content:start!important;
  }
  .work-sheet .work-record-cell > strong,
  .work-sheet .work-record-cell > small{
    display:block!important;
    min-width:0!important;
    margin:0!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    line-height:1.35!important;
  }
  .work-sheet .work-record-cell > small{color:#687386!important}
  .work-sheet .work-detail-cell{row-gap:4px!important}
  .work-sheet .work-detail-cell::before{line-height:1.3!important}
}


/* v20.28.27.58: calendar workspace section accents and connection-control layout */
.calendar-workspace{gap:20px}
.calendar-section{overflow:hidden!important;border-top:5px solid var(--navy)}
.calendar-section-blue{border-top-color:var(--navy)}
.calendar-section-gold{border-top-color:var(--gold)}
.calendar-section-sage{border-top-color:var(--sage)}
.calendar-section .workspace-header{min-height:0}
.calendar-connection-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;padding:18px 22px;background:#fff}
.calendar-connection-users{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.calendar-connection-users>span{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface-soft,#f7f8fa);line-height:1.25;overflow-wrap:anywhere}
.calendar-master-controls{display:flex;align-items:end;justify-content:flex-end;gap:10px;min-width:0}
.calendar-master-controls label{display:grid;gap:6px;margin:0;color:var(--ink);font-weight:750}
.calendar-master-controls label>span{font-size:12px;line-height:1.25}
.calendar-master-controls select{width:100%;min-width:270px;max-width:360px}
.calendar-master-controls .button{min-height:44px;white-space:nowrap}
@media(max-width:980px){
  .calendar-connection-summary{grid-template-columns:1fr;align-items:stretch}
  .calendar-master-controls{justify-content:flex-start}
}
@media(max-width:700px){
  .calendar-section .workspace-header{padding:18px}
  .calendar-section .workspace-header .button{width:100%}
  .calendar-connection-summary{padding:16px;gap:16px}
  .calendar-connection-users{display:grid;grid-template-columns:1fr}
  .calendar-connection-users>span{width:100%;border-radius:10px;justify-content:space-between}
  .calendar-master-controls{display:grid;grid-template-columns:1fr;width:100%}
  .calendar-master-controls select{min-width:0;max-width:none}
  .calendar-master-controls .button{width:100%;white-space:normal}
}


/* v20.28.27.59: shared LCA birthdate control and leadership reports. */
.calendar-date-display{color:#111820!important;}
.calendar-date-control.has-value .calendar-date-display{color:var(--ink,#17212b)!important;}
.calendar-date-icon{display:grid!important;place-items:center!important;flex:0 0 28px!important;width:28px!important;height:28px!important;color:var(--navy)!important;}
.calendar-date-svg{display:block;width:28px;height:28px;overflow:visible;}
.calendar-date-svg-body{fill:#fff;stroke:var(--navy);stroke-width:2.2;}
.calendar-date-svg-header,.calendar-date-svg-rings,.calendar-date-svg-days{fill:none;stroke:var(--navy);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}
.calendar-date-svg-accent{fill:var(--gold);stroke:var(--gold);stroke-width:1;}
.reports-dashboard{gap:18px;}
.reports-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px;}
.reports-intro h2{margin:4px 0 8px;}.reports-intro p{margin:0;max-width:760px;color:var(--muted);line-height:1.55;}
.report-updated{flex:0 0 auto;color:var(--muted);font-size:12px;font-weight:700;}
.report-grid-summary{grid-template-columns:repeat(3,minmax(0,1fr));}
.report-card{min-height:190px;}.report-card .report-note{margin:0;color:var(--muted);font-size:12px;line-height:1.45;}
.reports-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.report-section{padding:0 0 22px;overflow:hidden;}.report-section>.panel-head{padding-bottom:14px;}
.report-funnel,.report-section>.report-bar-row,.report-section>.report-empty{margin-left:24px;margin-right:24px;}
.funnel-step,.report-bar-row{display:grid;gap:7px;margin:0 0 15px;}.funnel-step>div:first-child,.report-bar-row>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center;}
.funnel-step small{color:var(--muted);font-size:11px;}.report-bar{height:9px;border-radius:999px;background:#edf0f4;overflow:hidden;}.report-bar i{display:block;height:100%;border-radius:inherit;background:var(--navy);}.funnel-step:nth-child(2n) .report-bar i{background:var(--sage);}.funnel-step:nth-child(3n) .report-bar i{background:var(--gold);}
.tour-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 24px 18px;}.tour-report-grid div{padding:14px;border:1px solid var(--border);border-radius:10px;background:#fff;}.tour-report-grid strong{display:block;font-size:25px;color:var(--ink);}.tour-report-grid span{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.3;}
.conversion-callout{display:flex;align-items:center;gap:12px;margin:0 24px;padding:15px;border-radius:10px;background:#eef3f8;}.conversion-callout strong{font-size:28px;color:var(--navy);}.conversion-callout span{color:var(--ink);font-weight:700;font-size:12px;}
.report-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 24px;}.report-table{width:100%;min-width:760px;border-collapse:collapse;font-size:12px;}.report-table.compact{min-width:520px;}.report-table th,.report-table td{padding:12px 10px;border-bottom:1px solid #e8e0d5;text-align:left;vertical-align:middle;}.report-table th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;}.report-table tbody tr:last-child td{border-bottom:0;}
.report-signal{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap;}.report-signal.signal-high{background:#fce9e7;color:#9b2c25;}.report-signal.signal-watch{background:#fff3d6;color:#7a5612;}.report-signal.signal-open{background:#e9f2eb;color:#315f3b;}
.health-list{display:grid;gap:0;padding:0 24px;}.health-list div{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #e8e0d5;}.health-list div:last-child{border-bottom:0;}.health-list span{color:var(--muted);}.health-list strong{font-size:18px;color:var(--ink);}
.report-empty{color:var(--muted);}
@media(max-width:1120px){.report-grid-summary{grid-template-columns:repeat(2,minmax(0,1fr));}.reports-two-column{grid-template-columns:1fr;}}
@media(max-width:680px){.reports-intro{display:block;padding:18px;}.report-updated{display:block;margin-top:12px;}.report-grid-summary{grid-template-columns:1fr;}.report-card{min-height:0;padding:19px;}.report-card strong{margin:14px 0 8px;font-size:34px;}.tour-report-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-left:16px;padding-right:16px;}.conversion-callout,.report-funnel,.report-section>.report-bar-row,.report-section>.report-empty{margin-left:16px;margin-right:16px;}.report-table-wrap{padding:0 12px;}.report-section>.panel-head{padding-left:16px;padding-right:16px;}}

/* v20.28.27.61: context-aware tour email actions and notices. */
.sheet-head,.sheet-row{column-gap:22px}
.sheet-head>*{line-height:1.25}
.sheet-row>*{line-height:1.4;overflow-wrap:break-word}
.sheet-row .primary-cell,
.sheet-row .work-record-cell{
  display:grid;
  align-content:center;
  align-items:start;
  gap:4px;
}
.sheet-row .primary-cell>strong,
.sheet-row .primary-cell>small,
.sheet-row .work-record-cell>strong,
.sheet-row .work-record-cell>small{
  display:block;
  width:100%;
  min-width:0;
  margin:0;
}
.sheet-row .primary-cell>small,
.sheet-row .work-record-cell>small{line-height:1.35}
.work-sheet .sheet-head,.work-sheet .sheet-row{
  min-width:1080px;
  grid-template-columns:minmax(230px,1.35fr) minmax(190px,1fr) minmax(260px,1.45fr) minmax(155px,.8fr) minmax(125px,.65fr);
}
.work-sheet .sheet-row{min-height:76px}
.work-sheet .work-status-cell{align-items:center}
.work-sheet .work-status-cell .badge{
  width:fit-content;
  max-width:100%;
  min-height:34px;
  padding:7px 12px;
  white-space:normal;
  line-height:1.25;
  text-align:center;
  overflow-wrap:normal;
  word-break:normal;
}
.email-action-note{border-left:4px solid var(--sage)}
.email-action-note.will-send-email{
  border:1px solid #e2c57f;
  border-left:4px solid var(--gold);
  background:#fff9ea;
  color:#493a17;
}
.button.email-trigger-action{
  background:var(--navy);
  border-color:var(--gold);
  color:#fff;
  box-shadow:0 0 0 2px rgba(216,167,76,.28);
}
@media(max-width:680px){
  .work-sheet .sheet-row{min-height:0!important}
  .work-sheet .work-record-cell{display:grid!important;gap:4px!important}
}

/* v20.28.27.62: shared button and pill content-fit safeguards. */
.button,
button.button,
a.button,
input[type="submit"],
input[type="button"]{
  box-sizing:border-box!important;
  width:auto;
  max-width:100%;
  height:auto!important;
  min-height:40px;
  padding:9px 15px;
  line-height:1.25!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  hyphens:none!important;
}
.button.compact,
button.button.compact,
a.button.compact{
  height:auto!important;
  min-height:36px!important;
  padding:7px 12px!important;
  line-height:1.25!important;
}
.badge,
.enrollment-note-pill,
.grade-note-pill,
.override-indicator,
.note-lock-label,
.event-type-pill,
.event-status,
.report-signal,
.calendar-user-chip{
  box-sizing:border-box!important;
  width:fit-content!important;
  max-width:100%!important;
  height:auto!important;
  min-width:0!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  hyphens:none!important;
  line-height:1.25!important;
  text-align:center;
  justify-content:center;
}

/* Profile calendar connection: reserve enough room for the full action label. */
#profile-google-calendar .calendar-connection-card{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(190px,max-content)!important;
  align-items:center!important;
  gap:18px!important;
}
#profile-google-calendar .calendar-connection-card>div:first-child{
  min-width:0!important;
}
#profile-google-calendar .calendar-connection-card .row-actions{
  display:flex!important;
  width:auto!important;
  min-width:190px!important;
  max-width:240px!important;
  justify-content:flex-end!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
}
#profile-google-calendar .calendar-connection-card .row-actions .button{
  width:auto!important;
  min-width:190px!important;
  max-width:240px!important;
  min-height:44px!important;
  padding:9px 16px!important;
  white-space:normal!important;
  line-height:1.2!important;
}

/* Keep action groups readable rather than forcing labels into undersized controls. */
.form-actions>.button,
.form-actions>a.button,
.row-actions>.button,
.row-actions>a.button,
.tour-save-actions>.button,
.enrollment-actions>.button,
.credential-actions>.button{
  flex:0 1 auto;
  max-width:100%;
}

@media(max-width:720px){
  #profile-google-calendar .calendar-connection-card{
    grid-template-columns:minmax(0,1fr)!important;
    align-items:stretch!important;
  }
  #profile-google-calendar .calendar-connection-card .row-actions{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    justify-content:stretch!important;
  }
  #profile-google-calendar .calendar-connection-card .row-actions .button{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}


/* v20.28.27.64: automatic shared Google Calendar connection */
.calendar-shared-connection{
  display:grid;
  gap:5px;
  min-width:min(100%,360px);
  max-width:520px;
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface-soft,#f7f8fa);
}
.calendar-shared-connection>span{
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--muted);
}
.calendar-shared-connection>strong{line-height:1.35;overflow-wrap:anywhere}
.calendar-shared-connection>small,.calendar-shared-note{line-height:1.45;color:var(--muted)}
.calendar-shared-connection.needs-connection{border-color:rgba(216,167,76,.55);background:rgba(216,167,76,.09)}
#profile-google-calendar .error-text{margin-top:5px;padding:10px 12px;border-radius:10px;background:rgba(155,44,44,.08);line-height:1.45}
@media(max-width:760px){
  .calendar-shared-connection{min-width:0;max-width:none;width:100%}
}

/* v20.28.27.68 School-Wide Enrolment Overview */
.capacity-overview-launch{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:28px;margin-bottom:24px;background:linear-gradient(135deg,var(--navy) 0%,#244a77 100%);color:#fff;border:0}.capacity-overview-launch .eyebrow{color:var(--gold)}.capacity-overview-launch h2{margin:4px 0 8px;font-size:28px}.capacity-overview-launch p{max-width:760px;line-height:1.55}.capacity-overview-launch-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.capacity-overview-launch .button.secondary{background:#fff;color:var(--navy);border-color:#fff}.capacity-overview-launch-mark{display:grid;place-items:center;min-width:180px;min-height:150px;padding:20px;border:2px solid rgba(216,167,76,.8);border-radius:22px;background:rgba(255,255,255,.08);text-align:center}.capacity-overview-launch-mark span{font-size:44px;font-weight:900;color:#fff}.capacity-overview-launch-mark small{max-width:130px;line-height:1.3;color:#fff}.schoolwide-page{display:grid;gap:18px}.schoolwide-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:28px;border-radius:18px;background:linear-gradient(135deg,var(--navy),#244a77);color:#fff;box-shadow:0 12px 30px rgba(32,57,83,.15)}.schoolwide-hero .eyebrow{color:var(--gold)}.schoolwide-hero h2{margin:4px 0 8px;font-size:30px}.schoolwide-hero p{margin:0;line-height:1.45}.schoolwide-back{border:0;background:transparent;color:#fff;font-weight:800;padding:0;margin-bottom:12px;cursor:pointer}.schoolwide-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.schoolwide-actions .button.secondary{background:#fff;color:var(--navy);border-color:#fff}.schoolwide-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px;border-radius:14px;background:#e9eef2}.schoolwide-tabs button{flex:1;min-width:max-content;border:0;border-radius:10px;padding:11px 18px;background:transparent;color:var(--ink);font-weight:800;cursor:pointer}.schoolwide-tabs button.active{background:#fff;color:var(--navy);box-shadow:0 3px 10px rgba(31,51,68,.1)}.schoolwide-metrics{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px}.schoolwide-metrics article{padding:16px 18px;border-radius:14px;background:#fff;border:1px solid #dfe5e9}.schoolwide-metrics span{display:block;font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:#68737c}.schoolwide-metrics strong{display:block;margin-top:6px;font-size:27px;color:var(--navy)}.schoolwide-scroll{max-width:100%;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}.schoolwide-grade-grid{display:grid;grid-template-columns:repeat(6,minmax(225px,1fr));gap:14px;align-items:start;min-width:1450px}.schoolwide-grade-grid.midhigh{grid-template-columns:repeat(7,minmax(220px,1fr));min-width:1650px}.schoolwide-grade-grid.full{grid-template-columns:repeat(13,minmax(210px,1fr));min-width:2860px}.schoolwide-grade-card{overflow:hidden;border-radius:16px;background:#fff;border:1px solid #dbe2e7;box-shadow:0 5px 16px rgba(40,60,75,.06)}.schoolwide-grade-card>header{padding:15px 16px;background:var(--navy);color:#fff}.schoolwide-grade-card>header>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.schoolwide-grade-card>header span{font-weight:850}.schoolwide-grade-card>header strong{font-size:16px}.schoolwide-grade-card>header small{display:block;margin-top:7px;color:#fff}.schoolwide-capacity-bar{height:6px;margin-top:10px;border-radius:999px;background:rgba(255,255,255,.28);overflow:hidden}.schoolwide-capacity-bar i{display:block;height:100%;border-radius:inherit;background:var(--gold)}.schoolwide-student-list{display:grid}.schoolwide-student{display:grid;gap:7px;width:100%;padding:12px 14px;border:0;border-bottom:1px solid #e7ebee;background:#fff;text-align:left;color:var(--ink);cursor:pointer}.schoolwide-student:last-child{border-bottom:0}.schoolwide-student:hover,.schoolwide-student:focus-visible{background:#f4f7f9;outline:none}.schoolwide-student strong{font-size:13px;line-height:1.3}.schoolwide-student>span{display:flex;flex-wrap:wrap;gap:5px}.schoolwide-student em{display:inline-flex;align-items:center;min-height:22px;padding:4px 7px;border-radius:999px;font-style:normal;font-size:9px;font-weight:800;line-height:1.2}.schoolwide-type{background:#e8eff6;color:var(--navy)}.schoolwide-type.new-student{background:#f7ecd5;color:#805f20}.schoolwide-status{background:#e6efe9;color:#486753}.schoolwide-status.pending{background:#fff0d8;color:#805f20}.schoolwide-student small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#68737c;font-size:10px;line-height:1.35}.schoolwide-empty{padding:18px 14px;color:#7a858d;font-size:12px}.schoolwide-footnote{margin:0;color:#68737c;font-size:11px;line-height:1.45}
@media(max-width:1100px){.schoolwide-metrics{grid-template-columns:repeat(3,1fr)}.schoolwide-hero{align-items:flex-start;flex-direction:column}.schoolwide-actions{justify-content:flex-start}.capacity-overview-launch{align-items:flex-start}.capacity-overview-launch-mark{min-width:150px}}
@media(max-width:700px){.capacity-overview-launch{flex-direction:column;padding:22px}.capacity-overview-launch h2,.schoolwide-hero h2{font-size:24px}.capacity-overview-launch-mark{width:100%;min-height:110px}.schoolwide-hero{padding:22px}.schoolwide-actions{display:grid;width:100%}.schoolwide-actions .button{width:100%}.schoolwide-metrics{grid-template-columns:repeat(2,1fr)}.schoolwide-metrics article:last-child{grid-column:span 2}.schoolwide-tabs button{padding:10px 13px}.schoolwide-grade-grid,.schoolwide-grade-grid.midhigh,.schoolwide-grade-grid.full{display:grid;grid-template-columns:1fr;min-width:0}.schoolwide-scroll{overflow:visible}.schoolwide-grade-card{width:100%}}

/* v20.28.27.69: School-wide overview polish and status colour guide */
.capacity-overview-launch h2,
.capacity-overview-launch p { color:#fff !important; }
.capacity-overview-launch .button.primary { background:var(--gold) !important; border-color:var(--gold) !important; color:var(--ink) !important; }
.capacity-overview-launch .button.primary:hover,
.capacity-overview-launch .button.primary:focus-visible { background:#e3b65d !important; border-color:#e3b65d !important; }
.schoolwide-hero h2,
.schoolwide-hero p { color:#fff !important; }
.schoolwide-legend{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:13px 16px;border:1px solid #dfe5e9;border-radius:14px;background:#fff;color:var(--ink)}
.schoolwide-legend strong{color:var(--navy);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.schoolwide-legend span{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;white-space:nowrap}
.schoolwide-legend i{width:13px;height:13px;border-radius:4px;border:1px solid rgba(43,45,49,.16)}
.legend-returning{background:#e6efe9}.legend-new{background:#f7ecd5}.legend-pending{background:#e8eff6}.legend-full{background:#f8dede}.legend-held{background:#eee7f6}
.schoolwide-student.returning-student{border-left:5px solid var(--sage);background:#fbfdfb}
.schoolwide-student.new-student{border-left:5px solid var(--gold);background:#fffdf8}
.schoolwide-student.pending{box-shadow:inset 0 0 0 2px rgba(47,88,139,.22);background:#f8fbff}
.schoolwide-grade-card.at-capacity>header{background:#8b3f45}
.schoolwide-grade-card.has-held>header{box-shadow:inset 0 -4px 0 #9b7fbd}
@media(max-width:700px){.schoolwide-legend{align-items:flex-start}.schoolwide-legend strong{width:100%}.schoolwide-legend span{white-space:normal}}


/* v20.28.27.71 brighter School-Wide Enrolment Overview and planning flags */
.capacity-overview-launch,.schoolwide-hero{background:linear-gradient(135deg,#3A68A2 0%,var(--navy) 55%,#274E7D 100%)}
.capacity-overview-launch-mark{background:rgba(255,255,255,.14);border-color:#E5BA64;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.schoolwide-metrics{grid-template-columns:repeat(6,minmax(115px,1fr))}
.schoolwide-metrics article{background:linear-gradient(180deg,#fff 0%,#F7FAFC 100%);border-color:#C9D6E1;box-shadow:0 4px 12px rgba(47,88,139,.07)}
.schoolwide-metrics article:nth-child(1){border-top:4px solid #3A68A2}.schoolwide-metrics article:nth-child(2){border-top:4px solid #6E8FB6}.schoolwide-metrics article:nth-child(3){border-top:4px solid #5E9D70}.schoolwide-metrics article:nth-child(4){border-top:4px solid #E0AB3F}.schoolwide-metrics article:nth-child(5){border-top:4px solid #4E86C5}.schoolwide-metrics article:nth-child(6){border-top:4px solid #7E57C2}
.schoolwide-grade-card{border-color:#C9D6E1;box-shadow:0 7px 18px rgba(39,78,125,.1)}
.schoolwide-grade-card>header{background:linear-gradient(135deg,#3A68A2,var(--navy))}
.schoolwide-capacity-bar i{background:#F0BE59}
.schoolwide-student.returning-student{border-left-color:#5C9B6B;background:#EAF6ED}
.schoolwide-student.new-student{border-left-color:#E1A528;background:#FFF3D5}
.schoolwide-student.pending{box-shadow:inset 0 0 0 2px #4E86C5;background:#EDF5FF}
.schoolwide-type{background:#DDEAF7;color:#244F7D}.schoolwide-type.new-student{background:#FFE4A3;color:#6D4C00}.schoolwide-status{background:#D9F0E0;color:#2F6740}.schoolwide-status.pending{background:#DDEBFA;color:#225887}
.schoolwide-flag{border:1px solid transparent}.schoolwide-flag.iep{background:#E9DDFC;color:#56368E;border-color:#C8AFE9}.schoolwide-flag.support{background:#DDF5F3;color:#176B68;border-color:#A7DCD8}.schoolwide-flag.safety{background:#FADDDD;color:#8B2F35;border-color:#E8A8AC}
.schoolwide-student.flag-iep{box-shadow:inset -4px 0 0 #7E57C2}.schoolwide-student.flag-support{outline:1px solid rgba(45,140,140,.28);outline-offset:-1px}.schoolwide-student.flag-safety{box-shadow:inset -4px 0 0 #C94A4A}
.legend-returning{background:#BFE0C7}.legend-new{background:#FFD574}.legend-pending{background:#BDD8F5}.legend-full{background:#E99A9F}.legend-held{background:#C9B2E1}.legend-iep{background:#A980D4}.legend-support{background:#70C3BE}.legend-safety{background:#D96B72}
.schoolwide-grade-card.at-capacity>header{background:linear-gradient(135deg,#B84E55,#8F353D)}
.schoolwide-grade-card.has-held>header{box-shadow:inset 0 -5px 0 #B393D1}
@media(max-width:1100px){.schoolwide-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.schoolwide-metrics{grid-template-columns:repeat(2,1fr)}.schoolwide-metrics article:last-child{grid-column:auto}}


/* v20.28.27.72 Tour Request chronology and simplified grade review */
.tours-table .table-head,.tours-table .table-row{min-width:1120px}
.parent-grade-review.is-needed{gap:12px;padding:16px 18px;border:1px solid #e6d09c;border-left:5px solid var(--gold);border-radius:12px;background:#fffaf0}
.parent-grade-review .grade-review-message{font-size:14px;line-height:1.5;color:var(--ink)}
.parent-grade-review .grade-review-message strong{display:block;margin-bottom:3px;color:var(--navy);font-size:15px}
.parent-grade-review .grade-review-details{display:grid;gap:8px}
.parent-grade-review .grade-review-details textarea{min-height:92px;background:#fff}
.parent-grade-review .form-help{margin:0;color:#5f6b76;font-size:12.5px;line-height:1.5}
@media(max-width:700px){.parent-grade-review.is-needed{padding:14px}.parent-grade-review .grade-review-message strong{font-size:14px}}


/* v20.28.27.73 Tour Request column clarity and centred headings */
.tours-table .table-head,
.tours-table .table-row{
  min-width:1420px;
  grid-template-columns:
    minmax(155px,1.05fr)
    minmax(155px,1fr)
    minmax(135px,.9fr)
    minmax(165px,1fr)
    minmax(165px,1fr)
    minmax(165px,1fr)
    minmax(190px,1.15fr)
    minmax(150px,.9fr);
}
.tours-table .table-head>span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  text-align:center;
  line-height:1.25;
}
.tours-table .table-row>span{min-width:0}
.tours-table .table-row>span:nth-child(4),
.tours-table .table-row>span:nth-child(5),
.tours-table .table-row>span:nth-child(6){text-align:center}

/* v20.28.27.74 Tour Request table alignment */
.tours-table .table-head,
.tours-table .table-row{
  align-items:stretch;
  column-gap:0;
  padding-left:18px;
  padding-right:18px;
}
.tours-table .table-head>span,
.tours-table .table-row>span{
  min-width:0;
  display:flex;
  align-items:center;
  padding:12px 16px;
  line-height:1.35;
}
.tours-table .table-head>span{
  justify-content:center;
  text-align:center;
}
.tours-table .table-row>span:nth-child(1),
.tours-table .table-row>span:nth-child(2),
.tours-table .table-row>span:nth-child(3),
.tours-table .table-row>span:nth-child(7){
  justify-content:flex-start;
  text-align:left;
}
.tours-table .table-row>span:nth-child(4),
.tours-table .table-row>span:nth-child(5),
.tours-table .table-row>span:nth-child(8){
  justify-content:center;
  text-align:center;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.tours-table .table-row>span:nth-child(6){
  justify-content:center;
  text-align:center;
  flex-direction:column;
}
.tours-table .table-row>span:nth-child(6) .badge{
  margin-inline:auto;
  justify-content:center;
  text-align:center;
}
.tours-table .table-row>span:nth-child(6) small{
  width:100%;
  text-align:center;
}
.tours-table .table-row strong,
.tours-table .table-row small{
  max-width:100%;
  overflow-wrap:anywhere;
}
@media(max-width:900px){
  .tours-table .table-head>span,
  .tours-table .table-row>span{padding-left:12px;padding-right:12px}
}

/* v20.28.27.75 Shared list-table alignment */
.tours-table .table-head,
.tours-table .table-row{
  align-items:center;
}
.tours-table .table-head>span,
.tours-table .table-row>span{
  justify-content:flex-start;
  text-align:left;
  align-self:stretch;
}
.tours-table .table-row>span:nth-child(6){
  align-items:flex-start;
  justify-content:center;
  text-align:left;
}
.tours-table .table-row>span:nth-child(6) .badge{
  margin-inline:0;
  justify-content:center;
  text-align:center;
}
.tours-table .table-row>span:nth-child(6) small{
  width:auto;
  text-align:left;
}
.tours-table .table-row>span:nth-child(4),
.tours-table .table-row>span:nth-child(5),
.tours-table .table-row>span:nth-child(8){
  justify-content:flex-start;
  text-align:left;
}

/* v20.28.27.76 submission dates and newest-first record registers */
.applications-table .table-head,.applications-table .table-row{grid-template-columns:minmax(190px,1.15fr) minmax(150px,.82fr) minmax(155px,.9fr) minmax(145px,.82fr) minmax(210px,1.2fr) minmax(140px,.76fr) minmax(125px,.68fr);min-width:1220px}
.applicant-list-table .table-head,.applicant-list-table .table-row{grid-template-columns:minmax(190px,1.15fr) minmax(150px,.85fr) minmax(120px,.65fr) minmax(180px,1fr) minmax(145px,.78fr) minmax(210px,1.15fr);min-width:1080px}
.family-list-table .table-head,.family-list-table .table-row{grid-template-columns:minmax(190px,1.05fr) minmax(150px,.82fr) minmax(170px,.9fr) minmax(240px,1.28fr) minmax(145px,.75fr) minmax(190px,1fr);min-width:1160px}
.document-family-sheet .sheet-head,.document-family-row{grid-template-columns:minmax(210px,.9fr) minmax(155px,.65fr) minmax(420px,1.9fr) minmax(80px,.3fr);min-width:1000px}
.enrollment-sheet .sheet-head,.enrollment-sheet .sheet-row{grid-template-columns:minmax(190px,1fr) minmax(155px,.78fr) minmax(105px,.48fr) minmax(145px,.72fr) minmax(200px,1fr) minmax(210px,1.05fr) minmax(300px,1.5fr) minmax(125px,.65fr);min-width:1450px}
.table .date-cell,.sheet-table .date-cell{font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:760px){.applications-table .table-head,.applications-table .table-row{min-width:1220px}.applicant-list-table .table-head,.applicant-list-table .table-row{min-width:1080px}.family-list-table .table-head,.family-list-table .table-row{min-width:1160px}.document-family-sheet .sheet-head,.document-family-row{min-width:1000px}.enrollment-sheet .sheet-head,.enrollment-sheet .sheet-row{min-width:1450px}}

/* v20.28.27.77 sortable workflow registers */
.table-head > span { min-width: 0; }
.table-sort { appearance:none; border:0; background:transparent; color:inherit; font:inherit; font-weight:800; letter-spacing:inherit; text-transform:inherit; padding:0; margin:0; display:inline-flex; align-items:center; gap:.38rem; cursor:pointer; text-align:left; }
.table-sort span { font-size:.72em; opacity:.48; }
.table-sort:hover, .table-sort:focus-visible, .table-sort.active { color:var(--navy); }
.table-sort.active span { color:var(--gold); opacity:1; }
.table-sort:focus-visible { outline:2px solid var(--gold); outline-offset:4px; border-radius:3px; }
@media (max-width: 760px) { .table-sort { min-height:32px; } }
.list-filter-bar{display:flex;flex-wrap:wrap;gap:.75rem;padding:0 1.25rem 1rem;align-items:end}.list-filter-control{display:grid;gap:.3rem;min-width:180px}.list-filter-control span{font-size:.75rem;font-weight:800;color:#526275;text-transform:uppercase;letter-spacing:.06em}.list-filter-control select{min-height:42px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:.55rem .75rem;color:var(--ink);font:inherit}@media(max-width:640px){.list-filter-bar{padding:.75rem 1rem}.list-filter-control{min-width:100%;}}

/* v20.28.27.83: prevent internal and public form controls from escaping outlined containers. */
.app form fieldset,.app form label,.app .drawer fieldset,.app .drawer label,.public-form-page form fieldset,.public-form-page form label{min-width:0;max-width:100%}
.app form fieldset,.app .drawer fieldset,.public-form-page form fieldset{width:100%;overflow:hidden}
.app form input,.app form select,.app form textarea,.app .drawer input,.app .drawer select,.app .drawer textarea,.public-form-page form input,.public-form-page form select,.public-form-page form textarea{min-width:0;max-width:100%}
.app .native-checkbox-row,.app .checkbox-row,.public-form-page .booking-choice-card{width:100%;min-width:0;overflow-wrap:anywhere}

/* v20.28.27.88: place grouped-question headings fully inside outlined boxes. */
.app form fieldset,
.app .drawer fieldset,
.public-form-page form fieldset{
  position:relative;
  min-inline-size:0;
  overflow:visible;
  padding-top:58px;
}
.app form fieldset > legend,
.app .drawer fieldset > legend,
.public-form-page form fieldset > legend{
  position:absolute;
  top:18px;
  left:22px;
  display:block;
  width:auto;
  max-width:calc(100% - 44px);
  margin:0;
  padding:0;
  background:transparent;
  color:var(--ink);
  font-weight:800;
  line-height:1.35;
  white-space:normal;
  overflow-wrap:anywhere;
}
@media(max-width:640px){
  .app form fieldset,
  .app .drawer fieldset,
  .public-form-page form fieldset{padding-top:54px}
  .app form fieldset > legend,
  .app .drawer fieldset > legend,
  .public-form-page form fieldset > legend{top:16px;left:16px;max-width:calc(100% - 32px)}
}


/* v21.0.0 stability and accessibility layer */
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
button, a, input, select, textarea { scroll-margin: 96px; }
body.drawer-open { overflow: hidden; }
.loading-card[aria-busy="true"], .button[aria-busy="true"] { cursor: progress; }
.button:disabled, button:disabled { opacity: .62; cursor: not-allowed; }
.form-error, .notice, .toast { overflow-wrap: anywhere; }
.drawer [role="alert"], .form-error { color: #8a1f1f; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}


/* v21.0.3 single-control application workflow */
.workflow-confirmation{margin-top:14px;padding:16px;border:1px solid rgba(47,88,139,.28);border-radius:14px;background:#f4f7fb}.workflow-confirmation strong{display:block;color:var(--navy);font-size:1.05rem}.workflow-confirmation p{margin:7px 0 0}.workflow-readonly>div{padding:12px;border-radius:12px;background:#f7f8fa}.admin-override{border-color:var(--gold)}.admin-override summary{cursor:pointer;font-weight:800;color:#7a5819}.workflow-history{display:grid;gap:9px}.workflow-history-entry{display:flex;justify-content:space-between;gap:16px;padding:10px 12px;border-bottom:1px solid #e4e8ee}.workflow-history-entry span{color:#5a6472;font-size:.9rem;text-align:right}@media(max-width:720px){.workflow-history-entry{display:grid;gap:3px}.workflow-history-entry span{text-align:left}}

/* v21.1.5: confirmed tour host summary */
.tour-confirmed-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 14px}
.tour-confirmed-summary>div{padding:14px 16px;border:1px solid #cbd8e5;border-radius:12px;background:#fff}
.tour-confirmed-summary .field-label{display:block;margin-bottom:5px}
.tour-confirmed-summary strong{color:var(--navy);font-size:16px}
@media(max-width:700px){.tour-confirmed-summary{grid-template-columns:1fr}}

/* v21.1.9: interactive Email Centre filters and protected history controls */
.email-centre-summary .email-centre-card{appearance:none;display:grid;gap:5px;min-width:0;padding:18px 20px;border:1px solid #dbe3ea;border-radius:12px;background:#fff;text-align:left;cursor:pointer;font:inherit;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.email-centre-summary .email-centre-card:hover{border-color:#9fb3c7;transform:translateY(-1px)}
.email-centre-summary .email-centre-card:focus-visible{outline:3px solid rgba(47,88,139,.25);outline-offset:2px}
.email-centre-summary .email-centre-card.is-active{border-color:var(--navy);background:#eef3f8;box-shadow:0 0 0 2px rgba(47,88,139,.12)}
.email-centre-summary .email-centre-card.has-failures{border-color:#e3b3ae;background:#fff8f7}.email-centre-summary .email-centre-card.has-failures strong{color:#a24740}
.email-history-controls,.email-filter-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.secondary-danger{background:#fff!important;color:#9d3f38!important;border:1px solid #d7a29d!important}
.danger-confirmation{padding:14px 16px;border:1px solid #e3b3ae;border-radius:10px;background:#fff8f7;color:#6f302b}.danger-confirmation p{margin:5px 0 0}
@media(max-width:700px){.email-history-controls{width:100%;justify-content:stretch}.email-history-controls .button{flex:1 1 220px}.email-filter-heading-actions{width:100%;justify-content:space-between}.email-centre-summary .email-centre-card{padding:14px 15px}}
@media(max-width:440px){.email-history-controls .button,.email-filter-heading-actions .button{width:100%}.email-filter-heading-actions{display:grid}.email-centre-summary .email-centre-card{min-height:88px}}

/* v21.1.11 internal workflow simplification */
.guided-register-table .table-head,
.guided-register-table .table-row,
.applicant-list-table .table-head,
.applicant-list-table .table-row,
.family-list-table .table-head,
.family-list-table .table-row {
  column-gap: 16px;
  align-items: center;
  padding-left: 22px;
  padding-right: 22px;
}

.applications-table .table-head,
.applications-table .table-row {
  grid-template-columns:
    minmax(185px, 1.15fr)
    minmax(240px, 1.45fr)
    minmax(200px, .72fr)
    minmax(140px, .82fr);
  min-width: 810px;
}

.tours-table .table-head,
.tours-table .table-row {
  grid-template-columns:
    minmax(205px, 1.22fr)
    minmax(155px, .88fr)
    minmax(240px, 1.38fr)
    minmax(200px, .7fr)
    minmax(135px, .78fr);
  min-width: 1005px;
  column-gap: 16px;
  align-items: center;
  padding-left: 22px;
  padding-right: 22px;
}

.tours-table .table-head > span,
.tours-table .table-row > span {
  display: block;
  align-self: auto;
  min-width: 0;
  padding: 0;
  text-align: left;
  white-space: normal;
}

.tours-table .table-head > span {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.tours-table .table-row > .record-stage-cell {
  display: grid;
  align-items: initial;
}

.applicant-list-table .table-head,
.applicant-list-table .table-row {
  grid-template-columns:
    minmax(180px, 1.05fr)
    minmax(145px, .82fr)
    minmax(105px, .58fr)
    minmax(175px, 1fr)
    minmax(230px, 1.3fr);
  min-width: 930px;
}

.family-list-table .table-head,
.family-list-table .table-row {
  grid-template-columns:
    minmax(185px, 1fr)
    minmax(145px, .78fr)
    minmax(175px, .92fr)
    minmax(235px, 1.28fr)
    minmax(190px, 1fr);
  min-width: 980px;
}

.guided-register-table .table-row,
.applicant-list-table .table-row,
.family-list-table .table-row {
  min-height: 82px;
}

.guided-register-table .table-row:focus-visible,
.applicant-list-table .table-row:focus-visible,
.family-list-table .table-row:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: -3px;
  background: #F3F7FC;
}

.attention-head,
.attention-row {
  grid-template-columns:
    minmax(190px, 1.25fr)
    minmax(210px, 1.35fr)
    minmax(120px, .7fr)
    minmax(135px, .75fr);
}

.attention-row {
  min-height: 86px;
}

.attention-required-action {
  min-width: 0;
  color: var(--ink);
  font-weight: 720;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.work-sheet .sheet-head,
.work-sheet .sheet-row {
  grid-template-columns:
    minmax(190px, 1.15fr)
    minmax(180px, 1fr)
    minmax(230px, 1.35fr)
    minmax(135px, .76fr)
    minmax(200px, .68fr);
  min-width: 1020px;
}

.work-stage-cell {
  display: grid;
  gap: 3px;
  min-width: 0;
  line-height: 1.35;
}

.work-stage-cell strong {
  overflow-wrap: anywhere;
}

.work-detail-cell {
  overflow-wrap: anywhere;
}

.tour-appointment-card {
  display: grid;
  gap: 14px;
}

/* The family's requested date and time, at the top of the card where a staff
   member picking up the phone will actually see it. It used to sit collapsed at
   the bottom of Family and Student Details, between the birthdate and the grade. */
.tour-requested-line {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 13px 16px;
  border-left: 5px solid var(--gold);
  border-radius: 10px;
  background: var(--pale);
}

.tour-requested-line strong {
  color: var(--navy);
  font-size: 17px;
}

/* A new inquiry is one focused card: the requested time, two fields, two buttons.
   The status grid, the booking source and the separate Save Tour Details button
   are all suppressed there, because "here's what to do next" is the whole ask. */
.tour-appointment-focused {
  border-left: 4px solid var(--gold);
}

.tour-appointment-focused .workflow-actions {
  margin-top: 2px;
}

.tour-appointment-card > h3,
#application-notes-form > h3 {
  margin: 0;
}

.tour-context-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0 4px;
}
.tour-context-pill {
  margin-left: 0;
}
.workflow-actions-heading-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.call-phone-pill {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 14px;
  border: 1px solid #c6d8c5;
  border-radius: 999px;
  background: #edf5eb;
  color: #3f6b4e;
  font-size: 15px;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}
.call-phone-pill:hover {
  background: #e0edde;
}

.readonly-response {
  display: grid;
  gap: 5px;
  padding: 12px 0;
  border-bottom: 1px solid #E2E7EC;
}

.readonly-response:last-child {
  border-bottom: 0;
}

.readonly-response p {
  margin: 0;
  color: var(--ink);
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.record-details,
.workflow-technical-details,
.admin-override {
  overflow: visible;
}

.record-details > summary,
.workflow-technical-details > summary,
.admin-override > summary {
  min-height: 24px;
}

.workspace-layout {
  align-content: start;
}

.workspace-guide.lca-quick-guide-collapsed + .workspace-main {
  margin-top: -4px;
}

@media (max-width: 900px) {
  .applications-table .table-head,
  .applications-table .table-row { min-width: 790px; }

  .tours-table .table-head,
  .tours-table .table-row { min-width: 960px; }

  .applicant-list-table .table-head,
  .applicant-list-table .table-row { min-width: 930px; }

  .family-list-table .table-head,
  .family-list-table .table-row { min-width: 980px; }

  .work-sheet .sheet-head,
  .work-sheet .sheet-row { min-width: 940px; }
}

@media (max-width: 760px) {
  .attention-head {
    display: none;
  }

  .attention-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
    padding: 16px 18px;
  }

  .attention-row > span {
    min-width: 0;
  }

  .attention-row > span:nth-child(2)::before,
  .attention-row > span:nth-child(3)::before,
  .attention-row > span:nth-child(4)::before {
    display: block;
    margin-bottom: 3px;
    color: #637184;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
  }

  .attention-row > span:nth-child(2)::before { content: "Required action"; }
  .attention-row > span:nth-child(3)::before { content: "Due"; }
  .attention-row > span:nth-child(4)::before { content: "Assigned to"; }
}

@media (max-width: 680px) {
  .work-sheet {
    overflow: visible !important;
  }

  .work-sheet .sheet-row {
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
  }

  .work-sheet .work-record-cell,
  .work-sheet .work-stage-cell,
  .work-sheet .work-detail-cell {
    grid-column: 1 / -1 !important;
    min-width: 0 !important;
  }

  .work-sheet .work-stage-cell,
  .work-sheet .work-detail-cell {
    display: grid !important;
    grid-template-columns: 92px minmax(0, 1fr) !important;
    gap: 10px !important;
    white-space: normal !important;
    overflow: visible !important;
  }

  .work-sheet .work-stage-cell::before,
  .work-sheet .work-detail-cell::before {
    content: attr(data-label);
    color: var(--ink);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
  }

  .work-sheet .workflow-due {
    margin-top: -4px;
  }
}

@media (max-width: 440px) {
  .toolbar,
  .panel-head {
    align-items: stretch;
  }

  .toolbar-actions,
  .toolbar-actions .button,
  #toggle-tour-archive {
    width: 100%;
  }

  .work-sheet .work-stage-cell,
  .work-sheet .work-detail-cell {
    grid-template-columns: 1fr !important;
    gap: 3px !important;
  }
}


/* v21.1.12: actionable School-Wide Enrolment Overview records */
.schoolwide-student{position:relative;cursor:pointer;text-align:left;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}

.schoolwide-student:hover,.schoolwide-student:focus-visible{transform:translateY(-1px);box-shadow:0 6px 14px rgba(47,88,139,.16);border-color:var(--navy);outline:none}

.enrollment-record-actions{align-items:center;flex-wrap:wrap}
.enrollment-record-actions .button.danger{margin-right:auto}
@media(max-width:700px){.enrollment-record-actions{display:grid;grid-template-columns:1fr}.enrollment-record-actions .button{width:100%;margin:0}}


/* v21.1.13: visible School-Wide Enrolment actions and Arc Theory footer branding. */
.schoolwide-student-card{position:relative;border:2px solid transparent;border-radius:10px;background:#fff;overflow:hidden}
.schoolwide-student-card .schoolwide-student{width:100%;border:0;border-radius:0;box-shadow:none}

.schoolwide-student-actions{display:grid;grid-template-columns:1fr auto;gap:6px;padding:7px;border-top:1px solid rgba(47,88,139,.16);background:rgba(255,255,255,.96)}
.schoolwide-student-actions .button{min-height:34px;padding:6px 10px;font-size:11px}
.schoolwide-student-actions .schoolwide-delete-student{min-width:76px}
.schoolwide-student-card:focus-within{outline:3px solid rgba(216,167,76,.45);outline-offset:2px}
.sidebar-company{margin:7px 0 2px;padding:5px 7px;border-radius:8px;background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.16)}
.sidebar-company img{display:block;width:100%;max-height:45px;object-fit:contain}
.sidebar-version{padding-left:0;text-align:center}
@media(max-width:700px){.schoolwide-student-actions{grid-template-columns:1fr}.schoolwide-student-actions .button{width:100%}}

/* v21.1.14: read-only planning overview, enrolment record actions, and square Arc Theory footer card. */
.schoolwide-student-card.schoolwide-readonly .schoolwide-student{
  cursor:default;
  width:100%;
}
.schoolwide-student-card.schoolwide-readonly .schoolwide-student:hover,
.schoolwide-student-card.schoolwide-readonly .schoolwide-student:focus{
  transform:none;
  box-shadow:none;
}
.enrollment-actions-cell{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.sidebar-company{
  width:min(220px,calc(100% - 28px));
  aspect-ratio:1 / 1;
  margin:14px auto 10px;
  padding:20px 16px 18px;
  border-radius:22px;
  background:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  overflow:hidden;
}
.sidebar-company img{
  display:block;
  width:100%;
  height:auto;
  max-height:142px;
  object-fit:contain;
}
.sidebar-company > span{
  display:block;
  margin-top:11px;
  color:#07152f;
  font-size:13px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.24em;
  text-transform:uppercase;
  text-align:center;
  white-space:nowrap;
}
.sidebar-company > span span{color:#a41cff;}
@media (max-height:760px){
  .sidebar-company{width:min(176px,calc(100% - 32px));padding:15px 12px 13px;border-radius:18px;}
  .sidebar-company img{max-height:112px;}
  .sidebar-company > span{font-size:10px;margin-top:7px;letter-spacing:.19em;}
}
@media (max-width:760px){
  .enrollment-actions-cell{min-width:132px;}
  .enrollment-actions-cell .button{flex:1 1 auto;}
}
.possible-duplicate-row{border-left:5px solid var(--gold)!important;background:#fffaf0!important;}
.duplicate-review-card{border:1px solid var(--gold)!important;border-left:6px solid var(--gold)!important;background:#fffaf0!important;}
.duplicate-review-card>h3{color:#6f4d09!important;}

/* v21.1.16: compact, readable Arc Theory sidebar footer. */
.sidebar-company{
  width:min(160px,calc(100% - 44px));
  aspect-ratio:1 / 1;
  margin:10px auto 7px;
  padding:12px 11px 11px;
  border-radius:16px;
  box-shadow:0 3px 10px rgba(0,0,0,.14);
}
.sidebar-company img{
  width:100%;
  max-height:92px;
}
.sidebar-company > span{
  margin-top:6px;
  font-size:10px;
  line-height:1.2;
  letter-spacing:.16em;
}
@media (max-height:760px){
  .sidebar-company{
    width:min(138px,calc(100% - 50px));
    padding:10px 9px 9px;
    border-radius:14px;
  }
  .sidebar-company img{max-height:78px;}
  .sidebar-company > span{font-size:9px;letter-spacing:.13em;}
}

/* v21.1.17: scrollable Arc Theory footer, defined overview cards, and compact Enrolment Register rows. */
@media (min-width:781px){
  .sidebar{
    overflow-y:auto !important;
    overflow-x:hidden !important;
    display:block !important;
  }
  .sidebar #main-nav,
  .sidebar nav{
    overflow:visible !important;
    min-height:auto !important;
    padding-bottom:10px;
  }
  .sidebar-bottom{
    margin-top:12px !important;
  }
}
.sidebar-company{
  width:min(176px,calc(100% - 24px)) !important;
  aspect-ratio:auto !important;
  margin:10px auto 7px !important;
  padding:8px !important;
  border-radius:12px !important;
  background:#fff !important;
  overflow:hidden !important;
}
.sidebar-company img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
}

.schoolwide-student-list{
  display:grid !important;
  gap:8px !important;
  padding:8px !important;
  background:#eef2f5;
}
.schoolwide-student-card.schoolwide-readonly{
  border:1px solid #c8d3dd !important;
  border-radius:10px !important;
  background:#fff !important;
  overflow:hidden;
  box-shadow:0 2px 5px rgba(32,57,83,.06);
}
.schoolwide-student-card.schoolwide-readonly .schoolwide-student{
  border:0 !important;
  border-left:5px solid var(--sage) !important;
  border-radius:9px !important;
  padding:12px 13px !important;
}
.schoolwide-student-card.schoolwide-readonly.new-student .schoolwide-student{
  border-left-color:var(--gold) !important;
}
.schoolwide-student-card.schoolwide-readonly.pending{
  border-color:#4E86C5 !important;
}
.schoolwide-student-card.schoolwide-readonly.pending .schoolwide-student{
  box-shadow:none !important;
}

.enrollment-sheet{
  overflow-x:auto;
}
.enrollment-sheet .sheet-head,
.enrollment-sheet .sheet-row{
  grid-template-columns:170px 138px 78px 118px 175px 168px minmax(230px,1fr) 164px !important;
  min-width:1270px !important;
  column-gap:0 !important;
}
.enrollment-sheet .sheet-head > *,
.enrollment-sheet .sheet-row > *{
  min-width:0 !important;
  padding-left:12px !important;
  padding-right:12px !important;
}
.enrollment-student-cell strong,
.enrollment-sheet .date-cell,
.enrollment-sheet .sheet-row > span:nth-child(4),
.enrollment-sheet .sheet-row > span:nth-child(6),
.enrollment-actions-cell{
  white-space:nowrap !important;
}
.enrollment-pill-stack{
  flex-wrap:wrap !important;
  row-gap:3px !important;
}
.enrollment-student-cell strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
}
.enrollment-row .badge{
  white-space:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
  min-width:0 !important;
}
.enrollment-row > span:nth-child(4) .badge,
.enrollment-row > span:nth-child(5) .badge{
  min-width:0 !important;
}
.enrollment-internal-note{
  display:flex !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
  overflow:hidden !important;
}
.enrollment-internal-note > span:last-child{
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.enrollment-actions-cell{
  display:flex !important;
  flex-wrap:nowrap !important;
  justify-content:flex-end !important;
  gap:7px !important;
}
.enrollment-actions-cell .button{
  flex:0 0 auto !important;
  width:auto !important;
  min-width:72px !important;
  padding:7px 11px !important;
  white-space:nowrap !important;
}
@media(max-width:760px){
  .enrollment-sheet .sheet-head,
  .enrollment-sheet .sheet-row{min-width:1270px !important;}
}

/* v21.1.18: open record sections, simplified sidebar footer, and full-note hover access. */
.enrollment-internal-note[title]{cursor:help;}
.enrollment-internal-note[tabindex]:focus-visible{outline:3px solid rgba(47,88,139,.35);outline-offset:3px;border-radius:6px;}

/* v21.1.19: clearer Tour Request section hierarchy */
.drawer-section-heading{margin:2px 0 -4px;color:var(--ink);font-size:1rem;font-weight:850;letter-spacing:.01em}

/* v21.1.22: reserve desktop sidebar scrollbar space so menu width never shifts. */
@media (min-width:781px){
  .sidebar{
    scrollbar-gutter:stable;
    overflow-y:scroll !important;
  }
}


/* v21.1.23: keep the mobile account control stable and fall back cleanly when a saved profile image is unavailable. */
.profile-button{overflow:hidden}
.profile-button img[data-profile-image]{display:block;flex:0 0 auto;max-width:100%;max-height:100%;font-size:0;color:transparent}
.profile-button [data-profile-fallback][hidden]{display:none!important}
@media(max-width:780px){
  .topbar>.profile-menu-wrap{min-width:46px;max-width:46px;overflow:visible}
  .topbar>.profile-menu-wrap .profile-button{overflow:hidden!important}
}
@media(max-width:390px){
  .topbar>.profile-menu-wrap{min-width:44px;max-width:44px}
}

/* v21.1.24 consistent detail cards and form-status treatment */
.app .detail-grid{
  align-items:stretch;
}
.app .detail-grid > div{
  min-height:78px;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
}
.app .detail-grid .form-status-badge{
  width:100%;
  max-width:100%;
  min-width:0;
  border-radius:8px;
  justify-content:flex-start;
  padding-inline:12px;
}

/* v21.1.25: dedicated full-width Form Status panel.
   This intentionally does not inherit the generic .badge pill treatment. */
.app .detail-grid .form-status-value{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin-top:4px;
  padding:10px 12px;
  border:1px solid #c8d8e5;
  border-radius:8px;
  background:#edf5fa;
  color:#28567b;
  font-size:.92rem;
  font-weight:800;
  line-height:1.2;
}
.app .detail-grid .form-status-value.status-submitted,
.app .detail-grid .form-status-value.status-completed{
  border-color:#b8cdbf;
  background:#edf5ef;
  color:#45614f;
}
.app .detail-grid .form-status-value.status-sent,
.app .detail-grid .form-status-value.status-pending{
  border-color:#e4c980;
  background:#fbf5e8;
  color:#76591f;
}
.app .detail-grid .form-status-value.status-expired,
.app .detail-grid .form-status-value.status-failed{
  border-color:#e5c2b9;
  background:#fff0eb;
  color:#94432f;
}

/* v21.1.26: scalable Google Calendar connection workspace */
.calendar-connections-header{align-items:flex-start}
.workspace-header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}
.calendar-connection-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:18px;padding:18px 22px 22px;background:#fff}
.calendar-team-connections,.calendar-shared-connection{min-width:0;border:1px solid var(--border);border-radius:16px;background:var(--surface-soft,#f7f8fa)}
.calendar-team-connections{overflow:hidden}
.calendar-connection-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--border);background:#fff}
.calendar-connection-heading h3{margin:0 0 4px;font-size:18px;color:var(--ink)}
.calendar-connection-heading p{margin:0;color:var(--muted);line-height:1.4}
.calendar-connection-heading>span{flex:0 0 auto;padding:5px 9px;border-radius:8px;background:rgba(47,88,139,.1);color:var(--navy);font-size:12px;font-weight:800}
.calendar-person-list{display:grid}
.calendar-person-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:15px 18px;border-bottom:1px solid var(--border);background:#fff}
.calendar-person-row:last-child{border-bottom:0}
.calendar-person-identity{display:grid;gap:3px;min-width:0}
.calendar-person-identity strong{font-size:15px;color:var(--ink)}
.calendar-person-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.calendar-person-identity>span{width:max-content;max-width:100%;margin-top:3px;padding:3px 7px;border-radius:6px;background:#eef3f7;color:#526372;font-size:11px;font-weight:750}
.calendar-person-state{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:180px}
.calendar-person-state>small{color:var(--muted);font-size:11px;white-space:nowrap}
.calendar-connection-status{display:inline-flex;align-items:center;min-height:30px;padding:6px 10px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:850;white-space:nowrap}
.calendar-connection-status.is-connected{border-color:#bed7c6;background:#e7f1ea;color:#365f43}
.calendar-connection-status.is-disconnected{border-color:#e4c989;background:#fff4dc;color:#7a5a16}
.calendar-connection-empty{padding:20px;color:var(--muted)}
.calendar-shared-connection{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;max-width:none;padding:18px}
.calendar-shared-connection>span:first-child{font-size:12px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.calendar-shared-connection>strong{font-size:19px;color:var(--ink)}
.calendar-shared-connection>small{color:var(--muted);overflow-wrap:anywhere}
.calendar-shared-status{margin:5px 0 2px}
.calendar-shared-connection>p{margin:4px 0 0;line-height:1.5;color:var(--muted)}
.calendar-shared-connection.needs-connection{border-color:rgba(216,167,76,.55);background:rgba(216,167,76,.09)}
@media(max-width:1000px){
  .calendar-connection-layout{grid-template-columns:1fr}
  .calendar-shared-connection{width:100%}
}
@media(max-width:700px){
  .calendar-connections-header{display:grid;gap:16px}
  .workspace-header-actions{display:grid;width:100%}
  .workspace-header-actions .button{width:100%}
  .calendar-connection-layout{padding:16px}
  .calendar-person-row{grid-template-columns:1fr;gap:12px}
  .calendar-person-state{justify-content:space-between;min-width:0}
}
@media(max-width:430px){
  .calendar-connection-heading{display:grid}
  .calendar-person-state{display:grid;justify-content:stretch}
  .calendar-person-state .button{width:100%}
  .calendar-person-state>small{white-space:normal}
}


/* v21.1.31 application-wide visual consistency and School Year Management polish */
.app .panel{overflow:hidden;}
.app .panel-head{padding:24px;gap:20px;}
.app .panel-head>div:first-child{min-width:0;}
.app .panel-head .muted{max-width:850px;line-height:1.55;}
.app .panel-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
.app .settings-form{display:grid;gap:18px;padding:0 24px 24px;}
.app .settings-form label,.app .settings-field{min-width:0;}
.app .settings-form label>span,.app .settings-field>span{display:block;color:var(--ink);font-size:12px;font-weight:800;line-height:1.35;}
.app .settings-form input:not([type=checkbox]):not([type=radio]),
.app .settings-form select,
.app .settings-form textarea{width:100%;margin:0;padding:0 12px;border:1px solid #cbd5df;border-radius:9px;background:#fff;color:var(--ink);font:inherit;box-sizing:border-box;}
.app .settings-form textarea{height:auto;min-height:96px;padding-top:10px;padding-bottom:10px;resize:vertical;}
.app .settings-field{display:grid;align-content:start;gap:8px;padding:18px;border:1px solid #d8e1e9;border-radius:12px;background:#fff;}
.app .settings-field small{color:var(--muted);font-size:11px;line-height:1.45;}
.app .admissions-year-settings .panel-head{padding-bottom:18px;}
.app .admissions-year-form{padding-top:0;}
.app .admissions-year-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr);gap:16px;align-items:stretch;}
.app .admissions-primary-year,.app .admissions-open-years{min-height:154px;}
.app .admissions-primary-year select{margin-top:3px;}
.app .admissions-open-years{position:relative;padding-top:46px;}
.app .admissions-open-years>legend{position:absolute;top:18px;left:18px;max-width:calc(100% - 36px);margin:0;padding:0;color:var(--ink);font-size:14px;font-weight:800;line-height:1.3;}
.app .settings-check-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:9px;}
.app .settings-check-list label{display:flex;align-items:center;gap:9px;min-height:42px;padding:9px 11px;border:1px solid #dce4eb;border-radius:9px;background:#f8fafc;color:var(--ink);font-size:12px;font-weight:750;cursor:pointer;}
.app .settings-check-list label:has(input:checked){border-color:#9eb3c7;background:#eef4f8;}
.app .settings-check-list input[type=checkbox]{width:18px;height:18px;min-width:18px;margin:0;accent-color:var(--navy);}
.app .admissions-year-summary{margin:0;padding:14px 16px;border:1px solid #dde5ec;border-radius:10px;background:#f5f8fa;line-height:1.55;}
.app .admissions-year-save{width:100%;min-width:0;}
.app .school-year-list{padding:0 24px 18px;}
.app .school-year-row{min-height:76px;padding:16px 18px;border-radius:11px;}
.app .school-year-row>.badge{justify-self:center;}
.app .school-year-row .row-actions{min-width:0;}
.app .row-actions .button{align-items:center;justify-content:center;}
.app .badge{box-sizing:border-box;vertical-align:middle;}
.app .auto-note:last-child{margin:0 24px 24px;}
@media(max-width:900px){
  .app .admissions-year-grid{grid-template-columns:1fr;}
  .app .admissions-primary-year,.app .admissions-open-years{min-height:0;}
  .app .school-year-row>.badge{justify-self:start;}
}
@media(max-width:640px){
  .app .panel-head{padding:18px 16px;}
  .app .settings-form{padding:0 16px 18px;}
  .app .settings-field{padding:16px;}
  .app .admissions-open-years{padding-top:44px;}
  .app .admissions-open-years>legend{top:16px;left:16px;max-width:calc(100% - 32px);}
  .app .settings-check-list{grid-template-columns:1fr;}
  .app .school-year-list{padding:0 16px 16px;}
  .app .school-year-row{padding:15px;}
  .app .school-year-row .row-actions{width:100%;}
  .app .school-year-row .row-actions .button{flex:1 1 150px;}
  .app .auto-note:last-child{margin:0 16px 18px;}
}


/* v21.1.33 navigation information architecture and branding polish */
.nav-group > summary { min-height: 38px; padding: 10px 12px 7px; }
.nav-group > summary span { line-height: 1.25; }
.nav-group[data-nav-group="pipeline"] > summary { color: #d8c38e; }
.nav-group[open] > summary { color: #fff; }
.sidebar nav button { align-items: center; }
.sidebar nav button > span { display:inline-grid; place-items:center; width:20px; height:20px; font-size:15px; line-height:1; }
.sidebar-company img { width: 100%; height: auto; max-height: 112px; object-fit: contain; }
.lca-create-menu > summary::after { content: "⌄"; margin-left: .5rem; font-size: .78rem; }
.lca-create-menu[open] > summary::after { transform: rotate(180deg); }
@media (max-height: 820px) and (min-width: 781px) {
  .sidebar-company img { max-height: 86px; }
}


/* v21.1.34 protected school-year actions */
.app .school-year-more{position:relative;}
.app .school-year-more>summary{list-style:none;cursor:pointer;user-select:none;}
.app .school-year-more>summary::-webkit-details-marker{display:none;}
.app .school-year-more>summary::after{content:'⌄';margin-left:7px;font-size:11px;line-height:1;transition:transform .16s ease;}
.app .school-year-more[open]>summary::after{transform:rotate(180deg);}
.app .school-year-more-menu{position:absolute;z-index:30;right:0;top:calc(100% + 7px);display:grid;gap:7px;width:min(280px,calc(100vw - 44px));padding:10px;border:1px solid #d3dde6;border-radius:10px;background:#fff;box-shadow:0 14px 32px rgba(31,52,76,.16);}
.app .school-year-delete-action{width:100%;min-height:40px;padding:9px 12px;border:1px solid #c84a38;border-radius:8px;background:#fff;color:#a32e20;font:inherit;font-size:12px;font-weight:800;text-align:left;cursor:pointer;}
.app .school-year-delete-action:hover,.app .school-year-delete-action:focus-visible{background:#fff3f1;outline:none;}
.app .school-year-more-menu small{color:var(--muted);font-size:10px;line-height:1.4;}
@media(max-width:640px){.app .school-year-more{width:100%;}.app .school-year-more>summary{width:100%;}.app .school-year-more-menu{position:static;width:100%;margin-top:7px;box-sizing:border-box;box-shadow:none;}}

/* v21.1.36 section-based brand palette context system */
:root{
  --context-accent:#2F588B;
  --context-accent-strong:#24466f;
  --context-accent-soft:rgba(47,88,139,.12);
  --context-accent-ring:rgba(47,88,139,.24);
  --context-accent-text:#2F588B;
  --context-accent-on:#fff;
}
.app[data-context-theme="daily"]{
  --context-accent:#2F588B;--context-accent-strong:#24466f;
  --context-accent-soft:rgba(47,88,139,.12);--context-accent-ring:rgba(47,88,139,.24);
  --context-accent-text:#2F588B;--context-accent-on:#fff;
}
.app[data-context-theme="pipeline"]{
  --context-accent:#D8A74C;--context-accent-strong:#b78632;
  --context-accent-soft:rgba(216,167,76,.15);--context-accent-ring:rgba(216,167,76,.28);
  --context-accent-text:#7b591d;--context-accent-on:#2B2D31;
}
.app[data-context-theme="records"]{
  --context-accent:#7F9C88;--context-accent-strong:#617d6a;
  --context-accent-soft:rgba(127,156,136,.14);--context-accent-ring:rgba(127,156,136,.27);
  --context-accent-text:#4f6d59;--context-accent-on:#fff;
}
.app[data-context-theme="planning"]{
  --context-accent:#2F588B;--context-accent-strong:#24466f;
  --context-accent-soft:rgba(47,88,139,.10);--context-accent-ring:rgba(127,156,136,.28);
  --context-accent-text:#2F588B;--context-accent-on:#fff;
}
.app[data-context-theme="communications"]{
  --context-accent:#D8A74C;--context-accent-strong:#b78632;
  --context-accent-soft:rgba(216,167,76,.14);--context-accent-ring:rgba(127,156,136,.24);
  --context-accent-text:#76571e;--context-accent-on:#2B2D31;
}
.app[data-context-theme="administration"]{
  --context-accent:#2B2D31;--context-accent-strong:#17191c;
  --context-accent-soft:rgba(43,45,49,.10);--context-accent-ring:rgba(216,167,76,.28);
  --context-accent-text:#2B2D31;--context-accent-on:#fff;
}
.app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card){
  position:relative;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background-color .18s ease;
}
.app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card)::before{
  content:"";position:absolute;z-index:2;left:18px;right:18px;top:-1px;height:4px;
  border-radius:0 0 5px 5px;background:transparent;transform:scaleX(.35);transform-origin:left center;
  opacity:0;pointer-events:none;transition:transform .2s ease,opacity .2s ease,background-color .2s ease;
}
.app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card):hover{border-color:color-mix(in srgb,var(--context-accent) 34%,#d9dee5);}
.app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card):hover::before{
  background:color-mix(in srgb,var(--context-accent) 62%,transparent);transform:scaleX(.68);opacity:.65;
}
.app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card):focus-within,
.app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card).is-working{
  border-color:var(--context-accent);box-shadow:0 0 0 3px var(--context-accent-soft),var(--shadow);
}
.app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card):focus-within::before,
.app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card).is-working::before{
  background:var(--context-accent);transform:scaleX(1);opacity:1;
}
.app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card).is-complete-context::before{
  background:var(--sage);transform:scaleX(1);opacity:.78;
}
.app .active-context-label{display:inline-flex;align-items:center;gap:7px;color:var(--context-accent-text);}
.app .active-context-label::before{
  content:"";width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--context-accent);
  box-shadow:0 0 0 4px var(--context-accent-soft);
}
.app .page-guide,.app .guide-card{--guide-accent:var(--context-accent);}
.app .sidebar .nav-group[open]>summary{position:relative;}
.app .sidebar .nav-group[open]>summary::before{
  content:"";position:absolute;left:2px;top:10px;bottom:8px;width:3px;border-radius:4px;background:var(--context-accent);
}
.app .sidebar nav button.active{
  color:var(--context-accent-text);box-shadow:inset 4px 0 0 var(--context-accent),0 5px 15px rgba(34,22,91,.16);
}
.app[data-context-theme="pipeline"] .sidebar nav button.active,
.app[data-context-theme="communications"] .sidebar nav button.active{color:#6f5019;}
.app[data-context-theme="administration"] .sidebar nav button.active{color:var(--ink);}
.app .topbar{position:relative;}
.app .topbar::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:linear-gradient(90deg,var(--context-accent),color-mix(in srgb,var(--context-accent) 22%,transparent) 58%,transparent);
  pointer-events:none;transition:background .2s ease;
}
.app .button.primary:not(.danger){
  border-color:var(--context-accent-strong);background:var(--context-accent);color:var(--context-accent-on);
  box-shadow:0 5px 15px var(--context-accent-soft);
}
.app .button.primary:not(.danger):hover{background:var(--context-accent-strong);}
.app .toolbar .button.primary,.app .panel-head .button.primary{transition:background .18s ease,border-color .18s ease,box-shadow .18s ease;}
@media (prefers-reduced-motion:reduce){
  .app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card),
  .app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card)::before,
  .app .topbar::after{transition:none!important;}
}
@media(max-width:640px){
  .app :is(.panel,.workspace-panel,.detail-block,.settings-field,.card)::before{left:12px;right:12px;}
}

/* v21.1.38 single-accent interface correction */
/* The page header no longer draws a second rule immediately above the first working panel. */
.app .topbar::after{display:none!important;}
/* Page guides and workspace guides use the page's current section colour as their only top accent. */
.app .workspace-guide,
.app .page-guide,
.app .guide-card{
  border-top-color:var(--context-accent)!important;
}
/* Do not add a second active-context strip to components that already provide their own accent border. */
.app :is(.workspace-guide,.page-guide,.guide-card)::before{content:none!important;display:none!important;}

.year-context-select{display:flex;align-items:center;gap:.65rem;min-width:220px}.year-context-select span{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#5c6675}.year-context-select select{min-height:42px;border:1px solid #cbd5e1;border-radius:10px;padding:.55rem 2.1rem .55rem .75rem;background:#fff;color:#20242b}.warning-banner{margin:0 0 1rem;padding:1rem 1.15rem;border:1px solid var(--gold);border-left:5px solid var(--gold);border-radius:12px;background:#fffaf0}.warning-banner p{margin:.35rem 0 0}.reports-intro{display:flex;gap:1rem;align-items:flex-start}.reports-intro>.year-context-select{margin-left:auto}@media(max-width:760px){.year-context-select{width:100%;align-items:stretch;flex-direction:column}.year-context-select select{width:100%}.reports-intro{flex-direction:column}}


/* v21.1.40 read-only access */
.read-only-banner{margin:0 20px 16px;padding:12px 16px;border:1px solid rgba(47,88,139,.25);border-left:5px solid var(--navy);border-radius:10px;background:#f4f7fb;display:flex;gap:10px;align-items:center;color:var(--ink)}.read-only-banner strong{color:var(--navy);white-space:nowrap}.read-only-banner span{font-size:.92rem}.read-only-action-hidden{display:none!important}.read-only-account form :disabled{opacity:.78;cursor:not-allowed}.read-only-account .drawer-body input:disabled,.read-only-account .drawer-body select:disabled,.read-only-account .drawer-body textarea:disabled{background:var(--cream);color:#4b5563}.read-only-account .top-actions{justify-content:flex-end}@media(max-width:720px){.read-only-banner{margin:0 12px 12px;align-items:flex-start;flex-direction:column;gap:3px}}

/* v21.1.41 Work Queue balance and readability */
.attention-head,
.attention-row {
  grid-template-columns:
    minmax(230px, 1.35fr)
    minmax(180px, .85fr)
    minmax(150px, .55fr)
    minmax(155px, .75fr);
}
.attention-row {
  min-height: 78px;
}
.attention-required-action {
  max-width: 280px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.28;
}
@media (max-width: 980px) and (min-width: 761px) {
  .attention-head,
  .attention-row {
    grid-template-columns:
      minmax(190px, 1.2fr)
      minmax(165px, .9fr)
      minmax(145px, .58fr)
      minmax(130px, .72fr);
  }
  .attention-required-action {
    max-width: 230px;
    font-size: 15px;
  }
}
@media (max-width: 760px) {
  .attention-required-action {
    max-width: none;
    font-size: 15px;
  }
}

/* v21.1.46 definitive birthdate and grade alignment */
.child-birth-grade-grid{
  grid-template-columns:minmax(0,1.12fr) minmax(210px,.88fr);
  align-items:start;
}
.child-birth-grade-grid>label{
  min-width:0;
  max-width:100%;
}
.child-birth-grade-grid .birthdate-select-control{
  --birthdate-control-height:40px;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.78fr) minmax(0,1fr)!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:visible;
}
.child-birth-grade-grid .birthdate-select-control select,
.child-birth-grade-grid>label>select{
  box-sizing:border-box!important;
  height:var(--birthdate-control-height)!important;
  min-height:var(--birthdate-control-height)!important;
  max-height:var(--birthdate-control-height)!important;
  margin:0!important;
}
.public-tour-form .child-birth-grade-grid{
  --birthdate-control-height:40px;
}
.app .drawer .child-birth-grade-grid{
  --birthdate-control-height:44px;
}
.app .drawer .child-birth-grade-grid .birthdate-select-control{
  --birthdate-control-height:44px!important;
}
@media(max-width:720px){
  .child-birth-grade-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .child-birth-grade-grid .birthdate-select-control{
    grid-template-columns:minmax(0,1.35fr) minmax(0,.78fr) minmax(0,1fr)!important;
  }
}
@media(max-width:420px){
  .child-birth-grade-grid .birthdate-select-control{
    grid-template-columns:minmax(0,1fr) minmax(0,.72fr)!important;
  }
  .child-birth-grade-grid .birthdate-select-year{
    grid-column:1/-1!important;
  }
}


/* v21.1.47: school-year context and live dashboard clock */
.product-label{display:grid;gap:4px}
.product-label strong{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit}
.product-label span{display:block;color:rgba(255,255,255,.78);font-size:10px;font-weight:700;letter-spacing:.055em;text-transform:none}
.dashboard-clock{display:flex;align-items:center;flex-wrap:wrap;gap:7px 10px;margin-top:10px;width:max-content;max-width:100%;padding:8px 12px;border:1px solid rgba(47,88,139,.16);border-radius:12px;background:rgba(255,255,255,.72);box-shadow:0 4px 14px rgba(43,45,49,.06)}
.dashboard-clock[hidden]{display:none!important}
.dashboard-clock span{color:#4c5d72;font-size:13px;font-weight:700}
.dashboard-clock strong{color:var(--ink);font-size:14px;white-space:nowrap}
.dashboard-clock small{color:#667085;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.schoolwide-hero .year-context-select span{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}
.schoolwide-hero .year-context-select select{color:#20242b;background:#fff}
.reports-intro .year-context-select span{color:#4b5563}
@media(max-width:780px){.dashboard-clock{padding:7px 9px;gap:4px 8px}.dashboard-clock span{width:100%;font-size:11px}.dashboard-clock strong{font-size:12px}.product-label span{font-size:9px}}

/* v21.1.52: consistent form-control sizing and definitive Book a Tour alignment. */
:root{
  --lca-public-control-height:46px;
  --lca-drawer-control-height:44px;
}

/* Keep related public Book a Tour controls at one consistent height. */
.public-tour-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.public-tour-form select,
.public-tour-form .calendar-date-control,
.public-tour-form .calendar-date-control > input.calendar-only-date[type="date"],
.public-tour-form .birthdate-select-control select,
.public-tour-form .time-picker select{
  box-sizing:border-box!important;
  height:var(--lca-public-control-height)!important;
  min-height:var(--lca-public-control-height)!important;
  max-height:var(--lca-public-control-height)!important;
  margin:0!important;
}
.public-tour-form textarea{
  height:auto!important;
  min-height:82px!important;
  max-height:none!important;
}
.public-tour-form .birthdate-select-control{
  --birthdate-control-height:var(--lca-public-control-height)!important;
  margin-top:0!important;
  grid-template-columns:minmax(128px,1.35fr) minmax(92px,.9fr) minmax(108px,1fr)!important;
}
.public-tour-form .birthdate-select-control select{
  min-width:0!important;
  padding-left:12px!important;
  padding-right:32px!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
.public-tour-form .child-birth-grade-grid{
  grid-template-columns:minmax(360px,1.2fr) minmax(220px,.8fr)!important;
  align-items:start!important;
}
.public-tour-form .child-birth-grade-grid > label{
  align-self:start!important;
  min-width:0!important;
}
.public-tour-form .child-birth-grade-grid > label > select{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:var(--lca-public-control-height)!important;
  min-height:var(--lca-public-control-height)!important;
  max-height:var(--lca-public-control-height)!important;
  margin:0!important;
}

/* Keep standard staff drawer inputs and selects aligned without forcing textarea height. */
.app .drawer input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.app .drawer select,
.app .drawer .calendar-date-control,
.app .drawer .calendar-date-control > input.calendar-only-date[type="date"],
.app .drawer .birthdate-select-control select,
.app .drawer .time-picker select{
  box-sizing:border-box!important;
  height:var(--lca-drawer-control-height)!important;
  min-height:var(--lca-drawer-control-height)!important;
  max-height:var(--lca-drawer-control-height)!important;
  margin:0!important;
}
.app .drawer textarea{
  height:auto!important;
  min-height:90px!important;
  max-height:none!important;
}
.app .drawer .birthdate-select-control{
  --birthdate-control-height:var(--lca-drawer-control-height)!important;
}

/* Internal New Tour Request: birthdate and current grade are true full-width rows. */
#new-tour-form .staff-child-birthdate-row,
#new-tour-form .staff-child-grade-row{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
}
#new-tour-form .staff-child-birthdate-row > label,
#new-tour-form .staff-child-grade-row > label{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:8px!important;
  align-items:start!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  line-height:1.3!important;
}
#new-tour-form .staff-child-birthdate-row .birthdate-select-control{
  display:grid!important;
  grid-template-columns:minmax(128px,1.35fr) minmax(92px,.9fr) minmax(108px,1fr)!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  overflow:visible!important;
}
#new-tour-form .staff-child-birthdate-row .birthdate-select-control select{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  padding-left:14px!important;
  padding-right:34px!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
#new-tour-form .staff-child-grade-row{
  margin-top:4px!important;
}
#new-tour-form .staff-child-grade-row select{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
}

@media(max-width:760px){
  .public-tour-form .child-birth-grade-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}
@media(max-width:520px){
  .public-tour-form .birthdate-select-control,
  #new-tour-form .staff-child-birthdate-row .birthdate-select-control{
    grid-template-columns:minmax(118px,1.3fr) minmax(88px,.9fr)!important;
  }
  .public-tour-form .birthdate-select-year,
  #new-tour-form .staff-child-birthdate-row .birthdate-select-year{
    grid-column:1/-1!important;
  }
}
@media(max-width:360px){
  .public-tour-form .birthdate-select-control,
  #new-tour-form .staff-child-birthdate-row .birthdate-select-control{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .public-tour-form .birthdate-select-year,
  #new-tour-form .staff-child-birthdate-row .birthdate-select-year{
    grid-column:auto!important;
  }
}


/* v21.1.53: application-wide adjacent form-control height consistency. */
:root{
  --lca-public-control-height:46px;
  --lca-staff-control-height:44px;
  --lca-drawer-control-height:var(--lca-staff-control-height);
}

/* Public Book a Tour controls that share a row must use one measured height. */
.public-tour-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="button"]):not([type="submit"]),
.public-tour-form select,
.public-tour-form .calendar-date-control,
.public-tour-form .calendar-date-control > input.calendar-only-date[type="date"],
.public-tour-form .birthdate-select-control select,
.public-tour-form .time-picker select{
  box-sizing:border-box!important;
  height:var(--lca-public-control-height)!important;
  min-height:var(--lca-public-control-height)!important;
  max-height:var(--lca-public-control-height)!important;
  margin:0!important;
  line-height:normal!important;
}

/* Standard staff forms use one shared height for text, number, date, time, and select controls. */
.app form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
.app form select,
.app .drawer .calendar-date-control,
.app .drawer .calendar-date-control > input.calendar-only-date[type="date"],
.app .drawer .birthdate-select-control select,
.app .drawer .time-picker select,
.app .settings-form .calendar-date-control,
.app .settings-form .calendar-date-control > input.calendar-only-date[type="date"]{
  box-sizing:border-box!important;
  height:var(--lca-staff-control-height)!important;
  min-height:var(--lca-staff-control-height)!important;
  max-height:var(--lca-staff-control-height)!important;
  margin:0!important;
  line-height:normal!important;
}

/* Keep common non-form filter boxes aligned with neighbouring staff controls.
   v22.10.0: this used --lca-staff-control-height (44px, declared on :root) while
   the neighbouring buttons and toolbar selects use --control-height (38px, declared
   on .app). The rule meant to align these controls was the reason a search field sat
   6px taller than the buttons beside it on every list screen. Two tokens both claimed
   to be "the staff control height"; this one now uses the same token as its
   neighbours, which is what the comment always intended. */
.app .search,
.app .list-filter-control select,
.app .calendar-master-controls select,
.app .year-context-select select{
  box-sizing:border-box!important;
  height:var(--control-height)!important;
  min-height:var(--control-height)!important;
  max-height:var(--control-height)!important;
}

/* Textareas remain intentionally taller and are never forced to single-line height. */
.public-tour-form textarea,
.app form textarea,
.app .drawer textarea,
.app .settings-form textarea{
  height:auto!important;
  max-height:none!important;
}

/* Consolidated v21.1.48-v21.1.51 Book a Tour protections. */
.public-tour-form .child-birth-grade-grid{
  grid-template-columns:minmax(360px,1.2fr) minmax(220px,.8fr)!important;
  align-items:start!important;
}
.public-tour-form .birthdate-select-control,
#new-tour-form .staff-child-birthdate-row .birthdate-select-control{
  grid-template-columns:minmax(128px,1.35fr) minmax(92px,.9fr) minmax(108px,1fr)!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:visible!important;
}
.public-tour-form .birthdate-select-control select,
#new-tour-form .staff-child-birthdate-row .birthdate-select-control select{
  min-width:0!important;
  padding-left:12px!important;
  padding-right:34px!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
#new-tour-form .staff-child-birthdate-row,
#new-tour-form .staff-child-grade-row{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}
#new-tour-form .staff-child-birthdate-row > label,
#new-tour-form .staff-child-grade-row > label{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:9px!important;
  align-items:start!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  line-height:1.3!important;
}
#new-tour-form .staff-child-grade-row{
  margin-top:4px!important;
}
#new-tour-form .staff-child-grade-row select{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}

@media(max-width:760px){
  .public-tour-form .child-birth-grade-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}
@media(max-width:520px){
  .public-tour-form .birthdate-select-control,
  #new-tour-form .staff-child-birthdate-row .birthdate-select-control{
    grid-template-columns:minmax(118px,1.3fr) minmax(88px,.9fr)!important;
  }
  .public-tour-form .birthdate-select-year,
  #new-tour-form .staff-child-birthdate-row .birthdate-select-year{
    grid-column:1/-1!important;
  }
}
@media(max-width:360px){
  .public-tour-form .birthdate-select-control,
  #new-tour-form .staff-child-birthdate-row .birthdate-select-control{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .public-tour-form .birthdate-select-year,
  #new-tour-form .staff-child-birthdate-row .birthdate-select-year{
    grid-column:auto!important;
  }
}

/* v21.1.54: school-year clarity, live dashboard context, and date/time control parity. */
:root{
  --lca-control-height:var(--lca-staff-control-height,44px);
}

/* v21.1.55: compact priority cards before any mobile clipping can occur. */
@media (max-width:760px){
  .dashboard{grid-template-columns:minmax(0,1fr)!important;}
  .attention-row{display:grid!important;width:100%!important;min-width:0!important;max-width:100%!important;grid-template-columns:minmax(0,1fr)!important;overflow:hidden!important;}
  .attention-row>span,.attention-row strong,.attention-row small{min-width:0!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important;}
  .panel-head{align-items:flex-start!important;flex-wrap:wrap!important;}
}
.app{
  --lca-control-height:var(--lca-staff-control-height,44px);
}
.public-form-page,
.public-tour-form{
  --lca-control-height:var(--lca-public-control-height,46px);
}

/* Date and time controls shown beside one another always use the same outer height. */
.app .datetime-picker,
.public-tour-form .datetime-picker,
.public-tour-form .request-time-fields{
  align-items:stretch!important;
}
.app .datetime-picker > .calendar-date-control,
.app .datetime-picker > .time-picker,
.app form .calendar-date-control,
.app form .time-picker,
.public-tour-form .datetime-picker > .calendar-date-control,
.public-tour-form .datetime-picker > .time-picker,
.public-tour-form .request-time-fields .calendar-date-control,
.public-tour-form .request-time-fields .time-picker{
  box-sizing:border-box!important;
  height:var(--lca-control-height)!important;
  min-height:var(--lca-control-height)!important;
  max-height:var(--lca-control-height)!important;
  margin:0!important;
}
.app .time-picker,
.public-tour-form .time-picker{
  align-items:stretch!important;
}
.app .time-picker select,
.public-tour-form .time-picker select,
.app .calendar-date-display,
.public-tour-form .calendar-date-display{
  box-sizing:border-box!important;
  height:100%!important;
  min-height:100%!important;
  max-height:100%!important;
  margin:0!important;
}

/* The school-year context must remain readable on both light and dark surfaces. */
.reports-intro .year-context-select span{
  color:#374151!important;
  opacity:1!important;
}
.schoolwide-hero .year-context-select span{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:4px 8px;
  border-radius:7px;
  background:rgba(21,36,58,.34);
  color:#fff!important;
  opacity:1!important;
  text-shadow:0 1px 2px rgba(0,0,0,.45)!important;
}
.schoolwide-hero .year-context-select select{
  color:#20242b!important;
  background:#fff!important;
}

/* Keep the active school year visible beneath the product name. */
.product-label span{
  color:rgba(255,255,255,.94)!important;
  opacity:1!important;
}

/* Present the live Pacific date and time as one clear dashboard status package. */
.dashboard-clock{
  border-left:4px solid var(--gold)!important;
  background:#fff!important;
  box-shadow:0 5px 16px rgba(43,45,49,.09)!important;
}
.report-year-note{
  max-width:760px;
  margin:.4rem 0 0!important;
}

/* v22.5.0 sibling group badge. Uses existing brand tokens so the palette stays
   editable in one place. */
.sibling-badge{
  display:inline-block;
  margin-left:.35rem;
  padding:.05rem .4rem;
  border-radius:999px;
  border:1px solid var(--sage);
  color:var(--sage);
  background:transparent;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.01em;
  white-space:nowrap;
  vertical-align:baseline;
}
.sibling-badge-row{
  margin:.2rem 0;
}
.sibling-badge-row .sibling-badge{
  margin-left:0;
}

/* v22.12.0 public booking confirmation details. Repeats back what the family entered,
   including the address the confirmation was sent to, so a mistyped address can be
   caught at the one moment the parent is still looking at the screen. Brand tokens
   only, so the palette stays editable in one place. */
.public-confirmation-details{
  display:grid;
  gap:14px;
  max-width:30rem;
  margin:24px auto 18px;
  padding:20px 22px;
  text-align:left;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--cream);
}
.public-confirmation-details>div{display:grid;gap:3px}
.public-confirmation-details dt{
  margin:0;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--muted);
}
.public-confirmation-details dd{
  margin:0;
  font-size:1rem;
  font-weight:650;
  color:var(--ink);
  overflow-wrap:anywhere;
}
.public-confirmation-check{
  max-width:30rem;
  margin:0 auto 18px;
  font-size:.88rem;
  line-height:1.5;
  color:var(--muted);
}
@media(max-width:560px){
  .public-confirmation-details{margin-left:0;margin-right:0;padding:16px 18px}
}

/* v22.13.0 calendar sync failure banner and per-event state. A Google permission
   change broke sync for three days and nothing in the interface said so. Amber rather
   than red: the tours themselves are saved and correct, only the calendar copy is
   missing, so this is a task to action rather than a data loss. */
.calendar-sync-alert{
  border-left:4px solid var(--gold);
  background:#fdf6e8;
}
.calendar-sync-alert h3{
  margin:0 0 8px;
  font-size:1rem;
  color:#7a5410;
}
.calendar-sync-alert-message{
  margin:0 0 10px;
  padding:9px 12px;
  border-radius:7px;
  background:#fff;
  border:1px solid #e7d5ae;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.82rem;
  line-height:1.45;
  color:var(--ink);
  overflow-wrap:anywhere;
}
.calendar-sync-alert-help{
  margin:0;
  font-size:.86rem;
  line-height:1.5;
  color:#7a5410;
}
.sync-state{
  display:inline-block;
  margin-left:.4rem;
  padding:.05rem .4rem;
  border-radius:999px;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.01em;
  white-space:nowrap;
  vertical-align:baseline;
  cursor:help;
}
.sync-state-error{border:1px solid #c08a2e;color:#7a5410;background:#fdf6e8}
.sync-state-pending{border:1px solid var(--border);color:var(--muted);background:transparent}

/* v22.13.1 per-event sync actions. Without these the sync banner reported failures
   that staff had no way to act on, which is a permanent alarm rather than a warning. */
.sync-actions{display:inline-flex;gap:6px;margin-left:.5rem;vertical-align:middle;flex-wrap:wrap}
.sync-actions .button{min-height:30px;padding:0 .55rem;font-size:.74rem}
@media(max-width:700px){
  .sync-actions{display:flex;margin-left:0;margin-top:6px}
}

/* v22.13.2 row action buttons must never wrap their labels. Without this, "Retry sync"
   rendered as "Retry" above "sync" in the calendar table, which also made those rows
   noticeably taller than their neighbours. */
.row-actions .button,
.enrollment-actions-cell .button{
  white-space:nowrap;
}

/* Staff Guide link, pinned in the sidebar footer so it is reachable from every
   screen. It sits outside #main-nav on purpose: the nav scrolls and its groups
   collapse, so nothing inside it is reliably visible. Styled to read as a
   utility link rather than a view button - it opens the guide in a new tab, so
   the admissions screen you were working on is never lost. */
.sidebar-guide-link{display:flex;align-items:center;gap:10px;min-height:34px;margin-bottom:2px;padding:0 10px;border:1px solid rgba(216,167,76,.42);border-radius:8px;color:rgba(255,255,255,.9);background:rgba(255,255,255,.05);font-size:12px;font-weight:750;text-decoration:none}
.sidebar-guide-link:hover{border-color:var(--gold);background:rgba(216,167,76,.16);color:#fff}
.sidebar-guide-link:focus-visible{outline:3px solid rgba(216,167,76,.6);outline-offset:2px}
.sidebar-guide-icon{display:inline-grid;place-items:center;flex:0 0 auto;width:19px;height:19px;border:1px solid rgba(216,167,76,.75);border-radius:50%;color:var(--gold);font-size:11px;font-weight:800;line-height:1}
.sidebar-guide-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-guide-ext{flex:0 0 auto;color:rgba(216,167,76,.85);font-size:12px;line-height:1}
@media print{.sidebar-guide-link{display:none}}

/* v22.17.9: removed the orphaned "Edit record" hover label from the School-Wide
   Enrolment Overview student card.

   History: in v21.1.13 the card was a <button> with an edit affordance. The screen
   was later made read-only - editing and deletion live in the Enrolment Register,
   and tools/interface-regression.js asserts that - but these ::after rules were
   left behind. The result was a label promising an action that no longer existed,
   plus a max-width:700px rule that pinned it visible on every card on touch
   devices, where there is no hover to reveal it on demand.

   The card stays a read-only <div>: it is not focusable, because a control that
   does nothing should not be reachable by keyboard either. The panel already tells
   staff where to go - "Edit or delete records in the Enrolment Register." */
.schoolwide-student-card .schoolwide-student::after{content:none;display:none}

/* Tour host toggle in User Management (v22.18.0).
   Each override is named explicitly rather than relying on `display` alone: the v22.17.17 fix
   recorded that a shared label rule leaks gap, font-size and font-weight into any new
   label-based control, so those three are set here by name and cannot drift if the shared rule
   is edited. Two-column grid keeps the box on the first line of wrapping text, and the 44px
   min-height keeps the touch target usable on a phone, matching the other row controls. */
.tour-host-control{display:grid;grid-template-columns:1.15rem minmax(0,1fr);align-items:start;align-content:center;gap:0 9px;min-height:44px;margin:0;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}
.tour-host-control input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;width:1.15rem;height:1.15rem;min-width:1.15rem;margin:calc((1.4em - 1.15rem) / 2) 0 0;padding:0;flex:none;cursor:pointer}
.tour-host-control span{line-height:1.4;overflow-wrap:anywhere}
.tour-host-control input[type=checkbox]:disabled{cursor:progress}
.app .user-admin-controls>.tour-host-control{width:auto;min-width:110px}
@media (max-width:900px){.app .user-admin-controls>.tour-host-control{width:100%;justify-self:start}}

/* Decision maker with no portrait: initials in a circle, sized and framed exactly like the
   photographs beside them so a mixed row stays even. Added in v22.18.1, when the header strip
   stopped being two hardcoded <img> tags and started reflecting who is actually a decision maker. */
.decision-people .decision-initials{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:2px solid #fff;border-radius:50%;background:var(--brand,#2F588B);color:#fff;font-size:12px;font-weight:800;letter-spacing:.02em;box-shadow:0 0 0 1px var(--border);box-sizing:border-box}

/* ---------------------------------------------------------------------------------------------
   User Management rows: one grid, so every row's columns line up (v22.19.0).

   These rows used to be a flex group with justify-content:flex-end, so each row packed its
   controls to the right and their positions depended on what that row happened to contain: a
   person who can be suspended pushed everything left of the buttons out of line with a person who
   cannot, and "DECISION MAKER" wrapped onto two lines in some rows and not others. Fixed columns
   fix that by construction.

   Every property the shared .app rules set on these elements is restated here by name - width,
   min-width, display, justify-content - because overriding only `display` leaves the rest to leak
   through, which is the lesson recorded in v22.17.17's checkbox fix.

   Scoped to 1351px and up: at 1350px and below the existing rules already stack these into a
   single column, which is the right shape for a narrow screen and is left alone.
   --------------------------------------------------------------------------------------------- */
@media (min-width:1351px){
  .app .user-admin-row{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:18px}
  .app .user-admin-controls{display:grid;grid-template-columns:minmax(180px,220px) 74px 148px 112px 356px;align-items:center;justify-content:end;gap:14px;width:auto;min-width:0}
  .app .user-admin-controls>.role-control{width:100%;min-width:0;margin:0}
  .app .user-admin-controls>.badge{justify-self:start;margin:0}
  /* One line each, so the two flags sit at the same height as the badge and the buttons. */
  .app .user-admin-controls>.tour-host-control{width:100%;min-width:0;min-height:0;align-content:center}
  .app .user-admin-controls>.tour-host-control>span{white-space:nowrap;overflow-wrap:normal}
  .app .user-admin-controls>.tour-host-control>input[type=checkbox]{margin-top:0}
  /* Three fixed slots rather than a right-aligned flex row. The three buttons did not fit and
     Suspend wrapped onto a second line, making that row taller and the column ragged even though
     every column to its left lined up. A slot each means every button sits in the same place in
     every row, and a row with one button leaves the others empty instead of shifting along. */
  .app .user-admin-controls>.row-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:8px;width:100%;margin:0}
  .app .user-admin-controls>.row-actions>.button{width:100%;min-width:0;margin:0;padding:8px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* Reset password is the only button every row has, so it holds the middle slot and lines up
     down the whole list whether or not the row can be edited or suspended. */
  .app .user-admin-controls>.row-actions>[data-save-role]{grid-column:1}
  .app .user-admin-controls>.row-actions>[data-reset-user]{grid-column:2}
  .app .user-admin-controls>.row-actions>[data-toggle-user]{grid-column:3}
}

/* The invite drawer offers the same two roles as a user's row, using the same control, so the
   choice looks and behaves identically in both places. */
.invite-role-flags{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 16px;margin:0}
.invite-role-flags .tour-host-control{min-height:36px}

/* "＋ Invite user" broke across two lines in the panel heading, because the shared responsive rule
   lets buttons wrap their text. It is two short words and a symbol - it should never wrap. */
.panel-head>.button,.panel-head #invite-user{white-space:nowrap}
#invite-user{white-space:nowrap!important;width:auto!important;min-width:max-content}

/* ---------------------------------------------------------------------------------------------
   The role tick boxes inside the invite drawer (v22.20.1).

   `.drawer label{display:grid;gap:7px;font-size:11px;font-weight:750}` has specificity 0-1-1 and
   `.tour-host-control` only 0-1-0, so in the drawer the shared drawer rule WON gap, font-size and
   font-weight. The checkbox offset is derived from the line height as
   `calc((1.4em - 1.15rem) / 2)`, so a leaked font-size silently changed the sum and the box no
   longer sat on its text. Exactly the trap recorded in v22.17.17: in this drawer, overriding
   `display` alone is never enough.

   Scoped to `.drawer .tour-host-control` (0-2-0) so it outranks `.drawer label`, and every property
   the shared rule sets is restated here by name. The control now resolves identically in the drawer
   and in a User Management row - asserted by tools/interface-regression.js.
   --------------------------------------------------------------------------------------------- */
.drawer .tour-host-control{display:grid;grid-template-columns:1.15rem minmax(0,1fr);align-items:start;align-content:center;gap:0 9px;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);cursor:pointer}
.drawer .tour-host-control>input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;width:1.15rem;height:1.15rem;min-width:1.15rem;min-height:1.15rem;margin:calc((1.4em - 1.15rem) / 2) 0 0;padding:0;flex:none;cursor:pointer;accent-color:var(--navy)}
.drawer .tour-host-control>span{line-height:1.4;font-size:inherit;font-weight:inherit;overflow-wrap:normal}

/* Pending invitations: one line each (v22.20.1).

   These used to reuse .user-row, which is a three-column grid beginning with a 40px avatar column.
   An invitation has no avatar, so its single child landed in that 40px column and the email, role
   and expiry wrapped one word per line down the page. Its own row instead: email, role, the extra
   roles it will grant, and when it expires - reading left to right on one line, wrapping only when
   the screen is genuinely too narrow. */
.pending-invite-list{display:grid;gap:2px}
.pending-invite-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;min-height:44px;padding:8px 23px;border-top:1px solid #e8dfd2}
.pending-invite-row>strong{min-width:0;overflow-wrap:anywhere;font-size:14px}
.pending-invite-row>.badge{align-self:center;flex:none}
.pending-invite-row>.pending-invite-roles{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}
.pending-invite-row>.pending-invite-roles em{font-style:normal;opacity:.75;text-transform:none;letter-spacing:normal}
/* Pushed to the right on a wide row, and simply the last item once the row wraps. */
.pending-invite-row>small{margin-left:auto;color:var(--muted);white-space:nowrap}
@media (max-width:700px){.pending-invite-row>small{margin-left:0}}

/* The result panel shown after creating an invitation (v22.21.0). The link is displayed, not only
   copied: if the clipboard is blocked or the email does not arrive, this is the only other way to
   get it to the person. Warning colouring when the email could not be queued, so "created but not
   sent" cannot be mistaken for success. */
.invite-result{margin:0;padding:12px 14px;border:1px solid var(--border);border-left:4px solid var(--navy);border-radius:8px;background:#f7f9fc}
.invite-result-warning{border-left-color:#b4232a;background:#fdf5f5}
.invite-result p{margin:0 0 8px;font-size:12px;line-height:1.5}
.invite-result label{display:grid;gap:5px}
.invite-result input{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
