/* ============================================================
   SAFECAR 1.0 — styles.css
   ============================================================
   Sections (in file order):
   1.  Fonts
   2.  CSS Variables
   3.  Admin › Técnicos (patch block — consolidate with section 20)
   4.  Auth / Login
   5.  Session / Sidebar
   6.  Base / Global
   7.  Module Workspace Layout
   8.  Control de Ingreso — Board
   9.  Control de Ingreso — Cards
   10. Control de Ingreso — Side Board & Lanes
   11. Control de Ingreso — Responsive
   12. Process Module
   13. Process Clock
   14. Parts Module
   15. Delivery Module
   16. KPI / Metrics
   17. History Module
   18. Admin Module
   19. Modals & Forms
   20. Admin › Técnicos (canonical block)
   21. Print
   ============================================================ */
/* === 1. FONTS === */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url("/assets/fonts/Inter-roman.var.woff2") format("woff2");
}

@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 100 1000;
  font-display: swap;
  src: url("/assets/fonts/Inter-italic.var.woff2") format("woff2");
}

/* === 2. CSS VARIABLES === */
:root {
  color-scheme: light;
  --bg: #f3f6f5;
  --surface: #ffffff;
  --surface-2: #eef3f2;
  --ink: #15201d;
  --muted: #68756f;
  --line: #d8e0dc;
  --accent: #0a746f;
  --accent-2: #155f87;
  --danger: #b73234;
  --warning: #b27000;
  --success: #26794e;
  --shadow: 0 16px 42px rgba(21, 32, 29, 0.08);
  --button-lift: 4px;
  --button-shadow: 0 var(--button-lift) 0 rgba(21, 32, 29, 0.22), 0 10px 18px rgba(21, 32, 29, 0.12);
  --button-shadow-pressed: 0 1px 0 rgba(21, 32, 29, 0.2), 0 4px 8px rgba(21, 32, 29, 0.12);
  --income-slot-row-height: 148px;
  --income-slot-inner-height: calc(var(--income-slot-row-height) - 8px);
}

/* === 4. AUTH / LOGIN === */
body.auth-locked .app-shell,
body.auth-loading .app-shell {
  display: none;
}

.login-screen {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background:
    radial-gradient(circle at top, rgba(18, 119, 116, 0.16), transparent 34%),
    linear-gradient(180deg, rgba(20, 31, 29, 0.96), rgba(29, 42, 39, 0.98));
  backdrop-filter: blur(8px);
}

body.auth-locked .login-screen {
  display: flex;
}

body.auth-loading .login-screen {
  display: flex;
}

.auth-loading-card {
  display: none;
  place-items: center;
  gap: 18px;
  width: min(420px, 100%);
  padding: 24px 28px;
  text-align: center;
}

.auth-loading-brand {
  display: grid;
  place-items: center;
  width: min(280px, 72vw);
}

.auth-loading-logo {
  display: block;
  width: 100%;
  max-width: 280px;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 10px 24px rgba(0, 0, 0, 0.18));
}

body.auth-loading .auth-loading-card {
  display: grid;
}

body.auth-loading .login-card {
  display: none;
}

.auth-loading-spinner {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 3px solid rgba(255, 255, 255, 0.14);
  border-top-color: rgba(255, 255, 255, 0.92);
  border-right-color: rgba(8, 166, 155, 0.88);
  animation: auth-loading-spin 1.15s linear infinite;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.auth-loading-title,
.auth-loading-copy {
  margin: 0;
}

.auth-loading-title {
  color: #f6fbfa;
  font-size: clamp(1.2rem, 1.8vw, 1.5rem);
  font-weight: 850;
  letter-spacing: 0.01em;
}

.auth-loading-copy {
  max-width: 34ch;
  color: rgba(233, 242, 240, 0.74);
  font-size: 0.98rem;
  font-weight: 680;
  line-height: 1.45;
}

@keyframes auth-loading-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.login-card {
  display: grid;
  grid-template-columns: minmax(340px, 1fr) minmax(330px, 410px);
  gap: 36px;
  align-items: center;
  width: min(990px, 100%);
  padding: 38px;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
}

.login-logo-panel {
  display: grid;
  place-items: center;
  container-type: inline-size;
  min-height: 308px;
  border-right: 1px solid var(--line);
  padding-right: 32px;
  overflow: visible;
}

.login-logo {
  display: block;
  width: 100%;
  max-width: 500px;
  max-height: 230px;
  height: auto;
  aspect-ratio: 1529 / 1029;
  object-fit: contain;
}

.login-fields {
  display: grid;
  gap: 18px;
}

.login-policy {
  color: #66736d;
  font-weight: 750;
}

.login-card label {
  display: grid;
  gap: 8px;
  color: #23302c;
  font-weight: 850;
}

.login-card input {
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbfa;
}

.login-policy,
.login-error {
  margin: 0;
  line-height: 1.35;
}

.login-error {
  min-height: 20px;
  color: var(--danger);
  font-weight: 850;
}

.login-actions {
  display: grid;
  gap: 12px;
}

.login-forgot-button {
  min-height: 32px;
  padding: 4px 8px;
  border: 0;
  background: transparent;
  color: var(--accent-2);
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}

.login-forgot-button:hover,
.login-forgot-button:focus-visible {
  text-decoration: underline;
}

/* === 5. SESSION / SIDEBAR === */
.session-user {
  max-width: 100%;
  color: #f8fbfa;
  font-size: 1.36rem;
  font-weight: 950;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sidebar-session {
  display: grid;
  gap: 18px;
  margin-top: auto;
  padding: 26px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
}

.sidebar-session-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.sidebar-session .ghost-button {
  min-height: 64px;
  padding: 0 22px;
  border-color: rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  font-size: 1.28rem;
  font-weight: 950;
}

.sidebar-session .ghost-button:hover,
.sidebar-session .ghost-button:focus-visible {
  background: rgba(255, 255, 255, 0.18);
}

body.auth-locked .sidebar-session {
  display: none;
}

.password-change-modal {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(17, 26, 23, 0.72);
}

.password-change-card {
  display: grid;
  gap: 16px;
  width: min(420px, 100%);
  padding: 26px;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
}

.password-change-card h3,
.password-change-card p {
  margin: 0;
}

.password-change-card label {
  display: grid;
  gap: 8px;
  font-weight: 850;
}

.password-change-card input {
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.audit-log-list {
  display: grid;
  gap: 10px;
}

.audit-log-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.audit-log-entry strong,
.audit-log-entry span,
.audit-log-entry small {
  display: block;
}

.audit-log-entry span,
.audit-log-entry small {
  color: var(--muted);
  font-weight: 750;
}

* {
  box-sizing: border-box;
}

/* === 6. BASE / GLOBAL === */
body {
  margin: 0;
  min-width: 320px;
  background: var(--bg);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
  transform: translateY(0);
  transition: transform 120ms ease, box-shadow 120ms ease, filter 120ms ease, background-color 120ms ease, border-color 120ms ease;
}

button:hover {
  filter: brightness(1.03);
}

button:active {
  transform: translateY(3px);
}

button:focus-visible {
  outline: 2px solid rgba(21, 95, 135, 0.28);
  outline-offset: 2px;
}

button:disabled {
  cursor: not-allowed;
  filter: saturate(0.7);
}

.app-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: 100dvh;
}

.sidebar {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 80;
  display: flex;
  flex-direction: column;
  gap: 28px;
  width: 380px;
  max-width: calc(100vw - 18px);
  height: 100dvh;
  padding: 28px;
  background: #111a17;
  color: #f8fbfa;
  box-shadow: 16px 0 42px rgba(17, 26, 23, 0);
  transform: translateX(calc(-100% + 18px));
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.sidebar::after {
  position: absolute;
  top: 0;
  right: 0;
  width: 18px;
  height: 100%;
  border-right: 1px solid rgba(255, 255, 255, 0.14);
  background: linear-gradient(180deg, rgba(10, 116, 111, 0.72), rgba(17, 26, 23, 0.95));
  content: "";
}

.sidebar:hover,
.sidebar:focus-within {
  box-shadow: 16px 0 42px rgba(17, 26, 23, 0.28);
  transform: translateX(0);
}

.brand {
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 86px;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  border-radius: 8px;
  background: #0a746f;
  color: #ffffff;
  font-size: 1.55rem;
  font-weight: 900;
}

.brand strong,
.brand small,
.system-note strong,
.system-note span {
  display: block;
}

.brand small,
.system-note span {
  color: #b8c5c0;
  font-size: 1.24rem;
  line-height: 1.2;
}

.brand strong,
.system-note strong {
  font-size: 1.7rem;
  font-weight: 900;
  line-height: 1.08;
}

.nav-list {
  display: grid;
  flex: 1 1 auto;
  align-content: start;
  grid-auto-rows: max-content;
  min-height: 0;
  overflow-y: auto;
  padding: 2px 4px 2px 0;
  gap: 3.3px;
}

.nav-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 0;
  padding: 10px 14px 10px 18px;
  border: 1px solid transparent;
  border-left: 4px solid rgba(255, 255, 255, 0.16);
  border-radius: 7px;
  color: #cbd6d2;
  font-size: 1.52rem;
  line-height: 1.08;
  text-decoration: none;
  font-weight: 560;
  background: rgba(255, 255, 255, 0.02);
}

.nav-list a:first-child {
  border-top-color: transparent;
}

.nav-badge {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  min-width: 26px;
  min-height: 26px;
  padding: 0 8px;
  border-radius: 999px;
  background: #f3d04d;
  color: #1d231f;
  font-size: 0.96rem;
  font-weight: 850;
}

.nav-badge.is-urgent {
  background: #c73436;
  color: #ffffff;
}

.nav-list a:hover,
.nav-list a.active {
  border-color: rgba(255, 255, 255, 0.1);
  border-left-color: #0a746f;
  background: rgba(255, 255, 255, 0.11);
  color: #ffffff;
}

.nav-list a.nav-no-show-link {
  border-left-color: #c72f32;
  background: rgba(199, 47, 50, 0.12);
}

.nav-list a.nav-no-show-link:hover,
.nav-list a.nav-no-show-link.active {
  background: rgba(199, 47, 50, 0.24);
}

.reprogram-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 16px 18px 0;
}

.parts-nav-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 48px;
  margin: -4px 8px 4px 18px;
  padding: 10px 12px;
  border-left: 3px solid #f3d04d;
  border-radius: 0 8px 8px 0;
  background: rgba(243, 208, 77, 0.1);
  color: #e8efec;
  font-size: 1.05rem;
  font-weight: 780;
  text-transform: uppercase;
}

.parts-nav-summary strong {
  display: inline-grid;
  place-items: center;
  min-width: 24px;
  min-height: 24px;
  border-radius: 999px;
  background: #f3d04d;
  color: #1d231f;
  font-size: 0.96rem;
  font-weight: 850;
}

.parts-nav-summary.is-urgent {
  border-left-color: #c73436;
  background: rgba(199, 52, 54, 0.18);
}

.parts-nav-summary.is-urgent strong {
  background: #c73436;
  color: #ffffff;
}

.system-note {
  display: grid;
  gap: 8px;
  margin-top: auto;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}

.workspace {
  display: grid;
  gap: 18px;
  align-content: start;
  min-width: 0;
  padding: 24px;
}

.module-group {
  display: contents;
}

.module-section:not(.active) {
  display: none !important;
}

/* === 7. MODULE WORKSPACE LAYOUT === */
body.module-control-ingreso .topbar,
body.module-control-ingreso .metrics-grid,
body.module-para-repuestos .topbar,
body.module-para-repuestos .metrics-grid,
body.module-vehiculos-proceso .topbar,
body.module-vehiculos-proceso .metrics-grid,
body.module-vehiculos-detenidos .topbar,
body.module-vehiculos-detenidos .metrics-grid,
body.module-vehiculos-entregados .topbar,
body.module-vehiculos-entregados .metrics-grid,
body.module-reloj-proceso .topbar,
body.module-reloj-proceso .metrics-grid,
body.module-admin .topbar,
body.module-admin .metrics-grid,
body.module-historial .topbar,
body.module-historial .metrics-grid,
body.module-kpi .topbar,
body.module-kpi .metrics-grid {
  display: none;
}

body.module-reloj-proceso .app-shell {
  grid-template-columns: 1fr;
}

body.module-reloj-proceso .sidebar {
  display: none;
}

body.module-control-ingreso .workspace {
  height: 100dvh;
  padding: 6px;
  overflow: hidden;
}

body.module-para-repuestos .workspace {
  min-height: 100dvh;
  padding: 14px;
}

body.module-vehiculos-proceso .workspace {
  height: 100dvh;
  padding: 8px;
  overflow: auto;
}

body.module-vehiculos-entregados .workspace {
  min-height: 100dvh;
  gap: 0;
  padding: 10px 18px 18px;
}

body.module-vehiculos-entregados .vehicle-delivered-panel > .panel-heading {
  display: none;
}

body.module-reloj-proceso .workspace {
  height: 100dvh;
  padding: 0;
  overflow: hidden;
}

body.module-tv-clock {
  background:
    radial-gradient(circle at top, rgba(43, 74, 62, 0.3), transparent 34%),
    linear-gradient(180deg, #071311 0%, #0a1715 48%, #050908 100%);
}

body.module-tv-clock .workspace {
  background: transparent;
}

body.module-admin .workspace {
  gap: 14px;
  padding: 14px;
}

body.module-admin .admin-panel {
  min-height: calc(100vh - 28px);
}

body.module-admin .panel-heading {
  align-items: flex-start;
  padding: 22px 26px;
  border-bottom: 1px solid var(--line);
}

body.module-admin .panel-heading h2 {
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1.02;
}

body.module-admin #admin > .panel-heading {
  display: grid;
  grid-template-columns: minmax(760px, 1fr) auto;
  align-items: stretch;
  column-gap: clamp(12px, 1.2vw, 20px);
  margin-bottom: 16px;
  padding: clamp(6px, 1vw, 12px) clamp(10px, 1.3vw, 18px);
  border: 1px solid rgba(18, 45, 38, 0.14);
  border-left: 6px solid #0a746f;
  border-radius: 8px;
  background: #fbfcfa;
  box-shadow: 0 14px 32px rgba(29, 45, 39, 0.11);
}

body.module-admin #admin > .panel-heading .sfc-module-header {
  grid-column: 1;
  width: 100% !important;
  max-width: none !important;
  min-height: clamp(82px, 10dvh, 112px);
  grid-template-columns: clamp(170px, 17vw, 240px) minmax(0, 1fr);
}

body.module-admin #admin > .panel-heading .sfc-module-brand {
  padding: clamp(12px, 1.4vw, 18px) clamp(16px, 1.8vw, 24px);
}

body.module-admin #admin > .panel-heading .sfc-logo-symbol {
  height: clamp(68px, 8dvh, 102px);
  max-width: 100%;
}

body.module-admin #admin > .panel-heading .sfc-module-title {
  min-height: clamp(82px, 10dvh, 112px);
  padding: clamp(12px, 1.35vw, 22px) clamp(18px, 1.8vw, 30px);
}

body.module-admin #admin > .panel-heading .admin-back-button {
  grid-column: 2;
  align-self: center;
  justify-self: end;
}

#admin.is-company-profile > .panel-heading {
  display: none;
}

#admin.is-company-profile > .admin-layout {
  padding: 0;
}

body.module-admin .eyebrow {
  margin-bottom: 8px;
  font-size: 1.05rem;
  letter-spacing: 0.14em;
}

body.module-admin .primary-button,
body.module-admin .ghost-button {
  min-height: 46px;
  padding: 0 18px;
  font-size: 1.18rem;
}

body.module-control-ingreso #control-ingreso {
  min-height: calc(100vh - 16px);
}

body.module-vehiculos-proceso #vehiculos-proceso {
  min-height: calc(100vh - 16px);
  border: 0;
  background: transparent;
  box-shadow: none;
}

body.module-reloj-proceso #reloj-proceso {
  min-height: 100dvh;
  border: 0;
  background: transparent;
  box-shadow: none;
}

body.module-control-ingreso .week-board {
  height: calc(100vh - 16px);
  padding: 6px;
  overflow: auto;
}

body.module-vehiculos-proceso #vehiculos-proceso > .panel-heading {
  display: none;
}

body.module-vehiculos-proceso .vehicle-process-board-scroll {
  height: calc(100vh - 16px);
  padding: 0;
  border-bottom: 0;
}

body.module-vehiculos-proceso .light-damage-process-board {
  min-height: calc(100vh - 16px);
}

body.module-reloj-proceso .process-clock-screen {
  min-height: 100dvh;
}

body.module-vehiculos-proceso .vehicle-process-layout {
  display: none;
}

.topbar,
.panel-heading,
.topbar-actions,
.form-actions,
.process-title,
.process-toggles {
  display: flex;
  align-items: center;
}

.topbar,
.panel-heading {
  justify-content: space-between;
  gap: 18px;
}

.sfc-module-header {
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
  align-items: stretch;
  width: min(100%, 860px);
  min-height: 116px;
  overflow: hidden;
  border: 1px solid rgba(205, 218, 214, 0.95);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 34px rgba(24, 42, 37, 0.08);
}

.sfc-module-brand {
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 18px 24px;
  background: linear-gradient(135deg, #0a746f, #0f8a7b);
  color: #ffffff;
}

.sfc-logo-symbol {
  display: block;
  width: 100%;
  max-width: 446px;
  height: 173px;
  object-fit: contain;
}

.sfc-module-title {
  display: grid;
  align-content: center;
  gap: 6px;
  min-width: 0;
  min-height: 156px;
  padding: 30px 34px 30px 38px;
  border-left: 5px solid #0a746f;
  background: #ffffff;
}

.sfc-module-title strong,
.sfc-module-title span {
  min-width: 0;
  margin: 0;
  line-height: 1.02;
  letter-spacing: 0;
}

.sfc-module-title strong {
  color: #1b2b34;
  font-size: clamp(2rem, 2.25vw, 2.75rem);
  font-weight: 1000;
  line-height: 1.02;
  letter-spacing: 0;
}

.sfc-module-title span {
  color: #0a746f;
  font-size: clamp(1.12rem, 1.28vw, 1.55rem);
  font-weight: 1000;
  line-height: 1.02;
  letter-spacing: 0;
  white-space: nowrap;
  text-transform: uppercase;
}

#control-ingreso .sfc-module-title {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.topbar .sfc-module-header {
  width: min(100%, 900px);
}

.panel-heading .sfc-module-header {
  flex: 1 1 680px;
}

.income-command-center .sfc-module-header,
.light-damage-command-center .sfc-module-header {
  width: 100%;
}

.income-command-center .sfc-module-title strong,
.light-damage-command-center .sfc-module-title strong,
.delivery-dashboard-hero .sfc-module-title strong {
  font-size: 44px;
  line-height: 1.02;
}

.income-command-center .sfc-module-title span,
.light-damage-command-center .sfc-module-title span,
.delivery-dashboard-hero .sfc-module-title span {
  font-size: 25px;
  line-height: 1.02;
}

.delivery-dashboard-hero .sfc-module-header {
  width: 100%;
  box-shadow: none;
}

.topbar h1,
.panel-heading h2 {
  margin: 0;
  letter-spacing: 0;
}

.topbar h1 {
  font-size: clamp(2rem, 3.2vw, 3rem);
  line-height: 1;
}

.panel-heading h2 {
  font-size: 1.55rem;
  line-height: 1.12;
}

.eyebrow {
  margin: 0 0 5px;
  color: var(--accent-2);
  font-size: 0.92rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.topbar-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.date-control {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--muted);
  font-size: 1rem;
  font-weight: 750;
}

.date-control input {
  border: 0;
  background: transparent;
  color: var(--ink);
  outline: 0;
}

.primary-button,
.ghost-button,
.danger-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 18px;
  border-radius: 8px;
  font-size: 1.04rem;
  font-weight: 800;
  box-shadow: var(--button-shadow);
}

.primary-button {
  border: 1px solid #076963;
  background: linear-gradient(180deg, #11918a 0%, var(--accent) 100%);
  color: #ffffff;
}

.ghost-button {
  border: 1px solid var(--line);
  background: linear-gradient(180deg, #ffffff 0%, #edf2f0 100%);
  color: var(--ink);
}

.primary-button:active,
.ghost-button:active,
.danger-button:active {
  box-shadow: var(--button-shadow-pressed);
}

/* === 16. KPI / METRICS === */
.metrics-grid,
.two-column {
  display: grid;
  gap: 16px;
}

.metrics-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.metrics-grid article,
.board-panel,
.line-panel,
.appointment-boards-panel,
.no-show-panel,
.vehicle-process-panel,
.form-panel,
.config-panel,
.process-panel,
.admin-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.metrics-grid article {
  min-height: 112px;
  padding: 18px;
}

.metrics-grid span {
  display: block;
  color: var(--muted);
  font-size: 1.08rem;
  font-weight: 750;
}

.metrics-grid strong {
  display: block;
  margin-top: 10px;
  font-size: 2.05rem;
  line-height: 1;
}

.panel-heading {
  padding: 22px 24px;
  border-bottom: 1px solid var(--line);
}

.legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.legend-pill,
.status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 850;
}

.legend-pill {
  gap: 7px;
  padding: 0 10px;
  border: 1px solid var(--line);
  color: var(--muted);
  background: var(--surface);
}

.legend-color {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: var(--chip-color);
}

.status-pill {
  padding: 0 10px;
  background: #e3f1f0;
  color: var(--accent);
}

#control-ingreso > .panel-heading {
  display: none;
}

.week-board {
  overflow: auto;
  padding: 8px;
}

.income-control-board {
  --income-label-width: clamp(118px, 8vw, 168px);
  --income-no-show-width: clamp(220px, 16vw, 330px);
  --income-slot-row-height: clamp(100px, 9.5vh, 120px);
  --income-slot-inner-height: calc(var(--income-slot-row-height) - 8px);
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  width: 100%;
  max-width: 2440px;
  min-width: 0;
  height: calc(100vh - 28px);
  min-height: 0;
  margin: 0 auto;
  padding: 8px 6px;
  border: 2px solid #111111;
  background: #f8f8f5;
  color: #111111;
  font-family: inherit;
  letter-spacing: 0;
}

.income-board-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin: 0 0 4px;
}

.income-week-button {
  min-height: 28px;
  padding: 0 10px;
  border: 2px solid #111111;
  border-radius: 0;
  background: #ffffff;
  color: #111111;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
}

.income-week-button:hover,
.income-week-button:focus-visible {
  background: #e9ece8;
}

.income-board-title {
  margin: 0 0 6px;
  color: #000000;
  font-size: clamp(1.4rem, 2.25vw, 2.35rem);
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
  white-space: normal;
}

.income-n-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 14px;
  color: #333333;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 0.88rem;
}

.income-n-strip strong {
  padding: 6px 10px;
  border: 2px solid #111111;
  background: #ffffff;
  font-weight: 900;
}

.income-board-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--income-no-show-width);
  gap: 4px;
  align-items: stretch;
  min-height: 0;
}

.income-main-board {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--income-no-show-width);
  grid-template-rows: minmax(0, 1fr);
  gap: 4px;
  min-height: 0;
}

.income-grid {
  display: grid;
  grid-template-columns: var(--income-label-width) repeat(var(--day-count), minmax(28px, 0.62fr));
  grid-template-rows: 42px repeat(4, 34px) repeat(var(--slot-count), minmax(0, 1fr)) 18px repeat(3, 62px);
  min-height: 0;
  border-top: 2px solid #111111;
  border-left: 2px solid #111111;
  background: #ffffff;
}

.income-cell {
  min-width: 0;
  min-height: 0;
  border-right: 1px solid #111111;
  border-bottom: 1px solid #111111;
}

.income-corner,
.income-day-head {
  display: grid;
  place-items: center;
  min-height: 0;
  background: #f7f7f4;
  font-size: clamp(0.86rem, 1.18vw, 1.15rem);
  font-weight: 500;
}

.income-row-label {
  display: grid;
  place-items: center;
  min-height: 0;
  padding: 4px;
  background: #f7f7f4;
  font-size: clamp(0.56rem, 0.62vw, 0.68rem);
  font-weight: 900;
  line-height: 1.12;
  text-align: center;
}

.income-promise-label {
  grid-row: span 2;
  min-height: 0;
}

.income-date-cell {
  display: grid;
  place-items: center;
  min-height: 0;
  padding: 3px;
  border-top: 0;
  border-left: 0;
  border-radius: 0;
  color: inherit;
  cursor: pointer;
}

.income-date-cell strong {
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 0;
  padding: 0;
  background: transparent;
  color: #101010;
  font-size: clamp(0.92rem, 1.18vw, 1.2rem);
  font-weight: 900;
  line-height: 1;
  text-align: center;
  box-shadow: none;
}

.income-date-cell.is-yellow {
  background: #e5d41f;
}

.income-date-cell.is-white {
  background: #f9f9f5;
}

.income-date-cell.is-blue {
  background: #004e80;
}

.income-date-cell.is-pink {
  background: #d86a9b;
}

.income-date-cell.is-blue strong {
  color: #ffffff;
  background: transparent;
}

.income-slot-label {
  display: grid;
  place-items: center;
  min-height: 0;
  color: #ffffff;
  font-size: clamp(1.25rem, 1.55vw, 1.72rem);
  font-weight: 900;
}

.income-slot-label.is-blue {
  background: #005b94;
}

.income-slot-label.is-pink {
  background: #d86a9b;
  color: #000000;
}

.income-slot-cell {
  display: grid;
  gap: 4px;
  align-content: stretch;
  min-height: 0;
  padding: 3px;
  background: #ffffff;
  cursor: pointer;
}

.income-slot-cell.is-blocked {
  cursor: not-allowed;
  background: #f3f3f0;
}

.income-holiday-marker {
  display: grid;
  place-items: center;
  min-height: 77px;
  padding: 8px;
  border: 1px solid #b7b7b7;
  background: #f7f7f2;
  color: #7d1f23;
  font-size: 0.88rem;
  font-weight: 900;
  line-height: 1.15;
  text-align: center;
}

.income-holiday-marker span {
  color: #555555;
  font-size: 0.72rem;
}

.income-date-cell:hover,
.income-slot-cell:hover {
  box-shadow: inset 0 0 0 3px rgba(10, 116, 111, 0.34);
}

.income-slot-cell:focus {
  outline: 3px solid rgba(10, 116, 111, 0.5);
  outline-offset: -3px;
}

.income-empty-cell,
.income-hours-cell {
  min-height: 0;
  background: #ffffff;
}

.income-empty-cell {
  background: #fbfcfa;
}

.income-hours-cell {
  display: grid;
  place-items: center;
  font-size: clamp(1.18rem, 1.34vw, 1.55rem);
  font-weight: 1000;
  line-height: 1;
}

.income-hours-label {
  padding: 6px;
  font-size: clamp(0.76rem, 0.9vw, 1.02rem);
  font-weight: 1000;
  line-height: 1.08;
}

.income-pocket {
  position: relative;
  display: grid;
  align-items: end;
  justify-items: end;
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 1px solid rgba(17, 17, 17, 0.34);
  background: var(--pocket-color);
  box-shadow: none;
}

.income-pocket span,
.income-occupied-label {
  margin: 0 5px 5px 0;
  padding: 2px 5px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.76);
  color: #17201d;
  font-size: 0.6rem;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.income-pocket.is-small {
  min-height: 70px;
  min-width: 0;
  width: 100%;
}

/* === 10. CONTROL DE INGRESO — SIDE BOARD & LANES === */
.income-bottom-lane {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto minmax(0, 1fr) auto minmax(0, 1fr) 66px 66px;
  min-width: 0;
  min-height: 0;
  border: 2px solid #111111;
  background: #ffffff;
}

.income-lane-label,
.income-daily-target-label,
.income-daily-target-value {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  gap: 18px;
  place-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 0;
  border-right: 0;
  border-bottom: 2px solid #111111;
  font-weight: 900;
  text-align: center;
}

.income-lane-label.is-red {
  background: #bd2528;
  color: #ffffff;
  min-height: 50px;
  font-size: clamp(1.05rem, 1.2vw, 1.34rem);
  line-height: 1.08;
}

.income-lane-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  min-width: 0;
  padding: 4px;
  border-right: 0;
  border-bottom: 2px solid #111111;
  overflow-x: hidden;
  overflow-y: auto;
}

.income-lane-content .income-appointment-card {
  width: 100%;
  flex: 0 0 78px;
}

.income-lane-label.is-detained-label {
  background: #bd2528;
  color: #ffffff;
  min-height: 50px;
  font-size: clamp(1.05rem, 1.2vw, 1.34rem);
  line-height: 1.08;
}

.income-daily-target-label {
  font-size: clamp(0.62rem, 0.68vw, 0.78rem);
  line-height: 1.05;
}

.income-daily-target-value {
  border-right: 0;
  border-bottom: 0;
  font-size: clamp(1.35rem, 1.65vw, 1.9rem);
  font-weight: 500;
}

.income-side-board {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 8px;
  align-self: stretch;
  min-height: 0;
}

.income-month-box {
  display: grid;
  grid-template-columns: 82px 1fr;
  border-top: 2px solid #111111;
  border-left: 2px solid #111111;
  background: #ffffff;
}

.income-month-label,
.income-month-value {
  display: grid;
  align-items: center;
  min-height: 38px;
  padding: 5px 7px;
  border-right: 1px solid #111111;
  border-bottom: 1px solid #111111;
}

.income-month-label {
  justify-content: center;
  font-size: 0.95rem;
  font-weight: 900;
}

.income-month-value {
  color: #2a5f99;
  font-size: 1rem;
  font-weight: 500;
}

.income-side-pocket-board {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: auto minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 6px;
  height: 100%;
  min-height: 0;
  padding: 6px;
  border: 2px solid #111111;
  background: #ffffff;
  align-content: start;
}

.income-side-title {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  grid-column: 1 / -1;
  gap: 18px;
  place-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 6px;
  border: 1px solid #999999;
  background: #f3f0e8;
  color: #555555;
  font-size: 1.02rem;
  font-weight: 1000;
  text-align: center;
}

.income-side-stack {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: 1fr;
  grid-auto-rows: minmax(0, 1fr);
  gap: 5px;
  align-content: stretch;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.income-side-stack.is-ready {
  grid-auto-rows: auto;
  align-content: start;
  min-height: 0;
}

.income-side-stack.is-stopped,
.income-side-stack.is-additional {
  grid-auto-rows: auto;
  align-content: start;
  min-height: 0;
}

.income-side-stack .income-appointment-card {
  min-width: 0;
  min-height: 146px;
  padding: 10px 152px 16px 10px;
}

.income-side-stack .income-appointment-card strong,
.income-side-stack .income-appointment-card span {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  line-height: 1.12;
  word-break: break-word;
}

.income-side-stack .income-appointment-card.is-express-only {
  padding: 6px 50px 6px 10px;
}

.income-side-stack.is-stopped .income-appointment-card.is-express-only,
.income-side-stack.is-additional .income-appointment-card.is-express-only {
  height: 78px;
  min-height: 78px;
}

.income-side-stack .income-appointment-card.is-express-only .income-express-number {
  font-size: clamp(1.7rem, 1.9vw, 2.25rem);
}

.income-side-stack .income-appointment-card.is-express-only .parts-status-signal {
  top: 50%;
  right: 6px;
  width: 34px;
  height: 34px;
  padding: 3px;
  transform: translateY(-50%);
}

.income-side-stack .income-appointment-card.is-express-only .parts-status-light {
  width: 24px;
  height: 24px;
}

.income-side-status {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  grid-column: 1 / -1;
  gap: 18px;
  place-items: center;
  justify-content: center;
  min-height: 54px;
  font-size: 1.04rem;
  font-weight: 900;
  text-align: center;
}

.income-side-status.is-detained {
  background: #bd2528;
  color: #ffffff;
}

.income-side-status.is-additional-label {
  background: #d9a91f;
  color: #111111;
}

.income-lane-label span,
.income-side-title span,
.income-side-status span {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  min-height: 30px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #10231f;
  font-size: 0.82em;
  font-weight: 1000;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

[data-income-status-panel] {
  cursor: pointer;
}

[data-income-status-panel]:hover,
[data-income-status-panel]:focus-visible {
  outline: 3px solid rgba(10, 116, 111, 0.34);
  outline-offset: 2px;
}

.income-side-empty-slot {
  min-height: 0;
  height: 100%;
  width: 100%;
  border: 1px solid #b7b7b7;
  background: #ffffff;
}

/* === 9. CONTROL DE INGRESO — CARDS === */
.income-appointment-card {
  position: relative;
  display: grid;
  align-content: start;
  gap: 4px;
  width: 100%;
  min-height: 0;
  height: auto;
  padding: 6px 7px 22px;
  border: 1px solid rgba(17, 17, 17, 0.38);
  background: var(--pocket-color);
  color: #111111;
  box-shadow: none;
  text-shadow: none;
}

.income-slot-cell > .income-appointment-card {
  min-height: 56px;
}

.income-slot-cell > .income-appointment-card:only-child {
  height: 100%;
}

.income-appointment-card.is-dark-pocket {
  color: #111111;
  text-shadow: none;
}

.income-appointment-card.is-light-pocket {
  color: #111111;
  text-shadow: none;
}

.income-appointment-card strong,
.income-appointment-card span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.income-appointment-card strong {
  font-size: clamp(0.82rem, 1.15vw, 1.02rem);
  font-weight: 700;
}

.income-appointment-card.is-express-only {
  align-content: center;
  justify-items: start;
  padding: 8px 56px 8px 12px;
}

.income-appointment-card.is-express-only .income-express-number {
  width: 100%;
  color: #111111;
  font-size: clamp(1.75rem, 2.2vw, 2.65rem);
  line-height: 1;
  text-shadow: none;
}

.income-appointment-card span {
  color: #17201d;
  font-size: clamp(0.72rem, 1.0vw, 0.9rem);
  font-weight: 500;
}

.income-appointment-card.is-dark-pocket span {
  color: #111111;
}

.income-appointment-card.is-light-pocket span {
  color: #111111;
}

.income-appointment-card.is-dark-pocket .income-occupied-label,
.income-appointment-card.is-light-pocket .income-occupied-label {
  color: #111111;
  text-shadow: none;
}

.income-appointment-card.is-empty-reference {
  align-content: end;
  justify-items: end;
  padding: 8px;
}

.income-appointment-card.is-alert {
  border-color: rgba(183, 50, 52, 0.42);
  box-shadow: inset 0 0 0 1px rgba(183, 50, 52, 0.18);
}

body.module-control-ingreso #control-ingreso,
body.module-control-ingreso .week-board {
  background: #eef2ef;
}

.income-control-board {
  --income-label-width: clamp(96px, 8.2vw, 142px);
  --income-no-show-width: clamp(240px, 19vw, 330px);
  padding: 18px;
  border: 0;
  background: #eef2ef;
  color: #111a17;
}

.income-command-center {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
  padding: 18px 22px;
  border: 1px solid rgba(18, 45, 38, 0.14);
  border-left: 6px solid #0a746f;
  border-radius: 8px;
  background: #fbfcfa;
  box-shadow: 0 14px 32px rgba(29, 45, 39, 0.11);
}

.income-command-title {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.income-command-title p,
.income-command-title h2,
.income-command-title span,
.income-command-clock strong,
.income-command-clock small {
  margin: 0;
}

.income-command-title p {
  color: #0b5f8d;
  font-size: 1rem;
  font-weight: 1000;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.income-command-title h2 {
  color: #10231f;
  font-size: 2.3rem;
  font-weight: 1000;
  line-height: 1;
  text-transform: uppercase;
}

.income-command-title span {
  color: #66756f;
  font-size: 1.08rem;
  font-weight: 900;
}

.income-command-actions {
  display: grid;
  justify-items: end;
  gap: 10px;
}

.income-command-clock {
  display: grid;
  justify-items: end;
  gap: 3px;
  color: #10231f;
  text-align: right;
}

.income-command-clock strong {
  font-size: 2rem;
  font-weight: 1000;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.income-command-clock small {
  color: #66756f;
  font-size: 0.98rem;
  font-weight: 900;
}

.income-board-actions {
  gap: 8px;
  margin: 0;
}

.income-week-button {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--week-button-border, rgba(18, 45, 38, 0.18));
  border-radius: 8px;
  background: var(--week-button-bg, #ffffff);
  color: var(--week-button-text, #10231f);
  font-size: 0.9rem;
  font-weight: 1000;
  box-shadow: 0 10px 22px var(--week-button-shadow, rgba(29, 45, 39, 0.08));
}

.income-week-button.is-previous {
  --week-button-bg: #eaf3f7;
  --week-button-border: rgba(17, 101, 135, 0.28);
  --week-button-text: #0b5f8d;
  --week-button-shadow: rgba(17, 101, 135, 0.12);
}

.income-week-button.is-current {
  --week-button-bg: #e8f4ee;
  --week-button-border: rgba(10, 116, 111, 0.3);
  --week-button-text: #0a746f;
  --week-button-shadow: rgba(10, 116, 111, 0.13);
}

.income-week-button.is-next {
  --week-button-bg: #fff5d9;
  --week-button-border: rgba(198, 149, 15, 0.34);
  --week-button-text: #715600;
  --week-button-shadow: rgba(198, 149, 15, 0.14);
}

.income-week-button:hover,
.income-week-button:focus-visible {
  filter: saturate(1.08) brightness(0.98);
  box-shadow: 0 0 0 3px rgba(10, 116, 111, 0.16);
}

.income-kpi-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.income-kpi-strip article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 4px 12px;
  min-height: 88px;
  padding: 14px 16px;
  border: 1px solid rgba(18, 45, 38, 0.12);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 30px rgba(29, 45, 39, 0.08);
}

.income-kpi-strip article span {
  color: #66756f;
  font-size: 0.9rem;
  font-weight: 1000;
  line-height: 1.1;
  text-transform: uppercase;
}

.income-kpi-strip article strong {
  grid-row: span 2;
  color: #10231f;
  font-size: 2.35rem;
  font-weight: 1000;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.income-kpi-strip article small {
  min-width: 0;
  color: #0a746f;
  font-size: 0.98rem;
  font-weight: 950;
  line-height: 1.08;
}

.income-kpi-strip article.is-target {
  border-color: rgba(226, 184, 37, 0.34);
  background: #fff7d7;
}

.income-board-layout,
.income-main-board {
  gap: 12px;
}

.income-grid {
  overflow: hidden;
  border: 1px solid rgba(18, 45, 38, 0.18);
  border-radius: 8px;
  background: #d9e1dc;
  box-shadow: 0 18px 42px rgba(29, 45, 39, 0.12);
}

.income-cell {
  border-right: 1px solid rgba(18, 45, 38, 0.22);
  border-bottom: 1px solid rgba(18, 45, 38, 0.22);
}

.income-corner,
.income-day-head,
.income-row-label {
  background: #10231f;
  color: #ffffff;
}

.income-corner,
.income-day-head {
  font-size: 1.08rem;
  font-weight: 1000;
  text-transform: uppercase;
}

.income-row-label {
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}

.income-row-label.is-ingreso {
  background: #e2b825;
  color: #10231f;
}

.income-row-label.is-reparacion {
  background: #ffffff;
  color: #10231f;
}

.income-date-cell {
  border: 0;
  color: #10231f;
  transition: box-shadow 0.18s ease, filter 0.18s ease;
}

.income-date-cell strong {
  color: inherit;
  font-size: 1.12rem;
}

.income-date-cell.is-yellow {
  background: #e2b825;
}

.income-date-cell.is-white {
  background: #ffffff;
}

.income-date-cell.is-blue {
  background: #0b5f8d;
  color: #ffffff;
}

.income-date-cell.is-pink {
  background: #d9659a;
  color: #ffffff;
}

.income-slot-label {
  color: #ffffff;
  font-size: 1.55rem;
}

.income-slot-label.is-blue {
  background: #0b5f8d;
}

.income-slot-label.is-pink {
  background: #d9659a;
  color: #ffffff;
}

.income-slot-cell {
  padding: 5px;
  background: #ffffff;
}

.income-slot-cell.is-blocked {
  background: #f2f4f1;
}

.income-date-cell:hover,
.income-slot-cell:hover {
  box-shadow: inset 0 0 0 4px rgba(226, 184, 37, 0.44);
}

.income-pocket {
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--pocket-color) 62%, #10231f 16%);
  border-radius: 8px;
  background: var(--pocket-color);
  box-shadow: none;
}

.income-pocket span,
.income-occupied-label {
  margin: 0 7px 7px 0;
  padding: 4px 7px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
  color: #10231f;
  font-size: 0.68rem;
  font-weight: 1000;
  text-shadow: none;
}

.income-appointment-card {
  min-height: 0;
  padding: 7px 9px 24px;
  border: 1px solid color-mix(in srgb, var(--pocket-color) 60%, #10231f 16%);
  border-radius: 8px;
  background: var(--pocket-color);
  color: #111111;
  box-shadow: none;
  text-shadow: none;
}

.income-appointment-card strong {
  color: #111111;
  font-size: clamp(0.82rem, 1.15vw, 1.02rem);
  text-shadow: none;
}

.income-appointment-card span {
  color: #111111;
  font-size: clamp(0.72rem, 1.0vw, 0.9rem);
  text-shadow: none;
}

.income-appointment-card.is-express-only .income-express-number {
  font-size: 2.2rem;
}

.income-appointment-card.is-dark-pocket {
  color: #111111;
  text-shadow: none;
}

.income-appointment-card.is-light-pocket {
  color: #111111;
  text-shadow: none;
}

.income-appointment-card.is-dark-pocket span,
.income-appointment-card.is-light-pocket span {
  color: inherit;
}

/* Control de Citas 1.9.6: encabezado limpio con Programadas y dia actual marcado. */
body.module-control-ingreso .income-control-board {
  grid-template-rows: auto minmax(0, 1fr);
}

body.module-control-ingreso .income-board-layout {
  grid-row: 2;
  grid-template-columns: minmax(0, 1fr) minmax(230px, var(--income-no-show-width));
  min-height: 0;
  height: 100%;
}

body.module-control-ingreso .income-main-board {
  grid-template-columns: minmax(0, 1fr) minmax(230px, var(--income-no-show-width));
}

body.module-control-ingreso .income-main-board,
body.module-control-ingreso .income-grid,
body.module-control-ingreso .income-side-board {
  min-height: 0;
  height: 100%;
}

body.module-control-ingreso .income-grid {
  grid-template-rows: 40px repeat(4, minmax(28px, 34px)) repeat(var(--slot-count), minmax(30px, 1fr)) 18px repeat(3, minmax(54px, 62px));
}

body.module-control-ingreso .income-command-center {
  grid-template-columns: minmax(460px, 1fr) auto;
  align-items: stretch;
  column-gap: clamp(12px, 1.2vw, 20px);
  padding: clamp(6px, 1vw, 12px) clamp(10px, 1.3vw, 18px);
}

body.module-control-ingreso .income-command-actions {
  grid-column: 2;
  display: grid;
  grid-template-columns: auto auto;
  grid-template-rows: auto auto;
  align-items: start;
  justify-items: end;
  gap: 10px 16px;
}

/* === 8. CONTROL DE INGRESO — BOARD === */
body.module-control-ingreso,
body.module-control-ingreso #control-ingreso {
  overflow: hidden;
}

body.module-control-ingreso .week-board {
  --income-board-scale: 1;
  --income-board-compact-scale: clamp(0.55, var(--income-board-scale, 1), 1);
  box-sizing: border-box;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  max-width: 100vw;
  min-height: 100dvh;
  height: 100dvh;
  overflow: auto;
  padding: 6px;
}

body.module-control-ingreso .income-board-scale-shell {
  position: relative;
  flex: 0 0 auto;
  min-width: 0;
  min-height: 0;
}

body.module-control-ingreso .income-board-scale-frame {
  position: absolute;
  inset: 0 auto auto 0;
  transform-origin: top left;
}

body.module-control-ingreso .income-control-board {
  box-sizing: border-box;
  zoom: clamp(0.5, calc(100vw / 1920), 1);
  width: 100%;
  max-width: 100%;
  min-width: 1120px;
  height: calc(100dvh - 12px);
  overflow: hidden;
  padding: clamp(6px, 1vw, 12px);
}

body.module-control-ingreso .income-slot-cell {
  padding: calc(4px * var(--income-board-compact-scale));
  transition:
    transform 0.12s ease,
    box-shadow 0.12s ease,
    background-color 0.12s ease,
    filter 0.12s ease;
}

body.module-control-ingreso .income-slot-cell > .income-appointment-card {
  min-height: 0;
}

body.module-control-ingreso .income-appointment-card {
  gap: max(3px, calc(5px * var(--income-board-compact-scale)));
  padding:
    calc(6px * var(--income-board-compact-scale))
    calc(7px * var(--income-board-compact-scale))
    calc(11px * var(--income-board-compact-scale));
  border-radius: calc(8px * var(--income-board-compact-scale));
  transition:
    transform 0.12s ease,
    box-shadow 0.12s ease,
    filter 0.12s ease,
    border-color 0.12s ease;
}

body.module-control-ingreso .income-appointment-card strong {
  font-size: clamp(0.76rem, calc(0.9rem * var(--income-board-compact-scale)), 0.9rem);
  line-height: 1.2;
}

body.module-control-ingreso .income-appointment-card span {
  font-size: clamp(0.68rem, calc(0.8rem * var(--income-board-compact-scale)), 0.8rem);
  line-height: 1.2;
}

body.module-control-ingreso .income-appointment-card.is-express-only {
  padding:
    calc(8px * var(--income-board-compact-scale))
    calc(44px * var(--income-board-compact-scale))
    calc(8px * var(--income-board-compact-scale))
    calc(12px * var(--income-board-compact-scale));
}

body.module-control-ingreso .income-appointment-card.is-express-only .income-express-number {
  font-size: clamp(1rem, calc(2.65rem * var(--income-board-compact-scale)), 2.65rem);
}

body.module-control-ingreso .income-delivered-action {
  right: calc(7px * var(--income-board-compact-scale));
  gap: max(2px, calc(5px * var(--income-board-compact-scale)));
  min-height: calc(20px * var(--income-board-compact-scale));
  max-width: calc(100% - 14px * var(--income-board-compact-scale));
  padding:
    calc(2px * var(--income-board-compact-scale))
    calc(7px * var(--income-board-compact-scale));
  font-size: clamp(0.52rem, calc(0.66rem * var(--income-board-compact-scale)), 0.66rem);
}

body.module-control-ingreso .income-delivered-action span {
  width: calc(13px * var(--income-board-compact-scale));
  height: calc(13px * var(--income-board-compact-scale));
}

body.module-control-ingreso .income-delivered-action span::before {
  width: calc(6px * var(--income-board-compact-scale));
  height: calc(4px * var(--income-board-compact-scale));
}

body.module-control-ingreso .income-appointment-card.has-delivery-mark {
  padding-right: calc(40px * var(--income-board-compact-scale));
  padding-bottom: calc(14px * var(--income-board-compact-scale));
}

body.module-control-ingreso .income-delivered-action.is-art-mark {
  right: calc(8px * var(--income-board-compact-scale));
  top: calc(8px * var(--income-board-compact-scale));
  bottom: auto;
  width: calc(30px * var(--income-board-compact-scale));
  min-width: calc(30px * var(--income-board-compact-scale));
  height: calc(30px * var(--income-board-compact-scale));
  min-height: calc(30px * var(--income-board-compact-scale));
  max-width: none;
  padding: 0;
  border-width: 2px;
  border-color: rgba(255, 255, 255, 0.88);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(17, 167, 151, 0.98) 0%, rgba(8, 126, 116, 0.98) 100%);
  box-shadow:
    0 3px 8px rgba(16, 35, 31, 0.18),
    0 0 0 3px rgba(255, 255, 255, 0.32);
  transform: none;
  justify-content: center;
}

body.module-control-ingreso .income-delivered-action.is-art-mark .income-delivered-glyph {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: #ffffff;
  font-size: clamp(0.8rem, calc(1rem * var(--income-board-compact-scale)), 1rem);
  font-weight: 1000;
  line-height: 1;
  text-shadow: 0 1px 1px rgba(6, 62, 57, 0.2);
}

body.module-control-ingreso .income-delivered-action.is-art-mark .income-delivered-glyph::before {
  content: none;
}

body.module-control-ingreso .income-side-stack.is-ready .income-appointment-card.has-delivery-mark,
body.module-control-ingreso .income-status-list .income-appointment-card.has-delivery-mark {
  gap: calc(6px * var(--income-board-compact-scale));
  padding-right: calc(56px * var(--income-board-compact-scale));
  padding-bottom: calc(50px * var(--income-board-compact-scale));
}

body.module-control-ingreso .income-side-stack.is-ready .income-appointment-card strong,
body.module-control-ingreso .income-status-list .income-appointment-card strong {
  font-size: clamp(0.96rem, calc(1.06rem * var(--income-board-compact-scale)), 1.06rem);
  line-height: 1.18;
}

body.module-control-ingreso .income-side-stack.is-ready .income-appointment-card span,
body.module-control-ingreso .income-status-list .income-appointment-card span {
  font-size: clamp(0.86rem, calc(0.95rem * var(--income-board-compact-scale)), 0.95rem);
  line-height: 1.2;
}

body.module-control-ingreso .income-side-stack.is-ready .income-delivered-action.is-art-mark,
body.module-control-ingreso .income-status-list .income-delivered-action.is-art-mark {
  right: calc(10px * var(--income-board-compact-scale));
  top: auto;
  bottom: calc(10px * var(--income-board-compact-scale));
  width: calc(40px * var(--income-board-compact-scale));
  min-width: calc(40px * var(--income-board-compact-scale));
  height: calc(40px * var(--income-board-compact-scale));
  min-height: calc(40px * var(--income-board-compact-scale));
  z-index: 5;
  display: grid;
  place-items: center;
  cursor: pointer;
  pointer-events: auto;
  border-color: rgba(255, 255, 255, 0.94);
  background: linear-gradient(180deg, #18b6a6 0%, #0a8277 100%);
  box-shadow:
    0 7px 16px rgba(16, 35, 31, 0.24),
    0 0 0 4px rgba(255, 255, 255, 0.38);
}

body.module-control-ingreso .income-side-stack.is-ready .income-delivered-action.is-art-mark .income-delivered-glyph,
body.module-control-ingreso .income-status-list .income-delivered-action.is-art-mark .income-delivered-glyph {
  font-size: clamp(1rem, calc(1.2rem * var(--income-board-compact-scale)), 1.2rem);
}

body.module-control-ingreso .income-slot-cell:not(.is-blocked):hover {
  transform: translateY(-1px);
  box-shadow:
    inset 0 0 0 3px rgba(10, 116, 111, 0.34),
    0 6px 14px rgba(16, 35, 31, 0.12);
}

body.module-control-ingreso .income-slot-cell:not(.is-blocked):hover > .income-appointment-card {
  transform: translateY(-1px);
  box-shadow: 0 8px 16px rgba(16, 35, 31, 0.16);
  filter: saturate(1.02) brightness(0.99);
}

body.module-control-ingreso .income-slot-cell:not(.is-blocked):active {
  transform: translateY(1px);
  box-shadow:
    inset 0 0 0 3px rgba(10, 116, 111, 0.28),
    inset 0 3px 8px rgba(16, 35, 31, 0.12);
}

body.module-control-ingreso .income-slot-cell:not(.is-blocked):active > .income-appointment-card {
  transform: translateY(1px);
  box-shadow: inset 0 2px 6px rgba(16, 35, 31, 0.16);
  filter: brightness(0.985);
}

body.module-control-ingreso .income-slot-cell:focus-visible {
  outline: 3px solid rgba(10, 116, 111, 0.45);
  outline-offset: -3px;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9);
}

body.module-control-ingreso .income-command-center .sfc-module-header {
  width: 100%;
  max-width: none;
  min-height: clamp(82px, 10dvh, 112px);
  grid-template-columns: clamp(170px, 17vw, 240px) minmax(0, 1fr);
}

body.module-control-ingreso .income-command-center .sfc-module-brand {
  padding: clamp(12px, 1.4vw, 18px) clamp(16px, 1.8vw, 24px);
}

body.module-control-ingreso .income-command-center .sfc-logo-symbol {
  height: clamp(68px, 8dvh, 102px);
  max-width: 100%;
}

body.module-control-ingreso .income-command-center .sfc-module-title {
  min-height: clamp(82px, 10dvh, 112px);
  padding: clamp(12px, 1.35vw, 22px) clamp(18px, 1.8vw, 30px);
}

body.module-vehiculos-proceso .light-damage-command-center {
  grid-template-columns: minmax(760px, 1fr) auto;
  align-items: stretch;
  column-gap: clamp(12px, 1.2vw, 20px);
  margin-bottom: 16px;
  padding: clamp(6px, 1vw, 12px) clamp(10px, 1.3vw, 18px);
  border: 1px solid rgba(18, 45, 38, 0.14);
  border-left: 6px solid #0a746f;
  border-radius: 8px;
  background: #fbfcfa;
  box-shadow: 0 14px 32px rgba(29, 45, 39, 0.11);
}

body.module-vehiculos-proceso .light-damage-command-center .sfc-module-header {
  grid-column: 1;
  width: 100% !important;
  max-width: none !important;
  min-height: clamp(82px, 10dvh, 112px);
  grid-template-columns: clamp(170px, 17vw, 240px) minmax(0, 1fr);
}

body.module-vehiculos-proceso .light-damage-command-center .sfc-module-brand {
  padding: clamp(12px, 1.4vw, 18px) clamp(16px, 1.8vw, 24px);
}

body.module-vehiculos-proceso .light-damage-command-center .sfc-logo-symbol {
  height: clamp(68px, 8dvh, 102px);
  max-width: 100%;
}

body.module-vehiculos-proceso .light-damage-command-center .sfc-module-title {
  min-height: clamp(82px, 10dvh, 112px);
  padding: clamp(12px, 1.35vw, 22px) clamp(18px, 1.8vw, 30px);
}

body.module-vehiculos-proceso .light-damage-command-center .light-damage-command-status {
  grid-column: 2;
  align-self: center;
  justify-self: end;
  min-width: clamp(250px, 21vw, 380px);
  gap: 4px;
}

body.module-vehiculos-proceso .light-damage-command-center .command-status-pill {
  min-height: 26px;
  padding: 0 14px;
  font-size: clamp(0.78rem, 0.78vw, 0.95rem);
}

body.module-vehiculos-proceso .light-damage-command-center .light-damage-command-status strong {
  font-size: clamp(2rem, 2.35vw, 2.9rem);
}

body.module-vehiculos-proceso .light-damage-command-center .light-damage-command-status small {
  font-size: clamp(0.78rem, 0.8vw, 0.98rem);
}

body.module-vehiculos-detenidos #vehiculos-detenidos > .panel-heading {
  display: grid;
  grid-template-columns: minmax(760px, 1fr) auto;
  align-items: stretch;
  column-gap: clamp(12px, 1.2vw, 20px);
  margin-bottom: 16px;
  padding: clamp(6px, 1vw, 12px) clamp(10px, 1.3vw, 18px);
  border: 1px solid rgba(18, 45, 38, 0.14);
  border-left: 6px solid #0a746f;
  border-radius: 8px;
  background: #fbfcfa;
  box-shadow: 0 14px 32px rgba(29, 45, 39, 0.11);
}

body.module-vehiculos-detenidos #vehiculos-detenidos > .panel-heading .sfc-module-header {
  grid-column: 1;
  width: 100% !important;
  max-width: none !important;
  min-height: clamp(82px, 10dvh, 112px);
  grid-template-columns: clamp(170px, 17vw, 240px) minmax(0, 1fr);
}

body.module-vehiculos-detenidos #vehiculos-detenidos > .panel-heading .sfc-module-brand {
  padding: clamp(12px, 1.4vw, 18px) clamp(16px, 1.8vw, 24px);
}

body.module-vehiculos-detenidos #vehiculos-detenidos > .panel-heading .sfc-logo-symbol {
  height: clamp(68px, 8dvh, 102px);
  max-width: 100%;
}

body.module-vehiculos-detenidos #vehiculos-detenidos > .panel-heading .sfc-module-title {
  min-height: clamp(82px, 10dvh, 112px);
  padding: clamp(12px, 1.35vw, 22px) clamp(18px, 1.8vw, 30px);
}

body.module-vehiculos-detenidos #vehiculos-detenidos > .panel-heading #stoppedVehicleSummary {
  grid-column: 2;
  align-self: center;
  justify-self: end;
}

body.module-vehiculos-entregados .delivery-dashboard-hero {
  display: grid;
  grid-template-columns: minmax(760px, 1fr) auto;
  align-items: stretch;
  column-gap: clamp(12px, 1.2vw, 20px);
  min-height: 0;
  padding: clamp(6px, 1vw, 12px) clamp(10px, 1.3vw, 18px);
  border: 1px solid rgba(18, 45, 38, 0.14);
  border-left: 6px solid #0a746f;
  border-radius: 8px;
  background: #fbfcfa;
  box-shadow: 0 14px 32px rgba(29, 45, 39, 0.11);
  color: #10231f;
}

body.module-vehiculos-entregados .delivery-dashboard-hero .sfc-module-header {
  grid-column: 1;
  width: 100% !important;
  max-width: none !important;
  min-height: clamp(82px, 10dvh, 112px);
  grid-template-columns: clamp(170px, 17vw, 240px) minmax(0, 1fr);
  box-shadow: 0 14px 34px rgba(24, 42, 37, 0.08);
}

body.module-vehiculos-entregados .delivery-dashboard-hero .sfc-module-brand {
  padding: clamp(12px, 1.4vw, 18px) clamp(16px, 1.8vw, 24px);
  border-right: 5px solid #0a746f;
}

body.module-vehiculos-entregados .delivery-dashboard-hero .sfc-logo-symbol {
  height: clamp(68px, 8dvh, 102px);
  max-width: 100%;
}

body.module-vehiculos-entregados .delivery-dashboard-hero .sfc-module-title {
  min-height: clamp(82px, 10dvh, 112px);
  padding: clamp(12px, 1.35vw, 22px) clamp(18px, 1.8vw, 30px);
  border-left: 0;
}

body.module-vehiculos-entregados .delivery-dashboard-hero .delivery-period-card {
  grid-column: 2;
  align-self: stretch;
  justify-self: end;
  min-width: clamp(150px, 9vw, 190px);
  padding: clamp(12px, 1.2vw, 18px);
  border: 1px solid rgba(18, 45, 38, 0.16);
  border-radius: 8px;
  background: #ffffff;
  color: #10231f;
}

body.module-vehiculos-entregados .delivery-dashboard-hero .delivery-period-card span {
  color: #66756f;
  font-size: clamp(0.72rem, 0.76vw, 0.9rem);
}

body.module-vehiculos-entregados .delivery-dashboard-hero .delivery-period-card strong {
  color: #10231f;
  font-size: clamp(2rem, 2.25vw, 2.75rem);
}

body.module-historial #historial > .panel-heading {
  display: grid;
  grid-template-columns: minmax(760px, 1fr) auto;
  align-items: stretch;
  column-gap: clamp(12px, 1.2vw, 20px);
  margin-bottom: 16px;
  padding: clamp(6px, 1vw, 12px) clamp(10px, 1.3vw, 18px);
  border: 1px solid rgba(18, 45, 38, 0.14);
  border-left: 6px solid #0a746f;
  border-radius: 8px;
  background: #fbfcfa;
  box-shadow: 0 14px 32px rgba(29, 45, 39, 0.11);
}

body.module-historial #historial > .panel-heading .sfc-module-header {
  grid-column: 1;
  width: 100% !important;
  max-width: none !important;
  min-height: clamp(82px, 10dvh, 112px);
  grid-template-columns: clamp(170px, 17vw, 240px) minmax(0, 1fr);
}

body.module-historial #historial > .panel-heading .sfc-module-brand {
  padding: clamp(12px, 1.4vw, 18px) clamp(16px, 1.8vw, 24px);
}

body.module-historial #historial > .panel-heading .sfc-logo-symbol {
  height: clamp(68px, 8dvh, 102px);
  max-width: 100%;
}

body.module-historial #historial > .panel-heading .sfc-module-title {
  min-height: clamp(82px, 10dvh, 112px);
  padding: clamp(12px, 1.35vw, 22px) clamp(18px, 1.8vw, 30px);
}

body.module-historial #historial > .panel-heading #historySummary {
  grid-column: 2;
  align-self: center;
  justify-self: end;
}

body.module-no-llego .topbar {
  display: grid;
  grid-template-columns: minmax(460px, 1fr) auto;
  align-items: stretch;
  column-gap: clamp(12px, 1.2vw, 20px);
  padding: clamp(6px, 1vw, 12px) clamp(10px, 1.3vw, 18px);
  border: 1px solid rgba(18, 45, 38, 0.14);
  border-left: 6px solid #0a746f;
  border-radius: 8px;
  background: #fbfcfa;
  box-shadow: 0 14px 32px rgba(29, 45, 39, 0.11);
}

body.module-no-llego .topbar .sfc-module-header {
  width: 100%;
  max-width: none;
  min-height: clamp(82px, 10dvh, 112px);
  grid-template-columns: clamp(170px, 17vw, 240px) minmax(0, 1fr);
}

body.module-no-llego .topbar .sfc-module-brand {
  padding: clamp(12px, 1.4vw, 18px) clamp(16px, 1.8vw, 24px);
}

body.module-no-llego .topbar .sfc-logo-symbol {
  height: clamp(68px, 8dvh, 102px);
  max-width: 100%;
}

body.module-no-llego .topbar .sfc-module-title {
  min-height: clamp(82px, 10dvh, 112px);
  padding: clamp(12px, 1.35vw, 22px) clamp(18px, 1.8vw, 30px);
}

body.module-no-llego .topbar .sfc-module-title strong {
  font-size: clamp(2rem, 2.25vw, 2.75rem);
}

body.module-no-llego .topbar .sfc-module-title span {
  font-size: clamp(1.12rem, 1.28vw, 1.55rem);
}

body.module-no-llego .topbar-actions {
  align-self: center;
  justify-self: end;
  display: grid;
  grid-template-columns: minmax(230px, 250px) minmax(122px, 130px);
  grid-template-rows: auto auto;
  justify-content: end;
  align-content: center;
  gap: 10px 12px;
}

body.module-no-llego .topbar-actions .date-control,
body.module-no-llego .topbar-actions #reloadButton {
  box-sizing: border-box;
  min-height: clamp(34px, 4.8vh, 44px);
  border-radius: 8px;
}

body.module-no-llego .topbar-actions .date-control:first-of-type {
  grid-column: 1 / -1;
  grid-row: 1;
  justify-self: end;
  width: 100%;
}

body.module-no-llego .topbar-actions .date-control:nth-of-type(2) {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
}

body.module-no-llego .topbar-actions #reloadButton {
  grid-column: 2;
  grid-row: 2;
  width: 100%;
}

body.module-no-llego .topbar-actions > .session-user {
  display: none;
}

body.module-control-ingreso .income-programmed-summary {
  grid-column: 1;
  grid-row: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  align-self: start;
  justify-self: end;
  gap: 4px clamp(10px, 1vw, 18px);
  min-height: clamp(58px, 8vh, 74px);
  padding: clamp(10px, 1vw, 14px) clamp(12px, 1.2vw, 18px);
  border: 1px solid rgba(18, 45, 38, 0.12);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 30px rgba(29, 45, 39, 0.08);
}

body.module-control-ingreso .income-programmed-summary span {
  color: #66756f;
  font-size: 1rem;
  font-weight: 1000;
  line-height: 1.05;
  text-transform: uppercase;
}

body.module-control-ingreso .income-programmed-summary strong {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: #10231f;
  font-size: clamp(2rem, 2.6vw, 2.6rem);
  font-weight: 1000;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

body.module-control-ingreso .income-programmed-summary small {
  color: #0a746f;
  font-size: 1.06rem;
  font-weight: 950;
  line-height: 1.05;
}

body.module-control-ingreso .income-command-clock {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  padding-top: 0;
}

body.module-control-ingreso .income-command-clock strong {
  font-size: clamp(2.35rem, 3.4vw, 3.45rem);
}

body.module-control-ingreso .income-command-clock small {
  display: none;
}

body.module-control-ingreso .income-board-actions {
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: end;
  justify-self: end;
  display: flex;
  flex-wrap: nowrap;
  gap: clamp(6px, 0.8vw, 10px);
  margin-top: 0;
}

body.module-control-ingreso .income-week-button {
  min-height: clamp(34px, 4.8vh, 44px);
  padding: 0 clamp(10px, 1vw, 16px);
  border: 1px solid var(--week-button-border, #cfdad6);
  border-radius: 8px;
  background: var(--week-button-bg, #ffffff);
  color: var(--week-button-text, #10231f);
  font-size: clamp(0.78rem, 0.82vw, 0.98rem);
  font-weight: 1000;
  white-space: nowrap;
  box-shadow: 0 10px 22px var(--week-button-shadow, rgba(24, 42, 37, 0.1));
}

body.module-control-ingreso .income-week-button:hover,
body.module-control-ingreso .income-week-button:focus-visible {
  border-color: var(--week-button-border, #8aa19b);
  filter: saturate(1.08) brightness(0.98);
}

body.module-control-ingreso .income-kpi-strip {
  display: none;
}

body.module-control-ingreso .income-corner,
body.module-control-ingreso .income-day-head {
  background: #ffffff;
  color: #10231f;
}

body.module-control-ingreso .income-day-head.is-today {
  background: linear-gradient(180deg, #0b9b94, #05776f);
  color: #ffffff;
  box-shadow: inset 0 -5px 0 rgba(255, 255, 255, 0.18);
}

body.module-control-ingreso .income-slot-label {
  border-right-color: #ffffff;
  border-bottom-color: #ffffff;
  color: #ffffff;
  font-size: clamp(1.1rem, 1.25vw, 1.65rem);
  font-weight: 1000;
  line-height: 1;
}

body.module-control-ingreso .income-lane-content.is-no-show .income-appointment-card {
  width: 100%;
  min-height: 154px;
  flex: 0 0 154px;
  gap: 3px;
  padding: 10px 12px 18px;
  align-content: start;
}

body.module-control-ingreso .income-lane-content.is-stopped .income-appointment-card {
  width: 100%;
  min-height: 154px;
  flex: 0 0 154px;
  gap: 3px;
  padding: 10px 12px 18px;
  align-content: start;
}

body.module-control-ingreso .income-lane-content.is-no-show {
  gap: 8px;
  align-content: start;
}

body.module-control-ingreso .income-lane-content.is-no-show .income-appointment-card strong,
body.module-control-ingreso .income-lane-content.is-no-show .income-appointment-card span {
  overflow: visible;
  text-overflow: clip;
  white-space: nowrap;
}

body.module-control-ingreso .income-lane-content.is-no-show .income-appointment-card strong {
  font-size: clamp(0.92rem, calc(0.98rem * var(--income-board-compact-scale)), 0.98rem);
  line-height: 1.18;
}

body.module-control-ingreso .income-lane-content.is-no-show .income-appointment-card span {
  font-size: clamp(0.8rem, calc(0.86rem * var(--income-board-compact-scale)), 0.86rem);
  line-height: 1.16;
}

body.module-control-ingreso .income-lane-content.is-no-show .income-appointment-card.is-light-pocket {
  color: #10231f;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.55);
}

body.module-control-ingreso .income-lane-content.is-no-show .income-appointment-card.is-light-pocket strong,
body.module-control-ingreso .income-lane-content.is-no-show .income-appointment-card.is-light-pocket span {
  color: #10231f;
}

/* === 11. CONTROL DE INGRESO — RESPONSIVE === */
@media (max-width: 1100px) {
  body.module-control-ingreso .income-command-center {
    grid-template-columns: 1fr;
  }

  body.module-control-ingreso .income-command-actions {
    display: grid;
    grid-template-columns: minmax(270px, 1fr) auto;
    align-items: center;
    gap: 10px 14px;
  }

  body.module-control-ingreso .income-programmed-summary,
  body.module-control-ingreso .income-command-clock,
  body.module-control-ingreso .income-board-actions {
    grid-column: auto;
    grid-row: auto;
  }

  body.module-control-ingreso .income-board-actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 1300px) {
  body.module-control-ingreso .income-command-center {
    grid-template-columns: minmax(420px, 1fr) auto;
  }

  body.module-control-ingreso .income-command-center .sfc-module-header {
    grid-template-columns: clamp(150px, 16vw, 205px) minmax(0, 1fr);
  }

  body.module-control-ingreso .income-command-clock strong {
    font-size: clamp(2rem, 3.4vw, 3rem);
  }

  body.module-control-ingreso .income-programmed-summary span,
  body.module-control-ingreso .income-programmed-summary small {
    font-size: 0.9rem;
  }

  body.module-control-ingreso .income-week-button {
    padding-inline: 10px;
    font-size: 0.76rem;
  }
}

@media (max-width: 1100px) {
  body.module-control-ingreso .week-board {
    overflow-x: auto;
    overflow-y: auto;
  }

  body.module-control-ingreso .income-control-board {
    min-width: 1040px;
  }

  body.module-control-ingreso .income-command-center {
    grid-template-columns: 1fr;
  }

  body.module-control-ingreso .income-command-center .sfc-module-header {
    max-width: 100%;
  }

  body.module-control-ingreso .income-board-actions {
    justify-self: end;
  }
}

.income-stopped-marker {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 100%;
  padding: 8px;
  border: 2px solid rgba(171, 31, 36, 0.6);
  border-radius: 8px;
  background:
    radial-gradient(circle at 84% 82%, rgba(255, 255, 255, 0.72), transparent 34%),
    linear-gradient(145deg, #fff4f4 0%, #f1c6c8 100%);
  color: #9d1f23;
  text-align: center;
  box-shadow:
    inset -3px -3px 0 rgba(255, 255, 255, 0.48),
    inset 3px 3px 12px rgba(92, 16, 19, 0.14),
    8px 9px 16px rgba(29, 45, 39, 0.16);
  cursor: pointer;
}

.income-stopped-marker strong {
  font-size: 1rem;
  font-weight: 1000;
  line-height: 1.05;
}

.income-delivered-action {
  position: absolute;
  right: 7px;
  top: 50%;
  bottom: auto;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 24px;
  max-width: calc(100% - 14px);
  padding: 3px 8px;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #087e74;
  font-size: 0.66rem;
  font-weight: 1000;
  letter-spacing: 0;
  text-shadow: none;
  box-shadow: 0 5px 12px rgba(16, 35, 31, 0.2);
  transform: translateY(-50%);
  cursor: pointer;
}

.income-side-stack .income-delivered-action {
  top: 12px;
  transform: none;
}

.income-delivered-action.is-art-mark {
  top: 10px;
  bottom: auto;
  width: 30px;
  min-width: 30px;
  height: 30px;
  min-height: 30px;
  max-width: none;
  padding: 0;
  border-width: 2px;
  border-color: rgba(255, 255, 255, 0.88);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(17, 167, 151, 0.98) 0%, rgba(8, 126, 116, 0.98) 100%);
  box-shadow:
    0 3px 8px rgba(16, 35, 31, 0.18),
    0 0 0 3px rgba(255, 255, 255, 0.32);
  justify-content: center;
}

.income-delivered-action span {
  display: inline-grid;
  place-items: center;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #087e74;
  color: #ffffff;
  flex: 0 0 auto;
}

.income-delivered-action span::before {
  content: "";
  width: 6px;
  height: 4px;
  border-left: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  transform: rotate(-45deg) translate(1px, -1px);
}

.income-delivered-action:hover,
.income-delivered-action:focus-visible,
.income-delivered-action.is-confirmed {
  background: #087e74;
  color: #ffffff;
}

.income-delivered-action:hover span,
.income-delivered-action:focus-visible span,
.income-delivered-action.is-confirmed span {
  background: #ffffff;
}

.income-delivered-action:hover span::before,
.income-delivered-action:focus-visible span::before,
.income-delivered-action.is-confirmed span::before {
  border-color: #087e74;
}

.income-delivered-action.is-art-mark:hover,
.income-delivered-action.is-art-mark:focus-visible,
.income-delivered-action.is-art-mark.is-confirmed {
  background: linear-gradient(180deg, rgba(19, 183, 165, 0.98) 0%, rgba(10, 141, 130, 0.98) 100%);
  color: #ffffff;
  box-shadow:
    0 5px 12px rgba(16, 35, 31, 0.22),
    0 0 0 4px rgba(8, 126, 116, 0.18);
}

.income-delivered-action.is-art-mark:hover .income-delivered-glyph,
.income-delivered-action.is-art-mark:focus-visible .income-delivered-glyph,
.income-delivered-action.is-art-mark.is-confirmed .income-delivered-glyph {
  color: #ffffff;
}

.income-bottom-lane,
.income-month-box,
.income-side-pocket-board {
  overflow: hidden;
  border: 1px solid rgba(18, 45, 38, 0.18);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 40px rgba(29, 45, 39, 0.1);
}

.income-lane-label,
.income-daily-target-label,
.income-daily-target-value {
  border-bottom: 1px solid rgba(18, 45, 38, 0.18);
}

.income-lane-label.is-red,
.income-lane-label.is-detained-label,
.income-side-status.is-detained {
  background: #b72f33;
}

.income-lane-content {
  border-bottom: 1px solid rgba(18, 45, 38, 0.18);
}

.income-daily-target-label {
  background: #fff7d7;
  color: #10231f;
  font-size: 0.78rem;
}

.income-daily-target-value {
  color: #10231f;
  font-size: 2rem;
  font-weight: 1000;
}

.income-month-box {
  grid-template-columns: 86px 1fr;
  border-top: 1px solid rgba(18, 45, 38, 0.18);
  border-left: 1px solid rgba(18, 45, 38, 0.18);
}

.income-month-label,
.income-month-value {
  border-right: 1px solid rgba(18, 45, 38, 0.18);
  border-bottom: 1px solid rgba(18, 45, 38, 0.18);
}

.income-month-label {
  background: #10231f;
  color: #ffffff;
}

.income-month-value {
  color: #0b5f8d;
  font-weight: 900;
}

.income-side-pocket-board {
  gap: 8px;
  padding: 8px;
}

.income-side-title {
  min-height: 62px;
  border: 0;
  border-radius: 8px;
  background: #177f4b;
  color: #ffffff;
  font-size: 1.12rem;
  line-height: 1.02;
}

.income-side-status {
  min-height: 56px;
  border-radius: 8px;
  font-size: 1.08rem;
}

.income-side-status.is-additional-label {
  background: #dfb51f;
  color: #10231f;
}

.income-side-empty-slot {
  border: 2px dashed rgba(18, 45, 38, 0.14);
  border-radius: 8px;
  background: #f7f9f6;
}

.appointment-reprogram-badge {
  position: absolute;
  right: 6px;
  bottom: 6px;
  max-width: calc(100% - 14px);
  padding: 5px 8px;
  border-radius: 999px;
  background: #ffffff;
  color: #8f2024 !important;
  font-size: clamp(0.7rem, 0.72vw, 0.9rem) !important;
  font-weight: 1000 !important;
  line-height: 1;
  text-shadow: none;
  text-transform: uppercase;
  box-shadow: 0 2px 6px rgba(17, 26, 23, 0.16);
}

.appointment-conflict-badge {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  background: #bd2528;
  color: #ffffff !important;
  font-size: 0.72rem !important;
  font-weight: 1000 !important;
  line-height: 1;
  text-shadow: none;
  box-shadow: none;
}

.special-color-signal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: start;
  width: fit-content;
  min-width: 34px;
  height: 24px;
  padding: 0 8px;
  margin: 0 0 3px;
  border: 1px solid #111111;
  border-radius: 999px;
  background: #ffffff;
  color: #111111 !important;
  font-size: 0.72rem !important;
  font-weight: 1000 !important;
  line-height: 1;
  text-shadow: none;
  letter-spacing: 0.02em;
  box-shadow: none;
}

.income-appointment-card.is-special-color {
  border-left-width: 4px;
  border-left-color: #7c4a00;
}

body.module-control-ingreso .income-slot-cell > .income-appointment-card.is-special-color .special-color-signal,
body.module-control-ingreso .income-lane-content.is-no-show .income-appointment-card.is-special-color .special-color-signal {
  position: absolute;
  right: 8px;
  bottom: 8px;
  margin: 0;
  z-index: 4;
}

.parts-confirmed-star {
  position: absolute;
  left: 7px;
  bottom: 5px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  color: #f8c63a !important;
  font-size: 1.7rem !important;
  line-height: 1;
  text-shadow:
    0 1px 0 #8d5b00,
    1px 2px 0 #9d6a00,
    0 5px 9px rgba(17, 17, 17, 0.42);
  filter: drop-shadow(0 2px 2px rgba(255, 255, 255, 0.62));
}

.parts-status-signal {
  position: absolute;
  right: 9px;
  top: 8px;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  padding: 4px;
  border: 2px solid #ffffff;
  border-radius: 50%;
  background: #ffffff;
  text-shadow: none;
  box-shadow:
    0 3px 9px rgba(17, 17, 17, 0.26),
    0 0 0 2px rgba(255, 255, 255, 0.78);
}

.parts-status-light {
  display: inline-block;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border: 3px solid #111111;
  border-radius: 50%;
  background: var(--parts-status-color);
  box-shadow:
    inset 0 1px 2px rgba(255, 255, 255, 0.55),
    0 0 11px color-mix(in srgb, var(--parts-status-color), transparent 22%);
}

.parts-status-text {
  display: none;
}

.parts-status-signal.is-green {
  --parts-status-color: #16824c;
}

.parts-status-signal.is-yellow {
  --parts-status-color: #e2b825;
}

.parts-status-signal.is-red {
  --parts-status-color: #c73436;
}

.parts-status-signal.is-blue {
  --parts-status-color: #4b2fbf;
}

body.module-control-ingreso .income-appointment-card .parts-status-signal {
  top: calc(6px * var(--income-board-compact-scale));
  right: calc(6px * var(--income-board-compact-scale));
  width: calc(34px * var(--income-board-compact-scale));
  height: calc(34px * var(--income-board-compact-scale));
  padding: calc(3px * var(--income-board-compact-scale));
}

body.module-control-ingreso .income-appointment-card .parts-status-light {
  width: calc(24px * var(--income-board-compact-scale));
  height: calc(24px * var(--income-board-compact-scale));
}

.income-appointment-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 3px;
}

.income-appointment-flags small {
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(183, 50, 52, 0.12);
  color: var(--danger);
  font-size: 0.62rem;
  font-weight: 850;
}

.income-appointment-card.is-dark-pocket .income-appointment-flags small {
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
}

.income-appointment-card.is-light-pocket .income-appointment-flags small {
  background: rgba(183, 50, 52, 0.14);
  color: #8d1f24;
}

.ebp-ticket {
  display: grid;
  width: 100%;
  min-width: 320px;
  border: 2px solid #151515;
  background: #ffffff;
  color: #151515;
  font-family: inherit;
  letter-spacing: 0;
  box-shadow: 0 10px 24px rgba(21, 32, 29, 0.08);
}

.ebp-ticket.is-compact {
  min-width: 196px;
  border-width: 1px;
  font-size: 0.56rem;
  box-shadow: none;
}

.ebp-ticket.is-alert {
  outline: 2px solid rgba(183, 50, 52, 0.35);
}

.ticket-row {
  display: grid;
  grid-template-columns: 1.05fr 1fr 1.05fr 1fr;
  min-height: 42px;
  border-bottom: 1px solid #151515;
}

.ticket-top {
  min-height: 58px;
}

.ticket-wide {
  grid-template-columns: 1.05fr 3fr;
}

.ticket-bottom {
  display: grid;
  grid-template-columns: 1.05fr repeat(5, 42px) 1.25fr 1fr;
  min-height: 42px;
  border-bottom: 1px solid #151515;
}

.ticket-bottom-last {
  grid-template-columns: 3fr 1.25fr 1fr;
  border-bottom: 0;
}

.ticket-label,
.ticket-value,
.ticket-call-box,
.ticket-spacer {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 6px 8px;
  border-right: 1px solid #151515;
}

.ticket-label {
  justify-content: center;
  background: var(--ticket-color, #1f8edb);
  color: #17201d;
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.08;
  text-align: center;
  text-transform: uppercase;
}

.ticket-value {
  overflow: hidden;
  background: #ffffff;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ticket-row > :last-child,
.ticket-bottom > :last-child {
  border-right: 0;
}

.ticket-call-box {
  position: relative;
  justify-content: center;
  background: #ffffff;
  color: #17201d;
  font-weight: 800;
}

.ticket-call-box.is-marked {
  background: color-mix(in srgb, var(--ticket-color, #1f8edb), white 72%);
}

.ticket-call-box.is-marked::before,
.ticket-call-box.is-marked::after {
  position: absolute;
  left: 10px;
  right: 10px;
  top: 50%;
  height: 3px;
  border-radius: 999px;
  background: #17201d;
  content: "";
}

.ticket-call-box.is-marked::before {
  transform: translateY(-50%) rotate(45deg);
}

.ticket-call-box.is-marked::after {
  transform: translateY(-50%) rotate(-45deg);
}

.ticket-call-box.is-marked span {
  opacity: 0.28;
}

.ticket-spacer {
  background: #ffffff;
}

.ticket-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding: 7px;
  border-top: 1px solid #151515;
}

.ticket-flags small {
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(183, 50, 52, 0.12);
  color: var(--danger);
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 0.7rem;
  font-weight: 850;
}

.ebp-ticket.is-compact .ticket-row,
.ebp-ticket.is-compact .ticket-bottom {
  min-height: 24px;
}

.ebp-ticket.is-compact .ticket-top {
  min-height: 32px;
}

.ebp-ticket.is-compact .ticket-label,
.ebp-ticket.is-compact .ticket-value,
.ebp-ticket.is-compact .ticket-call-box,
.ebp-ticket.is-compact .ticket-spacer {
  padding: 3px 4px;
}

.ebp-ticket.is-compact .ticket-label {
  font-size: 0.42rem;
}

.ebp-ticket.is-compact .ticket-value {
  font-size: 0.62rem;
}

.ebp-ticket.is-compact .ticket-bottom {
  grid-template-columns: 1.05fr 22px 22px 22px 1.25fr 1fr;
}

.ebp-ticket.is-compact .ticket-bottom-last {
  grid-template-columns: 3fr 1.25fr 1fr;
}

.ebp-ticket.is-board {
  min-width: 0;
  font-size: 0.42rem;
}

.ebp-ticket.is-board .ticket-row,
.ebp-ticket.is-board .ticket-bottom {
  min-height: 14px;
}

.ebp-ticket.is-board .ticket-top {
  min-height: 22px;
}

.ebp-ticket.is-board .ticket-label,
.ebp-ticket.is-board .ticket-value,
.ebp-ticket.is-board .ticket-call-box,
.ebp-ticket.is-board .ticket-spacer {
  padding: 2px 3px;
}

.ebp-ticket.is-board .ticket-label {
  font-size: 0.32rem;
}

.ebp-ticket.is-board .ticket-value {
  font-size: 0.48rem;
}

.ebp-ticket.is-board .ticket-bottom {
  grid-template-columns: 1.05fr 16px 16px 16px 1.25fr 1fr;
}

.ebp-ticket.is-board .ticket-bottom-last {
  grid-template-columns: 3fr 1.25fr 1fr;
}

.ebp-ticket.is-board .ticket-flags {
  gap: 3px;
  padding: 3px;
}

.ebp-ticket.is-board .ticket-flags small {
  font-size: 0.45rem;
}

/* === 12. PROCESS MODULE === */
.ticket-preview {
  display: grid;
  gap: 10px;
  width: min(760px, calc(100% - 36px));
  margin: 0 18px 18px;
  padding: 0;
}

.ticket-preview .ebp-ticket {
  max-width: 760px;
}

.ticket-master-panel .ticket-preview {
  width: min(820px, 100%);
  margin: 0;
  padding: 24px;
}

.ticket-master-panel .ticket-preview .ebp-ticket {
  max-width: 820px;
}

.ticket-preview-heading {
  display: grid;
  gap: 3px;
  padding-top: 2px;
}

.ticket-preview-heading span {
  color: var(--accent-2);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ticket-preview-heading strong {
  color: var(--muted);
  font-size: 0.84rem;
}

.line-schedule {
  overflow: auto;
}

.line-table {
  display: grid;
  min-width: 860px;
  grid-template-columns: 210px repeat(var(--slot-count), minmax(88px, 1fr));
}

.line-table > div {
  min-height: 42px;
  padding: 9px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.line-head,
.process-name {
  background: #f8fbfa;
  font-weight: 850;
}

.line-job {
  text-align: center;
  font-weight: 850;
  background: color-mix(in srgb, var(--slot-color), white 76%);
}

.line-empty {
  background: #fbfdfc;
}

.appointment-boards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 14px;
}

.appointment-board-card {
  display: grid;
  grid-template-columns: minmax(320px, 1fr) 140px minmax(280px, 0.9fr);
  gap: 14px;
  align-items: center;
  align-content: start;
  min-height: 92px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfc;
}

.appointment-board-card.is-warning {
  border-color: rgba(178, 112, 0, 0.38);
  background: #fffaf0;
}

.appointment-board-card.is-danger {
  border-color: rgba(183, 50, 52, 0.42);
  background: #fff6f6;
}

/* === 14. PARTS MODULE === */
.parts-calendar {
  display: grid;
  gap: 2px;
  padding: 0 8px 8px;
}

body.module-para-repuestos #para-repuestos > .panel-heading {
  display: grid;
  grid-template-columns: minmax(460px, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: stretch;
  column-gap: clamp(12px, 1.2vw, 20px);
  row-gap: 10px;
  padding: clamp(6px, 1vw, 12px) clamp(10px, 1.3vw, 18px);
  border: 1px solid rgba(18, 45, 38, 0.14);
  border-left: 6px solid #0a746f;
  border-radius: 8px;
  background: #fbfcfa;
  box-shadow: 0 14px 32px rgba(29, 45, 39, 0.11);
}

body.module-para-repuestos #para-repuestos > .panel-heading .sfc-module-header {
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 100%;
  max-width: none;
  min-height: clamp(82px, 10dvh, 112px);
  grid-template-columns: clamp(170px, 17vw, 240px) minmax(0, 1fr);
}

body.module-para-repuestos #para-repuestos > .panel-heading .sfc-module-brand {
  padding: clamp(12px, 1.4vw, 18px) clamp(16px, 1.8vw, 24px);
}

body.module-para-repuestos #para-repuestos > .panel-heading .sfc-logo-symbol {
  height: clamp(68px, 8dvh, 102px);
  max-width: 100%;
}

body.module-para-repuestos #para-repuestos > .panel-heading .sfc-module-title {
  min-height: clamp(82px, 10dvh, 112px);
  padding: clamp(12px, 1.35vw, 22px) clamp(18px, 1.8vw, 30px);
}

body.module-para-repuestos #para-repuestos > .panel-heading .sfc-module-title strong {
  font-size: clamp(2rem, 2.25vw, 2.75rem);
}

body.module-para-repuestos #para-repuestos > .panel-heading .sfc-module-title span {
  font-size: clamp(1.12rem, 1.28vw, 1.55rem);
}

body.module-para-repuestos #partsRequestBoardRange {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  justify-self: end;
  min-width: clamp(260px, 20vw, 360px);
}

body.module-para-repuestos #partsRequestBoardSummary {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  justify-self: end;
  min-height: 38px;
  padding: 0 18px;
  border-radius: 999px;
  font-size: 1.56rem;
  font-weight: 1000;
  line-height: 1;
}

.parts-board-search-row {
  display: flex;
  justify-content: flex-end;
  padding: 2px 8px 0;
}

.parts-board-search {
  display: grid;
  grid-template-columns: auto minmax(338px, 559px);
  align-items: center;
  gap: 10px;
  margin-left: auto;
}

.parts-board-search span {
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 950;
  text-transform: uppercase;
}

.parts-board-search input {
  width: 100%;
  min-height: 55px;
  padding: 0 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 1.3rem;
  font-weight: 850;
}

.parts-board-search input:focus {
  outline: 2px solid rgba(10, 116, 111, .22);
  border-color: rgba(10, 116, 111, .58);
}

.parts-board-toolbar {
  display: grid;
  gap: 2px;
  margin-top: -8px;
}

.parts-board-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  min-width: 0;
}

.parts-board-toolbar .ghost-button {
  min-height: 42px;
  padding: 0 18px;
  border-width: 2px;
  border-radius: 8px;
  font-size: 1.05rem;
  font-weight: 1000;
}

.parts-board-range {
  display: grid;
  gap: 1px;
  justify-items: center;
  min-width: 0;
  color: var(--muted);
  font-weight: 850;
  text-align: center;
}

.parts-board-range-head {
  justify-self: center;
}

.parts-board-range strong {
  color: var(--ink);
  font-size: 1.78rem;
  line-height: 1;
}

.parts-board-range span {
  font-size: 1.06rem;
  line-height: 1.05;
}

.parts-week-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  min-width: 0;
  overflow-x: hidden;
  padding-bottom: 4px;
}

.parts-alert-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 0 8px;
}

.parts-alert-chip {
  display: inline-flex;
  align-items: center;
  min-height: 76px;
  padding: 0 28px;
  border: 2px solid var(--line);
  border-radius: 999px;
  background: #f7fbfa;
  color: var(--muted);
  font-size: 2.04rem;
  font-weight: 1000;
}

.parts-alert-chip.is-new {
  border-color: rgba(210, 163, 25, 0.48);
  background: #fff7d8;
  color: #6f5600;
}

.parts-alert-chip.is-pending {
  border-color: rgba(10, 116, 111, 0.24);
  background: #e3f1f0;
  color: var(--accent);
}

.parts-alert-chip.is-urgent {
  border-color: rgba(199, 52, 54, 0.34);
  background: #ffe1df;
  color: #9d2428;
}

.parts-day-column {
  display: grid;
  align-content: start;
  gap: 9px;
  min-height: 420px;
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fbfdfc;
}

.parts-day-column header {
  padding-bottom: 7px;
  border-bottom: 1px solid var(--line);
}

.parts-day-header-button {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  align-items: center;
  width: 100%;
  min-height: 88px;
  padding: 10px 14px;
  border: 1px solid rgba(20, 47, 40, 0.14);
  border-radius: 10px;
  background: linear-gradient(180deg, #ffffff 0%, #f3f7f6 100%);
  box-shadow:
    0 5px 14px rgba(24, 42, 37, 0.08),
    0 4px 0 rgba(24, 42, 37, 0.18);
  text-align: left;
  transition:
    transform 0.12s ease,
    box-shadow 0.12s ease,
    filter 0.12s ease,
    border-color 0.12s ease;
}

.parts-day-header-button:hover,
.parts-day-header-button:focus-visible {
  border-color: rgba(10, 116, 111, 0.42);
  box-shadow:
    0 8px 18px rgba(24, 42, 37, 0.12),
    0 4px 0 rgba(24, 42, 37, 0.2);
  filter: saturate(1.03);
}

.parts-day-header-button:active {
  transform: translateY(3px);
  box-shadow:
    0 3px 8px rgba(24, 42, 37, 0.08),
    0 1px 0 rgba(24, 42, 37, 0.2);
}

.parts-day-header-button span {
  grid-column: 1;
  grid-row: 1;
  color: var(--accent-2);
  font-size: 1.2rem;
  font-weight: 900;
  text-transform: uppercase;
}

.parts-day-header-button strong {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  color: var(--ink);
  font-size: 1.46rem;
}

.parts-day-header-button small {
  grid-column: 1 / -1;
  grid-row: 2;
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.92rem;
  font-weight: 900;
}

.parts-day-list {
  display: grid;
  gap: 9px;
}

.parts-empty-day {
  display: grid;
  place-items: center;
  min-height: 72px;
  border: 1px dashed var(--line);
  border-radius: 6px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 820;
}

.parts-work-card {
  display: grid;
  gap: 6px;
  padding: 7px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  cursor: pointer;
}

.parts-work-card.is-new-request {
  border-color: #f0b82f;
  box-shadow: 0 0 0 3px rgba(240, 184, 47, 0.16);
}

.parts-work-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.parts-work-badges span {
  display: inline-flex;
  align-items: center;
  min-height: 18px;
  padding: 0 6px;
  border-radius: 999px;
  background: #f3d04d;
  color: #1d231f;
  font-size: 0.58rem;
  font-weight: 950;
  letter-spacing: 0;
}

.parts-work-card.is-red .parts-work-badges span:last-child {
  background: #c73436;
  color: #ffffff;
}

.parts-work-card.is-green {
  border-color: #2e9b60;
  background: #f1fbf5;
}

.parts-work-card.is-yellow {
  border-color: #d2a319;
  background: #fffbea;
}

.parts-work-card.is-red {
  border-color: #c8423f;
  background: #fff4f3;
}

.parts-work-card.is-confirmed {
  border-color: #c99a14;
  background: #fffaf0;
  box-shadow: inset 0 0 0 1px rgba(201, 154, 20, 0.28);
}

.parts-work-card.is-warehouse-green {
  border-color: #16824c;
  background: #f0fbf4;
}

.parts-work-card.is-warehouse-yellow {
  border-color: #d2a319;
  background: #fffbea;
}

.parts-work-card.is-warehouse-red {
  border-color: #c73436;
  background: #fff4f3;
}

.parts-work-card.is-warehouse-blue {
  border-color: #4b2fbf;
  background: #f4f1ff;
}

.parts-work-card-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 7px;
}

.parts-work-card-head strong,
.parts-work-card-head span,
.parts-work-card-body span {
  display: block;
}

.parts-work-card-head strong {
  font-size: 0.86rem;
}

.parts-work-card-head span,
.parts-work-card-body span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 760;
}

.parts-work-status {
  flex: 0 0 auto;
  padding: 3px 6px;
  border-radius: 999px;
  background: #eef4f2;
  color: var(--accent);
  font-size: 0.62rem;
  font-weight: 900;
}

.parts-work-card.is-warehouse-green .parts-work-status {
  background: #dff4e7;
  color: #12683d;
}

.parts-work-card.is-warehouse-yellow .parts-work-status {
  background: #fff2b8;
  color: #6f5600;
}

.parts-work-card.is-warehouse-red .parts-work-status {
  background: #ffe1df;
  color: #9d2428;
}

.parts-work-card.is-warehouse-blue .parts-work-status {
  background: #e3dcff;
  color: #34208c;
}

.parts-work-card-body {
  display: grid;
  gap: 2px;
}

.parts-card-status-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
}

.parts-card-status-button {
  min-height: 26px;
  padding: 0 5px;
  border: 1px solid transparent;
  border-radius: 5px;
  color: #ffffff;
  font-size: 0.62rem;
  font-weight: 1000;
  line-height: 1.05;
  letter-spacing: 0;
  text-align: center;
  cursor: pointer;
}

.parts-card-status-button.is-green {
  background: #16824c;
  border-color: #12683d;
}

.parts-card-status-button.is-yellow {
  background: #e2b825;
  border-color: #b7900d;
  color: #111111;
}

.parts-card-status-button.is-red {
  background: #c73436;
  border-color: #9f2428;
}

.parts-card-status-button.is-blue {
  background: #4b2fbf;
  border-color: #34208c;
}

.parts-card-status-button.is-selected {
  outline: 3px solid rgba(17, 17, 17, 0.34);
  outline-offset: 1px;
  box-shadow: 0 6px 12px rgba(17, 26, 23, 0.14);
}

.parts-confirm-button {
  justify-self: start;
}

.parts-confirm-button:disabled {
  cursor: default;
  opacity: 0.68;
}

.parts-day-window-modal {
  position: fixed;
  inset: 0;
  z-index: 96;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(17, 26, 23, 0.42);
}

.parts-day-window-sheet {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(1120px, calc(100vw - 48px));
  max-height: min(820px, calc(100vh - 48px));
  border: 1px solid rgba(12, 126, 116, 0.22);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 24px 80px rgba(17, 26, 23, 0.28);
  overflow: hidden;
}

.parts-day-window-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 16px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #f6fffd 0%, #eef9f6 100%);
}

.parts-day-window-head p,
.parts-day-window-head h3 {
  margin: 0;
}

.parts-day-window-head p {
  color: #087e74;
  font-size: 0.78rem;
  font-weight: 1000;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.parts-day-window-head h3 {
  color: var(--ink);
  font-size: 1.55rem;
  font-weight: 1000;
}

.parts-day-window-head > strong {
  display: inline-grid;
  place-items: center;
  min-width: 52px;
  min-height: 52px;
  padding: 0 12px;
  border-radius: 999px;
  background: #e8f5f1;
  color: #0a746f;
  font-size: 1.4rem;
  font-weight: 1000;
}

.parts-day-window-list {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 18px 22px 22px;
  overflow-y: auto;
  background: #f7faf9;
}

.parts-day-window-list .parts-work-card {
  padding: 10px;
}

.parts-empty-day.is-window-empty {
  min-height: 120px;
}

.vehicle-process-layout {
  display: grid;
  grid-template-columns: minmax(300px, 0.38fr) minmax(520px, 1fr);
  gap: 18px;
  padding: 18px;
}

.vehicle-process-board-scroll {
  padding: 18px;
  border-bottom: 1px solid var(--line);
  overflow: auto;
}

.light-damage-process-board {
  --process-label-width: 230px;
  min-width: 1900px;
  padding: 16px 18px 28px;
  border: 2px solid #111111;
  background: #fbfbf8;
  color: #111111;
  font-family: inherit;
  letter-spacing: 0;
}

.light-damage-board-title {
  display: grid;
  place-items: center;
  margin: 0 0 14px;
  padding: 0 4px;
  color: #050505;
  font-size: clamp(2.15rem, 3vw, 3.45rem);
  font-weight: 1000;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

.light-damage-board-controls {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 10px;
}

.process-mode-switch {
  display: inline-grid;
  grid-template-columns: auto 76px auto;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 6px 12px;
  border: 1px solid rgba(17, 17, 17, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 12px 28px rgba(17, 17, 17, 0.08);
  color: #111111;
  font-size: 1.32rem;
  font-weight: 1000;
}

.process-mode-switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.process-mode-switch i {
  position: relative;
  display: block;
  width: 76px;
  height: 34px;
  border-radius: 999px;
  background: #d7dedb;
}

.process-mode-switch i::before {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #0a746f;
  box-shadow: 0 4px 12px rgba(10, 116, 111, 0.35);
  content: "";
  transition: transform 0.18s ease;
}

.process-mode-switch input:checked + i::before {
  transform: translateX(42px);
}

.light-damage-schedule-title {
  display: grid;
  place-items: center;
  min-height: 42px;
  margin: 0 0 10px;
  border: 2px solid #111111;
  background: #ffffff;
  color: #111111;
  font-size: 1.72rem;
  font-weight: 1000;
  text-align: center;
}

.light-damage-timeline-grid {
  display: grid;
  grid-template-columns: var(--process-label-width) repeat(var(--timeline-count), minmax(118px, 118px));
  width: max-content;
  min-width: 100%;
  border-top: 2px solid #111111;
  border-left: 2px solid #111111;
  background: #ffffff;
}

.light-damage-timeline-cell {
  display: grid;
  align-items: center;
  justify-items: center;
  min-width: 0;
  min-height: 58px;
  padding: 4px;
  border-right: 1px solid #111111;
  border-bottom: 1px solid #111111;
  background: #fafaf7;
  color: #111111;
  line-height: 1.05;
}

.timeline-corner,
.timeline-day-head,
.timeline-row-head,
.timeline-process-head {
  background: #f1f1ed;
  font-weight: 1000;
  text-transform: uppercase;
}

.timeline-day-head {
  grid-template-columns: auto auto;
  gap: 10px;
  min-height: 52px;
  font-size: 1.72rem;
}

.timeline-day-head span {
  color: #1b5f91;
  font-size: 1.24rem;
}

.timeline-row-head {
  justify-items: start;
  padding-left: 10px;
  font-size: 1.16rem;
}

.timeline-time {
  min-height: 34px;
  font-size: 1.08rem;
  font-weight: 950;
}

.timeline-process-head {
  grid-template-columns: 34px 1fr;
  justify-items: start;
  min-height: 72px;
  padding: 6px 8px;
  text-align: left;
}

.timeline-process-head strong {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  color: #111111;
  font-size: 1.2rem;
}

.timeline-process-head span {
  font-size: 1.08rem;
  line-height: 1.05;
}

.light-damage-timeline-cell.is-break,
.timeline-time.is-break-time {
  background: #cfcfc8;
}

.light-damage-timeline-cell.is-break {
  color: #111111;
  font-size: 1.2rem;
  font-weight: 1000;
  letter-spacing: 0.04em;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}

.light-damage-timeline-cell.has-order {
  position: relative;
  align-items: stretch;
  justify-items: stretch;
  padding: 3px;
  background: #ffffff;
}

.light-damage-timeline-ticket {
  display: grid;
  align-content: center;
  gap: 1px;
  width: 100%;
  min-height: 66px;
  padding: 6px 7px;
  border: 2px solid rgba(17, 17, 17, 0.25);
  border-radius: 0;
  background:
    linear-gradient(135deg, transparent 50%, rgba(255, 255, 255, 0.24) 50%),
    var(--ticket-color);
  color: #111111;
  text-align: left;
}

.light-damage-timeline-ticket:hover,
.light-damage-timeline-ticket:focus-visible,
.light-damage-timeline-ticket.is-active {
  outline: 3px solid rgba(10, 116, 111, 0.48);
  outline-offset: -3px;
}

.light-damage-timeline-ticket strong,
.light-damage-timeline-ticket span,
.light-damage-timeline-ticket small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.light-damage-timeline-ticket strong {
  font-size: 1.22rem;
  font-weight: 1000;
}

.light-damage-timeline-ticket span {
  font-size: 0.95rem;
  font-weight: 900;
}

.light-damage-timeline-ticket small {
  font-size: 0.82rem;
  font-weight: 820;
}

.light-damage-timeline-ticket.is-dark-pocket {
  color: #ffffff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

.light-damage-timeline-ticket.is-light-pocket {
  color: #111111;
  text-shadow: none;
}

.timeline-sequence {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: rgba(17, 17, 17, 0.52);
  font-size: 1.54rem;
  font-weight: 1000;
}

.timeline-overlap {
  position: absolute;
  right: 6px;
  bottom: 4px;
  display: grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  padding: 0 6px;
  border-radius: 999px;
  background: #ad2428;
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 1000;
}

.light-damage-grid {
  display: grid;
  grid-template-columns: var(--process-label-width) repeat(var(--process-count), minmax(230px, 1fr));
  border-top: 2px solid #111111;
  border-left: 2px solid #111111;
  background: #ffffff;
}

.light-damage-cell {
  display: grid;
  gap: 6px;
  min-width: 0;
  min-height: 108px;
  padding: 12px;
  border-right: 1px solid #111111;
  border-bottom: 1px solid #111111;
  background: #fafaf7;
}

.light-damage-label,
.light-damage-step-head,
.light-damage-tech,
.light-damage-time {
  align-content: center;
  justify-items: center;
}

.light-damage-label {
  background: #f4f4f0;
}

.light-damage-label span,
.light-damage-step-head span,
.light-damage-time span {
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 0;
  padding: 0 4px;
  border: 0;
  background: transparent;
  color: #111111;
  font-size: 1.82rem;
  font-weight: 1000;
  line-height: 1.12;
  text-align: center;
  text-transform: uppercase;
}

.light-damage-step-head {
  min-height: 108px;
}

.light-damage-step-head span {
  width: 100%;
  min-height: 0;
  font-size: 1.76rem;
}

.light-damage-tech {
  min-height: 108px;
}

.light-damage-time {
  min-height: 108px;
}

.light-damage-time span {
  width: 100%;
  min-height: 0;
  font-size: 2.56rem;
  line-height: 1.35;
}

.light-damage-label.is-red span {
  color: #ad2428;
}

.light-damage-tech-card {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 6px;
  width: 100%;
  min-height: 88px;
}

.light-damage-tech-card img,
.light-damage-tech-placeholder {
  width: 66px;
  height: 66px;
  border-radius: 50%;
}

.light-damage-tech-card img {
  object-fit: cover;
}

.light-damage-tech-placeholder {
  display: grid;
  place-items: center;
  background: #e7ebe8;
  color: #111111;
  font-size: 1.54rem;
  font-weight: 1000;
}

.light-damage-tech-card strong {
  max-width: 100%;
  overflow: hidden;
  color: #111111;
  font-size: 1.46rem;
  font-weight: 1000;
  line-height: 1.05;
  text-align: center;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.light-damage-lane,
.light-damage-info {
  align-content: start;
  justify-items: stretch;
  background: #ffffff;
}

.light-damage-lane {
  min-height: 108px;
}

.light-damage-lane.is-stopped {
  min-height: 108px;
}

.light-damage-info {
  min-height: 108px;
}

.light-damage-ticket {
  position: relative;
  display: grid;
  gap: 2px;
  width: 100%;
  min-height: 108px;
  padding: 12px 12px 18px;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(135deg, transparent 50%, rgba(255, 255, 255, 0.24) 50%),
    var(--ticket-color);
  color: #111111;
  cursor: grab;
  text-align: left;
}

.light-damage-ticket:active,
.light-damage-ticket.is-dragging {
  cursor: grabbing;
}

.light-damage-ticket.is-dragging {
  opacity: 0.72;
}

.light-damage-lane.is-drag-over,
.light-damage-output-rack.is-drag-over {
  outline: 4px solid rgba(10, 116, 111, 0.52);
  outline-offset: -5px;
  background: rgba(10, 116, 111, 0.08);
}

.light-damage-ticket:hover,
.light-damage-ticket:focus-visible,
.light-damage-ticket.is-active {
  outline: 3px solid rgba(10, 116, 111, 0.42);
  outline-offset: -3px;
}

.light-damage-ticket strong,
.light-damage-ticket span,
.light-damage-ticket small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.light-damage-ticket strong {
  font-size: 1.52rem;
  font-weight: 1000;
}

.light-damage-ticket span {
  font-size: 1.28rem;
  font-weight: 850;
}

.light-damage-ticket small {
  font-size: 1.14rem;
  font-weight: 820;
}

.light-damage-ticket.is-dark-pocket {
  color: #ffffff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

.light-damage-ticket.is-light-pocket {
  color: #111111;
  text-shadow: none;
}

.light-damage-empty-pocket {
  min-height: 88px;
  border: 0;
  background: transparent;
}

.light-damage-note {
  display: block;
  width: 100%;
  padding: 4px 2px;
  border: 0;
  background: transparent;
  color: #7d1f23;
  font-size: 1.56rem;
  font-weight: 900;
  line-height: 1.15;
}

.light-damage-output-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.82fr) minmax(0, 1.22fr);
  gap: 8px;
  margin-top: 8px;
}

.light-damage-output-panel {
  display: grid;
  grid-template-rows: auto 1fr;
  min-height: 138px;
  border: 2px solid #111111;
  background: #ffffff;
}

.light-damage-output-panel h3 {
  display: grid;
  place-items: center;
  min-height: 48px;
  margin: 0;
  border-bottom: 1px solid #111111;
  background: transparent;
  color: #111111;
  font-size: 1.96rem;
  font-weight: 1000;
  line-height: 1.05;
  text-align: center;
}

.light-damage-output-rack {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(82px, 1fr));
  align-content: start;
  min-height: 90px;
}

.light-damage-output-rack .light-damage-ticket {
  min-height: 108px;
  border-top: 0;
  border-left: 0;
}

.light-damage-output-slot {
  display: grid;
  place-items: center;
  min-height: 90px;
  border: 0;
  background: transparent;
}

.light-damage-output-slot span {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #111111;
  font-size: 1.9rem;
  font-weight: 1000;
}

.light-damage-clock-station {
  display: grid;
  grid-template-columns: 118px minmax(0, auto) 40px;
  align-items: center;
  gap: 14px;
  width: max-content;
  max-width: calc(100% - 32px);
  margin: 96px auto 0;
  padding: 14px 18px;
  border: 1px solid rgba(17, 17, 17, 0.16);
  border-radius: 18px;
  background: rgba(248, 248, 245, 0.88);
  box-shadow: 0 24px 60px rgba(17, 17, 17, 0.18);
  color: #111111;
  backdrop-filter: blur(14px);
}

/* === 13. PROCESS CLOCK === */
.clock-actions {
  display: grid;
  gap: 12px;
}

.clock-action-button {
  min-width: 106px;
  min-height: 54px;
  border: 0;
  border-radius: 12px;
  color: #ffffff;
  font-size: 1.05rem;
  font-weight: 1000;
  text-transform: uppercase;
  box-shadow: 0 12px 24px rgba(17, 17, 17, 0.16);
}

.clock-action-button:disabled {
  cursor: default;
  filter: grayscale(0.4);
  opacity: 0.48;
}

.clock-action-button.is-start {
  background: #16824c;
}

.clock-action-button.is-stop {
  background: #c73436;
}

.clock-action-button.is-reset {
  background: #111a17;
}

.light-damage-countdown {
  display: grid;
  justify-items: center;
  gap: 8px;
}

button.light-damage-countdown {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: center;
}

.light-damage-countdown .clock-ring {
  display: grid;
  place-items: center;
  width: 380px;
  height: 380px;
  border-radius: 50%;
  background: conic-gradient(#ff7417 var(--clock-angle), #3a312d 0deg);
  box-shadow: inset 0 0 0 30px #312925, 0 18px 38px rgba(17, 17, 17, 0.24);
}

.light-damage-countdown .clock-face {
  display: grid;
  place-items: center;
  width: 256px;
  height: 256px;
  border: 16px solid #171412;
  border-radius: 50%;
  background: #342c28;
}

.light-damage-countdown .clock-face strong {
  color: #ffffff;
  font-size: 5.05rem;
  font-weight: 1000;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.light-damage-countdown .clock-digital {
  display: none;
}

.light-damage-countdown .clock-digital strong {
  display: block;
  width: min(610px, calc(100vw - 260px));
  min-width: 320px;
  padding: 34px 36px;
  border-radius: 12px;
  background: #000000;
  font-family: "Courier New", monospace;
  font-size: clamp(5rem, 12vw, 9.2rem);
  font-weight: 1000;
  line-height: 1;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.light-damage-countdown.is-digital-orange .clock-ring,
.light-damage-countdown.is-digital-blue .clock-ring {
  display: none;
}

.light-damage-countdown.is-digital-orange .clock-digital,
.light-damage-countdown.is-digital-blue .clock-digital {
  display: block;
}

.light-damage-countdown.is-digital-orange .clock-digital strong {
  color: #ff5c1b;
  text-shadow: 0 0 10px rgba(255, 92, 27, 0.86), 0 0 24px rgba(255, 92, 27, 0.55);
}

.light-damage-countdown.is-digital-blue .clock-digital strong {
  color: #17c9ff;
  text-shadow: 0 0 10px rgba(23, 201, 255, 0.9), 0 0 24px rgba(23, 201, 255, 0.62);
}

.light-damage-countdown small {
  color: #111111;
  max-width: 420px;
  font-size: 1.22rem;
  font-weight: 1000;
  text-align: center;
  text-transform: uppercase;
}

.clock-signal-bars {
  display: grid;
  gap: 12px;
}

.clock-signal-bar {
  display: block;
  width: 24px;
  height: 86px;
  border-radius: 999px;
  opacity: 0.28;
  transform: scaleX(0.78);
  transition: opacity 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.clock-signal-bar.is-green {
  background: #00c853;
  color: #00c853;
}

.clock-signal-bar.is-yellow {
  background: #ffea00;
  color: #ffea00;
}

.clock-signal-bar.is-red {
  background: #ff1744;
  color: #ff1744;
}

.clock-signal-bar.is-active {
  opacity: 1;
  transform: scaleX(1);
  box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.76), 0 0 22px currentColor;
}

body.module-vehiculos-proceso #vehiculos-proceso,
body.module-vehiculos-proceso .vehicle-process-board-scroll {
  background: #eef2ef;
}

.light-damage-process-board {
  --process-label-width: 190px;
  min-width: 1900px;
  padding: 20px 22px 34px;
  border: 0;
  background: #eef2ef;
  color: #111a17;
}

.light-damage-command-center {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, auto);
  align-items: center;
  gap: 18px;
  margin-bottom: 16px;
  padding: 20px 24px;
  border: 1px solid rgba(18, 45, 38, 0.14);
  border-left: 10px solid #0a746f;
  border-radius: 16px;
  background: #fbfcf8;
  box-shadow: 0 20px 46px rgba(29, 45, 39, 0.14);
}

.light-damage-command-title {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.light-damage-command-title p,
.light-damage-command-title h2,
.light-damage-command-title span,
.light-damage-command-status strong,
.light-damage-command-status small {
  margin: 0;
}

.light-damage-command-title p {
  color: #0b5f8d;
  font-size: 1rem;
  font-weight: 1000;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.light-damage-command-title h2 {
  color: #10231f;
  font-size: 2.75rem;
  font-weight: 1000;
  line-height: 1;
  text-transform: uppercase;
}

.light-damage-command-title span {
  color: #66756f;
  font-size: 1.15rem;
  font-weight: 900;
}

.light-damage-command-status {
  display: grid;
  justify-items: end;
  gap: 6px;
  color: #10231f;
  text-align: right;
}

.command-status-pill {
  display: inline-grid;
  place-items: center;
  min-height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  color: #ffffff;
  font-size: 0.95rem;
  font-weight: 1000;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.command-status-pill.is-active {
  background: #16824c;
}

.command-status-pill.is-authorized {
  background: #0b5f8d;
}

.command-status-pill.is-closed {
  background: #c73436;
}

.light-damage-command-status strong {
  font-size: 2.3rem;
  font-weight: 1000;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.light-damage-command-status small {
  color: #66756f;
  font-size: 1rem;
  font-weight: 900;
}

.light-damage-kpi-strip {
  display: grid;
  grid-template-columns:
    minmax(0, 0.88fr)
    minmax(0, 0.88fr)
    minmax(0, 0.88fr)
    minmax(0, 0.82fr)
    minmax(0, 0.78fr)
    minmax(0, 0.92fr)
    minmax(260px, 1.08fr);
  gap: 12px;
  margin-bottom: 18px;
}

.light-damage-kpi-strip article,
.light-damage-kpi-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 4px 14px;
  min-height: 106px;
  padding: 16px 18px;
  border: 1px solid rgba(18, 45, 38, 0.12);
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 14px 32px rgba(29, 45, 39, 0.09);
}

.light-damage-kpi-card {
  width: 100%;
  cursor: pointer;
  text-align: left;
  transition: transform 90ms ease, box-shadow 90ms ease, border-color 90ms ease, background 90ms ease;
}

.light-damage-kpi-card:hover,
.light-damage-kpi-card:focus-visible {
  border-color: rgba(10, 116, 111, 0.34);
  box-shadow: 0 18px 36px rgba(10, 116, 111, 0.16);
  outline: none;
  transform: translateY(-1px);
}

.light-damage-kpi-card:active {
  border-color: rgba(10, 116, 111, 0.4);
  box-shadow: inset 0 2px 6px rgba(16, 35, 31, 0.08), 0 8px 16px rgba(10, 116, 111, 0.14);
  transform: translateY(1px) scale(0.996);
}

.light-damage-kpi-strip article span,
.light-damage-kpi-card span {
  color: #66756f;
  font-size: 1rem;
  font-weight: 1000;
  text-transform: uppercase;
}

.light-damage-kpi-strip article strong,
.light-damage-kpi-card strong {
  grid-row: span 2;
  color: #10231f;
  font-size: 3rem;
  font-weight: 1000;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.light-damage-kpi-strip article small,
.light-damage-kpi-card small {
  min-width: 0;
  overflow: hidden;
  color: #0a746f;
  font-size: 1.08rem;
  font-weight: 950;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.light-damage-kpi-strip article.is-takt {
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 8px;
  min-height: 128px;
  padding: 12px;
  color: #ffffff;
}

.light-damage-kpi-strip article.is-takt.is-green {
  border-color: #16824c;
  background: #16824c;
}

.light-damage-kpi-strip article.is-takt.is-yellow {
  border-color: #d2a319;
  background: #d2a319;
  color: #151515;
}

.light-damage-kpi-strip article.is-takt.is-red {
  border-color: #c73436;
  background: #c73436;
}

.kpi-takt-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.light-damage-kpi-strip article.is-takt .kpi-takt-header span,
.light-damage-kpi-strip article.is-takt .kpi-takt-header small {
  color: inherit;
  font-size: .9rem;
  font-weight: 1000;
  line-height: 1;
  text-transform: uppercase;
}

.light-damage-kpi-strip article.is-takt .process-clock-display {
  width: 100%;
  cursor: pointer;
}

.light-damage-kpi-strip article.is-takt .light-damage-countdown {
  gap: 2px;
}

.light-damage-kpi-strip article.is-takt .light-damage-countdown .clock-ring {
  display: none;
}

.light-damage-kpi-strip article.is-takt .light-damage-countdown .clock-digital {
  display: block;
}

.light-damage-kpi-strip article.is-takt .light-damage-countdown .clock-digital strong {
  width: 100%;
  min-width: 0;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(0, 0, 0, .74);
  color: #ffffff;
  font-family: "Courier New", monospace;
  font-size: 3.2rem;
  line-height: .95;
}

.light-damage-kpi-strip article.is-takt .light-damage-countdown small {
  display: none;
}

.light-damage-kpi-strip article.is-takt .clock-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.light-damage-kpi-strip article.is-takt .clock-action-button {
  min-width: 0;
  min-height: 34px;
  padding: 0 8px;
  border: 2px solid #ffffff;
  border-radius: 8px;
  background: #155f87;
  color: #ffffff;
  font-size: .9rem;
  box-shadow: none;
}

.light-damage-kpi-strip article.is-takt .clock-action-button.is-start {
  border-color: #ffffff;
  background: #155f87;
  color: #ffffff;
}

.light-damage-kpi-strip article.is-takt .clock-action-button.is-stop {
  border-color: #ffffff;
  background: #c73436;
  color: #ffffff;
}

.light-damage-kpi-strip article.is-takt .clock-action-button.is-reset {
  border-color: #ffffff;
  background: #111a17;
  color: #ffffff;
}

.light-damage-kpi-strip article.is-takt .clock-action-button:disabled {
  opacity: .58;
}

.light-damage-kpi-card.is-no-show {
  border-color: rgba(167, 50, 56, 0.18);
}

.light-damage-kpi-card.is-no-show small {
  color: #a73238;
}

.light-damage-kpi-card.is-tv-action {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px 14px;
  border-color: rgba(10, 75, 121, 0.28);
  background: linear-gradient(180deg, #f8fbff 0%, #e8f1fb 100%);
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.92),
    0 14px 28px rgba(11, 62, 101, 0.16);
}

.light-damage-kpi-card.is-tv-action:hover,
.light-damage-kpi-card.is-tv-action:focus-visible {
  border-color: rgba(10, 75, 121, 0.46);
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.92),
    0 18px 34px rgba(11, 62, 101, 0.22);
}

.light-damage-kpi-card.is-tv-action:active {
  box-shadow:
    inset 0 3px 8px rgba(14, 43, 64, 0.18),
    0 8px 14px rgba(11, 62, 101, 0.18);
}

.light-damage-kpi-card.is-tv-action strong,
.light-damage-kpi-card.is-tv-action small {
  grid-column: 2;
}

.light-damage-kpi-card.is-tv-action strong {
  grid-row: auto;
  align-self: end;
  color: #0f385c;
  font-size: 2rem;
  line-height: .92;
}

.light-damage-kpi-card.is-tv-action small {
  color: #155f87;
}

.tv-action-icon {
  grid-row: span 3;
  display: grid;
  place-items: center;
  align-self: stretch;
  width: 72px;
  min-width: 72px;
}

.tv-action-screen {
  position: relative;
  display: block;
  width: 54px;
  height: 38px;
  border: 3px solid #0f385c;
  border-radius: 10px;
  background:
    linear-gradient(180deg, rgba(24, 88, 135, 0.2) 0%, rgba(8, 23, 35, 0.06) 100%),
    linear-gradient(135deg, #ffffff 0%, #d6e7f6 100%);
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.9),
    0 6px 12px rgba(10, 75, 121, 0.16);
}

.tv-action-screen::before {
  content: "";
  position: absolute;
  inset: 8px 10px;
  border-radius: 5px;
  background: linear-gradient(135deg, #1a6ea6 0%, #103957 100%);
}

.tv-action-stand {
  position: relative;
  display: block;
  width: 28px;
  height: 16px;
  margin-top: 4px;
}

.tv-action-stand::before,
.tv-action-stand::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  background: #0f385c;
}

.tv-action-stand::before {
  top: 0;
  width: 6px;
  height: 10px;
  border-radius: 999px;
}

.tv-action-stand::after {
  bottom: 0;
  width: 28px;
  height: 4px;
  border-radius: 999px;
}

.light-damage-grid {
  overflow: hidden;
  border: 1px solid rgba(18, 45, 38, 0.18);
  border-radius: 16px;
  background: #d9e1dc;
  box-shadow: 0 22px 52px rgba(29, 45, 39, 0.13);
}

.light-damage-cell {
  min-height: 118px;
  border-right: 1px solid rgba(18, 45, 38, 0.22);
  border-bottom: 1px solid rgba(18, 45, 38, 0.22);
  background: #f9faf7;
}

.light-damage-label {
  background: #10231f;
}

.light-damage-label span {
  color: #ffffff;
  font-size: 1.35rem;
  letter-spacing: 0.04em;
}

.light-damage-label.is-red {
  background: #7d1f23;
}

.light-damage-label.is-red span {
  color: #ffffff;
}

.light-damage-step-head {
  min-height: 118px;
  border-top: 8px solid #0a746f;
  background: #ffffff;
}

.light-damage-step-head span {
  color: #10231f;
  font-size: 1.58rem;
}

.light-damage-process-title {
  display: grid;
  place-items: center;
  gap: 6px;
  width: 100%;
  padding: 0 6px;
}

.light-damage-process-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
}

.light-damage-process-icon .technician-role-icon {
  width: 42px;
  height: 42px;
  display: block;
}

.light-damage-process-name {
  color: #10231f;
  font-size: 1.34rem;
  font-weight: 1000;
  line-height: 1.05;
  text-align: center;
  text-transform: uppercase;
}

.light-damage-tech,
.light-damage-time {
  min-height: 88px;
  background: #f4f7f4;
}

.light-damage-time span {
  color: #0a746f;
  font-size: 2.12rem;
}

.light-damage-lane,
.light-damage-info {
  min-height: 112px;
  padding: 10px;
  background: #ffffff;
}

.light-damage-lane.is-stopped {
  background: #fff8f2;
}

.light-damage-empty-pocket {
  min-height: 92px;
  border: 2px dashed rgba(18, 45, 38, 0.12);
  border-radius: 10px;
  background: repeating-linear-gradient(135deg, rgba(10, 116, 111, 0.035) 0 10px, rgba(10, 116, 111, 0.065) 10px 20px);
}

.light-damage-empty-pocket-button {
  display: grid;
  place-items: center;
  gap: 6px;
  width: 100%;
  padding: 14px 12px;
  cursor: pointer;
  color: #0f4f4a;
  text-align: center;
  transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;
}

.light-damage-empty-pocket-button:hover,
.light-damage-empty-pocket-button:focus-visible {
  border-color: rgba(10, 116, 111, 0.42);
  box-shadow: 0 10px 22px rgba(10, 116, 111, 0.12);
  outline: none;
  transform: translateY(-1px);
}

.light-damage-empty-pocket-button strong,
.light-damage-empty-pocket-button span {
  display: block;
}

.light-damage-empty-pocket-button strong {
  font-size: 1.08rem;
  font-weight: 1000;
  text-transform: uppercase;
}

.light-damage-empty-pocket-button span {
  font-size: 0.9rem;
  font-weight: 800;
}

.light-damage-ticket {
  min-height: 102px;
  padding: 13px 14px 15px;
  border: 2px solid rgba(12, 39, 34, 0.2);
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.06) 0 48%, rgba(255, 255, 255, 0.28) 48% 100%),
    var(--ticket-color);
  box-shadow: 0 16px 28px rgba(29, 45, 39, 0.18);
}

.light-damage-ticket:hover,
.light-damage-ticket:focus-visible,
.light-damage-ticket.is-active {
  outline: 4px solid rgba(226, 184, 37, 0.64);
  outline-offset: -4px;
}

.light-damage-ticket strong {
  font-size: 1.58rem;
}

.light-damage-ticket span {
  font-size: 1.18rem;
}

.light-damage-ticket small {
  font-size: 1rem;
}

.light-damage-note {
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(199, 47, 50, 0.08);
  color: #7d1f23;
  font-size: 1.36rem;
}

.light-damage-output-grid {
  gap: 12px;
  margin-top: 14px;
}

.light-damage-output-panel {
  min-height: 152px;
  overflow: hidden;
  border: 1px solid rgba(18, 45, 38, 0.18);
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 18px 38px rgba(29, 45, 39, 0.11);
}

.light-damage-output-panel h3 {
  min-height: 50px;
  border-bottom: 1px solid rgba(18, 45, 38, 0.16);
  background: #10231f;
  color: #ffffff;
  font-size: 1.52rem;
  letter-spacing: 0.04em;
}

.light-damage-output-panel:nth-child(2) h3 {
  background: #e2b825;
  color: #111a17;
}

.light-damage-output-panel:nth-child(3) h3 {
  background: #16824c;
}

.light-damage-output-panel.is-parts-output h3 {
  background: #10231f;
  color: #ffffff;
}

.light-damage-output-panel.is-additional-output h3 {
  background: #e2b825;
  color: #111a17;
}

.light-damage-output-panel.is-ready-output h3 {
  background: #16824c;
  color: #ffffff;
}

.light-damage-output-rack {
  min-height: 104px;
  padding: 8px;
  gap: 8px;
}

.light-damage-output-rack .light-damage-ticket {
  min-height: 94px;
  border: 2px solid rgba(12, 39, 34, 0.2);
}

.light-damage-output-slot {
  min-height: 90px;
  border: 2px dashed rgba(18, 45, 38, 0.14);
  border-radius: 12px;
  background: #f7f9f6;
}

.light-damage-output-slot span {
  color: rgba(17, 26, 23, 0.52);
  font-size: 1.7rem;
}

.light-damage-clock-station {
  grid-template-columns: auto minmax(0, auto) auto;
  gap: 18px;
  margin: 30px auto 0;
  padding: 16px 18px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 22px;
  background: #111a17;
  box-shadow: 0 28px 70px rgba(17, 26, 23, 0.28);
  color: #ffffff;
}

.light-damage-clock-station .clock-actions {
  gap: 10px;
}

.light-damage-clock-station .clock-action-button {
  min-width: 96px;
  min-height: 46px;
  border-radius: 10px;
  box-shadow: none;
}

.light-damage-clock-station .process-clock-display,
.light-damage-clock-station .clock-signal-bars {
  cursor: pointer;
}

.light-damage-clock-station .light-damage-countdown .clock-ring {
  width: 190px;
  height: 190px;
  box-shadow: inset 0 0 0 16px #312925, 0 18px 38px rgba(0, 0, 0, 0.24);
}

.light-damage-clock-station .light-damage-countdown .clock-face {
  width: 126px;
  height: 126px;
  border-width: 10px;
}

.light-damage-clock-station .light-damage-countdown .clock-face strong {
  font-size: 2.7rem;
}

.light-damage-clock-station .light-damage-countdown .clock-digital strong {
  width: auto;
  min-width: 380px;
  padding: 18px 24px;
  border-radius: 14px;
  font-size: 5.4rem;
}

.light-damage-clock-station .light-damage-countdown small {
  color: #ffffff;
}

.light-damage-clock-station .clock-signal-bar {
  width: 20px;
  height: 66px;
}

.process-clock-panel {
  overflow: hidden;
}

.process-clock-station {
  justify-items: center;
}

.process-clock-screen {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

.process-clock-fullscreen {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 100dvh;
  height: 100dvh;
  padding: clamp(8px, 1vw, 16px);
  border: 0;
  background: #fbfcf8;
  color: #111111;
}

.process-clock-fullscreen[data-clock-signal-tone="green"] {
  background:
    radial-gradient(circle at top, rgba(56, 142, 94, 0.28), transparent 36%),
    linear-gradient(180deg, #f7fbf5 0%, #eff7ef 46%, #e3f0e5 100%);
}

.process-clock-fullscreen[data-clock-signal-tone="yellow"] {
  background:
    radial-gradient(circle at top, rgba(239, 178, 43, 0.26), transparent 40%),
    linear-gradient(180deg, #fffaf0 0%, #fff3d1 46%, #fde5a1 100%);
}

.process-clock-fullscreen[data-clock-signal-tone="red"] {
  background:
    radial-gradient(circle at top, rgba(203, 46, 67, 0.26), transparent 40%),
    linear-gradient(180deg, #fff5f5 0%, #ffdede 44%, #ffc0c8 100%);
}

.process-clock-fullscreen-header {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(360px, auto) minmax(180px, 1fr);
  align-items: start;
  gap: clamp(16px, 2vw, 36px);
  width: 100%;
  padding-bottom: clamp(6px, 0.8vw, 12px);
}

.process-clock-fullscreen-header p,
.process-clock-fullscreen-header span {
  margin: 0;
  color: #4f5b56;
  font-size: clamp(1.15rem, 1.6vw, 2rem);
  font-weight: 1000;
  text-transform: uppercase;
}

.process-clock-fullscreen-header p {
  line-height: 1;
  white-space: nowrap;
}

.process-clock-workshop-brand {
  justify-self: start;
}

.process-clock-workshop-tenant {
  justify-self: end;
  text-align: right;
}

.process-clock-title-stack {
  display: grid;
  justify-items: center;
  gap: 4px;
}

.process-clock-title-stack span {
  justify-self: center;
}

.process-clock-fullscreen-header h2 {
  margin: 0;
  color: #111111;
  font-size: clamp(2.2rem, 3.7vw, 5rem);
  font-weight: 1000;
  line-height: 0.95;
  text-align: center;
  text-transform: uppercase;
}

.process-clock-fullscreen-body {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  align-items: stretch;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.process-clock-fullscreen-main {
  display: grid;
  grid-template-rows: auto minmax(0, 46vh) auto minmax(0, 1fr);
  justify-items: center;
  align-items: stretch;
  gap: clamp(10px, 1.2vw, 18px);
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
}

.process-clock-fullscreen .light-damage-countdown,
.process-clock-fullscreen .clock-digital {
  width: 100%;
  min-height: 0;
}

.process-clock-fullscreen .light-damage-countdown {
  align-content: stretch;
}

.process-clock-fullscreen .clock-ring {
  width: min(86vh, 84vw);
  height: min(86vh, 84vw);
  box-shadow: inset 0 0 0 clamp(34px, 3.8vw, 66px) #312925, 0 26px 70px rgba(17, 17, 17, 0.28);
}

.process-clock-fullscreen .clock-face {
  width: clamp(380px, 34vw, 640px);
  height: clamp(380px, 34vw, 640px);
  border-width: clamp(18px, 2vw, 34px);
}

.process-clock-fullscreen .clock-face strong {
  font-size: clamp(7.8rem, 9.8vw, 15rem);
}

.process-clock-fullscreen .clock-digital strong {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  min-height: 0;
  min-width: 0;
  margin: 0 auto;
  padding: clamp(20px, 3vw, 56px) clamp(24px, 3.5vw, 72px);
  font-size: min(clamp(21rem, 37.5vw, 57rem), calc((100vw - 64px) / 3.25), 43vh);
}

.process-clock-fullscreen .light-damage-countdown small {
  display: none;
  max-width: none;
  font-size: clamp(1.35rem, 1.7vw, 2.2rem);
}

.process-clock-status-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  width: min(980px, 100%);
  padding: 0 clamp(12px, 1vw, 18px);
}

.process-clock-status-strip strong,
.process-clock-status-strip span {
  display: block;
  margin: 0;
  color: #1a2420;
  font-size: clamp(1.45rem, 1.8vw, 2.3rem);
  font-weight: 1000;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.process-clock-status-strip span {
  color: #3f4b46;
}

.process-clock-fullscreen .clock-actions {
  grid-template-columns: repeat(3, minmax(140px, 1fr));
  width: 100%;
  gap: clamp(10px, 1.3vw, 22px);
}

.process-clock-fullscreen .clock-action-button {
  min-height: clamp(76px, 6vw, 116px);
  border-radius: 16px;
  font-size: clamp(1.35rem, 2vw, 2.7rem);
}

.fullscreen-signal-circles {
  display: grid;
  grid-template-columns: repeat(3, max-content);
  place-content: center;
  place-items: center;
  place-self: stretch;
  width: 100%;
  height: 100%;
  gap: clamp(24px, 4vw, 72px);
}

.fullscreen-signal-circles .clock-signal-bar {
  width: clamp(156px, 14.95vw, 286px);
  height: clamp(156px, 14.95vw, 286px);
  border-radius: 50%;
  opacity: 1;
  filter: saturate(1.25) brightness(0.96);
  transform: scale(1);
  box-shadow: inset 0 0 0 8px rgba(17, 17, 17, 0.08), inset 0 -18px 34px rgba(17, 17, 17, 0.16);
}

.fullscreen-signal-circles .clock-signal-bar.is-active {
  filter: saturate(1.45) brightness(1.08);
  transform: scale(1.04);
  box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.94), 0 0 48px 18px currentColor, inset 0 -18px 34px rgba(17, 17, 17, 0.16);
}

.process-clock-fullscreen.is-tv-display {
  color: #f5fff9;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  place-items: stretch;
  padding: clamp(18px, 2vw, 36px);
}

.process-clock-fullscreen.is-tv-display[data-clock-signal-tone="green"] {
  background:
    radial-gradient(circle at center, rgba(78, 143, 96, 0.15), transparent 42%),
    linear-gradient(180deg, #0a100e 0%, #0d1612 48%, #07100c 100%);
}

.process-clock-fullscreen.is-tv-display[data-clock-signal-tone="yellow"] {
  background:
    radial-gradient(circle at center, rgba(242, 197, 83, 0.14), transparent 42%),
    linear-gradient(180deg, #120f08 0%, #1a1610 48%, #0d0b07 100%);
}

.process-clock-fullscreen.is-tv-display[data-clock-signal-tone="red"] {
  background:
    radial-gradient(circle at center, rgba(204, 75, 87, 0.14), transparent 42%),
    linear-gradient(180deg, #15090a 0%, #1d1012 48%, #0d0708 100%);
}

.process-clock-tv-shell {
  position: relative;
  width: 100%;
  min-height: 100%;
  height: 100%;
  gap: clamp(24px, 3vh, 40px);
}

.process-clock-tv-topline {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: clamp(48px, 6vh, 72px);
}

.process-clock-tv-status {
  color: rgba(216, 196, 126, 0.9);
  font-family: "Courier New", monospace;
  font-size: clamp(1.45rem, 2vw, 2.25rem);
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}

.process-clock-tv-center {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  display: grid;
  justify-items: center;
  align-content: center;
  gap: clamp(24px, 3vh, 48px);
  min-height: 0;
}

.process-clock-tv-title,
.process-clock-tv-scale,
.process-clock-tv-brand-row span {
  margin: 0;
  color: rgba(205, 215, 208, 0.52);
  font-family: "Courier New", monospace;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}

.process-clock-tv-title {
  font-size: clamp(1.6rem, 2.1vw, 2.5rem);
}

.process-clock-tv-time-wrap {
  display: grid;
  place-items: center;
  width: min(82vw, 1500px);
  max-width: 100%;
}

.process-clock-tv-time {
  display: grid;
  place-items: center;
  width: 100%;
}

.process-clock-tv-time strong {
  display: grid;
  grid-template-columns: auto 0.28em auto;
  align-items: center;
  justify-content: center;
  column-gap: 0.08em;
  width: 100%;
  color: #ffffff;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: clamp(13rem, min(21vw, 37vh), 27rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  text-shadow: 0 8px 30px rgba(0, 0, 0, 0.42);
}

.process-clock-tv-separator {
  display: inline-grid;
  place-items: center;
  line-height: 1;
  transform: translateY(-0.03em);
}

.process-clock-tv-scale {
  font-size: clamp(1.4rem, 1.7vw, 2rem);
}

.process-clock-tv-footer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: grid;
  gap: clamp(14px, 1.5vh, 18px);
}

.process-clock-tv-progress-track {
  position: relative;
  width: 100%;
  height: clamp(88px, 9.5vh, 126px);
  overflow: hidden;
  border: 2px solid rgba(182, 230, 186, 0.42);
  border-radius: 28px;
  background: rgba(124, 152, 131, 0.22);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 10px 30px rgba(0, 0, 0, 0.18);
}

.process-clock-tv-progress-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(160, 232, 165, 0.96) 0%, rgba(110, 184, 119, 0.98) 100%);
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.18);
  transition: width 0.25s linear, background 0.25s ease, box-shadow 0.25s ease;
}

.process-clock-fullscreen.is-tv-display[data-clock-signal-tone="yellow"] .process-clock-tv-progress-fill {
  background: linear-gradient(180deg, rgba(249, 218, 87, 0.98) 0%, rgba(214, 168, 33, 0.98) 100%);
}

.process-clock-fullscreen.is-tv-display[data-clock-signal-tone="red"] .process-clock-tv-progress-fill {
  background: linear-gradient(180deg, rgba(244, 88, 99, 0.98) 0%, rgba(194, 39, 56, 0.98) 100%);
}

.process-clock-tv-brand-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 0 clamp(8px, 0.8vw, 12px);
}

.process-clock-tv-brand-row span {
  font-size: clamp(1.1rem, 1.3vw, 1.45rem);
}

.process-clock-fullscreen.is-tv-display .process-clock-back-button,
.process-clock-fullscreen.is-tv-display .process-clock-fullscreen-header,
.process-clock-fullscreen.is-tv-display .process-clock-fullscreen-body,
.process-clock-fullscreen.is-tv-display .process-clock-status-strip,
.process-clock-fullscreen.is-tv-display .fullscreen-signal-circles {
  display: none;
}

.process-clock-back-button {
  position: fixed;
  right: clamp(14px, 2vw, 28px);
  bottom: clamp(14px, 2vw, 28px);
  z-index: 10;
  min-width: 150px;
  min-height: 58px;
  padding: 0 24px;
  border: 0;
  border-radius: 14px;
  background: #111a17;
  color: #ffffff;
  font-size: clamp(1rem, 1.2vw, 1.25rem);
  font-weight: 1000;
  text-transform: uppercase;
  box-shadow: 0 18px 38px rgba(17, 17, 17, 0.22);
}

.process-clock-back-button:hover {
  background: #0a746f;
}

.vehicle-process-list {
  display: grid;
  align-content: start;
  gap: 10px;
}

.vehicle-process-card {
  display: grid;
  gap: 5px;
  width: 100%;
  padding: 14px;
  border: 0;
  border-radius: 8px;
  background:
    linear-gradient(135deg, transparent 50%, rgba(255, 255, 255, 0.24) 50%),
    var(--ticket-color, #ffffff);
  color: #111111;
  text-align: left;
}

.vehicle-process-card:hover,
.vehicle-process-card.is-active {
  border-color: var(--accent);
  box-shadow: 0 12px 24px rgba(10, 116, 111, 0.12);
}

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

.vehicle-process-card strong {
  font-size: 1.14rem;
}

.vehicle-process-card span {
  color: inherit;
  font-size: 1rem;
  font-weight: 780;
}

.vehicle-process-card small {
  color: inherit;
  font-size: 0.9rem;
  font-weight: 760;
}

.vehicle-process-card.is-dark-pocket {
  color: #ffffff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

.vehicle-process-card.is-light-pocket {
  color: #111111;
  text-shadow: none;
}

.vehicle-process-empty {
  display: grid;
  place-items: center;
  min-height: 180px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  font-weight: 820;
}

.stopped-vehicle-list {
  display: grid;
  gap: 12px;
  padding: 18px;
}

.stopped-vehicle-card {
  display: grid;
  grid-template-columns: minmax(220px, 0.85fr) minmax(260px, 1fr) minmax(300px, 1.35fr);
  gap: 16px;
  align-items: center;
  width: 100%;
  min-height: 92px;
  padding: 16px 18px;
  border: 2px solid rgba(199, 47, 50, 0.42);
  border-radius: 8px;
  background: #fff6f5;
  color: var(--ink);
  text-align: left;
  position: relative;
}

.stopped-vehicle-card .stopped-days-badge,
.income-appointment-card .stopped-days-badge {
  position: absolute;
  bottom: 8px;
  right: 10px;
  font-size: 11px;
  font-weight: 700;
  color: #7a4f00;
  background: #ffe08a;
  border-radius: 8px;
  padding: 2px 8px;
}

.stopped-vehicle-card:hover,
.stopped-vehicle-card:focus-visible {
  border-color: #c72f32;
  box-shadow: 0 10px 22px rgba(199, 47, 50, 0.14);
}

.stopped-vehicle-card div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.stopped-vehicle-card strong {
  color: #8f2024;
  font-size: 1.25rem;
  font-weight: 1000;
}

.stopped-vehicle-card span,
.stopped-vehicle-card small,
.stopped-vehicle-card p {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stopped-vehicle-card span {
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 850;
}

.stopped-vehicle-card small {
  color: var(--muted);
  font-size: 0.98rem;
  font-weight: 760;
}

.stopped-vehicle-card p {
  margin: 0;
  color: #7d1f23;
  font-size: 1.08rem;
  font-weight: 900;
}

.stopped-vehicle-empty {
  display: grid;
  place-items: center;
  min-height: 180px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: #fbfdfc;
  color: var(--muted);
  font-size: 1.1rem;
  font-weight: 850;
}

/* === 15. DELIVERY MODULE === */
.delivery-heading-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.delivery-board-shell {
  padding: 12px;
  overflow-x: auto;
}

.delivery-board-canvas {
  display: grid;
  gap: 18px;
  min-width: 1040px;
  padding: 18px;
  border: 3px solid #343733;
  border-radius: 8px;
  background: #f5f2e8;
  color: #151515;
  box-shadow: inset 0 0 0 6px rgba(255, 255, 255, 0.7), 0 16px 42px rgba(21, 32, 29, 0.12);
}

.delivery-board-hero {
  border: 3px solid #2c2f2b;
  background: #fbfbf7;
}

.delivery-brand-row {
  display: grid;
  grid-template-columns: 90px 90px minmax(0, 1fr) 132px 160px;
  align-items: center;
  min-height: 56px;
  border-bottom: 2px solid #2c2f2b;
}

.delivery-brand-row span {
  display: grid;
  place-items: center;
  min-height: 56px;
  padding: 6px 10px;
  border-right: 1px solid #b8b8af;
  color: #222522;
  font-size: 0.95rem;
  font-weight: 1000;
  text-align: center;
}

.delivery-brand-row span:nth-child(3) {
  color: #697172;
  font-size: 1.18rem;
  font-style: italic;
}

.delivery-brand-row span:nth-child(4) {
  color: #b52f36;
}

.delivery-brand-row span:last-child {
  border-right: 0;
  color: #244b92;
  font-size: 1rem;
  font-style: italic;
}

.delivery-board-hero h3 {
  margin: 0;
  padding: 18px 22px 20px;
  color: #111111;
  font-size: 2.25rem;
  font-weight: 1000;
  line-height: 1.08;
  text-align: center;
}

.delivery-hours-board {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  border: 4px solid #111111;
  background: #fdfdf8;
}

.delivery-date-panel {
  display: grid;
  grid-template-rows: 72px 104px 78px 78px;
  border-right: 4px solid #111111;
}

.delivery-date-panel span,
.delivery-date-panel strong,
.delivery-date-panel b,
.delivery-date-panel em {
  display: grid;
  place-items: center;
  min-width: 0;
  margin: 0;
  border-bottom: 3px solid #111111;
  color: #111111;
  font-style: normal;
  text-align: center;
}

.delivery-date-panel span {
  background: #9fb62b;
  font-size: 1.18rem;
  font-weight: 1000;
}

.delivery-date-panel strong {
  background: #f8f8ef;
  font-family: "Comic Sans MS", "Bradley Hand", cursive;
  font-size: 3.2rem;
  font-weight: 800;
}

.delivery-date-panel b {
  background: #e1d900;
  font-size: 1.25rem;
  font-weight: 1000;
}

.delivery-date-panel em {
  border-bottom: 0;
  background: #23358c;
  color: #ffffff;
  font-size: 1.25rem;
  font-weight: 1000;
}

.delivery-hours-panel {
  display: grid;
  grid-template-rows: 72px 260px;
}

.delivery-hours-panel h4 {
  display: grid;
  place-items: center;
  min-width: 0;
  margin: 0;
  border-bottom: 3px solid #111111;
  background: #fbfbf7;
  color: #111111;
  font-size: 2.35rem;
  font-weight: 1000;
  text-align: center;
}

.delivery-hours-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: 104px 78px 78px;
}

.delivery-hours-grid > * {
  display: grid;
  place-items: center;
  min-width: 0;
  border-right: 3px solid #111111;
  border-bottom: 3px solid #111111;
  text-align: center;
}

.delivery-hours-grid > *:nth-child(3n) {
  border-right: 0;
}

.delivery-hours-grid > *:nth-last-child(-n + 3) {
  border-bottom: 0;
}

.delivery-hours-head {
  background: #fbfbf7;
  color: #5a8b9b;
  font-size: 1.16rem;
  font-weight: 1000;
}

.delivery-hours-number {
  background: #fbfbf7;
  font-family: "Comic Sans MS", "Bradley Hand", cursive;
  font-size: 3rem;
  font-weight: 900;
}

.delivery-hours-number.is-actual {
  font-size: 3.25rem;
}

.delivery-results-board {
  border: 4px solid #111111;
  background: #fbfbf7;
}

.delivery-results-title {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  align-items: center;
  min-height: 112px;
  border-bottom: 4px solid #111111;
}

.delivery-cert-badge {
  display: grid;
  place-items: center;
  width: 110px;
  height: 82px;
  margin: 0 auto;
  border: 1px solid #d0a94c;
  background: linear-gradient(145deg, #fff7d3 0%, #d9aa25 52%, #fff4bc 100%);
  color: #3d2b09;
  font-size: 0.72rem;
  font-weight: 950;
  line-height: 1.05;
  text-align: center;
}

.delivery-results-title div:last-child {
  display: grid;
  place-items: center;
  gap: 6px;
  min-width: 0;
  padding-right: 120px;
}

.delivery-results-title span {
  color: #c03232;
  font-size: 1.6rem;
  font-weight: 1000;
}

.delivery-results-title h4 {
  margin: 0;
  color: #111111;
  font-size: 2.05rem;
  font-weight: 1000;
  text-align: center;
}

.delivery-category-band {
  display: grid;
  grid-template-columns: 42% 42% 16%;
  min-height: 104px;
  border-bottom: 4px solid #111111;
}

.delivery-category-band div {
  display: grid;
  place-items: center;
  min-width: 0;
  border-right: 3px solid #111111;
  color: #4a91a3;
  font-size: 1.65rem;
  font-weight: 1000;
  text-align: center;
}

.delivery-category-band div:last-child {
  border-right: 0;
}

.delivery-scale-row {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  min-height: 32px;
  border-bottom: 2px solid #111111;
  background: #eeeadd;
}

.delivery-scale-row span {
  display: grid;
  place-items: center end;
  padding-right: 10px;
  border-right: 1px solid #77756c;
  color: #242424;
  font-size: 1.1rem;
  font-weight: 1000;
}

.delivery-scale-row span:last-child {
  border-right: 0;
}

.delivery-chart-grid {
  display: grid;
  grid-template-columns: 42% 42% 16%;
  min-height: 780px;
}

.delivery-chart-column {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border-right: 4px solid #111111;
  background:
    repeating-linear-gradient(to bottom, transparent 0 25px, rgba(42, 42, 35, 0.24) 26px 28px),
    repeating-linear-gradient(to right, transparent 0 84px, rgba(42, 42, 35, 0.28) 85px 87px),
    linear-gradient(180deg, #ebe5d4 0%, #f7f3e5 100%);
}

.delivery-chart-column:last-child {
  border-right: 0;
}

.delivery-axis {
  position: absolute;
  right: 12px;
  z-index: 2;
  color: #252525;
  font-size: 1.25rem;
  font-weight: 1000;
}

.delivery-axis.is-top {
  top: 30%;
}

.delivery-axis.is-mid {
  top: 61%;
}

.delivery-axis.is-low {
  top: 88%;
}

.delivery-ticket-stack {
  position: absolute;
  bottom: 0;
  z-index: 3;
  display: flex;
  flex-direction: column-reverse;
  gap: 0;
  width: 58px;
  filter: drop-shadow(0 3px 3px rgba(17, 17, 17, 0.22));
}

.delivery-ticket-stack.is-left {
  left: 28px;
}

.delivery-ticket-stack.is-right {
  left: 96px;
}

.delivery-chart-column:nth-child(2) .delivery-ticket-stack.is-left {
  left: 30px;
}

.delivery-chart-column:nth-child(2) .delivery-ticket-stack.is-right {
  left: 98px;
}

.delivery-ticket-stack span {
  position: relative;
  display: block;
  height: 46px;
  border: 1px solid rgba(20, 20, 20, 0.34);
  border-radius: 2px;
}

.delivery-ticket-stack.is-short span {
  height: 36px;
}

.delivery-ticket-stack span::before,
.delivery-ticket-stack span::after {
  position: absolute;
  left: 8px;
  right: 8px;
  height: 2px;
  background: rgba(14, 24, 26, 0.36);
  content: "";
}

.delivery-ticket-stack span::before {
  top: 13px;
}

.delivery-ticket-stack span::after {
  top: 25px;
}

.ticket-green {
  background: #2f9a45;
}

.ticket-blue {
  background: #2087be;
}

.ticket-yellow {
  background: #e5d217;
}

.ticket-white {
  background: #f8f8f0;
}

.delivery-board-shell .delivery-board-proposal {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(216, 224, 220, 0.95);
  border-radius: 8px;
  background: #f7faf9;
  color: var(--ink);
  box-shadow: 0 16px 42px rgba(21, 32, 29, 0.08);
}

.delivery-dashboard-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 230px;
  gap: 18px;
  align-items: stretch;
  min-height: 154px;
  padding: 20px;
  border: 1px solid rgba(14, 77, 82, 0.18);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(10, 116, 111, 0.94), rgba(24, 63, 89, 0.96)),
    #173f59;
  color: #ffffff;
}

.delivery-dashboard-hero .eyebrow {
  color: #bfeee8;
}

.delivery-dashboard-hero h3,
.delivery-dashboard-hero p,
.delivery-dashboard-hero span {
  margin: 0;
}

.delivery-dashboard-hero h3 {
  max-width: 780px;
  font-size: 2.35rem;
  line-height: 1.04;
  font-weight: 1000;
}

.delivery-dashboard-hero div:first-child {
  display: grid;
  align-content: center;
  gap: 8px;
}

.delivery-dashboard-hero div:first-child > span {
  color: #d9ebe8;
  font-size: 1rem;
  font-weight: 760;
}

.delivery-period-card {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 4px;
  min-width: 0;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.12);
  text-align: center;
}

.delivery-period-card span,
.delivery-period-card small {
  color: #d6e9e6;
  font-weight: 850;
}

.delivery-period-card span {
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.delivery-period-card strong {
  color: #ffffff;
  font-size: 3rem;
  line-height: 1;
  font-weight: 1000;
}

.delivery-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}

.delivery-kpi-card {
  display: grid;
  gap: 6px;
  min-width: 0;
  min-height: 112px;
  padding: 14px;
  border: 1px solid rgba(216, 224, 220, 0.95);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 26px rgba(21, 32, 29, 0.06);
}

.delivery-kpi-card span,
.delivery-kpi-card small {
  color: var(--muted);
  font-weight: 850;
}

.delivery-kpi-card span {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.delivery-kpi-card strong {
  color: var(--ink);
  font-size: 1.95rem;
  line-height: 1;
  font-weight: 1000;
}

.delivery-kpi-card.is-warning strong {
  color: #a96000;
}

.delivery-kpi-card.is-success strong {
  color: #1d744a;
}

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

.delivery-performance-grid.is-single {
  grid-template-columns: 1fr;
}

.delivery-category-card {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(216, 224, 220, 0.95);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 26px rgba(21, 32, 29, 0.06);
}

.delivery-category-card.is-small {
  --delivery-tone: #2f7f9a;
  --delivery-tone-soft: #e7f3f6;
}

.delivery-focus-card {
  min-height: 180px;
}

.delivery-category-head,
.delivery-category-foot,
.delivery-target-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.delivery-category-head span {
  color: var(--delivery-tone);
  font-size: 1.15rem;
  font-weight: 1000;
  text-transform: uppercase;
}

.delivery-category-head strong {
  color: var(--ink);
  font-size: 2rem;
  line-height: 1;
  font-weight: 1000;
}

.delivery-target-row {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--delivery-tone-soft);
}

.delivery-target-row span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.delivery-target-row strong {
  color: var(--ink);
  font-weight: 1000;
  text-align: right;
}

.delivery-progress-track {
  height: 14px;
  overflow: hidden;
  border-radius: 999px;
  background: #e2e9e6;
}

.delivery-progress-track span {
  display: block;
  width: var(--progress);
  height: 100%;
  border-radius: inherit;
  background: var(--delivery-tone);
}

.delivery-category-foot span {
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 850;
}

.delivery-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(390px, 0.82fr);
  gap: 12px;
}

.delivery-visual-panel,
.delivery-insight-panel,
.delivery-table-panel {
  display: grid;
  gap: 16px;
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(216, 224, 220, 0.95);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 26px rgba(21, 32, 29, 0.06);
}

.delivery-insight-panel {
  align-content: start;
  gap: 10px;
  padding-top: 12px;
}

.delivery-section-title {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(280px, 0.95fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.delivery-insight-panel .delivery-section-title {
  align-items: flex-start;
  margin: 0;
}

.delivery-kpi-history-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: #2b3935;
  font-size: 0.84rem;
  font-weight: 900;
  cursor: pointer;
}

.delivery-kpi-history-button:hover {
  border-color: rgba(13, 121, 112, .48);
  box-shadow: 0 8px 18px rgba(17, 24, 23, .08);
}

.delivery-section-title p,
.delivery-section-title h4 {
  margin: 0;
}

.delivery-section-title h4 {
  color: var(--ink);
  font-size: 1.12rem;
  font-weight: 1000;
}

.delivery-slot-search {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.delivery-slot-search span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 900;
  text-transform: uppercase;
}

.delivery-slot-search input {
  width: 100%;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 0.94rem;
  font-weight: 850;
}

.delivery-slot-search input:focus {
  outline: 2px solid rgba(10, 116, 111, .22);
  border-color: rgba(10, 116, 111, .58);
}

.delivery-section-title > span {
  flex: 0 0 auto;
  padding: 6px 10px;
  border-radius: 999px;
  background: #edf4f2;
  color: #34615b;
  font-size: 0.8rem;
  font-weight: 900;
}

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

.delivery-space-summary span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid rgba(216, 224, 220, 0.95);
  border-radius: 8px;
  background: #f7faf9;
}

.delivery-space-summary strong {
  color: var(--ink);
  font-size: 1.55rem;
  line-height: 1;
  font-weight: 1000;
}

.delivery-space-summary small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.delivery-slot-board {
  display: grid;
  grid-template-columns: repeat(10, minmax(74px, 1fr));
  gap: 6px;
  align-content: start;
  min-height: 560px;
  max-height: 68vh;
  overflow: auto;
  padding: 14px;
  border: 1px solid rgba(183, 197, 191, 0.95);
  border-radius: 8px;
  background:
    repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0) 0 41px, rgba(80, 96, 90, 0.15) 42px 43px),
    linear-gradient(180deg, #fbfdfc 0%, #eef4f1 100%);
}

.delivery-slot {
  display: grid;
  align-content: center;
  min-width: 0;
  min-height: 78px;
  padding: 5px;
  border: 1px dashed rgba(119, 137, 130, 0.42);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.58);
  color: #7c8b86;
  font: inherit;
  text-align: left;
}

.delivery-slot.is-marker {
  place-items: center;
  padding: 0;
  font-weight: 1000;
}

.delivery-slot.is-filled {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  box-shadow: none;
}

.delivery-slot.is-filled:hover {
  transform: translateY(-1px);
}

.delivery-mini-ticket {
  display: grid;
  width: 100%;
  min-height: 100%;
  overflow: hidden;
  border: 1px solid #151515;
  background: #ffffff;
  box-shadow: 0 5px 12px rgba(22, 44, 39, 0.11);
}

.delivery-mini-row {
  display: grid;
  grid-template-columns: 0.62fr 1fr 0.62fr 1fr;
  min-height: 18px;
  border-bottom: 1px solid #151515;
}

.delivery-mini-wide {
  display: grid;
  grid-template-columns: 0.76fr minmax(0, 1fr);
  min-height: 19px;
}

.delivery-mini-row span,
.delivery-mini-wide span {
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 2px;
  border-right: 1px solid #151515;
  background: var(--ticket-color, #d8e0dc);
  color: #15201d;
  font-size: 0.4rem;
  line-height: 1.05;
  font-weight: 1000;
  text-transform: uppercase;
}

.delivery-mini-row strong,
.delivery-mini-wide strong {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 2px 3px;
  border-right: 1px solid #151515;
  background: #ffffff;
  color: #151515;
  font-size: 0.48rem;
  line-height: 1;
  font-weight: 900;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.delivery-mini-row strong:last-child,
.delivery-mini-wide strong:last-child {
  border-right: 0;
}

.delivery-slot.is-ok {
  outline: 2px solid rgba(38, 121, 78, 0.18);
}

.delivery-slot.is-watch,
.delivery-slot.is-review {
  outline: 2px solid rgba(199, 134, 0, 0.22);
}

.delivery-slot.is-pending {
  outline: 2px solid rgba(109, 125, 120, 0.18);
}

.delivery-slot.is-over-capacity {
  outline: 3px solid rgba(201, 48, 48, 0.8);
  background: rgba(201, 48, 48, 0.12);
}

.delivery-slot.is-over-capacity .delivery-mini-ticket {
  border-color: #a51f1f;
  box-shadow: 0 0 0 3px rgba(201, 48, 48, 0.26), 0 8px 18px rgba(116, 18, 18, 0.2);
}

.delivery-slot.is-over-capacity .delivery-mini-row span,
.delivery-slot.is-over-capacity .delivery-mini-wide span {
  background: #c93030;
  color: #ffffff;
}

.delivery-slot > span,
.delivery-slot > strong,
.delivery-slot > small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.delivery-slot > span {
  font-size: 0.78rem;
  font-weight: 1000;
}

.delivery-slot > strong {
  font-size: 0.92rem;
  line-height: 1.05;
  font-weight: 1000;
}

.delivery-slot > small {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 850;
}

.delivery-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: flex-end;
}

.delivery-chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 900;
}

.delivery-chart-legend b {
  width: 14px;
  height: 14px;
  border-radius: 4px;
  background: #d8e0dc;
}

.delivery-chart-legend span:nth-child(2) b {
  background: #2f7f9a;
}

.delivery-chart-legend span:nth-child(3) b {
  background: #c78600;
}

.delivery-chart-legend .is-over-capacity b {
  background: #c93030;
}

.delivery-insight-list {
  display: grid;
  gap: 10px;
}

.delivery-insight-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-self: start;
}

.delivery-operational-kpi {
  position: relative;
  display: grid;
  gap: 12px;
  min-height: 150px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 18px rgba(17, 24, 23, .05);
  cursor: pointer;
}

.delivery-operational-kpi:hover,
.delivery-operational-kpi.is-selected {
  border-color: rgba(13, 121, 112, .48);
  box-shadow: 0 8px 20px rgba(17, 24, 23, .1);
}

.delivery-operational-kpi.is-selected {
  background: #f3f8ff;
}

.delivery-operational-kpi header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
}

.delivery-operational-kpi header strong {
  color: var(--ink);
  font-size: 0.96rem;
  line-height: 1.14;
  font-weight: 1000;
}

.delivery-kpi-rank {
  display: grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  border-radius: 6px;
  background: #225bb2;
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 1000;
}

.delivery-operational-kpi header i {
  width: 12px;
  height: 12px;
  margin-top: 2px;
  border-radius: 50%;
  background: #c72f32;
}

.delivery-operational-kpi.is-good header i {
  background: #2d854f;
}

.delivery-operational-kpi.is-warning header i {
  background: #c98612;
}

.delivery-kpi-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.delivery-kpi-values span {
  min-width: 0;
}

.delivery-kpi-values small,
.delivery-kpi-card-note {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.delivery-kpi-values b {
  display: block;
  margin-top: 4px;
  color: #101817;
  font-size: 1.64rem;
  line-height: 1;
  font-weight: 1000;
  overflow-wrap: anywhere;
}

.delivery-operational-kpi.is-good .delivery-kpi-values span:first-child b {
  color: #167245;
}

.delivery-operational-kpi.is-warning .delivery-kpi-values span:first-child b {
  color: #c98612;
}

.delivery-operational-kpi.is-bad .delivery-kpi-values span:first-child b {
  color: #c72f32;
}

.delivery-kpi-card-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 92px;
  align-items: end;
  gap: 10px;
}

.delivery-kpi-progress {
  display: block;
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e4e9e7;
}

.delivery-kpi-progress b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #c72f32;
}

.delivery-operational-kpi.is-good .delivery-kpi-progress b {
  background: #2d854f;
}

.delivery-operational-kpi.is-warning .delivery-kpi-progress b {
  background: #c98612;
}

.delivery-kpi-sparkline {
  width: 92px;
  height: 42px;
}

.delivery-kpi-sparkline polyline {
  fill: none;
  stroke: #c72f32;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.delivery-operational-kpi.is-good .delivery-kpi-sparkline polyline {
  stroke: #2d854f;
}

.delivery-operational-kpi.is-warning .delivery-kpi-sparkline polyline {
  stroke: #c98612;
}

.delivery-kpi-card-note {
  align-self: end;
}

.delivery-kpi-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(8, 20, 18, .42);
}

.process-summary-modal {
  position: fixed;
  inset: 0;
  z-index: 82;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(8, 20, 18, 0.48);
  backdrop-filter: blur(3px);
}

.process-summary-window {
  width: min(1120px, 94vw);
  max-height: 90vh;
  overflow: hidden;
  border: 1px solid rgba(16, 35, 31, 0.2);
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 34px 90px rgba(9, 20, 18, 0.3);
}

.process-summary-window.is-maximized {
  width: calc(100vw - 28px);
  max-height: calc(100vh - 28px);
}

.process-summary-window.is-minimized .process-summary-window-body,
.process-summary-window.is-minimized .process-summary-window-footer {
  display: none;
}

.process-summary-window-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: 64px;
  padding: 0 0 0 20px;
  border-bottom: 1px solid rgba(16, 35, 31, 0.12);
  background: linear-gradient(180deg, #f7faf9 0%, #edf3f1 100%);
}

.process-summary-window-title {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.process-summary-window-app {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #0a746f;
  color: #ffffff;
  font-size: 0.78rem;
  font-weight: 1000;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.process-summary-window-title strong,
.process-summary-window-title small {
  display: block;
}

.process-summary-window-title strong {
  color: #10231f;
  font-size: 1.35rem;
  font-weight: 1000;
}

.process-summary-window-title small {
  color: #5a6c65;
  font-size: 0.92rem;
  font-weight: 800;
}

.process-summary-window-controls {
  display: flex;
  align-self: stretch;
}

.process-summary-window-controls button {
  width: 54px;
  border: 0;
  border-left: 1px solid rgba(16, 35, 31, 0.1);
  background: transparent;
  color: #10231f;
  font-size: 1.2rem;
  font-weight: 900;
  cursor: pointer;
}

.process-summary-window-controls button:hover {
  background: rgba(10, 116, 111, 0.1);
}

.process-summary-window-controls button[data-process-summary-window-action="close"]:hover {
  background: #c73436;
  color: #ffffff;
}

.process-summary-window-body {
  display: grid;
  gap: 18px;
  max-height: calc(90vh - 132px);
  overflow: auto;
  padding: 22px;
  background: linear-gradient(180deg, #f8fbfa 0%, #eef4f2 100%);
}

.process-summary-window-hero article {
  display: grid;
  gap: 6px;
  padding: 18px 20px;
  border: 1px solid rgba(16, 35, 31, 0.1);
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 16px 32px rgba(16, 35, 31, 0.08);
}

.process-summary-window-hero span {
  color: #61716b;
  font-size: 0.86rem;
  font-weight: 900;
  text-transform: uppercase;
}

.process-summary-window-hero strong {
  color: #10231f;
  font-size: 2.6rem;
  font-weight: 1000;
  line-height: 1;
}

.process-summary-window-hero small {
  color: #0a746f;
  font-size: 1rem;
  font-weight: 850;
}

.process-summary-window-list {
  display: grid;
  gap: 12px;
}

.process-summary-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid rgba(16, 35, 31, 0.1);
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(16, 35, 31, 0.06);
}

.process-summary-item-main,
.process-summary-item-side {
  display: grid;
  gap: 4px;
}

.process-summary-item-main small,
.process-summary-item-side small {
  color: #5f6e68;
  font-size: 0.86rem;
  font-weight: 850;
}

.process-summary-item-main strong {
  color: #10231f;
  font-size: 1.08rem;
  font-weight: 1000;
}

.process-summary-item-main span,
.process-summary-item-side span {
  color: #29413a;
  font-size: 0.96rem;
  font-weight: 820;
}

.process-summary-item-side {
  justify-items: end;
  text-align: right;
}

.process-summary-window-empty {
  display: grid;
  place-items: center;
  min-height: 220px;
  padding: 24px;
  border: 1px dashed rgba(16, 35, 31, 0.18);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
  color: #5f6e68;
  font-size: 1rem;
  font-weight: 900;
}

.process-summary-window-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
  border-top: 1px solid rgba(16, 35, 31, 0.12);
  background: #f7faf9;
  color: #5f6e68;
  font-size: 0.92rem;
  font-weight: 800;
}

.delivery-kpi-dialog {
  position: relative;
  display: grid;
  gap: 19px;
  width: min(1485px, 98vw);
  max-height: 96vh;
  overflow: auto;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 26px 80px rgba(9, 20, 18, .28);
}

.delivery-kpi-close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: #f1f5f4;
  color: var(--ink);
  font-size: 1.5rem;
  font-weight: 900;
  cursor: pointer;
}

.delivery-kpi-print {
  display: grid;
  place-items: center;
  min-width: 64px;
  height: 56px;
  align-self: end;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f1f5f4;
  color: var(--ink);
  font-size: 1.9rem;
  font-weight: 900;
  cursor: pointer;
}

.delivery-kpi-print svg {
  width: 44px;
  height: 44px;
}

.delivery-kpi-print:hover,
.delivery-kpi-close:hover {
  background: #dfe8e5;
}

.delivery-kpi-dialog-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: end;
  padding-right: 44px;
}

.delivery-kpi-dialog-head h3 {
  margin: 0;
  color: #164ca3;
  font-size: 2.7rem;
  line-height: 1;
}

.delivery-kpi-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  align-items: end;
}

.delivery-kpi-filter-row label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 1.05rem;
  font-weight: 850;
}

.delivery-kpi-filter-row input,
.delivery-kpi-filter-row select {
  min-height: 54px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #ffffff;
  color: var(--ink);
  font-weight: 850;
  font-size: 1.18rem;
}

.delivery-kpi-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.delivery-kpi-summary-grid article {
  display: grid;
  gap: 9px;
  min-height: 151px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.delivery-kpi-summary-grid span,
.delivery-kpi-summary-grid small {
  color: var(--muted);
  font-weight: 850;
}

.delivery-kpi-summary-grid strong {
  color: #155fbd;
  font-size: 2.55rem;
  line-height: 1;
  font-weight: 1000;
}

.delivery-kpi-summary-grid .is-gap strong {
  color: #c72f32;
}

.delivery-kpi-chart-panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 297px;
  gap: 19px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.delivery-kpi-chart-panel h4 {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--ink);
  font-size: 1.42rem;
}

.delivery-kpi-chart {
  width: 100%;
  min-height: 351px;
}

.delivery-kpi-chart-grid {
  stroke: #e8eeee;
  stroke-width: 1;
}

.delivery-kpi-chart-target {
  stroke: #2f8f45;
  stroke-width: 2;
  stroke-dasharray: 7 6;
}

.delivery-kpi-chart-target-label,
.delivery-kpi-chart-label {
  fill: var(--muted);
  font-size: 18px;
  font-weight: 800;
}

.delivery-kpi-chart-bar {
  fill: #68a7ef;
}

.delivery-kpi-chart-bar.is-empty {
  fill: #eef3f2;
}

.delivery-kpi-chart-line {
  fill: none;
  stroke: #155fbd;
  stroke-width: 4;
}

.delivery-kpi-chart-line.is-comparison {
  stroke: #a8b2b8;
  stroke-width: 3;
}

.delivery-kpi-chart-point {
  fill: #155fbd;
}

.delivery-kpi-side-summary {
  display: grid;
  align-content: start;
  gap: 22px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfc;
  font-size: 1.22rem;
}

.delivery-kpi-side-summary span {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-weight: 850;
}

.delivery-kpi-side-summary b {
  color: var(--ink);
}

.delivery-kpi-footer {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.delivery-kpi-footer span {
  min-height: 68px;
  padding: 19px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfc;
  color: var(--muted);
  font-weight: 850;
  font-size: 1.18rem;
}

/* === 21. PRINT === */
@media print {
  body:has(.delivery-kpi-modal) > *:not(.delivery-kpi-modal) {
    display: none !important;
  }

  .delivery-kpi-modal {
    position: static !important;
    display: block !important;
    padding: 0 !important;
    background: #ffffff !important;
  }

  .delivery-kpi-dialog {
    width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .delivery-kpi-print,
  .delivery-kpi-close {
    display: none !important;
  }
}

.delivery-insight-list article {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  min-width: 0;
  padding: 12px;
  border-radius: 8px;
  background: #f7faf9;
}

.delivery-priority-dot {
  width: 12px;
  height: 12px;
  margin-top: 4px;
  border-radius: 999px;
  background: var(--muted);
}

.delivery-priority-dot.is-red {
  background: #b73234;
}

.delivery-priority-dot.is-amber {
  background: #b27000;
}

.delivery-priority-dot.is-green {
  background: #26794e;
}

.delivery-insight-list strong,
.delivery-insight-list small {
  display: block;
}

.delivery-insight-list strong {
  color: var(--ink);
  font-weight: 1000;
}

.delivery-insight-list small {
  margin-top: 3px;
  color: var(--muted);
  font-weight: 780;
  line-height: 1.35;
}

.delivery-table {
  display: grid;
  gap: 0;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.delivery-table-row {
  display: grid;
  grid-template-columns: 90px minmax(190px, 1fr) 90px 130px 130px 100px;
  min-width: 790px;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
}

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

.delivery-table-row.is-head {
  background: #edf4f2;
  color: #385d58;
  font-size: 0.78rem;
  font-weight: 1000;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.delivery-table-row span,
.delivery-table-row strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.delivery-table-row span {
  color: var(--muted);
  font-weight: 850;
}

.delivery-table-row strong {
  color: var(--ink);
  font-weight: 1000;
}

.delivery-table-row em {
  justify-self: start;
  padding: 5px 8px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 1000;
}

.delivery-table-row em.is-ok {
  background: #e2f4eb;
  color: #1d744a;
}

.delivery-table-row em.is-watch {
  background: #fff1d7;
  color: #935900;
}

.delivery-table-row em.is-review {
  background: #e9f1ff;
  color: #285f9e;
}

.delivery-table-row em.is-pending {
  background: #eef2f1;
  color: #586963;
}

.delivery-table-empty {
  min-width: 790px;
  padding: 18px 14px;
  color: var(--muted);
  font-weight: 900;
  background: #ffffff;
}

.delivered-vehicle-list {
  display: grid;
  gap: 12px;
  padding: 18px;
}

.delivered-vehicle-card {
  display: grid;
  grid-template-columns: minmax(220px, 0.9fr) minmax(260px, 1fr) minmax(260px, 0.95fr);
  gap: 16px;
  align-items: center;
  width: 100%;
  min-height: 92px;
  padding: 16px 18px;
  border: 2px solid rgba(12, 126, 116, 0.34);
  border-radius: 8px;
  background: linear-gradient(135deg, #f6fffd 0%, #eef9f6 100%);
  color: var(--ink);
  text-align: left;
  box-shadow: 0 10px 26px rgba(12, 126, 116, 0.08);
}

.delivered-vehicle-card:hover,
.delivered-vehicle-card:focus-visible {
  border-color: #087e74;
  box-shadow: 0 14px 30px rgba(12, 126, 116, 0.16);
}

.delivered-vehicle-card div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.delivered-vehicle-card strong {
  color: #087e74;
  font-size: 1.25rem;
  font-weight: 1000;
}

.delivered-vehicle-card span,
.delivered-vehicle-card small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.delivered-vehicle-card span {
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 850;
}

.delivered-vehicle-card small {
  color: var(--muted);
  font-size: 0.98rem;
  font-weight: 760;
}

.delivered-vehicle-empty {
  display: grid;
  place-items: center;
  min-height: 180px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: #fbfdfc;
  color: var(--muted);
  font-size: 1.1rem;
  font-weight: 850;
}

.delivered-vehicle-modal {
  position: fixed;
  inset: 0;
  z-index: 94;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(17, 26, 23, 0.36);
}

.delivered-vehicle-detail {
  width: min(720px, calc(100vw - 48px));
  border: 1px solid rgba(12, 126, 116, 0.24);
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 24px 80px rgba(17, 26, 23, 0.28);
  overflow: hidden;
}

.delivered-vehicle-detail.is-ticket {
  width: min(860px, calc(100vw - 48px));
}

.delivered-vehicle-detail header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #f6fffd 0%, #eef9f6 100%);
}

.delivered-vehicle-detail header p,
.delivered-vehicle-detail header h3 {
  margin: 0;
}

.delivered-vehicle-detail header p {
  color: #087e74;
  font-size: 0.78rem;
  font-weight: 1000;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.delivered-vehicle-detail header h3 {
  margin-right: auto;
  color: var(--ink);
  font-size: 1.55rem;
  font-weight: 1000;
}

.delivered-vehicle-detail-grid {
  display: grid;
  grid-template-columns: minmax(150px, 0.5fr) minmax(0, 1fr);
  gap: 12px 18px;
  padding: 22px;
}

.delivered-vehicle-detail-grid span {
  color: var(--muted);
  font-weight: 900;
}

.delivered-vehicle-detail-grid strong {
  min-width: 0;
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 950;
}

.delivered-vehicle-ticket-wrap {
  padding: 22px;
  background: #f7faf9;
}

.delivered-vehicle-ticket-wrap .ebp-ticket {
  max-width: 820px;
  margin: 0 auto;
  box-shadow: none;
}

.income-status-modal {
  position: fixed;
  inset: 0;
  z-index: 95;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(17, 26, 23, 0.38);
}

.income-status-detail {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(920px, calc(100vw - 48px));
  max-height: min(760px, calc(100vh - 48px));
  border: 1px solid rgba(12, 126, 116, 0.24);
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 24px 80px rgba(17, 26, 23, 0.28);
  overflow: hidden;
}

.income-status-detail header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 16px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #f6fffd 0%, #eef9f6 100%);
}

.income-status-detail header p,
.income-status-detail header h3 {
  margin: 0;
}

.income-status-detail header p {
  color: #087e74;
  font-size: 0.78rem;
  font-weight: 1000;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.income-status-detail header h3 {
  color: var(--ink);
  font-size: 1.55rem;
  font-weight: 1000;
}

.income-status-detail header > strong {
  display: inline-grid;
  place-items: center;
  min-width: 44px;
  min-height: 36px;
  padding: 4px 12px;
  border-radius: 999px;
  background: #10231f;
  color: #ffffff;
  font-size: 1.1rem;
  font-weight: 1000;
}

.income-status-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  align-content: start;
  gap: 12px;
  min-height: 0;
  padding: 18px;
  overflow-y: auto;
}

.income-status-list .income-appointment-card {
  min-height: 120px;
  cursor: pointer;
}

.income-status-empty {
  grid-column: 1 / -1;
  display: grid;
  place-items: center;
  min-height: 160px;
  border: 2px dashed rgba(18, 45, 38, 0.14);
  border-radius: 8px;
  background: #f7f9f6;
  color: var(--muted);
  font-size: 1rem;
  font-weight: 900;
}

.ready-delivery-loading {
  display: grid;
  place-items: center;
  min-height: 120px;
  padding: 16px;
  border: 2px dashed rgba(18, 45, 38, 0.14);
  border-radius: 8px;
  background: #f7f9f6;
  color: var(--muted);
  font-size: 1rem;
  font-weight: 900;
  text-align: center;
}

.delivered-confirm-modal {
  position: fixed;
  inset: 0;
  z-index: 96;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(17, 26, 23, 0.42);
}

/* === 17. HISTORY MODULE === */
.history-panel {
  display: grid;
  gap: 16px;
}

.history-filter-bar {
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 0.16fr)) minmax(240px, 1fr) auto auto auto;
  gap: 12px;
  align-items: end;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.history-filter-bar label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 850;
}

.history-filter-bar input {
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
}

.history-search-field {
  min-width: 0;
}

.history-clear-button,
.history-back-button {
  min-height: 44px;
  padding: 0 18px;
  border: 0;
  border-radius: 8px;
  color: #ffffff;
  font-size: 0.96rem;
  font-weight: 900;
  cursor: pointer;
}

.history-clear-button {
  background: #6f7d78;
}

.history-back-button {
  background: #0f1715;
}

.history-clear-button:hover,
.history-back-button:hover {
  filter: brightness(0.94);
}

.history-log-list {
  min-height: 520px;
}

.history-dossier-shell {
  display: grid;
  grid-template-columns: 152px minmax(0, 1fr);
  min-height: 560px;
  overflow: hidden;
  border: 1px solid rgba(119, 153, 149, 0.45);
  border-radius: 12px;
  background:
    radial-gradient(circle at 20% 0%, rgba(45, 159, 204, 0.18), transparent 32%),
    linear-gradient(135deg, #e9f7fb 0%, #f8fcfb 48%, #e5f2ee 100%);
  box-shadow: 0 24px 60px rgba(24, 50, 58, 0.18);
}

.history-dossier-list {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 24px 10px 24px 14px;
  border-right: 1px solid rgba(119, 153, 149, 0.34);
  background: rgba(174, 218, 235, 0.45);
}

.history-dossier-tab {
  display: grid;
  gap: 6px;
  min-height: 84px;
  padding: 14px 10px;
  border: 1px solid rgba(49, 85, 91, 0.18);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.64);
  color: #17312c;
  text-align: left;
  box-shadow: 0 10px 22px rgba(24, 50, 58, 0.08);
  cursor: pointer;
}

.history-dossier-tab::before {
  content: "";
  width: 28px;
  height: 34px;
  border-radius: 5px 5px 4px 4px;
  background: linear-gradient(135deg, #62717c, #d9e7eb);
  box-shadow: inset -7px 0 0 rgba(255, 255, 255, 0.22);
}

.history-dossier-tab.active {
  border-color: rgba(12, 140, 95, 0.5);
  background: linear-gradient(135deg, #20b66f, #ebfff5);
  box-shadow: 0 14px 28px rgba(12, 140, 95, 0.18);
}

.history-dossier-tab.active::before {
  background: linear-gradient(135deg, #0d9b61, #58d68d);
}

.history-dossier-tab span {
  color: #0f221e;
  font-size: 0.98rem;
  font-weight: 900;
  line-height: 1.05;
}

.history-dossier-tab small {
  color: #4f615d;
  font-size: 0.74rem;
  line-height: 1.2;
}

.history-dossier-detail {
  display: grid;
  align-content: start;
  gap: 12px;
  margin: 20px;
  padding: 18px;
  border: 1px solid rgba(119, 153, 149, 0.45);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 18px 42px rgba(24, 50, 58, 0.14);
  backdrop-filter: blur(8px);
}

.history-dossier-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(119, 153, 149, 0.3);
}

.history-dossier-title span {
  color: #0b5f8d;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.history-dossier-title h3 {
  margin: 4px 0 0;
  color: #0d211d;
  font-size: 1.34rem;
  line-height: 1;
}

.history-dossier-title strong {
  color: #0d211d;
  font-size: 1rem;
  text-align: right;
  text-transform: uppercase;
}

.history-dossier-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
}

.history-dossier-toolbar > strong {
  color: #0d211d;
  font-size: 1rem;
  font-weight: 900;
  text-transform: uppercase;
}

.history-type-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  color: #21312c;
  font-size: 0.82rem;
  font-weight: 850;
}

.history-type-strip span,
.history-event-counter {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.history-type-strip b {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: #e9f5f3;
  color: #0b5f8d;
  font-size: 0.8rem;
}

.history-event-counter {
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: #138a54;
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 900;
}

.history-vehicle-meta,
.history-vehicle-dates {
  display: grid;
  grid-template-columns: repeat(3, minmax(120px, 1fr));
  gap: 8px;
}

.history-vehicle-meta span,
.history-vehicle-dates span {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfc;
  color: #21312c;
  font-size: 0.9rem;
  font-weight: 850;
}

.history-vehicle-dates small,
.history-vehicle-dates strong {
  display: block;
}

.history-vehicle-dates small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.history-vehicle-dates strong {
  margin-top: 4px;
  color: #0b5f8d;
  font-size: 1rem;
}

.history-vehicle-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(119, 153, 149, 0.34);
  border-radius: 8px;
  background: rgba(233, 247, 251, 0.58);
}

.history-vehicle-summary strong {
  color: #0d211d;
  font-size: 1rem;
  text-transform: uppercase;
}

.history-vehicle-summary span {
  color: #4f615d;
  font-size: 0.92rem;
  font-weight: 850;
  text-align: right;
}

.history-movement-window {
  display: grid;
  min-height: 260px;
  overflow: hidden;
  border: 1px solid rgba(119, 153, 149, 0.42);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
}

.history-movement-head {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) 150px;
  gap: 16px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(119, 153, 149, 0.34);
  background: rgba(233, 247, 251, 0.72);
  color: #697974;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.history-timeline {
  display: grid;
  align-content: start;
  max-height: 430px;
  overflow-y: auto;
}

.history-event {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) 150px;
  gap: 16px;
  align-items: start;
  min-height: 78px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(119, 153, 149, 0.28);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.72);
  text-align: left;
}

.history-event:last-child {
  border-bottom: 0;
}

.history-event:hover {
  background: rgba(233, 247, 251, 0.56);
}

.history-event time {
  color: #0b5f8d;
  font-size: 0.9rem;
  font-weight: 900;
  line-height: 1.25;
}

.history-event strong,
.history-event span,
.history-event small,
.history-event p {
  min-width: 0;
}

.history-event strong {
  display: block;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.2;
}

.history-event span,
.history-event small,
.history-event p {
  display: block;
  margin: 3px 0 0;
  color: var(--muted);
  line-height: 1.35;
}

.history-event p {
  color: #33413d;
  font-size: 0.9rem;
}

.history-event aside {
  display: grid;
  justify-items: end;
  gap: 4px;
  text-align: right;
}

.history-event aside span {
  margin: 0;
  color: #21312c;
  font-size: 0.86rem;
  font-weight: 850;
}

.history-event aside small {
  margin: 0;
  color: #697974;
  font-size: 0.74rem;
  font-weight: 900;
  text-transform: uppercase;
}

.history-empty {
  display: grid;
  gap: 8px;
  place-items: center;
  min-height: 220px;
  padding: 24px;
  border: 2px dashed var(--line);
  border-radius: 8px;
  background: #fbfdfc;
  color: var(--muted);
  text-align: center;
}

.history-empty strong {
  color: var(--ink);
  font-size: 1.12rem;
}

.history-empty.compact {
  min-height: 90px;
  padding: 16px;
}

@media (max-width: 920px) {
  .history-filter-bar,
  .history-vehicle-meta,
  .history-vehicle-dates {
    grid-template-columns: 1fr;
  }

  .history-dossier-shell {
    grid-template-columns: 1fr;
  }

  .history-dossier-list {
    grid-auto-flow: column;
    grid-auto-columns: 128px;
    overflow-x: auto;
    border-right: 0;
    border-bottom: 1px solid rgba(119, 153, 149, 0.34);
  }

  .history-dossier-title,
  .history-dossier-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .history-movement-head {
    display: none;
  }

  .history-event {
    grid-template-columns: 1fr;
  }

  .history-event aside {
    justify-items: start;
    text-align: left;
  }
}

.delivered-confirm-card {
  width: min(560px, calc(100vw - 48px));
  padding: 22px;
  border: 1px solid rgba(12, 126, 116, 0.26);
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 28px 90px rgba(17, 26, 23, 0.32);
}

.delivered-confirm-card header {
  display: grid;
  gap: 4px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.delivered-confirm-card header p,
.delivered-confirm-card header h3,
.delivered-confirm-card header strong,
.delivered-confirm-message {
  margin: 0;
}

.delivered-confirm-card header p {
  color: #087e74;
  font-size: 0.78rem;
  font-weight: 1000;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.delivered-confirm-card header h3 {
  color: var(--ink);
  font-size: 1.6rem;
  font-weight: 1000;
}

.delivered-confirm-card header strong {
  color: var(--muted);
  font-size: 1rem;
  font-weight: 900;
}

.delivered-confirm-message {
  padding: 20px 0;
  color: var(--ink);
  font-size: 1.16rem;
  font-weight: 900;
}

.delivered-confirm-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.delivered-confirm-actions button {
  min-height: 50px;
  font-size: 1.05rem;
  font-weight: 1000;
}

.no-show-followup-list {
  display: grid;
  gap: 12px;
  padding: 18px;
}

.no-show-card {
  display: grid;
  grid-template-columns: minmax(320px, 1.24fr) minmax(300px, 1.08fr) minmax(300px, 1.08fr) minmax(390px, 1.18fr) minmax(430px, 1.16fr);
  gap: 18px;
  align-items: center;
  min-height: 118px;
  padding: 18px 20px;
  border: 2px solid rgba(199, 47, 50, 0.36);
  border-radius: 8px;
  background: #fff8f7;
}

.no-show-card-main,
.no-show-card-detail,
.no-show-followup-fields,
.no-show-card-status {
  justify-items: start;
  display: grid;
  gap: 6px;
  min-width: 0;
}

.no-show-followup-fields strong {
  color: var(--ink);
  font-size: 1rem;
  font-weight: 950;
  line-height: 1;
}

.no-show-followup-date-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.no-show-followup-date-grid label {
  display: grid;
  gap: 3px;
}

.no-show-followup-date-grid label span {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 900;
  line-height: 1;
}

.no-show-followup-date-grid input {
  width: 100%;
  min-height: 34px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #ffffff;
  color: var(--ink);
  font-size: .82rem;
  font-weight: 850;
}

.no-show-kicker {
  color: #8f2024;
  font-size: 0.92rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.no-show-card strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 1.24rem;
  font-weight: 950;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.no-show-card span,
.no-show-card small {
  overflow: hidden;
  color: var(--muted);
  font-size: 1rem;
  font-weight: 760;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.no-show-state {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  background: #ffe2df;
  color: #8f2024;
  font-size: 0.92rem;
  font-weight: 950;
  text-transform: uppercase;
}

.no-show-state.is-contacted {
  background: #fff0bf;
  color: #6f5200;
}

.no-show-state.is-rescheduled {
  background: #e3f1f0;
  color: var(--accent);
}

.no-show-state.is-closed {
  background: #e8efec;
  color: #52635d;
}

.no-show-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
}

.no-show-actions .ghost-button,
.no-show-actions .primary-button,
.no-show-actions .danger-button {
  min-height: 36px;
  padding: 0 9px;
  font-size: 0.84rem;
  white-space: nowrap;
  flex: 0 0 auto;
}

.no-show-empty {
  display: grid;
  place-items: center;
  min-height: 180px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: #fbfdfc;
  color: var(--muted);
  font-size: 1.12rem;
  font-weight: 850;
}

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

  .no-show-card-status {
    grid-column: 1 / -1;
  }
}

/* === 19. MODALS & FORMS === */
.vehicle-process-form {
  display: grid;
  align-content: start;
  gap: 14px;
}

.vehicle-process-selected {
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #eef6f5;
  color: var(--accent);
  font-size: 1.12rem;
  font-weight: 900;
}

.appointment-board-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  min-width: 0;
}

.appointment-board-head h3 {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.15;
}

.appointment-board-head span {
  color: var(--muted);
  display: block;
  margin-top: 4px;
  font-size: 0.88rem;
  line-height: 1.2;
}

.appointment-board-number {
  flex: 0 0 auto;
  min-width: 42px;
  font-size: 1.8rem;
  font-weight: 900;
  line-height: 1;
  text-align: right;
}

.appointment-board-description {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 760;
  line-height: 1.18;
}

.appointment-board-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.appointment-board-list li {
  display: grid;
  gap: 2px;
  min-height: 46px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  font-size: 0.9rem;
  line-height: 1.16;
}

.appointment-board-list strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.appointment-board-list span {
  color: var(--muted);
  font-size: 0.86rem;
}

.appointment-ticket-list {
  display: grid;
  gap: 6px;
}

.two-column {
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.85fr);
  align-items: start;
}

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

.form-grid label,
.process-fields label {
  display: grid;
  gap: 9px;
  color: var(--muted);
  font-size: 1.04rem;
  font-weight: 750;
}

.form-grid .wide,
.form-actions.wide {
  grid-column: 1 / -1;
}

.config-subsection {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfc;
}

.config-subsection h3 {
  margin: 0;
  font-size: 1.22rem;
}

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

.form-grid input,
.form-grid select,
.form-grid textarea,
.process-card input,
.process-card select,
.technician-card input,
.technician-card select {
  width: 100%;
  min-height: 56px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 680;
  outline: 0;
}

#configForm select[name="shiftCount"] {
  height: 66px;
  min-height: 66px;
  padding: 0 18px;
  font-size: 1.42rem;
  font-weight: 950;
  line-height: 1.1;
  box-sizing: border-box;
}

#orderForm {
  grid-template-columns: 1fr;
  align-content: start;
  gap: 14px;
  min-height: 0;
  padding: 18px 22px 22px;
  overflow: auto;
}

.order-form-section {
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfc;
}

.order-form-section:first-child {
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.order-form-section h3 {
  margin: 0;
  color: var(--accent-2);
  font-size: 1.2rem;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.order-client-section {
  grid-column: 1 / -1;
}

.order-schedule-section {
  grid-column: 1 / -1;
}

.order-control-section {
  grid-column: 1 / -1;
}

.order-notes-section {
  grid-column: 1 / -1;
}

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

.order-client-section .order-form-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

/* P2-F-1 audit: order-form layout now rides on stable field classes instead of
   structural label:has(...) selectors so DOM wrappers can evolve safely. */
.order-client-section .order-field-express,
.order-client-section .order-field-ht,
.order-client-section .order-field-customer,
.order-client-section .order-field-phone {
  grid-column: span 3;
}

.order-client-section .order-field-brand {
  grid-column: span 2;
  order: 5;
}

.order-client-section .order-field-model {
  grid-column: span 2;
  order: 6;
}

.order-client-section .order-field-plate {
  grid-column: span 2;
  order: 7;
}

.order-client-section .order-field-color {
  grid-column: span 2;
  order: 8;
}

.order-client-section .order-field-advisor {
  grid-column: span 2;
  order: 9;
}

.order-advisor-history-group {
  grid-column: span 4;
  order: 9;
  display: grid;
  grid-template-columns: minmax(0, 13fr) minmax(132px, 7fr);
  gap: 12px;
  align-items: end;
}

.order-history-button {
  grid-column: span 2;
  order: 10;
  align-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 16px;
  border: 1px solid #168db9;
  border-radius: 8px;
  background:
    radial-gradient(circle at 82% 18%, rgba(255, 255, 255, 0.55), transparent 30%),
    linear-gradient(145deg, #72d8f5 0%, #2baed8 48%, #107da9 100%);
  color: #ffffff;
  font-size: 1.22rem;
  font-weight: 950;
  letter-spacing: 0.03em;
  text-shadow: 0 1px 2px rgba(5, 49, 67, 0.45);
  box-shadow:
    inset 2px 2px 0 rgba(255, 255, 255, 0.42),
    inset -3px -4px 0 rgba(6, 82, 112, 0.28),
    0 8px 16px rgba(12, 107, 145, 0.24);
}

.order-history-button:hover {
  background:
    radial-gradient(circle at 82% 18%, rgba(255, 255, 255, 0.58), transparent 30%),
    linear-gradient(145deg, #7de0fa 0%, #20a7d3 48%, #0d7099 100%);
}

.order-advisor-history-group .order-field-advisor,
.order-advisor-history-group .order-history-button {
  grid-column: auto;
  order: initial;
}

.order-advisor-history-group .order-history-button {
  width: 100%;
}

.order-history-modal {
  position: fixed;
  inset: 0;
  z-index: 160;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(8, 22, 19, 0.42);
}

.order-history-card {
  width: min(760px, 94vw);
  max-height: min(780px, 88vh);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(24, 126, 163, 0.28);
  border-radius: 14px;
  background: #fbfdfc;
  box-shadow: 0 24px 70px rgba(10, 32, 28, 0.28);
}

.order-history-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--border);
  background:
    linear-gradient(135deg, rgba(114, 216, 245, 0.18), rgba(255, 255, 255, 0.86)),
    #ffffff;
}

.order-history-header span {
  color: var(--accent);
  font-size: 0.86rem;
  font-weight: 950;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.order-history-header h3 {
  margin: 3px 0 0;
  color: var(--ink);
  font-size: 1.8rem;
  line-height: 1;
}

.order-history-close {
  width: 44px;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #ffffff;
  color: var(--ink);
  font-size: 1.8rem;
  font-weight: 900;
  line-height: 1;
}

.customer-call-modal {
  position: fixed;
  inset: 0;
  z-index: 170;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(8, 22, 19, 0.44);
}

.customer-call-card {
  display: grid;
  gap: 16px;
  width: min(560px, 94vw);
  padding: 20px;
  border: 1px solid rgba(10, 116, 111, 0.28);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 24px 70px rgba(10, 32, 28, 0.28);
}

.customer-call-header,
.customer-call-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.customer-call-header h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1.55rem;
  line-height: 1;
}

.customer-call-close {
  width: 40px;
  height: 40px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 1.6rem;
  font-weight: 900;
}

.customer-call-note {
  display: grid;
  gap: 8px;
  color: #60706b;
  font-size: 1.06rem;
  font-weight: 850;
}

.customer-call-note textarea {
  min-height: 150px;
  resize: vertical;
  border: 2px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 720;
  line-height: 1.35;
}

.customer-call-footer {
  flex-wrap: wrap;
}

.customer-call-footer span {
  margin-right: auto;
  color: #60706b;
  font-size: 0.95rem;
  font-weight: 850;
}

.damage-report-modal {
  position: fixed;
  inset: 0;
  z-index: 171;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(8, 22, 19, 0.48);
}

.damage-report-card {
  display: grid;
  gap: 20px;
  width: min(880px, calc(100vw - 40px));
  max-height: calc(100vh - 48px);
  padding: 28px 28px 24px;
  overflow: auto;
  border-radius: 24px;
  background: #ffffff;
  box-shadow: 0 24px 64px rgba(10, 32, 28, 0.26);
}

.damage-report-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.damage-report-header h3 {
  margin: 0;
  color: #16252b;
  font-size: 2.05rem;
  font-weight: 900;
}

.damage-report-header-car {
  width: 210px;
  max-width: 42%;
  height: auto;
}

.damage-report-table-wrap {
  overflow-x: auto;
}

.damage-report-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.damage-report-table thead th {
  padding: 14px 18px;
  background: #155fa8;
  color: #ffffff;
  font-size: 1.85rem;
  font-weight: 900;
  text-align: center;
}

.damage-report-table thead th:first-child {
  width: 46%;
  text-align: left;
}

.damage-report-table tbody td {
  padding: 15px 18px;
  border-bottom: 1px solid rgba(21, 95, 168, 0.12);
  vertical-align: middle;
}

.damage-report-table tbody tr:nth-child(even) td {
  background: #f4f0e7;
}

.damage-report-piece-label {
  color: #1f2628;
  font-size: 1.8rem;
  font-weight: 760;
}

.damage-report-option-cell {
  text-align: center;
}

.damage-report-option {
  display: inline-grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border: 3px solid #c5c5c5;
  border-radius: 999px;
  background: #ffffff;
  color: transparent;
  font-size: 2rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  transition: transform 140ms ease, border-color 140ms ease, background 140ms ease, box-shadow 140ms ease;
}

.damage-report-option:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(15, 28, 36, 0.12);
}

.damage-report-option.is-selected {
  border-color: #17a57f;
  background: #17a57f;
  color: #ffffff;
  box-shadow: 0 10px 22px rgba(23, 165, 127, 0.22);
}

.damage-report-footer {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
}

.damage-report-cancel,
.damage-report-save {
  min-width: 180px;
  min-height: 62px;
  border-radius: 18px;
  font-size: 1.75rem;
  font-weight: 820;
}

.order-history-list {
  display: grid;
  gap: 10px;
  overflow: auto;
  padding: 16px 20px 20px;
}

.order-history-entry {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 14px;
  padding: 13px 14px;
  border: 1px solid rgba(12, 116, 150, 0.16);
  border-radius: 10px;
  background: linear-gradient(145deg, #ffffff, #eef9fc);
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.82);
}

.order-history-entry time {
  color: #0e779b;
  font-size: 0.92rem;
  font-weight: 900;
}

.order-history-entry strong {
  display: block;
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1.1;
}

.order-history-entry p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 0.94rem;
  font-weight: 750;
  line-height: 1.35;
}

.order-history-entry small {
  display: block;
  margin-top: 6px;
  color: #0e779b;
  font-weight: 850;
}

.order-history-empty {
  padding: 30px;
  border: 1px dashed var(--border);
  border-radius: 10px;
  color: var(--muted);
  font-size: 1.1rem;
  font-weight: 850;
  text-align: center;
}

.appointment-action-row {
  grid-column: 1 / -1;
  order: 11;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.no-show-button,
.reprogram-button,
.appointment-action-row .order-history-button,
.special-color-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 64px;
  min-height: 64px;
  padding: 0 16px;
  border: 1px solid #9f1f23;
  border-radius: 8px;
  background: #c72f32;
  color: #ffffff;
  font-size: 1.28rem;
  font-weight: 950;
  letter-spacing: 0;
  box-shadow: 0 5px 0 rgba(21, 32, 29, 0.22), 0 12px 22px rgba(21, 32, 29, 0.14);
  transform: translateY(0);
  transition: transform 120ms ease, box-shadow 120ms ease, filter 120ms ease, background-color 120ms ease, border-color 120ms ease;
}

.special-color-toggle {
  position: relative;
  border-color: #7c4a00;
  background: #d98a10;
  color: #ffffff !important;
  cursor: pointer;
  user-select: none;
}

.special-color-toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.special-color-toggle span {
  color: #ffffff !important;
  font: inherit;
  line-height: inherit;
}

.no-show-button:active,
.reprogram-button:active,
.appointment-action-row .order-history-button:active,
.special-color-toggle:active {
  transform: translateY(3px);
  box-shadow: 0 1px 0 rgba(21, 32, 29, 0.2), 0 5px 10px rgba(21, 32, 29, 0.14);
}

.special-color-toggle:has(input:checked) {
  border-color: #111111;
  background: #111111;
  color: #ffffff;
  box-shadow: none;
}

.no-show-button:hover {
  background: #a92528;
}

.reprogram-button {
  border-color: #0a746f;
  background: #0a746f;
}

.reprogram-button:hover {
  background: #075f5b;
}

.appointment-action-row .order-history-button {
  border-color: #168db9;
  background: #2baed8;
  box-shadow: none;
  text-shadow: none;
}

.appointment-action-row .order-history-button:hover {
  background: #168db9;
}

.appointment-action-row .no-show-button,
.appointment-action-row .reprogram-button,
.appointment-action-row .order-history-button,
.appointment-action-row .special-color-toggle {
  grid-column: auto !important;
  order: initial !important;
  width: 100%;
  min-width: 0;
  white-space: normal;
  text-align: center;
  line-height: 1.05;
}

.order-schedule-section .order-form-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.order-schedule-section .order-form-grid > .order-field-ingress-group {
  grid-column: 3 / 5;
}

#orderForm label {
  gap: 6px;
  color: #60706b;
  font-size: 1.26rem;
  font-weight: 850;
  line-height: 1.15;
  min-width: 0;
}

.vehicle-process-form label {
  display: grid;
  gap: 6px;
  color: #60706b;
  font-size: 1.05rem;
  font-weight: 850;
  line-height: 1.15;
  min-width: 0;
}

#orderForm input,
#orderForm select,
#orderForm textarea,
.vehicle-process-form input,
.vehicle-process-form select,
.vehicle-process-form textarea {
  min-height: 54px;
  padding: 9px 12px;
  font-size: 1.4rem;
  font-weight: 780;
  line-height: 1.2;
}

#orderForm .order-field-ingress-group {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 6px;
  border: 2px solid #d7a100;
  border-radius: 8px;
  background: #fff2a8;
  min-width: 0;
}

#orderForm .order-field-ingress-group .order-field-ingress {
  flex: 1 1 auto;
}

#orderForm .order-field-ingress-group .order-field-ingress-time {
  flex: 1 1 auto;
}

#orderForm .order-field-ingress-group label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

#orderForm .order-field-ingress-group .order-field-ingress-time {
  white-space: nowrap;
}

#orderForm .order-field-ingress {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#orderForm .order-field-ingress .ingress-date-input,
#orderForm .order-field-ingress-time .ingress-time-input {
  border-color: #a97800;
  background: #f3d04d;
  color: #121b18;
  font-weight: 950;
  box-shadow: inset 0 0 0 2px rgba(169, 120, 0, 0.18);
  min-width: 0;
  width: 100%;
}

#orderForm .order-field-ingress .ingress-date-input:focus,
#orderForm .order-field-ingress-time .ingress-time-input:focus {
  border-color: #7a5800;
  outline: 3px solid rgba(243, 208, 77, 0.36);
  outline-offset: 1px;
}

.order-communications-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(220px, 0.9fr);
  gap: 20px;
  align-items: end;
}

.order-communications-column {
  display: grid;
  gap: 10px;
}

.order-communications-column.is-damage {
  justify-items: stretch;
}

.order-communications-title {
  color: #60706b;
  font-size: 1.06rem;
  font-weight: 850;
}

.customer-call-dots {
  display: grid;
  grid-template-columns: repeat(5, minmax(42px, 1fr));
  gap: 8px;
  min-height: 54px;
  align-items: center;
}

.damage-report-trigger {
  display: grid;
  justify-items: center;
  gap: 6px;
  min-height: 92px;
  padding: 12px 16px 10px;
  border: 1px solid rgba(18, 76, 133, 0.18);
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #f4f8fb 100%);
  color: #40534f;
  cursor: pointer;
  box-shadow: 0 8px 16px rgba(15, 28, 36, 0.08);
}

.damage-report-trigger.has-selection {
  border-color: rgba(23, 165, 127, 0.44);
  box-shadow: 0 10px 22px rgba(23, 165, 127, 0.18);
}

.damage-report-trigger-car {
  width: 124px;
  height: auto;
}

.damage-report-trigger span {
  font-size: 1.08rem;
  font-weight: 850;
}

.customer-call-dot {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  width: 100%;
  max-width: 54px;
  min-width: 42px;
  border: 2px solid rgba(0, 0, 0, 0.18);
  border-radius: 999px;
  color: #ffffff;
  font-size: 1.24rem;
  font-weight: 950;
  line-height: 1;
  cursor: pointer;
  box-shadow: inset 0 -8px 18px rgba(0, 0, 0, 0.14), 0 2px 5px rgba(19, 32, 28, 0.16);
  transition:
    transform 140ms ease,
    box-shadow 140ms ease,
    filter 140ms ease,
    border-color 140ms ease;
}

.customer-call-dot:hover {
  transform: translateY(-2px);
  box-shadow: inset 0 -8px 18px rgba(0, 0, 0, 0.16), 0 6px 12px rgba(19, 32, 28, 0.2);
  filter: saturate(1.03);
}

.customer-call-dot:active {
  transform: translateY(1px);
  box-shadow: inset 0 -6px 14px rgba(0, 0, 0, 0.12), 0 2px 5px rgba(19, 32, 28, 0.16);
}

.customer-call-dot:focus-visible,
.notify-card:focus-visible,
.damage-report-btn:focus-visible {
  outline: 3px solid rgba(24, 95, 165, 0.18);
  outline-offset: 3px;
}

.customer-call-dot.is-call-1 { background: #0b7f7a; }
.customer-call-dot.is-call-2 { background: #1f8bc3; }
.customer-call-dot.is-call-3 { background: #7b61b8; }
.customer-call-dot.is-call-4 { background: #d18817; }
.customer-call-dot.is-call-5 { background: #c9363d; }

.customer-call-dot.is-done::before,
.customer-call-dot.is-done::after {
  position: absolute;
  inset: 50% 17%;
  height: 4px;
  border-radius: 999px;
  background: #ffffff;
  content: "";
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
}

.customer-call-dot.is-done::before {
  transform: translateY(-50%) rotate(45deg);
}

.customer-call-dot.is-done::after {
  transform: translateY(-50%) rotate(-45deg);
}

.customer-call-dot.is-done span {
  opacity: 0.34;
}

.notify-customer-section {
  grid-column: 1 / -1;
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid rgba(18, 31, 28, 0.08);
  border-radius: 12px;
  background:
    radial-gradient(circle at top right, rgba(74, 144, 226, 0.08), transparent 36%),
    linear-gradient(180deg, #fbfdfd, #f3f7f6);
}

.notify-customer-label {
  display: block;
  color: #60706b;
  font-size: 1.18rem;
  font-weight: 900;
  letter-spacing: 0.02em;
}

.notify-customer-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  justify-content: center;
  gap: 14px;
}

.notify-card {
  display: grid;
  justify-items: center;
  gap: 10px;
  min-height: 148px;
  padding: 18px 16px;
  border: none;
  border-radius: 16px;
  background: transparent;
  color: #15211d;
  box-shadow: none;
  cursor: pointer;
  transition: transform 140ms ease, box-shadow 140ms ease;
}

.notify-card:hover {
  transform: translateY(-2px);
  box-shadow: none;
}

.notify-card svg {
  width: 52px;
  height: 52px;
}

.notify-card span {
  color: #15211d;
  font-size: 1.1rem;
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
}

@media (max-width: 900px) {
  .notify-customer-cards {
    grid-template-columns: 1fr;
  }

  .notify-card {
    min-height: 120px;
  }
}

.customer-contact-action-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(320px, 1fr) minmax(320px, auto) minmax(190px, auto);
  gap: 18px;
  align-items: end;
  min-height: 112px;
}

.customer-call-stack {
  display: grid;
  gap: 12px;
  align-self: end;
}

.customer-call-group {
  display: grid;
  gap: 6px;
  margin: 0;
}

.customer-contact-column {
  min-width: 0;
  min-height: 100%;
}

.customer-contact-column-notify,
.customer-contact-column-damage {
  position: relative;
  display: flex;
  align-items: end;
  justify-content: center;
  padding-left: 18px;
}

.customer-contact-column-notify::before,
.customer-contact-column-damage::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: rgba(21, 32, 29, 0.14);
}

.customer-contact-column-notify {
  justify-self: center;
}

.customer-contact-column-damage {
  justify-self: end;
}

.customer-contact-tools {
  min-width: 0;
}

.customer-call-stack .customer-call-dots {
  grid-template-columns: repeat(5, 54px);
  gap: 11px;
  min-height: 62px;
  align-self: end;
  width: max-content;
}

.notify-customer-section {
  display: grid;
  grid-template-columns: 78px 104px 70px;
  align-items: flex-end;
  justify-content: center;
  gap: 18px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
}

.notify-card {
  min-height: 0;
  padding: 10px 8px 8px;
  gap: 7px;
  justify-items: center;
  width: 100%;
  border: 1px solid rgba(111, 128, 121, 0.26);
  border-radius: 12px;
  background: linear-gradient(180deg, #ffffff 0%, #f3f7f5 100%);
  box-shadow: 0 4px 0 rgba(21, 32, 29, 0.16), 0 10px 22px rgba(21, 32, 29, 0.08);
  cursor: pointer;
  transition:
    transform 140ms ease,
    box-shadow 140ms ease,
    border-color 140ms ease,
    filter 140ms ease;
}

.notify-card svg {
  width: 52px;
  height: 52px;
}

.notify-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 0 rgba(21, 32, 29, 0.16), 0 12px 26px rgba(21, 32, 29, 0.12);
  filter: saturate(1.04);
}

.notify-card:active {
  transform: translateY(1px);
  box-shadow: 0 2px 0 rgba(21, 32, 29, 0.18), 0 6px 12px rgba(21, 32, 29, 0.12);
}

.notify-card span {
  display: block;
  width: 100%;
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1;
  color: var(--muted);
  text-align: center;
  white-space: nowrap;
}

.damage-report-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 10px 10px 8px;
  border: 1px solid rgba(111, 128, 121, 0.26);
  border-radius: 12px;
  background: linear-gradient(180deg, #ffffff 0%, #f4f7f5 100%);
  cursor: pointer;
  justify-content: center;
  min-width: 180px;
  box-shadow: 0 4px 0 rgba(21, 32, 29, 0.16), 0 10px 22px rgba(21, 32, 29, 0.08);
  transition:
    transform 140ms ease,
    box-shadow 140ms ease,
    border-color 140ms ease,
    filter 140ms ease;
}

.damage-report-btn.has-selection {
  border-color: rgba(23, 165, 127, 0.44);
  box-shadow: 0 6px 0 rgba(23, 165, 127, 0.18), 0 12px 26px rgba(23, 165, 127, 0.16);
}

.damage-report-label {
  color: var(--muted);
  display: block;
  width: 100%;
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

.damage-report-car-img {
  display: block;
  width: 164px;
  height: 58px;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.damage-report-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 0 rgba(21, 32, 29, 0.16), 0 12px 26px rgba(21, 32, 29, 0.12);
  filter: saturate(1.03);
}

.damage-report-btn:active {
  transform: translateY(1px);
  box-shadow: 0 2px 0 rgba(21, 32, 29, 0.18), 0 6px 12px rgba(21, 32, 29, 0.12);
}

@media (max-width: 900px) {
  .customer-contact-action-row {
    grid-template-columns: 1fr;
  }

  .customer-contact-column-notify,
  .customer-contact-column-damage {
    justify-self: stretch;
    padding-left: 0;
  }

  .customer-contact-column-notify::before,
  .customer-contact-column-damage::before {
    display: none;
  }

  .notify-customer-section {
    justify-content: start;
    row-gap: 14px;
  }

  .damage-report-card {
    width: min(100%, calc(100vw - 24px));
    padding: 22px 18px 20px;
  }

  .damage-report-header {
    align-items: center;
  }

  .damage-report-header h3 {
    font-size: 1.7rem;
  }

  .damage-report-header-car {
    width: 160px;
    max-width: 38%;
  }

  .damage-report-table thead th,
  .damage-report-table tbody td {
    padding: 12px 10px;
  }

  .damage-report-piece-label {
    font-size: 1.48rem;
  }
}

#orderForm .order-field-customer,
#orderForm .order-field-phone,
#orderForm .order-field-advisor {
  grid-column: auto;
}

.order-client-section .order-field-express {
  grid-column: span 3;
  order: 1;
}

.order-client-section .order-field-ht {
  grid-column: span 3;
  order: 2;
}

.order-client-section .order-field-customer {
  grid-column: span 3;
  order: 3;
}

.order-client-section .order-field-phone {
  grid-column: span 3;
  order: 4;
}

.order-client-section .order-field-brand {
  grid-column: span 2;
  order: 5;
}

.order-client-section .order-field-model {
  grid-column: span 2;
  order: 6;
}

.order-client-section .order-field-plate {
  grid-column: span 2;
  order: 7;
}

.order-client-section .order-field-color {
  grid-column: span 2;
  order: 8;
}

.order-client-section .order-field-advisor {
  grid-column: span 2;
  order: 9;
}

.order-client-section .order-advisor-history-group {
  grid-column: span 4;
  order: 9;
}

.order-client-section .order-history-button {
  grid-column: span 2;
  order: 10;
}

.order-client-section .order-advisor-history-group .order-field-advisor,
.order-client-section .order-advisor-history-group .order-history-button {
  grid-column: auto;
  order: initial;
}

#orderForm .wide,
#orderForm .form-actions.wide {
  grid-column: 1 / -1;
}

.order-control-section .order-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
}

.order-notes-section .order-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.order-notes-section .wide {
  grid-column: auto;
}

.order-notes-section label:has(textarea) {
  grid-column: 1 / -1;
}

.appointment-form-close {
  display: none;
}

.appointment-heading-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

body.appointment-form-open {
  overflow: hidden;
}

body.appointment-form-open::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 25;
  background: rgba(17, 26, 23, 0.42);
}

body.appointment-form-open #nueva-ficha {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr);
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 30;
  width: min(1040px, calc(100vw - 56px));
  max-width: 1040px;
  max-height: calc(100vh - 56px);
  margin: 0 auto;
  overflow: hidden;
  overscroll-behavior: contain;
  transform: translate(-50%, -50%);
}

body.appointment-form-open #nueva-ficha > .panel-heading {
  z-index: 2;
  min-height: 70px;
  padding: 12px 18px;
  background: var(--surface);
  border-bottom: 1px solid var(--line);
}

body.appointment-form-open #nueva-ficha > .panel-heading h2 {
  font-size: 1.9rem;
  white-space: nowrap;
}

body.appointment-form-open #nueva-ficha .appointment-form-close {
  display: inline-flex;
}

body.appointment-form-open #nueva-ficha .eyebrow {
  font-size: 1.1rem;
}

body.appointment-form-open #nueva-ficha .appointment-heading-actions {
  flex-wrap: nowrap;
  gap: 8px;
}

body.appointment-form-open #nueva-ficha .ghost-button,
body.appointment-form-open #nueva-ficha .primary-button,
body.appointment-form-open #nueva-ficha .danger-button {
  min-height: 50px;
  padding: 0 14px;
  font-size: 1.26rem;
  white-space: nowrap;
}

.form-grid textarea {
  min-height: 112px;
  resize: vertical;
}

.checkbox-label,
.process-toggles label,
.process-title label {
  display: flex !important;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 820;
}

.checkbox-label input,
.process-toggles input,
.process-title input[type="checkbox"] {
  width: 22px;
  min-height: 22px;
}

#orderForm .checkbox-label {
  min-height: 54px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  font-size: 1.26rem;
}

.vehicle-process-form .checkbox-label {
  min-height: 50px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  font-size: 1.05rem;
}

#orderForm .checkbox-label input {
  width: 18px;
  min-height: 18px;
}

.vehicle-process-form .checkbox-label input {
  width: 18px;
  min-height: 18px;
}

#orderForm textarea {
  min-height: 84px;
}

.vehicle-process-form textarea {
  min-height: 110px;
}

@media (max-height: 820px) {
  body.appointment-form-open #nueva-ficha {
    inset: auto;
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    width: min(980px, calc(100vw - 40px));
    max-height: calc(100vh - 40px);
    transform: translate(-50%, -50%);
  }

  body.appointment-form-open #nueva-ficha > .panel-heading {
    min-height: 64px;
    padding: 10px 16px;
  }

  body.appointment-form-open #nueva-ficha > .panel-heading h2 {
    font-size: 1.8rem;
  }

  body.appointment-form-open #nueva-ficha .eyebrow {
    margin-bottom: 2px;
    font-size: 1.05rem;
  }

  #orderForm {
    gap: 12px;
    padding: 16px 18px 20px;
  }

  .order-form-section {
    gap: 9px;
    padding: 12px 14px;
  }

  .order-form-section h3 {
    font-size: 1.15rem;
  }

  .order-form-grid {
    gap: 10px 14px;
  }

  #orderForm label {
    gap: 5px;
    font-size: 1.2rem;
  }

  #orderForm input,
  #orderForm select,
  #orderForm textarea,
  #orderForm .checkbox-label {
    min-height: 52px;
    padding: 8px 11px;
    font-size: 1.32rem;
  }

  #orderForm textarea {
    min-height: 76px;
  }
}

.form-actions {
  gap: 14px;
  justify-content: flex-end;
}

.hidden {
  display: none !important;
}

.danger-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid #e2aaa9;
  border-radius: 8px;
  background: linear-gradient(180deg, #fffdfd 0%, #fff2f1 100%);
  color: var(--danger);
  font-weight: 820;
}

.icon-only {
  width: 46px;
  padding: 0;
  font-size: 1.55rem;
  line-height: 1;
}

.parts-request-modal {
  position: fixed;
  inset: 0;
  z-index: 70;
  display: grid;
  place-items: center;
  padding: 14px;
  background: rgba(17, 26, 23, 0.42);
}

.parts-request-sheet {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(1720px, 100%);
  max-height: calc(100vh - 28px);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 30px 90px rgba(17, 26, 23, 0.28);
}

.parts-request-header,
.parts-request-footer,
.parts-request-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.parts-request-header {
  padding: 18px 24px;
  border-bottom: 1px solid var(--line);
}

.parts-request-header h2 {
  margin: 0;
  font-size: 2.2rem;
  line-height: 1.05;
}

.parts-request-header .eyebrow {
  font-size: 1.12rem;
}

.parts-request-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.parts-request-body {
  display: grid;
  gap: 18px;
  min-height: 0;
  overflow: auto;
  padding: 22px 24px;
}

.parts-request-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 14px;
}

.parts-request-grid label,
.parts-request-notes {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 1.42rem;
  font-weight: 900;
  line-height: 1.08;
}

.parts-request-grid input,
.parts-request-grid select,
.parts-request-notes textarea,
.parts-request-table input {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 1.4rem;
  font-weight: 760;
}

.parts-request-grid input,
.parts-request-grid select,
.parts-request-notes textarea {
  padding: 10px 12px;
}

.parts-request-grid input[readonly] {
  background: #f8fbfa;
}

.parts-request-section {
  display: grid;
  gap: 12px;
}

.parts-request-section-head h3,
.parts-request-section-head span {
  display: block;
  margin: 0;
}

.parts-request-section-head h3 {
  font-size: 1.5rem;
  line-height: 1.1;
  text-transform: uppercase;
}

.parts-request-section-head span {
  margin-top: 5px;
  color: var(--accent);
  font-size: 1.32rem;
  font-weight: 900;
}

.parts-request-section-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.parts-request-select-all {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 1.16rem;
  font-weight: 850;
}

.parts-request-select-all input {
  width: 20px;
  min-height: 20px;
}

.parts-request-table {
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.parts-request-row {
  display: grid;
  grid-template-columns: 92px minmax(220px, 1fr) 160px 180px 46px;
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
}

.parts-request-row.is-upload-only {
  grid-template-columns: 92px minmax(220px, 1fr) 160px 46px;
}

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

.parts-request-row.is-head {
  min-height: 44px;
  background: #f8fbfa;
  color: var(--muted);
  font-size: 1.3rem;
  font-weight: 900;
  text-transform: uppercase;
}

.parts-request-row.is-empty {
  display: block;
  min-height: 72px;
  padding: 24px;
  color: var(--muted);
  text-align: center;
  font-weight: 820;
}

.parts-request-row input {
  padding: 8px 10px;
}

.parts-request-check {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  font-size: 1.18rem;
  font-weight: 830;
}

.parts-request-check input {
  width: 22px;
  min-height: 22px;
}

.parts-request-remove {
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--danger);
  font-size: 1.42rem;
  font-weight: 900;
}

.parts-request-footer .ghost-button,
.parts-request-footer .primary-button,
.parts-request-footer .danger-button,
.parts-request-section-actions .ghost-button {
  font-size: 1.2rem;
}

.parts-request-notes textarea {
  min-height: 96px;
  resize: vertical;
}

.parts-warehouse-panel {
  display: grid;
  gap: 12px;
}

.parts-warehouse-title {
  display: grid;
  place-items: center;
  min-height: 50px;
  border: 1px solid #12683d;
  border-radius: 8px;
  background: #16824c;
  color: #ffffff;
  font-size: 1.5rem;
  font-weight: 1000;
  letter-spacing: 0.04em;
}

.parts-warehouse-actions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.parts-warehouse-button {
  min-height: 56px;
  padding: 0 14px;
  border: 2px solid transparent;
  border-radius: 8px;
  color: #ffffff;
  font-size: 1.28rem;
  font-weight: 1000;
  letter-spacing: 0.01em;
  box-shadow: 0 8px 18px rgba(17, 26, 23, 0.12);
}

.parts-warehouse-button.is-green {
  background: #16824c;
  border-color: #12683d;
}

.parts-warehouse-button.is-yellow {
  background: #e2b825;
  border-color: #b7900d;
  color: #111111;
}

.parts-warehouse-button.is-red {
  background: #c73436;
  border-color: #9f2428;
}

.parts-warehouse-button.is-blue {
  background: #4b2fbf;
  border-color: #34208c;
}

.parts-warehouse-button.is-selected {
  outline: 4px solid rgba(17, 17, 17, 0.38);
  outline-offset: 2px;
  transform: translateY(-1px);
}

.parts-request-footer {
  position: sticky;
  bottom: -22px;
  margin: 4px -24px -22px;
  padding: 16px 24px;
  border-top: 1px solid var(--line);
  background: #ffffff;
}

.parts-request-footer > div {
  display: flex;
  gap: 12px;
}

/* === 18. ADMIN MODULE === */
.process-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  padding: 24px;
}

.admin-process-grid {
  padding: 0;
}

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

.process-card,
.technician-card {
  display: grid;
  gap: 18px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfc;
}

.technician-card {
  gap: 10px;
  padding: 12px;
}

.technician-main-row,
.technician-detail-row {
  display: grid;
  gap: 8px;
  align-items: end;
}

.technician-main-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.technician-detail-row {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 190px;
}

.technician-main-row label,
.technician-detail-row label,
.technician-photo-upload {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 850;
  line-height: 1.05;
}

.technician-card input,
.technician-card select {
  min-height: 36px;
  padding: 6px 8px;
  font-size: .78rem;
  border-radius: 6px;
}

.process-title {
  justify-content: space-between;
  gap: 16px;
}

.process-title input[data-field="name"],
.process-title input[data-technician-field="name"] {
  font-weight: 850;
}

.process-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.technician-photo-editor {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  gap: 6px 8px;
}

.technician-photo-preview {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #0a746f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.85)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='3.5'/%3E%3Cpath d='M5 20c0-3.5 3.1-6 7-6s7 2.5 7 6'/%3E%3C/svg%3E") center/70% no-repeat;
  color: var(--ink);
  font-size: .76rem;
  font-weight: 950;
}

.technician-photo-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.technician-photo-upload {
  display: grid;
  align-content: center;
  gap: 4px;
  min-height: 36px;
  min-width: 0;
}

.technician-photo-upload input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.technician-photo-upload span {
  display: inline-grid;
  place-items: center;
  width: 100%;
  min-height: 28px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--ink);
  font-size: .72rem;
  font-weight: 850;
  white-space: nowrap;
}

.technician-actions {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.technician-active-toggle {
  grid-column: 1 / -1;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 850;
  white-space: nowrap;
}

.technician-active-toggle input[type="checkbox"] {
  width: 14px;
  min-height: 14px;
  height: 14px;
  padding: 0;
}

.technician-actions .ghost-button,
.technician-actions .danger-button {
  width: 100%;
  min-height: 30px;
  padding: 5px 8px;
  border-radius: 6px;
  font-size: .72rem;
  line-height: 1;
  white-space: nowrap;
}

.process-toggles {
  flex-wrap: wrap;
  gap: 14px;
}

.process-remove-button {
  margin-left: auto;
}

.admin-section-toolbar {
  display: flex;
  justify-content: flex-end;
}

.admin-process-clock-toolbar {
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: end;
  gap: 12px;
}

.admin-process-clock-toolbar label {
  min-width: min(220px, 100%);
}

.admin-process-clock-report-list {
  display: grid;
  gap: 12px;
}

.admin-process-clock-report-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: start;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
}

.admin-process-clock-report-copy,
.admin-process-clock-report-meta {
  display: grid;
  gap: 5px;
}

.admin-process-clock-report-copy strong {
  color: var(--ink);
  font-size: 1.2rem;
  font-weight: 950;
}

.admin-process-clock-report-copy span,
.admin-process-clock-report-meta small {
  color: var(--muted);
  font-size: 1rem;
  font-weight: 800;
}

.admin-process-clock-report-meta {
  justify-items: end;
  text-align: right;
}

.admin-layout {
  display: grid;
  gap: 18px;
  padding: 20px 22px 24px;
}

.admin-back-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  min-width: 210px;
  min-height: 92px;
  margin-top: -8px;
  padding: 0 34px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #111a17;
  color: #ffffff;
  font-size: 1.78rem;
  font-weight: 900;
  box-shadow: 0 8px 18px rgba(17, 26, 23, 0.22);
}

.admin-icon-menu {
  display: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.admin-icon-menu.active {
  display: grid;
}

.admin-icon-menu button {
  display: grid;
  justify-items: start;
  gap: 10px;
  min-height: 132px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfc;
  color: var(--ink);
  text-align: left;
}

.admin-icon-menu button:hover,
.admin-icon-menu button.active {
  border-color: #0a746f;
  background: #e8f4f2;
}

.admin-icon-menu .admin-danger-menu-button {
  border-color: #b91c1c;
  background: #fff1f1;
}

.admin-icon-menu .admin-danger-menu-button:hover,
.admin-icon-menu .admin-danger-menu-button:focus-visible {
  border-color: #991b1b;
  background: #fee2e2;
}

.admin-icon-menu .admin-danger-menu-button .admin-menu-icon {
  background: #9f1d24;
}

.admin-menu-icon {
  display: grid;
  place-items: center;
  min-width: 52px;
  height: 52px;
  padding: 0 10px;
  border-radius: 8px;
  background: #111a17;
  color: #ffffff;
  font-size: 1.12rem;
  font-weight: 950;
}

.admin-icon-menu strong {
  font-size: 1.55rem;
  line-height: 1.1;
}

.admin-icon-menu small {
  color: var(--muted);
  font-size: 1.08rem;
  font-weight: 850;
  line-height: 1.25;
}

.admin-section,
.admin-subsection,
.admin-summary {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfc;
}

.admin-section {
  display: grid;
  gap: 16px;
  padding: 20px 22px;
}

.admin-section:not(.active) {
  display: none;
}

.admin-section-head {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 48px;
}

.admin-section-head span {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 8px;
  background: #111a17;
  color: #ffffff;
  font-size: 1.25rem;
  font-weight: 900;
}

.admin-section-head h3,
.admin-section-head p,
.admin-subsection h4 {
  margin: 0;
}

.admin-section-head h3 {
  font-size: 2.05rem;
  line-height: 1;
}

.admin-section-head p {
  color: var(--muted);
  margin-top: 4px;
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1.2;
}

.admin-grid,
.admin-check-grid,
.admin-color-palette {
  display: grid;
  gap: 10px 14px;
}

.admin-grid {
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  align-items: end;
}

.admin-layout .process-fields {
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  align-items: end;
  gap: 10px 14px;
}

.admin-stack {
  display: grid;
  gap: 18px;
}

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

.admin-color-palette {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-grid > label.wide {
  grid-column: span 2;
}

.admin-grid > label.checkbox-label.wide {
  grid-column: auto;
}

.admin-grid > .admin-subsection.wide,
.admin-grid > .admin-summary.wide,
.admin-subsection.wide,
.admin-summary.wide {
  grid-column: 1 / -1;
}

.admin-subsection {
  display: grid;
  gap: 14px;
  padding: 18px;
}

.admin-subsection h4 {
  font-size: 1.32rem;
}

.admin-layout label,
.admin-color-row {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 1.38rem;
  font-weight: 900;
  line-height: 1.05;
}

.admin-layout input,
.admin-layout select,
.admin-layout textarea {
  width: 100%;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--ink);
  font-size: 1.24rem;
  font-weight: 900;
  line-height: 1.1;
  outline: 0;
}

.admin-layout textarea {
  min-height: 86px;
  padding-top: 10px;
  resize: vertical;
  line-height: 1.35;
}

.admin-layout .checkbox-label,
.admin-check-grid label {
  display: flex;
  align-items: center;
  align-self: end;
  gap: 10px;
  color: var(--ink);
  min-height: 42px;
  font-size: 1.26rem;
  font-weight: 900;
  line-height: 1.05;
}

.admin-layout input[type="checkbox"] {
  width: 18px;
  min-height: 18px;
  padding: 0;
}

.admin-capacity-layout {
  display: grid;
  gap: 18px;
}

.admin-capacity-box {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8faf9;
}

.admin-capacity-box h4 {
  margin: 0;
  color: var(--ink);
  font-size: 1.42rem;
  line-height: 1;
}

.admin-capacity-kpi-grid,
.admin-capacity-schedule-grid {
  display: grid;
  align-items: end;
  gap: 14px 12px;
}

.admin-capacity-kpi-grid {
  grid-template-columns: repeat(4, minmax(170px, 1fr));
}

.admin-capacity-schedule-grid {
  grid-template-columns: repeat(6, minmax(140px, 1fr));
}

.admin-section[data-admin-section="capacidad"] label {
  gap: 6px;
  font-size: 1.58rem;
  font-weight: 950;
  line-height: 1.02;
}

.admin-section[data-admin-section="capacidad"] input,
.admin-section[data-admin-section="capacidad"] select {
  height: 66px;
  min-height: 66px;
  padding: 0 18px;
  font-size: 1.42rem;
  font-weight: 950;
  box-sizing: border-box;
}

.admin-section[data-admin-section="capacidad"] .checkbox-label {
  min-height: 66px;
  gap: 8px;
  font-size: 1.5rem;
  font-weight: 950;
}

.admin-section[data-admin-section="capacidad"] input[type="checkbox"] {
  width: 21px;
  min-height: 21px;
}

.admin-section[data-admin-section="capacidad"] .form-actions {
  align-self: end;
}

.admin-section[data-admin-section="capacidad"] .ghost-button {
  min-height: 66px;
  padding: 0 18px;
  font-size: 1.24rem;
}

.admin-section[data-admin-section="capacidad"] .admin-holiday-sync-action {
  margin-left: -6px;
}

.admin-section[data-admin-section="capacidad"] .admin-holiday-sync-button {
  width: 100%;
  border: 2px solid #0ea5e9;
  background: #c7efff;
  color: #063247;
  box-shadow: 0 5px 14px rgba(14, 165, 233, 0.24);
  font-size: 1.28rem;
  font-weight: 950;
}

.admin-section[data-admin-section="capacidad"] .admin-subsection {
  padding: 14px;
}

.admin-section[data-admin-section="capacidad"] .admin-calendar-panels {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
  gap: 14px;
  align-items: stretch;
}

.admin-section[data-admin-section="capacidad"] .admin-workday-panel {
  gap: 12px;
  max-width: none;
  min-height: 172px;
  padding: 16px;
}

.admin-section[data-admin-section="capacidad"] .admin-workday-panel h4,
.admin-section[data-admin-section="capacidad"] .admin-special-conditions-panel h4 {
  font-size: 1.58rem;
  line-height: 1;
}

.admin-section[data-admin-section="capacidad"] .admin-workday-panel .admin-check-grid {
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 10px 22px;
}

.admin-section[data-admin-section="capacidad"] .admin-workday-panel .admin-check-grid label {
  min-height: 46px;
  font-size: 1.48rem;
  font-weight: 950;
}

.admin-section[data-admin-section="capacidad"] .admin-special-conditions-panel {
  gap: 12px;
  min-height: 172px;
  padding: 16px;
}

.admin-section[data-admin-section="capacidad"] .admin-special-conditions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(170px, 1fr));
  gap: 10px 18px;
}

.admin-section[data-admin-section="capacidad"] .admin-special-conditions-grid .checkbox-label {
  min-height: 46px;
  font-size: 1.48rem;
  font-weight: 950;
  line-height: 1;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) {
  gap: 18px;
  padding: 20px 22px;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-grid,
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .process-fields,
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-color-palette,
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-check-grid {
  gap: 14px 12px;
  align-items: end;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-grid,
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .process-fields {
  grid-template-columns: repeat(3, minmax(180px, 1fr));
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-check-grid {
  grid-template-columns: repeat(3, minmax(170px, 1fr));
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-color-palette {
  grid-template-columns: repeat(2, minmax(280px, 1fr));
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-color-row {
  grid-template-columns: minmax(180px, 1fr) 96px minmax(170px, 1fr);
  gap: 14px 12px;
  align-items: end;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) label:not(.admin-clock-style-option):not(.admin-traffic-light-row),
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-color-row {
  gap: 6px;
  font-size: 1.58rem;
  font-weight: 950;
  line-height: 1.02;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) select {
  height: 66px;
  min-height: 66px;
  padding: 0 18px;
  font-size: 1.42rem;
  font-weight: 950;
  box-sizing: border-box;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) textarea {
  min-height: 132px;
  padding: 14px 18px;
  font-size: 1.42rem;
  font-weight: 950;
  box-sizing: border-box;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .checkbox-label,
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-check-grid label,
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .process-title label,
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .process-toggles label {
  min-height: 66px;
  gap: 8px;
  font-size: 1.5rem;
  font-weight: 950;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .process-toggles {
  gap: 12px 18px;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .process-toggles label {
  flex: 1 1 260px;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) input[type="checkbox"] {
  width: 21px;
  min-height: 21px;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-subsection,
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .process-card,
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .technician-card {
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8faf9;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-subsection h4 {
  font-size: 1.58rem;
  line-height: 1;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .ghost-button,
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .primary-button,
#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .danger-button {
  min-height: 66px;
  padding: 0 18px;
  font-size: 1.24rem;
  font-weight: 950;
}

#admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-section-toolbar {
  align-items: center;
  min-height: 66px;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-actions .ghost-button,
#admin .admin-section[data-admin-section="tecnicos"] .technician-actions .danger-button {
  min-height: 30px;
  padding: 5px 8px;
  font-size: .72rem;
  font-weight: 850;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-actions .process-remove-button {
  margin-left: 0;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-active-toggle {
  font-size: .72rem;
}

#admin .admin-add-technician-button {
  min-height: 72px;
  padding: 0 32px;
  border-color: #0b6f4b;
  background: #16824c;
  color: #ffffff;
  font-size: 1.34rem;
  font-weight: 950;
  box-shadow: 0 8px 18px rgba(22, 130, 76, .18);
}

#admin .admin-add-technician-button:hover,
#admin .admin-add-technician-button:focus-visible {
  background: #0f6f41;
}

#admin .admin-save-row .primary-button {
  min-height: 66px;
  padding: 0 24px;
  font-size: 1.32rem;
  font-weight: 950;
}

.admin-upload-layout {
  display: grid;
  gap: 16px;
}

.admin-upload-actions {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto auto;
  gap: 12px;
  align-items: stretch;
}

.admin-operativa-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap: 16px;
}

.admin-operativa-card {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8faf9;
}

.admin-operativa-card.active {
  border-color: #0a746f;
  background: #eef8f6;
}

.admin-operativa-icon-button {
  display: grid;
  justify-items: start;
  gap: 10px;
  min-height: 132px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  text-align: left;
}

.admin-operativa-icon-button:hover,
.admin-operativa-icon-button.active {
  border-color: #0a746f;
  background: #e8f4f2;
}

.admin-operativa-icon-button strong {
  font-size: 1.55rem;
  line-height: 1.1;
}

.admin-operativa-icon-button small {
  color: var(--muted);
  font-size: 1.08rem;
  font-weight: 850;
  line-height: 1.25;
}

.admin-operativa-card-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.admin-operativa-card-actions button {
  min-height: 54px;
  font-size: 1rem;
}

.admin-file-drop {
  display: grid;
  gap: 6px;
  min-height: 66px;
  padding: 12px 16px;
  border: 1px dashed #0a746f;
  border-radius: 8px;
  background: #eef8f6;
  color: var(--ink);
}

.admin-file-drop input {
  min-height: 0;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 1rem;
}

.admin-file-drop strong {
  font-size: 1.2rem;
  line-height: 1;
}

.admin-file-drop span,
.admin-upload-note {
  margin: 0;
  color: var(--muted);
  font-size: 1.05rem;
  font-weight: 850;
  line-height: 1.25;
}

.admin-upload-columns {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-upload-columns span {
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 900;
}

.admin-upload-summary {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 1.14rem;
  font-weight: 900;
}

.admin-upload-preview {
  overflow: auto;
  max-height: 440px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.admin-upload-preview:empty {
  display: none;
}

.admin-upload-preview table {
  width: 100%;
  border-collapse: collapse;
  min-width: 980px;
  font-size: 1rem;
}

.admin-upload-preview th,
.admin-upload-preview td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.admin-upload-preview th {
  position: sticky;
  top: 0;
  background: #111a17;
  color: #ffffff;
  font-weight: 950;
}

.admin-upload-preview tr.is-error td {
  background: #fff1f1;
  color: #8a1f1f;
}

.admin-upload-preview tr.is-ready td:last-child {
  color: #08756f;
  font-weight: 950;
}

#admin .admin-section[data-admin-section="procesos"] {
  gap: 18px;
}

#admin .admin-section[data-admin-section="procesos"] .admin-section-toolbar {
  justify-content: flex-end;
  min-height: 66px;
}

#admin .admin-section[data-admin-section="procesos"] #addProcessButton {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-width: 270px;
  min-height: 72px;
  padding: 0 28px;
  border: 2px solid #0284c7;
  border-radius: 8px;
  background: #0ea5e9;
  color: #ffffff;
  font-size: 1.42rem;
  font-weight: 950;
  box-shadow: 0 10px 22px rgba(14, 165, 233, 0.26);
}

#admin .admin-section[data-admin-section="procesos"] #addProcessButton::before {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
  content: "+";
  font-size: 2rem;
  font-weight: 950;
  line-height: 1;
}

#admin .admin-section[data-admin-section="procesos"] #addProcessButton:hover {
  background: #0284c7;
  box-shadow: 0 12px 26px rgba(14, 165, 233, 0.34);
}

.admin-user-profiles-shell {
  display: grid;
  gap: 16px;
}

.admin-user-profiles-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8faf9;
}

.admin-user-profiles-toolbar h4,
.admin-user-profiles-toolbar p,
.admin-user-form-head h4,
.admin-user-form-head p,
.admin-user-permissions h4,
.admin-user-permission-group h4 {
  margin: 0;
}

.admin-user-profiles-toolbar h4,
.admin-user-form-head h4,
.admin-user-permissions h4 {
  color: var(--ink);
  font-size: 1.58rem;
  line-height: 1;
}

.admin-user-profiles-toolbar p,
.admin-user-form-head p {
  margin-top: 5px;
  color: var(--muted);
  font-size: 1.08rem;
  font-weight: 850;
}

.admin-user-new-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-width: 238px;
  min-height: 66px;
  padding: 0 22px;
  border: 2px solid #0284c7;
  border-radius: 8px;
  background: #0ea5e9;
  color: #ffffff;
  font-size: 1.28rem;
  font-weight: 950;
  box-shadow: 0 10px 22px rgba(14, 165, 233, 0.24);
}

.admin-user-new-button::before {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  content: "+";
  font-size: 1.8rem;
  font-weight: 950;
  line-height: 1;
}

.admin-user-filterbar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(180px, 240px);
  gap: 10px;
  min-width: min(520px, 100%);
}

.admin-user-filterbar label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 950;
  text-transform: uppercase;
}

.admin-user-filterbar input,
.admin-user-filterbar select {
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid #cbd8d4;
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 0.98rem;
  font-weight: 900;
}

.admin-user-profiles-layout {
  display: grid;
  grid-template-columns: minmax(420px, 0.95fr) minmax(520px, 1.05fr);
  gap: 16px;
  align-items: start;
}

.admin-user-profile-list,
.admin-user-profile-editor,
.admin-user-profile-form,
.admin-user-permissions,
.admin-user-permission-group {
  display: grid;
  gap: 12px;
}

.admin-user-profile-card,
.admin-user-editor-placeholder,
.admin-user-profile-form {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.admin-user-profile-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  min-height: 112px;
  padding: 14px 16px;
}

.admin-user-profile-card strong {
  display: block;
  color: var(--ink);
  font-size: 1.42rem;
  line-height: 1.05;
}

.admin-user-profile-card span,
.admin-user-profile-card small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 1.02rem;
  font-weight: 850;
  line-height: 1.2;
}

.admin-user-tenant-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.admin-user-tenant-chip {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 8px;
  border: 1px solid #b9cbc6;
  border-radius: 8px;
  background: #eef8f6;
  color: #0f766e;
  font-size: 0.78rem;
  font-weight: 950;
  line-height: 1;
}

.admin-user-tenant-chip.is-global {
  border-color: #d7b44a;
  background: #fff6d7;
  color: #6f5200;
}

.admin-user-tenant-chip.is-empty {
  border-color: #d8c4c4;
  background: #fff3f3;
  color: #8a1f1f;
}

.admin-user-profile-actions {
  display: flex;
  gap: 8px;
}

.admin-user-profile-actions .ghost-button,
.admin-user-profile-actions .danger-button {
  min-height: 48px;
  padding: 0 14px;
  font-size: 1rem;
}

.admin-user-empty,
.admin-user-editor-placeholder {
  display: grid;
  place-items: center;
  min-height: 220px;
  padding: 24px;
  color: var(--muted);
  text-align: center;
}

.admin-user-empty strong,
.admin-user-editor-placeholder strong {
  color: var(--ink);
  font-size: 1.55rem;
}

.admin-user-empty span,
.admin-user-editor-placeholder span {
  margin-top: 6px;
  font-size: 1.08rem;
  font-weight: 850;
}

.admin-mismatch-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
}

.admin-mismatch-table {
  width: 100%;
  border-collapse: collapse;
  color: var(--ink);
}

.admin-mismatch-table th,
.admin-mismatch-table td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  text-align: left;
}

.admin-mismatch-table th {
  color: var(--ink);
  background: color-mix(in srgb, var(--teal) 10%, var(--surface));
  font-size: 1rem;
  font-weight: 900;
}

.admin-mismatch-table td {
  font-size: 1rem;
  font-weight: 800;
}

.admin-mismatch-table tbody tr:last-child td {
  border-bottom: 0;
}

.admin-mismatch-table tbody tr:nth-child(even) {
  background: color-mix(in srgb, var(--muted) 8%, var(--surface));
}

.admin-user-profile-form {
  padding: 18px;
}

.admin-user-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: 14px 12px;
  align-items: end;
}

.admin-user-form-grid .wide {
  grid-column: 1 / -1;
}

.admin-user-permission-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 12px;
}

.admin-user-permission-group {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8faf9;
}

.admin-user-permission-group h4 {
  color: var(--ink);
  font-size: 1.2rem;
  line-height: 1;
}

.admin-user-permission-list {
  display: grid;
  gap: 8px;
}

.admin-user-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

.admin-users-profile-source {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #eef6f4;
}

.admin-users-profile-source h4,
.admin-users-profile-source p {
  margin: 0;
}

.admin-users-profile-source h4 {
  color: var(--ink);
  font-size: 1.22rem;
}

.admin-users-profile-source p {
  color: var(--muted);
  font-size: 1rem;
  font-weight: 850;
}

.admin-users-profile-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-users-profile-chip-list span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid #b9cbc6;
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 0.98rem;
  font-weight: 900;
}

.admin-user-access-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8faf9;
}

.admin-user-access-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.admin-user-access-head h4,
.admin-user-access-head p {
  margin: 0;
}

.admin-user-access-head h4 {
  margin: 0;
  color: var(--ink);
  font-size: 1.2rem;
}

.admin-user-access-head p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.98rem;
  font-weight: 850;
}

.admin-user-access-head strong {
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid #bfd2cd;
  border-radius: 8px;
  background: #ffffff;
  color: #0f766e;
  font-size: 0.92rem;
  font-weight: 950;
}

.admin-user-access-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr));
  gap: 10px;
}

.admin-user-access-option {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 8px 10px;
  border: 1px solid #cbd8d4;
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 0.98rem;
  font-weight: 950;
  line-height: 1.05;
}

.admin-user-access-option input {
  width: 20px;
  height: 20px;
  accent-color: #0f766e;
}

.admin-user-access-option span {
  min-width: 0;
}

.admin-user-access-option small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
}

.admin-user-access-option.is-inherited {
  border-color: #96c4bd;
  background: #eef8f6;
}

.admin-user-access-option.is-global {
  border-color: #d7b44a;
  background: #fff8df;
}

.admin-user-access-option.is-inherited input {
  cursor: not-allowed;
}

.profile-menu-actions {
  display: grid;
  grid-template-columns: minmax(260px, 420px) auto;
  align-items: end;
  gap: 12px;
  margin-bottom: 14px;
}

.profile-menu-actions label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 1rem;
  font-weight: 900;
}

.profile-menu-actions input {
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 800;
}

.profile-menu-table {
  display: grid;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.profile-menu-head,
.profile-menu-row {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  min-width: 0;
}

.profile-menu-head {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #eef6f4;
  color: var(--muted);
  font-size: 1.18rem;
  font-weight: 950;
  text-transform: uppercase;
}

.profile-menu-head > div:first-child,
.profile-menu-name,
.profile-menu-options {
  min-height: 52px;
  padding: 10px 18px;
  border-bottom: 1px solid var(--line);
}

.profile-menu-head > div:first-child,
.profile-menu-name {
  border-right: 1px solid var(--line);
}

.profile-menu-name {
  display: flex;
  align-items: center;
  color: var(--ink);
  font-size: 1.28rem;
  font-weight: 950;
  background: #fbfdfc;
}

.profile-menu-options {
  display: grid;
  grid-template-columns: repeat(var(--profile-menu-count), minmax(0, 1fr));
  gap: 0;
  padding: 0;
}

.profile-menu-header-grid {
  display: grid;
  grid-template-columns: repeat(var(--profile-menu-count), minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
}

.profile-menu-title {
  display: grid;
  place-items: center;
  min-height: 76px;
  padding: 6px 4px;
  border-right: 1px solid var(--line);
  color: var(--muted);
  font-size: clamp(0.58rem, 0.58vw, 0.82rem);
  font-weight: 950;
  line-height: 1.08;
  text-align: center;
  overflow-wrap: anywhere;
}

.profile-menu-check {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 58px;
  padding: 0;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: #f8faf9;
  cursor: pointer;
}

.profile-menu-check:hover,
.profile-menu-check:focus-within {
  background: #e8f4f2;
}

.profile-menu-check input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.profile-menu-check span {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 26px;
  height: 26px;
  border: 2px solid #82938e;
  border-radius: 9px;
  background: #ffffff;
}

.profile-menu-check span::after {
  content: "";
  width: 7px;
  height: 13px;
  border-right: 3px solid #ffffff;
  border-bottom: 3px solid #ffffff;
  opacity: 0;
  transform: rotate(45deg) translate(-1px, -1px);
}

.profile-menu-check input:checked + span {
  border-color: #087c75;
  background: #087c75;
}

.profile-menu-check input:checked + span::after {
  opacity: 1;
}

.admin-process-table {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(17, 26, 23, 0.06);
}

.admin-process-table-head,
.admin-process-grid .process-card {
  display: grid;
  grid-template-columns:
    128px
    350px
    180px
    210px
    210px
    82px
    142px
    76px
    90px;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-width: 0;
}

.admin-process-table-head {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 58px;
  padding: 0 18px;
  border-bottom: 1px solid var(--line);
  background: #eef6f4;
  color: var(--muted);
  font-size: 1.24rem;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
}

.admin-process-table-head span:nth-child(n + 6) {
  text-align: center;
}

.admin-process-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 0;
}

#admin .admin-section[data-admin-section="procesos"] .admin-process-grid .process-card {
  gap: 8px;
  padding: 10px 18px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: #ffffff;
}

#admin .admin-section[data-admin-section="procesos"] .admin-process-grid .process-card:last-child {
  border-bottom: 0;
}

.admin-process-grid .process-card:hover {
  background: #f6fbfa;
}

#admin .admin-section[data-admin-section="procesos"] .process-cell,
#admin .admin-section[data-admin-section="procesos"] .process-row-check {
  display: flex;
  align-items: center;
  min-height: 58px;
  margin: 0;
}

#admin .admin-section[data-admin-section="procesos"] .process-cell {
  gap: 0;
}

#admin .admin-section[data-admin-section="procesos"] .process-field-label {
  display: none;
}

#admin .admin-section[data-admin-section="procesos"] input:not([type="checkbox"]):not([type="hidden"]),
#admin .admin-section[data-admin-section="procesos"] select {
  height: 58px;
  min-height: 58px;
  padding: 0 12px;
  font-size: 1.22rem;
}

#admin .admin-section[data-admin-section="procesos"] .process-name-cell input {
  font-size: 1.3rem;
  font-weight: 950;
}

#admin .admin-section[data-admin-section="procesos"] .process-sequence-cell input {
  font-size: 1.34rem;
  text-align: center;
  appearance: textfield;
}

#admin .admin-section[data-admin-section="procesos"] .process-sequence-cell input::-webkit-inner-spin-button,
#admin .admin-section[data-admin-section="procesos"] .process-sequence-cell input::-webkit-outer-spin-button {
  margin: 0;
  appearance: none;
}

#admin .admin-section[data-admin-section="procesos"] .process-row-check {
  justify-content: center;
  gap: 0;
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 950;
  line-height: 1;
}

#admin .admin-section[data-admin-section="procesos"] .process-row-check span {
  display: none;
}

#admin .admin-section[data-admin-section="procesos"] .process-row-check input {
  width: 26px;
  min-height: 26px;
}

.process-row-actions {
  display: flex;
  justify-content: flex-end;
}

#admin .admin-section[data-admin-section="procesos"] .process-remove-button {
  min-width: 92px;
  min-height: 48px;
  margin: 0;
  padding: 0 12px;
  font-size: 0.94rem;
}

.admin-color-row {
  grid-template-columns: minmax(110px, 0.9fr) 68px minmax(95px, 1fr);
  align-items: end;
}

.admin-clock-style-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.admin-clock-style-option {
  position: relative;
  display: grid;
  gap: 10px;
  min-height: 214px;
  padding: 14px;
  border: 2px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--ink);
}

.admin-clock-style-option.is-selected {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(10, 116, 111, 0.14);
}

.admin-clock-style-option input {
  position: absolute;
  width: 1px;
  min-height: 1px;
  opacity: 0;
}

.admin-clock-style-option strong {
  color: var(--ink);
  font-size: 1.1rem;
  font-weight: 900;
  text-align: center;
}

.admin-clock-preview {
  display: grid;
  place-items: center;
  min-height: 144px;
  border-radius: 8px;
  background: #080808;
}

.admin-clock-preview .clock-ring {
  display: grid;
  place-items: center;
  width: 118px;
  height: 118px;
  border-radius: 50%;
  background: conic-gradient(#ff7417 300deg, #3a312d 0deg);
  box-shadow: inset 0 0 0 9px #312925;
}

.admin-clock-preview .clock-ring span {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  border: 4px solid #171412;
  border-radius: 50%;
  background: #342c28;
  color: #ffffff;
  font-family: "Courier New", monospace;
  font-size: 1.4rem;
  font-weight: 1000;
  font-variant-numeric: tabular-nums;
}

.admin-clock-preview .clock-digital {
  display: none;
  min-width: 168px;
  padding: 18px 16px;
  border-radius: 4px;
  background: #000000;
  font-family: "Courier New", monospace;
  font-size: 2.56rem;
  font-weight: 1000;
  line-height: 1;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.admin-clock-preview.is-digital-orange .clock-ring,
.admin-clock-preview.is-digital-blue .clock-ring {
  display: none;
}

.admin-clock-preview.is-digital-orange .clock-digital,
.admin-clock-preview.is-digital-blue .clock-digital {
  display: block;
}

.admin-clock-preview.is-digital-orange .clock-digital {
  color: #ff5c1b;
  text-shadow: 0 0 8px rgba(255, 92, 27, 0.86), 0 0 18px rgba(255, 92, 27, 0.55);
}

.admin-clock-preview.is-digital-blue .clock-digital {
  color: #17c9ff;
  text-shadow: 0 0 8px rgba(23, 201, 255, 0.9), 0 0 18px rgba(23, 201, 255, 0.62);
}

.admin-traffic-light-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.admin-traffic-light-row {
  display: grid;
  grid-template-columns: 14px 1fr 96px;
  align-items: center;
  gap: 12px;
  min-height: 74px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.admin-traffic-light-row::before {
  width: 12px;
  height: 44px;
  border-radius: 999px;
  content: "";
}

.admin-traffic-light-row.is-green::before {
  background: #18a65d;
}

.admin-traffic-light-row.is-yellow::before {
  background: #e9c22e;
}

.admin-traffic-light-row.is-red::before {
  background: #cf3436;
}

.admin-traffic-light-row span {
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 900;
}

.admin-traffic-light-row input {
  min-height: 50px;
  text-align: center;
}

.admin-traffic-light-row small {
  grid-column: 2 / -1;
  color: var(--muted);
  font-size: 0.94rem;
  font-weight: 780;
}

.admin-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px;
}

.admin-summary span,
.admin-summary small {
  color: var(--muted);
  font-size: 1.12rem;
  font-weight: 750;
}

.admin-summary strong {
  font-size: 2.05rem;
  line-height: 1;
}

.admin-summary small {
  margin-left: auto;
  text-align: right;
}

.admin-holiday-list {
  display: grid;
  gap: 10px;
  max-height: 360px;
  overflow: auto;
}

.admin-holiday-tools {
  display: grid;
  grid-template-columns: minmax(220px, 0.35fr) minmax(420px, 1fr) minmax(220px, auto);
  gap: 14px;
  align-items: end;
}

.admin-holiday-tools label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 1.58rem;
  font-weight: 950;
  line-height: 1.02;
}

.admin-section[data-admin-section="capacidad"] .admin-holiday-tools input,
.admin-section[data-admin-section="capacidad"] .admin-holiday-tools .ghost-button {
  height: 66px;
  min-height: 66px;
  font-size: 1.42rem;
  font-weight: 950;
}

.admin-holiday-item {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  min-height: 56px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.admin-section[data-admin-section="tenants"] {
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: transparent;
}

.tenant-company-admin-shell {
  --surface: #ffffff;
  --surface-2: #f5f8f7;
  --ink: #111c19;
  --muted: #5f706a;
  --line: #d2ddd8;
  --accent: #0f766e;
  --accent-strong: #0a554f;
  --accent-soft: #d9f3ef;
  --shadow-soft: 0 1px 3px rgba(19, 33, 29, 0.08);
  --radius: 8px;
  display: grid;
  gap: 0;
  width: 100%;
  margin: 0;
  color: var(--ink);
  font-family: inherit;
}

.tenant-company-admin-shell button,
.tenant-company-admin-shell input {
  font: inherit;
}

.tenant-company-admin-shell .admin-menu {
  display: none;
  grid-template-columns: 1fr;
  gap: 0;
}

.tenant-company-admin-shell .admin-menu-item {
  --card-accent: #0f766e;
  --card-accent-2: #14b8a6;
  --card-soft: #dcf7f2;
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 76px;
  padding: 14px 14px 14px 16px;
  overflow: hidden;
  border: 1px solid #d8e3df;
  border-left: 4px solid var(--card-accent);
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--surface) 0%, #fbfefd 60%, var(--card-soft) 100%);
  color: var(--ink);
  box-shadow: var(--shadow-soft);
  text-align: left;
  cursor: pointer;
}

.tenant-company-admin-shell .admin-menu-item [data-icon] {
  display: grid;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--card-accent), var(--card-accent-2));
  color: #fff;
}

.tenant-company-admin-shell .admin-menu-item strong {
  display: block;
  font-size: 0.95rem;
  line-height: 1.05;
}

.tenant-company-admin-shell .admin-menu-item small {
  display: block;
  max-width: 33ch;
  margin-top: 4px;
  color: #60716b;
  font-size: 0.73rem;
  font-weight: 800;
  line-height: 1.08;
}

.tenant-company-admin-shell .admin-panel {
  display: grid;
  align-content: start;
  gap: 20px;
  min-height: 0;
  padding: 24px;
  border: 1px solid #d8e3df;
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow-soft);
}

body.module-admin .tenant-company-admin-shell .admin-panel {
  min-height: 0;
}

.tenant-company-admin-shell .admin-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 52px;
}

.tenant-company-admin-shell .admin-panel h2 {
  margin: 0;
  color: var(--ink);
  font-size: 1.85rem;
  line-height: 1;
}

.tenant-company-admin-shell .tenant-admin-status-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 72px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #f8faf9;
}

.tenant-company-admin-shell .tenant-admin-status-bar > div:first-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.tenant-company-admin-shell .tenant-admin-status-bar span,
.tenant-company-admin-shell .tenant-admin-status-bar small {
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 850;
  line-height: 1.1;
}

.tenant-company-admin-shell .tenant-admin-status-bar strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 1.35rem;
  font-weight: 1000;
  line-height: 1.05;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tenant-company-admin-shell .tenant-status-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.tenant-company-admin-shell .tenant-status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  background: #d9f3ef;
  color: var(--accent-strong);
  font-size: 0.95rem;
  font-weight: 1000;
}

.tenant-company-admin-shell .tenant-status-pill[data-status="paused"] {
  background: #fff3cc;
  color: #7a5400;
}

.tenant-company-admin-shell .tenant-status-pill[data-status="disabled"] {
  background: #ffe2e2;
  color: #8f2024;
}

.tenant-company-admin-shell .tenant-picker-panel {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #ffffff;
}

.tenant-company-admin-shell .tenant-picker-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.tenant-company-admin-shell .tenant-picker-head strong {
  color: var(--ink);
  font-size: 1.15rem;
  font-weight: 1000;
}

.tenant-company-admin-shell .tenant-picker-list {
  overflow-x: auto;
}

.tenant-company-admin-shell .tenant-picker-table {
  width: 100%;
  border-collapse: collapse;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #ffffff;
}

.tenant-company-admin-shell .tenant-picker-table th,
.tenant-company-admin-shell .tenant-picker-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: 0.98rem;
  font-weight: 850;
  text-align: left;
  white-space: nowrap;
}

.tenant-company-admin-shell .tenant-picker-table th {
  background: #f0f5f3;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 1000;
  text-transform: uppercase;
}

.tenant-company-admin-shell .tenant-picker-table tr.is-selected td {
  background: var(--accent-soft);
}

.tenant-company-admin-shell .tenant-picker-table tr:last-child td {
  border-bottom: 0;
}

.tenant-company-admin-shell .tenant-picker-table em {
  display: inline-flex;
  padding: 5px 9px;
  border-radius: 999px;
  background: #d9f3ef;
  color: var(--accent-strong);
  font-size: 0.8rem;
  font-style: normal;
  font-weight: 1000;
}

.tenant-company-admin-shell .tenant-picker-table em[data-status="paused"] {
  background: #fff3cc;
  color: #7a5400;
}

.tenant-company-admin-shell .tenant-picker-table em[data-status="disabled"] {
  background: #ffe2e2;
  color: #8f2024;
}

.tenant-company-admin-shell .tenant-table-select {
  min-height: 36px !important;
  padding: 0 12px !important;
  font-size: 0.9rem !important;
}

.tenant-company-admin-shell .tenant-picker-empty {
  min-height: 44px;
  padding: 12px;
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  color: var(--muted);
  font-weight: 900;
}

.tenant-company-admin-shell .company-admin-back {
  min-height: 50px;
  padding: 0 18px;
  font-size: 1.45rem;
}

.tenant-company-admin-shell .company-admin-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 528px);
  gap: 20px;
  align-items: start;
}

.tenant-company-admin-shell .company-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  gap: 16px;
}

.tenant-company-admin-shell .admin-field {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 1.22rem;
  font-weight: 800;
}

.tenant-company-admin-shell .company-wide-field {
  grid-column: span 2;
}

.tenant-company-admin-shell .manual-entry {
  display: flex;
  align-items: center;
  min-height: 64px;
  width: 100%;
  overflow: hidden;
  padding: 0 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
  font-size: 1.18rem;
  font-weight: 850;
  outline: 0;
  white-space: nowrap;
}

.tenant-company-admin-shell .company-wide-field .manual-entry {
  align-items: flex-start;
  min-height: 100px;
  padding-top: 18px;
  white-space: normal;
}

.tenant-company-admin-shell .manual-entry:empty::before {
  color: #aeb7b3;
  content: attr(data-placeholder);
  pointer-events: none;
}

.tenant-company-admin-shell .manual-entry:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.14);
}

.tenant-company-admin-shell .company-logo-panel {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #f8faf9;
}

.tenant-company-admin-shell .company-logo-preview {
  display: grid;
  min-height: 218px;
  place-items: center;
  overflow: hidden;
  border: 1px dashed #b8c7c4;
  border-radius: var(--radius);
  background: #fff;
  color: var(--muted);
  font-size: 1.22rem;
  font-weight: 900;
}

.tenant-company-admin-shell .company-logo-preview img {
  display: block;
  max-width: 100%;
  max-height: 206px;
  object-fit: contain;
}

.tenant-company-admin-shell .company-logo-actions {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
}

.tenant-company-admin-shell .company-logo-note,
.tenant-company-admin-shell .company-logo-help {
  margin: 0;
  color: var(--muted);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.25;
}

.tenant-company-admin-shell .company-logo-note {
  color: var(--ink);
}

.tenant-company-admin-shell .primary-button,
.tenant-company-admin-shell .ghost-button,
.tenant-company-admin-shell .danger-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 64px;
  padding: 0 22px;
  border-radius: var(--radius);
  font-size: 1.45rem;
  font-weight: 900;
  cursor: pointer;
}

.tenant-company-admin-shell .primary-button {
  border: 1px solid var(--accent-strong);
  background: var(--accent);
  color: #fff;
}

.tenant-company-admin-shell .ghost-button {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
}

.tenant-company-admin-shell .ghost-button.is-selected {
  border-color: var(--accent);
  background: var(--accent-soft);
  color: var(--accent-strong);
}

.tenant-company-admin-shell .danger-button {
  border: 1px solid #9f2428;
  background: #c73436;
  color: #fff;
}

.tenant-company-admin-shell button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.tenant-company-admin-shell .company-admin-panel > .primary-button {
  justify-self: stretch;
  min-height: 66px;
}

@media (max-width: 900px) {
  .tenant-company-admin-shell .company-admin-layout,
  .tenant-company-admin-shell .company-form-grid {
    grid-template-columns: 1fr;
  }

  .tenant-company-admin-shell .tenant-admin-status-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .tenant-company-admin-shell .tenant-status-actions {
    justify-content: stretch;
  }

  .tenant-company-admin-shell .company-wide-field {
    grid-column: auto;
  }
}

.tenant-list {
  display: grid;
  gap: 10px;
}

.tenant-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 14px;
  min-height: 68px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.tenant-item.is-active {
  border-color: #0a746f;
  background: #e8f4f2;
}

.tenant-item-main {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.tenant-item strong,
.tenant-item span,
.tenant-item small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tenant-item strong {
  color: var(--ink);
  font-size: 1.14rem;
}

.tenant-item span {
  color: var(--muted);
  font-size: 0.98rem;
  font-weight: 750;
}

.tenant-item small {
  color: var(--muted);
  font-size: 0.92rem;
  font-weight: 700;
}

.tenant-meta {
  display: grid;
  gap: 3px;
}

.tenant-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.admin-holiday-item strong {
  color: #7d1f23;
  font-size: 1.12rem;
}

.admin-holiday-item span {
  display: grid;
  gap: 3px;
  color: var(--ink);
  font-size: 1.1rem;
  font-weight: 750;
}

.admin-holiday-item small {
  color: #7d1f23;
  font-size: 0.92rem;
  font-weight: 800;
}

.admin-holiday-delete {
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid #7d1f23;
  border-radius: 7px;
  background: #fff8f8;
  color: #7d1f23;
  font-size: 0.94rem;
  font-weight: 900;
  cursor: pointer;
}

.admin-holiday-delete:hover,
.admin-holiday-delete:focus-visible {
  background: #f7dede;
}

.admin-empty {
  margin: 0;
  color: var(--muted);
  font-size: 1.1rem;
  font-weight: 750;
}

.toast {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 90;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px;
  align-items: start;
  gap: 18px;
  width: min(540px, calc(100vw - 32px));
  min-height: 92px;
  padding: 24px 24px 22px 28px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: #111a17;
  color: #ffffff;
  box-shadow: 0 24px 70px rgba(17, 26, 23, 0.34);
  transform: translate(-50%, -50%);
}

.toast strong {
  display: block;
  color: inherit;
  font-size: 1.14rem;
  font-weight: 900;
  line-height: 1.35;
}

.toast button {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
}

.toast button:hover,
.toast button:focus-visible {
  background: rgba(255, 255, 255, 0.18);
  outline: none;
}

.unavailable-day-modal {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(17, 26, 23, 0.42);
}

.unavailable-day-card {
  width: min(420px, 100%);
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--unavailable-color), #111111 30%);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 22px 60px rgba(17, 26, 23, 0.28);
}

.unavailable-day-strip {
  height: 12px;
  background:
    linear-gradient(135deg, transparent 48%, rgba(255, 255, 255, 0.25) 48%),
    var(--unavailable-color);
}

.unavailable-day-content {
  display: grid;
  justify-items: center;
  gap: 14px;
  padding: 24px 28px 12px;
  text-align: center;
}

.unavailable-day-swatch {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(17, 17, 17, 0.34);
  border-radius: 8px;
  background:
    linear-gradient(135deg, transparent 50%, rgba(255, 255, 255, 0.22) 50%),
    var(--unavailable-color);
}

.unavailable-day-card h3,
.unavailable-day-card p {
  margin: 0;
}

.unavailable-day-card h3 {
  color: var(--ink);
  font-size: 1.38rem;
  line-height: 1.05;
}

.unavailable-day-card p {
  margin-top: 7px;
  color: var(--muted);
  font-size: 1rem;
  font-weight: 720;
  line-height: 1.35;
}

.unavailable-day-actions {
  display: flex;
  justify-content: center;
  padding: 12px 22px 22px;
}

.unavailable-day-actions .primary-button {
  min-height: 44px;
  padding: 0 16px;
  background: #111a17;
  border-color: #111a17;
}

.parts-stop-modal {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(17, 26, 23, 0.46);
}

.parts-stop-card {
  width: min(520px, 100%);
  overflow: hidden;
  border: 1px solid rgba(199, 47, 50, 0.45);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 24px 70px rgba(17, 26, 23, 0.3);
}

.parts-stop-strip {
  height: 12px;
  background: #c73436;
}

.parts-stop-content {
  padding: 28px 30px 10px;
  text-align: center;
}

.parts-stop-content h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1.62rem;
  line-height: 1.16;
}

.parts-stop-actions {
  display: flex;
  justify-content: center;
  gap: 14px;
  padding: 18px 24px 26px;
}

.parts-stop-actions button {
  min-width: 120px;
  min-height: 50px;
  font-size: 1.18rem;
  font-weight: 950;
}

.parts-stop-actions .primary-button {
  background: #c73436;
  border-color: #9f2428;
}

.vehicle-waiting-ingress-modal {
  position: fixed;
  inset: 0;
  z-index: 96;
  display: grid;
  place-items: center;
  padding: 28px;
  background: rgba(17, 26, 23, 0.36);
}

.vehicle-waiting-ingress-card {
  display: grid;
  place-items: center;
  width: min(1100px, calc(100vw - 56px));
  min-height: min(360px, 54vh);
  padding: 42px;
  border: 10px solid #ffffff;
  border-radius: 10px;
  background: #c9252d;
  color: #ffffff;
  text-align: center;
  box-shadow: 0 30px 90px rgba(17, 26, 23, 0.46);
}

.vehicle-waiting-ingress-card strong {
  margin: 0;
  color: #ffffff;
  font-size: clamp(3rem, 7vw, 7.8rem);
  font-weight: 1000;
  line-height: 1;
  letter-spacing: 0;
}

.missing-ht-production-modal {
  position: fixed;
  inset: 0;
  z-index: 98;
  display: grid;
  place-items: center;
  padding: 28px;
  background: rgba(17, 26, 23, 0.44);
}

.missing-ht-production-card {
  position: relative;
  display: grid;
  gap: 22px;
  justify-items: center;
  width: min(1180px, calc(100vw - 56px));
  min-height: min(390px, 68vh);
  padding: 44px;
  border: 10px solid #ffffff;
  border-radius: 10px;
  background: #c9252d;
  color: #ffffff;
  text-align: center;
  box-shadow: 0 30px 90px rgba(17, 26, 23, 0.5);
}

.missing-ht-production-card strong {
  margin: 0;
  color: #ffffff;
  font-size: clamp(2.25rem, 5.2vw, 6rem);
  font-weight: 1000;
  line-height: 1.04;
  letter-spacing: 0;
}

.missing-ht-production-card p {
  max-width: 720px;
  margin: 0;
  color: #ffffff;
  font-size: 1.25rem;
  font-weight: 900;
  line-height: 1.25;
}

.missing-ht-production-close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 3px solid rgba(255, 255, 255, 0.9);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  color: #ffffff;
  font-size: 2rem;
  font-weight: 1000;
  line-height: 1;
  cursor: pointer;
}

.missing-ht-production-form {
  display: grid;
  gap: 18px;
  width: min(680px, 100%);
  padding: 20px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  color: #0e241f;
  text-align: left;
}

.missing-ht-production-form label {
  display: grid;
  gap: 8px;
}

.missing-ht-production-form span {
  color: #0e241f;
  font-size: 1rem;
  font-weight: 1000;
}

.missing-ht-production-form input {
  width: 100%;
  min-height: 54px;
  padding: 10px 14px;
  border: 2px solid #c9d8d4;
  border-radius: 8px;
  background: #ffffff;
  color: #0e241f;
  font: inherit;
  font-size: 1.25rem;
  font-weight: 900;
}

.missing-ht-production-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.missing-ht-production-actions button {
  min-height: 50px;
  padding: 10px 18px;
  border: 2px solid #c9d8d4;
  border-radius: 8px;
  background: #ffffff;
  color: #0e241f;
  font: inherit;
  font-weight: 1000;
  cursor: pointer;
}

.missing-ht-production-actions button[type="submit"] {
  border-color: #0f7f78;
  background: #0f7f78;
  color: #ffffff;
}

.missing-ht-production-actions button:disabled {
  opacity: 0.55;
  cursor: wait;
}

.process-outside-hours-modal {
  position: fixed;
  inset: 0;
  z-index: 97;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(17, 26, 23, 0.52);
}

.process-outside-hours-card {
  display: grid;
  gap: 22px;
  width: min(680px, 100%);
  padding: 28px;
  border: 8px solid #ffffff;
  border-radius: 8px;
  background: #c9252d;
  color: #ffffff;
  box-shadow: 0 30px 90px rgba(17, 26, 23, 0.44);
}

.process-outside-hours-card header {
  display: grid;
  gap: 8px;
  text-align: center;
}

.process-outside-hours-card p,
.process-outside-hours-card h3,
.process-outside-hours-card strong {
  margin: 0;
  color: #ffffff;
}

.process-outside-hours-card p {
  font-size: 1.04rem;
  font-weight: 1000;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.process-outside-hours-card h3 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 1000;
  line-height: 1.02;
}

.process-outside-hours-card strong {
  font-size: 1.25rem;
  font-weight: 900;
}

.process-outside-hours-choice {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.process-outside-hours-choice button {
  min-height: 64px;
  border: 2px solid rgba(255, 255, 255, 0.76);
  font-size: 1.35rem;
  font-weight: 1000;
}

.process-advance-modal {
  position: fixed;
  inset: 0;
  z-index: 97;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(17, 26, 23, 0.52);
}

.process-advance-card {
  display: grid;
  gap: 22px;
  width: min(620px, 100%);
  padding: 28px;
  border: 8px solid #ffffff;
  border-radius: 8px;
  background: #10231f;
  color: #ffffff;
  box-shadow: 0 30px 90px rgba(17, 26, 23, 0.44);
}

.process-advance-card header {
  display: grid;
  gap: 8px;
  text-align: center;
}

.process-advance-card p,
.process-advance-card h3,
.process-advance-card strong,
.process-advance-card span {
  margin: 0;
  color: #ffffff;
}

.process-advance-card p {
  font-size: 1.04rem;
  font-weight: 1000;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.process-advance-card h3 {
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 1000;
  line-height: 1.02;
}

.process-advance-card strong {
  font-size: 1.25rem;
  font-weight: 900;
}

.process-advance-card span {
  color: #dce7e3;
  font-size: 1rem;
  font-weight: 800;
}

.process-advance-choice {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.process-advance-choice button {
  min-height: 64px;
  border: 2px solid rgba(255, 255, 255, 0.76);
  font-size: 1.35rem;
  font-weight: 1000;
}

.process-advance-card.is-selection {
  width: min(760px, 100%);
}

.process-advance-list {
  display: grid;
  gap: 10px;
  max-height: min(480px, 58vh);
  overflow: auto;
}

.process-advance-candidate {
  display: grid;
  grid-template-columns: minmax(88px, 0.34fr) minmax(150px, 1fr) minmax(150px, 0.8fr) minmax(118px, 0.55fr);
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 12px 14px;
  border: 2px solid rgba(255, 255, 255, 0.28);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  text-align: left;
  cursor: pointer;
}

.process-advance-candidate:hover,
.process-advance-candidate:focus-visible {
  border-color: rgba(255, 255, 255, 0.78);
  background: rgba(255, 255, 255, 0.16);
  outline: none;
}

.process-advance-candidate strong,
.process-advance-candidate span,
.process-advance-candidate small,
.process-advance-candidate em {
  margin: 0;
  color: #ffffff;
  font-style: normal;
  line-height: 1.15;
}

.process-advance-candidate strong {
  font-size: 1.2rem;
  font-weight: 1000;
}

.process-advance-candidate span {
  font-weight: 900;
}

.process-advance-candidate small,
.process-advance-candidate em {
  color: #dce7e3;
  font-size: 0.92rem;
  font-weight: 800;
}

.process-advance-footer {
  display: flex;
  justify-content: flex-end;
}

.process-advance-footer button {
  min-width: 180px;
  min-height: 54px;
  font-weight: 1000;
}

.admin-clear-operational-modal {
  position: fixed;
  inset: 0;
  z-index: 98;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(17, 26, 23, 0.54);
}

.admin-clear-operational-card {
  display: grid;
  gap: 18px;
  width: min(720px, 100%);
  max-height: min(760px, 92vh);
  overflow: auto;
  padding: 26px;
  border: 8px solid #ffffff;
  border-radius: 8px;
  background: #10231f;
  color: #ffffff;
  box-shadow: 0 30px 90px rgba(17, 26, 23, 0.44);
}

.admin-clear-operational-card header {
  display: grid;
  gap: 8px;
  text-align: center;
}

.admin-clear-operational-card header p,
.admin-clear-operational-card header h3,
.admin-clear-operational-card header span {
  margin: 0;
}

.admin-clear-operational-card header p {
  font-size: 1rem;
  font-weight: 1000;
  letter-spacing: 0.12em;
}

.admin-clear-operational-card header h3 {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1;
}

.admin-clear-operational-card header span {
  color: #dce7e3;
  font-weight: 850;
}

.admin-clear-all-option,
.admin-clear-option {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 64px;
  padding: 14px 16px;
  border: 2px solid rgba(255, 255, 255, 0.24);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.admin-clear-all-option input,
.admin-clear-option input {
  width: 22px;
  min-width: 22px;
  height: 22px;
}

.admin-clear-all-option strong,
.admin-clear-option strong,
.admin-clear-all-option small,
.admin-clear-option small {
  display: block;
  color: #ffffff;
  line-height: 1.2;
}

.admin-clear-all-option small,
.admin-clear-option small {
  color: #dce7e3;
  margin-top: 3px;
  font-weight: 800;
}

.admin-clear-option-list {
  display: grid;
  gap: 10px;
}

.admin-clear-operational-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

.admin-clear-operational-actions button {
  min-width: 180px;
  min-height: 58px;
  font-weight: 1000;
}

.process-stop-reason-modal {
  position: fixed;
  inset: 0;
  z-index: 95;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(17, 26, 23, 0.48);
}

.process-stop-reason-card {
  display: grid;
  gap: 16px;
  width: min(620px, 100%);
  padding: 24px;
  border: 1px solid rgba(173, 36, 40, 0.42);
  border-top: 12px solid #c72f32;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 26px 80px rgba(17, 26, 23, 0.32);
}

.process-stop-reason-card header {
  display: grid;
  gap: 5px;
}

.process-stop-reason-card p,
.process-stop-reason-card h3,
.process-stop-reason-card strong {
  margin: 0;
}

.process-stop-reason-card p {
  color: #0b5f8d;
  font-size: 0.9rem;
  font-weight: 1000;
  letter-spacing: 0.14em;
}

.process-stop-reason-card h3 {
  color: var(--ink);
  font-size: 1.75rem;
  line-height: 1.05;
}

.process-stop-reason-card strong {
  color: var(--muted);
  font-size: 1.08rem;
  line-height: 1.2;
}

.process-stop-reason-card small {
  color: #7d1f23;
  font-size: 0.95rem;
  font-weight: 900;
  line-height: 1.25;
}

.process-skip-reason-card {
  border-color: rgba(226, 184, 37, 0.58);
  border-top-color: #e2b825;
}

.process-stop-reason-card label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 1rem;
  font-weight: 900;
}

.process-stop-reason-card textarea {
  min-height: 150px;
  resize: vertical;
  border: 2px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  color: var(--ink);
  font: inherit;
  font-size: 1.08rem;
  font-weight: 780;
}

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

.process-stop-restart-grid input {
  min-height: 48px;
  border: 2px solid var(--line);
  border-radius: 8px;
  padding: 0 12px;
  color: var(--ink);
  font: inherit;
  font-size: 1.08rem;
  font-weight: 850;
}

.process-stop-reason-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

.process-stop-reason-actions button {
  min-height: 48px;
  padding: 0 18px;
  font-size: 1.08rem;
}

.reprogram-modal {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 28px;
  background: rgba(17, 26, 23, 0.46);
}

.reprogram-card {
  width: min(900px, 100%);
  max-height: calc(100vh - 28px);
  overflow: hidden;
  border: 1px solid rgba(10, 116, 111, 0.46);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 24px 70px rgba(17, 26, 23, 0.3);
}

.reprogram-strip {
  height: 12px;
  background: #0a746f;
}

.reprogram-content {
  display: grid;
  gap: 10px;
  padding: 22px 42px 12px;
  text-align: center;
}

.reprogram-heading {
  display: grid;
  gap: 10px;
  align-items: start;
  min-height: 0;
}

.reprogram-title-copy {
  justify-self: center;
  padding: 0;
  text-align: center;
}

.reprogram-week-actions {
  order: -1;
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  justify-self: end;
  max-width: 100%;
}

.reprogram-week-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 38px;
  min-width: 86px;
  padding: 0 13px;
  border: 2px solid #111111;
  border-radius: 0;
  background: #ffffff;
  color: #111111;
  font-family: inherit;
  font-size: 0.98rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
}

.reprogram-week-button.is-back {
  border-color: #d4a900;
  background: #ffd84d;
  color: #111a17;
}

.reprogram-week-button.is-forward {
  border-color: #0a746f;
  background: #12867f;
  color: #ffffff;
}

.reprogram-week-icon {
  position: relative;
  display: inline-block;
  width: 24px;
  height: 14px;
  flex: 0 0 24px;
}

.reprogram-week-icon::before {
  content: "";
  position: absolute;
  top: 6px;
  left: 2px;
  width: 20px;
  height: 3px;
  border-radius: 999px;
  background: currentColor;
}

.reprogram-week-icon::after {
  content: "";
  position: absolute;
  top: 2px;
  width: 9px;
  height: 9px;
  border-top: 3px solid currentColor;
  border-left: 3px solid currentColor;
}

.reprogram-week-icon.is-left::after {
  left: 1px;
  transform: rotate(-45deg);
}

.reprogram-week-icon.is-right::after {
  right: 1px;
  transform: rotate(135deg);
}

.reprogram-week-button:hover,
.reprogram-week-button:focus-visible {
  filter: brightness(1.04);
  box-shadow: 0 0 0 3px rgba(17, 26, 23, 0.12);
}

.reprogram-content h3,
.reprogram-content p {
  margin: 0;
}

.reprogram-content h3 {
  color: var(--ink);
  font-size: 2.15rem;
  line-height: 1.12;
}

.reprogram-content p {
  color: var(--muted);
  font-size: 1.34rem;
  font-weight: 820;
}

.reprogram-content strong {
  color: var(--accent);
  font-size: 1.34rem;
  line-height: 1.18;
}

.reprogram-slot-list {
  display: grid;
  gap: 10px;
  margin-top: 6px;
  max-height: min(520px, 62vh);
  overflow: auto;
  text-align: left;
}

.reprogram-slot-header {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) minmax(90px, 0.42fr) minmax(122px, 0.52fr);
  gap: 10px;
  padding: 0 18px 2px;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 950;
  line-height: 1.1;
  text-transform: uppercase;
}

.reprogram-slot-header span:nth-child(2) {
  justify-self: center;
  text-align: center;
}

.reprogram-slot-header span:nth-child(3) {
  justify-self: end;
  text-align: right;
}

.reprogram-slot-option {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) minmax(90px, 0.42fr) minmax(122px, 0.52fr);
  gap: 10px;
  align-items: center;
  min-height: 60px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbfa;
  color: var(--ink);
}

.reprogram-slot-reception {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: baseline;
  min-width: 0;
}

.reprogram-slot-time,
.reprogram-slot-repair,
.reprogram-slot-sequence {
  color: var(--accent);
}

.reprogram-slot-repair {
  justify-self: center;
  text-align: center;
}

.reprogram-slot-sequence {
  justify-self: end;
  font-size: 1.2rem;
  font-weight: 950;
  text-align: right;
}

.reprogram-slot-option:hover,
.reprogram-slot-option:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 8px 18px rgba(10, 116, 111, 0.12);
}

.reprogram-slot-option strong {
  color: var(--ink);
  font-size: 1.16rem;
  line-height: 1.08;
}

.reprogram-slot-option .reprogram-slot-time,
.reprogram-slot-option .reprogram-slot-repair,
.reprogram-slot-option .reprogram-slot-sequence {
  color: var(--accent);
  font-size: 1.16rem;
  font-weight: 900;
}

.reprogram-empty {
  min-height: 70px;
  padding: 20px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  font-weight: 850;
  text-align: center;
}

.reprogram-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 12px 42px 20px;
}

.reprogram-actions button {
  min-height: 54px;
  font-size: 1.24rem;
  font-weight: 950;
}

@media (max-width: 780px) {
  .reprogram-heading {
    gap: 12px;
  }

  .reprogram-title-copy {
    padding: 0;
  }

  .reprogram-week-actions {
    justify-content: flex-end;
    flex-wrap: wrap;
  }

  .reprogram-week-button {
    min-height: 34px;
    padding: 0 9px;
    font-size: 0.88rem;
  }

  .reprogram-slot-header,
  .reprogram-slot-option {
    grid-template-columns: minmax(160px, 1fr) minmax(74px, 0.38fr) minmax(98px, 0.48fr);
    gap: 6px;
  }

  .reprogram-slot-header {
    padding: 0 12px;
    font-size: 0.66rem;
  }

  .reprogram-slot-option {
    padding: 9px 12px;
  }

  .reprogram-slot-option strong {
    font-size: 0.96rem;
  }

  .reprogram-slot-option .reprogram-slot-time,
  .reprogram-slot-option .reprogram-slot-repair,
  .reprogram-slot-option .reprogram-slot-sequence {
    font-size: 0.96rem;
  }
}

@media print {
  body.parts-request-printing > *:not(.parts-request-modal) {
    display: none !important;
  }

  body.parts-request-printing .parts-request-modal {
    position: static;
    display: block !important;
    padding: 0;
    background: #ffffff;
  }

  body.parts-request-printing .parts-request-sheet {
    width: 100%;
    max-height: none;
    border: 0;
    box-shadow: none;
  }

  body.parts-request-printing .parts-request-actions,
  body.parts-request-printing .parts-request-footer {
    display: none !important;
  }
}

@media (max-width: 1120px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: fixed;
    height: 100vh;
  }

  .nav-list {
    display: grid;
    min-height: 0;
    overflow-y: auto;
  }

  .system-note {
    display: none;
  }

  .two-column,
  .process-grid,
  .appointment-boards,
  .vehicle-process-layout,
  #orderForm,
  .order-form-grid,
  .parts-request-grid,
  .parts-warehouse-actions {
    grid-template-columns: 1fr;
  }

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

  .parts-request-row {
    grid-template-columns: 70px minmax(170px, 1fr) 120px 150px 40px;
    min-width: 640px;
  }

  .parts-request-row.is-upload-only {
    grid-template-columns: 70px minmax(170px, 1fr) 120px 40px;
    min-width: 480px;
  }

  .stopped-vehicle-card,
  .delivered-vehicle-card {
    grid-template-columns: 1fr;
  }

  .delivery-board-shell {
    padding: 14px;
  }

  .delivery-board-canvas {
    min-width: 980px;
  }

  .delivery-board-shell .delivery-board-proposal {
    min-width: 0;
  }

  .delivery-dashboard-hero,
  .delivery-main-grid {
    grid-template-columns: 1fr;
  }

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

  .delivery-insight-kpi-grid {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }

  .delivery-performance-grid {
    grid-template-columns: 1fr;
  }

  .process-clock-fullscreen {
    min-height: calc(100vh - 16px);
  }

  .process-clock-fullscreen-body {
    grid-template-columns: 1fr;
  }

  .fullscreen-signal-circles {
    grid-template-columns: repeat(3, max-content);
    width: 100%;
    place-self: stretch;
    min-height: clamp(240px, 34vh, 360px);
  }

  .fullscreen-signal-circles .clock-signal-bar {
    width: clamp(143px, 20.8vw, 234px);
    height: clamp(143px, 20.8vw, 234px);
  }

  .technician-photo-editor {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .technician-main-row,
  .technician-detail-row {
    grid-template-columns: 1fr;
  }

  .technician-actions {
    justify-items: start;
  }
}

@media (max-width: 1280px) {
  .sidebar {
    gap: 20px;
    width: 320px;
    max-width: calc(100vw - 14px);
    padding: 20px;
    transform: translateX(calc(-100% + 14px));
  }

  .sidebar::after {
    width: 14px;
  }

  .brand {
    gap: 14px;
    min-height: 72px;
  }

  .brand-mark {
    width: 64px;
    height: 64px;
    font-size: 1.3rem;
  }

  .brand strong,
  .system-note strong {
    font-size: 1.4rem;
  }

  .brand small,
  .system-note span {
    font-size: 1rem;
  }

  .nav-list a {
    padding: 8px 12px 8px 14px;
    border-left-width: 3px;
    border-radius: 6px;
    font-size: 1.14rem;
  }

  .parts-nav-summary {
    min-height: 40px;
    margin: -2px 6px 2px 14px;
    padding: 8px 10px;
    font-size: 0.9rem;
  }

  .sidebar-session {
    gap: 14px;
    padding: 18px;
  }

  .session-user {
    font-size: 1.08rem;
  }

  .sidebar-session .ghost-button {
    min-height: 50px;
    padding: 0 16px;
    font-size: 1.02rem;
  }
}

@media (max-width: 760px) {
  .technician-grid {
    grid-template-columns: 1fr;
  }

  .vehicle-delivered-panel .panel-heading {
    align-items: flex-start;
  }

  .delivery-heading-actions {
    justify-content: flex-start;
  }

  .delivery-board-shell {
    padding: 10px;
  }

  .delivery-board-canvas {
    min-width: 920px;
    padding: 12px;
  }

  .delivery-board-shell .delivery-board-proposal {
    min-width: 0;
    padding: 12px;
  }

  .delivery-dashboard-hero {
    min-height: 0;
    padding: 16px;
  }

  .delivery-dashboard-hero h3 {
    font-size: 1.85rem;
  }

  .delivery-kpi-grid {
    grid-template-columns: 1fr;
  }

  .delivery-space-summary {
    grid-template-columns: 1fr;
  }

  .delivery-slot-board {
    grid-template-columns: repeat(5, minmax(72px, 1fr));
    min-height: 320px;
  }

  .delivery-section-title {
    grid-template-columns: 1fr;
    align-items: flex-start;
  }

  .delivery-board-hero h3,
  .delivery-hours-panel h4 {
    font-size: 1.85rem;
  }

  .delivery-results-title h4 {
    font-size: 1.55rem;
  }

  body.module-reloj-proceso .workspace {
    overflow: hidden;
  }

  .light-damage-countdown .clock-ring {
    width: 320px;
    height: 320px;
    box-shadow: inset 0 0 0 24px #312925, 0 12px 28px rgba(17, 17, 17, 0.22);
  }

  .light-damage-countdown .clock-face {
    width: 212px;
    height: 212px;
    border-width: 13px;
  }

  .light-damage-countdown .clock-face strong {
    font-size: 4.2rem;
  }

  .process-clock-fullscreen {
    overflow-x: hidden;
    padding: 8px;
  }

  .process-clock-fullscreen-header {
    display: grid;
    flex-direction: column;
    align-items: center;
    grid-template-columns: 1fr;
    gap: 8px;
    width: 100%;
    max-width: calc(100vw - 28px);
    justify-self: center;
    text-align: center;
  }

  .process-clock-fullscreen-header span {
    justify-self: center;
  }

  .process-clock-fullscreen-header p {
    justify-self: center;
    white-space: normal;
  }

  .process-clock-fullscreen-header h2 {
    display: block;
    width: auto;
    max-width: 100%;
    font-size: clamp(2rem, 8.5vw, 3.4rem);
    overflow-wrap: break-word;
    white-space: normal;
    text-wrap: balance;
  }

  .process-clock-fullscreen-body,
  .process-clock-fullscreen-main,
  .process-clock-fullscreen .light-damage-countdown,
  .process-clock-fullscreen .clock-actions,
  .fullscreen-signal-circles {
    max-width: calc(100vw - 28px);
  }

  .process-clock-fullscreen .clock-ring {
    width: min(84vw, 430px);
    height: min(84vw, 430px);
  }

  .process-clock-fullscreen .clock-face {
    width: min(57vw, 288px);
    height: min(57vw, 288px);
  }

  .process-clock-fullscreen .clock-face strong {
    font-size: clamp(4.4rem, 16vw, 6.4rem);
  }

  .process-clock-fullscreen .clock-digital strong {
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: 12px;
    font-size: min(clamp(12.9rem, 46.5vw, 20.1rem), calc((100vw - 32px) / 3.25), 40vh);
  }

  .process-clock-status-strip {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .process-clock-fullscreen .clock-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .process-clock-fullscreen .clock-action-button {
    min-width: 0;
    min-height: 72px;
    border-radius: 12px;
    font-size: clamp(0.98rem, 3.4vw, 1.35rem);
  }

  .fullscreen-signal-circles {
    grid-template-columns: repeat(3, max-content);
    place-content: center;
    min-height: min(34vh, 250px);
    gap: 10px;
  }

  .fullscreen-signal-circles .clock-signal-bar {
    width: min(29vw, 172px);
    height: min(29vw, 172px);
  }

  .process-clock-back-button {
    right: 10px;
    bottom: 10px;
    min-width: 86px;
    min-height: 46px;
    padding: 0 12px;
    border-radius: 10px;
    font-size: 0.78rem;
  }

  .workspace {
    padding: 16px;
  }

  .topbar,
  .panel-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .parts-board-search {
    grid-template-columns: 1fr;
    width: 100%;
    margin-left: 0;
  }

  .parts-board-search-row {
    padding-inline: 16px;
  }

  body.module-para-repuestos #para-repuestos > .panel-heading {
    grid-template-columns: 1fr;
  }

  .parts-board-range-head,
  body.module-para-repuestos #partsRequestBoardSummary {
    justify-self: start;
  }

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

  .form-grid,
  #orderForm,
  .order-form-grid,
  .process-fields,
  .mini-grid,
  .admin-icon-menu,
  .admin-grid,
  .admin-check-grid,
  .admin-color-palette,
  .admin-clock-style-grid,
  .admin-traffic-light-grid {
    grid-template-columns: 1fr;
  }

  .admin-layout .process-fields {
    grid-template-columns: 1fr;
  }

  #admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-grid,
  #admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .process-fields,
  #admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-color-palette,
  #admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-check-grid,
  #admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .admin-color-row {
    grid-template-columns: 1fr;
  }

  #admin .admin-section:not([data-admin-section="tenants"]):not([data-admin-section="capacidad"]) .process-toggles label {
    flex-basis: 100%;
  }

  .admin-process-table {
    overflow-x: visible;
  }

  .admin-process-table-head {
    display: none;
  }

  .admin-process-grid .process-card,
  #admin .admin-section[data-admin-section="procesos"] .admin-process-grid .process-card {
    grid-template-columns: 1fr;
    min-width: 0;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
  }

  .admin-process-grid {
    gap: 14px;
    padding: 14px;
  }

  .admin-user-profiles-toolbar,
  .admin-user-profile-card,
  .admin-user-form-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-user-profiles-layout,
  .admin-user-form-grid,
  .admin-user-permission-grid,
  .admin-user-filterbar,
  .admin-user-access-grid {
    grid-template-columns: 1fr;
  }

  .admin-user-access-head {
    flex-direction: column;
  }

  .admin-user-profile-actions {
    flex-direction: column;
  }

  .admin-user-new-button,
  .admin-user-profile-actions .ghost-button,
  .admin-user-profile-actions .danger-button {
    width: 100%;
  }

  #admin .admin-section[data-admin-section="procesos"] .process-field-label {
    display: block;
    color: var(--muted);
    font-size: 1.08rem;
    font-weight: 950;
    line-height: 1;
  }

  #admin .admin-section[data-admin-section="procesos"] .process-cell {
    display: grid;
    gap: 6px;
  }

  #admin .admin-section[data-admin-section="procesos"] .process-row-check {
    justify-content: flex-start;
    gap: 8px;
    min-height: 48px;
    font-size: 1.28rem;
  }

  #admin .admin-section[data-admin-section="procesos"] .process-row-check span {
    display: inline;
  }

  .process-row-actions,
  #admin .admin-section[data-admin-section="procesos"] .process-remove-button {
    width: 100%;
  }

  .admin-capacity-kpi-grid,
  .admin-capacity-schedule-grid,
  .admin-section[data-admin-section="capacidad"] .admin-calendar-panels,
  .admin-section[data-admin-section="capacidad"] .admin-special-conditions-grid {
    grid-template-columns: 1fr;
  }

  .week-board {
    grid-template-columns: 72px repeat(6, 160px);
  }

  .appointment-boards {
    padding: 14px;
  }

  .appointment-board-card {
    grid-template-columns: 1fr;
  }

  .parts-calendar {
    grid-template-columns: 1fr;
    padding: 12px;
  }

  .tenant-item {
    grid-template-columns: 1fr;
  }

  .tenant-actions {
    justify-content: flex-start;
  }

  body.appointment-form-open #nueva-ficha {
    inset: 10px;
  }

  #orderForm {
    padding: 18px;
  }

  #orderForm label:has([data-private-field="customer"]),
  #orderForm label:has([data-private-field="phone"]),
  #orderForm label:has([name="advisor"]) {
    grid-column: 1 / -1;
  }

  .parts-request-modal {
    padding: 8px;
  }

  .parts-request-header,
  .parts-request-footer,
  .parts-request-section-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .parts-request-actions,
  .parts-request-footer > div {
    flex-wrap: wrap;
  }
}

@media (max-width: 1120px) {
  body.appointment-form-open #orderForm {
    grid-template-columns: 1fr;
  }

  body.appointment-form-open .order-client-section,
  body.appointment-form-open .order-schedule-section,
  body.appointment-form-open .order-control-section,
  body.appointment-form-open .order-notes-section {
    grid-column: 1 / -1;
  }

  body.appointment-form-open .order-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.appointment-form-open .order-client-section .order-form-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  body.appointment-form-open .order-schedule-section .order-form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.appointment-form-open .order-control-section .order-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  body.appointment-form-open #nueva-ficha {
    inset: auto;
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
    transform: translate(-50%, -50%);
  }

  body.appointment-form-open #nueva-ficha > .panel-heading {
    align-items: center;
    flex-direction: column;
    min-height: auto;
    padding: 12px;
  }

  body.appointment-form-open #nueva-ficha > .panel-heading h2 {
    font-size: 1.68rem;
    line-height: 1.1;
    white-space: normal;
  }

  body.appointment-form-open #nueva-ficha .eyebrow {
    display: block;
  }

  body.appointment-form-open #nueva-ficha .appointment-heading-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  body.appointment-form-open #nueva-ficha .ghost-button,
  body.appointment-form-open #nueva-ficha .primary-button,
  body.appointment-form-open #nueva-ficha .danger-button {
    min-height: 48px;
    padding: 0 12px;
    font-size: 1.2rem;
  }

  body.appointment-form-open #orderForm {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 14px;
    overflow: auto;
  }

  body.appointment-form-open .order-client-section,
  body.appointment-form-open .order-schedule-section,
  body.appointment-form-open .order-control-section,
  body.appointment-form-open .order-notes-section {
    grid-column: 1 / -1;
  }

  body.appointment-form-open .order-form-section {
    gap: 10px;
    padding: 12px;
  }

  body.appointment-form-open .order-form-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  body.appointment-form-open #orderForm label:has([data-private-field="customer"]),
  body.appointment-form-open #orderForm label:has([data-private-field="phone"]),
  body.appointment-form-open #orderForm label:has([name="advisor"]) {
    grid-column: auto;
  }

  body.appointment-form-open #orderForm .checkbox-label {
    gap: 10px;
    min-height: 52px;
    padding: 8px 10px;
    font-size: 1.2rem;
    line-height: 1.15;
  }

  body.appointment-form-open #orderForm .checkbox-label input {
    width: 18px;
    min-height: 18px;
  }
}

@media (max-width: 760px) {
  body.appointment-form-open #orderForm .order-client-section .order-field {
    grid-column: 1 / -1 !important;
    order: initial !important;
  }

  body.appointment-form-open #orderForm .order-history-button {
    grid-column: 1 / -1 !important;
    order: initial !important;
  }

  body.appointment-form-open #orderForm .order-advisor-history-group {
    grid-column: 1 / -1 !important;
    order: initial !important;
    grid-template-columns: 1fr;
  }

  body.appointment-form-open #orderForm .appointment-action-row {
    grid-column: 1 / -1;
    order: initial;
  }

  body.appointment-form-open #orderForm .appointment-action-row {
    grid-template-columns: 1fr;
  }
}

.order-client-section .order-field-express,
.order-client-section .order-field-ht,
.order-client-section .order-field-budget-hours {
  grid-column: span 2;
}

.order-client-section .order-field-budget-hours {
  order: 3;
}

.order-client-section .order-field-customer {
  order: 4;
}

.order-client-section .order-field-phone {
  order: 5;
}

.order-client-section .order-field-customer,
.order-client-section .order-field-phone,
.order-client-section .order-field-email {
  grid-column: span 2;
}

.order-client-section .order-field-email {
  order: 6;
}

.order-client-section .order-field-brand {
  order: 7;
}

.order-client-section .order-field-model {
  order: 8;
}

.order-client-section .order-field-plate {
  order: 9;
}

.order-client-section .order-field-color {
  order: 10;
}

.order-client-section .order-advisor-history-group {
  order: 11;
}

.order-client-section .appointment-action-row {
  order: 12;
}

body.appointment-form-open #orderForm .order-client-section .order-form-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

body.appointment-form-open #orderForm .order-field-express,
body.appointment-form-open #orderForm .order-field-ht,
body.appointment-form-open #orderForm .order-field-budget-hours {
  grid-column: span 4;
}

body.appointment-form-open #orderForm .order-field-express { order: 1; }
body.appointment-form-open #orderForm .order-field-ht { order: 2; }
body.appointment-form-open #orderForm .order-field-budget-hours { order: 3; }
body.appointment-form-open #orderForm .order-field-customer,
body.appointment-form-open #orderForm .order-field-phone,
body.appointment-form-open #orderForm .order-field-email {
  grid-column: span 4;
}
body.appointment-form-open #orderForm .order-field-customer { order: 4; }
body.appointment-form-open #orderForm .order-field-phone { order: 5; }
body.appointment-form-open #orderForm .order-field-email { order: 6; }
body.appointment-form-open #orderForm .order-field-brand { order: 7; }
body.appointment-form-open #orderForm .order-field-model { order: 8; }
body.appointment-form-open #orderForm .order-field-plate { order: 9; }
body.appointment-form-open #orderForm .order-field-brand,
body.appointment-form-open #orderForm .order-field-model,
body.appointment-form-open #orderForm .order-field-plate {
  grid-column: span 4;
}
body.appointment-form-open #orderForm .order-field-color { order: 10; }
body.appointment-form-open #orderForm .order-field-advisor { order: 11; }
body.appointment-form-open #orderForm .order-field-labor-materials-value { order: 12; }
body.appointment-form-open #orderForm .order-field-color,
body.appointment-form-open #orderForm .order-field-advisor,
body.appointment-form-open #orderForm .order-field-labor-materials-value {
  grid-column: span 4;
}
body.appointment-form-open #orderForm .appointment-action-row {
  order: 13;
  grid-column: 1 / -1;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
body.appointment-form-open #orderForm .order-schedule-section .order-form-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* === 20. ADMIN › TÉCNICOS — CANONICAL BLOCK === */
/* Corrección final Admin > Técnicos */
#admin .admin-section[data-admin-section="tecnicos"] .technician-grid {
  grid-template-columns: repeat(2, minmax(620px, 1fr)) !important;
  gap: 14px !important;
  overflow-x: auto !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-card {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 150px !important;
  grid-template-rows: auto auto !important;
  gap: 10px 14px !important;
  padding: 12px !important;
  min-width: 620px !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-main-row {
  grid-column: 1 !important;
  grid-row: 1 !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-detail-row {
  grid-column: 1 !important;
  grid-row: 2 !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 8px !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-card label,
#admin .admin-section[data-admin-section="tecnicos"] .technician-photo-upload {
  font-size: .74rem !important;
  line-height: 1.05 !important;
  font-weight: 850 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-card input,
#admin .admin-section[data-admin-section="tecnicos"] .technician-card select {
  min-height: 34px !important;
  padding: 5px 8px !important;
  font-size: .78rem !important;
  border-radius: 6px !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-photo-editor {
  grid-column: 2 !important;
  grid-row: 1 / span 2 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  grid-template-areas:
    "photo"
    "upload"
    "actions" !important;
  place-items: center !important;
  align-content: center !important;
  gap: 7px !important;
  min-width: 0 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-photo-preview {
  grid-area: photo !important;
  width: 82px !important;
  height: 82px !important;
  font-size: 1.15rem !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-photo-upload {
  grid-area: upload !important;
  justify-items: center !important;
  text-align: center !important;
  min-height: 0 !important;
  font-size: .74rem !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-photo-upload span {
  width: 100% !important;
  min-height: 28px !important;
  font-size: .72rem !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-actions {
  grid-area: actions !important;
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 6px !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-active-toggle {
  grid-column: 1 / -1 !important;
  justify-self: center !important;
  gap: 5px !important;
  font-size: .7rem !important;
  line-height: 1 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-active-toggle input[type="checkbox"] {
  width: 14px !important;
  height: 14px !important;
  min-height: 14px !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-actions .ghost-button,
#admin .admin-section[data-admin-section="tecnicos"] .technician-actions .danger-button {
  width: 100% !important;
  min-height: 28px !important;
  padding: 4px 8px !important;
  font-size: .7rem !important;
  line-height: 1 !important;
  border-radius: 6px !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-actions .process-remove-button {
  margin-left: 0 !important;
}

@media (max-width: 1120px) {
  #admin .admin-section[data-admin-section="tecnicos"] .technician-grid {
    grid-template-columns: 1fr !important;
  }

  #admin .admin-section[data-admin-section="tecnicos"] .technician-card {
    min-width: 0 !important;
  }
}

/* Admin > Técnicos: formulario final basado en mockup */
#admin .admin-section[data-admin-section="tecnicos"] .technician-grid {
  grid-template-columns: repeat(2, minmax(560px, 1fr)) !important;
  gap: 16px !important;
  align-items: start !important;
  overflow-x: auto !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-card {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 160px !important;
  gap: 14px !important;
  min-width: 0 !important;
  padding: 14px !important;
  border: 1px solid var(--line) !important;
  border-radius: 8px !important;
  background: #fbfdfc !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-form-panel {
  display: grid !important;
  gap: 12px !important;
  min-width: 0 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-card-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-card-header strong {
  color: var(--ink) !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-fields-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px 10px !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-fields-grid label {
  display: grid !important;
  gap: 4px !important;
  color: var(--muted) !important;
  font-size: .78rem !important;
  line-height: 1 !important;
  font-weight: 850 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-fields-grid input,
#admin .admin-section[data-admin-section="tecnicos"] .technician-fields-grid select {
  width: 100% !important;
  min-height: 38px !important;
  padding: 7px 10px !important;
  border: 1px solid var(--line) !important;
  border-radius: 7px !important;
  background: var(--surface) !important;
  color: var(--ink) !important;
  font-size: .86rem !important;
  font-weight: 850 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-photo-editor {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0 !important;
  padding: 16px 12px !important;
  border: 1px dashed var(--line) !important;
  border-radius: 8px !important;
  background: #f4f8f6 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-photo-preview {
  grid-area: preview !important;
  width: 80px !important;
  height: 80px !important;
  border-radius: 50% !important;
  font-size: 1.28rem !important;
  background: #0a746f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.85)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='3.5'/%3E%3Cpath d='M5 20c0-3.5 3.1-6 7-6s7 2.5 7 6'/%3E%3C/svg%3E") center/60% no-repeat !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-photo-upload {
  grid-area: upload !important;
  position: relative !important;
  display: grid !important;
  gap: 6px !important;
  justify-items: center !important;
  color: var(--muted) !important;
  text-align: center !important;
  font-size: .78rem !important;
  line-height: 1 !important;
  font-weight: 850 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-photo-upload span {
  display: inline-grid !important;
  place-items: center !important;
  min-height: 34px !important;
  width: 120px !important;
  padding: 6px 12px !important;
  border: 1px solid #0b6f4b !important;
  border-radius: 7px !important;
  background: #16824c !important;
  color: #ffffff !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-actions {
  display: grid !important;
  grid-template-columns: 1fr !important;
  width: 100% !important;
  gap: 8px !important;
  margin-top: 16px !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-actions .ghost-button,
#admin .admin-section[data-admin-section="tecnicos"] .technician-actions .danger-button {
  width: 100% !important;
  min-height: 34px !important;
  padding: 6px 10px !important;
  border-radius: 7px !important;
  font-size: .78rem !important;
  line-height: 1 !important;
  font-weight: 850 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-active-toggle {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  color: var(--muted) !important;
  font-size: .78rem !important;
  line-height: 1 !important;
  font-weight: 850 !important;
}

#admin .admin-section[data-admin-section="tecnicos"] .technician-active-toggle input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  padding: 0 !important;
}

@media (max-width: 1280px) {
  #admin .admin-section[data-admin-section="tecnicos"] .technician-grid {
    grid-template-columns: 1fr !important;
  }

  #admin .admin-section[data-admin-section="tecnicos"] .technician-card {
    min-width: 0 !important;
  }
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .admin-customer-communication {
  display: grid;
  gap: 14px;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .admin-customer-communication > label {
  display: grid;
  max-width: 520px;
  gap: 6px;
  color: var(--muted);
  font-size: 1rem !important;
  font-weight: 850;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .admin-customer-communication input:not([type="checkbox"]),
#admin .admin-section[data-admin-section="comunicacion-cliente"] .admin-customer-communication textarea {
  min-height: 46px !important;
  padding: 10px 12px !important;
  font-size: .98rem !important;
  font-weight: 750 !important;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-grid {
  display: grid;
  grid-template-columns: minmax(320px, 720px);
  gap: 0;
  overflow: hidden;
  border: 1px solid #c7d1cf;
  border-radius: 10px;
  background: #dce3e4;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state {
  display: grid !important;
  grid-template-columns: 22px 74px minmax(0, 1fr);
  align-items: center;
  gap: 14px !important;
  min-height: 76px !important;
  padding: 10px 18px;
  border: 0;
  border-bottom: 1px solid #f3f7f6;
  border-radius: 0;
  background: linear-gradient(180deg, #e5eaeb, #d5ddde);
  color: var(--ink);
  font-size: 1rem !important;
  font-weight: 850 !important;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state:last-child {
  border-bottom: 0;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state:has(input:checked) {
  background: linear-gradient(180deg, #ecfff7, #d8f4e7);
  box-shadow: inset 5px 0 0 #16824c;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state input[type="checkbox"] {
  width: 16px !important;
  min-height: 16px !important;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-icon {
  display: grid;
  place-items: center;
  color: #566161;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-icon .technician-role-icon,
#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-icon {
  width: 56px;
  height: 56px;
  color: #566161;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-icon .technician-role-icon circle {
  fill: #6b7777;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-copy {
  display: grid;
  gap: 3px;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-copy strong {
  color: #101817;
  font-size: 1.45rem;
  line-height: 1;
  font-weight: 950;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-copy small {
  color: #5f6a67;
  font-size: .96rem;
  font-weight: 750;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-channel-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  gap: 14px;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-channel-card {
  position: relative;
  display: grid !important;
  grid-template-columns: 22px 52px minmax(0, 1fr);
  align-items: center;
  gap: 12px !important;
  min-height: 98px !important;
  padding: 16px;
  border: 2px solid transparent;
  border-radius: 10px;
  color: #ffffff;
  font-size: 1rem !important;
  font-weight: 900 !important;
  box-shadow: 0 8px 18px rgba(17, 24, 23, .12);
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-channel-card.is-whatsapp {
  background: linear-gradient(180deg, #55c86d, #1f9146);
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-channel-card.is-email {
  background: linear-gradient(180deg, #4aa5eb, #176eb2);
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-channel-card.is-sms {
  background: linear-gradient(180deg, #a4adb5, #69737b);
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-channel-card:has(input:checked) {
  border-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(13, 121, 112, .35), 0 12px 24px rgba(17, 24, 23, .2);
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-channel-card input[type="checkbox"] {
  width: 18px !important;
  min-height: 18px !important;
  accent-color: #ffffff;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-channel-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .18);
  color: #ffffff;
  font-size: .92rem;
  font-weight: 950;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-channel-card span:last-child {
  display: grid;
  gap: 5px;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-channel-card strong {
  color: #ffffff;
  font-size: 1.34rem;
  line-height: 1;
  font-weight: 950;
  text-transform: uppercase;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-channel-card small {
  color: rgba(255, 255, 255, .92);
  font-size: .86rem;
  font-weight: 750;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-template-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-template-grid label {
  display: grid !important;
  gap: 6px !important;
  color: var(--muted);
  font-size: 1rem !important;
  font-weight: 850 !important;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .admin-helper-text {
  margin: 0;
  color: var(--muted);
  font-size: .88rem;
  font-weight: 750;
}

@media (max-width: 1180px) {
  #admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-grid,
  #admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-channel-grid,
  #admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-template-grid {
    grid-template-columns: 1fr;
  }
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-grid {
  grid-template-columns: 1fr;
  gap: 12px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state {
  display: grid !important;
  grid-template-columns: minmax(340px, 430px) minmax(0, 1fr);
  align-items: stretch;
  gap: 0 !important;
  min-height: 0 !important;
  padding: 0;
  overflow: hidden;
  border: 1px solid #c7d1cf;
  border-radius: 10px;
  background: #f7faf9;
  box-shadow: 0 8px 18px rgba(17, 24, 23, .07);
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-main {
  display: grid !important;
  grid-template-columns: 22px 72px minmax(0, 1fr);
  align-items: center;
  gap: 14px !important;
  padding: 12px 16px;
  background: linear-gradient(180deg, #e5eaeb, #d5ddde);
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state:has(.customer-communication-state-main input:checked) .customer-communication-state-main {
  background: linear-gradient(180deg, #ecfff7, #d8f4e7);
  box-shadow: inset 5px 0 0 #16824c;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-detail {
  display: grid;
  gap: 10px;
  padding: 12px;
  background: #ffffff;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state:not(:has(.customer-communication-state-main input:checked)) .customer-communication-state-detail {
  opacity: .62;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-detail .customer-communication-channel-grid {
  grid-template-columns: repeat(3, minmax(145px, 1fr));
  gap: 8px;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-detail .customer-channel-card {
  min-height: 58px !important;
  grid-template-columns: 18px 34px minmax(0, 1fr);
  gap: 8px !important;
  padding: 8px 10px;
  border-radius: 8px;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-detail .customer-channel-icon {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  font-size: .7rem;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-detail .customer-channel-card strong {
  font-size: .88rem;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-detail .customer-channel-card small {
  font-size: .68rem;
  line-height: 1.05;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-detail .customer-communication-template-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-detail .customer-communication-template-grid label {
  font-size: .82rem !important;
  line-height: 1 !important;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-detail textarea {
  min-height: 84px !important;
  padding: 8px 10px !important;
  font-size: .82rem !important;
  line-height: 1.25 !important;
  font-weight: 750 !important;
}

@media (max-width: 1380px) {
  #admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state {
    grid-template-columns: 1fr;
  }
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-grid {
  gap: 8px;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state {
  grid-template-columns: minmax(300px, 420px) minmax(0, 1fr);
  border-radius: 8px;
  box-shadow: none;
  border: 0;
  background: transparent;
  overflow: visible;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-main {
  grid-template-columns: 20px 42px minmax(0, 1fr);
  min-height: 54px;
  padding: 8px 12px;
  border: 1px solid #c7d1cf;
  border-radius: 8px;
  cursor: pointer;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-icon .technician-role-icon,
#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-icon {
  width: 36px;
  height: 36px;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-copy strong {
  font-size: 1.08rem;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-detail {
  display: none;
  border-top: 0;
  border-left: 0;
  border: 1px solid #c7d1cf;
  border-radius: 8px;
  margin-left: 10px;
}

#admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state:has(.customer-communication-state-main input:checked) .customer-communication-state-detail {
  display: grid;
}

@media (max-width: 1180px) {
  #admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state {
    grid-template-columns: 1fr;
  }

  #admin .admin-section[data-admin-section="comunicacion-cliente"] .customer-communication-state-detail {
    border-top: 1px solid var(--line);
    border-left: 0;
  }
}

#admin .admin-section[data-admin-section="integraciones-erp"] .admin-erp-integration {
  display: grid;
  gap: 14px;
}

#admin .admin-section[data-admin-section="integraciones-erp"] .erp-event-grid label {
  display: flex !important;
  align-items: center;
  gap: 8px !important;
  min-height: 50px !important;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  font-size: .95rem !important;
  line-height: 1.1;
}

#admin .admin-section[data-admin-section="integraciones-erp"] textarea[spellcheck="false"] {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: .9rem !important;
  line-height: 1.35;
}

body.module-vehiculos-proceso .light-damage-command-center .sfc-module-header {
  width: 100% !important;
  max-width: none !important;
  transform: none !important;
}

body.module-vehiculos-proceso .light-damage-command-center .sfc-module-title {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  transform: none !important;
}

body.module-vehiculos-proceso .light-damage-command-center .sfc-module-title strong,
body.module-vehiculos-proceso .light-damage-command-center .sfc-module-title span {
  transform: none !important;
}

#vehiculos-detenidos .panel-heading .sfc-module-header {
  flex: 1 1 auto !important;
  width: 100% !important;
  max-width: none !important;
  transform: none !important;
}

#vehiculos-detenidos .panel-heading .sfc-module-title {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  transform: none !important;
}

#vehiculos-detenidos .panel-heading .sfc-module-title strong,
#vehiculos-detenidos .panel-heading .sfc-module-title span {
  transform: none !important;
}

.nav-kpi-group {
  display: grid;
  gap: 4px;
}

.nav-sub-list {
  display: grid;
  gap: 4px;
  padding: 2px 0 8px 22px;
}

.nav-sub-list a.kpi-sub-link {
  min-height: 0;
  padding: 8px 12px 8px 14px;
  border-left-width: 2px;
  font-size: 1.2rem;
  color: #aebcb8;
  background: rgba(255, 255, 255, 0.03);
}

.nav-sub-list a.kpi-sub-link.active {
  color: #ffffff;
}

#kpi {
  padding: 22px 0 48px;
}

.kpi-shell {
  display: grid;
  gap: 18px;
  padding: 0 6px;
}

.kpi-heading {
  align-items: flex-start;
}

.kpi-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.kpi-toolbar .ghost-button.is-selected {
  border-color: rgba(18, 87, 119, 0.22);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(221, 239, 246, 0.98));
  color: #125777;
}

.kpi-filter-stack {
  display: grid;
  gap: 10px;
  padding: 18px 22px;
  border: 1px solid rgba(17, 26, 23, 0.08);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(246, 250, 249, 0.98));
  box-shadow: 0 14px 28px rgba(17, 26, 23, 0.07);
}

.kpi-inline-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 16px;
}

.kpi-inline-filters label {
  display: grid;
  gap: 8px;
  min-width: 190px;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 700;
}

.kpi-inline-filters input,
.kpi-inline-filters select {
  min-height: 52px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #ffffff;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 700;
}

.kpi-inline-filters .primary-button {
  min-height: 52px;
  min-width: 146px;
  padding: 0 24px;
  border-radius: 12px;
  font-size: 1rem;
}

.kpi-loading-state,
.kpi-empty-state {
  display: grid;
  place-items: center;
  min-height: 120px;
  padding: 20px;
  border: 1px dashed rgba(17, 26, 23, 0.12);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.72);
  text-align: center;
}

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

.kpi-card {
  display: grid;
  gap: 6px;
  min-height: 120px;
  padding: 1.5rem;
  border: 1px solid #d0d0d0;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 18px 32px rgba(17, 26, 23, 0.08);
}

.kpi-card span,
.kpi-card small {
  color: var(--muted);
}

.kpi-card span {
  font-size: .84rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.kpi-card strong {
  color: var(--ink);
  font-size: 2rem;
  line-height: 1;
}

.kpi-card small {
  font-size: .88rem;
  line-height: 1.3;
}

.kpi-card.is-success strong {
  color: #16824c;
}

.kpi-card.is-warning strong {
  color: #ba6a0d;
}

.kpi-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.kpi-chart-panel {
  display: grid;
  gap: 14px;
  min-height: 220px;
  padding: 18px;
  border: 1px solid rgba(17, 26, 23, 0.08);
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff, #f7faf9);
  box-shadow: 0 18px 36px rgba(17, 26, 23, 0.07);
}

.kpi-chart-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.kpi-chart-head h3 {
  margin: 4px 0 0;
  font-size: 1.2rem;
}

.kpi-split-legend {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 10px;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
}

.kpi-split-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.kpi-split-legend b {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 999px;
}

.kpi-split-legend .is-right,
.kpi-bar-fill.is-right {
  background: linear-gradient(90deg, #1f6fa3, #4cb1e0);
}

.kpi-split-legend .is-left,
.kpi-bar-fill.is-left {
  background: linear-gradient(90deg, #df7a2b, #f3b264);
}

.kpi-bar-chart {
  display: grid;
  gap: 12px;
}

.kpi-bar-row {
  display: grid;
  gap: 6px;
}

.kpi-bar-copy {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
}

.kpi-bar-copy span {
  color: var(--ink);
  font-weight: 700;
}

.kpi-bar-copy b {
  color: #125777;
  font-size: .95rem;
}

.kpi-bar-row small {
  color: var(--muted);
  font-size: .8rem;
}

.kpi-bar-track {
  position: relative;
  overflow: hidden;
  width: 100%;
  min-height: 14px;
  border-radius: 999px;
  background: rgba(18, 87, 119, 0.08);
}

.kpi-bar-track.is-split {
  display: flex;
  background: rgba(17, 26, 23, 0.08);
}

.kpi-bar-fill {
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, #0f678e, #63c0e8);
}

.kpi-bar-track.is-split .kpi-bar-fill {
  border-radius: 0;
}

.kpi-bar-track.is-split .kpi-bar-fill:first-child {
  border-top-left-radius: 999px;
  border-bottom-left-radius: 999px;
}

.kpi-bar-track.is-split .kpi-bar-fill:last-child {
  border-top-right-radius: 999px;
  border-bottom-right-radius: 999px;
}

@media (max-width: 1240px) {
  .kpi-card-grid,
  .kpi-chart-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.kpi-row-label {
  font-size: 11px;
  font-weight: 500;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 1.25rem 0 8px;
}

.kpi-row-label:first-child {
  margin-top: 0;
}

.kpi-card-accent-coral {
  border-left: 3px solid #D85A30;
  border-radius: 0 8px 8px 0;
}

.kpi-card-value.kpi-warn {
  color: #A32D2D;
}

.kpi-card-value.kpi-good {
  color: #3B6D11;
}

.kpi-card-label {
  font-size: 13px;
  margin-bottom: 8px;
}

.kpi-card-value {
  font-size: 32px;
  font-weight: 500;
}

.kpi-card-icon {
  font-size: 18px;
  color: #888;
  margin-bottom: 14px;
  opacity: 0.5;
}

.kpi-card-sub {
  font-size: 12px;
  color: #888;
  margin-top: 5px;
}

article.kpi-card {
  cursor: pointer;
  transition: transform 0.1s ease, box-shadow 0.1s ease;
}

article.kpi-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.10);
}

article.kpi-card:active {
  transform: scale(0.97);
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}

.kpi-drilldown-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9000;
}

.kpi-drilldown-dialog {
  background: #fff;
  border-radius: 16px;
  width: 720px;
  max-width: 95vw;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 60px rgba(0,0,0,0.2);
  overflow: hidden;
}

.kpi-drilldown-header {
  padding: 1.25rem 1.5rem;
  border-bottom: 0.5px solid #e0e0e0;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}

.kpi-drilldown-eyebrow {
  font-size: 11px;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 4px;
}

.kpi-drilldown-title {
  font-size: 18px;
  font-weight: 500;
  color: #111;
}

.kpi-drilldown-actions,
.kpi-drilldown-export-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-shrink: 0;
}

.kpi-drilldown-btn {
  padding: 6px 14px;
  border: 1px solid #d0d0d0;
  border-radius: 20px;
  background: #fff;
  font-size: 12px;
  cursor: pointer;
}

.kpi-drilldown-btn:hover {
  background: #f5f5f5;
}

.kpi-drilldown-close {
  border-radius: 50%;
  width: 32px;
  height: 32px;
  padding: 0;
  font-size: 18px;
  line-height: 1;
}

.kpi-drilldown-body {
  overflow-y: auto;
  flex: 1;
}

.kpi-drilldown-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.kpi-drilldown-table th {
  text-align: left;
  font-size: 11px;
  font-weight: 500;
  color: #888;
  padding: 10px 1.5rem;
  border-bottom: 0.5px solid #e8e8e8;
  position: sticky;
  top: 0;
  background: #fff;
}

.kpi-drilldown-table td {
  padding: 10px 1.5rem;
  border-bottom: 0.5px solid #f0f0f0;
  color: #333;
}

.kpi-drilldown-table tr:last-child td {
  border-bottom: none;
}

.kpi-drilldown-table tr:hover td {
  background: #fafafa;
}

.kpi-drilldown-footer {
  padding: 1rem 1.5rem;
  border-top: 0.5px solid #e0e0e0;
  font-size: 12px;
  color: #888;
}

.kpi-drilldown-export-prompt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

@media print {
  body > *:not(.kpi-drilldown-overlay) {
    display: none !important;
  }

  .kpi-drilldown-overlay {
    position: static;
    background: none;
  }

  .kpi-drilldown-dialog {
    box-shadow: none;
    max-height: none;
  }

  .kpi-drilldown-actions {
    display: none;
  }
}
