body {
    background-color: #f5f5f5;
}

.list-group-item {
    border: none;
    border-radius: 8px;
    margin-bottom: 6px;
}

.list-group-item:hover {
    background: #0d6efd;
    color: white;
}

.card {
    border: none;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0,0,0,.08);
}
/* Sidebar */
.list-group-item {
    border: none;
    border-radius: 10px;
    margin-bottom: 8px;
    transition: all 0.2s ease;
}

.list-group-item:hover {
    transform: translateX(4px);
}

.list-group-item.active {
    background-color: #0d6efd;
    color: white;
    font-weight: 600;
}

.list-group-item.active i {
    color: white;
}

.collapsible-section { overflow: hidden; scroll-margin-top: 1rem; }
.collapsible-section__toggle {
    align-items: center; background: #fff; border: 0; color: #20252b; display: flex;
    justify-content: space-between; min-height: 48px; padding: .85rem 1.25rem; text-align: left; width: 100%;
}
.collapsible-section__toggle:hover { background: #f8fafc; }
.collapsible-section__toggle:focus-visible { box-shadow: inset 0 0 0 3px rgba(13,110,253,.35); outline: 2px solid #0d6efd; outline-offset: -2px; }
.collapsible-section__title { font-size: 1.05rem; font-weight: 600; }
.collapsible-section__meta { align-items: center; display: flex; gap: .6rem; justify-content: flex-end; min-width: 0; }
.collapsible-section__summary { color: #667085; font-size: .85rem; text-align: right; }
.collapsible-section__chevron { flex: 0 0 auto; transition: transform .16s ease; }
.collapsible-section.is-expanded .collapsible-section__chevron { transform: rotate(90deg); }
.collapsible-section__content:not([hidden]) { animation: sentinel-section-open .16s ease-out; }
@keyframes sentinel-section-open { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (max-width: 575.98px) {
    .collapsible-section__toggle { align-items: flex-start; padding: .8rem 1rem; }
    .collapsible-section__meta { align-items: flex-end; flex-wrap: wrap; }
    .collapsible-section__summary { flex-basis: 100%; order: 3; }
}
@media (prefers-reduced-motion: reduce) {
    .collapsible-section__content:not([hidden]) { animation: none; }
    .collapsible-section__chevron { transition: none; }
}

.health-card {
    border-left: 4px solid #0d6efd;
}

.health-item {
    background-color: #fafcff;
}

.incident-row {
    border-left: 4px solid #dc3545 !important;
}

.incident-status-badge {
    border-radius: 999px;
    display: inline-block;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    padding: .4rem .65rem;
    white-space: nowrap;
}

.incident-status-badge.active {
    background-color: #f8d7da;
    color: #842029;
}

.incident-status-badge.complete {
    background-color: #d1e7dd;
    color: #0f5132;
}

.incident-map {
    border-radius: 8px;
    height: 460px;
    width: 100%;
}

.mission-control-workspace {
    align-items: stretch;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(250px, .8fr) minmax(420px, 1.7fr) minmax(320px, 1fr);
}

.mission-control-workspace > * { min-width: 0; }
.mission-control-incidents { align-self: start; position: sticky; top: 1rem; }
.active-incidents-panel { height: min(680px, calc(100vh - 2rem)); overflow: hidden; }
.active-incidents-panel > .card-body { min-height: 0; }
.active-incidents-list { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: .5rem; }
.active-incidents-list:empty { color: #6c757d; padding: 1rem; }
.active-incidents-list .list-group-item { border: 1px solid transparent; margin-bottom: .5rem; }
.active-incidents-list .list-group-item.active {
    background: #e9f2ff;
    border-color: #0d6efd;
    color: #172b4d;
    transform: none;
}
.active-incidents-list .list-group-item.active .text-primary { color: #084298 !important; }
.active-incidents-list .list-group-item:focus-visible { outline: 3px solid rgba(13, 110, 253, .35); outline-offset: -2px; }
.mission-control-map .collapsible-section,
.mission-control-details .collapsible-section { margin-bottom: 0 !important; }

@media (max-width: 1399.98px) {
    .mission-control-workspace { grid-template-columns: minmax(220px, .75fr) minmax(0, 1.5fr) minmax(280px, 1fr); }
}

@media (max-width: 1199.98px) {
    .mission-control-workspace { grid-template-columns: minmax(240px, .75fr) minmax(0, 1.5fr); }
    .mission-control-details { grid-column: 2; }
    .mission-control-incidents { grid-row: 1 / span 2; }
    .active-incidents-panel { height: min(720px, calc(100vh - 2rem)); }
}

@media (max-width: 767.98px) {
    .mission-control-workspace { display: flex; flex-direction: column; }
    .mission-control-incidents { position: static; }
    .active-incidents-panel { height: auto; max-height: 480px; }
    .incident-filters { grid-template-columns: 1fr 1fr; }
    .incident-filters #incident-filter { grid-column: 1 / -1; }
}

.detail-list dt {
    color: #6c757d;
    font-weight: 500;
}

.tracking-timeline {
    border-left: 2px solid #dee2e6;
    display: grid;
    gap: 1rem;
    margin-left: .4rem;
    padding-left: 1.25rem;
}

.timeline-item {
    position: relative;
}

.timeline-item::before {
    background: #0d6efd;
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px #0d6efd;
    content: "";
    height: .65rem;
    left: -1.62rem;
    position: absolute;
    top: .25rem;
    width: .65rem;
}

.timeline-time {
    color: #6c757d;
    display: block;
    font-size: .8rem;
    margin-bottom: .15rem;
}

@media (max-width: 767.98px) {
    .incident-map {
        height: 340px;
    }
}

.panic-profile-backdrop { background: rgba(15, 23, 42, .38); inset: 0; position: fixed; z-index: 1040; }
.panic-profile-drawer {
    background: #f4f7fb; box-shadow: -12px 0 35px rgba(15, 23, 42, .2);
    display: flex; flex-direction: column; height: 100vh; max-height: 100vh;
    max-width: 620px; overflow: hidden; position: fixed; right: 0; top: 0;
    transform: translateX(105%); transition: transform .2s ease;
    width: min(620px, 100vw); z-index: 1050;
}
@supports (height: 100dvh) {
    .panic-profile-drawer { height: 100dvh; max-height: 100dvh; }
}
.panic-profile-drawer.is-open { transform: none; }
.panic-profile-header {
    background: #20252b; color: #fff; min-height: 150px; padding: 1.35rem 3.5rem 1.2rem 1.4rem;
    flex: 0 0 auto; position: sticky; top: 0; z-index: 5;
}
.panic-profile-close { position: absolute; right: 1.25rem; top: 1.25rem; }
.panic-profile-body,
.panic-profile-scroll-body {
    flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto;
    overscroll-behavior: contain; padding: 1rem 1rem calc(24px + env(safe-area-inset-bottom));
    -webkit-overflow-scrolling: touch;
}
.panic-profile-body .collapsible-section { box-shadow: 0 1px 5px rgba(15, 23, 42, .08); margin-bottom: .75rem !important; }
.panic-profile-avatar {
    align-items: center; background: #0d6efd; border: 3px solid rgba(255,255,255,.7); border-radius: 50%;
    display: flex; flex: 0 0 62px; font-size: 1.45rem; font-weight: 700; height: 62px;
    justify-content: center; object-fit: cover; overflow: hidden; width: 62px;
}
.panic-profile-grid { display: grid; gap: .65rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.panic-profile-field { background: #f8fafc; border-radius: .5rem; padding: .6rem .7rem; }
.panic-profile-field small { color: #667085; display: block; }
.panic-profile-card { border: 1px solid #e1e7ef; border-radius: .65rem; margin-bottom: .65rem; padding: .8rem; }
.panic-profile-warning { border-left: 4px solid var(--bs-warning); }
.incident-call-controls { background: rgba(255,255,255,.96); border: 1px solid rgba(13,110,253,.2); border-radius: .6rem; color: var(--bs-body-color); margin-top: .65rem; padding: .65rem; }
.incident-call-controls--sticky { position: sticky; top: .5rem; z-index: 20; box-shadow: 0 2px 8px rgba(15,23,42,.1); }
.panic-profile-header .incident-call-controls { background: rgba(255,255,255,.96); }
.panic-profile-trigger { cursor: pointer; }
.panic-profile-trigger:focus-visible { outline: 3px solid rgba(13,110,253,.35); outline-offset: 2px; }
body.panic-profile-open { overflow: hidden; }
@media (max-width: 767.98px) {
    .panic-profile-drawer { max-width: none; width: 100vw; }
    .panic-profile-body,
    .panic-profile-scroll-body { padding: .65rem .65rem calc(24px + env(safe-area-inset-bottom)); }
    .panic-profile-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .panic-profile-drawer { transition: none; } }
