:root {
    color-scheme: dark;
    --bg: #050c13;
    --bg-deep: #02070c;
    --panel: #0a1721;
    --panel-2: #0d1d29;
    --panel-3: #102432;
    --line: #203746;
    --line-soft: #172b38;
    --text: #f2f7fa;
    --muted: #91a6b3;
    --cyan: #20c8ef;
    --cyan-soft: #0b5268;
    --green: #48d16f;
    --amber: #ffb020;
    --red: #ff4d56;
    --blue: #2587eb;
    --violet: #a66cff;
    --radius: 14px;
    --shadow: 0 18px 50px rgb(0 0 0 / 26%);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Phase 21 — tenant-scoped personnel, apparatus, and station editors. */
.resource-heading-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}

.resource-editor-workspace {
    display: grid;
    gap: 16px;
}

.resource-editor-form {
    padding: 22px;
}

.resource-form-section {
    margin-top: 22px;
    border-top: 1px solid rgba(77, 135, 160, .22);
    padding-top: 20px;
}

.resource-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.resource-form-grid--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.resource-form-grid label {
    display: grid;
    gap: 7px;
    min-width: 0;
    color: #94adba;
    font-size: .68rem;
    font-weight: 800;
}

.resource-form-grid input,
.resource-form-grid select,
.resource-form-grid textarea {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    border: 1px solid rgba(70, 130, 157, .38);
    border-radius: 10px;
    padding: 11px 12px;
    color: #edfaff;
    background: rgba(7, 23, 35, .96);
    font: inherit;
    font-size: .76rem;
}

.resource-form-grid input,
.resource-form-grid select {
    min-height: 46px;
}

.resource-form-grid textarea {
    resize: vertical;
}

.resource-form-grid :where(input, select, textarea):focus {
    border-color: rgba(57, 210, 245, .72);
    outline: 3px solid rgba(57, 210, 245, .1);
}

.resource-form-span-2 { grid-column: span 2; }
.resource-form-span-full { grid-column: 1 / -1; }

.resource-editor-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 22px;
    border-top: 1px solid rgba(77, 135, 160, .22);
    padding-top: 18px;
}

@media (max-width: 1050px) {
    .resource-form-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .resource-heading-actions,
    .resource-editor-actions {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .resource-heading-actions .button,
    .resource-editor-actions .button {
        width: 100%;
        box-sizing: border-box;
        justify-content: center;
    }

    .resource-editor-form { padding: 15px; }
    .resource-form-grid,
    .resource-form-grid--four { grid-template-columns: minmax(0, 1fr); }
    .resource-form-span-2,
    .resource-form-span-full { grid-column: auto; }
}

/* Phase 21 communications and device-alert center */
.push-alert-card { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 20px; }
.push-alert-card h2 { margin: 5px 0; }
.push-alert-card p { max-width: 780px; margin: 0; color: #8aa7b5; line-height: 1.5; }
.push-alert-card small { display: block; margin-top: 9px; color: #55dcb3; font-weight: 800; }
.push-alert-actions { display: flex; flex: 0 0 auto; gap: 8px; }
@media (max-width: 720px) { .push-alert-card, .push-alert-actions { align-items: stretch; flex-direction: column; } .push-alert-actions .button { width: 100%; justify-content: center; } }
.nav-count { display: inline-grid; min-width: 22px; height: 22px; margin-left: auto; padding: 0 6px; place-items: center; border-radius: 999px; color: #031019; background: #35d2f1; font-size: .68rem; font-style: normal; font-weight: 950; }
.trial-banner { margin-bottom: 18px; }
.communications-grid { display: grid; grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr); gap: 18px; }
.communication-command-center { display: grid; gap: 18px; }
.message-stack,
.notification-stack { display: grid; }
.message-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 13px; align-items: center; min-height: 74px; padding: 13px; border-bottom: 1px solid var(--line, rgba(145, 168, 183, .18)); color: inherit; text-decoration: none; }
.message-row.is-unread,
.notification-row.is-unread { background: rgba(53, 210, 241, .06); }
.message-avatar { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid rgba(53, 210, 241, .3); border-radius: 12px; color: #35d2f1; background: rgba(53, 210, 241, .08); font-weight: 900; }
.message-row > span:nth-child(2) { display: grid; gap: 5px; min-width: 0; }
.message-row small { color: var(--muted, #91a8b7); }
.message-row b { color: #35d2f1; font-size: .75rem; }
.notification-row { margin: 0; }
.notification-row button { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 14px; align-items: center; width: 100%; padding: 18px; border: 0; border-bottom: 1px solid rgba(145, 168, 183, .18); color: inherit; text-align: left; background: transparent; cursor: pointer; }
.notification-row button > span:nth-child(2) { display: grid; gap: 5px; }
.notification-row small { color: var(--muted, #91a8b7); }
.notification-row em { color: #78909f; font-size: .72rem; font-style: normal; }
.notification-dot { width: 8px; height: 8px; border-radius: 999px; background: #5c7180; }
.notification-row.is-unread .notification-dot { background: #35d2f1; box-shadow: 0 0 13px rgba(53, 210, 241, .65); }
.empty-command-state { display: grid; min-height: 210px; place-items: center; align-content: center; gap: 10px; color: var(--muted, #91a8b7); text-align: center; }
.empty-command-state svg { width: 42px; height: 42px; stroke: currentColor; }
.empty-command-state strong { color: var(--text, #f4f9fc); }
.communication-detail { max-width: 980px; }
@media (max-width: 900px) { .communications-grid { grid-template-columns: 1fr; } }

/* Phase 13 — public-site return path from secure department login. */
.login-public-link {
    position: fixed;
    z-index: 5;
    top: 22px;
    left: 24px;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    padding: 9px 14px;
    border: 1px solid rgba(57, 205, 240, .28);
    border-radius: 11px;
    color: #9fc4d4;
    background: rgba(5, 18, 29, .72);
    font-size: .75rem;
    font-weight: 800;
    text-decoration: none;
    backdrop-filter: blur(12px);
}

.login-public-link:hover,
.login-public-link:focus-visible {
    border-color: #35ccef;
    color: #effcff;
    outline: none;
}

@media (max-width: 720px) {
    .login-public-link {
        top: 12px;
        left: 12px;
    }
}

/* Phase 4: apparatus readiness and truck checks */
.incident-metric-grid article.is-danger {
    border-color: rgb(226 70 79 / 58%);
    background: linear-gradient(145deg, rgb(112 18 26 / 58%), rgb(35 13 19 / 94%));
}

.truck-check-guidance {
    margin: 0 0 .85rem;
}

.truck-schedule-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.truck-schedule-card {
    min-width: 0;
    padding: .75rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: linear-gradient(145deg, rgb(13 34 44 / 94%), rgb(8 24 33 / 96%));
}

.truck-schedule-card--overdue {
    border-color: rgb(226 70 79 / 60%);
    box-shadow: inset 3px 0 0 #e2464f;
}

.truck-schedule-card--due_today {
    border-color: rgb(233 164 42 / 58%);
    box-shadow: inset 3px 0 0 #e9a42a;
}

.truck-schedule-card__top {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .55rem;
}

.truck-schedule-card__top strong,
.truck-schedule-card__top small {
    display: block;
}

.truck-schedule-card__top strong {
    color: var(--text);
    font-size: .74rem;
}

.truck-schedule-card__top small {
    margin-top: .12rem;
    overflow: hidden;
    color: var(--muted);
    font-size: .57rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.truck-schedule-card dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .4rem;
    margin: .7rem 0;
}

.truck-schedule-card dl div {
    min-width: 0;
    padding: .45rem;
    border: 1px solid var(--line-soft);
    border-radius: 6px;
    background: rgb(3 14 22 / 36%);
}

.truck-schedule-card dt,
.truck-schedule-card dd {
    margin: 0;
}

.truck-schedule-card dt {
    color: var(--muted);
    font-size: .49rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.truck-schedule-card dd {
    margin-top: .16rem;
    color: #d7e4ea;
    font-size: .58rem;
    text-transform: capitalize;
}

.truck-schedule-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .38rem;
}

.truck-schedule-card__actions form {
    margin: 0;
}

.truck-schedule-card__actions .button {
    min-height: 34px;
    padding: .42rem .62rem;
    font-size: .57rem;
}

.truck-check-lower-grid {
    margin-top: .8rem;
}

.truck-check-history,
.deficiency-list {
    display: grid;
}

.truck-check-history > a,
.deficiency-list > a {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .55rem;
    min-height: 54px;
    padding: .45rem .15rem;
    border-bottom: 1px solid var(--line-soft);
}

.truck-check-history > a:last-child,
.deficiency-list > a:last-child {
    border-bottom: 0;
}

.truck-check-history > a:hover,
.deficiency-list > a:hover {
    background: rgb(32 200 239 / 4%);
}

.truck-check-history strong,
.truck-check-history small,
.deficiency-list strong,
.deficiency-list small {
    display: block;
}

.truck-check-history strong,
.deficiency-list strong {
    color: var(--text);
    font-size: .66rem;
}

.truck-check-history small,
.deficiency-list small {
    margin-top: .12rem;
    color: var(--muted);
    font-size: .55rem;
}

.deficiency-severity {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 58px;
    min-height: 25px;
    padding: .25rem .42rem;
    border: 1px solid #654f1c;
    border-radius: 999px;
    color: #f5d179;
    background: #241c0b;
    font-size: .48rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.deficiency-severity--critical {
    border-color: #7b252d;
    color: #ff9ba1;
    background: #2b0d12;
}

.deficiency-severity--major {
    border-color: #805018;
    color: #ffc774;
    background: #2a1908;
}

.deficiency-severity--observation {
    border-color: #245875;
    color: #8edbff;
    background: #0a2130;
}

.truck-check-hero {
    margin-bottom: .75rem;
}

.truck-check-summary {
    overflow: visible;
}

.truck-check-form input,
.truck-check-form select,
.truck-check-form textarea,
.deficiency-editor input,
.deficiency-editor select,
.deficiency-editor textarea,
.schedule-editor input {
    width: 100%;
    min-height: 42px;
    padding: .58rem .65rem;
    border: 1px solid var(--line);
    border-radius: 7px;
    color: var(--text);
    background: #091b25;
    font: inherit;
    font-size: .66rem;
}

.truck-check-form textarea,
.deficiency-editor textarea {
    min-height: 88px;
    resize: vertical;
}

.truck-check-form input:focus,
.truck-check-form select:focus,
.truck-check-form textarea:focus,
.deficiency-editor input:focus,
.deficiency-editor select:focus,
.deficiency-editor textarea:focus,
.schedule-editor input:focus {
    border-color: var(--cyan);
    outline: 2px solid rgb(32 200 239 / 16%);
}

.truck-reading-grid {
    margin-bottom: .9rem;
}

.truck-reading-grid label,
.truck-check-notes,
.truck-check-item__detail label,
.deficiency-editor label,
.schedule-editor .form-grid > label {
    display: grid;
    gap: .28rem;
    color: #aebfc8;
    font-size: .56rem;
    font-weight: 700;
    letter-spacing: .03em;
}

.truck-check-section {
    margin: .8rem 0 0;
    padding-top: .8rem;
    border-top: 1px solid var(--line);
}

.truck-check-section__heading {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: .55rem;
}

.truck-check-section__heading > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid #27617a;
    border-radius: 8px;
    color: var(--cyan);
    background: #0a2734;
    font-size: .6rem;
    font-weight: 800;
}

.truck-check-section__heading h2,
.truck-check-section__heading small {
    display: block;
    margin: 0;
}

.truck-check-section__heading h2 {
    font-size: .82rem;
}

.truck-check-section__heading small {
    margin-top: .14rem;
    color: var(--muted);
    font-size: .54rem;
}

.truck-check-items {
    display: grid;
    gap: .5rem;
}

.truck-check-item {
    display: grid;
    grid-template-columns: minmax(200px, 1.25fr) minmax(230px, .8fr) minmax(280px, 1fr);
    align-items: center;
    gap: .65rem;
    padding: .65rem;
    border: 1px solid var(--line-soft);
    border-radius: 8px;
    background: rgb(7 24 34 / 74%);
}

.truck-check-item--critical {
    border-left: 3px solid #d59127;
}

.truck-check-item__label strong,
.truck-check-item__label span {
    display: block;
}

.truck-check-item__label strong {
    color: #e5eef2;
    font-size: .67rem;
    line-height: 1.35;
}

.truck-check-item__label span {
    margin-top: .2rem;
    color: #e7ab46;
    font-size: .45rem;
    font-weight: 800;
    letter-spacing: .06em;
}

.result-choice-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .32rem;
}

.result-choice {
    min-width: 0;
    cursor: pointer;
}

.result-choice input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.result-choice span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: .4rem;
    border: 1px solid var(--line);
    border-radius: 7px;
    color: #adbec7;
    background: #0c222d;
    font-size: .56rem;
    font-weight: 800;
}

.result-choice input:focus-visible + span {
    outline: 2px solid var(--cyan);
    outline-offset: 2px;
}

.result-choice--pass input:checked + span {
    border-color: #2a874a;
    color: #91edaa;
    background: #0c321d;
}

.result-choice--fail input:checked + span {
    border-color: #9d3039;
    color: #ff9ba1;
    background: #351016;
}

.result-choice--not_applicable input:checked + span {
    border-color: #31627a;
    color: #9fd6ef;
    background: #102b39;
}

.truck-check-item__detail {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, .8fr);
    gap: .4rem;
}

.compact-choice-field {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.compact-choice-field legend {
    margin-bottom: .28rem;
    color: #aebfc8;
    font-size: .52rem;
    font-weight: 700;
    letter-spacing: .03em;
}

.compact-choice-grid {
    display: grid;
    gap: .28rem;
}

.compact-choice-grid--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.compact-choice-grid--status {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.compact-choice-grid label {
    min-width: 0;
    cursor: pointer;
}

.compact-choice-grid input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.compact-choice-grid label > span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: .32rem;
    border: 1px solid var(--line);
    border-radius: 7px;
    color: #aebec6;
    background: #0a202a;
    font-size: .49rem;
    font-weight: 800;
    text-align: center;
}

.compact-choice-grid input:checked + span {
    border-color: var(--cyan);
    color: #b9f2ff;
    background: #0b3443;
}

.compact-choice-grid input:focus-visible + span {
    outline: 2px solid var(--cyan);
    outline-offset: 2px;
}

.truck-check-notes {
    margin-top: .75rem;
}

.truck-check-completion-warning {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: .7rem;
    padding: .65rem;
    border: 1px solid #644d1b;
    border-radius: 8px;
    color: #e4c47f;
    background: #211a0c;
    font-size: .58rem;
    line-height: 1.5;
}

.truck-check-completion-warning svg {
    width: 1.2rem;
    flex: 0 0 1.2rem;
}

.truck-check-actions {
    position: sticky;
    bottom: .5rem;
    z-index: 3;
    justify-content: flex-end;
    margin-top: .8rem;
    padding: .6rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: rgb(6 20 29 / 94%);
    box-shadow: 0 8px 26px rgb(0 0 0 / 30%);
}

.truck-check-section--readonly .truck-check-item {
    grid-template-columns: minmax(0, 1fr) auto;
}

.truck-check-section--readonly .truck-check-item p {
    grid-column: 1 / -1;
    margin: 0;
    color: #c8d4da;
    font-size: .6rem;
}

.deficiency-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.deficiency-card {
    padding: .75rem;
    border: 1px solid #624c1c;
    border-radius: 9px;
    background: #18160e;
}

.deficiency-card--critical {
    border-color: #7b252d;
    background: #211014;
}

.deficiency-card__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.deficiency-card h3 {
    margin: .6rem 0 .25rem;
    color: var(--text);
    font-size: .75rem;
}

.deficiency-card > p {
    margin: 0 0 .6rem;
    color: #c2cfd5;
    font-size: .61rem;
    line-height: 1.5;
}

.deficiency-card .notice {
    margin: .55rem 0;
    font-size: .56rem;
}

.deficiency-editor {
    display: grid;
    gap: .55rem;
    margin-top: .65rem;
    padding-top: .65rem;
    border-top: 1px solid var(--line);
}

.check-toggle {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: .42rem !important;
    cursor: pointer;
}

.check-toggle input {
    width: 17px;
    min-height: 17px;
    accent-color: var(--cyan);
}

.check-toggle--boxed {
    min-height: 42px;
    padding: .55rem .65rem;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #091b25;
}

.apparatus-check-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
    margin-bottom: .7rem;
}

.apparatus-check-summary article {
    padding: .65rem;
    border: 1px solid var(--line-soft);
    border-radius: 8px;
    background: #0a202b;
}

.apparatus-check-summary span,
.apparatus-check-summary strong,
.apparatus-check-summary small {
    display: block;
}

.apparatus-check-summary span {
    color: var(--muted);
    font-size: .48rem;
    font-weight: 800;
    letter-spacing: .06em;
}

.apparatus-check-summary strong {
    margin-top: .25rem;
    color: var(--text);
    font-size: 1rem;
}

.apparatus-check-summary small {
    margin-top: .12rem;
    color: var(--muted);
    font-size: .52rem;
}

.apparatus-template-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    padding: .7rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #0a202b;
}

.apparatus-template-card strong,
.apparatus-template-card span,
.apparatus-template-card small {
    display: block;
}

.apparatus-template-card strong {
    color: var(--text);
    font-size: .7rem;
}

.apparatus-template-card span,
.apparatus-template-card small {
    margin-top: .2rem;
    color: var(--muted);
    font-size: .55rem;
    line-height: 1.45;
}

.schedule-editor {
    display: grid;
    gap: .55rem;
    margin: .5rem 0 .8rem;
    padding: .65rem;
    border: 1px solid var(--line-soft);
    border-radius: 9px;
    background: rgb(4 17 25 / 52%);
}

.schedule-choice-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .35rem;
}

.schedule-choice-grid label {
    cursor: pointer;
}

.schedule-choice-grid input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.schedule-choice-grid label > span {
    display: flex;
    min-height: 62px;
    flex-direction: column;
    justify-content: center;
    padding: .45rem;
    border: 1px solid var(--line);
    border-radius: 7px;
    color: #aebec6;
    background: #0a202a;
    text-align: center;
}

.schedule-choice-grid strong,
.schedule-choice-grid small {
    display: block;
}

.schedule-choice-grid strong {
    font-size: .56rem;
}

.schedule-choice-grid small {
    margin-top: .15rem;
    color: var(--muted);
    font-size: .43rem;
}

.schedule-choice-grid input:checked + span {
    border-color: var(--cyan);
    color: #b9f2ff;
    background: #0b3443;
    box-shadow: inset 0 0 0 1px rgb(32 200 239 / 22%);
}

.schedule-choice-grid input:focus-visible + span {
    outline: 2px solid var(--cyan);
    outline-offset: 2px;
}

.apparatus-check-history {
    margin-top: .7rem;
    border-top: 1px solid var(--line);
}

@media (max-width: 1180px) {
    .truck-schedule-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .truck-check-item {
        grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr);
    }

    .truck-check-item__detail {
        grid-column: 1 / -1;
    }

    .schedule-choice-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .truck-schedule-grid,
    .deficiency-card-grid,
    .apparatus-check-summary {
        grid-template-columns: 1fr;
    }

    .truck-schedule-card__top,
    .truck-check-item,
    .truck-check-section--readonly .truck-check-item {
        grid-template-columns: 1fr;
    }

    .truck-schedule-card__top .tone,
    .truck-check-section--readonly .tone {
        justify-self: start;
    }

    .truck-schedule-card dl,
    .schedule-choice-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .truck-check-item__detail {
        grid-template-columns: 1fr;
    }

    .compact-choice-grid--four,
    .compact-choice-grid--status {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .truck-check-actions {
        bottom: 0;
    }

    .truck-check-actions .button {
        flex: 1;
    }

    .apparatus-template-card {
        align-items: stretch;
        flex-direction: column;
    }
}

* {
    box-sizing: border-box;
}

html {
    min-width: 320px;
    background: var(--bg-deep);
}

body {
    min-height: 100vh;
    margin: 0;
    color: var(--text);
    background:
        radial-gradient(circle at 85% 0%, rgb(20 77 102 / 18%), transparent 28rem),
        var(--bg);
}

body,
button,
input {
    font: inherit;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input {
    color: inherit;
}

button,
a,
input {
    -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible,
input:focus-visible {
    outline: 3px solid rgb(32 200 239 / 55%);
    outline-offset: 2px;
}

svg {
    width: 1.35rem;
    height: 1.35rem;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.app-body {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
}

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 30;
    display: flex;
    width: 260px;
    flex-direction: column;
    border-right: 1px solid var(--line-soft);
    background: linear-gradient(180deg, #07131d 0%, #06101a 60%, #040b12 100%);
    box-shadow: 10px 0 30px rgb(0 0 0 / 18%);
}

.brand-block,
.department-block {
    display: flex;
    align-items: center;
    gap: .8rem;
}

.brand-block {
    min-height: 88px;
    padding: 1.1rem 1.2rem;
    border-bottom: 1px solid var(--line-soft);
}

.brand-block img,
.login-brand img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.brand-block strong,
.login-brand strong {
    display: block;
    font-size: 1.72rem;
    font-weight: 900;
    font-style: italic;
    letter-spacing: -.07em;
    line-height: 1;
}

.brand-block span,
.login-brand span {
    display: block;
    margin-top: .35rem;
    color: var(--muted);
    font-size: .55rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.department-block {
    min-height: 90px;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid var(--line-soft);
    background: rgb(255 255 255 / 1.5%);
}

.department-block img,
.department-mark {
    display: grid;
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    place-items: center;
    object-fit: contain;
}

.department-mark {
    border: 1px solid var(--cyan-soft);
    border-radius: 50%;
    color: var(--cyan);
    background: #0d2634;
    font-weight: 800;
}

.department-block strong,
.department-block span {
    display: block;
}

.department-block strong {
    font-size: .84rem;
    line-height: 1.25;
}

.department-block span {
    margin-top: .3rem;
    color: var(--red);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .06em;
}

.primary-nav {
    overflow-y: auto;
    padding: .65rem;
}

.nav-item {
    display: flex;
    min-height: 48px;
    align-items: center;
    gap: .85rem;
    margin-bottom: .25rem;
    padding: .7rem .8rem;
    border: 1px solid transparent;
    border-radius: 9px;
    color: #c5d2d9;
    font-size: .82rem;
    font-weight: 650;
}

.nav-item svg {
    flex: 0 0 auto;
    color: #a5b7c1;
}

.nav-item.is-active {
    border-color: #1a84a1;
    color: #fff;
    background: linear-gradient(90deg, #0b6179, #0a3445);
    box-shadow: inset 3px 0 0 var(--cyan);
}

.nav-item.is-active svg {
    color: var(--cyan);
}

.nav-item:not(.nav-item--pending):hover {
    border-color: var(--line);
    background: #0d1e29;
}

.nav-item--pending {
    cursor: default;
    opacity: .58;
}

.nav-item small {
    margin-left: auto;
    color: var(--muted);
    font-size: .55rem;
    letter-spacing: .08em;
}

.sidebar-footer {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: auto;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--line-soft);
    color: var(--muted);
    font-size: .72rem;
}

.secure-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 10px rgb(72 209 111 / 60%);
}

.secure-dot--amber {
    background: var(--amber);
    box-shadow: 0 0 10px rgb(255 176 32 / 55%);
}

.app-frame {
    display: flex;
    min-width: 0;
    min-height: 100vh;
    grid-column: 2;
    flex-direction: column;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    min-height: 88px;
    align-items: center;
    justify-content: space-between;
    padding: .85rem 1.5rem;
    border-bottom: 1px solid var(--line-soft);
    background: rgb(5 14 22 / 94%);
    backdrop-filter: blur(16px);
}

.topbar-time strong,
.topbar-time span,
.topbar-user strong,
.topbar-user span {
    display: block;
}

.topbar-time strong {
    font-size: 1.55rem;
    letter-spacing: -.04em;
}

.topbar-time span,
.topbar-user span {
    margin-top: .2rem;
    color: var(--muted);
    font-size: .72rem;
}

.topbar-user {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.topbar-user strong {
    max-width: 220px;
    overflow: hidden;
    font-size: .86rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-avatar {
    display: grid !important;
    width: 42px;
    height: 42px;
    margin: 0 !important;
    place-items: center;
    border: 1px solid #2b586e;
    border-radius: 50%;
    color: var(--cyan) !important;
    background: #0c2837;
    font-weight: 800;
}

.icon-button {
    display: grid;
    width: 42px;
    height: 42px;
    padding: 0;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: #c4d3da;
    background: #0c1c27;
    cursor: pointer;
}

.icon-button:hover {
    border-color: #2a718b;
    color: var(--cyan);
}

.mobile-menu,
.mobile-overlay {
    display: none;
}

.main-content {
    width: 100%;
    max-width: 1700px;
    flex: 1;
    margin: 0 auto;
    padding: 1.5rem;
}

.app-footer {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.5rem;
    border-top: 1px solid var(--line-soft);
    color: var(--muted);
    font-size: .7rem;
}

.page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.page-heading h1,
.profile-hero h1 {
    margin: .3rem 0 .25rem;
    font-size: clamp(1.65rem, 3vw, 2.5rem);
    letter-spacing: -.045em;
    line-height: 1.05;
}

.page-heading p,
.profile-hero p {
    margin: 0;
    color: var(--muted);
    font-size: .86rem;
}

.eyebrow {
    color: var(--cyan);
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .14em;
}

.live-badge {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    gap: .5rem;
    padding: .45rem .7rem;
    border: 1px solid #1b6241;
    border-radius: 999px;
    color: #8af2a8;
    background: #0b281c;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .07em;
}

.live-badge > span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 10px var(--green);
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .8rem;
    margin-bottom: 1rem;
}

.metric-card {
    position: relative;
    display: flex;
    min-height: 132px;
    justify-content: space-between;
    overflow: hidden;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: linear-gradient(135deg, var(--panel-2), var(--panel));
    box-shadow: var(--shadow);
}

.metric-card::before {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(135deg, var(--card-tint, transparent), transparent 65%);
    pointer-events: none;
}

.metric-card > * {
    position: relative;
}

.metric-card > svg {
    width: 2.35rem;
    height: 2.35rem;
    align-self: center;
    color: var(--card-accent, var(--cyan));
    opacity: .8;
}

.metric-card span,
.metric-card small,
.metric-card strong {
    display: block;
}

.metric-card span {
    color: #d6e2e8;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .06em;
}

.metric-card strong {
    margin: .35rem 0 .25rem;
    font-size: 2.1rem;
    letter-spacing: -.06em;
}

.metric-card small {
    max-width: 145px;
    color: #b0c0c9;
    font-size: .68rem;
    line-height: 1.35;
}

.metric-card--cyan { --card-accent: var(--cyan); --card-tint: rgb(0 142 183 / 30%); }
.metric-card--green { --card-accent: var(--green); --card-tint: rgb(32 139 65 / 30%); }
.metric-card--blue { --card-accent: #57a9ff; --card-tint: rgb(28 103 180 / 30%); }
.metric-card--violet { --card-accent: var(--violet); --card-tint: rgb(112 55 166 / 30%); }
.metric-card--amber { --card-accent: var(--amber); --card-tint: rgb(173 100 0 / 32%); }
.metric-card--slate { --card-accent: #aabcc7; --card-tint: rgb(83 107 120 / 22%); }
.metric-card--danger { --card-accent: #ff6a71; --card-tint: rgb(185 24 35 / 35%); }

a.metric-card:hover,
.directory-card:hover,
.unit-row:hover {
    border-color: #33718b;
    background-color: #102532;
}

.dashboard-grid,
.detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    gap: 1rem;
}

.panel {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: linear-gradient(180deg, rgb(13 30 42 / 96%), rgb(8 20 29 / 96%));
    box-shadow: var(--shadow);
}

.panel--wide {
    grid-column: span 1;
}

.detail-grid .panel--wide {
    grid-column: 1 / -1;
}

.panel-heading {
    display: flex;
    min-height: 42px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .8rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--line-soft);
}

.panel-heading h2 {
    margin: .2rem 0 0;
    font-size: .95rem;
    letter-spacing: -.015em;
}

.panel-heading > span,
.panel-heading > a {
    color: var(--cyan);
    font-size: .68rem;
}

.station-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.station-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .65rem;
    padding: .8rem;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    background: #0a1822;
}

.station-card__icon,
.unit-icon {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 9px;
    color: var(--cyan);
    background: #0c3445;
}

.station-card strong,
.station-card span {
    display: block;
}

.station-card strong {
    overflow: hidden;
    font-size: .78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.station-card span {
    margin-top: .2rem;
    color: var(--muted);
    font-size: .65rem;
}

.station-card dl {
    display: flex;
    grid-column: 1 / -1;
    gap: .5rem;
    margin: .25rem 0 0;
}

.station-card dl div {
    flex: 1;
    padding: .45rem;
    border-radius: 7px;
    background: #0e202c;
}

.station-card dt,
.station-card dd {
    display: inline;
    margin: 0;
    font-size: .66rem;
}

.station-card dt { color: var(--muted); }
.station-card dd { float: right; color: var(--text); font-weight: 800; }

.coverage-display {
    display: flex;
    min-height: 240px;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.coverage-display > strong {
    color: var(--cyan);
    font-size: 3.4rem;
    letter-spacing: -.07em;
}

.coverage-display progress {
    width: 100%;
    height: 10px;
    margin: .7rem 0;
    overflow: hidden;
    border: 0;
    border-radius: 999px;
    background: #122734;
}

.coverage-display progress::-webkit-progress-bar { background: #122734; }
.coverage-display progress::-webkit-progress-value { background: linear-gradient(90deg, #167da0, var(--cyan)); }
.coverage-display progress::-moz-progress-bar { background: linear-gradient(90deg, #167da0, var(--cyan)); }

.coverage-display p,
.coverage-display span {
    margin: .35rem 0;
    color: #c4d1d7;
    font-size: .75rem;
    line-height: 1.45;
}

.coverage-display span {
    color: var(--muted);
    font-size: .67rem;
}

.status-summary,
.filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.status-summary {
    margin-bottom: .75rem;
}

.status-chip,
.filter-chip {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    gap: .5rem;
    padding: .4rem .65rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: #b8c8d0;
    background: #0b1b26;
    font-size: .68rem;
}

.status-chip strong,
.filter-chip strong {
    color: var(--text);
}

.filter-chip.is-active,
.filter-chip:hover {
    border-color: #238bad;
    color: #eafaff;
    background: #0b4255;
}

.unit-list {
    display: grid;
}

.unit-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    padding: .65rem .25rem;
    border-bottom: 1px solid var(--line-soft);
}

.unit-row:last-child {
    border-bottom: 0;
}

.unit-row strong,
.unit-row span {
    display: block;
}

.unit-row strong { font-size: .76rem; }
.unit-row div > span { margin-top: .18rem; color: var(--muted); font-size: .64rem; }

.tone {
    display: inline-flex !important;
    width: fit-content;
    min-height: 25px;
    align-items: center;
    padding: .25rem .48rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: .58rem !important;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.tone--good { border-color: #226e40; color: #79ed9b; background: #0b2d1d; }
.tone--attention { border-color: #775818; color: #ffd06d; background: #2b210b; }
.tone--danger { border-color: #84313a; color: #ff8b92; background: #321016; }
.tone--neutral { color: #aebdc5; background: #18252d; }

.quick-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .6rem;
}

.quick-grid > * {
    display: flex;
    min-height: 90px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .45rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    color: #dce8ed;
    background: #0c202c;
    font-size: .7rem;
    font-weight: 700;
}

.quick-grid a:hover {
    border-color: var(--cyan);
    background: #0d3444;
}

.quick-grid svg {
    width: 1.8rem;
    height: 1.8rem;
    color: var(--cyan);
}

.quick-grid__pending {
    opacity: .55;
}

.quick-grid small {
    color: var(--amber);
    font-size: .52rem;
    letter-spacing: .08em;
}

.integrity-strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    margin-top: 1rem;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--line);
}

.integrity-strip > div {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .2rem .5rem;
    padding: .75rem;
    background: #091720;
}

.integrity-strip .secure-dot { grid-row: 1 / span 2; align-self: center; }
.integrity-strip strong { font-size: .69rem; }
.integrity-strip small { color: var(--muted); font-size: .6rem; }

.notice {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: 1rem;
    padding: .75rem .9rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: #ccdae0;
    background: #0b1d28;
    font-size: .72rem;
}

.notice--attention { border-color: #66501e; color: #f3d48e; background: #211b0d; }
.notice--success { border-color: #226e40; color: #8de9a7; background: #0b291a; }

.heading-stats {
    display: flex;
    gap: .5rem;
}

.heading-stats span {
    min-width: 76px;
    padding: .55rem .7rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: var(--muted);
    background: var(--panel);
    font-size: .6rem;
    text-align: center;
    text-transform: uppercase;
}

.heading-stats strong {
    display: block;
    margin-bottom: .15rem;
    color: var(--text);
    font-size: 1.15rem;
}

.filter-panel {
    display: grid;
    gap: .8rem;
    margin-bottom: 1rem;
    padding: .85rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
}

.search-form {
    display: flex;
    gap: .55rem;
}

.search-box {
    position: relative;
    min-width: 180px;
    flex: 1;
}

.search-box svg {
    position: absolute;
    top: 50%;
    left: .75rem;
    width: 1rem;
    height: 1rem;
    color: var(--muted);
    transform: translateY(-50%);
}

.search-box input,
.login-form input[type="text"],
.login-form input[type="password"] {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: var(--text);
    background: #07141d;
}

.search-box input {
    padding: .65rem .75rem .65rem 2.35rem;
}

.search-box input::placeholder,
.login-form input::placeholder {
    color: #617783;
}

.search-box input:focus,
.login-form input:focus {
    border-color: var(--cyan);
    box-shadow: 0 0 0 3px rgb(32 200 239 / 12%);
}

.button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: .65rem 1rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    font-size: .74rem;
    font-weight: 800;
    cursor: pointer;
}

.button--primary {
    border-color: #1688a8;
    color: #021017;
    background: linear-gradient(135deg, #44d8f8, #1eb7dd);
}

.button--primary:hover { background: #62e2ff; }
.button--quiet { color: #c5d3da; background: #10232e; }
.button--wide { width: 100%; }

.filter-row--scroll {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: .15rem;
}

.filter-row--scroll .filter-chip {
    flex: 0 0 auto;
}

.directory-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.directory-card {
    display: flex;
    min-width: 0;
    min-height: 200px;
    gap: .8rem;
    padding: .9rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: linear-gradient(145deg, #0d1f2b, #08151e);
    box-shadow: 0 12px 30px rgb(0 0 0 / 18%);
}

.directory-avatar {
    display: grid;
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    place-items: center;
    border: 1px solid #23677e;
    border-radius: 13px;
    color: var(--cyan);
    background: #0b3343;
    font-size: .9rem;
    font-weight: 900;
}

.directory-avatar--unit {
    border-color: #347044;
    color: var(--green);
    background: #0c2d1b;
}

.directory-avatar--unit svg {
    width: 1.9rem;
    height: 1.9rem;
}

.directory-card__body {
    min-width: 0;
    flex: 1;
}

.directory-card__title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .5rem;
}

.directory-card__title > strong {
    overflow: hidden;
    font-size: .85rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.directory-card__body > span {
    display: block;
    margin-top: .25rem;
    color: var(--cyan);
    font-size: .68rem;
}

.directory-card dl {
    display: grid;
    gap: .35rem;
    margin: .75rem 0;
}

.directory-card dl div {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    padding-bottom: .3rem;
    border-bottom: 1px solid var(--line-soft);
}

.directory-card dt,
.directory-card dd {
    margin: 0;
    font-size: .63rem;
}

.directory-card dt { color: var(--muted); }
.directory-card dd { max-width: 62%; overflow: hidden; color: #d3dee3; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }

.linked-label,
.attention-label {
    display: flex;
    align-items: center;
    gap: .35rem;
    color: #78e99a;
    font-size: .6rem;
}

.attention-label { color: #ffcb68; }
.muted { color: var(--muted); }

.empty-state {
    display: grid;
    min-height: 260px;
    grid-column: 1 / -1;
    place-items: center;
    align-content: center;
    border: 1px dashed var(--line);
    border-radius: var(--radius);
    color: var(--muted);
    text-align: center;
}

.empty-state svg { width: 2.5rem; height: 2.5rem; color: var(--cyan); }
.empty-state h2 { margin: .7rem 0 .15rem; color: var(--text); font-size: 1rem; }
.empty-state p { margin: 0; font-size: .72rem; }

.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    margin-top: 1rem;
}

.pagination a,
.pagination span,
.pagination strong {
    min-height: 38px;
    padding: .55rem .75rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: .68rem;
}

.pagination a { color: var(--cyan); background: var(--panel); }
.pagination span { color: #607580; }
.pagination strong { border-color: transparent; color: var(--muted); }

.back-link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: 1rem;
    color: var(--cyan);
    font-size: .72rem;
    font-weight: 700;
}

.back-link svg { width: 1rem; height: 1rem; }

.profile-hero {
    display: flex;
    min-height: 150px;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1.2rem;
    border: 1px solid #25556a;
    border-radius: var(--radius);
    background: linear-gradient(120deg, #0d3243, #0b1a25 60%);
    box-shadow: var(--shadow);
}

.profile-hero > .tone {
    margin-left: auto;
}

.profile-avatar {
    display: grid;
    width: 78px;
    height: 78px;
    flex: 0 0 78px;
    place-items: center;
    border: 2px solid var(--cyan);
    border-radius: 18px;
    color: var(--cyan);
    background: #092536;
    font-size: 1.35rem;
    font-weight: 900;
}

.profile-avatar svg { width: 2.8rem; height: 2.8rem; }
.profile-hero--unit { border-color: #2d6640; background: linear-gradient(120deg, #123824, #0b1a25 60%); }
.profile-hero--unit .profile-avatar { border-color: var(--green); color: var(--green); background: #0c2919; }

.detail-list {
    display: grid;
    margin: 0;
}

.detail-list div {
    display: grid;
    grid-template-columns: minmax(110px, .8fr) minmax(0, 1.2fr);
    gap: .75rem;
    padding: .65rem 0;
    border-bottom: 1px solid var(--line-soft);
}

.detail-list div:last-child { border-bottom: 0; }
.detail-list dt,
.detail-list dd { margin: 0; font-size: .7rem; }
.detail-list dt { color: var(--muted); }
.detail-list dd { overflow-wrap: anywhere; color: #dbe5e9; font-weight: 650; text-align: right; }

.access-state {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .8rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: #b7c6cd;
    background: #0b1a24;
}

.access-state--good { border-color: #28663e; background: #0c2518; }
.access-state svg { width: 1.7rem; height: 1.7rem; color: var(--cyan); }
.access-state--good svg { color: var(--green); }
.access-state strong,
.access-state span { display: block; }
.access-state strong { color: var(--text); font-size: .75rem; }
.access-state span { margin-top: .2rem; font-size: .64rem; }

.record-list { display: grid; gap: .5rem; }
.record-list article { padding: .7rem; border: 1px solid var(--line-soft); border-radius: 8px; background: #091720; }
.record-list article > div { display: flex; justify-content: space-between; gap: 1rem; }
.record-list strong { font-size: .72rem; }
.record-list span,
.record-list small { color: var(--muted); font-size: .62rem; }
.record-list small { display: block; margin-top: .4rem; }

.privacy-note {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin: .75rem 0 0;
    color: var(--muted);
    font-size: .6rem;
}

.privacy-note svg { width: .9rem; height: .9rem; color: var(--green); }

.capacity-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .7rem;
    margin-bottom: .85rem;
}

.capacity-grid article {
    display: grid;
    min-height: 125px;
    place-items: center;
    align-content: center;
    padding: .75rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #091a25;
    text-align: center;
}

.capacity-grid span { color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .08em; }
.capacity-grid strong { margin: .3rem 0; color: var(--cyan); font-size: 2rem; letter-spacing: -.06em; }
.capacity-grid small { color: #9eb0b9; font-size: .65rem; }
.water-panel .notice { margin-bottom: 0; }

.login-body {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 1.25rem;
    background:
        linear-gradient(rgb(2 8 13 / 88%), rgb(2 8 13 / 95%)),
        radial-gradient(circle at 50% 10%, #16465b, #030a10 58%);
}

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

.login-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    margin-bottom: 1rem;
}

.login-card {
    padding: 1.45rem;
    border: 1px solid #264758;
    border-radius: 18px;
    background: linear-gradient(155deg, rgb(14 34 47 / 98%), rgb(6 17 25 / 98%));
    box-shadow: 0 30px 80px rgb(0 0 0 / 48%);
}

.login-card__header {
    margin-bottom: 1.2rem;
    text-align: center;
}

.login-card__header h1 {
    margin: .4rem 0 .3rem;
    font-size: 1.75rem;
    letter-spacing: -.045em;
}

.login-card__header p,
.login-help,
.login-footer {
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.5;
}

.login-card__header p { margin: 0; }
.login-form { display: grid; gap: .55rem; }
.login-form > label:not(.check-row) { margin-top: .3rem; color: #c7d4da; font-size: .7rem; font-weight: 700; }
.login-form input[type="text"],
.login-form input[type="password"] { padding: .7rem .8rem; }

.check-row {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: .35rem 0 .55rem;
    color: #aebfc7;
    font-size: .68rem;
}

.check-row input { width: 18px; height: 18px; accent-color: var(--cyan); }
.field-error { margin: 0; color: #ff9aa0; font-size: .65rem; }
.login-help { margin: 1rem 0 0; text-align: center; }
.login-footer { margin-top: .85rem; text-align: center; font-size: .62rem; }

/* PSOps V3 incident operations */
select,
textarea,
.incident-form input,
.unit-response-form input,
.water-source-card input {
    width: 100%;
    min-height: 43px;
    padding: .58rem .65rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    background: #07141d;
}

select:focus,
textarea:focus,
.incident-form input:focus,
.unit-response-form input:focus,
.water-source-card input:focus {
    border-color: var(--cyan);
    outline: 0;
    box-shadow: 0 0 0 3px rgb(32 200 239 / 12%);
}

textarea {
    min-height: 100px;
    resize: vertical;
}

input[readonly] {
    color: #91a6b3;
    background: #0a1821;
}

.select-control {
    width: auto;
    min-width: 170px;
}

.button svg {
    width: 1rem;
    height: 1rem;
    margin-right: .35rem;
}

.incident-metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
    margin-bottom: 1rem;
}

/* Phase 16.1 — separated, responsive command-center metric cards. */
.incident-metric-grid > article {
    --metric-accent: #20c8ef;
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "label value"
        "detail detail";
    min-width: 0;
    min-height: 92px;
    align-content: center;
    column-gap: .85rem;
    row-gap: .38rem;
    overflow: hidden;
    padding: 1rem 1.08rem;
    border: 1px solid rgb(75 139 166 / 28%);
    border-radius: 12px;
    background:
        radial-gradient(circle at 92% 10%, rgb(32 200 239 / 10%), transparent 48%),
        linear-gradient(145deg, rgb(13 34 47 / 96%), rgb(7 20 29 / 98%));
    box-shadow:
        inset 3px 0 0 var(--metric-accent),
        inset 0 1px 0 rgb(255 255 255 / 3%),
        0 12px 28px rgb(0 0 0 / 15%);
}

.incident-metric-grid > article::after {
    position: absolute;
    inset: 0 0 auto;
    height: 1px;
    content: "";
    background: linear-gradient(90deg, var(--metric-accent), transparent 72%);
    opacity: .7;
}

.incident-metric-grid > article:nth-child(2) { --metric-accent: #5d9dff; }
.incident-metric-grid > article:nth-child(3) { --metric-accent: #43dc9b; }
.incident-metric-grid > article:nth-child(4) { --metric-accent: #ffbd4a; }

.incident-metric-grid > article > span {
    grid-area: label;
    align-self: end;
    min-width: 0;
    color: #a9c0cb;
    font-size: .64rem;
    font-weight: 900;
    letter-spacing: .09em;
    line-height: 1.25;
    text-transform: uppercase;
}

.incident-metric-grid > article > strong {
    grid-area: value;
    align-self: center;
    color: var(--metric-accent);
    font-size: clamp(1.65rem, 2.3vw, 2.15rem);
    font-variant-numeric: tabular-nums;
    letter-spacing: -.055em;
    line-height: 1;
}

.incident-metric-grid > article > small {
    grid-area: detail;
    display: block;
    min-width: 0;
    color: #7793a0;
    font-size: .69rem;
    font-weight: 650;
    line-height: 1.35;
}

.incident-metric-grid > article.is-danger {
    --metric-accent: #ff6e76;
    border-color: rgb(226 70 79 / 58%);
    background:
        radial-gradient(circle at 92% 10%, rgb(255 110 118 / 12%), transparent 48%),
        linear-gradient(145deg, rgb(77 20 28 / 82%), rgb(28 13 18 / 98%));
}

.incident-metric {
    display: flex;
    min-height: 88px;
    align-items: center;
    justify-content: space-between;
    padding: .9rem 1rem;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: linear-gradient(135deg, #0d1f2b, #08151e);
}

.incident-metric span { color: #b6c6ce; font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.incident-metric strong { font-size: 2rem; letter-spacing: -.06em; }
.incident-metric:hover,
.incident-metric.is-active { border-color: var(--metric-color, var(--cyan)); box-shadow: inset 3px 0 0 var(--metric-color, var(--cyan)); }
.incident-metric--danger { --metric-color: var(--red); }
.incident-metric--attention { --metric-color: var(--amber); }
.incident-metric--good { --metric-color: var(--green); }
.incident-metric--neutral { --metric-color: #8ba0ac; }

.incident-list {
    display: grid;
    gap: .55rem;
}

.incident-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) minmax(180px, auto);
    align-items: center;
    gap: .85rem;
    padding: .85rem;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: linear-gradient(135deg, #0c1d28, #07141d);
}

.incident-row:hover { border-color: #2b7791; background: #0d2430; }

.incident-family {
    display: grid;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    place-items: center;
    border: 1px solid #2a6176;
    border-radius: 12px;
    color: var(--cyan);
    background: #0b2b3a;
}

.incident-family--fire { border-color: #8e3038; color: #ff7279; background: #351117; }
.incident-family--medical { border-color: #1f628e; color: #64b7f3; background: #0c2840; }
.incident-family--rescue { border-color: #a36c13; color: #ffca63; background: #382508; }
.incident-family--hazmat { border-color: #7954a1; color: #c596f5; background: #261536; }

.incident-row__main > div { display: flex; align-items: center; gap: .45rem; }
.incident-row__main strong { font-size: .86rem; }
.incident-row__main p { margin: .3rem 0 0; overflow: hidden; color: var(--muted); font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.incident-row__meta { text-align: right; }
.incident-row__meta strong,
.incident-row__meta span,
.incident-row__meta small { display: block; }
.incident-row__meta strong { color: var(--cyan); font-size: .72rem; }
.incident-row__meta span,
.incident-row__meta small { margin-top: .18rem; color: var(--muted); font-size: .61rem; }

.incident-hero {
    display: flex;
    min-height: 130px;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1.1rem;
    border: 1px solid #28576b;
    border-radius: var(--radius);
    background: linear-gradient(120deg, #0d3243, #0b1a25 58%);
    box-shadow: var(--shadow);
}

.incident-hero--fire { border-color: #6f2b34; background: linear-gradient(120deg, #35131a, #0b1a25 58%); }
.incident-hero h1 { margin: .25rem 0; font-size: clamp(1.5rem, 3vw, 2.35rem); letter-spacing: -.04em; }
.incident-hero p { margin: 0; color: var(--muted); font-size: .74rem; }
.incident-hero__status { display: flex; align-items: flex-end; gap: .4rem; margin-left: auto; flex-direction: column; }

.short-flow-banner,
.canonical-note {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin-bottom: 1rem;
    padding: .75rem .85rem;
    border: 1px solid #755b1e;
    border-radius: 10px;
    color: #f5d98b;
    background: #241d0b;
}

.short-flow-banner svg,
.canonical-note svg { flex: 0 0 auto; color: var(--amber); }
.short-flow-banner strong,
.short-flow-banner span { display: block; }
.short-flow-banner strong { color: #fff0b8; font-size: .76rem; }
.short-flow-banner span,
.canonical-note span { margin-top: .15rem; font-size: .66rem; line-height: 1.45; }
.canonical-note { border-color: #235f78; color: #b9dce9; background: #0a2634; }
.canonical-note svg { color: var(--cyan); }

.incident-workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(280px, 1fr);
    align-items: start;
    gap: 1rem;
}

.incident-workspace-main { display: grid; gap: 1rem; min-width: 0; }
.incident-wrap-panel { position: sticky; top: 104px; display: grid; gap: 1rem; }

.incident-form label,
.unit-response-form label,
.water-source-card form > label,
.form-grid label,
.unit-timeline-grid label {
    display: grid;
    gap: .35rem;
    color: #c1d0d7;
    font-size: .66rem;
    font-weight: 700;
}

.incident-form label > small,
.unit-response-form label > small { color: var(--muted); font-size: .58rem; font-weight: 500; line-height: 1.4; }

.form-grid {
    display: grid;
    gap: .7rem;
}

.form-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-span-two { grid-column: span 2; }

.timeline-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .55rem;
    margin: 1rem 0;
    padding: .8rem;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    background: #081720;
}

.timeline-field--dispatch_time { grid-column: span 1; }
.timeline-field--cancelled_at input { border-color: #6c531b; }
.form-actions { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1rem; }
.form-actions--split { justify-content: space-between; }

.confirmation-check {
    display: flex !important;
    align-items: center;
    grid-template-columns: auto 1fr;
    margin-top: .8rem;
    padding: .7rem;
    border: 1px solid #63501d;
    border-radius: 8px;
    background: #1d190d;
}

.confirmation-check input { width: 18px; min-height: 18px; accent-color: var(--amber); }

.assignment-picker,
.crew-picker {
    margin-bottom: .8rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #091821;
}

.assignment-picker summary,
.crew-picker summary {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .7rem .8rem;
    color: var(--cyan);
    font-size: .7rem;
    font-weight: 800;
    cursor: pointer;
}

.assignment-picker summary svg { width: 1rem; height: 1rem; }
.assignment-picker__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; padding: 0 .7rem .7rem; }
.assignment-picker__grid button {
    width: 100%;
    min-height: 70px;
    padding: .6rem;
    border: 1px solid var(--line-soft);
    border-radius: 8px;
    color: var(--text);
    background: #0d2330;
    text-align: left;
    cursor: pointer;
}
.assignment-picker__grid button:hover { border-color: var(--cyan); }
.assignment-picker__grid strong,
.assignment-picker__grid span { display: block; }
.assignment-picker__grid strong { font-size: .7rem; }
.assignment-picker__grid span { margin-top: .25rem; color: var(--muted); font-size: .58rem; }

.response-unit-list { display: grid; gap: .75rem; }
.response-unit-card { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #091923; }
.response-unit-card > header { display: flex; align-items: center; gap: .7rem; padding: .75rem; border-bottom: 1px solid var(--line-soft); background: #0c202b; }
.response-unit-card h3 { margin: 0; font-size: .82rem; }
.response-unit-card p { margin: .2rem 0 0; color: var(--muted); font-size: .62rem; }
.response-unit-card header .tone { margin-left: auto; }
.unit-response-form { display: grid; gap: .75rem; padding: .75rem; }
.unit-timeline-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .5rem; }
.crew-picker { margin: 0 .75rem .75rem; }
.crew-picker form { padding: 0 .7rem .7rem; }
.crew-grid { display: grid; max-height: 280px; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; overflow: auto; margin-bottom: .65rem; padding: .15rem; }
.crew-grid label { display: flex; align-items: center; gap: .5rem; padding: .45rem; border: 1px solid var(--line-soft); border-radius: 7px; background: #0b202b; font-size: .62rem; }
.crew-grid input { width: 17px; height: 17px; min-height: 17px; flex: 0 0 17px; accent-color: var(--cyan); }
.crew-grid strong,
.crew-grid small { display: block; }
.crew-grid small { margin-top: .15rem; color: var(--muted); font-size: .55rem; }
.release-unit-form { padding: 0 .75rem .75rem; text-align: right; }
.release-unit-form button { padding: 0; border: 0; color: #d8878c; background: transparent; font-size: .6rem; cursor: pointer; }
.unit-readonly-times { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--line-soft); }
.unit-readonly-times span { padding: .65rem; color: var(--muted); background: #091923; font-size: .58rem; }
.unit-readonly-times strong { display: block; margin-top: .2rem; color: var(--text); }

.water-source-grid { display: grid; gap: .75rem; }
.water-source-card { padding: .8rem; border: 1px solid #2a5c72; border-radius: 11px; background: #09202c; }
.water-source-card--water_used { border-color: #287245; background: #0a2518; }
.water-source-card--no_water_used { border-color: #465761; background: #111d23; }
.water-source-card header { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }
.water-source-card h3 { margin: .2rem 0 0; font-size: .9rem; }
.water-capacity-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: .7rem 0; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 8px; background: var(--line-soft); }
.water-capacity-strip span { padding: .6rem; color: var(--muted); background: #091821; font-size: .58rem; }
.water-capacity-strip strong { display: block; margin-top: .2rem; color: var(--cyan); font-size: .72rem; }
.water-choice-row { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: .7rem; }
.water-choice-row label { display: flex; align-items: center; gap: .35rem; min-height: 36px; padding: .4rem .6rem; border: 1px solid var(--line); border-radius: 999px; background: #0d222c; font-size: .62rem; cursor: pointer; }
.water-choice-row input { width: 16px; min-height: 16px; accent-color: var(--cyan); }
.capacity-editor { margin-top: .85rem; }

.requirement-list { display: grid; gap: .45rem; margin-bottom: .8rem; }
.requirement-item { display: flex; align-items: center; gap: .5rem; padding: .55rem; border: 1px solid #654e1b; border-radius: 8px; color: #eacb7f; background: #201a0c; font-size: .62rem; }
.requirement-item svg { width: 1rem; height: 1rem; flex: 0 0 1rem; }
.requirement-item.is-complete { border-color: #235f3a; color: #84e7a0; background: #0b2518; }
.empty-state--compact { min-height: 150px; }
.incident-readonly-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.dashboard-incident-list { display: grid; }
.dashboard-incident-list > a { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(160px, auto) auto; align-items: center; gap: .65rem; padding: .55rem .2rem; border-bottom: 1px solid var(--line-soft); }
.dashboard-incident-list > a:last-child { border-bottom: 0; }
.dashboard-incident-list > a:hover { background: rgb(32 200 239 / 4%); }
.dashboard-incident-list .incident-family { width: 36px; height: 36px; flex-basis: 36px; }
.dashboard-incident-list strong,
.dashboard-incident-list small { display: block; }
.dashboard-incident-list strong { font-size: .69rem; }
.dashboard-incident-list small { margin-top: .15rem; overflow: hidden; color: var(--muted); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 1280px) {
    .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .station-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .incident-workspace-grid { grid-template-columns: minmax(0, 2.3fr) minmax(260px, 1fr); }
    .unit-timeline-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .assignment-picker__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 920px) {
    .app-body { display: block; }
    .sidebar { transform: translateX(-105%); transition: transform .2s ease; }
    .sidebar.is-open { transform: translateX(0); }
    .mobile-overlay { position: fixed; inset: 0; z-index: 25; background: rgb(0 0 0 / 58%); }
    .mobile-overlay.is-open { display: block; }
    .app-frame { min-height: 100vh; }
    .mobile-menu { display: grid; }
    .topbar-time { margin-right: auto; margin-left: .75rem; }
    .topbar-user > div { display: none; }
    .dashboard-grid,
    .detail-grid { grid-template-columns: 1fr; }
    .incident-workspace-grid { grid-template-columns: 1fr; }
    .incident-wrap-panel { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .form-grid--three,
    .timeline-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .form-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .crew-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .panel--wide { grid-column: auto; }
    .integrity-strip { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .topbar { min-height: 70px; padding: .65rem .75rem; }
    .topbar-time strong { font-size: 1rem; }
    .topbar-time span { font-size: .58rem; }
    .user-avatar { display: none !important; }
    .main-content { padding: 1rem .75rem; }
    .page-heading { align-items: flex-start; flex-direction: column; }
    .incident-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .incident-row { grid-template-columns: auto minmax(0, 1fr); }
    .incident-row__meta { grid-column: 2; text-align: left; }
    .incident-hero { align-items: flex-start; flex-wrap: wrap; }
    .incident-hero__status { width: 100%; align-items: flex-start; margin-left: 0; }
    .form-grid--two,
    .form-grid--three,
    .form-grid--four,
    .timeline-grid,
    .unit-timeline-grid,
    .assignment-picker__grid,
    .crew-grid,
    .water-capacity-strip,
    .incident-wrap-panel { grid-template-columns: 1fr; }
    .form-span-two { grid-column: auto; }
    .dashboard-incident-list > a { grid-template-columns: auto minmax(0, 1fr); }
    .dashboard-incident-list > a > :nth-child(3),
    .dashboard-incident-list > a > .tone { grid-column: 2; }
    .live-badge { align-self: flex-start; }
    .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .metric-card { min-height: 122px; }
    .metric-card > svg { width: 1.8rem; height: 1.8rem; }
    .metric-card strong { font-size: 1.75rem; }
    .station-grid,
    .directory-grid,
    .capacity-grid { grid-template-columns: 1fr; }
    .directory-card { min-height: 185px; }
    .integrity-strip { grid-template-columns: 1fr; }
    .search-form { flex-wrap: wrap; }
    .search-box { flex-basis: 100%; }
    .search-form .button { flex: 1; }
    .heading-stats { width: 100%; }
    .heading-stats span { flex: 1; }
    .profile-hero { align-items: flex-start; flex-wrap: wrap; }
    .profile-avatar { width: 62px; height: 62px; flex-basis: 62px; }
    .profile-hero > .tone { margin-left: 0; }
    .detail-list div { grid-template-columns: 1fr; gap: .25rem; }
    .detail-list dd { text-align: left; }
    .app-footer { align-items: center; flex-direction: column; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

/* PSOps V3 community-risk operations */
.guided-form,
.risk-form { display: grid; gap: 1rem; }

.risk-form input:not([type="radio"]):not([type="checkbox"]),
.guided-form input:not([type="radio"]):not([type="checkbox"]),
.risk-form textarea,
.guided-form textarea {
    width: 100%;
    min-height: 43px;
    padding: .58rem .65rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    background: #07141d;
    font: inherit;
    font-size: .66rem;
}

.risk-form input:focus,
.guided-form input:focus,
.risk-form textarea:focus,
.guided-form textarea:focus {
    border-color: var(--cyan);
    outline: 0;
    box-shadow: 0 0 0 3px rgb(32 200 239 / 12%);
}

.risk-form label:not(.choice-card):not(.check-toggle),
.guided-form label:not(.choice-card):not(.check-toggle) {
    display: grid;
    gap: .35rem;
    color: #c1d0d7;
    font-size: .66rem;
    font-weight: 700;
}

.guided-step {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 1rem;
    overflow: visible;
}

.guided-step__number {
    display: grid;
    width: 50px;
    height: 50px;
    place-items: center;
    border: 1px solid #226883;
    border-radius: 14px;
    color: var(--cyan);
    background: #092230;
    font-size: .76rem;
    font-weight: 900;
}

.guided-step__body { min-width: 0; }
.choice-field,
.compact-choice-field { min-width: 0; margin: .85rem 0; padding: 0; border: 0; }
.choice-field legend,
.compact-choice-field legend { margin-bottom: .45rem; color: #aebfc8; font-size: .59rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.choice-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.choice-card-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.choice-card-grid--five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.choice-card-grid--scroll { max-height: 300px; overflow: auto; padding: .1rem; }
.choice-card { position: relative; display: block; min-width: 0; cursor: pointer; }
.choice-card input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.choice-card > span { display: flex; min-height: 66px; flex-direction: column; justify-content: center; padding: .65rem .7rem; border: 1px solid var(--line-soft); border-radius: 9px; color: #bfd0d8; background: #091a24; transition: border-color .15s ease, background .15s ease; }
.choice-card strong,
.choice-card small { display: block; }
.choice-card strong { font-size: .66rem; }
.choice-card small { margin-top: .25rem; color: var(--muted); font-size: .55rem; line-height: 1.35; }
.choice-card:hover > span { border-color: #287793; }
.choice-card input:checked + span { border-color: var(--cyan); color: #e9fbff; background: #0a2b39; box-shadow: inset 0 0 0 1px rgb(32 200 239 / 25%); }
.choice-card input:focus-visible + span { outline: 3px solid rgb(32 200 239 / 20%); }

.compact-choice-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.quantity-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; }
.quantity-grid label { padding: .7rem; border: 1px solid var(--line-soft); border-radius: 9px; background: #091a24; }
.quantity-grid input { font-size: 1rem !important; font-weight: 900 !important; }
.quantity-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; overflow: hidden; margin-top: .8rem; border: 1px solid var(--line-soft); border-radius: 9px; background: var(--line-soft); }
.quantity-summary span { padding: .7rem; color: var(--muted); background: #091a24; font-size: .57rem; }
.quantity-summary strong { display: block; margin-bottom: .15rem; color: var(--cyan); font-size: 1rem; }
.form-guidance,
.record-note { margin: .7rem 0 0; padding: .65rem; border-left: 3px solid #256783; color: #a9bbc4; background: #091b25; font-size: .62rem; line-height: 1.5; }

.directory-toolbar.risk-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: .65rem; margin-bottom: .8rem; padding: .7rem; border: 1px solid var(--line-soft); border-radius: 9px; background: #081820; }
.risk-toolbar .directory-search { position: relative; display: block; min-width: 260px; flex: 1; }
.risk-toolbar .directory-search svg { position: absolute; top: 50%; left: .65rem; z-index: 1; width: 1rem; height: 1rem; color: var(--muted); transform: translateY(-50%); }
.risk-toolbar .directory-search input { width: 100%; min-height: 43px; padding: .58rem .65rem .58rem 2.15rem; border: 1px solid var(--line); border-radius: 8px; color: var(--text); background: #07141d; }
.risk-toolbar .compact-choice-field { min-width: min(100%, 620px); flex: 3; margin: 0; }
.risk-record-list { display: grid; }
.risk-record-row { display: grid; grid-template-columns: auto minmax(180px, 1.4fr) minmax(145px, .8fr) minmax(145px, .8fr) auto; align-items: center; gap: .7rem; padding: .68rem .2rem; border-bottom: 1px solid var(--line-soft); }
.risk-record-row:hover { background: rgb(32 200 239 / 4%); }
.risk-record-icon { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid #245e77; border-radius: 9px; color: var(--cyan); background: #09202c; }
.risk-record-icon svg { width: 1.1rem; height: 1.1rem; }
.risk-record-row strong,
.risk-record-row small { display: block; }
.risk-record-row strong { overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.risk-record-row small { margin-top: .2rem; overflow: hidden; color: var(--muted); font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
.risk-lower-grid,
.risk-summary-grid { margin-top: 1rem; }
.supply-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.supply-grid > div { display: grid; grid-template-columns: minmax(90px, 1fr) repeat(2, minmax(70px, .7fr)); align-items: end; gap: .5rem; padding: .6rem; border: 1px solid var(--line-soft); border-radius: 8px; background: #091a24; }
.supply-grid > div > strong { align-self: center; font-size: .64rem; }
.supply-grid label { font-size: .54rem !important; }
.risk-hero { margin-bottom: .85rem; }
.device-ledger,
.visit-device-list { display: grid; gap: .45rem; margin-top: .7rem; }
.device-ledger article,
.visit-device-list article { padding: .6rem; border: 1px solid var(--line-soft); border-radius: 8px; background: #091a24; }
.device-ledger strong,
.device-ledger span,
.device-ledger small { display: block; }
.device-ledger strong { font-size: .67rem; }
.device-ledger span { margin-top: .2rem; color: #c0d0d7; font-size: .59rem; }
.device-ledger small { margin-top: .2rem; color: var(--muted); font-size: .55rem; }
.field-action-panel { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.field-action-panel--embedded { margin: 0 0 1rem; padding: .8rem; border: 1px solid #245e77; border-radius: 9px; background: #09202c; }
.field-action-panel h2,
.field-action-panel h3 { margin: .25rem 0; }
.field-action-panel p { margin: 0; color: var(--muted); font-size: .64rem; }
.active-visit-panel,
.finding-entry-panel,
.completion-panel { margin-top: 1rem; }
.device-form,
.completion-form { padding: .8rem; border: 1px solid var(--line-soft); border-radius: 10px; background: #081820; }
.completion-form { margin-top: 1rem; border-color: #6c541b; background: #1a170c; }
.visit-device-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.visit-device-list strong,
.visit-device-list small { display: block; margin-top: .25rem; font-size: .59rem; }
.visit-device-list small { color: var(--muted); }
.check-toggle { display: flex !important; min-height: 43px; align-items: center; gap: .5rem; align-self: end; padding: .55rem; border: 1px solid var(--line-soft); border-radius: 8px; color: #c1d0d7; background: #091a24; font-size: .61rem; font-weight: 700; }
.check-toggle input[type="checkbox"] { width: 18px; height: 18px; min-height: 18px; accent-color: var(--cyan); }

@media (max-width: 1100px) {
    .choice-card-grid--five,
    .choice-card-grid--four,
    .quantity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .risk-record-row { grid-template-columns: auto minmax(160px, 1fr) minmax(130px, .7fr) auto; }
    .risk-record-row > :nth-child(4) { display: none; }
    .visit-device-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .guided-step { grid-template-columns: 1fr; }
    .guided-step__number { width: 42px; height: 42px; }
    .choice-card-grid,
    .choice-card-grid--four,
    .choice-card-grid--five,
    .compact-choice-grid--three,
    .quantity-grid,
    .quantity-summary,
    .supply-grid,
    .visit-device-list { grid-template-columns: 1fr; }
    .risk-record-row { grid-template-columns: auto minmax(0, 1fr); }
    .risk-record-row > div:not(.risk-record-main),
    .risk-record-row > .tone { grid-column: 2; }
    .field-action-panel { align-items: flex-start; flex-direction: column; }
    .field-action-panel .button { width: 100%; }
}

/* PSOps V3 launch operations: stations, meetings, reporting, NERIS readiness */
.station-card { color: inherit; text-decoration: none; }
.station-card:hover { border-color: #2a7995; background: #0b222e; }
.station-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.station-directory-card { display: grid; gap: .75rem; padding: 1rem; border: 1px solid var(--line); border-radius: 12px; color: inherit; background: linear-gradient(145deg, #0b1c27, #08141d); text-decoration: none; }
.station-directory-card:hover { border-color: var(--cyan); transform: translateY(-1px); }
.station-directory-card header { display: flex; align-items: center; gap: .7rem; }
.station-directory-card header > .tone { margin-left: auto; }
.station-directory-card h2 { margin: .2rem 0 0; font-size: .92rem; }
.station-directory-card p { margin: 0; color: var(--muted); font-size: .62rem; }
.station-directory-card__icon { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border: 1px solid #27627a; border-radius: 10px; color: var(--cyan); background: #092230; }
.station-directory-card__icon svg { width: 1.25rem; height: 1.25rem; }
.station-directory-card dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; overflow: hidden; margin: 0; border: 1px solid var(--line-soft); border-radius: 8px; background: var(--line-soft); }
.station-directory-card dl div { padding: .6rem; background: #081820; }
.station-directory-card dt { color: var(--muted); font-size: .54rem; }
.station-directory-card dd { margin: .2rem 0 0; color: var(--cyan); font-size: .83rem; font-weight: 900; }

.meeting-workspace { align-items: start; }
.meeting-ledger { display: grid; gap: .45rem; }
.meeting-ledger article,
.meeting-ledger > a { display: block; padding: .62rem; border: 1px solid var(--line-soft); border-radius: 8px; color: inherit; background: #091a24; }
.meeting-ledger strong,
.meeting-ledger span,
.meeting-ledger small { display: block; }
.meeting-ledger strong { font-size: .66rem; }
.meeting-ledger span { margin-top: .22rem; color: var(--muted); font-size: .57rem; }
.meeting-ledger small { margin-top: .2rem; color: var(--cyan); font-size: .54rem; }
.meeting-ledger p { color: #bacbd3; font-size: .6rem; line-height: 1.5; }
.record-entry { margin-top: .75rem; border: 1px solid var(--line); border-radius: 9px; background: #081820; }
.record-entry summary { padding: .65rem .75rem; color: var(--cyan); font-size: .62rem; font-weight: 800; cursor: pointer; }
.record-entry form { padding: 0 .75rem .75rem; }
.motion-ledger { display: grid; gap: .55rem; }
.motion-ledger article { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: .7rem; padding: .65rem; border: 1px solid var(--line-soft); border-radius: 9px; background: #091a24; }
.motion-ledger strong,
.motion-ledger small { display: block; }
.motion-ledger strong { font-size: .65rem; line-height: 1.4; }
.motion-ledger small { margin-top: .2rem; color: var(--muted); font-size: .55rem; }
.motion-number { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 8px; color: var(--cyan); background: #0b2b39; font-size: .62rem; font-weight: 900; }
.preserve-lines { white-space: pre-wrap; }

.report-range { margin-bottom: .9rem; }
.report-range .form-actions { align-items: end; margin: 0; }
.report-metrics { margin-bottom: 1rem; }

.report-continuity {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .8rem;
    margin: 0 0 .9rem;
    border: 1px solid rgb(55 212 157 / 32%);
    border-radius: var(--radius);
    padding: .82rem .9rem;
    background:
        radial-gradient(circle at 100% 0, rgb(47 220 163 / 9%), transparent 38%),
        linear-gradient(135deg, rgb(8 49 48 / 84%), rgb(7 25 36 / 96%));
    box-shadow: var(--shadow);
}

.report-continuity.needs-attention {
    border-color: rgb(245 169 56 / 48%);
    background: linear-gradient(135deg, rgb(71 48 13 / 48%), rgb(7 25 36 / 96%));
}

.report-continuity-icon {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border: 1px solid rgb(60 224 167 / 54%);
    border-radius: .62rem;
    color: #63e6b4;
    background: rgb(20 123 88 / 22%);
    font-size: .82rem;
    font-weight: 900;
}

.report-continuity > div:nth-child(2) { min-width: 0; }
.report-continuity > div:nth-child(2) > span,
.report-continuity > div:nth-child(2) > strong { display: block; }
.report-continuity > div:nth-child(2) > span { color: #6fdcb5; font-size: .52rem; font-weight: 900; letter-spacing: .12em; }
.report-continuity > div:nth-child(2) > strong { margin-top: .18rem; color: #ecfff8; font-size: .76rem; }
.report-continuity p { margin: .28rem 0 0; color: #8eafad; font-size: .56rem; line-height: 1.45; }

.report-continuity-status {
    border: 1px solid rgb(61 222 164 / 34%);
    border-radius: 999px;
    padding: .32rem .5rem;
    color: #6de7b8;
    background: rgb(20 116 83 / 16%);
    font-size: .49rem;
    font-weight: 900;
    letter-spacing: .08em;
    white-space: nowrap;
}
.report-bars { display: grid; gap: .65rem; }
.report-bars > div { display: grid; grid-template-columns: 110px minmax(0, 1fr) 60px; align-items: center; gap: .65rem; color: #c4d4dc; font-size: .62rem; }
.report-bars progress { width: 100%; height: 11px; border: 0; border-radius: 999px; overflow: hidden; background: #102631; }
.report-bars progress::-webkit-progress-bar { background: #102631; }
.report-bars progress::-webkit-progress-value { background: linear-gradient(90deg, #1487af, var(--cyan)); }
.report-bars progress::-moz-progress-bar { background: linear-gradient(90deg, #1487af, var(--cyan)); }
.report-bars strong { color: var(--cyan); text-align: right; }
.pipeline-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 9px; background: var(--line-soft); }
.pipeline-grid div { padding: .7rem; background: #091a24; }
.pipeline-grid span,
.pipeline-grid strong { display: block; }
.pipeline-grid span { color: var(--muted); font-size: .55rem; }
.pipeline-grid strong { margin-top: .25rem; color: var(--cyan); font-size: 1.2rem; }
.export-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .55rem; }
.export-grid a { display: grid; min-height: 100px; place-items: center; padding: .7rem; border: 1px solid var(--line-soft); border-radius: 9px; color: inherit; background: #091a24; text-align: center; }
.export-grid a:hover { border-color: var(--cyan); }
.export-grid svg { width: 1.4rem; height: 1.4rem; color: var(--cyan); }
.export-grid strong { font-size: .65rem; }
.export-grid span { color: var(--muted); font-size: .54rem; }

.neris-callout,
.neris-safety-banner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; padding: .75rem .85rem; border: 1px solid #25667e; border-radius: 10px; background: #09212d; }
.neris-callout strong,
.neris-callout p,
.neris-safety-banner strong,
.neris-safety-banner span { display: block; }
.neris-callout strong { margin-top: .2rem; font-size: .75rem; }
.neris-callout p { margin: .2rem 0 0; color: var(--muted); font-size: .58rem; }
.neris-safety-banner { justify-content: flex-start; border-color: #6b541a; background: #1c180b; }
.neris-safety-banner > svg { width: 1.3rem; height: 1.3rem; flex: 0 0 1.3rem; color: var(--amber); }
.neris-safety-banner strong { color: #f1d184; font-size: .68rem; }
.neris-safety-banner span { margin-top: .2rem; color: #c8b880; font-size: .58rem; line-height: 1.4; }
.neris-form { display: grid; gap: .9rem; }
.neris-form > label,
.neris-system-grid label,
.neris-submit-form label { display: grid; gap: .35rem; color: #c1d0d7; font-size: .62rem; font-weight: 700; }
.neris-form input,
.neris-form select,
.neris-submit-form input { width: 100%; min-height: 43px; padding: .58rem .65rem; border: 1px solid var(--line); border-radius: 8px; color: var(--text); background: #07141d; font: inherit; font-size: .62rem; }
.neris-form small { color: var(--muted); font-size: .54rem; font-weight: 500; }
.neris-fire-panel { padding: .8rem; border: 1px solid #663823; border-radius: 10px; background: #1b110d; }
.neris-detail-panel { margin-top: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: 10px; background: rgba(7, 20, 31, .58); }
.neris-detail-panel select[multiple] { min-height: 12rem; }
.neris-aid-row + .neris-aid-row { margin-top: .7rem; }
.neris-system-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .5rem; }
.payload-preview { border: 1px solid var(--line-soft); border-radius: 8px; background: #06121a; }
.payload-preview summary { padding: .7rem; color: var(--cyan); font-size: .62rem; font-weight: 800; cursor: pointer; }
.payload-preview pre { max-height: 520px; overflow: auto; margin: 0; padding: .8rem; border-top: 1px solid var(--line-soft); color: #aed3df; font-size: .58rem; line-height: 1.5; white-space: pre-wrap; word-break: break-word; }
.neris-submit-form { display: grid; gap: .6rem; margin-top: .75rem; }
.button--full { width: 100%; justify-content: center; }

@media (max-width: 1100px) {
    .station-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .neris-system-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .export-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .station-directory-grid,
    .neris-system-grid,
    .export-grid,
    .pipeline-grid { grid-template-columns: 1fr; }
    .motion-ledger article { grid-template-columns: auto minmax(0, 1fr); }
    .motion-ledger article > .tone,
    .motion-ledger article > small { grid-column: 2; }
    .report-bars > div { grid-template-columns: 82px minmax(0, 1fr) 45px; }
    .neris-callout { align-items: flex-start; flex-direction: column; }
    .neris-callout .button { width: 100%; }
}

/* Phase 9 — operational incident search. */
.incident-search-form {
    display: grid;
    gap: .75rem;
}

.incident-search-query {
    width: 100%;
    box-sizing: border-box;
}

.incident-search-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
}

.incident-search-fields label,
.report-map-filter-grid label {
    display: grid;
    gap: .3rem;
    color: #a9bec8;
    font-size: .57rem;
    font-weight: 800;
}

.incident-search-fields input,
.incident-search-fields select,
.report-map-filter-grid input,
.report-map-filter-grid select {
    width: 100%;
    min-height: 42px;
    box-sizing: border-box;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: .55rem .62rem;
    color: var(--text);
    background: #07141d;
    font: inherit;
    font-size: .61rem;
}

.incident-search-actions {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
}

.incident-row__search-context {
    display: block;
    margin-top: .22rem;
    color: #6f93a5;
    font-size: .52rem;
}

/* Phase 9 — searchable historical/current call map. */
.report-map-filter-grid {
    display: grid;
    grid-template-columns: 150px 150px 190px minmax(260px, 1fr) auto;
    align-items: end;
    gap: .6rem;
}

.report-map-filter-grid .form-actions {
    display: flex;
    gap: .45rem;
}

.report-incident-map { margin-bottom: 1rem; }

.report-incident-map .panel-heading p {
    max-width: 720px;
    margin: .25rem 0 0;
    color: var(--muted);
    font-size: .58rem;
}

.report-map-summary { text-align: right; }
.report-map-summary strong,
.report-map-summary span { display: block; }
.report-map-summary strong { color: var(--cyan); font-size: 1.25rem; }
.report-map-summary span { margin-top: .2rem; color: var(--muted); font-size: .54rem; }

.report-map-mode {
    display: flex;
    gap: .45rem;
    margin-bottom: .65rem;
}

.report-map-mode .is-active {
    border-color: var(--cyan);
    color: #dffaff;
    background: #0a3445;
}

.report-map-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(280px, .75fr);
    gap: .75rem;
}

.report-map-canvas {
    position: relative;
    min-height: 420px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background:
        radial-gradient(circle at 70% 22%, rgba(24, 157, 200, .13), transparent 34%),
        #06141e;
}

.report-map-canvas svg {
    display: block;
    width: 100%;
    min-height: 420px;
}

.report-map-svg-background { fill: rgba(5, 20, 30, .82); }
.report-map-grid-line { stroke: rgba(76, 143, 170, .12); stroke-width: 1; }
.report-map-relative-label { fill: #7698aa; font-size: 13px; font-weight: 800; letter-spacing: 1.4px; }

.report-map-point {
    opacity: .76;
    stroke: rgba(225, 249, 255, .68);
    stroke-width: 1.4;
    cursor: pointer;
    filter: drop-shadow(0 0 7px rgba(42, 205, 245, .34));
    transition: opacity .14s ease, stroke-width .14s ease;
}

.report-map-point:hover,
.report-map-point:focus,
.report-map-point.is-selected {
    opacity: 1;
    stroke: #fff;
    stroke-width: 3;
    outline: none;
}

.report-map-empty {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    margin: 0;
    color: var(--muted);
}

.report-map-detail {
    min-height: 420px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: .65rem;
    background: #071720;
}

.report-map-detail-empty {
    min-height: 380px;
    display: grid;
    place-content: center;
    gap: .25rem;
    color: var(--muted);
    text-align: center;
}

.report-map-detail-empty strong,
.report-map-detail-heading strong,
.report-map-detail-heading span { display: block; }
.report-map-detail-heading strong { color: #eaf9ff; font-size: .72rem; }
.report-map-detail-heading span { margin-top: .2rem; color: var(--muted); font-size: .55rem; line-height: 1.4; }

.report-map-google-frame {
    width: 100%;
    height: 225px;
    margin-top: .55rem;
    border: 0;
    border-radius: 9px;
    background: #0b202b;
}

.report-map-detail-facts {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .5rem;
}

.report-map-detail-facts span {
    border: 1px solid var(--line-soft);
    border-radius: 999px;
    padding: .24rem .42rem;
    color: #8fc8d9;
    font-size: .49rem;
    font-weight: 800;
}

.report-map-detail ul {
    display: grid;
    gap: .2rem;
    margin: .55rem 0;
    padding-left: 1rem;
    color: #a7bec9;
    font-size: .53rem;
}

.report-map-legend {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: .65rem;
    color: var(--muted);
    font-size: .52rem;
}

.report-map-legend span { display: inline-flex; align-items: center; gap: .3rem; }
.report-map-legend i { width: 9px; height: 9px; border-radius: 999px; background: #a4b6c4; }
.report-map-legend [data-map-family="fire"] i { background: #ff5364; }
.report-map-legend [data-map-family="ems"] i { background: #258cf4; }
.report-map-legend [data-map-family="rescue"] i { background: #b46dff; }
.report-map-legend [data-map-family="hazmat"] i { background: #f4a51c; }
.report-map-legend [data-map-family="mvc"] i { background: #48d4ff; }
.report-map-legend [data-map-family="service"] i { background: #3bd99c; }

@media (max-width: 1080px) {
    .incident-search-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .report-map-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .report-map-search { grid-column: 1 / -1; }
    .report-map-filter-grid .form-actions { grid-column: 1 / -1; }
    .report-map-layout { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .report-continuity {
        grid-template-columns: auto minmax(0, 1fr);
        align-items: start;
    }
    .report-continuity-status {
        grid-column: 2;
        justify-self: start;
    }
    .incident-search-fields,
    .report-map-filter-grid { grid-template-columns: 1fr; }
    .incident-search-actions,
    .report-map-filter-grid .form-actions { flex-direction: column; }
    .incident-search-actions .button,
    .report-map-filter-grid .button { width: 100%; }
    .report-map-summary { text-align: left; }
    .report-map-mode .button { flex: 1; }
    .report-map-canvas,
    .report-map-canvas svg,
    .report-map-detail { min-height: 330px; }
}

/* Phase 14 — vibrant department command landing. */
.department-dashboard-page .main-content {
    max-width: 1760px;
    background:
        radial-gradient(circle at 12% 0, rgb(16 165 219 / 9%), transparent 27%),
        radial-gradient(circle at 92% 8%, rgb(255 77 86 / 6%), transparent 24%);
}

.department-landing-hero {
    position: relative;
    isolation: isolate;
    min-height: 430px;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
    align-items: stretch;
    gap: clamp(1.4rem, 3vw, 3.4rem);
    overflow: hidden;
    margin-bottom: 1.45rem;
    padding: clamp(1.35rem, 3vw, 3.2rem);
    border: 1px solid rgb(32 200 239 / 42%);
    border-radius: 24px;
    background:
        radial-gradient(circle at 18% 12%, rgb(32 200 239 / 13%), transparent 32%),
        linear-gradient(145deg, rgb(10 29 43 / 99%), rgb(4 13 21 / 99%));
    box-shadow:
        0 28px 72px rgb(0 0 0 / 38%),
        inset 0 1px rgb(255 255 255 / 4%);
}

.department-landing-hero::before {
    position: absolute;
    z-index: -1;
    top: -1px;
    left: 5%;
    width: 42%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--cyan), transparent);
    content: "";
}

.department-landing-hero__grid {
    position: absolute;
    z-index: -3;
    inset: 0;
    background-image:
        linear-gradient(rgb(65 192 226 / 4%) 1px, transparent 1px),
        linear-gradient(90deg, rgb(65 192 226 / 4%) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(90deg, #000, transparent 72%);
}

.department-landing-hero__glow {
    position: absolute;
    z-index: -2;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    filter: blur(95px);
    opacity: .14;
}

.department-landing-hero__glow--cyan {
    top: -150px;
    left: 18%;
    background: var(--cyan);
}

.department-landing-hero__glow--red {
    right: -140px;
    bottom: -170px;
    background: var(--red);
    opacity: .1;
}

.department-landing-hero__copy {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
}

.department-landing-brands {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin-bottom: 1rem;
}

.department-landing-brands > span {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgb(48 191 225 / 34%);
    border-radius: 15px;
    background: rgb(5 19 29 / 78%);
    box-shadow: 0 12px 28px rgb(0 0 0 / 28%);
}

.department-landing-brands img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.department-landing-brands i {
    width: 24px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--cyan), transparent);
}

.department-landing-mark {
    color: var(--cyan);
    font-size: 1rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.department-landing-kicker {
    color: #67def8;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .18em;
}

.department-landing-hero h1 {
    max-width: 830px;
    margin: .6rem 0 .75rem;
    font-size: clamp(2.25rem, 4.2vw, 4.5rem);
    line-height: .96;
    letter-spacing: -.055em;
}

.department-landing-hero__copy > p {
    max-width: 720px;
    margin: 0;
    color: #9cb3bf;
    font-size: clamp(.88rem, 1.2vw, 1.08rem);
    line-height: 1.55;
}

.department-landing-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.35rem;
}

.department-landing-button {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .7rem 1rem;
    border: 1px solid rgb(51 115 141 / 65%);
    border-radius: 11px;
    color: #dcebf1;
    background: rgb(10 34 48 / 82%);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .025em;
}

.department-landing-button svg {
    width: 1rem;
    height: 1rem;
}

.department-landing-button:hover,
.department-landing-button:focus-visible {
    border-color: var(--cyan);
    color: #fff;
    outline: none;
    box-shadow: 0 0 0 3px rgb(32 200 239 / 10%);
}

.department-landing-button--primary {
    border-color: #3bd7f7;
    color: #00131b;
    background: linear-gradient(135deg, #55ddf7, #18abd6);
    box-shadow: 0 12px 26px rgb(0 165 216 / 20%);
}

.department-landing-button--green {
    border-color: rgb(72 209 111 / 68%);
    color: #cffff0;
    background: rgb(14 66 46 / 75%);
}

.department-landing-userline {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1rem;
    margin-top: 1rem;
    color: #668491;
    font-size: .58rem;
    font-weight: 750;
}

.department-landing-userline span:first-child {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.department-landing-userline i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 10px var(--green);
}

.department-command-pulse {
    min-width: 0;
    align-self: center;
    padding: 1rem;
    border: 1px solid rgb(43 126 157 / 46%);
    border-radius: 18px;
    background:
        radial-gradient(circle at 100% 0, rgb(32 200 239 / 12%), transparent 38%),
        rgb(5 19 29 / 88%);
    box-shadow: 0 22px 54px rgb(0 0 0 / 32%);
}

.department-command-pulse__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    padding: .1rem .15rem .85rem;
    border-bottom: 1px solid var(--line-soft);
}

.department-command-pulse__heading > span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: #9ff0bd;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .1em;
}

.department-command-pulse__heading i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 11px var(--green);
}

.department-command-pulse__heading small {
    color: #607e8c;
    font-size: .52rem;
}

.department-command-pulse__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    padding-top: .85rem;
}

.department-command-pulse__grid a {
    min-width: 0;
    min-height: 128px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    padding: .85rem;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: linear-gradient(145deg, rgb(14 38 52 / 92%), rgb(7 22 31 / 96%));
}

.department-command-pulse__grid a:hover,
.department-command-pulse__grid a:focus-visible {
    border-color: rgb(32 200 239 / 65%);
    outline: none;
    background: linear-gradient(145deg, rgb(15 48 64 / 96%), rgb(7 25 35 / 98%));
}

.department-command-pulse__grid small,
.department-command-pulse__grid strong,
.department-command-pulse__grid span {
    display: block;
}

.department-command-pulse__grid small {
    color: #6dcfe6;
    font-size: .52rem;
    font-weight: 900;
    letter-spacing: .1em;
}

.department-command-pulse__grid strong {
    margin: .18rem 0;
    font-size: 2rem;
    line-height: 1;
    letter-spacing: -.06em;
}

.department-command-pulse__grid span {
    overflow: hidden;
    color: #7895a3;
    font-size: .57rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.department-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 .85rem;
}

.department-section-heading h2 {
    margin: .28rem 0 0;
    font-size: clamp(1.25rem, 2.4vw, 2.05rem);
    line-height: 1.05;
    letter-spacing: -.04em;
}

.department-module-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1.25rem;
}

.department-module-grid .metric-card {
    min-height: 146px;
    border-color: color-mix(in srgb, var(--card-accent) 28%, var(--line));
    background:
        radial-gradient(circle at 100% 0, var(--card-tint, transparent), transparent 48%),
        linear-gradient(145deg, rgb(13 31 43 / 98%), rgb(7 20 29 / 99%));
}

.department-module-grid .metric-card::after {
    position: absolute;
    top: 0;
    left: 14%;
    width: 72%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--card-accent), transparent);
    content: "";
    opacity: .72;
}

.department-module-grid .metric-card:hover,
.department-module-grid .metric-card:focus-visible {
    border-color: var(--card-accent);
    outline: none;
    box-shadow: 0 18px 48px rgb(0 0 0 / 32%), 0 0 0 3px rgb(32 200 239 / 6%);
}

.department-dashboard-page .dashboard-grid > .panel,
.department-dashboard-page .integrity-strip {
    border-color: rgb(38 92 116 / 62%);
}

@media (max-width: 1360px) {
    .department-module-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1120px) {
    .department-landing-hero {
        grid-template-columns: 1fr;
    }

    .department-command-pulse__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .department-landing-hero {
        min-height: 0;
        padding: 1.25rem;
        border-radius: 18px;
    }

    .department-command-pulse__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .department-module-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .department-landing-brands > span {
        width: 50px;
        height: 50px;
    }

    .department-landing-brands img {
        width: 42px;
        height: 42px;
    }

    .department-landing-hero h1 {
        font-size: clamp(2rem, 11vw, 3rem);
    }

    .department-landing-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .department-landing-button {
        width: 100%;
    }

    .department-command-pulse__heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .department-command-pulse__grid a {
        min-height: 116px;
        padding: .72rem;
    }

    .department-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .department-module-grid {
        grid-template-columns: 1fr;
    }
}

/* Phase 14.1 — dedicated, tenant-driven department entry. */
.department-entry-body {
    position: relative;
    min-height: 100vh;
    overflow-x: hidden;
    padding: clamp(72px, 8vw, 110px) clamp(18px, 4vw, 64px) 26px;
    background:
        radial-gradient(circle at 12% 18%, rgba(25, 181, 224, .16), transparent 30rem),
        radial-gradient(circle at 90% 82%, rgba(219, 42, 62, .11), transparent 34rem),
        linear-gradient(145deg, #02070c, #06131e 52%, #030a10);
}

.department-entry-body::before {
    position: fixed;
    inset: 0;
    z-index: 0;
    background-image:
        linear-gradient(rgba(66, 160, 190, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(66, 160, 190, .045) 1px, transparent 1px);
    background-size: 48px 48px;
    content: '';
    pointer-events: none;
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .75), transparent 90%);
}

.department-entry-shell,
.department-entry-footer {
    position: relative;
    z-index: 1;
    width: min(100%, 1440px);
    margin-inline: auto;
}

.department-entry-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(360px, .72fr);
    overflow: hidden;
    border: 1px solid rgba(48, 203, 240, .28);
    border-radius: 30px;
    background: rgba(4, 15, 24, .9);
    box-shadow: 0 38px 110px rgba(0, 0, 0, .55), 0 0 70px rgba(22, 164, 204, .08);
}

.department-entry-stage {
    position: relative;
    isolation: isolate;
    min-height: 690px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(34px, 5.5vw, 82px);
    overflow: hidden;
    border-right: 1px solid rgba(48, 203, 240, .18);
    background: linear-gradient(135deg, rgba(5, 26, 40, .94), rgba(4, 16, 26, .97));
}

.department-entry-grid {
    position: absolute;
    inset: 0;
    z-index: -3;
    opacity: .54;
    background-image:
        linear-gradient(rgba(48, 203, 240, .055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(48, 203, 240, .055) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(circle at 35% 45%, #000, transparent 78%);
}

.department-entry-glow {
    position: absolute;
    z-index: -2;
    width: 390px;
    aspect-ratio: 1;
    border-radius: 50%;
    filter: blur(15px);
    pointer-events: none;
}

.department-entry-glow--cyan {
    top: -185px;
    right: -120px;
    background: radial-gradient(circle, rgba(17, 193, 236, .2), transparent 68%);
}

.department-entry-glow--red {
    bottom: -240px;
    left: -130px;
    background: radial-gradient(circle, rgba(231, 48, 66, .16), transparent 68%);
}

.department-entry-brands {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: clamp(30px, 4vw, 54px);
}

.department-entry-brands > i {
    width: clamp(34px, 4vw, 58px);
    height: 1px;
    background: linear-gradient(90deg, rgba(74, 206, 238, .22), #2bcdf2, rgba(74, 206, 238, .22));
    box-shadow: 0 0 16px rgba(38, 203, 242, .45);
}

.department-entry-brand {
    width: 74px;
    height: 74px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(73, 208, 241, .32);
    border-radius: 20px;
    background: linear-gradient(145deg, rgba(13, 43, 59, .96), rgba(5, 18, 28, .98));
    box-shadow: inset 0 0 28px rgba(21, 146, 180, .1), 0 15px 35px rgba(0, 0, 0, .3);
}

.department-entry-brand img {
    width: 58px;
    height: 58px;
    object-fit: contain;
}

.department-entry-brand b {
    color: #dff8ff;
    font-size: 1.35rem;
    letter-spacing: .05em;
}

.department-entry-brand--psops {
    border-color: rgba(46, 186, 238, .45);
}

.department-entry-eyebrow,
.department-entry-auth__heading > span,
.department-entry-help > span {
    color: #4bd9fa;
    font-size: .67rem;
    font-weight: 950;
    letter-spacing: .2em;
}

.department-entry-copy h1 {
    max-width: 820px;
    margin: 12px 0 16px;
    color: #f3fbff;
    font-size: clamp(2.7rem, 5.1vw, 5.6rem);
    line-height: .96;
    letter-spacing: -.065em;
    text-wrap: balance;
}

.department-entry-copy > p {
    max-width: 690px;
    margin: 0;
    color: #8eafbd;
    font-size: clamp(.95rem, 1.25vw, 1.18rem);
    line-height: 1.7;
}

.department-entry-location {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-top: 24px;
}

.department-entry-location span,
.department-entry-location strong {
    font-size: .63rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.department-entry-location span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #6de7b1;
}

.department-entry-location span i,
.department-entry-powered span,
.department-entry-auth__status span i {
    width: 8px;
    height: 8px;
    display: inline-block;
    border-radius: 50%;
    background: #50e39e;
    box-shadow: 0 0 13px rgba(80, 227, 158, .9);
}

.department-entry-location strong {
    color: #7798a8;
}

.department-entry-capabilities {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: clamp(42px, 5vw, 70px);
}

.department-entry-capabilities article {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid rgba(52, 151, 181, .2);
    border-radius: 14px;
    background: rgba(4, 18, 29, .7);
}

.department-entry-capabilities article > span {
    width: 33px;
    height: 33px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border: 1px solid rgba(42, 205, 242, .36);
    border-radius: 10px;
    color: #42d8fa;
    background: rgba(13, 97, 121, .2);
    font-size: .65rem;
    font-weight: 950;
}

.department-entry-capabilities article div {
    min-width: 0;
}

.department-entry-capabilities strong,
.department-entry-capabilities small {
    display: block;
}

.department-entry-capabilities strong {
    color: #dcecf2;
    font-size: .72rem;
}

.department-entry-capabilities small {
    margin-top: 3px;
    color: #638291;
    font-size: .56rem;
    line-height: 1.35;
}

.department-entry-powered {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 22px 0 0;
    color: #557785;
    font-size: .58rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.department-entry-powered span {
    background: #2bcdf2;
    box-shadow: 0 0 13px rgba(43, 205, 242, .85);
}

.department-entry-auth {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(30px, 4vw, 58px);
    background:
        radial-gradient(circle at 100% 0, rgba(29, 167, 204, .09), transparent 38%),
        linear-gradient(160deg, rgba(8, 25, 37, .98), rgba(4, 14, 22, .99));
}

.department-entry-auth__status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 21px;
    border-bottom: 1px solid rgba(55, 133, 157, .18);
}

.department-entry-auth__status span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #72e3b0;
    font-size: .56rem;
    font-weight: 950;
    letter-spacing: .12em;
}

.department-entry-auth__status small {
    color: #537481;
    font-size: .51rem;
    font-weight: 900;
    letter-spacing: .1em;
}

.department-entry-auth__heading {
    margin: clamp(30px, 4vw, 48px) 0 22px;
}

.department-entry-auth__heading h2 {
    margin: 9px 0 10px;
    color: #f1faff;
    font-size: clamp(1.75rem, 2.4vw, 2.35rem);
    line-height: 1.04;
    letter-spacing: -.045em;
}

.department-entry-auth__heading p {
    margin: 0;
    color: #7f9ba8;
    font-size: .77rem;
    line-height: 1.65;
}

.department-entry-form {
    gap: 8px;
}

.department-entry-form > label:not(.check-row) {
    margin-top: 8px;
    color: #c8dce4;
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .02em;
}

.department-entry-form input[type="text"],
.department-entry-form input[type="password"] {
    width: 100%;
    min-height: 52px;
    padding: 12px 14px;
    border: 1px solid rgba(58, 128, 153, .4);
    border-radius: 11px;
    color: #eefaff;
    background: rgba(3, 14, 23, .9);
    font-size: .78rem;
}

.department-entry-form input::placeholder {
    color: #476572;
}

.department-entry-form input:focus {
    border-color: #31cdf2;
    outline: none;
    box-shadow: 0 0 0 3px rgba(49, 205, 242, .13), 0 0 28px rgba(49, 205, 242, .08);
}

.department-entry-submit {
    min-height: 54px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 5px;
    padding: 12px 16px;
    border: 1px solid #36d4f7;
    border-radius: 12px;
    color: #00131b;
    background: linear-gradient(135deg, #75eaff, #26cbed);
    box-shadow: 0 13px 32px rgba(23, 181, 217, .2);
    font-size: .72rem;
    font-weight: 950;
    cursor: pointer;
}

.department-entry-submit span {
    font-size: 1.1rem;
}

.department-entry-submit:hover,
.department-entry-submit:focus-visible {
    border-color: #c8f8ff;
    background: linear-gradient(135deg, #a4f2ff, #48dafa);
    transform: translateY(-1px);
}

.department-entry-help {
    margin-top: 28px;
    padding: 17px;
    border: 1px solid rgba(53, 126, 149, .2);
    border-radius: 12px;
    background: rgba(5, 19, 29, .7);
}

.department-entry-help > span {
    color: #668b9b;
    font-size: .54rem;
}

.department-entry-help p {
    margin: 6px 0 0;
    color: #829da9;
    font-size: .67rem;
    line-height: 1.5;
}

.department-entry-help a {
    color: #55dafa;
    font-weight: 850;
}

.department-entry-footer {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 12px 0;
    color: #4f6d79;
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .06em;
}

@media (max-width: 1080px) {
    .department-entry-shell {
        grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr);
    }

    .department-entry-capabilities {
        grid-template-columns: 1fr;
    }

    .department-entry-capabilities article {
        padding: 10px 12px;
    }
}

@media (max-width: 820px) {
    .department-entry-body {
        display: block;
        padding: 72px 14px 22px;
    }

    .department-entry-shell {
        grid-template-columns: 1fr;
        border-radius: 24px;
    }

    .department-entry-stage {
        min-height: 0;
        padding: 38px 26px;
        border-right: 0;
        border-bottom: 1px solid rgba(48, 203, 240, .18);
    }

    .department-entry-copy h1 {
        font-size: clamp(2.45rem, 10vw, 4.4rem);
    }

    .department-entry-capabilities {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        margin-top: 36px;
    }

    .department-entry-capabilities article {
        align-items: flex-start;
        flex-direction: column;
    }

    .department-entry-auth {
        padding: 38px 26px;
    }
}

@media (max-width: 560px) {
    .department-entry-body {
        padding-inline: 9px;
    }

    .department-entry-shell {
        border-radius: 19px;
    }

    .department-entry-stage,
    .department-entry-auth {
        padding: 28px 20px;
    }

    .department-entry-brands {
        gap: 10px;
        margin-bottom: 30px;
    }

    .department-entry-brand {
        width: 60px;
        height: 60px;
        border-radius: 16px;
    }

    .department-entry-brand img {
        width: 47px;
        height: 47px;
    }

    .department-entry-copy h1 {
        font-size: clamp(2.25rem, 12vw, 3.35rem);
    }

    .department-entry-capabilities {
        grid-template-columns: 1fr;
    }

    .department-entry-capabilities article {
        align-items: center;
        flex-direction: row;
    }

    .department-entry-auth__status,
    .department-entry-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .department-entry-footer {
        gap: 6px;
    }
}

/* Phase 15 — protected legacy archive and unified operational workspaces. */
.module-workspace,
.legacy-workspace {
    display: grid;
    gap: 16px;
    min-width: 0;
}

.module-command-header,
.legacy-command-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-width: 0;
    padding: 22px;
    overflow: hidden;
    border: 1px solid rgba(32, 200, 239, .36);
    border-radius: 18px;
    background:
        radial-gradient(circle at 88% 18%, rgba(32, 200, 239, .13), transparent 32%),
        linear-gradient(135deg, rgba(11, 35, 49, .98), rgba(5, 18, 28, .98));
    box-shadow: 0 20px 48px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255, 255, 255, .025);
}

.module-command-header::before,
.legacy-command-hero::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    content: "";
    background: linear-gradient(180deg, #5ce7ff, #0e9ac0);
}

.module-command-header__identity,
.legacy-command-hero__identity {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}

.module-command-header__icon,
.legacy-command-hero__icon,
.legacy-response-card__icon {
    display: inline-grid;
    flex: 0 0 auto;
    width: 54px;
    height: 54px;
    place-items: center;
    border: 1px solid rgba(32, 200, 239, .42);
    border-radius: 15px;
    color: #5ce7ff;
    background: rgba(7, 38, 53, .82);
    box-shadow: 0 0 30px rgba(32, 200, 239, .09);
}

.module-command-header__icon svg,
.legacy-command-hero__icon svg {
    width: 28px;
    height: 28px;
    stroke: currentColor;
    stroke-width: 1.8;
}

.module-command-header h1,
.legacy-command-hero h1 {
    margin: 4px 0;
    color: #f4fbff;
    font-size: clamp(1.55rem, 3vw, 2.3rem);
    line-height: 1.05;
}

.module-command-header p,
.legacy-command-hero p {
    margin: 0;
    color: #91acb9;
    line-height: 1.45;
}

.module-command-strip,
.legacy-preservation-strip {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(8, 25, 36, .92);
}

.module-command-strip article,
.legacy-preservation-strip article {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid rgba(255, 255, 255, .055);
    border-radius: 10px;
    background: rgba(14, 36, 49, .72);
}

.module-command-strip span,
.legacy-preservation-strip span,
.legacy-timeline-grid span,
.legacy-count-grid span {
    display: block;
    color: #7893a1;
    font-size: .59rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.module-command-strip strong,
.legacy-preservation-strip strong {
    display: block;
    margin-top: 5px;
    overflow: hidden;
    color: #eef8fc;
    font-size: .7rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.module-workspace-nav {
    display: flex;
    gap: 6px;
    min-width: 0;
    padding: 7px;
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: rgba(8, 22, 31, .95);
    scrollbar-width: thin;
}

.module-workspace-nav a {
    display: inline-flex;
    flex: 1 0 auto;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 9px 14px;
    border: 1px solid transparent;
    border-radius: 9px;
    color: #90a8b5;
    font-size: .68rem;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.module-workspace-nav a:hover,
.module-workspace-nav a:focus-visible,
.module-workspace-nav a.is-active {
    border-color: rgba(32, 200, 239, .34);
    color: #e9fbff;
    background: linear-gradient(135deg, rgba(13, 77, 97, .72), rgba(8, 42, 57, .9));
    outline: none;
}

.module-workspace-nav a.is-active {
    box-shadow: inset 0 -2px 0 #30d4f5;
}

.module-workspace-nav small {
    min-width: 21px;
    padding: 3px 6px;
    border-radius: 999px;
    color: #c9f7ff;
    background: rgba(32, 200, 239, .14);
    text-align: center;
}

.module-section {
    scroll-margin-top: 142px;
}

.module-entry {
    margin-top: 16px;
    border: 1px solid rgba(32, 200, 239, .2);
    border-radius: 12px;
    background: rgba(5, 20, 29, .52);
}

.module-entry summary,
.legacy-source-details summary {
    min-height: 48px;
    display: flex;
    align-items: center;
    padding: 12px 15px;
    color: #66e2fa;
    font-size: .69rem;
    font-weight: 900;
    cursor: pointer;
}

.module-entry form {
    padding: 0 15px 15px;
}

.module-filter-bar {
    align-items: end;
}

.module-record-grid,
.meeting-attendee-grid,
.legacy-classification-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.module-record-grid > article,
.meeting-attendee-grid > article,
.legacy-classification-grid > article {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--line-soft);
    border-radius: 11px;
    background: linear-gradient(145deg, rgba(15, 38, 52, .88), rgba(7, 24, 34, .95));
}

.module-record-grid header,
.meeting-attendee-grid > article {
    display: flex;
    align-items: center;
    gap: 11px;
}

.module-record-grid header {
    justify-content: space-between;
}

.module-record-grid h3 {
    margin: 10px 0 4px;
    color: #f0f8fb;
    font-size: .82rem;
}

.module-record-grid p,
.module-record-grid span,
.meeting-attendee-grid small,
.legacy-classification-grid small {
    color: var(--muted);
    font-size: .64rem;
    line-height: 1.5;
}

.meeting-attendee-grid > article > div {
    flex: 1;
    min-width: 0;
}

.meeting-attendee-grid strong,
.meeting-attendee-grid small,
.legacy-classification-grid strong,
.legacy-classification-grid span,
.legacy-classification-grid small {
    display: block;
}

.meeting-minutes-editor,
.meeting-minutes-readonly {
    min-height: 420px;
    padding: 18px;
    border: 1px solid #294756;
    border-radius: 11px;
    color: #e9f3f7;
    background: #07151e;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .77rem;
    line-height: 1.65;
}

.module-workspace .button:hover,
.module-workspace .button:focus-visible {
    transform: none;
}

.wrap-remote-lock {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 5px 12px;
    width: 100%;
    padding: 13px 15px;
    border: 1px solid rgba(72, 209, 111, .28);
    border-radius: 11px;
    background: rgba(18, 74, 45, .2);
}

.wrap-remote-lock .wrap-badge {
    grid-row: span 2;
}

.wrap-remote-lock strong {
    color: #dff8e8;
    font-size: .69rem;
}

.wrap-remote-lock p {
    margin: 0;
    color: #8eb3a0;
    font-size: .62rem;
    line-height: 1.45;
}

.incident-lane-switch {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.incident-lane-switch a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 12px;
    min-height: 80px;
    padding: 15px 17px;
    border: 1px solid var(--line);
    border-radius: 13px;
    color: #8fa8b5;
    background: linear-gradient(145deg, rgba(12, 32, 43, .94), rgba(7, 20, 29, .96));
    text-decoration: none;
}

.incident-lane-switch a.is-active {
    border-color: rgba(32, 200, 239, .62);
    color: #edfaff;
    box-shadow: inset 4px 0 0 #20c8ef, 0 12px 28px rgba(0, 0, 0, .16);
}

.incident-lane-switch a.is-archive.is-active {
    border-color: rgba(255, 176, 32, .62);
    box-shadow: inset 4px 0 0 #ffb020, 0 12px 28px rgba(0, 0, 0, .16);
}

.incident-lane-switch span,
.incident-lane-switch strong,
.incident-lane-switch small {
    display: block;
}

.incident-lane-switch span {
    font-size: .75rem;
    font-weight: 950;
}

.incident-lane-switch strong {
    grid-row: span 2;
    color: #ecfaff;
    font-size: 1.5rem;
}

.incident-lane-switch small {
    color: #738e9b;
    font-size: .61rem;
}

.incident-row.is-legacy {
    border-color: rgba(255, 176, 32, .2);
    background: linear-gradient(145deg, rgba(37, 31, 17, .62), rgba(8, 22, 30, .98));
}

.incident-row.is-legacy:hover,
.incident-row.is-legacy:focus-visible {
    border-color: rgba(255, 176, 32, .56);
}

.legacy-workspace {
    max-width: 1500px;
    margin: 0 auto;
}

.legacy-command-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.legacy-lock-notice {
    border-color: rgba(255, 176, 32, .32);
}

.legacy-preservation-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.legacy-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.legacy-panel--wide {
    grid-column: 1 / -1;
}

.legacy-fact-list,
.legacy-fact-grid,
.legacy-personnel-grid dl {
    margin: 0;
}

.legacy-fact-list > div {
    display: grid;
    grid-template-columns: minmax(130px, .7fr) minmax(0, 1.3fr);
    gap: 16px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.legacy-fact-list > div:last-child {
    border-bottom: 0;
}

.legacy-fact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.legacy-fact-grid > div {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid var(--line-soft);
    border-radius: 9px;
    background: rgba(4, 18, 27, .5);
}

.legacy-fact-grid--compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.legacy-fact-list dt,
.legacy-fact-grid dt,
.legacy-personnel-grid dt {
    color: #7893a1;
    font-size: .56rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.legacy-fact-list dd,
.legacy-fact-grid dd,
.legacy-personnel-grid dd {
    margin: 3px 0 0;
    overflow-wrap: anywhere;
    color: #dfebf0;
    font-size: .67rem;
    line-height: 1.45;
}

.legacy-timeline-grid,
.legacy-count-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.legacy-timeline-grid article,
.legacy-count-grid article {
    min-width: 0;
    padding: 13px;
    border: 1px solid rgba(32, 200, 239, .15);
    border-radius: 10px;
    background: rgba(5, 24, 34, .72);
}

.legacy-timeline-grid strong,
.legacy-count-grid strong {
    display: block;
    margin-top: 5px;
    color: #eaf7fb;
    font-size: .69rem;
}

.legacy-count-grid strong {
    color: #5ce7ff;
    font-size: 1.2rem;
}

.legacy-response-grid,
.legacy-personnel-grid,
.legacy-narrative-stack {
    display: grid;
    gap: 10px;
}

.legacy-response-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.legacy-response-card,
.legacy-personnel-grid > article,
.legacy-narrative-stack article {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--line-soft);
    border-radius: 11px;
    background: linear-gradient(145deg, rgba(14, 36, 49, .88), rgba(5, 20, 29, .95));
}

.legacy-response-card header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    margin-bottom: 11px;
}

.legacy-response-card__icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
}

.legacy-response-card__icon svg {
    width: 22px;
    height: 22px;
    stroke: currentColor;
}

.legacy-response-card header strong,
.legacy-response-card header small,
.legacy-personnel-grid strong,
.legacy-personnel-grid small {
    display: block;
}

.legacy-response-card header strong,
.legacy-personnel-grid strong {
    color: #f0f8fb;
    font-size: .72rem;
}

.legacy-response-card header small,
.legacy-personnel-grid small {
    margin-top: 3px;
    color: #809aa7;
    font-size: .59rem;
}

.legacy-personnel-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.legacy-personnel-grid > article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 11px;
}

.legacy-personnel-grid dl {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}

.legacy-personnel-grid dl > div {
    padding: 8px;
    border-radius: 8px;
    background: rgba(3, 16, 24, .48);
}

.legacy-personnel-avatar {
    display: inline-grid;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid rgba(32, 200, 239, .26);
    border-radius: 50%;
    color: #6de8ff;
    background: rgba(10, 66, 83, .48);
    font-size: .66rem;
    font-weight: 950;
}

.legacy-narrative-stack article strong {
    display: block;
    color: #62e2fa;
    font-size: .61rem;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.legacy-narrative-stack article p {
    margin: 8px 0 0;
    color: #dce8ed;
    font-size: .73rem;
    line-height: 1.62;
    white-space: pre-wrap;
}

.legacy-source-details .legacy-fact-grid {
    padding: 0 15px 15px;
}

@media (max-width: 1100px) {
    .module-command-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .legacy-fact-grid,
    .legacy-timeline-grid,
    .legacy-count-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .module-workspace,
    .legacy-workspace {
        gap: 11px;
    }

    .module-command-header,
    .legacy-command-hero {
        align-items: stretch;
        flex-direction: column;
        padding: 17px;
        border-radius: 15px;
    }

    .module-command-header__identity,
    .legacy-command-hero__identity {
        align-items: flex-start;
    }

    .module-command-header__icon,
    .legacy-command-hero__icon {
        width: 46px;
        height: 46px;
    }

    .module-command-header h1,
    .legacy-command-hero h1 {
        font-size: 1.5rem;
    }

    .module-command-header .button,
    .legacy-command-hero__actions .button {
        flex: 1 1 auto;
    }

    .module-command-strip,
    .legacy-preservation-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 8px;
    }

    .module-workspace-nav {
        position: sticky;
        z-index: 20;
        top: var(--shell-header-offset, 64px);
    }

    .module-workspace-nav a {
        flex: 0 0 auto;
        min-height: 48px;
    }

    .module-record-grid,
    .meeting-attendee-grid,
    .legacy-card-grid,
    .legacy-response-grid,
    .legacy-personnel-grid {
        grid-template-columns: 1fr;
    }

    .legacy-panel--wide {
        grid-column: auto;
    }

    .legacy-fact-list > div {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .legacy-fact-grid,
    .legacy-fact-grid--compact,
    .legacy-timeline-grid,
    .legacy-count-grid {
        grid-template-columns: 1fr;
    }

    .meeting-minutes-editor,
    .meeting-minutes-readonly {
        min-height: 320px;
        font-size: .72rem;
    }
}

@media (max-width: 520px) {
    .incident-lane-switch {
        grid-template-columns: 1fr;
    }

    .module-command-strip,
    .legacy-preservation-strip {
        grid-template-columns: 1fr;
    }

    .legacy-command-hero__actions {
        justify-content: stretch;
    }
}

/* Phase 16 — operational polish, property intelligence, and launch readiness. */
.incident-board-heading-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 9px;
}

.incident-board-heading-actions form {
    display: flex;
    margin: 0;
}

.incident-board-heading-actions form .button {
    width: 100%;
}

.incident-quick-start,
.button.incident-quick-start {
    border-color: rgba(64, 222, 165, .5);
    color: #dfffee;
    background: linear-gradient(135deg, rgba(21, 139, 96, .76), rgba(13, 92, 77, .84));
}

.incident-quick-start:hover,
.incident-quick-start:focus-visible {
    border-color: #61e9b9;
    color: #fff;
    outline: none;
    background: linear-gradient(135deg, rgba(24, 161, 109, .9), rgba(14, 109, 89, .94));
}

.incident-create-shortcuts {
    display: grid;
    grid-template-columns: minmax(0, 440px);
    gap: 10px;
}

.incident-create-shortcuts > a {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 13px;
    border: 1px solid rgba(55, 201, 158, .3);
    border-radius: 13px;
    color: inherit;
    background: linear-gradient(145deg, rgba(10, 50, 47, .92), rgba(6, 27, 36, .98));
    text-decoration: none;
}

.incident-create-shortcuts > a:hover,
.incident-create-shortcuts > a:focus-visible,
.incident-create-shortcuts > a.is-active {
    border-color: rgba(76, 230, 177, .7);
    outline: none;
    box-shadow: inset 0 0 0 1px rgba(76, 230, 177, .12), 0 14px 34px rgba(0, 0, 0, .18);
}

.incident-create-shortcut__icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid rgba(75, 228, 177, .34);
    border-radius: 11px;
    color: #65e9bb;
    background: rgba(14, 93, 73, .38);
}

.incident-create-shortcuts strong,
.incident-create-shortcuts small {
    display: block;
}

.incident-create-shortcuts strong {
    color: #f0fff8;
    font-size: .75rem;
}

.incident-create-shortcuts small {
    margin-top: 3px;
    color: #80a99c;
    font-size: .57rem;
    line-height: 1.45;
}

.incident-create-shortcuts b {
    color: #6ceabb;
    font-size: .48rem;
    letter-spacing: .1em;
}

.incident-preset-notice strong {
    color: #eafff4;
}

.department-setup-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.department-setup-grid > a {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    min-width: 0;
    min-height: 142px;
    padding: 16px;
    overflow: hidden;
    border: 1px solid rgba(42, 152, 188, .27);
    border-radius: 14px;
    color: inherit;
    background:
        radial-gradient(circle at 100% 0, rgba(32, 200, 239, .08), transparent 44%),
        linear-gradient(145deg, rgba(11, 34, 47, .96), rgba(6, 22, 31, .98));
    text-decoration: none;
}

.department-setup-grid > a:hover,
.department-setup-grid > a:focus-visible {
    border-color: rgba(48, 209, 244, .62);
    outline: none;
    transform: translateY(-2px);
}

.department-setup-grid > a > span {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid rgba(46, 192, 228, .32);
    border-radius: 11px;
    color: #57dcfa;
    background: rgba(9, 71, 91, .42);
}

.department-setup-grid strong,
.department-setup-grid small {
    display: block;
}

.department-setup-grid strong {
    color: #eefbff;
    font-size: .75rem;
}

.department-setup-grid small {
    margin-top: 5px;
    color: #83a0ae;
    font-size: .59rem;
    line-height: 1.5;
}

.department-setup-grid b {
    grid-column: 2;
    align-self: end;
    color: #5ce3ff;
    font-size: .48rem;
    letter-spacing: .1em;
}

.department-numbering-panel {
    border-color: rgba(240, 177, 63, .26);
    background:
        radial-gradient(circle at 100% 0, rgba(235, 169, 42, .07), transparent 38%),
        var(--panel);
}

.department-numbering-metrics {
    margin: 12px 0;
}

.station-command-summary,
.station-detail-summary {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.station-directory-grid--command {
    align-items: stretch;
}

.station-command-card {
    min-height: 238px;
    overflow: hidden;
    border-color: rgba(46, 164, 198, .29);
    background:
        radial-gradient(circle at 100% 0, rgba(40, 199, 235, .09), transparent 40%),
        linear-gradient(150deg, rgba(11, 36, 50, .98), rgba(5, 20, 29, .99));
}

.station-command-card__address {
    min-height: 32px;
    line-height: 1.55;
}

.station-command-card footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid rgba(42, 125, 151, .2);
    color: #64def7;
    font-size: .58rem;
    font-weight: 850;
}

.station-command-card footer b {
    font-size: 1rem;
}

.station-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr);
    align-items: start;
    gap: 12px;
}

.station-detail-grid > .panel--wide {
    grid-column: auto;
}

.station-apparatus-grid,
.station-personnel-grid {
    display: grid;
    gap: 8px;
}

.station-apparatus-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.station-apparatus-card {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    min-width: 0;
    padding: 13px;
    border: 1px solid rgba(53, 154, 184, .24);
    border-radius: 11px;
    color: inherit;
    background: linear-gradient(145deg, rgba(11, 37, 50, .9), rgba(6, 22, 32, .96));
    text-decoration: none;
}

.station-apparatus-card:hover,
.station-apparatus-card:focus-visible {
    border-color: rgba(55, 208, 242, .58);
    outline: none;
}

.station-apparatus-card__icon {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 10px;
    color: #58dcfa;
    background: rgba(11, 80, 101, .38);
}

.station-apparatus-card span,
.station-apparatus-card strong,
.station-apparatus-card small {
    display: block;
}

.station-apparatus-card > div > span {
    color: #628b9c;
    font-size: .46rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.station-apparatus-card strong {
    margin-top: 3px;
    color: #f0fbff;
    font-size: .78rem;
}

.station-apparatus-card small {
    margin-top: 3px;
    color: #7f99a6;
    font-size: .55rem;
}

.station-apparatus-card dl {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin: 0;
}

.station-apparatus-card dl > div {
    padding: 7px 9px;
    border-radius: 8px;
    background: rgba(3, 15, 23, .48);
}

.station-apparatus-card dt,
.station-apparatus-card dd {
    margin: 0;
}

.station-apparatus-card dt {
    color: #6d8997;
    font-size: .47rem;
}

.station-apparatus-card dd {
    margin-top: 2px;
    color: #d9edf3;
    font-size: .58rem;
    font-weight: 800;
}

.station-apparatus-card > .tone {
    position: absolute;
    top: 12px;
    right: 12px;
}

.station-personnel-grid {
    max-height: 560px;
    overflow: auto;
    padding-right: 3px;
}

.station-personnel-grid > a {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 9px;
    border: 1px solid rgba(48, 121, 145, .21);
    border-radius: 9px;
    color: inherit;
    background: rgba(7, 27, 39, .76);
    text-decoration: none;
}

.station-personnel-grid > a:hover,
.station-personnel-grid > a:focus-visible {
    border-color: rgba(57, 201, 236, .52);
    outline: none;
}

.station-personnel-grid > a > b {
    display: grid;
    min-height: 36px;
    place-items: center;
    border: 1px solid rgba(42, 190, 225, .3);
    border-radius: 8px;
    color: #64e1fa;
    background: rgba(8, 74, 94, .34);
    font-size: .62rem;
}

.station-personnel-grid strong,
.station-personnel-grid small {
    display: block;
}

.station-personnel-grid strong {
    color: #e9f6fa;
    font-size: .64rem;
}

.station-personnel-grid small {
    margin-top: 2px;
    color: #7894a2;
    font-size: .52rem;
}

.inspection-workflow-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.inspection-workflow-grid > a {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    min-width: 0;
    padding: 13px;
    border: 1px solid rgba(48, 148, 178, .23);
    border-radius: 11px;
    color: inherit;
    background: rgba(8, 29, 41, .82);
    text-decoration: none;
}

.inspection-workflow-grid > a:hover,
.inspection-workflow-grid > a:focus-visible {
    border-color: rgba(50, 208, 241, .56);
    outline: none;
}

.inspection-workflow-grid > a > span {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 9px;
    color: #5bdcf7;
    background: rgba(10, 78, 99, .42);
    font-size: .57rem;
    font-weight: 950;
}

.inspection-workflow-grid strong,
.inspection-workflow-grid small {
    display: block;
}

.inspection-workflow-grid strong {
    color: #edf9fd;
    font-size: .68rem;
}

.inspection-workflow-grid small {
    margin-top: 3px;
    color: #7894a2;
    font-size: .54rem;
    line-height: 1.45;
}

.inspection-preplan-readiness {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin-top: 12px;
    padding: 12px;
    border: 1px solid rgba(49, 199, 235, .24);
    border-radius: 10px;
    color: #57dcfa;
    background: rgba(6, 40, 53, .58);
}

.inspection-preplan-readiness svg {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
}

.inspection-preplan-readiness strong,
.inspection-preplan-readiness span {
    display: block;
}

.inspection-preplan-readiness strong {
    color: #e7faff;
    font-size: .65rem;
}

.inspection-preplan-readiness span {
    margin-top: 3px;
    color: #82a2af;
    font-size: .56rem;
    line-height: 1.5;
}

.inspection-property-hub > .panel {
    min-width: 0;
}

.reporting-command-center :where(#report-overview, #report-map, #report-call-mix, #report-exports) {
    scroll-margin-top: 136px;
}

.report-command-filter {
    margin: 0;
    border-color: rgba(42, 146, 179, .29);
    background:
        radial-gradient(circle at 100% 0, rgba(32, 200, 239, .06), transparent 42%),
        var(--panel);
}

.reporting-command-center .report-metrics {
    margin: 0;
}

.reporting-detail-grid {
    align-items: start;
}

@media (max-width: 1120px) {
    .department-setup-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .station-command-summary,
    .station-detail-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .station-detail-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .station-apparatus-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .station-personnel-grid {
        max-height: none;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .incident-board-heading-actions {
        width: 100%;
        justify-content: stretch;
    }

    .incident-board-heading-actions form,
    .incident-board-heading-actions .button {
        flex: 1 1 190px;
    }

    .station-apparatus-grid,
    .inspection-workflow-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 720px) {
    .department-setup-grid,
    .station-personnel-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .department-setup-grid > a {
        min-height: 128px;
    }

    .station-command-summary,
    .station-detail-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .incident-create-shortcuts {
        grid-template-columns: minmax(0, 1fr);
    }

    .incident-create-shortcuts > a {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .incident-create-shortcuts b {
        grid-column: 2;
    }

    .report-workspace-nav {
        position: sticky;
        top: var(--shell-header-offset, 64px);
        z-index: 20;
    }
}

@media (max-width: 520px) {
    .station-command-summary,
    .station-detail-summary {
        grid-template-columns: minmax(0, 1fr);
    }

    .incident-board-heading-actions .button {
        width: 100%;
    }
}

/* Phase 16 revision 3 — tenant-scoped member role and permission command center. */
.member-access-command-center {
    display: grid;
    gap: 18px;
}

.member-access-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.member-access-heading {
    align-items: end;
    gap: 24px;
}

.member-access-heading > div:first-child {
    min-width: 240px;
}

.member-access-heading p,
.access-role-panel .panel-heading p,
.access-permission-panel .panel-heading p,
.access-change-panel p {
    margin: 5px 0 0;
    color: var(--muted);
}

.member-access-search {
    display: flex;
    flex: 1 1 620px;
    justify-content: flex-end;
    gap: 10px;
}

.member-access-search .search-box {
    flex: 1 1 420px;
    max-width: 620px;
}

.member-access-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.member-access-card {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    grid-template-areas:
        "radio identity state"
        "radio roles action";
    align-items: center;
    gap: 10px 14px;
    min-height: 126px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: linear-gradient(145deg, rgba(13, 34, 49, .96), rgba(8, 24, 36, .96));
    color: var(--text);
    text-decoration: none;
}

.member-access-card:hover,
.member-access-card:focus-visible {
    border-color: var(--cyan);
    box-shadow: 0 0 0 1px rgba(38, 205, 236, .16), 0 16px 34px rgba(0, 0, 0, .2);
}

.member-access-card__radio {
    grid-area: radio;
    display: grid;
    place-items: center;
    width: 58px;
    min-height: 58px;
    padding: 6px;
    border: 1px solid rgba(38, 205, 236, .45);
    border-radius: 15px;
    background: rgba(38, 205, 236, .08);
    color: var(--cyan);
    font-size: 1.05rem;
    font-weight: 900;
}

.member-access-card__identity {
    grid-area: identity;
    display: grid;
    gap: 2px;
}

.member-access-card__identity strong {
    font-size: 1.03rem;
}

.member-access-card__identity small,
.member-access-card__identity span {
    color: var(--muted);
}

.member-access-card__roles {
    grid-area: roles;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.member-access-card__roles span {
    padding: 4px 8px;
    border: 1px solid rgba(38, 205, 236, .22);
    border-radius: 999px;
    background: rgba(38, 205, 236, .07);
    color: #bdeffc;
    font-size: .74rem;
    font-weight: 800;
}

.member-access-card__roles .is-attention {
    border-color: rgba(245, 184, 65, .35);
    background: rgba(245, 184, 65, .08);
    color: #ffd77d;
}

.member-access-card > .tone {
    grid-area: state;
}

.member-access-card > b {
    grid-area: action;
    color: var(--cyan);
    font-size: .78rem;
    text-align: right;
}

.member-access-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 22px;
    border: 1px solid rgba(38, 205, 236, .35);
    border-radius: 20px;
    background:
        radial-gradient(circle at 12% 20%, rgba(38, 205, 236, .12), transparent 34%),
        linear-gradient(135deg, rgba(10, 35, 51, .98), rgba(7, 22, 34, .98));
}

.member-access-hero h1 {
    margin: 3px 0;
}

.member-access-hero p {
    margin: 0;
    color: var(--muted);
}

.member-access-hero__radio {
    display: grid;
    place-items: center;
    min-width: 76px;
    height: 76px;
    padding: 8px;
    border: 1px solid var(--cyan);
    border-radius: 18px;
    background: rgba(38, 205, 236, .1);
    color: var(--cyan);
    font-size: 1.35rem;
    font-weight: 950;
}

.member-access-hero__account {
    display: grid;
    justify-items: end;
    gap: 5px;
    color: var(--muted);
}

.member-access-hero__account strong {
    color: var(--green);
    font-size: .76rem;
    letter-spacing: .08em;
}

.member-access-form {
    display: grid;
    gap: 18px;
}

.access-role-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.access-role-card {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    min-height: 118px;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: rgba(8, 25, 37, .78);
    cursor: pointer;
}

.access-role-card:has(input:checked) {
    border-color: var(--cyan);
    background: rgba(38, 205, 236, .09);
    box-shadow: inset 0 0 0 1px rgba(38, 205, 236, .13);
}

.access-role-card input,
.permission-state-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.access-role-card__check {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: transparent;
}

.access-role-card:has(input:checked) .access-role-card__check {
    border-color: var(--cyan);
    background: var(--cyan);
    color: #03131c;
}

.access-role-card div {
    display: grid;
    gap: 5px;
}

.access-role-card small {
    color: var(--muted);
    line-height: 1.35;
}

.access-role-card b {
    grid-column: 2;
    color: var(--cyan);
    font-size: .74rem;
    letter-spacing: .04em;
}

.permission-module-stack {
    display: grid;
    gap: 14px;
}

.permission-module-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(7, 22, 33, .72);
}

.permission-module-card__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--line);
    background: rgba(38, 205, 236, .06);
}

.permission-module-card__heading strong {
    color: #dff8ff;
}

.permission-module-card__heading span {
    color: var(--muted);
    font-size: .75rem;
    font-weight: 800;
}

.permission-row-stack {
    display: grid;
}

.permission-row {
    display: grid;
    grid-template-columns: minmax(220px, .8fr) minmax(430px, 1.5fr) auto;
    align-items: center;
    gap: 18px;
    padding: 15px 16px;
    border-bottom: 1px solid rgba(119, 153, 174, .14);
}

.permission-row:last-child {
    border-bottom: 0;
}

.permission-row__identity {
    display: grid;
    gap: 3px;
}

.permission-row__identity small {
    color: var(--muted);
    line-height: 1.35;
}

.permission-row__identity code {
    width: fit-content;
    color: #7dd9ee;
    font-size: .7rem;
}

.permission-state-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}

.permission-state-choice {
    position: relative;
    display: grid;
    min-height: 57px;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: rgba(12, 30, 43, .86);
    cursor: pointer;
}

.permission-state-choice span {
    display: grid;
    gap: 2px;
}

.permission-state-choice strong {
    font-size: .8rem;
}

.permission-state-choice small {
    color: var(--muted);
    font-size: .68rem;
}

.permission-state-choice:has(input:checked) {
    border-color: var(--cyan);
    background: rgba(38, 205, 236, .11);
}

.permission-state-choice--allow:has(input:checked) {
    border-color: var(--green);
    background: rgba(65, 216, 145, .1);
}

.permission-state-choice--deny:has(input:checked) {
    border-color: #ff6b76;
    background: rgba(255, 82, 96, .1);
}

.access-change-panel {
    display: grid;
    grid-template-columns: minmax(230px, .7fr) minmax(320px, 1.2fr) auto;
    align-items: end;
    gap: 20px;
}

.access-change-panel label {
    display: grid;
    gap: 7px;
}

.access-change-panel input {
    width: 100%;
}

.member-access-guardrail {
    margin: 0;
}

.profile-hero > .button {
    white-space: nowrap;
}

@media (max-width: 1180px) {
    .member-access-grid,
    .access-role-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .permission-row {
        grid-template-columns: minmax(220px, .8fr) minmax(390px, 1.4fr);
    }

    .permission-row > .tone {
        grid-column: 2;
        justify-self: start;
    }

    .access-change-panel {
        grid-template-columns: minmax(220px, .7fr) minmax(320px, 1.3fr);
    }

    .access-change-panel .form-actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }
}

@media (max-width: 820px) {
    .member-access-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .member-access-heading,
    .member-access-search {
        align-items: stretch;
        flex-direction: column;
    }

    .member-access-search .search-box {
        flex-basis: auto;
        max-width: none;
    }

    .member-access-grid,
    .access-role-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .member-access-hero {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .member-access-hero__account {
        grid-column: 1 / -1;
        justify-items: start;
    }

    .permission-row,
    .access-change-panel {
        grid-template-columns: minmax(0, 1fr);
    }

    .permission-row > .tone,
    .access-change-panel .form-actions {
        grid-column: 1;
    }
}

@media (max-width: 560px) {
    .member-access-summary,
    .permission-state-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .member-access-card {
        grid-template-columns: 54px minmax(0, 1fr);
        grid-template-areas:
            "radio identity"
            "state state"
            "roles roles"
            "action action";
    }

    .member-access-card__radio {
        width: 50px;
        min-height: 50px;
    }

    .member-access-card > b {
        text-align: left;
    }

    .member-access-hero__radio {
        min-width: 58px;
        height: 58px;
        font-size: 1rem;
    }

    .member-access-search .button,
    .access-change-panel .button {
        width: 100%;
    }
}

@media (max-width: 880px) {
    .incident-metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .incident-metric-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: .55rem;
    }

    .incident-metric-grid > article {
        min-height: 82px;
        padding: .85rem .95rem;
    }
}

/* Phase 17 — tenant dashboard builder and compact operational boards. */
.department-section-heading--dashboard {
    margin-top: .25rem;
    margin-bottom: 1rem;
}

.department-section-heading__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .65rem;
}

.department-section-heading--dashboard > div:first-child > p {
    margin: .3rem 0 0;
    color: #78929f;
    font-size: .62rem;
}

.department-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.dashboard-widget {
    min-width: 0;
    margin: 0;
    border-color: rgb(38 92 116 / 68%);
}

.dashboard-widget--compact { grid-column: span 4; }
.dashboard-widget--wide { grid-column: span 6; }
.dashboard-widget--full { grid-column: 1 / -1; }

.dashboard-widget .panel-heading p {
    max-width: 720px;
    margin: .28rem 0 0;
    color: var(--muted);
    font-size: .62rem;
    line-height: 1.45;
}

.dashboard-widget-empty {
    min-height: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    padding: 1rem;
    color: #6f8997;
    text-align: left;
}

.dashboard-widget-empty--short { min-height: 92px; }
.dashboard-widget-empty > svg { width: 2rem; height: 2rem; flex: 0 0 2rem; }
.dashboard-widget-empty strong,
.dashboard-widget-empty span { display: block; }
.dashboard-widget-empty strong { color: #d9e8ee; font-size: .75rem; }
.dashboard-widget-empty span { margin-top: .25rem; font-size: .62rem; line-height: 1.45; }

.dashboard-widget-note {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin: .8rem 0 0;
    color: #718d9a;
    font-size: .58rem;
    line-height: 1.45;
}

.dashboard-announcement {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    margin-top: .65rem;
    padding: .9rem;
    border: 1px solid #28667d;
    border-radius: 12px;
    background: linear-gradient(135deg, rgb(12 48 63 / 96%), rgb(8 27 38 / 96%));
}

.dashboard-announcement:first-of-type { margin-top: 0; }
.dashboard-announcement__icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: var(--cyan);
    background: rgb(32 200 239 / 12%);
}
.dashboard-announcement__icon svg { width: 1.1rem; height: 1.1rem; }
.dashboard-announcement strong { font-size: .76rem; }
.dashboard-announcement p { margin: .3rem 0 0; color: #b5c8d1; font-size: .65rem; line-height: 1.55; white-space: pre-line; }
.dashboard-announcement small { display: block; margin-top: .45rem; color: #7293a2; font-size: .55rem; }
.dashboard-announcement--success { border-color: #246944; background: linear-gradient(135deg, rgb(12 61 40 / 94%), rgb(7 29 24 / 96%)); }
.dashboard-announcement--success .dashboard-announcement__icon { color: var(--green); background: rgb(69 215 113 / 12%); }
.dashboard-announcement--attention { border-color: #7a5f21; background: linear-gradient(135deg, rgb(65 48 11 / 94%), rgb(31 26 9 / 96%)); }
.dashboard-announcement--attention .dashboard-announcement__icon { color: var(--amber); background: rgb(255 190 50 / 12%); }
.dashboard-announcement--urgent { border-color: #8a303b; background: linear-gradient(135deg, rgb(70 17 25 / 96%), rgb(34 10 16 / 98%)); }
.dashboard-announcement--urgent .dashboard-announcement__icon { color: #ff7d87; background: rgb(255 75 88 / 13%); }

.dashboard-quick-actions .dashboard-module-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin: 0;
}

.dashboard-module-grid .metric-card { min-height: 126px; }
.dashboard-widget--wide .dashboard-module-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dashboard-widget--compact .dashboard-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.dashboard-incident-list > a {
    min-height: 68px;
    padding: .62rem .35rem;
    border-radius: 8px;
}

.dashboard-incident-list > a:hover,
.dashboard-incident-list > a:focus-visible {
    background: rgb(32 200 239 / 6%);
    outline: none;
}

.dashboard-incident-list strong {
    overflow-wrap: anywhere;
    font-size: .72rem;
    line-height: 1.25;
}

.dashboard-incident-list small {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    line-height: 1.35;
}

.dashboard-incident-list--compact > a {
    grid-template-columns: auto minmax(0, 1fr) minmax(118px, auto);
}
.dashboard-incident-list--compact > a > .tone { display: none !important; }

.dashboard-reporting-grid {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(0, 1.2fr);
    gap: .8rem;
}
.dashboard-reporting-primary {
    min-height: 180px;
    display: flex;
    justify-content: center;
    flex-direction: column;
    padding: 1rem;
    border: 1px solid rgb(32 200 239 / 28%);
    border-radius: 12px;
    background: radial-gradient(circle at 100% 0, rgb(32 200 239 / 14%), transparent 52%), #091b26;
}
.dashboard-reporting-primary small,
.dashboard-reporting-primary strong,
.dashboard-reporting-primary span { display: block; }
.dashboard-reporting-primary small { color: #65d8f2; font-size: .55rem; font-weight: 900; letter-spacing: .1em; }
.dashboard-reporting-primary strong { margin: .25rem 0; font-size: 2.8rem; line-height: 1; letter-spacing: -.07em; }
.dashboard-reporting-primary span { color: #7f9aa7; font-size: .6rem; line-height: 1.4; }
.dashboard-reporting-grid dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
    margin: 0;
}
.dashboard-reporting-grid dl div,
.dashboard-readiness-strip div {
    min-width: 0;
    padding: .8rem;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    background: #0a1c27;
}
.dashboard-reporting-grid dt,
.dashboard-reporting-grid dd { margin: 0; }
.dashboard-reporting-grid dt { color: #77919e; font-size: .58rem; }
.dashboard-reporting-grid dd { margin-top: .3rem; color: #eaf7fb; font-size: 1.25rem; font-weight: 850; }

.dashboard-weather-current > div:first-child {
    min-height: 150px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    padding: 1rem;
    border-radius: 12px;
    background: radial-gradient(circle at 85% 5%, rgb(32 200 239 / 20%), transparent 48%), #091d29;
}
.dashboard-weather-current > div:first-child strong { font-size: 3rem; line-height: 1; letter-spacing: -.08em; }
.dashboard-weather-current > div:first-child span { margin-top: .35rem; color: #d9f4fb; font-size: .78rem; font-weight: 800; }
.dashboard-weather-current > div:first-child small { margin-top: .3rem; color: #7d9aa7; font-size: .6rem; }
.dashboard-weather-current dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: .45rem; margin: .55rem 0 0; }
.dashboard-weather-current dl div { padding: .55rem; border: 1px solid var(--line-soft); border-radius: 8px; background: #091923; }
.dashboard-weather-current dt,
.dashboard-weather-current dd { margin: 0; text-align: center; }
.dashboard-weather-current dt { color: #728d9b; font-size: .52rem; }
.dashboard-weather-current dd { margin-top: .2rem; color: #d9e9ef; font-size: .65rem; font-weight: 800; }

.dashboard-station-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}
.dashboard-widget--full .dashboard-station-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dashboard-widget--compact .dashboard-station-grid { grid-template-columns: 1fr; }
.dashboard-station-card {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .65rem;
    padding: .8rem;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: #091a24;
}
.dashboard-station-card:hover,
.dashboard-station-card:focus-visible { border-color: #2a7995; outline: none; background: #0b222e; }
.dashboard-station-card__identity { min-width: 0; }
.dashboard-station-card__identity strong,
.dashboard-station-card__identity span { display: block; }
.dashboard-station-card__identity strong { font-size: .75rem; line-height: 1.3; overflow-wrap: anywhere; }
.dashboard-station-card__identity span { margin-top: .18rem; color: #78919e; font-size: .58rem; }
.dashboard-station-card dl { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; margin: .1rem 0 0; }
.dashboard-station-card dl div { display: flex; align-items: baseline; justify-content: space-between; gap: .4rem; padding: .5rem .6rem; border-radius: 8px; background: #0d2430; }
.dashboard-station-card dt,
.dashboard-station-card dd { margin: 0; }
.dashboard-station-card dt { color: #78929f; font-size: .56rem; }
.dashboard-station-card dd { color: #eef9fc; font-size: .72rem; font-weight: 850; }

.dashboard-apparatus-summary { margin-bottom: .65rem; }
.dashboard-apparatus-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}
.dashboard-widget--full .dashboard-apparatus-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dashboard-widget--compact .dashboard-apparatus-grid { grid-template-columns: 1fr; }
.dashboard-unit-card {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .65rem;
    padding: .68rem;
    border: 1px solid var(--line-soft);
    border-radius: 11px;
    background: #091a24;
}
.dashboard-unit-card:hover,
.dashboard-unit-card:focus-visible { border-color: #2a7995; outline: none; background: #0b222e; }
.dashboard-unit-card > div { min-width: 0; }
.dashboard-unit-card strong,
.dashboard-unit-card div > span,
.dashboard-unit-card small { display: block; }
.dashboard-unit-card strong { font-size: .74rem; overflow-wrap: anywhere; }
.dashboard-unit-card div > span { margin-top: .18rem; color: #8199a5; font-size: .58rem; line-height: 1.3; }
.dashboard-unit-card small { margin-top: .15rem; color: #63808e; font-size: .52rem; }
.dashboard-unit-card > .tone { grid-column: 2; margin-top: -.1rem; }

.dashboard-program-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}
.dashboard-widget--compact .dashboard-program-grid { grid-template-columns: 1fr; }
.dashboard-program-grid > a {
    min-height: 150px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .8rem;
    padding: .9rem;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: linear-gradient(145deg, #0b2430, #091923);
}
.dashboard-program-grid > a:hover,
.dashboard-program-grid > a:focus-visible { border-color: #2b94b6; outline: none; }
.dashboard-program-grid > a > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 11px; color: var(--cyan); background: #0c3b4e; }
.dashboard-program-grid svg { width: 1.25rem; height: 1.25rem; }
.dashboard-program-grid small,
.dashboard-program-grid strong,
.dashboard-program-grid p { display: block; margin: 0; }
.dashboard-program-grid small { color: #72d8ef; font-size: .53rem; font-weight: 900; letter-spacing: .08em; }
.dashboard-program-grid strong { margin: .2rem 0; font-size: 1.7rem; line-height: 1; }
.dashboard-program-grid p { color: #8199a5; font-size: .58rem; line-height: 1.4; }
.dashboard-program-links { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .9rem; margin-top: .7rem; }
.dashboard-program-links a { color: var(--cyan); font-size: .6rem; }

.dashboard-readiness-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
    margin-bottom: .5rem;
}
.dashboard-readiness-strip span,
.dashboard-readiness-strip strong { display: block; }
.dashboard-readiness-strip span { color: #78919e; font-size: .55rem; }
.dashboard-readiness-strip strong { margin-top: .18rem; font-size: 1.05rem; }
.dashboard-account-coverage .coverage-display { min-height: 245px; }

/* Phase 22 — pattern scheduling, standby coverage and payroll preparation. */
.report-intelligence-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) 250px; gap: .75rem; }
.intelligence-panel { min-width: 0; margin: 0; }
.intelligence-panel--types { grid-column: 1; }
.intelligence-panel--trend { grid-column: 2; }
.intelligence-panel--heatmap { grid-column: 1 / span 2; }
.intelligence-panel--kpis { grid-column: 3; grid-row: 1 / span 2; }
.report-treemap { min-height: 330px; display: flex; align-content: stretch; flex-wrap: wrap; gap: 4px; }
.report-treemap__tile { min-width: 105px; min-height: 76px; flex: var(--share) 1 calc(var(--share) * 1%); display: flex; flex-direction: column; justify-content: end; padding: .65rem; border: 1px solid rgb(255 255 255 / 16%); border-radius: 8px; overflow: hidden; color: #f4fbfd; background: #15728d; }
.report-treemap__tile span, .report-treemap__tile small { font-size: .49rem; }
.report-treemap__tile span { font-weight: 900; letter-spacing: .07em; opacity: .84; }
.report-treemap__tile strong { margin: .18rem 0; overflow-wrap: anywhere; font-size: .62rem; line-height: 1.25; }
.report-treemap__tile small { opacity: .88; }
.report-treemap__tile.report-family--fire { background: #9b263c; }
.report-treemap__tile.report-family--ems, .report-treemap__tile.report-family--medical { background: #927513; }
.report-treemap__tile.report-family--hazmat { background: #177b75; }
.report-treemap__tile.report-family--rescue { background: #71389e; }
.report-treemap__tile.report-family--mvc { background: #b0581d; }
.report-treemap__tile.report-family--service { background: #227b56; }
.report-trend { min-height: 330px; display: flex; align-items: end; gap: 2px; overflow-x: auto; padding: .5rem .15rem 1.4rem; border-bottom: 1px solid var(--line-soft); background: linear-gradient(to top, rgb(30 80 100 / 11%) 1px, transparent 1px); background-size: 100% 25%; }
.report-trend > div { position: relative; min-width: 4px; height: 290px; flex: 1 0 4px; display: flex; align-items: end; }
.report-trend i { width: 100%; min-height: 3px; height: var(--height); display: block; border-radius: 2px 2px 0 0; background: linear-gradient(180deg, #35d2f1, #177fa2); }
.report-trend span { position: absolute; left: 0; bottom: -1.2rem; color: #708b98; font-size: .42rem; white-space: nowrap; transform: rotate(-30deg); transform-origin: left top; }
.report-trend > div:not(:nth-child(4n + 1)) span { display: none; }
.report-heatmap-wrap { max-height: 500px; overflow: auto; border: 1px solid var(--line-soft); border-radius: 10px; }
.report-heatmap { width: 100%; min-width: 560px; border-collapse: separate; border-spacing: 2px; }
.report-heatmap th { position: sticky; top: 0; z-index: 1; padding: .3rem; color: #829ca8; background: #081a24; font-size: .48rem; text-align: center; }
.report-heatmap tbody th { left: 0; z-index: 2; }
.report-heatmap td { height: 25px; min-width: 50px; border-radius: 3px; color: #fff; background: rgb(238 74 113 / calc(.07 + (var(--intensity) * .86))); text-align: center; }
.report-heatmap td span { font-size: .47rem; font-weight: 850; }
.report-kpi-stack { display: grid; gap: 0; margin: 0; }
.report-kpi-stack div { padding: .72rem 0; border-bottom: 1px solid var(--line-soft); }
.report-kpi-stack dt { color: #8aa1ac; font-size: .54rem; font-weight: 750; }
.report-kpi-stack dd { margin: .22rem 0 0; color: #eff9fc; font-size: 1.05rem; font-weight: 900; }
.report-secondary-intelligence { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.report-secondary-intelligence > .panel { margin: 0; }
.report-location-blocks { display: flex; flex-wrap: wrap; gap: 4px; }
.report-location-blocks > div { min-width: 112px; flex: var(--width) 1 calc(var(--width) * 1%); min-height: 74px; display: grid; align-content: end; padding: .65rem; border: 1px solid #2b6172; border-radius: 8px; background: linear-gradient(145deg, #155c75, #0b3548); }
.report-location-blocks span, .report-location-blocks strong, .report-location-blocks small { display: block; }
.report-location-blocks span { font-size: .52rem; font-weight: 800; line-height: 1.3; }
.report-location-blocks strong { margin-top: .15rem; font-size: .82rem; }
.report-location-blocks small { color: #a9ddea; font-size: .47rem; }
.report-aid-breakdown { display: grid; gap: .6rem; }
.report-aid-breakdown article { position: relative; display: grid; grid-template-columns: 1fr auto; gap: .5rem; padding-bottom: .5rem; overflow: hidden; }
.report-aid-breakdown article span { color: #9ab0ba; font-size: .57rem; }
.report-aid-breakdown article strong { font-size: .72rem; }
.report-aid-breakdown article i { grid-column: 1 / -1; width: var(--width); height: 7px; display: block; border-radius: 999px; background: linear-gradient(90deg, #35d2f1, #49df9b); }
.report-impact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 1180px) {
    .report-intelligence-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .intelligence-panel--types, .intelligence-panel--trend { grid-column: auto; }
    .intelligence-panel--heatmap { grid-column: 1 / -1; }
    .intelligence-panel--kpis { grid-column: 1 / -1; grid-row: auto; }
    .report-kpi-stack { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
    .report-kpi-stack div { padding: .65rem; border: 1px solid var(--line-soft); border-radius: 8px; }
    .report-secondary-intelligence { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .report-intelligence-grid, .report-secondary-intelligence { grid-template-columns: 1fr; }
    .intelligence-panel--types, .intelligence-panel--trend, .intelligence-panel--heatmap, .intelligence-panel--kpis { grid-column: 1; }
    .report-kpi-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .report-treemap { min-height: 260px; }
    .report-trend { min-height: 250px; }
    .report-trend > div { height: 210px; }
}

.scheduling-workspace { display: grid; gap: 1rem; }
.scheduling-command-header { margin-bottom: 0; }
.scheduling-nav { position: sticky; top: 72px; z-index: 14; }
.scheduling-nav a.is-active { color: #04151d; background: var(--cyan); }
.schedule-range-form { display: flex; align-items: end; flex-wrap: wrap; gap: .7rem; margin: .85rem 0; }
.schedule-range-form label { display: grid; gap: .3rem; color: #87a0ad; font-size: .6rem; font-weight: 850; }
.schedule-range-form input { min-height: 42px; padding: .55rem .7rem; border: 1px solid var(--line-soft); border-radius: 9px; color: var(--text); background: #071620; color-scheme: dark; }
.schedule-calendar { display: grid; grid-template-columns: repeat(7, minmax(155px, 1fr)); gap: .45rem; overflow-x: auto; padding-bottom: .4rem; }
.schedule-day { min-height: 170px; border: 1px solid var(--line-soft); border-radius: 12px; overflow: hidden; background: #071721; }
.schedule-day.is-today { border-color: var(--cyan); box-shadow: inset 0 0 0 1px rgb(53 210 241 / 20%); }
.schedule-day > header { display: grid; grid-template-columns: 1fr auto; align-items: center; padding: .55rem .65rem; border-bottom: 1px solid var(--line-soft); background: #0a202c; }
.schedule-day > header span { color: #72d8ef; font-size: .52rem; font-weight: 900; letter-spacing: .09em; }
.schedule-day > header strong { grid-row: span 2; font-size: 1.25rem; }
.schedule-day > header small { color: #718d9b; font-size: .52rem; }
.schedule-day__positions { display: grid; gap: .38rem; padding: .5rem; }
.schedule-capacity-summary { display: flex; align-items: center; justify-content: space-between; gap: .4rem; padding: .38rem .45rem; border: 1px solid rgb(53 210 241 / 28%); border-radius: 7px; background: rgb(12 53 68 / 72%); }
.schedule-capacity-summary span { min-width: 0; overflow: hidden; color: #82def0; font-size: .49rem; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.schedule-capacity-summary strong { flex: 0 0 auto; color: #e5f9fd; font-size: .49rem; }
.schedule-day__empty { padding: .55rem; color: #597583; font-size: .56rem; text-align: center; }
.schedule-position { display: grid; gap: .15rem; padding: .48rem .55rem; border-left: 3px solid var(--shift-color); border-radius: 7px; background: #0d2632; }
.schedule-position span { color: var(--shift-color); font-size: .48rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.schedule-position strong { overflow-wrap: anywhere; font-size: .58rem; }
.schedule-position small { color: #829ba7; font-size: .49rem; line-height: 1.35; }
.schedule-position--open { border: 1px dashed #ff758a; border-left-width: 3px; background: rgb(100 18 37 / 24%); }
.coverage-board, .time-off-list, .pay-period-list, .pattern-list { display: grid; gap: .6rem; }
.coverage-card, .time-off-list article, .pay-period-list article, .pattern-list article { display: flex; align-items: center; gap: .75rem; padding: .75rem; border: 1px solid var(--line-soft); border-radius: 11px; background: #081923; }
.coverage-card > div, .time-off-list article > div, .pay-period-list article > div, .pattern-list article > div { min-width: 0; flex: 1; }
.coverage-card strong, .coverage-card small, .time-off-list strong, .time-off-list small, .pay-period-list strong, .pay-period-list small, .pattern-list strong, .pattern-list small, .pattern-list span { display: block; }
.coverage-card small, .time-off-list small, .pay-period-list small, .pattern-list small { margin-top: .18rem; color: #7e98a5; font-size: .56rem; }
.coverage-card form, .time-off-list form, .pay-period-list form { display: flex; align-items: center; gap: .5rem; }
.coverage-card select { min-height: 40px; max-width: 230px; border: 1px solid var(--line-soft); border-radius: 8px; color: var(--text); background: #071620; }
.payroll-table-wrap { overflow-x: auto; border: 1px solid var(--line-soft); border-radius: 12px; }
.payroll-table { width: 100%; min-width: 900px; border-collapse: collapse; }
.payroll-table th, .payroll-table td { padding: .72rem; border-bottom: 1px solid var(--line-soft); text-align: left; font-size: .6rem; }
.payroll-table th { color: #75a7b9; background: #081c27; font-size: .52rem; letter-spacing: .07em; text-transform: uppercase; }
.payroll-table td small { color: #79919e; }
.payroll-table button { margin-right: .25rem; border: 1px solid var(--line-soft); border-radius: 7px; padding: .4rem .55rem; color: var(--text); background: #0b2733; cursor: pointer; }
.shift-type-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .6rem; margin-bottom: 1rem; }
.shift-type-grid article { display: grid; gap: .25rem; padding: .8rem; border: 1px solid var(--line-soft); border-top: 3px solid var(--shift-color); border-radius: 11px; background: #081923; }
.shift-type-grid article span { color: var(--shift-color); font-size: .5rem; font-weight: 900; letter-spacing: .08em; }
.shift-type-grid article small { color: #7d97a4; font-size: .55rem; line-height: 1.35; }
.shift-builder-form { margin-top: 1rem; }
.schedule-template-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; margin: .8rem 0 1rem; }
.schedule-template-grid button { min-height: 54px; padding: .65rem; border: 1px solid #23566a; border-radius: 10px; color: #bfeffc; background: #092431; cursor: pointer; font-weight: 800; }
.schedule-template-grid button:hover, .schedule-template-grid button:focus-visible { border-color: var(--cyan); outline: none; background: #0c3544; }
.pattern-list { margin-top: 1rem; }
.pattern-list article { align-items: end; }
.pattern-list span { color: #73d9ee; font-size: .5rem; font-weight: 900; letter-spacing: .07em; }
.pattern-list form { display: flex; align-items: end; gap: .45rem; }
.pattern-list label { display: grid; gap: .25rem; color: #7693a1; font-size: .5rem; }
.pattern-list input { min-height: 39px; border: 1px solid var(--line-soft); border-radius: 8px; padding: .45rem; color: var(--text); background: #06141d; color-scheme: dark; }
.schedule-toggle-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; }
.schedule-toggle-grid label { display: flex; align-items: center; gap: .55rem; padding: .7rem; border: 1px solid var(--line-soft); border-radius: 10px; background: #081b25; }
.schedule-toggle-grid input { width: 18px; height: 18px; min-height: 0; flex: 0 0 18px; accent-color: var(--cyan); }
.schedule-toggle-grid span { display: grid; gap: .15rem; }
.schedule-toggle-grid small { color: #718b98; font-size: .5rem; }

@media (max-width: 1050px) {
    .schedule-calendar { grid-template-columns: repeat(7, minmax(135px, 1fr)); }
    .schedule-template-grid, .schedule-toggle-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .scheduling-nav { top: 60px; overflow-x: auto; flex-wrap: nowrap; }
    .scheduling-nav a { white-space: nowrap; }
    .schedule-calendar { grid-template-columns: 1fr; overflow: visible; }
    .schedule-day { min-height: 0; display: grid; grid-template-columns: 64px minmax(0, 1fr); }
    .schedule-day > header { align-content: center; border-right: 1px solid var(--line-soft); border-bottom: 0; }
    .schedule-day__positions { min-width: 0; }
    .coverage-card, .time-off-list article, .pattern-list article { align-items: stretch; flex-direction: column; }
    .coverage-card form, .time-off-list form, .pattern-list form { align-items: stretch; flex-direction: column; width: 100%; }
    .coverage-card select { width: 100%; max-width: none; }
    .schedule-template-grid, .schedule-toggle-grid { grid-template-columns: 1fr; }
}

/* Phase 22 — full apparatus lifecycle record inspired by modern fleet workflows. */
.apparatus-record-tabs { position: sticky; top: 72px; z-index: 13; display: flex; gap: .35rem; overflow-x: auto; margin: .8rem 0 1rem; padding: .4rem; border: 1px solid var(--line-soft); border-radius: 12px; background: rgb(5 18 26 / 94%); backdrop-filter: blur(14px); }
.apparatus-record-tabs a { flex: 0 0 auto; min-height: 38px; display: inline-flex; align-items: center; padding: .48rem .7rem; border-radius: 8px; color: #8da6b2; font-size: .58rem; font-weight: 800; text-decoration: none; }
.apparatus-record-tabs a:hover, .apparatus-record-tabs a:focus-visible { color: #e7faff; outline: none; background: #0b3544; }
.apparatus-lifecycle-panel { scroll-margin-top: 135px; margin-bottom: 1rem; }
.apparatus-accordion-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line-soft); border-radius: 12px; overflow: hidden; }
.apparatus-accordion-grid details { min-width: 0; border-bottom: 1px solid var(--line-soft); background: #071923; }
.apparatus-accordion-grid details:nth-child(odd) { border-right: 1px solid var(--line-soft); }
.apparatus-accordion-grid summary { min-height: 62px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .7rem .8rem; cursor: pointer; list-style: none; }
.apparatus-accordion-grid summary::-webkit-details-marker { display: none; }
.apparatus-accordion-grid summary::after { content: '⌄'; color: var(--cyan); font-size: .9rem; }
.apparatus-accordion-grid summary strong { min-width: 0; color: #e7f1f5; font-size: .66rem; }
.apparatus-accordion-grid summary span { max-width: 220px; overflow: hidden; color: #829ba8; font-size: .54rem; text-overflow: ellipsis; white-space: nowrap; }
.apparatus-accordion-grid details[open] summary::after { transform: rotate(180deg); }
.apparatus-accordion-grid details > p { margin: 0; padding: 0 .8rem .75rem; color: #91a9b4; font-size: .58rem; line-height: 1.5; }
.lifecycle-editor { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line-soft); }
.apparatus-maintenance-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; }
.apparatus-maintenance-metrics article { min-width: 0; padding: .75rem; border: 1px solid var(--line-soft); border-radius: 10px; background: #081b26; }
.apparatus-maintenance-metrics span, .apparatus-maintenance-metrics strong { display: block; }
.apparatus-maintenance-metrics span { color: #75909d; font-size: .5rem; font-weight: 850; letter-spacing: .05em; }
.apparatus-maintenance-metrics strong { margin-top: .25rem; overflow-wrap: anywhere; font-size: .82rem; }
.apparatus-command-drawer { margin-top: .75rem; border: 1px solid #214756; border-radius: 11px; background: #071a24; }
.apparatus-command-drawer > summary { min-height: 46px; display: flex; align-items: center; justify-content: space-between; padding: .65rem .8rem; color: #bfeaf4; cursor: pointer; font-size: .62rem; font-weight: 850; }
.apparatus-command-drawer > summary::after { content: '+'; color: var(--cyan); font-size: 1rem; }
.apparatus-command-drawer[open] > summary::after { content: '−'; }
.apparatus-command-drawer > form { margin: 0 .75rem .75rem; padding-top: .75rem; border-top: 1px solid var(--line-soft); }
.apparatus-record-list { display: grid; gap: .5rem; margin-top: .8rem; }
.apparatus-record-list article { display: flex; align-items: center; gap: .7rem; padding: .7rem .8rem; border: 1px solid var(--line-soft); border-radius: 10px; background: #081923; }
.apparatus-record-list article > div { min-width: 0; flex: 1; }
.apparatus-record-list strong, .apparatus-record-list small { display: block; }
.apparatus-record-list small { margin-top: .18rem; color: #7d97a4; font-size: .54rem; line-height: 1.4; }
.apparatus-compartment-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.apparatus-compartment-grid article { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .65rem; padding: .8rem; border: 1px solid var(--line-soft); border-radius: 12px; background: #081b25; }
.apparatus-compartment-grid strong, .apparatus-compartment-grid small { display: block; }
.apparatus-compartment-grid small { margin-top: .2rem; color: #7f99a6; font-size: .54rem; line-height: 1.4; }
.apparatus-compartment-grid ul { grid-column: 1 / -1; margin: 0; padding: .6rem .6rem .2rem 1.6rem; border-top: 1px solid var(--line-soft); color: #a2bac4; font-size: .55rem; }
.apparatus-neris-identity { border-color: #2d5261; background: linear-gradient(135deg, rgb(8 32 43 / 96%), rgb(5 21 29 / 98%)); }

@media (max-width: 1000px) {
    .apparatus-maintenance-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .apparatus-compartment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .apparatus-record-tabs { top: 60px; }
    .apparatus-accordion-grid, .apparatus-compartment-grid, .apparatus-maintenance-metrics { grid-template-columns: 1fr; }
    .apparatus-accordion-grid details:nth-child(odd) { border-right: 0; }
    .apparatus-accordion-grid summary span { max-width: 145px; }
    .apparatus-record-list article { align-items: flex-start; flex-direction: column; }
}

.dashboard-builder-workspace { display: grid; gap: 1rem; }
.dashboard-builder-header { margin-bottom: 0; }
.dashboard-builder-safety {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .8rem 1rem;
    border: 1px solid #245e3c;
    border-radius: 12px;
    color: #a7dcb8;
    background: #0a2519;
}
.dashboard-builder-safety > svg { width: 1.25rem; height: 1.25rem; color: var(--green); }
.dashboard-builder-safety strong,
.dashboard-builder-safety span { display: block; }
.dashboard-builder-safety strong { color: #d9f6e2; font-size: .68rem; }
.dashboard-builder-safety span { margin-top: .16rem; font-size: .58rem; line-height: 1.4; }
.dashboard-builder-form { display: grid; gap: 1rem; }
.dashboard-builder-list { display: grid; gap: .6rem; }
.dashboard-builder-card {
    display: grid;
    grid-template-columns: minmax(260px, 1.3fr) auto minmax(260px, 1fr) auto;
    align-items: center;
    gap: .85rem;
    padding: .75rem;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: #091a24;
}
.dashboard-builder-card:focus { outline: 2px solid rgb(32 200 239 / 40%); outline-offset: 2px; }
.dashboard-builder-card__identity { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .65rem; }
.dashboard-builder-card__identity > span { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; color: var(--cyan); background: #0c3749; }
.dashboard-builder-card__identity svg { width: 1.15rem; height: 1.15rem; }
.dashboard-builder-card__identity strong,
.dashboard-builder-card__identity small { display: block; }
.dashboard-builder-card__identity strong { font-size: .7rem; }
.dashboard-builder-card__identity small { margin-top: .18rem; color: #78919e; font-size: .56rem; line-height: 1.4; }
.dashboard-builder-toggle { display: inline-flex; align-items: center; gap: .42rem; min-height: 38px; padding: .45rem .65rem; border: 1px solid var(--line); border-radius: 999px; color: #bdd0d8; background: #0c202b; font-size: .6rem; font-weight: 800; cursor: pointer; }
.dashboard-builder-toggle input { width: 17px; min-height: 17px; accent-color: var(--cyan); }
.dashboard-size-options,
.dashboard-tone-options { min-width: 0; display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; border: 0; }
.dashboard-size-options legend,
.dashboard-tone-options legend { width: 100%; margin-bottom: .15rem; color: #708b98; font-size: .52rem; }
.dashboard-size-options label,
.dashboard-tone-options label { cursor: pointer; }
.dashboard-size-options input,
.dashboard-tone-options input { position: absolute; opacity: 0; pointer-events: none; }
.dashboard-size-options span,
.dashboard-tone-options span { display: inline-flex; min-height: 32px; align-items: center; padding: .38rem .55rem; border: 1px solid var(--line); border-radius: 8px; color: #91a7b1; background: #0c202b; font-size: .56rem; font-weight: 750; }
.dashboard-size-options input:checked + span,
.dashboard-tone-options input:checked + span { border-color: var(--cyan); color: #eafaff; background: #0b3a4b; box-shadow: 0 0 0 2px rgb(32 200 239 / 8%); }
.dashboard-builder-move { display: flex; gap: .35rem; }
.dashboard-builder-move button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 9px; color: #d9e8ee; background: #0d2430; cursor: pointer; }
.dashboard-builder-move button:hover,
.dashboard-builder-move button:focus-visible { border-color: var(--cyan); outline: none; }
.dashboard-builder-move button:disabled { opacity: .28; cursor: default; }
.dashboard-announcement-slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.dashboard-announcement-slot { min-width: 0; padding: .85rem; border: 1px solid var(--line-soft); border-radius: 12px; background: #091a24; }
.dashboard-announcement-slot > header { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-bottom: .8rem; }
.dashboard-announcement-slot > header span,
.dashboard-announcement-slot > header strong { display: block; }
.dashboard-announcement-slot > header div > span { color: var(--cyan); font-size: .5rem; font-weight: 900; letter-spacing: .1em; }
.dashboard-announcement-slot > header div > strong { margin-top: .18rem; font-size: .68rem; }
.dashboard-announcement-slot > label { display: grid; gap: .3rem; margin-top: .65rem; }
.dashboard-announcement-slot > label > span,
.dashboard-announcement-expiry > span { color: #8ca2ad; font-size: .56rem; font-weight: 750; }
.dashboard-announcement-slot input[type="text"],
.dashboard-announcement-slot input[type="date"],
.dashboard-announcement-slot textarea { width: 100%; }
.dashboard-announcement-slot textarea { min-height: 110px; resize: vertical; }
.dashboard-announcement-slot__footer { display: grid; gap: .75rem; margin-top: .75rem; }
.dashboard-announcement-expiry { display: grid; gap: .3rem; }
.dashboard-tone--success input:checked + span { border-color: #299257; color: #c9f6d7; background: #0b3522; }
.dashboard-tone--attention input:checked + span { border-color: #9b7627; color: #ffe09a; background: #34280d; }
.dashboard-tone--urgent input:checked + span { border-color: #a73c49; color: #ffb1b7; background: #3b131a; }
.dashboard-builder-actions { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }

@media (max-width: 1320px) {
    .dashboard-widget--compact { grid-column: span 6; }
    .dashboard-widget--wide { grid-column: span 6; }
    .dashboard-quick-actions .dashboard-module-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .dashboard-widget--full .dashboard-station-grid,
    .dashboard-widget--full .dashboard-apparatus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-builder-card { grid-template-columns: minmax(240px, 1fr) auto minmax(250px, 1fr) auto; }
    .dashboard-announcement-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
    .dashboard-widget--compact,
    .dashboard-widget--wide,
    .dashboard-widget--full { grid-column: 1 / -1; }
    .dashboard-builder-card { grid-template-columns: minmax(0, 1fr) auto; }
    .dashboard-size-options { grid-column: 1; }
    .dashboard-builder-move { grid-column: 2; grid-row: 2; }
    .dashboard-announcement-slots { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
    .department-section-heading__actions { width: 100%; justify-content: flex-start; }
    .department-dashboard-grid { gap: .75rem; }
    .dashboard-widget { padding: .8rem; }
    .dashboard-quick-actions .dashboard-module-grid,
    .dashboard-widget--wide .dashboard-module-grid,
    .dashboard-widget--compact .dashboard-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-module-grid .metric-card { min-height: 112px; padding: .75rem; }
    .dashboard-module-grid .metric-card small { font-size: .58rem; }
    .dashboard-incident-list--compact > a,
    .dashboard-incident-list > a { grid-template-columns: auto minmax(0, 1fr); }
    .dashboard-incident-list > a > :nth-child(3),
    .dashboard-incident-list > a > .tone { grid-column: 2; }
    .dashboard-reporting-grid { grid-template-columns: 1fr; }
    .dashboard-reporting-grid dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-station-grid,
    .dashboard-widget--full .dashboard-station-grid,
    .dashboard-apparatus-grid,
    .dashboard-widget--full .dashboard-apparatus-grid,
    .dashboard-program-grid { grid-template-columns: 1fr; }
    .dashboard-readiness-strip { grid-template-columns: 1fr; }
    .dashboard-builder-card { grid-template-columns: 1fr; }
    .dashboard-builder-toggle,
    .dashboard-size-options,
    .dashboard-builder-move { grid-column: 1; grid-row: auto; }
    .dashboard-builder-move button { flex: 1; }
    .dashboard-builder-actions { align-items: stretch; flex-direction: column-reverse; }
    .dashboard-builder-actions .button { width: 100%; }
}

@media (max-width: 430px) {
    .dashboard-quick-actions .dashboard-module-grid,
    .dashboard-widget--wide .dashboard-module-grid,
    .dashboard-widget--compact .dashboard-module-grid,
    .dashboard-reporting-grid dl,
    .dashboard-weather-current dl { grid-template-columns: 1fr; }
    .dashboard-program-links { justify-content: flex-start; flex-direction: column; }
}

/* Phase 23 — county mapping, direct standby assignment, apparatus call history, and NERIS lock state. */
.report-map-county-boundary {
    fill: rgb(21 109 136 / 18%);
    stroke: #4cdcf5;
    stroke-width: 2.2;
    vector-effect: non-scaling-stroke;
    filter: drop-shadow(0 0 8px rgb(53 210 241 / 18%));
}
.report-map-empty[hidden] { display: none; }
.report-map-coverage {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .55rem;
    margin: 0 0 .75rem;
}
.report-map-coverage > span {
    display: grid;
    gap: .15rem;
    padding: .6rem .7rem;
    border: 1px solid var(--line-soft);
    border-radius: 9px;
    color: #829ca8;
    background: #071923;
    font-size: .52rem;
}
.report-map-coverage strong { color: #dff8ff; font-size: .66rem; }
.report-map-coverage .needs-attention { border-color: rgb(239 177 59 / 42%); background: rgb(65 45 9 / 38%); }
.report-map-coverage .is-complete { border-color: rgb(55 209 139 / 38%); }
.report-map-boundary-legend i {
    border: 2px solid #4cdcf5;
    border-radius: 2px !important;
    background: rgb(21 109 136 / 28%) !important;
}
.report-incident-map .record-note a,
.app-footer a { color: #7fe7f8; }
.report-apparatus-activity { margin-bottom: 1rem; }
.apparatus-call-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: .55rem;
}
.apparatus-call-grid > a {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .65rem;
    padding: .7rem;
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    color: inherit;
    background: #081b25;
    text-decoration: none;
}
.apparatus-call-grid > a:hover,
.apparatus-call-grid > a:focus-visible { border-color: var(--cyan); outline: none; background: #0a2633; }
.apparatus-call-grid strong,
.apparatus-call-grid small { display: block; }
.apparatus-call-grid small { margin-top: .16rem; color: #7f9ba8; font-size: .52rem; }
.apparatus-call-grid__count { text-align: right; }
.apparatus-call-grid__count strong { color: var(--cyan); font-size: .85rem; }

.schedule-calendar-panel .panel-heading p {
    max-width: 760px;
    margin: .2rem 0 0;
    color: var(--muted);
    font-size: .56rem;
    line-height: 1.45;
}
.schedule-day-assignment-form { display: grid; gap: .3rem; margin-top: .25rem; }
.schedule-day-assignment-form select {
    width: 100%;
    min-height: 34px;
    border: 1px solid #255263;
    border-radius: 7px;
    padding: .35rem .4rem;
    color: #dff7fc;
    background: #06151e;
    font-size: .52rem;
}
.schedule-day-assignment-form button {
    min-height: 32px;
    border: 1px solid #2c7188;
    border-radius: 7px;
    color: #dffaff;
    background: #0a3445;
    font-size: .52rem;
    font-weight: 850;
    cursor: pointer;
}
.schedule-day-assignment-form button:hover,
.schedule-day-assignment-form button:focus-visible { border-color: var(--cyan); outline: none; background: #0d455a; }
.schedule-position__alert-status { color: #74e1a7 !important; font-weight: 800; }

.apparatus-call-history { scroll-margin-top: 135px; }
.apparatus-call-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .55rem;
    margin-bottom: .75rem;
}
.apparatus-call-stats article {
    display: grid;
    gap: .2rem;
    padding: .7rem;
    border: 1px solid var(--line-soft);
    border-radius: 9px;
    background: #081b25;
}
.apparatus-call-stats span { color: #7694a2; font-size: .49rem; font-weight: 900; letter-spacing: .06em; }
.apparatus-call-stats strong { font-size: .72rem; }
.apparatus-call-table-wrap { overflow-x: auto; border: 1px solid var(--line-soft); border-radius: 11px; }
.apparatus-call-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.apparatus-call-table th,
.apparatus-call-table td { padding: .65rem .7rem; border-bottom: 1px solid var(--line-soft); text-align: left; font-size: .57rem; }
.apparatus-call-table th { color: #75a7b9; background: #081c27; font-size: .49rem; letter-spacing: .06em; text-transform: uppercase; }
.apparatus-call-table td small { display: block; margin-top: .15rem; color: #7b95a2; }
.apparatus-call-table a { color: #73e4fa; font-weight: 850; }

.neris-record-lock {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem;
    margin: 0 0 1rem;
    padding: .8rem .9rem;
    border: 1px solid #a04350;
    border-radius: 12px;
    background: linear-gradient(135deg, rgb(68 17 26 / 95%), rgb(31 13 19 / 97%));
}
.neris-record-lock__icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: #ff8793;
    background: rgb(153 44 58 / 24%);
}
.neris-record-lock__icon svg { width: 1.2rem; height: 1.2rem; }
.neris-record-lock strong,
.neris-record-lock span { display: block; }
.neris-record-lock strong { color: #ffc0c6; font-size: .64rem; letter-spacing: .04em; }
.neris-record-lock div > span { margin-top: .18rem; color: #d4a4aa; font-size: .55rem; line-height: 1.45; }

@media (max-width: 900px) {
    .report-map-coverage,
    .apparatus-call-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .neris-record-lock { grid-template-columns: auto minmax(0, 1fr); }
    .neris-record-lock form,
    .neris-record-lock > .tone { grid-column: 2; justify-self: start; }
}
@media (max-width: 600px) {
    .report-map-coverage,
    .apparatus-call-stats { grid-template-columns: 1fr; }
    .neris-record-lock { grid-template-columns: 1fr; }
    .neris-record-lock form,
    .neris-record-lock > .tone { grid-column: 1; width: 100%; }
    .neris-record-lock .button { width: 100%; justify-content: center; }
}

/* Phase 24 — Google basemap with PSOps operational layers. */
.report-google-map {
    width: 100%;
    min-height: 520px;
    background: #06141e;
}

.report-google-map[hidden],
.report-map-provider-status[hidden] {
    display: none;
}

.report-map-provider-status {
    position: absolute;
    z-index: 5;
    right: .65rem;
    bottom: .65rem;
    max-width: calc(100% - 1.3rem);
    margin: 0;
    padding: .42rem .58rem;
    border: 1px solid #2e7085;
    border-radius: 8px;
    color: #b9eafa;
    background: rgb(4 20 30 / 90%);
    box-shadow: 0 8px 24px rgb(0 0 0 / 28%);
    font-size: .49rem;
    font-weight: 850;
    letter-spacing: .025em;
    pointer-events: none;
}

.report-map-provider-status.is-ready {
    border-color: #268662;
    color: #a7f1cc;
}

.report-map-provider-status.is-error {
    border-color: #a06d35;
    color: #ffd8a3;
}

.report-incident-map.is-google-map-ready .report-map-canvas {
    border-color: rgb(40 210 244 / 46%);
    box-shadow: 0 14px 34px rgb(0 0 0 / 24%);
}

@media (max-width: 640px) {
    .report-google-map { min-height: 390px; }
}

/* Phase 25 — one report map surface and a global alert indicator. */
.report-map-canvas {
    --report-map-height: clamp(460px, 48vw, 640px);
    min-height: var(--report-map-height);
    display: grid;
}

.report-map-canvas > .report-google-map,
.report-map-canvas > svg {
    width: 100%;
    height: var(--report-map-height);
    min-height: 0;
    grid-area: 1 / 1;
}

.report-map-canvas > .report-google-map[hidden],
.report-map-canvas > svg[hidden],
.report-incident-map.is-google-map-ready .report-map-canvas > svg {
    display: none !important;
}

.report-incident-map.is-google-map-ready .report-map-canvas > .report-google-map {
    display: block;
}

.topbar-alerts {
    position: relative;
    flex: 0 0 auto;
}

.topbar-alerts > summary {
    position: relative;
    list-style: none;
}

.topbar-alerts > summary::-webkit-details-marker {
    display: none;
}

.topbar-alerts__trigger.has-unread {
    border-color: #2b91ad;
    color: #dffaff;
    background: linear-gradient(145deg, #0d3545, #0a2230);
    box-shadow: 0 0 0 3px rgb(53 210 241 / 7%), 0 0 20px rgb(53 210 241 / 12%);
}

.topbar-user .topbar-alerts__badge {
    position: absolute;
    top: -7px;
    right: -7px;
    min-width: 21px;
    height: 21px;
    display: grid;
    padding: 0 5px;
    place-items: center;
    border: 2px solid #050e16;
    border-radius: 999px;
    color: #fff;
    background: #f0475c;
    box-shadow: 0 4px 14px rgb(240 71 92 / 35%);
    font-size: .56rem;
    font-weight: 950;
    line-height: 1;
    margin: 0;
}

.topbar-alerts__panel {
    position: absolute;
    z-index: 80;
    top: calc(100% + 12px);
    right: 0;
    width: min(340px, calc(100vw - 24px));
    overflow: hidden;
    border: 1px solid #23576b;
    border-radius: 14px;
    background: rgb(5 20 30 / 98%);
    box-shadow: 0 26px 70px rgb(0 0 0 / 58%);
    backdrop-filter: blur(18px);
}

.topbar-alerts__panel::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, #35d2f1, transparent);
    content: "";
}

.topbar-alerts__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 15px 12px;
    border-bottom: 1px solid var(--line-soft);
}

.topbar-alerts__heading span {
    margin: 0;
    color: #ecfaff;
    font-size: .69rem;
    font-weight: 900;
}

.topbar-alerts__heading strong {
    color: #6fdff5;
    font-size: .55rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.topbar-alerts__panel > a {
    min-width: 0;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 2px 11px;
    padding: 13px 15px;
    border-bottom: 1px solid var(--line-soft);
    color: inherit;
    text-decoration: none;
}

.topbar-alerts__panel > a:last-child {
    border-bottom: 0;
}

.topbar-alerts__panel > a:hover,
.topbar-alerts__panel > a:focus-visible {
    outline: none;
    background: rgb(53 210 241 / 8%);
}

.topbar-alerts__panel > a > span {
    width: 36px;
    height: 36px;
    display: grid;
    grid-row: 1 / span 2;
    place-items: center;
    border: 1px solid #24576b;
    border-radius: 10px;
    color: var(--cyan);
    background: #0a2b39;
    margin: 0;
}

.topbar-alerts__panel > a > span svg {
    width: 17px;
    height: 17px;
}

.topbar-alerts__panel > a strong {
    overflow: hidden;
    color: #e8f5fa;
    font-size: .65rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.topbar-alerts__panel > a small {
    overflow: hidden;
    color: #7f9aa7;
    font-size: .55rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .report-map-canvas {
        --report-map-height: 390px;
    }

    .topbar-alerts__panel {
        position: fixed;
        top: 68px;
        right: 8px;
        left: 8px;
        width: auto;
    }
}

/* Incident numbering — Manual Only command strip */
.incident-manual-command {
    display: grid;
    grid-template-columns: minmax(260px, .8fr) minmax(440px, 1.2fr);
    align-items: end;
    gap: 24px;
    margin: 0 0 18px;
    padding: 18px 22px;
    border: 1px solid rgba(51, 207, 236, .34);
    border-left: 5px solid #38c9e8;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(9, 31, 43, .96), rgba(10, 25, 36, .96));
}

.incident-manual-command__copy {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.incident-manual-command__copy strong {
    color: #f4f8fb;
    font-size: 1.05rem;
}

.incident-manual-command__copy small {
    max-width: 620px;
    color: var(--muted, #9db0bd);
    line-height: 1.45;
}

.incident-manual-command__form {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    align-items: end;
    gap: 10px;
    margin: 0;
}

.incident-manual-command__field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.incident-manual-command__field > span {
    color: #dce7ed;
    font-size: .82rem;
    font-weight: 800;
}

.incident-manual-command__field input {
    width: 100%;
    min-height: 48px;
}

.incident-manual-command__form .button {
    min-height: 48px;
    white-space: nowrap;
}

.incident-manual-command__error {
    grid-column: 1 / -1;
}

@media (max-width: 900px) {
    .incident-manual-command {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
        gap: 14px;
    }
}

@media (max-width: 600px) {
    .incident-manual-command {
        margin-bottom: 14px;
        padding: 16px;
        border-radius: 13px;
    }

    .incident-manual-command__form {
        grid-template-columns: minmax(0, 1fr);
    }

    .incident-manual-command__form .button {
        width: 100%;
    }
}

/* Incident Manual Start — final presentation polish */
.incident-manual-command {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) minmax(480px, .95fr);
    align-items: center;
    gap: 32px;
    margin: 18px 0 22px;
    padding: 22px 24px;
    border: 1px solid rgba(55, 205, 235, .48);
    border-left: 5px solid #38c9e8;
    border-radius: 16px;
    background: rgba(8, 28, 40, .94);
}

.incident-manual-command__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
}

.incident-manual-command__copy .eyebrow {
    display: block;
    margin: 0;
}

.incident-manual-command__copy strong {
    display: block;
    margin: 0;
    color: #f4f8fb;
    font-size: 1.05rem;
    line-height: 1.3;
}

.incident-manual-command__copy small {
    display: block;
    margin: 2px 0 0;
    max-width: 680px;
    color: #9db0bd;
    font-size: .84rem;
    line-height: 1.45;
}

.incident-manual-command__form {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    align-items: end;
    gap: 12px;
    margin: 0;
}

.incident-manual-command__field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 0;
}

.incident-manual-command__field > span {
    display: block;
    color: #dce7ed;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1.2;
}

.incident-manual-command__field input {
    width: 100%;
    min-height: 50px;
    margin: 0;
}

.incident-manual-command__form .button {
    min-height: 50px;
    margin: 0;
    padding-inline: 22px;
    white-space: nowrap;
}

.incident-manual-command__error {
    grid-column: 1 / -1;
}

@media (max-width: 980px) {
    .incident-manual-command {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }
}

@media (max-width: 620px) {
    .incident-manual-command {
        margin: 14px 0 18px;
        padding: 17px;
    }

    .incident-manual-command__form {
        grid-template-columns: minmax(0, 1fr);
    }

    .incident-manual-command__form .button {
        width: 100%;
    }
}

/* =========================================================
   PSOps Incident Board — Manual Incident Command Card
   Final visual contract
   ========================================================= */

.incident-manual-command {
    box-sizing: border-box;
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(520px, .95fr);
    align-items: center;
    column-gap: 42px;
    row-gap: 18px;

    margin: 22px 0 24px;
    padding: 24px 26px;

    border: 1px solid rgba(46, 214, 239, .72);
    border-left: 7px solid #35d8ef;
    border-radius: 17px;

    background:
        linear-gradient(
            120deg,
            rgba(7, 37, 52, .98) 0%,
            rgba(8, 31, 44, .98) 52%,
            rgba(7, 27, 39, .98) 100%
        );

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .025),
        0 10px 28px rgba(0, 0, 0, .12);
}

.incident-manual-command__copy {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: center;
    justify-items: start;
    gap: 7px;
    margin: 0;
    padding: 0;
}

.incident-manual-command__copy .eyebrow {
    display: block;
    margin: 0;
    padding: 0;

    color: #39d9f2;
    font-size: .78rem;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.incident-manual-command__copy strong {
    display: block;
    margin: 0;
    padding: 0;

    color: #f6f9fb;
    font-size: clamp(1.15rem, 1.55vw, 1.42rem);
    font-weight: 800;
    line-height: 1.22;
    letter-spacing: -.015em;
}

.incident-manual-command__copy small {
    display: block;
    max-width: 690px;
    margin: 2px 0 0;
    padding: 0;

    color: #b0c0ca;
    font-size: .91rem;
    font-weight: 500;
    line-height: 1.48;
}

.incident-manual-command__form {
    min-width: 0;
    width: 100%;

    display: grid;
    grid-template-columns: minmax(230px, 1fr) auto;
    align-items: end;
    gap: 14px;

    margin: 0;
    padding: 0;
}

.incident-manual-command__field {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
    margin: 0;
}

.incident-manual-command__field > span {
    display: block;
    margin: 0;

    color: #e5edf2;
    font-size: .83rem;
    font-weight: 800;
    line-height: 1.2;
}

.incident-manual-command__field input {
    box-sizing: border-box;
    width: 100%;
    height: 52px;
    min-height: 52px;

    margin: 0;
    padding: 0 16px;

    border: 1px solid rgba(119, 151, 170, .48);
    border-radius: 9px;

    color: #f2f6f8;
    background: rgba(18, 22, 25, .92);

    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1;
}

.incident-manual-command__field input:focus {
    border-color: #39d9f2;
    outline: 2px solid rgba(57, 217, 242, .18);
    outline-offset: 1px;
}

.incident-manual-command__field input::placeholder {
    color: #909ca4;
    opacity: 1;
}

.incident-manual-command__form .button {
    box-sizing: border-box;
    min-width: 240px;
    height: 52px;
    min-height: 52px;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    margin: 0;
    padding: 0 22px;

    border-radius: 10px;

    white-space: nowrap;
    font-size: .94rem;
    font-weight: 900;
}

.incident-manual-command__error {
    grid-column: 1 / -1;
    display: block;
    margin: 0;
}

/* Keep the operations cards visually separate from manual entry. */
.incident-manual-command + .incident-lane-switch {
    margin-top: 0;
}

/* Tablet */
@media (max-width: 1080px) {
    .incident-manual-command {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
        gap: 18px;
    }

    .incident-manual-command__copy small {
        max-width: 780px;
    }

    .incident-manual-command__form {
        grid-template-columns: minmax(220px, 1fr) auto;
    }
}

/* Phone */
@media (max-width: 640px) {
    .incident-manual-command {
        margin: 16px 0 20px;
        padding: 19px 17px;

        border-left-width: 5px;
        border-radius: 14px;
    }

    .incident-manual-command__copy {
        gap: 6px;
    }

    .incident-manual-command__copy strong {
        font-size: 1.12rem;
    }

    .incident-manual-command__copy small {
        font-size: .84rem;
    }

    .incident-manual-command__form {
        grid-template-columns: minmax(0, 1fr);
        gap: 11px;
    }

    .incident-manual-command__form .button {
        width: 100%;
        min-width: 0;
    }
}

/* Truck Checks — unfinished check actions */
.truck-check-history-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
}

.truck-check-history-row__link {
    min-width: 0;
}

.truck-check-history-row__delete {
    margin: 0;
}

.truck-check-history-row__delete .button {
    min-height: 38px;
    margin: 0;
}

@media (max-width: 640px) {
    .truck-check-history-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .truck-check-history-row__delete,
    .truck-check-history-row__delete .button {
        width: 100%;
    }
}

/* Loudon Truck Checks — apparatus identity in place of Shift */
.truck-check-unit-field {
    display: grid;
    align-content: center;
    gap: 4px;
    min-height: 72px;
    padding: 10px 13px;
    border: 1px solid rgba(55, 205, 235, .34);
    border-radius: 10px;
    background: rgba(8, 31, 44, .74);
}

.truck-check-unit-field > span {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.truck-check-unit-field > strong {
    color: #f4f8fb;
    font-size: 1.08rem;
    line-height: 1.2;
}

.truck-check-unit-field > small {
    color: var(--muted);
    font-size: .75rem;
}

/* =========================================================
   PSOps Truck Checks — responsive layout
   Presentation only
   ========================================================= */

/* Never allow Truck Check grid children to force page width. */
.truck-check-form,
.truck-reading-grid,
.truck-check-section,
.truck-check-items,
.truck-check-item,
.truck-check-history,
.truck-check-history-row,
.truck-check-history-row__link {
    min-width: 0;
}

/* Summary readings scale with available width instead of staying at 4 columns. */
.truck-reading-grid.form-grid--four {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 230px), 1fr)
    );
    gap: 16px;
}

/* Keep the Loudon unit tile visually equal to its input neighbors. */
.truck-check-unit-field {
    box-sizing: border-box;
    width: 100%;
    min-height: 100%;
}

/* History should be compact: record on left, action immediately adjacent. */
.truck-check-history {
    display: grid;
    gap: 10px;
}

.truck-check-history-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;

    padding: 12px 14px;

    border: 1px solid rgba(84, 119, 139, .28);
    border-radius: 12px;
    background: rgba(8, 27, 39, .46);
}

.truck-check-history-row__link {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;

    width: 100%;
    text-decoration: none;
}

.truck-check-history-row__link > div {
    min-width: 0;
}

.truck-check-history-row__link strong,
.truck-check-history-row__link small {
    display: block;
}

.truck-check-history-row__link small {
    overflow-wrap: anywhere;
}

.truck-check-history-row__delete {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin: 0;
}

.truck-check-history-row__delete .button {
    width: auto;
    min-width: 94px;
    min-height: 44px;
    margin: 0;
}

/* Checklist rows need room to reflow rather than force horizontal overflow. */
.truck-check-item {
    overflow: hidden;
}

.truck-check-item__label {
    min-width: 0;
}

.truck-check-item__label strong {
    overflow-wrap: anywhere;
}

.result-choice-row {
    min-width: 0;
    flex-wrap: wrap;
}

/* Medium screens / tablets */
@media (max-width: 1050px) {
    .truck-reading-grid.form-grid--four {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .truck-check-history-row__link {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .truck-check-history-row__link > .tone {
        grid-column: 2;
        justify-self: start;
    }
}

/* Small tablets / large phones */
@media (max-width: 720px) {
    .truck-reading-grid.form-grid--four {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .truck-check-history-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .truck-check-history-row__delete {
        justify-content: stretch;
    }

    .truck-check-history-row__delete .button {
        width: 100%;
    }

    .truck-check-history-row__link {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .truck-check-section__heading {
        align-items: flex-start;
    }

    .truck-check-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .truck-check-actions .button {
        width: 100%;
    }
}

/* Phones */
@media (max-width: 480px) {
    .truck-check-history-row {
        padding: 11px;
        border-radius: 10px;
    }

    .truck-check-history-row__link {
        gap: 9px;
    }

    .truck-check-history-row__link .unit-icon {
        align-self: start;
    }

    .truck-check-unit-field {
        min-height: 76px;
    }

    .truck-check-item {
        padding-left: 12px;
        padding-right: 12px;
    }

    .result-choice-row {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .result-choice {
        min-width: 0;
    }
}

/* =========================================================
   Truck Checks — sticky action clearance
   Keeps Save / Complete visible without covering checklist.
   ========================================================= */

.truck-check-form {
    position: relative;
    padding-bottom: 112px;
}

.truck-check-actions {
    z-index: 20;
}

/* Give the final checklist section enough room to clear actions. */
.truck-check-form > .truck-check-section:last-of-type {
    margin-bottom: 18px;
}

/* Tablet */
@media (max-width: 720px) {
    .truck-check-form {
        padding-bottom: 154px;
    }
}

/* Phone */
@media (max-width: 480px) {
    .truck-check-form {
        padding-bottom: 176px;
    }
}

/* Reporting geographic map filters */
.report-map-geographic-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(190px, 1fr)) auto auto;
    gap: .75rem;
    align-items: end;
    margin: 1rem 0 .55rem;
}

.report-map-geographic-filters label {
    display: grid;
    gap: .35rem;
}

.report-map-geographic-filters label > span {
    color: var(--muted);
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.report-map-geographic-filters select {
    width: 100%;
    min-height: 44px;
}

@media (max-width: 900px) {
    .report-map-geographic-filters {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 620px) {
    .report-map-geographic-filters {
        grid-template-columns: 1fr;
    }

    .report-map-geographic-filters .button {
        width: 100%;
    }
}

/* Reporting geographic density key */
.report-map-density-key {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1rem;
    margin: .7rem 0;
    color: var(--muted);
    font-size: .56rem;
}

.report-map-density-key span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.report-map-density-key i {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    flex: 0 0 10px;
}

.report-map-density-key .density-low {
    background: #2bd0ff;
}

.report-map-density-key .density-medium {
    background: #55d6be;
}

.report-map-density-key .density-high {
    background: #ff8a24;
}

.report-map-density-key .density-peak {
    background: #ff3b30;
}


/* PSOPS DEMO FIRST INCIDENT GUIDANCE */

.demo-first-incident-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    margin-bottom: 18px;
    padding: clamp(20px, 3vw, 30px);
    border-color: rgb(57 214 243 / 36%);
    background:
        radial-gradient(
            circle at 90% 12%,
            rgb(57 214 243 / 14%),
            transparent 32%
        ),
        linear-gradient(
            145deg,
            rgb(9 35 49 / 97%),
            rgb(6 19 29 / 98%)
        );
    box-shadow:
        0 20px 48px rgb(0 0 0 / 20%),
        inset 3px 0 0 rgb(57 214 243 / 82%);
}

.demo-first-incident-card__icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    border: 1px solid rgb(57 214 243 / 34%);
    border-radius: 18px;
    background: rgb(57 214 243 / 10%);
    color: #8beafb;
}

.demo-first-incident-card__icon svg {
    width: 31px;
    height: 31px;
}

.demo-first-incident-card__copy {
    min-width: 0;
}

.demo-first-incident-card__copy h2 {
    margin: .22rem 0 .45rem;
    font-size: clamp(1.2rem, 2.4vw, 1.75rem);
}

.demo-first-incident-card__copy p {
    max-width: 780px;
    margin: 0;
    color: #93acb8;
    line-height: 1.55;
}

.demo-first-incident-card__steps {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.demo-first-incident-card__steps span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 9px;
    border: 1px solid rgb(75 117 136 / 24%);
    border-radius: 9px;
    background: rgb(10 27 39 / 72%);
    color: #a8c0ca;
    font-size: .66rem;
    font-weight: 760;
}

.demo-first-incident-card__steps b {
    width: 21px;
    height: 21px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgb(57 214 243 / 13%);
    color: #7fe8fb;
    font-size: .58rem;
}

.demo-first-incident-card__action {
    min-width: 230px;
    display: grid;
    gap: 8px;
}

.demo-first-incident-card__action .button {
    min-height: 50px;
    justify-content: center;
}

.demo-first-incident-card__action small {
    max-width: 240px;
    color: #738f9c;
    font-size: .58rem;
    line-height: 1.45;
    text-align: center;
}

@media (max-width: 900px) {
    .demo-first-incident-card {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .demo-first-incident-card__action {
        grid-column: 1 / -1;
        width: 100%;
    }

    .demo-first-incident-card__action small {
        max-width: none;
    }
}

@media (max-width: 620px) {
    .demo-first-incident-card {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .demo-first-incident-card__icon {
        width: 52px;
        height: 52px;
    }

    .demo-first-incident-card__steps {
        display: grid;
    }

    .demo-first-incident-card__action {
        min-width: 0;
    }

    .demo-first-incident-card__action .button {
        width: 100%;
    }
}

/* ================================================================
   Apparatus readiness hotfix
   ================================================================ */

.apparatus-readiness-jumpbar {
    display: grid;
    grid-template-columns:
        auto
        repeat(3, minmax(0, 1fr));
    align-items: center;
    gap: .65rem;
    margin: .85rem 0 1rem;
    padding: .7rem;
    border: 1px solid rgba(39, 207, 242, .22);
    border-radius: 14px;
    background: rgba(7, 25, 38, .84);
}

.apparatus-readiness-jumpbar > .eyebrow {
    padding: 0 .45rem;
    white-space: nowrap;
}

.apparatus-readiness-jump {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-height: 68px;
    padding: .7rem .8rem;
    border: 1px solid rgba(114, 162, 186, .26);
    border-radius: 11px;
    background: rgba(13, 38, 54, .72);
    text-decoration: none;
}

.apparatus-readiness-jump:hover,
.apparatus-readiness-jump:focus-visible {
    border-color: rgba(39, 207, 242, .78);
}

.apparatus-readiness-jump--primary {
    border-color: rgba(39, 207, 242, .58);
    box-shadow:
        inset 3px 0 0 rgba(39, 207, 242, .85);
}

.apparatus-readiness-jump span,
.apparatus-readiness-jump strong,
.apparatus-readiness-jump small {
    display: block;
}

.apparatus-readiness-jump strong {
    color: #f2f8fb;
}

.apparatus-readiness-jump small {
    margin-top: .18rem;
    color: #8ea8b6;
}

#unit-checks {
    scroll-margin-top: 90px;
}

.apparatus-check-panel {
    border-left: 4px solid rgba(39, 207, 242, .72);
}

.apparatus-template-card {
    align-items: center;
}

@media (max-width: 1050px) {
    .apparatus-readiness-jumpbar {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .apparatus-readiness-jumpbar > .eyebrow {
        grid-column: 1 / -1;
    }
}

@media (max-width: 720px) {
    .apparatus-readiness-jumpbar {
        grid-template-columns: 1fr;
    }
}

/* ================================================================
   Apparatus directory compact alignment
   ================================================================ */

.directory-grid .apparatus-card {
    min-height: 0;
    align-items: start;
    gap: .8rem;
    padding: .9rem;
}

.directory-grid .apparatus-card .directory-avatar {
    align-self: start;
}

.directory-grid .apparatus-card .directory-card__body {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: .3rem;
}

.directory-grid .apparatus-card .directory-card__title {
    min-height: 32px;
    align-items: center;
}

.directory-grid .apparatus-card .directory-card__body > span {
    margin: 0;
}

.directory-grid .apparatus-card dl {
    display: grid;
    gap: 0;
    margin: .35rem 0 0;
}

.directory-grid .apparatus-card dl > div {
    min-height: 32px;
    padding: .3rem 0;
}

.directory-grid .apparatus-card dl dt,
.directory-grid .apparatus-card dl dd {
    line-height: 1.3;
}

.directory-grid .apparatus-card__profile-note {
    display: block;
    margin-top: .35rem;
    padding-top: .4rem;
    border-top: 1px solid rgba(126, 170, 191, .12);
    font-size: .7rem;
}

.directory-grid
.apparatus-card__profile-note--quiet {
    opacity: .68;
}

@media (max-width: 720px) {
    .directory-grid .apparatus-card {
        padding: .8rem;
    }
}

.apparatus-readiness-jumpbar {
    grid-template-columns:
        auto
        repeat(4, minmax(0, 1fr));
}

.apparatus-readiness-anchor,
#daily-medical-profile,
#detailed-weekly-profile {
    scroll-margin-top: 105px;
}

.apparatus-readiness-anchor {
    width: 1px;
    height: 1px;
    overflow: hidden;
}

@media (max-width: 1200px) {
    .apparatus-readiness-jumpbar {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .apparatus-readiness-jumpbar > .eyebrow {
        grid-column: 1 / -1;
    }
}

@media (max-width: 650px) {
    .apparatus-readiness-jumpbar {
        grid-template-columns: 1fr;
    }
}

/* ================================================================
   Apparatus command-page simplification
   2026-09-16
   ================================================================ */

/*
 * Mechanical / apparatus-system summaries:
 * more information above the fold, editors hidden until requested.
 */
.apparatus-accordion-grid {
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 1px;
}

.apparatus-accordion-grid > details {
    min-height: 0;
}

.apparatus-accordion-grid > details > summary {
    min-height: 58px;
    padding: .62rem .75rem;
}

.apparatus-accordion-grid > details > summary strong {
    font-size: .76rem;
}

.apparatus-accordion-grid > details > summary span {
    font-size: .66rem;
}

.apparatus-accordion-grid > details > p {
    padding: .6rem .75rem;
    margin: 0;
}

/*
 * Editing is secondary to operational status.
 */
.apparatus-editor-drawer,
.apparatus-profile-drawer,
.apparatus-schedule-drawer {
    margin-top: .65rem;
}

.apparatus-editor-drawer > summary,
.apparatus-profile-drawer > summary,
.apparatus-schedule-drawer > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 54px;
    padding: .68rem .85rem;
}

.apparatus-editor-drawer > summary > span,
.apparatus-profile-drawer > summary > span,
.apparatus-schedule-drawer > summary > span {
    min-width: 0;
    display: grid;
    gap: .12rem;
}

.apparatus-editor-drawer > summary strong,
.apparatus-profile-drawer > summary strong,
.apparatus-schedule-drawer > summary strong {
    color: #eff9fc;
    font-size: .79rem;
}

.apparatus-editor-drawer > summary small,
.apparatus-profile-drawer > summary small,
.apparatus-schedule-drawer > summary small {
    color: #8ea8b6;
    font-size: .66rem;
    font-weight: 650;
}

.apparatus-editor-drawer[open] > summary,
.apparatus-profile-drawer[open] > summary,
.apparatus-schedule-drawer[open] > summary {
    border-bottom: 1px solid rgba(92, 171, 201, .18);
}

.apparatus-editor-drawer .incident-form,
.apparatus-profile-drawer form,
.apparatus-schedule-drawer .schedule-editor {
    margin-top: .7rem;
}

/*
 * Empty operational sections should report status, not consume a screen.
 */
.apparatus-record-list > .muted {
    margin: .55rem 0;
    padding: .65rem .8rem;
    border: 1px dashed rgba(116, 160, 181, .18);
    border-radius: 10px;
    background: rgba(7, 25, 36, .38);
    font-size: .76rem;
}

.apparatus-compartment-grid .empty-state {
    min-height: 130px;
    padding: 1rem;
}

.apparatus-compartment-grid .empty-state h2 {
    margin-bottom: .25rem;
    font-size: 1rem;
}

.apparatus-compartment-grid .empty-state p {
    margin: 0;
    font-size: .78rem;
}

/*
 * NERIS identity is important but read-only and should stay compact.
 */
.apparatus-neris-compact {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 0;
}

.apparatus-neris-compact > div {
    min-height: 50px;
    padding: .55rem .7rem;
}

.apparatus-neris-compact dt {
    font-size: .67rem;
}

.apparatus-neris-compact dd {
    font-size: .75rem;
}

/*
 * Per-template schedule is configuration, not the primary check action.
 */
.apparatus-schedule-drawer {
    margin-bottom: .7rem;
}

.apparatus-schedule-drawer .schedule-choice-grid {
    margin-top: .45rem;
}

/*
 * Keep apparatus actions dense but touch friendly.
 */
.apparatus-command-drawer > summary {
    min-height: 52px;
}

/*
 * Narrow displays.
 */
@media (max-width: 1050px) {
    .apparatus-accordion-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .apparatus-accordion-grid,
    .apparatus-neris-compact {
        grid-template-columns: 1fr;
    }
}

/* ================================================================
   Apparatus final command-density pass
   Meetings / Smoke Alarms visual language
   ================================================================ */

/* Overall vertical rhythm */
.apparatus-detail-page .main-content {
    gap: .75rem;
}

.apparatus-detail-page .panel {
    padding: .9rem 1rem;
    border-radius: 14px;
}

.apparatus-detail-page .panel-heading {
    margin-bottom: .65rem;
    padding-bottom: .6rem;
}

.apparatus-detail-page .panel-heading h2 {
    margin-top: .12rem;
    font-size: 1.05rem;
}

.apparatus-detail-page .panel-heading p {
    margin: .22rem 0 0;
    font-size: .74rem;
    line-height: 1.4;
}

/* Top readiness command strip */
.apparatus-detail-page
.apparatus-readiness-jumpbar {
    margin: .6rem 0 .75rem;
    padding: .45rem;
    gap: .45rem;
    border-radius: 12px;
}

.apparatus-detail-page
.apparatus-readiness-jump {
    min-height: 54px;
    padding: .5rem .65rem;
    gap: .5rem;
}

.apparatus-detail-page
.apparatus-readiness-jump strong {
    font-size: .78rem;
}

.apparatus-detail-page
.apparatus-readiness-jump small {
    font-size: .64rem;
}

/* Hero */
.apparatus-detail-page .profile-hero {
    min-height: 0;
    padding: .85rem 1rem;
}

.apparatus-detail-page .profile-hero h1 {
    font-size: 1.65rem;
}

/* Tabs */
.apparatus-detail-page .profile-tabs,
.apparatus-detail-page .section-tabs {
    min-height: 46px;
    padding: .25rem .4rem;
}

/* Operational / vehicle detail lists */
.apparatus-detail-page .detail-list > div {
    min-height: 38px;
    padding: .38rem 0;
}

.apparatus-detail-page .detail-list dt {
    font-size: .69rem;
}

.apparatus-detail-page .detail-list dd {
    font-size: .73rem;
}

/* Calls summary remains visible like module KPIs */
.apparatus-detail-page
.apparatus-call-summary,
.apparatus-detail-page
.apparatus-check-summary {
    gap: .45rem;
    margin: .5rem 0;
}

.apparatus-detail-page
.apparatus-call-summary article,
.apparatus-detail-page
.apparatus-check-summary article {
    min-height: 62px;
    padding: .55rem .7rem;
}

.apparatus-detail-page
.apparatus-call-summary strong,
.apparatus-detail-page
.apparatus-check-summary strong {
    font-size: 1rem;
}

/* Calls: history becomes deliberate progressive disclosure */
.apparatus-history-drawer {
    margin-top: .6rem;
    border: 1px solid rgba(66, 157, 188, .3);
    border-radius: 11px;
    background: rgba(7, 26, 38, .68);
    overflow: hidden;
}

.apparatus-history-drawer > summary {
    min-height: 50px;
    display: flex;
    align-items: center;
    padding: .55rem .75rem;
    cursor: pointer;
    list-style: none;
}

.apparatus-history-drawer > summary::-webkit-details-marker {
    display: none;
}

.apparatus-history-drawer > summary > span {
    display: grid;
    gap: .08rem;
}

.apparatus-history-drawer > summary strong {
    color: #eef9fc;
    font-size: .78rem;
}

.apparatus-history-drawer > summary small {
    color: #8ea8b6;
    font-size: .64rem;
}

.apparatus-history-drawer > summary::after {
    content: "+";
    margin-left: auto;
    color: #35d9fa;
    font-size: 1.25rem;
    font-weight: 900;
}

.apparatus-history-drawer[open] > summary::after {
    content: "−";
}

.apparatus-history-scroll {
    max-height: 410px;
    overflow: auto;
    border-top: 1px solid rgba(66, 157, 188, .18);
}

.apparatus-history-scroll table {
    margin: 0;
}

.apparatus-history-scroll th,
.apparatus-history-scroll td {
    padding: .46rem .58rem;
    font-size: .69rem;
}

/* Mechanical + apparatus systems */
.apparatus-detail-page
.apparatus-accordion-grid {
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
}

.apparatus-detail-page
.apparatus-accordion-grid > details > summary {
    min-height: 46px;
    padding: .42rem .58rem;
}

.apparatus-detail-page
.apparatus-accordion-grid > details > summary strong {
    font-size: .69rem;
}

.apparatus-detail-page
.apparatus-accordion-grid > details > summary span {
    font-size: .61rem;
}

.apparatus-detail-page
.apparatus-editor-drawer > summary,
.apparatus-detail-page
.apparatus-profile-drawer > summary,
.apparatus-detail-page
.apparatus-schedule-drawer > summary,
.apparatus-detail-page
.apparatus-water-profile-drawer > summary {
    min-height: 48px;
    padding: .55rem .72rem;
}

/* Tank / Pump */
.apparatus-water-profile-drawer {
    margin-top: .65rem;
}

.apparatus-water-profile-drawer > summary {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.apparatus-water-profile-drawer > summary > span {
    display: grid;
    gap: .1rem;
}

.apparatus-water-profile-drawer > summary strong {
    color: #eff9fc;
    font-size: .76rem;
}

.apparatus-water-profile-drawer > summary small {
    color: #8ea8b6;
    font-size: .64rem;
}

/* Maintenance summary boxes */
.apparatus-detail-page
.apparatus-service-summary article,
.apparatus-detail-page
.lifecycle-summary article {
    min-height: 58px;
    padding: .5rem .65rem;
}

/* Empty-state treatment: Smoke Alarm / Meetings style */
.apparatus-detail-page .empty-state,
.apparatus-detail-page
.apparatus-compartment-grid .empty-state {
    min-height: 86px;
    padding: .8rem;
}

.apparatus-detail-page .empty-state h2 {
    font-size: .9rem;
    margin-bottom: .15rem;
}

.apparatus-detail-page .empty-state p {
    margin: 0;
    font-size: .7rem;
}

.apparatus-detail-page
.apparatus-record-list > .muted {
    margin: .4rem 0;
    padding: .5rem .7rem;
    font-size: .68rem;
}

/* NERIS read-only identity */
.apparatus-detail-page
.apparatus-neris-compact > div {
    min-height: 42px;
    padding: .4rem .55rem;
}

.apparatus-detail-page
.apparatus-neris-compact + .notice,
.apparatus-detail-page
.apparatus-neris-compact + p {
    margin-top: .45rem;
    padding: .5rem .65rem;
    font-size: .68rem;
}

/* Truck checks */
.apparatus-detail-page
.apparatus-check-panel {
    padding: .85rem 1rem;
}

.apparatus-detail-page
.apparatus-template-card {
    min-height: 58px;
    padding: .55rem .7rem;
}

.apparatus-detail-page
.apparatus-check-history .empty-state {
    min-height: 80px;
}

/* Forms only become roomy after user intentionally opens them */
.apparatus-detail-page details[open] form {
    padding-top: .65rem;
}

@media (max-width: 1200px) {
    .apparatus-detail-page
    .apparatus-accordion-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 850px) {
    .apparatus-detail-page
    .apparatus-accordion-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .apparatus-detail-page
    .apparatus-accordion-grid {
        grid-template-columns: 1fr;
    }
}

/* ================================================================
   Apparatus final polish
   Lock to Meetings / Smoke Alarms density
   ================================================================ */

/* Calls */
.apparatus-detail-page
[id="calls"],
.apparatus-detail-page
.apparatus-call-panel {
    padding-top: .75rem;
    padding-bottom: .75rem;
}

.apparatus-detail-page
.apparatus-call-summary {
    margin: .35rem 0;
}

.apparatus-detail-page
.apparatus-history-drawer {
    margin-top: .4rem;
}

.apparatus-detail-page
.apparatus-history-drawer > summary {
    min-height: 44px;
}

/* Readiness */
.apparatus-detail-page
.apparatus-check-panel {
    padding-top: .75rem;
    padding-bottom: .75rem;
}

.apparatus-detail-page
.apparatus-profile-drawer,
.apparatus-detail-page
.apparatus-schedule-drawer {
    margin-top: .4rem;
}

.apparatus-detail-page
.apparatus-profile-drawer > summary,
.apparatus-detail-page
.apparatus-schedule-drawer > summary {
    min-height: 44px;
    padding: .45rem .65rem;
}

.apparatus-detail-page
.apparatus-template-card {
    margin-top: .4rem;
}

/* Tank / Pump */
.apparatus-detail-page
.capacity-summary,
.apparatus-detail-page
.apparatus-water-summary {
    gap: .55rem;
}

.apparatus-detail-page
.capacity-summary article,
.apparatus-detail-page
.apparatus-water-summary article {
    min-height: 94px;
    padding: .75rem;
}

.apparatus-detail-page
.apparatus-water-profile-drawer > summary {
    min-height: 44px;
}

/* Mechanical / systems */
.apparatus-detail-page
.apparatus-accordion-grid {
    margin-top: .4rem;
}

.apparatus-detail-page
.apparatus-accordion-grid > details > summary {
    min-height: 40px;
    padding: .35rem .5rem;
}

.apparatus-detail-page
.apparatus-accordion-grid > details > summary strong {
    font-size: .67rem;
}

.apparatus-detail-page
.apparatus-accordion-grid > details > summary span {
    font-size: .58rem;
}

.apparatus-detail-page
.apparatus-editor-drawer {
    margin-top: .45rem;
}

.apparatus-detail-page
.apparatus-editor-drawer > summary {
    min-height: 44px;
    padding: .45rem .65rem;
}

/* Maintenance */
.apparatus-detail-page
.lifecycle-summary,
.apparatus-detail-page
.apparatus-service-summary {
    gap: .4rem;
}

.apparatus-detail-page
.lifecycle-summary article,
.apparatus-detail-page
.apparatus-service-summary article {
    min-height: 50px;
    padding: .42rem .55rem;
}

.apparatus-detail-page
.apparatus-command-drawer {
    margin-top: .4rem;
}

.apparatus-detail-page
.apparatus-command-drawer > summary {
    min-height: 44px;
    padding: .45rem .65rem;
}

/* Empty-state modules */
.apparatus-detail-page
.apparatus-record-list > .muted {
    min-height: 0;
    padding: .4rem .6rem;
    margin: .35rem 0;
}

.apparatus-detail-page
.apparatus-compartment-grid .empty-state {
    min-height: 68px;
    padding: .65rem;
}

.apparatus-detail-page
.apparatus-compartment-grid .empty-state h2 {
    font-size: .82rem;
}

.apparatus-detail-page
.apparatus-compartment-grid .empty-state p {
    font-size: .65rem;
}

/* NERIS */
.apparatus-detail-page
.apparatus-neris-compact > div {
    min-height: 38px;
}

.apparatus-detail-page
.apparatus-neris-compact + .notice,
.apparatus-detail-page
.apparatus-neris-compact + p {
    padding: .4rem .55rem;
}

/* General */
.apparatus-detail-page
.panel + .panel {
    margin-top: .65rem;
}

@media (max-width: 850px) {
    .apparatus-detail-page
    .capacity-summary article,
    .apparatus-detail-page
    .apparatus-water-summary article {
        min-height: 82px;
    }
}

/* ==========================================================
   PSOPS DASHBOARD COMMAND CENTER V2
   My Work · Department Attention
   ========================================================== */

.dashboard-start-incident-form {
    display: contents;
}

.department-landing-button--incident {
    appearance: none;
    cursor: pointer;
    font: inherit;
    border: 1px solid #ff747b;
    background:
        linear-gradient(
            135deg,
            #8f1f29,
            #5b151c
        );
    color: #fff;
    box-shadow:
        inset 0 1px rgb(255 255 255 / 12%),
        0 6px 18px rgb(106 18 28 / 25%);
}

.department-landing-button--incident:hover,
.department-landing-button--incident:focus-visible {
    border-color: #ff9aa0;
    background:
        linear-gradient(
            135deg,
            #a52732,
            #6a1821
        );
    outline: none;
}

.dashboard-command-priority {
    display: grid;
    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(330px, .8fr);
    gap: 14px;
    margin: 16px 0 20px;
}

.dashboard-command-panel {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #304b5e;
    border-radius: 12px;
    background:
        linear-gradient(
            180deg,
            #102432,
            #0b1924
        );
    box-shadow:
        inset 0 1px rgb(255 255 255 / 3%),
        0 8px 24px rgb(0 0 0 / 14%);
}

.dashboard-command-panel--my-work {
    border-top: 3px solid #42c7e5;
}

.dashboard-command-panel--attention {
    border-top: 3px solid #e4a93e;
}

.dashboard-command-panel__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 73px;
    padding: 14px 16px;
    border-bottom: 1px solid #294352;
    background: rgb(7 20 29 / 44%);
}

.dashboard-command-panel__heading > div:first-child {
    min-width: 0;
}

.dashboard-command-panel__heading > div:first-child > span {
    display: block;
    color: #60d3ec;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .12em;
}

.dashboard-command-panel--attention
.dashboard-command-panel__heading > div:first-child > span {
    color: #efba58;
}

.dashboard-command-panel__heading h2 {
    margin: 3px 0 0;
    color: #eff8fb;
    font-size: 1.05rem;
    line-height: 1.15;
}

.dashboard-command-panel__heading > small {
    color: #7994a1;
    font-size: .62rem;
}

.dashboard-command-panel__counts {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.dashboard-command-panel__counts span,
.dashboard-command-panel__counts strong {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 8px;
    border-radius: 6px;
    font-size: .59rem;
    font-weight: 850;
}

.dashboard-command-panel__counts span {
    border: 1px solid #356276;
    color: #9fdbea;
    background: #0d2937;
}

.dashboard-command-panel__counts strong {
    border: 1px solid #916722;
    color: #ffd780;
    background: #38290e;
}

.dashboard-my-work-list {
    display: grid;
}

.dashboard-my-work-list > a {
    display: grid;
    grid-template-columns:
        auto
        minmax(0, 1fr)
        auto;
    align-items: center;
    gap: 11px;
    min-height: 78px;
    padding: 11px 14px;
    border-bottom: 1px solid #243d4d;
    text-decoration: none;
}

.dashboard-my-work-list > a:last-child {
    border-bottom: 0;
}

.dashboard-my-work-list > a:hover,
.dashboard-my-work-list > a:focus-visible {
    outline: none;
    background: #122b39;
}

.dashboard-my-work-list > a.is-correction {
    box-shadow: inset 4px 0 #efb347;
    background:
        linear-gradient(
            90deg,
            rgb(62 46 14 / 55%),
            rgb(14 31 42 / 95%)
        );
}

.dashboard-my-work-list__icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid #36677d;
    border-radius: 9px;
    color: #60d4ed;
    background: #0b3040;
}

.dashboard-my-work-list__icon svg {
    width: 19px;
    height: 19px;
}

.dashboard-my-work-list > a > div:nth-child(2) {
    min-width: 0;
}

.dashboard-my-work-list small,
.dashboard-my-work-list strong,
.dashboard-my-work-list span {
    display: block;
}

.dashboard-my-work-list > a > div:nth-child(2) small {
    color: #6f94a5;
    font-size: .53rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.dashboard-my-work-list > a > div:nth-child(2) strong {
    margin-top: 3px;
    color: #edf8fb;
    font-size: .74rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-my-work-list > a > div:nth-child(2) span {
    margin-top: 3px;
    color: #819ba8;
    font-size: .59rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-my-work-list__status {
    text-align: right;
}

.dashboard-my-work-list__status strong {
    color: #8edcef;
    font-size: .56rem;
    letter-spacing: .05em;
}

.is-correction
.dashboard-my-work-list__status strong {
    color: #ffd16f;
}

.dashboard-my-work-list__status span {
    margin-top: 4px;
    color: #708b99;
    font-size: .54rem;
}

.dashboard-command-empty {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 110px;
    padding: 18px;
    color: #839da9;
}

.dashboard-command-empty > svg {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    color: #50cde8;
}

.dashboard-command-empty strong,
.dashboard-command-empty span {
    display: block;
}

.dashboard-command-empty strong {
    color: #dbeaf0;
    font-size: .72rem;
}

.dashboard-command-empty span {
    margin-top: 4px;
    font-size: .6rem;
    line-height: 1.45;
}

.dashboard-attention-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: #284352;
}

.dashboard-attention-grid > a {
    min-height: 98px;
    padding: 12px;
    text-decoration: none;
    background: #0d1e29;
    box-shadow: inset 0 3px transparent;
}

.dashboard-attention-grid > a:hover,
.dashboard-attention-grid > a:focus-visible {
    outline: none;
    background: #122a37;
}

.dashboard-attention-grid > a.is-current {
    box-shadow: inset 0 3px #42c7e5;
}

.dashboard-attention-grid > a.is-attention {
    box-shadow: inset 0 3px #e6ad43;
}

.dashboard-attention-grid > a.is-danger {
    box-shadow: inset 0 3px #f16169;
}

.dashboard-attention-grid span,
.dashboard-attention-grid strong,
.dashboard-attention-grid small {
    display: block;
}

.dashboard-attention-grid span {
    color: #7796a5;
    font-size: .51rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.dashboard-attention-grid strong {
    margin-top: 6px;
    color: #eff9fc;
    font-size: 1.65rem;
    line-height: 1;
}

.dashboard-attention-grid small {
    margin-top: 6px;
    color: #78919e;
    font-size: .56rem;
    line-height: 1.35;
}

.dashboard-attention-grid > a.is-danger strong {
    color: #ff858b;
}

.dashboard-attention-grid > a.is-attention strong {
    color: #ffd06d;
}

@media (max-width: 980px) {
    .dashboard-command-priority {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .dashboard-command-panel__heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }

    .dashboard-command-panel__counts {
        justify-content: flex-start;
    }

    .dashboard-my-work-list > a {
        grid-template-columns:
            auto
            minmax(0, 1fr);
    }

    .dashboard-my-work-list__status {
        grid-column: 2;
        text-align: left;
    }

    .dashboard-attention-grid {
        grid-template-columns: 1fr 1fr;
    }

    .dashboard-attention-grid > a {
        min-height: 92px;
    }

    .dashboard-attention-grid strong {
        font-size: 1.45rem;
    }
}

/* END PSOPS DASHBOARD COMMAND CENTER V2 */



/* ==========================================================
   PSOPS DASHBOARD COMMAND CENTER V2 - QUICK ACTIONS DIRECTORY
   ========================================================== */

.dashboard-quick-actions--command
.dashboard-command-module-grid {
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
}

.dashboard-quick-actions--command
.metric-card {
    min-height: 122px;
}

.dashboard-directory-strip {
    display: grid;
    grid-template-columns:
        minmax(135px, .35fr)
        minmax(0, 1.65fr);
    gap: 12px;
    align-items: center;
    margin-top: 14px;
    padding: 12px;
    border: 1px solid #294553;
    border-radius: 11px;
    background:
        linear-gradient(
            135deg,
            #0b1d28,
            #0d2531
        );
}

.dashboard-directory-strip__label span,
.dashboard-directory-strip__label small {
    display: block;
}

.dashboard-directory-strip__label span {
    color: #60d3ec;
    font-size: .54rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.dashboard-directory-strip__label small {
    margin-top: 4px;
    color: #708d9b;
    font-size: .57rem;
}

.dashboard-directory-strip__links {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.dashboard-directory-strip__links > a {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    min-height: 54px;
    padding: 9px 10px;
    border: 1px solid #294957;
    border-radius: 9px;
    color: inherit;
    text-decoration: none;
    background: #0b202b;
}

.dashboard-directory-strip__links > a:hover,
.dashboard-directory-strip__links > a:focus-visible {
    border-color: #3b879e;
    outline: none;
    background: #0e2c39;
}

.dashboard-directory-strip__links > a > svg {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    color: #55cae4;
}

.dashboard-directory-strip__links > a > span {
    min-width: 0;
}

.dashboard-directory-strip__links strong,
.dashboard-directory-strip__links small {
    display: block;
}

.dashboard-directory-strip__links strong {
    color: #e4f2f6;
    font-size: .66rem;
}

.dashboard-directory-strip__links small {
    margin-top: 3px;
    color: #7693a0;
    font-size: .54rem;
}

@media (max-width: 1100px) {
    .dashboard-quick-actions--command
    .dashboard-command-module-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .dashboard-quick-actions--command
    .dashboard-command-module-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .dashboard-directory-strip {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .dashboard-directory-strip__links {
        grid-template-columns: 1fr;
    }
}

/* END DASHBOARD QUICK ACTIONS DIRECTORY */

/* ==========================================================
   PSOPS DASHBOARD COMMAND CENTER V2 - LAYOUT CORRECTION
   ========================================================== */

.department-dashboard-page
.dashboard-command-priority {
    display: grid !important;
    grid-template-columns:
        minmax(0, 1.45fr)
        minmax(360px, .75fr) !important;
    align-items: start !important;
    gap: 14px !important;
}

.department-dashboard-page
.dashboard-command-panel {
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;
}

.department-dashboard-page
.dashboard-command-panel--my-work,
.department-dashboard-page
.dashboard-command-panel--attention {
    height: auto !important;
}

.department-dashboard-page
.dashboard-my-work-list {
    min-height: 0 !important;
    height: auto !important;
}

.department-dashboard-page
.dashboard-my-work-list > a {
    min-height: 74px !important;
    height: auto !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}

.department-dashboard-page
.dashboard-command-empty {
    min-height: 82px !important;
}

.department-dashboard-page
.dashboard-attention-grid > a {
    min-height: 88px !important;
}

@media (max-width: 1050px) {
    .department-dashboard-page
    .dashboard-command-priority {
        grid-template-columns: 1fr !important;
    }
}

/* END DASHBOARD COMMAND CENTER V2 - LAYOUT CORRECTION */

/* PSOPS DASHBOARD MY WORK ROW HEIGHT FIX */

.department-dashboard-page
.dashboard-my-work-list {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
}

.department-dashboard-page
.dashboard-my-work-list > a {
    flex: 0 0 auto !important;
    min-height: 72px !important;
    height: auto !important;
    padding: 10px 14px !important;
    align-content: center !important;
}

.department-dashboard-page
.dashboard-my-work-list__icon {
    align-self: center !important;
}

/* END PSOPS DASHBOARD MY WORK ROW HEIGHT FIX */

/* ==========================================================
   PSOPS DASHBOARD MY WORK ICON CENTER FIX
   ========================================================== */

.department-dashboard-page
.dashboard-my-work-list > a >
.dashboard-my-work-list__icon {
    display: grid !important;
    place-items: center !important;
    align-items: center !important;
    justify-items: center !important;

    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;

    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
}

.department-dashboard-page
.dashboard-my-work-list >
a >
.dashboard-my-work-list__icon >
svg {
    display: block !important;

    width: 19px !important;
    height: 19px !important;

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

    position: static !important;
    inset: auto !important;

    transform: none !important;
}

/* END PSOPS DASHBOARD MY WORK ICON CENTER FIX */

/* ==========================================================
   PSOPS ICON SYSTEM V2
   Resolution-independent command icon treatment
   ========================================================== */

.psops-icon--v2 {
    shape-rendering: geometricPrecision;
    text-rendering: geometricPrecision;
    vector-effect: non-scaling-stroke;
}

.metric-card > .psops-icon--v2,
.module-command-header__icon .psops-icon--v2,
.legacy-command-hero__icon .psops-icon--v2,
.department-landing-button .psops-icon--v2,
.dashboard-my-work-list__icon .psops-icon--v2,
.dashboard-directory-strip__links .psops-icon--v2,
.dashboard-builder-card__identity .psops-icon--v2,
.risk-record-icon .psops-icon--v2,
.station-directory-card__icon .psops-icon--v2 {
    filter:
        drop-shadow(
            0 2px 3px rgb(0 0 0 / 22%)
        );
}

.nav-item .psops-icon--v2 {
    transition:
        filter .16s ease,
        transform .16s ease;
}

.nav-item:hover .psops-icon--v2,
.nav-item:focus-visible .psops-icon--v2,
.nav-item.is-active .psops-icon--v2 {
    filter:
        drop-shadow(
            0 0 5px rgb(75 211 239 / 22%)
        );
}

.metric-card:hover > .psops-icon--v2,
.metric-card:focus-visible > .psops-icon--v2 {
    filter:
        drop-shadow(
            0 0 7px rgb(79 211 239 / 18%)
        )
        drop-shadow(
            0 2px 3px rgb(0 0 0 / 20%)
        );
}

/* END PSOPS ICON SYSTEM V2 */

/* ==========================================================
   PSOPS PERSONNEL LIFECYCLE V2
   ========================================================== */

.personnel-danger-zone {
    margin-top: 1rem;
    border-color: rgb(218 72 90 / 48%);
    background:
        linear-gradient(
            145deg,
            rgb(52 15 23 / 72%),
            rgb(10 24 32 / 96%)
        );
}

.personnel-delete-form {
    display: grid;
    grid-template-columns:
        minmax(240px, 420px)
        auto;
    gap: .8rem;
    align-items: end;
}

.personnel-delete-button {
    min-height: 42px;
    border: 1px solid #df5365;
    background: #731d2a;
    color: #fff;
    font-weight: 850;
}

.personnel-delete-button:hover,
.personnel-delete-button:focus-visible {
    background: #922638;
}

@media (max-width: 720px) {
    .personnel-delete-form {
        grid-template-columns: 1fr;
    }
}

/* END PSOPS PERSONNEL LIFECYCLE V2 */


/* PSOps Multi-Department Context — Phase 2B2B */

.department-context {
    position: relative;
    flex: 0 0 auto;
}

.department-context > summary {
    list-style: none;
}

.department-context > summary::-webkit-details-marker {
    display: none;
}

.department-context__trigger {
    min-width: 190px;
    display: grid;
    gap: 2px;
    padding: 9px 12px;
    border: 1px solid #24576b;
    border-radius: 12px;
    color: inherit;
    background: linear-gradient(145deg, #0b2735, #091c28);
    cursor: pointer;
    box-shadow: 0 8px 22px rgb(0 0 0 / 18%);
}

.department-context__trigger:hover,
.department-context[open] > .department-context__trigger {
    border-color: #35b9d8;
    background: linear-gradient(145deg, #0d3545, #0a2532);
}

.department-context__eyebrow {
    margin: 0;
    color: #75dff4;
    font-size: .52rem;
    font-weight: 950;
    letter-spacing: .12em;
}

.department-context__trigger strong {
    max-width: 230px;
    overflow: hidden;
    color: #f2fbff;
    font-size: .74rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.department-context__trigger small {
    color: #7796a5;
    font-size: .5rem;
    font-weight: 900;
    letter-spacing: .07em;
}

.department-context__panel {
    position: absolute;
    z-index: 90;
    top: calc(100% + 12px);
    right: 0;
    width: min(470px, calc(100vw - 24px));
    overflow: hidden;
    border: 1px solid #245b70;
    border-radius: 16px;
    background: rgb(5 20 30 / 98%);
    box-shadow: 0 28px 80px rgb(0 0 0 / 60%);
    backdrop-filter: blur(18px);
}

.department-context__panel > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 15px 16px;
    border-bottom: 1px solid var(--line-soft);
    background: rgb(53 210 241 / 4%);
}

.department-context__panel > header strong,
.department-context__panel > header span {
    display: block;
}

.department-context__panel > header strong {
    margin-top: 3px;
    color: #eefaff;
    font-size: .82rem;
}

.department-context__list {
    display: grid;
    gap: 9px;
    padding: 12px;
}

.department-context__card {
    display: grid;
    gap: 11px;
    padding: 13px;
    border: 1px solid #183e50;
    border-radius: 13px;
    background: #081a25;
}

.department-context__card.is-current {
    border-color: #2d8ca7;
    background: linear-gradient(145deg, #0a2836, #081d28);
    box-shadow: inset 3px 0 0 #35d2f1;
}

.department-context__identity {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.department-context__identity img,
.department-context__mark {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    object-fit: contain;
    border-radius: 50%;
}

.department-context__mark {
    display: grid;
    place-items: center;
    border: 1px solid #2b7189;
    color: #65ddf4;
    background: #0b2a38;
    font-size: .68rem;
    font-weight: 950;
}

.department-context__identity > div {
    min-width: 0;
}

.department-context__identity strong,
.department-context__identity span {
    display: block;
}

.department-context__identity strong {
    overflow: hidden;
    color: #f0f9fc;
    font-size: .73rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.department-context__identity span {
    margin-top: 3px;
    color: #819aa7;
    font-size: .58rem;
}

.department-context__badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.department-context__primary,
.person-affiliation-card__primary {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    padding: 0 8px;
    border: 1px solid rgb(53 210 241 / 35%);
    border-radius: 999px;
    color: #8ae8f8;
    background: rgb(53 210 241 / 8%);
    font-size: .51rem;
    font-weight: 950;
    letter-spacing: .07em;
}

.department-context__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.department-context__actions form {
    margin: 0;
}

.department-context__actions .button {
    min-height: 35px;
    padding: 7px 10px;
    font-size: .62rem;
}

.department-context__note {
    margin: 0;
    padding: 0 14px 14px;
    color: #708c9a;
    font-size: .56rem;
    line-height: 1.45;
}

.department-context__locked {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 12px;
    padding: 13px;
    border: 1px solid rgb(255 176 32 / 30%);
    border-radius: 12px;
    color: #d7c49c;
    background: rgb(255 176 32 / 7%);
    font-size: .64rem;
    line-height: 1.45;
}

.department-context__locked svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    color: var(--amber);
}

.affiliation-choice-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 8px;
}

.affiliation-choice {
    position: relative;
    min-width: 0;
    cursor: pointer;
}

.affiliation-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.affiliation-choice > span {
    min-height: 82px;
    display: grid;
    align-content: center;
    gap: 4px;
    padding: 12px;
    border: 1px solid #234352;
    border-radius: 12px;
    background: #091a24;
    transition:
        border-color .15s ease,
        background .15s ease,
        box-shadow .15s ease,
        transform .15s ease;
}

.affiliation-choice:hover > span {
    border-color: #2c7891;
    background: #0b2431;
}

.affiliation-choice input:checked + span {
    border-color: #36cae8;
    background: linear-gradient(145deg, #0b3443, #0a2330);
    box-shadow:
        inset 3px 0 0 #35d2f1,
        0 0 0 2px rgb(53 210 241 / 7%);
    transform: translateY(-1px);
}

.affiliation-choice strong {
    color: #eefaff;
    font-size: .72rem;
}

.affiliation-choice small {
    color: #7d97a4;
    font-size: .56rem;
    line-height: 1.35;
}

.affiliation-choice.is-legacy > span {
    border-style: dashed;
    border-color: #79683b;
}

.resource-field-label {
    display: block;
    margin-bottom: 6px;
    color: #b9cbd4;
    font-size: .68rem;
    font-weight: 800;
}

.access-affiliation-panel {
    border-color: rgb(53 210 241 / 26%);
}

.person-affiliations {
    grid-column: 1 / -1;
}

.person-affiliation-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.person-affiliation-card {
    display: grid;
    gap: 13px;
    padding: 15px;
    border: 1px solid #1c4152;
    border-radius: 14px;
    background: linear-gradient(145deg, #091d28, #071720);
}

.person-affiliation-card.is-current {
    border-color: #298ca8;
    box-shadow: inset 4px 0 0 #35d2f1;
}

.person-affiliation-card__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.person-affiliation-card__heading strong,
.person-affiliation-card__heading span {
    display: block;
}

.person-affiliation-card__heading strong {
    color: #effaff;
    font-size: .8rem;
}

.person-affiliation-card__heading > div:first-child > span {
    margin-top: 4px;
    color: #6fdff5;
    font-size: .62rem;
    font-weight: 800;
}

.person-affiliation-card__badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 5px;
}

.person-affiliation-card__details {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}

.person-affiliation-card__details > div {
    min-width: 0;
    padding: 9px;
    border: 1px solid var(--line-soft);
    border-radius: 9px;
    background: rgb(255 255 255 / 1.5%);
}

.person-affiliation-card__details dt {
    color: #708b99;
    font-size: .5rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.person-affiliation-card__details dd {
    overflow: hidden;
    margin: 4px 0 0;
    color: #dcebf0;
    font-size: .64rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1180px) {
    .department-context__trigger {
        min-width: 150px;
    }

    .affiliation-choice-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .person-affiliation-card__details {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 920px) {
    .department-context {
        margin-left: auto;
    }

    .department-context__trigger {
        min-width: 0;
        width: 44px;
        height: 44px;
        display: grid;
        place-items: center;
        padding: 0;
    }

    .department-context__trigger::before {
        content: "DEPT";
        color: #6fdff5;
        font-size: .52rem;
        font-weight: 950;
        letter-spacing: .05em;
    }

    .department-context__trigger > * {
        display: none;
    }

    .department-context__panel {
        position: fixed;
        top: 76px;
        right: 8px;
        left: 8px;
        width: auto;
    }
}

@media (max-width: 720px) {
    .affiliation-choice-grid,
    .person-affiliation-grid {
        grid-template-columns: 1fr;
    }

    .person-affiliation-card__heading {
        flex-direction: column;
    }

    .person-affiliation-card__badges {
        justify-content: flex-start;
    }
}

@media (max-width: 520px) {
    .person-affiliation-card__details {
        grid-template-columns: 1fr;
    }

    .department-context__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .department-context__actions .button,
    .department-context__actions form {
        width: 100%;
    }
}

/* =========================================================
   LOUDON COUNTY FIRE / RESCUE — /lcfrtn
   Real department photography. No generated apparatus.
   ========================================================= */

.lcfr-entry-body {
    margin: 0;
    min-height: 100vh;
    color: #eef6fb;
    background:
        radial-gradient(circle at 18% 16%, rgba(216, 36, 44, .14), transparent 30rem),
        radial-gradient(circle at 82% 28%, rgba(0, 198, 255, .1), transparent 30rem),
        #050b12;
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
}

.lcfr-entry-back {
    position: fixed;
    z-index: 30;
    top: 1rem;
    left: 1rem;
    display: inline-flex;
    align-items: center;
    min-height: 2.6rem;
    padding: .5rem .9rem;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: .75rem;
    color: #d9e9f2;
    background: rgba(4,11,18,.75);
    backdrop-filter: blur(14px);
    text-decoration: none;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
}

.lcfr-entry-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(22rem, .65fr);
    min-height: calc(100vh - 3rem);
}

.lcfr-entry-hero {
    position: relative;
    min-height: 46rem;
    overflow: hidden;
    isolation: isolate;
}

.lcfr-entry-photo {
    position: absolute;
    inset: 0;
    z-index: -3;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.lcfr-entry-photo-shade {
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(
            90deg,
            rgba(4,8,13,.95) 0%,
            rgba(4,8,13,.72) 38%,
            rgba(4,8,13,.30) 70%,
            rgba(4,8,13,.15) 100%
        ),
        linear-gradient(
            0deg,
            rgba(3,8,13,.92) 0%,
            rgba(3,8,13,.10) 56%
        );
}

.lcfr-entry-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(
            135deg,
            rgba(244, 192, 66, .07),
            transparent 40%
        );
}

.lcfr-entry-identity {
    position: relative;
    z-index: 4;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: min(44rem, 83%);
    min-height: 100%;
    padding: 5.5rem clamp(2rem, 5vw, 5.5rem);
}

.lcfr-entry-badges {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.65rem;
}

.lcfr-entry-badge,
.lcfr-entry-psops {
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(4,11,18,.72);
    box-shadow: 0 18px 42px rgba(0,0,0,.35);
}

.lcfr-entry-badge {
    width: 6.8rem;
    height: 6.8rem;
    border-radius: 1.15rem;
}

.lcfr-entry-badge img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lcfr-entry-psops {
    width: 4.6rem;
    height: 4.6rem;
    border-radius: 1rem;
}

.lcfr-entry-psops img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lcfr-entry-divider {
    width: 2.8rem;
    height: 1px;
    background:
        linear-gradient(
            90deg,
            rgba(255,196,70,.85),
            rgba(255,255,255,.1)
        );
}

.lcfr-entry-eyebrow {
    color: #f4c446;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .23em;
}

.lcfr-entry-identity h1 {
    margin: .45rem 0 0;
    color: #fff;
    font-size: clamp(3rem, 6vw, 6.5rem);
    line-height: .91;
    letter-spacing: -.045em;
    text-shadow: 0 16px 35px rgba(0,0,0,.38);
}

.lcfr-entry-identity h1 span {
    display: block;
    margin-top: .45rem;
    color: #f4c446;
    font-size: .53em;
    letter-spacing: .02em;
}

.lcfr-entry-powered {
    margin: 1.25rem 0 0;
    color: #e6edf2;
    font-size: .85rem;
    font-weight: 900;
    letter-spacing: .23em;
    text-transform: uppercase;
}

.lcfr-entry-summary {
    max-width: 38rem;
    margin: 1rem 0 0;
    color: #c0d0da;
    font-size: 1.02rem;
    line-height: 1.7;
}

.lcfr-entry-modules {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 1.5rem;
}

.lcfr-entry-modules span {
    padding: .55rem .75rem;
    border: 1px solid rgba(244,196,70,.26);
    border-radius: .55rem;
    color: #e8eef2;
    background: rgba(5,12,19,.68);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .055em;
    text-transform: uppercase;
    backdrop-filter: blur(10px);
}

.lcfr-entry-real-photo-note {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-top: 2rem;
    color: #b8c8d2;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.lcfr-entry-real-photo-note span {
    width: 2.3rem;
    height: 2px;
    background: #f4c446;
}

.lcfr-entry-memorial {
    position: absolute;
    z-index: 5;
    right: 2rem;
    bottom: 2rem;
    display: grid;
    grid-template-columns: 4rem 1fr;
    align-items: center;
    gap: .75rem;
    max-width: 14rem;
    padding: .7rem;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: .8rem;
    background: rgba(4,10,17,.72);
    backdrop-filter: blur(14px);
}

.lcfr-entry-memorial img {
    width: 4rem;
    height: 4rem;
    object-fit: cover;
    border-radius: .55rem;
}

.lcfr-entry-memorial span {
    color: #d9e6ee;
    font-size: .61rem;
    font-weight: 900;
    letter-spacing: .13em;
}

.lcfr-entry-login {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 4vw, 4.2rem);
    border-left: 1px solid rgba(55,189,232,.2);
    background:
        linear-gradient(
            180deg,
            rgba(9,21,32,.99),
            rgba(4,12,20,.99)
        );
    box-shadow: -20px 0 70px rgba(0,0,0,.22);
}

.lcfr-login-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.lcfr-login-status span {
    color: #70dcff;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .14em;
}

.lcfr-login-status span i {
    display: inline-block;
    width: .5rem;
    height: .5rem;
    margin-right: .45rem;
    border-radius: 999px;
    background: #34d399;
    box-shadow: 0 0 14px rgba(52,211,153,.7);
}

.lcfr-login-status small {
    color: #8296a3;
    font-size: .56rem;
    letter-spacing: .11em;
}

.lcfr-login-heading {
    margin-top: 2rem;
}

.lcfr-login-heading > span {
    color: #f4c446;
    font-size: .65rem;
    font-weight: 900;
    letter-spacing: .16em;
}

.lcfr-login-heading h2 {
    margin: .55rem 0 0;
    color: #fff;
    font-size: clamp(2rem, 3vw, 3.15rem);
    line-height: 1;
}

.lcfr-login-heading p {
    margin: .8rem 0 0;
    color: #9fb2bd;
    font-size: .87rem;
    line-height: 1.55;
}

.lcfr-login-form {
    margin-top: 1.7rem;
}

.lcfr-login-form > label:not(.check-row) {
    color: #cbd8df;
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .04em;
}

.lcfr-login-form input[type="text"],
.lcfr-login-form input[type="password"] {
    width: 100%;
    min-height: 3.15rem;
    box-sizing: border-box;
    border: 1px solid rgba(114,160,184,.3);
    border-radius: .65rem;
    color: #fff;
    background: #08131c;
    outline: none;
}

.lcfr-login-form input:focus {
    border-color: #37bde8;
    box-shadow: 0 0 0 3px rgba(55,189,232,.12);
}

.lcfr-login-submit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 3.35rem;
    margin-top: .7rem;
    padding: .75rem 1rem;
    border: 1px solid #e7b537;
    border-radius: .7rem;
    color: #090d11;
    background:
        linear-gradient(
            135deg,
            #f5d36d,
            #d99e1b
        );
    font-weight: 950;
    cursor: pointer;
}

.lcfr-first-login-note {
    display: grid;
    gap: .35rem;
    margin-top: 1rem;
    padding: .85rem;
    border: 1px solid rgba(55,189,232,.18);
    border-radius: .65rem;
    background: rgba(55,189,232,.055);
}

.lcfr-first-login-note strong {
    color: #c8effc;
    font-size: .73rem;
}

.lcfr-first-login-note span {
    color: #8da3af;
    font-size: .69rem;
    line-height: 1.45;
}

.lcfr-login-support {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255,255,255,.08);
    text-align: center;
}

.lcfr-login-support > span {
    color: #738b98;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .13em;
}

.lcfr-login-support p {
    margin: .45rem 0 0;
    color: #91a5b0;
    font-size: .68rem;
    line-height: 1.5;
}

.lcfr-login-support a {
    color: #71dcff;
}

.lcfr-entry-footer {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1.2rem;
    color: #667e8b;
    background: #03070b;
    font-size: .61rem;
    letter-spacing: .04em;
}

@media (max-width: 1050px) {
    .lcfr-entry-shell {
        grid-template-columns: 1fr;
    }

    .lcfr-entry-hero {
        min-height: 42rem;
    }

    .lcfr-entry-login {
        border-top: 1px solid rgba(55,189,232,.2);
        border-left: 0;
    }
}

@media (max-width: 680px) {
    .lcfr-entry-back {
        position: absolute;
    }

    .lcfr-entry-hero {
        min-height: 38rem;
    }

    .lcfr-entry-photo {
        object-position: 62% center;
    }

    .lcfr-entry-identity {
        width: auto;
        min-height: 38rem;
        padding: 5.5rem 1.25rem 7rem;
    }

    .lcfr-entry-badge {
        width: 5rem;
        height: 5rem;
    }

    .lcfr-entry-psops {
        width: 3.8rem;
        height: 3.8rem;
    }

    .lcfr-entry-identity h1 {
        font-size: clamp(2.8rem, 14vw, 4.2rem);
    }

    .lcfr-entry-memorial {
        right: 1rem;
        bottom: 1rem;
    }

    .lcfr-entry-login {
        padding: 2rem 1.2rem;
    }

    .lcfr-entry-footer {
        flex-direction: column;
        text-align: center;
    }
}


/* ==========================================================
   Incident Board — training-ready compact operations layout
   ========================================================== */

.incident-board-heading--clean {
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: .8rem;
}

.incident-board-heading--clean h1 {
    margin-bottom: .2rem;
}

.incident-board-heading--clean p {
    max-width: 46rem;
    margin-bottom: 0;
}

.incident-board-heading-actions--clean {
    align-items: center;
    gap: .55rem;
}

.incident-board-heading-actions--clean form {
    margin: 0;
}

.incident-board-start {
    min-height: 46px;
    padding-inline: 1.1rem;
}

.incident-manual-start--clean {
    position: relative;
}

.incident-manual-start--clean > summary {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    padding: 0 .9rem;
    border: 1px solid var(--line);
    border-radius: 11px;
    color: var(--muted);
    background: #081a24;
    font-size: .73rem;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.incident-manual-start--clean > summary::-webkit-details-marker {
    display: none;
}

.incident-manual-start--clean[open] > summary {
    border-color: #2d849d;
    color: #d9f7ff;
}

.incident-manual-start--clean form {
    position: absolute;
    z-index: 40;
    top: calc(100% + .45rem);
    right: 0;
    width: min(340px, calc(100vw - 2rem));
    display: grid;
    gap: .65rem;
    padding: .9rem;
    border: 1px solid #2a5c70;
    border-radius: 14px;
    background: #081a24;
    box-shadow: 0 24px 60px rgb(0 0 0 / 45%);
}

.incident-manual-start--clean label {
    display: grid;
    gap: .35rem;
}

.incident-manual-start--clean label > span,
.incident-manual-inline label > span {
    color: var(--muted);
    font-size: .66rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.incident-manual-start--clean input,
.incident-manual-inline input {
    min-height: 42px;
    width: 100%;
    border: 1px solid #385c6b;
    border-radius: 9px;
    padding: 0 .75rem;
    color: var(--text);
    background: #06131c;
    font: inherit;
}

.incident-manual-inline {
    display: grid;
    grid-template-columns: minmax(180px, 240px) auto;
    align-items: end;
    gap: .55rem;
}

.incident-manual-inline .form-error {
    grid-column: 1 / -1;
}

.incident-lane-switch--clean {
    margin-bottom: .7rem;
}

.incident-lane-switch--clean a {
    padding-block: .7rem;
}

.incident-status-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .5rem;
    margin: .65rem 0 .75rem;
}

.incident-status-chip {
    min-height: 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    padding: .65rem .8rem;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: #091a24;
    color: var(--text);
    text-decoration: none;
    transition:
        border-color .15s ease,
        background .15s ease,
        transform .15s ease;
}

.incident-status-chip:hover {
    border-color: #35788d;
    background: #0b2230;
    transform: translateY(-1px);
}

.incident-status-chip span {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.incident-status-chip strong {
    font-size: 1.25rem;
}

.incident-status-chip.is-active {
    border-color: var(--incident-status-accent, var(--cyan));
    box-shadow:
        inset 3px 0 0
        var(--incident-status-accent, var(--cyan));
}

.incident-status-chip--danger {
    --incident-status-accent: var(--red);
}

.incident-status-chip--attention {
    --incident-status-accent: var(--amber);
}

.incident-status-chip--good {
    --incident-status-accent: var(--green);
}

.incident-status-chip--neutral {
    --incident-status-accent: #8ba0ac;
}

.incident-search-clean {
    margin-bottom: .8rem;
    padding: .7rem;
    border: 1px solid var(--line-soft);
    border-radius: 14px;
    background:
        linear-gradient(
            180deg,
            rgb(11 31 42 / 96%),
            rgb(7 22 31 / 96%)
        );
}

.incident-search-clean__form {
    display: grid;
    gap: .6rem;
}

.incident-search-clean__primary {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        auto
        auto;
    align-items: center;
    gap: .5rem;
}

.incident-search-clean__query {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: 0 .75rem;
    border: 1px solid #345766;
    border-radius: 11px;
    background: #06151e;
}

.incident-search-clean__query:focus-within {
    border-color: var(--cyan);
    box-shadow: 0 0 0 3px rgb(32 200 239 / 10%);
}

.incident-search-clean__query svg {
    flex: 0 0 auto;
    color: var(--cyan);
}

.incident-search-clean__query input {
    min-width: 0;
    width: 100%;
    border: 0;
    outline: 0;
    color: var(--text);
    background: transparent;
    font: inherit;
}

.incident-search-clean__query input::placeholder {
    color: #78909d;
}

.incident-advanced-filters {
    border-top: 1px solid var(--line-soft);
    padding-top: .5rem;
}

.incident-advanced-filters > summary {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 36px;
    color: #c2d3dd;
    cursor: pointer;
    list-style: none;
    font-size: .72rem;
    font-weight: 800;
}

.incident-advanced-filters > summary::-webkit-details-marker {
    display: none;
}

.incident-advanced-filters > summary::before {
    content: "＋";
    color: var(--cyan);
    font-size: .9rem;
}

.incident-advanced-filters[open] > summary::before {
    content: "−";
}

.incident-advanced-filters > summary strong {
    margin-left: auto;
    padding: .2rem .45rem;
    border-radius: 999px;
    color: #091218;
    background: var(--amber);
    font-size: .62rem;
}

.incident-advanced-filters > summary small {
    margin-left: auto;
    color: #78909d;
    font-weight: 600;
}

.incident-search-fields--clean {
    margin-top: .65rem;
    padding: .7rem;
    border: 1px solid rgb(74 111 128 / 34%);
    border-radius: 11px;
    background: rgb(3 15 22 / 38%);
}

.incident-search-clean__advanced-actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .6rem;
}

.incident-list--clean {
    gap: .4rem;
}

.incident-row--clean {
    min-height: 72px;
    border-radius: 12px;
}

.incident-row--clean .incident-family {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
}

/* ----------------------------------------------------------
   Fix This — exact required field target
   Existing completion JS adds .psops-report-fix-target.
   Make that server-selected exact target unmistakable.
   ---------------------------------------------------------- */

.psops-report-fix-target {
    position: relative;
    scroll-margin-top: 180px;
    outline: 3px solid #ff5d6c !important;
    outline-offset: 3px;
    border-radius: 10px;
    box-shadow:
        0 0 0 6px rgb(255 93 108 / 15%),
        0 0 30px rgb(255 93 108 / 24%) !important;
    animation:
        psops-report-fix-pulse
        1.15s ease-in-out
        2;
}

.psops-report-fix-target input,
.psops-report-fix-target select,
.psops-report-fix-target textarea,
input.psops-report-fix-target,
select.psops-report-fix-target,
textarea.psops-report-fix-target {
    border-color: #ff5d6c !important;
    box-shadow:
        0 0 0 3px rgb(255 93 108 / 16%) !important;
}

.psops-report-fix-target label,
.psops-report-fix-target > span:first-child {
    color: #ff9aa3;
}

@keyframes psops-report-fix-pulse {
    0%,
    100% {
        box-shadow:
            0 0 0 6px rgb(255 93 108 / 12%),
            0 0 24px rgb(255 93 108 / 18%);
    }

    50% {
        box-shadow:
            0 0 0 9px rgb(255 93 108 / 20%),
            0 0 38px rgb(255 93 108 / 32%);
    }
}

@media (max-width: 820px) {
    .incident-board-heading--clean {
        align-items: stretch;
    }

    .incident-board-heading-actions--clean {
        width: 100%;
    }

    .incident-status-strip {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .incident-search-clean__primary {
        grid-template-columns:
            minmax(0, 1fr)
            auto;
    }

    .incident-search-clean__primary > .button--quiet {
        grid-column: 1 / -1;
        width: fit-content;
    }

    .incident-manual-inline {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .incident-board-heading-actions--clean,
    .incident-board-heading-actions--clean form,
    .incident-board-heading-actions--clean .button,
    .incident-manual-start--clean,
    .incident-manual-start--clean > summary {
        width: 100%;
    }

    .incident-manual-start--clean > summary {
        justify-content: center;
    }

    .incident-manual-start--clean form {
        right: auto;
        left: 0;
        width: 100%;
    }

    .incident-status-strip {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .incident-search-clean__primary {
        grid-template-columns: 1fr;
    }

    .incident-search-clean__primary .button {
        width: 100%;
    }

    .incident-search-clean__primary > .button--quiet {
        grid-column: auto;
        width: 100%;
    }

    .incident-advanced-filters > summary small {
        display: none;
    }

    .incident-search-clean__advanced-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .incident-search-clean__advanced-actions .button {
        width: 100%;
    }
}

/* ============================================================
   PSOPS_REPORTING_RESPONSE_METRICS_TABLE_R1
   Response and duration metrics — scoped presentation only.
   ============================================================ */

#report-response-metrics {
    overflow: hidden;
}

#report-response-metrics .panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

#report-response-metrics .panel-heading > div {
    min-width: 0;
}

#report-response-metrics .record-note {
    margin: 16px 0 14px;
    padding: 12px 14px;
    border-left: 4px solid #2c9fc4;
    border-radius: 0 7px 7px 0;
    background: rgba(34, 75, 97, .22);
    line-height: 1.45;
}

#report-response-metrics .table-scroll {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

#report-response-metrics .data-table {
    width: 100%;
    min-width: 760px;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
}

#report-response-metrics .data-table th,
#report-response-metrics .data-table td {
    padding: 11px 14px;
    border-bottom: 1px solid rgba(104, 143, 164, .24);
    vertical-align: middle;
    line-height: 1.3;
}

#report-response-metrics .data-table thead th {
    background: rgba(17, 48, 64, .82);
    color: #b9d5e3;
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .055em;
    text-transform: uppercase;
    white-space: normal;
}

#report-response-metrics .data-table tbody td {
    color: #edf6fb;
    font-size: .91rem;
}

#report-response-metrics .data-table th:first-child,
#report-response-metrics .data-table td:first-child {
    width: 32%;
    text-align: left;
    font-weight: 780;
}

#report-response-metrics .data-table th:nth-child(2),
#report-response-metrics .data-table td:nth-child(2) {
    width: 18%;
    text-align: right;
}

#report-response-metrics .data-table th:nth-child(3),
#report-response-metrics .data-table td:nth-child(3) {
    width: 20%;
    text-align: right;
}

#report-response-metrics .data-table th:nth-child(4),
#report-response-metrics .data-table td:nth-child(4),
#report-response-metrics .data-table th:nth-child(5),
#report-response-metrics .data-table td:nth-child(5) {
    width: 15%;
    text-align: right;
}

#report-response-metrics .data-table td:not(:first-child) {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

#report-response-metrics .data-table tbody tr:last-child td {
    border-bottom: 0;
}

#report-response-metrics .data-table tbody tr:hover td {
    background: rgba(42, 105, 133, .12);
}

@media (max-width: 760px) {
    #report-response-metrics .panel-heading {
        flex-direction: column;
        align-items: stretch;
    }

    #report-response-metrics .panel-heading .button {
        width: 100%;
        text-align: center;
    }

    #report-response-metrics .data-table {
        min-width: 700px;
    }

    #report-response-metrics .data-table th,
    #report-response-metrics .data-table td {
        padding: 10px 11px;
    }
}

/* END PSOPS_REPORTING_RESPONSE_METRICS_TABLE_R1 */
