:root {
  color-scheme: dark;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: #0b1018;
  color: #e8edf5;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  --bg: #0b1018;
  --panel: #111925;
  --panel-soft: #151f2d;
  --line: #222e3e;
  --muted: #7f8da1;
  --text: #e8edf5;
  --blue: #75a9ff;
  --green: #56d6a0;
  --amber: #f2bb5d;
  --red: #f17c7c;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--bg); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 16px; }
button, input, select { font: inherit; }
button, a, select { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }

.app-shell { min-height: 100vh; }
.sidebar {
  width: 236px;
  padding: 27px 16px 20px;
  border-right: 1px solid #1b2532;
  background: #0d131d;
  position: fixed;
  inset: 0 auto 0 0;
  display: flex;
  flex-direction: column;
  z-index: 2;
}
.sidebar-header { display: flex; align-items: center; justify-content: space-between; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 10px 35px; }
.brand-mark { display: grid; flex: 0 0 auto; place-items: center; width: 44px; height: 44px; }
.brand-mark img { width: 44px; height: auto; filter: drop-shadow(0 2px 6px #0008); }
.brand-copy { display: grid; gap: 2px; }
.brand-copy strong { font: 700 17px -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; letter-spacing: .08em; }
.brand-copy small { color: #8291a6; font-size: 9px; font-weight: 700; letter-spacing: .22em; }
.collapse-button {
  display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px;
  margin: 0 3px 35px 0; padding: 0; border: 1px solid #283547; border-radius: 6px;
  background: #141d29; color: #aab6c6; cursor: pointer; font-size: 20px;
  line-height: 1; transition: .15s ease;
}
.collapse-button:hover { border-color: #48617f; color: white; }
.sidebar-label, .section-kicker, .stat-label, th {
  color: #77869a; font-size: 9px; font-weight: 700; letter-spacing: .12em;
}
.sidebar-label { padding: 0 11px 10px; }
.main-nav { display: grid; gap: 5px; }
.nav-link {
  display: flex; align-items: center; gap: 12px; padding: 10px 11px;
  border: 1px solid transparent; border-radius: 7px; color: #98a5b6;
  font-size: 12px; font-weight: 500; transition: .15s ease;
}
.nav-link > span { width: 17px; color: #78889c; text-align: center; font-size: 16px; }
.nav-link > span.nav-label { width: auto; }
.nav-link:hover { background: #141e2b; color: var(--text); }
.nav-link.active { color: #dce9ff; border-color: #233b5d; background: #182a41; }
.nav-link.active > span { color: #88b5ff; }
.nav-link.has-today-event > span:first-child { color: #f2bb5d; animation: agenda-pulse 2.4s ease-in-out infinite; }
.nav-link > span.nav-count, .nav-link.active > span.nav-count { display: inline-grid; place-items: center; width: auto; min-width: 17px; height: 17px; margin-left: auto; padding: 0 4px; border: 1px solid #5c4a26; border-radius: 999px; background: #2a2316; color: #f2bb5d; font-size: 9px; font-weight: 700; font-variant-numeric: tabular-nums; }
.app-shell.is-sidebar-collapsed .nav-link > span.nav-count { display: none; }
@keyframes agenda-pulse { 0%, 100% { opacity: 1; text-shadow: 0 0 0 transparent; } 50% { opacity: .55; text-shadow: 0 0 8px #f2bb5d99; } }
@media (prefers-reduced-motion: reduce) { .nav-link.has-today-event > span:first-child { animation: none; text-shadow: 0 0 6px #f2bb5d80; } }
.sidebar-bottom { margin-top: auto; }
.session-card {
  display: flex; gap: 10px; align-items: center; margin: 0 4px; padding: 11px 10px;
  border: 1px solid #222e3e; border-radius: 8px; background: #111925;
}
.session-card > .session-text { display: grid; flex: 1; gap: 3px; min-width: 0; }
.session-initial { display: none; place-items: center; width: 32px; height: 32px; border: 1px solid #405474; border-radius: 50%; background: #22334b; box-shadow: 0 0 0 2px #111925, 0 0 0 3px #56d6a0; color: #c4d9fc; font-size: 12px; font-weight: 700; }
.session-card strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.session-logout { display: grid; flex: 0 0 auto; place-items: center; width: 26px; height: 26px; padding: 0; border: 1px solid #283547; border-radius: 6px; background: #141d29; color: #aab6c6; cursor: pointer; font-size: 11px; transition: .15s ease; }
.session-logout:hover { border-color: #70464b; background: #342329; color: #f17c7c; }
.session-card strong { font-size: 10px; font-weight: 600; }
.session-card small { color: var(--muted); font-size: 9px; }
.session-dot, .live-dot, .footer-live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 9px #56d6a055; }
.sidebar-footnote { margin: 12px 8px 0; color: #67768a; font-size: 9px; line-height: 1.7; }

.main-content { max-width: 1700px; margin-left: 236px; padding: 0 38px 24px; }
.app-shell.is-sidebar-collapsed .sidebar { width: 76px; padding-right: 9px; padding-left: 9px; }
.app-shell.is-sidebar-collapsed .sidebar-header { flex-direction: column; }
.app-shell.is-sidebar-collapsed .brand { padding: 0 0 14px; }
.app-shell.is-sidebar-collapsed .brand-copy,
.app-shell.is-sidebar-collapsed .sidebar-label,
.app-shell.is-sidebar-collapsed .nav-label,
.app-shell.is-sidebar-collapsed .session-card > .session-text,
.app-shell.is-sidebar-collapsed .session-dot,
.app-shell.is-sidebar-collapsed .sidebar-footnote { display: none; }
.app-shell.is-sidebar-collapsed .collapse-button { margin: 0 0 20px; }
.app-shell.is-sidebar-collapsed .main-nav { gap: 7px; }
.app-shell.is-sidebar-collapsed .nav-link { justify-content: center; padding: 11px 0; }
.app-shell.is-sidebar-collapsed .nav-link > span { width: auto; font-size: 18px; }
.app-shell.is-sidebar-collapsed .session-card { flex-direction: column; justify-content: center; gap: 9px; margin: 0; padding: 12px 0; }
.app-shell.is-sidebar-collapsed .session-initial { display: grid; }
.app-shell.is-sidebar-collapsed .main-content { margin-left: 76px; }
.topbar {
  height: 66px; display: flex; align-items: center; justify-content: space-between;
  border-bottom: 1px solid #1b2532;
}
.breadcrumb { display: flex; gap: 10px; align-items: center; color: #76869a; font-size: 11px; }
.breadcrumb strong { color: #c9d2de; font-weight: 500; }
.crumb-divider { color: #435064; }
.topbar-actions { display: flex; gap: 13px; align-items: center; }
.local-pill { display: flex; align-items: center; gap: 7px; padding: 6px 9px; border: 1px solid #27473d; border-radius: 20px; color: #8be1bb; background: #14251f; font-size: 8px; font-weight: 700; letter-spacing: .08em; }
.local-pill span { width: 5px; height: 5px; border-radius: 50%; background: var(--green); }
.icon-button {
  display: grid; place-items: center; width: 31px; height: 31px; padding: 0;
  border: 1px solid #283547; border-radius: 7px; background: #141d29; color: #aab6c6;
  cursor: pointer; font-size: 17px; transition: .15s ease;
}
.icon-button:hover { border-color: #48617f; color: white; }
.demo-warning {
  display: flex; gap: 10px; align-items: flex-start; margin: 17px 0 0;
  padding: 10px 13px; border: 1px solid #574526; border-radius: 7px;
  background: #241e13; color: #e4c681; font-size: 10px; line-height: 1.55;
}
.demo-warning p { margin: 0; }
.warning-icon { flex: 0 0 auto; color: #f4c761; font-size: 15px; }
.notice { margin-top: 12px; padding: 10px 12px; border: 1px solid #6b3636; border-radius: 7px; background: #2b191b; color: #ffb6b6; font-size: 11px; }
.notice[hidden] { display: none; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 30px 0 22px; }
.eyebrow { display: flex; align-items: center; gap: 7px; color: #8999ad; font-size: 9px; font-weight: 700; letter-spacing: .13em; }
.live-dot { width: 6px; height: 6px; }
h1, h2, p { margin-top: 0; }
h1, h2 { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
h1 { margin: 8px 0 5px; font-size: clamp(25px, 3vw, 31px); letter-spacing: -.04em; }
.page-subtitle { margin: 0; color: #8190a4; font-size: 11px; }
.heading-actions { display: flex; gap: 8px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 34px; padding: 0 12px; border-radius: 6px; font-size: 10px; font-weight: 600; cursor: pointer; transition: .15s ease; }
.button-primary { border: 1px solid #548bdf; background: #3976c9; color: white; box-shadow: inset 0 1px #ffffff20; }
.button-primary:hover { border-color: #79aaff; background: #4684db; }
.button-secondary { border: 1px solid #2c394b; background: #151f2c; color: #c1ccda; }
.button-secondary:hover { border-color: #51627a; background: #1c2938; }
.button > span { font-size: 14px; }

.stats-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.stat-card { display: flex; align-items: center; gap: 12px; min-height: 90px; padding: 15px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.stat-icon { display: grid; place-items: center; flex: 0 0 35px; height: 35px; border-radius: 8px; font-size: 16px; font-weight: 700; }
.icon-blue { color: #8db9ff; background: #1b2c44; }
.icon-green { color: #75e3b3; background: #18342d; }
.icon-amber { color: #f3c56c; background: #382d1c; }
.icon-red { color: #ff8e8e; background: #3a2226; }
.icon-gray { color: #aab6c6; background: #1c2532; }
#alert-stat-icon { transition: color .15s ease, background-color .15s ease; }
#alert-stat-icon[data-level="0"] { color: #75e3b3; background: #18342d; }
#alert-stat-icon[data-level="1"] { color: #f3c56c; background: #382d1c; }
#alert-stat-icon[data-level="2"] { color: #f3a36e; background: #3d2b20; }
#alert-stat-icon[data-level="3"] { color: #ff8e8e; background: #3a2226; }
.alert-info-wrap { position: relative; z-index: 30; flex: 0 0 35px; width: 35px; height: 35px; outline: none; }
.alert-info-wrap:focus-visible > #alert-stat-icon { outline: 2px solid #d8e4f4; outline-offset: 2px; }
.alert-guidelines { position: fixed; top: 0; left: 0; z-index: 30; display: none; width: min(390px, calc(100vw - 32px)); max-height: min(70vh, 540px); overflow-y: auto; padding: 13px; border: 1px solid #344256; border-radius: 8px; background: #101823; box-shadow: 0 12px 30px #000b; color: #c5cedb; cursor: default; }
.alert-info-wrap:hover .alert-guidelines, .alert-info-wrap:focus-within .alert-guidelines { display: grid; gap: 11px; }
.alert-guidelines-title { color: #eef3fa; font-size: 11px; font-weight: 700; }
.alert-guideline { display: grid; gap: 5px; padding: 8px 9px; border-left: 2px solid #5ab987; border-radius: 3px; background: #151f2c; font-size: 9px; line-height: 1.45; }
.alert-guideline[hidden] { display: none; }
.alert-guideline strong { color: #e2eaf5; font-size: 9px; }
.alert-guideline ul { display: grid; gap: 4px; padding: 0 0 0 15px; margin: 0; list-style: disc; }
.alert-guideline li { padding-left: 1px; }
.alert-guideline li::marker { color: #91a4bc; }
.alert-guideline.level-1 { border-left-color: #dbb354; }
.alert-guideline.level-2 { border-left-color: #e48c50; }
.alert-guideline.level-3 { border-left-color: #db6767; }
.alert-guideline .alert-guideline-sublist { padding-left: 22px; list-style: circle; }
.alert-guideline .alert-guideline-sublist li { font-style: italic; }
.stat-card > div:last-child { display: grid; gap: 3px; min-width: 0; }
.stat-label { white-space: nowrap; font-size: 8px; }
.stat-card strong { color: #eaf0f8; font: 600 20px -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
.stat-card small { color: #78879a; font-size: 9px; }
.command-stat .alert-stat-values strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.command-stat .alert-stat-values small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#command-status[data-mode="pc"] { color: #7bd9ad; }
#command-stat-icon[data-mode="pc"] { color: #75e3b3; background: #18342d; }
.crew-summary .is-pc-agent:not(.duplicate-agent) { color: #7bd9ad; font-weight: 700; }
@media (max-width: 1400px) {
  .stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stats-grid > :last-child { grid-column: span 2; }
}
.stat-card > .partner-stat-value { display: grid; gap: 3px; min-width: 0; }
.partner-count-input { width: 100%; max-width: 64px; padding: 1px 4px; margin-left: -5px; border: 1px solid transparent; border-radius: 5px; outline: 0; background: transparent; color: #eaf0f8; font: 600 20px -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; -moz-appearance: textfield; }
.partner-count-input::-webkit-inner-spin-button, .partner-count-input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.partner-count-input:hover { border-color: #2e3b4d; background: #111925; }
.partner-count-input:focus { border-color: #6294df; background: #0e1620; box-shadow: 0 0 0 2px #4d85d522; }
.partner-count-input[readonly] { cursor: default; }
.partner-count-input[readonly]:hover, .partner-count-input[readonly]:focus { border-color: transparent; background: transparent; box-shadow: none; }
.partner-note-stale { color: var(--amber); }
.partner-stats .partner-stat-value { flex: 1 1 auto; padding-right: 30px; }
.partner-stats .stat-label { white-space: normal; }
.partner-stat-value [data-partner-note] { overflow-wrap: anywhere; }
.partner-command { display: flex; flex-wrap: wrap; grid-column: 1 / -1; align-items: center; gap: 4px 12px; padding: 8px 12px; }
.partner-command-label { color: #aab6c6; font-size: 9px; font-weight: 700; letter-spacing: .04em; }
.partner-command strong { color: #e8edf5; font-size: 11px; }
.partner-command-phone { color: #9fb0c6; font-size: 10px; font-variant-numeric: tabular-nums; }
.partner-command-phone i { margin-right: 3px; color: #647287; font-size: 9px; }
.alert-stat strong { font-size: 16px; }
.alert-stat-toggle { position: relative; display: block; min-width: 0; padding: 0; }
.alert-stat-summary { display: flex; align-items: center; gap: 12px; min-height: 90px; padding: 15px; cursor: pointer; list-style: none; }
.alert-stat-summary::-webkit-details-marker { display: none; }
.alert-stat-summary:focus-visible { border-radius: 8px; outline: 2px solid #6294df; outline-offset: -3px; }
.alert-stat-values { display: grid; flex: 1; gap: 3px; min-width: 0; }
.alert-stat-values .stat-label { white-space: nowrap; }
.alert-stat-values strong { color: #eaf0f8; font: 600 16px -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
.alert-stat-values small { color: #78879a; font-size: 9px; }
.alert-toggle-indicator { margin-left: auto; color: #8795a7; font-size: 14px; transition: transform .15s ease; }
.alert-stat-toggle[open] .alert-toggle-indicator { transform: rotate(180deg); }
.alert-details { position: absolute; top: calc(100% - 1px); right: -1px; left: -1px; z-index: 20; padding: 0 15px 15px; border: 1px solid var(--line); border-top-color: #283547; border-radius: 0 0 8px 8px; background: var(--panel); box-shadow: 0 12px 30px #0009; }
.alert-stat-toggle[open] { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.alert-details .section-kicker { margin-top: 14px; }
.alert-details h2 { margin: 4px 0 0; font-size: 15px; letter-spacing: -.025em; }
.alert-details .field-label { margin-top: 14px; }
.alert-details .muted-copy { margin-bottom: 0; }

.panel { border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.units-panel { overflow: hidden; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 18px; }
.panel-heading h2, .alert-panel h2 { margin: 4px 0 0; font-size: 15px; letter-spacing: -.025em; }
.count-badge { display: inline-grid; place-items: center; min-width: 19px; height: 18px; margin-left: 5px; padding: 0 5px; border: 1px solid #304056; border-radius: 10px; background: #1a2839; color: #9bb1cd; font: 600 9px -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; vertical-align: 2px; }
.search-box { display: flex; align-items: center; gap: 8px; width: min(245px, 40%); height: 31px; padding: 0 9px; border: 1px solid #293648; border-radius: 6px; background: #0d141e; color: #78879a; }
.search-box > span { font-size: 17px; }
.search-box input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: #dce4ef; font-size: 10px; }
.search-box input::placeholder { color: #69778a; }
kbd { flex: 0 0 auto; padding: 2px 4px; border: 1px solid #303c4d; border-radius: 3px; color: #8591a1; font: 9px 'DM Sans', sans-serif; }
.table-scroll { position: relative; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; text-align: left; white-space: nowrap; }
thead { background: #141e2b; }
th { height: 31px; padding: 0 14px; font-size: 8px; }
td { height: 53px; padding: 7px 14px; border-top: 1px solid #202b39; color: #c5cedb; font-size: 10px; }
tbody tr:hover { background: #141e2a; }
tbody tr.unit-row { cursor: pointer; }
tbody tr.unit-row:focus-visible { outline: 2px solid #6294df; outline-offset: -2px; }
.unit-marker { width: 6px; height: 6px; border-radius: 50%; background: #76a9ff; box-shadow: 0 0 7px #76a9ff55; }
.agent-cell { display: grid; gap: 3px; }
.agent-cell strong { color: #dce4ed; font-size: 10px; font-weight: 700; }
.agent-cell small { color: #76869a; font-size: 9px; }
.agent-badge { color: #9fb8d8; font-weight: 600; }
.agent-actions-cell { width: 46px; text-align: center; }
.crew-cell { display: grid; gap: 8px; min-width: 210px; max-width: 360px; }
.crew-summary { color: #c5cedb; font-size: 9px; line-height: 1.5; white-space: normal; }
.duplicate-agent { color: #ff7777; font-weight: 700; animation: duplicate-agent-flash 1s steps(2, start) infinite; }
@keyframes duplicate-agent-flash { to { color: #ff7777; text-shadow: 0 0 8px #ff4d4d; } }
@media (prefers-reduced-motion: reduce) { .duplicate-agent { animation: none; text-shadow: 0 0 8px #ff4d4d; } }
.seat-grid { display: grid; grid-template-columns: repeat(2, minmax(150px, 1fr)); gap: 7px; padding: 8px; border: 1px solid #2a3748; border-radius: 6px; background: #0e1620; }
.seat-grid[hidden] { display: none; }
.seat-field { display: grid; gap: 4px; min-width: 0; }
.seat-control { display: flex; align-items: center; gap: 3px; min-width: 0; }
.seat-control .seat-select { flex: 1; }
.seat-clear-button { flex: 0 0 auto; display: grid; place-items: center; width: 16px; height: 16px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: #c27a7f; cursor: pointer; font-size: 13px; line-height: 1; }
.seat-clear-button:hover { background: #342329; color: #f17c7c; }
.seat-clear-button:focus-visible { outline: 2px solid #6294df; outline-offset: 1px; }
.seat-clear-button.is-invisible { visibility: hidden; }
.seat-field > span:first-child { color: #91a0b3; font-size: 8px; font-weight: 700; letter-spacing: .04em; }
.seat-select { width: 100%; min-width: 0; min-height: 30px; padding: 4px 20px 4px 7px; border: 1px solid #2e3b4d; border-radius: 5px; background-color: #17212e; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M1 1l3 3 3-3' fill='none' stroke='%238795a7' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-position: right 7px center; background-repeat: no-repeat; color: #dce5f0; font-size: 9px; text-overflow: ellipsis; -webkit-appearance: none; appearance: none; }
.seat-select:focus { border-color: #6294df; outline: 0; box-shadow: 0 0 0 2px #4d85d522; }
.vehicle-assignment { display: grid; gap: 6px; min-width: 210px; }
.vehicle-assignment-summary { color: #c5cedb; font-size: 9px; white-space: normal; }
.vehicle-summary-list { display: grid; height: 38px; align-content: center; gap: 1px; }
.vehicle-summary-item { display: flex; align-items: center; gap: 6px; min-width: 0; overflow: hidden; padding: 0 5px; border-left: 3px solid var(--vehicle-color, #45648c); border-radius: 2px; background: #17212e; white-space: nowrap; }
.vehicle-summary-item strong { flex: 0 1 auto; overflow: hidden; color: #dce5f0; font-size: 9px; font-weight: 600; line-height: 1.2; text-overflow: ellipsis; }
.vehicle-summary-item small { flex: 0 10 auto; overflow: hidden; min-width: 0; color: #91a4bc; font-size: 8px; letter-spacing: .04em; line-height: 1.2; text-overflow: ellipsis; }
.vehicle-summary-count-1 { grid-template-rows: minmax(0, 1fr); align-content: stretch; }
.vehicle-summary-count-1 .vehicle-summary-item strong { font-size: 11px; }
.vehicle-summary-count-1 .vehicle-summary-item small { font-size: 9px; }
.vehicle-summary-count-2 { grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 2px; }
.vehicle-summary-count-3, .vehicle-summary-count-4 { grid-template-rows: repeat(2, minmax(0, 1fr)); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 3px; }
.vehicle-summary-count-3 .vehicle-summary-item, .vehicle-summary-count-4 .vehicle-summary-item { gap: 4px; }
.vehicle-summary-empty { color: #94a1b2; }
.unit-vehicles-editor { display: grid; gap: 6px; min-width: 195px; }
.unit-vehicles-editor[hidden] { display: none; }
.unit-vehicle-slot { display: flex; align-items: center; gap: 5px; }
.unit-vehicle-select { flex: 1; box-sizing: border-box; width: 100%; min-width: 150px; min-height: 30px; padding: 4px 7px; border: 1px solid #2e3b4d; border-radius: 5px; background: #17212e; color: #dce5f0; font-size: 9px; }
.unit-vehicle-select:focus { border-color: #6294df; outline: 0; box-shadow: 0 0 0 2px #4d85d522; }
.remove-vehicle-button { flex: 0 0 auto; width: 25px; height: 25px; border: 1px solid #3b4656; border-radius: 5px; background: #202632; color: #b3becd; cursor: pointer; font-size: 15px; line-height: 1; }
.remove-vehicle-button:hover { border-color: #794343; background: #321f1d; color: #f19a84; }
.add-vehicle-button { justify-self: start; padding: 5px 7px; border: 1px solid #304056; border-radius: 5px; background: #17212e; color: #9fb8d8; cursor: pointer; font-size: 9px; }
.add-vehicle-button:hover:not(:disabled) { border-color: #6294df; color: #dce5f0; }
.add-vehicle-button:disabled { opacity: .5; cursor: not-allowed; }
.sector-input { width: 100%; min-width: 100px; padding: 6px 7px; border: 1px solid transparent; border-radius: 5px; outline: 0; background: transparent; color: #c5cedb; font-size: 10px; font-weight: 700; }
.unit-sector-cell { width: 180px; }
.note-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; gap: 10px; padding: 0 10px 10px; }
.note-grid-empty { grid-column: 1 / -1; }
.note-search { width: min(260px, 100%); }
.auth-screen { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px max(16px, env(safe-area-inset-right, 0px)) 24px max(16px, env(safe-area-inset-left, 0px)); overflow-y: auto; background: radial-gradient(circle at 50% 20%, #16243a, #0b1018 70%); }
.welcome-screen { position: fixed; inset: 0; z-index: 110; display: grid; place-items: center; padding: 24px max(16px, env(safe-area-inset-right, 0px)) 24px max(16px, env(safe-area-inset-left, 0px)); background: #0b1018b3; backdrop-filter: blur(14px) saturate(.8); -webkit-backdrop-filter: blur(14px) saturate(.8); cursor: pointer; animation: welcome-in .3s ease both; }
.welcome-screen.is-leaving { animation: welcome-out .3s ease both; }
.welcome-card { display: grid; justify-items: center; gap: 8px; text-align: center; }
.welcome-card h1 { margin: 6px 0 0; font-size: clamp(24px, 4vw, 34px); letter-spacing: -.03em; }
.welcome-identity { margin: 0; color: #9cbcff; font-size: 12px; font-weight: 700; letter-spacing: .06em; }
.welcome-status { margin: 4px 0 0; color: #8795a7; font-size: 10px; letter-spacing: .04em; }
.welcome-progress { overflow: hidden; width: 140px; height: 3px; margin-top: 6px; border-radius: 999px; background: #1e2a39; }
.welcome-progress span { display: block; width: 100%; height: 100%; background: #75a9ff; transform-origin: left; animation: welcome-progress 2s linear both; }
@keyframes welcome-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes welcome-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes welcome-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) { .welcome-screen, .welcome-screen.is-leaving, .welcome-progress span { animation: none; } }
.auth-card { display: grid; gap: 12px; width: min(380px, 100%); padding: 28px 26px 22px; border: 1px solid #283547; border-radius: 12px; background: #111925; box-shadow: 0 20px 50px #0009; text-align: center; }
.auth-badge { justify-self: center; width: 72px; height: auto; filter: drop-shadow(0 4px 12px #0009); }
.auth-card h1 { margin: 0; font-size: 22px; letter-spacing: -.03em; }
.auth-subtitle { margin: 0; color: #9aa7b8; font-size: 11px; line-height: 1.5; }
.auth-fields { display: grid; gap: 10px; text-align: left; }
.auth-fields .dialog-field { margin: 0; }
.auth-error { margin: 0; padding: 8px 10px; border: 1px solid #70464b; border-radius: 6px; background: #342329; color: #ee9ba1; font-size: 10px; text-align: left; }
.auth-card .button { width: 100%; min-height: 38px; font-size: 11px; }
.auth-footnote { margin: 0; color: #617086; font-size: 9px; }
body.is-locked { overflow: hidden; }
.users-table { min-width: 860px; table-layout: fixed; }
.user-self { color: #7f8da1; font-size: 9px; }
.user-role { display: inline-flex; padding: 3px 8px; border: 1px solid #3d6698; border-radius: 999px; background: #1a2d46; color: #9bc5ff; font-size: 8px; font-weight: 700; letter-spacing: .04em; }
.user-roles { display: flex; flex-wrap: wrap; gap: 3px; }
.user-role-marshall { border-color: #8b6334; background: #392b1b; color: #f2c278; }
.heading-buttons { display: flex; align-items: center; gap: 8px; }
.heading-buttons .button { min-height: 34px; }
.user-role-sherif { border-color: #8a4f74; background: #3a1f31; color: #e6a5cc; }
.user-role-em { border-color: #8b6334; background: #392b1b; color: #f2c278; }
.user-role-sergent { border-color: #8b5a2b; background: #33231a; color: #f2a65d; }
.user-role-mcd { border-color: #4b5668; background: #1e2530; color: #b5c0cf; }
.user-role-stu { border-color: #34755d; background: #17352c; color: #80e0b6; }
.user-role-streamdeck { border-color: #34755d; background: #17352c; color: #80e0b6; }
.user-role-agent { border-color: #344256; background: #17212e; color: #aab6c6; }
.user-status { color: #7bd9ad; font-size: 9px; font-weight: 600; }
.user-status-temp { color: #f2c278; }
.streamdeck-panel { display: grid; justify-items: start; gap: 12px; padding: 0 18px 18px; }
.streamdeck-steps { display: grid; gap: 6px; max-width: 70ch; margin: 0; padding-left: 18px; color: #c3cdda; font-size: 11px; line-height: 1.5; }
.streamdeck-warning { display: flex; align-items: center; gap: 7px; margin: 0; color: #f2c278; font-size: 10px; }
.streamdeck-links { display: grid; gap: 6px; width: 100%; }
.streamdeck-links:empty { display: none; }
.streamdeck-link { display: flex; align-items: center; gap: 8px; min-width: 0; }
.streamdeck-link > span { flex: 0 0 120px; font-size: 11px; font-weight: 600; }
.streamdeck-link code { flex: 1; min-width: 0; padding: 6px 8px; overflow: hidden; border: 1px solid #283547; border-radius: 5px; background: #0d141e; color: #7f8da1; font: 10px ui-monospace, SFMono-Regular, Menlo, monospace; text-overflow: ellipsis; white-space: nowrap; }
.streamdeck-link .button { min-height: 28px; padding: 0 10px; }
.temp-password-row { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.temp-password { flex: 1; padding: 10px 12px; border: 1px dashed #8b6334; border-radius: 6px; background: #1c1710; color: #f2c278; font: 700 18px ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .12em; text-align: center; user-select: all; }
body.no-perm-radio [data-perm~="radio"] { display: none !important; }
body.no-perm-alert [data-perm~="alert"] { display: none !important; }
body.no-perm-directives [data-perm~="directives"] { display: none !important; }
body.no-perm-wanted-add [data-perm~="wanted-add"] { display: none !important; }
body.no-perm-agents [data-perm~="agents"] { display: none !important; }
body.no-perm-training-columns [data-perm~="training-columns"] { display: none !important; }
body.no-perm-training-cells [data-perm~="training-cells"] { display: none !important; }
body.no-perm-vehicles [data-perm~="vehicles"] { display: none !important; }
body.no-perm-data [data-perm~="data"] { display: none !important; }
body.no-perm-data-statuses [data-perm~="data-statuses"] { display: none !important; }
body.no-perm-data-service [data-perm~="data-service"] { display: none !important; }
body.no-perm-data-notes [data-perm~="data-notes"] { display: none !important; }
body.no-perm-admin [data-perm~="admin"] { display: none !important; }
body.no-perm-info-add [data-perm~="info-add"] { display: none !important; }
body.no-perm-info-edit [data-perm~="info-edit"] { display: none !important; }
body.no-perm-training-cells [data-perm-lock~="training-cells"] { cursor: default; pointer-events: none; }
body.no-perm-agent-card .agent-card-link { color: inherit; text-decoration: none; cursor: default; pointer-events: none; }
.permissions-table { min-width: 760px; table-layout: fixed; }
.permissions-table th:not(:first-child), .permission-cell { text-align: center; }
.permission-label { color: #dce5f0; font-size: 10px; }
.permission-group th { padding-top: 12px; background: #0f1621; color: #9cbcff; font-size: 8px; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.permission-cell input { width: 15px; height: 15px; accent-color: #75a9ff; cursor: pointer; }
.permission-cell input:disabled { cursor: not-allowed; opacity: .7; }
select:disabled { cursor: not-allowed; opacity: .6; }
.admin-button { font-size: 13px; }
#refresh-button.is-spinning { animation: refresh-spin .5s ease; }
@keyframes refresh-spin { from { transform: rotate(0); } to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { #refresh-button.is-spinning { animation: none; } }
.admin-button.active { border-color: #31527a; background: #1a2c46; color: #b9d2fb; }
.training-table .training-status-cell.menu-end .training-status-menu { right: 0; left: auto; transform: none; }
.training-on-duty.is-active { border-color: #31527a; background: #1a2c46; color: #b9d2fb; }
.absence-rule { display: flex; align-items: center; gap: 9px; margin: 0 14px 12px; padding: 9px 12px; border: 1px solid #31527a; border-radius: 6px; background: #142236; color: #b9d2fb; font-size: 10px; }
.absence-rule i { color: #75a9ff; font-size: 12px; }
.absence-rule strong { color: #e2ebf7; }
.absence-heading-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 12px; }
.absence-legend { display: flex; gap: 6px; }
.absence-legend .absence-status { width: auto; min-height: 24px; padding: 0 9px; cursor: default; }
.absence-legend .absence-status:hover { transform: none; }
.absence-table { min-width: 860px; }
.absence-table .absence-day { padding: 7px 4px; }
.absence-table .absence-day span { display: block; color: #c5cedb; font-size: 9px; text-transform: capitalize; }
.absence-table .absence-day small { display: block; margin-top: 2px; color: #7f8da1; font-size: 8px; font-weight: 600; }
.absence-table .absence-day.is-today { box-shadow: inset 0 -2px #75a9ff; background: #152238; }
.absence-table .absence-day.is-today span { color: #9cbcff; }
.absence-table td.is-today { background: #121d2c; }
.absence-table td.absence-cell { padding: 5px 8px; }
.absence-status { display: inline-flex; width: 100%; min-height: 28px; align-items: center; justify-content: center; padding: 0 4px; border: 1px solid #2b3747; border-radius: 5px; background: #141e2a; color: #738197; font: inherit; font-size: 9px; font-weight: 700; white-space: nowrap; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; }
.absence-status:hover { transform: translateY(-1px); border-color: #637a98; }
.absence-status:focus-visible { outline: 2px solid #83b4ff; outline-offset: 2px; }
.absence-status.absence-absent { border-color: #70464b; background: #342329; color: #ee9ba1; }
.absence-status.absence-urgent { border-color: #8b6334; background: #392b1b; color: #f2c278; }
.training-status-menu.absence-menu { grid-template-columns: minmax(130px, 1fr); }
.training-status-menu.absence-menu.opens-up { top: auto; bottom: calc(100% + 3px); }
.training-status-option.absence-option-absent { color: #ee9ba1; }
.training-status-option.absence-option-urgent { color: #f2c278; }
.training-status-option.absence-option-empty { color: #8795a7; }
.note-card { min-width: 0; border: 1px solid #283444; border-radius: 8px; background: #141d28; }
.note-card.is-open { border-color: #34527a; }
.note-card-head { display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; align-items: center; gap: 9px; width: 100%; min-height: 54px; padding: 10px 12px; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.note-card-head:focus-visible { border-radius: 8px; outline: 2px solid #6294df; outline-offset: -2px; }
.note-card-head .agent-grade-badge { justify-self: start; font-size: 8px; white-space: nowrap; }
.note-card-name { display: grid; gap: 2px; min-width: 0; }
.note-card-name strong { overflow: hidden; color: #e8edf5; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.note-card-name small {  overflow: hidden; color: #7f8da1; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.note-card.is-open .alert-toggle-indicator { transform: rotate(180deg); }
.note-card-body { display: grid; gap: 8px; padding: 0 12px 12px; border-top: 1px solid #222e3e; }
.note-list { display: grid; gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }
.note-item { display: grid; gap: 5px; padding: 8px 9px; border: 1px solid #222e3e; border-radius: 6px; background: #101822; }
.note-item p { margin: 0; color: #dce5f0; font-size: 10px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.note-meta { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.note-meta small { color: #7f8da1; font-size: 8px; }
.note-actions { display: flex; gap: 2px; }
.note-actions button { display: grid; place-items: center; width: 20px; height: 20px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: #8795a7; font-size: 9px; cursor: pointer; }
.note-actions button:hover { background: #1e2a39; color: #e2ebf7; }
.note-actions .note-delete { color: #c27a7f; font-size: 13px; }
.note-actions .note-delete:hover { background: #342329; color: #f17c7c; }
.note-empty { margin: 10px 0 0; color: #617086; font-size: 9px; font-style: italic; }
.note-input { min-height: 60px; resize: vertical; font-size: 10px; }
.note-card-body .soft-button { min-height: 30px; font-size: 10px; }
.service-day-nav { display: flex; align-items: center; gap: 6px; }
.service-day-nav .icon-button:disabled { opacity: .35; cursor: default; }
.service-filter > summary { display: grid; place-items: center; list-style: none; cursor: pointer; font-size: 11px; }
.service-filter > summary::-webkit-details-marker { display: none; }
.service-filter > summary.is-active, .service-filter[open] > summary { border-color: #31527a; background: #1a2c46; color: #b9d2fb; }
.service-filter .unit-action-menu { min-width: 190px; }
.service-filter .unit-action-menu button[aria-pressed="true"] { background: #1a2c46; color: #b9d2fb; }
.service-filter-heading { padding: 6px 9px 3px; color: #7f8da1; font-size: 8px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.service-day-label { min-height: 28px; padding: 0 10px; border: 1px solid #283547; border-radius: 6px; background: #151f2c; color: #dce5f0; font-size: 10px; font-weight: 700; cursor: pointer; }
.service-day-label::first-letter { text-transform: uppercase; }
.service-table { min-width: 820px; table-layout: fixed; }
.service-segments { display: flex; flex-wrap: wrap; gap: 4px; }
.service-segment { padding: 3px 7px; border: 1px solid #283547; border-radius: 999px; background: #151f2c; color: #c5cedb; font-size: 9px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.service-segment.is-ongoing { border-color: #285540; background: #153025; color: #7bd9ad; }
.service-vehicle { display: inline-flex; align-items: baseline; gap: 5px; padding: 3px 7px; border: 1px solid #283547; border-left: 3px solid var(--vehicle-color); border-radius: 4px; background: #151f2c; font-size: 9px; white-space: nowrap; cursor: default; }
.service-vehicle strong { color: #dce5f0; font-weight: 600; }
.service-vehicle small { color: #91a4bc; font-size: 8px; letter-spacing: .04em; }
.service-none { color: #617086; font-size: 9px; font-style: italic; }
.service-total { color: #eaf0f8; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.unit-status-table { min-width: 520px; table-layout: fixed; }
.unit-status-icon-cell { font-size: 15px; text-align: center; }
.unit-status-excluded-cell { text-align: center; }
.unit-status-excluded-cell input { width: 15px; height: 15px; accent-color: #75a9ff; cursor: pointer; }
.sector-input::placeholder { color: #78879a; }
.sector-input:hover { border-color: #2e3b4d; background: #111925; }
.sector-input:focus { border-color: #6294df; background: #0e1620; box-shadow: 0 0 0 2px #4d85d522; }
tr.unit-row-expanded { background: #141e2b; }
tr.unit-row-expanded > td { vertical-align: top; }
.cell-muted { color: #94a1b2; }
.status-select, .vehicle-status-select {
  max-width: 152px; padding: 5px 22px 5px 8px; border: 1px solid #2e3b4d; border-radius: 5px;
  background: #17212e; color: #bfd0e4; font-size: 9px; cursor: pointer;
}
.status-select[data-excluded="false"], .vehicle-status-select[data-status="Disponible"] { border-color: #285540; background: #153025; color: #7bd9ad; }
.vehicle-status-select[data-status="En patrouille"] { border-color: #4d4729; background: #2a281b; color: #e4c76e; }
.status-select[data-excluded="true"], .vehicle-status-select[data-status="Maintenance"] { border-color: #414958; background: #202632; color: #9da8b8; }
.vehicle-status-select[data-status="Zombie Car's"] { border-color: #633934; background: #321f1d; color: #f19a84; }
.vehicle-status-select[data-status="Assurance"] { border-color: #3d6698; background: #1a2d46; color: #9bc5ff; }
.vehicle-status-select[data-status="Benny's"] { border-color: #6b4a2a; background: #33251a; color: #f2a65d; }
.unit-code-header, .unit-code-cell { width: 44px; padding-right: 3px; padding-left: 3px; text-align: center; }
.unit-code-toggle { --tone: #75a9ff; --tone-bg: #1a2c46; display: inline-grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 1px solid #283444; border-radius: 7px; background: #141d28; font-size: 12px; line-height: 1; cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s, transform .15s; }
.unit-code-toggle i { color: #4f5d70; transition: color .15s; }
.unit-code-toggle:hover { border-color: #344256; transform: translateY(-1px); }
.unit-code-toggle:hover i { color: #8795a7; }
.unit-code-toggle:focus-visible { outline: 2px solid #83b4ff; outline-offset: 2px; }
.unit-code-toggle[aria-pressed="true"] { border-color: var(--tone); background: var(--tone-bg); box-shadow: 0 0 0 2px color-mix(in srgb, var(--tone) 22%, transparent), 0 0 12px color-mix(in srgb, var(--tone) 30%, transparent); }
.unit-code-toggle[aria-pressed="true"] i { color: var(--tone); }
.unit-code-stack { position: relative; display: inline-block; width: 1.65em; height: 1.55em; font-size: .9em; }
.unit-code-stack i { position: absolute; }
.unit-code-stack i:first-child { top: 0; left: 0; }
.unit-code-stack i:last-child { right: 0; bottom: 0; text-shadow: 1.5px 0 var(--cut), -1.5px 0 var(--cut), 0 1.5px var(--cut), 0 -1.5px var(--cut), 1px 1px var(--cut), -1px -1px var(--cut), 1px -1px var(--cut), -1px 1px var(--cut); }
.unit-code-toggle { --cut: #141d28; }
.unit-code-toggle[aria-pressed="true"] { --cut: var(--tone-bg); }
.my-patrol { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 18px 14px; padding: 10px 12px; border: 1px solid #2c4466; border-radius: 8px; background: #121d2b; }
.my-patrol-crew { display: grid; flex: 1 1 200px; gap: 3px; min-width: 0; }
.my-patrol-names { overflow: hidden; color: #c5cedb; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.my-patrol-names strong { color: #e8edf5; }
.my-patrol-codes { display: flex; flex-wrap: wrap; gap: 6px; }
.unit-code-toggle.has-label { display: inline-flex; gap: 6px; width: auto; height: 34px; padding: 0 10px; }
.unit-code-toggle.has-label span { color: #8795a7; font-size: 10px; font-weight: 700; }
.unit-code-toggle.has-label[aria-pressed="true"] span { color: var(--tone); }
.my-patrol-actions { display: flex; align-items: center; gap: 8px; }
.my-patrol-actions .status-select { height: 34px; }
.my-patrol-sector { width: 150px; min-width: 0; height: 34px; border-color: #283547; background: #0e1620; }
.my-patrol-leave { min-height: 34px; }
.unit-code-toggle.tone-amber { --tone: #f2bb5d; --tone-bg: #392b1b; }
.unit-code-toggle.tone-red { --tone: #f17c7c; --tone-bg: #3a2226; }
.unit-code-toggle.tone-gray { --tone: #9da8b8; --tone-bg: #202632; }
@media (prefers-reduced-motion: reduce) { .unit-code-toggle, .unit-code-toggle i { transition: none; } .unit-code-toggle:hover { transform: none; } }
.unit-updated-header, .unit-updated-cell { width: 88px; min-width: 88px; max-width: 88px; text-align: center; }
.unit-updated-header { padding-right: 6px; padding-left: 6px; font-size: 7px; letter-spacing: -.02em; }
.unit-updated-cell { padding-right: 6px; padding-left: 6px; }
.unit-updated-at { color: #9aa9bc; font-size: 9px; font-variant-numeric: tabular-nums; line-height: 1; }
.unit-actions { position: static; width: max-content; }
.unit-actions > summary { list-style: none; }
.unit-actions > summary::-webkit-details-marker { display: none; }
.row-action { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: #8190a3; cursor: pointer; font-size: 15px; }
.row-action:hover, .unit-actions[open] > .row-action { border-color: #344256; background: #1a2635; color: #e1eaf5; }
.agent-card-link { max-width: 100%; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.agent-card-link:hover, .agent-card-link:focus-visible { color: #9bc5ff; text-decoration: underline; text-underline-offset: 2px; }
.agent-card { position: fixed; z-index: 60; top: 0; left: 0; display: grid; gap: 10px; width: min(330px, calc(100vw - 16px)); padding: 12px 14px 14px; border: 1px solid #344256; border-radius: 8px; background: #111a26; box-shadow: 0 12px 30px #000a; color: #e8edf5; }
.agent-card-head { display: flex; align-items: center; gap: 8px; min-width: 0; }
.agent-card-head strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.agent-card-close { flex: 0 0 auto; width: 25px; height: 25px; margin-left: auto; padding: 0; border: 1px solid #3b4656; border-radius: 5px; background: #202632; color: #b3becd; cursor: pointer; font-size: 15px; line-height: 1; }
.agent-card-close:hover { border-color: #794343; background: #321f1d; color: #f19a84; }
.agent-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; color: #9aa7b8; font-size: 10px; }
.agent-card-duty { display: inline-flex; align-items: center; gap: 5px; color: #7f8da1; font-weight: 700; }
.agent-card-duty i { font-size: 7px; }
.agent-card-duty.is-on { color: #56d6a0; }
.agent-card-unit { flex-basis: 100%; color: #c3cdda; }
.agent-card-section { display: grid; gap: 5px; padding-top: 9px; border-top: 1px solid #202b39; }
.agent-card-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.agent-card-chip { display: inline-flex; align-items: center; padding: 2px 7px; border: 1px solid #334154; border-radius: 5px; font-size: 9px; font-weight: 750; }
.agent-card-line { margin: 0; color: #c3cdda; font-size: 10px; line-height: 1.45; }
.agent-card-note { margin: 0; color: #9aa7b8; font-size: 10px; font-style: italic; line-height: 1.45; overflow-wrap: anywhere; }
.unit-action-menu { position: fixed; z-index: 50; top: 0; left: 0; display: none; min-width: 170px; padding: 4px; border: 1px solid #344256; border-radius: 6px; background: #111a26; box-shadow: 0 8px 20px #0008; }
.unit-actions[open] .unit-action-menu { display: grid; gap: 2px; }
.unit-action-menu button { width: 100%; padding: 7px 9px; border: 0; border-radius: 4px; background: transparent; color: #c5cedb; text-align: left; font: inherit; font-size: 10px; cursor: pointer; }
.unit-action-menu button:hover { background: #1e2a39; color: #eaf0f8; }
.unit-action-menu button:disabled { color: #657387; cursor: not-allowed; }
.unit-action-menu button:disabled:hover { background: transparent; color: #657387; }
.unit-action-menu .delete-unit-action { color: #f19a84; }
.unit-action-menu .delete-unit-action:hover { background: #321f1d; color: #ffb2a1; }
.panel-footer { display: flex; justify-content: space-between; padding: 10px 15px; border-top: 1px solid #202b39; color: #718096; font-size: 9px; }
.panel-footer > span:first-child { display: flex; align-items: center; gap: 7px; }
.footer-live-dot { width: 5px; height: 5px; }
.vehicle-icon-cell { width: 34px; padding-right: 0; color: #86b4fb; font-size: 12px; text-align: center; }
.vehicle-filter-trigger { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px; margin-left: -6px; border-radius: 5px; cursor: pointer; list-style: none; }
.vehicle-filter-trigger::-webkit-details-marker { display: none; }
.vehicle-filter-trigger:hover, .vehicle-status-filter[open] > .vehicle-filter-trigger { background: #1a2635; color: #e1eaf5; }
#vehicle-status-filter-label { color: #86b4fb; text-transform: none; letter-spacing: 0; }
.vehicle-status-filter .unit-action-menu button[aria-pressed="true"] { background: #1a2c46; color: #b9d2fb; }
html { scrollbar-gutter: stable; }
.vehicle-directory-table { min-width: 640px; table-layout: fixed; }
.vehicle-directory-table td { overflow: hidden; text-overflow: ellipsis; }
.units-heading-actions { display: flex; align-items: center; gap: 8px; width: min(290px, 45%); }
.units-heading-actions .search-box { flex: 1; width: auto; }
.units-heading-actions .icon-button { flex: 0 0 auto; height: 31px; }
.directory-panel { overflow: hidden; }
.agenda-panel { padding: 0 16px 16px; }
.info-panel { margin-bottom: 14px; padding: 0 16px 16px; }
.info-group-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.info-group { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 10px; border: 1px solid #283444; border-radius: 6px; background: #141d28; }
.info-group h3 { margin: 0; color: #e8edf5; font-size: 13px; }
.info-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.info-group-wide { grid-column: 1 / -1; }
.info-group-wide .info-questions ul { display: block; columns: 3 260px; column-gap: 28px; }
.info-group-wide .info-questions li { margin-bottom: 6px; break-inside: avoid; }
.info-group-actions { display: flex; flex: 0 0 auto; gap: 4px; }
.info-group dl { display: grid; gap: 5px; margin: 0; }
.info-field { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 6px; font-size: 9px; }
.info-field dt { color: #7f8da1; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.info-field dd { margin: 0; color: #c5cedb; font-weight: 600; overflow-wrap: anywhere; }
.info-empty { color: #617086; font-weight: 500; }
.info-questions { margin-top: auto; padding-top: 7px; border-top: 1px solid #222e3e; }
.info-questions summary { color: #86b4fb; font-size: 9px; font-weight: 700; cursor: pointer; }
.info-questions ul { display: grid; gap: 5px; margin: 7px 0 0; padding-left: 14px; color: #aab6c6; font-size: 9px; line-height: 1.45; }
.info-procedures { min-width: 640px; }
.info-procedures td { height: auto; vertical-align: top; white-space: normal; font-size: 9px; line-height: 1.5; }
.info-procedures td:first-child { min-width: 170px; }
.info-procedures td strong { display: block; color: #e8edf5; font-size: 10px; }
.info-procedures td small { display: block; margin-top: 3px; color: #7f8da1; }
.agenda-nav { display: flex; align-items: center; gap: 6px; }
.agenda-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.agenda-weekday { padding: 6px 4px; color: #aab6c6; font-size: 9px; font-weight: 700; letter-spacing: .06em; text-align: center; }
.agenda-day { display: flex; flex-direction: column; gap: 4px; min-width: 0; min-height: 92px; padding: 5px; border: 1px solid #283444; border-radius: 5px; background: #141d28; }
.agenda-day.is-outside { opacity: .4; }
.agenda-day.is-today { border-color: #548bdf; box-shadow: inset 0 0 0 1px #548bdf55; }
.agenda-day-add { align-self: stretch; padding: 2px 3px; border: 0; border-radius: 4px; background: transparent; color: #8795a7; font-size: 10px; font-weight: 700; text-align: left; cursor: pointer; }
.agenda-day-add:hover, .agenda-day-add:focus-visible { background: #1d2938; color: #e8edf5; }
.agenda-day-add:hover::after { content: ' ＋'; color: #86b4fb; }
.agenda-day.is-today .agenda-day-add { color: #75a9ff; }
.agenda-day-name { display: none; text-transform: capitalize; }
.agenda-event { display: flex; align-items: flex-start; min-width: 0; border: 1px solid #a14a30; border-radius: 4px; background: #5a2b1d; }
.agenda-event button:first-child { flex: 1; min-width: 0; padding: 3px 5px; border: 0; background: transparent; color: #ffd9cb; font-size: 8px; line-height: 1.35; text-align: left; overflow-wrap: anywhere; cursor: pointer; }
.agenda-event b { color: #ff9c79; }
.agenda-event .directive-delete { top: 0; flex-basis: 18px; width: 18px; height: 18px; font-size: 11px; }
.agent-directory-view .directory-panel tbody tr { transition: background-color .15s ease; }
.agent-directory-view .directory-panel tbody tr:hover { background: #172230; }
.agent-grade-cell { min-width: 130px; }
.agent-grade-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border: 1px solid var(--grade-border, #344256); border-radius: 999px; background: var(--grade-bg, #17212e); color: var(--grade-color, #c1ccda); font-size: 9px; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.agent-grade-badge::before { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 7px currentColor; content: ""; }
.grade-cadet { --grade-color: #9cbcff; --grade-bg: #1a2c46; --grade-border: #34527a; }
.grade-deputy-1 { --grade-color: #fff; --grade-bg: #91c47e; --grade-border: #91c47e; }
.grade-deputy-2 { --grade-color: #fff; --grade-bg: #69a84f; --grade-border: #69a84f; }
.grade-senior-deputy { --grade-color: #fff; --grade-bg: #f4c430; --grade-border: #f4c430; }
.grade-sergent { --grade-color: #fff; --grade-bg: #e99235; --grade-border: #e99235; }
.grade-lieutenant { --grade-color: #fff; --grade-bg: #d60000; --grade-border: #d60000; }
.grade-sheriff-adj { --grade-color: #fff; --grade-bg: #a64d79; --grade-border: #a64d79; }
.grade-sheriff { --grade-color: #fff; --grade-bg: #761a49; --grade-border: #761a49; }
.grade-default { --grade-color: #c1ccda; --grade-bg: #17212e; --grade-border: #344256; }
.rank-insignia-cell { width: 74px; text-align: center; }
.rank-insignia { display: inline-block; font-size: 15px; line-height: 1; }
.rank-insignia-empty { color: #536174; }
.directory-note { padding: 12px 15px; border-top: 1px solid #202b39; color: #9aa7b8; font-size: 10px; line-height: 1.5; }
.agent-subnav { display: flex; gap: 7px; margin: 0 0 14px; padding: 4px; border: 1px solid #222e3d; border-radius: 8px; background: #101822; width: fit-content; }
.agent-subnav-button { min-height: 31px; padding: 0 13px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: #8998aa; font: inherit; font-size: 10px; font-weight: 650; cursor: pointer; }
.agent-subnav-button:hover { color: #e2ebf7; }
.agent-subnav-button.active { border-color: #31527a; background: #1a2c46; color: #b9d2fb; }
.directive-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
.directives-panel .compact-heading { min-height: 80px; }
.directive-tabs { gap: 3px; margin: 0; padding: 3px; }
.directive-tabs .agent-subnav-button { min-height: 25px; padding: 0 9px; font-size: 9px; }
.training-panel { min-width: 0; overflow: hidden; }
@media (min-width: 1051px) { .training-panel { margin-right: -48px; } }
.training-heading { align-items: flex-start; }
.training-description { margin: 7px 0 0; color: #8290a3; font-size: 10px; }
.training-utility-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 15px 13px; }
.training-legend { display: flex; flex: 1 1 auto; flex-wrap: wrap; align-items: center; gap: 8px 14px; min-width: 0; color: #a4b0c0; font-size: 9px; }
.training-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.training-legend .training-status { width: 23px; height: 22px; cursor: default; }
.training-toolbar { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.training-toolbar .button:disabled { opacity: .55; cursor: default; }
.training-column-manager { margin: 0 15px 14px; padding: 13px; border: 1px solid #2a394d; border-radius: 8px; background: #0f1722; }
.training-manager-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 11px; border-bottom: 1px solid #253142; }
.training-manager-heading h3 { margin: 0; color: #dce5f0; font-size: 12px; }
.training-manager-heading p { margin: 5px 0 0; color: #8290a3; font-size: 9px; line-height: 1.5; }
.training-column-editor-list { display: grid; gap: 7px; max-height: 360px; overflow: auto; padding: 11px 2px; }
.training-column-editor-row { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(120px, .65fr) auto; align-items: end; gap: 8px; }
.training-column-editor-row label { display: grid; gap: 4px; color: #8998aa; font-size: 8px; font-weight: 650; }
.training-column-editor-row .dialog-input { min-height: 32px; font-size: 9px; }
.training-column-delete { min-height: 32px; color: #f19a84; }
.training-column-empty { margin: 6px 0; color: #8290a3; font-size: 10px; }
.training-manager-actions { display: flex; align-items: center; gap: 8px; padding-top: 10px; border-top: 1px solid #253142; }
.training-manager-spacer { flex: 1; }
.training-table-scroll { overflow-x: clip; border-top: 1px solid #253142; }
.training-table { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: 9px; }
.training-grade-column { width: 112px; }
.training-agent-column { width: 125px; }
.training-qualification-column { width: 38px; }
.training-table th, .training-table td { padding: 6px; border-right: 1px solid #222d3c; border-bottom: 1px solid #222d3c; text-align: center; }
.training-table th { background: #111a26; color: #aeb9c8; font-size: 8px; font-weight: 700; }
.training-table thead { position: sticky; top: 0; z-index: 3; }
.training-table .training-group-row th { height: 31px; background: #172230; color: #c3d1e3; letter-spacing: .04em; }
.training-table .training-course-row th { top: 31px; position: sticky; z-index: 3; }
.training-table .training-group-heading { border-bottom-color: #34465d; }
.training-table .training-group-end-0 { --training-divider: #9cbcff; }
.training-table .training-group-end-1 { --training-divider: #91c47e; }
.training-table .training-group-end-2 { --training-divider: #69a84f; }
.training-table .training-group-end-3 { --training-divider: #f4c430; }
.training-table th.training-group-end-0, .training-table th.training-group-end-1, .training-table th.training-group-end-2, .training-table th.training-group-end-3,
.training-table td.training-group-end-0, .training-table td.training-group-end-1, .training-table td.training-group-end-2, .training-table td.training-group-end-3 { box-shadow: inset -2px 0 var(--training-divider); }
.training-table th.training-group-heading { box-shadow: inset -2px 0 var(--training-divider); }
.training-table .training-group-heading .agent-grade-badge { box-sizing: border-box; max-width: 100%; justify-content: center; white-space: normal; }
.training-table .training-course-heading { height: 90px; padding: 5px 3px; vertical-align: middle; font-size: 7px; letter-spacing: -.02em; line-height: 1.25; white-space: normal; overflow-wrap: normal; word-break: normal; }
.training-course-filter { display: block; width: 100%; min-height: 100%; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; line-height: inherit; white-space: inherit; overflow-wrap: inherit; word-break: inherit; cursor: pointer; }
.training-course-filter:hover { color: #fff; }
.training-course-filter.is-active { color: #fff; text-decoration: underline; text-decoration-color: #f2c66f; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.training-course-filter:focus-visible { outline: 2px solid #83b4ff; outline-offset: -2px; }
.training-table .training-course-heading { position: sticky; }
.training-filter-menu { position: fixed; top: 8px; left: 8px; z-index: 20; display: grid; grid-template-columns: repeat(2, minmax(118px, 1fr)); gap: 4px; width: max-content; max-width: min(250px, calc(100vw - 24px)); max-height: calc(100vh - 16px); overflow-y: auto; padding: 6px; border: 1px solid #3b4b61; border-radius: 7px; background: #111a26; box-shadow: 0 9px 24px #0009; writing-mode: horizontal-tb; }
.training-filter-menu .training-status-option { min-width: 0; }
.training-table .qualification-heading { position: relative; width: 38px; vertical-align: top; padding-top: 12px; }
.qualification-heading-label { display: block; }
.qualification-count { position: absolute; bottom: 8px; left: 50%; box-sizing: border-box; display: flex; width: 28px; height: 28px; align-items: center; justify-content: center; margin: 0; padding: 0; border: 1px solid #34465d; border-radius: 50%; background: #101822; color: #e0e8f3; font-size: 9px; line-height: 1; text-align: center; transform: translateX(-50%); }
.qualification-count > span { color: #748398; font-size: 7px; }
.training-table .training-grade-cell { width: 112px; padding-right: 3px; padding-left: 5px; text-align: left; }
.training-table .training-agent-cell { width: 125px; text-align: left; }
.training-agent-name { display: block; overflow: hidden; color: #d8e1ec; text-overflow: ellipsis; white-space: nowrap; }
.training-agent-cell .agent-badge { display: inline-block; margin-top: 3px; }
.training-table .training-agent-row { background: #101822; }
.training-table .training-agent-row:hover { background: #172230; }
.training-table .training-agent-row td:first-child { border-left: 2px solid var(--grade-color, #344256); }
.training-table .training-status-cell, .training-table .training-qualification-cell { padding: 3px 1px; }
.training-table .training-status-cell { position: relative; }
.training-table .training-status-cell.is-open { z-index: 5; }
.training-status, .training-qualification { display: inline-flex; width: 32px; height: 28px; align-items: center; justify-content: center; border: 1px solid #334154; border-radius: 5px; background: #141e2a; color: #738197; font: inherit; font-size: 10px; font-weight: 750; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; }
.training-status:hover, .training-qualification:hover { transform: translateY(-1px); border-color: #637a98; }
.training-status:focus-visible, .training-qualification:focus-visible, .agent-subnav-button:focus-visible { outline: 2px solid #83b4ff; outline-offset: 2px; }
.training-status-menu { position: absolute; top: calc(100% + 3px); left: 50%; z-index: 6; display: grid; grid-template-columns: repeat(2, minmax(118px, 1fr)); gap: 4px; width: max-content; padding: 6px; border: 1px solid #3b4b61; border-radius: 7px; background: #111a26; box-shadow: 0 9px 24px #0009; transform: translateX(-50%); }
.training-status-option { display: flex; min-height: 30px; align-items: center; gap: 8px; padding: 4px 7px; border: 1px solid transparent; border-radius: 4px; background: #172230; color: #aeb9c8; font: inherit; font-size: 9px; text-align: left; white-space: nowrap; cursor: pointer; }
.training-status-option::first-letter { font-weight: 800; }
.training-status-option:hover, .training-status-option.is-selected { border-color: #43536a; background: #202e40; color: #f0f5fc; }
.training-filter-menu .training-status-option.is-selected::after { margin-left: auto; color: #80e0b6; font-size: 12px; content: "✓"; }
.training-status-option:focus-visible { outline: 2px solid #83b4ff; outline-offset: 1px; }
.training-status-option.status-A { color: #80e0b6; }
.training-status-option.status-F { color: #9bc5ff; }
.training-status-option.status-AF { color: #f2c278; }
.training-status-option.status-EC { color: #e8d46f; }
.training-status-option.status-X { color: #ee9ba1; }
.training-status-option.status-MAJ { color: #ff9c79; }
.training-status-option.status-empty { color: #8795a7; }
.status-A { border-color: #34755d; background: #17352c; color: #80e0b6; }
.status-F { border-color: #3d6698; background: #1a2d46; color: #9bc5ff; }
.status-AF { border-color: #8b6334; background: #392b1b; color: #f2c278; }
.status-EC { border-color: #827434; background: #35311d; color: #e8d46f; }
.status-X { border-color: #70464b; background: #342329; color: #ee9ba1; }
.status-MAJ { border-color: #a14a30; background: #5a2b1d; color: #ff9c79; }
.status-empty { color: #617086; }
.training-qualification.qualification-mcd.is-active { border-color: #34755d; background: #17352c; color: #80e0b6; }
.training-qualification.qualification-stu.is-active { border-color: #80e0b6; background: #80e0b6; color: #17352c; }
.training-empty { padding: 24px !important; color: #8290a3; text-align: center !important; }

.wanted-column { display: grid; grid-template-rows: auto 1fr; gap: 14px; min-width: 0; }
.partner-stats .stat-card { position: relative; }
.partner-dispatch-button { position: absolute; right: 8px; bottom: 8px; display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid #283547; border-radius: 5px; background: #151f2c; color: #8db9ff; font-size: 12px; cursor: pointer; transition: border-color .15s ease, background-color .15s ease; }
.partner-dispatch-button:hover { border-color: #548bdf; background: #1b2c44; }
.partner-dispatch-button:focus-visible { outline: 2px solid #6294df; outline-offset: 2px; }
.partner-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.wanted-column { container-type: inline-size; }
@container (max-width: 440px) { .partner-stats { grid-template-columns: minmax(0, 1fr); } }
.lower-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(230px, .8fr); gap: 14px; margin-top: 14px; align-items: stretch; }
.calls-panel, .alert-panel, .directives-panel, .wanted-panel, .garage-panel { min-width: 0; padding: 0 16px 14px; }
.radio-panel { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding: 9px 12px; }
.operation-panel { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 14px; padding: 9px 12px; }
.operation-roles { flex: 1; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 6px; min-width: 0; }
.operation-role { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 3px 4px 3px 9px; border: 1px solid #283444; border-radius: 5px; background: #141d28; }
.operation-role > span { flex: 0 0 auto; color: #aab6c6; font-size: 9px; font-weight: 700; letter-spacing: .04em; }
.operation-role.is-filled { border-color: #34527a; }
.operation-role:not(.is-filled) { background: #10171f; }
.operation-role:not(.is-filled) .seat-select, .seat-field.is-empty .seat-select { border-color: #232e3c; background-color: #0e141c; }
.operation-role.is-filled > span { color: #9cbcff; }
.operation-details { flex: 1 0 100%; min-width: 0; padding-top: 8px; border-top: 1px solid #222e3e; }
.operation-details-title { margin: 0 0 8px; color: #e8edf5; font-size: 12px; font-weight: 700; }
.operation-header { display: grid; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)) auto; align-items: center; gap: 6px; }
.operation-field { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 3px 4px 3px 9px; border: 1px solid #283444; border-radius: 5px; background: #141d28; }
.operation-field > span { flex: 0 0 auto; color: #aab6c6; font-size: 9px; font-weight: 700; }
.operation-value { margin-left: auto; padding-right: 6px; color: #e8edf5; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.operation-field { min-height: 32px; }
.operation-plan-tabs { margin: 8px 0 0; }
.operation-plan { display: grid; place-items: center; min-height: 320px; margin-top: 8px; padding: 8px; border: 1px dashed #344256; border-radius: 6px; background: #0d141e; }
.operation-plan img { display: block; max-width: 100%; max-height: 70vh; object-fit: contain; }
.operation-table-wrap { position: relative; margin-top: 8px; overflow-x: auto; }
.operation-table { width: 100%; min-width: 560px; border-collapse: separate; border-spacing: 0 4px; }
.operation-table th { padding: 4px 6px; color: #aab6c6; font-size: 8px; text-align: left; }
.operation-table tbody th { width: 38px; color: #e8edf5; font-size: 9px; }
.operation-table th, .operation-table td { height: auto; border: 0; }
.operation-table td { padding: 0 3px; }
.operation-table td:nth-child(4) { width: 96px; }
.operation-table .sector-input { width: 100%; border-color: #283444; background: #141d28; }
.hostage-group { font-weight: 700; }
[data-action="toggle-operation-details"][aria-expanded="true"] { border-color: #548bdf; color: #b9d2fb; }
.radio-list { flex: 1; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 6px; min-width: 0; padding: 0; margin: 0; list-style: none; }
.radio-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 30px; padding: 3px 4px 3px 9px; border: 1px solid #283444; border-left: 3px solid var(--radio-color); border-radius: 5px; background: #141d28; }
.radio-name { display: grid; gap: 2px; min-width: 0; color: var(--radio-color); font-size: 9px; font-weight: 700; }
.radio-name small { color: #7f8da0; font-size: 7px; font-weight: 500; }
.radio-frequency { width: 58px; min-height: 24px; padding: 0 6px; border: 1px solid transparent; border-radius: 5px; outline: 0; background: transparent; color: var(--radio-color); font: inherit; font-size: 12px; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.radio-frequency::-webkit-inner-spin-button, .radio-frequency::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
input.radio-frequency:hover { border-color: #2d3a4c; background: #0e1620; }
input.radio-frequency:focus { border-color: #6294df; background: #0e1620; box-shadow: 0 0 0 2px #4d85d522; }
output.radio-frequency, span.radio-frequency { display: inline-grid; align-items: center; }
.radio-row-toggle { position: relative; display: block; padding: 0; }
.radio-toggle-summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 28px; padding: 3px 6px 3px 9px; cursor: pointer; list-style: none; }
.radio-toggle-summary::-webkit-details-marker { display: none; }
.radio-toggle-summary:focus-visible { border-radius: 4px; outline: 2px solid #6294df; outline-offset: -2px; }
.radio-toggle-value { display: flex; align-items: center; gap: 2px; }
.radio-toggle-value .alert-toggle-indicator { font-size: 11px; }
.radio-toggle[open] .alert-toggle-indicator { transform: rotate(180deg); }
.radio-toggle-menu { position: absolute; top: calc(100% + 4px); left: -3px; z-index: 20; display: grid; gap: 9px; width: max(100%, 210px); padding: 11px; border: 1px solid #344256; border-radius: 8px; background: #101823; box-shadow: 0 12px 30px #0009; }
.radio-toggle-menu .button { min-height: 30px; font-size: 10px; }
.compact-heading { min-height: 66px; padding: 14px 0 11px; }
.text-button { padding: 6px 0 6px 8px; border: 0; background: transparent; color: #86b4fb; font-size: 10px; cursor: pointer; }
.text-button:hover { color: white; }
.alert-panel { padding-top: 16px; }
.field-label { display: block; margin: 17px 0 7px; color: #8795a7; font-size: 9px; font-weight: 600; }
.field-control { width: 100%; min-height: 35px; padding: 0 10px; border: 1px solid #2d3a4c; border-radius: 5px; outline: 0; background: #0e1620; color: #dce5f0; font-size: 10px; }
.field-control:focus, .dialog-input:focus { border-color: #6294df; box-shadow: 0 0 0 2px #4d85d522; }
.alert-scale { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; margin-top: 12px; }
.alert-scale span { height: 4px; border-radius: 4px; background: #273344; }
.alert-scale span:nth-child(1) { background: #5ab987; }
.alert-scale span:nth-child(2) { background: #dbb354; }
.alert-scale span:nth-child(3) { background: #e48c50; }
.alert-scale span:nth-child(4) { background: #db6767; }
.muted-copy { margin: 10px 0 0; color: #77869a; font-size: 9px; line-height: 1.5; }
.small-icon-button { width: 27px; height: 27px; font-size: 14px; }
.directive-list { display: grid; gap: 7px; padding: 0; margin: 0; list-style: none; }
.directive-item { display: flex; gap: 9px; align-items: flex-start; padding: 9px; border: 1px solid #283444; border-radius: 5px; background: #141d28; }
.directive-item-drop-target { border-top-color: #6294df; }
.directive-item-dragging { opacity: .45; }
.directive-bullet { flex: 0 0 auto; color: #e5b75e; font-size: 12px; line-height: 1.25; }
.directive-text { flex: 1; min-width: 0; color: #c4cedb; font-size: 9px; line-height: 1.5; }
.directive-item-important .directive-text { color: #ff6868; animation: wanted-date-pulse 1.2s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .directive-item-important .directive-text { animation: none; color: #ff6868; text-shadow: 0 0 5px #ff3b3b80; } }
.directive-delete { position: relative; top: -2px; display: grid; place-items: center; align-self: center; flex: 0 0 20px; width: 20px; height: 20px; padding: 0; border: 0; background: transparent; color: #718096; cursor: pointer; font-size: 13px; line-height: 1; }
.directive-delete:hover { color: #f09494; }
.directive-drag-handle { display: grid; place-items: center; align-self: center; flex: 0 0 20px; width: 20px; height: 20px; padding: 0; border: 0; background: transparent; color: #718096; cursor: grab; font-size: 14px; line-height: 1; }
.directive-drag-handle:hover { color: #c5cedb; }
.directive-drag-handle:active { cursor: grabbing; }
.wanted-table-wrap { overflow-x: auto; }
.wanted-table { width: 100%; table-layout: fixed; }
.wanted-table th { height: auto; padding: 8px 5px; color: #aab6c6; font-size: 7px; line-height: 1.35; white-space: normal; }
.wanted-table th:nth-child(2), .wanted-table td:nth-child(2) { width: 72px; text-align: center; }
.wanted-table th:last-child, .wanted-table td:last-child { width: 28px; text-align: center; }
.wanted-table td { padding: 8px 5px; font-size: 8px; white-space: normal; overflow-wrap: anywhere; }
.wanted-entry td { font-weight: 600; }
.wanted-date-expiring { color: #ff6868; animation: wanted-date-pulse 1.2s ease-in-out infinite; }
@keyframes wanted-date-pulse { 50% { color: #ffb0b0; text-shadow: 0 0 8px #ff3b3b99; } }
@media (prefers-reduced-motion: reduce) { .wanted-date-expiring { animation: none; color: #ff6868; text-shadow: 0 0 5px #ff3b3b80; } }
.wanted-entry[data-id] { cursor: help; }
.wanted-photo-preview { position: fixed; z-index: 100; display: grid; place-items: center; width: min(220px, calc(100vw - 24px)); min-height: 80px; max-height: min(280px, calc(100vh - 16px)); padding: 5px; border: 1px solid #344256; border-radius: 6px; background: #101823; box-shadow: 0 8px 24px #000b; pointer-events: none; }
.wanted-photo-preview[hidden] { display: none; }
.wanted-photo-preview img { display: block; max-width: 100%; max-height: min(268px, calc(100vh - 28px)); object-fit: contain; }
.file-input { padding: 6px; }
.garage-list { display: grid; gap: 7px; }
.vehicle-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 9px; border: 1px solid #283444; border-radius: 5px; background: #141d28; }
.vehicle-info { display: grid; gap: 3px; min-width: 0; }
.vehicle-info strong { overflow: hidden; color: #d8e1ec; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.vehicle-info small { color: #7f8da0; font-size: 8px; }
.vehicle-row .vehicle-info { flex: 1; }
.vehicle-row .garage-status-badge { flex: 0 0 auto; padding: 4px 8px; font-weight: 700; text-align: center; cursor: default; white-space: nowrap; }
.garage-panel { display: flex; flex-direction: column; }
.fleet-repair-button { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 34px; margin-top: auto; padding: 0 12px; border: 1px solid #31527a; border-radius: 6px; background: #1a2c46; color: #b9d2fb; font-size: 10px; font-weight: 700; cursor: pointer; transition: background-color .15s ease, border-color .15s ease; }
.garage-list, #empty-garage { margin-bottom: 10px; }
.fleet-repair-button:hover { border-color: #3d6698; background: #1f3452; color: #e2ebf7; }
.soft-button { border: 1px solid #31527a; background: #1a2c46; color: #b9d2fb; font-weight: 700; transition: background-color .15s ease, border-color .15s ease; }
.soft-button:hover { border-color: #3d6698; background: #1f3452; color: #e2ebf7; }
.fleet-repair-button small { color: #8fb0dd; font-size: 9px; font-weight: 600; white-space: nowrap; }
.fleet-repair-button[hidden] { display: none; }
.recovery-done-button { display: grid; flex: 0 0 auto; place-items: center; width: 26px; height: 26px; border: 1px solid #285540; border-radius: 5px; background: #153025; color: #7bd9ad; font-size: 11px; cursor: pointer; transition: border-color .15s ease, background-color .15s ease; }
.recovery-done-button:hover { border-color: #56d6a0; background: #1b3d2f; }
.recovery-done-button[hidden] { display: none; }
.recovery-status { color: #e4c76e; font-size: 8px; font-weight: 700; }
.recovery-status[data-state="ready"] { color: #7bd9ad; }
.recovery-status[data-state="insurance"] { color: #9cbcff; }
.recovery-status[data-state="accepted"] { color: #7bd9ad; }
.recovery-status[data-state="refused"] { color: #f17c7c; }
.recovery-done-button.insurance-refuse-button { border-color: #70464b; background: #342329; color: #f17c7c; }
.recovery-done-button.insurance-refuse-button:hover { border-color: #f17c7c; background: #432a30; }
.dialog-field[hidden] { display: none; }
.vehicle-status-select { max-width: 118px; padding: 5px 19px 5px 7px; font-size: 8px; }
.empty-state { padding: 15px 5px; color: #718096; font-size: 10px; text-align: center; }
.empty-state[hidden] { display: none; }
.page-footer { display: flex; justify-content: space-between; gap: 12px; padding: 21px 2px 0; color: #647287; font-size: 8px; letter-spacing: .03em; }
.footer-separator { padding: 0 5px; color: #405066; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.editor-dialog { width: min(440px, calc(100% - 30px)); padding: 0; border: 1px solid #344155; border-radius: 10px; background: #111925; color: var(--text); box-shadow: 0 20px 70px #0009; }
.confirm-message { margin: 0; padding: 15px 0; color: #c4cedb; font-size: 11px; line-height: 1.5; }
.button-danger { border: 1px solid #d36363; background: #b94848; color: white; box-shadow: inset 0 1px #ffffff20; }
.button-danger:hover { border-color: #f17c7c; background: #c95454; }
.settings-list { display: grid; gap: 2px; padding: 14px 0 6px; }
.settings-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid #1d2735; cursor: pointer; }
.settings-row > span { display: grid; gap: 3px; min-width: 0; }
.settings-row strong { color: #e4ebf5; font-size: 11px; }
.settings-row small { color: #7f8da1; font-size: 9px; line-height: 1.4; }
.settings-switch { position: relative; flex: 0 0 auto; width: 34px; height: 19px; margin: 0; border: 1px solid #344256; border-radius: 999px; background: #151f2c; cursor: pointer; appearance: none; transition: background-color .15s, border-color .15s; }
.settings-switch::after { position: absolute; top: 2px; left: 2px; width: 13px; height: 13px; border-radius: 50%; background: #7f8da1; content: ""; transition: transform .15s, background-color .15s; }
.settings-switch:checked { border-color: #548bdf; background: #3976c9; }
.settings-switch:checked::after { background: #fff; transform: translateX(15px); }
.settings-switch:focus-visible { outline: 2px solid #83b4ff; outline-offset: 2px; }
.dialog-input.settings-select { flex: 0 0 160px; width: 160px; min-height: 34px; padding: 6px 28px 6px 10px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M1 1l3 3 3-3' fill='none' stroke='%238795a7' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-position: right 10px center; background-repeat: no-repeat; cursor: pointer; -webkit-appearance: none; appearance: none; }
.settings-preview { margin-top: 14px; padding: 10px 12px 2px; border: 1px solid #5a4a26; border-radius: 8px; background: #1c1810; }
.settings-preview .section-kicker { color: #f2c278; }
.settings-preview .settings-row:last-child { border-bottom: 0; }
.preview-banner { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 10px; border: 1px solid #8b6334; border-radius: 6px; background: #392b1b; color: #f2c278; font-size: 10px; font-weight: 700; cursor: pointer; }
.preview-banner[hidden] { display: none; }
.preview-banner .preview-exit { padding: 2px 6px; border-radius: 4px; background: #5a4322; color: #ffe0a8; }
.preview-banner:hover { border-color: #c08a45; }
.settings-password { display: grid; gap: 7px; padding: 14px 0 4px; }
.settings-password .button { justify-self: start; }
.settings-message { margin: 0; color: #f17c7c; font-size: 10px; }
.settings-message.is-success { color: #56d6a0; }
.unit-row.is-my-unit > td { background: #15233a; }
.unit-row.is-my-unit > td:first-child { box-shadow: inset 3px 0 #75a9ff; }
body.reduce-motion *, body.reduce-motion *::before, body.reduce-motion *::after { animation: none !important; transition: none !important; }
body.reduce-motion :is(.absence-status, .unit-code-toggle, .training-status, .training-qualification):hover { transform: none; }
.editor-dialog::backdrop { background: #03070cbb; backdrop-filter: blur(3px); }
.editor-dialog form { padding: 19px; }
.dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; padding-bottom: 15px; border-bottom: 1px solid #263243; }
.dialog-heading h2 { margin: 4px 0 0; font-size: 17px; }
.dialog-fields { display: grid; gap: 12px; padding: 17px 0; }
.dialog-field { display: grid; gap: 6px; }
.dialog-field label { color: #aab6c6; font-size: 10px; font-weight: 600; }
.dialog-field .dialog-checkbox-label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.dialog-checkbox-label input { accent-color: #db6767; }
.dialog-input { width: 100%; min-height: 36px; padding: 8px 10px; border: 1px solid #2d3a4c; border-radius: 5px; outline: 0; background: #0d141e; color: #e4ebf5; font-size: 10px; }
textarea.dialog-input { min-height: 76px; resize: vertical; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 13px; border-top: 1px solid #263243; }

@media (min-width: 1500px) { .main-content { margin-right: auto; padding-right: 54px; padding-left: 54px; } }
@media (max-width: 1050px) {
  .note-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sidebar { width: 196px; }
  .main-content { margin-left: 196px; padding-right: 22px; padding-left: 22px; }
  .app-shell.is-sidebar-collapsed .main-content { margin-left: 76px; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-grid > :last-child { grid-column: 1 / -1; }
  .stat-card { min-height: 78px; }
  .lower-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .garage-panel { grid-column: 1 / -1; }
  .training-status, .training-qualification { box-sizing: border-box; width: 100%; min-width: 0; font-size: 8px; }
}
@media (max-width: 760px) {
  .note-grid { grid-template-columns: minmax(0, 1fr); }
  .operation-header { grid-template-columns: 1fr 1fr auto; }
  .operation-field-wide { grid-column: 1 / -1; }
  .operation-plan { min-height: 220px; }
  .agenda-panel { padding-right: 12px; padding-left: 12px; }
  .agenda-panel .panel-heading { align-items: flex-start; flex-direction: column; }
  .agenda-grid { grid-template-columns: 1fr; }
  .agenda-weekday, .agenda-day.is-outside { display: none; }
  .agenda-day { min-height: 0; }
  .agenda-day-name { display: inline; }
  .sidebar { position: static; width: auto; height: auto; padding: 12px 14px; border-right: 0; border-bottom: 1px solid #1b2532; }
  .sidebar-header { justify-content: flex-start; gap: 12px; }
  .brand { padding: 0 3px 11px; }
  .collapse-button { margin: 0 0 11px auto; }
  .sidebar-label, .sidebar-bottom { display: none; }
  .main-nav { display: flex; gap: 5px; overflow-x: auto; }
  .nav-link { flex: 0 0 auto; padding: 8px 10px; font-size: 10px; }
  .nav-link > span { font-size: 13px; }
  .main-content { margin-left: 0; padding: 0 15px 20px; }
  .app-shell.is-sidebar-collapsed .sidebar { width: auto; padding: 12px 14px; }
  .app-shell.is-sidebar-collapsed .sidebar { width: auto; padding: 12px 14px; }
  .app-shell.is-sidebar-collapsed .sidebar-header { flex-direction: row; }
  .app-shell.is-sidebar-collapsed .brand { padding: 0 3px 11px; }
  .app-shell.is-sidebar-collapsed .brand-copy { display: grid; }
  .app-shell.is-sidebar-collapsed .collapse-button { margin: 0 0 11px auto; }
  .app-shell.is-sidebar-collapsed .main-nav { gap: 5px; }
  .app-shell.is-sidebar-collapsed .nav-link { justify-content: flex-start; padding: 8px 10px; }
  .app-shell.is-sidebar-collapsed .nav-link > span { width: 17px; font-size: 13px; }
  .app-shell.is-sidebar-collapsed .nav-label { display: inline; }
  .app-shell.is-sidebar-collapsed .main-content { margin-left: 0; }
  .topbar { height: 51px; }
  .demo-warning { margin-top: 12px; }
  .page-heading { align-items: flex-start; flex-direction: column; padding: 23px 0 17px; }
  .agent-subnav { width: 100%; }
  .agent-subnav-button { flex: 1; }
  .training-utility-row { align-items: flex-start; flex-wrap: wrap; padding-right: 8px; padding-left: 8px; }
  .training-panel { margin-right: -16px; }
  .training-legend { flex-basis: 100%; gap: 7px 11px; }
  .training-toolbar { width: 100%; justify-content: flex-end; }
  .training-column-manager { margin-right: 8px; margin-left: 8px; padding: 10px; }
  .training-column-editor-row { grid-template-columns: minmax(0, 1fr) minmax(95px, .7fr); }
  .training-column-editor-row .training-column-delete { grid-column: 1 / -1; justify-self: end; }
  .training-manager-actions { flex-wrap: wrap; }
  .training-manager-spacer { display: none; }
  .heading-actions { width: 100%; }
  .heading-actions .button { flex: 1; padding: 0 7px; font-size: 9px; }
  .stats-grid { gap: 8px; }
  .stat-card { gap: 9px; padding: 11px 9px; }
  .stat-icon { flex-basis: 29px; height: 29px; font-size: 13px; }
  .stat-label { font-size: 7px; letter-spacing: .07em; }
  .stat-card strong { font-size: 17px; }
  .stat-card small { font-size: 8px; }
  .panel-heading { padding: 14px 12px; }
  .my-patrol { margin: 0 12px 12px; }
  .my-patrol-actions { flex: 1 1 100%; }
  .my-patrol-sector { flex: 1 1 auto; width: auto; }
  .my-patrol-actions .status-select { flex: 1; min-width: 0; }
  .streamdeck-panel { padding: 0 12px 14px; }
  .units-panel .panel-heading { align-items: flex-start; flex-direction: column; }
  .search-box, .units-heading-actions { width: 100%; }
  th, td { padding-right: 10px; padding-left: 10px; }
  .crew-cell { min-width: 240px; }
  .seat-grid { grid-template-columns: minmax(0, 1fr); }
  .lower-grid { grid-template-columns: 1fr; }
  .calls-panel, .alert-panel, .directives-panel, .wanted-panel, .garage-panel { padding-right: 12px; padding-left: 12px; }
  .radio-list { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
  .page-footer { flex-direction: column; }
}
@media (max-width: 760px) {
  .training-panel { margin-right: 0; }
  .training-grade-column { width: 0; }
  .training-agent-column { width: 75px; }
  .training-qualification-column { width: 29px; }
  .training-table .training-group-row th:first-child, .training-table .training-grade-cell { visibility: hidden; padding: 0; }
  .training-table .training-agent-cell { width: 75px; padding: 4px 2px; }
  .training-agent-name { font-size: 7px; }
  .training-agent-cell .agent-badge { padding: 2px 4px; font-size: 7px; }
  .training-table .qualification-heading { width: 29px; padding: 2px 0; font-size: 6px; }
  .training-table .training-qualification-cell { padding: 2px 0; }
  .training-table .training-course-heading { height: 112px; padding: 3px 1px; font-size: 7px; line-height: 1; writing-mode: vertical-rl; }
  .training-table .training-group-heading .agent-grade-badge { gap: 2px; padding: 3px 3px; font-size: 6px; }
  .training-status, .training-qualification { box-sizing: border-box; width: 100%; min-width: 0; height: 23px; padding: 0; border-radius: 3px; font-size: 7px; }
  .training-status-menu { grid-template-columns: repeat(2, minmax(100px, 1fr)); }
}
@media (max-width: 420px) {
  .breadcrumb { font-size: 9px; gap: 6px; }
  .topbar-actions { gap: 7px; }
  .local-pill { padding: 5px 7px; font-size: 7px; }
  .heading-actions .button { min-height: 37px; }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .page-footer { font-size: 7px; }
}

.intel-panel { margin-bottom: 14px; padding: 0 16px 16px; }
.intel-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.intel-field { display: grid; gap: 5px; min-width: 0; color: #7f8da1; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.intel-field .dialog-input { text-transform: none; letter-spacing: 0; }
.intel-field > label { justify-self: start; cursor: pointer; }
.intel-field-wide { grid-column: 1 / -1; }
.intel-field textarea { min-height: 70px; font-family: inherit; resize: vertical; }
.intel-form-actions { display: flex; grid-column: 1 / -1; align-items: center; justify-content: flex-end; gap: 8px; }
.intel-form-actions .muted-copy { margin: 0 auto 0 0; }
.intel-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.intel-filters .dialog-input { flex: 1 1 150px; width: auto; min-width: 0; }
.intel-filters select.dialog-input { padding-right: 26px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M1 1l3 3 3-3' fill='none' stroke='%238795a7' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-position: right 10px center; background-repeat: no-repeat; text-overflow: ellipsis; cursor: pointer; -webkit-appearance: none; appearance: none; }
.intel-filters #intel-search { flex-basis: 220px; }
.intel-list { display: grid; gap: 8px; }
.intel-entry { display: grid; gap: 6px; padding: 10px 12px; border: 1px solid #283444; border-radius: 6px; background: #141d28; }
.intel-entry.is-editing { border-color: #548bdf; }
.intel-entry-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.intel-entry h3 { margin: 0; color: #e8edf5; font-size: 13px; }
.intel-group { color: #9bc5ff; font-weight: 600; }
.intel-business { padding: 2px 8px; border: 1px solid #8b6334; border-radius: 999px; background: #392b1b; color: #f2c278; font-size: 9px; font-weight: 700; }
.intel-entry-heading .info-group-actions { margin-left: auto; }
.intel-entry ul { display: grid; gap: 4px; margin: 0; padding-left: 16px; color: #c5cedb; font-size: 11px; line-height: 1.45; }
.intel-tag { display: inline-flex; align-items: center; padding: 2px 8px; border: 1px solid var(--tag-color); border-radius: 999px; background: color-mix(in srgb, var(--tag-color) 20%, transparent); color: color-mix(in srgb, var(--tag-color) 60%, #fff); font-size: 9px; font-weight: 700; }
.dialog-checkbox-label .intel-tag { margin-left: 2px; }
.intel-meta { color: #7f8da1; font-size: 9px; }
@media (max-width: 760px) {
  .intel-form { grid-template-columns: 1fr; }
  .intel-panel { padding: 0 12px 12px; }
}
.info-questions .info-empty { margin: 7px 0 0; font-size: 9px; }

body.no-perm-dossier-rh .rh-col, body.no-perm-dossier-rh [data-perm~="dossier-rh"] { display: none !important; }
.rh-counters { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px 14px; }
.rh-counter { display: flex; align-items: center; gap: 10px; padding: 7px 12px; border: 1px solid #283444; border-radius: 6px; background: #141d28; }
.rh-counter span { color: #aab6c6; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.rh-counter strong { color: #80e0b6; font-size: 14px; font-variant-numeric: tabular-nums; }
.rh-counter.is-alert { border-color: #70464b; background: #342329; }
.rh-counter.is-alert strong { color: #ee9ba1; }
.rh-table th, .rh-table td { padding-inline: 8px; text-align: center; }
#rh-header-row th:nth-child(-n+4), .rh-table td:nth-child(-n+4) { text-align: left; }
.rh-check { display: inline-grid; place-items: center; width: 26px; height: 26px; border: 1px solid; border-radius: 5px; font-size: 12px; font-weight: 700; cursor: pointer; transition: transform .15s; }
.rh-check:hover { transform: translateY(-1px); }
.rh-check.is-yes { border-color: #34755d; background: #17352c; color: #80e0b6; }
.rh-check.is-no { border-color: #70464b; background: #342329; color: #ee9ba1; }
.rh-assign { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 4px; min-width: 60px; min-height: 26px; padding: 3px 6px; border: 1px solid transparent; border-radius: 5px; background: transparent; cursor: pointer; }
.rh-assign:hover { border-color: #2e3b4d; background: #111925; }
.rh-unit, .rh-role { padding: 2px 7px; border: 1px solid #3d6698; border-radius: 999px; background: #1a2d46; color: #9bc5ff; font-size: 8px; font-weight: 700; }
.rh-unit-mcd { border-color: #34755d; background: #17352c; color: #80e0b6; }
.rh-unit-sog { border-color: #a14a30; background: #5a2b1d; color: #ff9c79; }
.rh-unit-stu { border-color: #827434; background: #35311d; color: #e8d46f; }
.rh-role { border-color: #6b4b8c; background: #2c2140; color: #c9a8f0; }
/* Largeurs proportionnelles : sans les colonnes de dates, l'espace se répartit sur les autres. */
.directory-col-grade { width: 11%; }
.directory-col-insignia { width: 64px; }
.directory-col-name { width: 25%; }
body.no-perm-dossier-rh .directory-col-name { width: 34%; }
.directory-col-badge { width: 8%; }
.directory-col-phone { width: 9%; }
.directory-col-date { width: 9%; white-space: normal; line-height: 1.3; }
.directory-col-actions { width: 4%; }
.directory-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.header-filter-button { text-align: inherit; text-transform: inherit; cursor: pointer; }
.header-filter-menu .training-status-option { justify-content: flex-start; }
.header-filter-menu .agent-grade-badge, .header-filter-menu .rh-unit, .header-filter-menu .rh-role { font-size: 9px; white-space: nowrap; }
.header-filter-menu.is-list { grid-template-columns: minmax(0, 1fr); }
.header-filter-menu.is-list .training-status-option { white-space: normal; text-align: left; }

/* Tableaux quadrillés (annuaire, dossier RH), dans le style du suivi formations. */
.grid-table th, .grid-table td { border-top: 0; border-right: 1px solid #222d3c; border-bottom: 1px solid #222d3c; }
.grid-table th:last-child, .grid-table td:last-child { border-right: 0; }
.grid-table tbody tr { background: #101822; }
.grid-table tbody tr:hover { background: #172230; }
.rh-group-row th { height: 28px; background: #172230; color: #e8edf5; letter-spacing: .04em; text-align: center; }
.rh-table .rh-end-identity { box-shadow: inset -2px 0 #34465d; }
.rh-table .rh-end-diplomas, .rh-table .rh-end-permits { box-shadow: inset -2px 0 #34465d; }
.grid-table .vehicle-icon-cell, .grid-table .unit-status-icon-cell { border-right: 0; }

/* Dispatch MCD */
body.no-perm-mcd-dispatch [data-perm~="mcd-dispatch"] { display: none !important; }
.mcd-cases-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 14px; align-items: start; }
.mcd-side { display: grid; gap: 14px; }
.mcd-case-table { min-width: 760px; }
.mcd-case-table th, .mcd-case-table td { padding-inline: 8px; }
.mcd-case-title a { color: #9bc5ff; font-weight: 700; text-decoration: none; white-space: normal; }
.mcd-case-title a:hover { text-decoration: underline; }
.mcd-case-title a i { margin-left: 3px; color: #647287; font-size: 8px; }
.mcd-case-title { min-width: 180px; white-space: normal; }
.mcd-overdue { color: #ee9ba1; font-weight: 700; }
.mcd-inline-select { width: 100%; min-width: 96px; min-height: 28px; }
.mcd-status { font-weight: 700; }
.mcd-status-0 { color: #f2c278; }
.mcd-status-1 { color: #9bc5ff; }
.mcd-status-2, .mcd-status-3 { color: #e8d46f; }
.mcd-status-4, .mcd-status-9 { color: #c9a8f0; }
.mcd-status-5, .mcd-status-6, .mcd-status-7 { color: #ff9c79; }
.mcd-status-8, .mcd-status-11 { color: #8795a7; }
.mcd-status-10 { color: #80e0b6; }
.mcd-progress { display: inline-block; width: 46px; height: 6px; overflow: hidden; border-radius: 999px; background: #222e3e; vertical-align: middle; }
.mcd-progress span { display: block; height: 100%; border-radius: inherit; background: #56d6a0; }
.mcd-progress-label { margin-left: 6px; color: #aab6c6; font-size: 9px; font-variant-numeric: tabular-nums; }
.mcd-members-panel, .mcd-info-panel { padding: 0 14px 14px; }
.mcd-members { display: grid; gap: 6px; }
.mcd-member { display: grid; grid-template-columns: 28px minmax(0, 1fr) 112px 22px; align-items: center; gap: 8px; padding: 6px 8px; border: 1px solid #283444; border-radius: 6px; background: #141d28; }
.mcd-dispo { width: 28px; height: 28px; border: 1px solid #283547; border-radius: 5px; background: #0e1620; font-size: 13px; cursor: pointer; }
.mcd-dispo:hover { border-color: #548bdf; }
.mcd-member-name { display: grid; gap: 2px; min-width: 0; }
.mcd-member-name strong { overflow: hidden; color: #e8edf5; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.mcd-member-name small { color: #7f8da1; font-size: 9px; }
.mcd-role-select { min-height: 28px; font-size: 9px; }
.mcd-member-add { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 10px; }
.mcd-member-add .seat-select { min-height: 34px; }
.mcd-frequency { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 0 6px; }
.mcd-frequency label { display: grid; gap: 3px; cursor: pointer; }
.mcd-frequency small { color: #7f8da1; font-size: 9px; }
.mcd-frequency-controls { display: flex; align-items: center; gap: 6px; }
.mcd-frequency .dialog-input.is-manual { border-color: #8b6334; color: #f2c278; }
.mcd-member-group { display: flex; align-items: center; gap: 8px; margin-top: 8px; padding-top: 10px; border-top: 1px solid #283444; }
.mcd-member-group .count-badge { margin: 0; }
.mcd-frequency .dialog-input { width: 90px; color: #80e0b6; font-size: 14px; font-weight: 700; text-align: center; }
.mcd-links { display: grid; gap: 6px; }
.mcd-link { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px; border: 1px solid #283444; border-radius: 6px; background: #141d28; }
.mcd-link a { min-width: 0; color: #9bc5ff; font-size: 10px; font-weight: 600; text-decoration: none; }
.mcd-link a:hover { text-decoration: underline; }
.mcd-soon { padding: 30px; }
.mcd-vehicles-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 14px; align-items: start; }
.mcd-works-panel { grid-column: 1 / -1; }
.mcd-contacts-panel { padding: 0 14px 14px; }
.mcd-contacts { display: grid; gap: 5px; }
.mcd-contact { display: grid; grid-template-columns: minmax(0, 1fr) auto 22px; align-items: center; gap: 8px; padding: 6px 8px; border: 1px solid #283444; border-radius: 6px; background: #141d28; color: #dce5f0; font-size: 10px; }
.mcd-contact > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mcd-contact-phone { color: #9fb0c6; font-variant-numeric: tabular-nums; }
.mcd-contact.has-role { grid-template-columns: minmax(0, 1fr) 112px auto 22px; }
.mcd-contact-role { min-height: 26px; font-size: 9px; }
.mcd-bennys-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.mcd-contacts-group + .mcd-contacts-group { padding-left: 14px; border-left: 1px solid #283444; }
.mcd-contacts-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; color: #aab6c6; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.mcd-contacts-link { display: inline-flex; gap: 6px; margin-top: 10px; color: #9bc5ff; font-size: 10px; font-weight: 600; text-decoration: none; }
.mcd-contacts-link:hover { text-decoration: underline; }
.mcd-work-table th, .mcd-work-table td { padding-inline: 8px; text-align: center; }
.mcd-work-table td:first-child, .mcd-work-table th:first-child { text-align: left; }
.mcd-work-date { width: 130px; min-height: 28px; padding: 4px 6px; }
.mcd-interservice-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; align-items: start; }
.mcd-interservice-table td strong { color: #e8edf5; }
.mcd-kicker-lspd { color: #8ea2ff; }
.mcd-kicker-bcso { color: #80e0b6; }
.mcd-row-actions { display: flex; justify-content: flex-end; gap: 4px; }
.mcd-row-actions .small-icon-button, .mcd-row-actions .remove-vehicle-button { display: grid; place-items: center; width: 26px; height: 26px; padding: 0; border-radius: 5px; font-size: 12px; }
.mcd-row-actions .small-icon-button i { font-size: 10px; }
@media (max-width: 900px) {
  .mcd-vehicles-layout, .mcd-interservice-layout, .mcd-bennys-columns { grid-template-columns: minmax(0, 1fr); }
  .mcd-contacts-group + .mcd-contacts-group { padding-left: 0; border-left: 0; margin-top: 12px; padding-top: 10px; border-top: 1px solid #283444; }
}
@media (max-width: 1100px) {
  .mcd-cases-layout { grid-template-columns: minmax(0, 1fr); }
}
body.no-perm-data-objects [data-perm~="data-objects"] { display: none !important; }
.mcd-seizures-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 14px; align-items: start; }
.seizure-search { width: 200px; min-height: 34px; }
.seizure-table td:not(:first-child), .seizure-table th:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums; }
.seizure-table td:nth-child(3), .seizure-table th:nth-child(3) { text-align: left; }
.seizure-table td strong, .seizure-object-table td strong { color: #e8edf5; }
.seizure-empty td { color: #647287; }
.seizure-input { width: 110px; min-height: 28px; padding: 4px 8px; text-align: right; }
.mcd-recap-panel .panel-heading { padding-inline: 14px; }
.seizure-recap-table th, .seizure-recap-table td { padding-inline: 10px; }
.seizure-recap-table td:nth-child(2), .seizure-recap-table th:nth-child(2) { text-align: right; font-variant-numeric: tabular-nums; }
.seizure-recap-table td:nth-child(3), .seizure-recap-table th:nth-child(3) { text-align: center; }
.seizure-total td { background: #141d28; color: #e8edf5; font-weight: 700; }
.seizure-destroy-total td { color: #ee9ba1; }
.seizure-destroy { width: 15px; height: 15px; accent-color: #d9534f; cursor: pointer; }
.button.is-active { border-color: #548bdf; background: #1b2c44; color: #e8edf5; }
@media (max-width: 1100px) {
  .mcd-seizures-layout { grid-template-columns: minmax(0, 1fr); }
}
.seizure-table td, .seizure-recap-table td, .seizure-object-table td { height: 34px; padding-block: 4px; }
.seizure-treatment { display: inline-flex; overflow: hidden; border-radius: 999px; font-size: 9px; font-weight: 700; white-space: nowrap; }
.seizure-treatment span { padding: 2px 8px; }
.seizure-reminder { display: flex; align-items: center; gap: 8px; margin: 0 16px 12px; padding: 8px 12px; border: 1px solid #2c4466; border-radius: 6px; background: #121d2b; color: #c5cedb; font-size: 10px; }
.seizure-reminder strong { color: #e8edf5; }
.seizure-reminder.is-due { border-color: #8b6334; background: #392b1b; color: #f2c278; }
.seizure-reminder.is-late { border-color: #70464b; background: #342329; color: #ee9ba1; }
.seizure-reminder.is-due strong, .seizure-reminder.is-late strong { color: inherit; }
.mcd-tab-alert { display: inline-grid; place-items: center; width: 16px; height: 16px; margin-left: 4px; border-radius: 999px; background: #d9534f; color: #fff; font-size: 9px; font-weight: 800; }
.mcd-tab-alert[hidden] { display: none; }
.seizure-weapons td { border-bottom: 2px solid #990000; background: #2a1414; color: #f3c9c9; font-size: 12px; font-weight: 700; }
.seizure-weapons td strong { color: #fff; font-size: 12px; }
.seizure-weapons td i { margin-right: 4px; color: #ee9ba1; }
.nav-link > span.nav-count.is-late { border-color: #a03a3a; background: #4a1c1c; color: #ffb3b3; }
.seizure-subtabs { display: flex; align-items: center; gap: 4px; margin-left: 6px; padding-left: 10px; border-left: 1px solid #2c3a4d; }
.seizure-subtabs[hidden] { display: none; }
.agent-subnav-button.seizure-subtab { min-height: 26px; padding: 4px 10px; font-size: 9px; }
.seizure-matrix th, .seizure-matrix td { padding-inline: 8px; }
.seizure-matrix td:first-child { min-width: 200px; }
.seizure-matrix-date { text-align: right; line-height: 1.3; }
.seizure-matrix-cell { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.seizure-matrix-cell small { display: block; font-size: 8px; font-weight: 700; }
.seizure-matrix-cell.is-up { background: #13291f; color: #80e0b6; }
.seizure-matrix-cell.is-down { background: #2c1a1c; color: #ee9ba1; }
.seizure-zero { color: #4f5c6e; }
.seizure-matrix-new { background: #122033; text-align: right; }
.seizure-matrix .seizure-weapons .seizure-matrix-cell.is-up, .seizure-matrix .seizure-weapons .seizure-matrix-cell.is-down { font-size: 12px; }
.seizure-matrix td, .seizure-matrix th { height: 34px; }
.seizure-matrix-badges th { height: 30px; background: #172230; color: #e8edf5; font-size: 10px; letter-spacing: .02em; }
.seizure-matrix-badges th:first-child { color: #aab6c6; font-size: 8px; letter-spacing: .04em; }
.seizure-matrix-badge { text-align: right; font-variant-numeric: tabular-nums; }
.seizure-matrix-date { color: #c5cedb; font-size: 9px; }
.seizure-capacity-table th, .seizure-capacity-table td { padding-inline: 8px; }
.seizure-capacity-table .seizure-input { width: 90px; }
.seizure-capacity-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 10px 14px 14px; padding: 8px 10px; border: 1px solid #283444; border-radius: 6px; background: #141d28; color: #aab6c6; font-size: 10px; }
.seizure-capacity-summary strong { color: #e8edf5; }
.seizure-capacity-summary em { margin-left: auto; font-style: normal; font-weight: 700; }
.seizure-capacity-summary.is-ok { border-color: #34755d; }
.seizure-capacity-summary.is-ok em { color: #80e0b6; }
.seizure-capacity-summary.is-short { border-color: #70464b; }
.seizure-capacity-summary.is-short em { color: #ee9ba1; }
.seizure-link-tag { flex: 0 0 auto; padding: 2px 6px; border-radius: 4px; font-size: 8px; font-weight: 800; }
.mcd-link a { flex: 1 1 auto; }
/* Formulaire d'événement : la case Comparution à droite du champ Événement. */
.dialog-fields[data-kind="event"] { grid-template-columns: minmax(0, 1fr) auto; column-gap: 14px; }
.dialog-fields[data-kind="event"] > .dialog-field { grid-column: 1 / -1; }
.dialog-fields[data-kind="event"] > .dialog-field:has([name="text"]) { grid-column: 1; }
.dialog-fields[data-kind="event"] > .dialog-field:has([name="comparution"]) { grid-column: 2; align-self: end; padding-bottom: 9px; }
.dialog-fields[data-kind="event"] > .dialog-field[hidden] { display: none; }
.agenda-event.is-comparution { border-color: #6b4b8c; background: #2c2140; }
.agenda-event.is-comparution button:first-child { color: #e6d6fb; }
.agenda-event.is-comparution b, .agenda-event.is-comparution i { color: #c9a8f0; }
.agenda-event small { display: block; color: #b9a6d6; font-size: 7px; }

/* Dossiers MCD : liste et formulaire */
.dossier-type { display: inline-flex; padding: 2px 8px; border: 1px solid #3d6698; border-radius: 999px; background: #1a2d46; color: #9bc5ff; font-size: 9px; font-weight: 700; letter-spacing: .02em; text-transform: none; }
.dossier-type-destruction { border-color: #a14a30; background: #5a2b1d; color: #ff9c79; }
.dossier-type-select { min-width: 160px; min-height: 34px; }
.dossier-open { font-weight: 700; text-align: left; }
.dossier-editor { padding: 0 16px 18px; }
.dossier-editor .panel-heading { align-items: flex-end; }
.dossier-back { min-height: 30px; margin-bottom: 10px; }
.dossier-form { display: grid; gap: 12px; }
.dossier-row { display: grid; grid-template-columns: minmax(0, 1fr) 160px; gap: 12px; }
.dossier-field { display: grid; gap: 5px; color: #7f8da1; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.dossier-field .dialog-input { letter-spacing: 0; text-transform: none; }
.dossier-form textarea.dialog-input { min-height: 110px; font-family: inherit; line-height: 1.5; resize: vertical; }
.dossier-section-title { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin: 10px 0 0; padding-top: 12px; border-top: 1px solid #222e3e; color: #e8edf5; font-size: 12px; letter-spacing: .03em; text-transform: uppercase; }
.dossier-event { display: grid; gap: 8px; padding: 12px; border: 1px solid #283444; border-radius: 8px; background: #141d28; }
.dossier-event-heading { display: grid; grid-template-columns: 18px minmax(0, 1fr) 150px auto auto 25px; align-items: center; gap: 8px; color: #9bc5ff; }
.dossier-event-date { min-height: 34px; }
.dossier-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.dossier-photo { position: relative; display: grid; gap: 6px; margin: 0; padding: 6px; border: 1px solid #283444; border-radius: 6px; background: #101822; }
.dossier-photo img { display: block; width: 100%; height: 110px; border-radius: 4px; object-fit: cover; background: #0b1018; }
.dossier-photo .dialog-input { min-height: 28px; padding: 4px 8px; font-size: 9px; }
.dossier-photo .remove-vehicle-button { position: absolute; top: 10px; right: 10px; }
.dossier-photo-add { display: flex; flex-direction: column; justify-content: center; gap: 8px; min-height: 120px; padding: 10px; border: 1px dashed #344256; border-radius: 6px; }
.dossier-photo-add .button { justify-content: center; cursor: pointer; }
@media (max-width: 760px) {
  .dossier-row, .dossier-event-heading { grid-template-columns: minmax(0, 1fr); }
}

/* Dossiers MCD : document imprimé */
.dossier-print { display: none; }
@media print {
  @page { size: A4; margin: 14mm 16mm 12mm; @bottom-center { content: counter(page); font: 9pt Calibri, Carlito, Arial, sans-serif; } }
  @page :first { @bottom-center { content: none; } }
  body.is-printing-dossier { min-width: 0; background: #fff; }
  body.is-printing-dossier > *:not(#dossier-print) { display: none !important; }
  body.is-printing-dossier .dossier-print { display: block; color: #111; font: 11.5pt/1.45 Calibri, Carlito, 'Segoe UI', Arial, sans-serif; }
  .dossier-doc-frame { width: 100%; border-collapse: collapse; white-space: normal; }
  .dossier-doc-frame td { height: auto; padding: 0; border: 0; color: #111; font-size: inherit; vertical-align: top; }
  .dossier-doc-footer-space { height: 26mm; }
  .dossier-doc-footer { position: fixed; right: 0; bottom: 0; left: 0; display: grid; gap: 1px; padding: 5px 10px; border: 1.5px solid #111; background: #fff; text-align: center; font-size: 7.5pt; }
  .dossier-doc-footer strong { font: 700 10pt Arial, sans-serif; }
  .dossier-doc-footer span { font: 700 6.8pt 'Courier New', monospace; }
  .dossier-doc-cover { position: relative; min-height: 238mm; break-after: page; text-align: center; }
  .dossier-doc-header { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10mm; padding-bottom: 2mm; border-bottom: 2.5px solid #3b6b2f; text-align: right; }
  .dossier-doc-heading { display: grid; gap: 1mm; padding-bottom: 9mm; }
  .dossier-doc-heading strong { font: 700 19pt Georgia, 'Times New Roman', serif; letter-spacing: -.01em; white-space: nowrap; }
  .dossier-doc-heading span { font: 400 17pt Georgia, 'Times New Roman', serif; }
  .dossier-doc-header img { width: 38mm; }
  .dossier-doc-mountain { position: absolute; bottom: 0; left: 0; width: 80mm; height: 16mm; }
  .dossier-doc-official { margin: 16mm 0 0; font-size: 16pt; font-weight: 700; }
  .dossier-doc-state { margin: 10mm 0 0; font-size: 15pt; font-weight: 700; line-height: 1.5; }
  .dossier-doc-watermark { position: absolute; top: 78mm; right: 0; left: 0; display: grid; place-items: center; opacity: .09; }
  .dossier-doc-watermark img { width: 140mm; }
  .dossier-doc-title { position: relative; margin: 45mm 0 0; font-size: 15pt; font-weight: 700; line-height: 1.6; }
  .dossier-doc-summary { break-after: page; padding-top: 6mm; }
  .dossier-doc-summary p { margin: 0 0 4mm; font-weight: 700; }
  .dossier-doc-summary p.is-sub { margin-left: 10mm; font-weight: 400; }
  .dossier-doc-section { break-before: page; }
  .dossier-doc-section:first-of-type { break-before: auto; }
  .dossier-doc-section h2 { display: flex; align-items: baseline; gap: 6mm; margin: 6mm 0 5mm; font-size: 12.5pt; font-weight: 700; }
  .dossier-doc-section h2 span { font-size: 20pt; font-weight: 400; }
  .dossier-doc-section p { margin: 0 0 4mm 10mm; text-align: justify; text-indent: 10mm; }
  .dossier-doc-event { margin: 0 0 6mm 10mm; }
  .dossier-doc-event h3 { margin: 4mm 0 3mm; font-size: 12pt; font-weight: 700; text-decoration: underline; }
  .dossier-doc-event p { margin-left: 0; }
  .dossier-doc-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5mm; margin: 4mm 0 4mm 10mm; }
  .dossier-doc-event .dossier-doc-photos { margin-left: 0; }
  .dossier-doc-photos figure { margin: 0; break-inside: avoid; text-align: center; }
  .dossier-doc-photos img { width: 100%; max-height: 95mm; object-fit: contain; }
  .dossier-doc-photos figcaption { margin-top: 1.5mm; font-size: 9.5pt; font-style: italic; }
  .dossier-doc-empty { color: #666; font-style: italic; }
  .dossier-doc-list { margin: 0 0 4mm 20mm; padding-left: 5mm; }
  .dossier-doc-list li { margin-bottom: 1mm; }
  .dossier-doc-table { width: 100%; margin: 2mm 0 6mm; border-collapse: collapse; font-size: 10pt; white-space: normal; }
  .dossier-doc-table th, .dossier-doc-table td { height: auto; padding: 1.5mm 2mm; border: 1px solid #333; color: #111; font-size: 10pt; text-align: left; vertical-align: bottom; }
  .dossier-doc-table th { background: #f2f2f2; font-weight: 400; }
  .dossier-doc-legend { display: grid; justify-items: start; gap: 1mm; margin: 0 0 5mm; }
  .dossier-doc-legend span { padding: 0 1mm; }
  .dossier-doc-casier { break-inside: avoid-page; }
  .dossier-doc-casier h3 { margin: 4mm 0 1mm; font-size: 12pt; font-weight: 700; }
}
/* Dossiers MCD : éditeur de perquisition */
.dossier-subtitle { margin-top: 6px; color: #aab6c6; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.dossier-list { display: grid; gap: 6px; }
.dossier-list-row { display: flex; align-items: center; gap: 8px; }
.dossier-list-row .dialog-input { flex: 1 1 0; min-width: 0; min-height: 32px; }
.dossier-list-row input[type="checkbox"] { width: 15px; height: 15px; flex: 0 0 auto; }
.dossier-list-row .dossier-color { flex: 0 0 46px; padding: 2px; }
.dossier-list-add { justify-self: start; min-height: 30px; }
.dossier-qg { display: flex; align-items: center; gap: 8px; color: #dce5f0; font-size: 10px; font-weight: 600; cursor: pointer; }
.dossier-casier { display: grid; gap: 8px; padding: 10px; border: 1px solid #283444; border-radius: 8px; background: #141d28; }
.dossier-casier-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 25px; align-items: center; gap: 8px; }
.dossier-casier-table td, .dossier-casier-table th { height: auto; padding: 5px 8px; font-size: 9px; white-space: normal; }
.dossier-casier-table tr.has-color td { background: color-mix(in srgb, var(--casier-color) 30%, #141d28); }
.dossier-casier-color { min-width: 120px; min-height: 26px; font-size: 9px; }
.dossier-toolbar { flex-wrap: nowrap; }
.dossier-toolbar .dossier-type-select { width: auto; }
@media (max-width: 760px) { .dossier-toolbar { flex-wrap: wrap; } }
