:root {
    --ink: #0b1b20;
    --muted: #65747a;
    --line: #dfe7e9;
    --surface: #ffffff;
    --canvas: #f3f7f7;
    --nav: #09181d;
    --nav-soft: #12272d;
    --teal: #0d918d;
    --teal-dark: #08726f;
    --aqua: #dff4f2;
    --lime: #b7dd46;
    --amber: #f3a638;
    --red: #dd4b4b;
    --purple: #7163e8;
    --shadow: 0 14px 34px rgba(13, 42, 49, .08);
    --radius: 18px;
    --sidebar: 276px;
    --topbar: 82px;
}

/* Server-validated camera command preview. */
.configuration-preview-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0}
.configuration-preview-summary>div{padding:.85rem 1rem;border:1px solid var(--line,#e3e8ee);border-radius:14px;background:#f7f9fb}
.configuration-preview-summary small{display:block;color:#74808d;font-size:.68rem;font-weight:800;letter-spacing:.08em}
.configuration-preview-summary strong{display:block;margin-top:.2rem;font-size:1.45rem;color:#17222d}
.configuration-command-preview{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(0,1.3fr);gap:1rem;align-items:center;padding:.85rem 1rem;margin-bottom:.65rem;border:1px solid #dce6ea;border-radius:14px;background:#fff}
.configuration-command-preview>div{display:grid;gap:.25rem;justify-items:start}
.configuration-command-preview small{color:#6f7d88}
.configuration-command-preview code{display:block;max-width:100%;padding:.65rem .75rem;border-radius:10px;background:#11222c;color:#d7f7ee;overflow:auto;white-space:nowrap;font-size:.75rem}
@media(max-width:680px){.configuration-preview-summary{grid-template-columns:1fr}.configuration-command-preview{grid-template-columns:1fr}}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
.text-brand { color: var(--teal) !important; }
.eyebrow { display: inline-block; color: #8aa0a5; font-size: .7rem; font-weight: 800; letter-spacing: .14em; }

.brand-lockup { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; }
.brand-name { font-size: 1.22rem; font-weight: 860; letter-spacing: .09em; }
.brand-symbol { position: relative; display: inline-block; width: 29px; height: 29px; transform: rotate(45deg); }
.brand-symbol i { position: absolute; display: block; border-radius: 3px 9px 3px 9px; }
.brand-symbol i:nth-child(1) { width: 17px; height: 17px; left: 0; top: 0; background: var(--teal); }
.brand-symbol i:nth-child(2) { width: 13px; height: 13px; right: 0; top: 0; background: var(--lime); }
.brand-symbol i:nth-child(3) { width: 13px; height: 13px; left: 0; bottom: 0; background: #4fd0c8; }
.brand-lockup-light { color: white; }

/* Login */
.login-body { background: #fff; overflow: hidden; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(430px, 1.05fr) minmax(470px, .95fr); }
.login-brand-panel { position: relative; isolation: isolate; display: flex; flex-direction: column; min-height: 100vh; padding: 54px 7vw 48px; overflow: hidden; color: white; background: radial-gradient(circle at 15% 95%, rgba(183,221,70,.23), transparent 27%), linear-gradient(145deg, #06191d 0%, #092c31 55%, #0c5857 100%); }
.login-brand-panel::before { position: absolute; z-index: -1; inset: 0; content: ""; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to bottom, black, transparent 72%); }
.login-message { margin: auto 0; max-width: 660px; }
.login-message .eyebrow { color: var(--lime); margin-bottom: 24px; }
.login-message h1 { margin: 0 0 26px; font-size: clamp(3.2rem, 5.2vw, 6.4rem); font-weight: 720; line-height: .95; letter-spacing: -.06em; }
.login-message h1 em { color: #65d5cd; font-style: normal; }
.login-message p { max-width: 530px; color: #b9cbce; font-size: 1.15rem; line-height: 1.7; }
.login-proof { display: flex; flex-wrap: wrap; gap: 18px 32px; color: #c8d6d8; font-size: .83rem; font-weight: 650; }
.login-proof i { margin-right: 8px; color: var(--lime); }
.login-orbit { position: absolute; z-index: -1; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }
.orbit-one { width: 520px; height: 520px; right: -270px; top: 15%; }
.orbit-two { width: 300px; height: 300px; right: -130px; top: 31%; border-color: rgba(183,221,70,.18); }
.login-form-panel { display: grid; place-items: center; padding: 48px; background: #fbfdfd; }
.login-card { width: min(100%, 450px); }
.login-card h2 { margin: 10px 0 8px; font-size: 2.25rem; font-weight: 780; letter-spacing: -.04em; }
.login-card .form-control { min-height: 62px; border-color: #d8e2e3; border-radius: 12px; background: white; }
.login-card .form-control:focus { border-color: var(--teal); box-shadow: 0 0 0 4px rgba(13,145,141,.11); }
.btn-brand { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border: 0; border-radius: 12px; color: white; background: var(--teal); font-weight: 760; }
.btn-brand:hover, .btn-brand:focus { color: white; background: var(--teal-dark); transform: translateY(-1px); }
.password-toggle { position: absolute; z-index: 5; right: 13px; top: 18px; border: 0; color: var(--muted); background: transparent; }
.demo-access { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; border: 1px dashed #ccd9db; border-radius: 12px; color: var(--muted); font-size: .78rem; }
.demo-access button { border: 0; color: var(--teal); background: none; font-weight: 800; }
.login-legal { margin-top: 28px; color: #92a0a4; font-size: .73rem; text-align: center; }
.mobile-brand { display: none; }

/* Shell */
.app-body { overflow: hidden; background: var(--canvas); }
.app-shell { display: flex; min-height: 100vh; }
.sidebar { position: relative; z-index: 1040; flex: 0 0 var(--sidebar); display: flex; flex-direction: column; width: var(--sidebar); height: 100vh; color: #b9c8cb; background: var(--nav); transition: width .25s ease, transform .25s ease; }
/* Keep primary navigation above Bootstrap's 1050 backdrop but below its 1055
   modal. A user can always leave a long configuration preview. */
/* Bootstrap's .modal itself uses z-index 1055 and covers the whole viewport.
   Keep the navigation above that transparent layer so the first menu click
   can close the dialog and continue to the requested module. */
body.modal-open .sidebar { z-index: 1062; }
.sidebar-brand { display: flex; align-items: center; justify-content: space-between; min-height: var(--topbar); padding: 0 23px; border-bottom: 1px solid rgba(255,255,255,.07); }
.sidebar-brand .brand-lockup { color: white; }
.sidebar-brand .brand-symbol { width: 25px; height: 25px; transform: rotate(45deg) scale(.86); }
.sidebar-collapse { width: 36px; height: 36px; border: 0; border-radius: 9px; color: #789096; background: rgba(255,255,255,.04); }
.sidebar-collapse:hover { color: white; background: rgba(255,255,255,.09); }
.sidebar-nav { flex: 1; padding: 21px 13px; overflow-y: auto; scrollbar-width: thin; }
.sidebar-nav .nav-section { display: block; margin: 20px 14px 8px; color: #5f767c; font-size: .65rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.sidebar-nav .nav-section:first-child { margin-top: 0; }
.sidebar-nav a { position: relative; display: flex; align-items: center; gap: 13px; min-height: 43px; padding: 8px 12px; border-radius: 10px; color: #a9bbbe; font-size: .86rem; font-weight: 620; text-decoration: none; transition: .16s ease; }
.sidebar-nav a i { width: 23px; color: #789399; font-size: 1.05rem; text-align: center; }
.sidebar-nav a:hover { color: white; background: rgba(255,255,255,.045); }
.sidebar-nav a.active { color: white; background: linear-gradient(90deg, rgba(13,145,141,.26), rgba(13,145,141,.08)); }
.sidebar-nav a.active::before { position: absolute; left: -13px; width: 3px; height: 24px; border-radius: 0 4px 4px 0; content: ""; background: #4fd0c8; }
.sidebar-nav a.active i { color: #62d7cf; }
.sidebar-nav a b { margin-left: auto; min-width: 21px; padding: 2px 6px; border-radius: 20px; color: #ffb9b9; background: rgba(221,75,75,.15); font-size: .65rem; text-align: center; }
.sidebar-system { display: flex; align-items: center; gap: 11px; margin: 12px; padding: 14px; border: 1px solid rgba(255,255,255,.07); border-radius: 12px; background: rgba(255,255,255,.025); }
.sidebar-system strong, .sidebar-system small { display: block; }
.sidebar-system strong { color: #c7d3d5; font-size: .73rem; }
.sidebar-system small { margin-top: 2px; color: #6f888e; font-size: .65rem; }
.system-pulse { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(183,221,70,.1); }
.system-pulse span { width: 8px; height: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 5px rgba(183,221,70,.12); animation: pulse 1.8s infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 9px rgba(183,221,70,0); } }

.main-column { flex: 1; min-width: 0; height: 100vh; overflow: hidden; }
.topbar { display: flex; align-items: center; justify-content: space-between; height: var(--topbar); padding: 0 28px 0 32px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.93); backdrop-filter: blur(16px); }
.page-identity span { display: block; color: #8a9a9e; font-size: .63rem; font-weight: 800; letter-spacing: .15em; }
.page-identity h1 { margin: 2px 0 0; font-size: 1.34rem; font-weight: 790; letter-spacing: -.025em; }
.topbar-tools { display: flex; align-items: center; gap: 9px; }
.global-search { display: flex; align-items: center; gap: 10px; width: 340px; height: 44px; padding: 0 13px; border: 1px solid var(--line); border-radius: 11px; color: #8a9a9e; background: #f7fafa; }
.global-search input { flex: 1; min-width: 0; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: .82rem; }
.global-search kbd { padding: 3px 6px; border: 1px solid #dae4e5; border-radius: 5px; color: #8a999c; background: white; box-shadow: none; font-size: .62rem; }
.icon-button, .language-button, .user-button, .mobile-menu { display: grid; place-items: center; height: 42px; border: 1px solid var(--line); border-radius: 10px; color: #52666b; background: white; }
.icon-button { position: relative; width: 42px; }
.icon-button:hover, .language-button:hover { color: var(--teal); border-color: #abd9d6; background: #f4fbfa; }
.notification-button span { position: absolute; right: 8px; top: 8px; width: 6px; height: 6px; border: 1px solid white; border-radius: 50%; background: var(--red); }
.language-button { width: 42px; font-size: .7rem; font-weight: 850; }
.user-button { display: flex; gap: 8px; padding: 0 8px; border: 0; background: transparent; }
.user-button span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; color: white; background: linear-gradient(135deg, var(--teal), #0a626a); font-size: .78rem; font-weight: 800; }
.user-button i { color: #8b9a9e; font-size: .68rem; }
.mobile-menu { display: none; width: 42px; }
.view-container { height: calc(100vh - var(--topbar)); padding: 26px 30px 60px; overflow: auto; scroll-behavior: smooth; }
.view-loading { display: grid; place-items: center; min-height: 55vh; color: var(--muted); }
.loader-mark { display: flex; gap: 5px; align-items: end; height: 36px; }
.loader-mark i { display: block; width: 9px; border-radius: 4px; background: var(--teal); animation: loader 1s infinite ease-in-out; }
.loader-mark i:nth-child(1) { height: 20px; }.loader-mark i:nth-child(2) { height: 34px; animation-delay: .12s; background: var(--lime); }.loader-mark i:nth-child(3) { height: 26px; animation-delay: .24s; background: #4fd0c8; }
@keyframes loader { 50% { transform: translateY(-7px); } }
.view-loading p { margin-top: 15px; font-size: .8rem; }

/* Reusable UI */
.view-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.view-head h2 { margin: 0 0 5px; font-size: 1.55rem; font-weight: 790; letter-spacing: -.035em; }
.view-head p { margin: 0; color: var(--muted); font-size: .84rem; }
.head-actions { display: flex; gap: 9px; }
.btn-soft, .btn-accent, .filter-chip { border: 1px solid var(--line); border-radius: 10px; background: white; font-size: .78rem; font-weight: 720; }
.btn-soft, .btn-accent { padding: 10px 15px; }
.btn-soft:hover { border-color: #b4cecf; background: #f8fbfb; }
.btn-accent { border-color: var(--teal); color: white; background: var(--teal); }
.btn-accent:hover { color: white; background: var(--teal-dark); }
.metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin-bottom: 18px; }
.metric-card { position: relative; min-height: 132px; padding: 20px; border: 1px solid rgba(213,225,227,.9); border-radius: var(--radius); overflow: hidden; background: var(--surface); box-shadow: 0 8px 22px rgba(13,42,49,.04); }
.metric-card::after { position: absolute; right: -18px; bottom: -30px; width: 90px; height: 90px; border-radius: 50%; content: ""; background: var(--metric-soft, #eef6f5); }
.metric-label { color: var(--muted); font-size: .72rem; font-weight: 700; }
.metric-value { display: flex; align-items: baseline; gap: 7px; margin-top: 12px; font-size: 2rem; font-weight: 820; letter-spacing: -.055em; }
.metric-value small { color: var(--muted); font-size: .66rem; font-weight: 650; letter-spacing: 0; }
.metric-icon { position: absolute; z-index: 1; right: 18px; top: 18px; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: var(--metric-color, var(--teal)); background: var(--metric-soft, var(--aqua)); }
.metric-trend { margin-top: 9px; color: #7d8e92; font-size: .65rem; }
.metric-trend strong { color: var(--metric-color, var(--teal)); }
.content-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .55fr); gap: 18px; }
.panel { border: 1px solid rgba(213,225,227,.9); border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.panel-head { display: flex; align-items: center; justify-content: space-between; min-height: 66px; padding: 0 20px; border-bottom: 1px solid #e7eeee; }
.panel-head h3 { margin: 0; font-size: .95rem; font-weight: 780; }
.panel-head p { margin: 3px 0 0; color: var(--muted); font-size: .68rem; }
.panel-body { padding: 20px; }
.map-panel { overflow: hidden; }
.map-panel .panel-body { padding: 0; }
#fleetMap, #liveMap, #eventMap, #tripMap { height: 430px; background: #dfe9e9; }
.leaflet-control-attribution { font-size: 9px !important; }
.asset-marker { display: grid; place-items: center; width: 36px !important; height: 36px !important; margin: -18px 0 0 -18px !important; border: 3px solid white; border-radius: 12px 12px 12px 3px; color: white; background: var(--teal); box-shadow: 0 8px 18px rgba(8,50,54,.25); transform: rotate(-45deg); }
.asset-marker i { transform: rotate(45deg); font-size: 14px; }
.asset-marker.offline { background: #829196; }.asset-marker.alert { background: var(--red); }
.leaflet-popup-content-wrapper { border-radius: 12px; box-shadow: 0 12px 28px rgba(9,31,36,.18); }
.leaflet-popup-content { margin: 14px; font-family: inherit; }
.map-popup strong { display: block; font-size: .85rem; }.map-popup small { display: block; margin-top: 4px; color: var(--muted); }
.map-popup button { margin-top: 10px; padding: 6px 9px; border: 0; border-radius: 7px; color: white; background: var(--teal); font-size: .68rem; font-weight: 700; }
.asset-list { max-height: 430px; overflow: auto; }
.asset-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 13px 3px; border-bottom: 1px solid #edf1f2; cursor: pointer; }
.asset-row:last-child { border-bottom: 0; }
.asset-row:hover { padding-left: 8px; border-radius: 9px; background: #f5f9f9; }
.asset-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; color: var(--teal); background: var(--aqua); }
.asset-row.offline .asset-avatar { color: #829196; background: #edf1f2; }
.asset-row strong, .asset-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asset-row strong { font-size: .78rem; }.asset-row small { margin-top: 3px; color: var(--muted); font-size: .65rem; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--lime); }.status-dot.offline { background: #a8b3b5; }
.event-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 18px; }
.event-mini { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.event-mini .event-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; color: var(--red); background: #ffeded; }
.event-mini strong, .event-mini small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.event-mini strong { font-size: .72rem; }.event-mini small { margin-top: 4px; color: var(--muted); font-size: .62rem; }
.filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-bottom: 16px; padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.filter-bar .form-control, .filter-bar .form-select { min-height: 39px; border-color: var(--line); font-size: .75rem; }
.filter-chip { padding: 8px 12px; color: var(--muted); }.filter-chip.active { color: var(--teal-dark); border-color: #9fd4d1; background: var(--aqua); }
.event-grid, .media-grid { display: grid; grid-template-columns: repeat(3, minmax(230px, 1fr)); gap: 16px; }
.event-card, .media-card { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: 0 8px 20px rgba(13,42,49,.045); }
.event-visual, .media-visual { position: relative; display: grid; place-items: center; height: 185px; overflow: hidden; color: #b7c4c7; background: linear-gradient(135deg, #17282d, #0b171b); }
.event-visual img, .media-visual img { width: 100%; height: 100%; object-fit: cover; }
.event-visual::after, .media-visual::after { position: absolute; inset: 0; content: ""; background: linear-gradient(to top, rgba(0,0,0,.48), transparent 54%); pointer-events: none; }
.event-visual > i, .media-visual > i { font-size: 2rem; opacity: .5; }
.play-button { position: absolute; z-index: 1; display: grid; place-items: center; width: 45px; height: 45px; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; color: white; background: rgba(0,0,0,.28); backdrop-filter: blur(5px); }
.event-tag { position: absolute; z-index: 1; left: 12px; top: 12px; padding: 5px 8px; border-radius: 7px; color: white; background: rgba(221,75,75,.86); font-size: .6rem; font-weight: 800; text-transform: uppercase; }
.channel-tag { position: absolute; z-index: 1; right: 12px; top: 12px; padding: 5px 8px; border-radius: 7px; color: white; background: rgba(8,24,29,.75); font-size: .6rem; font-weight: 700; }
.event-info, .media-info { padding: 15px; }
.event-info h3, .media-info h3 { margin: 0 0 5px; font-size: .84rem; font-weight: 780; }
.event-meta { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: .65rem; }
.event-actions { display: flex; gap: 7px; margin-top: 13px; }
.event-actions button { flex: 1; padding: 7px; border: 1px solid var(--line); border-radius: 8px; color: #566a6f; background: #fafcfc; font-size: .64rem; font-weight: 730; }
.event-actions button:hover { color: var(--teal); border-color: #a8d7d4; }
.empty-state { display: grid; place-items: center; min-height: 300px; padding: 40px; color: var(--muted); text-align: center; }
.empty-state i { display: grid; place-items: center; width: 70px; height: 70px; margin-bottom: 16px; border-radius: 22px; color: var(--teal); background: var(--aqua); font-size: 1.7rem; }
.empty-state h3 { color: var(--ink); font-size: 1rem; }.empty-state p { max-width: 400px; font-size: .78rem; }

/* Evidence studio: minute-by-minute photo route and contextual video requests */
.camera-hero { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 16px; padding: 25px 28px; overflow: hidden; border-radius: 18px; color: white; background: radial-gradient(circle at 82% 20%,rgba(183,221,70,.22),transparent 23%),linear-gradient(125deg,#07191e,#0d4f50); box-shadow: 0 14px 34px rgba(7,39,44,.13); }.camera-hero::after { position: absolute; right: -45px; top: -85px; width: 250px; height: 250px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; content: ""; }.camera-hero h2 { max-width: 680px; margin: 8px 0 5px; font-size: clamp(1.25rem,2vw,2rem); }.camera-hero p { max-width: 720px; margin: 0; color: #a9c4c6; font-size: .76rem; }.camera-hero-actions { position: relative; z-index: 1; display: flex; gap: 8px; }.camera-hero-actions span { padding: 8px 11px; border: 1px solid rgba(255,255,255,.15); border-radius: 9px; background: rgba(255,255,255,.07); font-size: .64rem; font-weight: 750; white-space: nowrap; }.camera-hero-actions i { margin-right: 6px; color: var(--lime); }
.media-filter .form-select:first-child { max-width: 320px; }.media-filter .form-control { max-width: 190px; }.media-filter .form-select:nth-of-type(2) { max-width: 180px; }
.evidence-studio { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #071419; box-shadow: 0 16px 42px rgba(7,28,34,.13); }
.evidence-stats { display: grid; grid-template-columns: repeat(4,1fr); border-bottom: 1px solid #21363c; background: #0c2026; }
.evidence-stats > div { display: flex; align-items: center; gap: 11px; padding: 14px 18px; border-right: 1px solid #21363c; color: #e9f3f4; }.evidence-stats > div:last-child { border-right: 0; }.evidence-stats i { color: var(--lime); font-size: 1rem; }.evidence-stats strong,.evidence-stats small { display: block; }.evidence-stats strong { font-size: .78rem; }.evidence-stats small { margin-top: 2px; color: #789197; font-size: .52rem; font-weight: 800; letter-spacing: .06em; }
.evidence-main { display: grid; grid-template-columns: 260px minmax(0,1fr); min-height: 530px; }.evidence-context { padding: 25px 21px; color: white; background: linear-gradient(155deg,#102930,#091a1f); }.evidence-context h3 { margin: 15px 0 5px; font-size: 1rem; }.evidence-context > time { color: #8ba2a7; font-size: .72rem; }.context-note { display: block; margin-top: 10px; color: #789096; font-size: .6rem; line-height: 1.5; text-align: center; }
.moment-data { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 22px 0; }.moment-data div { min-width: 0; padding: 11px; border: 1px solid #294148; border-radius: 10px; background: rgba(255,255,255,.035); }.moment-data small,.moment-data strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.moment-data small { color: #718a90; font-size: .5rem; font-weight: 800; }.moment-data strong { margin-top: 5px; color: #dfeaec; font-size: .66rem; }
.evidence-view { display: grid; grid-template-rows: minmax(0,1fr) auto; min-width: 0; }.evidence-viewer { position: relative; display: grid; place-items: center; min-height: 470px; overflow: hidden; background: radial-gradient(circle at 50% 42%,#19333a,#050c0f 72%); }.evidence-viewer > img,.evidence-viewer > video { width: 100%; height: 100%; max-height: 560px; object-fit: contain; }.viewer-channel { position: absolute; left: 16px; top: 16px; padding: 6px 9px; border-radius: 7px; color: white; background: rgba(3,15,19,.72); font-size: .6rem; font-weight: 800; backdrop-filter: blur(5px); }.viewer-video { position: absolute; right: 16px; bottom: 16px; padding: 9px 13px; border: 1px solid rgba(255,255,255,.35); border-radius: 9px; color: white; background: rgba(3,15,19,.74); font-size: .66rem; font-weight: 800; backdrop-filter: blur(5px); }.viewer-video i { margin-right: 5px; }
.evidence-nav { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px; border-top: 1px solid #22373d; background: #0b1e23; }.evidence-nav button,.evidence-nav select { min-height: 36px; border: 1px solid #2b454c; border-radius: 9px; color: #b5c7ca; background: #132c32; font-size: .66rem; font-weight: 750; }.evidence-nav button { padding: 7px 12px; }.evidence-nav button.primary { min-width: 145px; color: #061519; border-color: var(--lime); background: var(--lime); }.evidence-nav select { padding: 0 9px; }.evidence-nav > span { min-width: 62px; color: #83999e; font-size: .63rem; text-align: center; }
.evidence-timeline { padding: 14px 16px 16px; border-top: 1px solid #21363c; background: #0a1b20; }.timeline-range { display: grid; grid-template-columns: 38px 1fr 38px; gap: 10px; align-items: center; margin-bottom: 12px; color: #6f898f; font-size: .56rem; }.timeline-range input { width: 100%; accent-color: var(--lime); }.timeline-range span:last-child { text-align: right; }
.evidence-thumbs { display: flex; gap: 7px; overflow-x: auto; padding: 3px 2px 8px; scrollbar-color: #36525a transparent; }.evidence-thumbs button { position: relative; flex: 0 0 72px; height: 54px; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: 8px; color: #8fa4a9; background: #122a30; }.evidence-thumbs button.active { border-color: var(--lime); box-shadow: 0 0 0 3px rgba(183,221,70,.11); }.evidence-thumbs img { width: 100%; height: 100%; object-fit: cover; }.evidence-thumbs button > i { display: grid; place-items: center; height: 100%; }.evidence-thumbs span { position: absolute; right: 3px; bottom: 3px; padding: 2px 4px; border-radius: 4px; color: white; background: rgba(0,0,0,.68); font-size: .47rem; }
.mosaic-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }.mosaic-card { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow); }.mosaic-media { position: relative; display: grid; place-items: center; height: 230px; background: #07191d; }.mosaic-media img { width: 100%; height: 100%; object-fit: cover; }.mosaic-media > i { color: #9fb2b6; font-size: 2.5rem; }.mosaic-media > span { position: absolute; top: .75rem; right: .75rem; padding: .3rem .55rem; border-radius: 999px; color: #fff; background: #0b262b; font-size: .68rem; font-weight: 800; }.mosaic-info { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; }.mosaic-info strong, .mosaic-info small { display: block; }.mosaic-info small { margin-top: .2rem; color: #6c8185; }
.dashboard-switch { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; color: #64777b; font-size: .7rem; }.dashboard-switch strong { color: var(--ink); }.dashboard-switch .dashboard-period { margin-left: auto; padding: 8px 12px; border: 1px solid var(--line); border-radius: 9px; color: #5e7378; background: white; }.switch-control { display: grid; place-items: center; width: 42px; height: 23px; padding: 0; border: 0; border-radius: 20px; background: #dfe9e8; }.switch-control i { display: block; width: 17px; height: 17px; margin-left: -14px; border-radius: 50%; background: white; box-shadow: 0 2px 4px rgba(0,0,0,.18); }.switch-control.active { background: #b7dd46; }.switch-control.active i { margin-left: 14px; background: #07191d; }.dashboard-top-grid { grid-template-columns: minmax(0,1.3fr) minmax(320px,.7fr); }.dashboard-attention .panel-body { padding-top: 5px; }.attention-row,.live-event-row { display: grid; grid-template-columns: 33px 1fr 28px; gap: 10px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }.attention-row:last-child,.live-event-row:last-child { border-bottom: 0; }.attention-row strong,.attention-row small,.live-event-row strong,.live-event-row small { display: block; }.attention-row strong,.live-event-row strong { font-size: .72rem; }.attention-row small,.live-event-row small { margin-top: 3px; color: var(--muted); font-size: .6rem; }.attention-row button,.live-event-row button { width: 28px; height: 28px; border: 0; border-radius: 8px; color: var(--teal); background: var(--aqua); }.dashboard-columns { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr); gap: 16px; margin-top: 16px; }.dashboard-chart-wrap { position: relative; height: 125px; padding: 12px 0 0; color: var(--teal); background: linear-gradient(to bottom,rgba(13,145,141,.03),transparent); }.trend-chart { width: 100%; height: 100%; overflow: visible; }.dashboard-chart-label { position: absolute; z-index: 1; left: 12px; top: 11px; }.dashboard-chart-label strong,.dashboard-chart-label small { display: block; }.dashboard-chart-label strong { color: var(--ink); font-size: 1.3rem; }.dashboard-chart-label small { margin-top: 2px; color: var(--muted); font-size: .58rem; }.rank-list { display: grid; gap: 9px; margin-top: 8px; }.rank-list > div { position: relative; display: grid; grid-template-columns: 20px 1fr auto; gap: 8px; align-items: center; padding: 6px 0; }.rank-list > div > span { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 6px; color: var(--teal); background: var(--aqua); font-size: .55rem; font-weight: 800; }.rank-list strong { font-size: .66rem; }.rank-list small { color: var(--muted); font-size: .58rem; }.rank-list i { position: absolute; right: 0; bottom: 0; height: 3px; border-radius: 5px; background: var(--teal); }.dashboard-driver-list { display: grid; gap: 4px; }.dashboard-driver-row { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); }.dashboard-driver-row:last-child { border-bottom: 0; }.dashboard-driver-row .driver-avatar { flex: 0 0 auto; }.dashboard-driver-row > div { min-width: 0; flex: 1; }.dashboard-driver-row strong,.dashboard-driver-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.dashboard-driver-row strong { font-size: .7rem; }.dashboard-driver-row small { margin-top: 3px; color: var(--muted); font-size: .6rem; }.driver-avatar.small { width: 32px; height: 32px; border-radius: 10px; font-size: .62rem; }.training-panel,.diagnostics-panel { margin-top: 16px; }.training-strip { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; padding: 0 18px 18px; }.training-card { min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 12px; background: #fbfdfd; }.training-thumb { display: grid; place-items: center; height: 80px; overflow: hidden; border-radius: 8px; color: #789095; background: #0c2026; }.training-thumb img { width: 100%; height: 100%; object-fit: cover; }.training-card strong,.training-card small { display: block; }.training-card strong { margin-top: 9px; overflow: hidden; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }.training-card small { margin-top: 4px; color: var(--muted); font-size: .56rem; }.training-card button { margin-top: 9px; padding: 0; border: 0; color: var(--teal); background: none; font-size: .58rem; font-weight: 800; }.diagnostics-panel .panel-head { margin-bottom: 0; }.diagnostic-grid { display: grid; grid-template-columns: 150px 1fr 1fr; gap: 25px; align-items: center; padding: 18px; }.diagnostic-donut { display: grid; place-items: center; width: 125px; height: 125px; border-radius: 50%; background: conic-gradient(var(--teal) calc(var(--health)*1%),#e8efee 0); }.diagnostic-donut strong,.diagnostic-donut small { display: block; text-align: center; }.diagnostic-donut strong { display: grid; place-items: center; width: 93px; height: 93px; border-radius: 50%; background: white; font-size: 1rem; }.diagnostic-donut small { margin-top: -30px; color: var(--muted); font-size: .52rem; }.diagnostic-bars { display: grid; gap: 13px; }.diagnostic-bars > div { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 6px; font-size: .64rem; }.diagnostic-bars span { color: var(--muted); }.diagnostic-bars strong { font-size: .65rem; }.diagnostic-bars i { grid-column: 1 / -1; display: block; height: 6px; border-radius: 10px; background: linear-gradient(90deg,var(--teal),#8bcac4); }.diagnostic-list { display: grid; gap: 8px; }.diagnostic-list > div { display: grid; grid-template-columns: 8px 1fr; gap: 8px; align-items: center; }.diagnostic-list small { grid-column: 2; color: var(--muted); font-size: .56rem; }.diagnostic-list strong { font-size: .64rem; }.event-metrics,.trip-metrics,.request-metrics,.coaching-metrics { margin-bottom: 16px; }.event-evidence-modal,.request-detail,.trip-detail { display: grid; gap: 16px; }.event-evidence-media { display: grid; place-items: center; min-height: 260px; overflow: hidden; border-radius: 12px; color: #71878b; background: #061216; }.event-evidence-media img,.event-evidence-media video { width: 100%; max-height: 430px; object-fit: contain; }.event-evidence-media > i { font-size: 2.5rem; }.event-evidence-meta,.trip-detail-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }.event-evidence-meta > div,.trip-detail-stats > div { padding: 10px; border: 1px solid var(--line); border-radius: 9px; }.event-evidence-meta small,.event-evidence-meta strong,.trip-detail-stats small,.trip-detail-stats strong { display: block; }.event-evidence-meta small,.trip-detail-stats small { color: var(--muted); font-size: .52rem; font-weight: 800; }.event-evidence-meta strong,.trip-detail-stats strong { margin-top: 4px; font-size: .68rem; }.event-evidence-actions { display: flex; flex-wrap: wrap; gap: 8px; }.live-context-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(280px,.9fr); gap: 12px; margin-top: 14px; }.live-map-card,.live-events-card { overflow: hidden; }.live-map-card .panel-body { padding: 0; }.live-map-card #liveMap { height: 280px; }.live-events-card .panel-body { padding-top: 4px; }.trip-filter { display: flex; align-items: center; gap: 10px; padding: 14px 16px; margin-bottom: 16px; }.trip-filter > div { display: grid; gap: 3px; margin-right: auto; }.trip-filter strong { font-size: .75rem; }.trip-filter input { max-width: 160px; }.trip-filter select { max-width: 230px; }.trips-layout { grid-template-columns: minmax(0,1.45fr) minmax(330px,.8fr); }.route-dots { display: inline-flex; align-items: center; gap: 5px; color: #617a7e; font-size: .62rem; }.route-dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--teal); }.route-dots i:last-of-type { background: var(--red); }.trip-detail-hero,.request-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }.trip-detail-hero h3,.request-detail-head h3 { margin: 5px 0 2px; font-size: 1rem; }.trip-detail-hero p,.request-detail-head p { margin: 0; color: var(--muted); font-size: .7rem; }.trip-timeline,.request-steps { display: grid; gap: 8px; }.trip-timeline > div,.request-steps > div { display: grid; grid-template-columns: 31px 1fr auto; gap: 9px; align-items: center; padding: 9px; border: 1px solid var(--line); border-radius: 9px; }.trip-timeline strong,.trip-timeline small,.request-steps strong,.request-steps small { display: block; }.trip-timeline strong,.request-steps strong { font-size: .68rem; }.trip-timeline small,.request-steps small { margin-top: 3px; color: var(--muted); font-size: .58rem; }.request-flow { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 16px; padding: 12px 15px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: white; font-size: .6rem; font-weight: 750; }.request-flow span { display: flex; align-items: center; gap: 5px; white-space: nowrap; }.request-flow .done { color: var(--teal); }.request-progress { display: flex; align-items: center; gap: 8px; }.request-progress small { color: var(--muted); font-size: .58rem; }.request-progress-large { display: grid; gap: 7px; }.request-progress-large > div:first-child { display: flex; align-items: baseline; gap: 7px; }.request-progress-large strong { font-size: 1.2rem; }.request-progress-large span { color: var(--muted); font-size: .65rem; }.request-progress-large .progress { height: 8px; }.request-steps .done { color: var(--teal); border-color: #b9dfdb; background: #f4fbfa; }.request-steps .done span { color: var(--ink); }.request-media-preview { overflow: hidden; border-radius: 10px; background: #061216; }.request-media-preview video { width: 100%; max-height: 330px; }.coaching-config { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; padding: 14px 16px; border: 1px solid #b9dfdb; border-radius: 12px; color: #1f5f5c; background: #f0fbf9; }.coaching-config > div { display: flex; align-items: flex-start; gap: 10px; }.coaching-config i { margin-top: 2px; }.coaching-config strong,.coaching-config small { display: block; }.coaching-config strong { font-size: .73rem; }.coaching-config small { margin-top: 3px; color: #5d8182; font-size: .62rem; }.coaching-board { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }.coaching-list,.coaching-plan,.coaching-results { display: grid; gap: 4px; }.coaching-driver,.plan-row,.coaching-results > div { display: grid; grid-template-columns: 32px 1fr 28px; gap: 9px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--line); }.coaching-driver:last-child,.plan-row:last-child,.coaching-results > div:last-child { border-bottom: 0; }.coaching-driver strong,.coaching-driver small,.plan-row strong,.plan-row small,.coaching-results strong,.coaching-results small { display: block; }.coaching-driver strong,.plan-row strong,.coaching-results strong { font-size: .67rem; }.coaching-driver small,.plan-row small,.coaching-results small { margin-top: 3px; color: var(--muted); font-size: .56rem; }.coaching-driver button,.coaching-results button { width: 27px; height: 27px; border: 0; border-radius: 7px; color: var(--teal); background: var(--aqua); }.risk-bar { height: 4px; margin-top: 6px; border-radius: 4px; background: #edf1f1; }.risk-bar i { display: block; height: 100%; border-radius: inherit; background: var(--red); }.plan-row button { padding: 0; border: 0; color: var(--teal); background: none; font-size: .57rem; font-weight: 800; }.score-pill { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--teal); background: var(--aqua); font-size: .6rem; font-weight: 800; }.score-pill.review { color: var(--red); background: #ffeded; }.score-pill.monitor { color: #9a711f; background: #fff2dc; }.coaching-guide { display: grid; gap: 10px; }.coaching-guide > div { display: grid; grid-template-columns: 32px 1fr; gap: 9px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; }.coaching-guide span { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 8px; color: var(--teal); background: var(--aqua); font-size: .6rem; font-weight: 800; }.coaching-guide strong,.coaching-guide p { grid-column: 2; }.coaching-guide strong { font-size: .72rem; }.coaching-guide p { margin: -4px 0 0; color: var(--muted); font-size: .64rem; line-height: 1.45; }
.daily-intelligence { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(330px,.75fr); gap: 16px; margin-top: 16px; }.daily-map-card .panel-body { padding: 0; }.daily-map-card #mediaRouteMap { height: 430px; }.habit-card .panel-body { padding-top: 13px; }.habit-score { display: flex; align-items: center; gap: 14px; padding: 13px; border-radius: 13px; background: #f4f9f8; }.habit-score > span { display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%; background: conic-gradient(var(--teal) calc(var(--score)*1%),#dfe9e8 0); }.habit-score > span b { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: white; font-size: .9rem; }.habit-score strong,.habit-score small { display: block; }.habit-score strong { font-size: .82rem; }.habit-score small { margin-top: 4px; color: var(--muted); font-size: .62rem; }.habit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0; }.habit-grid div { padding: 10px; border: 1px solid var(--line); border-radius: 10px; }.habit-grid small,.habit-grid strong { display: block; }.habit-grid small { color: var(--muted); font-size: .5rem; font-weight: 800; }.habit-grid strong { margin-top: 4px; font-size: .74rem; }.habit-signals { display: grid; gap: 7px; }.habit-signals > div { display: grid; grid-template-columns: 32px 1fr; gap: 9px; align-items: center; padding: 9px; border-radius: 10px; background: #f6f8f8; }.habit-signals > div > i { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 9px; }.habit-signals .good > i { color: #21846b; background: #e3f6ef; }.habit-signals .warning > i { color: #a66e18; background: #fff2dc; }.habit-signals .neutral > i { color: #647a80; background: #eaf0f1; }.habit-signals strong,.habit-signals small { display: block; }.habit-signals strong { font-size: .68rem; }.habit-signals small { margin-top: 2px; color: var(--muted); font-size: .58rem; line-height: 1.35; }

.live-layout { display: grid; grid-template-columns: 300px minmax(0,1fr); gap: 16px; }
.live-assets { height: calc(100vh - 180px); overflow: hidden; }.live-assets .panel-body { height: calc(100% - 66px); overflow: auto; }
.live-stage { min-height: 620px; padding: 16px; border-radius: var(--radius); background: #071317; box-shadow: var(--shadow); }
.live-stage-head { display: flex; align-items: center; justify-content: space-between; padding: 5px 4px 16px; color: white; }
.live-stage-head h3 { margin: 0; font-size: .95rem; }.live-stage-head small { color: #789095; }
.live-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.live-channel-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:10px 0; padding:10px 12px; border:1px solid #1c353b; border-radius:12px; background:#0d2328; color:#aac0c4; }
.live-channel-bar > div { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.live-channel { display:flex; align-items:center; gap:7px; padding:8px 11px; border:1px solid #29464d; border-radius:9px; color:#aac0c4; background:#122d33; font-size:.72rem; }
.live-channel span { font-weight:700; }.live-channel small { opacity:.7; font-size:.58rem; }.live-channel.active { color:#07191c; border-color:var(--lime); background:var(--lime); }.live-channel.active small { opacity:.8; }
.live-player-large { position:relative; min-height:560px; overflow:hidden; border:1px solid #1c353b; border-radius:13px; background:#09181d; }
.live-player-large.streaming { background:#050b0d; }.live-player-large iframe { width:100%; height:100%; min-height:560px; border:0; background:#050b0d; }
.live-placeholder { min-height:560px; display:grid; place-items:center; align-content:center; gap:6px; padding:24px; text-align:center; color:#789095; background:radial-gradient(circle at center,#142a30 0,#09181d 68%); }
.live-placeholder i { font-size:4rem; color:var(--teal); }.live-placeholder h3 { margin:4px 0 0; color:#c4d7da; }.live-placeholder p { max-width:520px; margin:0; }
.live-player-meta { position:absolute; z-index:2; top:12px; left:14px; right:14px; display:flex; justify-content:space-between; pointer-events:none; }.live-player-meta span,.live-player-meta b { padding:5px 8px; border-radius:6px; color:#d8e6e8; background:rgba(3,13,16,.76); font-size:.68rem; }.live-player-meta b { color:var(--lime); }
.live-unit-strip { display:grid; grid-template-columns:2fr 1.5fr 1fr 1fr; gap:10px; align-items:center; margin:10px 0 14px; padding:11px 13px; border:1px solid #dce8e9; border-radius:12px; background:#fff; }.live-unit-strip > div { min-width:0; }.live-unit-strip > div:first-child { display:flex; align-items:center; gap:9px; }.live-unit-strip small { display:block; color:#789095; font-size:.59rem; letter-spacing:.04em; }.live-unit-strip strong { display:block; color:#29434a; font-size:.76rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.media-overview { margin:0 0 18px; padding:16px; border:1px solid #dce8e9; border-radius:16px; background:linear-gradient(135deg,#f7fbfb,#fff); }.media-overview-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:13px; }.media-overview-head h3 { margin:3px 0 2px; font-size:1rem; }.media-overview-head p { margin:0; color:#789095; font-size:.72rem; }.media-overview-loading { color:#60777b; font-size:.75rem; padding:8px; }.media-availability-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.media-availability-card { overflow:hidden; border:1px solid #dce8e9; border-radius:12px; background:#fff; }.media-availability-image { position:relative; height:125px; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle,#17363d,#09181d); }.media-availability-image img { width:100%; height:100%; object-fit:cover; }.media-availability-image > i { color:#6e888d; font-size:2.2rem; }.availability-badge { position:absolute; top:9px; left:9px; display:inline-flex; align-items:center; gap:4px; padding:4px 7px; border-radius:20px; color:#fff; background:rgba(7,25,28,.76); font-size:.6rem; font-weight:800; }.availability-badge.ok { color:#dff5b2; }.availability-badge.muted { color:#c4d0d2; }.media-availability-info { display:grid; grid-template-columns:1fr auto; gap:5px 8px; padding:11px; }.media-availability-info strong,.media-availability-info small { display:block; }.media-availability-info strong { color:#29434a; font-size:.78rem; }.media-availability-info small { color:#789095; font-size:.63rem; }.availability-count { align-self:start; color:#0d918d; font-size:.62rem; font-weight:800; text-align:right; }.media-availability-info button { grid-column:1/-1; justify-self:start; margin-top:3px; padding:5px 8px; font-size:.63rem; }
.recommendation-empty { display:grid; place-items:center; padding:25px 14px; border:1px dashed #c9dfe0; border-radius:12px; color:#789095; text-align:center; }.recommendation-empty > i { margin-bottom:6px; color:#0d918d; font-size:2rem; }.recommendation-empty strong { color:#36555b; font-size:.82rem; }.recommendation-empty p { max-width:300px; margin:5px 0 12px; font-size:.7rem; }
.dashboard-media-overview { margin:16px 0; }
.report-tabs { display:flex; gap:7px; margin:18px 0; padding-bottom:8px; border-bottom:1px solid #203a40; overflow:auto; }.report-tabs button { flex:0 0 auto; border:0; border-bottom:2px solid transparent; padding:10px 14px; background:transparent; color:#7f989c; font-size:.68rem; font-weight:800; letter-spacing:.05em; }.report-tabs button.active { color:var(--teal); border-color:var(--teal); }
.command-filters .form-control,.command-filters .form-select { max-width:240px; }.gateway-pill { display:inline-flex; padding:4px 7px; border-radius:6px; font-size:.62rem; font-weight:800; }.gateway-pill.sms { color:#0b6d68; background:#dff4f2; }.gateway-pill.gprs { color:#76531a; background:#fff2dc; }.command-response { max-width:260px; }.command-response code { display:block; max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#7f989c; }
.link-action { padding:0; border:0; background:transparent; color:var(--teal); font-size:.68rem; }.assignment-preview { display:flex; align-items:center; gap:10px; padding:11px; border:1px solid #dfeaec; border-radius:10px; }.assignment-preview small { display:block; color:#789095; }
.asset-map-label { padding:3px 7px !important; border:1px solid #cfe2e3 !important; border-radius:7px !important; color:#27454b !important; background:rgba(255,255,255,.95) !important; box-shadow:0 3px 9px rgba(7,25,28,.12) !important; }.asset-map-label::before { border-top-color:#cfe2e3 !important; }.asset-map-label strong,.asset-map-label small { display:block; }.asset-map-label strong { font-size:.64rem; }.asset-map-label small { color:#789095; font-size:.55rem; }
@media (max-width:900px) { .media-availability-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.live-unit-strip { grid-template-columns:1fr 1fr; } }
@media (max-width:600px) { .live-channel-bar { align-items:flex-start; flex-direction:column; }.live-channel-bar > div { justify-content:flex-start; }.live-player-large,.live-player-large iframe,.live-placeholder { min-height:360px; }.live-unit-strip { grid-template-columns:1fr 1fr; }.media-overview-head { flex-direction:column; }.media-availability-grid { grid-template-columns:1fr; }.command-filters .form-control,.command-filters .form-select { max-width:none; flex:1 1 160px; } }

/* MONSAT ON 0.11.7 · map-first video experience */
.brand-lockup { gap: 9px; }
.brand-mark { display:grid; place-items:center; flex:0 0 auto; width:38px; height:38px; }
.brand-mark img { display:block; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 4px 9px rgba(0,37,91,.12)); }
.brand-name { display:inline-flex; align-items:center; gap:7px; letter-spacing:0; }
.brand-name b { font-size:1.08rem; font-weight:850; letter-spacing:.08em; }
.brand-name em,.page-brandline em { display:inline-grid; place-items:center; min-width:29px; height:22px; padding:0 7px; border:1px solid rgba(79,208,200,.45); border-radius:999px; color:#70e0d8; background:rgba(13,145,141,.13); font-size:.59rem; font-style:normal; font-weight:900; letter-spacing:.12em; }
.login-brand-panel .brand-mark { width:48px; height:48px; }.login-brand-panel .brand-name b { font-size:1.32rem; }
.page-brandline { display:flex; align-items:center; gap:5px; min-height:20px; }
.page-brandline img { width:19px; height:19px; object-fit:contain; }
.page-brandline > b { color:#173f74; font-size:.59rem; font-weight:900; letter-spacing:.1em; }
.page-brandline em { min-width:24px; height:17px; padding:0 5px; color:#08726f; border-color:#b5ddda; background:#eef9f8; font-size:.48rem; }
.page-brandline #pageEyebrow { display:inline; margin-left:4px; padding-left:9px; border-left:1px solid #dce6e7; }
.app-shell.sidebar-mini .brand-mark { width:40px; height:40px; }

.map-no-location { position:absolute; z-index:500; left:50%; top:50%; display:grid; place-items:center; width:min(300px,80%); padding:18px; border:1px solid rgba(255,255,255,.8); border-radius:15px; color:#476168; background:rgba(255,255,255,.93); box-shadow:0 15px 35px rgba(7,31,36,.14); transform:translate(-50%,-50%); text-align:center; pointer-events:none; }
.map-no-location i { margin-bottom:5px; color:var(--teal); font-size:1.45rem; }.map-no-location strong,.map-no-location span { display:block; }.map-no-location strong { font-size:.78rem; }.map-no-location span { margin-top:3px; color:var(--muted); font-size:.66rem; }

.source-state { display:flex; align-items:center; gap:12px; margin:0 0 16px; padding:13px 15px; border:1px solid #cbe3e1; border-radius:13px; color:#176c67; background:#f2fbfa; }
.source-state > i { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border-radius:10px; background:#dff4f2; font-size:1rem; }.source-state span { min-width:0; flex:1; }.source-state strong,.source-state small { display:block; }.source-state strong { font-size:.76rem; }.source-state small { margin-top:3px; color:#5e797d; font-size:.67rem; }
.source-state.warning { color:#89651b; border-color:#ecd9a8; background:#fff9e9; }.source-state.error { color:#a83d3d; border-color:#f0c7c7; background:#fff4f4; }.source-state.loading { color:#5e7277; border-color:#dce7e8; background:#f7fafa; }.source-state.compact { margin-bottom:14px; padding:10px 13px; }
.event-range { display:flex; align-items:end; gap:12px; margin-bottom:14px; padding:14px 16px; }
.event-range > div { display:grid; gap:2px; margin-right:auto; }.event-range > div strong { font-size:.76rem; }.event-range label { display:grid; gap:4px; color:#718287; font-size:.61rem; font-weight:800; }.event-range input,.event-range select { min-width:150px; }.event-range select { min-width:210px; }
.event-visual.multi { grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:2px; }.event-visual.multi figure { position:relative; width:100%; height:100%; margin:0; overflow:hidden; }.event-visual.multi figure img { width:100%; height:100%; object-fit:cover; }.event-visual.multi figure small { position:absolute; left:5px; bottom:4px; padding:2px 4px; border-radius:4px; color:#fff; background:rgba(0,0,0,.62); font-size:.5rem; }

.dashboard-metrics { grid-template-columns:repeat(6,minmax(135px,1fr)); }.dashboard-metrics .metric-card { min-height:122px; padding:17px; }.dashboard-metrics .metric-value { font-size:1.65rem; }.dashboard-switch .view-mode { display:inline-flex; align-items:center; padding:8px 11px; border:1px solid #a8d8d5; border-radius:9px; color:var(--teal-dark); background:var(--aqua); font-weight:800; }
.dashboard-period { display:flex !important; align-items:center; gap:7px; }.dashboard-period label { color:#708287; font-size:.58rem; font-weight:800; }.dashboard-period input { width:125px; border:0; outline:0; color:#40595f; background:transparent; font-size:.65rem; }.dashboard-period button { display:grid; place-items:center; width:28px; height:28px; border:0; border-radius:7px; color:white; background:var(--teal); }
.training-ready { grid-column:1/-1; display:flex; align-items:center; gap:14px; padding:19px; border:1px dashed #bedbd9; border-radius:13px; background:#f7fbfb; }.training-ready > i { color:var(--teal); font-size:1.7rem; }.training-ready div { flex:1; }.training-ready strong,.training-ready p { display:block; }.training-ready strong { font-size:.82rem; }.training-ready p { margin:3px 0 0; color:var(--muted); font-size:.68rem; }

.live-command-center { display:grid; grid-template-columns:minmax(520px,1fr) minmax(475px,560px); height:min(760px,calc(100vh - var(--topbar) - 125px)); min-height:635px; overflow:hidden; border:1px solid #d8e4e5; border-radius:18px; background:#fff; box-shadow:var(--shadow); }
.live-map-workspace { position:relative; min-width:0; height:100%; overflow:hidden; background:#dfe9e9; }.live-map-workspace #liveMap { width:100%; height:100%; min-height:0; }
.live-map-title { position:absolute; z-index:550; left:18px; bottom:18px; display:flex; align-items:center; gap:10px; max-width:430px; padding:11px 14px; border:1px solid rgba(255,255,255,.82); border-radius:12px; background:rgba(255,255,255,.94); box-shadow:0 10px 28px rgba(7,31,36,.17); backdrop-filter:blur(9px); }.live-map-title > div { min-width:0; }.live-map-title strong,.live-map-title small { display:block; }.live-map-title strong { font-size:.78rem; }.live-map-title small { margin-top:3px; overflow:hidden; color:var(--muted); font-size:.64rem; text-overflow:ellipsis; white-space:nowrap; }
.live-fleet-overlay { position:absolute; z-index:600; left:16px; top:16px; width:min(310px,calc(100% - 32px)); max-height:calc(100% - 100px); overflow:hidden; border:1px solid rgba(255,255,255,.85); border-radius:14px; background:rgba(255,255,255,.96); box-shadow:0 13px 34px rgba(7,31,36,.16); backdrop-filter:blur(10px); transition:width .2s ease; }.live-fleet-overlay > header { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:12px 13px; border-bottom:1px solid var(--line); }.live-fleet-overlay > header strong { display:block; margin-top:2px; font-size:.69rem; }.live-fleet-overlay > header button { display:grid; place-items:center; width:30px; height:30px; border:0; border-radius:8px; color:#60767b; background:#eef4f4; }.live-fleet-list { max-height:410px; padding:4px 11px 9px; overflow:auto; }.live-fleet-overlay.collapsed { width:56px; }.live-fleet-overlay.collapsed header > div,.live-fleet-overlay.collapsed .live-fleet-list { display:none; }.live-fleet-overlay.collapsed > header { justify-content:center; padding:10px; border:0; }
.live-console { height:100%; overflow:auto; border-left:1px solid var(--line); background:#fff; }.live-console-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:17px 18px 13px; }.live-console-head h2 { margin:3px 0 0; font-size:1.12rem; }.live-console-head p { margin:4px 0 0; color:var(--muted); font-size:.64rem; }
.live-player-console { position:relative; height:300px; margin:0 18px; overflow:hidden; border:1px solid #17343b; border-radius:13px; background:#071317; }.live-player-console iframe { width:100%; height:100%; border:0; background:#050b0d; }.live-player-console .live-placeholder { width:100%; height:100%; min-height:0; }.live-player-console .live-placeholder i { font-size:2.75rem; }.live-player-console .live-placeholder h3 { font-size:.9rem; }.live-player-console .live-placeholder p { max-width:380px; font-size:.68rem; line-height:1.45; }
.live-request-state { display:grid; grid-template-columns:32px minmax(0,1fr) auto; gap:10px; align-items:center; margin:10px 18px 0; padding:10px 12px; border:1px solid #dce8e9; border-radius:11px; color:#537076; background:#f7fafa; }.live-request-state > i { display:grid; place-items:center; width:31px; height:31px; border-radius:9px; color:var(--teal); background:var(--aqua); }.live-request-state strong,.live-request-state small { display:block; }.live-request-state strong { font-size:.7rem; }.live-request-state small { margin-top:2px; color:var(--muted); font-size:.61rem; line-height:1.35; }.live-request-state time { min-width:50px; color:#173f45; font-size:.86rem; font-weight:850; text-align:right; }.live-request-state.error { border-color:#f1c8c8; background:#fff5f5; }.live-request-state.error > i { color:#b63f3f; background:#ffebeb; }.live-request-state.requested,.live-request-state.player_ready { border-color:#b9dfdb; background:#f1fbfa; }
.live-choice { padding:13px 18px 0; }.live-choice-label { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:8px; }.live-choice-label strong { font-size:.72rem; }.live-choice-label span { color:var(--muted); font-size:.58rem; }.live-channel-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.live-channel-options .live-channel { min-width:0; justify-content:flex-start; padding:8px 9px; color:#526d73; border-color:#d6e3e4; background:#f8fbfb; }.live-channel-options .live-channel.active { color:#fff; border-color:var(--teal); background:var(--teal); }.live-channel-options .live-channel.active small { color:#d8f3f0; }
.live-duration-options { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }.live-duration-options button { padding:9px 7px; border:1px solid #d8e4e5; border-radius:9px; color:#516a70; background:#f9fbfb; text-align:left; }.live-duration-options button strong,.live-duration-options button small { display:block; }.live-duration-options button strong { font-size:.7rem; }.live-duration-options button small { margin-top:2px; color:#819195; font-size:.53rem; }.live-duration-options button.active { color:#fff; border-color:#173f74; background:#173f74; }.live-duration-options button.active small { color:#c7d7e9; }
.live-primary-actions { display:flex; gap:7px; padding:13px 18px; }.live-primary-actions button { flex:1; padding:9px 10px; }.live-primary-actions button:disabled { opacity:.48; cursor:not-allowed; }
.live-unit-facts { display:grid; grid-template-columns:.7fr 1.35fr .8fr; margin:0 18px; border:1px solid #e1e9ea; border-radius:11px; }.live-unit-facts > div { min-width:0; padding:10px; border-right:1px solid #e7eeee; }.live-unit-facts > div:last-child { border:0; }.live-unit-facts small,.live-unit-facts strong { display:block; }.live-unit-facts small { color:#819195; font-size:.51rem; font-weight:850; }.live-unit-facts strong { margin-top:3px; overflow:hidden; color:#344f55; font-size:.65rem; text-overflow:ellipsis; white-space:nowrap; }
.live-recent { margin:13px 18px 18px; border-top:1px solid var(--line); }.live-recent > header { display:flex; align-items:center; justify-content:space-between; padding:12px 0 5px; }.live-recent header strong,.live-recent header small { display:block; }.live-recent header strong { font-size:.72rem; }.live-recent header small { color:var(--muted); font-size:.56rem; }.live-recent header button { border:0; color:var(--teal); background:none; font-size:.61rem; font-weight:800; }.live-empty-note { margin:8px 0 0; padding:12px; border-radius:9px; color:#60787e; background:#f4f8f8; font-size:.65rem; }.live-empty-note.warning { color:#8b681e; background:#fff8e6; }

.route-fallback { display:flex; align-items:center; gap:11px; margin:-3px 0 15px; padding:11px 14px; border:1px solid #ead7a5; border-radius:12px; color:#84631c; background:#fff9e8; }.route-fallback > i { font-size:1.1rem; }.route-fallback strong,.route-fallback small { display:block; }.route-fallback strong { font-size:.73rem; }.route-fallback small { margin-top:2px; font-size:.62rem; }
.trips-map-first { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr); gap:15px; min-height:610px; }.trip-map-primary { overflow:hidden; }.trip-map-primary .panel-body { padding:0; }.trip-map-primary #tripMap { height:650px; }.route-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; }.route-legend span { display:inline-flex; align-items:center; gap:4px; color:#667b80; font-size:.55rem; }.route-legend i { width:8px; height:8px; border-radius:50%; }.route-legend .start { background:#21846b; }.route-legend .report { background:var(--teal); }.route-legend .event { background:var(--red); }.route-legend .end { background:#173f74; }
.trip-route-list { min-width:0; overflow:hidden; }.trip-route-list .panel-body { max-height:583px; padding:10px; overflow:auto; }.trip-route-card { margin-bottom:9px; overflow:hidden; border:1px solid #dce6e7; border-radius:11px; background:#fff; }.trip-route-card.active { border-color:#73c1bc; box-shadow:0 0 0 2px rgba(13,145,141,.1); }.trip-route-card.empty { opacity:.72; }.trip-route-card > button { display:grid; grid-template-columns:38px 1fr auto; gap:9px; align-items:center; width:100%; padding:10px; border:0; color:inherit; background:transparent; text-align:left; }.trip-route-card > button > span:nth-child(2) { min-width:0; }.trip-route-card > button strong,.trip-route-card > button small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.trip-route-card > button strong { font-size:.7rem; }.trip-route-card > button small { margin-top:2px; color:var(--muted); font-size:.58rem; }.trip-route-card > div { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #edf1f2; border-bottom:1px solid #edf1f2; }.trip-route-card > div span { padding:8px; text-align:center; }.trip-route-card > div small,.trip-route-card > div strong { display:block; }.trip-route-card > div small { color:#859498; font-size:.48rem; font-weight:850; }.trip-route-card > div strong { margin-top:2px; font-size:.62rem; }.trip-route-card footer { display:flex; align-items:center; justify-content:space-between; padding:7px 10px; color:#73868b; font-size:.56rem; }.trip-route-card footer button { padding:0; border:0; color:var(--teal); background:none; font-size:.58rem; font-weight:800; }
.route-map-pin,.route-event-pin { display:grid; place-items:center; width:30px; height:30px; border:3px solid #fff; border-radius:50%; color:#fff; box-shadow:0 5px 14px rgba(7,31,36,.25); }.route-map-pin.start { background:#21846b; }.route-map-pin.end { background:#173f74; }.route-event-pin { width:28px; height:28px; background:var(--red); }.route-popup { display:grid; min-width:190px; gap:4px; }.route-popup img { width:100%; max-height:120px; margin-bottom:4px; border-radius:7px; object-fit:cover; }.route-popup strong { font-size:.73rem; }.route-popup small,.route-popup span { color:#667b80; font-size:.6rem; }.route-popup button { margin-top:5px; padding:6px 8px; border:0; border-radius:7px; color:#fff; background:var(--teal); font-size:.61rem; }

.capability-honesty { display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; padding:14px 16px; border:1px solid #c7dfdd; border-radius:13px; color:#365e62; background:#f3faf9; }.capability-honesty > i { color:var(--teal); font-size:1.15rem; }.capability-honesty > div { flex:1; }.capability-honesty strong { display:block; font-size:.77rem; }.capability-honesty p { margin:3px 0 0; color:#647c80; font-size:.66rem; line-height:1.45; }.capability-chips { display:flex; flex-wrap:wrap; gap:4px; margin-top:5px; }.capability-chips span { display:inline-flex; align-items:center; gap:4px; padding:3px 6px; border-radius:6px; color:#236e69; background:#e5f6f3; font-size:.52rem; font-weight:750; }.capability-chips span.unknown { color:#77878b; background:#eef2f2; }
.speed-policy { margin-bottom:18px; }.speed-policy-form { display:grid; grid-template-columns:minmax(180px,.8fr) 150px minmax(260px,1.5fr) auto; gap:12px; align-items:end; }.speed-policy-form label { display:grid; gap:5px; color:#667b80; font-size:.62rem; font-weight:800; }.speed-policy-form > div small,.speed-policy-form > div strong,.speed-policy-form > div span { display:block; }.speed-policy-form > div small { color:#839297; font-size:.5rem; font-weight:850; }.speed-policy-form > div strong { margin-top:3px; font-size:.7rem; }.speed-policy-form > div span { margin-top:3px; color:var(--muted); font-size:.58rem; line-height:1.35; }.speed-policy-status { display:flex; align-items:center; gap:10px; margin-top:13px; padding:10px 12px; border-radius:10px; color:#526b70; background:#f4f8f8; }.speed-policy-status > i { color:var(--teal); }.speed-policy-status span { min-width:0; flex:1; }.speed-policy-status strong,.speed-policy-status small { display:block; }.speed-policy-status strong { font-size:.68rem; }.speed-policy-status small { margin-top:2px; font-size:.59rem; }.speed-policy-status time { font-size:.7rem; font-weight:850; }
.capability-section > header { display:flex; align-items:end; justify-content:space-between; gap:15px; margin-bottom:13px; }.capability-section h2 { margin:3px 0 2px; font-size:1.18rem; }.capability-section header p { margin:0; color:var(--muted); font-size:.7rem; }.camera-capability-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.camera-capability-card { overflow:hidden; border:1px solid #d9e5e6; border-radius:15px; background:#fff; box-shadow:0 8px 24px rgba(13,42,49,.05); }.camera-capability-card > header { display:flex; align-items:center; gap:10px; padding:14px; border-bottom:1px solid #e8eeee; }.camera-capability-card > header > div { min-width:0; flex:1; }.camera-capability-card h3,.camera-capability-card p { margin:0; }.camera-capability-card h3 { font-size:.78rem; }.camera-capability-card p { margin-top:3px; overflow:hidden; color:var(--muted); font-size:.58rem; text-overflow:ellipsis; white-space:nowrap; }.capability-model-strip { display:grid; grid-template-columns:1fr 1fr auto; gap:8px; align-items:center; padding:10px 14px; background:#f7fafa; }.capability-model-strip small,.capability-model-strip strong { display:block; }.capability-model-strip small { color:#819195; font-size:.48rem; font-weight:850; }.capability-model-strip strong { margin-top:2px; font-size:.64rem; }.capability-model-strip button { padding:7px 9px; border:1px solid #cfe0e1; border-radius:8px; color:var(--teal); background:#fff; font-size:.59rem; font-weight:800; }.capability-compare { padding:6px 14px; }.capability-compare-row { display:grid; grid-template-columns:minmax(110px,.8fr) 1fr 18px 1fr; gap:7px; align-items:center; padding:8px 0; border-bottom:1px solid #edf1f2; }.capability-compare-row:last-child { border:0; }.capability-compare-row > strong { font-size:.63rem; }.capability-compare-row small,.capability-compare-row b { display:block; }.capability-compare-row small { color:#879599; font-size:.46rem; font-weight:850; }.capability-compare-row b,.read-value { margin-top:2px; color:#405b61; font-size:.59rem; font-weight:750; }.capability-compare-row > i { color:#a2afb2; font-size:.65rem; }.not-read { color:#8b7a58 !important; font-style:normal; }.read-value.good { color:#21846b; }.read-value.muted { color:#78888c; }.camera-capability-card > footer { display:flex; gap:8px; padding:10px 14px; color:#6d8085; background:#fbfdfd; font-size:.57rem; line-height:1.4; }.camera-capability-card > footer i { color:var(--teal); }.settings-bottom-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:15px; margin-top:17px; }

@media (max-width:1500px) { .dashboard-metrics { grid-template-columns:repeat(3,1fr); }.live-command-center { grid-template-columns:minmax(470px,1fr) minmax(430px,500px); }.camera-capability-grid { grid-template-columns:1fr; } }
@media (max-width:1150px) { .live-command-center { grid-template-columns:1fr; height:auto; max-height:none; }.live-map-workspace { height:520px; }.live-console { height:auto; max-height:none; border-top:1px solid var(--line); border-left:0; }.live-player-console { height:390px; }.trips-map-first { grid-template-columns:1fr; }.trip-map-primary #tripMap { height:520px; }.trip-route-list .panel-body { max-height:none; }.speed-policy-form { grid-template-columns:1fr 1fr; }.speed-policy-form > div { grid-column:1/-1; }.event-range { flex-wrap:wrap; }.event-range > div { width:100%; }.event-range label { flex:1; }.settings-bottom-grid { grid-template-columns:1fr; } }
@media (max-width:700px) { .brand-mark { width:34px; height:34px; }.page-brandline img,.page-brandline > b,.page-brandline em { display:none; }.page-brandline #pageEyebrow { display:none; }.live-map-workspace { height:430px; }.live-fleet-overlay { width:calc(100% - 32px); }.live-map-title { right:16px; max-width:none; }.live-console-head { flex-direction:column; }.live-player-console { height:260px; margin-inline:12px; }.live-choice,.live-primary-actions { padding-inline:12px; }.live-request-state,.live-unit-facts,.live-recent { margin-inline:12px; }.live-primary-actions { flex-wrap:wrap; }.live-primary-actions button { flex:1 1 42%; }.live-channel-options { grid-template-columns:1fr; }.live-unit-facts { grid-template-columns:1fr; }.live-unit-facts > div { border-right:0; border-bottom:1px solid #e7eeee; }.dashboard-metrics { grid-template-columns:1fr 1fr; }.dashboard-period { width:100%; flex-wrap:wrap; }.dashboard-period input { width:115px; }.event-range label,.event-range button { width:100%; }.event-range input,.event-range select { width:100%; min-width:0; }.route-legend { display:none; }.trip-map-primary #tripMap { height:430px; }.trip-filter > div { width:100%; }.speed-policy-form { grid-template-columns:1fr; }.speed-policy-form > div { grid-column:auto; }.capability-section > header { align-items:flex-start; flex-direction:column; }.capability-compare-row { grid-template-columns:1fr 1fr; }.capability-compare-row > strong { grid-column:1/-1; }.capability-compare-row > i { display:none; }.camera-capability-card > header { align-items:flex-start; flex-wrap:wrap; }.camera-capability-card > header .badge-status { margin-left:48px; }.capability-model-strip { grid-template-columns:1fr 1fr; }.capability-model-strip button { grid-column:1/-1; }.capability-honesty { flex-wrap:wrap; }.capability-honesty button { margin-left:32px; } }
.camera-feed { position: relative; display: grid; place-items: center; min-height: 235px; border: 1px solid #1c353b; border-radius: 13px; overflow: hidden; color: #667e83; background: radial-gradient(circle, #142a30 0, #09181d 70%); }
.camera-feed::before { position: absolute; inset: 0; content: ""; opacity: .11; background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px); background-size: 34px 34px; }
.camera-feed i { font-size: 2.2rem; }.camera-feed span { position: absolute; left: 13px; top: 12px; color: #b4c7ca; font-size: .65rem; font-weight: 750; }.camera-feed b { position: absolute; right: 13px; top: 12px; display: flex; align-items: center; gap: 5px; color: #70888d; font-size: .58rem; }.camera-feed b::before { width: 6px; height: 6px; border-radius: 50%; content: ""; background: #70888d; }
.camera-feed.streaming b { color: #b7dd46; }.camera-feed.streaming b::before { background: #b7dd46; box-shadow: 0 0 0 5px rgba(183,221,70,.1); }
.camera-feed iframe { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; border: 0; background: #050b0d; }
.camera-feed.streaming span, .camera-feed.streaming b { z-index: 2; padding: 4px 7px; border-radius: 6px; background: rgba(3,13,16,.72); backdrop-filter: blur(4px); }
.live-controls { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding: 12px; border-radius: 12px; background: #0c2227; }
.live-controls button { padding: 8px 12px; border: 1px solid #274148; border-radius: 8px; color: #afc2c5; background: #122c32; font-size: .68rem; font-weight: 700; }.live-controls button.primary { color: #07191c; border-color: var(--lime); background: var(--lime); }

.data-table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 14px; background: white; }
.data-table { width: 100%; min-width: 850px; border-collapse: collapse; }
.data-table th { padding: 13px 15px; color: #718287; background: #f7fafa; font-size: .65rem; font-weight: 800; letter-spacing: .05em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.data-table td { padding: 14px 15px; border-top: 1px solid #e9eeee; font-size: .73rem; vertical-align: middle; }
.data-table tbody tr:hover { background: #fbfdfd; }
.table-asset { display: flex; align-items: center; gap: 10px; }.table-asset i { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 9px; color: var(--teal); background: var(--aqua); }.table-asset strong, .table-asset small { display: block; }.table-asset small { color: var(--muted); font-size: .6rem; }
.badge-status { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: 20px; font-size: .61rem; font-weight: 760; }.badge-status::before { width: 6px; height: 6px; border-radius: 50%; content: ""; background: currentColor; }.badge-status.online, .badge-status.uploaded, .badge-status.synced { color: #21846b; background: #e3f6ef; }.badge-status.sent { color: #367fc3; background: #e8f3ff; }.badge-status.offline, .badge-status.expired { color: #718084; background: #eef2f2; }.badge-status.uploading, .badge-status.queued, .badge-status.pending { color: #98701f; background: #fff4dc; }.badge-status.failed, .badge-status.critical { color: #bc3c3c; background: #ffebeb; }
.progress-slim { width: 100px; height: 5px; border-radius: 10px; overflow: hidden; background: #e6ecec; }.progress-slim i { display: block; height: 100%; border-radius: inherit; background: var(--teal); }
.table-actions { display: flex; gap: 6px; }.table-actions button { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 8px; color: #65787d; background: white; }.table-actions button:hover { color: var(--teal); border-color: #acd8d5; }
.driver-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.driver-card { padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.driver-toolbar { margin: 18px 0; padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.driver-toolbar > div:first-child { display: grid; gap: 3px; }
.driver-toolbar > div:first-child strong { color: var(--ink); }
.driver-toolbar > div:first-child small { color: var(--muted); }
.driver-toolbar-actions { display: flex; align-items: center; gap: 10px; min-width: min(560px, 100%); }
.driver-toolbar-actions .form-control { min-width: 220px; }
.driver-head { display: flex; gap: 12px; align-items: center; }.driver-avatar { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; color: white; background: linear-gradient(135deg, var(--teal), #4fc7bf); font-weight: 800; }.driver-head h3 { margin: 0; font-size: .88rem; }.driver-head p { margin: 3px 0 0; color: var(--muted); font-size: .65rem; }
.score-ring { margin-left: auto; display: grid; place-items: center; width: 47px; height: 47px; border-radius: 50%; background: conic-gradient(var(--teal) calc(var(--score) * 1%), #e7eeee 0); }.score-ring span { display: grid; place-items: center; width: 37px; height: 37px; border-radius: 50%; background: white; font-size: .7rem; font-weight: 800; }
.driver-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 17px; }.driver-stats div { padding: 9px; border-radius: 9px; text-align: center; background: #f5f8f8; }.driver-stats strong, .driver-stats small { display: block; }.driver-stats strong { font-size: .77rem; }.driver-stats small { margin-top: 2px; color: var(--muted); font-size: .56rem; }
.report-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }.report-card { position: relative; min-height: 190px; padding: 22px; border: 1px solid var(--line); border-radius: 17px; overflow: hidden; background: white; }.report-card > i { display: grid; place-items: center; width: 43px; height: 43px; margin-bottom: 22px; border-radius: 12px; color: var(--report-color, var(--teal)); background: var(--report-soft, var(--aqua)); font-size: 1.1rem; }.report-card h3 { font-size: .9rem; }.report-card p { min-height: 38px; color: var(--muted); font-size: .7rem; line-height: 1.55; }.report-card button { padding: 7px 0; border: 0; color: var(--teal); background: none; font-size: .68rem; font-weight: 800; }.report-card::after { position: absolute; right: -35px; bottom: -42px; width: 110px; height: 110px; border-radius: 50%; content: ""; background: var(--report-soft, var(--aqua)); opacity: .55; }

/* Superadministrator updates */
.update-layout { align-items: start; }.version-pill { padding: 7px 10px; border-radius: 9px; color: var(--teal-dark); background: var(--aqua); font-size: .7rem; font-weight: 800; }

/* Shared MONSAT8 inventory source diagnostic */
.inventory-source { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:13px; align-items:center; margin:0 0 15px; padding:14px 16px; border:1px solid #cfe5df; border-radius:14px; background:linear-gradient(135deg,#f5fcf9,#ffffff); box-shadow:0 8px 26px rgba(13,66,65,.05); }
.inventory-source > i { display:grid; width:38px; height:38px; place-items:center; border-radius:11px; color:#1e806d; background:#dff4ed; font-size:1.05rem; }
.inventory-source strong,.inventory-source small { display:block; }.inventory-source strong { color:#173d42; font-size:.72rem; }.inventory-source small { margin-top:3px; color:#6b8084; font-size:.59rem; line-height:1.45; }
.inventory-source .inventory-source-facts { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }.inventory-source .inventory-source-facts span { padding:6px 8px; border:1px solid #dfe9e9; border-radius:8px; color:#536b70; background:#fff; font-size:.54rem; font-weight:800; white-space:nowrap; }.inventory-source .inventory-source-facts b { color:#173d42; }
.inventory-source.warning { border-color:#f0cf8e; background:linear-gradient(135deg,#fff8e9,#fff); }.inventory-source.warning > i { color:#aa6712; background:#ffedc8; }
.inventory-source.danger { border-color:#efb6b6; background:linear-gradient(135deg,#fff1f1,#fff); }.inventory-source.danger > i { color:#b73f3f; background:#ffe0e0; }
.inventory-source details { grid-column:2/-1; }.inventory-source summary { color:var(--teal); cursor:pointer; font-size:.57rem; font-weight:800; }.inventory-exclusions { display:grid; gap:5px; margin-top:8px; }.inventory-exclusions div { display:grid; grid-template-columns:minmax(120px,1fr) auto auto; gap:8px; padding:7px 9px; border-radius:8px; color:#66797d; background:rgba(255,255,255,.82); font-size:.54rem; }.inventory-exclusions code { color:#36575d; }
@media (max-width:760px) { .inventory-source { grid-template-columns:auto 1fr; align-items:start; }.inventory-source .inventory-source-facts,.inventory-source details { grid-column:1/-1; justify-content:flex-start; }.inventory-exclusions div { grid-template-columns:1fr; } }
.update-drop { display: grid; place-items: center; min-height: 190px; padding: 25px; border: 1.5px dashed #9bc9c6; border-radius: 15px; color: var(--teal-dark); background: #f5fbfa; text-align: center; cursor: pointer; transition: .2s ease; }
.update-drop:hover { border-color: var(--teal); background: #ecf8f7; }.update-drop > i { margin-bottom: 10px; font-size: 2rem; }.update-drop strong { font-size: .82rem; }.update-drop small { margin-top: 7px; color: var(--muted); font-size: .66rem; }.update-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.update-checks { display: grid; gap: 2px; }.update-checks > div:not(.update-policy) { display: flex; align-items: flex-start; gap: 11px; padding: 12px 3px; border-bottom: 1px solid var(--line); }.update-checks > div > i { margin-top: 2px; }.update-checks span strong, .update-checks span small { display: block; }.update-checks span strong { font-size: .75rem; }.update-checks span small { max-width: 340px; margin-top: 3px; color: var(--muted); font-size: .63rem; overflow-wrap: anywhere; }
.update-policy { display: flex; gap: 11px; margin-top: 14px; padding: 13px; border-radius: 12px; color: #795c1d; background: #fff7e4; }.update-policy > i { font-size: 1.15rem; }.update-policy p { margin: 0; font-size: .66rem; line-height: 1.5; }.update-policy strong { display: block; margin-bottom: 2px; font-size: .72rem; }.update-policy code { color: inherit; }
.update-ready { border-color: #a6d9c8; box-shadow: 0 10px 28px rgba(33,132,107,.09); }.update-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }.update-summary div { padding: 12px; border-radius: 11px; background: #f2f8f7; text-align: center; }.update-summary strong, .update-summary small { display: block; }.update-summary strong { font-size: 1rem; }.update-summary small { margin-top: 4px; color: var(--muted); font-size: .54rem; font-weight: 800; }

/* Modal and drawer */
.modal-content { border: 0; border-radius: 18px; box-shadow: 0 24px 70px rgba(8,28,34,.25); }
.modal-header, .modal-footer { border-color: var(--line); }.modal-header { padding: 19px 22px; }.modal-body { padding: 22px; }.modal-title { font-size: 1rem; font-weight: 800; }
.modal-label { margin-bottom: 6px; color: #63767b; font-size: .67rem; font-weight: 760; }.modal .form-control, .modal .form-select { border-color: var(--line); border-radius: 10px; font-size: .78rem; }.modal .form-control:focus, .modal .form-select:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(13,145,141,.1); }
.video-modal-content { overflow: hidden; background: #061216; color: white; }.video-player { width: 100%; max-height: 72vh; background: black; }.video-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 15px 18px; }.video-modal-head button { border: 0; color: white; background: none; }.video-placeholder { display: grid; place-items: center; min-height: 500px; color: #789095; background: radial-gradient(circle, #13282e, #061216 65%); }.video-placeholder i { font-size: 3rem; }.video-placeholder p { font-size: .8rem; }
.notification-drawer { position: fixed; z-index: 1090; right: 0; top: 0; width: min(430px, 95vw); height: 100vh; padding: 22px; transform: translateX(102%); color: var(--ink); background: white; box-shadow: -20px 0 50px rgba(7,31,36,.16); transition: transform .25s ease; }.notification-drawer.open { transform: translateX(0); }.notification-drawer header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 17px; border-bottom: 1px solid var(--line); }.notification-drawer h2 { margin: 3px 0 0; font-size: 1.25rem; }.notification-drawer header button { width: 36px; height: 36px; border: 0; border-radius: 9px; background: #f2f6f6; }.notification-item { display: grid; grid-template-columns: 38px 1fr; gap: 11px; padding: 17px 3px; border-bottom: 1px solid #edf1f2; }.notification-item > i { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; color: var(--red); background: #ffeded; }.notification-item strong { display: block; font-size: .76rem; }.notification-item p { margin: 4px 0; color: var(--muted); font-size: .67rem; line-height: 1.45; }.notification-item time { color: #91a0a3; font-size: .59rem; }
.toast { border: 0; border-radius: 12px; box-shadow: 0 15px 35px rgba(8,31,36,.16); }.toast .toast-body { display: flex; align-items: center; gap: 10px; font-size: .75rem; }.toast .toast-body i { color: var(--teal); font-size: 1rem; }
.sidebar-backdrop { display: none; }

/* Collapsed desktop sidebar */
.app-shell.sidebar-mini { --sidebar: 78px; }.app-shell.sidebar-mini .sidebar-brand { justify-content: center; padding: 0; }.app-shell.sidebar-mini .sidebar-brand .brand-name, .app-shell.sidebar-mini .sidebar-collapse, .app-shell.sidebar-mini .sidebar-nav span, .app-shell.sidebar-mini .sidebar-nav b, .app-shell.sidebar-mini .sidebar-system div:not(.system-pulse) { display: none; }.app-shell.sidebar-mini .sidebar-nav { padding-inline: 10px; }.app-shell.sidebar-mini .sidebar-nav a { justify-content: center; padding: 9px; }.app-shell.sidebar-mini .sidebar-nav a i { width: auto; font-size: 1.16rem; }.app-shell.sidebar-mini .sidebar-system { justify-content: center; padding: 10px; }

@media (max-width: 1250px) {
    .metric-grid { grid-template-columns: repeat(3, 1fr); }
    .event-grid, .media-grid { grid-template-columns: repeat(2, 1fr); }
    .event-strip { grid-template-columns: repeat(2, 1fr); }
    .driver-grid, .report-grid { grid-template-columns: repeat(2, 1fr); }
    .global-search { width: 260px; }
}
@media (max-width: 900px) {
    .login-shell { grid-template-columns: 1fr; }.login-brand-panel { display: none; }.login-form-panel { min-height: 100vh; padding: 32px; }.mobile-brand { display: inline-flex; }
    .sidebar { position: fixed; transform: translateX(-102%); }.sidebar.mobile-open { transform: translateX(0); }.mobile-menu { display: grid; }.sidebar-collapse { display: none; }.sidebar-backdrop { position: fixed; z-index: 1030; inset: 0; background: rgba(4,18,22,.48); backdrop-filter: blur(2px); }.sidebar-backdrop.open { display: block; }
    .topbar { padding: 0 16px; }.page-identity { margin-right: auto; margin-left: 12px; }.global-search { display: none; }.view-container { padding: 20px 16px 50px; }.content-grid, .live-layout,.daily-intelligence,.dashboard-top-grid,.dashboard-columns,.trips-layout,.live-context-grid,.coaching-board { grid-template-columns: 1fr; }.live-assets { height: auto; }.metric-grid { grid-template-columns: repeat(2, 1fr); }.live-grid { grid-template-columns: 1fr; }.evidence-main { grid-template-columns: 1fr; }.evidence-context { order: 2; }.evidence-stats { grid-template-columns: 1fr 1fr; }.evidence-stats > div:nth-child(2) { border-right: 0; }.camera-hero { align-items: flex-start; flex-direction: column; }.training-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }.diagnostic-grid { grid-template-columns: 1fr 1fr; }.diagnostic-list { grid-column: 1 / -1; }.request-flow { overflow-x: auto; justify-content: flex-start; }.request-flow > i { flex: 0 0 auto; }.trip-filter { align-items: stretch; flex-wrap: wrap; }.trip-filter input,.trip-filter select { max-width: none; flex: 1; }.dashboard-switch { flex-wrap: wrap; }.dashboard-switch .dashboard-period { margin-left: 0; }
}
@media (max-width: 600px) {
    :root { --topbar: 70px; }.page-identity span, .topbar-tools > .icon-button:first-of-type { display: none; }.page-identity h1 { font-size: 1rem; }.topbar-tools { gap: 4px; }.icon-button, .language-button { width: 36px; height: 36px; }.user-button i { display: none; }.view-head { align-items: flex-start; flex-direction: column; }.head-actions { width: 100%; }.head-actions button { flex: 1; }.metric-grid, .event-grid, .media-grid, .event-strip, .driver-grid, .report-grid, .mosaic-grid { grid-template-columns: 1fr; }.metric-card { min-height: 115px; }.filter-bar > * { flex: 1 1 140px; }.login-form-panel { padding: 24px; }.login-card h2 { font-size: 1.85rem; }.evidence-stats { grid-template-columns: 1fr; }.evidence-stats > div { border-right: 0; }.evidence-viewer { min-height: 320px; }.evidence-nav { flex-wrap: wrap; }.moment-data { grid-template-columns: 1fr 1fr; }.camera-hero { padding: 20px; }.camera-hero-actions { flex-wrap: wrap; }.daily-map-card #mediaRouteMap { height: 320px; }.training-strip,.diagnostic-grid { grid-template-columns: 1fr; }.event-evidence-meta,.trip-detail-stats { grid-template-columns: 1fr 1fr; }.dashboard-switch .dashboard-period { width: 100%; }.request-flow { align-items: flex-start; flex-direction: column; }.coaching-config { align-items: flex-start; flex-direction: column; }.driver-toolbar { align-items: stretch; flex-direction: column; }.driver-toolbar-actions { flex-direction: column; min-width: 0; }.driver-toolbar-actions .form-control, .driver-toolbar-actions .btn-soft { width: 100%; }
}

/* Verified event filtering and multichannel evidence */
.event-filter-empty { display:grid; place-items:center; min-height:180px; margin-top:14px; padding:28px; border:1px dashed #cddfe0; border-radius:15px; color:#6f8388; background:#f9fbfb; text-align:center; }
.event-filter-empty[hidden] { display:none; }
.event-filter-empty i { margin-bottom:7px; color:var(--teal); font-size:1.8rem; }
.event-filter-empty strong,.event-filter-empty small { display:block; }
.event-filter-empty strong { color:#36555b; font-size:.82rem; }
.event-filter-empty small { margin-top:4px; font-size:.68rem; }
.event-channel-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:10px; border-radius:14px; background:#061216; }
.event-channel-grid.single { grid-template-columns:1fr; }
.event-channel-grid figure { position:relative; min-height:210px; margin:0; overflow:hidden; border:1px solid #20383e; border-radius:10px; background:#0b1d22; }
.event-channel-grid img,.event-channel-grid video { display:block; width:100%; height:100%; min-height:210px; object-fit:cover; background:#050b0d; }
.event-channel-grid figcaption { position:absolute; z-index:2; left:9px; top:9px; padding:4px 7px; border-radius:6px; color:#dce8ea; background:rgba(4,18,22,.78); font-size:.58rem; font-weight:850; letter-spacing:.07em; }
@media (max-width:700px) { .event-channel-grid { grid-template-columns:1fr; } }

/* 0.11.9 evidence-first event workspace */
.event-summary-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:0 0 12px; }.event-summary-strip > div { display:grid; grid-template-columns:34px auto 1fr; gap:9px; align-items:center; min-width:0; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:#fff; }.event-summary-strip > div > i { display:grid; place-items:center; width:32px; height:32px; border-radius:9px; color:var(--teal); background:var(--aqua); }.event-summary-strip small,.event-summary-strip strong { display:block; }.event-summary-strip small { color:#72858a; font-size:.5rem; font-weight:850; text-transform:uppercase; }.event-summary-strip strong { margin-top:1px; color:#263f45; font-size:1rem; }.event-summary-strip em { overflow:hidden; color:#819195; font-size:.53rem; font-style:normal; text-align:right; text-overflow:ellipsis; white-space:nowrap; }.event-summary-strip .critical > i { color:#b63f3f; background:#ffeded; }.event-summary-strip .high > i { color:#98701f; background:#fff2dc; }.event-summary-strip .dms > i { color:#7163e8; background:#efedff; }
.event-filter-bar { position:sticky; z-index:20; top:calc(var(--topbar) + 8px); display:grid; grid-template-columns:minmax(0,1fr) minmax(235px,300px) auto; gap:12px; padding:11px 13px; box-shadow:0 8px 24px rgba(13,42,49,.06); }
.event-filter-chips { display:flex; align-items:center; gap:7px; min-width:0; overflow-x:auto; padding:2px; scrollbar-width:thin; }
.event-filter-chips .filter-chip { flex:0 0 auto; min-height:38px; }
.event-search-field { position:relative; display:grid; grid-template-columns:16px 1fr; align-items:center; min-width:0; padding:0 10px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.event-search-field > span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.event-search-field > i { color:#769095; }
.event-search-field .form-control { min-width:0; padding-inline:8px 0; border:0; box-shadow:none; }
.event-view-switch { display:flex; gap:4px; padding:3px; border:1px solid var(--line); border-radius:10px; background:#f3f7f7; }
.event-view-switch button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:75px; min-height:34px; padding:6px 9px; border:0; border-radius:7px; color:#6d8186; background:transparent; font-size:.65rem; font-weight:800; }
.event-view-switch button.active { color:#fff; background:var(--teal); box-shadow:0 4px 10px rgba(13,145,141,.2); }
.event-map-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(365px,.55fr); gap:15px; min-height:650px; }
.event-map-panel { min-width:0; overflow:hidden; }
.event-map-panel .panel-body { padding:0; }
.event-map-panel #eventMap { height:650px; background:#e5ecec; }
.event-map-legend { display:inline-flex; align-items:center; gap:5px; color:#6d8085; font-size:.56rem; white-space:nowrap; }
.event-map-legend i { width:8px; height:8px; border-radius:50%; background:var(--red); }
.event-map-legend i:nth-of-type(2) { margin-left:5px; background:var(--teal); }
.event-map-feed { min-width:0; overflow:hidden; }
.event-map-feed .panel-head { margin-bottom:0; }
.event-feed-scroll { max-height:545px; overflow:auto; padding:0 12px 5px; overscroll-behavior:contain; }
.event-day-heading { display:flex; align-items:center; gap:9px; padding:12px 1px 5px; color:#6d8287; font-size:.55rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.event-day-heading i { flex:1; height:1px; background:#e4ebec; }
.event-list-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:7px; align-items:center; padding:8px 0; border-bottom:1px solid #e9eeee; }
.event-list-primary { display:grid; grid-template-columns:82px minmax(0,1fr); gap:10px; align-items:center; min-width:0; padding:0; border:0; color:inherit; background:transparent; text-align:left; }
.event-list-thumb { position:relative; display:grid; place-items:center; width:82px; height:54px; overflow:hidden; border-radius:8px; color:#778c91; background:#102328; }
.event-list-thumb img { width:100%; height:100%; object-fit:cover; }
.event-list-thumb > i { font-size:1.1rem; }
.event-list-thumb b { position:absolute; left:4px; bottom:4px; max-width:70px; padding:2px 4px; overflow:hidden; border-radius:4px; color:#fff; background:rgba(13,145,141,.9); font-size:.43rem; letter-spacing:.03em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.event-list-thumb b.critical { background:rgba(194,54,54,.94); }.event-list-thumb b.high { background:rgba(207,125,22,.94); }
.event-list-copy { min-width:0; }
.event-list-copy strong,.event-list-copy small,.event-list-copy time { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.event-list-copy strong { color:#29444a; font-size:.68rem; }.event-list-copy small { margin-top:2px; color:#667c81; font-size:.57rem; }.event-list-copy time { margin-top:3px; color:#89999d; font-size:.53rem; }
.event-list-context { display:grid; justify-items:center; gap:2px; min-width:42px; color:#789095; font-size:.48rem; }.event-list-context i { color:var(--teal); font-size:.82rem; }
.event-list-actions { display:flex; gap:4px; }.event-list-actions button { display:grid; place-items:center; width:32px; height:32px; border:1px solid #dbe6e7; border-radius:8px; color:#5d777c; background:#fff; }.event-list-actions button:hover { color:var(--teal); border-color:#9fd4d1; background:var(--aqua); }
.event-load-more { display:flex; align-items:center; justify-content:center; gap:5px; width:calc(100% - 24px); min-height:42px; margin:10px 12px 12px; border:1px solid #b8ddda; border-radius:10px; color:var(--teal-dark); background:#eff9f8; font-size:.65rem; font-weight:850; }.event-load-more small { color:#6f888c; font-size:.54rem; font-weight:650; }
.event-list-complete { margin:10px 12px 13px; color:#718589; font-size:.58rem; text-align:center; }
.event-list-panel { overflow:hidden; }.event-list-body { padding:0 17px 8px; }.event-list-panel .event-list-row { grid-template-columns:minmax(0,1fr) 70px 78px; }.event-list-panel .event-list-primary { grid-template-columns:120px minmax(0,1fr); }.event-list-panel .event-list-thumb { width:120px; height:72px; }
.event-map-marker { position:relative; display:grid; place-items:center; width:36px; height:36px; border:3px solid #fff; border-radius:50%; color:#fff; background:var(--teal); box-shadow:0 7px 18px rgba(7,31,36,.28); }.event-map-marker.critical { background:var(--red); }.event-map-marker b { position:absolute; right:-7px; top:-7px; display:grid; place-items:center; min-width:19px; height:19px; padding:0 4px; border:2px solid #fff; border-radius:10px; color:#fff; background:#173f74; font-size:.48rem; }
.event-map-popup { display:grid; min-width:210px; gap:5px; }.event-map-popup img { width:100%; max-height:125px; margin-bottom:3px; border-radius:8px; object-fit:cover; }.event-map-popup strong { font-size:.72rem; }.event-map-popup small,.event-map-popup span { color:#667c81; font-size:.58rem; }.event-map-popup button { margin-top:4px; padding:7px 9px; border:0; border-radius:7px; color:#fff; background:var(--teal); font-size:.6rem; font-weight:800; }

/* Multimedia provenance and fast filters */
.media-source-strip { display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:11px; align-items:center; margin:0 0 10px; padding:11px 14px; border:1px solid #c8e2df; border-radius:12px; color:#286965; background:#f1faf9; }
.media-source-strip > i { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; color:#087f7b; background:#dff4f2; }.media-source-strip span { min-width:0; }.media-source-strip strong,.media-source-strip small { display:block; }.media-source-strip strong { font-size:.7rem; text-transform:capitalize; }.media-source-strip small { margin-top:2px; overflow:hidden; color:#627f7f; font-size:.59rem; text-overflow:ellipsis; white-space:nowrap; }.media-source-strip > b { padding:5px 8px; border-radius:999px; color:#087f7b; background:#dff4f2; font-size:.5rem; letter-spacing:.05em; }
.media-quick-days { display:flex; gap:6px; margin:0 0 10px; }.media-quick-days button { min-height:35px; padding:7px 11px; border:1px solid #d8e5e6; border-radius:9px; color:#637b80; background:#fff; font-size:.62rem; font-weight:800; }.media-quick-days button i { margin-right:5px; }.media-quick-days button.active { color:#fff; border-color:var(--teal); background:var(--teal); }
.media-filter { align-items:end; }.media-filter > label { display:grid; flex:1 1 185px; gap:4px; color:#6b8085; font-size:.56rem; font-weight:850; }.media-filter > label:first-child { flex-basis:260px; }.media-filter > label > span { padding-left:2px; }
.media-overview-head-actions { display:grid; justify-items:end; gap:7px; }.media-overview-filters { display:flex; gap:3px; padding:3px; border-radius:9px; background:#edf3f3; }.media-overview-filters button { padding:5px 7px; border:0; border-radius:6px; color:#6c7f83; background:transparent; font-size:.53rem; font-weight:800; }.media-overview-filters button.active { color:#fff; background:var(--teal); }
.media-card-source { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:7px; padding-top:7px; border-top:1px solid #edf1f2; color:#718488; font-size:.53rem; }.media-card-source span { display:inline-flex; align-items:center; gap:4px; text-transform:capitalize; }.media-card-source time { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.media-overview-empty { grid-column:1/-1; display:grid; place-items:center; min-height:150px; padding:22px; border:1px dashed #d2dfe0; border-radius:12px; color:#718488; text-align:center; }.media-overview-empty i { color:var(--teal); font-size:1.35rem; }.media-overview-empty strong,.media-overview-empty small { display:block; }.media-overview-empty strong { margin-top:6px; font-size:.74rem; }.media-overview-empty small { margin-top:3px; font-size:.6rem; }

/* Dashboard: real evidence first, secondary actions compact */
.dashboard-primary-metrics { grid-template-columns:repeat(4,minmax(155px,1fr)); }
.dashboard-media-overview { margin:14px 0; }.dashboard-media-overview .media-availability-grid { display:flex; gap:10px; overflow-x:auto; padding-bottom:4px; scroll-snap-type:x proximity; }.dashboard-media-overview .media-availability-card { flex:0 0 255px; scroll-snap-align:start; }.dashboard-media-overview .media-availability-image { height:105px; }.dashboard-media-overview .media-availability-info { padding:9px; }.dashboard-media-overview .media-overview-head { margin-bottom:10px; }
.dashboard-next-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }.dashboard-next-actions > div { display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:11px; align-items:center; padding:14px 16px; border:1px solid var(--line); border-radius:13px; background:#fff; }.dashboard-next-actions > div > i { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; color:var(--teal); background:var(--aqua); }.dashboard-next-actions span { min-width:0; }.dashboard-next-actions strong,.dashboard-next-actions small { display:block; }.dashboard-next-actions strong { font-size:.71rem; }.dashboard-next-actions small { margin-top:3px; color:var(--muted); font-size:.59rem; }

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline:3px solid rgba(13,145,141,.35); outline-offset:2px; }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; } }

@media (max-width:1150px) {
    .event-summary-strip { grid-template-columns:1fr 1fr; }
    .event-filter-bar { position:static; grid-template-columns:1fr auto; }.event-filter-chips { grid-column:1/-1; }.event-search-field { min-height:40px; }
    .event-map-layout { grid-template-columns:1fr; }.event-map-panel #eventMap { height:480px; }.event-feed-scroll { max-height:520px; }
    .dashboard-primary-metrics { grid-template-columns:1fr 1fr; }
}
@media (max-width:700px) {
    .event-summary-strip { display:flex; overflow-x:auto; }.event-summary-strip > div { flex:0 0 205px; }
    .event-filter-bar { grid-template-columns:1fr; }.event-filter-chips { grid-column:auto; margin-inline:-3px; }.event-search-field { width:100%; }.event-view-switch { width:100%; }.event-view-switch button { flex:1; }
    .event-map-layout { min-height:0; }.event-map-panel #eventMap { height:390px; }.event-map-panel .panel-head { align-items:flex-start; flex-direction:column; }.event-map-legend { margin-top:5px; }.event-feed-scroll { max-height:none; }
    .event-list-row,.event-list-panel .event-list-row { grid-template-columns:minmax(0,1fr) auto; }.event-list-primary,.event-list-panel .event-list-primary { grid-template-columns:76px minmax(0,1fr); }.event-list-thumb,.event-list-panel .event-list-thumb { width:76px; height:52px; }.event-list-context { display:none; }.event-list-actions { grid-column:2; }.event-list-panel .panel-head { align-items:flex-start; flex-direction:column; }
    .media-source-strip { grid-template-columns:34px minmax(0,1fr); }.media-source-strip > b { grid-column:2; justify-self:start; }.media-source-strip small { white-space:normal; }.media-quick-days { overflow-x:auto; }.media-quick-days button { flex:0 0 auto; }.media-overview-head-actions { justify-items:start; width:100%; }.media-overview-filters { width:100%; overflow-x:auto; }.media-overview-filters button { flex:1; white-space:nowrap; }.media-filter > label { flex:1 1 100%; }
    .dashboard-primary-metrics { grid-template-columns:1fr 1fr; }.dashboard-next-actions { grid-template-columns:1fr; }.dashboard-next-actions > div { grid-template-columns:36px minmax(0,1fr); }.dashboard-next-actions button { grid-column:1/-1; width:100%; }.dashboard-media-overview { margin-inline:-4px; }
}
@media (max-width:440px) { .dashboard-primary-metrics { grid-template-columns:1fr; }.event-map-panel #eventMap { height:330px; }.event-list-actions { display:none; }.event-list-row,.event-list-panel .event-list-row { grid-template-columns:1fr; } }

/* Verified source, live-video, route and report states */
.source-state.partial { color:#89651b; border-color:#ecd9a8; background:#fff9e9; }
.source-state.partial > i,.source-state.warning > i { color:#98701f; background:#fff0c9; }
.source-state.error > i { color:#b43e3e; background:#ffe7e7; }
.source-state .btn-soft,.trip-source-state .btn-soft { flex:0 0 auto; }
.event-source-coverage { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin:0 0 14px; }
.event-source-coverage article { display:grid; grid-template-columns:36px minmax(0,1fr); gap:10px; align-items:center; min-width:0; padding:12px 13px; border:1px solid #dbe7e7; border-radius:12px; color:#48666b; background:#f8fbfb; }
.event-source-coverage article > i { display:grid; place-items:center; width:35px; height:35px; border-radius:10px; color:#087f7b; background:#dff4f2; font-size:.94rem; }
.event-source-coverage article span { min-width:0; }
.event-source-coverage small,.event-source-coverage strong,.event-source-coverage em { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.event-source-coverage small { color:#71868a; font-size:.43rem; font-weight:900; letter-spacing:.045em; }
.event-source-coverage strong { margin-top:3px; color:#294f54; font-size:.66rem; }
.event-source-coverage em { margin-top:2px; color:#788b8f; font-size:.51rem; font-style:normal; }
.event-source-coverage article.partial { color:#89651b; border-color:#ead7a5; background:#fffaf0; }.event-source-coverage article.partial > i { color:#98701f; background:#fff0c9; }
.event-source-coverage article.unavailable { color:#a23d3d; border-color:#efc6c6; background:#fff5f5; }.event-source-coverage article.unavailable > i { color:#b43e3e; background:#ffe7e7; }

.live-player-meta { position:absolute; z-index:5; inset:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 11px; color:#d7e5e7; background:linear-gradient(180deg,rgba(2,12,15,.9),rgba(2,12,15,.35)); pointer-events:none; }
.live-player-meta span,.live-player-meta b { font-size:.55rem; font-weight:850; letter-spacing:.07em; }
.live-player-meta b { color:#b7dd46; }
.live-player-overlay { position:absolute; z-index:4; inset:0; display:grid; place-content:center; justify-items:center; padding:44px 24px 24px; color:#c6d6d8; background:rgba(4,17,21,.76); text-align:center; pointer-events:none; backdrop-filter:blur(1.5px); }
.live-player-overlay i { margin-bottom:9px; color:#70d7cf; font-size:2.25rem; }
.live-player-overlay h3 { margin:0; color:#eef6f7; font-size:.88rem; }
.live-player-overlay p { max-width:390px; margin:6px 0 0; color:#9fb4b8; font-size:.64rem; line-height:1.5; }
.live-player-overlay.error i { color:#ff8585; }
.live-player-overlay.stopped i { color:#ffcc74; }
.live-stale-warning { display:flex; align-items:flex-start; gap:10px; margin:10px 18px 0; padding:10px 12px; border:1px solid #ead7a5; border-radius:11px; color:#84631c; background:#fff9e8; }
.live-stale-warning > i { margin-top:1px; font-size:.95rem; }
.live-stale-warning span { min-width:0; }
.live-stale-warning strong,.live-stale-warning small { display:block; }
.live-stale-warning strong { font-size:.68rem; }
.live-stale-warning small { margin-top:2px; font-size:.59rem; line-height:1.4; }
.live-stale-warning.blocking { color:#a23d3d; border-color:#efc6c6; background:#fff4f4; }

.media-auto-selection { display:flex; align-items:center; gap:11px; margin:-5px 0 14px; padding:11px 14px; border:1px solid #c9e4e1; border-radius:12px; color:#276a67; background:#f1faf9; }
.media-auto-selection > i { display:grid; place-items:center; flex:0 0 31px; width:31px; height:31px; border-radius:9px; color:#087f7b; background:#dff4f2; }
.media-auto-selection span { min-width:0; }
.media-auto-selection strong,.media-auto-selection small { display:block; }
.media-auto-selection strong { font-size:.7rem; }
.media-auto-selection small { margin-top:2px; overflow:hidden; color:#64807f; font-size:.6rem; text-overflow:ellipsis; white-space:nowrap; }
.media-overview-warning { margin:0 0 12px; color:#89651b; font-size:.65rem; }
.media-availability-card.registered { border-color:#e5d7b4; background:#fffdf8; }
.media-availability-card.registered .media-availability-image { background:radial-gradient(circle,#34474b,#17262a); }
.media-availability-card.registered .availability-count { color:#89651b; }

/* Supergalería: tipos de evidencia, día real y canal físicamente seleccionado */
.media-mode-workspace { display:grid; gap:12px; }
.media-mode-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; padding:8px; border:1px solid #d8e5e6; border-radius:14px; background:#f7fafa; }
.media-mode-tabs button { display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:9px; align-items:center; min-width:0; padding:10px 11px; border:1px solid transparent; border-radius:10px; color:#5f777b; background:transparent; text-align:left; }
.media-mode-tabs button > i { display:grid; place-items:center; width:33px; height:33px; border-radius:9px; color:#087f7b; background:#dff4f2; }
.media-mode-tabs button span { min-width:0; }.media-mode-tabs button strong,.media-mode-tabs button small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.media-mode-tabs button strong { font-size:.64rem; }.media-mode-tabs button small { margin-top:2px; color:#819296; font-size:.49rem; }.media-mode-tabs button > b { display:grid; place-items:center; min-width:24px; height:24px; padding:0 5px; border-radius:999px; color:#557075; background:#e8efef; font-size:.53rem; }
.media-mode-tabs button.active { color:#fff; border-color:#0d918d; background:linear-gradient(135deg,#0d918d,#087377); box-shadow:0 7px 16px rgba(13,145,141,.18); }.media-mode-tabs button.active > i { color:#07191d; background:var(--lime); }.media-mode-tabs button.active small { color:#c8e2e1; }.media-mode-tabs button.active > b { color:#0b5557; background:#dff4f2; }
.evidence-timeline > header { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:10px; color:#c6d6d8; }.evidence-timeline > header strong,.evidence-timeline > header small { display:block; }.evidence-timeline > header strong { font-size:.65rem; }.evidence-timeline > header small { margin-top:2px; color:var(--lime); font-size:.58rem; }
.timeline-legend { display:flex; align-items:center; gap:5px; color:#789095; font-size:.5rem; }.timeline-legend i { display:inline-block; width:7px; height:7px; margin-left:5px; border-radius:50%; background:#85b8b3; }.timeline-legend i.incidents { background:#ff6666; }.timeline-legend i.requested { background:#ae8aff; }
.timeline-day-track { position:relative; height:28px; padding-top:7px; }.timeline-day-track input { position:relative; z-index:2; width:100%; margin:0; accent-color:var(--lime); }
.timeline-evidence-marks { position:absolute; z-index:3; inset:0 8px auto; height:9px; pointer-events:none; }.timeline-evidence-marks button { position:absolute; left:var(--at); top:0; width:5px; height:9px; padding:0; border:0; border-radius:3px; background:#85b8b3; transform:translateX(-50%); pointer-events:auto; }.timeline-evidence-marks button.incidents { height:11px; background:#ff6666; }.timeline-evidence-marks button.requested { height:11px; background:#ae8aff; }
.timeline-hours { display:flex; overflow-x:auto; margin:0 0 10px; padding:2px 0 5px; scrollbar-width:thin; scrollbar-color:#36525a transparent; }.timeline-hours button { flex:1 0 29px; padding:3px 0; border:0; border-right:1px solid #274047; color:#789095; background:transparent; font-size:.44rem; }.timeline-hours button:first-child { border-left:1px solid #274047; }.timeline-hours button:hover,.timeline-hours button:focus-visible { color:var(--lime); background:#122a30; }
.evidence-thumbs button > b { position:absolute; left:3px; top:3px; padding:2px 4px; border-radius:4px; color:#fff; background:rgba(179,55,55,.86); font-size:.44rem; }
.mosaic-bulk-note { display:grid; grid-template-columns:38px minmax(0,1fr); gap:11px; align-items:center; margin-bottom:12px; padding:12px 14px; border:1px solid #b9dfdb; border-radius:12px; color:#246b67; background:#f1faf9; }.mosaic-bulk-note > i { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; color:#087f7b; background:#dff4f2; }.mosaic-bulk-note strong,.mosaic-bulk-note small { display:block; }.mosaic-bulk-note strong { font-size:.7rem; }.mosaic-bulk-note small { margin-top:2px; color:#668281; font-size:.58rem; line-height:1.4; }

.trip-source-state { display:flex; align-items:center; gap:12px; margin:0 0 15px; padding:12px 14px; border:1px solid #c9e4e1; border-radius:12px; color:#276a67; background:#f2fbfa; }
.trip-source-state > i { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border-radius:10px; color:#087f7b; background:#dff4f2; }
.trip-source-state span { min-width:0; flex:1; }
.trip-source-state strong,.trip-source-state small { display:block; }
.trip-source-state strong { font-size:.72rem; }
.trip-source-state small { margin-top:3px; color:#657d81; font-size:.62rem; line-height:1.4; }
.trip-source-state.error { color:#a23d3d; border-color:#efc6c6; background:#fff4f4; }
.trip-source-state.error > i { color:#b43e3e; background:#ffe7e7; }
.trip-source-state.position_only { color:#89651b; border-color:#ead7a5; background:#fff9e8; }
.trip-source-state.position_only > i { color:#98701f; background:#fff0c9; }
.trip-source-state.empty { color:#5d7479; border-color:#dce6e7; background:#f7fafa; }
.trip-route-card.error { border-color:#efcaca; background:#fffafa; }
.trip-route-card.position_only { border-color:#e9dab5; background:#fffdf8; }
.route-state-label { display:block; width:100%; overflow:hidden; color:#718488; text-overflow:ellipsis; white-space:nowrap; }
.route-state-label.error { color:#aa4141; }
.route-state-label.position_only { color:#89651b; }

.report-card-count { position:absolute; z-index:2; right:18px; top:20px; display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:27px; padding:0 9px; border-radius:999px; color:var(--report-color,var(--teal)); background:var(--report-soft,var(--aqua)); font-size:.64rem; font-weight:900; }
.report-operations { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr); gap:15px; margin-top:16px; }
.report-operations > *, .report-operations .panel-body, .report-operations .data-table-wrap { min-width:0; max-width:100%; }
.report-source-list { display:grid; gap:2px; }
.report-source-list > div { display:grid; grid-template-columns:32px 1fr; gap:10px; align-items:center; padding:11px 0; border-bottom:1px solid #e9eeee; }
.report-source-list > div:last-child { border:0; }
.report-source-list > div > i { display:grid; place-items:center; width:30px; height:30px; border-radius:9px; color:var(--teal); background:var(--aqua); }
.report-source-list strong,.report-source-list small { display:block; }
.report-source-list strong { font-size:.7rem; }
.report-source-list small { margin-top:2px; color:var(--muted); font-size:.6rem; line-height:1.4; }
.report-table-empty { display:flex; align-items:center; justify-content:center; gap:8px; min-height:90px; color:#718488; font-size:.67rem; text-align:center; }
.report-table-empty i { color:var(--teal); font-size:.9rem; }
.report-preview-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.report-preview-grid > div { padding:12px; border-radius:10px; background:#f3f8f8; text-align:center; }
.report-preview-grid small,.report-preview-grid strong { display:block; }
.report-preview-grid small { color:#7f9094; font-size:.51rem; font-weight:850; }
.report-preview-grid strong { margin-top:4px; color:#29474d; font-size:1rem; }
.report-schedule-honest { display:grid; grid-template-columns:52px 1fr; gap:15px; align-items:start; padding:18px; border:1px dashed #d5c18c; border-radius:13px; color:#75591b; background:#fff9e9; }
.report-schedule-honest > i { display:grid; place-items:center; width:50px; height:50px; border-radius:13px; background:#fff0c9; font-size:1.35rem; }
.report-schedule-honest strong { font-size:.8rem; }
.report-schedule-honest p { margin:5px 0 13px; color:#806c40; font-size:.66rem; line-height:1.55; }
.report-schedule-honest div > div { display:flex; flex-wrap:wrap; gap:7px; }

/* Event-map continuity and verifiable on-demand video workflow */
.event-map-context-note { position:absolute; z-index:550; left:14px; top:14px; display:flex; align-items:center; gap:9px; max-width:min(330px,calc(100% - 28px)); padding:9px 12px; border:1px solid rgba(255,255,255,.9); border-radius:11px; color:#315d62; background:rgba(255,255,255,.94); box-shadow:0 9px 24px rgba(7,31,36,.15); backdrop-filter:blur(8px); pointer-events:none; }
.event-map-context-note > i { color:var(--teal); font-size:1rem; }.event-map-context-note span { min-width:0; }.event-map-context-note strong,.event-map-context-note small { display:block; }.event-map-context-note strong { font-size:.66rem; }.event-map-context-note small { margin-top:2px; color:#71878b; font-size:.56rem; }
.event-map-feed .empty-state { min-height:390px; padding:30px 22px; }
.request-auto-refresh { display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:11px; align-items:center; margin:0 0 12px; padding:11px 14px; border:1px solid #d8e5e6; border-radius:12px; color:#587176; background:#f7fafa; }
.request-auto-refresh > i { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; color:#658087; background:#e8efef; font-size:.9rem; }.request-auto-refresh span { min-width:0; }.request-auto-refresh strong,.request-auto-refresh small { display:block; }.request-auto-refresh strong { font-size:.7rem; }.request-auto-refresh small { margin-top:2px; color:#71868a; font-size:.6rem; line-height:1.4; }.request-auto-refresh > b { padding:5px 8px; border-radius:999px; color:#5f767b; background:#e8efef; font-size:.49rem; letter-spacing:.07em; }
.request-auto-refresh.active { color:#246b67; border-color:#b9dfdb; background:#f1faf9; }.request-auto-refresh.active > i { color:#087f7b; background:#dff4f2; animation:request-refresh-spin 1.8s linear infinite; }.request-auto-refresh.active > b { color:#087f7b; background:#dff4f2; }.request-auto-refresh.error { color:#a23d3d; border-color:#efc6c6; background:#fff4f4; }.request-auto-refresh.error > i,.request-auto-refresh.error > b { color:#b43e3e; background:#ffe7e7; animation:none; }
.request-detail-map { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:#f5f8f8; }.request-detail-map #requestDetailMap { height:220px; }.request-detail-map > small { display:block; padding:8px 11px; color:#6f8387; font-size:.55rem; line-height:1.4; }
.request-media-grid { display:grid; gap:10px; }.request-media-grid.multiple { grid-template-columns:1fr 1fr; }.request-media-grid article { overflow:hidden; border-radius:11px; background:#061216; }.request-media-grid header { display:flex; align-items:center; justify-content:space-between; padding:8px 10px; color:#d5e9e9; }.request-media-grid header strong { font-size:.58rem; }.request-media-grid header button { display:grid; place-items:center; width:28px; height:28px; border:0; border-radius:8px; color:#fff; background:#17464b; }.request-media-grid video { display:block; width:100%; max-height:300px; background:#000; }
@keyframes request-refresh-spin { to { transform:rotate(360deg); } }
.request-command-preview { display:grid; gap:14px; }.request-preview-guard { display:grid; grid-template-columns:38px minmax(0,1fr); gap:11px; align-items:center; padding:12px 14px; border:1px solid #b9dfdb; border-radius:12px; color:#246b67; background:#f1faf9; }.request-preview-guard > i { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; color:#087f7b; background:#dff4f2; font-size:1rem; }.request-preview-guard strong,.request-preview-guard small { display:block; }.request-preview-guard strong { font-size:.72rem; }.request-preview-guard small { margin-top:2px; color:#668281; font-size:.6rem; }
.request-preview-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }.request-preview-facts > div { min-width:0; padding:11px; border:1px solid var(--line); border-radius:10px; background:#f8fafa; }.request-preview-facts small,.request-preview-facts strong,.request-preview-facts span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.request-preview-facts small { color:#7b8e92; font-size:.49rem; font-weight:850; letter-spacing:.04em; }.request-preview-facts strong { margin-top:4px; color:#29474d; font-size:.68rem; }.request-preview-facts span { margin-top:2px; color:#71868a; font-size:.55rem; }
.request-command-label { color:#72878b; font-size:.52rem; font-weight:850; letter-spacing:.05em; }.request-command-wire { display:block; max-height:145px; overflow:auto; padding:13px 14px; border:1px solid #243a3e; border-radius:10px; color:#b7f2e9; background:#102328; font-size:.66rem; line-height:1.55; white-space:pre-wrap; overflow-wrap:anywhere; }

/* Queclink Manager file synchronization */
.manager-upload-form,.manager-import,.manager-archive,.manager-batch-confirm { display:grid; gap:16px; }
.manager-upload-hero { display:grid; grid-template-columns:56px minmax(0,1fr); gap:15px; align-items:start; padding:17px; border:1px solid #b9dfdb; border-radius:14px; color:#215f5c; background:linear-gradient(135deg,#f0fbf9,#f9fdfd); }
.manager-upload-hero > i { display:grid; place-items:center; width:54px; height:54px; border-radius:15px; color:#fff; background:linear-gradient(135deg,#0d918d,#176d89); box-shadow:0 9px 22px rgba(13,145,141,.22); font-size:1.35rem; }
.manager-upload-hero h3 { margin:4px 0 5px; color:#193e43; font-size:1rem; }.manager-upload-hero p { margin:0; color:#668083; font-size:.68rem; line-height:1.5; }
.manager-import-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }.manager-import-steps > span { display:grid; grid-template-columns:26px minmax(0,1fr); gap:1px 8px; align-items:center; padding:10px; border:1px solid #dce9e8; border-radius:11px; background:#fbfdfd; }.manager-import-steps b { display:grid; grid-row:1/3; place-items:center; width:25px; height:25px; border-radius:50%; color:#fff; background:#0d918d; font-size:.61rem; }.manager-import-steps strong { color:#345b60; font-size:.61rem; }.manager-import-steps small { color:#7b8d90; font-size:.49rem; line-height:1.35; }
.manager-security-note { display:grid; grid-template-columns:35px minmax(0,1fr); gap:11px; align-items:center; padding:11px 13px; border:1px solid #d6e5e5; border-radius:11px; color:#395f64; background:#f7fafa; }
.manager-security-note > i { display:grid; place-items:center; width:34px; height:34px; border-radius:9px; color:#087f7b; background:#dff4f2; }.manager-security-note strong,.manager-security-note small { display:block; }.manager-security-note strong { font-size:.7rem; }.manager-security-note small { margin-top:2px; color:#72868a; font-size:.59rem; line-height:1.42; }
.manager-import-associated { display:grid; grid-template-columns:38px minmax(0,1fr); gap:11px; align-items:center; padding:12px 14px; border:1px solid #b9dfd0; border-radius:12px; color:#245b4c; background:#effaf5; }.manager-import-associated.session { border-color:#d8e3e4; color:#426469; background:#f7fafa; }.manager-import-associated > i { display:grid; place-items:center; width:37px; height:37px; border-radius:10px; color:#fff; background:#15906f; font-size:1.05rem; }.manager-import-associated.session > i { background:#6f8f94; }.manager-import-associated strong,.manager-import-associated small { display:block; }.manager-import-associated strong { font-size:.72rem; }.manager-import-associated small { margin-top:3px; color:#66847b; font-size:.57rem; line-height:1.4; }
.manager-import-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }.manager-import-summary > div { min-width:0; padding:12px; border:1px solid #dce7e8; border-radius:11px; background:#f8fafa; }.manager-import-summary small,.manager-import-summary strong,.manager-import-summary span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.manager-import-summary small { color:#778b8f; font-size:.48rem; font-weight:850; letter-spacing:.05em; }.manager-import-summary strong { margin-top:4px; color:#24464b; font-size:.77rem; }.manager-import-summary span { margin-top:3px; color:#72868a; font-size:.55rem; }
.manager-friendly-insights { display:grid; gap:10px; padding:13px; border:1px solid #cbe3e1; border-radius:13px; background:linear-gradient(135deg,#f2fbfa,#fbfefe); }.manager-friendly-insights > header { display:flex; align-items:end; justify-content:space-between; gap:12px; }.manager-friendly-insights > header small,.manager-friendly-insights > header strong { display:block; }.manager-friendly-insights > header small { color:#0d918d; font-size:.48rem; font-weight:900; letter-spacing:.06em; }.manager-friendly-insights > header strong { margin-top:3px; color:#274d52; font-size:.73rem; }.manager-friendly-insights > header em { color:#71888b; font-size:.53rem; font-style:normal; white-space:nowrap; }.manager-friendly-insights > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }.manager-friendly-insights article { display:grid; grid-template-columns:32px minmax(0,1fr); gap:9px; align-items:center; min-width:0; padding:10px; border:1px solid #dbe9e9; border-radius:10px; background:rgba(255,255,255,.86); }.manager-friendly-insights article > i { display:grid; place-items:center; width:31px; height:31px; border-radius:9px; color:#087f7b; background:#dff4f2; }.manager-friendly-insights article span { min-width:0; }.manager-friendly-insights article small,.manager-friendly-insights article strong,.manager-friendly-insights article em { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.manager-friendly-insights article small { color:#73898d; font-size:.43rem; font-weight:850; letter-spacing:.04em; }.manager-friendly-insights article strong { margin-top:2px; color:#294f54; font-size:.68rem; }.manager-friendly-insights article em { margin-top:2px; color:#7a8c8f; font-size:.49rem; font-style:normal; }
.manager-optional-heading { display:flex; align-items:end; justify-content:space-between; gap:12px; padding-top:3px; }.manager-optional-heading small,.manager-optional-heading strong { display:block; }.manager-optional-heading small { color:#b2751f; font-size:.48rem; font-weight:900; letter-spacing:.06em; }.manager-optional-heading strong { margin-top:3px; color:#4f5359; font-size:.72rem; }.manager-optional-heading em { color:#7a8588; font-size:.54rem; font-style:normal; text-align:right; }
.manager-selection-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; }.manager-selection-toolbar > div { display:flex; flex-wrap:wrap; gap:6px; }.manager-selection-toolbar .btn-soft { padding:7px 10px; font-size:.58rem; }.manager-selection-toolbar > strong { color:#315f64; font-size:.62rem; white-space:nowrap; }
.manager-command-list { display:grid; gap:6px; max-height:430px; overflow:auto; padding:3px; scrollbar-color:#b7ccce transparent; }
.manager-command-row { display:grid; grid-template-columns:20px minmax(0,1fr) 110px; gap:10px; align-items:center; padding:10px 11px; border:1px solid #e0e9e9; border-radius:11px; background:#fff; cursor:pointer; transition:border-color .15s,background .15s; }.manager-command-row:hover { border-color:#afd8d4; background:#fbfefe; }.manager-command-row.blocked { opacity:.65; cursor:not-allowed; background:#f5f6f6; }
.manager-command-main { min-width:0; }.manager-command-main > span { display:flex; flex-wrap:wrap; gap:5px; align-items:center; }.manager-command-main b { color:#1f4c51; font-size:.66rem; }.manager-command-main em,.manager-batch-list em { padding:2px 5px; border-radius:999px; color:#62797d; background:#eaf0f0; font-size:.46rem; font-style:normal; font-weight:800; }.manager-command-main em.risk-critical,.manager-batch-list em.risk-critical { color:#a62f2f; background:#ffe5e5; }.manager-command-main em.risk-high,.manager-batch-list em.risk-high { color:#9a6417; background:#fff0d2; }
.manager-command-main > strong { display:block; margin-top:4px; color:#405f64; font-size:.63rem; }.manager-command-main code { display:block; margin-top:4px; overflow:hidden; color:#77898d; font-size:.52rem; text-overflow:ellipsis; white-space:nowrap; }.manager-command-transport { text-align:right; }.manager-command-transport b,.manager-command-transport small { display:block; }.manager-command-transport b { color:#316a69; font-size:.56rem; }.manager-command-transport small { margin-top:3px; color:#859497; font-size:.47rem; line-height:1.3; }
.manager-apply-options { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:10px; }.manager-apply-options > label { display:grid; gap:6px; padding:11px 12px; border:1px solid #dce7e8; border-radius:11px; background:#f9fbfb; }.manager-apply-options > label > span { color:#637b80; font-size:.57rem; font-weight:800; }.manager-risk-check { grid-template-columns:20px minmax(0,1fr)!important; align-items:center; cursor:pointer; }.manager-risk-check span { font-weight:400!important; }.manager-risk-check strong,.manager-risk-check small { display:block; }.manager-risk-check strong { color:#5f4a1d; font-size:.64rem; }.manager-risk-check small { margin-top:2px; color:#827759; font-size:.54rem; line-height:1.35; }
.manager-batch-list { display:grid; gap:6px; max-height:380px; overflow:auto; }.manager-batch-list article { display:grid; grid-template-columns:120px minmax(0,1fr); gap:5px 10px; padding:10px 11px; border:1px solid #e0e9e9; border-radius:10px; }.manager-batch-list article > span { display:flex; gap:5px; align-items:center; }.manager-batch-list strong { color:#405f64; font-size:.61rem; }.manager-batch-list code { grid-column:1/-1; overflow:hidden; color:#788b8f; font-size:.51rem; text-overflow:ellipsis; white-space:nowrap; }
.manager-apply-result { display:grid; justify-items:center; gap:9px; padding:18px; text-align:center; }.manager-apply-result > i { color:#128878; font-size:2.8rem; }.manager-apply-result.partial > i { color:#cf8a24; }.manager-apply-result h3 { margin:0; color:#21484e; font-size:1rem; }.manager-apply-result p { margin:0; color:#637b80; font-size:.68rem; }.manager-apply-result > small { color:#77898d; font-size:.58rem; line-height:1.45; }
.manager-archive > label { display:grid; gap:5px; }.manager-archive-list { display:grid; gap:7px; max-height:430px; overflow:auto; }.manager-archive-list article { display:grid; grid-template-columns:38px minmax(0,1fr) 34px; gap:10px; align-items:center; padding:11px 12px; border:1px solid #dfe8e9; border-radius:11px; }.manager-archive-list article > i { display:grid; place-items:center; width:37px; height:37px; border-radius:10px; color:#087f7b; background:#dff4f2; }.manager-archive-list strong,.manager-archive-list small,.manager-archive-list em { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.manager-archive-list strong { color:#31575c; font-size:.67rem; }.manager-archive-list small { margin-top:3px; color:#708589; font-size:.56rem; }.manager-archive-list em { margin-top:2px; color:#8b999b; font-size:.51rem; font-style:normal; }.manager-archive-list button { display:grid; place-items:center; width:32px; height:32px; border:0; border-radius:9px; color:#087f7b; background:#e8f5f3; }
.manager-advanced-commands{border:1px solid #dce7e8;border-radius:13px;background:#f9fbfb}.manager-advanced-commands>summary{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}.manager-advanced-commands>summary::-webkit-details-marker{display:none}.manager-advanced-commands>summary>i{display:grid;width:37px;height:37px;place-items:center;border-radius:10px;color:#087f7b;background:#dff4f2}.manager-advanced-commands>summary strong,.manager-advanced-commands>summary small{display:block}.manager-advanced-commands>summary strong{color:#31575c;font-size:.69rem}.manager-advanced-commands>summary small{margin-top:2px;color:#708589;font-size:.56rem}.manager-advanced-commands>div{display:grid;gap:14px;padding:0 14px 14px;border-top:1px solid #e4ebec}.manager-advanced-commands[open]>summary{background:#f1f8f7}.manager-advanced-commands[open]>div{padding-top:14px}

/* Verifiable shared inventory, GPS behavior and request-window controls */
.inventory-source { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; }
.inventory-source-heading { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:12px; align-items:center; min-width:0; }
.inventory-source-heading > i { display:grid; place-items:center; width:40px; height:40px; border-radius:11px; color:#1e806d; background:#dff4ed; font-size:1.08rem; }
.inventory-source-heading span { min-width:0; }.inventory-source-heading small,.inventory-source-heading strong,.inventory-source-heading em { display:block; }.inventory-source-heading small { margin:0; color:#0d918d; font-size:.48rem; font-weight:900; letter-spacing:.05em; }.inventory-source-heading strong { margin-top:2px; font-size:.72rem; }.inventory-source-heading em { margin-top:3px; color:#6b8084; font-size:.58rem; font-style:normal; line-height:1.4; }
.inventory-source-heading > code { max-width:150px; overflow:hidden; padding:5px 8px; border-radius:7px; color:#557075; background:rgba(255,255,255,.78); font-size:.5rem; text-overflow:ellipsis; white-space:nowrap; }
.inventory-source .inventory-source-facts { display:grid; grid-template-columns:repeat(5,minmax(66px,1fr)); gap:6px; justify-content:initial; }
.inventory-source .inventory-source-facts > div { padding:7px 9px; border:1px solid #dfe9e9; border-radius:9px; background:rgba(255,255,255,.86); text-align:center; }.inventory-source .inventory-source-facts small,.inventory-source .inventory-source-facts strong { display:block; }.inventory-source .inventory-source-facts small { margin:0; color:#74878b; font-size:.47rem; font-weight:800; }.inventory-source .inventory-source-facts strong { margin-top:3px; color:#173d42; font-size:.76rem; }
.inventory-source details { grid-column:1/-1; }.inventory-source-exclusions { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:6px; margin-top:8px; }.inventory-source-exclusions > span { padding:8px 10px; border-radius:9px; background:rgba(255,255,255,.8); }.inventory-source-exclusions strong,.inventory-source-exclusions small { display:block; }.inventory-source-exclusions strong { font-size:.58rem; }.inventory-source-exclusions small { font-size:.5rem; }
.inventory-source.warning .inventory-source-heading > i { color:#aa6712; background:#ffedc8; }.inventory-source.danger .inventory-source-heading > i { color:#b73f3f; background:#ffe0e0; }
.inventory-source.compact { grid-template-columns:minmax(0,1.25fr) minmax(420px,.75fr); padding:11px 14px; }.inventory-source.compact .inventory-source-heading > code { display:none; }.inventory-source.compact .inventory-source-heading em { white-space:normal; }
.driver-source-state { display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:11px; align-items:center; margin:14px 0 8px; padding:11px 14px; border:1px solid #b9dfdb; border-radius:12px; color:#246b67; background:#f1faf9; }.driver-source-state > i { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; color:#087f7b; background:#dff4f2; }.driver-source-state strong,.driver-source-state small { display:block; }.driver-source-state strong { font-size:.7rem; }.driver-source-state small { margin-top:2px; color:#668281; font-size:.59rem; line-height:1.4; }.driver-source-state > b { padding:5px 8px; border-radius:999px; color:#087f7b; background:#dff4f2; font-size:.48rem; text-transform:uppercase; }.driver-source-state.partial { color:#89651b; border-color:#ead7a5; background:#fff9e8; }.driver-source-state.partial > i,.driver-source-state.partial > b { color:#98701f; background:#fff0c9; }
.driver-source-label { display:block; margin-top:3px; color:#72888b; font-size:.47rem; font-weight:850; letter-spacing:.04em; }
.driver-behavior-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:16px; }.driver-behavior-grid > div { position:relative; min-width:0; padding:9px 7px 8px; border-radius:9px; background:#f4f8f8; text-align:center; }.driver-behavior-grid i { display:block; margin-bottom:3px; color:#0d918d; font-size:.78rem; }.driver-behavior-grid strong,.driver-behavior-grid small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.driver-behavior-grid strong { color:#29474d; font-size:.66rem; }.driver-behavior-grid small { margin-top:2px; color:#7c8e92; font-size:.43rem; font-weight:800; }
.driver-card-summary { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:11px 0 0; }.driver-card-summary > small { color:#718488; font-size:.52rem; text-align:right; line-height:1.35; }
.safety-program-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; margin:0 0 16px; }.safety-program-grid article { display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:9px; align-items:center; min-width:0; padding:11px; border:1px solid #dce7e8; border-radius:12px; background:#fff; }.safety-program-grid article > i { display:grid; place-items:center; width:35px; height:35px; border-radius:10px; color:#688085; background:#edf2f2; }.safety-program-grid span { min-width:0; }.safety-program-grid small,.safety-program-grid strong,.safety-program-grid em { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.safety-program-grid small { color:#819195; font-size:.4rem; font-weight:900; letter-spacing:.04em; }.safety-program-grid strong { margin-top:2px; color:#31545a; font-size:.59rem; }.safety-program-grid em { margin-top:2px; color:#7b8e91; font-size:.47rem; font-style:normal; }.safety-program-grid button { display:grid; justify-items:center; gap:2px; width:31px; padding:5px 0; border:0; border-radius:9px; color:#647d81; background:#edf2f2; }.safety-program-grid button b { font-size:.58rem; }.safety-program-grid article.active { border-color:#f0caca; background:#fffafa; }.safety-program-grid article.active > i,.safety-program-grid article.active button { color:#b84141; background:#ffe7e7; }
.request-mode-help { display:grid; grid-template-columns:35px minmax(0,1fr); gap:10px; align-items:center; padding:10px 12px; border:1px solid #c9e4e1; border-radius:11px; color:#276a67; background:#f2fbfa; }.request-mode-help > i { display:grid; place-items:center; width:34px; height:34px; border-radius:9px; color:#087f7b; background:#dff4f2; }.request-mode-help strong,.request-mode-help small { display:block; }.request-mode-help strong { font-size:.68rem; }.request-mode-help small { margin-top:2px; color:#668281; font-size:.57rem; line-height:1.4; }

@media (max-width:1150px) {
    .report-operations { grid-template-columns:1fr; }
    .event-source-coverage { grid-template-columns:1fr 1fr; }
    .inventory-source.compact { grid-template-columns:1fr; }.safety-program-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .media-mode-tabs { grid-template-columns:1fr 1fr; }
}
@media (max-width:700px) {
    .source-state,.trip-source-state { align-items:flex-start; flex-wrap:wrap; }
    .event-source-coverage { grid-template-columns:1fr; }
    .source-state .btn-soft,.trip-source-state .btn-soft { width:100%; }
    .live-stale-warning { margin-inline:12px; }
    .media-auto-selection { align-items:flex-start; }
    .media-auto-selection small { white-space:normal; }
    .report-preview-grid { grid-template-columns:1fr 1fr; }
    .report-schedule-honest { grid-template-columns:1fr; }
    .request-preview-facts { grid-template-columns:1fr 1fr; }
    .event-map-feed .empty-state { min-height:230px; }
    .manager-upload-hero { grid-template-columns:1fr; }.manager-import-steps { grid-template-columns:1fr; }.manager-import-summary { grid-template-columns:1fr 1fr; }.manager-friendly-insights > header,.manager-optional-heading { align-items:flex-start; flex-direction:column; }.manager-friendly-insights > header em { white-space:normal; }.manager-optional-heading em { text-align:left; }.manager-friendly-insights > div { grid-template-columns:1fr; }.manager-apply-options { grid-template-columns:1fr; }.manager-command-row { grid-template-columns:20px minmax(0,1fr); }.manager-command-transport { grid-column:2; text-align:left; }.manager-selection-toolbar { align-items:flex-start; flex-direction:column; }.manager-batch-list article { grid-template-columns:1fr; }.manager-batch-list code { grid-column:1; }
    .request-media-grid.multiple { grid-template-columns:1fr; }
    .inventory-source,.inventory-source.compact { grid-template-columns:1fr; }.inventory-source-heading { grid-template-columns:40px minmax(0,1fr); }.inventory-source-heading > code { grid-column:1/-1; max-width:none; }.inventory-source .inventory-source-facts { grid-template-columns:repeat(2,1fr); }.driver-source-state { grid-template-columns:36px 1fr; }.driver-source-state > b { grid-column:1/-1; text-align:center; }.driver-behavior-grid { grid-template-columns:repeat(2,1fr); }.driver-card-summary { align-items:flex-start; flex-direction:column; }.driver-card-summary > small { text-align:left; }.safety-program-grid { grid-template-columns:1fr; }
    .media-mode-tabs { display:flex; overflow-x:auto; }.media-mode-tabs button { flex:0 0 210px; }.evidence-timeline > header { align-items:flex-start; flex-direction:column; }.timeline-hours button { flex-basis:31px; }
}
/* Fast, explicit date presets keep the initial CloudCamara query bounded. */
.range-presets{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:-.15rem 0 1rem;padding:.7rem .85rem;border:1px solid #dce7e8;border-radius:14px;background:#f8fbfb}
.range-presets>span{margin-right:.25rem;color:#60777d;font-size:.58rem;font-weight:850;letter-spacing:.08em}
.range-presets .btn-soft{min-height:32px;padding:.35rem .65rem;font-size:.62rem}
.range-presets .btn-soft.active{color:#fff;border-color:#0d918d;background:#0d918d}
.range-presets>small{margin-left:auto;color:#71858a;font-size:.58rem}
@media(max-width:760px){.range-presets>small{flex-basis:100%;margin-left:0}.range-presets{margin-top:0}}
.event-review-state{display:inline-flex;align-items:center;justify-content:center;min-width:84px;padding:.35rem .55rem;border-radius:999px;background:#f0f3f6;color:#66717d;font-size:.68rem;font-weight:800;letter-spacing:.02em;white-space:nowrap}.event-review-state.reviewed,.event-review-state.recognized,.event-review-state.closed{background:#e3f6ef;color:#17735d}.event-review-state.false_positive{background:#eef0f3;color:#586270}.event-review-state.coaching{background:#efedff;color:#6253c8}.review-context{display:flex;align-items:center;gap:.85rem;padding:1rem;border:1px solid #e2e8ee;background:#f8fafb;border-radius:16px;margin-bottom:1rem}.review-context>i{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#dff4f2;color:#0d918d;font-size:1.2rem}.review-context span{display:flex;flex-direction:column}.review-context small{color:#6d7884}
.operational-workflow-panel{margin-top:1rem}.workflow-list{display:grid;gap:.7rem}.workflow-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.8rem;padding:.85rem;border:1px solid #e5eaef;border-radius:15px;background:#fff}.workflow-row>div{min-width:0}.workflow-row strong,.workflow-row small,.workflow-row p{display:block}.workflow-row small{color:#71808d;margin-top:.15rem}.workflow-row p{color:#5f6c78;margin:.3rem 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#efedff;color:#7163e8;font-size:1.15rem}.definition-only-banner{display:flex;align-items:center;gap:.8rem;padding:.85rem 1rem;border-radius:14px;background:#fff7e7;color:#7d5a18;margin-bottom:1rem}.definition-only-banner>i{font-size:1.35rem}.definition-only-banner span{display:flex;flex-direction:column}.operational-multi-select{min-height:150px}
.challenge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.challenge-card{display:flex;flex-direction:column;gap:.75rem;padding:1.15rem;border:1px solid #e1e7ec;border-radius:19px;background:#fff;box-shadow:0 8px 25px rgba(24,45,63,.055)}.challenge-card header{display:flex;align-items:center;justify-content:space-between}.challenge-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:#fff2dc;color:#d8891f;font-size:1.3rem}.challenge-card h3{font-size:1.05rem;margin:0}.challenge-card>p{color:#667482;min-height:2.8em;margin:0}.challenge-progress span{display:flex;align-items:end;justify-content:space-between;margin-bottom:.45rem}.challenge-progress strong{font-size:1.4rem;color:#192c39}.challenge-progress small{color:#6f7c87}.challenge-progress>i{display:block;height:8px;border-radius:999px;background:#edf1f4;overflow:hidden}.challenge-progress>i>b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0d918d,#7163e8)}.challenge-meta{display:flex;flex-wrap:wrap;gap:.55rem 1rem;color:#667482;font-size:.78rem}.challenge-meta span{display:flex;align-items:center;gap:.35rem}.challenge-units{color:#7a8791;min-height:2.4em}.challenge-card>.btn-soft{margin-top:auto}
@media(max-width:1100px){.challenge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-row{grid-template-columns:auto minmax(0,1fr) auto}.workflow-row>.btn-soft{grid-column:2/-1;justify-self:start}}
@media(max-width:720px){.challenge-grid{grid-template-columns:1fr}.workflow-row{grid-template-columns:auto minmax(0,1fr)}.workflow-row>.badge-status{grid-column:2}.workflow-row>.btn-soft{grid-column:2}.event-review-state{display:none}}

/* Fast fleet scope and progressive data loading */
.fleet-scope-picker{position:relative;z-index:40;min-width:230px;color:#29474d}
.fleet-scope-picker>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px;padding:7px 11px;border:1px solid #cedadb;border-radius:8px;background:#fff;cursor:pointer;list-style:none;user-select:none}
.fleet-scope-picker>summary::-webkit-details-marker{display:none}.fleet-scope-picker>summary span{min-width:0}.fleet-scope-picker>summary small,.fleet-scope-picker>summary strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fleet-scope-picker>summary small{color:#7a8d91;font-size:.46rem;font-weight:900;letter-spacing:.055em}.fleet-scope-picker>summary strong{margin-top:1px;font-size:.65rem}.fleet-scope-picker>summary>i{color:#6c8387;font-size:.68rem;transition:transform .18s ease}.fleet-scope-picker[open]>summary{border-color:#65aaa5;box-shadow:0 0 0 3px rgba(13,145,141,.1)}.fleet-scope-picker[open]>summary>i{transform:rotate(180deg)}
.fleet-scope-popover{position:absolute;z-index:1000;right:0;top:calc(100% + 6px);width:min(360px,88vw);padding:9px;border:1px solid #d4e0e1;border-radius:12px;background:#fff;box-shadow:0 18px 44px rgba(7,31,36,.2)}
.fleet-scope-actions{display:flex;gap:6px;padding:0 0 8px}.fleet-scope-actions button{flex:1;padding:6px 8px;border:1px solid #d8e5e6;border-radius:8px;color:#38666a;background:#f7fafa;font-size:.55rem;font-weight:850}.fleet-scope-actions button:hover{color:#087f7b;border-color:#9bcac6;background:#edf9f8}
.fleet-scope-list{display:grid;max-height:280px;overflow:auto;overscroll-behavior:contain}.fleet-scope-list label{display:grid;grid-template-columns:18px minmax(0,1fr) 8px;gap:8px;align-items:center;padding:8px 6px;border-top:1px solid #edf1f1;cursor:pointer}.fleet-scope-list label:hover{background:#f4fafa}.fleet-scope-list input{width:15px;height:15px;margin:0;accent-color:#0d918d}.fleet-scope-list span{min-width:0}.fleet-scope-list strong,.fleet-scope-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fleet-scope-list strong{font-size:.65rem}.fleet-scope-list small{margin-top:2px;color:#7a8d91;font-size:.53rem}
.progressive-loading{display:flex;align-items:center;justify-content:center;gap:11px;min-height:76px;margin:0 0 14px;padding:14px;border:1px solid #d9e6e7;border-radius:12px;color:#547277;background:linear-gradient(135deg,#f7fbfb,#fff)}.progressive-loading>.spinner-border{color:#0d918d}.progressive-loading strong,.progressive-loading small{display:block}.progressive-loading strong{font-size:.69rem}.progressive-loading small{margin-top:2px;color:#7a8d91;font-size:.56rem}
.report-query{display:flex;align-items:end;gap:10px;margin-bottom:14px;padding:12px 14px}.report-query>label{display:grid;gap:4px;color:#718287;font-size:.58rem;font-weight:850}.report-query input{min-width:145px}.report-query .fleet-scope-picker{margin-left:auto}.trip-filter .fleet-scope-picker{flex:0 1 280px}.trip-map-loading{margin-top:0}.trip-map-loading #tripMap{height:440px}
.dashboard-period .fleet-scope-picker{min-width:210px;margin-right:4px}.dashboard-period .fleet-scope-picker>summary{min-height:32px;padding-block:4px;border-color:#e1e9e9;background:#f8fbfb}
@media(max-width:900px){.report-query{flex-wrap:wrap}.report-query .fleet-scope-picker{margin-left:0}.report-query>label{flex:1}.report-query .fleet-scope-picker{flex:1 1 260px}}
@media(max-width:700px){.fleet-scope-picker{width:100%;min-width:0}.fleet-scope-popover{left:0;right:auto;width:100%}.dashboard-period .fleet-scope-picker{flex:1 1 100%;min-width:0;margin:0}.report-query>label,.report-query>button{width:100%;flex:1 1 100%}.report-query input{width:100%;min-width:0}.progressive-loading{justify-content:flex-start;text-align:left}.trip-filter .fleet-scope-picker{flex:1 1 100%}}
