:root {
  --bg: #f4f5f2;
  --surface: #ffffff;
  --surface-2: #f8f9f7;
  --surface-3: #eef1ed;
  --ink: #18201d;
  --muted: #66716c;
  --muted-2: #8a938f;
  --line: #dde2de;
  --line-strong: #cfd6d1;
  --brand: #8069e8;
  --brand-strong: #5d4ac7;
  --brand-soft: #eeeaff;
  --blue: #3d72d8;
  --blue-soft: #eaf0f8;
  --amber: #8c6317;
  --amber-soft: #fbf1d8;
  --red: #9a3e3e;
  --red-soft: #faeaea;
  --green: #725fd4;
  --green-soft: #eeeaff;
  --shadow-sm: 0 1px 2px rgba(21, 31, 27, .04), 0 4px 14px rgba(21, 31, 27, .035);
  --shadow-lg: 0 18px 60px rgba(23, 31, 27, .14);
  --radius: 10px;
  --sidebar: 258px;
  --topbar: 70px;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--bg);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body { margin: 0; min-height: 100vh; background: var(--bg); color: var(--ink); font-size: 14px; line-height: 1.45; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
[hidden] { display: none !important; }
a { color: inherit; }

/* auth */
.auth-view { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; background: linear-gradient(160deg, #f6f7f4 0%, #eef2ee 100%); }
.auth-brand { height: 74px; padding: 0 34px; display: flex; align-items: center; gap: 14px; border-bottom: 1px solid rgba(207, 214, 209, .72); color: var(--muted); }
.auth-brand-lockup { display: flex; align-items: center; gap: 9px; color: var(--ink); }
.auth-brand-lockup strong { font-size: 18px; letter-spacing: -.02em; }
.brand-mark { width: 32px; height: 32px; border-radius: 8px; background: var(--brand); color: white; display: inline-grid; place-items: center; font-weight: 800; font-size: 16px; }
.auth-main { display: grid; place-items: center; padding: 48px 20px; }
.auth-card { width: min(440px, 100%); background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-lg); padding: 34px; }
.auth-card.setup-card { width: min(620px, 100%); }
.auth-card-heading { margin-bottom: 26px; }
.auth-card-heading h1 { margin: 6px 0 7px; font-size: 28px; letter-spacing: -.035em; line-height: 1.18; }
.auth-card-heading p { margin: 0; color: var(--muted); }
.auth-footer { padding: 18px 24px 26px; text-align: center; color: var(--muted-2); font-size: 12px; }
.eyebrow { text-transform: uppercase; letter-spacing: .1em; color: var(--brand); font-size: 11px; font-weight: 800; }
.stack-form { display: grid; gap: 16px; }
.form-divider { display: flex; align-items: center; gap: 12px; color: var(--muted); font-weight: 700; font-size: 12px; margin: 2px 0; }
.form-divider::before, .form-divider::after { content: ""; height: 1px; background: var(--line); flex: 1; }
.form-error { border: 1px solid #e6b6b6; background: var(--red-soft); color: #7f3131; border-radius: 8px; padding: 10px 12px; font-size: 13px; }

/* controls */
label { display: grid; gap: 7px; color: #44504b; font-size: 12px; font-weight: 700; }
label small { color: var(--muted-2); font-weight: 500; }
input, select, textarea { width: 100%; border: 1px solid var(--line-strong); background: white; border-radius: 8px; min-height: 40px; padding: 9px 11px; outline: none; transition: border-color .15s, box-shadow .15s; }
textarea { min-height: 96px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: #75a79c; box-shadow: 0 0 0 3px rgba(31, 102, 88, .1); }
input[type="checkbox"] { width: 16px; min-height: 16px; height: 16px; padding: 0; }
.form-grid { display: grid; gap: 14px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.button-row { display: flex; flex-wrap: wrap; gap: 8px; }
.button { appearance: none; border: 1px solid transparent; border-radius: 8px; min-height: 38px; padding: 8px 13px; font-weight: 750; font-size: 13px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; transition: background .15s, border-color .15s, transform .08s; }
.button:active { transform: translateY(1px); }
.button.primary { background: var(--brand); color: white; border-color: var(--brand); }
.button.primary:hover { background: var(--brand-strong); border-color: var(--brand-strong); }
.button.secondary { background: white; border-color: var(--line-strong); color: #34413c; }
.button.secondary:hover { background: var(--surface-2); }
.button.wide { width: 100%; min-height: 44px; }
.button.danger-link { background: transparent; border: 0; color: var(--red); padding-inline: 0; }
.text-button { border: 0; background: transparent; color: var(--brand); font-weight: 750; padding: 4px 0; }
.icon-button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 8px; background: white; display: grid; place-items: center; font-size: 18px; }

/* app shell */
.app-view { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar); background: #fbfcfa; border-right: 1px solid var(--line); display: flex; flex-direction: column; z-index: 30; }
.brand-lockup { height: 68px; display: flex; align-items: center; gap: 10px; padding: 0 20px; }
.brand-lockup > div { display: grid; gap: 1px; }
.brand-lockup strong { font-size: 17px; letter-spacing: -.02em; }
.brand-lockup small { font-size: 10px; color: var(--muted); letter-spacing: .02em; }
.school-switcher { margin: 0 12px 12px; border: 1px solid var(--line); background: white; border-radius: 9px; padding: 9px; display: grid; grid-template-columns: 34px 1fr; gap: 9px; text-align: left; align-items: center; box-shadow: var(--shadow-sm); }
.school-switcher > span:nth-child(2) { min-width: 0; display: grid; }
.school-switcher strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px; }
.school-switcher small { color: var(--muted); font-size: 10px; }
.school-monogram { width: 34px; height: 34px; border-radius: 7px; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; font-weight: 850; font-size: 11px; }
.sidebar-nav { flex: 1; overflow: auto; padding: 3px 10px 16px; }
.nav-group { display: grid; gap: 2px; margin-bottom: 16px; }
.nav-group > span { color: #8a938f; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; font-size: 9px; padding: 0 9px 5px; }
.nav-item { border: 0; background: transparent; min-height: 34px; border-radius: 7px; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 5px; padding: 0 9px; text-align: left; color: #48534e; }
.nav-item i { width: 22px; height: 22px; display: grid; place-items: center; font-style: normal; color: #76817c; font-size: 11px; font-weight: 850; }
.nav-item b { font-size: 12px; font-weight: 680; }
.nav-item em { font-size: 10px; font-style: normal; color: var(--muted); font-weight: 700; }
.nav-item:hover { background: #f0f2ef; color: var(--ink); }
.nav-item.active { background: var(--brand-soft); color: var(--brand-strong); }
.nav-item.active i { color: var(--brand); }
.sidebar-bottom { border-top: 1px solid var(--line); padding: 10px; }
.delivery-status { margin: 8px 7px 2px; display: grid; grid-template-columns: 8px 1fr; gap: 8px; align-items: start; }
.delivery-status > span { width: 7px; height: 7px; background: var(--green); border-radius: 999px; margin-top: 4px; }
.delivery-status div { display: grid; }
.delivery-status strong { font-size: 10px; }
.delivery-status small { color: var(--muted); font-size: 9px; }
.workspace { margin-left: var(--sidebar); min-height: 100vh; }
.topbar { height: var(--topbar); position: sticky; top: 0; z-index: 20; background: rgba(244, 245, 242, .94); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); padding: 0 26px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.topbar-title { display: flex; gap: 10px; align-items: center; min-width: 0; }
.topbar-title h1 { margin: 0; font-size: 18px; letter-spacing: -.025em; }
.topbar-title p { margin: 1px 0 0; color: var(--muted); font-size: 11px; }
.topbar-actions { display: flex; align-items: center; gap: 8px; }
.mobile-menu { display: none; border: 0; background: transparent; font-size: 20px; width: 34px; height: 34px; }
.search-button { height: 38px; width: 210px; border: 1px solid var(--line); background: white; border-radius: 8px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; color: var(--muted); padding: 0 10px; text-align: left; }
.search-button kbd { border: 1px solid var(--line); background: var(--surface-2); border-radius: 5px; padding: 2px 5px; font-size: 9px; color: var(--muted); }
.user-menu-button { border: 0; background: transparent; display: grid; grid-template-columns: 32px auto auto; gap: 8px; align-items: center; text-align: left; padding: 3px 5px; border-radius: 8px; }
.user-menu-button:hover { background: rgba(255,255,255,.7); }
.user-avatar { width: 32px; height: 32px; border-radius: 8px; background: #dfe8e4; color: var(--brand-strong); display: grid; place-items: center; font-weight: 850; font-size: 11px; }
.user-menu-button > span:nth-child(2) { display: grid; }
.user-menu-button strong { font-size: 11px; }
.user-menu-button small { font-size: 9px; color: var(--muted); text-transform: capitalize; }
.user-menu-button i { font-style: normal; color: var(--muted); }
.content { padding: 28px; max-width: 1480px; margin: 0 auto; }
.page { display: none; }
.page.active { display: block; animation: pageIn .12s ease-out; }
@keyframes pageIn { from { opacity: .5; transform: translateY(2px); } to { opacity: 1; transform: none; } }

/* headings */
.dashboard-heading, .section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.dashboard-heading h2, .section-heading h2 { margin: 5px 0 4px; font-size: 26px; letter-spacing: -.035em; line-height: 1.15; }
.dashboard-heading p, .section-heading p { margin: 0; color: var(--muted); }
.dashboard-heading > div:last-child, .section-actions { display: flex; gap: 8px; }

/* dashboard */
.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.summary-card { min-height: 128px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 17px; box-shadow: var(--shadow-sm); }
.summary-card .summary-top { display: flex; justify-content: space-between; gap: 10px; align-items: center; color: var(--muted); font-size: 11px; font-weight: 700; }
.summary-card .summary-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--line-strong); }
.summary-card .summary-dot.good { background: #5d9b7b; }
.summary-card .summary-dot.warn { background: #c99a43; }
.summary-card strong.value { display: block; font-size: 28px; line-height: 1; letter-spacing: -.04em; margin: 16px 0 8px; }
.summary-card .summary-meta { color: var(--muted); font-size: 11px; }
.loading-card { position: relative; overflow: hidden; }
.loading-card::after { content: ""; position: absolute; inset: 18px; border-radius: 7px; background: linear-gradient(90deg, #f2f3f1 25%, #e9ebe8 40%, #f2f3f1 65%); background-size: 300% 100%; animation: shimmer 1.4s infinite; }
@keyframes shimmer { from { background-position: 100% 0; } to { background-position: 0 0; } }
.dashboard-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px; }
.span-4 { grid-column: span 4; }.span-5 { grid-column: span 5; }.span-7 { grid-column: span 7; }.span-8 { grid-column: span 8; }.span-12 { grid-column: 1 / -1; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow-sm); }
.panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 15px; margin-bottom: 16px; }
.panel-heading h3 { margin: 0 0 2px; font-size: 14px; }
.panel-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.empty-inline { color: var(--muted); padding: 28px 4px; }
.attendance-dashboard { display: grid; grid-template-columns: 140px 1fr; align-items: center; gap: 24px; min-height: 190px; }
.attendance-score { width: 122px; height: 122px; border-radius: 999px; background: conic-gradient(var(--brand) var(--score, 0%), #e8ece9 0); display: grid; place-items: center; position: relative; }
.attendance-score::after { content: ""; position: absolute; inset: 11px; border-radius: inherit; background: white; }
.attendance-score span { position: relative; z-index: 1; display: grid; text-align: center; }
.attendance-score strong { font-size: 25px; letter-spacing: -.04em; }
.attendance-score small { color: var(--muted); font-size: 10px; }
.attendance-breakdown { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.attendance-breakdown div { border-left: 2px solid var(--line); padding-left: 10px; display: grid; }
.attendance-breakdown strong { font-size: 18px; }.attendance-breakdown small { color: var(--muted); font-size: 10px; }
.attention-list { display: grid; gap: 8px; }
.attention-item { border: 1px solid var(--line); border-radius: 8px; padding: 11px; display: grid; grid-template-columns: 9px 1fr auto; gap: 9px; align-items: start; background: var(--surface-2); }
.attention-item > i { width: 8px; height: 8px; border-radius: 99px; background: var(--amber); margin-top: 5px; }
.attention-item > i.red { background: var(--red); }.attention-item > i.blue { background: var(--blue); }
.attention-item strong { display: block; font-size: 11px; }.attention-item small { display: block; color: var(--muted); font-size: 10px; margin-top: 2px; }.attention-item b { font-size: 10px; color: var(--muted); }
.grade-chart { min-height: 210px; display: grid; align-content: center; gap: 10px; }
.grade-row { display: grid; grid-template-columns: 78px 1fr 36px; gap: 10px; align-items: center; }
.grade-row span { font-size: 11px; color: var(--muted); }.grade-row b { font-size: 11px; text-align: right; }.grade-track { height: 8px; border-radius: 99px; background: #edf0ed; overflow: hidden; }.grade-track i { display: block; height: 100%; background: #6a978c; border-radius: inherit; }
.finance-panel { min-height: 210px; display: grid; align-content: center; gap: 14px; }
.finance-big { display: grid; gap: 4px; }.finance-big span { color: var(--muted); font-size: 11px; }.finance-big strong { font-size: 28px; letter-spacing: -.04em; }.finance-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); padding-top: 14px; gap: 16px; }.finance-grid span { color: var(--muted); font-size: 10px; }.finance-grid b { display: block; margin-top: 2px; }
.activity-feed { display: grid; }
.activity-row { min-height: 54px; display: grid; grid-template-columns: 32px 1fr auto; gap: 10px; align-items: center; border-top: 1px solid var(--line); }
.activity-row:first-child { border-top: 0; }.activity-badge { width: 30px; height: 30px; border-radius: 8px; background: var(--surface-3); display: grid; place-items: center; color: var(--brand); font-weight: 800; font-size: 10px; }.activity-row strong { font-size: 11px; display: block; }.activity-row small, .activity-row time { color: var(--muted); font-size: 10px; }.activity-row time { white-space: nowrap; }

/* generic records */
.record-toolbar { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 10px; }
.search-field { position: relative; width: min(420px, 100%); }
.search-field span { position: absolute; left: 11px; top: 50%; translate: 0 -50%; color: var(--muted); z-index: 2; }
.search-field input { padding-left: 32px; }
.table-panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden; }
.table-summary { min-height: 42px; padding: 0 14px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 11px; }
.table-scroll { overflow: auto; }
.data-table { width: 100%; border-collapse: collapse; min-width: 780px; }
.data-table th { height: 38px; background: #fafbfa; text-align: left; padding: 0 12px; border-bottom: 1px solid var(--line); color: #707a75; font-size: 10px; text-transform: uppercase; letter-spacing: .045em; font-weight: 800; }
.data-table td { padding: 10px 12px; border-bottom: 1px solid #edf0ed; vertical-align: middle; font-size: 12px; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: #fbfcfb; }
.data-table td strong { font-size: 12px; }.data-table td small { color: var(--muted); font-size: 10px; display: block; margin-top: 1px; }
.row-actions { display: flex; gap: 6px; justify-content: flex-end; }.row-action { border: 1px solid var(--line); background: white; border-radius: 6px; padding: 5px 8px; font-size: 10px; color: #56615c; }
.badge { display: inline-flex; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-2); color: #52605a; padding: 3px 7px; font-size: 9px; font-weight: 750; white-space: nowrap; }.badge.good { background: var(--green-soft); border-color: #cfe2d7; color: var(--green); }.badge.warn { background: var(--amber-soft); border-color: #ebd9ad; color: var(--amber); }.badge.bad { background: var(--red-soft); border-color: #ebc8c8; color: var(--red); }.badge.blue { background: var(--blue-soft); border-color: #cedbed; color: var(--blue); }
.empty-state { padding: 56px 24px; text-align: center; display: grid; justify-items: center; }
.empty-state.standalone { margin-top: 14px; border: 1px dashed var(--line-strong); border-radius: var(--radius); background: rgba(255,255,255,.45); }
.empty-icon { width: 42px; height: 42px; border-radius: 10px; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; font-size: 16px; font-weight: 850; margin-bottom: 10px; }
.empty-state h3 { margin: 0 0 5px; font-size: 14px; }.empty-state p { margin: 0 0 15px; color: var(--muted); max-width: 420px; }

/* attendance */
.attendance-controls { display: grid; grid-template-columns: 180px 180px auto; gap: 10px; align-items: end; margin-bottom: 12px; }
.attendance-status { min-width: 120px; }
.attendance-note { min-width: 260px; }

/* files */
.file-picker { cursor: pointer; }
.upload-options { display: grid; grid-template-columns: 1.1fr 1fr 1fr auto auto; align-items: end; gap: 9px; padding: 14px; background: white; border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 12px; }
.files-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.file-card { background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 15px; box-shadow: var(--shadow-sm); display: grid; grid-template-columns: 38px 1fr auto; gap: 10px; align-items: start; }
.file-icon { width: 38px; height: 38px; border-radius: 8px; background: var(--surface-3); display: grid; place-items: center; color: var(--brand); font-weight: 850; font-size: 10px; }
.file-card strong { display: block; font-size: 11px; overflow-wrap: anywhere; }.file-card small { display: block; color: var(--muted); font-size: 9px; margin-top: 3px; }.file-card .row-actions { flex-direction: column; }

/* reports and data tools */
.report-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.report-card { border: 1px solid var(--line); background: white; border-radius: var(--radius); padding: 17px; display: grid; gap: 12px; box-shadow: var(--shadow-sm); }
.report-card .report-icon { width: 34px; height: 34px; border-radius: 8px; background: var(--surface-3); display: grid; place-items: center; font-weight: 850; color: var(--brand); }.report-card h3 { margin: 0; font-size: 13px; }.report-card p { margin: 0; color: var(--muted); font-size: 11px; }.report-card footer { display: flex; justify-content: space-between; align-items: center; }
.tools-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: start; }
.tools-grid .panel { display: grid; gap: 14px; }
.drop-zone { border: 1px dashed #bfc9c3; border-radius: 9px; background: #fafbfa; min-height: 110px; display: grid; place-items: center; align-content: center; cursor: pointer; color: var(--ink); text-align: center; padding: 18px; }.drop-zone strong { font-size: 12px; }.drop-zone span { color: var(--muted); font-weight: 500; font-size: 10px; margin-top: 3px; }
.import-preview { max-height: 210px; overflow: auto; font-size: 10px; color: var(--muted); }
.import-preview table { width: 100%; border-collapse: collapse; }.import-preview td, .import-preview th { border: 1px solid var(--line); padding: 5px 6px; white-space: nowrap; }.import-preview th { background: var(--surface-2); color: var(--ink); }
.credential-note { border-left: 3px solid #99b9b0; background: #f3f7f5; padding: 9px 11px; color: #53625c; font-size: 10px; }
.integration-result { border: 1px solid var(--line); background: var(--surface-2); border-radius: 8px; padding: 12px; font-size: 11px; }.integration-result strong { display: block; margin-bottom: 5px; }.integration-result pre { white-space: pre-wrap; margin: 0; font: 10px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; }

/* settings */
.settings-layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 18px; }
.settings-nav { display: grid; align-content: start; gap: 3px; }
.settings-nav button { border: 0; background: transparent; text-align: left; border-radius: 7px; padding: 9px 10px; color: #53605a; font-weight: 650; font-size: 11px; }.settings-nav button:hover { background: rgba(255,255,255,.7); }.settings-nav button.active { background: white; box-shadow: inset 3px 0 0 var(--brand); color: var(--brand-strong); }
.settings-content { background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); min-height: 500px; }
.settings-pane { display: none; padding: 22px; }.settings-pane.active { display: block; }.pane-heading { margin-bottom: 20px; }.pane-heading.split { display: flex; justify-content: space-between; gap: 12px; align-items: start; }.pane-heading h3 { margin: 0 0 3px; font-size: 15px; }.pane-heading p { margin: 0; color: var(--muted); font-size: 11px; }.settings-form { display: grid; gap: 14px; max-width: 760px; }.settings-form > .button { justify-self: start; }
.user-list, .integration-list, .security-list { display: grid; gap: 8px; }.user-row, .integration-row, .security-list > div { border: 1px solid var(--line); border-radius: 8px; padding: 11px 12px; display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; }.user-row > div, .integration-row > div, .security-list > div > * { min-width: 0; }.user-row strong, .integration-row strong, .security-list strong { display: block; font-size: 11px; }.user-row small, .integration-row small, .security-list span { color: var(--muted); font-size: 10px; display: block; margin-top: 2px; }.security-list > div { grid-template-columns: 160px 1fr; }

/* overlays */
.modal-backdrop { position: fixed; inset: 0; z-index: 80; background: rgba(16, 24, 20, .42); display: grid; place-items: center; padding: 20px; backdrop-filter: blur(2px); }
.modal { width: min(720px, 100%); max-height: min(760px, calc(100vh - 40px)); background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-lg); display: grid; grid-template-rows: auto minmax(0,1fr) auto; overflow: hidden; }.small-modal { width: min(470px,100%); }
.modal > header { min-height: 70px; padding: 15px 18px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }.modal > header h2 { margin: 3px 0 0; font-size: 18px; }.modal form { display: contents; }.modal-body { overflow: auto; padding: 18px; display: grid; gap: 14px; }.modal footer { min-height: 62px; padding: 11px 18px; border-top: 1px solid var(--line); display: flex; align-items: center; gap: 8px; justify-content: flex-end; }.modal footer > span { flex: 1; }
.floating-menu { position: fixed; z-index: 60; top: 62px; right: 24px; width: 220px; border: 1px solid var(--line); background: white; border-radius: 9px; box-shadow: var(--shadow-lg); padding: 5px; }.floating-menu button { width: 100%; border: 0; background: transparent; text-align: left; padding: 9px 10px; border-radius: 6px; font-size: 11px; }.floating-menu button:hover:not(:disabled) { background: var(--surface-2); }.floating-menu button:disabled { color: var(--muted); opacity: 1; }.quick-menu { right: 186px; }
.search-overlay { position: fixed; inset: 0; z-index: 90; background: rgba(21, 29, 25, .35); padding-top: 11vh; display: grid; align-items: start; justify-items: center; }.search-dialog { width: min(620px, calc(100vw - 30px)); background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-lg); overflow: hidden; }.search-dialog > label { height: 54px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 9px; padding: 0 13px; border-bottom: 1px solid var(--line); }.search-dialog input { border: 0; box-shadow: none; padding: 0; }.search-dialog kbd { border: 1px solid var(--line); border-radius: 5px; padding: 2px 5px; font-size: 9px; color: var(--muted); }.search-results { max-height: 430px; overflow: auto; padding: 5px; }.search-result { width: 100%; border: 0; background: white; border-radius: 7px; display: grid; grid-template-columns: 30px 1fr auto; gap: 9px; align-items: center; padding: 9px; text-align: left; }.search-result:hover { background: var(--surface-2); }.search-result > i { width: 28px; height: 28px; border-radius: 7px; background: var(--surface-3); display: grid; place-items: center; font-style: normal; font-size: 9px; font-weight: 850; }.search-result strong { display: block; font-size: 11px; }.search-result small { display: block; color: var(--muted); font-size: 9px; }.search-result em { color: var(--muted); font-style: normal; font-size: 9px; text-transform: capitalize; }.search-hint { color: var(--muted); padding: 24px; text-align: center; font-size: 11px; }
.toast-stack { position: fixed; z-index: 120; right: 18px; bottom: 18px; display: grid; gap: 8px; width: min(340px, calc(100vw - 36px)); }.toast { border: 1px solid var(--line); background: #fff; border-radius: 9px; box-shadow: var(--shadow-lg); padding: 11px 12px; display: grid; grid-template-columns: 24px 1fr; gap: 9px; align-items: start; transition: opacity .18s, transform .18s; }.toast > span { width: 22px; height: 22px; border-radius: 6px; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; font-size: 10px; font-weight: 850; }.toast strong { display: block; font-size: 11px; }.toast small { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; }

@media (max-width: 1100px) {
  .summary-grid { grid-template-columns: repeat(2, 1fr); }
  .span-8, .span-7, .span-5, .span-4 { grid-column: span 6; }
  .files-grid, .report-grid { grid-template-columns: repeat(2, 1fr); }
  .tools-grid { grid-template-columns: 1fr; }
  .upload-options { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  .sidebar { transform: translateX(-102%); transition: transform .18s ease; box-shadow: var(--shadow-lg); }.sidebar.open { transform: none; }
  .workspace { margin-left: 0; }.mobile-menu { display: block; }.search-button { width: 42px; grid-template-columns: 1fr; place-items: center; }.search-button span:nth-child(2), .search-button kbd { display: none; }.topbar { padding-inline: 14px; }.topbar-actions > .button { display: none; }.user-menu-button > span:nth-child(2), .user-menu-button i { display: none; }.content { padding: 20px 14px; }
  .span-8, .span-7, .span-5, .span-4, .span-12 { grid-column: 1 / -1; }.settings-layout { grid-template-columns: 1fr; }.settings-nav { grid-template-columns: repeat(4, minmax(0,1fr)); overflow: auto; }.settings-nav button { white-space: nowrap; text-align: center; }.settings-nav button.active { box-shadow: inset 0 -3px 0 var(--brand); }
}

@media (max-width: 640px) {
  body { font-size: 13px; }.auth-brand { padding-inline: 18px; }.auth-brand > span:last-child { display: none; }.auth-card { padding: 24px 20px; }.form-grid.two, .form-grid.three { grid-template-columns: 1fr; }.dashboard-heading, .section-heading { align-items: start; flex-direction: column; }.dashboard-heading > div:last-child, .section-actions { width: 100%; }.summary-grid { grid-template-columns: 1fr 1fr; }.summary-card { min-height: 112px; padding: 14px; }.summary-card strong.value { font-size: 23px; }.dashboard-grid { display: block; }.dashboard-grid > .panel { margin-bottom: 10px; }.attendance-dashboard { grid-template-columns: 1fr; justify-items: center; }.attendance-breakdown { width: 100%; }.files-grid, .report-grid { grid-template-columns: 1fr; }.attendance-controls { grid-template-columns: 1fr 1fr; }.attendance-controls > button { grid-column: 1 / -1; }.upload-options { grid-template-columns: 1fr; }.settings-nav { grid-template-columns: 1fr 1fr; }.security-list > div { grid-template-columns: 1fr; }.topbar-title p { display: none; }.content { padding-top: 16px; }
}

/* Alma migration center */
.alma-migration-panel{margin-bottom:14px;border-color:#d8e2dc;background:linear-gradient(180deg,#fff 0%,#fcfdfc 100%)}
.alma-migration-panel .panel-heading.split{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.migration-badge{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid #c8ddd4;background:#edf7f2;color:#2f6d59;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800}
.migration-principles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 16px}
.migration-principles>div{border:1px solid var(--line);border-radius:8px;padding:11px;background:var(--surface-2)}
.migration-principles strong{display:block;font-size:11px;margin-bottom:3px}.migration-principles span{display:block;color:var(--muted);font-size:10px;line-height:1.45}
.alma-folder-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}
.migration-drop{min-height:92px}.migration-actions{display:flex;gap:8px;align-items:center}
.migration-progress{margin-top:12px;border:1px solid var(--line);border-radius:8px;padding:11px;background:#fafbfa}
.migration-progress>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.migration-progress strong{font-size:11px}.migration-progress span{font-size:10px;color:var(--muted)}
.migration-progress-track{height:7px;border-radius:999px;background:#e8ece9;overflow:hidden}.migration-progress-track>span{display:block;height:100%;width:0;background:var(--brand);border-radius:inherit;transition:width .2s ease}
.migration-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:12px}
.migration-summary>div{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff}.migration-summary span{display:block;color:var(--muted);font-size:9px}.migration-summary strong{display:block;font-size:15px;margin-top:3px}
.migration-summary .migration-download{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px}
.coverage-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:20px 0 9px}.coverage-header h4{margin:0 0 3px;font-size:13px}.coverage-header p{margin:0;color:var(--muted);font-size:10px;max-width:720px;line-height:1.45}
.coverage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.coverage-card{border:1px solid var(--line);border-radius:8px;padding:11px;background:#fff}.coverage-card-top{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:8px;align-items:center}.coverage-dot{width:8px;height:8px;border-radius:999px;background:#b6beb9}.coverage-card strong{font-size:11px}.coverage-card b{font-size:9px;color:var(--muted);font-weight:750}
.coverage-card p{margin:5px 0;color:var(--muted);font-size:9px}.coverage-stats{font-size:10px;color:#53605a}.coverage-paths{margin-top:6px;display:grid;gap:2px}.coverage-paths small{font:9px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;color:#727d77;overflow-wrap:anywhere}
.coverage-card.imported{border-color:#c9dfd5;background:#fbfefc}.coverage-card.imported .coverage-dot{background:#4f8d70}.coverage-card.found{border-color:#d5dfec}.coverage-card.found .coverage-dot{background:#5c7fa8}.coverage-card.archived{border-color:#eadab5;background:#fffdf8}.coverage-card.archived .coverage-dot{background:#b6893e}.coverage-card.missing{background:#fafafa}.coverage-card.missing .coverage-dot{background:#bdc3bf}
@media(max-width:1000px){.migration-summary{grid-template-columns:repeat(3,1fr)}.migration-principles{grid-template-columns:1fr}.alma-folder-row{grid-template-columns:1fr}.migration-actions{justify-content:flex-end}}
@media(max-width:680px){.coverage-grid{grid-template-columns:1fr}.migration-summary{grid-template-columns:repeat(2,1fr)}.coverage-header{align-items:flex-start;flex-direction:column}.alma-migration-panel .panel-heading.split{flex-direction:column}.migration-actions{display:grid;grid-template-columns:1fr 1fr}.migration-actions .button{width:100%}}


.auth-help-link {
  margin-top: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--brand);
  font-size: 12px;
  font-weight: 750;
  text-decoration: none;
}

.auth-help-link:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}


/* Login experience */
.auth-main {
  width: min(1180px, calc(100% - 36px));
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 470px);
  gap: 32px;
  align-items: stretch;
}
.auth-story {
  min-height: 610px;
  position: relative;
  overflow: hidden;
  padding: 46px;
  border-radius: 28px;
  background: linear-gradient(145deg, #0e4a43 0%, #123b37 55%, #102f2d 100%);
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.auth-story-grid {
  position: absolute;
  inset: 0;
  opacity: .18;
  background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 34px 34px;
}
.auth-story-copy, .auth-story-preview { position: relative; z-index: 1; }
.auth-story-copy h2 {
  max-width: 700px;
  margin: 14px 0 18px;
  font-size: clamp(36px, 4vw, 58px);
  line-height: 1.02;
  letter-spacing: -.05em;
}
.auth-story-copy p {
  max-width: 650px;
  color: #c9ddd8;
  line-height: 1.72;
}
.auth-story-pills {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.auth-story-pills span {
  padding: 8px 10px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 999px;
  color: #e9f4f1;
  font-size: 10px;
  font-weight: 700;
}
.auth-story-preview {
  width: min(520px, 100%);
  padding: 18px;
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  color: #17302d;
  box-shadow: 0 28px 80px rgba(0,0,0,.24);
  transform: rotate(-1.5deg);
  animation: authPreviewFloat 5s ease-in-out infinite;
}
@keyframes authPreviewFloat { 50% { transform: translateY(-8px) rotate(-1deg); } }
.preview-top { display:flex; gap:5px; align-items:center; margin-bottom:18px; }
.preview-top span { width:7px; height:7px; border-radius:50%; background:#aebdb8; }
.preview-top b { margin-left:7px; font-size:9px; color:#72847f; }
.preview-stat { display:flex; justify-content:space-between; align-items:end; }
.preview-stat small { color:#70817c; font-size:9px; }
.preview-stat strong { color:#5d4ac7; font-size:24px; }
.preview-line { height:10px; background:#edf2ef; border-radius:8px; overflow:hidden; margin-top:14px; }
.preview-line i { display:block; height:100%; border-radius:inherit; background:#4f847a; }
.preview-line.short { width:72%; }
.preview-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:16px; }
.preview-cards span { height:54px; border-radius:10px; background:#eff4f1; }
.auth-card { align-self: center; width:100%; }
@media (max-width: 920px) {
  .auth-main { grid-template-columns: 1fr; }
  .auth-story { min-height: 440px; }
}
@media (max-width: 640px) {
  .auth-main { width: min(100% - 24px, 560px); }
  .auth-story { display:none; }
}


/* Login service status */
.form-error strong,
.form-error span {
  display: block;
}

.form-error span {
  margin-top: 4px;
  line-height: 1.45;
}

.form-error button {
  margin-top: 10px;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid currentColor;
  border-radius: 9px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-weight: 750;
}

.auth-link-row {
  margin-top: 16px;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
}

.auth-link-row .auth-help-link {
  margin-top: 0;
}

.auth-site-link {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
}

.auth-site-link:hover {
  color: var(--ink);
}


/* Clean Middos login experience */
.middos-login-view {
  min-height: 100dvh;
  background:
    radial-gradient(circle at 16% 12%, rgba(205, 229, 221, .38), transparent 27%),
    linear-gradient(180deg, #f7f9f6 0%, #f1f5f1 100%);
  color: var(--ink);
}

.login-topbar {
  width: min(1180px, calc(100% - 40px));
  height: 82px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.login-brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--ink);
  text-decoration: none;
}

.login-brand-copy {
  display: grid;
  gap: 1px;
}

.login-brand-copy strong {
  font-size: 17px;
  letter-spacing: -.025em;
}

.login-brand-copy small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 650;
}

.login-topbar-actions {
  display: flex;
  align-items: center;
  gap: 18px;
}

.login-topbar-actions a {
  color: #596d68;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.login-back-link {
  padding: 9px 12px;
  border: 1px solid #cfdbd7;
  border-radius: 10px;
  background: rgba(255,255,255,.72);
}

.login-layout {
  width: min(1180px, calc(100% - 40px));
  min-height: calc(100dvh - 150px);
  margin: 0 auto;
  padding: 34px 0 54px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(390px, .72fr);
  gap: 74px;
  align-items: center;
}

.login-context {
  min-height: 540px;
  padding: 52px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border: 1px solid rgba(15,81,73,.12);
  border-radius: 28px;
  background:
    radial-gradient(circle at 82% 16%, rgba(199, 226, 218, .18), transparent 26%),
    linear-gradient(145deg, #123f3a 0%, #102f2d 100%);
  color: #fff;
  box-shadow: 0 28px 76px rgba(27, 62, 56, .13);
}

.login-context:after {
  content: "";
  position: absolute;
  width: 440px;
  height: 440px;
  right: -180px;
  bottom: -220px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 50%;
  box-shadow:
    0 0 0 60px rgba(255,255,255,.025),
    0 0 0 120px rgba(255,255,255,.018);
}

.login-context-content {
  position: relative;
  z-index: 1;
  max-width: 600px;
}

.login-kicker {
  color: #9ec8be;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .16em;
}

.login-context h1 {
  margin: 14px 0 18px;
  font-size: clamp(46px, 5vw, 68px);
  line-height: .98;
  letter-spacing: -.055em;
}

.login-context-content > p {
  max-width: 570px;
  margin: 0;
  color: #c8dbd6;
  font-size: 15px;
  line-height: 1.72;
}

.login-trust-list {
  margin-top: 36px;
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(255,255,255,.15);
}

.login-trust-list > div {
  min-height: 82px;
  padding: 17px 0;
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 11px;
  align-items: start;
  border-bottom: 1px solid rgba(255,255,255,.15);
}

.login-trust-list > div > span {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: rgba(197, 230, 221, .14);
  color: #bfe1d8;
  font-size: 10px;
  font-weight: 900;
}

.login-trust-list p {
  margin: 0;
  display: grid;
  gap: 4px;
}

.login-trust-list strong {
  font-size: 12px;
}

.login-trust-list small {
  color: #abc7c0;
  font-size: 10px;
  line-height: 1.5;
}

.login-context-art {
  position: relative;
  z-index: 1;
  margin-top: 34px;
  display: flex;
  align-items: end;
  gap: 14px;
}

.login-art-card {
  width: min(330px, 75%);
  padding: 17px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 15px;
  background: rgba(255,255,255,.96);
  color: var(--ink);
  box-shadow: 0 18px 44px rgba(0,0,0,.16);
}

.login-art-card > span {
  color: #79908a;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .08em;
}

.login-art-card > strong {
  display: block;
  margin-top: 4px;
  font-size: 13px;
}

.login-art-row {
  margin-top: 13px;
  display: grid;
  grid-template-columns: 1fr 44px;
  gap: 8px;
}

.login-art-row i,
.login-art-row b {
  height: 7px;
  border-radius: 5px;
  background: #e6eeeb;
}

.login-art-row i {
  background: #5f8f84;
}

.login-art-row.short {
  width: 76%;
}

.login-art-pills {
  margin-top: 15px;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 7px;
}

.login-art-pills em {
  height: 34px;
  border-radius: 8px;
  background: #eef3f1;
}

.login-art-note {
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 11px;
  color: #c9ddd8;
  font-size: 9px;
  font-weight: 700;
}

.login-panel {
  width: 100%;
  max-width: 470px;
  justify-self: center;
}

.login-card.auth-card {
  width: 100%;
  padding: 38px;
  border: 1px solid #d8e2de;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 24px 70px rgba(31, 64, 58, .10);
}

.login-card .auth-card-heading {
  margin-bottom: 26px;
}

.login-card .auth-card-heading h2 {
  margin: 8px 0 7px;
  color: var(--ink);
  font-size: 31px;
  line-height: 1.08;
  letter-spacing: -.04em;
}

.login-card .auth-card-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.login-form {
  gap: 16px;
}

.login-form label > span {
  color: #41544f;
  font-size: 11px;
  font-weight: 750;
}

.login-card .stack-form input,
.login-card .stack-form select {
  min-height: 48px;
  border: 1px solid #cdd9d5;
  border-radius: 11px;
  background: #fbfcfb;
  font-size: 13px;
}

.login-card .stack-form input:focus,
.login-card .stack-form select:focus {
  border-color: #78a398;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(15,81,73,.09);
}

.login-submit {
  min-height: 49px;
  margin-top: 3px;
  border-radius: 11px;
  font-size: 13px;
}

.login-help-block {
  margin-top: 22px;
  padding-top: 18px;
  display: grid;
  gap: 4px;
  border-top: 1px solid #e3e9e6;
}

.login-help-block span {
  color: #82928e;
  font-size: 10px;
}

.login-help-block a {
  color: var(--brand);
  font-size: 11px;
  font-weight: 780;
  text-decoration: none;
}

.login-panel-footer {
  margin-top: 16px;
  display: flex;
  justify-content: center;
  gap: 7px;
  color: #879690;
  font-size: 9px;
}

.login-panel-footer a {
  color: #6b7f79;
  text-decoration: none;
}

.setup-login-card {
  max-height: calc(100dvh - 150px);
  overflow-y: auto;
}

@media (max-width: 980px) {
  .login-layout {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .login-context {
    min-height: 330px;
    padding: 34px;
  }

  .login-context h1 {
    font-size: 48px;
  }

  .login-trust-list {
    grid-template-columns: repeat(3,1fr);
    border-left: 1px solid rgba(255,255,255,.15);
  }

  .login-trust-list > div {
    min-height: 118px;
    padding: 15px;
    border-right: 1px solid rgba(255,255,255,.15);
  }

  .login-context-art {
    display: none;
  }

  .login-panel {
    max-width: 560px;
  }
}

@media (max-width: 680px) {
  .login-topbar {
    width: calc(100% - 28px);
    height: 70px;
  }

  .login-topbar-actions a:first-child {
    display: none;
  }

  .login-layout {
    width: calc(100% - 28px);
    min-height: calc(100dvh - 110px);
    padding: 18px 0 34px;
  }

  .login-context {
    display: none;
  }

  .login-card.auth-card {
    padding: 28px 22px;
    border-radius: 18px;
  }

  .login-card .auth-card-heading h2 {
    font-size: 27px;
  }

  .login-card .form-grid.two {
    grid-template-columns: 1fr;
  }
}


/* Rebalance login proportions */
.login-layout {
  width: min(1080px, calc(100% - 48px));
  min-height: calc(100dvh - 132px);
  padding: 24px 0 42px;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
  gap: 38px;
  align-items: stretch;
}

.login-context {
  min-height: 520px;
  padding: 42px;
  border-radius: 24px;
}

.login-context h1 {
  max-width: 520px;
  font-size: clamp(42px, 4.4vw, 58px);
  line-height: 1;
}

.login-context-content > p {
  max-width: 520px;
  font-size: 14px;
}

.login-trust-list {
  margin-top: 28px;
}

.login-trust-list > div {
  min-height: 72px;
  padding: 14px 0;
}

.login-context-art {
  margin-top: 24px;
}

.login-panel {
  max-width: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.login-card.auth-card {
  width: 100%;
  min-height: 520px;
  padding: 42px;
  border-radius: 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.login-card .auth-card-heading {
  margin-bottom: 28px;
}

.login-card .auth-card-heading h2 {
  max-width: 360px;
  font-size: 34px;
}

.login-form {
  width: 100%;
}

.login-help-block {
  margin-top: 24px;
}

.login-panel-footer {
  margin-top: 14px;
}

@media (max-width: 1080px) and (min-width: 981px) {
  .login-layout {
    width: min(960px, calc(100% - 36px));
    grid-template-columns: 1fr 1fr;
    gap: 26px;
  }

  .login-context,
  .login-card.auth-card {
    min-height: 500px;
    padding: 34px;
  }

  .login-context h1 {
    font-size: 46px;
  }
}

@media (max-width: 980px) {
  .login-layout {
    width: min(680px, calc(100% - 32px));
    min-height: 0;
    padding-top: 20px;
    grid-template-columns: 1fr;
  }

  .login-context {
    min-height: auto;
    padding: 30px;
  }

  .login-card.auth-card {
    min-height: auto;
    padding: 34px;
  }
}

@media (max-width: 680px) {
  .login-layout {
    width: calc(100% - 24px);
  }

  .login-card.auth-card {
    padding: 26px 20px;
  }
}


/* Fully centered, balanced login composition */
.balanced-login-main {
  min-height: calc(100dvh - 82px);
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
  padding: 46px 20px 64px;
}

.balanced-login-glow {
  position: absolute;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(2px);
}

.glow-left {
  left: -190px;
  top: 10%;
  background: radial-gradient(circle, rgba(174, 214, 202, .28), rgba(174, 214, 202, 0) 70%);
}

.glow-right {
  right: -190px;
  bottom: 5%;
  background: radial-gradient(circle, rgba(197, 220, 212, .24), rgba(197, 220, 212, 0) 70%);
}

.balanced-login-shell {
  width: min(560px, 100%);
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: stretch;
}

.balanced-login-heading {
  margin-bottom: 22px;
  text-align: center;
}

.balanced-login-heading h1 {
  margin: 9px 0 7px;
  color: var(--ink);
  font-size: clamp(36px, 4.1vw, 48px);
  line-height: 1;
  letter-spacing: -.045em;
}

.balanced-login-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.balanced-login-card.auth-card {
  width: 100%;
  min-height: 0;
  padding: 36px;
  border: 1px solid #d8e2de;
  border-radius: 22px;
  background: rgba(255,255,255,.97);
  box-shadow: 0 24px 70px rgba(28, 63, 56, .11);
  display: block;
}

.balanced-login-card .login-form {
  gap: 16px;
}

.balanced-login-card .stack-form input,
.balanced-login-card .stack-form select {
  min-height: 50px;
}

.centered-help {
  margin-top: 20px;
  padding-top: 17px;
  text-align: center;
}

.centered-help a {
  display: inline;
}

.balanced-login-strip {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid #dce5e1;
  border-radius: 14px;
  overflow: hidden;
  background: rgba(255,255,255,.68);
}

.balanced-login-strip > span {
  min-height: 66px;
  padding: 12px 10px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 4px;
  border-right: 1px solid #dce5e1;
  text-align: center;
}

.balanced-login-strip > span:last-child {
  border-right: 0;
}

.balanced-login-strip i {
  color: #7f9992;
  font-size: 8px;
  font-style: normal;
  font-weight: 850;
  letter-spacing: .08em;
}

.balanced-login-strip b {
  color: #4b5f5a;
  font-size: 9px;
  font-weight: 750;
}

.balanced-footer {
  margin-top: 14px;
}

.setup-login-card.balanced-login-card {
  max-height: min(720px, calc(100dvh - 210px));
  overflow-y: auto;
}

@media (max-width: 680px) {
  .balanced-login-main {
    min-height: calc(100dvh - 70px);
    padding: 30px 12px 40px;
  }

  .balanced-login-shell {
    width: min(100%, 520px);
  }

  .balanced-login-card.auth-card {
    padding: 28px 20px;
    border-radius: 18px;
  }

  .balanced-login-strip {
    grid-template-columns: 1fr;
  }

  .balanced-login-strip > span {
    min-height: 48px;
    grid-template-columns: auto 1fr;
    justify-content: start;
    justify-items: start;
    gap: 8px;
    padding: 10px 14px;
    border-right: 0;
    border-bottom: 1px solid #dce5e1;
    text-align: left;
  }

  .balanced-login-strip > span:last-child {
    border-bottom: 0;
  }
}


/* Login page must never page-scroll */
.middos-login-view {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
}

.login-topbar {
  height: 72px;
}

.balanced-login-main {
  height: calc(100dvh - 72px);
  min-height: 0;
  padding: 24px 20px;
  overflow: hidden;
}

.balanced-login-shell {
  max-height: 100%;
  align-self: center;
}

.balanced-login-card.auth-card {
  max-height: 100%;
}

@media (max-height: 760px) {
  .balanced-login-main {
    padding: 14px 20px 18px;
  }

  .balanced-login-heading {
    margin-bottom: 14px;
  }

  .balanced-login-heading h1 {
    font-size: 36px;
  }

  .balanced-login-card.auth-card {
    padding: 28px 32px;
  }

  .balanced-login-strip {
    margin-top: 12px;
  }

  .balanced-login-strip > span {
    min-height: 52px;
  }

  .balanced-footer {
    margin-top: 9px;
  }
}

@media (max-height: 640px) {
  .balanced-login-heading {
    margin-bottom: 10px;
  }

  .balanced-login-heading .eyebrow,
  .balanced-login-heading p,
  .balanced-login-strip,
  .balanced-footer {
    display: none;
  }

  .balanced-login-heading h1 {
    margin: 0;
    font-size: 31px;
  }

  .balanced-login-card.auth-card {
    padding: 22px 28px;
  }

  .balanced-login-card .stack-form input,
  .balanced-login-card .stack-form select {
    min-height: 44px;
  }

  .centered-help {
    margin-top: 14px;
    padding-top: 13px;
  }
}

@media (max-width: 680px) {
  .login-topbar {
    height: 64px;
  }

  .balanced-login-main {
    height: calc(100dvh - 64px);
    min-height: 0;
    padding: 16px 12px;
  }

  .balanced-login-strip {
    display: none;
  }

  .balanced-footer {
    margin-top: 10px;
  }
}


/* Distinctive Middos access portal */
.login-topbar {
  width: min(1272px, calc(100% - 44px));
  height: 72px;
  margin: 0 auto;
  position: relative;
  z-index: 5;
}

.login-brand {
  cursor: pointer;
}

.login-support-link {
  color: #365b54;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.middos-access-main {
  height: calc(100dvh - 72px);
  min-height: 0;
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
  padding: 22px;
  background:
    linear-gradient(rgba(15,81,73,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,81,73,.025) 1px, transparent 1px),
    radial-gradient(circle at 50% 45%, #ffffff 0%, #f4f7f3 52%, #eef4f0 100%);
  background-size: 34px 34px, 34px 34px, auto;
}

.middos-access-orbit {
  position: absolute;
  border: 1px solid rgba(15,81,73,.08);
  border-radius: 50%;
  pointer-events: none;
}

.middos-access-orbit.orbit-one {
  width: 650px;
  height: 650px;
}

.middos-access-orbit.orbit-two {
  width: 820px;
  height: 820px;
}

.middos-watermark {
  position: absolute;
  right: 4vw;
  bottom: -11vh;
  color: rgba(15,81,73,.025);
  font-size: min(42vw, 620px);
  line-height: .8;
  font-weight: 950;
  letter-spacing: -.09em;
  pointer-events: none;
  user-select: none;
}

.middos-access-shell {
  width: min(760px, 100%);
  position: relative;
  z-index: 2;
}

.middos-access-card.auth-card {
  width: 100%;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(23,48,45,.12);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 36px 95px rgba(22,54,49,.16);
}

.middos-access-banner {
  min-height: 176px;
  padding: 28px 34px 25px;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 92% 6%, rgba(170,218,205,.26), transparent 28%),
    linear-gradient(135deg,#0d5048,#123b37 72%);
  color: #fff;
}

.middos-access-banner:after {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -110px;
  bottom: -190px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 50%;
  box-shadow:
    0 0 0 45px rgba(255,255,255,.025),
    0 0 0 90px rgba(255,255,255,.018);
}

.middos-access-kicker {
  color: #a8d3c8;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .17em;
}

.middos-access-title {
  margin-top: 15px;
  display: flex;
  align-items: center;
  gap: 15px;
  position: relative;
  z-index: 1;
}

.middos-access-icon {
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 14px;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: 21px;
  font-weight: 900;
}

.middos-access-title h1 {
  margin: 0;
  color: #fff;
  font-size: 29px;
  line-height: 1.03;
  letter-spacing: -.04em;
}

.middos-access-title p {
  margin: 5px 0 0;
  color: #c2d9d4;
  font-size: 11px;
}

.middos-access-meta {
  margin-top: 22px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: #a9c7c0;
  font-size: 9px;
  font-weight: 720;
}

.middos-access-meta i {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #6fa599;
}

.middos-access-form-area {
  padding: 30px 34px 31px;
}

.middos-access-form-heading {
  margin-bottom: 20px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 20px;
}

.middos-access-form-heading strong {
  color: #1d3732;
  font-size: 19px;
  letter-spacing: -.025em;
}

.middos-access-form-heading span {
  color: #788a85;
  font-size: 10px;
}

.middos-access-card .login-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 13px;
}

.middos-access-card .login-form .form-error,
.middos-access-card .login-form .login-submit {
  grid-column: 1 / -1;
}

.middos-access-card .login-form label {
  gap: 7px;
}

.middos-access-card .login-form input {
  min-height: 48px;
  border: 1px solid #ccd9d4;
  border-radius: 11px;
  background: #fafcfb;
}

.middos-access-card .login-form input:focus {
  background: #fff;
  border-color: #6d9d92;
  box-shadow: 0 0 0 4px rgba(15,81,73,.08);
}

.middos-access-card .login-submit {
  min-height: 49px;
  margin-top: 2px;
  padding: 0 17px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.middos-access-card .login-submit b {
  font-size: 17px;
  font-weight: 500;
}

.compact-login-error {
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 10px;
}

.middos-access-help {
  margin-top: 18px;
  padding-top: 16px;
  display: flex;
  justify-content: center;
  gap: 6px;
  border-top: 1px solid #e4ebe8;
  font-size: 10px;
}

.middos-access-help span {
  color: #899791;
}

.middos-access-help a {
  color: #5d4ac7;
  font-weight: 800;
  text-decoration: none;
}

.setup-form-area {
  max-height: calc(100dvh - 310px);
  overflow-y: auto;
}

@media (max-height: 720px) {
  .middos-access-banner {
    min-height: 138px;
    padding: 21px 28px 19px;
  }

  .middos-access-title {
    margin-top: 10px;
  }

  .middos-access-title h1 {
    font-size: 25px;
  }

  .middos-access-icon {
    width: 42px;
    height: 42px;
  }

  .middos-access-meta {
    margin-top: 14px;
  }

  .middos-access-form-area {
    padding: 23px 28px 24px;
  }

  .middos-access-form-heading {
    margin-bottom: 15px;
  }

  .middos-access-help {
    margin-top: 13px;
    padding-top: 12px;
  }
}

@media (max-width: 680px) {
  .login-topbar {
    width: calc(100% - 28px);
    height: 64px;
  }

  .middos-access-main {
    height: calc(100dvh - 64px);
    padding: 14px;
  }

  .middos-access-card.auth-card {
    border-radius: 20px;
  }

  .middos-access-banner {
    min-height: 135px;
    padding: 22px 20px;
  }

  .middos-access-title h1 {
    font-size: 24px;
  }

  .middos-access-meta {
    display: none;
  }

  .middos-access-form-area {
    padding: 22px 20px;
  }

  .middos-access-form-heading {
    display: grid;
    gap: 3px;
  }

  .middos-access-card .login-form {
    grid-template-columns: 1fr;
  }

  .middos-access-card .login-form .form-error,
  .middos-access-card .login-form .login-submit {
    grid-column: auto;
  }
}


/* Refined application sidebar */
.sidebar-brand-home {
  color: inherit;
  text-decoration: none;
}

.school-switcher {
  min-height: 58px;
  margin: 2px 12px 14px;
  padding: 9px 10px;
  grid-template-columns: 38px minmax(0, 1fr) 16px;
  gap: 10px;
  border-radius: 11px;
  cursor: default;
  overflow: hidden;
}

.school-monogram {
  width: 38px;
  height: 38px;
  min-width: 38px;
  border-radius: 10px;
  font-size: 10px;
  letter-spacing: -.02em;
  overflow: hidden;
}

.school-switcher-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
  align-content: center;
}

.school-switcher-copy strong,
.school-switcher-copy small {
  display: block;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.school-switcher-copy strong {
  color: var(--ink);
  font-size: 12px;
  font-weight: 760;
}

.school-switcher-copy small {
  color: var(--muted);
  font-size: 9px;
}

.school-switcher-chevron {
  width: 14px;
  height: 14px;
  color: #98a49f;
  display: none;
}

.nav-item {
  grid-template-columns: 28px minmax(0, 1fr) auto;
  min-height: 38px;
  gap: 7px;
  padding: 0 8px;
  border-radius: 9px;
}

.nav-icon {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: #72817b;
  transition: background .12s ease, color .12s ease, transform .12s ease;
}

.nav-icon svg {
  width: 16px;
  height: 16px;
  display: block;
}

.nav-item:hover .nav-icon {
  background: #e9eeeb;
  color: #4c625c;
}

.nav-item.active .nav-icon {
  background: rgba(15, 81, 73, .10);
  color: var(--brand);
}

.nav-item.active:hover .nav-icon {
  background: rgba(15, 81, 73, .14);
}

.nav-item b {
  font-size: 11.5px;
  font-weight: 700;
}

.search-button {
  width: 190px;
  grid-template-columns: 18px 1fr;
}

.topbar-search-icon {
  width: 17px;
  height: 17px;
  display: grid;
  place-items: center;
}

.topbar-search-icon svg {
  width: 15px;
  height: 15px;
}

.search-button kbd {
  display: none;
}


/* Discreet platform administration entry */
.middos-access-card{position:relative}
.platform-admin-hotspot{position:absolute;right:12px;bottom:10px;width:18px;height:18px;border:0;background:transparent;opacity:.16;display:grid;place-items:center;border-radius:50%;cursor:pointer}
.platform-admin-hotspot span{width:5px;height:5px;border-radius:50%;background:#55706a}
.platform-admin-hotspot:hover,.platform-admin-hotspot:focus-visible{opacity:.7;background:#eef3f1;outline:none}
.platform-admin-backdrop{position:fixed;inset:0;z-index:180;background:rgba(13,34,31,.42);backdrop-filter:blur(9px);display:grid;place-items:center;padding:20px}
.platform-admin-backdrop[hidden]{display:none}
.platform-admin-window{width:min(1120px,100%);height:min(760px,calc(100dvh - 40px));border:1px solid #d7e1dd;border-radius:18px;background:#f5f8f6;box-shadow:0 30px 90px rgba(14,43,37,.28);overflow:hidden;display:grid;grid-template-columns:260px minmax(0,1fr)}
.platform-admin-rail{padding:24px;background:linear-gradient(155deg,#123f39,#0d5148);color:#fff;display:flex;flex-direction:column}
.platform-admin-rail-brand{display:flex;gap:10px;align-items:center}.platform-admin-rail-brand>span{width:35px;height:35px;border-radius:10px;background:rgba(255,255,255,.13);display:grid;place-items:center;font-weight:900}.platform-admin-rail-brand strong{display:block;font-size:14px}.platform-admin-rail-brand small{display:block;margin-top:2px;font-size:8px;color:#a9c8c0}
.platform-admin-rail h2{margin:34px 0 7px;font-size:23px;letter-spacing:-.04em}.platform-admin-rail p{margin:0;color:#bad2cc;font-size:9px;line-height:1.6}.platform-admin-rail footer{margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.14);font-size:8px;color:#9abbb3;line-height:1.5}
.platform-admin-main{min-width:0;overflow:auto;padding:26px}.platform-admin-top{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:20px}.platform-admin-top span{font-size:8px;letter-spacing:.1em;color:#608178;font-weight:850}.platform-admin-top h2{margin:5px 0 0;font-size:24px;letter-spacing:-.035em}.platform-admin-top button{width:34px;height:34px;border:1px solid #d7e1dd;border-radius:9px;background:#fff;color:#61716b;font-size:18px}
.platform-auth-card{max-width:520px;margin:80px auto;padding:24px;border:1px solid #dbe4e1;border-radius:13px;background:#fff}.platform-auth-card h3{margin:0 0 5px;font-size:20px}.platform-auth-card>p{margin:0 0 19px;color:#71817c;font-size:9px;line-height:1.55}.platform-auth-card label{display:grid;gap:6px;margin:0 0 12px;font-size:8.5px;font-weight:720}
.platform-auth-card input,.platform-school-form input,.platform-school-form select{width:100%;height:42px;border:1px solid #cedbd6;border-radius:8px;background:#fbfcfb;padding:0 10px;color:#17302d}.platform-auth-card .button{margin-top:5px}
.platform-console-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:12px;align-items:start}.platform-school-form,.platform-school-list-panel{padding:17px;border:1px solid #dbe4e1;border-radius:11px;background:#fff}.platform-school-form h3,.platform-school-list-panel h3{margin:4px 0 5px;font-size:15px}.platform-school-form>p,.platform-school-list-panel>p{margin:0 0 15px;color:#75847f;font-size:8.5px;line-height:1.5}.platform-school-form label{display:grid;gap:5px;margin-bottom:10px;font-size:8px;font-weight:720}.platform-school-form small{color:#82908b;font-size:7px;line-height:1.4}
.platform-email-status{margin:0 0 12px;padding:9px;border:1px solid #e4dbbb;border-radius:8px;background:#fff9e9;color:#795f25;font-size:8px}.platform-email-status.ready{border-color:#cfe2d6;background:#f1f8f3;color:#35684e}
.platform-school-list{display:grid;gap:7px}.platform-school-row{display:grid;grid-template-columns:1fr 110px 100px;gap:9px;align-items:center;padding:10px;border:1px solid #e0e7e4;border-radius:8px;background:#fbfcfb}.platform-school-row strong{display:block;font-size:9px}.platform-school-row small{display:block;margin-top:2px;font-size:7.5px;color:#7b8984}.platform-school-row>span{font-size:8px;color:#5b6d67}.platform-school-row>div:last-child{text-align:right}.platform-school-row button{border:0;background:transparent;color:#5d4ac7;font-size:8px;font-weight:800;padding:4px}
.platform-empty{padding:28px 12px;text-align:center;color:#7b8984;font-size:8.5px}.platform-inline-message{margin:9px 0;padding:9px 10px;border-radius:8px;font-size:8px}.platform-inline-message.error{background:#fff0ef;border:1px solid #edcbc7;color:#9d3f38}.platform-inline-message.success{background:#f0f8f3;border:1px solid #cce3d4;color:#356b50}
@media(max-width:850px){.platform-admin-window{grid-template-columns:1fr;height:calc(100dvh - 20px)}.platform-admin-rail{display:none}.platform-admin-main{padding:18px}.platform-console-grid{grid-template-columns:1fr}}


/* 2026-08-28: platform-only blue developer/admin visual system */
.platform-admin-hotspot span {
  background: #2563eb;
}
.platform-admin-hotspot:hover,
.platform-admin-hotspot:focus-visible {
  background: #eaf1ff;
}

.platform-admin-backdrop {
  background: rgba(15, 28, 51, .52);
}

.platform-admin-window {
  width: min(1180px, calc(100vw - 56px));
  height: min(790px, calc(100dvh - 44px));
  grid-template-columns: 286px minmax(0, 1fr);
  border-color: #cdd9ec;
  background:
    radial-gradient(circle at 92% 4%, rgba(59,130,246,.08), transparent 24%),
    #f6f8fc;
  box-shadow: 0 34px 100px rgba(15, 36, 73, .34);
}

.platform-admin-rail {
  padding: 30px 28px;
  background:
    radial-gradient(circle at 15% 6%, rgba(96,165,250,.24), transparent 27%),
    linear-gradient(155deg, #0b1f42 0%, #123a73 52%, #1d4ed8 135%);
  color: #fff;
}

.platform-admin-rail-brand {
  gap: 12px;
}
.platform-admin-rail-brand > span {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 12px;
  background: rgba(255,255,255,.10);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
.platform-admin-rail-brand strong {
  font-size: 16px;
}
.platform-admin-rail-brand small {
  margin-top: 3px;
  color: #bdd5ff;
  font-size: 9px;
  letter-spacing: .02em;
}
.platform-admin-rail h2 {
  margin: 48px 0 13px;
  font-size: 29px;
  line-height: 1.06;
  letter-spacing: -.045em;
}
.platform-admin-rail p {
  color: #d3e3ff;
  font-size: 11px;
  line-height: 1.7;
}
.platform-admin-rail footer {
  padding-top: 20px;
  border-top-color: rgba(255,255,255,.16);
  color: #a9c8f7;
  font-size: 9px;
  line-height: 1.65;
}

.platform-admin-main {
  padding: 34px 34px 32px;
}
.platform-admin-top {
  margin-bottom: 28px;
}
.platform-admin-top span,
.platform-admin-window .eyebrow {
  color: #2563eb;
}
.platform-admin-top h2 {
  margin-top: 6px;
  font-size: 30px;
  color: #14213d;
}
.platform-admin-top button {
  width: 40px;
  height: 40px;
  border-color: #d6e0ef;
  border-radius: 11px;
  color: #62718a;
  box-shadow: 0 2px 8px rgba(30,64,175,.05);
}
.platform-admin-top button:hover {
  border-color: #a9bee2;
  background: #eef4ff;
  color: #1d4ed8;
}

.platform-console-grid {
  grid-template-columns: minmax(360px, .82fr) minmax(460px, 1.18fr);
  gap: 18px;
}
.platform-school-form,
.platform-school-list-panel,
.platform-auth-card {
  padding: 24px;
  border-color: #d8e2f0;
  border-radius: 15px;
  box-shadow: 0 10px 30px rgba(27, 58, 112, .06);
}
.platform-school-form h3,
.platform-school-list-panel h3 {
  margin: 7px 0 7px;
  font-size: 19px;
  color: #16233d;
}
.platform-school-form > p,
.platform-school-list-panel > p {
  margin-bottom: 22px;
  font-size: 10px;
  line-height: 1.6;
}
.platform-school-form label,
.platform-auth-card label {
  gap: 7px;
  margin-bottom: 14px;
  color: #34445f;
  font-size: 9px;
}
.platform-school-form input,
.platform-school-form select,
.platform-auth-card input {
  height: 48px;
  border-color: #ccd8e9;
  border-radius: 10px;
  background: #fbfcff;
  color: #14213d;
}
.platform-school-form input:focus,
.platform-school-form select:focus,
.platform-auth-card input:focus {
  outline: none;
  border-color: #5b8def;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(37,99,235,.10);
}

.platform-admin-window .button.primary {
  min-height: 50px;
  border-color: #2563eb;
  background: linear-gradient(180deg, #3478f6, #2563eb);
  box-shadow: 0 9px 20px rgba(37,99,235,.18);
}
.platform-admin-window .button.primary:hover {
  background: linear-gradient(180deg, #2f70e6, #1d4ed8);
}
.platform-admin-window .button.secondary {
  border-color: #cbd8eb;
  background: #fff;
  color: #25466f;
}

.platform-email-status {
  margin-bottom: 18px;
  padding: 12px 13px;
  border-color: #c9d8f0;
  border-radius: 10px;
  background: #eef4ff;
  color: #31547d;
  line-height: 1.5;
}
.platform-email-status.ready {
  border-color: #bdd0f2;
  background: #edf4ff;
  color: #2452a3;
}

.platform-school-list {
  gap: 9px;
}
.platform-school-row {
  min-height: 70px;
  grid-template-columns: minmax(0,1fr) 110px 112px;
  padding: 13px 14px;
  border-color: #dde5f1;
  border-radius: 11px;
  background: #fbfcff;
}
.platform-school-row:hover {
  border-color: #c2d2e9;
  background: #f7faff;
}
.platform-school-row strong {
  color: #192741;
  font-size: 10px;
}
.platform-school-row small {
  margin-top: 4px;
  color: #7a899e;
  font-size: 8px;
}
.platform-school-row > span {
  color: #58708f;
  font-size: 8.5px;
}
.platform-school-row button {
  color: #2563eb;
}

.platform-empty {
  min-height: 240px;
  display: grid;
  place-items: center;
  align-content: center;
  color: #8290a4;
  font-size: 9px;
}

.platform-inline-message.success {
  border-color: #bdd0f2;
  background: #edf4ff;
  color: #2452a3;
}

@media (max-width: 980px) {
  .platform-admin-window {
    width: calc(100vw - 24px);
    grid-template-columns: 240px minmax(0,1fr);
  }
  .platform-console-grid {
    grid-template-columns: 1fr;
  }
}


/* 2026-08-28: platform portal always relocks behind a compact credential gate */
.platform-admin-backdrop.platform-auth-mode {
  padding: 20px;
}

.platform-admin-backdrop.platform-auth-mode .platform-admin-window {
  width: min(430px, calc(100vw - 32px));
  height: auto;
  min-height: 0;
  max-height: calc(100dvh - 40px);
  grid-template-columns: 1fr;
  border-radius: 18px;
  background:
    radial-gradient(circle at 95% 0%, rgba(59,130,246,.08), transparent 30%),
    #f8faff;
  box-shadow: 0 26px 80px rgba(9, 30, 66, .38);
}

.platform-admin-backdrop.platform-auth-mode .platform-admin-rail {
  display: none;
}

.platform-admin-backdrop.platform-auth-mode .platform-admin-main {
  padding: 20px;
  overflow: visible;
}

.platform-admin-backdrop.platform-auth-mode .platform-admin-top {
  margin-bottom: 6px;
  align-items: center;
}

.platform-admin-backdrop.platform-auth-mode .platform-admin-top span {
  display: none;
}

.platform-admin-backdrop.platform-auth-mode .platform-admin-top h2 {
  margin: 0;
  font-size: 12px;
  color: #74839a;
  font-weight: 760;
  letter-spacing: .02em;
}

.platform-admin-backdrop.platform-auth-mode .platform-admin-top button {
  width: 34px;
  height: 34px;
  border-radius: 10px;
}

.platform-auth-card.platform-auth-card-compact {
  max-width: none;
  margin: 0;
  padding: 10px 8px 8px;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.platform-auth-lock {
  width: 44px;
  height: 44px;
  margin-bottom: 16px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: linear-gradient(180deg, #edf4ff, #e3edff);
  color: #2563eb;
  box-shadow: inset 0 0 0 1px #cbdcff;
}

.platform-auth-lock svg {
  width: 22px;
  height: 22px;
}

.platform-auth-kicker {
  display: block;
  margin-bottom: 7px;
  color: #2563eb;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .14em;
}

.platform-auth-card.platform-auth-card-compact h3 {
  margin: 0 0 7px;
  color: #14213d;
  font-size: 22px;
  letter-spacing: -.035em;
}

.platform-auth-card.platform-auth-card-compact > p {
  margin: 0 0 20px;
  color: #718097;
  font-size: 9px;
  line-height: 1.55;
}

.platform-auth-card.platform-auth-card-compact label {
  margin-bottom: 12px;
}

.platform-auth-card.platform-auth-card-compact input {
  height: 46px;
}

.platform-auth-card.platform-auth-card-compact .button.primary {
  min-height: 46px;
  margin-top: 3px;
}

.platform-auth-note {
  display: block;
  margin-top: 12px;
  color: #8a97aa;
  font-size: 7.5px;
  text-align: center;
}

.platform-console-footer {
  margin-top: 14px;
  text-align: right;
}

.platform-active-status {
  color: #2563eb !important;
  font-size: 8px !important;
}

@media (max-width: 520px) {
  .platform-admin-backdrop.platform-auth-mode {
    padding: 12px;
  }

  .platform-admin-backdrop.platform-auth-mode .platform-admin-window {
    width: 100%;
  }
}


/* 2026-08-31 — iPhone Safari usability */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  max-width: 100%;
}
body {
  max-width: 100%;
  overflow-x: hidden;
}
button, a, input, select, textarea {
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(15,81,73,.10);
}
.sidebar-nav,
.modal-body,
.search-results {
  -webkit-overflow-scrolling: touch;
}
@supports (height: 100dvh) {
  .app-view,
  .workspace {
    min-height: 100dvh;
  }
  .modal {
    max-height: min(760px, calc(100dvh - 40px));
  }
}

@media (max-width: 860px) {
  html, body {
    min-height: 100dvh;
  }

  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    font-size: 16px !important;
  }

  .button,
  .icon-button,
  .mobile-menu,
  .search-button,
  .user-menu-button,
  .nav-item,
  .settings-nav button {
    min-height: 44px;
  }

  .topbar {
    height: calc(var(--topbar) + env(safe-area-inset-top));
    padding-top: env(safe-area-inset-top);
    padding-left: max(14px, env(safe-area-inset-left));
    padding-right: max(14px, env(safe-area-inset-right));
  }

  .content {
    padding-left: max(14px, env(safe-area-inset-left));
    padding-right: max(14px, env(safe-area-inset-right));
    padding-bottom: calc(28px + env(safe-area-inset-bottom));
  }

  .sidebar {
    width: min(86vw, 330px);
    height: 100dvh;
    padding-top: env(safe-area-inset-top);
    padding-bottom: env(safe-area-inset-bottom);
  }

  .sidebar.open + .workspace::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 29;
    background: rgba(13,31,27,.30);
    backdrop-filter: blur(1.5px);
    -webkit-backdrop-filter: blur(1.5px);
  }

  .sidebar-nav {
    overscroll-behavior: contain;
  }

  .modal-backdrop {
    align-items: end;
    padding:
      12px
      max(12px, env(safe-area-inset-right))
      max(12px, env(safe-area-inset-bottom))
      max(12px, env(safe-area-inset-left));
  }

  .modal {
    width: 100%;
    max-height: calc(100dvh - env(safe-area-inset-top) - 18px);
    border-radius: 16px 16px 12px 12px;
  }

  .modal > header {
    min-height: 60px;
  }

  .modal-body {
    overscroll-behavior: contain;
  }

  .modal footer {
    padding-bottom: max(11px, env(safe-area-inset-bottom));
  }

  .search-overlay {
    padding:
      calc(env(safe-area-inset-top) + 10px)
      max(10px, env(safe-area-inset-right))
      max(10px, env(safe-area-inset-bottom))
      max(10px, env(safe-area-inset-left));
    align-items: start;
  }

  .search-dialog {
    width: 100%;
    max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px);
    border-radius: 14px;
  }

  .search-dialog > label {
    min-height: 58px;
  }

  .search-results {
    max-height: calc(100dvh - 100px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }

  .toast-stack {
    left: max(12px, env(safe-area-inset-left));
    right: max(12px, env(safe-area-inset-right));
    bottom: calc(12px + env(safe-area-inset-bottom));
    width: auto;
  }

  .floating-menu {
    right: max(12px, env(safe-area-inset-right));
  }

  .platform-admin-backdrop {
    padding:
      calc(10px + env(safe-area-inset-top))
      max(10px, env(safe-area-inset-right))
      calc(10px + env(safe-area-inset-bottom))
      max(10px, env(safe-area-inset-left));
  }

  .platform-admin-window {
    width: 100%;
    height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px);
  }

  .platform-admin-main {
    padding-bottom: calc(18px + env(safe-area-inset-bottom));
    -webkit-overflow-scrolling: touch;
  }

  .middos-login-view {
    min-height: 100dvh;
    height: 100dvh;
  }

  .login-topbar {
    padding-left: max(18px, env(safe-area-inset-left));
    padding-right: max(18px, env(safe-area-inset-right));
    padding-top: env(safe-area-inset-top);
  }

  .middos-access-main {
    padding-left: max(14px, env(safe-area-inset-left));
    padding-right: max(14px, env(safe-area-inset-right));
    padding-bottom: calc(14px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 430px) {
  .topbar-title h1 {
    font-size: 16px;
  }
  .content {
    padding-top: 14px;
  }
  .summary-grid {
    gap: 8px;
  }
  .summary-card {
    min-width: 0;
  }
  .platform-admin-backdrop.platform-auth-mode .platform-admin-window {
    max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px);
  }
}

/* 2026-08-31 — iPhone pass 2: phone-native navigation and forms */
@media(max-width:760px){
  .workspace{padding-bottom:calc(74px + env(safe-area-inset-bottom))}
  .content{padding-top:12px;padding-bottom:calc(94px + env(safe-area-inset-bottom))}
  .topbar{position:sticky;top:0;z-index:24;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  .topbar-title{min-width:0}.topbar-title>div{min-width:0}.topbar-title p{display:none}.topbar-title h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
  .topbar-actions{gap:5px}.search-button{width:42px;padding:0}.search-button span,.search-button kbd{display:none}.user-menu-button{min-width:42px;width:42px;padding:0;justify-content:center}.user-copy,.user-menu-button>i{display:none}
  .quick-add-button{width:42px;padding:0;font-size:0}.quick-add-button:before{content:"+";font-size:22px}
  .mobile-menu{display:none!important}
  .dashboard-heading,.section-heading{display:grid;align-items:start;gap:12px;margin-bottom:15px}.dashboard-heading>div:last-child,.section-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.dashboard-heading .button,.section-actions .button{min-height:46px}
  .record-toolbar{display:grid}.search-field{width:100%}
  .table-panel{border:0;background:transparent;box-shadow:none;overflow:visible}.table-summary{border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:8px}
  .table-scroll{overflow:visible}
  .mobile-record-table,.mobile-record-table tbody,.mobile-record-table tr,.mobile-record-table td{display:block;width:100%}
  .mobile-record-table{min-width:0!important}.mobile-record-table thead{display:none}
  .mobile-record-table tbody{display:grid;gap:9px}
  .mobile-record-table tbody tr{padding:8px 13px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}
  .mobile-record-table tbody td{min-height:42px;padding:9px 0!important;border-bottom:1px solid #edf0ed!important;display:grid;grid-template-columns:minmax(92px,34%) 1fr;gap:10px;align-items:center;font-size:13px}
  .mobile-record-table tbody td:last-child{border-bottom:0!important}
  .mobile-record-table tbody td:before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
  .mobile-record-table .row-actions{justify-content:flex-start}.mobile-record-table .row-action{min-height:40px;padding:0 14px;font-size:12px}
  [data-page-view="attendance"] .data-table,[data-page-view="attendance"] .data-table tbody,[data-page-view="attendance"] .data-table tr,[data-page-view="attendance"] .data-table td{display:block;width:100%}
  [data-page-view="attendance"] .data-table{min-width:0}[data-page-view="attendance"] .data-table thead{display:none}[data-page-view="attendance"] .data-table tbody{display:grid;gap:9px}
  [data-page-view="attendance"] .data-table tr{padding:8px 13px;border:1px solid var(--line);border-radius:12px;background:#fff}
  [data-page-view="attendance"] .data-table td{min-height:48px;padding:8px 0!important;border-bottom:1px solid #edf0ed!important;display:grid;grid-template-columns:92px 1fr;gap:10px;align-items:center}
  [data-page-view="attendance"] .data-table td:before{content:attr(data-label);font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase}
  [data-page-view="attendance"] .data-table td:last-child{border-bottom:0!important}
  .attendance-controls{grid-template-columns:1fr 1fr}.attendance-controls .button{grid-column:1/-1;min-height:46px}.attendance-status,.attendance-note{min-width:0;width:100%;height:46px}
  .settings-layout{display:block}.settings-nav{display:flex;overflow-x:auto;gap:4px;margin:0 -14px 12px;padding:0 14px 5px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.settings-nav::-webkit-scrollbar{display:none}.settings-nav button{flex:0 0 auto;min-height:42px;border:1px solid var(--line);border-radius:999px;padding:0 14px;background:#fff}.settings-nav button.active{background:var(--brand);color:#fff;border-color:var(--brand)}
  .settings-content{min-height:0}.settings-pane{padding:17px 14px}.pane-heading.split{display:grid}.pane-heading.split .button{width:100%}
  .form-grid.two,.form-grid.three{grid-template-columns:1fr}
  .portal-invite-grid{grid-template-columns:1fr!important}
  .modal.small-modal{width:100%}
}

.school-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
.school-module-switch{min-height:88px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fbfcfb;display:grid!important;grid-template-columns:34px 1fr;gap:10px!important;align-items:center!important;cursor:pointer}
.school-module-switch input{position:absolute;opacity:0;pointer-events:none}.school-module-toggle{width:32px;height:20px;border-radius:999px;background:#cdd8d4;position:relative;transition:.18s}.school-module-toggle:after{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.18s}.school-module-switch:has(input:checked){border-color:#a9cbc2;background:#f1f7f4}.school-module-switch input:checked+.school-module-toggle{background:var(--brand)}.school-module-switch input:checked+.school-module-toggle:after{transform:translateX(12px)}
.school-module-switch strong{display:block;font-size:11px}.school-module-switch small{display:block;margin-top:3px;color:var(--muted);font-size:9px;line-height:1.45}
.school-module-note{margin:12px 0;padding:12px;border:1px solid #dce6e2;border-radius:9px;background:#f6f9f7;display:grid;gap:3px}.school-module-note strong{font-size:10px}.school-module-note span{color:var(--muted);font-size:9px;line-height:1.5}
.portal-invite-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.portal-invite-card{padding:16px;border:1px solid var(--line);border-radius:10px;background:#fbfcfb;display:grid;gap:11px}.portal-invite-card h4{margin:2px 0 0;font-size:14px}.portal-invite-card label{display:grid;gap:6px;font-size:10px;font-weight:720}.portal-invite-history{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.pane-heading.compact{margin-bottom:10px}.portal-invite-actions{display:flex;align-items:center;gap:6px}
@media(max-width:760px){.school-module-grid{grid-template-columns:1fr}.school-module-switch{min-height:92px}.school-module-switch strong{font-size:13px}.school-module-switch small,.school-module-note span{font-size:11px}.portal-invite-card{padding:15px}.portal-invite-card label{font-size:12px}.portal-invite-row{grid-template-columns:1fr}.portal-invite-actions{justify-content:space-between}}

/* Middos brand system */
.middos-mark{
  color:transparent!important;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 73% 25%,#e5ad4a 0 5%,transparent 5.8%),
    linear-gradient(#fff,#fff) 50% 29%/54% 11% no-repeat,
    linear-gradient(#fff,#fff) 50% 57%/11% 49% no-repeat,
    linear-gradient(145deg,#116b62 0%,#0b514c 74%,#093f3d 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 7px 18px rgba(9,63,61,.12);
}
.middos-mark::after{
  content:"";
  position:absolute;
  inset:6px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:inherit;
  pointer-events:none;
}
.middos-brand-rule{
  display:block;
  width:38px;
  height:2px;
  margin-top:4px;
  border-radius:999px;
  background:linear-gradient(90deg,#8069e8 0 48%,#3d72d8 48% 76%,#e5ad4a 76%);
}
.middos-thread{display:inline-flex;align-items:center;gap:4px}
.middos-thread i,.middos-thread b{display:block;width:5px;height:5px;border-radius:50%;background:#8069e8;position:relative}
.middos-thread i:not(:last-child)::after,.middos-thread b:not(:last-child)::after{content:"";position:absolute;width:7px;height:1px;left:5px;top:2px;background:#8cbab1}
.middos-thread i:nth-child(2),.middos-thread b:nth-child(2){background:#3d72d8}
.middos-thread i:nth-child(3),.middos-thread b:nth-child(3){background:#e5ad4a}
.middos-thread.light i:first-child{background:#b8ded5}.middos-thread.light i:not(:last-child)::after{background:rgba(255,255,255,.35)}

:root{--middos-gold:#e5ad4a;--middos-blue:#3d72d8;--middos-midnight:#142f32}
.brand-lockup .brand-mark,.login-brand .brand-mark{width:38px;height:38px;border-radius:11px}
.brand-lockup strong,.login-brand strong{color:var(--middos-midnight);font-weight:830}
.sidebar{background:linear-gradient(180deg,#fbfcfa 0%,#f7faf8 100%)}
.brand-lockup{position:relative}.brand-lockup::after{content:"";position:absolute;left:20px;right:20px;bottom:0;height:1px;background:linear-gradient(90deg,#8069e8 0 21%,#3d72d8 21% 30%,#e5ad4a 30% 35%,transparent 35%)}
.school-switcher{border-color:#d6e2de}
.nav-item.active{box-shadow:inset 3px 0 0 #8069e8;background:linear-gradient(90deg,#eeeaff,#edf5f2)}
.topbar{box-shadow:inset 0 -1px 0 rgba(15,97,88,.02)}
.middos-access-main{background-image:linear-gradient(rgba(15,97,88,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(15,97,88,.035) 1px,transparent 1px);background-size:38px 38px}
.middos-access-banner{background:linear-gradient(125deg,#0c4f4a 0%,#8069e8 62%,#164d6a 100%);position:relative;overflow:hidden}
.middos-access-banner::after{content:"";position:absolute;width:260px;height:260px;right:-145px;top:-130px;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 42px rgba(255,255,255,.025),0 0 0 84px rgba(255,255,255,.018)}
.middos-access-kicker{display:flex;align-items:center;gap:8px;color:#b9ddd4}
.middos-thread.mini{display:inline-flex}.middos-thread.mini b{width:4px;height:4px}.middos-thread.mini b:not(:last-child)::after{width:6px;left:4px}
.login-submit{background:linear-gradient(145deg,#126b61,#0b514c)!important}
.login-submit:hover{background:linear-gradient(145deg,#0f5f57,#093f3d)!important}
.ep-mobile-dock button.active{box-shadow:inset 0 0 0 1px #c8dfd8}
.platform-admin-window{--brand:#315fbd}
@media(max-width:760px){
 .brand-lockup::after{display:none}
 .middos-access-main{background-size:26px 26px}
}

/* 2026-08-31 identity v2 — Middos product shell */
.login-brand.middos-lockup .middos-wordmark small{color:#667b75}.brand-lockup.middos-lockup{height:72px;padding:0 17px;gap:9px;border-bottom:1px solid #e1e8e5}.brand-lockup.middos-lockup::after{display:none}.brand-lockup.middos-lockup .middos-wordmark strong{font-size:17px}.brand-lockup.middos-lockup .middos-wordmark small{font-size:7px}
.sidebar{background:#fbfcf9}.sidebar::before{content:"";position:absolute;left:0;top:72px;bottom:0;width:3px;background:linear-gradient(180deg,var(--middos-forest) 0 30%,var(--middos-blue-bright) 30% 43%,var(--middos-gold) 43% 49%,transparent 49%);opacity:.65}
.school-switcher{border-radius:11px 11px 4px 11px}.nav-item{position:relative}.nav-item.active{box-shadow:none;background:#e8f1ed}.nav-item.active::before{content:"";position:absolute;left:-7px;width:6px;height:6px;border-radius:50%;background:var(--middos-gold);box-shadow:0 0 0 3px #fbfcf9}
.summary-card,.table-panel,.settings-pane,.auth-card{border-radius:14px 14px 5px 14px}.middos-access-card{border-radius:20px 20px 7px 20px!important}.middos-access-banner{border-radius:20px 20px 0 0}.middos-access-icon{background:rgba(255,255,255,.09)!important;border-color:rgba(255,255,255,.15)!important;display:grid;place-items:center}.middos-access-icon .middos-logo{width:38px;height:38px}
.topbar{background:rgba(247,248,244,.94)}.content{position:relative}.content::before{content:"";display:block;width:48px;height:3px;margin-bottom:17px;border-radius:999px;background:linear-gradient(90deg,var(--middos-forest) 0 48%,var(--middos-blue-bright) 48% 76%,var(--middos-gold) 76%)}
@media(max-width:760px){.brand-lockup.middos-lockup{height:66px}.sidebar::before{top:66px}.content::before{margin-bottom:11px;width:38px}}


/* 2026-09-01 brand v3 — product shell */
body{background:var(--middos-paper)}.login-brand.middos-lockup .middos-wordmark strong{color:var(--middos-ink)}.sidebar{background:var(--middos-paper)!important;border-right:1px solid var(--middos-line)!important}.sidebar::before{top:72px!important;width:5px!important;background:linear-gradient(180deg,var(--middos-cobalt) 0 76%,var(--middos-coral) 76% 100%)!important;opacity:1!important}
.brand-lockup.middos-lockup{height:72px!important;padding:0 16px!important;background:var(--middos-ink)!important;border-bottom:0!important}.brand-lockup.middos-lockup .middos-wordmark strong{color:#fff!important}.brand-lockup.middos-lockup .middos-wordmark small{color:#c1c9dd!important}.school-switcher{border:1px solid var(--middos-line)!important;border-radius:10px!important;background:#fff!important}.school-monogram{background:var(--middos-cobalt)!important;color:#fff!important}
.nav-item{border-radius:9px!important}.nav-item.active{background:#e8eaff!important;color:var(--middos-ink)!important;font-weight:780!important}.nav-item.active::before{left:-9px!important;width:8px!important;height:8px!important;border-radius:2px!important;background:var(--middos-coral)!important;transform:rotate(45deg);box-shadow:none!important}.topbar{background:rgba(251,250,247,.96)!important;border-bottom:1px solid var(--middos-line)!important;backdrop-filter:blur(18px)}.content::before{width:74px!important;height:7px!important;margin-bottom:19px!important;border-radius:0!important;background:linear-gradient(90deg,var(--middos-cobalt) 0 78%,var(--middos-coral) 78%)!important}
.summary-card,.table-panel,.settings-pane,.auth-card,.middos-access-card{border:1px solid var(--middos-line)!important;border-radius:12px!important;box-shadow:4px 4px 0 rgba(75,92,255,.08)!important}.middos-access-card{border-color:var(--middos-ink)!important;box-shadow:7px 7px 0 #e2e6ff!important}.middos-access-banner{background:var(--middos-ink)!important}.middos-access-icon{border-radius:12px!important}button.primary,.primary-button,.save-button{background:var(--middos-cobalt)!important;color:#fff!important;border-color:var(--middos-ink)!important}input:focus,select:focus,textarea:focus{border-color:var(--middos-cobalt)!important;box-shadow:0 0 0 3px rgba(75,92,255,.13)!important;outline:none}
@media(max-width:760px){.brand-lockup.middos-lockup{height:66px!important}.sidebar::before{top:66px!important}.content::before{width:56px!important;height:6px!important}}


/* 2026-08-31 calm identity — application shell */
body{background:var(--middos-paper)!important;color:var(--middos-ink)!important}
.login-brand.middos-lockup .middos-wordmark strong{color:var(--middos-ink)!important}
.sidebar{background:#f5f5f3!important;border-right:1px solid var(--middos-line)!important}
.sidebar::before{display:none!important}
.brand-lockup.middos-lockup{height:72px!important;padding:0 16px!important;background:#f5f5f3!important;border-bottom:1px solid var(--middos-line)!important}
.brand-lockup.middos-lockup .middos-wordmark strong{color:var(--middos-ink)!important}.brand-lockup.middos-lockup .middos-wordmark small{color:var(--middos-muted)!important}
.school-switcher{border:1px solid var(--middos-line)!important;border-radius:9px!important;background:#fff!important;box-shadow:none!important}.school-monogram{background:#eceeff!important;color:var(--middos-accent-deep)!important}
.nav-item{border-radius:8px!important}.nav-item.active{background:#e9ebf4!important;color:var(--middos-ink)!important;font-weight:700!important}.nav-item.active::before{left:-8px!important;width:3px!important;height:18px!important;border-radius:2px!important;background:var(--middos-accent)!important;transform:none!important;box-shadow:none!important}
.topbar{background:rgba(250,250,248,.96)!important;border-bottom:1px solid var(--middos-line)!important;backdrop-filter:blur(18px)}
.content::before{display:none!important}
.summary-card,.table-panel,.settings-pane,.auth-card,.middos-access-card{border:1px solid var(--middos-line)!important;border-radius:11px!important;box-shadow:none!important;background:#fff!important}
.middos-access-card{border-color:var(--middos-line)!important;box-shadow:0 18px 50px rgba(20,24,35,.06)!important}.middos-access-banner{background:#1d2028!important}.middos-access-icon{border-radius:10px!important}
button.primary,.primary-button,.save-button{background:var(--middos-accent)!important;color:#fff!important;border-color:var(--middos-accent)!important;box-shadow:none!important}
input:focus,select:focus,textarea:focus{border-color:#8e98dd!important;box-shadow:0 0 0 3px rgba(88,103,216,.10)!important;outline:none}
@media(max-width:760px){.brand-lockup.middos-lockup{height:66px!important}}


/* 2026-08-31 natural product design */
body{background:#fbfbfa!important;color:#202124!important}.sidebar{background:#f6f6f5!important;border-right:1px solid #e5e6e8!important}.sidebar::before{display:none!important}
.brand-lockup.middos-lockup{height:68px!important;padding:0 17px!important;background:#f6f6f5!important;border-bottom:1px solid #e5e6e8!important}.brand-lockup.middos-lockup .middos-wordmark strong{color:#202124!important;font-size:21px!important}
.school-switcher{border:0!important;border-radius:8px!important;background:#ececeb!important;box-shadow:none!important}.school-monogram{background:#dfe2f7!important;color:#414b9e!important}
.nav-item{border-radius:7px!important;color:#63676e!important}.nav-item.active{background:#e8e9ee!important;color:#202124!important;font-weight:650!important}.nav-item.active::before{display:none!important}
.topbar{background:rgba(251,251,250,.96)!important;border-bottom:1px solid #e5e6e8!important;box-shadow:none!important}.content::before{display:none!important}
.summary-card,.table-panel,.settings-pane,.auth-card,.middos-access-card{border:1px solid #e5e6e9!important;border-radius:10px!important;box-shadow:none!important;background:#fff!important}
.middos-access-card{box-shadow:0 16px 42px rgba(28,30,36,.06)!important}.middos-access-banner{background:#f3f4f8!important;color:#202124!important;border-bottom:1px solid #e5e6e9!important}.middos-access-banner *{color:inherit!important}.middos-access-icon{border-radius:9px!important}
button.primary,.primary-button,.save-button{background:#202124!important;color:#fff!important;border-color:#202124!important;box-shadow:none!important}
input:focus,select:focus,textarea:focus{border-color:#8d95d7!important;box-shadow:0 0 0 3px rgba(86,99,216,.10)!important;outline:none}


/* Mobile authentication stability */
@media (max-width: 680px) {
  .middos-login-view {
    min-height: 100dvh;
  }

  .middos-access-main {
    height: auto !important;
    min-height: calc(100dvh - 64px);
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    padding-top: max(14px, env(safe-area-inset-top));
    padding-bottom: max(14px, env(safe-area-inset-bottom));
  }

  .middos-access-shell {
    margin-block: auto;
  }

  .middos-access-card .login-form input {
    font-size: 16px !important;
    line-height: 1.25;
  }

  .middos-access-card .login-submit,
  .middos-access-card .login-form input {
    touch-action: manipulation;
  }
}
