:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #162338;
  background: #f3f6fb;
  line-height: 1.5;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; }
a { color: inherit; }
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: linear-gradient(145deg, #f6e8e3, #f8fafc 55%, #eef8f2); }
.login-card { width: min(100%, 430px); background: #fff; padding: 36px; border-radius: 20px; box-shadow: 0 20px 60px rgba(30, 60, 100, .12); border: 1px solid #dde5f0; }
.brand-mark { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 15px; background: #5a314d; color: white; font-weight: 800; letter-spacing: .04em; margin-bottom: 22px; }
.eyebrow { font-size: .77rem; font-weight: 800; letter-spacing: .12em; color: #53677f; margin: 0 0 8px; }
h1 { margin: 0 0 10px; font-size: clamp(1.7rem, 4vw, 2.25rem); line-height: 1.12; }
h2 { color: #17243a; }
.subtext { margin: 0 0 26px; color: #5b6b7f; }
.login-form { display: grid; gap: 10px; }
label { font-weight: 700; font-size: .9rem; margin-top: 4px; }
input:not([type="checkbox"]), select, textarea { width: 100%; border: 1px solid #cfd9e6; border-radius: 10px; padding: 12px 13px; font: inherit; outline: none; background: white; color: #162338; }
textarea { resize: vertical; min-height: 100px; }
input:focus, select:focus, textarea:focus { border-color: #c5634f; box-shadow: 0 0 0 3px rgba(50, 104, 173, .14); }
button, .button-link { border: 0; border-radius: 10px; background: #5a314d; color: white; padding: 12px 16px; font: inherit; font-weight: 800; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
button:hover, .button-link:hover { filter: brightness(1.08); }
.secondary { background: white; color: #5a314d; border: 1px solid #bfcde0; margin: 0; padding: 9px 13px; }
.secondary-link { background: white; color: #5a314d; border: 1px solid #c9d5e4; }
.alert { padding: 11px 13px; margin: 0 0 16px; border-radius: 10px; background: #fff0f0; color: #9f2323; border: 1px solid #f1c5c5; font-weight: 650; }
.wide-alert { max-width: 100%; margin-bottom: 18px; }
.success-alert { padding: 12px 15px; margin-bottom: 18px; border-radius: 12px; background: #ecf8f0; color: #21613b; border: 1px solid #bfe0c9; font-weight: 700; }
.security-note { text-align: center; color: #7a899c; font-size: .82rem; margin: 20px 0 0; }
.topbar { min-height: 66px; background: #5a314d; color: white; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 28px; }
.topbar-brand, .topbar-actions { display: flex; align-items: center; gap: 12px; }
.topbar-brand > a { color: white; text-decoration: none; font-weight: 800; }
.topbar-actions form { margin: 0; }
.top-link { color: white; text-decoration: none; font-weight: 700; font-size: .92rem; padding: 8px 4px; }
.role-pill { background: rgba(255,255,255,.16); padding: 4px 9px; border-radius: 999px; font-size: .78rem; }
.dashboard, .page-shell, .form-shell { max-width: 1120px; margin: auto; padding: 42px 24px; }
.form-shell { max-width: 1040px; }
.welcome, .form-card, .case-card, .table-wrap, .empty-state { background: white; border: 1px solid #dde5f0; border-radius: 18px; }
.welcome { padding: 30px; }
.welcome p:last-child { color: #5b6b7f; margin-bottom: 0; }
.module-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 20px; }
.module-card { background: white; border: 1px solid #dde5f0; border-radius: 16px; padding: 20px; min-height: 180px; position: relative; text-decoration: none; display: block; }
.active-card { transition: transform .12s ease, box-shadow .12s ease; }
.active-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(20, 55, 95, .08); }
.module-card h2 { margin: 0 0 8px; font-size: 1.1rem; }
.module-card p { color: #66778b; margin: 0; }
.module-badge { position: absolute; left: 20px; bottom: 18px; font-size: .75rem; font-weight: 800; color: #5a314d; background: #f6e8e3; border-radius: 999px; padding: 4px 8px; }
.module-stats { margin-top: 22px; color: #4e6178; font-size: .9rem; }
.module-stats strong { color: #5a314d; font-size: 1.15rem; }
.module-stats span { padding: 0 4px; color: #9ba8b8; }
.page-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 24px; }
.page-heading p:last-child { margin: 0; color: #63758a; }
.compact-heading { align-items: start; }
.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { text-align: left; font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: #61738b; background: #f8fafc; padding: 13px 16px; border-bottom: 1px solid #e0e7f0; }
.data-table td { padding: 15px 16px; border-bottom: 1px solid #edf1f6; vertical-align: top; }
.data-table tr:last-child td { border-bottom: 0; }
.muted { color: #7b899b; font-size: .82rem; }
.text-link { color: #9d493b; font-weight: 800; text-decoration: none; }
.status-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 9px; font-size: .75rem; font-weight: 800; background: #f6e8e3; color: #5a314d; white-space: nowrap; }
.status-video_pending { background: #fff6df; color: #875f00; }
.status-under_review { background: #f0eaff; color: #5b3a91; }
.status-closed { background: #e9f7ef; color: #23603c; }
.large-status { font-size: .82rem; padding: 7px 11px; }
.empty-state { padding: 44px; text-align: center; }
.empty-state h2 { margin-top: 0; }
.empty-state p { color: #67798e; }
.incident-form { display: grid; gap: 18px; }
.form-card { padding: 24px; }
.section-title { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 20px; }
.section-title > span { width: 32px; height: 32px; flex: 0 0 32px; border-radius: 50%; display: grid; place-items: center; background: #5a314d; color: white; font-weight: 800; }
.section-title h2 { margin: 1px 0 2px; font-size: 1.15rem; }
.section-title p { margin: 0; color: #6c7c90; font-size: .9rem; }
.form-grid { display: grid; gap: 16px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.field { min-width: 0; }
.field label { display: block; margin: 0 0 7px; }
.span-2 { grid-column: span 2; }
.field-help { color: #728297; font-size: .8rem; margin-top: 6px; }
.check-row { display: flex; gap: 12px; align-items: flex-start; border: 1px solid #d8e1ec; background: #f8fbff; border-radius: 12px; padding: 14px; cursor: pointer; }
.check-row input { margin-top: 4px; width: 18px; height: 18px; }
.check-row span { display: grid; gap: 2px; }
.check-row small { color: #67798e; font-weight: 500; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 4px 0 20px; }
.case-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 22px; }
.case-header p:last-child { color: #65768a; margin: 0; }
.case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.case-card { padding: 22px; }
.case-card h2 { margin: 0 0 16px; font-size: 1.05rem; }
dl { margin: 0; display: grid; grid-template-columns: 110px 1fr; gap: 8px 12px; }
dt { color: #6d7c8e; font-size: .86rem; }
dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.narrative-card { margin-top: 16px; }
.narrative-card h3 { margin: 20px 0 5px; font-size: .95rem; }
.narrative { white-space: pre-wrap; color: #36485e; margin: 0; }
.workflow-strip { margin-top: 18px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.workflow-step { background: white; border: 1px solid #dde5f0; border-radius: 12px; padding: 13px; display: flex; align-items: center; gap: 8px; color: #728196; font-size: .8rem; }
.workflow-step span { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: #e9eef5; font-weight: 800; }
.workflow-step.complete { color: #28603f; border-color: #cbe4d3; background: #f4fbf6; }
.workflow-step.complete span { color: white; background: #2f7a50; }
.workflow-step.current { color: #815c08; border-color: #eedda7; background: #fffaf0; }
.workflow-step.current span { color: white; background: #b98412; }
@media (max-width: 900px) { .module-grid { grid-template-columns: 1fr 1fr; } .form-grid.three { grid-template-columns: 1fr 1fr; } .case-grid { grid-template-columns: 1fr; } .workflow-strip { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .login-card { padding: 26px 22px; } .module-grid, .form-grid.two, .form-grid.three { grid-template-columns: 1fr; } .span-2 { grid-column: span 1; } .topbar { padding: 12px 16px; align-items: flex-start; } .topbar-brand { align-items: flex-start; flex-direction: column; gap: 3px; } .topbar-actions { align-items: flex-end; flex-direction: column-reverse; gap: 4px; } .page-heading, .case-header { align-items: stretch; flex-direction: column; } .form-actions { flex-direction: column-reverse; } .button-link { width: 100%; } .workflow-strip { grid-template-columns: 1fr; } }

.setup-alert { padding: 14px 16px; margin-bottom: 18px; border-radius: 12px; background: #fff8e7; color: #73550d; border: 1px solid #ead59d; }
.setup-alert a { font-weight: 800; color: #5a314d; }
button:disabled { opacity: .5; cursor: not-allowed; }
.seat-area-preview { margin-top: 8px; min-height: 28px; display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 999px; background: #f1f5fa; color: #50647b; font-size: .8rem; font-weight: 750; }
.seat-area-preview[data-area="front"] { background: #edf8f1; color: #2d6846; }
.seat-area-preview[data-area="middle"] { background: #fff7e5; color: #805e0c; }
.seat-area-preview[data-area="back"] { background: #f5efff; color: #65428e; }
.actions-field { margin-top: 18px; }
.action-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 8px; }
.action-option { display: flex; gap: 9px; align-items: flex-start; padding: 11px 12px; border: 1px solid #d8e1ec; border-radius: 10px; background: #fbfcfe; font-weight: 650; cursor: pointer; }
.action-option input { width: 17px; height: 17px; margin: 2px 0 0; flex: 0 0 auto; }
.action-summary { margin: 6px 0 0; padding-left: 20px; color: #36485e; }
.setup-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.stack-form { display: grid; gap: 14px; }
.reference-list { margin-top: 26px; border-top: 1px solid #e6ebf2; padding-top: 18px; }
.reference-list h3 { margin: 0 0 10px; font-size: .95rem; }
.reference-list ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; }
.reference-list li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 10px; background: #f7f9fc; border-radius: 8px; }
.reference-list li span { color: #708096; font-size: .84rem; }
@media (max-width: 900px) { .action-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .action-grid, .setup-grid { grid-template-columns: 1fr; } }

/* v5 setup/imports and dependent dropdowns */
.import-panel { margin-bottom: 18px; }
.import-box { border: 1px solid #dde5ef; background: #f9fbfe; border-radius: 14px; padding: 18px; }
.import-box h3 { margin: 0 0 7px; }
.import-box p { margin: 0 0 16px; line-height: 1.45; }
.template-link { display: inline-block; margin-top: 12px; }
.setup-section-gap { margin-top: 18px; }
.inline-assignment-form { align-items: end; }
.assignment-button button { width: 100%; }
.route-table-wrap { margin-top: 22px; }
.readonly-field { background: #f4f7fa !important; color: #40546b; }

/* v10 secure evidence and video review */
.evidence-section { margin-top: 16px; }
.evidence-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.evidence-heading h2 { margin: 2px 0 6px; }
.section-copy { color: #66778b; margin: 0; line-height: 1.5; max-width: 780px; }
.private-badge { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 7px 10px; background: #edf8f1; color: #2d6846; font-size: .78rem; font-weight: 800; }
.evidence-upload-form { border: 1px solid #dce6f1; background: #f8fbff; border-radius: 14px; padding: 18px; }
.evidence-upload-form input[type="file"] { width: 100%; border: 1px dashed #9fb4ce; background: white; border-radius: 10px; padding: 13px; }
.evidence-security-note { margin-top: 14px; padding: 11px 13px; border-radius: 10px; background: #f2f6fb; color: #53667d; font-size: .82rem; line-height: 1.45; }
.compact-actions { padding: 14px 0 0; margin: 0; }
.evidence-list { display: grid; gap: 18px; margin-top: 22px; }
.evidence-item { display: grid; grid-template-columns: minmax(260px, .9fr) minmax(0, 1.25fr); border: 1px solid #dde5f0; border-radius: 16px; overflow: hidden; background: white; }
.evidence-preview { min-height: 250px; background: #111827; display: grid; place-items: center; }
.evidence-preview video, .evidence-preview img { display: block; width: 100%; height: 100%; max-height: 480px; object-fit: contain; background: #111827; }
.image-evidence .evidence-preview { background: #eef3f8; }
.file-placeholder { color: #dbe5f3; text-align: center; padding: 30px; display: grid; gap: 8px; }
.file-placeholder span { justify-self: center; border: 1px solid #64748b; border-radius: 999px; padding: 5px 9px; font-size: .7rem; font-weight: 800; letter-spacing: .08em; }
.file-placeholder strong { font-size: .88rem; }
.evidence-body { padding: 20px; min-width: 0; }
.evidence-title-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.evidence-title-row h3 { margin: 8px 0 14px; font-size: 1rem; overflow-wrap: anywhere; }
.evidence-type-pill { display: inline-flex; padding: 4px 8px; border-radius: 999px; background: #f6e8e3; color: #5a314d; font-size: .72rem; font-weight: 800; }
.review-pill { display: inline-flex; white-space: nowrap; padding: 5px 8px; border-radius: 999px; font-size: .72rem; font-weight: 800; background: #fff6df; color: #875f00; }
.review-confirmed { background: #e9f7ef; color: #23603c; }
.review-partially_confirmed { background: #fff6df; color: #875f00; }
.review-not_confirmed { background: #fff0f0; color: #8d2b2b; }
.review-inconclusive { background: #f1f3f6; color: #59697b; }
.evidence-meta { grid-template-columns: 105px 1fr; margin-bottom: 14px; }
.evidence-open { display: inline-flex; width: auto; margin-bottom: 14px; }
.saved-review { margin: 14px 0 0; border-left: 4px solid #c5634f; background: #f5f8fc; padding: 12px 14px; border-radius: 8px; }
.saved-review p { margin: 6px 0 0; color: #43566e; white-space: pre-wrap; }
.video-review-form { margin-top: 16px; border-top: 1px solid #e4eaf1; padding-top: 16px; }
.video-review-form h4 { margin: 0 0 13px; }
.evidence-empty { margin-top: 18px; border: 1px dashed #c8d4e3; border-radius: 12px; padding: 18px; display: grid; gap: 4px; color: #66778b; }
.evidence-empty strong { color: #26384e; }
@media (max-width: 850px) { .evidence-item { grid-template-columns: 1fr; } .evidence-preview { min-height: 220px; } }
@media (max-width: 620px) { .evidence-heading, .evidence-title-row { flex-direction: column; } .private-badge, .review-pill { align-self: flex-start; } }

/* v12 coordinator decision */
.decision-section { margin-top: 16px; }
.decision-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.decision-heading h2 { margin: 2px 0 6px; }
.decision-badge { flex: 0 0 auto; display: inline-flex; border-radius: 999px; padding: 7px 11px; font-size: .76rem; font-weight: 800; }
.decision-badge.pending { background: #f1f3f6; color: #59697b; }
.decision-badge.draft { background: #fff6df; color: #875f00; }
.decision-badge.final { background: #e9f7ef; color: #23603c; }
.decision-warning { margin-bottom: 18px; padding: 13px 15px; border: 1px solid #ecd590; background: #fff8e7; color: #73550d; border-radius: 12px; line-height: 1.45; }
.decision-context-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 18px; }
.decision-context-card { border: 1px solid #e0e7f0; background: #f9fbfe; border-radius: 12px; padding: 15px; min-width: 0; }
.decision-context-card h3 { margin: 0 0 8px; font-size: .92rem; }
.decision-context-card > p { margin: 0; color: #40536a; white-space: pre-wrap; line-height: 1.5; }
.video-finding-list { display: grid; gap: 10px; }
.video-finding-row { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; }
.video-finding-row p { margin: 3px 0 0; color: #53667d; white-space: pre-wrap; }
.muted-copy { color: #6d7d91; margin: 4px 0 0; }
.decision-form { border-top: 1px solid #e4eaf1; padding-top: 4px; }
.decision-subsection { padding: 18px 0; border-bottom: 1px solid #e7edf4; }
.decision-subsection h3 { margin: 0 0 8px; font-size: .98rem; }
.violation-grid, .additional-action-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 12px; }
.decision-check { display: flex; align-items: flex-start; gap: 9px; padding: 11px 12px; border: 1px solid #d8e1ec; background: #fbfcfe; border-radius: 10px; cursor: pointer; font-weight: 650; line-height: 1.35; }
.decision-check input { width: 17px; height: 17px; margin: 2px 0 0; flex: 0 0 auto; }
.decision-row-gap { margin-top: 16px; }
.inactive-subsection { opacity: .55; }
.decision-actions { display: flex; justify-content: flex-end; gap: 10px; padding-top: 18px; }
.final-decision-summary { border: 1px solid #cfe2d6; background: #f5fbf7; border-radius: 12px; padding: 18px; }
.final-decision-summary dl { grid-template-columns: 120px 1fr; }
.student-history-block { margin-top: 22px; padding-top: 20px; border-top: 1px solid #e4eaf1; }
.student-history-block h3 { margin: 0 0 12px; font-size: .98rem; }
.history-table-wrap { overflow-x: auto; border: 1px solid #e1e8f0; border-radius: 11px; }
.history-table { width: 100%; border-collapse: collapse; min-width: 650px; }
.history-table th, .history-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #edf1f5; font-size: .82rem; }
.history-table th { background: #f6f8fb; color: #5d6f84; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.history-table tbody tr:last-child td { border-bottom: 0; }
.history-table a { color: #5a314d; font-weight: 800; text-decoration: none; }
@media (max-width: 900px) { .violation-grid, .additional-action-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .decision-context-grid { grid-template-columns: 1fr; } .decision-heading { flex-direction: column; } .violation-grid, .additional-action-grid { grid-template-columns: 1fr; } .decision-actions { flex-direction: column-reverse; } }

/* v13 notification center + printable school/driver notices */
.notification-section { margin-top: 16px; }
.notification-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 18px; }
.notification-heading h2 { margin: 2px 0 6px; }
.notification-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.notification-card { border: 1px solid #dce5ef; border-radius: 14px; padding: 18px; background: #fbfcfe; }
.notification-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.notification-card-head h3 { margin: 8px 0 0; font-size: 1rem; }
.audience-pill { display: inline-flex; border-radius: 999px; padding: 5px 9px; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.audience-pill.school { background: #f6e8e3; color: #5a314d; }
.audience-pill.driver { background: #fff1e7; color: #8a4b16; }
.notification-copy { color: #5f7186; line-height: 1.48; margin: 14px 0 18px; }
.notification-form { border-top: 1px solid #e5ebf2; padding-top: 16px; }
.notification-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 15px; align-items: center; }
.driver-privacy-note { margin-top: 13px; padding: 11px 13px; border-radius: 10px; background: #fff7ed; border: 1px solid #f3d5b8; color: #744314; font-size: .82rem; line-height: 1.45; }

.print-body { background: #eef2f6; margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #172334; }
.print-sheet { width: min(900px, calc(100% - 36px)); margin: 28px auto; background: #fff; box-shadow: 0 14px 40px rgba(26, 43, 66, .14); padding: 34px; box-sizing: border-box; }
.print-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; border-bottom: 2px solid #5a314d; padding-bottom: 18px; margin-bottom: 24px; }
.print-header h1 { margin: 4px 0 6px; font-size: 1.7rem; }
.print-header p { margin: 0; color: #617288; }
.print-button { border: 0; border-radius: 9px; background: #5a314d; color: white; padding: 10px 16px; font-weight: 800; cursor: pointer; }
.print-section { margin: 22px 0; }
.print-section h2, .driver-ack-box h2, .school-ack-box h2 { font-size: 1rem; margin: 0 0 12px; }
.print-dl { display: grid; grid-template-columns: 145px 1fr; gap: 8px 14px; margin: 0; }
.print-dl dt { font-weight: 800; color: #56697f; }
.print-dl dd { margin: 0; }
.print-dl.two-col { grid-template-columns: 145px 1fr; }
.print-rationale { margin: 0; line-height: 1.55; white-space: pre-wrap; }
.driver-use-banner { margin: -34px -34px 24px; padding: 11px 18px; background: #7a1f1f; color: #fff; text-align: center; font-weight: 900; letter-spacing: .08em; font-size: .78rem; }
.driver-id-grid { display: grid; grid-template-columns: 230px 1fr; gap: 24px; align-items: stretch; }
.driver-photo-box { min-height: 240px; border: 2px solid #d5dde7; border-radius: 12px; overflow: hidden; background: #eef2f6; display: grid; place-items: center; }
.driver-photo-box img { width: 100%; height: 100%; max-height: 320px; object-fit: cover; display: block; }
.photo-placeholder { color: #6d7c8e; font-weight: 700; text-align: center; padding: 20px; }
.driver-student-card { border: 1px solid #dde5ee; border-radius: 12px; padding: 18px; }
.driver-student-card h2 { margin: 0 0 16px; font-size: 1.5rem; }
.driver-command-box { margin: 24px 0; border: 3px solid #7a1f1f; border-radius: 12px; padding: 17px 18px; background: #fff9f9; }
.command-label { color: #7a1f1f; font-size: .78rem; font-weight: 900; letter-spacing: .08em; margin-bottom: 8px; }
.driver-command-box p { margin: 0; font-size: 1.1rem; line-height: 1.45; font-weight: 800; }
.driver-command-box .driver-extra-note { margin-top: 10px; font-size: .92rem; font-weight: 600; }
.driver-ack-box, .school-ack-box { margin-top: 28px; padding-top: 18px; border-top: 1px solid #dfe6ee; }
.driver-ack-box p { color: #617288; line-height: 1.45; }
.signature-row { display: grid; grid-template-columns: 1fr 220px; gap: 30px; margin-top: 36px; }
.signature-row span { border-top: 1px solid #33485f; padding-top: 7px; color: #53667d; font-size: .82rem; }
.driver-print-footer, .school-print-footer { margin-top: 28px; padding-top: 14px; border-top: 1px solid #dfe6ee; font-size: .76rem; color: #6a7a8d; text-align: center; }
.driver-print-footer { color: #7a1f1f; font-weight: 800; }

@media (max-width: 900px) { .notification-grid { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .notification-heading, .print-header { flex-direction: column; } .driver-id-grid { grid-template-columns: 1fr; } .notification-actions { flex-direction: column; align-items: stretch; } .notification-actions .button-link, .notification-actions button { width: 100%; box-sizing: border-box; } }
@media print {
  @page { margin: .45in; }
  .print-body { background: white; }
  .print-sheet { width: 100%; margin: 0; box-shadow: none; padding: 0; }
  .print-button { display: none !important; }
  .driver-use-banner { margin: 0 0 20px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .driver-command-box { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

.matched-contact-box{margin:14px 0;padding:14px 16px;border:1px solid #cfd8e3;border-radius:12px;background:#f8fbff}.matched-contact-box strong{display:block;margin-bottom:7px}.matched-contact-box ul{margin:0 0 7px 18px;padding:0}.matched-contact-box li{margin:4px 0}.matched-contact-box>span{font-size:.88rem;color:#5f6f82}.contact-primary{display:inline-block;margin-left:5px;padding:2px 7px;border-radius:999px;background:#e5f4ea;color:#23613b;font-size:.75rem;font-weight:700}.compact-alert{margin:14px 0;padding:12px 14px}

/* v17 case closure */
.closure-section { margin-top: 16px; }
.closure-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 18px; }
.closure-heading h2 { margin: 2px 0 6px; }
.closure-form { border-top: 1px solid #e4eaf1; padding-top: 16px; }
.closure-checklist { display: flex; flex-wrap: wrap; gap: 9px; margin: 14px 0 2px; }
.closure-check { display: inline-flex; align-items: center; border-radius: 999px; padding: 7px 10px; font-size: .78rem; font-weight: 800; }
.closure-check.complete { background: #e9f7ef; color: #23603c; }
.closed-readonly-note { margin-top: 14px; padding: 12px 14px; border: 1px solid #cfd9e5; border-radius: 10px; background: #f6f8fb; color: #52657b; line-height: 1.45; }
.closure-summary { margin-top: 6px; }
@media (max-width: 700px) { .closure-heading { flex-direction: column; } }

/* v18 operations dashboard */
.dashboard-v18 { max-width: 1280px; }
.dashboard-hero { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 22px; }
.dashboard-hero p:last-child { margin: 0; color: #62748a; }
.dashboard-hero-actions { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.dashboard-date { display: inline-flex; align-items: center; min-height: 42px; padding: 0 12px; border: 1px solid #d7e0eb; border-radius: 10px; background: #fff; color: #5c6f85; font-size: .84rem; font-weight: 800; }
.dashboard-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.kpi-card { background: #fff; border: 1px solid #dde5f0; border-radius: 15px; padding: 17px; min-width: 0; }
.kpi-card strong { display: block; margin: 5px 0 2px; color: #5a314d; font-size: 1.9rem; line-height: 1; }
.kpi-card span { display: block; color: #748397; font-size: .75rem; line-height: 1.3; }
.kpi-label { color: #556a82; font-size: .74rem; font-weight: 850; text-transform: uppercase; letter-spacing: .055em; }
.kpi-primary { border-color: #b9cce5; background: linear-gradient(145deg, #f6faff, #fff); }
.kpi-alert { border-color: #eccfb8; background: #fffaf5; }
.kpi-alert strong { color: #8a4b16; }
.dashboard-grid-main { display: grid; grid-template-columns: minmax(0, 2.25fr) minmax(270px, .75fr); gap: 18px; margin-bottom: 18px; }
.dashboard-panel { background: #fff; border: 1px solid #dde5f0; border-radius: 17px; padding: 20px; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 15px; }
.panel-heading.compact { margin-bottom: 10px; }
.panel-heading h2 { margin: 0; font-size: 1.1rem; }
.panel-heading .eyebrow { margin-bottom: 4px; }
.panel-count { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; border-radius: 999px; background: #f7efeb; color: #5a314d; font-weight: 900; }
.dashboard-table-wrap { overflow-x: auto; }
.dashboard-table { width: 100%; border-collapse: collapse; min-width: 720px; }
.dashboard-table th { padding: 9px 10px; text-align: left; color: #64768b; font-size: .72rem; text-transform: uppercase; letter-spacing: .045em; border-bottom: 1px solid #e4eaf1; }
.dashboard-table td { padding: 12px 10px; border-bottom: 1px solid #edf1f5; vertical-align: middle; font-size: .86rem; }
.dashboard-table tbody tr:last-child td { border-bottom: 0; }
.dashboard-table tbody tr:hover { background: #fafcff; }
.action-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 8px; font-size: .72rem; font-weight: 850; white-space: nowrap; }
.action-video { background: #fff3da; color: #815800; }
.action-decision { background: #f2ebff; color: #5e3a91; }
.action-notify { background: #eaf3ff; color: #5a314d; }
.action-close { background: #eaf8ef; color: #23603c; }
.action-closed { background: #eef1f5; color: #5d6d80; }
.workflow-summary-list { display: grid; gap: 2px; }
.workflow-summary-list > div { display: grid; grid-template-columns: 11px 1fr auto; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid #edf1f5; font-size: .84rem; }
.workflow-summary-list > div:last-child { border-bottom: 0; }
.workflow-summary-list strong { color: #24364c; }
.workflow-dot { width: 9px; height: 9px; border-radius: 50%; background: #94a3b8; }
.workflow-dot.video { background: #d49a1a; }
.workflow-dot.decision { background: #7a55b3; }
.workflow-dot.notify { background: #3d77b8; }
.workflow-dot.close { background: #2f7a50; }
.workflow-dot.closed { background: #7b8796; }
.quick-links { margin-top: 14px; padding-top: 12px; border-top: 1px solid #e5ebf2; display: grid; }
.quick-links a { display: flex; justify-content: space-between; gap: 10px; padding: 10px 2px; color: #9d493b; text-decoration: none; font-size: .84rem; font-weight: 800; }
.quick-links a:hover { color: #5a314d; }
.dashboard-empty { min-height: 100px; display: grid; place-items: center; align-content: center; gap: 4px; padding: 20px; color: #728196; text-align: center; }
.dashboard-empty strong { color: #31445c; }
.suspension-panel { margin-bottom: 18px; }
.suspension-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.suspension-card { border: 1px solid #e1e7ef; border-radius: 13px; padding: 15px; text-decoration: none; background: #fbfcfe; transition: transform .12s ease, box-shadow .12s ease; }
.suspension-card:hover { transform: translateY(-1px); box-shadow: 0 7px 18px rgba(29, 53, 83, .08); }
.suspension-card-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.suspension-card h3 { margin: 10px 0 3px; font-size: 1rem; }
.suspension-card > p { margin: 0; color: #61748a; font-size: .82rem; min-height: 38px; }
.restriction-pill { display: inline-flex; border-radius: 999px; padding: 4px 8px; font-size: .69rem; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.restriction-pill.active { background: #fff0f0; color: #9a2d2d; }
.restriction-pill.upcoming { background: #fff5df; color: #845d04; }
.restriction-pill.permanent { background: #7a1f1f; color: #fff; }
.suspension-dates { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px solid #e5ebf1; color: #5b6f85; font-size: .77rem; }
.suspension-dates strong { color: #293d55; }
.recent-panel { margin-bottom: 10px; }
.recent-case-list { display: grid; }
.recent-case-row { display: grid; grid-template-columns: 145px minmax(180px, .8fr) minmax(220px, 1.25fr) auto; gap: 14px; align-items: center; padding: 12px 4px; border-bottom: 1px solid #edf1f5; text-decoration: none; font-size: .84rem; }
.recent-case-row:last-child { border-bottom: 0; }
.recent-case-row:hover { background: #fbfcfe; }
.recent-case-row > div { display: grid; gap: 2px; }
.recent-case-row span:not(.status-pill) { color: #7a899a; font-size: .76rem; }
.recent-school { color: #52667d; }
@media (max-width: 1120px) {
  .dashboard-kpis { grid-template-columns: repeat(3, 1fr); }
  .suspension-card-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .dashboard-grid-main { grid-template-columns: 1fr; }
  .recent-case-row { grid-template-columns: 130px 1fr auto; }
  .recent-school { display: none !important; }
}
@media (max-width: 700px) {
  .dashboard-hero { align-items: stretch; flex-direction: column; }
  .dashboard-hero-actions { width: 100%; justify-content: space-between; }
  .dashboard-kpis { grid-template-columns: repeat(2, 1fr); }
  .suspension-card-grid { grid-template-columns: 1fr; }
  .recent-case-row { grid-template-columns: 1fr auto; }
  .recent-case-row > div:nth-child(2) { grid-column: 1 / 2; }
}
@media (max-width: 460px) {
  .dashboard-kpis { grid-template-columns: 1fr; }
  .dashboard-hero-actions { flex-direction: column; align-items: stretch; }
  .dashboard-date { justify-content: center; }
}


/* v19 streamlined operations dashboard */
.suspension-list { display: grid; }
.suspension-row { display: grid; grid-template-columns: 105px minmax(220px, 1.2fr) minmax(270px, 1fr) 135px; gap: 16px; align-items: center; padding: 14px 4px; border-bottom: 1px solid #edf1f5; text-decoration: none; }
.suspension-row:last-child { border-bottom: 0; }
.suspension-row:hover { background: #fbfcfe; }
.suspension-student { display: grid; gap: 3px; min-width: 0; }
.suspension-student strong { color: #18283d; }
.suspension-student span, .suspension-period, .suspension-case { color: #66798f; font-size: .8rem; }
.suspension-period strong { color: #293d55; }
.suspension-case { text-align: right; white-space: nowrap; }
.recent-case-row { grid-template-columns: 145px minmax(170px, .8fr) minmax(170px, .7fr) minmax(220px, 1.2fr) auto; }
.recent-bus-date { color: #66798f; white-space: nowrap; }
.recent-case-id, .recent-student { display: block !important; }
@media (max-width: 1000px) {
  .suspension-row { grid-template-columns: 100px 1fr 1fr; }
  .suspension-case { display: none; }
  .recent-case-row { grid-template-columns: 130px 1fr 180px auto; }
  .recent-school { display: none !important; }
}
@media (max-width: 700px) {
  .suspension-row { grid-template-columns: 1fr auto; gap: 8px 12px; }
  .suspension-student { grid-column: 1 / -1; order: -1; }
  .suspension-period { grid-column: 1 / -1; }
  .recent-case-row { grid-template-columns: 1fr auto; gap: 6px 12px; }
  .recent-student { grid-column: 1 / 2; }
  .recent-bus-date { grid-column: 1 / 2; }
  .recent-case-id { grid-column: 1 / 2; }
  .recent-case-row > .status-pill { grid-column: 2; grid-row: 1 / span 3; align-self: center; }
}

/* v20: suspension working-day countdown */
.suspension-period { display: flex; flex-direction: column; gap: 5px; }
.workday-countdown { display: inline-flex; width: fit-content; padding: 4px 9px; border-radius: 999px; background: #eef5ff; color: #1f5798; font-weight: 800; font-size: .76rem; }

/* v21: dashboard total-case card + student profile */
.dashboard-kpis { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.kpi-total { border-color: #d6e0ec; background: #fbfcfe; }
.kpi-total strong { color: #24364c; }
.student-profile-card { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 24px; align-items: center; margin-bottom: 16px; }
.student-photo-wrap { width: 150px; height: 150px; border-radius: 16px; overflow: hidden; border: 1px solid #dbe4ef; background: #eef3f8; }
.student-photo-wrap img { width: 100%; height: 100%; display: block; object-fit: cover; }
.student-photo-placeholder { width: 100%; height: 100%; display: grid; place-items: center; background: linear-gradient(145deg, #f7efeb, #f8fafc); color: #66809d; }
.student-photo-placeholder span { width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: #dbe8f6; color: #5a314d; font-size: 2rem; font-weight: 900; }
.student-profile-body { min-width: 0; }
.student-profile-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 16px; }
.student-profile-heading h2 { margin: 2px 0 0; font-size: 1.45rem; }
.student-bus-badge { display: inline-flex; align-items: center; padding: 7px 11px; border-radius: 999px; background: #f6e8e3; color: #9d493b; font-size: .82rem; font-weight: 850; white-space: nowrap; }
.student-profile-details { grid-template-columns: 100px minmax(120px, 1fr) 70px minmax(120px, 1fr); gap: 10px 14px; }
.case-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1120px) { .dashboard-kpis { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 900px) { .case-grid-two { grid-template-columns: 1fr; } .student-profile-details { grid-template-columns: 100px 1fr; } }
@media (max-width: 700px) { .dashboard-kpis { grid-template-columns: repeat(2, 1fr); } .student-profile-card { grid-template-columns: 1fr; } .student-photo-wrap { width: 120px; height: 120px; } }
@media (max-width: 460px) { .dashboard-kpis { grid-template-columns: 1fr; } .student-profile-heading { flex-direction: column; } }

/* v22 evidence deletion */
.evidence-file-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.evidence-file-actions .evidence-open { margin-bottom:0; }
.evidence-delete-form { margin:0; }
.danger-outline-button { background:#fff; color:#a12b2b; border:1px solid #d9a6a6; border-radius:8px; padding:9px 13px; font-weight:700; cursor:pointer; }
.danger-outline-button:hover { background:#fff4f4; border-color:#c26d6d; }

/* ============================================================
   v24 — Tyler-inspired local UI (no CDN / no permanent sidebar)
   ============================================================ */
:root {
  --app-blue: #5a314d;
  --app-blue-dark: #352432;
  --app-blue-light: #f6e8e3;
  --app-header: #292929;
  --app-header-soft: #353535;
  --app-green-accent: #75883a;
  --app-border: #d8dde5;
  --app-border-soft: #e7eaef;
  --app-bg: #f3f4f6;
  --app-text: #1f2937;
  --app-muted: #65758b;
}

body {
  background: var(--app-bg);
  color: var(--app-text);
}
body.drawer-open { overflow: hidden; }

/* Local application header */
.app-accent-line {
  height: 5px;
  background: var(--app-blue);
}
.district-header {
  position: sticky;
  top: 0;
  z-index: 80;
  background: var(--app-header);
  color: #fff;
  border-bottom: 1px solid #161616;
  box-shadow: 0 1px 3px rgba(0,0,0,.22);
}
.district-header-inner {
  max-width: 1420px;
  min-height: 62px;
  margin: 0 auto;
  padding: 0 22px;
  display: flex;
  align-items: stretch;
  gap: 0;
}
.drawer-toggle,
.user-menu-button {
  appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #fff;
  margin: 0;
  box-shadow: none;
  filter: none;
}
.drawer-toggle {
  min-width: 108px;
  padding: 0 18px 0 0;
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 650;
  border-right: 1px solid rgba(255,255,255,.13);
}
.drawer-toggle:hover,
.user-menu-button:hover { background: rgba(255,255,255,.055); filter: none; }
.hamburger { width: 22px; display: grid; gap: 4px; }
.hamburger i { display: block; height: 2px; background: #fff; border-radius: 2px; }
.menu-caret { margin-left: auto; font-size: .78rem; color: #d7d7d7; }
.district-brand {
  min-width: 250px;
  padding: 10px 22px;
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  text-decoration: none;
  border-right: 0;
}
.district-brand strong { color: #fff; font-size: .98rem; line-height: 1.15; letter-spacing: .01em; }
.district-brand span { margin-top: 3px; color: #b8c0ca; font-size: .7rem; letter-spacing: .035em; }
.district-nav {
  display: flex;
  align-items: stretch;
  flex: 1;
  min-width: 0;
}
.district-nav a {
  position: relative;
  display: flex;
  align-items: center;
  padding: 0 18px;
  color: #f1f1f1;
  text-decoration: none;
  font-size: .88rem;
  white-space: nowrap;
  border-right: 1px solid rgba(255,255,255,.07);
}
.district-nav a:hover { background: var(--app-header-soft); color: #fff; }
.district-nav a.active { background: #333; }
.district-nav a.active::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 0;
  height: 3px;
  background: #c5634f;
}
.user-menu-button {
  min-width: 190px;
  padding: 0 10px 0 16px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  text-align: left;
  border-left: 1px solid rgba(255,255,255,.12);
}
.user-avatar,
.drawer-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #edf3fa;
  color: var(--app-blue-dark);
  font-weight: 800;
}
.user-avatar { width: 32px; height: 32px; font-size: .8rem; }
.user-menu-copy { display: flex; flex-direction: column; min-width: 0; }
.user-menu-copy strong { color: #fff; font-size: .8rem; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-menu-copy small { color: #b9c1ca; font-size: .67rem; margin-top: 2px; }

/* Drawer behaves like Tyler's menu: hidden until Menu is clicked */
.drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 98;
  background: rgba(0,0,0,.34);
}
.app-drawer {
  position: fixed;
  z-index: 99;
  left: 0;
  top: 0;
  bottom: 0;
  width: min(355px, 88vw);
  display: flex;
  flex-direction: column;
  background: #323232;
  color: #fff;
  transform: translateX(-102%);
  transition: transform .18s ease-out;
  box-shadow: 5px 0 22px rgba(0,0,0,.30);
  border-top: 5px solid var(--app-green-accent);
}
.app-drawer.open { transform: translateX(0); }
.drawer-user {
  min-height: 108px;
  display: grid;
  grid-template-columns: 62px 1fr 34px;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border-bottom: 2px solid var(--app-green-accent);
}
.drawer-avatar { width: 62px; height: 62px; font-size: 1.4rem; background: #f4e6df; }
.drawer-user strong { display: block; color: #fff; font-size: .94rem; }
.drawer-user span { display: block; margin-top: 3px; color: #c6c6c6; font-size: .76rem; }
.drawer-close {
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #ddd;
  font-size: 1.65rem;
  line-height: 1;
  box-shadow: none;
}
.drawer-close:hover { background: rgba(255,255,255,.06); filter: none; }
.drawer-section-label {
  padding: 13px 18px 6px;
  color: #9fa4aa;
  font-size: .66rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
}
.drawer-nav { display: grid; }
.drawer-nav a {
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  min-height: 48px;
  padding: 0 20px 0 17px;
  color: #f3f3f3;
  text-decoration: none;
  font-size: .93rem;
  border-left: 4px solid transparent;
}
.drawer-nav a span { color: #e4e4e4; font-size: 1.08rem; }
.drawer-nav a:hover { background: #3b3b3b; border-left-color: #c5634f; }
.drawer-spacer { flex: 1; }
.drawer-signout { padding: 16px 18px 22px; border-top: 1px solid rgba(255,255,255,.12); }
.drawer-signout button {
  width: 100%;
  min-height: 42px;
  border-radius: 3px;
  background: #454545;
  color: #fff;
  border: 1px solid #5f5f5f;
}
.drawer-signout button:hover { background: #505050; filter: none; }

/* Overall layout: flatter, cleaner, closer to district operations software */
.dashboard,
.page-shell,
.form-shell {
  width: min(100% - 44px, 1320px);
  max-width: 1320px;
  margin: 0 auto;
  padding: 30px 0 46px;
}
.form-shell { max-width: 1180px; }
.dashboard-hero {
  margin-bottom: 18px;
  padding: 0 0 18px;
  border-bottom: 1px solid #d7dce3;
  align-items: center;
}
.dashboard-hero h1,
.page-heading h1,
.form-heading h1,
.case-header h1 { color: #1d2c40; }
.dashboard-hero h1 { font-size: 2rem; }
.dashboard-hero .eyebrow { color: #687990; }
.dashboard-hero p:last-child { color: #5e6f83; }
button,
.button-link {
  border-radius: 3px;
  background: var(--app-blue);
  box-shadow: none;
}
button:hover,
.button-link:hover { background: #416da5; filter: none; }
.secondary,
.secondary-link {
  border-radius: 3px;
  color: var(--app-blue-dark);
  border-color: #bdc6d1;
}
input:not([type="checkbox"]), select, textarea { border-radius: 3px; }

.dashboard-kpis {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 20px;
}
.kpi-card {
  position: relative;
  min-height: 126px;
  padding: 15px 15px 13px;
  border-radius: 5px;
  border: 1px solid var(--app-border);
  background: #fff;
  box-shadow: 0 1px 2px rgba(35,48,67,.05);
  overflow: hidden;
}
.kpi-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 4px;
  height: 100%;
  background: #a9b5c3;
}
.kpi-total::before { background: #576c82; }
.kpi-primary::before { background: var(--app-blue); }
.kpi-card:nth-child(3)::before { background: #b8862b; }
.kpi-card:nth-child(4)::before { background: #7757a8; }
.kpi-card:nth-child(5)::before { background: #3476a8; }
.kpi-card:nth-child(6)::before { background: #397f5d; }
.kpi-alert::before { background: #ad6228; }
.kpi-card strong { margin: 11px 0 4px; color: #5a314d; font-size: 2rem; }
.kpi-card span { font-size: .72rem; color: #6a7888; }
.kpi-label { font-size: .69rem; color: #4f6074; }
.kpi-primary { border-color: #cbd6e3; background: #fff; }
.kpi-alert { border-color: #e0d0c1; background: #fffdfb; }
.kpi-alert strong { color: #8b4a1b; }

.dashboard-panel,
.case-card,
.form-card,
.table-wrap,
.empty-state,
.welcome {
  border-radius: 5px;
  border-color: var(--app-border);
  box-shadow: 0 1px 2px rgba(35,48,67,.04);
}
.dashboard-panel { padding: 0; overflow: hidden; margin-bottom: 18px; }
.dashboard-panel .panel-heading {
  margin: 0;
  min-height: 66px;
  padding: 14px 18px;
  align-items: center;
  background: #fff;
  border-bottom: 1px solid var(--app-border-soft);
}
.panel-heading h2 { font-size: 1.13rem; }
.panel-heading .eyebrow { font-size: .66rem; color: #6c7c8d; }
.panel-count {
  min-width: 30px;
  height: 30px;
  border-radius: 15px;
  background: #edf2f8;
  color: var(--app-blue-dark);
}
.suspension-list,
.recent-case-list { background: #fff; }
.suspension-row {
  display: grid;
  grid-template-columns: 100px minmax(220px, 1.1fr) minmax(260px, .9fr) 170px;
  align-items: center;
  gap: 18px;
  min-height: 72px;
  padding: 12px 18px;
  border-bottom: 1px solid #e8ebef;
  text-decoration: none;
}
.suspension-row:last-child { border-bottom: 0; }
.suspension-row:hover,
.recent-case-row:hover { background: #f8fafc; }
.restriction-pill { border-radius: 3px; }
.suspension-student strong { color: #4d3945; }
.suspension-student span,
.suspension-period span { color: #5e6f82; }
.workday-countdown { color: #8a4c19 !important; font-weight: 850; }
.suspension-case { text-align: right; color: #75616b; font-weight: 750; font-size: .78rem; }

.recent-case-row {
  display: grid;
  grid-template-columns: 180px minmax(160px, .8fr) 190px minmax(220px, 1fr) 120px;
  align-items: center;
  gap: 16px;
  min-height: 60px;
  padding: 11px 18px;
  border-bottom: 1px solid #e8ebef;
  text-decoration: none;
}
.recent-case-row:last-child { border-bottom: 0; }
.status-pill { border-radius: 3px; }
.text-link { color: #9d493b; }

/* Case and form pages */
.case-header {
  margin-bottom: 17px;
  padding-bottom: 16px;
  border-bottom: 1px solid #d7dce3;
}
.student-profile-card { border-left: 4px solid var(--app-blue); }
.student-photo-wrap { border-radius: 4px; }
.student-bus-badge { border-radius: 3px; background: #f3e7e1; color: #9d493b; }
.case-grid-three,
.case-grid-two { gap: 14px; }
.case-card { padding: 18px; }
.section-title > span { border-radius: 3px; background: var(--app-blue); }
.notification-card,
.evidence-item,
.import-box { border-radius: 4px; }

/* Data tables look more like operational reports */
.data-table th,
.history-table th {
  background: #eef1f5;
  color: #4c5d70;
  border-bottom-color: #d6dce4;
}
.data-table td,
.history-table td { border-bottom-color: #e6e9ed; }

@media (max-width: 1120px) {
  .district-nav a { padding: 0 12px; }
  .user-menu-button { min-width: 150px; }
  .user-menu-copy { display: none; }
  .dashboard-kpis { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 860px) {
  .district-header-inner { padding: 0 14px; }
  .district-brand { min-width: 0; flex: 1; border-right: 0; }
  .district-nav { display: none; }
  .user-menu-button { min-width: auto; padding: 0 8px; border-left: 0; }
  .dashboard, .page-shell, .form-shell { width: min(100% - 28px, 1320px); padding-top: 22px; }
  .dashboard-kpis { grid-template-columns: repeat(2, 1fr); }
  .suspension-row { grid-template-columns: 92px 1fr; }
  .suspension-period { grid-column: 2; }
  .suspension-case { display: none; }
  .recent-case-row { grid-template-columns: 1fr 1fr; }
  .recent-school { grid-column: 1 / span 2; }
  .recent-case-row .status-pill { justify-self: start; }
}
@media (max-width: 560px) {
  .drawer-toggle > span:not(.hamburger) { display: none; }
  .drawer-toggle { min-width: 46px; width: 46px; padding-right: 12px; border-right: 0; }
  .district-brand { padding-left: 10px; }
  .district-brand span { display: none; }
  .dashboard-kpis { grid-template-columns: 1fr 1fr; }
  .dashboard-hero { align-items: flex-start; flex-direction: column; }
  .dashboard-hero-actions { width: 100%; }
  .dashboard-hero-actions .button-link { width: 100%; }
  .suspension-row { grid-template-columns: 1fr; gap: 7px; }
  .suspension-period { grid-column: 1; }
  .recent-case-row { grid-template-columns: 1fr; }
  .recent-school { grid-column: 1; }
}

/* v26 organized setup workspace */
.setup-page-v26 { max-width: 1320px; }
.setup-page-heading { margin-bottom: 18px; }
.setup-message { margin-bottom: 16px; border-radius: 3px; }
.setup-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border: 1px solid #d5dbe3;
  background: #fff;
  margin-bottom: 12px;
}
.setup-summary-item { min-height: 72px; padding: 12px 16px; border-right: 1px solid #e1e5ea; }
.setup-summary-item:last-child { border-right: 0; }
.setup-summary-item span { display: block; color: #67778a; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .065em; }
.setup-summary-item strong { display: block; margin-top: 5px; color: #5a314d; font-size: 1.65rem; line-height: 1; }
.setup-subnav {
  display: flex;
  gap: 0;
  overflow-x: auto;
  background: #f0f2f5;
  border: 1px solid #d5dbe3;
  border-top: 0;
  margin-bottom: 22px;
}
.setup-subnav a {
  padding: 11px 18px;
  border-right: 1px solid #d5dbe3;
  color: #34485f;
  font-size: .82rem;
  font-weight: 750;
  text-decoration: none;
  white-space: nowrap;
}
.setup-subnav a:hover { background: #fff; color: #9d493b; }
.setup-section-block { scroll-margin-top: 90px; margin: 0 0 24px; border: 1px solid #d5dbe3; background: #fff; }
.setup-section-header {
  padding: 16px 18px;
  border-bottom: 1px solid #dfe4ea;
  background: #f8f9fb;
}
.setup-section-header-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.setup-section-kicker { display: block; margin-bottom: 3px; color: #6d7c8d; font-size: .65rem; font-weight: 850; letter-spacing: .08em; }
.setup-section-header h2 { margin: 0 0 4px; color: #1f3044; font-size: 1.16rem; }
.setup-section-header p { margin: 0; color: #657588; font-size: .86rem; }
.setup-count-badge { flex: 0 0 auto; padding: 5px 9px; border: 1px solid #c9d2dd; background: #fff; color: #52677e; font-size: .74rem; font-weight: 800; }
.setup-import-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.setup-import-card { padding: 18px; border-right: 1px solid #e1e5ea; border-bottom: 1px solid #e1e5ea; min-width: 0; }
.setup-import-card:nth-child(even) { border-right: 0; }
.setup-import-card:nth-last-child(-n+2) { border-bottom: 0; }
.setup-import-topline { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.setup-type-tag { color: #6a7888; font-size: .64rem; font-weight: 850; letter-spacing: .08em; }
.setup-import-topline a { color: #9d493b; font-size: .75rem; font-weight: 800; }
.setup-import-card h3 { margin: 0 0 7px; color: #22364d; font-size: 1rem; }
.setup-import-card > p { min-height: 52px; margin: 0 0 14px; color: #647487; font-size: .81rem; line-height: 1.45; }
.setup-upload-form { display: grid; gap: 8px; }
.setup-upload-form label { font-size: .75rem; font-weight: 800; color: #40546b; }
.setup-upload-form input[type="file"] { width: 100%; box-sizing: border-box; padding: 8px; background: #f9fafb; font-size: .78rem; }
.setup-upload-form button { justify-self: start; min-width: 130px; }
.provided-roster-strip { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 13px 18px; border-top: 1px solid #e1e5ea; background: #fafbfc; }
.provided-roster-strip strong { display: block; margin-bottom: 2px; color: #31465e; font-size: .84rem; }
.provided-roster-strip span { color: #6b7989; font-size: .78rem; }
.provided-roster-strip form { flex: 0 0 auto; }
.setup-master-grid { display: grid; grid-template-columns: 1fr 1fr; }
.setup-master-panel { min-width: 0; padding: 0; }
.setup-master-panel:first-child { border-right: 1px solid #dfe4ea; }
.setup-panel-title { display: flex; align-items: center; justify-content: space-between; min-height: 55px; padding: 10px 16px; border-bottom: 1px solid #e6eaef; }
.setup-panel-title h3 { margin: 0; color: #283b51; font-size: .96rem; }
.setup-panel-title span { color: #758292; font-size: .74rem; }
.setup-compact-list { max-height: 280px; overflow: auto; }
.setup-list-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 43px; padding: 8px 16px; border-bottom: 1px solid #edf0f3; }
.setup-list-row strong { color: #30475f; font-size: .84rem; }
.setup-list-row span { color: #718093; font-size: .76rem; text-align: right; }
.setup-empty-copy { padding: 14px 16px; margin: 0; }
.setup-details { border-top: 1px solid #dfe4ea; }
.setup-details summary { padding: 12px 16px; cursor: pointer; color: #9d493b; font-size: .8rem; font-weight: 800; background: #fafbfc; }
.setup-details[open] summary { border-bottom: 1px solid #e3e7ec; }
.setup-details-form { display: grid; gap: 12px; padding: 16px; }
.setup-details-form .field { margin: 0; }
.setup-details-form button { justify-self: start; }
.setup-assignment-box { padding: 16px 18px; border-bottom: 1px solid #dfe4ea; background: #fff; }
.setup-assignment-form { display: grid; grid-template-columns: minmax(180px, .65fr) minmax(320px, 1.35fr) auto; gap: 12px; align-items: end; }
.setup-assignment-form .field { margin: 0; }
.setup-assignment-action { padding-bottom: 1px; }
.setup-assignment-action button { min-height: 42px; white-space: nowrap; }
.setup-table-wrap { border: 0; border-radius: 0; box-shadow: none; overflow-x: auto; }
.setup-data-table { min-width: 760px; }
.setup-data-table th { padding: 10px 14px; font-size: .69rem; }
.setup-data-table td { padding: 11px 14px; font-size: .82rem; vertical-align: middle; }
.setup-warning-text { color: #925113; font-weight: 800; }
.setup-status-enabled,
.setup-status-disabled { display: inline-block; padding: 3px 7px; border-radius: 2px; font-size: .7rem; font-weight: 800; }
.setup-status-enabled { background: #e9f4ed; color: #2e6645; }
.setup-status-disabled { background: #f2f3f5; color: #697584; }
.setup-account-list { border-top: 1px solid #e1e5ea; }
.setup-account-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 18px; border-bottom: 1px solid #edf0f3; }
.setup-account-row:last-child { border-bottom: 0; }
.setup-account-row strong { display: block; color: #30475f; font-size: .84rem; }
.setup-account-row > div:first-child span { color: #758294; font-size: .74rem; }
@media (max-width: 980px) {
  .setup-summary { grid-template-columns: repeat(3, 1fr); }
  .setup-summary-item:nth-child(3) { border-right: 0; }
  .setup-summary-item:nth-child(n+4) { border-top: 1px solid #e1e5ea; }
  .setup-import-grid { grid-template-columns: 1fr; }
  .setup-import-card { border-right: 0; border-bottom: 1px solid #e1e5ea; }
  .setup-import-card:last-child { border-bottom: 0; }
  .setup-import-card > p { min-height: 0; }
  .setup-assignment-form { grid-template-columns: 1fr 1fr; }
  .setup-assignment-action { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .setup-summary { grid-template-columns: 1fr 1fr; }
  .setup-summary-item { border-right: 1px solid #e1e5ea; border-top: 1px solid #e1e5ea; }
  .setup-summary-item:nth-child(odd) { border-right: 1px solid #e1e5ea; }
  .setup-summary-item:nth-child(even) { border-right: 0; }
  .setup-summary-item:first-child, .setup-summary-item:nth-child(2) { border-top: 0; }
  .setup-master-grid { grid-template-columns: 1fr; }
  .setup-master-panel:first-child { border-right: 0; border-bottom: 1px solid #dfe4ea; }
  .setup-section-header-row, .provided-roster-strip, .setup-account-row { align-items: flex-start; flex-direction: column; }
  .setup-assignment-form { grid-template-columns: 1fr; }
  .setup-assignment-action { grid-column: auto; }
  .setup-list-row { align-items: flex-start; flex-direction: column; gap: 2px; }
  .setup-list-row span { text-align: left; }
}

/* v28 driver parent/guardian contact workflow */
.parent-contact-shell { max-width: 1120px; }
.parent-contact-hero { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-bottom: 20px; }
.parent-contact-hero h1 { margin-bottom: 8px; }
.parent-contact-hero > div > p:last-child { margin: 0; color: #5f7186; max-width: 780px; }
.parent-contact-grid { display: grid; grid-template-columns: 1.25fr .85fr; gap: 18px; align-items: start; }
.parent-card-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.parent-card-heading h2 { margin: 0; }
.copy-script-button { white-space: nowrap; }
.script-box { margin-top: 18px; padding: 20px; border-left: 4px solid #d68a18; background: #fffaf0; color: #27384d; font-size: 1.02rem; line-height: 1.7; }
.parent-script-rules { margin-top: 16px; display: grid; gap: 4px; padding: 13px 15px; border: 1px solid #d8e2ee; background: #f6f9fc; color: #52657c; }
.parent-script-rules strong { color: #26384e; }
.parent-contact-form { display: grid; gap: 13px; margin-top: 12px; }
.parent-auto-time { font-size: .8rem; color: #66798f; background: #f5f7fa; padding: 9px 11px; border: 1px solid #e1e7ee; }
.parent-attempt-history { margin-top: 18px; }
.parent-attempt-count { display: inline-grid; place-items: center; min-width: 32px; height: 32px; padding: 0 9px; border-radius: 999px; background: #f6e8e3; color: #294c78; font-weight: 800; }
.parent-attempt-list { margin-top: 14px; border-top: 1px solid #e2e8ef; }
.parent-attempt-row { display: grid; grid-template-columns: 1fr auto; gap: 6px 18px; padding: 14px 0; border-bottom: 1px solid #e8edf3; }
.parent-attempt-row > div:first-child { display: grid; gap: 2px; }
.parent-attempt-row span, .parent-attempt-time { color: #66788e; font-size: .82rem; }
.parent-attempt-row p { grid-column: 1 / -1; margin: 3px 0 0; color: #42556c; }
.parent-contact-summary { margin-top: 16px; }
.parent-contact-summary-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.parent-contact-summary-head h2 { margin: 2px 0 6px; }
.parent-contact-latest { margin-top: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 15px; border: 1px solid #dce5ef; background: #f8fafc; }
.parent-contact-latest > div { display: grid; gap: 3px; }
.parent-contact-latest span { color: #6a7b90; font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 800; }
.parent-contact-latest strong { color: #1f3046; }
.parent-contact-latest p { grid-column: 1 / -1; margin: 2px 0 0; color: #4d6077; }
.parent-contact-needed { margin-top: 16px; display: grid; gap: 3px; padding: 14px 16px; border-left: 4px solid #d68a18; background: #fff9ed; color: #6d5a2a; }
.parent-contact-needed strong { color: #5c4718; }
.parent-attempt-total { margin: 10px 0 0; color: #64768b; font-size: .84rem; }
@media (max-width: 820px) { .parent-contact-grid { grid-template-columns: 1fr; } .parent-contact-latest { grid-template-columns: 1fr; } .parent-contact-latest p { grid-column: auto; } }
@media (max-width: 620px) { .parent-contact-hero, .parent-card-heading, .parent-contact-summary-head { flex-direction: column; } }

/* v29 users/access administration */
.drawer-inline-label { margin-top: 10px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.09); }
.user-admin-page { max-width: 1320px; }
.user-admin-heading { margin-bottom: 16px; }
.user-permission-strip { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid #d5dbe3; background: #fff; margin-bottom: 18px; }
.user-permission-strip > div { padding: 14px 16px; border-right: 1px solid #e2e6eb; }
.user-permission-strip > div:last-child { border-right: 0; }
.user-permission-strip strong { display: block; color: #253a52; font-size: .86rem; margin-bottom: 3px; }
.user-permission-strip span { color: #68798d; font-size: .77rem; line-height: 1.4; }
.admin-panel { border: 1px solid #d5dbe3; background: #fff; margin-bottom: 20px; }
.admin-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 18px; border-bottom: 1px solid #e1e5ea; background: #f8f9fb; }
.admin-panel-head h2 { margin: 2px 0 0; color: #20334a; font-size: 1.12rem; }
.security-badge { padding: 4px 8px; border: 1px solid #cfd8e3; background: #fff; color: #536a84; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.create-user-form { padding: 18px; }
.user-account-list { display: grid; }
.user-account-row { display: grid; grid-template-columns: minmax(260px, 1fr) 210px 90px; gap: 18px; align-items: center; padding: 13px 18px; border-bottom: 1px solid #e9edf1; }
.user-account-row:last-child { border-bottom: 0; }
.user-account-row.is-inactive { background: #fafafa; }
.user-account-main { display: flex; align-items: center; gap: 12px; min-width: 0; }
.user-account-avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #e7eef6; color: #2c5686; font-weight: 850; flex: 0 0 auto; }
.user-account-main strong { display: block; color: #25384e; }
.user-account-main span, .user-account-main small { display: block; margin-top: 2px; color: #6c7c8f; font-size: .76rem; }
.user-account-state { display: grid; justify-items: start; gap: 4px; }
.user-account-state small { color: #748295; font-size: .7rem; }
.account-state { display: inline-block; padding: 3px 7px; border-radius: 2px; font-size: .68rem; font-weight: 800; }
.account-state.active { background: #e8f4ec; color: #2c6845; }
.account-state.inactive { background: #eef0f2; color: #6b7684; }
.account-state.locked { background: #fff2df; color: #8a5313; }
.account-manage-details { position: relative; justify-self: end; }
.account-manage-details > summary { cursor: pointer; color: #9d493b; font-size: .8rem; font-weight: 800; list-style: none; }
.account-manage-details > summary::-webkit-details-marker { display:none; }
.account-manage-body { grid-column: 1 / -1; margin-top: 12px; padding: 16px; border: 1px solid #dfe5eb; background: #f9fafb; min-width: 720px; }
.user-account-row:has(.account-manage-details[open]) { grid-template-columns: minmax(260px,1fr) 210px 90px; }
.account-manage-details[open] { grid-column: 1 / -1; justify-self: stretch; }
.account-manage-details[open] > summary { text-align: right; }
.account-edit-form { display: grid; gap: 12px; }
.account-active-toggle { display: flex; align-items: center; gap: 8px; color: #42566f; font-size: .82rem; font-weight: 750; }
.account-active-toggle span { color: #7a8796; font-weight: 500; margin-left: 5px; }
.account-security-actions { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #e1e6eb; }
.password-reset-form { display: grid; grid-template-columns: 200px 200px auto; align-items: end; gap: 10px; }
.password-reset-form .field { margin: 0; }
.unlock-form { margin-left: auto; }
.driver-link-field[hidden] { display: none !important; }
.driver-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* v29 driver-only case status */
.driver-case-page { max-width: 1180px; }
.driver-status-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.driver-stage-badge { flex: 0 0 auto; padding: 7px 11px; border: 1px solid #cfd7e1; background: #f5f7fa; color: #415b77; font-size: .76rem; font-weight: 850; text-transform: uppercase; letter-spacing: .045em; }
.stage-final, .stage-closed { background: #e9f4ed; color: #2e6846; border-color: #cbe4d4; }
.stage-review, .stage-decision { background: #fff6e8; color: #845019; border-color: #ead3ae; }
.driver-status-track { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid #d7dde5; background: #fff; margin-bottom: 16px; }
.driver-status-step { display: flex; align-items: center; gap: 8px; padding: 11px 12px; border-right: 1px solid #e4e8ed; color: #7a8796; font-size: .76rem; }
.driver-status-step:last-child { border-right: 0; }
.driver-status-step span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: #e7ebf0; color: #66768a; font-weight: 850; }
.driver-status-step.complete { color: #2e6446; }
.driver-status-step.complete span { background: #dff0e5; color: #2e6446; }
.driver-status-step.current { color: #865315; }
.driver-status-step.current span { background: #fff0d4; color: #865315; }
.driver-final-action { border-left: 4px solid #2f659d; }
.driver-final-action h2 { margin: 4px 0 14px; }
.driver-final-dates { display: flex; flex-wrap: wrap; gap: 12px 30px; padding: 12px 14px; background: #f5f8fb; border: 1px solid #dce5ee; color: #465a72; }
.driver-seat-note { margin: 12px 0 0; color: #40556e; }
.driver-evidence-list { border-top: 1px solid #e2e7ec; margin-top: 16px; }
.driver-evidence-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 11px 2px; border-bottom: 1px solid #e8edf1; }
.driver-evidence-row strong { display: block; color: #2b4058; font-size: .83rem; }
.driver-evidence-row span { display: block; color: #748397; font-size: .74rem; margin-top: 2px; }
.driver-evidence-actions { display: flex; align-items: center; gap: 12px; }
.driver-evidence-actions form { margin: 0; }
.text-danger-button { border: 0; background: transparent; color: #a03b32; padding: 0; font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.driver-case-privacy-note { margin: 16px 0 28px; padding: 12px 14px; border: 1px solid #dce4ed; background: #f7f9fb; color: #5b6d82; font-size: .8rem; }
.driver-case-privacy-note strong { color: #31475f; }
@media (max-width: 920px) {
  .user-permission-strip { grid-template-columns: 1fr; }
  .user-permission-strip > div { border-right: 0; border-bottom: 1px solid #e2e6eb; }
  .user-permission-strip > div:last-child { border-bottom: 0; }
  .user-account-row { grid-template-columns: 1fr auto; }
  .user-account-state { grid-column: 1; }
  .account-manage-details { grid-column: 2; grid-row: 1 / span 2; }
  .account-manage-body { min-width: 0; }
  .password-reset-form { grid-template-columns: 1fr; width: 100%; }
  .account-security-actions { align-items: stretch; flex-direction: column; }
  .unlock-form { margin-left: 0; }
  .driver-kpis { grid-template-columns: 1fr 1fr; }
  .driver-status-track { grid-template-columns: 1fr; }
  .driver-status-step { border-right: 0; border-bottom: 1px solid #e4e8ed; }
  .driver-status-step:last-child { border-bottom: 0; }
}
@media (max-width: 620px) {
  .user-account-row { grid-template-columns: 1fr; }
  .account-manage-details { grid-column: 1; grid-row: auto; justify-self: stretch; }
  .account-manage-details > summary { text-align: left; }
  .driver-kpis { grid-template-columns: 1fr 1fr; }
  .driver-status-header, .driver-evidence-row { flex-direction: column; align-items: flex-start; }
}

/* v30 driver parent/guardian contact information */
.driver-contact-card { margin-bottom: 18px; padding: 18px 20px; }
.contact-confidential-badge {
  display: inline-flex; align-items: center; padding: 4px 8px; border: 1px solid #d9c18b;
  background: #fff8e7; color: #775b17; font-size: .66rem; font-weight: 850; letter-spacing: .08em;
}
.driver-contact-list { margin-top: 14px; border: 1px solid #dce4ed; }
.driver-contact-row {
  display: grid; grid-template-columns: 150px 1fr; gap: 18px; align-items: center;
  min-height: 60px; padding: 12px 14px; border-bottom: 1px solid #e8edf2; background: #fff;
}
.driver-contact-row:last-child { border-bottom: 0; }
.driver-contact-label { color: #69798c; font-size: .73rem; font-weight: 850; text-transform: uppercase; letter-spacing: .055em; }
.driver-contact-person { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.driver-contact-person strong { color: #24384f; font-size: .94rem; }
.driver-contact-phone { color: #275f9c; font-weight: 850; text-decoration: none; }
.driver-contact-phone:hover { text-decoration: underline; }
.contact-copy-button {
  min-height: 30px; padding: 5px 10px; border: 1px solid #c9d4df; background: #f7f9fb;
  color: #3f5872; font-size: .72rem; font-weight: 800;
}
.driver-contact-missing { color: #7c8794; font-size: .8rem; font-style: italic; }
.driver-contact-privacy { margin: 11px 0 0; color: #6f7e8f; font-size: .76rem; line-height: 1.45; }
.contact-not-loaded { margin-top: 12px; }
@media (max-width: 640px) {
  .driver-contact-row { grid-template-columns: 1fr; gap: 5px; }
  .driver-contact-person { align-items: flex-start; flex-direction: column; gap: 5px; }
}

/* v36 — optimized Evidence & Video Review workspace */
.evidence-section-v36 { padding: 0; overflow: hidden; }
.evidence-section-v36 > .evidence-heading-v36 { padding: 20px 22px 16px; margin: 0; border-bottom: 1px solid #dfe4ea; }
.evidence-heading-v36 .section-copy { max-width: 860px; }
.evidence-summary-bar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid #dfe4ea;
  background: #f7f8fa;
}
.evidence-summary-cell { padding: 12px 18px; border-right: 1px solid #e2e6eb; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.evidence-summary-cell:last-child { border-right: 0; }
.evidence-summary-cell span { color: #687789; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .035em; }
.evidence-summary-cell strong { color: #25384d; font-size: 1.15rem; }
.evidence-summary-cell.needs-attention { background: #fff9ea; }
.evidence-summary-cell.needs-attention strong { color: #8b6509; }

.evidence-upload-panel { padding: 18px 22px 20px; border-bottom: 1px solid #dfe4ea; background: #fff; }
.evidence-subheading, .evidence-library-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.evidence-subheading { margin-bottom: 12px; }
.evidence-subheading h3, .evidence-library-heading h3 { margin: 0; color: #273b50; font-size: 1rem; }
.evidence-subheading p, .evidence-library-heading p { margin: 3px 0 0; color: #758396; font-size: .82rem; }
.evidence-limit-copy { color: #748398; font-size: .76rem; white-space: nowrap; }
.evidence-upload-form-v36 { border: 1px solid #dce3ea; background: #f8fafc; border-radius: 4px; padding: 14px; }
.evidence-upload-grid { display: grid; grid-template-columns: minmax(300px, 1.2fr) minmax(320px, 1fr); gap: 16px; align-items: start; }
.evidence-file-field input[type="file"] { min-height: 116px; display: flex; align-items: center; background: #fff; border: 1px dashed #8fa5bd; border-radius: 4px; }
.evidence-upload-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.evidence-upload-options .evidence-note-field { grid-column: 1 / -1; }
.evidence-upload-footer { margin-top: 12px; padding-top: 12px; border-top: 1px solid #e0e5eb; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.evidence-upload-footer .evidence-security-note { margin: 0; padding: 0; border-radius: 0; background: transparent; flex: 1; }
.evidence-upload-footer button { width: auto; white-space: nowrap; }

.evidence-library-heading { padding: 18px 22px 12px; }
.evidence-review-alert, .evidence-review-complete { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 9px; border-radius: 3px; font-size: .75rem; font-weight: 800; }
.evidence-review-alert { background: #fff3cf; color: #7b5b08; }
.evidence-review-complete { background: #eaf5ee; color: #28603e; }
.evidence-list-v36 { margin: 0; padding: 0 22px 22px; gap: 14px; }
.evidence-item-v36 { display: block; border: 1px solid #d9e0e7; border-radius: 4px; overflow: hidden; box-shadow: none; }
.evidence-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 12px 14px; background: #f4f6f8; border-bottom: 1px solid #dfe4ea; }
.evidence-card-title { display: flex; align-items: flex-start; gap: 10px; min-width: 0; }
.evidence-card-title > div { min-width: 0; }
.evidence-card-title h3 { margin: 0; font-size: .92rem; color: #25384d; overflow-wrap: anywhere; }
.evidence-card-title p { margin: 3px 0 0; color: #758396; font-size: .75rem; }
.evidence-card-header .evidence-type-pill { flex: 0 0 auto; margin-top: 1px; border-radius: 3px; }
.evidence-card-grid { display: grid; grid-template-columns: minmax(380px, 1.05fr) minmax(360px, .95fr); min-height: 330px; }
.evidence-card-grid.evidence-image-grid { min-height: 260px; }
.evidence-preview-v36 { min-height: 330px; border-right: 1px solid #dfe4ea; }
.evidence-image-grid .evidence-preview-v36 { min-height: 260px; }
.evidence-preview-v36 video, .evidence-preview-v36 img { width: 100%; height: 100%; max-height: 560px; object-fit: contain; }
.file-placeholder small { color: #9ba9b8; }
.evidence-review-pane { padding: 16px; min-width: 0; background: #fff; }
.evidence-meta-v36 { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 7px 12px; margin: 0 0 12px; padding-bottom: 12px; border-bottom: 1px solid #e7ebef; }
.evidence-meta-v36:empty { display: none; }
.evidence-meta-v36 dt { color: #718093; font-size: .75rem; font-weight: 700; }
.evidence-meta-v36 dd { margin: 0; color: #33475e; font-size: .8rem; overflow-wrap: anywhere; }
.evidence-file-actions-v36 { margin: 0 0 14px; gap: 8px; }
.evidence-file-actions-v36 .button-link, .evidence-file-actions-v36 button { min-height: 34px; padding: 7px 11px; font-size: .78rem; }
.saved-review-v36 { margin: 0 0 14px; border-left: 3px solid #4b76a7; border-radius: 2px; padding: 10px 12px; }
.saved-review-heading { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.saved-review-heading span { color: #62748a; font-size: .72rem; font-weight: 800; }
.saved-review-v36 p { font-size: .81rem; line-height: 1.5; }
.video-review-form-v36 { margin: 0; padding: 14px; border: 1px solid #d7e0e9; background: #f8fafc; border-radius: 4px; }
.video-review-heading h4 { margin: 0; color: #293d53; font-size: .9rem; }
.video-review-heading p { margin: 3px 0 12px; color: #748398; font-size: .75rem; }
.video-review-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.video-review-fields .span-all { grid-column: 1 / -1; }
.video-review-fields textarea { min-height: 118px; resize: vertical; }
.video-review-actions { display: flex; justify-content: flex-end; margin-top: 10px; }
.video-review-actions button { width: auto; }
.evidence-empty-v36 { margin: 0 22px 22px; border-radius: 4px; }

@media (max-width: 980px) {
  .evidence-upload-grid, .evidence-card-grid { grid-template-columns: 1fr; }
  .evidence-preview-v36 { border-right: 0; border-bottom: 1px solid #dfe4ea; min-height: 300px; }
}
@media (max-width: 720px) {
  .evidence-summary-bar { grid-template-columns: 1fr 1fr; }
  .evidence-summary-cell:nth-child(2) { border-right: 0; }
  .evidence-summary-cell:nth-child(-n+2) { border-bottom: 1px solid #e2e6eb; }
  .evidence-subheading, .evidence-library-heading, .evidence-card-header, .evidence-upload-footer { flex-direction: column; align-items: stretch; }
  .evidence-upload-options, .video-review-fields { grid-template-columns: 1fr; }
  .evidence-upload-options .evidence-note-field, .video-review-fields .span-all { grid-column: auto; }
  .evidence-upload-footer button, .video-review-actions button { width: 100%; }
  .evidence-card-header .review-pill, .evidence-review-alert, .evidence-review-complete { align-self: flex-start; }
}
@media (max-width: 520px) {
  .evidence-section-v36 > .evidence-heading-v36, .evidence-upload-panel, .evidence-library-heading { padding-left: 16px; padding-right: 16px; }
  .evidence-list-v36 { padding-left: 16px; padding-right: 16px; }
  .evidence-summary-cell { padding: 10px 12px; }
  .evidence-card-title { flex-direction: column; }
  .evidence-preview-v36 { min-height: 220px; }
  .evidence-empty-v36 { margin-left: 16px; margin-right: 16px; }
}

/* v38 — compact evidence uploader */
.evidence-upload-form-v36 { padding: 12px 14px; }
.evidence-upload-grid-compact {
  display: grid;
  grid-template-columns: minmax(360px, 1.65fr) 150px minmax(240px, 1fr);
  gap: 10px 12px;
  align-items: start;
}
.evidence-upload-grid-compact .field { margin: 0; }
.evidence-upload-grid-compact .evidence-file-field input[type="file"] {
  min-height: 42px;
  height: 42px;
  padding: 7px 9px;
  display: block;
}
.evidence-upload-grid-compact select,
.evidence-upload-grid-compact input[type="text"] { min-height: 38px; }
.evidence-upload-grid-compact .field-help { margin-top: 4px; font-size: .72rem; }
.evidence-upload-grid-compact .evidence-type-compact select { min-width: 130px; }
.evidence-upload-footer { margin-top: 10px; padding-top: 10px; }
@media (max-width: 980px) {
  .evidence-upload-grid-compact { grid-template-columns: minmax(300px, 1fr) 145px; }
  .evidence-upload-grid-compact .evidence-note-field { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .evidence-upload-grid-compact { grid-template-columns: 1fr; }
  .evidence-upload-grid-compact .evidence-note-field { grid-column: auto; }
}

/* v39 — denser one-row evidence uploader */
.evidence-upload-panel-v39 {
  padding: 12px 18px 14px;
}
.evidence-upload-form-v39 {
  border: 1px solid #dce3ea;
  background: #f8fafc;
  border-radius: 4px;
  padding: 10px 12px 8px;
}
.evidence-upload-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 8px;
}
.evidence-upload-title-row h3 {
  margin: 0;
  color: #273b50;
  font-size: .94rem;
}
.evidence-upload-title-row p {
  margin: 1px 0 0;
  color: #748398;
  font-size: .75rem;
}
.evidence-upload-row-v39 {
  display: grid;
  grid-template-columns: minmax(360px, 1.6fr) 170px minmax(210px, .8fr) auto;
  gap: 10px;
  align-items: end;
}
.evidence-upload-row-v39 .field,
.evidence-type-field-v39 {
  margin: 0;
  min-width: 0;
}
.evidence-upload-row-v39 label,
.evidence-type-field-v39 legend {
  display: block;
  margin: 0 0 4px;
  padding: 0;
  color: #26384c;
  font-size: .76rem;
  font-weight: 800;
}
.evidence-file-field-v39 input[type="file"] {
  width: 100%;
  min-height: 38px;
  height: 38px;
  box-sizing: border-box;
  padding: 5px 7px;
  background: #fff;
  border: 1px dashed #8fa5bd;
  border-radius: 3px;
  font-size: .78rem;
}
.evidence-note-field-v39 input[type="text"] {
  width: 100%;
  min-height: 38px;
  height: 38px;
  box-sizing: border-box;
  padding: 7px 9px;
  font-size: .8rem;
}
.optional-label {
  color: #8390a0;
  font-weight: 600;
  font-size: .68rem;
}
.evidence-type-field-v39 {
  border: 0;
  padding: 0;
}
.evidence-type-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 38px;
  border: 1px solid #cfd8e2;
  border-radius: 3px;
  overflow: hidden;
  background: #fff;
}
.evidence-type-toggle label {
  margin: 0;
  min-width: 0;
  cursor: pointer;
}
.evidence-type-toggle label + label {
  border-left: 1px solid #d9e0e7;
}
.evidence-type-toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.evidence-type-toggle span {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 0 8px;
  color: #53667b;
  font-size: .76rem;
  font-weight: 800;
  white-space: nowrap;
}
.evidence-type-toggle input:checked + span {
  background: #e8f0f9;
  color: #5a314d;
  box-shadow: inset 0 0 0 1px #9bb7d6;
}
.evidence-type-toggle input:focus-visible + span {
  outline: 2px solid #1f6feb;
  outline-offset: -2px;
}
.evidence-upload-action-v39 {
  display: flex;
  align-items: flex-end;
}
.evidence-upload-action-v39 button {
  min-height: 38px;
  height: 38px;
  width: auto;
  min-width: 96px;
  padding: 0 16px;
  white-space: nowrap;
}
.evidence-upload-meta-v39 {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 14px;
  margin-top: 6px;
  color: #718093;
  font-size: .69rem;
}
.evidence-upload-meta-v39 span:not(:last-child)::after {
  content: "•";
  margin-left: 14px;
  color: #a6b0bb;
}

@media (max-width: 1040px) {
  .evidence-upload-row-v39 {
    grid-template-columns: minmax(300px, 1.5fr) 160px minmax(200px, 1fr);
  }
  .evidence-upload-action-v39 {
    grid-column: 3;
    justify-content: flex-end;
  }
}
@media (max-width: 760px) {
  .evidence-upload-panel-v39 { padding: 10px 14px 12px; }
  .evidence-upload-row-v39 { grid-template-columns: 1fr 150px; }
  .evidence-note-field-v39 { grid-column: 1 / -1; }
  .evidence-upload-action-v39 { grid-column: 1 / -1; justify-content: stretch; }
  .evidence-upload-action-v39 button { width: 100%; }
}
@media (max-width: 520px) {
  .evidence-upload-title-row { align-items: flex-start; }
  .evidence-upload-row-v39 { grid-template-columns: 1fr; }
  .evidence-note-field-v39,
  .evidence-upload-action-v39 { grid-column: auto; }
  .evidence-upload-meta-v39 { display: grid; grid-template-columns: 1fr 1fr; }
  .evidence-upload-meta-v39 span::after { display: none; }
}

/* v40 — compact square video preview */
.video-evidence .evidence-card-grid {
  grid-template-columns: 300px minmax(0, 1fr);
  min-height: 0;
  align-items: start;
}
.video-evidence .evidence-preview-v36 {
  width: 300px;
  height: 300px;
  min-height: 0;
  aspect-ratio: 1 / 1;
  border-right: 1px solid #dfe4ea;
  border-bottom: 0;
  overflow: hidden;
}
.video-evidence .evidence-preview-v36 video {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  background: #111827;
}
.video-evidence .evidence-review-pane {
  min-height: 300px;
}

@media (max-width: 860px) {
  .video-evidence .evidence-card-grid {
    grid-template-columns: 220px minmax(0, 1fr);
  }
  .video-evidence .evidence-preview-v36 {
    width: 220px;
    height: 220px;
  }
  .video-evidence .evidence-review-pane {
    min-height: 220px;
  }
}

@media (max-width: 680px) {
  .video-evidence .evidence-card-grid {
    grid-template-columns: 1fr;
  }
  .video-evidence .evidence-preview-v36 {
    width: 220px;
    height: 220px;
    margin: 14px auto 0;
    border: 1px solid #dfe4ea;
    border-radius: 4px;
  }
  .video-evidence .evidence-review-pane {
    min-height: 0;
  }
}

/* v41 — video and image previews use the same compact square size */
.image-evidence .evidence-card-grid {
  grid-template-columns: 300px minmax(0, 1fr);
  min-height: 0;
  align-items: start;
}
.image-evidence .evidence-preview-v36 {
  width: 300px;
  height: 300px;
  min-height: 0;
  aspect-ratio: 1 / 1;
  border-right: 1px solid #dfe4ea;
  border-bottom: 0;
  overflow: hidden;
  background: #eef3f8;
}
.image-evidence .evidence-preview-v36 img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  background: #eef3f8;
}
.image-evidence .evidence-review-pane {
  min-height: 300px;
}

@media (max-width: 860px) {
  .image-evidence .evidence-card-grid {
    grid-template-columns: 220px minmax(0, 1fr);
  }
  .image-evidence .evidence-preview-v36 {
    width: 220px;
    height: 220px;
  }
  .image-evidence .evidence-review-pane {
    min-height: 220px;
  }
}

@media (max-width: 680px) {
  .image-evidence .evidence-card-grid {
    grid-template-columns: 1fr;
  }
  .image-evidence .evidence-preview-v36 {
    width: 220px;
    height: 220px;
    margin: 14px auto 0;
    border: 1px solid #dfe4ea;
    border-radius: 4px;
  }
  .image-evidence .evidence-review-pane {
    min-height: 0;
  }
}

/* v42 — progressive workflow panels: show the active step, collapse completed steps,
   and keep future steps locked until the prior step is complete. */
.workflow-progress-compact {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  margin: 14px 0 12px;
  border: 1px solid #d7dee7;
  background: #fff;
  overflow: hidden;
}
.workflow-progress-item {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 10px;
  border-right: 1px solid #e1e6ec;
  color: #7b8795;
  font-size: .74rem;
}
.workflow-progress-item:last-child { border-right: 0; }
.workflow-progress-item span {
  width: 23px;
  height: 23px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #cfd7e1;
  background: #f5f7f9;
  color: #647386;
  font-weight: 850;
  font-size: .68rem;
}
.workflow-progress-item strong { font-weight: 800; white-space: nowrap; }
.workflow-progress-item.complete { color: #2f6d4d; background: #f8fcf9; }
.workflow-progress-item.complete span { border-color: #bcdac9; background: #eaf6ef; color: #2f6d4d; }
.workflow-progress-item.current { color: #244f82; background: #f7efeb; }
.workflow-progress-item.current span { border-color: #89aad0; background: #244f82; color: #fff; }
.workflow-progress-item.locked { color: #97a1ad; background: #fafbfc; }

.workflow-panel {
  padding: 0 !important;
  overflow: hidden;
  border-radius: 6px !important;
  margin-bottom: 10px;
}
.workflow-panel > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.workflow-panel > summary::-webkit-details-marker { display: none; }
.workflow-panel-summary,
.workflow-panel > .evidence-heading-v36,
.workflow-panel > .decision-heading,
.workflow-panel > .notification-heading,
.workflow-panel > .closure-heading {
  min-height: 70px;
  margin: 0 !important;
  padding: 13px 17px !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 0;
  background: #fff;
  box-sizing: border-box;
}
.workflow-panel[open] > .workflow-panel-summary { border-bottom: 1px solid #dfe4ea; }
.workflow-panel.current > .workflow-panel-summary { box-shadow: inset 4px 0 0 #9d493b; }
.workflow-panel.complete > .workflow-panel-summary { box-shadow: inset 4px 0 0 #4f8a68; }
.workflow-panel.locked > .workflow-panel-summary {
  cursor: not-allowed;
  background: #f7f8fa;
  box-shadow: inset 4px 0 0 #d9dfe6;
}
.workflow-panel-summary-main {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}
.workflow-step-number {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #eef3f8;
  border: 1px solid #d3dde8;
  color: #3e5d7c;
  font-weight: 900;
  font-size: .78rem;
}
.workflow-panel.current .workflow-step-number { background: #9d493b; border-color: #9d493b; color: #fff; }
.workflow-panel.complete .workflow-step-number { background: #e9f5ee; border-color: #bcd9c7; color: #347052; }
.workflow-panel.locked .workflow-step-number { background: #f1f3f5; border-color: #dce1e6; color: #9aa4af; }
.workflow-panel-summary .eyebrow { margin: 0 0 1px; font-size: .62rem; }
.workflow-panel-summary h2 { margin: 0 !important; font-size: .98rem !important; line-height: 1.25; }
.workflow-panel-summary-copy {
  margin: 3px 0 0;
  color: #718095;
  font-size: .74rem;
  line-height: 1.35;
}
.workflow-panel.locked .workflow-panel-summary-copy { color: #9aa3ad; }
.workflow-panel-summary-status {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 9px;
}
.workflow-state-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: .69rem;
  font-weight: 850;
  white-space: nowrap;
}
.workflow-state-badge.current { background: #e8f0f9; color: #285986; }
.workflow-state-badge.complete { background: #eaf6ef; color: #2f6d4d; }
.workflow-state-badge.locked { background: #eceff2; color: #7f8995; }
.workflow-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  color: #718096;
  font-size: 1.1rem;
  transform: rotate(0deg);
  transition: transform .15s ease;
}
.workflow-panel[open] .workflow-chevron { transform: rotate(180deg); }
.workflow-panel.locked .workflow-chevron { opacity: .25; }
.workflow-panel-body { padding: 18px; }
.evidence-section-v36 .workflow-panel-body { padding: 0; }

/* Existing section headings are now the compact summary row. */
.workflow-panel .section-copy,
.workflow-panel .private-badge { display: none; }
.workflow-panel .decision-warning { margin-top: 0; }

@media (max-width: 760px) {
  .workflow-progress-compact { grid-template-columns: repeat(5, 1fr); }
  .workflow-progress-item { min-height: 42px; gap: 0; padding: 6px 3px; }
  .workflow-progress-item strong { display: none; }
  .workflow-panel-summary { min-height: 66px; padding: 11px 13px !important; }
  .workflow-step-number { width: 28px; height: 28px; }
  .workflow-panel-summary-copy { display: none; }
  .workflow-state-badge { font-size: .64rem; padding: 3px 7px; }
  .workflow-panel-body { padding: 14px; }
}

@media (max-width: 480px) {
  .workflow-state-badge.current { max-width: 74px; overflow: hidden; text-overflow: ellipsis; }
  .workflow-panel-summary-main { gap: 9px; }
  .workflow-panel-summary-status { gap: 4px; }
}

/* v43 — phone-optimized New Incident form */
.incident-mobile-steps { display: none; }

@media (max-width: 700px) {
  .incident-form-shell {
    padding: 14px 10px 104px;
    max-width: 100%;
  }
  .incident-form-heading {
    margin-bottom: 10px;
    gap: 8px;
  }
  .incident-form-heading .eyebrow { margin-bottom: 4px; font-size: .68rem; }
  .incident-form-heading h1 { font-size: 1.42rem; margin-bottom: 5px; }
  .incident-form-heading p:last-child { font-size: .8rem; line-height: 1.35; }

  .incident-mobile-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin: 0 0 10px;
    position: sticky;
    top: 0;
    z-index: 15;
    padding: 6px 0;
    background: #f3f6fb;
  }
  .incident-mobile-steps a {
    min-width: 0;
    min-height: 42px;
    padding: 5px 3px;
    border: 1px solid #d8e2ef;
    border-radius: 9px;
    background: #fff;
    color: #53677f;
    text-decoration: none;
    font-size: .68rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
  }
  .incident-mobile-steps a span {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #e9eff7;
    color: #5a314d;
    font-size: .68rem;
    flex: 0 0 20px;
  }

  .incident-form { gap: 10px; }
  .incident-form .form-card {
    padding: 13px 12px;
    border-radius: 12px;
  }
  .incident-form .section-title {
    gap: 9px;
    margin-bottom: 12px;
  }
  .incident-form .section-title > span {
    width: 27px;
    height: 27px;
    flex-basis: 27px;
    font-size: .8rem;
  }
  .incident-form .section-title h2 {
    margin: 0 0 1px;
    font-size: 1rem;
  }
  .incident-form .section-title p {
    font-size: .74rem;
    line-height: 1.32;
  }

  /* Keep the smallest logical field pairs together without cramping names/runs. */
  .incident-form .form-grid.two,
  .incident-form .form-grid.three {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .incident-form .form-grid .field:not(.mobile-half) {
    grid-column: 1 / -1;
  }
  .incident-form .mobile-half { grid-column: auto; }
  .incident-form .mobile-full { grid-column: 1 / -1 !important; }

  .incident-form .field label {
    margin-bottom: 4px;
    font-size: .78rem;
  }
  .incident-form input:not([type="checkbox"]),
  .incident-form select,
  .incident-form textarea {
    min-height: 46px;
    border-radius: 9px;
    padding: 10px 10px;
    font-size: 16px; /* prevents iPhone Safari from zooming on focus */
  }
  .incident-form textarea {
    min-height: 92px;
    line-height: 1.35;
  }
  .incident-form .field-help {
    margin-top: 4px;
    font-size: .69rem;
    line-height: 1.3;
  }
  .incident-form .mobile-secondary-field label,
  .incident-form .mobile-secondary-field .readonly-field {
    font-size: .76rem;
  }
  .incident-form .mobile-secondary-field .readonly-field {
    min-height: 40px;
    padding-top: 8px;
    padding-bottom: 8px;
    background: #f8fafc;
  }
  .incident-form .seat-area-preview {
    margin-top: 6px;
    min-height: 25px;
    font-size: .72rem;
  }

  .incident-form .actions-field { margin-top: 12px; }
  .incident-form .action-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }
  .incident-form .action-option {
    min-height: 44px;
    padding: 9px 8px;
    font-size: .76rem;
  }
  .incident-form .check-row {
    padding: 10px;
    border-radius: 10px;
    gap: 9px;
  }
  .incident-form .check-row input {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
  }
  .incident-form .check-row strong { font-size: .82rem; }
  .incident-form .check-row small { font-size: .7rem; line-height: 1.25; }

  .incident-form .mobile-sticky-actions {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 50;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.96);
    border-top: 1px solid #dbe4ef;
    box-shadow: 0 -8px 24px rgba(31,55,84,.10);
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: 8px;
  }
  .incident-form .mobile-sticky-actions .button-link,
  .incident-form .mobile-sticky-actions button {
    width: 100%;
    min-height: 48px;
    margin: 0;
    font-size: .92rem;
  }
}

@media (max-width: 380px) {
  .incident-form-shell { padding-left: 8px; padding-right: 8px; }
  .incident-mobile-steps a { font-size: .62rem; gap: 2px; }
  .incident-mobile-steps a span { width: 18px; height: 18px; flex-basis: 18px; }
  .incident-form .action-grid { grid-template-columns: 1fr; }
}

/* v44 Tyler student photo importer status */
.setup-photo-import-help { display: grid; gap: 7px; padding: 12px; border: 1px solid #dfe6ee; background: #f8fafc; font-size: .78rem; color: #53677d; }
.setup-photo-import-help strong { color: #263b53; }
.setup-photo-import-help code { display: block; width: 100%; padding: 7px 9px; border: 1px solid #d8e0e8; background: #fff; color: #25384d; overflow-wrap: anywhere; font-size: .75rem; }

/* v44 selected student photo on New Incident */
.student-picker-row { display: grid; grid-template-columns: minmax(0, 1fr) 92px; gap: 12px; align-items: start; }
.student-picker-control { min-width: 0; }
.incident-student-photo-mini { width: 92px; height: 92px; border: 1px solid #d6dee8; background: #f2f5f8; display: grid; place-items: center; overflow: hidden; }
.incident-student-photo-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.incident-student-photo-mini span { color: #718096; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; text-align: center; padding: 8px; }
@media (max-width: 700px) {
  .student-picker-row { grid-template-columns: minmax(0, 1fr) 78px; gap: 10px; }
  .incident-student-photo-mini { width: 78px; height: 78px; }
}

/* ============================================================
   v45 — Independent warm operations palette
   Purposefully distinct from third-party transportation software.
   ============================================================ */
:root {
  --brand-ink: #2d2730;
  --brand-plum: #5a314d;
  --brand-plum-dark: #352432;
  --brand-coral: #c5634f;
  --brand-coral-dark: #9d493b;
  --brand-cream: #f6f1ec;
  --brand-paper: #fffdfb;
  --brand-rose: #f6e8e3;
  --brand-border: #ddd2ca;
  --brand-border-soft: #ebe3dd;
  --brand-muted: #716873;
  --app-blue: var(--brand-plum);
  --app-blue-dark: var(--brand-plum-dark);
  --app-blue-light: var(--brand-rose);
  --app-header: var(--brand-plum-dark);
  --app-header-soft: #493443;
  --app-green-accent: var(--brand-coral);
  --app-border: var(--brand-border);
  --app-border-soft: var(--brand-border-soft);
  --app-bg: var(--brand-cream);
  --app-text: var(--brand-ink);
  --app-muted: var(--brand-muted);
}

body { background: var(--brand-cream); color: var(--brand-ink); }
.auth-shell { background: linear-gradient(145deg, #f2e8e2, #fffaf6 56%, #eee5ea); }
.login-card { border-color: var(--brand-border); box-shadow: 0 20px 60px rgba(68, 43, 57, .13); }
.brand-mark { background: var(--brand-plum); border-radius: 11px; }
.eyebrow { color: #785c69; }
h1, h2, .dashboard-hero h1, .page-heading h1, .form-heading h1, .case-header h1 { color: #302630; }
.subtext, .page-heading p:last-child, .dashboard-hero p:last-child { color: #736975; }
input:focus, select:focus, textarea:focus { border-color: var(--brand-coral); box-shadow: 0 0 0 3px rgba(197, 99, 79, .14); }
button, .button-link { background: var(--brand-plum); }
button:hover, .button-link:hover { background: #6b3b5b; }
.secondary, .secondary-link { color: var(--brand-plum); border-color: #cdbfb7; background: #fffdfb; }
.text-link, .setup-import-topline a, .setup-details summary { color: var(--brand-coral-dark); }

.app-accent-line { background: var(--brand-coral); }
.district-header { background: var(--brand-plum-dark); border-bottom-color: #261a24; }
.district-nav a.active::after { background: var(--brand-coral); }
.user-avatar, .drawer-avatar { background: #f4e6df; color: var(--brand-plum); }
.app-drawer { background: #342a32; border-top-color: var(--brand-coral); }
.drawer-user { border-bottom-color: var(--brand-coral); }
.drawer-nav a:hover { background: #473842; border-left-color: var(--brand-coral); }
.drawer-signout button { background: #4a3b45; border-color: #65515f; }
.drawer-signout button:hover { background: #584650; }

.welcome, .form-card, .case-card, .table-wrap, .empty-state,
.dashboard-panel, .kpi-card, .setup-section-block, .setup-summary { background: var(--brand-paper); border-color: var(--brand-border); }
.dashboard-hero, .case-header { border-bottom-color: var(--brand-border); }
.kpi-card strong, .module-stats strong, .setup-summary-item strong { color: var(--brand-plum); }
.kpi-primary::before { background: var(--brand-plum); }
.kpi-card:nth-child(3)::before { background: #bc7b36; }
.kpi-card:nth-child(4)::before { background: #80567a; }
.kpi-card:nth-child(5)::before { background: #a95b4a; }
.kpi-card:nth-child(6)::before { background: #4f775f; }
.kpi-alert::before { background: #b35f3b; }
.panel-count, .module-badge, .status-pill, .evidence-type-pill { background: #f1e4e8; color: var(--brand-plum); }
.student-profile-card { border-left-color: var(--brand-coral); }
.student-bus-badge { background: #f3e7e1; color: #8e493d; }
.section-title > span { background: var(--brand-plum); }
.saved-review { border-left-color: var(--brand-coral); background: #fbf5f2; }

.data-table th, .history-table th { background: #f2ece8; color: #5f545d; border-bottom-color: #ddd2ca; }
.data-table td, .history-table td { border-bottom-color: #ece4df; }
.suspension-row:hover, .recent-case-row:hover { background: #fcf7f4; }
.status-under_review { background: #f0e6ef; color: #694b66; }

.setup-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.setup-summary-item { border-color: var(--brand-border-soft); }
.setup-subnav { background: #eee7e2; border-color: var(--brand-border); }
.setup-subnav a { color: #574851; border-color: var(--brand-border); }
.setup-subnav a:hover { background: #fffaf7; color: var(--brand-coral-dark); }
.setup-section-header { background: #f7f1ed; border-bottom-color: var(--brand-border-soft); }
.setup-section-header h2, .setup-panel-title h3, .setup-import-card h3 { color: #3d3039; }
.setup-count-badge { border-color: #d3c4bb; color: #6d5661; background: #fffaf7; }
.setup-type-tag { color: #8b5b50; }
.setup-list-row, .setup-account-row, .setup-panel-title, .setup-details, .setup-assignment-box,
.setup-import-card { border-color: var(--brand-border-soft); }
.setup-list-row strong, .setup-account-row strong { color: #4d3945; }
.setup-warning-text { color: #9a532f; }

.directory-role {
  display: inline-block;
  padding: 4px 7px;
  border-radius: 3px;
  background: #f2e4e7;
  color: var(--brand-plum);
  font-size: .72rem;
  font-weight: 800;
  white-space: nowrap;
}
.directory-email { overflow-wrap: anywhere; }
.school-extension-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
}
.school-extension-card {
  min-height: 76px;
  padding: 13px 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border-right: 1px solid var(--brand-border-soft);
  border-bottom: 1px solid var(--brand-border-soft);
  background: #fffdfb;
}
.school-extension-card:nth-child(4n) { border-right: 0; }
.school-extension-card strong { display: block; color: #493743; font-size: .87rem; }
.school-extension-card span { display: block; margin-top: 2px; color: #8a7c83; font-size: .66rem; letter-spacing: .04em; }
.school-extension-card code {
  min-width: 54px;
  padding: 6px 8px;
  border: 1px solid #dac8bd;
  border-radius: 4px;
  background: #f8ede7;
  color: #8f4639;
  text-align: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .88rem;
  font-weight: 850;
}

/* Mobile / tablet adjustments for the new directory blocks */
@media (max-width: 980px) {
  .setup-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .school-extension-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .school-extension-card:nth-child(4n) { border-right: 1px solid var(--brand-border-soft); }
  .school-extension-card:nth-child(3n) { border-right: 0; }
}
@media (max-width: 680px) {
  .setup-summary { grid-template-columns: 1fr 1fr; }
  .school-extension-grid { grid-template-columns: 1fr 1fr; }
  .school-extension-card:nth-child(3n) { border-right: 1px solid var(--brand-border-soft); }
  .school-extension-card:nth-child(even) { border-right: 0; }
  .directory-table { min-width: 650px; }
}
@media (max-width: 430px) {
  .school-extension-grid { grid-template-columns: 1fr; }
  .school-extension-card { border-right: 0 !important; }
}

/* v64 — system-admin case deletion */
.case-header-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.case-delete-form, .inline-delete-case-form { margin:0; }
.case-row-actions { white-space:nowrap; }
.case-row-actions .inline-delete-case-form { display:inline-block; margin-left:12px; }
@media (max-width:620px) {
  .case-header-actions { width:100%; align-items:stretch; justify-content:flex-start; }
  .case-header-actions .large-status { align-self:flex-start; }
  .case-header-actions .case-delete-form { width:100%; }
  .case-header-actions .danger-outline-button { width:100%; min-height:44px; }
}

/* ============================================================
   v65 — consistency workflow, policy matrix, history & timeline
   ============================================================ */
.workflow-progress-six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.student-discipline-snapshot {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin-top: 14px;
  border: 1px solid var(--brand-border-soft);
  background: #fbf7f4;
}
.student-discipline-snapshot > div { padding: 10px 12px; border-right: 1px solid var(--brand-border-soft); min-width: 0; }
.student-discipline-snapshot > div:last-child { border-right: 0; }
.student-discipline-snapshot span { display:block; color: var(--brand-muted); font-size: .67rem; font-weight: 800; text-transform: uppercase; letter-spacing: .035em; }
.student-discipline-snapshot strong { display:block; margin-top: 3px; color: var(--brand-plum-dark); font-size: .9rem; }
.student-discipline-snapshot a { display:inline-block; margin-top: 4px; color: var(--brand-coral-dark); font-size: .72rem; font-weight: 800; }
.student-discipline-snapshot .snapshot-alert { background: #fff1ed; }
.student-discipline-snapshot .snapshot-alert strong { color: #9f3f32; }

.case-timeline-card { padding: 0; overflow: hidden; }
.timeline-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:16px 18px 12px; border-bottom:1px solid var(--brand-border-soft); background:#fffaf7; }
.timeline-heading h2 { margin: 0; }
.timeline-heading .section-copy { margin: 3px 0 0; }
.timeline-count { padding:5px 8px; border:1px solid #d9c9c0; background:#fff; color:#715d68; font-size:.69rem; font-weight:850; white-space:nowrap; }
.case-timeline { padding: 8px 18px 14px; }
.timeline-event { position:relative; display:grid; grid-template-columns:18px minmax(0,1fr); gap:9px; padding:9px 0; }
.timeline-event:not(:last-child)::before { content:""; position:absolute; left:6px; top:23px; bottom:-10px; width:1px; background:#e4d8d1; }
.timeline-dot { width:13px; height:13px; margin-top:3px; border:3px solid #fff; outline:1px solid #cbb9b0; background:#8b6c7c; z-index:1; }
.timeline-contact .timeline-dot { background:#b56b55; }
.timeline-evidence .timeline-dot { background:#7c6a91; }
.timeline-decision .timeline-dot { background:#5a314d; }
.timeline-notify .timeline-dot { background:#4f775f; }
.timeline-close .timeline-dot { background:#2f6d4d; }
.timeline-event-top { display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.timeline-event-top strong { color:#43343e; font-size:.82rem; }
.timeline-event-top time { color:#897d84; font-size:.69rem; white-space:nowrap; }
.timeline-event-body p { margin:3px 0 0; color:#6d636b; font-size:.76rem; line-height:1.35; }

.parent-contact-step-intro { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:14px; }
.parent-contact-step-intro p { margin:0; color:#6e636a; font-size:.8rem; line-height:1.45; }
.parent-contact-step-intro .button-link { flex:0 0 auto; }

.policy-engine-section { border:1px solid #dfd1ca; background:#fffdfb; }
.policy-engine-heading { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.policy-source-badge { flex:0 0 auto; padding:5px 8px; border:1px solid #d8c3b9; background:#f8ebe5; color:#8d4d40; font-size:.66rem; font-weight:850; text-transform:uppercase; letter-spacing:.035em; }
.policy-snapshot-grid { display:grid; grid-template-columns: .75fr .75fr .8fr 1.7fr; margin:13px 0 16px; border:1px solid #dfd4ce; background:#faf6f3; }
.policy-snapshot-grid > div { padding:10px 12px; border-right:1px solid #e5dad4; min-width:0; }
.policy-snapshot-grid > div:last-child { border-right:0; }
.policy-snapshot-grid span { display:block; color:#7e7078; font-size:.65rem; font-weight:850; text-transform:uppercase; letter-spacing:.03em; }
.policy-snapshot-grid strong { display:block; margin-top:4px; color:#493641; font-size:.84rem; line-height:1.35; }
.policy-guidance-cell strong { color:#8f493d; }
.policy-tier-groups { display:grid; gap:10px; }
.policy-tier-group { margin:0; padding:0 0 10px; border:1px solid #e1d7d2; background:#fff; }
.policy-tier-group legend { width:100%; box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 11px; background:#f5efeb; border-bottom:1px solid #e3d8d2; }
.policy-tier-group legend span { font-weight:900; color:#4e3a46; }
.policy-tier-group legend small { color:#80737b; font-size:.67rem; }
.policy-tier-active { border-color:#b66a57; box-shadow:0 0 0 2px rgba(197,99,79,.10); }
.policy-tier-active legend { background:#f8e9e3; }
.policy-offense-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:10px 11px 0; }
.policy-offense-check { min-height:42px; }
.policy-footnote { margin:9px 11px 0; padding:8px 9px; background:#fff3ee; border-left:3px solid var(--brand-coral); color:#755a5f; font-size:.71rem; line-height:1.4; }
.policy-consistency-note { display:grid; gap:3px; margin-top:12px; padding:10px 11px; border-left:3px solid var(--brand-plum); background:#f5eff3; color:#685765; font-size:.73rem; line-height:1.4; }
.policy-consistency-note strong { color:#4f3748; }
.policy-readonly-field .readonly-policy-value { min-height:42px; display:flex; align-items:center; padding:9px 10px; border:1px solid #d9d0cb; background:#f6f1ee; color:#4c3945; font-weight:850; }
.legacy-policy-box { margin-top:11px; padding:10px; border:1px dashed #cbbcb4; background:#fbf7f4; }
.legacy-policy-box > strong { color:#5f4b56; }
.legacy-policy-box > p { margin:3px 0 8px; color:#81747b; font-size:.72rem; }
.compact-legacy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }

.decision-consistency-checklist { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:14px 0; padding:11px; border:1px solid #ded5d0; background:#faf7f5; }
.decision-consistency-checklist > strong { grid-column:1 / -1; color:#4b3944; font-size:.78rem; }
.decision-consistency-checklist span { padding:7px 8px; border:1px solid #e3ddd9; background:#fff; color:#8a7d84; font-size:.71rem; font-weight:750; }
.decision-consistency-checklist span.complete { color:#356247; background:#f1f8f4; border-color:#c9ded1; }
.decision-consistency-checklist span.pending { color:#8b6558; background:#fff8f4; border-color:#ead8cf; }

.student-history-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:9px; }
.student-history-heading h3 { margin:0; }
.student-history-heading p { margin:3px 0 0; color:#776c73; font-size:.74rem; }
.history-summary-pills { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.history-summary-pills span { padding:5px 7px; background:#f2e8ec; color:#66485e; border:1px solid #dfcfd7; font-size:.67rem; font-weight:850; }
.active-restriction-banner { display:flex; align-items:center; gap:10px; margin:8px 0 10px; padding:9px 10px; border-left:4px solid #b05042; background:#fff0ec; color:#6f4f4c; font-size:.73rem; }
.active-restriction-banner strong { color:#963f34; }
.active-restriction-banner a { margin-left:auto; color:#8f493d; font-weight:850; }

@media (max-width: 900px) {
  .student-discipline-snapshot { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .student-discipline-snapshot > div:nth-child(2) { border-right:0; }
  .student-discipline-snapshot > div:nth-child(-n+2) { border-bottom:1px solid var(--brand-border-soft); }
  .policy-snapshot-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .policy-snapshot-grid > div:nth-child(2) { border-right:0; }
  .policy-snapshot-grid > div:nth-child(-n+2) { border-bottom:1px solid #e5dad4; }
  .decision-consistency-checklist { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .workflow-progress-six { grid-template-columns:repeat(6,1fr); }
  .policy-offense-grid, .compact-legacy-grid { grid-template-columns:1fr; }
  .timeline-event-top { display:block; }
  .timeline-event-top time { display:block; margin-top:2px; }
  .parent-contact-step-intro { display:grid; }
  .parent-contact-step-intro .button-link { width:100%; text-align:center; }
  .student-history-heading { display:grid; }
  .history-summary-pills { justify-content:flex-start; }
  .active-restriction-banner { align-items:flex-start; flex-wrap:wrap; }
  .active-restriction-banner a { margin-left:0; width:100%; }
}
@media (max-width: 520px) {
  .student-discipline-snapshot { grid-template-columns:1fr; }
  .student-discipline-snapshot > div { border-right:0 !important; border-bottom:1px solid var(--brand-border-soft); }
  .student-discipline-snapshot > div:last-child { border-bottom:0; }
  .policy-snapshot-grid { grid-template-columns:1fr; }
  .policy-snapshot-grid > div { border-right:0 !important; border-bottom:1px solid #e5dad4; }
  .policy-snapshot-grid > div:last-child { border-bottom:0; }
  .decision-consistency-checklist { grid-template-columns:1fr; }
  .policy-engine-heading { display:grid; }
  .policy-source-badge { justify-self:start; }
  .case-timeline { padding-left:12px; padding-right:12px; }
}


/* ============================================================
   v66 — dashboard student finder, student profile, larger case photo
   ============================================================ */
.student-finder-panel { margin-bottom:18px; }
.student-finder-heading { padding:16px 18px 8px; }
.student-finder-heading h2 { margin:0; }
.student-finder-heading p:last-child { margin:4px 0 0; color:var(--brand-muted); font-size:.82rem; }
.student-finder-form { display:grid; grid-template-columns:minmax(260px,1fr) auto auto; gap:10px; align-items:center; padding:0 18px 16px; }
.student-finder-form input { min-height:44px; border:1px solid var(--brand-border); background:#fff; padding:10px 12px; font:inherit; }
.student-finder-form button { min-height:44px; }
.student-search-clear { padding:10px 2px; }
.student-search-results { border-top:1px solid var(--brand-border-soft); }
.student-search-row { display:grid; grid-template-columns:50px minmax(175px,.9fr) minmax(210px,1.2fr) minmax(170px,.9fr) minmax(165px,.9fr) auto; gap:14px; align-items:center; padding:11px 18px; border-bottom:1px solid var(--brand-border-soft); text-decoration:none; }
.student-search-row:last-child { border-bottom:0; }
.student-search-row:hover { background:#fffaf7; }
.student-search-photo { width:46px; height:54px; overflow:hidden; border:1px solid var(--brand-border); background:#f3ece8; display:grid; place-items:center; }
.student-search-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.student-search-photo span { font-weight:900; color:var(--brand-plum-dark); font-size:1.1rem; }
.student-search-identity, .student-search-route, .student-search-history, .student-search-restriction { min-width:0; display:grid; gap:3px; }
.student-search-row span:not(.student-search-open) { color:var(--brand-muted); font-size:.7rem; }
.student-search-row strong { color:var(--brand-plum-dark); font-size:.82rem; overflow-wrap:anywhere; }
.student-search-restriction.has-restriction strong { color:#9f3f32; }
.student-search-open { color:var(--brand-coral-dark); font-size:.74rem; font-weight:850; white-space:nowrap; }
.student-search-empty { border-top:1px solid var(--brand-border-soft); }
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* The incident identification photo now fills almost the full height of the student card. */
.student-profile-card { grid-template-columns:220px minmax(0,1fr); align-items:stretch; }
.student-photo-wrap { width:220px; height:auto; min-height:210px; align-self:stretch; }
.student-profile-body { align-self:center; }

.student-profile-page-top { margin-bottom:10px; }
.student-master-card { display:grid; grid-template-columns:220px minmax(0,1fr); gap:24px; align-items:stretch; border-left:4px solid var(--brand-coral); }
.student-master-photo { min-height:230px; overflow:hidden; border:1px solid var(--brand-border); background:#f3ece8; }
.student-master-photo img { width:100%; height:100%; min-height:230px; object-fit:cover; display:block; }
.student-master-body { align-self:center; min-width:0; }
.student-master-heading { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }
.student-master-heading h1 { margin:2px 0 4px; }
.student-master-heading p { margin:0; color:var(--brand-muted); }
.student-profile-alert { display:inline-flex; padding:7px 10px; background:#fff1ed; border:1px solid #e7b6a9; color:#9f3f32; font-size:.75rem; font-weight:850; white-space:nowrap; }
.student-master-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:20px; border:1px solid var(--brand-border-soft); background:#fbf7f4; }
.student-master-stats > div { padding:11px 13px; border-right:1px solid var(--brand-border-soft); }
.student-master-stats > div:last-child { border-right:0; }
.student-master-stats span, .student-history-row > div > span { display:block; color:var(--brand-muted); font-size:.67rem; font-weight:800; text-transform:uppercase; letter-spacing:.035em; }
.student-master-stats strong { display:block; margin-top:3px; color:var(--brand-plum-dark); }
.student-section-heading { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:14px; }
.student-section-heading h2 { margin:0; }
.student-section-heading p:last-child { margin:4px 0 0; color:var(--brand-muted); font-size:.8rem; }
.student-route-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--brand-border-soft); }
.student-route-item { display:grid; gap:3px; padding:12px 14px; border-right:1px solid var(--brand-border-soft); }
.student-route-item:last-child { border-right:0; }
.student-route-item span { color:var(--brand-muted); font-size:.75rem; }
.student-history-list { border:1px solid var(--brand-border-soft); }
.student-history-row { display:grid; grid-template-columns:minmax(180px,1fr) minmax(170px,.9fr) 130px auto; gap:14px; align-items:center; padding:12px 14px; border-bottom:1px solid var(--brand-border-soft); text-decoration:none; }
.student-history-row:last-child { border-bottom:0; }
.student-history-row:hover { background:#fffaf7; }
.student-history-row > div { display:grid; gap:3px; min-width:0; }
.student-history-row strong { color:var(--brand-plum-dark); font-size:.82rem; }

@media (max-width:1050px) {
  .student-search-row { grid-template-columns:50px minmax(180px,1fr) minmax(190px,1fr) minmax(160px,1fr) auto; }
  .student-search-history { display:none; }
}
@media (max-width:800px) {
  .student-search-row { grid-template-columns:50px 1fr auto; }
  .student-search-route, .student-search-history, .student-search-restriction { grid-column:2 / 3; }
  .student-search-open { grid-column:3; grid-row:1 / span 4; }
  .student-master-card { grid-template-columns:170px minmax(0,1fr); }
  .student-master-photo { min-height:210px; }
  .student-route-grid { grid-template-columns:1fr; }
  .student-route-item { border-right:0; border-bottom:1px solid var(--brand-border-soft); }
  .student-route-item:last-child { border-bottom:0; }
}
@media (max-width:700px) {
  .student-finder-form { grid-template-columns:1fr; }
  .student-profile-card { grid-template-columns:1fr; }
  .student-photo-wrap { width:160px; height:190px; min-height:190px; }
  .student-master-card { grid-template-columns:1fr; }
  .student-master-photo { width:180px; height:220px; min-height:220px; }
  .student-master-heading { flex-direction:column; }
  .student-master-stats { grid-template-columns:1fr; }
  .student-master-stats > div { border-right:0; border-bottom:1px solid var(--brand-border-soft); }
  .student-master-stats > div:last-child { border-bottom:0; }
  .student-history-row { grid-template-columns:1fr auto; }
  .student-history-row > div:nth-child(2), .student-history-row > div:nth-child(3) { grid-column:1; }
  .student-history-row > .status-pill { grid-column:2; grid-row:1 / span 3; }
}


/* v67 student profile stability + contact/history improvements */
.student-master-photo { width:220px; aspect-ratio:4 / 5; min-height:0; height:auto; align-self:start; display:grid; place-items:stretch; }
.student-master-photo img { width:100%; height:100%; min-height:0; object-fit:cover; object-position:center top; display:block; }
.student-master-photo .student-photo-placeholder { min-height:100%; display:grid; align-content:center; justify-items:center; gap:8px; }
.student-master-photo .student-photo-placeholder small { color:var(--brand-muted); font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.student-profile-two-column { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr); gap:18px; align-items:start; }
.student-profile-two-column > .case-card { margin:0; height:100%; }
.student-profile-two-column .student-route-grid { grid-template-columns:1fr; }
.student-profile-two-column .student-route-item { border-right:0; border-bottom:1px solid var(--brand-border-soft); }
.student-profile-two-column .student-route-item:last-child { border-bottom:0; }
.student-contact-list { display:grid; gap:10px; }
.student-contact-person { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 14px; align-items:center; padding:12px 14px; border:1px solid var(--brand-border-soft); background:#fbf8f6; }
.student-contact-person > span { grid-column:1 / -1; color:var(--brand-muted); font-size:.67rem; font-weight:800; text-transform:uppercase; letter-spacing:.035em; }
.student-contact-person strong { color:var(--brand-plum-dark); font-size:.86rem; }
.student-contact-person a { color:var(--brand-coral-dark); font-weight:850; text-decoration:none; }
.student-contact-person em { color:var(--brand-muted); font-size:.75rem; font-style:normal; }
.student-contact-action { margin-top:12px; display:grid; gap:7px; }
.student-contact-action .button-link { width:fit-content; }
.student-contact-action > span { color:var(--brand-muted); font-size:.74rem; }
.student-history-row-v67 { grid-template-columns:minmax(215px,1.2fr) minmax(185px,1fr) minmax(165px,.85fr) minmax(125px,.72fr) auto; align-items:start; }
.student-history-row-v67 small { display:block; margin-top:3px; color:var(--brand-muted); font-size:.7rem; line-height:1.35; }
.student-history-row-v67 .status-pill { align-self:center; }
@media (max-width:1100px) { .student-profile-two-column { grid-template-columns:1fr; } .student-history-row-v67 { grid-template-columns:minmax(190px,1fr) minmax(170px,1fr) minmax(150px,.8fr) auto; } .student-history-row-v67 > div:nth-child(4) { display:none; } }
@media (max-width:800px) { .student-master-photo { width:170px; } .student-history-row-v67 { grid-template-columns:1fr auto; } .student-history-row-v67 > div { grid-column:1; } .student-history-row-v67 > div:nth-child(4) { display:grid; } .student-history-row-v67 .status-pill { grid-column:2; grid-row:1 / span 4; } }
@media (max-width:700px) { .student-master-photo { width:180px; height:auto; min-height:0; aspect-ratio:4 / 5; } .student-contact-person { grid-template-columns:1fr; } .student-contact-person > span { grid-column:auto; } .student-contact-action .button-link { width:100%; text-align:center; } }

/* ============================================================
   v68 — Student & Seat alignment cleanup
   Photo stays at the far left; Student, Student ID, and Grade use
   equal-width columns and identical control heights.
   ============================================================ */
.student-seat-primary-row {
  display: grid;
  grid-template-columns: 96px repeat(3, minmax(0, 1fr));
  grid-template-areas: "photo student studentid grade";
  gap: 16px;
  align-items: start;
}
.incident-student-photo-field { grid-area: photo; min-width: 0; }
.student-select-field { grid-area: student; }
.student-id-field { grid-area: studentid; }
.student-grade-field { grid-area: grade; }
.incident-student-photo-field > label {
  display: block;
  margin: 0 0 7px;
  font-weight: 700;
}
.student-seat-primary-row .incident-student-photo-mini {
  width: 96px;
  height: 96px;
  border-radius: 3px;
}
.student-seat-primary-row select,
.student-seat-primary-row input:not([type="checkbox"]) {
  height: 46px;
  min-height: 46px;
  box-sizing: border-box;
  padding-top: 0;
  padding-bottom: 0;
}
.student-seat-secondary-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.student-seat-secondary-row .field {
  grid-column: span 2;
}

@media (max-width: 900px) {
  .student-seat-primary-row {
    grid-template-columns: 86px repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
  .student-seat-primary-row .incident-student-photo-mini {
    width: 86px;
    height: 86px;
  }
}

@media (max-width: 700px) {
  .student-seat-primary-row {
    grid-template-columns: 78px minmax(0, 1fr);
    grid-template-areas:
      "photo student"
      "studentid studentid"
      "grade grade";
    gap: 12px;
  }
  .student-seat-primary-row .incident-student-photo-mini {
    width: 78px;
    height: 78px;
  }
  .student-seat-secondary-row {
    grid-template-columns: 1fr;
    margin-top: 12px;
  }
  .student-seat-secondary-row .field { grid-column: auto; }
}

/* ============================================================
   v69 — Compact Student & Seat layout
   Photo left; Student/Student ID stacked together and Grade/Seat
   stacked together in two side-by-side columns.
   ============================================================ */
.student-seat-compact-grid {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}
.student-seat-compact-grid .incident-student-photo-field {
  min-width: 0;
}
.student-seat-compact-grid .incident-student-photo-field > label {
  display: block;
  margin: 0 0 7px;
  font-weight: 700;
}
.student-seat-compact-grid .incident-student-photo-mini {
  width: 104px;
  height: 132px;
  border-radius: 4px;
}
.student-seat-stack {
  display: grid;
  gap: 12px;
  min-width: 0;
}
.student-seat-compact-grid .field {
  min-width: 0;
}
.student-seat-compact-grid select,
.student-seat-compact-grid input:not([type="checkbox"]) {
  width: 100%;
  height: 46px;
  min-height: 46px;
  box-sizing: border-box;
  padding-top: 0;
  padding-bottom: 0;
}
.student-seat-compact-grid .field-help {
  margin-top: 5px;
  line-height: 1.25;
}
.student-seat-compact-grid .seat-support-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-top: 5px;
}
.student-seat-compact-grid .seat-area-preview {
  margin-top: 0;
  min-height: 26px;
  flex: 0 0 auto;
}
.student-seat-compact-grid .seat-support-row .field-help {
  margin-top: 0;
  flex: 1 1 210px;
}

@media (max-width: 900px) {
  .student-seat-compact-grid {
    grid-template-columns: 92px minmax(0, 1fr) minmax(0, 1fr);
    gap: 14px;
  }
  .student-seat-compact-grid .incident-student-photo-mini {
    width: 92px;
    height: 120px;
  }
}

@media (max-width: 700px) {
  .student-seat-compact-grid {
    grid-template-columns: 78px minmax(0, 1fr);
    grid-template-areas:
      "photo left"
      "right right";
    gap: 12px;
  }
  .student-seat-compact-grid .incident-student-photo-field { grid-area: photo; }
  .student-seat-stack-left { grid-area: left; }
  .student-seat-stack-right { grid-area: right; grid-template-columns: 1fr; }
  .student-seat-compact-grid .incident-student-photo-mini {
    width: 78px;
    height: 98px;
  }
}

/* ============================================================
   v70 — Student & Seat layout correction + control consistency
   Strict desktop layout:
     [ full-height photo ] [ Student / Student ID ] [ Seat / Grade ]
   Also prevents legacy v68 named-grid rules from repositioning fields.
   ============================================================ */
#incident-step-2 .student-seat-compact-grid {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
  align-items: stretch;
}

/* Neutralize the older v68 grid-area assignments that caused the v69 collapse. */
#incident-step-2 .incident-student-photo-field,
#incident-step-2 .student-select-field,
#incident-step-2 .student-id-field,
#incident-step-2 .student-grade-field,
#incident-step-2 .student-seat-field {
  grid-area: auto !important;
}

#incident-step-2 .incident-student-photo-field {
  min-width: 0;
  display: flex;
  align-items: stretch;
}
#incident-step-2 .incident-student-photo-mini {
  width: 150px;
  height: 100%;
  min-height: 178px;
  border-radius: 5px;
  align-self: stretch;
}
#incident-step-2 .incident-student-photo-mini img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
#incident-step-2 .student-seat-stack {
  display: grid;
  grid-template-rows: auto auto;
  align-content: start;
  gap: 12px;
  min-width: 0;
}
#incident-step-2 .student-seat-stack .field {
  min-width: 0;
}
#incident-step-2 .student-seat-stack select,
#incident-step-2 .student-seat-stack input:not([type="checkbox"]) {
  width: 100%;
}
#incident-step-2 .seat-support-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 9px;
  margin-top: 5px;
}

/* Match every dropdown on the incident page to the input/placeholder controls. */
.incident-form select,
.incident-form input:not([type="checkbox"]):not([type="radio"]) {
  height: 54px;
  min-height: 54px;
  padding: 12px 13px;
  line-height: 1.2;
  box-sizing: border-box;
}

@media (max-width: 900px) {
  #incident-step-2 .student-seat-compact-grid {
    grid-template-columns: 125px minmax(0, 1fr) minmax(0, 1fr);
    gap: 14px;
  }
  #incident-step-2 .incident-student-photo-mini {
    width: 125px;
    min-height: 172px;
  }
}

@media (max-width: 700px) {
  #incident-step-2 .student-seat-compact-grid {
    grid-template-columns: 100px minmax(0, 1fr);
    grid-template-areas:
      "photo left"
      "right right";
    gap: 12px;
  }
  #incident-step-2 .incident-student-photo-field { grid-area: photo !important; }
  #incident-step-2 .student-seat-stack-left { grid-area: left; }
  #incident-step-2 .student-seat-stack-right { grid-area: right; }
  #incident-step-2 .incident-student-photo-mini {
    width: 100px;
    min-height: 150px;
  }
  .incident-form select,
  .incident-form input:not([type="checkbox"]):not([type="radio"]) {
    height: 46px;
    min-height: 46px;
    padding: 10px;
  }
}

/* ============================================================
   v71 — Student & Seat row alignment + single photo frame
   Keeps Student/Seat in row 1 and Student ID/Grade in row 2.
   The seat-area badge appears only when an actual seat area exists.
   ============================================================ */
#incident-step-2 .student-seat-compact-grid {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 18px;
  row-gap: 12px;
  align-items: stretch;
}

/* Flatten the two former stack wrappers so all four fields share the same
   two grid rows. This keeps Student ID and Grade perfectly aligned. */
#incident-step-2 .student-seat-stack {
  display: contents !important;
}
#incident-step-2 .incident-student-photo-field {
  grid-column: 1;
  grid-row: 1 / span 2;
  display: block;
  min-width: 0;
  align-self: stretch;
}
#incident-step-2 .student-select-field {
  grid-column: 2;
  grid-row: 1;
}
#incident-step-2 .student-seat-field {
  grid-column: 3;
  grid-row: 1;
}
#incident-step-2 .student-id-field {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
}
#incident-step-2 .student-grade-field {
  grid-column: 3;
  grid-row: 2;
  align-self: start;
}

/* One portrait frame only. img and placeholder occupy the exact same box. */
#incident-step-2 .incident-student-photo-mini {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  display: block;
  border: 1px solid #d6dee8;
  background: #f2f5f8;
}
#incident-step-2 .incident-student-photo-mini img,
#incident-step-2 .incident-student-photo-mini > span {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}
#incident-step-2 .incident-student-photo-mini img {
  object-fit: cover;
  object-position: center top;
}
#incident-step-2 .incident-student-photo-mini > span {
  display: grid;
  place-items: center;
  padding: 10px;
}
#incident-step-2 .incident-student-photo-mini img[hidden],
#incident-step-2 .incident-student-photo-mini > span[hidden],
#incident-step-2 .seat-area-preview[hidden] {
  display: none !important;
}

/* Keep support copy compact without shifting the second row. */
#incident-step-2 .seat-support-row {
  min-height: 22px;
  margin-top: 5px;
  align-items: flex-start;
}
#incident-step-2 .seat-support-row .field-help {
  margin-top: 1px;
}

@media (max-width: 900px) {
  #incident-step-2 .student-seat-compact-grid {
    grid-template-columns: 125px minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 14px;
  }
}

@media (max-width: 700px) {
  #incident-step-2 .student-seat-compact-grid {
    grid-template-columns: 96px minmax(0, 1fr);
    grid-template-rows: auto auto auto auto;
    column-gap: 12px;
    row-gap: 12px;
  }
  #incident-step-2 .incident-student-photo-field {
    grid-column: 1;
    grid-row: 1;
    min-height: 120px;
  }
  #incident-step-2 .student-select-field {
    grid-column: 2;
    grid-row: 1;
  }
  #incident-step-2 .student-seat-field {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  #incident-step-2 .student-id-field {
    grid-column: 1 / -1;
    grid-row: 3;
  }
  #incident-step-2 .student-grade-field {
    grid-column: 1 / -1;
    grid-row: 4;
  }
}

/* Override the v70 mobile named-area rule; v71 uses explicit rows/columns. */
#incident-step-2 .incident-student-photo-field {
  grid-area: auto !important;
}

/* ============================================================
   v72 — Student & Seat: true full-height photo column
   Structure is now [photo] [2x2 field grid] so the right-side
   fields determine the row height and the photo reliably fills it.
   ============================================================ */
#incident-step-2 .student-seat-compact-grid {
  display: grid !important;
  grid-template-columns: 150px minmax(0, 1fr) !important;
  grid-template-rows: 1fr !important;
  gap: 18px !important;
  align-items: stretch !important;
}

#incident-step-2 .student-seat-fields-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 18px;
  row-gap: 12px;
  align-content: start;
  min-width: 0;
}

#incident-step-2 .student-seat-fields-grid .field {
  min-width: 0;
  margin: 0;
}

#incident-step-2 .student-select-field {
  grid-column: 1 !important;
  grid-row: 1 !important;
}
#incident-step-2 .student-seat-field {
  grid-column: 2 !important;
  grid-row: 1 !important;
}
#incident-step-2 .student-id-field {
  grid-column: 1 !important;
  grid-row: 2 !important;
}
#incident-step-2 .student-grade-field {
  grid-column: 2 !important;
  grid-row: 2 !important;
}

/* The photo wrapper is a stretched grid item. The inner frame is
   absolutely anchored to all four sides, avoiding percentage-height
   collapse from previous versions. */
#incident-step-2 .incident-student-photo-field {
  grid-column: 1 !important;
  grid-row: 1 !important;
  position: relative;
  display: block !important;
  align-self: stretch !important;
  min-width: 0;
  min-height: 100%;
}

#incident-step-2 .incident-student-photo-mini {
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  border: 1px solid #d6dee8;
  border-radius: 5px;
  overflow: hidden;
  background: #f2f5f8;
  display: block !important;
}

#incident-step-2 .incident-student-photo-mini img,
#incident-step-2 .incident-student-photo-mini > span {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}
#incident-step-2 .incident-student-photo-mini img {
  object-fit: cover;
  object-position: center top;
  display: block;
}
#incident-step-2 .incident-student-photo-mini > span {
  display: grid;
  place-items: center;
  padding: 10px;
}
#incident-step-2 .incident-student-photo-mini img[hidden],
#incident-step-2 .incident-student-photo-mini > span[hidden],
#incident-step-2 .seat-area-preview[hidden] {
  display: none !important;
}

#incident-step-2 .seat-support-row {
  min-height: 22px;
  margin-top: 5px;
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 5px 9px;
}

@media (max-width: 900px) {
  #incident-step-2 .student-seat-compact-grid {
    grid-template-columns: 125px minmax(0, 1fr) !important;
    gap: 14px !important;
  }
  #incident-step-2 .student-seat-fields-grid {
    column-gap: 14px;
  }
}

@media (max-width: 700px) {
  #incident-step-2 .student-seat-compact-grid {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
  }
  #incident-step-2 .incident-student-photo-field {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 120px;
    height: 150px;
    min-height: 150px;
  }
  #incident-step-2 .student-seat-fields-grid {
    grid-column: 1;
    grid-row: 2;
    grid-template-columns: 1fr;
  }
  #incident-step-2 .student-select-field,
  #incident-step-2 .student-seat-field,
  #incident-step-2 .student-id-field,
  #incident-step-2 .student-grade-field {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
}

/* ============================================================
   v73 — Driver action checkbox alignment
   Keep native checkboxes visually separate from their labels.
   ============================================================ */
#incident-step-3 .action-option {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  column-gap: 10px;
  min-height: 46px;
  padding: 10px 13px;
  box-sizing: border-box;
}

#incident-step-3 .action-option input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px;
  min-height: 18px;
  margin: 0 !important;
  padding: 0 !important;
  align-self: center;
  justify-self: center;
  box-sizing: border-box;
}

#incident-step-3 .action-option > span {
  display: block;
  min-width: 0;
  margin: 0;
  padding: 0;
  line-height: 1.3;
}

/* Match the video-review checkbox spacing to the same clean alignment. */
#incident-step-4 .check-row {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  column-gap: 10px;
}
#incident-step-4 .check-row input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px;
  min-height: 18px;
  margin: 2px 0 0 !important;
  padding: 0 !important;
}

/* v74 — Parent / Guardian contact page organization */
.parent-contact-shell { max-width: 1120px; }
.parent-contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  align-items: stretch;
}
.driver-contact-list-v74 { overflow: hidden; }
.driver-contact-columns,
.driver-contact-row-v74 {
  display: grid;
  grid-template-columns: 150px minmax(200px, 1.35fr) minmax(165px, .8fr) 72px;
  gap: 18px;
  align-items: center;
}
.driver-contact-columns {
  min-height: 34px;
  padding: 7px 14px;
  border-bottom: 1px solid #dce4ed;
  background: #f7f9fb;
  color: #6a798c;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.driver-contact-row-v74 {
  min-height: 58px;
  padding: 11px 14px;
}
.driver-contact-row-v74 .driver-contact-label {
  color: #56697f;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
}
.driver-contact-name {
  color: #24384f;
  font-size: .95rem;
  font-weight: 800;
}
.driver-contact-phone-cell { min-width: 0; }
.driver-contact-action { display: flex; justify-content: flex-end; }
.driver-contact-action .contact-copy-button { min-width: 58px; }

.parent-script-card,
.contact-record-card { width: 100%; }
.contact-record-card { padding: 20px; }
.contact-record-card > h2 { margin: 2px 0 14px; }
.parent-contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
  margin-top: 8px;
}
.parent-contact-form .field { margin: 0; }
.parent-contact-form .field:has(#note) { grid-column: 1 / -1; }
.parent-contact-form #note { min-height: 104px; }
.parent-contact-form .parent-auto-time {
  grid-column: 1 / 2;
  display: flex;
  align-items: center;
  min-height: 48px;
  margin: 0;
}
.parent-contact-form > button[type="submit"] {
  grid-column: 2 / 3;
  min-height: 48px;
  width: 100%;
  align-self: stretch;
}

@media (max-width: 760px) {
  .driver-contact-columns { display: none; }
  .driver-contact-row-v74 {
    grid-template-columns: 1fr auto;
    gap: 5px 12px;
    padding: 13px 14px;
  }
  .driver-contact-row-v74 .driver-contact-label { grid-column: 1 / -1; }
  .driver-contact-name { grid-column: 1 / 2; }
  .driver-contact-phone-cell { grid-column: 1 / 2; }
  .driver-contact-action { grid-column: 2 / 3; grid-row: 2 / 4; align-items: center; }
  .parent-contact-form { grid-template-columns: 1fr; }
  .parent-contact-form .field:has(#note),
  .parent-contact-form .parent-auto-time,
  .parent-contact-form > button[type="submit"] { grid-column: 1; }
}

/* v75 — transparent policy + consistency recommendation engine */
.decision-recommendation-card {
  margin: 16px 0 18px;
  padding: 16px;
  border: 1px solid #d7c8d2;
  border-radius: 12px;
  background: linear-gradient(180deg, #fff 0%, #fbf7fa 100%);
}
.recommendation-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 13px;
}
.recommendation-card-head h3 { margin: 2px 0 4px; }
.recommendation-card-head p:not(.eyebrow) { margin: 0; color: #66788f; max-width: 760px; line-height: 1.45; }
.recommendation-local-badge {
  flex: 0 0 auto;
  padding: 7px 9px;
  border: 1px solid #d8c9d3;
  border-radius: 999px;
  background: #fff;
  color: #6b395c;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .02em;
  white-space: nowrap;
}
.recommendation-empty {
  padding: 14px;
  border: 1px dashed #d9cdd5;
  border-radius: 10px;
  background: #fff;
  color: #6b7484;
  font-weight: 700;
}
.recommendation-content { display: grid; gap: 12px; }
.recommendation-primary {
  padding: 14px 15px;
  border-left: 4px solid #6b395c;
  background: #fff;
  box-shadow: inset 0 0 0 1px #eadfe6;
}
.recommendation-primary > span,
.recommendation-metrics span {
  display: block;
  color: #7f6e79;
  font-size: .66rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.recommendation-primary strong { display: block; margin: 4px 0 2px; color: #30252c; font-size: 1.08rem; }
.recommendation-primary small { color: #5f6f84; font-size: .82rem; font-weight: 700; }
.recommendation-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid #e2d8de;
  background: #fff;
}
.recommendation-metrics > div { min-width: 0; padding: 10px 11px; border-right: 1px solid #e8e0e5; }
.recommendation-metrics > div:last-child { border-right: 0; }
.recommendation-metrics strong { display: block; margin-top: 4px; color: #3f333a; font-size: .78rem; line-height: 1.35; }
.recommendation-basis {
  display: flex;
  gap: 8px;
  align-items: baseline;
  padding: 10px 12px;
  border-radius: 9px;
  background: #f4f7fb;
  color: #53657b;
  font-size: .78rem;
  line-height: 1.45;
}
.recommendation-basis strong { color: #31445b; white-space: nowrap; }
.recommendation-response-group { margin: 15px 0 0; padding: 0; border: 0; }
.recommendation-response-group legend { margin-bottom: 7px; font-weight: 800; color: #342930; }
.recommendation-response-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.recommendation-response-option {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-height: 70px;
  padding: 11px 12px;
  border: 1px solid #d9dfe8;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
}
.recommendation-response-option:has(input:checked) { border-color: #8a5b7a; box-shadow: 0 0 0 2px rgba(107,57,92,.10); background: #fffafd; }
.recommendation-response-option input { width: 17px; height: 17px; margin: 2px 0 0; flex: 0 0 auto; }
.recommendation-response-option span { display: grid; gap: 3px; }
.recommendation-response-option strong { color: #342930; }
.recommendation-response-option small { color: #6d788a; line-height: 1.35; }
.recommendation-note-field { margin-top: 11px; }
.recommendation-note-field[hidden] { display: none !important; }

@media (max-width: 920px) {
  .recommendation-card-head { display: grid; }
  .recommendation-local-badge { justify-self: start; }
  .recommendation-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recommendation-metrics > div:nth-child(2) { border-right: 0; }
  .recommendation-metrics > div:nth-child(-n+2) { border-bottom: 1px solid #e8e0e5; }
  .recommendation-response-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .recommendation-metrics { grid-template-columns: 1fr; }
  .recommendation-metrics > div { border-right: 0; border-bottom: 1px solid #e8e0e5; }
  .recommendation-metrics > div:last-child { border-bottom: 0; }
  .recommendation-basis { display: grid; }
}

/* v76 — evidence review outcomes for image-only / unusable-video cases */
.evidence-summary-cell .evidence-status-text { font-size: .9rem; text-align: right; }
.evidence-resolution-panel {
  margin: 0; padding: 16px 22px 18px; border-bottom: 1px solid #dfe4ea; background: #fbfcfd;
  display: grid; grid-template-columns: minmax(260px, .8fr) minmax(480px, 1.4fr); gap: 18px; align-items: center;
}
.evidence-resolution-copy h3 { margin: 0; color: #273b50; font-size: .92rem; }
.evidence-resolution-copy p { margin: 4px 0 0; color: #6f7f91; font-size: .78rem; line-height: 1.45; }
.evidence-resolution-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.evidence-resolution-choice {
  width: 100%; min-height: 64px; padding: 10px 12px; border: 1px solid #cbd6e0; border-radius: 4px;
  background: #fff; color: #2c4055; text-align: left; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px;
}
.evidence-resolution-choice:hover { border-color: #8ba0b5; background: #f7f9fb; }
.evidence-resolution-choice.selected { border-color: #4f8a68; box-shadow: inset 3px 0 0 #4f8a68; background: #f2f8f4; }
.evidence-resolution-choice strong { font-size: .84rem; }
.evidence-resolution-choice span { color: #6f7f91; font-size: .72rem; line-height: 1.35; }
@media (max-width: 900px) {
  .evidence-resolution-panel { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .evidence-resolution-panel { padding-left: 16px; padding-right: 16px; }
  .evidence-resolution-form { grid-template-columns: 1fr; }
  .evidence-summary-cell .evidence-status-text { font-size: .78rem; }
}

/* v77 — simplified Coordinator Decision flow */
.decision-form-v77 { border-top: 0; padding-top: 0; display: grid; gap: 14px; }
.decision-simple-path {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 2px;
}
.decision-simple-path > div {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 11px;
  border: 1px solid #e2e7ee;
  background: #f8fafc;
  border-radius: 10px;
  color: #53647a;
  font-size: .76rem;
}
.decision-simple-path span {
  display: inline-grid;
  place-items: center;
  width: 23px;
  height: 23px;
  border-radius: 999px;
  background: #5a3650;
  color: #fff;
  font-weight: 900;
  flex: 0 0 auto;
}
.decision-simple-path strong { color: #382b35; }

.decision-facts-details,
.decision-history-details,
.decision-optional-details,
.recommendation-why-details {
  border: 1px solid #e0e6ed;
  border-radius: 11px;
  background: #fbfcfe;
  overflow: hidden;
}
.decision-facts-details { margin-bottom: 14px; }
.decision-facts-details > summary,
.decision-history-details > summary,
.decision-optional-details > summary,
.recommendation-why-details > summary,
.policy-tier-accordion > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
}
.decision-facts-details > summary::-webkit-details-marker,
.decision-history-details > summary::-webkit-details-marker,
.decision-optional-details > summary::-webkit-details-marker,
.recommendation-why-details > summary::-webkit-details-marker,
.policy-tier-accordion > summary::-webkit-details-marker { display: none; }
.decision-facts-details summary > span:first-child,
.decision-history-details summary > span:first-child,
.decision-optional-details summary > span:first-child,
.recommendation-why-details summary > span:first-child,
.policy-tier-accordion summary > span:first-child { display: grid; gap: 2px; }
.decision-facts-details summary small,
.decision-history-details summary small,
.decision-optional-details summary small,
.recommendation-why-details summary small,
.policy-tier-accordion summary small { color: #728096; font-size: .72rem; font-weight: 600; }
.decision-facts-details[open] > summary,
.decision-history-details[open] > summary,
.decision-optional-details[open] > summary,
.recommendation-why-details[open] > summary { border-bottom: 1px solid #e5eaf0; }
.compact-context-grid { margin: 0; padding: 12px; }

.decision-v77-section {
  border: 1px solid #dde4ec;
  background: #fff;
  border-radius: 13px;
  padding: 16px;
}
.decision-v77-section.policy-engine-section { border-color: #dfd6d2; background: #fff; }
.decision-v77-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 13px;
}
.decision-v77-heading h3 { margin: 2px 0 4px; font-size: 1rem; color: #302730; }
.decision-v77-heading p:not(.eyebrow) { margin: 0; color: #6b788b; font-size: .8rem; line-height: 1.4; }
.decision-mini-stats { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.decision-mini-stats > span {
  min-width: 78px;
  padding: 7px 9px;
  border: 1px solid #e1e5eb;
  background: #f8fafc;
  border-radius: 9px;
}
.decision-mini-stats small { display: block; color: #7c8798; font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
.decision-mini-stats strong { display: block; margin-top: 2px; color: #392d36; font-size: .8rem; }

.policy-tier-accordions { display: grid; gap: 8px; }
.policy-tier-accordion {
  margin: 0;
  padding: 0;
  border: 1px solid #e1e5ea;
  border-radius: 10px;
  background: #fbfcfd;
  overflow: hidden;
}
.policy-tier-accordion.policy-tier-active { border-color: #b66a57; box-shadow: 0 0 0 2px rgba(197,99,79,.08); }
.policy-tier-accordion > summary { background: #f7f8fa; }
.policy-tier-accordion.policy-tier-active > summary { background: #f9ece7; }
.policy-tier-accordion[open] > summary { border-bottom: 1px solid #e5e8ec; }
.policy-tier-accordion .policy-offense-grid { padding: 10px; }
.policy-result-line {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 10px;
  align-items: center;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 9px;
  background: #f6f2f0;
  color: #5c4d55;
}
.policy-result-line span { font-size: .68rem; font-weight: 850; text-transform: uppercase; letter-spacing: .03em; }
.policy-result-line strong { font-size: .82rem; color: #6f3f36; }

.decision-recommendation-card.decision-v77-section { margin: 0; background: #fcfbfd; }
.recommendation-content-v77 { gap: 8px; }
.recommendation-primary-v77 {
  padding: 13px 14px;
  border: 1px solid #d9dfe8;
  border-radius: 10px;
  background: #fff;
}
.recommendation-primary-v77 strong { font-size: 1.12rem; }
.recommendation-why-details { margin-top: 8px; background: #fff; }
.recommendation-why-details .recommendation-metrics { border-top: 0; }
.recommendation-why-details .recommendation-basis { margin: 0 10px 10px; }
.recommendation-response-v77 { margin-top: 12px; }
.recommendation-response-v77 .recommendation-response-option { min-height: 58px; padding: 10px 11px; }
.recommendation-note-field textarea { min-height: 72px; }

.decision-core-fields { margin-top: 0; }
.decision-suspension-v77 { margin-top: 13px; padding: 13px 0 0; border-top: 1px solid #e6ebf1; border-bottom: 0; }
.decision-suspension-v77 h4 { margin: 0 0 9px; color: #433641; font-size: .86rem; }
.decision-rationale-v77 { margin-top: 13px; }
.decision-optional-details { margin-top: 13px; background: #fbfcfd; }
.decision-optional-body { padding: 13px; }
.decision-history-details { margin-top: 14px; background: #fff; }
.decision-history-details .student-history-block { margin: 0; padding: 13px; border: 0; }
.decision-history-details .student-history-heading { margin-top: 0; }

.decision-ready-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  border: 1px solid #dde5ec;
  border-radius: 11px;
  background: #f8fafb;
}
.decision-ready-bar > strong { color: #3b3038; font-size: .82rem; white-space: nowrap; }
.decision-ready-items { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.decision-ready-items span {
  padding: 5px 8px;
  border: 1px solid #e0e5e9;
  background: #fff;
  border-radius: 999px;
  color: #8a777f;
  font-size: .67rem;
  font-weight: 800;
}
.decision-ready-items span.complete { color: #326146; border-color: #c8ddd0; background: #f2f8f4; }
.decision-ready-items span.pending { color: #8a6558; border-color: #ead8cf; background: #fff8f4; }
.decision-actions-v77 { padding-top: 0; }

@media (max-width: 800px) {
  .decision-simple-path { grid-template-columns: 1fr; }
  .decision-v77-heading { display: grid; }
  .decision-mini-stats { justify-content: flex-start; }
  .decision-ready-bar { align-items: flex-start; flex-direction: column; }
  .decision-ready-items { justify-content: flex-start; }
  .policy-result-line { grid-template-columns: 1fr; }
}

/* v78 — normalize remaining workflow dropdowns.
   Safari was rendering these selects at the browser's compact native height
   while adjacent text inputs use the full application control height. */
.parent-contact-form select,
#notifications .notification-form select {
  width: 100%;
  height: 50px;
  min-height: 50px;
  box-sizing: border-box;
  padding: 0 13px;
  border: 1px solid #cfd9e6;
  border-radius: 3px;
  background-color: #fff;
  color: #162338;
  font: inherit;
  line-height: 1.2;
  vertical-align: middle;
}

.parent-contact-form select:focus,
#notifications .notification-form select:focus {
  border-color: var(--brand-coral);
  box-shadow: 0 0 0 3px rgba(197, 99, 79, .14);
  outline: none;
}

/* v79 working-day suspension calculator */
.suspension-calculator-v79 { padding-top: 16px; }
.suspension-calculator-head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; margin-bottom:14px; }
.suspension-calculator-head h4 { margin:0 0 4px; }
.suspension-calculator-head p { margin:0; color:#61738b; font-size:.86rem; max-width:760px; line-height:1.45; }
.calendar-manage-link { font-size:.78rem; font-weight:800; color:#623651; text-decoration:none; white-space:nowrap; padding-top:2px; }
.calendar-manage-link:hover { text-decoration:underline; }
.suspension-calculator-grid { display:grid; grid-template-columns:minmax(220px,.9fr) minmax(360px,1.5fr); gap:12px 18px; align-items:end; }
.suspension-length-field { min-width:0; }
.suspension-day-options { display:flex; gap:8px; align-items:stretch; flex-wrap:wrap; }
.suspension-day-button { min-height:48px; min-width:78px; padding:0 14px; border:1px solid #cbd7e6; border-radius:7px; background:#fff; color:#34455b; font-weight:800; cursor:pointer; }
.suspension-day-button:hover { border-color:#9fb3c9; background:#f7fafc; }
.suspension-day-button.active { background:#67344f; border-color:#67344f; color:#fff; box-shadow:0 0 0 2px rgba(103,52,79,.08); }
.suspension-custom-wrap { display:flex; align-items:center; gap:7px; min-height:48px; padding:0 10px; border:1px solid #cbd7e6; border-radius:7px; background:#fff; color:#52647a; font-size:.78rem; font-weight:800; }
.suspension-custom-wrap input { width:62px !important; min-height:34px !important; height:34px !important; padding:5px 8px !important; text-align:center; }
.suspension-result-card { min-height:76px; border:1px solid #d5dfeb; border-radius:8px; background:#f8fafc; padding:12px 15px; display:flex; flex-direction:column; justify-content:center; }
.suspension-result-card span { color:#6a798d; font-size:.75rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.suspension-result-card strong { color:#28384e; font-size:1.15rem; margin-top:4px; }
.suspension-result-card.return-card { background:#f7faf8; border-color:#d2e2d8; }
.suspension-result-card.return-card strong { color:#315b46; }
.suspension-calendar-note { margin-top:10px; color:#65768b; font-size:.78rem; line-height:1.4; }
.suspension-calculator-error { margin-top:10px; border:1px solid #e8b9b9; background:#fff4f4; color:#8a3030; border-radius:7px; padding:9px 11px; font-size:.8rem; font-weight:700; }
.calendar-add-form { display:grid; grid-template-columns:180px 1fr auto; gap:12px; align-items:end; }
.calendar-add-form button { min-height:48px; }
.calendar-exclusion-list { max-height:320px; overflow:auto; }
.calendar-exclusion-row { align-items:center; }
.calendar-exclusion-row > div { display:flex; flex-direction:column; gap:2px; }
.calendar-exclusion-row > div span { color:#68798e; font-size:.8rem; }
.calendar-exclusion-row form { margin:0; }
.calendar-exclusion-row button { padding:7px 11px; min-height:36px; }
@media (max-width: 900px) {
  .suspension-calculator-grid { grid-template-columns:1fr; }
  .suspension-calculator-head { flex-direction:column; gap:6px; }
  .calendar-add-form { grid-template-columns:1fr; }
}

/* ============================================================
   v80 — informational dashboard, analytics and bus intervention flags
   ============================================================ */
.dashboard-v80 { max-width: 1380px; }
.dashboard-analytics {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
  margin-bottom: 16px;
}
.analytics-card {
  min-width: 0;
  min-height: 270px;
  padding: 17px 18px 15px;
  border: 1px solid var(--brand-border);
  border-radius: 5px;
  background: var(--brand-paper);
  box-shadow: 0 1px 2px rgba(35,48,67,.04);
}
.analytics-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 17px;
}
.analytics-card-heading h2 { margin: 1px 0 0; color: var(--brand-plum-dark); font-size: 1.02rem; }
.analytics-card-heading .eyebrow { margin-bottom: 2px; }
.analytics-chip {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 3px 8px;
  border: 1px solid #ddcfc8;
  border-radius: 999px;
  background: #fbf4f0;
  color: #785d68;
  font-size: .65rem;
  font-weight: 850;
  white-space: nowrap;
}
.weekly-bar-chart {
  height: 188px;
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  align-items: end;
  gap: 9px;
  padding: 2px 2px 0;
}
.weekly-bar-cell {
  height: 100%;
  min-width: 0;
  display: grid;
  grid-template-rows: 19px minmax(0, 1fr) 24px;
  gap: 5px;
  align-items: end;
  text-align: center;
}
.weekly-bar-value { color: #5c4855; font-size: .72rem; font-weight: 900; }
.weekly-bar-track {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 98px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  border-bottom: 1px solid #ddd3ce;
  background: linear-gradient(to top, rgba(232,222,216,.25), rgba(255,255,255,0));
}
.weekly-bar-track i {
  display: block;
  width: min(72%, 34px);
  margin: 0 auto;
  min-height: 4px;
  border-radius: 3px 3px 0 0;
  background: linear-gradient(180deg, #7a4a69, var(--brand-plum));
}
.weekly-bar-cell small { color: #82727a; font-size: .61rem; line-height: 1.1; white-space: nowrap; }
.analytics-hbar-list { display: grid; gap: 10px; }
.analytics-hbar-row {
  display: grid;
  grid-template-columns: minmax(100px, 1.15fr) minmax(70px, 1fr) 24px;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.analytics-hbar-label {
  min-width: 0;
  color: #5e4a56;
  font-size: .68rem;
  font-weight: 760;
  line-height: 1.22;
  overflow-wrap: anywhere;
}
.analytics-hbar-track {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #eee7e3;
}
.analytics-hbar-track i {
  display: block;
  height: 100%;
  min-width: 4px;
  border-radius: inherit;
  background: var(--brand-plum);
}
.analytics-hbar-row strong { color: #4d3945; font-size: .75rem; text-align: right; }
.bus-hbar-list .analytics-hbar-track i { background: #8f5f4d; }
.analytics-hbar-row.is-flagged .analytics-hbar-track i { background: #b55340; }
.chart-flag {
  display: inline-flex;
  margin-left: 5px;
  padding: 1px 5px;
  border-radius: 999px;
  background: #fff0eb;
  color: #a54433;
  font-size: .55rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.analytics-footnote { margin: 14px 0 0; color: #8b7c83; font-size: .63rem; line-height: 1.35; }
.analytics-empty { min-height: 160px; display: grid; place-items: center; color: #8b7c83; font-size: .76rem; text-align: center; }

/* KPI icons */
.dashboard-v80 .dashboard-kpis { margin-bottom: 16px; }
.dashboard-v80 .kpi-card { min-height: 132px; }
.kpi-top { display: flex; align-items: center; gap: 9px; min-height: 30px; }
.kpi-icon {
  width: 29px;
  height: 29px;
  flex: 0 0 29px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: #f2e9ed;
  color: var(--brand-plum);
}
.kpi-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-v80 .kpi-card:nth-child(3) .kpi-icon { background: #f7eee0; color: #9a6725; }
.dashboard-v80 .kpi-card:nth-child(4) .kpi-icon { background: #eee7f3; color: #6d4a83; }
.dashboard-v80 .kpi-card:nth-child(5) .kpi-icon { background: #f7e8e4; color: #9a493b; }
.dashboard-v80 .kpi-card:nth-child(6) .kpi-icon { background: #e9f0eb; color: #4c715b; }
.dashboard-v80 .kpi-alert .kpi-icon { background: #f8e9df; color: #9d552e; }
.dashboard-v80 .kpi-card strong { margin-top: 9px; }

/* Find Student now sits beneath KPI cards. */
.dashboard-v80 .student-finder-panel { margin-top: 0; }

/* Bus attention / proactive intervention */
.panel-subtext { margin: 4px 0 0; color: var(--brand-muted); font-size: .75rem; }
.bus-attention-list { background: #fff; }
.bus-attention-row {
  display: grid;
  grid-template-columns: 128px minmax(300px, .9fr) minmax(330px, 1.35fr) minmax(170px, .65fr);
  gap: 18px;
  align-items: center;
  padding: 15px 18px;
  border-bottom: 1px solid var(--brand-border-soft);
}
.bus-attention-row:last-child { border-bottom: 0; }
.bus-attention-row.priority { box-shadow: inset 4px 0 0 #b44e3d; background: #fffcfa; }
.bus-attention-flag { display: grid; gap: 6px; align-content: center; }
.bus-attention-flag strong { color: #493743; font-size: 1rem; }
.bus-priority-pill {
  width: fit-content;
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 999px;
  background: #f5e9e4;
  color: #8c5546;
  font-size: .61rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.bus-attention-row.priority .bus-priority-pill { background: #fde9e4; color: #a43e2f; }
.bus-attention-metrics {
  display: grid;
  grid-template-columns: 90px 105px minmax(120px, 1fr);
  gap: 10px;
}
.bus-attention-metrics > div { min-width: 0; padding-right: 10px; border-right: 1px solid #eee5e0; }
.bus-attention-metrics > div:last-child { border-right: 0; }
.bus-attention-metrics span,
.bus-attention-recommendation > span {
  display: block;
  margin-bottom: 3px;
  color: #8a7a82;
  font-size: .6rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.bus-attention-metrics strong { display: block; color: #493743; font-size: .78rem; line-height: 1.3; overflow-wrap: anywhere; }
.bus-attention-metrics > div:first-child strong,
.bus-attention-metrics > div:nth-child(2) strong { font-size: 1.1rem; }
.bus-attention-recommendation { min-width: 0; }
.bus-attention-recommendation strong { display: block; color: #5b434f; font-size: .78rem; line-height: 1.45; }
.bus-attention-recommendation small { display: block; margin-top: 4px; color: #8e7e85; font-size: .66rem; }
.bus-attention-actions { display: grid; gap: 7px; justify-items: start; }
.bus-contact-name { color: #66535d; font-size: .72rem; font-weight: 800; }
.bus-contact-missing { color: #98633e; font-size: .68rem; font-weight: 800; }
.compact-action { min-height: 34px; display: inline-flex; align-items: center; padding: 7px 10px; font-size: .7rem; text-decoration: none; }

@media (max-width: 1180px) {
  .dashboard-analytics { grid-template-columns: 1.25fr 1fr; }
  .analytics-trend-card { grid-column: 1 / -1; }
  .bus-attention-row { grid-template-columns: 110px 1fr 1.2fr; }
  .bus-attention-actions { grid-column: 2 / -1; display: flex; align-items: center; gap: 10px; }
}
@media (max-width: 900px) {
  .dashboard-analytics { grid-template-columns: 1fr; }
  .analytics-trend-card { grid-column: auto; }
  .bus-attention-row { grid-template-columns: 100px 1fr; }
  .bus-attention-recommendation { grid-column: 1 / -1; }
  .bus-attention-actions { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .weekly-bar-chart { gap: 5px; }
  .weekly-bar-cell small { font-size: .54rem; transform: rotate(-30deg); transform-origin: center top; }
  .analytics-card { min-height: 250px; }
  .bus-attention-row { grid-template-columns: 1fr; gap: 12px; }
  .bus-attention-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bus-attention-recommendation, .bus-attention-actions { grid-column: auto; }
  .bus-attention-actions { display: grid; }
}
@media (max-width: 520px) {
  .analytics-hbar-row { grid-template-columns: minmax(90px, 1fr) 85px 22px; }
  .bus-attention-metrics { grid-template-columns: 1fr 1fr; }
  .bus-attention-metrics > div:nth-child(2) { border-right: 0; }
  .bus-attention-metrics > div:last-child { grid-column: 1 / -1; border-top: 1px solid #eee5e0; border-right: 0; padding-top: 7px; }
}

/* ============================================================
   v81 — school intervention workflow and bus trend monitoring
   ============================================================ */
.dashboard-v81 .dashboard-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dashboard-v81 .kpi-intervention .kpi-icon { background:#e7f0ec; color:#3f6f58; }
.dashboard-v81 .kpi-intervention::before { background:#4f8067; }
.intervention-heading-actions { display:flex; align-items:center; gap:12px; }
.intervention-summary-strip {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  border-bottom:1px solid var(--brand-border-soft);
  background:#fbfaf9;
}
.intervention-summary-strip > div { padding:10px 18px; border-right:1px solid var(--brand-border-soft); }
.intervention-summary-strip > div:last-child { border-right:0; }
.intervention-summary-strip span { display:block; color:#81727a; font-size:.61rem; font-weight:850; text-transform:uppercase; letter-spacing:.035em; }
.intervention-summary-strip strong { display:block; margin-top:2px; color:#4c3945; font-size:1.1rem; }
.intervention-monitoring-list { background:#fff; }
.intervention-monitoring-row {
  display:grid;
  grid-template-columns:150px minmax(130px,.7fr) minmax(190px,1fr) minmax(190px,1fr) 64px;
  gap:16px;
  align-items:center;
  padding:14px 18px;
  border-bottom:1px solid var(--brand-border-soft);
  text-decoration:none;
}
.intervention-monitoring-row:last-child { border-bottom:0; }
.intervention-monitoring-row:hover { background:#fbfaf9; }
.intervention-bus, .intervention-status, .intervention-comparison, .intervention-signal { min-width:0; }
.intervention-bus { display:grid; gap:3px; }
.intervention-bus strong { color:#493743; font-size:.95rem; }
.intervention-bus small, .intervention-status small, .intervention-comparison small, .intervention-signal small { color:#84767d; font-size:.65rem; line-height:1.3; }
.intervention-status > span, .intervention-comparison > span, .intervention-signal > span {
  display:block; margin-bottom:3px; color:#897b82; font-size:.59rem; font-weight:850; text-transform:uppercase; letter-spacing:.035em;
}
.intervention-status strong, .intervention-comparison strong, .intervention-signal strong { display:block; color:#4d3b46; font-size:.82rem; }
.signal-improving { color:#3d7659 !important; }
.signal-elevated { color:#a34a38 !important; }
.signal-monitoring { color:#74638a !important; }
.signal-resolved { color:#486979 !important; }
.follow-up-due { color:#a34a38 !important; font-weight:850; }
.intervention-open { justify-self:end; color:#9d493b; font-size:.7rem; font-weight:850; }
.start-intervention-form { margin:0; }
.start-intervention-form button { cursor:pointer; border:1px solid #cfbdb4; background:#fff; color:#8b473a; }

/* Intervention pages */
.intervention-page { max-width:1320px; }
.intervention-page-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:18px; }
.intervention-page-heading h1 { margin:.15rem 0 .35rem; }
.intervention-page-heading p:last-child { margin:0; color:var(--brand-muted); }
.intervention-page-actions { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.intervention-list-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.intervention-list-summary article { padding:15px 17px; border:1px solid var(--brand-border); border-radius:5px; background:#fff; }
.intervention-list-summary span { display:block; color:#7b6e76; font-size:.65rem; font-weight:850; text-transform:uppercase; letter-spacing:.035em; }
.intervention-list-summary strong { display:block; margin-top:5px; color:var(--brand-plum); font-size:1.65rem; }
.intervention-record-list { background:#fff; }
.intervention-record-row {
  display:grid; grid-template-columns:170px minmax(145px,.7fr) minmax(160px,.8fr) minmax(180px,1fr) 64px; gap:16px; align-items:center;
  min-height:76px; padding:13px 18px; border-bottom:1px solid var(--brand-border-soft); text-decoration:none;
}
.intervention-record-row:last-child { border-bottom:0; }
.intervention-record-row:hover { background:#fbfaf9; }
.intervention-record-row > div { display:grid; gap:3px; min-width:0; }
.intervention-record-row > div > span:not(.bus-priority-pill) { color:#897b82; font-size:.59rem; font-weight:850; text-transform:uppercase; letter-spacing:.035em; }
.intervention-record-row strong { color:#4c3945; font-size:.82rem; }
.intervention-record-row small { color:#84767d; font-size:.65rem; }
.intervention-hero-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.intervention-metric-card { min-height:125px; padding:17px; border:1px solid var(--brand-border); border-radius:5px; background:#fff; }
.intervention-metric-card > span { display:block; color:#80727a; font-size:.62rem; font-weight:850; text-transform:uppercase; letter-spacing:.035em; }
.intervention-metric-card > strong { display:block; margin:11px 0 4px; color:var(--brand-plum); font-size:2rem; line-height:1; }
.intervention-metric-card .metric-signal { font-size:1.35rem; line-height:1.12; }
.intervention-metric-card .metric-text { font-size:.95rem; line-height:1.25; }
.intervention-metric-card small { color:#7b6e76; font-size:.7rem; line-height:1.35; }
.intervention-workflow-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr); gap:16px; align-items:start; margin-bottom:18px; }
.intervention-contact-card { padding:20px; }
.intervention-form { display:grid; gap:14px; }
.intervention-form label { display:grid; gap:6px; color:#5c4a54; font-size:.74rem; font-weight:800; }
.intervention-form select, .intervention-form input, .intervention-form textarea { width:100%; }
.intervention-form-two { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.intervention-contact-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:2px 0; }
.contact-recorded, .contact-pending { font-size:.7rem; font-weight:800; }
.contact-recorded { color:#42705a; }
.contact-pending { color:#926542; }
.compact-section-title { margin-top:8px; padding-top:16px; border-top:1px solid var(--brand-border-soft); }
.follow-up-summary { min-height:68px; padding:10px 12px; border:1px solid var(--brand-border); border-radius:4px; background:#fbfaf9; display:grid; align-content:center; gap:2px; }
.follow-up-summary span { color:#897b82; font-size:.59rem; font-weight:850; text-transform:uppercase; letter-spacing:.035em; }
.follow-up-summary strong { color:#4c3945; font-size:.85rem; }
.follow-up-summary small { color:#84767d; font-size:.65rem; }
.follow-up-summary.is-due { border-color:#e3bbb2; background:#fff8f6; }
.follow-up-summary.is-due small { color:#a34a38; font-weight:850; }
.intervention-side-stack { display:grid; gap:14px; }
.intervention-side-stack .case-card { padding:18px; }
.intervention-side-stack h2 { margin:2px 0 10px; font-size:1rem; color:var(--brand-plum-dark); }
.intervention-recommendation-card p:last-child { margin:0; color:#62535c; font-size:.76rem; line-height:1.55; }
.baseline-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.baseline-detail-grid div { padding-top:9px; border-top:1px solid var(--brand-border-soft); }
.baseline-detail-grid span { display:block; color:#897b82; font-size:.58rem; font-weight:850; text-transform:uppercase; letter-spacing:.035em; }
.baseline-detail-grid strong { display:block; margin-top:3px; color:#4c3945; font-size:.76rem; line-height:1.35; }
.intervention-incident-list { background:#fff; }
.intervention-incident-row { display:grid; grid-template-columns:140px 110px 170px minmax(260px,1fr) 60px; gap:14px; align-items:center; min-height:58px; padding:10px 18px; border-bottom:1px solid var(--brand-border-soft); text-decoration:none; }
.intervention-incident-row:last-child { border-bottom:0; }
.intervention-incident-row:hover { background:#fbfaf9; }
.intervention-incident-row strong { color:#4d3945; font-size:.75rem; }
.intervention-incident-row span { color:#687684; font-size:.7rem; line-height:1.35; }
.intervention-incident-row b { color:#9d493b; font-size:.68rem; text-align:right; }
.warning-help { color:#946441 !important; }

@media (max-width:1120px) {
  .dashboard-v81 .dashboard-kpis { grid-template-columns:repeat(4,1fr); }
  .intervention-monitoring-row { grid-template-columns:130px 1fr 1fr 1fr; }
  .intervention-open { display:none; }
  .intervention-hero-grid { grid-template-columns:1fr 1fr; }
  .intervention-workflow-grid { grid-template-columns:1fr; }
  .intervention-record-row { grid-template-columns:150px 1fr 1fr 1fr; }
  .intervention-record-row .intervention-open { display:none; }
}
@media (max-width:800px) {
  .dashboard-v81 .dashboard-kpis { grid-template-columns:repeat(2,1fr); }
  .intervention-summary-strip { grid-template-columns:1fr 1fr 1fr; }
  .intervention-monitoring-row, .intervention-record-row { grid-template-columns:1fr 1fr; }
  .intervention-bus { grid-column:1 / -1; }
  .intervention-page-heading { flex-direction:column; }
  .intervention-list-summary { grid-template-columns:1fr 1fr 1fr; }
  .intervention-incident-row { grid-template-columns:1fr 1fr; }
  .intervention-incident-row span:nth-of-type(2) { grid-column:1 / -1; }
  .intervention-incident-row span:nth-of-type(3) { grid-column:1 / -1; }
  .intervention-incident-row b { text-align:left; }
}
@media (max-width:560px) {
  .dashboard-v81 .dashboard-kpis, .intervention-hero-grid, .intervention-list-summary, .intervention-form-two { grid-template-columns:1fr; }
  .intervention-summary-strip { grid-template-columns:1fr; }
  .intervention-summary-strip > div { border-right:0; border-bottom:1px solid var(--brand-border-soft); }
  .intervention-summary-strip > div:last-child { border-bottom:0; }
  .intervention-monitoring-row, .intervention-record-row { grid-template-columns:1fr; gap:10px; }
  .intervention-bus { grid-column:auto; }
  .baseline-detail-grid { grid-template-columns:1fr; }
}

/* ============================================================
   v82 — clearer weekly trend + automatic 6-incident school alerts
   ============================================================ */
.analytics-trend-card-v82 { min-height: 292px; }
.trend-summary-row {
  display:grid;
  grid-template-columns:110px 125px minmax(180px,1fr);
  gap:10px;
  margin:-4px 0 12px;
}
.trend-summary-row > div {
  min-width:0;
  padding:8px 10px;
  border:1px solid var(--brand-border-soft);
  border-radius:4px;
  background:#fbfaf9;
}
.trend-summary-row span {
  display:block;
  color:#8a7b82;
  font-size:.56rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.trend-summary-row strong {
  display:block;
  margin-top:3px;
  color:#4f3d48;
  font-size:.82rem;
  line-height:1.25;
}
.trend-summary-row > div:not(.trend-comparison) strong { font-size:1.05rem; }
.trend-comparison.trend-up strong { color:#a14b3b; }
.trend-comparison.trend-down strong { color:#3e7458; }
.trend-comparison.trend-flat strong { color:#6f6470; }
.weekly-chart-shell {
  position:relative;
  height:157px;
  padding-top:3px;
}
.weekly-chart-grid {
  position:absolute;
  inset:7px 0 27px 0;
  display:grid;
  grid-template-rows:repeat(4,1fr);
  pointer-events:none;
}
.weekly-chart-grid span { border-top:1px dashed #e8dfda; }
.weekly-chart-grid span:last-child { border-bottom:1px solid #ddd3ce; }
.weekly-bar-chart-v82 {
  position:relative;
  z-index:1;
  height:100%;
  padding:0 3px;
}
.weekly-bar-chart-v82 .weekly-bar-cell {
  grid-template-rows:18px minmax(0,1fr) 31px;
  gap:3px;
}
.weekly-bar-chart-v82 .weekly-bar-track {
  min-height:80px;
  background:transparent;
  border-bottom:0;
  overflow:visible;
}
.weekly-bar-chart-v82 .weekly-bar-track i {
  width:min(70%,38px);
  min-height:3px;
  border-radius:4px 4px 1px 1px;
  box-shadow:0 1px 1px rgba(65,45,57,.08);
}
.weekly-bar-chart-v82 .weekly-bar-cell.is-current .weekly-bar-track i {
  outline:2px solid rgba(122,74,105,.18);
  outline-offset:2px;
}
.weekly-bar-chart-v82 .weekly-bar-cell.is-current .weekly-bar-value { color:var(--brand-plum); }
.weekly-bar-chart-v82 .weekly-bar-cell small {
  display:grid;
  gap:1px;
  align-content:start;
  color:#81727a;
  font-size:.59rem;
}
.weekly-bar-chart-v82 .weekly-bar-cell small b {
  color:var(--brand-plum);
  font-size:.49rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.chart-flag.priority { background:#f9e2dc; color:#983d30; }

.threshold-alert-panel { margin-bottom:18px; }
.threshold-email-config-warning {
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  border-bottom:1px solid #ead7c8;
  background:#fff8ef;
  color:#825c3f;
  font-size:.7rem;
}
.threshold-email-config-warning strong { color:#754b2f; }
.threshold-alert-list { background:#fff; }
.threshold-alert-row {
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(190px,1fr) minmax(220px,1.2fr) 125px;
  gap:16px;
  align-items:center;
  padding:13px 18px;
  border-bottom:1px solid var(--brand-border-soft);
}
.threshold-alert-row:last-child { border-bottom:0; }
.threshold-alert-row > div { min-width:0; display:grid; gap:2px; }
.threshold-alert-row > div > span {
  color:#897b82;
  font-size:.57rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.threshold-alert-row strong { color:#4d3945; font-size:.77rem; line-height:1.3; }
.threshold-alert-row small { color:#81737a; font-size:.64rem; line-height:1.35; overflow-wrap:anywhere; }
.threshold-alert-row.status-sent { box-shadow:inset 4px 0 0 #4f8067; }
.threshold-alert-row.status-failed { box-shadow:inset 4px 0 0 #b44e3d; }
.threshold-alert-row.status-pending,
.threshold-alert-row.status-no_contact { box-shadow:inset 4px 0 0 #b38647; }
.threshold-alert-row form { margin:0; justify-self:start; }
.threshold-sent-check { justify-self:start; color:#3f7357; font-size:.7rem; font-weight:900; }

@media (max-width:900px) {
  .trend-summary-row { grid-template-columns:1fr 1fr; }
  .trend-comparison { grid-column:1 / -1; }
  .threshold-alert-row { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
  .trend-summary-row { grid-template-columns:1fr; }
  .trend-comparison { grid-column:auto; }
  .weekly-chart-shell { height:175px; }
  .weekly-bar-chart-v82 .weekly-bar-cell small { transform:none; font-size:.5rem; }
  .threshold-email-config-warning { align-items:flex-start; flex-direction:column; gap:3px; }
  .threshold-alert-row { grid-template-columns:1fr; gap:10px; }
}

/* v83 — quieter Setup center + Transportation Directory */
.setup-page-v83 .setup-summary-v83 {
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-bottom:14px;
}
.setup-page-v83 .setup-summary-v83 .setup-summary-item {
  min-height:72px;
  padding:14px 16px;
}
.setup-page-v83 .setup-summary-v83 .setup-summary-item strong {
  font-size:.95rem;
}
.setup-page-v83 .setup-tabs-v83 {
  position:sticky;
  top:72px;
  z-index:12;
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  padding:10px;
  margin:0 0 18px;
  border:1px solid var(--brand-border-soft);
  border-radius:14px;
  background:rgba(255,255,255,.96);
  box-shadow:0 8px 20px rgba(74,52,63,.06);
}
.setup-page-v83 .setup-tabs-v83 a {
  padding:9px 13px;
  border-radius:9px;
  color:#695963;
  font-size:.72rem;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
}
.setup-page-v83 .setup-tabs-v83 a:hover { background:#f6f0f3; color:var(--brand-plum); }
.setup-page-v83 .setup-tabs-v83 a.is-active {
  background:var(--brand-plum);
  color:#fff;
}
.setup-page-v83 [data-setup-panel] { display:none; }
.setup-page-v83 [data-setup-panel].is-active { display:block; }
.setup-page-v83 .setup-section-block { margin-top:0; }
.setup-page-v83 .setup-section-header { margin-bottom:14px; }
.setup-page-v83 .setup-import-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.setup-page-v83 .setup-import-card { min-height:0; }
.email-config-list { display:grid; gap:0; margin-top:4px; }
.email-config-list > div {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:11px 0;
  border-bottom:1px solid var(--brand-border-soft);
}
.email-config-list > div:last-child { border-bottom:0; }
.email-config-list span { color:#857780; font-size:.68rem; font-weight:750; }
.email-config-list strong { color:#4d3b46; font-size:.72rem; text-align:right; overflow-wrap:anywhere; }
.test-email-form button:disabled { opacity:.5; cursor:not-allowed; }

.directory-page-v83 { padding-bottom:48px; }
.directory-heading { margin-bottom:16px; }
.directory-search-card {
  padding:16px 18px;
  margin-bottom:18px;
  border:1px solid var(--brand-border-soft);
  border-radius:15px;
  background:#fff;
  box-shadow:0 8px 22px rgba(72,52,63,.06);
}
.directory-search-card > label {
  display:block;
  margin-bottom:8px;
  color:#5e4a56;
  font-size:.68rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.directory-search-row {
  display:flex;
  align-items:center;
  gap:9px;
  padding:0 13px;
  border:1px solid #d9ced4;
  border-radius:10px;
  background:#fbf9fa;
}
.directory-search-row > span { color:#8b7682; font-size:1.05rem; }
.directory-search-row input {
  width:100%;
  height:44px;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  box-shadow:none;
}
.directory-section {
  margin-bottom:18px;
  border:1px solid var(--brand-border-soft);
  border-radius:16px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 8px 22px rgba(72,52,63,.05);
}
.directory-section-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:18px 20px 14px;
  border-bottom:1px solid var(--brand-border-soft);
}
.directory-section-header h2 { margin:2px 0 3px; }
.directory-section-header p { margin:0; }
.directory-section .setup-table-wrap { border:0; border-radius:0; box-shadow:none; margin:0; }
.directory-contact-link { color:var(--brand-plum); text-decoration:none; font-weight:700; }
.directory-contact-link:hover { text-decoration:underline; }
.directory-school-grid { padding:18px; }
.directory-filter-row[hidden] { display:none !important; }

@media (max-width:900px) {
  .setup-page-v83 .setup-summary-v83 { grid-template-columns:1fr 1fr; }
  .setup-page-v83 .setup-import-grid { grid-template-columns:1fr; }
  .setup-page-v83 .setup-tabs-v83 { top:62px; overflow-x:auto; flex-wrap:nowrap; }
}
@media (max-width:600px) {
  .setup-page-v83 .setup-summary-v83 { grid-template-columns:1fr; }
  .directory-section-header { flex-direction:column; }
  .directory-school-grid { padding:12px; }
}

/* v85 — fully automatic bus-threshold delivery status */
.threshold-auto-wait { justify-self:start; color:#8a6a2e; font-size:.7rem; font-weight:850; }

/* ============================================================
   v86 — quieter dashboard, action modal, compact workflow controls
   ============================================================ */

/* Header action notifications */
.notification-bell-button {
  position: relative;
  width: 58px;
  min-width: 58px;
  padding: 0;
  border: 0;
  border-left: 1px solid rgba(255,255,255,.12);
  background: transparent;
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: none;
  border-radius: 0;
}
.notification-bell-button:hover { background: rgba(255,255,255,.055); filter: none; }
.notification-bell-button svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.notification-bell-button.has-notifications svg { stroke-width: 2; }
.notification-badge {
  position: absolute;
  top: 9px;
  right: 8px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--app-header);
  border-radius: 999px;
  background: #c34f3c;
  color: #fff;
  font-size: .58rem;
  font-weight: 900;
  line-height: 1;
}
body.notification-modal-open { overflow: hidden; }
.action-notification-modal { position: fixed; inset: 0; z-index: 180; }
.action-notification-modal[hidden] { display: none; }
.action-notification-backdrop { position: absolute; inset: 0; background: rgba(24,18,22,.48); backdrop-filter: blur(2px); }
.action-notification-dialog {
  position: relative;
  width: min(720px, calc(100% - 32px));
  max-height: min(760px, calc(100vh - 60px));
  margin: 30px auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #d9ced3;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(34,22,29,.28);
}
.action-notification-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  padding: 22px 24px 18px;
  border-bottom: 1px solid var(--brand-border-soft);
}
.action-notification-header h2 { margin: 2px 0 4px; color: var(--brand-plum-dark); font-size: 1.35rem; }
.action-notification-header p:last-child { margin: 0; color: var(--brand-muted); font-size: .75rem; }
.action-notification-close {
  width: 36px;
  min-width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid #dacdd3;
  border-radius: 50%;
  background: #fff;
  color: #684d5d;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}
.action-notification-list { overflow-y: auto; padding: 8px 0; }
.action-notification-item {
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) auto;
  gap: 13px;
  align-items: center;
  padding: 15px 20px;
  border-bottom: 1px solid var(--brand-border-soft);
}
.action-notification-item:last-child { border-bottom: 0; }
.action-notification-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #f8efe3;
  color: #8d6330;
  font-weight: 900;
}
.action-notification-item.severity-error .action-notification-icon { background: #fae9e5; color: #a64233; }
.action-notification-copy { min-width: 0; display: grid; gap: 3px; }
.action-notification-copy strong { color: #4d3945; font-size: .83rem; line-height: 1.25; }
.action-notification-copy span { color: #665762; font-size: .73rem; line-height: 1.35; }
.action-notification-copy small { color: #8a7a82; font-size: .64rem; line-height: 1.35; overflow-wrap: anywhere; }
.action-notification-form { margin: 0; }
.action-notification-empty { min-height: 190px; padding: 28px; display: grid; place-items: center; align-content: center; gap: 6px; text-align: center; }
.action-notification-empty strong { color: #4e3b46; font-size: .95rem; }
.action-notification-empty span { max-width: 480px; color: #80737a; font-size: .74rem; line-height: 1.5; }
.action-notification-empty.is-error strong { color: #9a4437; }
.action-notification-loading { padding: 42px 24px; color: #81737a; text-align: center; font-size: .76rem; }
.action-notification-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 20px;
  border-top: 1px solid var(--brand-border-soft);
  background: #fbfaf9;
}
.action-notification-footer a { color: #7d405f; font-size: .72rem; font-weight: 800; text-decoration: none; }
.action-notification-footer button { min-height: 36px; padding: 7px 13px; }

/* Evidence exceptions are a compact outcome control, not two large cards. */
.evidence-resolution-compact {
  display: grid;
  grid-template-columns: minmax(190px,.8fr) auto;
  gap: 8px 18px;
  align-items: center;
  padding: 12px 22px;
  border-top: 1px solid var(--brand-border-soft);
  border-bottom: 1px solid var(--brand-border-soft);
  background: #fbfcfd;
}
.evidence-resolution-label { display: grid; gap: 2px; }
.evidence-resolution-label strong { color: #30445d; font-size: .78rem; }
.evidence-resolution-label span { color: #677b94; font-size: .68rem; line-height: 1.35; }
.evidence-resolution-compact-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.evidence-resolution-chip {
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid #c8d5e5;
  border-radius: 6px;
  background: #fff;
  color: #344961;
  font-size: .72rem;
  font-weight: 850;
  cursor: pointer;
}
.evidence-resolution-chip:hover { border-color: #9eb2c9; background: #f7fafc; }
.evidence-resolution-chip.selected { border-color: #6c3a55; background: #6c3a55; color: #fff; }
.evidence-resolution-help {
  grid-column: 1 / -1;
  margin: 0;
  color: #6c7c90;
  font-size: .66rem;
  line-height: 1.4;
}

/* Suspension calculator alignment */
.suspension-calculator-v79 { padding-top: 12px; }
.suspension-calculator-v79 .suspension-calculator-head { margin-bottom: 11px; }
.suspension-calculator-v79 .suspension-calculator-grid { grid-template-columns: minmax(250px,.9fr) minmax(480px,1.5fr); gap: 10px 18px; }
.suspension-calculator-v79 .suspension-day-options { gap: 7px; flex-wrap: nowrap; }
.suspension-calculator-v79 .suspension-day-button { min-width: 78px; min-height: 48px; height: 48px; padding: 0 13px; }
.suspension-custom-wrap {
  min-height: 48px;
  height: 48px;
  min-width: 148px;
  padding: 0 0 0 12px;
  gap: 9px;
  overflow: hidden;
  cursor: text;
}
.suspension-custom-wrap > span { white-space: nowrap; }
.suspension-custom-wrap input {
  width: 70px !important;
  min-width: 70px !important;
  min-height: 46px !important;
  height: 46px !important;
  margin-left: auto;
  padding: 5px 6px !important;
  border: 0 !important;
  border-left: 1px solid #d4dee9 !important;
  border-radius: 0 !important;
  background: #f9fbfd !important;
  box-shadow: none !important;
  text-align: center;
  font-size: .72rem !important;
}
.suspension-custom-wrap:focus-within { border-color: #9fb3c9; box-shadow: 0 0 0 2px rgba(103,52,79,.06); }
.suspension-custom-wrap.active { border-color: #67344f; background: #67344f; color: #fff; box-shadow: 0 0 0 2px rgba(103,52,79,.08); }
.suspension-custom-wrap.active input { background: #fff !important; color: #2f3f54 !important; }
.suspension-calculator-v79 .suspension-result-card { min-height: 68px; padding: 10px 14px; }

/* Sequential School -> Driver notification workflow */
.notification-stage-shell { display: grid; gap: 12px; }
.notification-stage-tabs {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 1px solid #e0d8dc;
  border-radius: 9px;
  background: #fbfaf9;
}
.notification-stage-tab {
  flex: 1;
  min-height: 54px;
  padding: 8px 12px;
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 9px;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #67545f;
  text-align: left;
  cursor: pointer;
  box-shadow: none;
}
.notification-stage-tab:hover { background: #fff; border-color: #e1d6dc; filter: none; }
.notification-stage-tab.active { background: #fff; border-color: #cdbbc4; box-shadow: 0 2px 8px rgba(69,48,59,.06); }
.notification-stage-number { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: #eee5e9; color: #6d4159; font-size: .7rem; font-weight: 900; }
.notification-stage-tab.active .notification-stage-number { background: #67344f; color: #fff; }
.notification-stage-tab > span:nth-child(2) { display: grid; gap: 2px; }
.notification-stage-tab strong { color: #493743; font-size: .78rem; }
.notification-stage-tab small { color: #8a7b82; font-size: .61rem; }
.stage-check { color: #47715b; font-size: .88rem; }
.notification-stage-arrow { color: #9b8c93; font-weight: 900; }
.notification-stage-panel {
  padding: 17px 18px;
  border: 1px solid #d8e0e9;
  border-radius: 7px;
  background: #fff;
}
.notification-stage-panel[hidden] { display: none; }
.compact-notification-head { margin-bottom: 7px; }
.notification-match-summary {
  margin: 12px 0;
  padding: 10px 12px;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  border: 1px solid #d8e3dc;
  border-radius: 6px;
  background: #f8fbf9;
}
.notification-match-summary > div { min-width: 0; display: grid; gap: 2px; }
.notification-match-summary span { color: #718078; font-size: .58rem; font-weight: 850; text-transform: uppercase; letter-spacing: .035em; }
.notification-match-summary strong { color: #3e594a; font-size: .76rem; }
.notification-match-summary small { color: #68786f; font-size: .67rem; overflow-wrap: anywhere; }
.notification-match-summary > b { flex: 0 0 auto; padding: 4px 8px; border-radius: 999px; background: #e8f0eb; color: #4c705a; font-size: .6rem; }
.notification-recipient-override { margin: 11px 0; border: 1px solid #e4dde0; border-radius: 6px; background: #fcfbfb; }
.notification-recipient-override summary { cursor: pointer; padding: 9px 11px; color: #684e5d; font-size: .7rem; font-weight: 850; }
.notification-recipient-override summary span { margin-left: 5px; color: #8a7b82; font-weight: 500; }
.notification-override-grid { padding: 0 11px 11px; }
.notification-override-grid.always-visible { padding: 4px 0 0; margin-bottom: 10px; }
.notification-core-fields { margin-top: 10px; }
.notification-sequence-note { margin: 11px 0; padding: 9px 11px; display: grid; gap: 2px; border-left: 3px solid #c18a4c; background: #fff9f1; }
.notification-sequence-note strong { color: #78542f; font-size: .71rem; }
.notification-sequence-note span { color: #806d59; font-size: .65rem; }
.compact-notification-form .notification-actions { margin-top: 12px; }

@media (max-width: 900px) {
  .suspension-calculator-v79 .suspension-calculator-grid { grid-template-columns: 1fr; }
  .suspension-calculator-v79 .suspension-day-options { flex-wrap: wrap; }
  .action-notification-item { grid-template-columns: 34px 1fr; }
  .action-notification-item > .compact-action,
  .action-notification-item > form { grid-column: 2; }
}
@media (max-width: 680px) {
  .notification-bell-button { width: 46px; min-width: 46px; }
  .action-notification-dialog { width: min(100% - 18px,720px); max-height: calc(100vh - 24px); margin: 12px auto; }
  .action-notification-header { padding: 18px 17px 14px; }
  .action-notification-item { padding: 13px 15px; }
  .action-notification-footer { padding: 11px 15px; }
  .evidence-resolution-compact { grid-template-columns: 1fr; padding: 11px 14px; }
  .evidence-resolution-compact-actions { justify-content: flex-start; }
  .notification-stage-tabs { gap: 5px; padding: 7px; }
  .notification-stage-arrow { display: none; }
  .notification-stage-tab { min-height: 50px; padding: 7px 8px; grid-template-columns: 25px 1fr auto; }
  .notification-stage-number { width: 25px; height: 25px; }
  .notification-stage-panel { padding: 14px; }
}

/* ========================= v87 ========================= */
/* Compact student finder: one operational toolbar above analytics. */
.student-finder-compact {
  margin: 14px 0 16px;
  padding: 12px 14px;
  border: 1px solid var(--line, #dfe4ea);
  border-radius: 14px;
  background: var(--surface, #fff);
  box-shadow: 0 4px 14px rgba(18, 31, 53, .05);
}
.student-finder-compact .student-finder-heading.compact {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 0 0 8px;
}
.student-finder-compact .student-finder-heading.compact strong { font-size: .92rem; }
.student-finder-compact .student-finder-heading.compact span { color: var(--muted, #667085); font-size: .78rem; }
.student-finder-compact .student-finder-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
}
.student-finder-compact .student-finder-form input,
.student-finder-compact .student-finder-form button { min-height: 38px; }
.student-finder-compact .student-search-results { margin-top: 10px; }

/* Recent-case SLA progress is intentionally thin: useful status, not a second dashboard. */
.recent-case-row { align-items: center; }
.recent-case-status-block { min-width: 155px; display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.case-sla { width: 150px; display: grid; gap: 3px; }
.case-sla > span { font-size: .68rem; color: var(--muted, #667085); text-align: right; white-space: nowrap; }
.case-sla-track { width: 100%; height: 4px; border-radius: 99px; overflow: hidden; background: #e9edf2; }
.case-sla-track i { display: block; height: 100%; border-radius: inherit; background: #5079a8; }
.case-sla-due .case-sla-track i { background: #b7791f; }
.case-sla-overdue .case-sla-track i { background: #b42318; }
.case-sla-complete .case-sla-track i { background: #418663; }
.case-sla-overdue > span { color: #9b2c2c; font-weight: 700; }

/* Delete confirmation is a true modal and remains visible regardless of page length. */
body.case-delete-modal-open { overflow: hidden; }
.case-delete-modal { position: fixed; inset: 0; z-index: 2200; display: grid; place-items: center; padding: 20px; }
.case-delete-modal-backdrop { position: absolute; inset: 0; border: 0; background: rgba(18, 26, 38, .58); cursor: default; }
.case-delete-dialog { position: relative; z-index: 1; width: min(620px, 96vw); max-height: 88vh; overflow: auto; padding: 24px; border-radius: 18px; background: #fff; box-shadow: 0 24px 80px rgba(0,0,0,.28); }
.case-delete-dialog h2 { margin: 2px 0 6px; }
.case-delete-intro { margin: 0 0 14px; color: #475467; }
.case-delete-audit-notice { display: grid; gap: 4px; padding: 12px 14px; margin: 14px 0 16px; border: 1px solid #f0c7c3; border-radius: 12px; background: #fff7f6; }
.case-delete-audit-notice strong { color: #8f251e; }
.case-delete-audit-notice span { color: #5f3a36; font-size: .83rem; line-height: 1.45; }
.case-delete-confirm-form { display: grid; gap: 12px; }
.case-delete-confirm-form label { display: grid; gap: 6px; font-weight: 700; font-size: .82rem; }
.case-delete-confirm-form select, .case-delete-confirm-form textarea { width: 100%; }
.case-delete-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.danger-button { border: 1px solid #b42318; background: #b42318; color: #fff; border-radius: 9px; padding: 9px 14px; font-weight: 700; }

/* AI Incident Assistant */
.ai-assistant-card { border-top: 3px solid #6b77a8; }
.ai-assistant-head { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.ai-assistant-head h2 { margin: 2px 0 4px; }
.ai-assistant-head p:last-child { margin: 0; color: #667085; }
.ai-status { flex: 0 0 auto; padding: 5px 9px; border-radius: 99px; font-size: .72rem; font-weight: 800; }
.ai-status.ready { background: #eaf7f0; color: #21724c; }
.ai-status.working { background: #eef4fb; color: #305f8f; }
.ai-status.failed { background: #fff1ef; color: #9b2c2c; }
.ai-status.off { background: #f2f4f7; color: #667085; }
.ai-result-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(240px, .6fr); gap: 14px; margin-top: 16px; }
.ai-refined-copy, .ai-policy-summary { border: 1px solid #e4e7ec; border-radius: 12px; background: #fafbfc; padding: 14px; }
.ai-refined-copy > span, .ai-policy-summary span, .ai-suggestions > span { display: block; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #667085; }
.ai-refined-copy p { margin: 7px 0 0; line-height: 1.55; }
.ai-policy-summary { display: grid; gap: 10px; }
.ai-policy-summary div { display: grid; gap: 2px; }
.ai-policy-summary strong { font-size: .9rem; }
.ai-policy-summary small { color: #667085; }
.ai-suggestions { margin-top: 12px; display: grid; gap: 8px; }
.ai-suggestions > div { display: flex; flex-wrap: wrap; gap: 6px; }
.ai-suggestions b { padding: 5px 8px; border-radius: 8px; background: #eef2f8; font-size: .74rem; }
.ai-why { margin-top: 10px; }
.ai-why p { color: #475467; line-height: 1.5; }
.ai-needs-info { margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: #fff8e8; }
.ai-needs-info ul { margin: 6px 0 0 18px; }
.ai-empty-state { display: grid; gap: 4px; padding: 14px; margin-top: 14px; border-radius: 12px; background: #f7f8fa; }
.ai-empty-state span { color: #667085; }
.ai-assistant-actions { display: flex; gap: 12px; align-items: center; margin-top: 14px; }
.ai-disclaimer { margin: 14px 0 0; font-size: .74rem; color: #667085; line-height: 1.45; }
.inline-error { padding: 9px 12px; margin-top: 10px; border-radius: 8px; background: #fff1ef; color: #912018; }

/* Bus intervention school acknowledgment. */
.school-ack-card { scroll-margin-top: 80px; }
.school-ack-head { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.school-ack-head h2 { margin: 2px 0 0; }
.ack-status { padding: 5px 9px; border-radius: 99px; font-size: .7rem; font-weight: 800; white-space: nowrap; }
.ack-status.acknowledged { background: #eaf7f0; color: #21724c; }
.ack-status.pending { background: #fff7e6; color: #8a5b13; }
.ack-summary { display: grid; gap: 4px; padding: 12px; margin-top: 12px; border-radius: 10px; background: #f4faf7; }
.ack-summary span { color: #667085; font-size: .78rem; }
.ack-summary p { margin: 5px 0 0; }
.ack-link-note { display: grid; gap: 2px; padding: 9px 10px; margin: 10px 0; border-radius: 9px; background: #eef5fb; }
.ack-link-note span { color: #667085; font-size: .76rem; }
.manual-ack-form { display: grid; gap: 10px; margin-top: 12px; }

/* Public school acknowledgment page. */
.public-ack-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: #f3f5f8; }
.public-ack-card { width: min(600px, 96vw); background: #fff; border: 1px solid #e4e7ec; border-radius: 20px; box-shadow: 0 18px 50px rgba(18,31,53,.12); padding: 28px; }
.public-ack-card h1 { margin: 4px 0 10px; }
.public-ack-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: #eaf7f0; color: #21724c; font-size: 1.6rem; font-weight: 900; }
.public-ack-summary { display: grid; grid-template-columns: auto 1fr; gap: 7px 14px; margin: 18px 0; padding: 12px; border-radius: 10px; background: #f7f8fa; }
.public-ack-summary span { color: #667085; }
.public-ack-form { display: grid; gap: 12px; }
.public-ack-form label { display: grid; gap: 6px; font-weight: 700; }

/* Deleted-case audit */
.audit-retention-banner { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; margin-bottom: 14px; border: 1px solid #e4e7ec; border-radius: 12px; background: #f8fafc; }
.audit-retention-banner span { color: #667085; font-size: .82rem; line-height: 1.4; }
.audit-retained { display: inline-flex; padding: 4px 7px; border-radius: 99px; background: #eaf7f0; color: #21724c; font-size: .72rem; font-weight: 800; }
.page-heading-actions { display: flex; gap: 10px; align-items: center; }

/* Integration settings */
.integration-toggle { display: flex !important; align-items: flex-start; gap: 9px; }
.integration-toggle > span { display: grid; gap: 2px; }
.integration-toggle small { color: #667085; font-weight: 400; }

@media (max-width: 800px) {
  .student-finder-compact .student-finder-heading.compact { display: grid; gap: 2px; }
  .student-finder-compact .student-finder-form { grid-template-columns: 1fr auto; }
  .student-finder-compact .student-search-clear { grid-column: 1 / -1; }
  .ai-result-grid { grid-template-columns: 1fr; }
  .recent-case-status-block { width: 100%; min-width: 0; align-items: stretch; }
  .case-sla { width: 100%; }
  .case-sla > span { text-align: left; }
  .page-heading-actions { width: 100%; flex-wrap: wrap; }
}

/* ========================= v88 ========================= */
/* Incident case overview: keep student + transportation together, then a compact workflow snapshot. */
.case-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.05fr) minmax(300px, .72fr);
  gap: 14px;
  align-items: stretch;
  margin-bottom: 14px;
}
.case-overview-grid > .case-card { margin: 0; min-width: 0; height: 100%; }
.case-overview-student { grid-template-columns: 190px minmax(0, 1fr); gap: 20px; }
.case-overview-student .student-photo-wrap { width: 190px; min-height: 230px; }
.case-overview-student .student-profile-heading { margin-bottom: 12px; }
.case-overview-student .student-profile-details { margin-bottom: 12px; }
.transportation-summary-card { display: flex; flex-direction: column; }
.overview-card-heading { margin-bottom: 12px; }
.overview-card-heading h2 { margin: 2px 0 0; }
.transportation-summary-list { display: grid; gap: 0; margin: 0; }
.transportation-summary-list > div {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--brand-border-soft, #e8e2de);
}
.transportation-summary-list > div:last-child { border-bottom: 0; }
.transportation-summary-list dt { color: var(--brand-muted, #667085); }
.transportation-summary-list dd { margin: 0; color: var(--brand-plum-dark, #362b33); font-weight: 750; overflow-wrap: anywhere; }
.case-tracking-card { margin-bottom: 14px; padding: 0; overflow: hidden; }
.case-tracking-heading { padding: 14px 16px 9px; margin: 0; border-bottom: 1px solid var(--brand-border-soft, #e8e2de); }
.case-tracking-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  margin: 0;
  background: #fff;
}
.case-tracking-grid > div { min-width: 0; padding: 11px 13px; border-right: 1px solid var(--brand-border-soft, #e8e2de); }
.case-tracking-grid > div:last-child { border-right: 0; }
.case-tracking-grid dt { color: var(--brand-muted, #667085); font-size: .67rem; font-weight: 800; text-transform: uppercase; letter-spacing: .035em; }
.case-tracking-grid dd { margin: 4px 0 0; color: var(--brand-plum-dark, #362b33); font-size: .82rem; font-weight: 800; overflow-wrap: anywhere; }

/* Recent Cases: the SLA/status column must always remain inside the card. */
.recent-panel { overflow: hidden; }
.recent-case-row {
  width: 100%;
  box-sizing: border-box;
  grid-template-columns: minmax(125px, .82fr) minmax(140px, 1fr) minmax(135px, .88fr) minmax(155px, 1fr) minmax(145px, .82fr);
  gap: 12px;
  overflow: hidden;
}
.recent-case-row > div { min-width: 0; }
.recent-case-id strong,
.recent-student strong,
.recent-school,
.recent-bus-date { overflow-wrap: anywhere; }
.recent-bus-date { white-space: normal; }
.recent-case-status-block { width: 100%; min-width: 0; align-items: stretch; overflow: hidden; }
.recent-case-status-block .status-pill { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.case-sla { width: 100%; min-width: 0; }
.case-sla > span { width: 100%; white-space: normal; text-align: left; line-height: 1.2; }

/* Page-level save/success/error messages now appear as centered transient modals instead of page-top banners. */
body.page-message-modal-open { overflow: hidden; }
.page-message-modal { position: fixed; inset: 0; z-index: 2600; display: grid; place-items: center; padding: 18px; }
.page-message-modal-backdrop { position: absolute; inset: 0; border: 0; background: rgba(26, 20, 24, .52); cursor: default; }
.page-message-dialog {
  position: relative;
  z-index: 1;
  width: min(520px, calc(100vw - 36px));
  max-height: calc(100vh - 48px);
  overflow: auto;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 14px;
  padding: 22px;
  border: 1px solid var(--brand-border, #d8ccc6);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(35, 24, 30, .28);
}
.page-message-icon { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-size: 1.2rem; font-weight: 900; }
.page-message-dialog.is-success .page-message-icon { background: #e8f6ee; color: #24724a; }
.page-message-dialog.is-error .page-message-icon { background: #fff0ee; color: #a12d24; }
.page-message-copy { min-width: 0; }
.page-message-copy h2 { margin: 1px 0 6px; font-size: 1.15rem; }
.page-message-copy p { margin: 0; color: #596878; line-height: 1.5; overflow-wrap: anywhere; }
.page-message-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 9px; padding-top: 4px; }

@media (max-width: 1120px) {
  .case-overview-grid { grid-template-columns: minmax(0, 1.7fr) minmax(270px, .7fr); }
  .case-overview-student { grid-template-columns: 165px minmax(0, 1fr); }
  .case-overview-student .student-photo-wrap { width: 165px; min-height: 210px; }
  .case-tracking-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .case-tracking-grid > div { border-bottom: 1px solid var(--brand-border-soft, #e8e2de); }
  .case-tracking-grid > div:nth-child(4n) { border-right: 0; }
  .recent-case-row { grid-template-columns: minmax(125px,.85fr) minmax(145px,1fr) minmax(145px,.9fr) minmax(145px,.9fr); }
  .recent-school { display: none !important; }
}
@media (max-width: 820px) {
  .case-overview-grid { grid-template-columns: 1fr; }
  .transportation-summary-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
  .case-tracking-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-tracking-grid > div:nth-child(2n) { border-right: 0; }
  .recent-case-row { grid-template-columns: minmax(120px,.85fr) minmax(140px,1fr) minmax(135px,.9fr); }
  .recent-case-status-block { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .case-overview-student { grid-template-columns: 1fr; }
  .case-overview-student .student-photo-wrap { width: 150px; height: 188px; min-height: 188px; }
  .transportation-summary-list { grid-template-columns: 1fr; }
  .case-tracking-grid { grid-template-columns: 1fr; }
  .case-tracking-grid > div { border-right: 0; }
  .recent-case-row { grid-template-columns: 1fr; gap: 5px; }
  .recent-case-status-block { grid-column: auto; margin-top: 5px; }
  .page-message-dialog { grid-template-columns: 40px minmax(0, 1fr); padding: 18px; }
  .page-message-icon { width: 40px; height: 40px; }
  .page-message-actions { flex-direction: column-reverse; }
  .page-message-actions > * { width: 100%; text-align: center; }
}
/* Prevent the created/deleted confirmation banner from flashing before the modal script opens. */
.success-alert[data-modal-title], .alert.wide-alert[data-modal-title] { display: none !important; }

/* ========================= v90 ========================= */
/* Setup overview: five status tiles should remain one clean row on wide screens. */
.setup-page-v83 .setup-summary-v83 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.setup-page-v83 .setup-summary-v83 .setup-summary-item:last-child { border-right: 0; }

/* Email configuration is now editable from Setup. */
.email-setup-grid { align-items: start; }
.mail-settings-form { display: grid; gap: 12px; }
.mail-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) 110px minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  align-items: end;
}
.mail-form-grid .field { min-width: 0; margin: 0; }
.mail-form-grid .field input,
.mail-form-grid .field select { width: 100%; min-width: 0; }
.mail-form-grid .mail-host { grid-column: span 1; }
.mail-form-grid .mail-port { max-width: 130px; }
.mail-form-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.mail-secret-note { color: #7d7078; font-size: .72rem; }
.compact-check { display: inline-flex; align-items: center; gap: 7px; color: #6d5c66; font-size: .75rem; font-weight: 700; }
.compact-check input { width: auto; }
.compact-email-status { margin-bottom: 14px; }
.incoming-mail-panel { margin-top: 16px; }
.incoming-mail-panel .setup-panel-title { align-items: flex-start; }
.optional-tag {
  display: inline-block;
  margin-left: 7px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #f5f0f2;
  color: #765f6d;
  font-size: .62rem;
  font-weight: 850;
  vertical-align: middle;
}
.pop3-form-grid { grid-template-columns: minmax(0, 1.45fr) 110px minmax(0, 1fr) minmax(0, 1fr) 150px; }
.inline-test-form { margin-top: 10px; }
.inline-test-form button:disabled { opacity: .5; cursor: not-allowed; }

/* Incident overview: protect the transportation panel from narrow value columns. */
.case-overview-grid {
  grid-template-columns: minmax(0, 1.75fr) minmax(360px, .8fr);
}
.case-overview-student { grid-template-columns: 175px minmax(0, 1fr); }
.case-overview-student .student-photo-wrap { width: 175px; min-height: 220px; }
.transportation-summary-card { min-width: 0; }
.transportation-summary-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 14px;
}
.transportation-summary-list > div {
  display: block;
  min-width: 0;
  padding: 10px 0;
}
.transportation-summary-list > div:first-child,
.transportation-summary-list > div:nth-child(3) { grid-column: 1 / -1; }
.transportation-summary-list dt {
  margin-bottom: 4px;
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.transportation-summary-list dd {
  font-size: .88rem;
  line-height: 1.28;
  overflow-wrap: break-word;
  word-break: normal;
  white-space: normal;
}

@media (max-width: 1180px) {
  .setup-page-v83 .setup-summary-v83 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .setup-page-v83 .setup-summary-v83 .setup-summary-item:nth-child(3) { border-right: 0; }
  .setup-page-v83 .setup-summary-v83 .setup-summary-item:nth-child(n+4) { border-top: 1px solid var(--brand-border-soft); }
  .mail-form-grid { grid-template-columns: minmax(0, 1.5fr) 110px minmax(0, 1fr); }
  .pop3-form-grid { grid-template-columns: minmax(0, 1.5fr) 110px minmax(0, 1fr); }
  .case-overview-grid { grid-template-columns: minmax(0, 1.6fr) minmax(340px, .85fr); }
}
@media (max-width: 940px) {
  .setup-page-v83 .setup-summary-v83 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .setup-page-v83 .setup-summary-v83 .setup-summary-item { border-top: 1px solid var(--brand-border-soft); border-right: 1px solid var(--brand-border-soft); }
  .setup-page-v83 .setup-summary-v83 .setup-summary-item:nth-child(-n+2) { border-top: 0; }
  .setup-page-v83 .setup-summary-v83 .setup-summary-item:nth-child(even) { border-right: 0; }
  .case-overview-grid { grid-template-columns: 1fr; }
  .transportation-summary-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .transportation-summary-list > div:first-child,
  .transportation-summary-list > div:nth-child(3) { grid-column: auto; }
}
@media (max-width: 720px) {
  .mail-form-grid,
  .pop3-form-grid { grid-template-columns: 1fr 110px; }
  .mail-form-grid .field:not(.mail-port),
  .pop3-form-grid .field:not(.mail-port) { grid-column: 1 / -1; }
  .setup-page-v83 .setup-summary-v83 { grid-template-columns: 1fr; }
  .setup-page-v83 .setup-summary-v83 .setup-summary-item { border-right: 0; border-top: 1px solid var(--brand-border-soft); }
  .setup-page-v83 .setup-summary-v83 .setup-summary-item:first-child { border-top: 0; }
  .transportation-summary-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .transportation-summary-list { grid-template-columns: 1fr; }
  .case-overview-student { grid-template-columns: 1fr; }
  .case-overview-student .student-photo-wrap { width: 145px; min-height: 180px; }
}

/* ========================= v92 ========================= */
/* Dashboard: remove decorative KPI icons and make 4 + 3 cards fill the row cleanly. */
.dashboard-kpis-review {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 12px;
}
.dashboard-kpis-review .kpi-card { grid-column: span 3; min-height: 118px; }
.dashboard-kpis-review .kpi-card:nth-child(n+5) { grid-column: span 4; }
.driver-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dashboard-v80 .kpi-card { min-height: 118px; }
.kpi-card .kpi-label { min-height: 18px; display: flex; align-items: center; }
.kpi-card strong { margin-top: 14px; }
.kpi-icon { display: none !important; }

/* Case timeline: compact summary near the top, expandable on demand. */
.case-timeline-card { padding: 0; overflow: hidden; }
.case-timeline-card > summary {
  list-style: none;
  cursor: pointer;
  padding: 17px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.case-timeline-card > summary::-webkit-details-marker { display: none; }
.case-timeline-card[open] > summary { border-bottom: 1px solid var(--brand-border); }
.timeline-summary h2 { margin-bottom: 2px; }
.timeline-latest { margin: 4px 0 0; color: var(--brand-muted); font-size: .78rem; }
.timeline-latest span { font-weight: 800; color: #6f5c67; }
.timeline-summary-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.timeline-summary-actions .workflow-chevron { transition: transform .18s ease; }
.case-timeline-card[open] .timeline-summary-actions .workflow-chevron { transform: rotate(180deg); }
.timeline-expand-body { padding: 14px 20px 18px; }

/* Step 4 validation: preserve draft and point to the one missing area. */
.decision-validation-banner {
  display: grid;
  gap: 3px;
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid #d79a8f;
  border-left: 4px solid #b64b3e;
  border-radius: 4px;
  background: #fff7f5;
  color: #5f332e;
}
.decision-validation-banner strong { font-size: .82rem; }
.decision-validation-banner span { font-size: .78rem; }
.decision-validation-banner small { color: #786168; font-weight: 700; }
.decision-field-error {
  outline: 2px solid rgba(182, 75, 62, .45);
  outline-offset: 4px;
  border-radius: 4px;
  background: #fffaf9;
}
.ai-rationale-help { margin-top: 6px; color: #6e6270; }

/* One-time AI analysis confirmation. */
.ai-analysis-complete {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #cfe3d5;
  background: #f1f8f3;
  border-radius: 4px;
  color: #2f6747;
}
.ai-analysis-complete strong { font-size: .78rem; }
.ai-analysis-complete span { color: #68776e; font-size: .72rem; }

/* Clean violation lists in case summaries and printed notices. */
.decision-violation-list,
.print-violation-list {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 4px;
}
.print-violation-list { font-size: inherit; line-height: 1.35; }
.driver-rationale-section { margin-top: 16px; }

/* Separate directory pages and make action links visibly button-like. */
.intervention-page-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.intervention-page-heading > .button-link,
.intervention-page-actions .button-link { text-decoration: none; }

/* User administration form controls should align exactly, including Role selects. */
.user-admin-page .field input:not([type="checkbox"]),
.user-admin-page .field select {
  min-height: 46px;
  height: 46px;
  box-sizing: border-box;
  padding-top: 10px;
  padding-bottom: 10px;
}

@media (max-width: 980px) {
  .dashboard-kpis-review { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-kpis-review .kpi-card,
  .dashboard-kpis-review .kpi-card:nth-child(n+5) { grid-column: span 1; }
  .driver-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .dashboard-kpis-review,
  .driver-kpis { grid-template-columns: 1fr; }
  .case-timeline-card > summary { align-items: flex-start; }
  .timeline-summary-actions { flex-direction: column; align-items: flex-end; gap: 4px; }
}


/* ========================= v93 ========================= */
/* Restore compact dashboard KPI cards with distinct operational icons. */
.dashboard-kpis-review.dashboard-kpis-v93 {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
}
.dashboard-kpis-v93 .kpi-card {
  grid-column: span 3;
  min-height: 122px;
  padding: 14px 15px 13px 17px;
  border-radius: 8px;
  background: var(--brand-paper);
  box-shadow: 0 2px 8px rgba(63, 45, 55, .055);
}
.dashboard-kpis-v93 .kpi-card:nth-child(n+5) { grid-column: span 3; }
.dashboard-kpis-v93 .kpi-card-head {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}
.dashboard-kpis-v93 .kpi-label {
  min-height: 0;
  display: block;
  line-height: 1.15;
}
.dashboard-kpis-v93 .kpi-card strong {
  margin: 9px 0 4px;
  font-size: 1.9rem;
  line-height: 1;
}
.dashboard-kpis-v93 .kpi-card > span:not(.kpi-icon) { font-size: .72rem; }
.dashboard-kpis-v93 .kpi-icon {
  display: inline-grid !important;
  place-items: center;
  flex: 0 0 31px;
  width: 31px;
  height: 31px;
  border-radius: 8px;
  background: #f1edf0;
  color: var(--brand-plum);
}
.dashboard-kpis-v93 .kpi-icon svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dashboard-kpis-v93 .kpi-cases .kpi-icon { background:#edf1f5; color:#556b82; }
.dashboard-kpis-v93 .kpi-open .kpi-icon { background:#f1e9ef; color:#6c3d5a; }
.dashboard-kpis-v93 .kpi-evidence .kpi-icon { background:#f8eedf; color:#a16a27; }
.dashboard-kpis-v93 .kpi-decision .kpi-icon { background:#eee8f5; color:#72558d; }
.dashboard-kpis-v93 .kpi-notifications .kpi-icon { background:#f8e8e3; color:#a55043; }
.dashboard-kpis-v93 .kpi-waiting-driver .kpi-icon { background:#e9f0f8; color:#426d94; }
.dashboard-kpis-v93 a.kpi-card { color: inherit; text-decoration: none; }
.dashboard-kpis-v93 a.kpi-card:hover { transform: translateY(-1px); box-shadow: 0 5px 14px rgba(63,45,55,.09); }
.dashboard-kpis-v93 .kpi-ready .kpi-icon { background:#eaf3ed; color:#47745a; }
.dashboard-kpis-v93 .kpi-suspensions .kpi-icon { background:#f7e9df; color:#9c562e; }

/* Keep the card dashboard feel on medium desktop / split-screen layouts. */
@media (max-width: 920px) {
  .dashboard-kpis-review.dashboard-kpis-v93 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .dashboard-kpis-v93 .kpi-card,
  .dashboard-kpis-v93 .kpi-card:nth-child(n+5) { grid-column: auto; }

}
@media (max-width: 440px) {
  .dashboard-kpis-review.dashboard-kpis-v93 { grid-template-columns: 1fr; }

}

/* ========================= v94 ========================= */
/* Exact policy progression and communication ownership. */
.policy-progression-details {
  margin-top: 12px;
  border: 1px solid #e3d9de;
  border-radius: 10px;
  background: #fffdfc;
}
.policy-progression-details > summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
}
.policy-progression-details > summary::-webkit-details-marker { display: none; }
.policy-progression-details > summary span:first-child { display: grid; gap: 2px; }
.policy-progression-details > summary small { color: #6b7584; font-weight: 500; }
.policy-progression-panels { padding: 0 14px 14px; }
.policy-progression-title { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:8px; color:#5b3a4e; }
.policy-progression-title span { font-size:.76rem; color:#687487; }
.policy-progression-list { display:grid; gap:7px; }
.policy-progression-step { display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:start; padding:9px 10px; border:1px solid #ebe3e7; border-radius:8px; background:#fff; }
.policy-progression-step > span { width:26px; height:26px; display:grid; place-items:center; border-radius:50%; background:#f2edf0; color:#683650; font-weight:800; font-size:.76rem; }
.policy-progression-step p { margin:3px 0 0; font-size:.82rem; color:#495667; line-height:1.35; }
.policy-progression-step.current { border-color:#9e6c87; background:#fbf5f8; box-shadow:inset 3px 0 0 #6b3459; }
.policy-progression-step.current > span { background:#6b3459; color:#fff; }
.policy-progression-empty { padding:12px; color:#6d7784; background:#f8f6f7; border-radius:8px; }

.case-communication-rule { display:grid; gap:4px; padding:13px 15px; margin-bottom:14px; border:1px solid #ded4d9; border-left:4px solid #6b3459; border-radius:9px; background:#fbf8fa; }
.case-communication-rule strong { color:#4d3041; }
.case-communication-rule span { color:#5e6f82; font-size:.84rem; line-height:1.4; }
.notification-prerequisite-card { display:flex; justify-content:space-between; gap:18px; align-items:center; padding:14px 16px; margin-bottom:14px; border:1px solid #e0d7dc; border-radius:10px; background:#fff; }
.notification-prerequisite-card.complete { border-color:#bfd8c8; background:#f8fcf9; }
.notification-prerequisite-card h3 { margin:7px 0 4px; }
.notification-prerequisite-card p { margin:0; color:#607087; max-width:760px; font-size:.83rem; line-height:1.4; }
.notification-prerequisite-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.standalone-driver-notice { border:1px solid #ded5da; border-radius:10px; padding:16px; background:#fff; }

.school-notice-student-grid { display:grid; grid-template-columns:170px 1fr; gap:18px; align-items:stretch; margin:18px 0; }
.school-notice-photo { min-height:215px; border:1px solid #d6dce4; border-radius:10px; overflow:hidden; background:#f2f5f8; display:grid; place-items:center; }
.school-notice-photo img { width:100%; height:100%; object-fit:cover; }
.school-notice-photo .photo-placeholder { padding:20px; text-align:center; color:#6b7789; font-weight:700; }
.school-notice-student-card { margin:0; }

@media (max-width: 760px) {
  .notification-prerequisite-card { align-items:flex-start; flex-direction:column; }
  .notification-prerequisite-actions { justify-content:flex-start; }
  .school-notice-student-grid { grid-template-columns:1fr; }
  .school-notice-photo { max-width:220px; min-height:180px; }
}

@media print {
  .school-notice-student-grid { grid-template-columns:145px 1fr; gap:16px; }
  .school-notice-photo { min-height:185px; }
}

/* ========================= v96 ========================= */
/* Eight-card dashboard and driver confirmation workflow. */
.driver-follow-up-list { display:grid; gap:10px; margin-top:12px; }
.driver-follow-up-item { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding:13px 14px; border:1px solid var(--brand-border); border-radius:10px; background:#fff; }
.driver-follow-up-item > div { min-width:0; }
.driver-follow-up-item span { display:block; margin-top:3px; color:#756a74; font-size:.78rem; }
.driver-follow-up-item p { margin:7px 0 0; }
.driver-follow-up-response { display:grid; gap:7px; width:min(380px,100%); }
.driver-follow-up-response textarea { min-width:240px; }
@media (max-width:700px){ .driver-follow-up-item { flex-direction:column; } .driver-follow-up-response { width:100%; } .driver-follow-up-response textarea { min-width:0; } }


/* v97 production-candidate visual system */
:root{--tdm-navy:#082d5b;--tdm-navy-2:#0d467f;--tdm-gold:#f5b51b;--tdm-slate:#64748b;--tdm-bg:#f5f7fa;--tdm-surface:#fff;--tdm-line:#d7e0ea;--control-h:46px;color:#15233a;background:var(--tdm-bg)}
body{background:var(--tdm-bg)}
input:not([type="checkbox"]):not([type="radio"]),select,button,.button-link{min-height:var(--control-h);height:var(--control-h);padding:0 14px;border-radius:10px}
textarea{border-radius:10px;padding:12px 14px}
button,.button-link{background:var(--tdm-navy);color:#fff}
.secondary,.secondary-link{background:#fff;color:var(--tdm-navy);border:1px solid #aebdd0}
input:focus,select:focus,textarea:focus{border-color:var(--tdm-gold);box-shadow:0 0 0 3px rgba(245,181,27,.18)}
.text-link,.history-table a{color:var(--tdm-navy-2)}
.status-pill,.module-badge,.evidence-type-pill,.audience-pill.school{background:#fff4cf;color:#6f4c00}
.app-accent-line{background:var(--tdm-gold)!important}
.district-header{background:linear-gradient(100deg,var(--tdm-navy),#0b477f)!important}
.district-brand{display:flex!important;align-items:center;gap:10px;text-decoration:none;color:#fff}.district-brand .header-logo{width:62px;height:62px;object-fit:contain}.district-brand-copy{display:grid}.district-brand-copy span{font-size:.78rem;opacity:.8}
.branded-auth{background:linear-gradient(rgba(6,32,62,.43),rgba(6,32,62,.43)),url('/static/tdm-login-background-v97.png') center/cover fixed no-repeat}.modern-login{width:min(100%,560px);padding:28px 36px 32px;text-align:left;background:rgba(255,255,255,.97);backdrop-filter:blur(7px)}.login-logo{display:block;width:150px;max-height:150px;object-fit:contain;margin:0 auto 8px}.modern-login h1{text-align:center;color:var(--tdm-navy);font-size:2rem}.login-tagline{text-align:center;color:#66758a;font-size:.88rem;margin:0 0 24px}.login-tagline b{color:var(--tdm-gold);padding:0 5px}.modern-login .login-form button{margin-top:10px}.auth-links{display:grid;gap:5px;text-align:center;margin:14px 0}.auth-links a{color:#1264c4;font-weight:800;text-decoration:none}.modern-login .security-note{border-top:1px solid #dfe6ef;padding-top:16px}.workflow-snapshot-label{margin:24px 0 10px}.workflow-snapshot-label h2{margin:0}.case-tracking-card{border-top:4px solid var(--tdm-gold)}.discipline-outcome-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.outcome-choice{margin:0}.outcome-choice input{position:absolute;opacity:0}.outcome-choice span{display:flex;min-height:46px;align-items:center;justify-content:center;text-align:center;border:1px solid var(--tdm-line);border-radius:10px;padding:7px;background:#fff;font-size:.84rem}.outcome-choice input:checked+span{border-color:var(--tdm-gold);background:#fff6d9;box-shadow:0 0 0 2px rgba(245,181,27,.2);color:#4c3900}.pending-registration-actions{display:grid;grid-template-columns:1fr 1fr auto auto;gap:8px;align-items:center}.notification-setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.locked-setting{opacity:.78}.evidence-tracking-card{margin-top:16px}
@media(max-width:760px){.district-brand .header-logo{width:48px;height:48px}.district-brand-copy{display:none}.discipline-outcome-grid{grid-template-columns:1fr 1fr}.pending-registration-actions,.notification-setting-grid{grid-template-columns:1fr}.modern-login{padding:24px 20px}.login-logo{width:120px}}

.case-tracking-nav{margin-bottom:16px}.case-tracking-nav-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:14px}.case-tracking-nav-head h2{margin:0}.case-tracking-nav-head>span{font-size:.82rem;color:#718198}.case-stage-links{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.case-stage-links a{min-height:72px;border:1px solid var(--tdm-line);border-radius:12px;padding:10px;text-decoration:none;display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;text-align:center;background:#fff;color:#607086;font-size:.78rem}.case-stage-links a span{width:26px;height:26px;border-radius:999px;background:#e8edf4;display:grid;place-items:center;font-weight:900}.case-stage-links a.complete{background:#f2f8ff;color:var(--tdm-navy);border-color:#b9cee5}.case-stage-links a.complete span{background:var(--tdm-navy);color:#fff}.case-stage-links a.current,.case-stage-links a.waiting{background:#fff7da;color:#6d4d00;border-color:#efca60}.case-stage-links a.current span,.case-stage-links a.waiting span{background:var(--tdm-gold);color:#273244}.evidence-identification-panel{border:1px solid #d7e2ee;background:#f9fbfe;border-radius:14px;padding:18px;margin-bottom:18px}.reopen-case-form{display:flex;gap:8px;align-items:center}.reopen-case-form input{min-width:220px}@media(max-width:900px){.case-stage-links{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.case-stage-links{grid-template-columns:1fr 1fr}.reopen-case-form{flex-direction:column;align-items:stretch}}

/* v97 print branding */
.print-brand-logo{width:74px;height:74px;object-fit:contain;flex:0 0 auto;margin-right:14px}.print-header{display:flex;align-items:center;gap:12px}.print-header>div{flex:1}@media print{.print-brand-logo{width:58px;height:58px}}


/* v97 login asset correction: real supplied background + logo */
body:has(.branded-auth) {
  background: #082d5b;
}
.auth-shell.branded-auth {
  min-height: 100vh;
  width: 100%;
  background-image:
    linear-gradient(rgba(5, 31, 61, .38), rgba(5, 31, 61, .38)),
    url('/static/tdm-login-background-v97.png');
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}
.modern-login {
  background: rgba(255,255,255,.97);
  border: 1px solid rgba(215,224,234,.95);
  box-shadow: 0 24px 70px rgba(2,25,54,.30);
}
.modern-login .login-logo {
  width: 254px;
  height: auto;
  max-height: 254px;
  object-fit: contain;
}
@media (max-width: 760px) {
  .auth-shell.branded-auth { background-attachment: scroll; }
  .modern-login .login-logo { width: 203px; }
}

/* v97 header correction: logo sits beside the application name */
.district-header-inner {
  min-height: 76px;
  align-items: stretch;
}
.district-brand {
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  padding: 7px 22px !important;
}
.district-brand .header-logo {
  width: 54px !important;
  height: 54px !important;
  flex: 0 0 54px;
  margin: 0 !important;
  object-fit: contain;
}
.district-brand .district-brand-copy {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center;
  align-items: flex-start;
  gap: 2px;
  margin: 0 !important;
  line-height: 1.05;
}
.district-brand .district-brand-copy strong {
  display: block;
  margin: 0;
  color: #fff;
  font-size: 1rem;
  line-height: 1.15;
}
.district-brand .district-brand-copy span {
  display: block;
  margin: 0;
  color: #b9c9dc;
  font-size: .74rem;
  line-height: 1.15;
}
@media (max-width:760px) {
  .district-header-inner { min-height: 68px; }
  .district-brand { justify-content: flex-start !important; padding: 7px 12px !important; }
  .district-brand .header-logo { width: 46px !important; height: 46px !important; flex-basis: 46px; }
  .district-brand .district-brand-copy { display: flex !important; }
  .district-brand .district-brand-copy strong { font-size: .88rem; }
  .district-brand .district-brand-copy span { font-size: .68rem; }
}

/* v97 header alignment correction: brand belongs on the left beside Menu */
.district-header-inner {
  justify-content: flex-start !important;
}
.district-brand {
  flex: 0 0 auto !important;
  min-width: 0 !important;
  width: auto !important;
  justify-content: flex-start !important;
  padding: 7px 18px !important;
}
.notification-bell-button {
  margin-left: auto !important;
}
@media (max-width: 860px) {
  .district-brand {
    flex: 0 1 auto !important;
    min-width: 0 !important;
  }
}

/* v97 header polish: smaller logo and true vertical centering */
.district-header-inner {
  min-height: 72px !important;
  align-items: center !important;
}
.district-brand {
  align-self: center !important;
  padding: 5px 14px !important;
  gap: 10px !important;
}
.district-brand .header-logo {
  width: 44px !important;
  height: 44px !important;
  flex: 0 0 44px !important;
}
.district-brand .district-brand-copy {
  justify-content: center !important;
}
.district-brand .district-brand-copy strong {
  font-size: .98rem !important;
  line-height: 1.1 !important;
}
.district-brand .district-brand-copy span {
  font-size: .72rem !important;
  line-height: 1.1 !important;
}
.drawer-toggle,
.notification-bell-button,
.user-menu-button {
  align-self: center !important;
}
@media (max-width:760px) {
  .district-header-inner { min-height: 64px !important; }
  .district-brand { padding: 4px 10px !important; gap: 8px !important; }
  .district-brand .header-logo { width: 38px !important; height: 38px !important; flex-basis: 38px !important; }
}

/* v97 driver notice correction: TDM print palette + parent contact for formal write-ups */
.print-header {
  border-bottom-color: var(--tdm-navy) !important;
}
.print-button {
  background: var(--tdm-navy) !important;
  color: #fff !important;
}
.print-button:hover {
  background: var(--tdm-navy-2) !important;
}
.driver-use-banner {
  background: var(--tdm-navy) !important;
  border-top: 5px solid var(--tdm-gold);
}
.driver-command-box {
  border-color: var(--tdm-navy) !important;
  background: #f7fbff !important;
  box-shadow: inset 5px 0 0 var(--tdm-gold);
}
.command-label {
  color: var(--tdm-navy) !important;
}
.driver-print-footer {
  color: var(--tdm-navy) !important;
  border-top-color: #ccd8e6 !important;
}
.driver-parent-contact-box {
  margin: 24px 0;
  border: 2px solid #d3deea;
  border-left: 5px solid var(--tdm-gold);
  border-radius: 12px;
  padding: 16px 18px;
  background: #fbfdff;
}
.driver-parent-contact-list {
  margin-top: 10px;
}
.driver-parent-contact-list a {
  color: var(--tdm-navy);
  font-weight: 900;
  text-decoration: none;
}
.driver-parent-contact-note,
.driver-parent-contact-missing {
  margin: 12px 0 0;
  color: #5d6f85;
  font-size: .84rem;
  line-height: 1.4;
}
@media print {
  .driver-parent-contact-box {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .driver-parent-contact-list a {
    color: #172334 !important;
    text-decoration: none !important;
  }
}

/* v97 workflow permissions polish */
.evidence-next-step{margin-top:18px;padding-top:18px;border-top:1px solid var(--tdm-line,#d7e2ee);display:flex;justify-content:flex-end;align-items:center;gap:12px}
.evidence-next-step form{margin:0}
.evidence-next-step button{min-height:44px}
@media(max-width:620px){.evidence-next-step{justify-content:stretch}.evidence-next-step form,.evidence-next-step button{width:100%}}

/* v97 document wording + school decision basis */
.school-decision-basis {
  margin-top: 18px;
  padding: 14px 16px;
  border-left: 4px solid #f4b41a;
  background: #f7faff;
  border-radius: 8px;
}
.school-decision-basis h3 {
  margin: 0 0 6px;
  color: #123a70;
  font-size: .92rem;
}
.school-decision-basis p {
  margin: 0;
  color: #263a55;
  line-height: 1.5;
}

/* v97: keep Evidence Tracking inside Step 3 — Evidence Review */
.evidence-tracking-inline {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--app-border, #d7e0ea);
  border-radius: 14px;
  background: #fbfcfe;
}
.evidence-tracking-inline .panel-heading { margin-bottom: 14px; }
.evidence-tracking-inline .panel-heading h2 { margin-bottom: 2px; }
.evidence-tracking-inline .panel-heading p:last-child { margin: 0; color: var(--app-muted, #66778b); }

/* v97 dashboard clarity — make incident activity operationally readable */
.activity-summary-row {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.activity-summary-row > div {
  text-align:left;
}
.activity-summary-row > div strong {
  font-size:1.18rem !important;
  color:#0b2d5b;
}
.activity-footnote {
  margin-top:7px;
  line-height:1.35;
}
@media (max-width:620px) {
  .activity-summary-row { grid-template-columns:1fr 1fr 1fr; }
}

/* ============================================================
   v97 — New Incident tablet + phone optimization
   Touch-first layout without changing incident workflow/data.
   ============================================================ */
@media (max-width: 1024px) {
  .incident-form-shell {
    max-width: 100%;
    padding: 22px 18px 86px;
  }
  .incident-form-heading {
    margin-bottom: 12px;
  }
  .incident-form-heading h1 {
    font-size: clamp(1.55rem, 4vw, 2rem);
  }
  .incident-form-heading p:last-child {
    max-width: 760px;
  }
  .incident-mobile-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 8px;
    position: sticky;
    top: 72px;
    z-index: 18;
    margin: 0 0 14px;
    padding: 8px;
    border: 1px solid var(--app-border-soft);
    border-radius: 12px;
    background: rgba(246,248,251,.96);
    backdrop-filter: blur(8px);
    box-shadow: 0 5px 16px rgba(18,48,86,.07);
  }
  .incident-mobile-steps a {
    min-height: 46px;
    padding: 7px 8px;
    border: 1px solid #ced9e6;
    border-radius: 9px;
    background: #fff;
    color: var(--app-blue-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    text-decoration: none;
    font-size: .76rem;
    font-weight: 800;
    white-space: nowrap;
  }
  .incident-mobile-steps a span {
    width: 23px;
    height: 23px;
    flex: 0 0 23px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #e9f0f8;
    color: var(--app-blue-dark);
    font-size: .7rem;
  }
  .incident-form {
    gap: 14px;
  }
  .incident-form .form-card {
    padding: 19px;
    border-radius: 13px;
  }
  .incident-form .form-grid.three,
  .incident-form .form-grid.two {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 14px;
  }
  #incident-step-1 .span-2,
  #incident-step-1 .mobile-full {
    grid-column: 1 / -1;
  }
  .incident-form input:not([type="checkbox"]):not([type="radio"]),
  .incident-form select {
    min-height: 50px;
    height: 50px;
    font-size: 16px;
  }
  .incident-form textarea {
    font-size: 16px;
  }
  #incident-step-2 .student-seat-compact-grid {
    grid-template-columns: 132px minmax(0,1fr) !important;
    gap: 16px !important;
  }
  #incident-step-2 .student-seat-fields-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px 14px;
  }
  .incident-form .action-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 9px;
  }
  .incident-form .action-option,
  .incident-form .check-row {
    min-height: 48px;
  }
  .incident-form .form-actions {
    position: sticky;
    bottom: 0;
    z-index: 20;
    padding: 10px 0 calc(10px + env(safe-area-inset-bottom));
    background: linear-gradient(to top, rgba(246,248,251,1) 70%, rgba(246,248,251,.9));
  }
  .incident-form .form-actions .button-link,
  .incident-form .form-actions button {
    min-height: 50px;
  }
}

@media (max-width: 700px) {
  .incident-form-shell {
    padding: 12px 9px 96px;
  }
  .incident-form-heading {
    margin-bottom: 8px;
  }
  .incident-form-heading .eyebrow { font-size: .64rem; }
  .incident-form-heading h1 { font-size: 1.42rem; }
  .incident-form-heading p:last-child { font-size: .78rem; line-height: 1.35; }

  .incident-mobile-steps {
    top: 64px;
    gap: 5px;
    padding: 6px;
    margin-bottom: 10px;
  }
  .incident-mobile-steps a {
    min-height: 42px;
    padding: 5px 3px;
    gap: 3px;
    font-size: .66rem;
    white-space: normal;
    text-align: center;
  }
  .incident-mobile-steps a span {
    width: 20px;
    height: 20px;
    flex-basis: 20px;
    font-size: .62rem;
  }

  .incident-form .form-card {
    padding: 13px 11px;
    border-radius: 11px;
  }
  .incident-form .section-title {
    margin-bottom: 11px;
    gap: 8px;
  }
  .incident-form .section-title > span {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
  }
  .incident-form .section-title h2 { font-size: 1rem; }
  .incident-form .section-title p { font-size: .72rem; line-height: 1.3; }

  .incident-form .form-grid.three,
  .incident-form .form-grid.two {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
  }
  .incident-form .form-grid .field:not(.mobile-half) {
    grid-column: 1 / -1;
  }
  .incident-form .mobile-half { grid-column: auto; }
  .incident-form .mobile-full { grid-column: 1 / -1 !important; }
  .incident-form .field label { font-size: .76rem; margin-bottom: 4px; }
  .incident-form input:not([type="checkbox"]):not([type="radio"]),
  .incident-form select {
    min-height: 48px;
    height: 48px;
    padding: 9px 10px;
  }
  .incident-form textarea {
    min-height: 96px;
    padding: 10px;
  }
  .incident-form .field-help {
    font-size: .67rem;
    line-height: 1.25;
  }

  /* Keep the student's photo visible beside the first student control,
     then stack the remaining student details below for one-handed use. */
  #incident-step-2 .student-seat-compact-grid {
    grid-template-columns: 88px minmax(0,1fr) !important;
    grid-template-rows: auto !important;
    gap: 10px !important;
    align-items: start !important;
  }
  #incident-step-2 .incident-student-photo-field {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 88px !important;
    height: 116px !important;
    min-height: 116px !important;
  }
  #incident-step-2 .student-seat-fields-grid {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
  }
  #incident-step-2 .student-select-field,
  #incident-step-2 .student-seat-field,
  #incident-step-2 .student-id-field,
  #incident-step-2 .student-grade-field {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  #incident-step-2 .student-id-field,
  #incident-step-2 .student-grade-field {
    display: inline-block;
  }
  #incident-step-2 .seat-support-row { min-height: 0; }

  .incident-form .action-grid {
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .incident-form .action-option {
    min-height: 46px;
    padding: 9px 10px;
  }

  .incident-form .mobile-sticky-actions,
  .incident-form .form-actions {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 50;
    display: grid;
    grid-template-columns: .7fr 1.3fr;
    gap: 8px;
    padding: 9px 10px calc(9px + env(safe-area-inset-bottom));
    border-top: 1px solid #d5dfeb;
    background: rgba(255,255,255,.97);
    box-shadow: 0 -7px 20px rgba(18,48,86,.10);
  }
  .incident-form .mobile-sticky-actions .button-link,
  .incident-form .mobile-sticky-actions button,
  .incident-form .form-actions .button-link,
  .incident-form .form-actions button {
    width: 100%;
    min-height: 50px;
    margin: 0;
  }
}

@media (max-width: 420px) {
  .incident-mobile-steps a { font-size: .6rem; }
  .incident-mobile-steps a span { display: none; }
  #incident-step-2 .student-seat-compact-grid {
    grid-template-columns: 76px minmax(0,1fr) !important;
  }
  #incident-step-2 .incident-student-photo-field {
    width: 76px !important;
    height: 102px !important;
    min-height: 102px !important;
  }
}


/* v97 — unified School Directory (extensions + administrator contacts) */
.school-admin-code {
  display:block;
  margin-top:3px;
  color:var(--app-muted);
  font-size:.72rem;
  font-weight:700;
}
.school-admin-primary {
  display:inline-flex;
  margin-top:5px;
  padding:2px 6px;
  border-radius:999px;
  background:#fff3ca;
  color:#725100;
  font-size:.64rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.school-admin-extension {
  display:block;
  margin-top:3px;
  color:var(--app-muted);
  font-size:.72rem;
  font-weight:750;
}
.school-admin-table td { vertical-align:middle; }
.school-admin-table .directory-role {
  white-space:normal;
  line-height:1.25;
}
@media (max-width: 760px) {
  .school-admin-table { min-width:760px; }
  .school-admin-table-wrap { -webkit-overflow-scrolling:touch; }
}

/* v97 School Directory contact management */
.directory-message {
  margin: 0 18px 16px;
  padding: 11px 13px;
  border: 1px solid #bed2ec;
  border-left: 4px solid var(--app-blue, #173c70);
  border-radius: 9px;
  background: #f5f9ff;
  color: #183a64;
  font-weight: 700;
  font-size: .88rem;
}
.school-admin-actions-heading { min-width: 320px; }
.school-admin-actions-cell { min-width: 320px; }
.school-admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
}
.school-admin-actions form { margin: 0; }
.directory-action-button {
  min-height: 40px;
  height: 40px;
  padding: 0 13px;
  border-radius: 8px;
  border: 1px solid #b9c9dc;
  background: #fff;
  color: #14365f;
  font: inherit;
  font-size: .82rem;
  font-weight: 800;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: none;
}
.directory-action-button:hover { background: #f3f7fc; filter: none; }
.directory-edit-button,
.directory-save-button {
  background: var(--app-blue, #173c70);
  border-color: var(--app-blue, #173c70);
  color: #fff;
}
.directory-edit-button:hover,
.directory-save-button:hover { background: #0e2d57; }
.directory-primary-button {
  border-color: #d8ae45;
  background: #fff9e8;
  color: #6e520d;
}
.directory-toggle-button { color: #4b5563; }
.directory-remove-button {
  border-color: #dfb4b4;
  background: #fffafa;
  color: #9b2525;
}
.directory-remove-button:hover { background: #fff0f0; }
.directory-restore-button {
  background: #edf7f0;
  border-color: #b7d7c1;
  color: #28603f;
}
.school-admin-disabled {
  display: inline-flex;
  margin-left: 6px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #f0f2f5;
  color: #667085;
  font-size: .69rem;
  font-weight: 800;
  vertical-align: middle;
}
.school-admin-edit-row td {
  background: #f7faff;
  padding: 16px !important;
  border-top: 0 !important;
}
.school-admin-edit-form {
  border: 1px solid #cbd8e8;
  border-radius: 12px;
  background: #fff;
  padding: 16px;
}
.school-admin-edit-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
}
.school-admin-edit-grid input,
.school-admin-edit-grid select {
  min-height: 44px;
  height: 44px;
}
.school-admin-edit-checks {
  display: grid;
  gap: 8px;
  align-content: end;
}
.compact-check {
  min-height: 44px;
  padding: 9px 11px;
  margin: 0;
}
.school-admin-edit-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
}
.removed-contacts-panel {
  margin: 16px 18px 18px;
  border: 1px solid #d8e1ec;
  border-radius: 10px;
  background: #fbfcfe;
  overflow: hidden;
}
.removed-contacts-panel summary {
  padding: 12px 14px;
  cursor: pointer;
  font-weight: 800;
  color: #40536a;
}
.removed-contacts-list { border-top: 1px solid #e2e8f0; }
.removed-contact-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  border-bottom: 1px solid #edf1f5;
}
.removed-contact-row:last-child { border-bottom: 0; }
.removed-contact-row > div { display: grid; gap: 2px; }
.removed-contact-row span { color: #6b7c90; font-size: .8rem; }

@media (max-width: 980px) {
  .school-admin-edit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .school-admin-actions-heading,
  .school-admin-actions-cell { min-width: 260px; }
}
@media (max-width: 640px) {
  .school-admin-edit-grid { grid-template-columns: 1fr; }
  .school-admin-edit-actions { flex-direction: column; }
  .school-admin-edit-actions .directory-action-button { width: 100%; }
  .removed-contact-row { align-items: stretch; flex-direction: column; }
  .removed-contact-row .directory-action-button { width: 100%; }
}
.setup-section-header-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.setup-compact-button { min-height:40px; height:40px; padding:0 13px; }
@media (max-width: 640px) { .setup-section-header-actions { width:100%; } .setup-compact-button { flex:1 1 auto; } }


/* v98 student profile digital ID polish */
.student-profile-page { max-width: 1240px; margin: 0 auto; padding-bottom: 44px; }
.student-master-card { grid-template-columns: 190px minmax(0,1fr); gap: 28px; align-items: center; padding: 22px; }
.student-master-photo { width: 190px; border-radius: 16px; box-shadow: 0 8px 22px rgba(42, 26, 35, .10); }
.student-master-body { display: grid; align-content: center; }
.student-master-heading { align-items: center; }
.student-master-identity { min-width: 0; }
.student-master-identity h1 { font-size: clamp(1.65rem, 3vw, 2.25rem); line-height: 1.08; }
.student-master-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; flex: 0 0 auto; }
.student-master-actions .button-link { min-width: 178px; justify-content: center; white-space: nowrap; }
.student-master-stats { border-radius: 12px; overflow: hidden; }
.student-profile-two-column { gap: 20px; }
.student-profile-two-column > .case-card,
.student-history-card { border-radius: 14px; }
.student-route-item { min-height: 92px; align-content: center; }
.student-contact-person { border-radius: 10px; }
@media (max-width: 800px) {
  .student-master-card { grid-template-columns: 150px minmax(0,1fr); gap: 20px; }
  .student-master-photo { width: 150px; }
  .student-master-heading { align-items: flex-start; }
  .student-master-actions { align-items: flex-start; width: 100%; }
}
@media (max-width: 700px) {
  .student-master-card { grid-template-columns: 1fr; }
  .student-master-photo { width: 160px; }
  .student-master-actions .button-link { width: 100%; }
}

/* mobile workflow step left alignment */
@media (max-width: 700px) {
  .workflow-panel-summary {
    position: relative;
    display: block;
    padding: 20px 52px 20px 16px;
    text-align: left;
  }

  .workflow-panel-summary-main {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 12px;
    margin: 0;
  }

  .workflow-panel-summary-main > div {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
  }

  .workflow-step-number {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    margin: 0;
    align-self: flex-start;
  }

  .workflow-panel-summary-main .eyebrow {
    margin-top: 0;
    text-align: left;
  }

  .workflow-panel-summary-main h2 {
    margin-left: 0;
    margin-right: 0;
    text-align: left;
  }

  .workflow-panel-summary-status {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin: 12px 0 0 56px;
    width: auto;
    text-align: left;
  }

  .workflow-panel-summary-status .workflow-chevron {
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
  }
}


/* center workflow status beneath the step title on mobile */
@media (max-width: 700px) {
  .workflow-panel-summary-status {
    width: calc(100% - 56px);
    margin: 12px 0 0 56px;
    justify-content: center;
  }
}

/* Tablet decision form — prevent suspension calculator overflow */
@media (max-width: 1200px) {
  .suspension-calculator-v79 .suspension-calculator-grid {
    grid-template-columns: 1fr;
  }

  .suspension-calculator-v79 .suspension-day-options {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
  }

  .suspension-calculator-v79 .suspension-day-button,
  .suspension-calculator-v79 .suspension-custom-wrap {
    width: 100%;
    min-width: 0;
  }

  .suspension-calculator-v79 .suspension-custom-wrap {
    justify-content: center;
  }

  #professional_narrative_field,
  #professional_narrative {
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 760px) {
  .suspension-calculator-v79 .suspension-day-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .suspension-calculator-v79 .suspension-custom-wrap {
    grid-column: 1 / -1;
  }
}

/* Tablet polish for suspension calculator */
@media (max-width: 1200px) {
  .suspension-calculator-v79 .suspension-calculator-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: start;
  }

  /* Make the first suspension date field fill its column cleanly */
  .suspension-calculator-v79 input[type="date"],
  .suspension-calculator-v79 input[type="text"],
  .suspension-calculator-v79 select {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  /* Keep the suspension buttons neat on tablet */
  .suspension-calculator-v79 .suspension-day-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
  }

  .suspension-calculator-v79 .suspension-day-button,
  .suspension-calculator-v79 .suspension-custom-wrap {
    width: 100%;
    min-width: 0;
  }

  /* Keep the calculated date boxes aligned */
  .suspension-calculator-v79 .suspension-results,
  .suspension-calculator-v79 .suspension-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
  }
}

@media (max-width: 760px) {
  .suspension-calculator-v79 .suspension-calculator-grid,
  .suspension-calculator-v79 .suspension-results,
  .suspension-calculator-v79 .suspension-result-grid {
    grid-template-columns: 1fr;
  }

  .suspension-calculator-v79 .suspension-day-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .suspension-calculator-v79 .suspension-custom-wrap {
    grid-column: 1 / -1;
  }
}

/* Tablet suspension calculator — length first, dates underneath */
@media (min-width: 761px) and (max-width: 1200px) {

  .suspension-calculator-v79 .suspension-calculator-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-rows: auto auto !important;
    gap: 16px 18px !important;
    align-items: stretch !important;
  }

  /* Suspension length across the full top row */
  .suspension-calculator-v79 .suspension-length-field {
    grid-column: 1 / 4 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .suspension-calculator-v79 .suspension-day-options {
    display: grid !important;
    grid-template-columns:
      repeat(4, minmax(0, 1fr))
      minmax(150px, 1.25fr) !important;
    gap: 8px !important;
    width: 100% !important;
  }

  .suspension-calculator-v79 .suspension-day-button,
  .suspension-calculator-v79 .suspension-custom-wrap {
    width: 100% !important;
    min-width: 0 !important;
    height: 50px !important;
  }

  .suspension-calculator-v79 .suspension-custom-wrap {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
  }

  .suspension-calculator-v79 .suspension-custom-wrap input {
    width: 62px !important;
    min-width: 0 !important;
  }

  /* Date row underneath */
  .suspension-calculator-v79 .suspension-start-field {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .suspension-calculator-v79
  .suspension-result-card:not(.return-card) {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }

  .suspension-calculator-v79 .return-card {
    grid-column: 3 !important;
    grid-row: 2 !important;
  }

  .suspension-calculator-v79 #suspension_start {
    width: 100% !important;
    min-width: 0 !important;
    height: 64px !important;
  }

  .suspension-calculator-v79 .suspension-result-card {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 88px !important;
    height: 88px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }
}


/* consistent suspension date picker display */
.suspension-start-control {
  position: relative;
  width: 100%;
  min-height: 64px;
}

.suspension-start-display {
  width: 100%;
  min-height: 64px;
  display: flex;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid #cfd9e6;
  border-radius: 10px;
  background: #fff;
  color: #162338;
  font: inherit;
  font-weight: 500;
}

.suspension-start-control #suspension_start {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  opacity: 0 !important;
  cursor: pointer;
}


/* first suspension date matching result cards */
.suspension-start-card {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 88px;
  height: 88px;
  padding: 14px 16px;
  border: 1px solid #d5dee9;
  border-radius: 10px;
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.suspension-start-card > span {
  display: block;
  margin-bottom: 4px;
  color: #52647a;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.25;
  text-transform: uppercase;
}

.suspension-start-card > strong {
  display: block;
  color: #26364b;
  font-size: 1.25rem;
  line-height: 1.2;
}

.suspension-start-card #suspension_start {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  opacity: 0 !important;
  cursor: pointer;
}

/* Keep all three suspension date cards visually identical */
@media (min-width: 761px) and (max-width: 1200px) {
  .suspension-start-card,
  .suspension-calculator-v79 .suspension-result-card {
    min-height: 88px !important;
    height: 88px !important;
    padding: 14px 16px !important;
  }
}

/* Suspension start date — important consequence, not an error */
.suspension-start-card {
  border: 2px solid #b42318 !important;
  background: #fff7f5 !important;
}

.suspension-start-card > span {
  color: #b42318 !important;
}

.suspension-start-card > strong {
  color: #7a271a !important;
}



/* Seating chart gender identification */
.bus-seat.occupied.female {
  background: #fff0f6 !important;
  border: 2px solid #e8a6c0 !important;
}

.bus-seat.occupied.female .seat-number,
.bus-seat.occupied.female strong {
  color: #9d174d !important;
}

.bus-seat.occupied.male {
  background: #eef6ff !important;
  border: 2px solid #93bce8 !important;
}

.bus-seat.occupied.male .seat-number,
.bus-seat.occupied.male strong {
  color: #1d4f91 !important;
}

/* Make route seating-plan selections visually obvious */
.seating-bus-card.plan-side_based .seating-left {
  outline: 2px dashed #64748b;
  outline-offset: 5px;
  border-radius: 10px;
}

.seating-bus-card.plan-side_based .seating-right {
  outline: 2px dashed #64748b;
  outline-offset: 5px;
  border-radius: 10px;
}

.seating-bus-card.plan-front_back .seating-group-label {
  font-weight: 800;
  border: 2px solid currentColor;
}

/* CENTERED PUBLIC ACKNOWLEDGMENT PAGE */
body.public-ack-page {
  min-height: 100vh !important;
  min-height: 100dvh !important;
  margin: 0 !important;
  padding: 24px !important;
  box-sizing: border-box;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.public-ack-page .public-ack-card {
  width: min(100%, 570px);
  margin: 0 !important;
}

@media (max-width: 640px) {
  body.public-ack-page {
    padding: 16px !important;
  }

  .public-ack-page .public-ack-card {
    width: 100%;
  }
}


/* Compact incident student profile */
.case-overview-student .student-profile-details {
  display: grid;
  grid-template-columns:
    68px minmax(0, 1.15fr)
    42px minmax(0, .75fr);
  column-gap: 8px;
  row-gap: 8px;
  align-items: baseline;
  width: 100%;
}

.case-overview-student .student-profile-details dt {
  min-width: 0;
  font-size: .72rem;
  white-space: nowrap;
}

.case-overview-student .student-profile-details dd {
  min-width: 0;
  margin: 0;
  font-size: .82rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.case-overview-student .student-discipline-snapshot > div {
  padding: 9px 9px;
}

.case-overview-student .student-discipline-snapshot span {
  font-size: .61rem;
  line-height: 1.15;
  letter-spacing: .025em;
}

.case-overview-student .student-discipline-snapshot strong {
  font-size: .86rem;
}

.case-overview-student .student-photo-placeholder {
  width: 100%;
  height: 100%;
  min-height: 230px;
}

.case-overview-student .student-photo-placeholder span {
  width: 86px;
  height: 86px;
  font-size: 2.25rem;
}

@media (max-width: 1050px) {
  .case-overview-student .student-profile-details {
    grid-template-columns: 68px minmax(0, 1fr);
  }
}


/* Student overview readability v2 */
.case-overview-student .student-profile-details {
  grid-template-columns:
    76px minmax(0, 1.15fr)
    52px minmax(0, .85fr);
  column-gap: 10px;
  row-gap: 11px;
}

.case-overview-student .student-profile-details dt {
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.2;
}

.case-overview-student .student-profile-details dd {
  margin: 0;
  font-size: .96rem;
  font-weight: 850;
  line-height: 1.2;
  color: var(--brand-plum-dark, #362b33);
  overflow-wrap: anywhere;
}

.case-overview-student .student-discipline-snapshot {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.case-overview-student .student-discipline-snapshot > div {
  padding: 10px 12px;
}

.case-overview-student .student-discipline-snapshot span {
  font-size: .66rem;
  line-height: 1.2;
}

.case-overview-student .student-discipline-snapshot strong {
  font-size: .92rem;
}

@media (max-width: 1050px) {
  .case-overview-student .student-profile-details {
    grid-template-columns: 76px minmax(0, 1fr);
  }
}


/* Evidence preview actions */

/* Evidence layout polish */
.evidence-preview-column {
  min-width: 240px;
  max-width: 240px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
}

.evidence-preview {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.evidence-preview.evidence-preview-v36 {
  min-height: 210px;
}

.evidence-preview video,
.evidence-preview img {
  width: 100%;
  max-width: 200px;
  border-radius: 8px;
  display: block;
  margin: 0 auto;
}

.evidence-preview-actions {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  text-align: center;
}

.evidence-preview-actions .button-link,
.evidence-preview-actions .danger-outline-button,
.evidence-preview-actions .secondary-link {
  margin: 0;
}

.evidence-preview-actions .evidence-delete-form {
  margin: 0;
  display: inline-flex;
}

.evidence-review-pane {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.evidence-review-pane .evidence-review-card,
.evidence-review-pane .review-findings-card,
.evidence-review-pane > div {
  width: 100%;
}

@media (max-width: 900px) {
  .evidence-preview-column {
    max-width: 100%;
    width: 100%;
  }

  .evidence-preview video,
  .evidence-preview img {
    max-width: 260px;
  }

  .evidence-preview-actions {
    justify-content: center;
  }
}

.evidence-preview-column {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.evidence-preview-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  flex-wrap: wrap;
}

.evidence-preview-actions .button-link,
.evidence-preview-actions button {
  margin: 0;
}

.evidence-preview-actions .evidence-delete-form {
  margin: 0;
}

@media (max-width: 760px) {
  .evidence-preview-actions {
    width: 100%;
  }
}


/* Evidence card vertical alignment correction */
.evidence-card-grid.evidence-card-grid {
  align-items: stretch;
}

.evidence-preview-column {
  width: 100%;
  min-width: 0;
  max-width: none;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
}

.evidence-preview-column .evidence-preview {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  margin: 0;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  background: #111827;
  overflow: hidden;
}

.evidence-preview-column .evidence-preview video,
.evidence-preview-column .evidence-preview img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  display: block;
  object-fit: contain;
  background: #000;
}

.evidence-preview-actions {
  flex: 0 0 auto;
  width: 100%;
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}

.evidence-review-pane {
  display: block;
  align-self: stretch;
  min-width: 0;
}

.evidence-review-pane .evidence-meta:empty {
  display: none;
}

.evidence-review-pane .video-review-form {
  height: 100%;
  margin-top: 0;
}

.evidence-review-pane .video-review-form-v36 {
  margin-top: 0;
}

@media (min-width: 761px) {
  .evidence-card-grid {
    align-items: stretch;
  }

  .evidence-preview-column .evidence-preview {
    min-height: 100%;
  }
}


/* Evidence preview proportion polish */
@media (min-width: 981px) {
  .evidence-card-grid {
    grid-template-columns:
      minmax(285px, .82fr)
      minmax(0, 1.65fr);
  }

  .evidence-preview-column {
    min-width: 285px;
  }

  .evidence-preview-column .evidence-preview {
    width: 100%;
  }

  .evidence-preview-column .evidence-preview video,
  .evidence-preview-column .evidence-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
  }
}


/* Evidence preview buttons visibility fix */
.evidence-preview-column {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  align-self: stretch;
  min-height: 0;
  gap: 10px;
}

.evidence-preview-column .evidence-preview {
  width: 100%;
  height: auto;
  min-height: 0;
  margin: 0;
  align-self: stretch;
}

.evidence-preview-column .evidence-preview video,
.evidence-preview-column .evidence-preview img {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  object-fit: contain;
  object-position: center;
}

.evidence-preview-actions {
  width: 100%;
  min-height: 42px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 0 8px 8px;
  box-sizing: border-box;
}

@media (min-width: 981px) {
  .evidence-card-grid {
    align-items: stretch;
  }

  .evidence-preview-column .evidence-preview {
    min-height: 0;
  }
}


/* Automatic evidence type detection */
.evidence-upload-row-v39 {
  grid-template-columns:
    minmax(360px, 1.7fr)
    minmax(240px, 1fr)
    auto;
}

@media (max-width: 1040px) {
  .evidence-upload-row-v39 {
    grid-template-columns:
      minmax(300px, 1.5fr)
      minmax(220px, 1fr)
      auto;
  }

  .evidence-upload-action-v39 {
    grid-column: auto;
  }
}

@media (max-width: 760px) {
  .evidence-upload-row-v39 {
    grid-template-columns: 1fr;
  }

  .evidence-note-field-v39,
  .evidence-upload-action-v39 {
    grid-column: auto;
  }

  .evidence-upload-action-v39 button {
    width: 100%;
  }
}

/* Safari suspension date picker interaction fix */

/* Safari: make the entire First Suspension Day card open the date picker */
.suspension-start-card > span,
.suspension-start-card > strong {
  pointer-events: none !important;
}

.suspension-start-card #suspension_start {
  z-index: 10 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}


/* Vandalism policy callout */
.vandalism-policy-callout {
  margin: 12px 0 2px;
  padding: 12px 14px;
  border: 1px solid #e7c7bd;
  border-radius: 10px;
  background: #fff8f5;
}

.vandalism-policy-callout-title {
  margin-bottom: 4px;
  color: #8a3528;
  font-size: .78rem;
}

.vandalism-policy-callout p {
  margin: 0;
  color: #664f4c;
  font-size: .76rem;
  line-height: 1.45;
}


/* Saved evidence finding panel polish */
.evidence-item .saved-review,
.evidence-item .saved-review-card,
.evidence-item .saved-image-finding,
.evidence-item .saved-video-finding,
.evidence-item .saved-review-summary {
  min-height: 110px;
  padding: 16px 18px !important;
  border-radius: 10px;
  background: #fbf7f6;
  border-left: 3px solid #d76d4f;
  box-sizing: border-box;
}

.evidence-item .saved-review h3,
.evidence-item .saved-review-card h3,
.evidence-item .saved-image-finding h3,
.evidence-item .saved-video-finding h3,
.evidence-item .saved-review-summary h3,
.evidence-item .saved-review strong,
.evidence-item .saved-review-card strong,
.evidence-item .saved-image-finding strong,
.evidence-item .saved-video-finding strong,
.evidence-item .saved-review-summary strong {
  display: block;
  margin: 0 0 8px;
  color: #1f334b;
  font-size: 1rem;
  line-height: 1.25;
}

.evidence-item .saved-review p,
.evidence-item .saved-review-card p,
.evidence-item .saved-image-finding p,
.evidence-item .saved-video-finding p,
.evidence-item .saved-review-summary p,
.evidence-item .saved-review span,
.evidence-item .saved-review-card span,
.evidence-item .saved-image-finding span,
.evidence-item .saved-video-finding span,
.evidence-item .saved-review-summary span {
  display: block;
  margin: 0;
  color: #445b72;
  font-size: .86rem;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}

.evidence-item .saved-review .status,
.evidence-item .saved-review-card .status,
.evidence-item .saved-image-finding .status,
.evidence-item .saved-video-finding .status,
.evidence-item .saved-review-summary .status,
.evidence-item .saved-review .evidence-status,
.evidence-item .saved-review-card .evidence-status,
.evidence-item .saved-image-finding .evidence-status,
.evidence-item .saved-video-finding .evidence-status,
.evidence-item .saved-review-summary .evidence-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eef8f0;
  color: #2e6a45;
  font-size: .72rem;
  font-weight: 800;
  white-space: nowrap;
}

@media (max-width: 700px) {
  .evidence-item .saved-review,
  .evidence-item .saved-review-card,
  .evidence-item .saved-image-finding,
  .evidence-item .saved-video-finding,
  .evidence-item .saved-review-summary {
    min-height: 96px;
    padding: 14px 14px !important;
  }
}


/* Saved review v36 polish */
.saved-review.saved-review-v36 {
  min-height: 120px;
  padding: 18px 20px !important;
  margin: 12px 0 16px;
  border-left: 3px solid #d96f52;
  border-radius: 8px;
  background: #fbf7f5;
  box-sizing: border-box;
}

.saved-review-v36 .saved-review-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.saved-review-v36 .saved-review-heading strong {
  margin: 0;
  color: #1e3048;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.3;
}

.saved-review-v36 .saved-review-heading span {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: #edf7f0;
  color: #2d6844;
  font-size: .7rem;
  font-weight: 850;
  white-space: nowrap;
}

.saved-review.saved-review-v36 > p {
  margin: 0;
  max-width: 100%;
  color: #3f566e;
  font-size: .88rem;
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

@media (max-width: 700px) {
  .saved-review.saved-review-v36 {
    min-height: 105px;
    padding: 16px !important;
  }

  .saved-review-v36 .saved-review-heading {
    align-items: flex-start;
  }
}

/* Saved evidence finding — larger result container */
.saved-review.saved-review-v36 {
  min-height: 180px !important;
  padding: 18px 20px !important;
  margin: 12px 0 16px !important;
  display: flex !important;
  flex-direction: column !important;
  border: 1px solid #ead8d2 !important;
  border-left: 3px solid #d96f52 !important;
  border-radius: 10px !important;
  background: #fbf7f5 !important;
  box-sizing: border-box;
}

.saved-review-v36 .saved-review-heading {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  margin: 0 0 14px !important;
}

.saved-review-v36 .saved-review-heading strong {
  margin: 0 !important;
  color: #1f334b !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
}

.saved-review-v36 .saved-review-heading span {
  flex: 0 0 auto !important;
  padding: 5px 10px !important;
  border-radius: 999px !important;
  background: #edf8f1 !important;
  color: #28603f !important;
  font-size: .7rem !important;
  font-weight: 850 !important;
}

/* The saved reviewer finding itself */
.saved-review.saved-review-v36 > p {
  flex: 1 1 auto !important;
  width: 100% !important;
  min-height: 95px !important;
  margin: 0 !important;
  padding: 13px 14px !important;
  border: 1px solid #dde4ec !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #334b63 !important;
  font-size: .86rem !important;
  line-height: 1.5 !important;
  white-space: pre-wrap !important;
  overflow-wrap: anywhere !important;
  box-sizing: border-box !important;
}


/* Streamlined saved evidence finding */
.saved-review.saved-review-v36 {
  min-height: 0 !important;
  margin: 10px 0 14px !important;
  padding: 13px 15px !important;

  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: 14px;
  row-gap: 5px;

  border: 1px solid #eadbd6 !important;
  border-left: 3px solid #d96f52 !important;
  border-radius: 8px !important;
  background: #fcf9f8 !important;
  box-sizing: border-box;
}

.saved-review-v36 .saved-review-heading {
  grid-column: 1 / -1;

  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;

  margin: 0 !important;
}

.saved-review-v36 .saved-review-heading strong {
  margin: 0 !important;
  color: #20344d !important;
  font-size: .88rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}

.saved-review-v36 .saved-review-heading span {
  flex: 0 0 auto;
  padding: 4px 9px !important;

  border: 0 !important;
  border-radius: 999px !important;

  background: #eaf6ee !important;
  color: #2d6844 !important;

  font-size: .66rem !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
}

/* Saved finding text: plain, compact, readable */
.saved-review.saved-review-v36 > p {
  grid-column: 1 / -1;

  min-height: 0 !important;
  width: auto !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;

  color: #53677e !important;
  font-size: .76rem !important;
  line-height: 1.4 !important;

  white-space: pre-wrap !important;
  overflow-wrap: anywhere !important;
}

/* Keep Update Review visually separated but tighter */
.video-review-form.video-review-form-v36 {
  margin-top: 0 !important;
}

@media (max-width: 700px) {
  .saved-review.saved-review-v36 {
    padding: 12px 13px !important;
  }

  .saved-review-v36 .saved-review-heading {
    align-items: flex-start !important;
  }
}

/* Streamlined saved evidence finding */
.saved-review.saved-review-v36 {
  min-height: 0 !important;
  margin: 10px 0 14px !important;
  padding: 13px 15px !important;

  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: 14px;
  row-gap: 5px;

  border: 1px solid #eadbd6 !important;
  border-left: 3px solid #d96f52 !important;
  border-radius: 8px !important;
  background: #fcf9f8 !important;
  box-sizing: border-box;
}

.saved-review-v36 .saved-review-heading {
  grid-column: 1 / -1;

  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;

  margin: 0 !important;
}

.saved-review-v36 .saved-review-heading strong {
  margin: 0 !important;
  color: #20344d !important;
  font-size: .88rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}

.saved-review-v36 .saved-review-heading span {
  flex: 0 0 auto;
  padding: 4px 9px !important;

  border: 0 !important;
  border-radius: 999px !important;

  background: #eaf6ee !important;
  color: #2d6844 !important;

  font-size: .66rem !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
}

/* Saved finding text: plain, compact, readable */
.saved-review.saved-review-v36 > p {
  grid-column: 1 / -1;

  min-height: 0 !important;
  width: auto !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;

  color: #53677e !important;
  font-size: .76rem !important;
  line-height: 1.4 !important;

  white-space: pre-wrap !important;
  overflow-wrap: anywhere !important;
}

/* Keep Update Review visually separated but tighter */
.video-review-form.video-review-form-v36 {
  margin-top: 0 !important;
}

@media (max-width: 700px) {
  .saved-review.saved-review-v36 {
    padding: 12px 13px !important;
  }

  .saved-review-v36 .saved-review-heading {
    align-items: flex-start !important;
  }
}

/* Compact Evidence Library */
.evidence-list-v36 {
  display: grid;
  gap: 12px !important;
}

.evidence-item-v36 {
  border-radius: 10px !important;
  overflow: hidden;
}

/* Smaller header */
.evidence-item-v36 .evidence-card-header {
  padding: 10px 12px !important;
}

.evidence-item-v36 .evidence-card-title h3 {
  margin: 0 !important;
  font-size: .84rem !important;
}

.evidence-item-v36 .evidence-card-title p {
  margin: 2px 0 0 !important;
  font-size: .68rem !important;
}

/* Smaller evidence layout */
.evidence-item-v36 .evidence-card-grid {
  grid-template-columns: 220px minmax(0, 1fr) !important;
  min-height: 0 !important;
}

/* Reduce preview size */
.evidence-item-v36 .evidence-preview-column {
  min-width: 0 !important;
}

.evidence-item-v36 .evidence-preview-v36 {
  height: 250px !important;
  min-height: 250px !important;
  max-height: 250px !important;
}

.evidence-item-v36 .evidence-preview-v36 img,
.evidence-item-v36 .evidence-preview-v36 video {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

/* Smaller file action area */
.evidence-item-v36 .evidence-preview-actions {
  padding: 8px !important;
  gap: 7px !important;
}

.evidence-item-v36 .evidence-preview-actions a,
.evidence-item-v36 .evidence-preview-actions button {
  min-height: 34px !important;
  padding: 7px 10px !important;
  font-size: .72rem !important;
}

/* Compact right side */
.evidence-item-v36 .evidence-review-pane {
  padding: 12px 14px !important;
}

.evidence-item-v36 .evidence-meta-v36 {
  margin-bottom: 8px !important;
  padding-bottom: 8px !important;
}

/* Saved finding compact */
.evidence-item-v36 .saved-review-v36 {
  margin: 0 0 10px !important;
  padding: 10px 12px !important;
}

.evidence-item-v36 .saved-review-heading {
  margin-bottom: 4px !important;
}

.evidence-item-v36 .saved-review-v36 > p {
  font-size: .74rem !important;
}

/* Compact review form */
.evidence-item-v36 .video-review-form-v36 {
  padding: 12px !important;
}

.evidence-item-v36 .video-review-heading {
  margin-bottom: 8px !important;
}

.evidence-item-v36 .video-review-heading h4 {
  margin: 0 0 2px !important;
  font-size: .84rem !important;
}

.evidence-item-v36 .video-review-heading p {
  margin: 0 !important;
  font-size: .68rem !important;
}

/* Tighter form spacing */
.evidence-item-v36 .video-review-fields {
  gap: 9px !important;
}

.evidence-item-v36 .video-review-fields label {
  margin-bottom: 4px !important;
  font-size: .72rem !important;
}

.evidence-item-v36 .video-review-fields select,
.evidence-item-v36 .video-review-fields input {
  min-height: 38px !important;
  padding: 7px 10px !important;
}

/* This is the biggest vertical-space reduction */
.evidence-item-v36 .video-review-fields textarea {
  min-height: 90px !important;
  height: 90px !important;
  padding: 9px 10px !important;
}

/* Smaller Save button area */
.evidence-item-v36 .video-review-actions {
  margin-top: 9px !important;
}

.evidence-item-v36 .video-review-actions button {
  min-height: 36px !important;
  padding: 8px 14px !important;
  font-size: .74rem !important;
}

@media (max-width: 800px) {
  .evidence-item-v36 .evidence-card-grid {
    grid-template-columns: 1fr !important;
  }

  .evidence-item-v36 .evidence-preview-v36 {
    height: 220px !important;
    min-height: 220px !important;
  }
}


/* Inline upload / no-video actions */
.evidence-upload-action-v39 {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.evidence-upload-action-v39 .evidence-no-video-inline {
  white-space: nowrap;
}

@media (max-width: 700px) {
  .evidence-upload-action-v39 {
    justify-content: stretch;
  }

  .evidence-upload-action-v39 > button {
    flex: 1 1 auto;
  }
}

/* Consistent side spacing inside Evidence Review */
#evidence .workflow-panel-body > .evidence-action-path,
#evidence .workflow-panel-body > .evidence-identification-panel,
#evidence .workflow-panel-body > .evidence-review-actions,
#evidence .workflow-panel-body > .evidence-library-heading,
#evidence .workflow-panel-body > .evidence-list,
#evidence .workflow-panel-body > .evidence-tracking-card,
#evidence .workflow-panel-body > .evidence-next-step {
  margin-left: 16px !important;
  margin-right: 16px !important;
}

/* Keep the spacing comfortable on phones */
@media (max-width: 700px) {
  #evidence .workflow-panel-body > .evidence-action-path,
  #evidence .workflow-panel-body > .evidence-identification-panel,
  #evidence .workflow-panel-body > .evidence-review-actions,
  #evidence .workflow-panel-body > .evidence-library-heading,
  #evidence .workflow-panel-body > .evidence-list,
  #evidence .workflow-panel-body > .evidence-tracking-card,
  #evidence .workflow-panel-body > .evidence-next-step {
    margin-left: 10px !important;
    margin-right: 10px !important;
  }
}

/* Align Evidence Review child containers to the same left/right edge */
#evidence .evidence-review-actions > .evidence-review-action-heading,
#evidence .evidence-review-actions > .evidence-upload-panel,
#evidence .evidence-review-actions > .evidence-resolution-compact {
  width: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Align Evidence Review child containers to the same left/right edge */
#evidence .evidence-review-actions > .evidence-review-action-heading,
#evidence .evidence-review-actions > .evidence-upload-panel,
#evidence .evidence-review-actions > .evidence-resolution-compact {
  width: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Align Add Evidence with the other Evidence Review containers */
#evidence .evidence-upload-panel.evidence-upload-panel-v39 {
  padding: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  border-bottom: 0 !important;
  background: transparent !important;
}

#evidence .evidence-upload-form-v39 {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Align Evidence Library with the rest of Evidence Review */
#evidence .evidence-library-heading {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

#evidence .evidence-list-v36 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Keep only the useful vertical spacing */
#evidence .evidence-library-heading {
  padding-top: 16px !important;
  padding-bottom: 10px !important;
}

#evidence .evidence-list-v36 {
  padding-bottom: 16px !important;
}

/* Space between Evidence Review header and progress bar */
#evidence .evidence-action-path {
  margin-top: 14px !important;
}

/* Center evidence preview image with equal spacing */
#evidence .evidence-preview-column {
  padding: 16px !important;
  box-sizing: border-box !important;
}

#evidence .evidence-preview-v36 {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 12px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

#evidence .evidence-preview-v36 img,
#evidence .evidence-preview-v36 video {
  display: block !important;
  margin: 0 auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
}

/* Center the action buttons under the preview too */
#evidence .evidence-preview-actions {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding-top: 12px !important;
}

/* Make evidence preview box square and center the image */
#evidence .evidence-preview-v36 {
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  min-height: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 12px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

#evidence .evidence-preview-v36 img,
#evidence .evidence-preview-v36 video {
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 auto !important;
}

/* Remove dark background around evidence images */
#evidence .image-evidence .evidence-preview-v36 {
  background: transparent !important;
  border: 0 !important;
}

#evidence .image-evidence .evidence-preview-v36 img {
  background: transparent !important;
  border-radius: 8px !important;
}

/* Make evidence image slightly larger inside the preview */
#evidence .image-evidence .evidence-preview-v36 {
  padding: 6px !important;
}

#evidence .image-evidence .evidence-preview-v36 img {
  max-width: 96% !important;
  max-height: 96% !important;
}

/* vCompact — substantially denser Evidence Library cards */
#evidence .evidence-item-v36 .evidence-card-grid {
  grid-template-columns: 185px minmax(0, 1fr) !important;
  gap: 0 !important;
  min-height: 0 !important;
  align-items: start !important;
}

/* Compact left preview column */
#evidence .evidence-preview-column {
  padding: 12px 10px !important;
}

#evidence .image-evidence .evidence-preview-v36 {
  width: 160px !important;
  height: 190px !important;
  aspect-ratio: auto !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

#evidence .image-evidence .evidence-preview-v36 img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
}

/* Put image actions closer together */
#evidence .evidence-preview-actions {
  flex-direction: row !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 6px !important;
  padding: 8px 0 0 !important;
}

#evidence .evidence-preview-actions a,
#evidence .evidence-preview-actions button {
  min-height: 30px !important;
  padding: 5px 9px !important;
  font-size: .68rem !important;
}

/* Compact review side */
#evidence .evidence-review-pane {
  min-height: 0 !important;
  padding: 10px 12px !important;
}

#evidence .video-review-form-v36 {
  padding: 10px 12px !important;
  margin: 0 !important;
}

#evidence .video-review-heading {
  margin-bottom: 7px !important;
}

#evidence .video-review-heading h4 {
  margin: 0 0 2px !important;
  font-size: .82rem !important;
}

#evidence .video-review-heading p {
  margin: 0 !important;
  font-size: .66rem !important;
  line-height: 1.3 !important;
}

#evidence .video-review-fields {
  gap: 7px !important;
}

#evidence .video-review-fields .field {
  margin: 0 !important;
}

#evidence .video-review-fields label {
  margin: 0 0 3px !important;
  font-size: .7rem !important;
}

#evidence .video-review-fields select,
#evidence .video-review-fields input {
  min-height: 34px !important;
  height: 34px !important;
  padding: 5px 8px !important;
  font-size: .78rem !important;
}

/* Biggest space saver */
#evidence .video-review-fields textarea {
  min-height: 62px !important;
  height: 62px !important;
  padding: 7px 8px !important;
  font-size: .78rem !important;
  line-height: 1.35 !important;
}

/* Tighten Save button */
#evidence .video-review-actions {
  margin-top: 7px !important;
}

#evidence .video-review-actions button {
  min-height: 32px !important;
  padding: 6px 11px !important;
  font-size: .7rem !important;
}

/* Slightly tighter evidence header */
#evidence .evidence-card-header {
  padding: 8px 10px !important;
}

@media (max-width: 700px) {
  #evidence .evidence-item-v36 .evidence-card-grid {
    grid-template-columns: 1fr !important;
  }

  #evidence .image-evidence .evidence-preview-v36 {
    width: 170px !important;
    height: 200px !important;
  }
}

/* Route Safety Hub header logo size */
.district-brand .header-logo {
  width: 72px !important;
  height: 72px !important;
  object-fit: contain;
}

@media (max-width: 760px) {
  .district-brand .header-logo {
    width: 64px !important;
    height: 64px !important;
  }
}
