:root {
  color-scheme: light;
  --brand-900:#064822;
  --brand-800:#075a2b;
  --brand-700:#0b6b35;
  --brand-600:#158447;
  --brand-500:#23a45b;
  --brand-100:#dff4e7;
  --brand-50:#f0faf4;
  --yellow-500:#f4c600;
  --red-600:#c92a2a;
  --red-50:#fff1f1;
  --amber-600:#a85d00;
  --amber-50:#fff7e6;
  --blue-600:#1e5da8;
  --blue-50:#edf5ff;
  --bg:#f1f4f2;
  --surface:#ffffff;
  --surface-2:#f8faf9;
  --surface-3:#edf2ef;
  --surface-raised:#ffffff;
  --text:#17231c;
  --text-strong:#0b1710;
  --muted:#617168;
  --muted-2:#839087;
  --border:#d4ddd7;
  --border-strong:#b9c7be;
  --shadow-xs:0 1px 2px rgba(7,38,20,.05);
  --shadow-sm:0 4px 14px rgba(7,38,20,.07);
  --shadow-md:0 14px 40px rgba(7,38,20,.11);
  --radius-sm:8px;
  --radius-md:10px;
  --radius-lg:14px;
  --sidebar-width:272px;
  --sidebar-collapsed:86px;
  --topbar-height:72px;
  --font-sans:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --bg:#0d1510;
  --surface:#131f17;
  --surface-2:#17251c;
  --surface-3:#203228;
  --surface-raised:#18271e;
  --text:#e7efe9;
  --text-strong:#ffffff;
  --muted:#a4b2a9;
  --muted-2:#84968b;
  --border:#2b4033;
  --border-strong:#3b5545;
  --brand-100:#173c27;
  --brand-50:#122c1d;
  --red-50:#351b1d;
  --amber-50:#342715;
  --blue-50:#172a42;
  --shadow-xs:0 1px 2px rgba(0,0,0,.25);
  --shadow-sm:0 6px 18px rgba(0,0,0,.25);
  --shadow-md:0 20px 50px rgba(0,0,0,.4);
}

* { box-sizing:border-box; }
html { min-height:100%; background:var(--bg); -webkit-text-size-adjust:100%; }
body {
  margin:0;
  min-width:320px;
  min-height:100vh;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-sans);
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:subpixel-antialiased;
  -moz-osx-font-smoothing:auto;
  text-rendering:optimizeLegibility;
}
button,input,select,textarea { font:inherit; color:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.55; }
img { max-width:100%; }
.is-hidden { display:none !important; }
.print-only { display:none !important; }
.mobile-only { display:none !important; }

/* Typography */
h1,h2,h3,h4,p { margin-top:0; }
h1,h2,h3,h4 { color:var(--text-strong); letter-spacing:0; }
.eyebrow { display:block; color:var(--brand-600); font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.eyebrow-light { color:#b9f2ce; }
.helper-text { color:var(--muted); font-size:12px; line-height:1.45; }

/* Buttons */
.btn,.icon-button,.theme-toggle {
  border:1px solid transparent;
  border-radius:var(--radius-sm);
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 14px;
  font-weight:600;
  white-space:nowrap;
  background:transparent;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
}
.btn:focus-visible,.icon-button:focus-visible,.theme-toggle:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:3px solid rgba(35,164,91,.22);
  outline-offset:1px;
}
.btn-primary { color:#fff; background:var(--brand-700); border-color:var(--brand-700); box-shadow:var(--shadow-xs); }
.btn-primary:hover { background:var(--brand-800); border-color:var(--brand-800); }
.btn-secondary { color:var(--brand-800); background:var(--brand-50); border-color:#b8dec6; }
html[data-theme="dark"] .btn-secondary { color:#bde9cc; border-color:#2d6442; }
.btn-secondary:hover { background:var(--brand-100); }
.btn-ghost { color:var(--text); background:var(--surface); border-color:var(--border); }
.btn-ghost:hover { background:var(--surface-3); border-color:var(--border-strong); }
.btn-danger { color:var(--red-600); background:var(--red-50); border-color:#f1b9b9; }
.btn-danger:hover { border-color:var(--red-600); }
.btn-block { width:100%; }
.btn-lg { min-height:46px; padding:0 20px; border-radius:10px; }
.btn-sm { min-height:31px; padding:0 10px; font-size:12px; }
.icon-button { width:38px; padding:0; background:var(--surface); border-color:var(--border); font-size:18px; }
.icon-button:hover { background:var(--surface-3); }
.theme-toggle { min-height:38px; color:var(--text); background:var(--surface); border-color:var(--border); padding:0 12px; }
.theme-toggle-icon { position:relative; width:18px; height:18px; border:2px solid currentColor; border-radius:50%; display:inline-block; }
.theme-toggle-icon::after { content:""; position:absolute; inset:2px 2px 2px 8px; border-radius:0 10px 10px 0; background:currentColor; }
html[data-theme="dark"] .theme-toggle-icon::after { inset:2px 8px 2px 2px; border-radius:10px 0 0 10px; }

/* Authentication */
.auth-view { min-height:100vh; padding:28px; background:linear-gradient(135deg,#053b1d 0%,#086132 50%,#0b7b3e 100%); position:relative; overflow:hidden; }
.auth-view::before,.auth-view::after { content:""; position:fixed; border-radius:50%; pointer-events:none; }
.auth-view::before { width:520px; height:520px; right:-180px; top:-240px; border:90px solid rgba(255,255,255,.055); }
.auth-view::after { width:360px; height:360px; left:-160px; bottom:-180px; background:rgba(244,198,0,.1); }
.auth-theme { position:fixed; right:24px; top:20px; z-index:5; background:rgba(255,255,255,.96); color:#173426; }
.auth-shell { position:relative; z-index:2; width:min(1120px,100%); min-height:min(700px,calc(100vh - 56px)); margin:0 auto; display:grid; grid-template-columns:minmax(0,1.22fr) minmax(380px,.78fr); border-radius:24px; overflow:hidden; background:var(--surface); box-shadow:0 35px 90px rgba(0,0,0,.28); }
.auth-hero { color:#fff; padding:46px 52px; display:flex; flex-direction:column; background:linear-gradient(160deg,rgba(2,53,24,.93),rgba(9,109,53,.88)),radial-gradient(circle at 80% 10%,rgba(244,198,0,.3),transparent 30%); }
.auth-hero-brand { display:flex; align-items:center; gap:16px; }
.auth-logo { width:128px; height:auto; object-fit:contain; }
.product-name { display:block; font-size:20px; font-weight:700; letter-spacing:.04em; }
.version-chip { display:inline-flex; margin-top:5px; padding:3px 8px; border:1px solid rgba(255,255,255,.22); border-radius:999px; color:#d7f5e1; font-size:11px; }
.auth-hero-copy { margin:auto 0; max-width:650px; padding:54px 0 40px; }
.auth-hero-copy h1 { color:#fff; font-size:clamp(34px,4.3vw,56px); line-height:1.06; margin:14px 0 18px; }
.auth-hero-copy p { max-width:590px; color:#d7e9dd; font-size:16px; line-height:1.65; }
.auth-feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.auth-feature-grid article { min-width:0; padding:16px; border:1px solid rgba(255,255,255,.14); border-radius:12px; background:rgba(255,255,255,.07); }
.auth-feature-grid span { display:block; color:#f8dc4a; font-size:11px; font-weight:700; letter-spacing:.1em; }
.auth-feature-grid strong { display:block; margin:8px 0 5px; font-size:14px; }
.auth-feature-grid small { color:#c9ded1; line-height:1.45; }
.auth-hero-footer { margin-top:24px; color:#b8d5c2; font-size:12px; }
.auth-panel { padding:54px 48px 32px; display:flex; flex-direction:column; justify-content:center; background:var(--surface); }
.auth-panel-head { margin-bottom:28px; }
.auth-panel-head h2 { font-size:28px; margin:8px 0; }
.auth-panel-head p { color:var(--muted); line-height:1.55; }
.form-stack { display:grid; gap:18px; }
.field { display:grid; gap:7px; min-width:0; }
.field > span,.toolbar-field > span { color:var(--text); font-size:12px; font-weight:700; }
.field small { color:var(--muted); font-size:11px; }
.field input,.field select,.field textarea,.filter-control,.schedule-editor-table input,.schedule-editor-table select,.schedule-editor-table textarea {
  width:100%; min-width:0; border:1px solid var(--border-strong); border-radius:8px; background:var(--surface); color:var(--text); min-height:40px; padding:9px 11px; box-shadow:inset 0 1px 1px rgba(0,0,0,.02);
}
.field textarea { min-height:104px; resize:vertical; }
.password-field { display:grid; grid-template-columns:1fr auto; }
.password-field input { border-radius:8px 0 0 8px; }
.password-field button { border:1px solid var(--border-strong); border-left:0; border-radius:0 8px 8px 0; padding:0 12px; background:var(--surface-2); color:var(--brand-700); font-weight:600; }
.notice,.warning-box,.info-box,.success-box,.schedule-alert { display:grid; gap:3px; padding:12px 14px; border-radius:9px; border:1px solid var(--border); line-height:1.45; }
.notice-info,.info-box { background:var(--blue-50); border-color:#b9d5f7; color:var(--text); }
.warning-box,.schedule-alert { background:var(--amber-50); border-color:#edd39e; }
.success-box { background:var(--brand-50); border-color:#b5ddc3; }
.form-message { min-height:20px; color:var(--red-600); margin-top:14px; font-size:13px; }
.auth-security-note { margin-top:22px; color:var(--muted); font-size:11px; display:flex; align-items:center; gap:7px; }
.auth-security-note span { color:var(--brand-500); }
.version-label { margin-top:auto; padding-top:26px; color:var(--muted-2); font-size:11px; text-align:center; }

/* Base selector */
.base-selector-view { min-height:100vh; background:var(--bg); }
.selector-topbar { height:76px; padding:0 34px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border); background:var(--surface); }
.selector-brand { display:flex; align-items:center; gap:13px; }
.selector-brand img { width:78px; }
.selector-brand strong,.selector-brand small { display:block; }
.selector-brand strong { font-size:16px; }
.selector-brand small { color:var(--muted); font-size:11px; }
.selector-actions { display:flex; align-items:center; gap:10px; }
.base-selector-shell { width:min(1160px,100%); margin:0 auto; padding:70px 28px; }
.base-selector-heading { max-width:680px; margin-bottom:36px; }
.base-selector-heading h1 { font-size:36px; margin:9px 0 10px; }
.base-selector-heading p { color:var(--muted); font-size:15px; }
.base-selector-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.base-option-card { position:relative; min-height:150px; padding:24px; display:grid; grid-template-columns:54px 1fr auto; align-items:center; gap:18px; text-align:left; color:var(--text); background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-xs); }
.base-option-card:hover { border-color:#9bcfab; box-shadow:var(--shadow-sm); background:var(--brand-50); }
.base-option-card.is-disabled { opacity:.45; pointer-events:none; }
.base-card-icon { width:54px; height:54px; border-radius:14px; display:grid; place-items:center; background:var(--brand-700); color:#fff; font-size:22px; font-weight:700; }
.base-option-card strong { display:block; font-size:18px; margin-bottom:7px; }
.base-option-card small { color:var(--muted); line-height:1.5; }
.base-card-arrow { font-size:24px; color:var(--brand-700); }
.base-selector-user { margin-top:34px; padding-top:24px; border-top:1px solid var(--border); display:flex; align-items:center; gap:12px; }
.base-selector-user strong,.base-selector-user small { display:block; }
.base-selector-user small { color:var(--muted); }
.avatar { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; background:var(--brand-100); color:var(--brand-800); font-weight:700; flex:0 0 auto; }

/* App shell */
.system-view { min-height:100vh; display:grid; grid-template-columns:var(--sidebar-width) minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; background:#073f21; color:#fff; border-right:1px solid rgba(255,255,255,.08); z-index:40; }
.sidebar-brand { min-height:78px; display:grid; grid-template-columns:66px 1fr 32px; align-items:center; gap:10px; padding:12px 14px; border-bottom:1px solid rgba(255,255,255,.11); }
.sidebar-logo { width:62px; height:auto; object-fit:contain; }
.sidebar-brand-copy strong,.sidebar-brand-copy small { display:block; }
.sidebar-brand-copy strong { font-size:15px; letter-spacing:.02em; }
.sidebar-brand-copy small { margin-top:2px; color:#c6ddcd; font-size:11px; }
.sidebar .icon-button { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.12); color:#fff; }
.sidebar-base { margin:14px 14px 5px; padding:10px 12px; border:1px solid rgba(255,255,255,.12); border-radius:9px; background:rgba(255,255,255,.055); }
.sidebar-base span,.sidebar-base strong { display:block; }
.sidebar-base span { color:#b9d5c2; font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; }
.sidebar-base strong { margin-top:2px; font-size:13px; }
.main-navigation { flex:1; overflow-y:auto; padding:10px 10px 18px; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.22) transparent; }
.nav-item,.nav-group-toggle,.nav-subitem { width:100%; border:0; color:#dcebe1; background:transparent; text-align:left; display:flex; align-items:center; gap:11px; border-radius:8px; }
.nav-item,.nav-group-toggle { min-height:44px; padding:0 12px; margin:2px 0; }
.nav-item:hover,.nav-group-toggle:hover,.nav-subitem:hover { background:rgba(255,255,255,.075); color:#fff; }
.nav-item.is-active,.nav-subitem.is-active { color:#fff; background:#11804a; box-shadow:inset 3px 0 0 var(--yellow-500); }
.nav-icon { width:22px; height:22px; flex:0 0 22px; display:grid; place-items:center; }
.nav-icon svg { width:19px; height:19px; display:block; }
.nav-label { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.nav-caret { transition:transform .15s ease; }
.nav-group.is-open .nav-caret { transform:rotate(90deg); }
.nav-submenu { display:none; padding:2px 0 5px 22px; }
.nav-group.is-open .nav-submenu { display:block; }
.nav-subitem { min-height:40px; padding:0 10px; font-size:13px; }
.nav-subdot { width:6px; height:6px; border-radius:50%; background:#7fa78d; flex:0 0 auto; }
.sidebar-footer { padding:12px; border-top:1px solid rgba(255,255,255,.11); display:flex; align-items:center; gap:8px; }
.user-compact { flex:1; min-width:0; display:flex; align-items:center; gap:9px; }
.user-compact strong,.user-compact small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.user-compact strong { font-size:13px; }
.user-compact small { color:#b9d5c2; font-size:10.5px; }
.main-area { min-width:0; min-height:100vh; display:flex; flex-direction:column; }
.topbar { position:sticky; top:0; z-index:30; min-height:var(--topbar-height); padding:0 24px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-bottom:1px solid var(--border); background:var(--surface); box-shadow:0 1px 0 rgba(7,38,20,.03); }
.topbar-left,.topbar-actions { display:flex; align-items:center; gap:10px; }
.topbar-copy h2 { font-size:21px; margin:2px 0 0; }
.topbar-copy .eyebrow { font-size:10.5px; }
.connection-status { height:36px; display:inline-flex; align-items:center; gap:7px; padding:0 11px; border:1px solid var(--border); border-radius:999px; background:var(--surface-2); color:var(--muted); font-size:11.5px; font-weight:600; }
.connection-status i { width:7px; height:7px; border-radius:50%; background:#9aa79f; box-shadow:0 0 0 3px rgba(154,167,159,.15); }
.connection-status.is-online i { background:#21a35b; box-shadow:0 0 0 3px rgba(33,163,91,.15); }
.connection-status.is-error i { background:#d43b3b; box-shadow:0 0 0 3px rgba(212,59,59,.15); }
.page-content { width:100%; max-width:1740px; margin:0 auto; padding:28px; flex:1; outline:none; }
.app-footer { min-height:48px; padding:0 26px; border-top:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; color:var(--muted-2); font-size:10px; }
.sidebar-backdrop { display:none; }

/* Collapsed sidebar */
.system-view.is-sidebar-collapsed { grid-template-columns:var(--sidebar-collapsed) minmax(0,1fr); }
.system-view.is-sidebar-collapsed .sidebar-brand { grid-template-columns:1fr; justify-items:center; padding:10px; }
.system-view.is-sidebar-collapsed .sidebar-logo { width:62px; }
.system-view.is-sidebar-collapsed .sidebar-brand-copy,.system-view.is-sidebar-collapsed .sidebar-base,.system-view.is-sidebar-collapsed .nav-label,.system-view.is-sidebar-collapsed .nav-caret,.system-view.is-sidebar-collapsed .nav-submenu,.system-view.is-sidebar-collapsed .user-compact > div:last-child { display:none; }
.system-view.is-sidebar-collapsed .nav-item,.system-view.is-sidebar-collapsed .nav-group-toggle { justify-content:center; padding:0; }
.system-view.is-sidebar-collapsed .sidebar-footer { justify-content:center; flex-wrap:wrap; }
.system-view.is-sidebar-collapsed .user-compact { flex:0; }
.system-view.is-sidebar-collapsed .sidebar-collapse-toggle { position:absolute; top:12px; right:-16px; background:var(--surface); color:var(--text); border-color:var(--border); }

/* Page composition */
.page-intro { display:flex; justify-content:space-between; align-items:flex-end; gap:22px; margin-bottom:20px; }
.page-intro h3 { font-size:26px; margin:5px 0 6px; }
.page-intro p { max-width:860px; margin:0; color:var(--muted); font-size:14px; line-height:1.55; }
.page-intro-actions,.toolbar-group,.cell-actions,.card-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cards-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.metric-card { position:relative; min-height:122px; padding:19px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--surface); box-shadow:var(--shadow-xs); overflow:hidden; }
.metric-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--blue-600); }
.metric-card.is-success::before { background:var(--brand-500); }
.metric-card.is-warning::before { background:#d28a16; }
.metric-card.is-danger::before { background:var(--red-600); }
.metric-label { color:var(--muted); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.metric-value { margin:10px 0 5px; color:var(--text-strong); font-size:29px; font-weight:700; line-height:1; }
.metric-detail { color:var(--muted); font-size:12.5px; }
.split-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:16px; }
.panel { min-width:0; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--surface); box-shadow:var(--shadow-xs); margin-bottom:16px; overflow:hidden; }
.panel-header { min-height:55px; padding:13px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--border); background:var(--surface-2); }
.panel-header h3 { margin:0; font-size:16px; }
.panel-header p { margin:3px 0 0; color:var(--muted); font-size:12px; }
.panel-body { padding:16px; }
.page-toolbar,.schedule-toolbar { padding:12px 14px; display:flex; justify-content:space-between; align-items:flex-end; gap:12px; border-bottom:1px solid var(--border); background:var(--surface-2); }
.toolbar-field { display:grid; gap:5px; }
.filter-control { min-height:36px; padding:7px 10px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.span-2 { grid-column:span 2; }
.rule-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.rule-strip article { padding:13px 15px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
.rule-strip strong,.rule-strip span { display:block; }
.rule-strip strong { color:var(--brand-700); font-size:17px; }
.rule-strip span { margin-top:2px; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.05em; }

/* Tables */
.table-wrap { width:100%; overflow:auto; -webkit-overflow-scrolling:touch; border-radius:8px; }
.data-table,.matrix-table { width:100%; border-collapse:separate; border-spacing:0; min-width:760px; font-size:13.5px; }
.data-table th,.data-table td,.matrix-table th,.matrix-table td { padding:11px 12px; border-bottom:1px solid var(--border); text-align:left; vertical-align:middle; }
.data-table th,.matrix-table th { position:sticky; top:0; z-index:2; background:var(--surface-3); color:var(--muted); font-size:11.5px; font-weight:700; letter-spacing:.035em; text-transform:uppercase; white-space:nowrap; }
.data-table tbody tr:hover td,.matrix-table tbody tr:hover td { background:var(--brand-50); }
.data-table tbody tr:last-child td,.matrix-table tbody tr:last-child td { border-bottom:0; }
.data-table td { max-width:380px; }
.data-table strong { color:var(--text-strong); }
.schedule-editor-table { min-width:1550px; }
.schedule-editor-table td { padding:6px; }
.schedule-editor-table input,.schedule-editor-table select,.schedule-editor-table textarea { min-height:40px; padding:8px 9px; font-size:13px; }
.schedule-editor-table textarea { min-height:52px; resize:vertical; }
.schedule-editor-table .col-seq { width:68px; }
.schedule-editor-table .col-route { min-width:150px; }
.schedule-editor-table .col-name { min-width:180px; }
.schedule-editor-table .col-notes { min-width:220px; }
.matrix-table { min-width:1320px; font-size:11.5px; }
.matrix-table th,.matrix-table td { text-align:center; padding:7px; white-space:nowrap; }
.matrix-table .sticky-name { position:sticky; left:0; z-index:3; min-width:210px; text-align:left; background:var(--surface); box-shadow:2px 0 0 var(--border); }
.matrix-table th.sticky-name { z-index:5; background:var(--surface-3); }
.empty-state,.table-state { padding:38px 22px; text-align:center; color:var(--muted); }
.empty-state strong { display:block; color:var(--text); margin-bottom:5px; }

/* Status and lists */
.badge { display:inline-flex; align-items:center; min-height:25px; padding:3px 9px; border-radius:999px; background:var(--surface-3); border:1px solid var(--border); color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.02em; white-space:nowrap; }
.badge-success { color:var(--brand-800); background:var(--brand-50); border-color:#b3ddc2; }
.badge-warning { color:var(--amber-600); background:var(--amber-50); border-color:#e8cf9d; }
.badge-danger { color:var(--red-600); background:var(--red-50); border-color:#efbbbb; }
.badge-info { color:var(--blue-600); background:var(--blue-50); border-color:#b9d3f1; }
.rank-list { display:grid; gap:8px; }
.rank-item { display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:10px; padding:10px; border:1px solid var(--border); border-radius:9px; background:var(--surface-2); }
.rank-number { width:34px; height:34px; display:grid; place-items:center; border-radius:8px; background:var(--brand-100); color:var(--brand-800); font-size:11px; font-weight:700; }
.chart-bars { display:grid; gap:12px; }
.chart-row { display:grid; grid-template-columns:minmax(110px,1fr) minmax(120px,3fr) auto; align-items:center; gap:10px; font-size:12px; }
.chart-track { height:9px; border-radius:999px; background:var(--surface-3); overflow:hidden; }
.chart-track span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--brand-700),var(--brand-500)); }

/* Kanban */
.kanban { display:grid; grid-template-columns:repeat(5,minmax(235px,1fr)); gap:12px; overflow-x:auto; padding-bottom:6px; }
.kanban-column { min-height:260px; padding:10px; border:1px solid var(--border); border-radius:10px; background:var(--surface-2); }
.kanban-column > h3 { margin:0 0 10px; padding:2px 2px 8px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border); font-size:11.5px; text-transform:uppercase; letter-spacing:.035em; }
.route-card { padding:12px; margin-bottom:9px; border:1px solid var(--border); border-radius:9px; background:var(--surface); box-shadow:var(--shadow-xs); }
.route-card h4 { margin:0 0 9px; font-size:14px; }
.route-card dl { display:grid; grid-template-columns:82px 1fr; gap:6px 8px; margin:0 0 10px; font-size:11.5px; }
.route-card dt { color:var(--muted); }
.route-card dd { margin:0; font-weight:600; overflow-wrap:anywhere; }

/* Modal, loading, toast */
.modal-backdrop { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; background:rgba(3,18,9,.58); }
.modal { width:min(760px,100%); max-height:min(880px,calc(100vh - 40px)); display:flex; flex-direction:column; border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:var(--shadow-md); overflow:hidden; }
.modal-header,.modal-footer { min-height:58px; padding:12px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--surface-2); }
.modal-header { border-bottom:1px solid var(--border); }
.modal-footer { border-top:1px solid var(--border); justify-content:flex-end; }
.modal-header h3 { margin:0; font-size:17px; }
.modal-body { padding:18px; overflow:auto; }
.loading-overlay { position:fixed; inset:0; z-index:130; display:grid; place-items:center; background:rgba(3,18,9,.36); }
.loading-box { min-width:280px; padding:18px; display:flex; align-items:center; gap:14px; border:1px solid var(--border); border-radius:13px; background:var(--surface); box-shadow:var(--shadow-md); }
.loading-box strong,.loading-box span { display:block; }
.loading-box span { margin-top:3px; color:var(--muted); font-size:11px; }
.spinner { width:30px; height:30px; border:3px solid var(--border); border-top-color:var(--brand-600); border-radius:50%; animation:spin .75s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.toast-region { position:fixed; right:18px; bottom:18px; z-index:150; display:grid; gap:9px; width:min(390px,calc(100% - 36px)); }
.toast { padding:12px 14px; border:1px solid var(--border); border-left:4px solid var(--brand-600); border-radius:9px; background:var(--surface); box-shadow:var(--shadow-md); }
.toast-error { border-left-color:var(--red-600); }
.toast-warning { border-left-color:#d28a16; }

/* Responsive */
@media (max-width:1200px) {
  .cards-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .auth-shell { grid-template-columns:1fr 420px; }
  .auth-feature-grid { grid-template-columns:1fr; }
  .auth-feature-grid article { display:grid; grid-template-columns:32px 1fr; gap:2px 8px; }
  .auth-feature-grid article small { grid-column:2; }
}

@media (max-width:980px) {
  .desktop-only { display:none !important; }
  .mobile-only { display:inline-flex !important; }
  .system-view,.system-view.is-sidebar-collapsed { display:block; }
  .sidebar { position:fixed; left:0; top:0; width:min(300px,86vw); transform:translateX(-104%); transition:transform .2s ease; box-shadow:var(--shadow-md); }
  .sidebar.is-open { transform:translateX(0); }
  .sidebar-backdrop { position:fixed; inset:0; z-index:35; background:rgba(0,0,0,.44); }
  .sidebar.is-open + .sidebar-backdrop,.sidebar-backdrop.is-open { display:block; }
  .main-area { min-height:100vh; }
  .topbar { padding:0 16px; }
  .topbar-base,.connection-status .connection-text { display:none; }
  .page-content { padding:18px; }
  .auth-view { padding:0; }
  .auth-shell { min-height:100vh; grid-template-columns:1fr; border-radius:0; }
  .auth-hero { min-height:320px; padding:34px 34px 28px; }
  .auth-hero-copy { padding:42px 0 25px; }
  .auth-hero-copy h1 { font-size:38px; }
  .auth-feature-grid { grid-template-columns:repeat(3,1fr); }
  .auth-feature-grid article { display:block; }
  .auth-panel { padding:42px 34px; }
  .auth-theme { right:12px; top:12px; }
  .base-selector-shell { padding-top:48px; }
}

@media (max-width:720px) {
  .theme-label { display:none; }
  .theme-toggle { width:38px; padding:0; }
  .topbar { min-height:64px; }
  .topbar-copy h2 { font-size:16px; }
  .topbar-actions { gap:6px; }
  .page-content { padding:14px; }
  .page-intro { align-items:flex-start; flex-direction:column; }
  .page-intro h3 { font-size:20px; }
  .page-intro-actions { width:100%; }
  .page-intro-actions .btn { flex:1; }
  .cards-grid,.split-grid,.rule-strip,.form-grid,.base-selector-grid { grid-template-columns:1fr; }
  .span-2 { grid-column:auto; }
  .metric-card { min-height:102px; }
  .panel-header,.page-toolbar,.schedule-toolbar { align-items:flex-start; flex-direction:column; }
  .toolbar-group { width:100%; }
  .toolbar-field { flex:1; min-width:130px; }
  .table-wrap { margin:0 -1px; border:1px solid var(--border); }
  .data-table,.matrix-table { font-size:11px; }
  .data-table th,.data-table td { padding:8px; }
  .kanban { grid-template-columns:repeat(5,260px); }
  .modal-backdrop { padding:0; align-items:end; }
  .modal { width:100%; max-height:92vh; border-radius:16px 16px 0 0; }
  .selector-topbar { height:66px; padding:0 16px; }
  .selector-brand img { width:62px; }
  .base-selector-shell { padding:38px 16px; }
  .base-selector-heading h1 { font-size:28px; }
  .base-option-card { min-height:130px; grid-template-columns:46px 1fr auto; padding:18px; }
  .base-card-icon { width:46px; height:46px; }
  .auth-hero { padding:28px 22px; min-height:300px; }
  .auth-logo { width:105px; }
  .auth-hero-copy { padding:34px 0 18px; }
  .auth-hero-copy h1 { font-size:31px; }
  .auth-hero-copy p { font-size:14px; }
  .auth-feature-grid { display:none; }
  .auth-panel { padding:34px 22px 26px; }
  .auth-panel-head h2 { font-size:24px; }
  .app-footer { padding:0 14px; }
}

/* Acabamento corporativo e legibilidade */
body,button,input,select,textarea { font-kerning:normal; font-variant-ligatures:none; }
button,input,select,textarea,.data-table,.matrix-table { -webkit-font-smoothing:subpixel-antialiased; text-rendering:optimizeLegibility; }
.sidebar { background:#064723; }
.sidebar-brand { min-height:82px; }
.sidebar-logo { width:68px; image-rendering:auto; }
.nav-item,.nav-group-toggle,.nav-subitem { font-weight:600; }
.nav-item.is-active,.nav-subitem.is-active { background:#0f7a40; box-shadow:inset 4px 0 0 #f4c600; }
.panel,.metric-card,.base-option-card { box-shadow:0 1px 2px rgba(7,38,20,.04); }
.panel-header { background:var(--surface); }
.panel-header::before { content:""; align-self:stretch; width:3px; border-radius:3px; background:var(--brand-600); margin-right:2px; }
.panel-header > :first-child { margin-right:auto; }
.data-table th,.matrix-table th { color:#4d5d53; background:#edf2ef; border-bottom:1px solid var(--border-strong); }
html[data-theme="dark"] .data-table th,html[data-theme="dark"] .matrix-table th { color:#c4d0c8; background:#203228; }
.data-table tbody tr:nth-child(even) td,.matrix-table tbody tr:nth-child(even) td { background:var(--surface-2); }
html[data-theme="dark"] .data-table tbody tr:nth-child(even) td,html[data-theme="dark"] .matrix-table tbody tr:nth-child(even) td { background:#16241a; }
.field input,.field select,.field textarea,.filter-control,.schedule-editor-table input,.schedule-editor-table select,.schedule-editor-table textarea { border-width:1px; box-shadow:none; }
.field input:hover,.field select:hover,.field textarea:hover,.filter-control:hover { border-color:#91aa9a; }
.sidebar-empty { padding:20px 14px; color:#bbd0c2; font-size:12px; line-height:1.5; text-align:center; }
.version-chip,.version-label,.sidebar-brand-copy small,.selector-brand small,.app-footer { font-weight:600; }
@media (max-width:720px) {
  body { font-size:14px; }
  .topbar { padding:8px 12px; align-items:flex-start; }
  .topbar-left { min-width:0; }
  .topbar-actions { margin-left:auto; }
  .connection-status { display:none; }
  .page-intro p { font-size:13px; }
  .data-table,.matrix-table { font-size:12px; }
  .metric-value { font-size:25px; }
}

/* Printing */
@media print {
  @page { size:A4 landscape; margin:9mm; }
  :root { --text:#000; --text-strong:#000; --muted:#333; --border:#9a9a9a; --surface:#fff; --surface-2:#fff; --surface-3:#efefef; }
  html,body { background:#fff !important; color:#000 !important; font-family:Arial,Helvetica,sans-serif !important; font-size:9pt; }
  .no-print,.sidebar,.topbar,.app-footer,.page-intro-actions,.page-toolbar,.schedule-toolbar .toolbar-group:last-child,.cell-actions,.card-actions,.toast-region,.loading-overlay,#modal-root { display:none !important; }
  .print-only { display:flex !important; }
  .system-view,.main-area { display:block !important; min-height:0; }
  .page-content { max-width:none; padding:0; margin:0; }
  .print-header { align-items:center; gap:12px; padding:0 0 7mm; margin-bottom:5mm; border-bottom:1.5px solid #000; }
  .print-header img { width:34mm; max-height:18mm; object-fit:contain; }
  .print-header strong,.print-header span { display:block; }
  .print-header strong { font-size:14pt; }
  .print-header span { margin-top:2px; color:#333; font-size:8pt; }
  .page-intro { margin-bottom:4mm; }
  .page-intro h3 { font-size:15pt; margin-bottom:1mm; }
  .page-intro p,.eyebrow { color:#222 !important; }
  .cards-grid { grid-template-columns:repeat(4,1fr); gap:3mm; margin-bottom:4mm; }
  .metric-card { min-height:0; padding:3mm; border:1px solid #777; box-shadow:none; break-inside:avoid; }
  .metric-card::before { width:1.2mm; }
  .metric-value { font-size:16pt; }
  .panel { border:1px solid #777; border-radius:0; box-shadow:none; margin-bottom:4mm; overflow:visible; break-inside:auto; }
  .panel-header { min-height:0; padding:2.2mm 3mm; background:#eee !important; border-bottom:1px solid #777; }
  .panel-body { padding:3mm; }
  .table-wrap { overflow:visible !important; border:0; }
  .data-table,.matrix-table,.schedule-editor-table { min-width:0 !important; width:100% !important; table-layout:auto; border-collapse:collapse; font-size:7.5pt; }
  .data-table th,.data-table td,.matrix-table th,.matrix-table td { position:static !important; padding:1.4mm 1.6mm; border:1px solid #aaa; background:#fff !important; color:#000 !important; max-width:none; }
  .data-table th,.matrix-table th { background:#e7e7e7 !important; font-size:7pt; }
  .data-table thead,.matrix-table thead { display:table-header-group; }
  .data-table tr,.matrix-table tr { break-inside:avoid; }
  .schedule-editor-table input,.schedule-editor-table select,.schedule-editor-table textarea { border:0 !important; background:transparent !important; padding:0 !important; min-height:0 !important; color:#000 !important; appearance:none; }
  .schedule-editor-table textarea { height:auto !important; resize:none; }
  .badge { border:1px solid #555; background:#fff !important; color:#000 !important; min-height:0; padding:1px 4px; }
  .kanban { display:block; overflow:visible; }
  .kanban-column { display:inline-block; width:19%; vertical-align:top; margin-right:.6%; min-height:0; border:1px solid #888; background:#fff !important; break-inside:avoid; }
  .route-card { box-shadow:none; border:1px solid #aaa; }
  .rule-strip { grid-template-columns:repeat(4,1fr); gap:2mm; }
  .rule-strip article { border:1px solid #888; padding:2mm; }
  .chart-track { border:1px solid #555; background:#fff; }
  .chart-track span { background:#555 !important; }
  body[data-route="point_mirror"] .panel { break-after:page; }
  body[data-route="point_mirror"] .panel:last-child { break-after:auto; }
  body[data-route="caju_matrix"] .matrix-table { font-size:5.8pt; }
}

/* Refinamentos corporativos v3.0 */
.info-banner {
  margin:0 0 16px;
  padding:12px 14px;
  border:1px solid #b8dec6;
  border-left:4px solid var(--brand-700);
  border-radius:10px;
  background:var(--brand-50);
  color:var(--text);
  line-height:1.5;
}
.mini-tag {
  display:inline-flex;
  align-items:center;
  min-height:22px;
  margin:2px 3px 2px 0;
  padding:2px 7px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--surface-2);
  color:var(--text);
  font-size:10px;
  font-weight:700;
}
.base-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.check-field {
  min-height:40px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:9px 11px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface-2);
  font-size:12px;
  font-weight:600;
}
.check-field input { width:17px; height:17px; accent-color:var(--brand-700); flex:0 0 auto; }
.modal-backdrop.is-mandatory { z-index:1000; }
.modal-backdrop.is-mandatory .modal { max-width:680px; }
.toast-success { border-left-color:var(--brand-600); }
.sidebar-backdrop.is-visible { display:block; }
.base-option-card:disabled { opacity:.42; }
.base-option-card:disabled:hover { box-shadow:var(--shadow-xs); background:var(--surface); border-color:var(--border); }

@media (max-width:640px) {
  .base-check-grid { grid-template-columns:1fr; }
  .info-banner { font-size:12px; }
}

/* Espelho de ponto corporativo */
.point-print-sheet { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:22px; box-shadow:var(--shadow-xs); }
.point-print-header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-bottom:12px; margin-bottom:12px; border-bottom:2px solid var(--brand-700); }
.point-print-header img { width:112px; max-height:58px; object-fit:contain; }
.point-print-header > div { display:flex; flex-direction:column; text-align:right; }
.point-print-header strong { font-size:22px; color:var(--brand-700); }
.point-print-header span { color:var(--muted); font-size:12px; }
.point-employee-summary { display:grid; grid-template-columns:2fr .8fr 1.1fr 1.2fr 1.3fr 1.7fr; gap:8px; margin-bottom:12px; }
.point-employee-summary > div { min-height:54px; padding:10px; border:1px solid var(--border); border-radius:8px; background:var(--surface-2); }
.point-employee-summary span { display:block; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.point-employee-summary strong { display:block; margin-top:5px; color:var(--text-strong); font-size:12px; line-height:1.2; }
.point-calendar-title { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin:12px 0 7px; }
.point-calendar-title strong { color:var(--brand-700); font-size:14px; }
.point-calendar-title span { color:var(--muted); font-size:10px; }
.point-mirror-table { min-width:1180px; font-size:11px; }
.point-mirror-table th,.point-mirror-table td { padding:7px; }
.point-folga-row td { color:var(--muted); background:var(--surface-2); }
.point-dsr-row td { color:#6d5200; background:#fff8dc; }
html[data-theme="dark"] .point-dsr-row td { color:#f1d475; background:#2e2813; }
.point-totals { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.point-totals span { padding:6px 9px; border:1px solid var(--border); border-radius:7px; background:var(--surface-2); font-size:10px; }
.point-totals strong { margin-left:4px; color:var(--text-strong); }
.point-signatures { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px; margin-top:48px; padding:0 24px; }
.point-signatures > div { text-align:center; }
.point-signatures span { display:block; border-top:1px solid var(--text); margin-bottom:6px; }
.point-signatures strong { display:block; font-size:11px; }
.point-signatures small { color:var(--muted); font-size:9px; }
.point-print-footer { margin-top:24px; padding-top:8px; border-top:1px solid var(--border); color:var(--muted); font-size:8px; text-align:center; }

@media (max-width:900px) {
  .point-print-sheet { padding:14px; }
  .point-employee-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .point-calendar-title { align-items:flex-start; flex-direction:column; }
  .point-signatures { gap:20px; padding:0; }
}

@media print {
  body[data-route="point_mirror"] .print-header { display:none !important; }
  body[data-route="point_mirror"] .point-print-sheet { width:100%; padding:0; border:0; border-radius:0; box-shadow:none; font-size:9px; color:#000 !important; }
  body[data-route="point_mirror"] .point-print-header { margin-bottom:5px; padding-bottom:5px; }
  body[data-route="point_mirror"] .point-print-header img { width:80px; max-height:38px; }
  body[data-route="point_mirror"] .point-print-header strong { font-size:19px; font-weight:900; }
  body[data-route="point_mirror"] .point-print-header span { font-size:10px; font-weight:800; }
  body[data-route="point_mirror"] .point-employee-summary { grid-template-columns:2fr .8fr 1.1fr 1fr 1.2fr 1.5fr; gap:3px; margin-bottom:5px; }
  body[data-route="point_mirror"] .point-employee-summary > div { min-height:0; padding:3px; border-radius:3px; }
  body[data-route="point_mirror"] .point-employee-summary span { font-size:7.8px; font-weight:900; }
  body[data-route="point_mirror"] .point-employee-summary strong { margin-top:2px; font-size:10px; font-weight:900; }
  body[data-route="point_mirror"] .point-calendar-title { margin:4px 0 3px; }
  body[data-route="point_mirror"] .point-calendar-title strong { font-size:11px; font-weight:900; }
  body[data-route="point_mirror"] .point-calendar-title span { font-size:8px; font-weight:800; }
  body[data-route="point_mirror"] .point-print-table-wrap { overflow:visible !important; }
  body[data-route="point_mirror"] .point-mirror-table { min-width:0 !important; width:100% !important; table-layout:fixed; font-size:7.5px !important; border:1.4px solid #000 !important; }
  body[data-route="point_mirror"] .point-mirror-table th,body[data-route="point_mirror"] .point-mirror-table td { padding:2.4px 2px !important; line-height:1.1; overflow-wrap:anywhere; border:1px solid #000 !important; color:#000 !important; }
  body[data-route="point_mirror"] .point-mirror-table th:nth-child(1){width:6%}
  body[data-route="point_mirror"] .point-mirror-table th:nth-child(2){width:6%}
  body[data-route="point_mirror"] .point-mirror-table th:nth-child(3){width:3%}
  body[data-route="point_mirror"] .point-mirror-table th:nth-child(4){width:7%}
  body[data-route="point_mirror"] .point-mirror-table th:nth-child(5),body[data-route="point_mirror"] .point-mirror-table th:nth-child(8){width:5%}
  body[data-route="point_mirror"] .point-mirror-table th:nth-child(6),body[data-route="point_mirror"] .point-mirror-table th:nth-child(7){width:8%}
  body[data-route="point_mirror"] .point-mirror-table th:nth-child(9),body[data-route="point_mirror"] .point-mirror-table th:nth-child(10),body[data-route="point_mirror"] .point-mirror-table th:nth-child(11){width:5%}
  body[data-route="point_mirror"] .point-mirror-table th:nth-child(12){width:31%}
  body[data-route="point_mirror"] .point-totals { gap:2px; margin-top:4px; }
  body[data-route="point_mirror"] .point-totals span { padding:2px 4px; border-radius:3px; font-size:7.8px; font-weight:900; border-color:#000; }
  body[data-route="point_mirror"] .point-signatures { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:23px; gap:28px; padding:0 16px; }
  body[data-route="point_mirror"] .point-signatures strong { font-size:8.8px; font-weight:900; }
  body[data-route="point_mirror"] .point-signatures small { font-size:7px; font-weight:800; }
  body[data-route="point_mirror"] .point-print-footer { margin-top:8px; padding-top:3px; font-size:7px; font-weight:700; }
}

/* Controle de saídas — fluxo operacional compatível com a versão estável */
.departure-toolbar { margin-bottom:14px; }
.departure-table { min-width:1180px; }
.departure-table td { vertical-align:top; }
.departure-table tr.row-success td:first-child { box-shadow:inset 4px 0 0 var(--brand-600); }
.departure-table tr.row-warning td:first-child { box-shadow:inset 4px 0 0 #d79b00; }
.departure-table.is-commercial { min-width:900px; }
.departure-table.is-commercial .operational-col { display:none; }
.form-section-title { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; padding:14px 0 5px; border-bottom:1px solid var(--border); }
.form-section-title strong { color:var(--brand-700); font-size:13px; }
.form-section-title span { color:var(--muted); font-size:11px; }

@media (max-width:760px) {
  .departure-toolbar { align-items:stretch; }
  .departure-toolbar .toolbar-group { width:100%; }
  .departure-toolbar .toolbar-field { flex:1 1 140px; }
  .departure-toolbar .filter-control { width:100%; }
  .departure-table { min-width:1040px; }
  .form-section-title { align-items:flex-start; flex-direction:column; }
}

/* Retornos e resultados */
.return-scale-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:12px; padding:16px; }
.return-scale-card { display:flex; flex-direction:column; min-width:0; padding:16px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--surface); box-shadow:var(--shadow-xs); }
.return-scale-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding-bottom:10px; margin-bottom:10px; border-bottom:1px solid var(--border); }
.return-scale-head h4 { margin:4px 0 0; font-size:15px; }
.return-sequence { color:var(--brand-700); font-size:10px; font-weight:800; letter-spacing:.08em; }
.return-scale-card dl { display:grid; grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr); gap:6px 10px; margin:0 0 14px; font-size:12px; }
.return-scale-card dt { color:var(--muted); }
.return-scale-card dd { min-width:0; margin:0; color:var(--text-strong); font-weight:600; overflow-wrap:anywhere; }
.return-scale-card .card-actions { margin-top:auto; }
.performance-score { display:inline-flex; min-height:26px; align-items:center; padding:2px 8px; border:1px solid var(--border); border-radius:7px; background:var(--surface-2); font-weight:700; white-space:nowrap; }

@media (max-width:640px) {
  .return-scale-grid { grid-template-columns:1fr; padding:12px; }
}

/* Acesso por matrícula e ponto móvel — NATTO DMS 3.0 */
.auth-mode-switch { display:grid; grid-template-columns:1fr 1fr; gap:4px; margin:0 0 20px; padding:4px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); }
.auth-mode-switch button { min-height:42px; border:0; border-radius:9px; background:transparent; color:var(--muted); font:inherit; font-weight:800; cursor:pointer; }
.auth-mode-switch button.is-active { background:var(--surface); color:var(--brand-700); box-shadow:var(--shadow-xs); }
.point-login-help { display:block; color:var(--muted); font-size:11px; line-height:1.5; }

.point-mobile-view { min-height:100dvh; background:linear-gradient(180deg,#eaf7ef 0,#f7faf8 240px); color:#13251a; }
html[data-theme="dark"] .point-mobile-view { background:linear-gradient(180deg,#071a10 0,#0b130e 240px); color:var(--text); }
.point-mobile-header { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:70px; padding:10px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left)); background:#075b2c; color:#fff; box-shadow:0 4px 18px rgba(0,45,20,.18); }
.point-mobile-brand { display:flex; align-items:center; gap:10px; min-width:0; }
.point-mobile-brand img { width:78px; height:45px; object-fit:contain; }
.point-mobile-brand > div { display:flex; flex-direction:column; }
.point-mobile-brand strong { font-size:16px; letter-spacing:.01em; }
.point-mobile-brand small { color:#d6f2e0; font-size:10px; }
.point-icon-button { min-height:40px; padding:0 13px; border:1px solid rgba(255,255,255,.35); border-radius:10px; background:rgba(255,255,255,.1); color:inherit; font:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.point-mobile-main { width:min(100%,680px); margin:0 auto; padding:18px 14px calc(34px + env(safe-area-inset-bottom)); }
.point-welcome-card,.point-clock-card,.point-mobile-card { border:1px solid rgba(7,91,44,.16); border-radius:20px; background:var(--surface); box-shadow:0 8px 26px rgba(16,48,29,.08); }
.point-welcome-card { display:flex; align-items:center; gap:14px; padding:17px; }
.point-avatar { display:grid; flex:0 0 54px; width:54px; height:54px; place-items:center; border-radius:17px; background:#087b3a; color:#fff; font-size:19px; font-weight:900; }
.point-welcome-card span { color:var(--muted); font-size:11px; font-weight:700; }
.point-welcome-card h1 { margin:2px 0 3px; font-size:19px; line-height:1.15; }
.point-welcome-card p { margin:0; color:var(--muted); font-size:11px; }
.point-clock-card { display:flex; flex-direction:column; align-items:center; margin-top:12px; padding:18px; text-align:center; background:#0b6b35; color:#fff; }
.point-clock-card > span { color:#d6f2e0; font-size:12px; text-transform:capitalize; }
.point-clock-card > strong { margin:3px 0; font-size:42px; font-variant-numeric:tabular-nums; letter-spacing:.025em; line-height:1; }
.point-clock-card > small { color:#d6f2e0; font-size:9px; }
.point-mobile-card { margin-top:12px; padding:17px; }
.point-mobile-card h2 { margin:4px 0 5px; font-size:18px; }
.point-mobile-card p { margin:0 0 14px; color:var(--muted); font-size:12px; line-height:1.5; }
.point-mobile-card.is-locked { opacity:.72; }
.point-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:12px; }
.point-status-chip { flex:0 0 auto; max-width:48%; padding:6px 8px; border:1px solid #efc65d; border-radius:999px; background:#fff8de; color:#735500; font-size:9px; font-weight:800; text-align:center; }
.point-status-chip.is-ready { border-color:#81cf9e; background:#e6f8ed; color:#075b2c; }
html[data-theme="dark"] .point-status-chip { background:#2d2712; color:#f3d778; }
html[data-theme="dark"] .point-status-chip.is-ready { background:#0b2e19; color:#98e8b3; }
.point-camera-shell { position:relative; aspect-ratio:4/5; max-height:420px; overflow:hidden; border:2px solid #bddac8; border-radius:18px; background:#0a1710; }
.point-camera-shell video { width:100%; height:100%; object-fit:cover; transform:scaleX(-1); opacity:0; }
.point-camera-shell video.is-ready { opacity:1; }
#point-camera-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; color:#d7e8dc; text-align:center; }
#point-camera-placeholder > span { display:grid; width:64px; height:64px; place-items:center; margin-bottom:10px; border:2px solid #7eb992; border-radius:50%; font-size:30px; }
#point-camera-placeholder small { max-width:250px; margin-top:5px; color:#a9c1b1; font-size:11px; }
.point-camera-actions { margin-top:10px; }
.point-consent { display:flex; align-items:flex-start; gap:10px; margin:13px 0; padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); color:var(--muted); font-size:11px; line-height:1.45; cursor:pointer; }
.point-consent input { width:20px; height:20px; margin:0; accent-color:#087b3a; flex:0 0 auto; }
.point-action-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.point-punch-action { min-height:112px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:15px; border:1px solid #97c9aa; border-radius:17px; background:#effaf3; color:#075b2c; text-align:left; cursor:pointer; transition:transform .12s ease,border-color .12s ease; }
.point-punch-action:active { transform:scale(.985); }
.point-punch-action:disabled { opacity:.55; cursor:wait; }
.point-punch-action > span { display:grid; width:34px; height:34px; place-items:center; margin-bottom:9px; border-radius:10px; background:#087b3a; color:#fff; font-size:17px; font-weight:900; }
.point-punch-action strong { font-size:14px; }
.point-punch-action small { margin-top:3px; color:#4e755d; font-size:9px; }
.point-action-saida { border-color:#e5b3b7; background:#fff2f3; color:#931a27; }
.point-action-saida > span { background:#bd2636; }
.point-action-saida small { color:#8b5b60; }
html[data-theme="dark"] .point-punch-action { border-color:#23613b; background:#0d2a18; color:#a7ebbd; }
html[data-theme="dark"] .point-action-saida { border-color:#63313a; background:#2b1418; color:#f1b5bc; }
.point-complete-state,.point-empty-timeline { grid-column:1/-1; display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:100px; padding:18px; border:1px dashed var(--border); border-radius:14px; color:var(--muted); text-align:center; }
.point-timeline { position:relative; display:flex; flex-direction:column; gap:8px; }
.point-timeline-item { display:grid; grid-template-columns:38px 1fr auto; align-items:center; gap:10px; min-height:62px; padding:9px; border:1px solid var(--border); border-radius:14px; background:var(--surface-2); }
.point-timeline-dot { display:grid; width:36px; height:36px; place-items:center; border-radius:11px; background:#087b3a; color:#fff; font-weight:900; }
.point-timeline-item div { display:flex; flex-direction:column; }
.point-timeline-item strong { font-size:13px; }
.point-timeline-item small { color:var(--muted); font-size:10px; }
.point-photo-button { min-width:48px; min-height:38px; border:1px solid var(--border); border-radius:9px; background:var(--surface); color:var(--brand-700); font:inherit; font-size:10px; font-weight:800; cursor:pointer; }
.point-mirror-mobile-card { display:grid; gap:6px; }
.point-mobile-footer { padding:14px 12px calc(14px + env(safe-area-inset-bottom)); color:var(--muted); font-size:9px; text-align:center; }
.evidence-modal img { display:block; width:100%; max-height:70vh; object-fit:contain; border-radius:12px; background:#0b1510; }
.signature-modal { max-width:720px; }
.signature-canvas { width:100%; height:220px; touch-action:none; border:2px dashed #8ab69a; border-radius:14px; background:#fff; cursor:crosshair; }
.signature-tools { display:flex; justify-content:flex-end; margin-top:8px; }
.point-signature-box img { display:block; width:100%; height:56px; object-fit:contain; margin:0 auto 4px; }
.point-signature-box.is-actionable { padding:7px; border:1px dashed var(--brand-500); border-radius:9px; cursor:pointer; }
.point-signature-box.is-actionable:hover { background:var(--surface-2); }
.temporary-pin { display:flex; flex-direction:column; align-items:center; gap:4px; margin:18px 0; padding:22px; border:2px dashed var(--brand-600); border-radius:16px; background:var(--surface-2); }
.temporary-pin span { color:var(--muted); font-size:12px; }
.temporary-pin strong { color:var(--brand-700); font-size:42px; letter-spacing:.14em; font-variant-numeric:tabular-nums; }
.point-admin-table { min-width:860px; }
.point-pending-row td { background:#fff4e6; color:#6b4200; }
html[data-theme="dark"] .point-pending-row td { background:#2d2110; color:#f3cc87; }
.point-mirror-modal .modal { width:min(1200px,96vw); max-width:none; max-height:94vh; }
.point-mirror-modal .modal-body { overflow:auto; }
.is-mobile-mirror .point-mirror-table { min-width:1040px; }

@media (min-width:700px) {
  .point-mobile-main { padding-top:24px; }
  .point-action-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .point-clock-card > strong { font-size:48px; }
}

@media (max-width:520px) {
  .point-mobile-brand img { width:66px; }
  .point-mobile-brand strong { font-size:14px; }
  .point-mobile-main { padding-left:10px; padding-right:10px; }
  .point-welcome-card,.point-clock-card,.point-mobile-card { border-radius:16px; }
  .point-clock-card > strong { font-size:38px; }
  .point-section-heading { flex-direction:column; }
  .point-status-chip { max-width:100%; }
  .point-action-grid { grid-template-columns:1fr 1fr; }
  .point-punch-action { min-height:104px; padding:13px; }
  .temporary-pin strong { font-size:34px; }
  .point-mirror-modal .modal { width:100vw; height:100dvh; max-height:none; border-radius:0; }
}

@media print {
  .point-signature-box.is-actionable { border:0 !important; padding:0 !important; }
  .point-signature-box img { height:34px !important; }
}

.point-entry-table { min-width:1100px; }
.point-evidence-list { width:min(980px,94vw); max-width:none; }
.point-evidence-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; }
.point-evidence-grid article { display:flex; flex-direction:column; gap:4px; padding:12px; border:1px solid var(--border); border-radius:14px; background:var(--surface-2); }
.point-evidence-grid strong { font-size:13px; }
.point-evidence-grid small { color:var(--muted); font-size:10px; line-height:1.4; }
.point-evidence-photo { display:grid; min-height:240px; place-items:center; overflow:hidden; margin-bottom:7px; border-radius:11px; background:#0b1710; color:#c3d5c8; }
.point-evidence-photo img { width:100%; height:240px; object-fit:cover; }

/* Ponto móvel — matrícula + identificação facial, sem senha */
.point-face-login-step { display:flex; flex-direction:column; gap:12px; }
.point-face-back { align-self:flex-start; padding:0; border:0; background:transparent; color:var(--brand-700); font:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.point-face-identification { display:flex; align-items:center; gap:12px; padding:12px; border:1px solid var(--border); border-radius:14px; background:var(--surface-2); }
.point-face-avatar { display:grid; flex:0 0 46px; width:46px; height:46px; place-items:center; border-radius:14px; background:var(--brand-700); color:#fff; font-weight:900; }
.point-face-identification > div { display:flex; min-width:0; flex-direction:column; }
.point-face-identification small,.point-face-identification span { color:var(--muted); font-size:10px; }
.point-face-identification strong { overflow:hidden; color:var(--text-strong); font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.point-login-camera-shell { position:relative; width:min(100%,340px); aspect-ratio:4/5; align-self:center; overflow:hidden; border:2px solid #9bc8aa; border-radius:20px; background:#09150e; box-shadow:0 12px 34px rgba(8,74,35,.14); }
.point-login-camera-shell video { width:100%; height:100%; object-fit:cover; opacity:0; transform:scaleX(-1); }
.point-login-camera-shell video.is-ready { opacity:1; }
#point-login-camera-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:22px; color:#d7e8dc; text-align:center; }
#point-login-camera-placeholder > span { display:grid; width:68px; height:68px; place-items:center; margin-bottom:10px; border:2px solid #7eb992; border-radius:50%; font-size:34px; }
#point-login-camera-placeholder small { max-width:260px; margin-top:6px; color:#a9c1b1; font-size:11px; line-height:1.45; }
.point-operational-day-note { margin:3px 0 0 !important; font-size:10px !important; }
.point-day-history { display:flex; flex-direction:column; gap:9px; }
.point-history-day { overflow:hidden; border:1px solid var(--border); border-radius:14px; background:var(--surface-2); }
.point-history-day > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:68px; padding:12px; cursor:pointer; list-style:none; }
.point-history-day > summary::-webkit-details-marker { display:none; }
.point-history-day > summary > div { display:flex; min-width:0; flex-direction:column; gap:3px; }
.point-history-day > summary > div:last-child { align-items:flex-end; }
.point-history-day > summary strong { font-size:14px; }
.point-history-day > summary span { color:var(--muted); font-size:10px; }
.point-history-day > summary b { color:var(--brand-700); font-size:16px; font-variant-numeric:tabular-nums; }
.point-history-journeys { display:flex; flex-direction:column; gap:9px; padding:0 10px 10px; border-top:1px solid var(--border); }
.point-history-journeys article { margin-top:10px; padding:11px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.point-history-journey-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:9px; }
.point-history-journey-head strong { font-size:12px; }
.point-history-journey-head span { color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; }
.point-history-times { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.point-history-times > span { display:flex; flex-direction:column; padding:8px; border-radius:9px; background:var(--surface-2); }
.point-history-times small,.point-history-intervals > small { color:var(--muted); font-size:9px; }
.point-history-times b { margin-top:2px; font-size:13px; font-variant-numeric:tabular-nums; }
.point-history-intervals { margin-top:9px; }
.point-interval-line { display:flex; align-items:center; gap:7px; margin-top:5px; color:var(--text); font-size:11px; font-variant-numeric:tabular-nums; }
.point-interval-line > span { display:inline-grid; min-width:26px; height:22px; place-items:center; border-radius:7px; background:var(--brand-soft); color:var(--brand-700); font-size:9px; font-weight:900; }

@media (max-width:520px) {
  .point-login-camera-shell { width:min(100%,300px); border-radius:17px; }
  .point-history-day > summary { align-items:flex-start; }
  .point-history-times { grid-template-columns:1fr 1fr 1fr; }
}


/* Escala operacional — port fiel da v2.0.40 para o visual da Versão 3.0 */
.schedule-page-panel { margin-bottom:14px; }
.schedule-editor-wrap { max-height:calc(100vh - 255px); overflow:auto; border-top:1px solid var(--border); }
.schedule-editor-table { min-width:2050px; font-size:12px; }
.schedule-editor-table thead { position:sticky; top:0; z-index:5; }
.schedule-editor-table thead tr:first-child th { background:var(--surface-3); color:var(--text-2); font-size:10px; letter-spacing:.045em; text-transform:uppercase; white-space:nowrap; }
.schedule-editor-table .table-filter-row th { top:33px; background:var(--surface-2); padding:5px; }
.schedule-editor-table .table-filter-row input { width:100%; min-height:30px; padding:5px 7px; font-size:11px; }
.schedule-editor-table td { vertical-align:top; min-width:108px; }
.schedule-editor-table td:nth-child(1) { min-width:72px; width:72px; }
.schedule-editor-table td:nth-child(2) { min-width:130px; }
.schedule-editor-table td:nth-child(3) { min-width:105px; }
.schedule-editor-table td:nth-child(4) { min-width:190px; }
.schedule-editor-table td:nth-child(5) { min-width:190px; }
.schedule-editor-table td:nth-child(6),
.schedule-editor-table td:nth-child(7),
.schedule-editor-table td:nth-child(8) { min-width:215px; }
.schedule-editor-table td:nth-child(9) { min-width:145px; }
.schedule-editor-table td:nth-child(10) { min-width:115px; }
.schedule-editor-table td:nth-child(11) { min-width:170px; }
.schedule-editor-table td:nth-child(12) { min-width:130px; }
.schedule-editor-table td:nth-child(13) { min-width:230px; }
.schedule-editor-table td:nth-child(14) { min-width:145px; }
.schedule-editor-table input,
.schedule-editor-table select,
.schedule-editor-table textarea { width:100%; min-height:34px; padding:6px 7px; border-radius:7px; font-size:12px; }
.schedule-editor-table textarea { min-height:56px; }
.schedule-editor-table input:disabled,
.schedule-editor-table select:disabled { opacity:.76; cursor:not-allowed; background:var(--surface-3); }
.schedule-editor-table small { display:block; margin-top:4px; color:var(--text-3); font-weight:700; font-size:10px; }
.schedule-sticky-sequence { position:sticky; left:0; z-index:3; background:var(--surface); box-shadow:1px 0 0 var(--border); }
.schedule-sequence-cell { display:flex; gap:5px; align-items:center; }
.schedule-warning-badge { flex:0 0 22px; width:22px; height:22px; border-radius:50%; border:1px solid var(--amber-300); background:var(--amber-50); color:var(--amber-800); font-weight:900; cursor:help; }
.schedule-actions { display:grid; gap:5px; }
.btn-xs { min-height:28px; padding:4px 7px; font-size:10px; line-height:1.15; }
.schedule-import-preview { max-height:350px; margin:12px 0; }
.schedule-empty { border-top:0; }

@media (max-width: 760px) {
  .schedule-editor-wrap { max-height:none; overflow:visible; border:0; }
  .schedule-editor-table,
  .schedule-editor-table tbody,
  .schedule-editor-table tr,
  .schedule-editor-table td { display:block; width:100%; min-width:0 !important; }
  .schedule-editor-table thead { display:none; }
  .schedule-editor-table tbody { display:grid; gap:12px; padding:12px; }
  .schedule-editor-table tr { border:1px solid var(--border); border-radius:14px; padding:10px; background:var(--surface); box-shadow:var(--shadow-sm); }
  .schedule-editor-table td { display:grid; grid-template-columns:118px minmax(0,1fr); gap:8px; align-items:center; border:0; padding:5px 0; }
  .schedule-editor-table td::before { color:var(--text-3); font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
  .schedule-editor-table td:nth-child(1)::before { content:'Sequência'; }
  .schedule-editor-table td:nth-child(2)::before { content:'OC(s)'; }
  .schedule-editor-table td:nth-child(3)::before { content:'Peso (kg)'; }
  .schedule-editor-table td:nth-child(4)::before { content:'Rota / região'; }
  .schedule-editor-table td:nth-child(5)::before { content:'Veículo'; }
  .schedule-editor-table td:nth-child(6)::before { content:'Motorista'; }
  .schedule-editor-table td:nth-child(7)::before { content:'Ajudante 1'; }
  .schedule-editor-table td:nth-child(8)::before { content:'Ajudante 2'; }
  .schedule-editor-table td:nth-child(9)::before { content:'Equipe'; }
  .schedule-editor-table td:nth-child(10)::before { content:'Horário'; }
  .schedule-editor-table td:nth-child(11)::before { content:'Retorno'; }
  .schedule-editor-table td:nth-child(12)::before { content:'Status'; }
  .schedule-editor-table td:nth-child(13)::before { content:'Observações'; }
  .schedule-editor-table td:nth-child(14)::before { content:'Ações'; }
  .schedule-sticky-sequence { position:static; box-shadow:none; }
  .schedule-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Transferências — foco operacional temporário */
.base-option-card.is-temporarily-locked { filter:saturate(.35); }
.base-option-card.is-temporarily-locked .base-card-icon { background:var(--surface-3); color:var(--muted); border:1px solid var(--border-strong); }
.base-option-card.is-temporarily-locked .base-card-arrow { color:var(--muted); font-size:19px; }
.trf-dashboard-cards,.trf-completeness-cards { grid-template-columns:repeat(4,minmax(0,1fr)); }
.trf-date-nav { justify-content:flex-end; }
.trf-date-nav .toolbar-field { min-width:150px; }
.trf-owner-tag { display:block; margin-top:3px; color:var(--brand-700); font-size:9px; font-weight:900; letter-spacing:.04em; text-transform:none; }
.trf-plan-rule { margin-bottom:14px; }
.trf-daily-panel { overflow:hidden; }
.trf-daily-table-wrap { max-height:calc(100vh - 330px); overflow:auto; }
.trf-daily-table { min-width:1850px; font-size:12px; }
.trf-daily-table thead { position:sticky; top:0; z-index:4; }
.trf-daily-table th,.trf-daily-table td { padding:7px 8px; }
.trf-daily-table td:nth-child(1) { width:46px; text-align:center; }
.trf-daily-table td:nth-child(2) { min-width:126px; }
.trf-daily-table td:nth-child(3) { min-width:190px; }
.trf-daily-table td:nth-child(4) { min-width:118px; }
.trf-daily-table td:nth-child(8) { min-width:225px; }
.trf-daily-table td:nth-child(9) { min-width:145px; }
.trf-daily-table td:nth-child(10) { min-width:125px; }
.trf-daily-table td:nth-child(11) { min-width:132px; }
.trf-daily-table td:nth-child(12),.trf-daily-table td:nth-child(13) { min-width:112px; }
.trf-daily-table td:nth-child(14) { min-width:145px; }
.trf-cell-control { width:100%; min-height:34px; padding:6px 7px; border:1px solid var(--border-strong); border-radius:7px; background:var(--surface); color:var(--text); font:inherit; }
.trf-cell-control:disabled { opacity:.58; background:var(--surface-3); }
.trf-route-arrow { color:var(--brand-600); font-weight:900; }
.trf-next-day { display:block; margin-top:2px; color:var(--muted); font-size:9px; font-weight:800; }
.trf-row-actions { display:grid; grid-template-columns:1fr; gap:5px; }
.trf-daily-table tr.trf-row-cancelled td { background:color-mix(in srgb,var(--red-50) 70%,var(--surface)); }
.trf-daily-table tr.trf-row-finalized td { background:color-mix(in srgb,var(--brand-50) 70%,var(--surface)); }
.trf-breakdown-table { min-width:580px; }

@media (max-width:1200px) {
  .trf-dashboard-cards,.trf-completeness-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .trf-dashboard-cards,.trf-completeness-cards { grid-template-columns:1fr; }
  .trf-date-nav { width:100%; justify-content:stretch; }
  .trf-date-nav .toolbar-field { flex:1; }
  .trf-daily-table-wrap { max-height:none; }
}

/* Transferências — registro diário em cards com histórico de status */
.trf-filial-group { margin-bottom:22px; }
.trf-filial-group:last-child { margin-bottom:0; }
.trf-filial-heading { display:flex; align-items:end; justify-content:space-between; gap:12px; margin:4px 0 10px; padding:0 2px; }
.trf-filial-heading h4 { margin:2px 0 0; font-size:18px; }
.trf-trip-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.trf-trip-card { border:1px solid var(--border); border-radius:14px; background:var(--surface); box-shadow:var(--shadow-sm); overflow:hidden; }
.trf-trip-card.is-finalized { border-color:#b3ddc2; }
.trf-trip-card.is-cancelled { border-color:#efbbbb; background:color-mix(in srgb,var(--red-50) 30%,var(--surface)); }
.trf-trip-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:13px 14px 9px; border-bottom:1px solid var(--border); }
.trf-trip-head > div:first-child { display:flex; align-items:center; gap:8px; min-width:0; }
.trf-trip-head > div:first-child strong { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trf-trip-number { display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:25px; padding:0 6px; border-radius:7px; background:var(--surface-3); color:var(--text-2); font-size:10px; font-weight:900; }
.trf-trip-head-right { display:flex; align-items:center; gap:10px; }
.trf-planned-time { text-align:right; min-width:58px; }
.trf-planned-time small { display:block; color:var(--text-3); font-size:9px; font-weight:800; }
.trf-planned-time strong { display:block; margin-top:1px; font-size:17px; }
.trf-trip-route { display:flex; align-items:center; gap:8px; padding:10px 14px 4px; font-size:14px; }
.trf-trip-route span { color:var(--brand-600); font-weight:900; }
.trf-plan-mini-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; padding:8px 14px 12px; }
.trf-plan-mini-grid > div { padding:7px 8px; border:1px solid var(--border); border-radius:9px; background:var(--surface-2); min-width:0; }
.trf-plan-mini-grid span { display:block; color:var(--text-3); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; }
.trf-plan-mini-grid strong { display:block; margin-top:3px; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trf-allocation-grid { display:grid; grid-template-columns:1.45fr .9fr .9fr; gap:8px; padding:0 14px 12px; }
.trf-allocation-grid .field { margin:0; }
.trf-timeline-title { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 14px 6px; border-top:1px solid var(--border); }
.trf-timeline-title strong { font-size:11px; }
.trf-timeline-title small { color:var(--text-3); font-size:9px; }
.trf-status-history { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; padding:0 14px 12px; }
.trf-history-step { position:relative; padding:8px 7px; border:1px dashed var(--border-strong); border-radius:9px; background:var(--surface-2); text-align:center; }
.trf-history-step span { display:block; color:var(--text-3); font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.03em; }
.trf-history-step strong { display:block; margin-top:3px; font-size:12px; }
.trf-history-step.is-recorded { border-style:solid; border-color:#b3ddc2; background:var(--brand-50); }
.trf-history-step.is-recorded::before { content:'✓'; position:absolute; top:3px; right:5px; color:var(--brand-700); font-size:9px; font-weight:900; }
.trf-status-register { display:grid; grid-template-columns:1fr .72fr auto; gap:8px; align-items:end; padding:11px 14px 14px; border-top:1px solid var(--border); background:var(--surface-2); }
.trf-status-register .field { margin:0; }
.trf-card-actions { display:flex; gap:6px; align-items:center; }
.trf-history-editor-title { display:flex; flex-direction:column; gap:3px; padding:8px 0 2px; }
.trf-history-editor-title small { color:var(--text-3); }

@media (max-width:1180px) {
  .trf-trip-grid { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .trf-trip-head,.trf-trip-head-right,.trf-timeline-title { align-items:flex-start; }
  .trf-trip-head-right { flex-direction:column; }
  .trf-plan-mini-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trf-allocation-grid { grid-template-columns:1fr; }
  .trf-status-history { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trf-status-register { grid-template-columns:1fr; }
  .trf-card-actions { display:grid; grid-template-columns:1fr 1fr; }
}

/* Transferências — lista diária compacta e cadastros exclusivos */
.trf-reference-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:10px 0 14px; }
.trf-reference-strip details,.trf-master-reference { border:1px solid var(--border); border-radius:10px; background:var(--surface); overflow:hidden; }
.trf-reference-strip summary,.trf-master-reference summary { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 11px; cursor:pointer; font-size:11px; font-weight:900; }
.trf-reference-strip summary span:last-child { min-width:24px; height:20px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; background:var(--surface-3); color:var(--text-2); font-size:10px; }
.trf-reference-chips,.trf-support-chip-grid { display:flex; flex-wrap:wrap; gap:6px; padding:8px 10px 10px; border-top:1px solid var(--border); }
.trf-support-chip { display:flex; flex-direction:column; align-items:flex-start; gap:1px; max-width:230px; padding:6px 9px; border:1px solid var(--border); border-radius:8px; background:var(--surface-2); color:var(--text); text-align:left; cursor:pointer; }
.trf-support-chip:hover { border-color:var(--brand-500); background:var(--brand-50); }
.trf-support-chip strong { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.trf-support-chip small { color:var(--text-3); font-size:9px; }
.trf-support-empty { color:var(--text-3); font-size:10px; padding:3px; }
.trf-support-picker { display:grid; gap:12px; }
.trf-support-picker-section { border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.trf-support-picker-title { display:flex; align-items:center; justify-content:space-between; padding:9px 10px; background:var(--surface-2); border-bottom:1px solid var(--border); }
.trf-support-picker-title strong { font-size:11px; }
.trf-support-picker .trf-support-chip-grid { max-height:220px; overflow:auto; border-top:0; }
.trf-filial-list { margin-bottom:20px; }
.trf-filial-list:last-child { margin-bottom:0; }
.trf-register-table-wrap { border:1px solid var(--border); border-radius:10px; overflow:auto; }
.trf-register-table { min-width:1500px; margin:0; }
.trf-register-table thead { position:sticky; top:0; z-index:3; }
.trf-register-table th { white-space:nowrap; }
.trf-register-table td { vertical-align:middle; padding:8px; }
.trf-register-table th:nth-child(1) { min-width:145px; }
.trf-register-table th:nth-child(2) { min-width:180px; }
.trf-register-table th:nth-child(3) { min-width:180px; }
.trf-register-table th:nth-child(4) { min-width:220px; }
.trf-register-table th:nth-child(5) { min-width:125px; }
.trf-register-table th:nth-child(6) { min-width:105px; }
.trf-register-table th:nth-child(7) { min-width:135px; }
.trf-register-table th:nth-child(8) { min-width:100px; }
.trf-register-table th:nth-child(9) { min-width:355px; }
.trf-register-table th:nth-child(10) { min-width:88px; }
.trf-register-table tr.trf-row-cancelled td { background:color-mix(in srgb,var(--red-50) 65%,var(--surface)); }
.trf-register-table tr.trf-row-finalized td { background:color-mix(in srgb,var(--brand-50) 58%,var(--surface)); }
.trf-list-slot { display:flex; flex-direction:column; gap:2px; }
.trf-list-slot strong { font-size:12px; white-space:nowrap; }
.trf-list-slot small,.trf-list-route small { color:var(--text-3); font-size:9px; }
.trf-list-route { display:flex; flex-direction:column; gap:3px; }
.trf-list-route strong { font-size:11px; white-space:nowrap; }
.trf-list-route span { color:var(--brand-600); }
.trf-plan-times { display:flex; gap:5px; }
.trf-plan-times > span { min-width:52px; padding:5px 6px; border:1px solid var(--border); border-radius:7px; background:var(--surface-2); text-align:center; }
.trf-plan-times small { display:block; color:var(--text-3); font-size:8px; font-weight:900; text-transform:uppercase; }
.trf-plan-times strong { display:block; margin-top:1px; font-size:10px; }
.trf-driver-cell { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px; align-items:center; }
.trf-time-input { min-width:82px; }
.trf-register-table .trf-status-history { min-width:340px; padding:0; gap:4px; }
.trf-register-table .trf-history-step { padding:6px 5px; border-radius:7px; }
.trf-register-table .trf-history-step span { font-size:7px; }
.trf-register-table .trf-history-step strong { font-size:10px; }
.trf-list-actions { display:grid; gap:5px; }
.trf-master-reference-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:14px; }
.trf-master-reference .trf-reference-chips { max-height:220px; overflow:auto; }

@media (max-width:900px) {
  .trf-reference-strip,.trf-master-reference-grid { grid-template-columns:1fr; }
  .trf-register-table { min-width:1350px; }
}

/* Transferências — separação entre Programação e Acompanhamento */
.trf-workflow-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0 0 14px; }
.trf-workflow-tabs button { display:flex; flex-direction:column; align-items:flex-start; gap:3px; min-height:62px; padding:11px 14px; border:1px solid var(--border); border-radius:11px; background:var(--surface); color:var(--text); cursor:pointer; text-align:left; transition:border-color .15s ease,background .15s ease,transform .15s ease; }
.trf-workflow-tabs button:hover { border-color:var(--brand-500); transform:translateY(-1px); }
.trf-workflow-tabs button.is-active { border-color:var(--brand-600); background:var(--brand-50); box-shadow:inset 3px 0 0 var(--brand-600); }
.trf-workflow-tabs strong { font-size:12px; }
.trf-workflow-tabs span { color:var(--text-3); font-size:10px; }

.trf-allocation-table-wrap,.trf-monitor-table-wrap { border:1px solid var(--border); border-radius:10px; overflow:auto; }
.trf-allocation-table { min-width:1230px; margin:0; }
.trf-allocation-table thead,.trf-monitor-table thead { position:sticky; top:0; z-index:3; }
.trf-allocation-table th,.trf-monitor-table th { white-space:nowrap; }
.trf-allocation-table td,.trf-monitor-table td { vertical-align:middle; padding:8px; }
.trf-allocation-table th:nth-child(1) { min-width:145px; }
.trf-allocation-table th:nth-child(2) { min-width:180px; }
.trf-allocation-table th:nth-child(3) { min-width:180px; }
.trf-allocation-table th:nth-child(4) { min-width:235px; }
.trf-allocation-table th:nth-child(5) { min-width:125px; }
.trf-allocation-table th:nth-child(6) { min-width:125px; }
.trf-allocation-table th:nth-child(7) { min-width:150px; }
.trf-allocation-table th:nth-child(8) { min-width:82px; }
.trf-fill-state { display:flex; flex-direction:column; gap:2px; min-width:135px; padding:7px 9px; border:1px solid #e8cf9d; border-radius:8px; background:var(--amber-50); }
.trf-fill-state strong { color:var(--amber-600); font-size:10px; }
.trf-fill-state small { color:var(--text-3); font-size:8px; }
.trf-fill-state.is-complete { border-color:#b3ddc2; background:var(--brand-50); }
.trf-fill-state.is-complete strong { color:var(--brand-800); }

.trf-monitor-table { min-width:1510px; margin:0; }
.trf-monitor-table th:nth-child(1) { min-width:145px; }
.trf-monitor-table th:nth-child(2) { min-width:180px; }
.trf-monitor-table th:nth-child(3) { min-width:180px; }
.trf-monitor-table th:nth-child(4) { min-width:220px; }
.trf-monitor-table th:nth-child(5) { min-width:115px; }
.trf-monitor-table th:nth-child(6) { min-width:135px; }
.trf-monitor-table th:nth-child(7) { min-width:92px; }
.trf-monitor-table th:nth-child(8) { min-width:355px; }
.trf-monitor-table th:nth-child(9) { min-width:94px; }
.trf-monitor-table tr.trf-row-cancelled td { background:color-mix(in srgb,var(--red-50) 65%,var(--surface)); }
.trf-monitor-table tr.trf-row-finalized td { background:color-mix(in srgb,var(--brand-50) 58%,var(--surface)); }
.trf-monitor-table .trf-status-history { min-width:340px; padding:0; gap:4px; }
.trf-monitor-table .trf-history-step { padding:6px 5px; border-radius:7px; }
.trf-monitor-table .trf-history-step span { font-size:7px; }
.trf-monitor-table .trf-history-step strong { font-size:10px; }
.trf-allocation-summary { display:flex; flex-direction:column; gap:3px; }
.trf-allocation-summary strong { max-width:220px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:10px; }
.trf-allocation-summary span { color:var(--text-3); font-size:9px; }
.trf-monitor-kpis { margin-top:12px; }

@media (max-width:760px) {
  .trf-workflow-tabs { grid-template-columns:1fr; }
  .trf-allocation-table { min-width:1120px; }
  .trf-monitor-table { min-width:1380px; }
}

/* Transferências — Programação + Acompanhamento (referência planilha 2026) */
.trf-monitor-table { min-width:1960px; margin:0; }
.trf-monitor-table th:nth-child(1) { min-width:150px; }
.trf-monitor-table th:nth-child(2) { min-width:220px; }
.trf-monitor-table th:nth-child(3) { min-width:180px; }
.trf-monitor-table th:nth-child(4) { min-width:125px; }
.trf-monitor-table th:nth-child(5) { min-width:155px; }
.trf-monitor-table th:nth-child(6) { min-width:205px; }
.trf-monitor-table th:nth-child(7) { min-width:90px; }
.trf-monitor-table th:nth-child(8) { min-width:510px; }
.trf-monitor-table th:nth-child(9) { min-width:285px; }
.trf-monitor-table th:nth-child(10) { min-width:95px; }
.trf-monitor-table .trf-status-history-wide { grid-template-columns:repeat(7,minmax(58px,1fr)); min-width:500px; }
.trf-location-cell .trf-cell-control { min-width:145px; }
.trf-monitor-metrics { display:grid; grid-template-columns:repeat(2,minmax(92px,1fr)); gap:5px; min-width:270px; }
.trf-metric-chip { display:flex; align-items:center; justify-content:space-between; gap:7px; padding:6px 7px; border:1px solid var(--border); border-radius:7px; background:var(--surface-2); }
.trf-metric-chip small { color:var(--text-3); font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.02em; }
.trf-metric-chip strong { font-size:10px; white-space:nowrap; }
.trf-metric-chip.is-alert { border-color:#e8cf9d; background:var(--amber-50); }
.trf-metric-chip.is-alert strong { color:var(--amber-700); }
.trf-metric-chip.is-danger { border-color:#efbbbb; background:var(--red-50); }
.trf-metric-chip.is-danger strong { color:var(--red-700); }
@media (max-width:900px) {
  .trf-monitor-table { min-width:1820px; }
}

/* Transferências — dashboard clean + tipografia em maiúsculas */
body, .app-shell, .page-intro, .panel, .data-table, .btn, .field span, .metric-card, .toolbar-field span, .badge, .helper-text, .eyebrow { text-transform: uppercase; }
input, select, textarea { text-transform: uppercase; }
.trf-clean-dashboard { display:flex; flex-direction:column; gap:16px; }
.trf-clean-summary-grid { display:grid; grid-template-columns:1fr 1fr 1.8fr; gap:14px; }
.trf-clean-summary-card .panel-body { padding-top:4px; }
.trf-summary-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.trf-summary-stats.trf-summary-stats-wide { grid-template-columns:repeat(4,minmax(0,1fr)); }
.trf-summary-stats > div { display:flex; flex-direction:column; gap:4px; padding:6px 0; }
.trf-summary-stats strong { font-size:34px; line-height:1; letter-spacing:-.03em; }
.trf-summary-stats small { font-size:11px; color:var(--text-3); font-weight:800; }
.trf-summary-stats .is-success { color:#13804e; }
.trf-summary-stats .is-danger { color:#c73434; }
.trf-summary-stats .is-info { color:#1f5fbf; }
.trf-clean-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(320px,.95fr); gap:16px; align-items:start; }
.trf-dashboard-side-stack { display:grid; gap:16px; }
.trf-dashboard-table { min-width:1000px; }
.trf-dashboard-table th { white-space:nowrap; }
.trf-status-pill { display:inline-flex; align-items:center; justify-content:center; min-width:100px; padding:5px 9px; border-radius:999px; border:1px solid var(--border); font-size:10px; font-weight:900; }
.trf-status-pill.is-success { background:var(--brand-50); border-color:#b3ddc2; color:var(--brand-800); }
.trf-status-pill.is-danger { background:var(--red-50); border-color:#efbbbb; color:var(--red-700); }
.trf-status-pill.is-muted { background:var(--surface-2); color:var(--text-3); }
.trf-delay-list,.trf-destination-list { display:flex; flex-direction:column; gap:12px; }
.trf-delay-item,.trf-destination-item { display:grid; gap:10px; align-items:center; }
.trf-delay-item { grid-template-columns:28px minmax(0,1fr) minmax(120px,1fr) 68px; }
.trf-delay-rank { display:flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:999px; background:var(--surface-3); color:var(--text-2); font-size:11px; font-weight:800; }
.trf-delay-body { display:flex; flex-direction:column; min-width:0; }
.trf-delay-body strong,.trf-destination-name { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:12px; }
.trf-delay-body small { color:var(--text-3); font-size:10px; }
.trf-delay-bar,.trf-destination-bar { position:relative; height:18px; border-radius:999px; background:var(--surface-3); overflow:hidden; }
.trf-delay-bar span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#dc4d4d,#be2d2d); }
.trf-destination-item { grid-template-columns:minmax(90px,1fr) minmax(140px,1.4fr) 72px; }
.trf-destination-bar span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#4c87d9,#2262bf); }
.trf-delay-time,.trf-destination-value { font-size:12px; font-weight:900; text-align:right; }
.trf-clean-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
.trf-dashboard-main-table .panel-body,.trf-dashboard-side-stack .panel-body { padding-top:6px; }
@media (max-width: 1100px) {
  .trf-clean-summary-grid { grid-template-columns:1fr; }
  .trf-clean-dashboard-grid { grid-template-columns:1fr; }
}
@media (max-width: 760px) {
  .trf-summary-stats, .trf-summary-stats.trf-summary-stats-wide { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trf-delay-item { grid-template-columns:24px minmax(0,1fr); }
  .trf-delay-bar,.trf-delay-time { grid-column:2; }
  .trf-destination-item { grid-template-columns:minmax(0,1fr); }
  .trf-destination-value { text-align:left; }
}

/* Transferências — cancelamento na programação + regras Bitruck */
.trf-allocation-table { min-width:1680px; }
.trf-allocation-table th:nth-child(7) { min-width:110px; }
.trf-allocation-table th:nth-child(8) { min-width:230px; }
.trf-allocation-table th:nth-child(9) { min-width:160px; }
.trf-allocation-table th:nth-child(10) { min-width:90px; }
.trf-cancel-check { display:flex; align-items:center; gap:7px; min-height:34px; padding:7px 9px; border:1px solid var(--border); border-radius:8px; background:var(--surface-2); cursor:pointer; }
.trf-cancel-check input { width:16px; height:16px; accent-color:#c73434; }
.trf-cancel-check span { font-size:10px; font-weight:900; color:var(--text-2); }
.trf-cancel-reason { min-width:210px; min-height:38px; max-height:76px; resize:vertical; }
.trf-row-cancelled .trf-cancel-check { border-color:#efbbbb; background:var(--red-50); }
.trf-row-cancelled .trf-cancel-check span { color:var(--red-700); }
.trf-fill-state.is-cancelled { border-color:#efbbbb; background:var(--red-50); }
.trf-fill-state.is-cancelled strong { color:var(--red-700); }
.trf-static-chips { display:flex; flex-wrap:wrap; gap:7px; }
.trf-static-chip { display:inline-flex; align-items:center; min-height:30px; padding:6px 10px; border:1px solid var(--border); border-radius:999px; background:var(--surface-2); font-size:10px; font-weight:900; }

/* Transferências — retenção por unidade */
.trf-retention-panel { overflow:hidden; }
.trf-retention-title { align-items:center; }
.trf-retention-total { display:flex; flex-direction:column; align-items:flex-end; gap:2px; padding:8px 12px; border-radius:10px; background:var(--surface-2); border:1px solid var(--border); }
.trf-retention-total small { font-size:9px; font-weight:900; color:var(--text-3); }
.trf-retention-total strong { font-size:24px; color:var(--text); }
.trf-retention-layout { display:grid; grid-template-columns:minmax(320px,1fr) minmax(420px,1.05fr); gap:14px; }
.trf-retention-left,.trf-retention-right { display:grid; gap:12px; min-width:0; }
.trf-retention-treemap { display:flex; flex-wrap:wrap; gap:4px; min-height:330px; align-content:stretch; border-radius:12px; overflow:hidden; background:var(--surface-2); }
.trf-retention-tile { min-width:30%; min-height:118px; display:flex; flex-direction:column; justify-content:center; gap:7px; padding:18px; color:white; }
.trf-retention-tile strong { font-size:22px; line-height:1.05; }
.trf-retention-tile b { font-size:22px; }
.trf-retention-tile span { font-size:16px; font-weight:900; }
.trf-retention-tile.is-blue,.trf-unit-icon.is-blue,.trf-retention-rank-track span.is-blue { background:#1778c8; }
.trf-retention-tile.is-orange,.trf-unit-icon.is-orange,.trf-retention-rank-track span.is-orange { background:#ef6900; }
.trf-retention-tile.is-green,.trf-unit-icon.is-green,.trf-retention-rank-track span.is-green { background:#07943c; }
.trf-retention-tile.is-red,.trf-unit-icon.is-red,.trf-retention-rank-track span.is-red { background:#df0808; }
.trf-retention-tile.is-purple,.trf-unit-icon.is-purple,.trf-retention-rank-track span.is-purple { background:#6f55b4; }
.trf-retention-note { margin:0; font-size:10px; line-height:1.45; }
.trf-retention-unit-summary,.trf-retention-ranking { border:1px solid var(--border); border-radius:11px; overflow:hidden; background:var(--surface); }
.trf-retention-unit-summary-title,.trf-retention-ranking-title { padding:9px 12px; background:var(--surface-3); border-bottom:1px solid var(--border); text-align:center; font-size:12px; font-weight:900; }
.trf-retention-unit-row { display:grid; grid-template-columns:44px minmax(0,1fr) 80px 82px; gap:10px; align-items:center; padding:7px 10px; border-bottom:1px solid var(--border); }
.trf-unit-icon { display:flex; align-items:center; justify-content:center; width:42px; height:34px; border-radius:7px; color:white; font-size:18px; }
.trf-retention-unit-row > strong { font-size:12px; }
.trf-retention-unit-row > span { display:flex; flex-direction:column; align-items:center; }
.trf-retention-unit-row > span b { font-size:17px; line-height:1; }
.trf-retention-unit-row > span small { font-size:7px; color:var(--text-3); }
.trf-retention-unit-row em { font-size:16px; font-style:normal; font-weight:900; text-align:right; }
.trf-retention-unit-footer { display:flex; justify-content:space-between; gap:12px; padding:10px 12px; background:var(--surface-2); font-size:10px; }
.trf-retention-ranking { padding-bottom:10px; }
.trf-retention-rank-row { display:grid; grid-template-columns:145px minmax(120px,1fr) 58px; gap:8px; align-items:center; padding:5px 10px; }
.trf-retention-rank-label { display:flex; flex-direction:column; min-width:0; }
.trf-retention-rank-label strong { font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trf-retention-rank-label small { font-size:8px; color:var(--text-3); }
.trf-retention-rank-track { height:16px; border-radius:4px; background:var(--surface-3); overflow:hidden; }
.trf-retention-rank-track span { display:block; height:100%; border-radius:4px; }
.trf-retention-rank-row > b { font-size:10px; text-align:right; }
.trf-retention-empty { margin-top:16px; }
@media (max-width:1100px) {
  .trf-retention-layout { grid-template-columns:1fr; }
  .trf-retention-treemap { min-height:260px; }
}
@media (max-width:760px) {
  .trf-retention-unit-row { grid-template-columns:40px minmax(0,1fr) 65px; }
  .trf-retention-unit-row em { grid-column:2 / 4; text-align:left; }
  .trf-retention-rank-row { grid-template-columns:110px minmax(80px,1fr) 52px; }
}

/* Administração — acesso exclusivo do perfil ADMIN */
.base-selector-user { justify-content:space-between; }
.base-selector-user-main { display:flex; align-items:center; gap:12px; min-width:0; }
.admin-gear-button { width:44px; height:44px; border:1px solid var(--border); border-radius:12px; display:inline-flex; align-items:center; justify-content:center; background:var(--surface); color:var(--text); font-size:20px; cursor:pointer; transition:.15s ease; }
.admin-gear-button:hover { border-color:var(--brand-500); background:var(--brand-50); color:var(--brand-800); transform:translateY(-1px); }
.admin-gear-button[hidden] { display:none !important; }
.sidebar-footer-actions { display:flex; align-items:center; gap:6px; }
.admin-settings-summary { margin-bottom:16px; }
.admin-settings-grid { max-width:980px; }
.admin-settings-note { margin-top:16px; }

/* Ajuste de capitalização: entrada normal; operação em caixa alta */
#auth-view,
#auth-view *,
#base-selector-view,
#base-selector-view * {
  text-transform: none !important;
}

/* Senhas nunca devem sofrer transformação visual, inclusive ao usar "Exibir" */
.password-field input,
input[type="password"],
#setup-password,
#login-password,
#change-current-password,
#change-new-password,
#change-confirm-password,
[data-user-field="password"] {
  text-transform: none !important;
}

/* Transferências — Acompanhamento 1920x1080 sem rolagem horizontal */
.trf-monitor-panel { overflow:hidden; }
.trf-monitor-panel-body { padding:10px 12px 14px; }
.trf-monitor-table-wrap { width:100%; overflow:visible; border:1px solid var(--border); border-radius:10px; }
.trf-monitor-table.trf-monitor-table-compact { width:100%; min-width:0 !important; table-layout:fixed; margin:0; }
.trf-monitor-table-compact th,.trf-monitor-table-compact td { min-width:0 !important; padding:8px 7px; vertical-align:middle; overflow:hidden; }
.trf-monitor-table-compact th { font-size:9px; line-height:1.15; white-space:normal; }
.trf-monitor-table-compact td { font-size:11px; }
.trf-monitor-table-compact th:nth-child(1){width:16%;}.trf-monitor-table-compact th:nth-child(2){width:12%;}.trf-monitor-table-compact th:nth-child(3){width:14%;}.trf-monitor-table-compact th:nth-child(4){width:14%;}.trf-monitor-table-compact th:nth-child(5){width:7%;}.trf-monitor-table-compact th:nth-child(6){width:24%;}.trf-monitor-table-compact th:nth-child(7){width:7%;}.trf-monitor-table-compact th:nth-child(8){width:6%;}
.trf-primary-vehicle,.trf-monitor-driver { display:flex; flex-direction:column; gap:2px; min-width:0; }
.trf-primary-vehicle strong { font-size:14px; line-height:1.05; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trf-primary-vehicle span { font-size:11px; font-weight:900; color:var(--brand-700); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trf-primary-vehicle small,.trf-monitor-driver small { font-size:8px; color:var(--text-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trf-monitor-driver strong { font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trf-monitor-table-compact .trf-cell-control { width:100%; min-width:0 !important; height:34px; padding:5px 7px; font-size:10px; font-weight:800; }
.trf-monitor-table-compact .trf-status-control { font-size:9px; }
.trf-monitor-table-compact .trf-time-input { min-width:0; padding-inline:4px; }
.trf-status-history-compact { min-width:0 !important; width:100%; display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:4px !important; padding:0 !important; }
.trf-status-history-compact .trf-history-step { min-width:0; padding:4px 3px !important; border-radius:6px; }
.trf-status-history-compact .trf-history-step span { font-size:6.5px !important; line-height:1.1; }
.trf-status-history-compact .trf-history-step strong { font-size:10px !important; line-height:1.1; }
.trf-improductive-summary { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:42px; padding:5px; border:1px solid var(--border); border-radius:7px; background:var(--surface-2); text-align:center; }
.trf-improductive-summary strong { font-size:13px; }
.trf-improductive-summary small { font-size:6.5px; line-height:1.15; color:var(--text-3); }
.trf-improductive-summary.is-alert { background:var(--red-50); border-color:#efbbbb; }
.trf-improductive-summary.is-alert strong { color:var(--red-700); }
.trf-list-actions-compact { display:flex; flex-direction:column; gap:4px; }
.trf-list-actions-compact .btn { width:100%; min-width:0; padding:5px 4px; font-size:8px; }
.trf-monitor-toolbar { gap:10px; align-items:flex-end; }
.trf-monitor-toolbar .toolbar-group { flex-wrap:wrap; justify-content:flex-end; }
.trf-monitor-toolbar .filter-control { min-width:150px; }
.trf-monitor-kpis-compact { grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:8px 0 10px; }
.trf-monitor-kpis-compact .metric-card { min-height:78px; padding:10px 12px; }
.trf-monitor-kpis-compact .metric-value { font-size:22px; }
@media (min-width:1500px) {
  .trf-monitor-intro { margin-bottom:8px; }
  .trf-monitor-panel .panel-header { padding-top:10px; padding-bottom:10px; }
  .trf-filial-heading { padding:7px 2px; }
}
@media (max-width:1450px) {
  .trf-monitor-table-wrap { overflow-x:auto; }
  .trf-monitor-table.trf-monitor-table-compact { min-width:1180px !important; }
}

/* Transferências — Resumo de Acompanhamento somente leitura / print */
.trf-summary-share { overflow:hidden; background:#fff; color:#10231a; }
[data-theme="dark"] .trf-summary-share { background:#f8fbf9; color:#10231a; }
.trf-summary-share-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:15px 18px; background:linear-gradient(100deg,#075b29,#0a7b3b); color:#fff; }
.trf-summary-share-header > div { display:flex; flex-direction:column; gap:3px; }
.trf-summary-share-header span { font-size:9px; font-weight:900; letter-spacing:.12em; }
.trf-summary-share-header strong { font-size:19px; }
.trf-summary-share-header > b { font-size:18px; }
.trf-summary-share-body { padding:14px; }
.trf-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.trf-summary-card { border:1px solid #d9e3dd; border-left:5px solid #7d8c84; border-radius:10px; background:#fff; padding:10px 12px; }
.trf-summary-card.is-success { border-left-color:#148049; }.trf-summary-card.is-warning { border-left-color:#e99a22; }.trf-summary-card.is-danger { border-left-color:#d13c3c; }.trf-summary-card.is-info { border-left-color:#2f6fc0; }
.trf-summary-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding-bottom:8px; border-bottom:1px solid #e6ece8; }
.trf-summary-card-head > div { display:flex; flex-direction:column; gap:2px; min-width:0; }
.trf-summary-card-head strong { font-size:17px; color:#0f2118; }
.trf-summary-card-head span { font-size:12px; font-weight:900; color:#236444; }
.trf-summary-status { flex:0 0 auto; padding:5px 8px; border-radius:999px; font-size:8px; font-weight:900; border:1px solid #cfd8d2; color:#33443a; }
.trf-summary-status.is-success { color:#0b6d3a; background:#edf8f1; border-color:#b7dbc6; }.trf-summary-status.is-warning { color:#8b5b00; background:#fff7e9; border-color:#ebd7aa; }.trf-summary-status.is-danger { color:#a92525; background:#fff0f0; border-color:#efc0c0; }.trf-summary-status.is-info { color:#225b9d; background:#eef5ff; border-color:#bdd3ef; }
.trf-summary-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px 10px; padding-top:8px; }
.trf-summary-card-grid > div { display:flex; flex-direction:column; gap:2px; min-width:0; }
.trf-summary-card-grid small { color:#728078; font-size:7px; font-weight:900; }
.trf-summary-card-grid b { color:#12241a; font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trf-summary-share-footer { padding:8px 14px; border-top:1px solid #dfe7e2; color:#66736c; font-size:8px; font-weight:800; text-align:right; }
@media (max-width:900px){.trf-summary-grid{grid-template-columns:1fr}.trf-summary-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media print {
  body[data-route="transfer_summary"] #sidebar,body[data-route="transfer_summary"] .topbar,body[data-route="transfer_summary"] .page-intro,body[data-route="transfer_summary"] .print-header { display:none !important; }
  body[data-route="transfer_summary"] .main-content,body[data-route="transfer_summary"] #page-content { padding:0 !important; margin:0 !important; width:100% !important; }
  body[data-route="transfer_summary"] .trf-summary-share { border:none !important; box-shadow:none !important; }
  body[data-route="transfer_summary"] .trf-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  body[data-route="transfer_summary"] .trf-summary-card { break-inside:avoid; }
}

/* Dashboard — improdutivo por viagem (1h carregamento + 1h descarga) */
.trf-trip-retention { display:flex; flex-direction:column; gap:3px; min-width:90px; }
.trf-trip-retention span { display:flex; justify-content:space-between; gap:5px; padding:3px 5px; border-radius:5px; background:var(--red-50); border:1px solid #efc5c5; }
.trf-trip-retention small { font-size:6.5px; color:var(--red-700); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.trf-trip-retention strong { font-size:8px; color:var(--red-700); }
.trf-retention-none { color:var(--text-3); }
.trf-table-sub { display:block; margin-top:2px; color:var(--text-3); font-size:7px; }
.trf-workflow-tabs-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:900px){.trf-workflow-tabs-three{grid-template-columns:1fr;}}

/* =========================================================
   TRANSFERÊNCIAS ANALÍTICO — TMS VISUAL v3.0
   ========================================================= */
.trf-analytics-intro { align-items:flex-end; }
.trf-dashboard-actions { flex-wrap:wrap; justify-content:flex-end; }
.trf-analytics-dashboard { display:grid; gap:16px; }
.trf-kpi-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.trf-analytics-kpi { position:relative; min-height:142px; padding:16px 17px; border:1px solid var(--border); border-radius:12px; background:linear-gradient(145deg,var(--surface),var(--surface-2)); overflow:hidden; box-shadow:0 8px 20px rgba(0,0,0,.04); }
.trf-analytics-kpi::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--brand-600); }
.trf-analytics-kpi.is-info::before { background:#2f77d0; }.trf-analytics-kpi.is-warning::before { background:#ef9b00; }.trf-analytics-kpi.is-danger::before { background:#e30613; }.trf-analytics-kpi.is-success::before { background:#149447; }
.trf-kpi-top { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--text-3); font-size:10px; font-weight:900; letter-spacing:.08em; }
.trf-kpi-top i { width:7px; height:7px; border-radius:50%; background:var(--brand-500); box-shadow:0 0 0 4px color-mix(in srgb,var(--brand-500) 16%,transparent); }
.trf-kpi-value { margin-top:12px; font-size:31px; line-height:1; font-weight:950; letter-spacing:-.035em; color:var(--text); }
.trf-kpi-meta { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; margin-top:8px; }
.trf-kpi-meta strong { color:var(--text-2); font-size:9px; }.trf-kpi-meta span { color:var(--text-3); font-size:8px; text-align:right; }
.trf-kpi-trend { display:inline-flex; margin-top:10px; padding:4px 7px; border-radius:999px; font-size:8px; font-weight:900; letter-spacing:.02em; }
.trf-kpi-trend.is-up { background:rgba(20,148,71,.12); color:#23a45b; }.trf-kpi-trend.is-down { background:rgba(227,6,19,.12); color:#e85a63; }.trf-kpi-trend.is-neutral { background:var(--surface-3); color:var(--text-3); }
.trf-chart-grid { display:grid; gap:16px; }.trf-chart-grid-main { grid-template-columns:minmax(0,1.75fr) minmax(320px,.75fr); }.trf-chart-grid-secondary { grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); }
.trf-chart-panel .panel-header,.trf-exception-panel .panel-header,.trf-execution-panel .panel-header { align-items:center; }
.trf-panel-insight { max-width:260px; padding:6px 9px; border-radius:8px; background:var(--surface-3); color:var(--text-2); font-size:9px; font-weight:850; text-align:right; }
.trf-chart-canvas { position:relative; height:290px; }.trf-chart-canvas-small { height:290px; }.trf-chart-canvas-medium { height:270px; }
.trf-exception-list { display:grid; gap:8px; }.trf-exception-item { display:grid; grid-template-columns:26px 1fr; gap:9px; align-items:center; padding:9px 10px; border:1px solid var(--border); border-radius:9px; background:var(--surface-2); }
.trf-exception-item>span { width:23px; height:23px; display:grid; place-items:center; border-radius:50%; background:var(--surface-3); font-size:9px; font-weight:900; }.trf-exception-item div { min-width:0; }.trf-exception-item strong { display:block; font-size:11px; }.trf-exception-item small { display:block; margin-top:2px; color:var(--text-3); font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trf-exception-item.is-critical { border-left:4px solid #e30613; }.trf-exception-item.is-warning { border-left:4px solid #f2a000; }.trf-exception-item.is-pending { border-left:4px solid #6f7d75; }
.trf-exception-clear { min-height:210px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:7px; color:var(--text-3); }.trf-exception-clear>span { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:rgba(20,148,71,.14); color:#25a45c; font-size:22px; }.trf-exception-clear strong { color:var(--text); font-size:12px; }.trf-exception-clear small { max-width:280px; font-size:9px; }
.trf-table-legend { display:flex; flex-wrap:wrap; gap:10px; font-size:8px; font-weight:900; }.trf-table-legend .is-ok { color:#25a45c; }.trf-table-legend .is-warning { color:#f2a000; }.trf-table-legend .is-critical { color:#e85a63; }
.trf-dashboard-table-wrap { max-height:590px; overflow:auto; border:1px solid var(--border); border-radius:9px; }.trf-dashboard-table-analytic { min-width:1080px; margin:0; }.trf-dashboard-table-analytic thead { position:sticky; top:0; z-index:4; }.trf-dashboard-table-analytic th { padding:0; }.trf-sort-button { width:100%; padding:10px 9px; border:0; background:transparent; color:inherit; text-align:left; font:inherit; font-weight:900; cursor:pointer; white-space:nowrap; }.trf-sort-button:hover,.trf-sort-button.is-active { color:var(--brand-500); }
.trf-execution-row td:first-child { border-left:3px solid transparent; }.trf-execution-row.is-warning td:first-child { border-left-color:#f2a000; }.trf-execution-row.is-critical td:first-child { border-left-color:#e30613; }.trf-execution-row.is-ok td:first-child { border-left-color:#149447; }.trf-execution-row.is-critical { background:color-mix(in srgb,var(--red-50) 36%,var(--surface)); }.trf-execution-row.is-warning { background:color-mix(in srgb,var(--amber-50) 30%,var(--surface)); }
.trf-semantic-status { display:inline-flex; align-items:center; max-width:150px; padding:5px 8px; border-radius:999px; border:1px solid var(--border); font-size:8px; font-weight:950; white-space:nowrap; }.trf-semantic-status.is-pending { color:#8f9c94; }.trf-semantic-status.is-info { color:#4f91df; border-color:rgba(79,145,223,.45); background:rgba(79,145,223,.09); }.trf-semantic-status.is-loading { color:#dca500; border-color:rgba(251,207,2,.45); background:rgba(251,207,2,.08); }.trf-semantic-status.is-transit { color:#3a9cec; border-color:rgba(58,156,236,.45); background:rgba(58,156,236,.08); }.trf-semantic-status.is-arrival { color:#9d7de6; border-color:rgba(157,125,230,.45); background:rgba(157,125,230,.08); }.trf-semantic-status.is-returning { color:#ef8a2d; border-color:rgba(239,138,45,.45); background:rgba(239,138,45,.08); }.trf-semantic-status.is-success { color:#25a45c; border-color:rgba(37,164,92,.45); background:rgba(37,164,92,.08); }.trf-semantic-status.is-danger { color:#e85a63; border-color:rgba(232,90,99,.45); background:rgba(232,90,99,.08); }
.trf-text-alert { color:#e0a100; }.trf-text-critical { color:#e85a63; }.trf-table-pagination { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; color:var(--text-3); font-size:9px; font-weight:800; }.trf-table-pagination>div { display:flex; gap:7px; }

/* Programação rápida */
.trf-program-intro { align-items:flex-end; }.trf-program-progress-card { margin:0 0 14px; padding:13px 15px; border:1px solid var(--border); border-radius:11px; background:var(--surface); }.trf-program-progress-copy { display:flex; align-items:center; justify-content:space-between; gap:16px; }.trf-program-progress-copy>div:first-child { display:flex; flex-direction:column; gap:3px; }.trf-program-progress-copy strong { font-size:15px; }.trf-program-progress-numbers { display:flex; gap:16px; color:var(--text-3); font-size:9px; font-weight:800; }.trf-program-progress-numbers b { color:var(--text); font-size:12px; }.trf-program-progress-numbers .is-pending b { color:#e1a000; }.trf-program-progress-track { height:6px; margin-top:10px; border-radius:999px; background:var(--surface-3); overflow:hidden; }.trf-program-progress-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#006015,#22a259); transition:width .3s ease; }
.trf-program-toolbar { position:sticky; top:0; z-index:8; background:var(--surface); }.trf-program-group { margin-top:10px; border:1px solid var(--border); border-radius:10px; overflow:clip; }.trf-program-group>summary { list-style:none; cursor:pointer; }.trf-program-group>summary::-webkit-details-marker { display:none; }.trf-filial-heading-sticky { position:sticky; top:0; z-index:7; background:var(--surface-2); }.trf-filial-heading-sticky>div:last-child { display:flex; align-items:center; gap:9px; }.trf-collapse-hint { color:var(--text-3); font-size:7px; font-weight:800; }
.trf-allocation-table-fast { min-width:1280px; table-layout:fixed; }.trf-allocation-table-fast th:nth-child(1){width:19%}.trf-allocation-table-fast th:nth-child(2){width:15%}.trf-allocation-table-fast th:nth-child(3){width:19%}.trf-allocation-table-fast th:nth-child(4){width:11%}.trf-allocation-table-fast th:nth-child(5){width:10%}.trf-allocation-table-fast th:nth-child(6){width:17%}.trf-allocation-table-fast th:nth-child(7){width:9%}.trf-allocation-table-fast td { padding:8px; }.trf-program-trip { display:flex; flex-direction:column; gap:2px; }.trf-program-trip strong { font-size:11px; }.trf-program-trip span { color:var(--text-2); font-size:9px; }.trf-program-trip small { color:var(--text-3); font-size:7px; }.trf-program-delay .trf-program-trip small { color:#e1a000; font-weight:900; }.trf-plan-times-fast { grid-template-columns:repeat(3,1fr); min-width:0; }.trf-plan-times-fast span { padding:5px 4px; }.trf-cancel-cell { display:grid; grid-template-columns:auto 1fr; gap:7px; align-items:center; }.trf-cancel-cell textarea { min-height:38px; resize:none; }.trf-row-save-box { display:flex; flex-direction:column; gap:5px; align-items:stretch; }.trf-save-state { min-height:18px; display:inline-flex; align-items:center; justify-content:center; gap:5px; padding:3px 6px; border-radius:999px; color:var(--text-3); background:var(--surface-3); font-size:7px; font-weight:950; letter-spacing:.03em; }.trf-save-state.is-saving { color:#dca500; background:rgba(251,207,2,.08); }.trf-save-state.is-saved { color:#25a45c; background:rgba(37,164,92,.10); }.trf-save-state.is-pending { color:#e1a000; background:rgba(251,207,2,.08); }.trf-save-state.is-error { color:#e85a63; background:rgba(227,6,19,.10); }.trf-mini-spinner,.trf-btn-spinner { width:10px; height:10px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:trf-spin .65s linear infinite; }.trf-btn-spinner { display:inline-block; vertical-align:-1px; }.btn.is-loading { opacity:.82; cursor:wait; } @keyframes trf-spin { to { transform:rotate(360deg); } }
.trf-reference-strip-bottom { margin-top:12px; }

/* Acompanhamento — visão TMS 1920x1080 */
.trf-status-counter-strip { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:7px; margin:0 0 12px; }.trf-status-counter { display:flex; align-items:center; gap:7px; min-width:0; padding:8px 10px; border:1px solid var(--border); border-radius:9px; background:var(--surface); color:var(--text); cursor:pointer; text-align:left; }.trf-status-counter span { flex:0 0 auto; display:grid; place-items:center; width:28px; height:28px; border-radius:8px; background:var(--surface-3); font-size:13px; font-weight:950; }.trf-status-counter small { min-width:0; color:var(--text-3); font-size:7px; line-height:1.15; font-weight:900; }.trf-status-counter.is-danger { border-color:rgba(227,6,19,.35); }.trf-status-counter.is-success { border-color:rgba(20,148,71,.35); }.trf-status-counter.is-loading { border-color:rgba(251,207,2,.35); }
.trf-monitor-filters { flex-wrap:nowrap; }.trf-monitor-filters .filter-control:first-child { min-width:260px; }.trf-monitor-table-wrap { width:100%; overflow:visible; border:1px solid var(--border); border-radius:9px; }.trf-monitor-table-tms { width:100%; min-width:0 !important; table-layout:fixed; margin:0; }.trf-monitor-table-tms th,.trf-monitor-table-tms td { padding:8px 7px; overflow:hidden; vertical-align:middle; }.trf-monitor-table-tms th:nth-child(1){width:14%}.trf-monitor-table-tms th:nth-child(2){width:13%}.trf-monitor-table-tms th:nth-child(3){width:12%}.trf-monitor-table-tms th:nth-child(4){width:14%}.trf-monitor-table-tms th:nth-child(5){width:7%}.trf-monitor-table-tms th:nth-child(6){width:25%}.trf-monitor-table-tms th:nth-child(7){width:8%}.trf-monitor-table-tms th:nth-child(8){width:7%}
.trf-primary-vehicle strong { font-size:13px !important; letter-spacing:.015em; }.trf-primary-vehicle span { margin-top:2px; color:#49b476; font-size:10px !important; font-weight:900; }.trf-primary-vehicle small,.trf-monitor-driver small { font-size:7px !important; color:var(--text-3); }.trf-monitor-driver strong { font-size:10px !important; color:var(--text); }
.trf-monitor-critical-control { min-height:34px; font-size:10px !important; font-weight:800; color:var(--text) !important; background:var(--surface-2); }.trf-status-editor { position:relative; display:flex; align-items:center; border:1px solid var(--border); border-radius:8px; background:var(--surface-2); overflow:hidden; }.trf-status-editor .trf-status-dot { flex:0 0 auto; width:7px; height:7px; margin-left:8px; border-radius:50%; background:#7f8c84; }.trf-status-editor select { border:0 !important; background:transparent !important; font-size:9px !important; font-weight:950; }.trf-status-editor.is-loading { border-color:rgba(251,207,2,.5); }.trf-status-editor.is-loading .trf-status-dot { background:#fbcf02; }.trf-status-editor.is-transit,.trf-status-editor.is-info { border-color:rgba(47,119,208,.5); }.trf-status-editor.is-transit .trf-status-dot,.trf-status-editor.is-info .trf-status-dot { background:#4f91df; }.trf-status-editor.is-arrival { border-color:rgba(157,125,230,.5); }.trf-status-editor.is-arrival .trf-status-dot { background:#9d7de6; }.trf-status-editor.is-returning { border-color:rgba(239,138,45,.5); }.trf-status-editor.is-returning .trf-status-dot { background:#ef8a2d; }.trf-status-editor.is-success { border-color:rgba(37,164,92,.5); }.trf-status-editor.is-success .trf-status-dot { background:#25a45c; }.trf-status-editor.is-danger { border-color:rgba(232,90,99,.55); }.trf-status-editor.is-danger .trf-status-dot { background:#e30613; }
.trf-trip-stepper { position:relative; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:start; gap:0; min-width:0; }.trf-trip-stepper::before { content:""; position:absolute; top:10px; left:8%; right:8%; height:2px; background:var(--border); z-index:0; }.trf-trip-step { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:4px; min-width:0; text-align:center; }.trf-step-dot { display:grid; place-items:center; width:21px; height:21px; border-radius:50%; border:2px solid var(--border); background:var(--surface); color:var(--text-3); font-size:7px; font-weight:950; }.trf-trip-step div { min-width:0; }.trf-trip-step small { display:block; font-size:6px; line-height:1.05; color:var(--text-3); font-weight:850; white-space:nowrap; }.trf-trip-step strong { display:block; margin-top:2px; color:var(--text-2); font-size:8px; }.trf-trip-step.is-complete .trf-step-dot { border-color:#149447; background:#149447; color:#fff; }.trf-trip-step.is-complete strong { color:#25a45c; }.trf-trip-step.is-current .trf-step-dot { border-color:#fbcf02; box-shadow:0 0 0 4px rgba(251,207,2,.12); color:#fbcf02; }.trf-trip-step.is-current small { color:#e1b900; }
.trf-improductive-summary { min-width:0; padding:7px 5px; text-align:center; border-radius:8px; border:1px solid var(--border); background:var(--surface-2); }.trf-improductive-summary strong { display:block; font-size:12px; }.trf-improductive-summary small { display:block; margin-top:2px; color:var(--text-3); font-size:6px; line-height:1.1; }.trf-improductive-summary.is-alert { border-color:rgba(251,207,2,.5); background:rgba(251,207,2,.06); }.trf-improductive-summary.is-alert strong { color:#e1b000; }.trf-improductive-summary.is-critical { border-color:rgba(227,6,19,.55); background:rgba(227,6,19,.08); }.trf-improductive-summary.is-critical strong { color:#e85a63; }
.trf-monitor-row.is-retention-alert td:first-child { box-shadow:inset 4px 0 #fbcf02; }.trf-monitor-row.is-retention-critical td:first-child { box-shadow:inset 4px 0 #e30613; }.trf-list-actions-compact { gap:4px !important; }.trf-list-actions-compact .btn { width:100%; padding:6px 5px; font-size:7px; }

@media (max-width:1500px) {
  .trf-kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .trf-chart-grid-main,.trf-chart-grid-secondary { grid-template-columns:1fr; }
  .trf-status-counter-strip { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .trf-monitor-table-wrap { overflow:auto; }.trf-monitor-table-tms { min-width:1450px !important; }
  .trf-monitor-filters { flex-wrap:wrap; }
}
@media (max-width:900px) {
  .trf-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trf-status-counter-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trf-program-progress-copy { align-items:flex-start; flex-direction:column; }.trf-program-progress-numbers { flex-wrap:wrap; }
}

@media print {
  .sidebar,.topbar,.page-intro-actions,.trf-workflow-tabs,.trf-table-pagination,.trf-sort-button::after,.trf-status-counter-strip { display:none !important; }
  #page-content,.content-area,.app-main { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; }
  .trf-analytics-dashboard { gap:8px !important; }.trf-kpi-grid { grid-template-columns:repeat(5,1fr) !important; gap:6px !important; }.trf-analytics-kpi { min-height:96px !important; padding:9px !important; break-inside:avoid; }.trf-kpi-value { font-size:22px !important; }.trf-chart-grid-main,.trf-chart-grid-secondary { grid-template-columns:2fr 1fr !important; gap:8px !important; }.trf-chart-canvas { height:210px !important; }.panel,.trf-analytics-kpi { box-shadow:none !important; border-color:#cfd7d1 !important; background:#fff !important; color:#111 !important; }.trf-dashboard-table-wrap { max-height:none !important; overflow:visible !important; }.trf-dashboard-table-analytic { min-width:0 !important; font-size:7px !important; }.trf-execution-panel { break-before:page; }
}

/* Transferências — Resumo de Acompanhamento profissional */
.trf-summary-shell { display:flex; flex-direction:column; gap:16px; }
.trf-summary-page-intro { padding-bottom:6px; }
.trf-summary-kpis { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:12px; }
.trf-summary-kpi { position:relative; display:grid; grid-template-columns:44px 1fr; gap:12px; align-items:center; padding:14px 16px; border-radius:14px; border:1px solid rgba(255,255,255,.08); background:linear-gradient(180deg,rgba(7,28,21,.92),rgba(5,20,16,.94)); box-shadow:0 10px 24px rgba(0,0,0,.18); }
.trf-summary-kpi-icon { width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:999px; border:1px solid currentColor; font-size:20px; line-height:1; }
.trf-summary-kpi-content { display:flex; flex-direction:column; gap:3px; min-width:0; }
.trf-summary-kpi-content span { color:var(--text-2); font-size:11px; font-weight:800; }
.trf-summary-kpi-content strong { font-size:24px; line-height:1; color:#fff; letter-spacing:-.03em; }
.trf-summary-kpi-content small { color:var(--text-3); font-size:10px; font-weight:800; }
.trf-summary-kpi em { grid-column:1/-1; font-style:normal; font-size:10px; font-weight:900; color:var(--text-3); }
.trf-summary-kpi.is-success { color:#18d27b; }
.trf-summary-kpi.is-returning { color:#3886ff; }
.trf-summary-kpi.is-warning { color:#f5ad1b; }
.trf-summary-kpi.is-danger { color:#ff4d4d; }
.trf-summary-kpi.is-purple { color:#b25dff; }
.trf-summary-main-grid { display:grid; grid-template-columns:1.35fr 1fr; gap:14px; align-items:start; }
.trf-summary-left-panel, .trf-summary-box, .trf-summary-exec { border:1px solid rgba(255,255,255,.08); border-radius:14px; background:linear-gradient(180deg,rgba(6,24,18,.92),rgba(4,18,14,.94)); box-shadow:0 10px 24px rgba(0,0,0,.18); overflow:hidden; }
.trf-summary-left-panel > header, .trf-summary-box > header, .trf-summary-exec > header { display:flex; flex-direction:column; gap:3px; padding:14px 16px 10px; border-bottom:1px solid rgba(255,255,255,.06); }
.trf-summary-left-panel h4, .trf-summary-box h4, .trf-summary-exec h4 { margin:0; font-size:14px; color:#fff; }
.trf-summary-left-panel small, .trf-summary-box small, .trf-summary-exec small { color:var(--text-3); font-size:10px; font-weight:800; }
.trf-summary-treemap { display:grid; grid-template-columns:1.15fr .95fr .72fr; grid-template-rows:repeat(2,170px); gap:2px; padding:2px; background:rgba(255,255,255,.06); min-height:342px; }
.trf-summary-tile { padding:18px 20px; display:flex; flex-direction:column; justify-content:space-between; color:#fff; position:relative; overflow:hidden; }
.trf-summary-tile.is-featured { grid-row:1 / span 2; }
.trf-summary-tile h4 { margin:0; font-size:18px; }
.trf-summary-tile strong { font-size:52px; line-height:1; letter-spacing:-.04em; }
.trf-summary-tile span { font-size:16px; }
.trf-summary-tile footer { display:flex; flex-direction:column; gap:2px; }
.trf-summary-tile footer b { font-size:18px; }
.trf-summary-tile footer small { color:rgba(255,255,255,.78); font-size:12px; }
.trf-summary-tile.is-blue { background:linear-gradient(180deg,#0e6fe3,#0b4697); }
.trf-summary-tile.is-orange { background:linear-gradient(180deg,#ff861a,#bd5c08); }
.trf-summary-tile.is-green { background:linear-gradient(180deg,#00a045,#066f37); }
.trf-summary-tile.is-red { background:linear-gradient(180deg,#f01b21,#9f1012); }
.trf-summary-tile.is-purple { background:linear-gradient(180deg,#9247d9,#5f2499); }
.trf-summary-right-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.trf-summary-box-body { padding:10px 14px 14px; }
.trf-mini-table { width:100%; border-collapse:collapse; font-size:11px; }
.trf-mini-table th, .trf-mini-table td { padding:6px 8px; border-bottom:1px solid rgba(255,255,255,.06); text-align:left; }
.trf-mini-table th { color:var(--text-3); font-size:10px; }
.trf-mini-table td { color:#f7faf8; }
.trf-mini-table .is-danger { color:#ff6c6c; font-weight:900; }
.trf-mini-table .is-purple { color:#c284ff; font-weight:900; }
.trf-mini-table tr.is-total td { font-weight:900; }
.trf-status-summary-list { display:flex; flex-direction:column; gap:6px; }
.trf-status-summary-row { display:grid; grid-template-columns:14px 1fr auto; gap:10px; align-items:center; color:#f7faf8; font-size:12px; padding:2px 0; }
.trf-status-summary-row strong { font-size:12px; }
.trf-status-summary-row span:last-child { color:#d3ddd8; font-weight:800; }
.trf-status-summary-row.is-total { margin-top:6px; padding-top:8px; border-top:1px solid rgba(255,255,255,.08); grid-template-columns:1fr auto; }
.trf-dot { width:10px; height:10px; border-radius:999px; display:inline-block; margin-right:6px; vertical-align:middle; background:#7d8a84; }
.trf-dot.is-success { background:#17cd79; }
.trf-dot.is-returning, .trf-dot.is-transit { background:#3886ff; }
.trf-dot.is-warning, .trf-dot.is-loading { background:#f5ad1b; }
.trf-dot.is-danger { background:#ff4d4d; }
.trf-dot.is-info, .trf-dot.is-arrival { background:#18b8d5; }
.trf-dot.is-pending { background:#f5ad1b; }
.trf-summary-exec-body { padding:8px 14px 14px; overflow:auto; }
.trf-summary-table { width:100%; border-collapse:collapse; font-size:12px; }
.trf-summary-table th, .trf-summary-table td { padding:8px 10px; border-bottom:1px solid rgba(255,255,255,.06); text-align:left; white-space:nowrap; }
.trf-summary-table th { color:var(--text-3); font-size:10px; }
.trf-summary-table td { color:#f8fbfa; }
.trf-summary-status-pill { display:inline-flex; align-items:center; justify-content:center; padding:5px 10px; border-radius:999px; font-size:10px; font-weight:900; border:1px solid rgba(255,255,255,.08); min-width:118px; }
.trf-summary-status-pill.is-pending, .trf-summary-status-pill.is-warning { background:rgba(245,173,27,.18); color:#f5c158; border-color:rgba(245,173,27,.28); }
.trf-summary-status-pill.is-loading { background:rgba(48,112,255,.18); color:#7eacff; border-color:rgba(48,112,255,.25); }
.trf-summary-status-pill.is-transit, .trf-summary-status-pill.is-returning { background:rgba(26,103,255,.18); color:#7eacff; border-color:rgba(26,103,255,.25); }
.trf-summary-status-pill.is-arrival, .trf-summary-status-pill.is-info { background:rgba(15,135,80,.22); color:#3ae793; border-color:rgba(15,135,80,.28); }
.trf-summary-status-pill.is-success { background:rgba(12,155,67,.24); color:#4ff198; border-color:rgba(12,155,67,.28); }
.trf-summary-status-pill.is-danger { background:rgba(227,6,19,.18); color:#ff7e86; border-color:rgba(227,6,19,.28); }
.trf-summary-table td.is-danger { color:#ff6c6c; font-weight:900; }
.trf-summary-footer { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; align-items:center; color:var(--text-3); font-size:10px; font-weight:900; padding:0 4px 6px; }
.trf-summary-footer span:nth-child(2) { text-align:center; }
.trf-summary-footer span:last-child { text-align:right; }
@media (max-width: 1440px) {
  .trf-summary-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .trf-summary-main-grid { grid-template-columns:1fr; }
}
@media (max-width: 1100px) {
  .trf-summary-right-grid { grid-template-columns:1fr; }
  .trf-summary-treemap { grid-template-columns:1fr 1fr; grid-template-rows:repeat(3,150px); }
  .trf-summary-tile.is-featured { grid-row:auto; grid-column:1 / span 2; }
  .trf-summary-footer { grid-template-columns:1fr; }
  .trf-summary-footer span, .trf-summary-footer span:last-child, .trf-summary-footer span:nth-child(2) { text-align:left; }
}
@media print {
  body[data-route="transfer_summary"] .app-header,
  body[data-route="transfer_summary"] .sidebar,
  body[data-route="transfer_summary"] .page-intro-actions,
  body[data-route="transfer_summary"] .section-tabs { display:none !important; }
  body[data-route="transfer_summary"] #page-content { padding:0 !important; }
  body[data-route="transfer_summary"] .trf-summary-shell { gap:10px; }
  body[data-route="transfer_summary"] .trf-summary-kpi,
  body[data-route="transfer_summary"] .trf-summary-left-panel,
  body[data-route="transfer_summary"] .trf-summary-box,
  body[data-route="transfer_summary"] .trf-summary-exec { box-shadow:none !important; }
}

/* ==========================================================
   TRANSFERÊNCIAS — SHELL HORIZONTAL EXCLUSIVO DO MÓDULO
   ========================================================== */
.transfer-topbar {
  position:sticky; top:0; z-index:90; grid-column:1 / -1;
  min-height:62px; padding:0 22px;
  display:grid; grid-template-columns:auto minmax(480px,1fr) auto;
  align-items:center; gap:24px;
  background:linear-gradient(180deg,#06130d 0%,#071811 100%);
  border-bottom:1px solid rgba(68,133,92,.34);
  box-shadow:0 8px 28px rgba(0,0,0,.18);
  color:#eef7f1;
}
.transfer-topbar-brand { display:flex; align-items:center; gap:8px; min-width:max-content; }
.transfer-brand-mark { width:30px; height:30px; display:grid; place-items:center; overflow:hidden; border-radius:7px; }
.transfer-brand-mark img { width:30px; height:30px; object-fit:contain; }
.transfer-topbar-brand > strong { font-size:20px; line-height:1; letter-spacing:.035em; color:#fff; }
.transfer-dms-chip { padding:3px 6px; border-radius:5px; background:#0d9150; color:#eafff2; font-size:11px; font-weight:900; letter-spacing:.08em; }
.transfer-version-chip { padding:3px 6px; border:1px solid rgba(255,255,255,.13); border-radius:999px; color:#9eb1a5; font-size:9px; font-weight:800; }
.transfer-menu-toggle { display:none; border:0; background:transparent; color:#fff; font-size:20px; }
.transfer-top-navigation { height:62px; display:flex; align-items:stretch; justify-content:center; gap:2px; min-width:0; }
.transfer-top-navigation button {
  position:relative; min-width:0; padding:0 17px;
  border:0; background:transparent; color:#aab8af;
  font-size:11px; font-weight:800; letter-spacing:.015em;
  transition:color .16s ease,background .16s ease;
}
.transfer-top-navigation button:hover { color:#fff; background:rgba(255,255,255,.025); }
.transfer-top-navigation button.is-active { color:#25d77f; }
.transfer-top-navigation button.is-active::after {
  content:""; position:absolute; left:14px; right:14px; bottom:0; height:3px;
  border-radius:3px 3px 0 0; background:#18c96c; box-shadow:0 0 12px rgba(24,201,108,.25);
}
.transfer-topbar-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; min-width:max-content; }
.transfer-topbar-actions .theme-toggle,.transfer-topbar-actions .transfer-top-action,.transfer-topbar-actions .transfer-refresh-button {
  min-height:34px; border-color:rgba(104,151,119,.32); background:rgba(4,18,12,.55); color:#e8f2eb; box-shadow:none;
}
.transfer-topbar-actions .theme-toggle:hover,.transfer-topbar-actions .transfer-top-action:hover,.transfer-topbar-actions .transfer-refresh-button:hover { border-color:#197b45; background:#0b2919; }
.transfer-online-status { min-height:34px; padding:0 12px; border:1px solid rgba(104,151,119,.25); border-radius:999px; background:rgba(4,18,12,.55); }
.transfer-online-status span { font-size:10px; font-weight:800; }
body[data-shell="transfer-top"] .system-view,
.system-view.is-transfer-shell { grid-template-columns:minmax(0,1fr) !important; grid-template-rows:auto minmax(0,1fr); }
body[data-shell="transfer-top"] #sidebar,
body[data-shell="transfer-top"] #sidebar-backdrop,
body[data-shell="transfer-top"] .main-area > .topbar { display:none !important; }
body[data-shell="transfer-top"] .transfer-topbar { display:grid !important; }
body[data-shell="transfer-top"] .main-area { grid-column:1; grid-row:2; min-width:0; }
body[data-shell="transfer-top"] .page-content { max-width:none; width:100%; padding:20px 24px 16px; }
body[data-shell="transfer-top"] .app-footer { display:none; }

/* ==========================================================
   TRANSFERÊNCIAS — RESUMO DE ACOMPANHAMENTO / PRINT GERENCIAL
   ========================================================== */
body[data-route="transfer_summary"] .page-content { padding-top:18px; }
.trf-summary-shell { gap:12px; max-width:1880px; margin:0 auto; }
.trf-summary-page-intro { min-height:78px; margin:0; padding:0 0 8px 12px; border-left:2px solid #0f9d53; display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.trf-summary-page-intro .eyebrow { margin-bottom:7px; color:#19c970; font-size:9px; letter-spacing:.07em; }
.trf-summary-page-intro h3 { margin:0 0 3px; font-size:27px; line-height:1.05; color:var(--text-strong); }
.trf-summary-page-intro p { margin:0; color:var(--muted); font-size:10px; font-weight:700; }
.trf-summary-page-intro .page-intro-actions { align-items:flex-end; gap:8px; }
.trf-summary-page-intro .toolbar-field { min-width:0; }
.trf-summary-page-intro .toolbar-field span { font-size:8px; }
.trf-summary-page-intro .filter-control,.trf-summary-page-intro .btn { min-height:36px; }
.trf-summary-page-intro [data-summary-print] { min-width:112px; border:1px solid #325343; background:transparent; color:var(--text-strong); }
.trf-summary-page-intro [data-summary-print]::before { content:"▣"; font-size:11px; }

.trf-summary-kpis { grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; }
.trf-summary-kpi {
  min-height:102px; grid-template-columns:38px minmax(0,1fr); gap:10px;
  padding:12px 13px 10px; border-radius:12px;
  border:1px solid rgba(105,150,121,.24);
  background:linear-gradient(160deg,rgba(11,37,27,.96),rgba(5,21,15,.98));
  box-shadow:0 8px 22px rgba(0,0,0,.14);
}
.trf-summary-kpi-icon { width:36px; height:36px; border:0; border-radius:0; font-size:0; color:currentColor; }
.trf-summary-kpi-icon svg { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.trf-summary-kpi-content span { font-size:9px; color:#d6e0da; line-height:1.2; }
.trf-summary-kpi-content strong { font-size:27px; color:currentColor; line-height:1; }
.trf-summary-kpi-content small { margin-top:3px; font-size:8px; color:#9baaa1; }
.trf-summary-kpi em { justify-self:end; align-self:end; font-size:7.5px; line-height:1.1; color:#8fa096; white-space:nowrap; }
.trf-summary-kpi.is-success { color:#18d27b; }
.trf-summary-kpi.is-returning { color:#3886ff; }
.trf-summary-kpi.is-warning { color:#f5ad1b; }
.trf-summary-kpi.is-danger { color:#ff4d4d; }
.trf-summary-kpi.is-purple { color:#b25dff; }
.trf-summary-kpi-value-duration { text-transform:none !important; letter-spacing:-.02em !important; }

.trf-summary-main-grid { grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:10px; }
.trf-summary-left-panel,.trf-summary-box,.trf-summary-exec {
  border-radius:12px; border:1px solid rgba(104,151,119,.24);
  background:linear-gradient(160deg,rgba(10,35,25,.96),rgba(5,20,15,.98));
  box-shadow:0 8px 24px rgba(0,0,0,.13);
}
.trf-summary-left-panel > header,.trf-summary-box > header,.trf-summary-exec > header { padding:10px 12px 7px; }
.trf-summary-left-panel h4,.trf-summary-box h4,.trf-summary-exec h4 { font-size:12px; letter-spacing:.015em; }
.trf-summary-left-panel small,.trf-summary-box small,.trf-summary-exec small { font-size:7.5px; }
.trf-summary-treemap {
  min-height:294px; height:294px; padding:0; gap:2px;
  grid-template-columns:1.15fr .92fr .78fr; grid-template-rows:1fr 1fr;
  background:transparent;
}
.trf-summary-tile { padding:16px 18px; border:1px solid rgba(255,255,255,.14); }
.trf-summary-tile:nth-child(1) { grid-column:1; grid-row:1 / span 2; }
.trf-summary-tile:nth-child(2) { grid-column:2; grid-row:1 / span 2; }
.trf-summary-tile:nth-child(3) { grid-column:3; grid-row:1; }
.trf-summary-tile:nth-child(4) { grid-column:3; grid-row:2; }
.trf-summary-tile h4 { font-size:15px; }
.trf-summary-tile strong { margin-top:14px; font-size:45px; }
.trf-summary-tile span { font-size:15px; }
.trf-summary-tile footer b { font-size:18px; text-transform:none; }
.trf-summary-tile footer small { font-size:9px; }
.trf-summary-tile.is-green { background:linear-gradient(145deg,#08733d 0%,#034a29 100%); }
.trf-summary-tile.is-blue { background:linear-gradient(145deg,#0a5fbc 0%,#06366f 100%); }
.trf-summary-tile.is-orange { background:linear-gradient(145deg,#c96a05 0%,#7d3d03 100%); }
.trf-summary-tile.is-red { background:linear-gradient(145deg,#b6171d 0%,#6e0d11 100%); }

.trf-summary-right-grid { grid-template-columns:1fr 1.28fr; grid-template-rows:1fr 1fr; gap:8px; min-height:324px; }
.trf-summary-box { min-width:0; }
.trf-summary-box-body { padding:5px 10px 8px; }
.trf-mini-table { table-layout:fixed; font-size:9px; }
.trf-mini-table th,.trf-mini-table td { padding:3px 5px; line-height:1.18; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.trf-mini-table th { font-size:7.5px; color:#8fa096; }
.trf-mini-table td { font-size:9px; }
.trf-mini-table td.is-danger { color:#ff5757; }
.trf-mini-table td.is-purple { color:#c278ff; }
.trf-status-summary-list { gap:2px; }
.trf-status-summary-row { min-height:19px; grid-template-columns:10px 1fr auto; gap:7px; font-size:9px; }
.trf-status-summary-row strong,.trf-status-summary-row span:last-child { font-size:9px; }
.trf-status-summary-row.is-total { margin-top:3px; padding-top:5px; }
.trf-dot { width:7px; height:7px; margin-right:5px; }

.trf-summary-exec { min-height:210px; }
.trf-summary-exec > header { flex-direction:row; align-items:baseline; gap:12px; }
.trf-summary-exec > header > div { display:flex; align-items:baseline; gap:12px; }
.trf-summary-exec-body { padding:0 10px 8px; overflow:hidden; }
.trf-summary-table { table-layout:fixed; font-size:9px; }
.trf-summary-table th,.trf-summary-table td { padding:4px 8px; line-height:1.15; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.trf-summary-table th { font-size:8px; color:#93a59a; background:rgba(26,63,45,.38); }
.trf-summary-table td { font-size:9px; }
.trf-summary-table th:nth-child(1),.trf-summary-table td:nth-child(1) { width:11%; }
.trf-summary-table th:nth-child(2),.trf-summary-table td:nth-child(2) { width:10%; }
.trf-summary-table th:nth-child(3),.trf-summary-table td:nth-child(3) { width:16%; }
.trf-summary-table th:nth-child(4),.trf-summary-table td:nth-child(4) { width:14%; }
.trf-summary-table th:nth-child(5),.trf-summary-table td:nth-child(5) { width:15%; }
.trf-summary-table th:nth-child(6),.trf-summary-table td:nth-child(6) { width:8%; text-align:center; }
.trf-summary-table th:nth-child(7),.trf-summary-table td:nth-child(7) { width:9%; text-align:center; }
.trf-summary-table th:nth-child(8),.trf-summary-table td:nth-child(8) { width:17%; }
.trf-summary-status-pill { min-width:104px; max-width:100%; padding:3px 8px; font-size:7.5px; }
.trf-summary-footer { min-height:24px; padding:3px 2px 0; border-top:1px solid rgba(104,151,119,.18); font-size:7.5px; }

html[data-theme="light"] body[data-route="transfer_summary"] .trf-summary-kpi,
html[data-theme="light"] body[data-route="transfer_summary"] .trf-summary-left-panel,
html[data-theme="light"] body[data-route="transfer_summary"] .trf-summary-box,
html[data-theme="light"] body[data-route="transfer_summary"] .trf-summary-exec { background:linear-gradient(160deg,#f9fcfa,#edf5f0); border-color:#c9d8ce; box-shadow:var(--shadow-xs); }
html[data-theme="light"] body[data-route="transfer_summary"] .trf-summary-kpi-content span,
html[data-theme="light"] body[data-route="transfer_summary"] .trf-summary-kpi-content small,
html[data-theme="light"] body[data-route="transfer_summary"] .trf-summary-kpi em,
html[data-theme="light"] body[data-route="transfer_summary"] .trf-summary-left-panel small,
html[data-theme="light"] body[data-route="transfer_summary"] .trf-summary-box small,
html[data-theme="light"] body[data-route="transfer_summary"] .trf-summary-exec small { color:#63766a; }
html[data-theme="light"] body[data-route="transfer_summary"] .trf-mini-table td,
html[data-theme="light"] body[data-route="transfer_summary"] .trf-summary-table td,
html[data-theme="light"] body[data-route="transfer_summary"] .trf-status-summary-row { color:#102218; }

@media (max-width:1500px) {
  .transfer-top-navigation button { padding:0 10px; font-size:10px; }
  .transfer-topbar { grid-template-columns:auto minmax(390px,1fr) auto; gap:12px; padding:0 14px; }
  .trf-summary-kpis { gap:7px; }
  .trf-summary-kpi { padding:10px; }
  .trf-summary-kpi-content strong { font-size:23px; }
}
@media (max-width:1180px) {
  .transfer-topbar { grid-template-columns:auto 1fr auto; }
  .transfer-menu-toggle { display:inline-grid; place-items:center; }
  .transfer-top-navigation { display:none; position:absolute; top:62px; left:12px; right:12px; height:auto; padding:8px; border:1px solid #294b39; border-radius:10px; background:#071811; box-shadow:0 20px 40px rgba(0,0,0,.35); }
  .transfer-topbar.is-menu-open .transfer-top-navigation { display:grid; grid-template-columns:repeat(3,1fr); }
  .transfer-top-navigation button { min-height:42px; }
  .trf-summary-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .trf-summary-main-grid { grid-template-columns:1fr; }
  .trf-summary-exec-body { overflow:auto; }
  .trf-summary-table { min-width:1050px; }
}
@media (max-width:760px) {
  body[data-shell="transfer-top"] .page-content { padding:14px; }
  .transfer-topbar { grid-template-columns:1fr auto; }
  .transfer-topbar-actions .transfer-theme-toggle,.transfer-topbar-actions .transfer-top-action,.transfer-online-status { display:none; }
  .transfer-topbar.is-menu-open .transfer-top-navigation { grid-template-columns:1fr 1fr; }
  .trf-summary-kpis { grid-template-columns:1fr 1fr; }
  .trf-summary-right-grid { grid-template-columns:1fr; grid-template-rows:auto; }
  .trf-summary-treemap { height:auto; min-height:0; grid-template-columns:1fr 1fr; grid-template-rows:repeat(2,150px); }
  .trf-summary-tile:nth-child(n) { grid-column:auto; grid-row:auto; }
  .trf-summary-footer { grid-template-columns:1fr; gap:2px; }
  .trf-summary-footer span,.trf-summary-footer span:nth-child(2),.trf-summary-footer span:last-child { text-align:left; }
}

@media print {
  body[data-shell="transfer-top"] .transfer-topbar { display:none !important; }
  body[data-route="transfer_summary"] .page-intro { display:flex !important; }
  body[data-route="transfer_summary"] .trf-summary-page-intro .page-intro-actions { display:none !important; }
  body[data-route="transfer_summary"] .trf-summary-shell { max-width:none !important; gap:6px !important; }
  body[data-route="transfer_summary"] .trf-summary-kpis { grid-template-columns:repeat(7,1fr) !important; gap:5px !important; }
  body[data-route="transfer_summary"] .trf-summary-kpi { min-height:82px !important; padding:7px !important; background:#fff !important; color:#111 !important; border-color:#bfcac3 !important; }
  body[data-route="transfer_summary"] .trf-summary-main-grid { grid-template-columns:.92fr 1.08fr !important; gap:6px !important; }
  body[data-route="transfer_summary"] .trf-summary-left-panel,
  body[data-route="transfer_summary"] .trf-summary-box,
  body[data-route="transfer_summary"] .trf-summary-exec { break-inside:avoid; background:#fff !important; color:#111 !important; border-color:#bdc9c1 !important; }
  body[data-route="transfer_summary"] .trf-summary-treemap { height:270px !important; min-height:270px !important; }
  body[data-route="transfer_summary"] .trf-summary-exec { min-height:190px !important; }
}
.trf-summary-time { text-transform:none !important; }
.trf-mini-table td.is-warning { color:#f5ad1b; font-weight:900; }
.trf-mini-table td.is-info { color:#66a3ff; font-weight:900; }
.transfer-brand-mark { width:84px; height:34px; border-radius:0; overflow:visible; }
.transfer-brand-mark img { width:84px; height:34px; object-fit:contain; }
.trf-print-icon { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.trf-summary-page-intro [data-summary-print]::before { content:none !important; }

/* Transferências — refinamentos operacionais: status, retorno, data/hora e leitura em dark */
.trf-primary-vehicle strong,
.trf-primary-vehicle span {
  font-size:14px !important;
  line-height:1.08;
  font-weight:950;
}
.trf-primary-vehicle span {
  margin-top:3px;
  color:#35b86f;
}
.trf-primary-vehicle small {
  margin-top:4px;
  font-size:10px !important;
  line-height:1.15;
  font-weight:850;
  color:var(--text-2);
}

.trf-return-inline,
.trf-return-select {
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
  color:var(--text);
  font-size:8px;
  font-weight:900;
}
.trf-return-inline {
  width:100%;
  min-height:27px;
  margin-top:5px;
  padding:3px 5px;
}
.trf-return-select {
  min-width:110px;
}

.trf-datetime-field { min-width:0; }
.trf-datetime-control {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px;
  align-items:center;
}
.trf-datetime-control input[type="datetime-local"] {
  min-width:0;
  width:100%;
}
.trf-datetime-control .btn {
  min-height:34px;
  white-space:nowrap;
  font-size:8px;
}

.trf-status-editor.is-portaria {
  border-color:rgba(111,91,220,.62);
  background:color-mix(in srgb,#392d73 28%,var(--surface-2));
}
.trf-status-editor.is-portaria .trf-status-dot { background:#8d79f2; }
.trf-status-editor.is-workshop {
  border-color:rgba(236,125,32,.62);
  background:color-mix(in srgb,#70400d 28%,var(--surface-2));
}
.trf-status-editor.is-workshop .trf-status-dot { background:#ef8a2d; }
.trf-status-counter.is-portaria { border-color:rgba(141,121,242,.45); background:rgba(141,121,242,.10); }
.trf-status-counter.is-portaria span { color:#a895ff; }
.trf-status-counter.is-workshop { border-color:rgba(239,138,45,.45); background:rgba(239,138,45,.10); }
.trf-status-counter.is-workshop span { color:#f4a65d; }

[data-theme="dark"] .trf-status-editor,
html[data-theme="dark"] .trf-status-editor {
  background:#0c2116 !important;
  border-color:#2b5039;
}
[data-theme="dark"] .trf-status-editor select,
html[data-theme="dark"] .trf-status-editor select,
[data-theme="dark"] .trf-return-inline,
html[data-theme="dark"] .trf-return-inline,
[data-theme="dark"] .trf-return-select,
html[data-theme="dark"] .trf-return-select,
[data-theme="dark"] input[type="datetime-local"],
html[data-theme="dark"] input[type="datetime-local"] {
  color:#f3faf6 !important;
  background:#0c2116 !important;
  color-scheme:dark;
}
[data-theme="dark"] .trf-status-editor select option,
html[data-theme="dark"] .trf-status-editor select option,
[data-theme="dark"] .trf-return-inline option,
html[data-theme="dark"] .trf-return-inline option,
[data-theme="dark"] .trf-return-select option,
html[data-theme="dark"] .trf-return-select option {
  color:#f3faf6 !important;
  background:#10291b !important;
}
[data-theme="dark"] .trf-status-control,
html[data-theme="dark"] .trf-status-control {
  -webkit-text-fill-color:#f3faf6;
  opacity:1;
}

/* Ajuste de largura para status mais longos e data+hora sem rolagem horizontal em 1920px */
@media (min-width:1500px) {
  .trf-monitor-table-tms th:nth-child(1){width:15%}
  .trf-monitor-table-tms th:nth-child(2){width:12%}
  .trf-monitor-table-tms th:nth-child(3){width:11%}
  .trf-monitor-table-tms th:nth-child(4){width:15%}
  .trf-monitor-table-tms th:nth-child(5){width:11%}
  .trf-monitor-table-tms th:nth-child(6){width:22%}
  .trf-monitor-table-tms th:nth-child(7){width:7%}
  .trf-monitor-table-tms th:nth-child(8){width:7%}
  .trf-monitor-table-tms .trf-status-control { font-size:9px !important; }
  .trf-monitor-table-tms input[type="datetime-local"] { font-size:9px !important; }
}

/* Transferências — jornadas de Belo Jardim e prosseguimentos */
.trf-progression-table-row > td,
.trf-progression-monitor-row > td { padding:0 10px 10px 38px !important; border-bottom:0 !important; background:transparent !important; }
.trf-progression-card { position:relative; border:1px solid color-mix(in srgb,var(--brand) 34%,transparent); border-left:4px solid #18d27b; border-radius:12px; background:linear-gradient(145deg,rgba(7,31,22,.97),rgba(4,20,14,.98)); box-shadow:0 8px 22px rgba(0,0,0,.13); overflow:hidden; }
.trf-progression-card::before { content:""; position:absolute; left:-24px; top:-14px; width:22px; height:30px; border-left:2px solid rgba(24,210,123,.42); border-bottom:2px solid rgba(24,210,123,.42); border-bottom-left-radius:10px; }
.trf-progression-card > header { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 13px; border-bottom:1px solid rgba(255,255,255,.07); }
.trf-progression-card > header > div { display:flex; flex-direction:column; gap:2px; min-width:0; }
.trf-progression-card > header strong { color:var(--text-strong); font-size:15px; }
.trf-progression-card > header small { color:var(--text-3); font-size:9px; font-weight:800; }
.trf-progression-kicker { color:#18d27b; font-size:8px; font-weight:950; letter-spacing:.08em; }
.trf-progression-movement { flex:0 0 auto; padding:5px 9px; border-radius:999px; font-size:9px; font-weight:950; border:1px solid transparent; }
.trf-progression-movement.is-loaded { color:#80b7ff; background:rgba(56,134,255,.15); border-color:rgba(56,134,255,.28); }
.trf-progression-movement.is-empty { color:#8ee8b8; background:rgba(24,210,123,.13); border-color:rgba(24,210,123,.26); }
.trf-progression-grid { display:grid; grid-template-columns:1.15fr 1.2fr 1fr 1.1fr auto; gap:10px; align-items:end; padding:10px 13px 12px; }
.trf-progression-grid > label,.trf-progression-grid > div { display:flex; flex-direction:column; gap:4px; min-width:0; }
.trf-progression-grid small,.trf-progression-monitor-grid small { color:var(--text-3); font-size:8px; font-weight:900; }
.trf-progression-grid strong { color:var(--text-strong); font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trf-final-journey-inline { padding:7px 9px; border:1px solid rgba(24,210,123,.24); border-radius:8px; background:rgba(24,210,123,.08); }
.trf-final-journey-inline strong { color:#4deb98 !important; font-size:9px !important; }
.trf-final-journey { display:flex; flex-direction:column; gap:3px; border-color:rgba(24,210,123,.25) !important; }
.trf-final-journey span { font-size:9px; }
.trf-progression-monitor-grid { display:grid; grid-template-columns:1.05fr 1.05fr 1.15fr 1.05fr 1.05fr .72fr auto; gap:8px; align-items:end; padding:10px 12px 12px; }
.trf-progression-monitor-grid > label,.trf-progression-monitor-grid > div { display:flex; flex-direction:column; gap:4px; min-width:0; }
.trf-progression-retention strong { color:#ff6c6c; font-size:15px; }
.trf-progression-retention span { color:var(--text-3); font-size:7px; font-weight:850; }
[data-theme="light"] .trf-progression-card { background:linear-gradient(145deg,#f7fbf8,#edf6f0); border-color:#b9d8c5; }
@media(max-width:1400px){.trf-progression-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.trf-progression-monitor-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.trf-progression-table-row>td,.trf-progression-monitor-row>td{padding-left:10px!important}.trf-progression-card::before{display:none}.trf-progression-grid,.trf-progression-monitor-grid{grid-template-columns:1fr 1fr}}

/* Transferências — prosseguimento obrigatório da jornada */
.trf-progression-trigger { display:flex; flex-direction:column; gap:4px; min-width:160px; }
.trf-progression-trigger > small { color:var(--text-3); font-size:8px; font-weight:900; line-height:1.15; }
.trf-progression-trigger-monitor { margin-top:5px; }
.trf-progression-trigger-monitor > small { color:#7fdba6; }
.trf-progression-card.is-awaiting-destination { border-color:rgba(245,173,27,.62); border-left-color:#f5ad1b; box-shadow:0 0 0 1px rgba(245,173,27,.07),0 10px 26px rgba(0,0,0,.16); }
.trf-progression-card.is-awaiting-destination::before { border-color:rgba(245,173,27,.5); }
.trf-progression-required { display:flex; align-items:center; gap:12px; padding:8px 13px; background:rgba(245,173,27,.1); border-bottom:1px solid rgba(245,173,27,.24); color:#f8c85d; }
.trf-progression-required strong { font-size:11px; font-weight:950; }
.trf-progression-required span { color:var(--text-2); font-size:9px; font-weight:800; }
.trf-progression-destination .trf-cell-control { border-color:rgba(245,173,27,.55); box-shadow:0 0 0 1px rgba(245,173,27,.06); font-weight:900; }
[data-theme="dark"] .trf-progression-destination .trf-cell-control,
html[data-theme="dark"] .trf-progression-destination .trf-cell-control { background:#0d2117; color:#fff; }
[data-theme="dark"] .trf-progression-destination .trf-cell-control option,
html[data-theme="dark"] .trf-progression-destination .trf-cell-control option { background:#10251a; color:#fff; }

/* Transferências — Programação enxuta: prosseguimentos somente no Acompanhamento */
.trf-allocation-table-fast { min-width:1120px; }
.trf-allocation-table-fast th:nth-child(1){width:20%}
.trf-allocation-table-fast th:nth-child(2){width:15%}
.trf-allocation-table-fast th:nth-child(3){width:21%}
.trf-allocation-table-fast th:nth-child(4){width:12%}
.trf-allocation-table-fast th:nth-child(5){width:11%}
.trf-allocation-table-fast th:nth-child(6){width:14%}
.trf-allocation-table-fast th:nth-child(7){width:7%}

/* Transferências — jornada cancelada encerra o fluxo */
.trf-cancelled-journey-note {
  margin-top: 7px;
  padding: 6px 8px;
  border: 1px solid rgba(255, 77, 77, .28);
  border-radius: 8px;
  background: rgba(255, 77, 77, .08);
  color: #ff8b8b;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .025em;
}

/* Transferências — Relatórios dedicados */
.trf-report-intro { margin-bottom:2px; }
.trf-report-kpis { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin-bottom:12px; }
.trf-report-kpis article { min-height:88px; display:flex; flex-direction:column; justify-content:center; gap:4px; padding:12px 14px; border:1px solid var(--border); border-radius:12px; background:linear-gradient(160deg,rgba(10,35,25,.96),rgba(5,20,15,.98)); box-shadow:var(--shadow-xs); }
.trf-report-kpis span { color:var(--text-3); font-size:9px; font-weight:900; letter-spacing:.04em; }
.trf-report-kpis strong { color:#18d27b; font-size:26px; line-height:1; }
.trf-report-kpis small { color:var(--text-3); font-size:8px; font-weight:800; }
.trf-report-kpis article.is-danger strong { color:#ff4d4d; }
.trf-report-kpis article.is-info strong { color:#3886ff; }
.trf-report-kpis article.is-purple strong { color:#b25dff; }
.trf-report-toolbar { align-items:center; }
.trf-report-tabs { display:flex; gap:6px; flex-wrap:wrap; }
.trf-report-tabs button { min-height:34px; padding:0 14px; border:1px solid var(--border); border-radius:9px; background:var(--surface-2); color:var(--text-2); font-size:10px; font-weight:900; cursor:pointer; }
.trf-report-tabs button:hover { border-color:var(--brand); color:var(--text-strong); }
.trf-report-tabs button.is-active { background:rgba(24,210,123,.12); border-color:#18d27b; color:#18d27b; box-shadow:inset 0 -2px 0 #18d27b; }
.trf-report-table-wrap { max-height:none; }
.trf-report-table { table-layout:fixed; }
.trf-report-table th { font-size:9px; }
.trf-report-table td { vertical-align:middle; }
.trf-report-table td > small { display:block; margin-top:2px; color:var(--text-3); font-size:8px; font-weight:800; }
.trf-report-table td.is-danger { color:#ff6464; }
.trf-report-table .trf-status-pill { min-width:125px; }
html[data-theme="light"] .trf-report-kpis article { background:linear-gradient(160deg,#f9fcfa,#edf5f0); }
@media (max-width:1250px) { .trf-report-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px) { .trf-report-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } .trf-report-toolbar { align-items:flex-start; } }
@media print {
  body[data-route="transfer_reports"] .transfer-topbar,
  body[data-route="transfer_reports"] .trf-report-tabs,
  body[data-route="transfer_reports"] .page-intro-actions { display:none !important; }
  body[data-route="transfer_reports"] .trf-report-kpis { grid-template-columns:repeat(6,1fr) !important; gap:4px !important; }
  body[data-route="transfer_reports"] .trf-report-kpis article { min-height:58px !important; padding:6px 8px !important; box-shadow:none !important; }
  body[data-route="transfer_reports"] .trf-report-panel { box-shadow:none !important; border:none !important; }
  body[data-route="transfer_reports"] .trf-report-table { font-size:8px !important; }
}

/* ========================================================================== */
/* TRANSFERÊNCIAS — VISÃO APROVADA 11/08/2026                               */
/* ========================================================================== */
.trf-ap-filterbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px}.trf-ap-filterbar .filter-control{min-width:180px}.trf-ap-filterbar input.filter-control{min-width:260px;flex:1}.trf-ap-plan-table small,.trf-ap-dash-table small{display:block;color:var(--text-muted);margin-top:3px}.trf-ap-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;border:1px solid var(--border);font-size:9px;font-weight:900;white-space:nowrap}.trf-ap-status.is-confirmada{color:#2bd27a;border-color:rgba(43,210,122,.35);background:rgba(43,210,122,.08)}.trf-ap-status.is-pendente{color:#f1bd34;border-color:rgba(241,189,52,.35);background:rgba(241,189,52,.08)}.trf-ap-status.is-cancelada{color:#ff6469;border-color:rgba(255,100,105,.35);background:rgba(255,100,105,.08)}

.trf-ap-datetime-split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:8px}.trf-ap-datetime-split>label{display:grid;gap:4px;min-width:0}.trf-ap-datetime-split small{font-size:9px;font-weight:900;color:var(--text-muted);letter-spacing:.06em}.trf-ap-datetime-split input{width:100%;min-width:0}.trf-ap-split-field{align-self:start}

.trf-ap-modal-section{border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--surface-soft);margin-bottom:12px}.trf-ap-modal-section h4{margin:0 0 4px;font-size:13px}.trf-ap-modal-section p{margin:0 0 12px;color:var(--text-muted);font-size:11px}.trf-ap-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.trf-ap-impact{display:grid;grid-template-columns:1fr auto;gap:5px 12px;border:1px solid rgba(251,207,2,.34);background:rgba(251,207,2,.06);border-radius:10px;padding:12px}.trf-ap-impact strong{grid-column:1/-1}.trf-ap-impact span{color:var(--text-muted)}.trf-ap-impact b.is-danger{color:#ff6469}.trf-ap-impact b.is-ok{color:#2bd27a}
.trf-ap-kanban-main{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:start}.trf-ap-kanban-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.trf-ap-kanban-col{border:1px solid var(--border);border-radius:12px;background:var(--surface-soft);min-width:0}.trf-ap-kanban-col>header{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;border-bottom:1px solid var(--border);background:var(--surface);border-radius:12px 12px 0 0}.trf-ap-kanban-col>header strong{font-size:11px;text-transform:uppercase}.trf-ap-kanban-col>header span{min-width:25px;height:25px;border-radius:999px;display:grid;place-items:center;background:rgba(74,144,226,.12);color:#69a9f4;font-weight:900}.trf-ap-kanban-col>div{padding:9px}.trf-ap-kanban-card{border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:11px;margin-bottom:9px;box-shadow:var(--shadow-xs)}.trf-ap-kanban-card>header{display:flex;justify-content:space-between;gap:8px;align-items:center}.trf-ap-kanban-card>header strong{font-size:16px;letter-spacing:.03em}.trf-ap-kanban-card>header span{font-size:9px;color:var(--text-muted)}.trf-ap-kanban-card>small{display:block;color:var(--text-muted);margin:2px 0 8px}.trf-ap-kanban-card dl{margin:0}.trf-ap-kanban-card dl>div{display:flex;justify-content:space-between;gap:9px;padding:4px 0;border-bottom:1px solid var(--border);font-size:10px}.trf-ap-kanban-card dt{color:var(--text-muted)}.trf-ap-kanban-card dd{margin:0;text-align:right;font-weight:800;max-width:62%}.trf-ap-kanban-card dd.is-danger{color:#ff6469}.trf-ap-kanban-card dd.is-ok{color:#2bd27a}.trf-ap-eta{font-size:16px!important;color:#69a9f4!important}.trf-ap-stage-time{display:flex;justify-content:space-between;align-items:center;margin:9px 0;padding:8px;border:1px dashed rgba(74,144,226,.4);background:rgba(74,144,226,.06);border-radius:8px}.trf-ap-stage-time span{font-size:9px;color:var(--text-muted);font-weight:900}.trf-ap-stage-time strong{font-size:15px}.trf-ap-occurrence{margin:9px 0;padding:8px;border:1px solid rgba(227,32,27,.36);background:rgba(227,32,27,.07);border-radius:8px;color:#ff7377;font-size:10px;font-weight:900}
.trf-ap-report-kpis,.trf-ap-location-kpis,.trf-ap-dashboard-extras{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.trf-ap-dashboard-extras{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}.trf-ap-report-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.trf-ap-bar-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.trf-ap-bar-row>div{height:18px;background:var(--surface-strong);border-radius:999px;overflow:hidden}.trf-ap-bar-row>div>span{display:block;height:100%;background:linear-gradient(90deg,#d94b42,#c61f17);border-radius:999px}.trf-ap-bar-row strong{font-size:10px}.trf-ap-bar-row b{font-size:10px;white-space:nowrap}
.trf-ap-dash-summary{display:grid;grid-template-columns:1fr 1fr 1.8fr;gap:12px;margin-bottom:12px}.trf-ap-dash-summary>article{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:14px;box-shadow:var(--shadow-xs)}.trf-ap-dash-summary h4{margin:0 0 10px;color:var(--text-muted);font-size:10px;letter-spacing:.07em}.trf-ap-dash-summary article>div{display:grid;grid-template-columns:1fr 1fr}.trf-ap-dash-summary article>div>span{padding:6px 10px}.trf-ap-dash-summary article>div>span+span{border-left:1px solid var(--border)}.trf-ap-dash-summary span strong{display:block;font-size:29px;line-height:1}.trf-ap-dash-summary span small{display:block;margin-top:5px;font-size:9px;font-weight:900;color:var(--text-muted)}.trf-ap-dash-summary span em{display:block;margin-top:3px;font-size:9px;color:var(--text-muted);font-style:normal}.trf-ap-dash-summary span.is-ok strong{color:#2bd27a}.trf-ap-dash-summary span.is-danger strong{color:#ff6469}.trf-ap-dash-summary .is-general>div{grid-template-columns:repeat(5,1fr)}.trf-ap-dash-summary .is-general span strong{font-size:24px}.trf-ap-dash-grid{display:grid;grid-template-columns:1.48fr .72fr;gap:12px}.trf-ap-dash-side{display:grid;gap:12px}.trf-ap-dest-row{display:grid;grid-template-columns:minmax(80px,1fr) 1.5fr auto;gap:10px;align-items:center;padding:8px 0}.trf-ap-dest-row>div{height:20px;background:var(--surface-strong);border-radius:999px;overflow:hidden}.trf-ap-dest-row>div>span{display:block;height:100%;background:linear-gradient(90deg,#3978da,#4a90e2);border-radius:999px}.trf-ap-dest-row strong,.trf-ap-dest-row b{font-size:10px}
.trf-ap-location-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.trf-ap-location-card{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px}.trf-ap-location-card header{display:flex;justify-content:space-between;gap:8px;align-items:center}.trf-ap-location-card header strong{font-size:17px}.trf-ap-location-card header span{font-size:9px;color:#69a9f4;font-weight:900}.trf-ap-location-card dl{margin:10px 0 0}.trf-ap-location-card dl>div{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--border)}.trf-ap-location-card dt{font-size:9px;color:var(--text-muted)}.trf-ap-location-card dd{margin:0;text-align:right;font-size:10px;font-weight:800;max-width:67%}.trf-ap-occ-panel{margin-top:12px}.trf-ap-occ-row{display:grid;grid-template-columns:110px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.trf-ap-occ-row>b{color:#ff6469}
@media(max-width:1350px){.trf-ap-kanban-main{grid-template-columns:repeat(3,minmax(0,1fr))}.trf-ap-dash-summary{grid-template-columns:1fr 1fr}.trf-ap-dash-summary .is-general{grid-column:1/-1}.trf-ap-report-kpis,.trf-ap-location-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.trf-ap-kanban-main,.trf-ap-kanban-secondary,.trf-ap-modal-grid,.trf-ap-report-grid,.trf-ap-dash-grid{grid-template-columns:1fr}.trf-ap-location-grid{grid-template-columns:repeat(2,1fr)}.trf-ap-dash-summary{grid-template-columns:1fr}.trf-ap-dash-summary .is-general{grid-column:auto}.trf-ap-dashboard-extras{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.trf-ap-datetime-split{grid-template-columns:1fr}.trf-ap-report-kpis,.trf-ap-location-kpis,.trf-ap-dashboard-extras,.trf-ap-location-grid{grid-template-columns:1fr}.trf-ap-dash-summary .is-general>div{grid-template-columns:1fr 1fr}.trf-ap-filterbar .filter-control,.trf-ap-filterbar input.filter-control{width:100%;min-width:0}.trf-ap-occ-row{grid-template-columns:1fr}.trf-ap-modal-grid{display:block}}

/* ==========================================================
   HOME NATTO DMS — HUB INSTITUCIONAL / LOGÍSTICA
   ========================================================== */
.home-hub {
  min-height:100vh;
  display:grid;
  grid-template-columns:176px minmax(0,1fr);
  background:
    radial-gradient(circle at 72% 6%, rgba(20,139,69,.18), transparent 32%),
    linear-gradient(135deg,#03130c 0%,#061e13 48%,#082619 100%);
  color:#f7fbf8;
  overflow-x:hidden;
}
.home-hub.is-hidden { display:none !important; }
.home-sidebar {
  position:sticky;
  top:0;
  height:100vh;
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg,rgba(3,20,13,.98),rgba(4,31,19,.98));
  border-right:1px solid rgba(86,170,112,.22);
  box-shadow:12px 0 40px rgba(0,0,0,.18);
  z-index:3;
}
.home-sidebar-brand {
  height:112px;
  display:grid;
  place-items:center;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.home-sidebar-brand img { width:96px; height:auto; object-fit:contain; filter:drop-shadow(0 8px 16px rgba(0,0,0,.25)); }
.home-sidebar-nav { display:grid; gap:12px; padding:34px 14px; }
.home-sidebar-link {
  min-height:76px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid transparent;
  border-radius:14px;
  background:transparent;
  color:#d7e4db;
  font-size:10px;
  font-weight:900;
  letter-spacing:.04em;
}
.home-sidebar-link:hover:not(:disabled) { background:rgba(25,190,91,.10); border-color:rgba(37,215,127,.28); color:#fff; }
.home-sidebar-link:disabled { opacity:.42; cursor:not-allowed; }
.home-sidebar-link svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.home-sidebar-user {
  margin-top:auto;
  padding:18px 14px 22px;
  display:flex;
  align-items:center;
  gap:10px;
  border-top:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.015);
}
.home-sidebar-user .avatar { width:42px; height:42px; background:#0e7e43; color:#fff; border:1px solid rgba(82,236,146,.35); }
.home-sidebar-user strong,.home-sidebar-user small { display:block; max-width:92px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.home-sidebar-user strong { font-size:10px; color:#fff; }
.home-sidebar-user small { margin-top:3px; color:#83b793; font-size:8px; font-weight:900; }
.home-hub-main { min-width:0; min-height:100vh; display:flex; flex-direction:column; }
.home-hub-topbar {
  min-height:88px;
  padding:0 34px 0 40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border-bottom:1px solid rgba(94,162,113,.20);
  background:rgba(2,19,12,.52);
  backdrop-filter:blur(12px);
}
.home-hub-title strong,.home-hub-title small { display:block; }
.home-hub-title strong { font-size:27px; letter-spacing:.02em; color:#fff; }
.home-hub-title strong span { color:#23c96f; }
.home-hub-title small { margin-top:2px; color:#7da68a; font-size:9px; font-weight:900; letter-spacing:.12em; }
.home-hub-tools { display:flex; align-items:center; gap:10px; }
.home-clock {
  min-height:52px;
  padding:0 16px;
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid rgba(93,157,112,.27);
  border-radius:12px;
  background:rgba(5,30,19,.72);
}
.home-clock svg { width:21px; height:21px; fill:none; stroke:#d9e8df; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.home-clock strong,.home-clock small { display:block; }
.home-clock strong { color:#fff; font-size:15px; line-height:1; }
.home-clock small { margin-top:4px; color:#8eaa98; font-size:8px; font-weight:800; }
.home-hub-tools .theme-toggle,.home-hub-tools .home-logout { min-height:46px; background:rgba(5,30,19,.72); border-color:rgba(93,157,112,.27); color:#eef8f1; }
.home-dashboard {
  width:min(1600px,100%);
  margin:0 auto;
  padding:30px 34px 22px;
  display:flex;
  flex-direction:column;
  gap:20px;
}
.home-hero {
  min-height:438px;
  display:grid;
  grid-template-columns:minmax(0,.96fr) minmax(500px,1.04fr);
  overflow:hidden;
  border:1px solid rgba(59,176,100,.28);
  border-radius:24px;
  background:linear-gradient(120deg,rgba(3,35,21,.97) 0%,rgba(5,49,28,.92) 48%,rgba(8,72,38,.82) 100%);
  box-shadow:0 28px 70px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.03);
}
.home-hero-copy {
  position:relative;
  z-index:2;
  padding:55px 34px 38px 44px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.home-operational-tag { color:#22c86e; font-size:10px; font-weight:900; letter-spacing:.13em; }
.home-greeting-line { margin-top:20px; display:flex; align-items:center; gap:13px; color:#76e84e; }
.home-greeting-line span:first-child { font-size:28px; font-weight:900; letter-spacing:.015em; }
#home-greeting-icon { color:#f7cd21; font-size:29px; line-height:1; }
.home-hero h1 { margin:7px 0 0; font-size:56px; line-height:1.02; letter-spacing:-.035em; color:#fff; }
.home-hero-rule { width:78px; height:5px; margin:26px 0 20px; border-radius:999px; background:linear-gradient(90deg,#30de69,#89ee49); }
.home-hero-copy > p { margin:0; color:#d9e4dd; font-size:14px; letter-spacing:.025em; }
.home-logistics-pill {
  width:max-content;
  max-width:100%;
  margin-top:38px;
  padding:12px 16px;
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid rgba(75,218,124,.32);
  border-radius:14px;
  background:rgba(4,28,17,.58);
}
.home-logistics-pill svg { width:28px; height:28px; fill:none; stroke:#37dd78; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.home-logistics-pill strong,.home-logistics-pill small { display:block; }
.home-logistics-pill strong { color:#eff8f2; font-size:10px; }
.home-logistics-pill small { margin-top:3px; color:#79a88a; font-size:8px; font-weight:800; }
.home-hero-visual { position:relative; min-height:438px; overflow:hidden; background:#0c6735; }
.home-hero-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 62%; filter:saturate(1.02) contrast(1.02); transform:scale(1.04); }
.home-hero-image-shade { position:absolute; inset:0; background:linear-gradient(90deg,#07371f 0%,rgba(5,51,27,.74) 17%,rgba(5,54,29,.18) 58%,rgba(3,24,14,.08) 100%),linear-gradient(0deg,rgba(0,26,13,.34),transparent 45%); }
.home-route-map { position:absolute; inset:22px 24px auto auto; width:82%; height:61%; fill:none; stroke:#7df45b; stroke-width:2; stroke-dasharray:8 8; opacity:.54; filter:drop-shadow(0 0 5px rgba(75,235,95,.24)); }
.home-route-map circle { fill:#35d46e; stroke:#b0ff93; stroke-width:3; stroke-dasharray:none; }
.home-truck-mark {
  position:absolute;
  top:80px;
  right:30%;
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:50% 50% 50% 8px;
  transform:rotate(-45deg);
  background:linear-gradient(145deg,#0fa452,#23d66e);
  border:2px solid rgba(166,255,186,.5);
  box-shadow:0 0 0 9px rgba(28,205,94,.10),0 12px 30px rgba(0,0,0,.25);
}
.home-truck-mark svg { width:32px; height:32px; transform:rotate(45deg); fill:none; stroke:#fff; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.home-brand-message { position:absolute; top:28px; right:28px; display:flex; flex-direction:column; align-items:flex-end; filter:drop-shadow(0 5px 12px rgba(0,0,0,.35)); }
.home-brand-message strong { color:#fff; font-size:18px; line-height:1; }
.home-brand-message span { margin-top:4px; padding:4px 7px; border-radius:5px; background:#e31a1f; color:#ffd52e; font-size:17px; font-weight:950; line-height:1; }
.home-modules {
  padding:18px 20px 20px;
  border:1px solid rgba(72,150,96,.20);
  border-radius:20px;
  background:linear-gradient(145deg,rgba(5,30,19,.84),rgba(3,22,14,.78));
  box-shadow:0 15px 34px rgba(0,0,0,.12);
}
.home-section-heading { margin-bottom:15px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.home-section-heading span { color:#26cb72; font-size:8px; font-weight:900; letter-spacing:.12em; }
.home-section-heading h2 { margin:4px 0 0; color:#fff; font-size:15px; letter-spacing:.015em; }
.home-section-heading > small { color:#799485; font-size:8px; font-weight:800; }
.home-module-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.home-module-card {
  min-height:150px;
  padding:18px;
  grid-template-columns:50px minmax(0,1fr) 28px;
  gap:13px;
  border-radius:16px;
  background:linear-gradient(145deg,rgba(14,46,31,.91),rgba(6,27,18,.96));
  border-color:rgba(100,151,117,.22);
  box-shadow:none;
  color:#eef7f1;
}
.home-module-card:hover:not(:disabled) { transform:translateY(-1px); background:linear-gradient(145deg,rgba(11,76,42,.95),rgba(7,44,26,.98)); border-color:#23c76c; box-shadow:0 12px 28px rgba(0,0,0,.18); }
.home-module-card.is-active-module { border-color:#21ce6e; background:linear-gradient(145deg,rgba(8,92,47,.86),rgba(5,45,28,.97)); box-shadow:inset 0 0 28px rgba(29,213,105,.08); }
.home-module-card .base-card-icon { width:50px; height:50px; border-radius:14px; background:#14a853; color:#fff; border:1px solid rgba(123,255,171,.25); }
.home-module-card .base-card-icon svg { width:27px; height:27px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.home-module-card strong { margin:3px 0 5px; color:#fff; font-size:16px; }
.home-module-card small { color:#a8baaf; font-size:9px; line-height:1.45; }
.home-module-status { display:inline-flex; align-items:center; min-height:18px; color:#4ff296; font-size:7px; font-weight:950; letter-spacing:.08em; }
.home-module-card .base-card-arrow { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:rgba(32,196,100,.13); color:#54e793; font-size:18px; }
.home-module-card.is-temporarily-locked { opacity:.58; }
.home-module-card.is-temporarily-locked .base-card-icon { background:rgba(255,255,255,.05); color:#a7b6ad; border-color:rgba(255,255,255,.10); }
.home-module-card.is-temporarily-locked .home-module-status { color:#98a99f; }
.home-module-card.is-temporarily-locked .base-card-arrow { background:transparent; color:#b7c2bb; font-size:14px; }
.home-module-card.is-disabled { pointer-events:none; }
.home-footer-line { min-height:25px; padding:0 4px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:#648672; font-size:8px; font-weight:900; letter-spacing:.10em; }

html[data-theme="light"] .home-hub {
  background:radial-gradient(circle at 70% 3%,rgba(26,168,77,.16),transparent 30%),linear-gradient(135deg,#eef8f0 0%,#f7fbf8 58%,#e7f4ea 100%);
  color:#14251a;
}
html[data-theme="light"] .home-sidebar { background:linear-gradient(180deg,#073f21,#0a5a2f); }
html[data-theme="light"] .home-hub-topbar { background:rgba(250,253,251,.88); border-bottom-color:#c9ddce; }
html[data-theme="light"] .home-hub-title strong { color:#16301f; }
html[data-theme="light"] .home-clock,html[data-theme="light"] .home-hub-tools .theme-toggle,html[data-theme="light"] .home-hub-tools .home-logout { background:#fff; border-color:#bfd4c4; color:#183322; }
html[data-theme="light"] .home-clock strong { color:#14301e; }
html[data-theme="light"] .home-modules { background:rgba(255,255,255,.78); border-color:#c8ddcd; }
html[data-theme="light"] .home-section-heading h2 { color:#17321f; }
html[data-theme="light"] .home-module-card { background:linear-gradient(145deg,#fff,#eef6f0); border-color:#c7d9cb; color:#17321f; }
html[data-theme="light"] .home-module-card strong { color:#183523; }
html[data-theme="light"] .home-module-card.is-active-module { background:linear-gradient(145deg,#e4f8ea,#d7f2df); border-color:#23ac5e; }
html[data-theme="light"] .home-module-card small { color:#5a7162; }
html[data-theme="light"] .home-footer-line { color:#5c8069; }

@media (max-width:1400px) {
  .home-hub { grid-template-columns:142px minmax(0,1fr); }
  .home-dashboard { padding:24px 24px 18px; }
  .home-hero { grid-template-columns:minmax(0,.9fr) minmax(430px,1.1fr); min-height:405px; }
  .home-hero-visual { min-height:405px; }
  .home-hero h1 { font-size:47px; }
  .home-hero-copy { padding-left:34px; }
  .home-module-card { min-height:142px; padding:15px; grid-template-columns:46px minmax(0,1fr) 24px; }
  .home-module-card .base-card-icon { width:46px; height:46px; }
}
@media (max-width:1080px) {
  .home-hub { grid-template-columns:86px minmax(0,1fr); }
  .home-sidebar-brand img { width:66px; }
  .home-sidebar-link span,.home-sidebar-user div:not(.avatar) { display:none; }
  .home-sidebar-link { min-height:62px; }
  .home-sidebar-user { justify-content:center; }
  .home-hub-topbar { padding:0 18px; }
  .home-clock { display:none; }
  .home-hero { grid-template-columns:1fr; }
  .home-hero-visual { min-height:300px; }
  .home-module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px) {
  .home-hub { display:block; }
  .home-sidebar { position:fixed; left:0; right:0; bottom:0; top:auto; height:68px; flex-direction:row; z-index:20; }
  .home-sidebar-brand,.home-sidebar-user { display:none; }
  .home-sidebar-nav { width:100%; grid-template-columns:1fr 1fr; padding:6px 12px; gap:8px; }
  .home-sidebar-link { min-height:54px; flex-direction:row; }
  .home-sidebar-link span { display:block; }
  .home-hub-topbar { min-height:74px; }
  .home-hub-title strong { font-size:20px; }
  .home-hub-tools .theme-toggle .theme-label { display:none; }
  .home-dashboard { padding:16px 12px 88px; }
  .home-hero-copy { padding:34px 24px; }
  .home-greeting-line span:first-child { font-size:22px; }
  .home-hero h1 { font-size:39px; }
  .home-hero-visual { min-height:250px; }
  .home-module-grid { grid-template-columns:1fr; }
  .home-section-heading { align-items:flex-start; flex-direction:column; gap:6px; }
}

/* Transferencias 12/08/2026 - melhor leitura e ocorrencias */
.trf-ap-datetime-split{grid-template-columns:minmax(150px,1.35fr) minmax(105px,.8fr)!important;gap:12px!important}.trf-ap-datetime-split input[type=date],.trf-ap-datetime-split input[type=time]{width:100%!important;min-width:0!important;font-size:15px!important;padding:12px 10px!important}.trf-ap-last-editor{display:block;margin-top:5px;color:var(--muted,#9fb4a6);font-size:10px;line-height:1.25}.trf-ap-kanban-card .trf-ap-last-editor{border-top:1px solid rgba(255,255,255,.08);padding-top:8px;margin:8px 0}.trf-ap-modal-section .check-field+ .check-field{margin-left:0}@media(max-width:700px){.trf-ap-datetime-split{grid-template-columns:1fr 1fr!important}}

/* Rota · Última localização Protect Sat / OpenStreetMap */
.route-location-kpis{grid-template-columns:repeat(5,minmax(0,1fr));}
.route-location-map-panel .panel-body{padding:14px;}
.route-location-map{width:100%;min-height:520px;border:1px solid var(--border);border-radius:18px;overflow:hidden;background:var(--surface-soft);position:relative;z-index:1;}
.route-location-map .leaflet-control-zoom a{color:#0b5b31;}
.route-location-map .leaflet-control-attribution{font-size:10px;}
.route-map-div-icon{background:transparent!important;border:0!important;}
.route-map-marker{width:58px;min-height:30px;display:flex;align-items:center;justify-content:center;padding:5px 7px;border-radius:10px;background:#08752f;color:#fff;border:2px solid #fff;box-shadow:0 5px 14px rgba(0,0,0,.28);font-size:10px;font-weight:900;letter-spacing:.02em;white-space:nowrap;}
.route-map-marker.is-warning{background:#c78300;}
.route-map-marker.is-danger,.route-map-marker.is-offline{background:#b42318;}
.route-map-marker.is-route{background:#08752f;}
.route-map-marker.is-online{background:#1b7f4a;}
.route-map-popup{display:grid;gap:3px;min-width:190px;color:#17231b;}
.route-map-popup strong{font-size:15px;color:#075e2d;}
.route-map-popup b{font-size:11px;text-transform:uppercase;}
.route-map-popup span,.route-map-popup small{font-size:11px;line-height:1.35;}
.route-location-table td{vertical-align:top;}
.route-location-no-gps{opacity:.72;}
[data-theme="dark"] .route-location-map{border-color:rgba(255,255,255,.12);}
@media (max-width:1180px){.route-location-kpis{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:760px){.route-location-kpis{grid-template-columns:1fr 1fr}.route-location-map{min-height:410px}.route-map-marker{width:52px;font-size:9px}.route-location-map-panel .panel-body{padding:8px;}}
