:root {
  --content-max-width: 1920px;
  color-scheme: light;
  --navy: #004c40;
  --blue: #087264;
  --blue-soft: #e6f3ef;
  --green: #14745c;
  --amber: #d99013;
  --red: #c96135;
  --gold: #ffb81c;
  --orange: #e8752e;
  --ink: #17352f;
  --muted: #647b75;
  --line: #d8e5e0;
  --surface: #ffffff;
  --canvas: #f3f6f9;
  --shadow: 0 12px 35px rgba(0, 76, 64, 0.09);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  position: relative;
  isolation: isolate;
  background: #111820;
  color: var(--ink);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}

body::before,
body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
}

body::before {
  z-index: -2;
  background: #0b0d0f url("./assets/maintenance-background.jpeg") center center / cover no-repeat;
}

body::after {
  z-index: -1;
  background: linear-gradient(180deg, rgba(239, 245, 241, .86), rgba(248, 247, 240, .93));
}

button, input, select { font: inherit; }

.topbar {
  min-height: 72px;
  padding: 0 5vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  color: #fff;
  background: linear-gradient(110deg, #003e35, #00695a);
  border-bottom: 3px solid var(--gold);
  box-shadow: 0 3px 16px rgba(0, 54, 45, 0.24);
}

.brand, .topbar-actions { display: flex; align-items: center; gap: 12px; }
.brand-logo {
  width: 50px;
  height: 50px;
  padding: 3px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 33, 28, .22);
}
.brand div { display: grid; line-height: 1.1; }
.brand strong { font-size: 17px; letter-spacing: 0.08em; }
.brand span:last-child { margin-top: 4px; color: #d8eee8; font-size:14px; }

.environment-badge, .upload-button {
  padding: 9px 13px; border-radius: 999px; font-size:14px; font-weight: 700;
}
.environment-badge { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); }
.upload-button { background: var(--gold); color: #17352f; cursor: pointer; }
.upload-button:hover { background: #ffc94d; }
.header-button { border: 1px solid rgba(255,255,255,.28); cursor: pointer; }
button.header-button { padding: 9px 13px; border-radius: 999px; color: #fff; background: rgba(255,255,255,.08); font-size:14px; font-weight: 700; }
button.header-button:hover { background: rgba(255,255,255,.17); }
.module-nav { display: flex; align-items: center; gap: 5px; }
.header-link { display: inline-flex; align-items: center; padding: 8px 12px; border-radius: 999px; color: #d8eee8; background: rgba(255,255,255,.06); font-size:13px; font-weight: 800; text-decoration: none; }
.header-link:hover, .header-link.active { color: var(--ink); background: var(--gold); border-color: var(--gold); }

.page-shell { width: min(1440px, 92vw); margin: 0 auto; padding: 34px 0 56px; }
.hero { display: flex; justify-content: space-between; gap: 28px; align-items: flex-end; margin-bottom: 22px; }
.hero h1 { margin: 5px 0 8px; font-size: clamp(27px, 3vw, 38px); letter-spacing: -0.035em; }
.eyebrow { margin: 0; color: var(--blue); font-size:13px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.muted { margin: 0; color: var(--muted); }
.freshness { min-width: 215px; padding: 14px 17px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }
.freshness span { display: block; color: var(--muted); font-size:13px; text-transform: uppercase; letter-spacing: .08em; }
.freshness strong { display: block; margin-top: 5px; font-size: 15px; }

.filter-panel {
  position: relative; z-index: 100;
  display: grid; grid-template-columns: 1.1fr 1.1fr 1fr 1fr; gap: 14px; align-items: end;
  padding: 18px; background: rgba(255,255,255,.94); border: 1px solid rgba(220,228,236,.9); border-radius: 16px; box-shadow: var(--shadow); backdrop-filter: blur(9px);
}
.filter-panel label { display: grid; gap: 7px; }
.filter-panel label span { color: var(--muted); font-size:13px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.filter-panel input, .filter-panel select {
  width: 100%; min-height: 43px; padding: 0 12px; color: var(--ink); background: #f9fbfc;
  border: 1px solid #cfd9e3; border-radius: 9px; outline: none;
}
.filter-panel input:focus, .filter-panel select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(8,114,100,.13); }
.searchable-select-native { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }
.searchable-select { position: relative; min-width: 0; }
.searchable-select:focus-within { z-index: 101; }
.searchable-select-input { width: 100%; min-height: 42px; padding: 0 38px 0 12px !important; border: 1px solid #cfd9e3; border-radius: 8px; color: var(--ink); background: #f9fbfc; outline: 0; cursor: text; }
.searchable-select::after { position: absolute; top: 15px; right: 14px; width: 7px; height: 7px; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); content: ""; pointer-events: none; transform: rotate(45deg); }
.searchable-select-input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(8,114,100,.13); }
.searchable-select-list { position: absolute; z-index: 40; top: calc(100% + 5px); left: 0; width: max(100%, 210px); max-height: 260px; overflow-y: auto; padding: 5px; border: 1px solid #cbdad4; border-radius: 10px; background: #fff; box-shadow: 0 14px 35px rgba(0,76,64,.18); }
.searchable-select-option { display: block; width: 100%; padding: 9px 10px; border: 0; border-radius: 7px; color: var(--ink); background: transparent; font: inherit; text-align: left; cursor: pointer; }
.searchable-select-option:hover, .searchable-select-option:focus, .searchable-select-option[aria-selected="true"] { color: var(--green); background: #eaf5f1; outline: 0; }
.searchable-select-empty { display: block; padding: 10px; color: var(--muted); font-size:13px; }
.secondary-button { min-height: 43px; padding: 0 16px; border: 1px solid #c8d4df; border-radius: 9px; color: var(--navy); background: #fff; cursor: pointer; font-weight: 700; }
.filter-note { grid-column: 1 / -1; margin: 0; color: #69798a; font-size:13px; }

.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; margin: 20px 0; }
.kpi-card { display: flex; gap: 14px; align-items: center; padding: 20px; background: rgba(255,255,255,.95); border: 1px solid rgba(220,228,236,.9); border-radius: 16px; box-shadow: var(--shadow); backdrop-filter: blur(8px); }
.kpi-icon { flex: 0 0 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; font-weight: 800; font-size:14px; }
.kpi-card span { display: block; color: var(--muted); font-size:14px; font-weight: 700; }
.kpi-card strong { display: block; margin: 3px 0; font-size: 27px; letter-spacing: -.03em; }
.kpi-card small { color: #8290a0; font-size:12px; }
.accent-blue .kpi-icon { color: var(--blue); background: var(--blue-soft); }
.accent-green .kpi-icon { color: var(--green); background: #e6f6ef; }
.accent-amber .kpi-icon { color: var(--amber); background: #fff4dc; }
.accent-red .kpi-icon { color: var(--red); background: #fdeaea; }
.accent-gold .kpi-icon { color: #765100; background: #fff0b8; }
.accent-orange .kpi-icon { color: #9b3e18; background: #ffeadf; }
.availability-card { border-top: 3px solid var(--gold); }
.ro-card { border-top: 3px solid var(--orange); }

.content-grid { display: grid; grid-template-columns: 2fr .8fr; gap: 18px; margin-bottom: 18px; }
.tables-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.panel { background: rgba(255,255,255,.95); border: 1px solid rgba(220,228,236,.9); border-radius: 16px; padding: 20px; box-shadow: var(--shadow); min-width: 0; backdrop-filter: blur(8px); }
.panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.panel-heading h2 { margin: 4px 0 0; font-size: 18px; }
.panel-chip { padding: 7px 10px; border-radius: 999px; color: var(--navy); background: var(--blue-soft); font-size:13px; font-weight: 800; }

.bar-chart { height: 285px; display: flex; align-items: end; gap: 8px; padding: 15px 4px 30px; overflow-x: auto; border-bottom: 1px solid var(--line); }
.bar-item { position: relative; flex: 1 0 28px; max-width: 58px; height: 100%; display: flex; align-items: end; justify-content: center; padding: 0; border: 0; color: inherit; background: transparent; font: inherit; }
button.bar-item { cursor: pointer; }
button.bar-item:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.bar { width: min(28px, 75%); min-height: 2px; border-radius: 6px 6px 2px 2px; background: linear-gradient(var(--gold), var(--orange)); transition: .2s ease; }
.bar-item:hover .bar { filter: brightness(1.12); }
.bar-value { position: absolute; bottom: calc(var(--bar-height) + 7px); font-size:12px; font-weight: 700; color: var(--muted); }
.bar-label { position: absolute; top: calc(100% + 8px); white-space: nowrap; font-size:12px; color: var(--muted); transform: rotate(-25deg); transform-origin: top center; }
.chart-heading-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: end; gap: 8px; }
.chart-back-button { padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--navy); background: #fff; cursor: pointer; font-size:12px; font-weight: 800; }
.chart-back-button:hover { border-color: var(--blue); }
.empty-state { width: 100%; align-self: center; text-align: center; color: var(--muted); }

.quality-list { margin: 0; }
.quality-list div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid #e8edf2; }
.quality-list dt { color: var(--muted); font-size:14px; }
.quality-list dd { margin: 0; font-weight: 800; }
.quality-note { margin: 15px 0 0; padding: 12px; border-radius: 10px; background: #f6f8fa; color: var(--muted); font-size:13px; line-height: 1.5; }

.table-wrap { overflow: auto; max-height: 340px; }
table { width: 100%; border-collapse: collapse; font-size:14px; }
th { position: sticky; top: 0; padding: 10px; text-align: left; color: #526272; background: #f5f8fa; border-bottom: 1px solid var(--line); }
td { padding: 10px; border-bottom: 1px solid #edf1f4; white-space: nowrap; }
tbody tr:hover { background: #f8fbfd; }
.empty-row td { padding: 28px 10px; color: var(--muted); text-align: center; }

.calculation-memory { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; padding: 13px 14px; border-radius: 10px; background: var(--blue-soft); }
.calculation-memory span { color: var(--muted); font-size:14px; }
.calculation-memory strong { color: var(--navy); font-size: 16px; }
.validation-note { margin: 12px 0 0; color: var(--muted); font-size:13px; line-height: 1.45; }
.validation-note.warning { color: #9b3e18; }
.stops-table-wrap { max-height: 390px; }
.stops-table { min-width: 850px; }
.validation-actions { display: flex; gap: 5px; }
.validation-button { padding: 6px 8px; border: 1px solid #cbdad4; border-radius: 7px; color: var(--muted); background: #fff; cursor: pointer; font-size:12px; font-weight: 800; line-height: 1; white-space: nowrap; }
.validation-button:hover { border-color: var(--blue); color: var(--navy); }
.validation-button[aria-pressed="true"] { color: #fff; border-color: var(--navy); background: var(--navy); }
.validation-button[data-category="maintenance"][aria-pressed="true"] { border-color: var(--orange); background: var(--orange); }
.validation-button[data-category="vale"][aria-pressed="true"] { border-color: #15745c; background: #15745c; }
.validation-button[data-category="coedra"][aria-pressed="true"] { border-color: #087264; background: #087264; }
.validation-button:disabled { cursor: not-allowed; opacity: .48; }
.stop-comment { display: flex; align-items: center; gap: 6px; min-width: 250px; }
.stop-comment textarea { width: 190px; min-height: 34px; resize: vertical; padding: 7px 8px; border: 1px solid #cbdad4; border-radius: 7px; font: inherit; color: var(--navy); background: #fff; }
.stop-comment textarea:read-only { color: var(--muted); background: #f5f8f7; }
.comment-save-button { padding: 7px 9px; border: 0; border-radius: 7px; color: #fff; background: var(--navy); cursor: pointer; font-size:12px; font-weight: 800; }
.stop-comment-empty { display: block; max-width: 190px; color: var(--muted); font-size:12px; line-height: 1.35; }
.status-badge { display: inline-flex; align-items: center; padding: 5px 8px; border-radius: 999px; font-size:12px; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.status-pending { color: #805a00; background: #fff0b8; }
.status-approved { color: #075c47; background: #dcf3e8; }
.status-rejected { color: #9b3e18; background: #ffeadf; }

.login-page { display: grid; min-height: 100vh; grid-template-rows: 1fr auto; }
.login-shell { display: grid; place-items: center; width: 100%; padding: 32px 18px; }
.login-card { width: min(430px, 100%); padding: 34px; border: 1px solid rgba(216,229,224,.92); border-radius: 22px; background: rgba(255,255,255,.95); box-shadow: 0 20px 55px rgba(0,76,64,.15); backdrop-filter: blur(10px); }
.login-logo { width: 64px; height: 64px; margin-bottom: 18px; }
.login-card h1 { margin: 6px 0 8px; }
.login-form { display: grid; gap: 16px; margin-top: 24px; }
.login-form label { display: grid; gap: 7px; }
.login-form label span { color: var(--muted); font-size:13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.login-form input, .login-form select { min-height: 46px; padding: 0 13px; border: 1px solid #cbdad4; border-radius: 10px; color: var(--ink); background: #f9fbfa; outline: 0; }
.login-form input:focus, .login-form select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(8,114,100,.13); }
.primary-button { min-height: 46px; border: 0; border-radius: 10px; color: #17352f; background: var(--gold); cursor: pointer; font-weight: 800; }
.primary-button:hover { background: #ffc94d; }
.login-message { min-height: 20px; margin: 14px 0 0; color: var(--red); font-size:14px; }

.approval-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 18px; }
.approval-table-wrap { max-height: 580px; }
.approval-table { min-width: 850px; }
.approval-audit { display: grid; gap: 3px; margin-top: 7px; min-width: 130px; max-width: 240px; color: var(--muted); font-size:13px; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
.approval-audit strong { color: var(--ink); font-weight: 600; }
.approval-audit time { font-size:12px; }
.compact-filter { max-width: 165px; min-height: 34px; padding: 0 10px; border: 1px solid #cbdad4; border-radius: 8px; color: var(--ink); background: #fff; font-size:13px; outline: 0; }
.compact-filter:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(8,114,100,.13); }
.decision-actions { display: flex; gap: 6px; }
.decision-button { padding: 7px 10px; border: 1px solid #cbdad4; border-radius: 7px; cursor: pointer; background: #fff; font-size:12px; font-weight: 800; }
.decision-button.approve { color: #075c47; }
.decision-button.reject { color: #9b3e18; }
.decision-button.approve[aria-pressed="true"] { color: #fff; border-color: #15745c; background: #15745c; }
.decision-button.reject[aria-pressed="true"] { color: #fff; border-color: var(--orange); background: var(--orange); }

.app-message { position: fixed; right: 24px; bottom: 24px; max-width: 420px; padding: 14px 18px; border-radius: 12px; background: var(--navy); color: #fff; box-shadow: 0 12px 30px rgba(0,0,0,.22); font-size:14px; }

.app-footer {
  padding: 0 5vw 20px;
  color: rgba(23, 53, 47, .58);
  font-size:12px;
  letter-spacing: .08em;
  text-align: center;
}

/* Controle de produção */
.production-entry-panel { margin-top: 18px; border-top: 3px solid var(--gold); }
.production-disclosure-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; }
.production-disclosure-summary::-webkit-details-marker { display: none; }
.production-disclosure-summary span:first-child { display: grid; gap: 4px; }
.production-disclosure-summary small { color: var(--green); font-size:12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.production-disclosure-summary strong { color: var(--ink); font-size: 18px; }
.production-entry-panel[open] > .production-disclosure-summary .panel-chip { background: #fff1cf; color: #8b5b00; }
.production-disclosure-content { margin-top: 20px; padding-top: 18px; border-top: 1px solid #dce5e2; }
.production-batch-header { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.production-batch-header label { display: grid; gap: 7px; }
.production-batch-header label span { color: var(--muted); font-size:12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.production-batch-header input, .production-batch-header select, .production-batch-table input, .production-batch-table select { width: 100%; min-height: 39px; padding: 0 9px; color: var(--ink); background: #f9fbfc; border: 1px solid #cfd9e3; border-radius: 8px; outline: none; }
.production-batch-table-wrap { overflow-x: auto; }
.production-batch-table { width: 100%; min-width: 1320px; border-collapse: collapse; }
.production-batch-table th, .production-batch-table td { padding: 8px 7px; border-bottom: 1px solid #e2e9e7; text-align: left; }
.production-batch-table th { color: var(--muted); font-size:12px; letter-spacing: .05em; text-transform: uppercase; }
.production-batch-table td:nth-child(1) { width: 48px; text-align: center; }
.production-batch-table td:nth-child(2), .production-batch-table td:nth-child(3) { font-weight: 800; white-space: nowrap; }
.production-batch-table td:nth-child(4), .production-batch-table td:nth-child(5) { min-width: 155px; }
.production-batch-table td:nth-child(6), .production-batch-table td:nth-child(7), .production-batch-table td:nth-child(8) { width: 92px; }
.production-batch-table td:nth-child(9) { min-width: 220px; }
.production-batch-table td:nth-child(10) { width: 92px; }
.batch-add-origin, .batch-remove-origin { min-height: 36px; padding: 0 10px; border: 1px solid #b8c9c5; border-radius: 8px; color: var(--green); background: #fff; font-size:13px; font-weight: 800; white-space: nowrap; cursor: pointer; }
.batch-remove-origin { color: #a33; border-color: #dfc3c3; }
.production-batch-table tr.batch-row-disabled { opacity: .48; }
.production-batch-table input[type="checkbox"] { width: 17px; min-height: 17px; accent-color: var(--green); }
.production-batch-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 16px; }
.production-batch-footer span { color: var(--muted); font-size:14px; }
.production-entry-form { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; align-items: end; }
.production-entry-form label { display: grid; gap: 7px; min-width: 0; }
.production-entry-form .entry-existing { grid-column: span 5; }
.production-entry-form .entry-cancel-edit { align-self: end; min-height: 43px; }
.production-entry-form label span { color: var(--muted); font-size:12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.production-entry-form input, .production-entry-form select { width: 100%; min-height: 43px; padding: 0 12px; color: var(--ink); background: #f9fbfc; border: 1px solid #cfd9e3; border-radius: 9px; outline: none; }
.production-entry-form input:focus, .production-entry-form select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(8,114,100,.13); }
.production-entry-form input[readonly] { color: var(--green); background: #edf7f3; font-weight: 800; cursor: not-allowed; }
.production-entry-form .entry-occurrence { grid-column: span 3; }
.entry-submit { padding: 0 18px; white-space: nowrap; }
.entry-submit:disabled { cursor: wait; opacity: .65; }
.entry-help { margin: 14px 0 0; color: var(--muted); font-size:12px; line-height: 1.5; }
.supplier-form-panel { margin-bottom: 18px; border-top: 3px solid var(--gold); }
.supplier-form { display: grid; grid-template-columns: 1fr 1fr 1.4fr auto; gap: 14px; align-items: end; }
.supplier-form label, .product-form label { display: grid; gap: 7px; min-width: 0; }
.supplier-form label span, .product-form label span { color: var(--muted); font-size:12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.supplier-form input, .supplier-form select, .product-form input { width: 100%; min-height: 43px; padding: 8px 12px; color: var(--ink); background: #f9fbfc; border: 1px solid #cfd9e3; border-radius: 9px; outline: none; }
.supplier-products-field small { color: var(--muted); font-size:12px; }
.supplier-form-actions { display: flex; gap: 8px; align-items: center; }
.supplier-form-actions button { padding: 0 16px; white-space: nowrap; }
.contract-rates-field { grid-column: 1 / -1; border-top: 1px solid #dce4ea; padding-top: 14px; }
.contract-rates-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.contract-rates-heading span { display:block; font-weight:800; color:var(--ink); }
.contract-rates-heading small { display:block; color:var(--muted); margin-top:3px; }
.contract-rate-row { display:grid; grid-template-columns:minmax(240px,2fr) 1fr 1fr 42px; gap:8px; margin-bottom:8px; }
.contract-rate-row input { min-height:40px; padding:8px 10px; border:1px solid #cfd9e3; border-radius:8px; }
.product-quick-panel { margin-bottom: 18px; }
.product-form { display: grid; grid-template-columns: 2fr 1fr auto; gap: 14px; align-items: end; }
.product-form button { padding: 0 16px; }
.supplier-table-wrap { max-height: 520px; }
.supplier-table { min-width: 850px; }
.supplier-actions { display: flex; gap: 7px; }
.supplier-actions button { min-height: 34px; padding: 0 10px; }
@media (max-width: 980px) { .supplier-form { grid-template-columns: 1fr 1fr; } .supplier-products-field { grid-column: 1 / -1; } }
@media (max-width: 620px) { .supplier-form, .product-form { grid-template-columns: 1fr; } .supplier-products-field { grid-column: auto; } }
@media (max-width: 620px) { .contract-rate-row { grid-template-columns:1fr; } }

/* Medições */
.measurement-header-panel { margin-bottom: 18px; border-top: 3px solid var(--gold); }
.measurement-header-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 14px; }
.measurement-header-grid label { display: grid; gap: 7px; }
.measurement-header-grid label span { color: var(--muted); font-size:12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.measurement-header-grid input, .measurement-header-grid select, .measurement-table input, .measurement-table select { width: 100%; min-height: 40px; padding: 7px 9px; color: var(--ink); background: #f9fbfc; border: 1px solid #cfd9e3; border-radius: 8px; outline: none; }
.measurement-notes { grid-column: span 2; }
.measurement-kpis { margin-bottom: 18px; }
.measurement-memory-panel { margin-bottom: 18px; }
.measurement-toolbar, .measurement-actions { display: flex; gap: 9px; align-items: center; }
.measurement-table-wrap { max-height: 520px; }
.measurement-table { min-width: 1750px; }
.measurement-table th { white-space: normal; min-width: 112px; }
.measurement-table th:first-child { min-width: 400px; }
.measurement-table td { vertical-align: top; font-variant-numeric: tabular-nums; }
.measurement-table td:first-child > select, .measurement-table td:first-child > input { display: block; width: 100%; }
.measurement-table td:first-child > select + select { margin-top: 6px; }
.measurement-table td[data-output] { padding-top: 20px; font-weight: 800; white-space: nowrap; }
.measurement-line-note { margin-top: 5px; min-height: 32px !important; font-size:13px; }
.measurement-actions { justify-content: flex-end; margin-top: 16px; }
.measurement-list-table { min-width: 1100px; }
.measurement-list-table td small { display: block; margin-top: 4px; color: var(--muted); }
.measurement-status-draft { background: #edf1f5; color: #52606d; }
.measurement-status-in_review { background: #fff3cd; color: #755b00; }
.measurement-status-approved { background: #dff5e7; color: #176b3a; }
.measurement-status-closed { background: #dcecf8; color: #14547b; }
.icon-button { width: 34px; height: 34px; border: 0; border-radius: 8px; background: #fee8e7; color: #9d241f; font-size: 22px; cursor: pointer; }
@media (max-width: 1050px) { .measurement-header-grid { grid-template-columns: repeat(2, minmax(150px, 1fr)); } }
@media (max-width: 620px) { .measurement-header-grid { grid-template-columns: 1fr; } .measurement-notes { grid-column: auto; } .measurement-toolbar { align-items: stretch; flex-direction: column; } }
.production-filters { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.production-multi-select { position: relative; min-width: 0; }
.production-multi-select > button { position: relative; width: 100%; min-height: 43px; padding: 0 38px 0 12px; overflow: hidden; border: 1px solid #cfd9e3; border-radius: 9px; color: var(--ink); background: #f9fbfc; font: inherit; text-align: left; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.production-multi-select > button::after { position: absolute; top: 15px; right: 15px; width: 7px; height: 7px; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); content: ""; transform: rotate(45deg); }
.production-multi-select > button:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(8,114,100,.13); outline: 0; }
.production-multi-options { position: absolute; z-index: 120; top: calc(100% + 5px); left: 0; width: max(100%, 240px); max-height: 260px; overflow-y: auto; padding: 6px; border: 1px solid #cbdad4; border-radius: 10px; background: #fff; box-shadow: 0 14px 35px rgba(0,76,64,.18); }
.production-multi-options label { display: flex; grid-template-columns: none; align-items: center; gap: 9px; padding: 9px 10px; border-radius: 7px; cursor: pointer; }
.production-multi-options label:hover { background: #eaf5f1; }
.production-multi-options input { flex: 0 0 auto; width: 16px; min-height: 16px; margin: 0; accent-color: var(--green); }
.filter-panel .production-multi-options span { color: var(--ink); font-size:13px; font-weight: 700; letter-spacing: 0; text-transform: none; }
.production-kpis { grid-template-columns: repeat(4, minmax(220px, 1fr)); }
.production-kpis .kpi-card { min-height: 154px; }
.production-kpis .kpi-card > div:last-child { min-width: 0; }
.production-kpis .kpi-card strong { font-size: clamp(23px, 2vw, 29px); white-space: nowrap; }
.production-overview-grid { grid-template-columns: 1.7fr 1fr; }
.production-ranking-grid { grid-template-columns: repeat(3, 1fr); }
.chart-legend { display: flex; flex-wrap: wrap; gap: 12px; color: var(--muted); font-size:12px; font-weight: 700; }
.chart-legend span { display: flex; align-items: center; gap: 5px; }
.chart-legend i { width: 10px; height: 10px; border-radius: 3px; }
.legend-target { background: #cbd7d3; }
.legend-real { background: var(--gold); }
.comparison-chart { height: 300px; display: flex; align-items: stretch; gap: 10px; padding: 12px 4px 0; overflow-x: auto; border-bottom: 1px solid var(--line); }
.comparison-item { flex: 1 0 62px; min-width: 62px; display: grid; grid-template-rows: 1fr 25px; gap: 7px; text-align: center; }
.comparison-bars { height: 100%; display: flex; align-items: end; justify-content: center; gap: 5px; }
.comparison-bar { position: relative; width: 20px; min-height: 2px; border-radius: 5px 5px 2px 2px; }
.comparison-bar.target { background: #cbd7d3; }
.comparison-bar.real { background: linear-gradient(180deg, var(--gold), var(--orange)); }
.comparison-bar span { position: absolute; left: 50%; top: -17px; color: var(--muted); font-size:12px; font-weight: 800; transform: translateX(-50%); }
.comparison-item small { color: var(--muted); font-size:12px; }
.projection-panel { display: grid; grid-template-rows: auto 1fr; }
.projection-summary { display: flex; align-items: center; gap: 22px; min-height: 230px; }
.projection-summary > div:last-child { flex: 1; }
.projection-summary > div:last-child > strong { display: block; margin-bottom: 8px; font-size: 18px; line-height: 1.25; }
.projection-ring { --projection: 0deg; flex: 0 0 154px; width: 154px; height: 154px; display: grid; place-content: center; text-align: center; border-radius: 50%; background: radial-gradient(circle at center, #fff 57%, transparent 59%), conic-gradient(var(--green) var(--projection), #e2ebe7 0); }
.projection-ring.warning { background: radial-gradient(circle at center, #fff 57%, transparent 59%), conic-gradient(var(--amber) var(--projection), #e2ebe7 0); }
.projection-ring.critical { background: radial-gradient(circle at center, #fff 57%, transparent 59%), conic-gradient(var(--red) var(--projection), #e2ebe7 0); }
.projection-ring strong { font-size: 27px; }
.projection-ring span { color: var(--muted); font-size:12px; text-transform: uppercase; }
.ranking-list { display: grid; gap: 16px; max-height: 370px; overflow: auto; padding-right: 4px; }
.ranking-item { display: grid; gap: 6px; }
.ranking-heading { display: flex; justify-content: space-between; gap: 12px; font-size:13px; }
.ranking-heading span, .ranking-item small { color: var(--muted); }
.ranking-track { height: 8px; overflow: hidden; border-radius: 999px; background: #e4ece9; }
.ranking-fill { height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--navy), var(--blue)); }
.production-table-panel, .production-occurrences-panel { margin-top: 18px; }
.production-efficiency-panel { grid-column: 1 / -1; }
.efficiency-note { margin: -7px 0 16px; color: var(--muted); font-size:13px; }
.efficiency-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.efficiency-card { padding: 14px; border: 1px solid var(--line); border-top: 3px solid var(--green); border-radius: 12px; background: #fbfcfc; }
.efficiency-card.warning { border-top-color: var(--amber); }
.efficiency-card.critical { border-top-color: var(--red); }
.efficiency-heading { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.efficiency-heading strong { color: var(--navy); font-size:14px; }
.efficiency-heading span { font-size: 18px; font-weight: 800; }
.efficiency-track { height: 7px; margin: 10px 0 12px; overflow: hidden; border-radius: 999px; background: #e2ebe7; }
.efficiency-track div { height: 100%; border-radius: inherit; background: var(--green); }
.efficiency-card.warning .efficiency-track div { background: var(--amber); }
.efficiency-card.critical .efficiency-track div { background: var(--red); }
.efficiency-card dl { display: grid; grid-template-columns: 1.4fr 1fr .7fr; gap: 8px; margin: 0; }
.efficiency-card dl div { min-width: 0; }
.efficiency-card dt { color: var(--muted); font-size:12px; text-transform: uppercase; }
.efficiency-card dd { margin: 3px 0 0; font-size:13px; font-weight: 800; white-space: nowrap; }
.production-table-wrap { max-height: 440px; }
.production-table { min-width: 1020px; }
.traffic-light { display: inline-flex; align-items: center; gap: 8px; font-size:12px; font-weight: 800; white-space: nowrap; }
.traffic-light::before { content: ""; width: 11px; height: 11px; border-radius: 50%; }
.traffic-green { color: #075c47; }
.traffic-green::before { background: #20a66a; box-shadow: 0 0 0 4px rgba(32,166,106,.14); }
.traffic-red { color: #9b3e18; }
.traffic-red::before { background: var(--red); box-shadow: 0 0 0 4px rgba(207,72,64,.14); }
.occurrence-list { display: grid; gap: 10px; }
.occurrence-item { padding: 13px 14px; border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 10px; background: #fbfcfc; }
.occurrence-item summary { display: grid; grid-template-columns: 105px 100px 1fr; align-items: center; gap: 14px; cursor: pointer; list-style-position: outside; }
.occurrence-item summary strong { color: var(--navy); font-size:13px; }
.occurrence-item summary span { color: var(--muted); font-size:14px; line-height: 1.5; }
.occurrence-item dl { display: grid; grid-template-columns: repeat(3, minmax(100px, 1fr)); gap: 12px; margin: 13px 0 0; padding: 12px; border-top: 1px solid var(--line); }
.occurrence-item dt { color: var(--muted); font-size:12px; text-transform: uppercase; }
.occurrence-item dd { margin: 3px 0 0; color: var(--navy); font-size:13px; font-weight: 800; }
.occurrence-list time { color: var(--navy); font-size:13px; font-weight: 800; }
.occurrence-list p { margin: 0; color: var(--muted); font-size:14px; line-height: 1.5; }

@media (max-width: 700px) {
  .occurrence-item summary { grid-template-columns: 1fr; gap: 5px; }
  .occurrence-item dl { grid-template-columns: 1fr; }
}

/* Controle de diesel */
.diesel-filters { grid-template-columns: 1fr 1.8fr; }
.diesel-kpis { grid-template-columns: repeat(4, minmax(210px, 1fr)); }
.diesel-kpis .kpi-card { min-height: 145px; border-top: 3px solid transparent; }
.diesel-kpis .accent-green { border-top-color: var(--green); }
.diesel-kpis .accent-gold { border-top-color: var(--gold); }
.diesel-kpis .accent-blue { border-top-color: var(--blue); }
.diesel-kpis .accent-amber { border-top-color: var(--amber); }
.diesel-kpis .accent-orange { border-top-color: var(--orange); }
.diesel-kpis .accent-red { border-top-color: var(--red); }
.diesel-kpis .kpi-card > div:last-child { min-width: 0; }
.diesel-kpis .kpi-card strong { white-space: nowrap; }
#diesel-top-consumer { overflow: hidden; font-size: clamp(19px, 2vw, 27px); text-overflow: ellipsis; }
.diesel-chart-panel, .diesel-table-panel { margin-top: 18px; }
.diesel-chart-panel { border-top: 3px solid var(--gold); }
.diesel-table-panel { border-top: 3px solid var(--navy); }
.diesel-bar-list { display: grid; gap: 12px; max-height: 430px; overflow: auto; padding: 2px 4px 2px 0; }
.diesel-bar-row { display: grid; grid-template-columns: minmax(170px, 250px) minmax(240px, 1fr) 78px; align-items: center; gap: 16px; min-height: 43px; padding: 0 4px; border-bottom: 1px solid #edf1ef; }
.diesel-bar-label { overflow: hidden; color: var(--navy); font-size:13px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.diesel-bar-track { position: relative; height: 16px; overflow: visible; border-radius: 999px; background: #e3ece8; }
.diesel-bar-fill { height: 100%; min-width: 2px; border-radius: inherit; background: linear-gradient(90deg, var(--navy), var(--blue)); }
.diesel-bar-fill.warning { background: linear-gradient(90deg, var(--orange), var(--red)); }
.diesel-meta-marker { position: absolute; top: -5px; width: 3px; height: 23px; border-radius: 3px; background: var(--gold); box-shadow: 0 0 0 2px rgba(255,255,255,.8); transform: translateX(-50%); }
.diesel-bar-value { color: var(--ink); font-size:13px; font-weight: 800; text-align: right; white-space: nowrap; }
.diesel-table-wrap { max-height: 500px; }
.diesel-table { min-width: 760px; }
.diesel-table th { padding: 13px 12px; font-size:12px; letter-spacing: .06em; text-transform: uppercase; }
.diesel-table td { height: 49px; padding: 12px; }
.diesel-table th:not(:first-child), .diesel-table td:not(:first-child) { text-align: center; }
.diesel-family-name { color: var(--navy); font-weight: 800; }
.diesel-table .status-badge { gap: 6px; }
.diesel-table .status-badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.diesel-client .internal-only { display: none !important; }
.diesel-client .diesel-table { min-width: 650px; }
.diesel-client .diesel-bar-fill { background: linear-gradient(90deg, var(--gold), var(--orange)); }

@media (max-width: 1050px) {
  .filter-panel { grid-template-columns: repeat(2, 1fr); }
  .kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .content-grid, .tables-grid { grid-template-columns: 1fr; }
  .production-filters { grid-template-columns: repeat(2, 1fr); }
  .production-entry-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .production-overview-grid, .production-ranking-grid { grid-template-columns: 1fr; }
  .diesel-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1350px) and (min-width: 1051px) {
  .production-kpis { grid-template-columns: repeat(3, minmax(220px, 1fr)); }
}

@media (max-width: 650px) {
  .topbar, .hero { align-items: flex-start; flex-direction: column; }
  .topbar { padding: 16px 5vw; }
  .topbar-actions { width: 100%; justify-content: space-between; }
  .topbar-actions { flex-wrap: wrap; }
  .module-nav { order: -1; width: 100%; }
  .page-shell { width: 94vw; padding-top: 24px; }
  .freshness { width: 100%; }
  .filter-panel, .kpi-grid { grid-template-columns: 1fr; }
  .production-filters { grid-template-columns: 1fr; }
  .production-entry-form { grid-template-columns: 1fr; }
  .production-batch-header { grid-template-columns: 1fr; }
  .production-batch-footer { align-items: stretch; flex-direction: column; }
  .production-entry-form .entry-occurrence { grid-column: auto; }
  .diesel-filters, .diesel-kpis { grid-template-columns: 1fr; }
  .diesel-bar-row { grid-template-columns: 105px minmax(170px, 1fr) 58px; gap: 8px; }
  .kpi-card { padding: 16px; }
  .projection-summary { align-items: flex-start; flex-direction: column; }
  .occurrence-list article { grid-template-columns: 1fr; gap: 5px; }
}

/* Gestão de usuários e acessos */
.management-grid { display: grid; grid-template-columns: minmax(320px, .8fr) minmax(480px, 1.2fr); gap: 20px; align-items: start; }
.account-link { color:inherit; text-decoration:none; cursor:pointer; }
.account-link:hover,.account-link.active { outline:2px solid rgba(255,184,28,.55); background:rgba(255,255,255,.13); }
.account-layout { display:grid; grid-template-columns:minmax(240px,.65fr) minmax(420px,1.35fr); gap:20px; align-items:start; }
.account-summary { display:grid; justify-items:center; gap:12px; padding:28px; text-align:center; border-top:3px solid var(--gold); }
.account-avatar { display:grid; width:72px; height:72px; place-items:center; border-radius:20px; color:#fff; background:var(--green); font-size:18px; font-weight:900; }
.account-summary>div { display:grid; gap:4px; }
.account-summary small { color:var(--muted); font-size:12px; font-weight:800; text-transform:uppercase; }
.account-summary strong { color:var(--navy); font-size:21px; }
.account-summary span:not(.account-avatar),.account-summary p { color:var(--muted); font-size:14px; }
.account-summary p { margin:8px 0 0; padding-top:16px; border-top:1px solid var(--line); line-height:1.5; }
.account-form-panel { border-top:3px solid var(--green); }
.account-form { display:grid; gap:15px; margin-top:20px; }
.account-form label { display:grid; gap:7px; }
.account-form label>span { color:var(--muted); font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.account-form input { width:100%; min-height:44px; border:1px solid var(--line); border-radius:9px; padding:9px 11px; background:#fff; }
.account-form label small { color:var(--muted); font-size:12px; }
.account-password-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.account-form .primary-button { justify-self:start; min-height:44px; }
@media(max-width:800px){.account-layout{grid-template-columns:1fr}.account-summary{padding:20px}.account-password-grid{grid-template-columns:1fr}.account-form .primary-button{width:100%}}
.access-form { display: grid; gap: 15px; margin-top: 20px; }
.access-form label:not(.check-option) { display: grid; gap: 7px; }
.access-form label > span, .access-form legend { color: var(--muted); font-size:13px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.access-form input:not([type=checkbox]), .access-form select { min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; background: #fbfcfc; }
.access-form fieldset { margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.permission-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.check-option { display: flex; align-items: center; gap: 9px; min-height: 36px; color: var(--ink); font-size:14px; font-weight: 700; }
.check-option input { width: 17px; height: 17px; accent-color: var(--green); }
.permission-help { margin: 2px 0 16px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.permission-mode { margin: -5px 0 15px; padding: 9px 11px; border-radius: 7px; color: #075c47; background: #e8f5ef; font-size: 12px; line-height: 1.5; }
.permission-search-label > span { font-size: 12px !important; letter-spacing: .01em !important; text-transform: none !important; }
.permission-search-label input { width: 100%; min-width: 0; }
.permission-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 13px 0 12px; }
.permission-toolbar > span { color: var(--muted); font-size: 12px; }
.permission-toolbar > div { display: flex; flex-wrap: wrap; gap: 6px; }
.permission-tool { padding: 6px 9px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--green); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.permission-tool:hover { background: #e8f5ef; }
.permission-tool:focus-visible, .permission-group > summary:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.permission-tree { display: grid; gap: 8px; }
.permission-tree [hidden] { display: none; }
.vehicle-section-nav [hidden] { display: none !important; }
.permission-group, .permission-single { min-width: 0; border: 1px solid var(--line); border-radius: 10px; background: #fff; overflow: hidden; }
.permission-group > summary { display: flex; align-items: center; gap: 10px; padding: 12px; list-style: none; cursor: pointer; }
.permission-group > summary::-webkit-details-marker { display: none; }
.permission-group > summary:hover { background: #f3f9f6; }
.permission-chevron { color: var(--green); font-size: 26px; line-height: 1; transition: transform .15s; }
.permission-group[open] .permission-chevron { transform: rotate(90deg); }
.permission-group-title { flex: 1; min-width: 0; }
.permission-group-title strong, .permission-group-title small { display: block; }
.permission-group-title strong { color: var(--ink); font-size: 14px; }
.permission-group-title small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.permission-status { flex-shrink: 0; padding: 4px 7px; border-radius: 6px; color: var(--muted); background: #f0f3f2; font-size: 10px; font-weight: 800; }
.permission-status.is-allowed { color: #075c47; background: #e8f5ef; }
.permission-group-content { padding: 8px 12px 12px; border-top: 1px solid var(--line); background: #fbfdfc; }
.permission-tree .permission-choice { margin: 0; min-height: 30px; }
.permission-tree .permission-choice > span { color: var(--ink); font-size: 13px; letter-spacing: 0; text-transform: none; }
.permission-choice input { flex-shrink: 0; }
.permission-group-checkbox { width: 17px; height: 17px; margin: 0; flex-shrink: 0; accent-color: var(--green); }
.permission-choice strong { font: inherit; }
.permission-choice .permission-child-note { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.4; font-weight: 400; }
.permission-choice input:disabled { opacity: .7; }
.permission-children { list-style: none; margin: 0 0 0 8px; padding: 0 0 0 12px; border-left: 2px solid var(--line); }
.permission-child { display: flex; gap: 8px; align-items: flex-start; padding: 8px 0; color: var(--muted); }
.permission-child strong, .permission-child small { display: block; }
.permission-child strong { color: var(--ink); font-size: 12px; font-weight: 600; }
.permission-child small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.permission-single { padding: 10px 12px; }
.permission-single-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.permission-empty { color: var(--muted); font-size: 13px; text-align: center; padding: 12px 0; }
@media (max-width: 480px) { .permissions-fieldset { padding: 10px !important; } .permission-toolbar { align-items: flex-start; flex-direction: column; } .permission-group > summary { gap: 7px; padding: 10px; } }
.form-actions, .user-card-actions { display: flex; gap: 10px; align-items: center; }
.form-message { padding: 12px; border-radius: 8px; color: #075c47; background: #e8f5ef; }
.form-message.error { color: #9b3e18; background: #fff0ec; }
.user-list { display: grid; gap: 10px; margin-top: 18px; }
.user-card { display: flex; justify-content: space-between; gap: 16px; padding: 16px; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfc; }
.user-card strong, .user-email { display: block; }
.user-email, .user-department { margin-top: 3px; color: var(--muted); font-size:14px; }
.permission-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.permission-tags span { padding: 4px 7px; border-radius: 999px; color: #075c47; background: #e8f5ef; font-size:12px; font-weight: 800; }
@media (max-width: 900px) { .management-grid { grid-template-columns: 1fr; } }

/* Controle de manutenção */
.maintenance-form-panel { border-top: 3px solid var(--orange); }
.maintenance-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.maintenance-form label { display: grid; align-content: start; gap: 7px; }
.maintenance-form label > span { color: var(--muted); font-size:12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.maintenance-form input, .maintenance-form select, .maintenance-form textarea { width: 100%; min-height: 43px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: #fbfcfc; color: var(--ink); font: inherit; }
.maintenance-form textarea { resize: vertical; }
.maintenance-wide { grid-column: span 2; }
.maintenance-form-actions { grid-column: 1 / -1; display: flex; gap: 10px; }
.maintenance-kpis { margin-top: 18px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.maintenance-filters { margin-top: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.maintenance-table-panel { margin-top: 18px; border-top: 3px solid var(--navy); }
.maintenance-table { min-width: 1120px; }
.maintenance-table td { vertical-align: top; }
.maintenance-table td small, .maintenance-table td span { display: block; }
.maintenance-table td small { margin-top: 4px; color: var(--muted); }
.maintenance-table tr.critical-maintenance { background: #fff9ed; }
.maintenance-type-chip { display: inline-flex !important; width: fit-content; padding: 5px 8px; border-radius: 999px; background: #eef4f2; color: var(--navy); font-size:12px; font-weight: 800; }
.maintenance-actions { display: flex; flex-wrap: wrap; gap: 6px; min-width: 210px; }
.maintenance-actions button { min-height: 32px; padding: 6px 9px; font-size:12px; }
.status-badge.draft { color: #5d6870; background: #edf0f2; }
.status-badge.pending { color: #8a5a00; background: #fff3d8; }
.status-badge.returned { color: #a63c1d; background: #ffebe5; }
.status-badge.validated { color: #08704f; background: #e5f6ef; }
@media (max-width: 1050px) { .maintenance-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } .maintenance-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .maintenance-form, .maintenance-kpis, .maintenance-filters { grid-template-columns: 1fr; } .maintenance-wide { grid-column: auto; } }

/* Navegação lateral global */
body.has-sidebar { padding-left: 260px; transition: padding-left .22s ease; }
body.has-sidebar.sidebar-collapsed { padding-left: 78px; }
.side-navigation.topbar { position: fixed; z-index: 500; inset: 0 auto 0 0; width: 260px; min-height: 100vh; padding: 18px 14px; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 18px; color: #fff; background: linear-gradient(180deg, #003e35, #005548); border: 0; border-right: 3px solid var(--gold); box-shadow: 5px 0 22px rgba(0,54,45,.18); transition: width .22s ease; }
.sidebar-collapsed .side-navigation.topbar { width: 78px; padding-inline: 10px; }
.sidebar-header { position: relative; display: flex; align-items: center; min-height: 57px; }
.side-navigation .brand { min-width: 0; overflow: hidden; }
.side-navigation .brand-logo { flex: 0 0 46px; width: 46px; height: 46px; }
.side-navigation .brand > div { min-width: 145px; }
.sidebar-brand { width: 100%; padding: 0; border: 0; color: inherit; background: transparent; cursor: pointer; text-align: left; }
.sidebar-brand:hover .brand-logo { transform: scale(1.04); }
.sidebar-brand .brand-logo { transition: transform .16s ease; }
.sidebar-brand span { min-width: 145px; display: grid; line-height: 1.1; }
.side-navigation .sidebar-brand > span { margin: 0; color: #fff; font-size: inherit; }
.sidebar-brand small { margin-top: 4px; color: #d8eee8; font-size:14px; }
.side-navigation .topbar-actions { flex: 1; min-height: 0; display: flex; flex-direction: column; align-items: stretch; gap: 12px; }
.side-navigation .module-nav { display: grid; align-content: start; gap: 5px; width: 100%; overflow-y: auto; }
.side-navigation .header-link,.side-navigation button.header-button,.side-navigation .upload-button,.side-navigation .environment-badge { width: 100%; min-height: 45px; padding: 8px 10px; display: flex; align-items: center; gap: 11px; border: 0; border-radius: 9px; color: #d8eee8; background: transparent; font-size:14px; font-weight: 700; text-align: left; white-space: nowrap; }
.side-navigation .header-link:hover,.side-navigation .header-link.active,.side-navigation button.header-button:hover,.side-navigation .upload-button:hover { color: #fff; background: rgba(255,255,255,.12); }
.side-navigation .header-link.active { box-shadow: inset 3px 0 0 var(--gold); }
.nav-icon { flex: 0 0 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: #fff; background: rgba(255,255,255,.1); font-size:12px; font-weight: 800; letter-spacing: .03em; }
.side-navigation .active .nav-icon { color: var(--ink); background: var(--gold); }
.nav-label,.sidebar-brand > span { opacity: 1; transition: opacity .15s ease; }
.sidebar-collapsed .nav-label,.sidebar-collapsed .sidebar-brand > span { width: 0; min-width: 0; overflow: hidden; opacity: 0; }
.sidebar-collapsed .side-navigation .header-link,.sidebar-collapsed .side-navigation button.header-button,.sidebar-collapsed .side-navigation .upload-button,.sidebar-collapsed .side-navigation .environment-badge { justify-content: center; padding-inline: 0; }
.sidebar-footer { display: grid; gap: 5px; margin-top: auto; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.14); }
.side-navigation .environment-badge { color: #fff; background: rgba(255,255,255,.08); }
body.has-sidebar .page-shell { width: min(1440px, calc(100% - 7vw)); }
body.has-sidebar .app-footer { padding-left: 2vw; padding-right: 2vw; }

.connected-fleet-empty { grid-column: 1/-1; margin: 0; padding: 20px; border: 1px dashed var(--line); border-radius: 12px; color: var(--muted); text-align: center; }

.management-filters { grid-template-columns: 1fr 1fr auto auto; }
.management-loading { margin-top: 14px; padding: 16px 20px; border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 14px; background: rgba(255,255,255,.97); box-shadow: var(--shadow); }
.management-loading[hidden] { display: none; }
.management-loading-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--navy); }
#management-loading-percent { flex-shrink: 0; font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; }
.management-loading progress { display: block; width: 100%; height: 12px; margin: 10px 0; overflow: hidden; appearance: none; border: 0; border-radius: 999px; background: #e1eeea; accent-color: var(--green); }
.management-loading progress::-webkit-progress-bar { background: #e1eeea; border-radius: 999px; }
.management-loading progress::-webkit-progress-value { background: var(--green); border-radius: 999px; }
.management-loading progress::-moz-progress-bar { background: var(--green); border-radius: 999px; }
.management-loading p { margin: 0; font-size:14px; overflow-wrap: anywhere; }
.management-loading[data-state="error"] { border-left-color: #b45309; }
.management-loading[data-state="error"] .management-loading-heading { color: #92400e; }
#management-loading-retry { margin-top: 12px; }
.management-loaded-period { margin: 14px 2px 0; font-size:14px; }
.management-connected-panel,.management-map-panel { margin-top: 18px; }
.management-connected-panel { border-top: 3px solid var(--green); }
.management-detail { margin-top: 18px; }
.management-detail-toolbar { display: flex; align-items: center; gap: 22px; padding: 20px 24px; border-radius: 16px; background: rgba(255,255,255,.96); box-shadow: var(--shadow); }
.management-detail-toolbar h2 { margin: 3px 0; color: var(--navy); font-size: 28px; }
.management-detail .management-filters { margin-top: 14px; }
.management-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(180px,1fr)); gap: 14px; margin-top: 18px; }
.management-summary-card { min-height: 138px; padding: 20px; border-top: 3px solid var(--green); border-radius: 15px; background: rgba(255,255,255,.97); box-shadow: var(--shadow); }
.management-summary-card span { display: block; color: var(--muted); font-size:13px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.management-summary-card strong { display: block; margin: 12px 0 7px; color: var(--navy); font-size: 30px; }
.management-summary-card small { color: var(--muted); }
.management-daily-panel { margin-top: 18px; border-top: 3px solid var(--gold); }
.management-daily-table { min-width: 1050px; }
.management-day-toggle { min-width: 96px; white-space: nowrap; }
.management-day-detail-row>td { padding: 0; background: #edf6f2; }
.management-day-detail { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; padding: 16px; border-left: 4px solid var(--green); }
.management-shift-detail { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.management-shift-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; color: var(--navy); }
.management-shift-heading span { padding: 5px 9px; border-radius: 999px; color: #fff; background: var(--green); font-size:13px; font-weight: 800; }
.management-shift-table { min-width: 480px; }
.management-map-panel { border-top: 3px solid var(--blue); }
.management-map-actions { display: flex; align-items: end; gap: 10px; }
.management-map-actions label { display: grid; gap: 3px; color: var(--muted); font-size:12px; font-weight: 800; text-transform: uppercase; }
.management-map-actions select { min-width: 110px; padding: 7px 28px 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.management-fleet-cards { display: grid; grid-template-columns: repeat(auto-fill,minmax(290px,1fr)); gap: 16px; }
.management-vehicle-card { display: flex; min-height: 122px; align-items: center; gap: 18px; padding: 18px 20px; border: 1px solid #b8ddce; border-radius: 15px; color: inherit; background: #f0faf6; text-align: left; cursor: pointer; }
.management-vehicle-card:hover,.management-vehicle-card.selected { border-color: var(--green); box-shadow: 0 0 0 3px rgba(22,131,95,.15); }
.management-vehicle-card.status-off { border-color: #e3a6a6; background: #fff2f2; }
.management-vehicle-card.status-unknown { border-color: #eadba6; background: #fffaf0; }
.management-vehicle-card:disabled { cursor: default; opacity: .78; }
.management-equipment-image { width: 116px; height: 97px; flex: 0 0 116px; border-radius: 13px; background-color: #dff3e9; background-image: url('/assets/fleet-equipment-sprites.png'); background-repeat: no-repeat; background-size: 500% 200%; background-position: calc(var(--sprite-column) * 25%) calc(var(--sprite-row) * 100%); }
.management-vehicle-details { display: grid; min-width: 0; gap: 5px; }
.management-vehicle-card strong { color: var(--navy); font-size: 20px; line-height: 1.1; }
.management-vehicle-card b { width: max-content; padding: 4px 9px; border-radius: 999px; color: #fff; background: var(--green); font-size:14px; line-height: 1; }
.management-vehicle-card.status-off b { color: #fff; background: #b4232c; }
.management-vehicle-card.status-unknown b { color: #5f4100; background: #f3c957; }
.management-reading { display: grid; gap: 1px; margin-top: 3px; }
.management-reading em { color: var(--muted); font-size:12px; font-style: normal; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.management-reading time { color: #334a43; font-size:14px; font-weight: 650; line-height: 1.25; }
.management-status-summary { display: flex; gap: 10px; }
.management-status-summary div { min-width: 88px; padding: 10px 14px; border-radius: 11px; background: rgba(255,255,255,.85); text-align: center; }
.management-status-summary span { display: block; color: var(--muted); font-size:12px; font-weight: 800; text-transform: uppercase; }
.management-status-summary strong { color: var(--navy); font-size: 22px; }
.management-status-summary .on strong { color: var(--green); }
.management-status-summary .off strong { color: #65717a; }
.fleet-live-map { position: relative; min-height: 500px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #dce8e3; }
.fleet-map-tiles,.fleet-map-track { position: absolute; inset: 0; width: 100%; height: 100%; }
.fleet-map-tiles img { position: absolute; width: 256px; height: 256px; user-select: none; }
.fleet-map-track { z-index: 2; pointer-events: none; }
.fleet-map-track polyline { fill: none; stroke: #e8752e; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 1px 1px #fff); }
.fleet-map-marker { position: absolute; z-index: 3; width: 10px; height: 10px; transform: translate(-50%,-50%); border: 2px solid #fff; border-radius: 50%; background: #e8752e; box-shadow: 0 1px 4px rgba(0,0,0,.35); }
.fleet-map-marker.current { width: 18px; height: 18px; background: var(--green); }
.fleet-map-attribution { position: absolute; right: 5px; bottom: 4px; z-index: 4; padding: 2px 5px; color: #31423d; background: rgba(255,255,255,.85); font-size:12px; }
.fleet-map-empty { display: grid; min-height: 500px; place-items: center; margin: 0; color: var(--muted); text-align: center; }

@media(max-width:1000px){.management-summary-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}}
@media(max-width:700px){
  body.has-sidebar:has(.fleet-management-page){padding-left:62px}
  body.has-sidebar:has(.fleet-management-page) .side-navigation.topbar{width:62px;padding-inline:8px}
  body.has-sidebar:has(.fleet-management-page) .page-shell{width:calc(100% - 14px);margin:7px}
  .fleet-management-page{gap:12px}
  .fleet-management-page .hero{align-items:flex-start;gap:14px;padding:18px;flex-direction:column}
  .fleet-management-page .hero h1{font-size:25px}
  .fleet-management-page .hero .muted{font-size:14px;line-height:1.45}
  .management-status-summary{display:grid;width:100%;grid-template-columns:repeat(3,1fr);gap:6px}
  .management-status-summary div{min-width:0;padding:9px 5px}
  .management-status-summary strong{font-size:20px}
  .management-connected-panel{margin-top:0;padding:14px}
  .management-connected-panel .panel-heading h2{font-size:19px}
  .management-filters{grid-template-columns:1fr 1fr;padding:12px;gap:10px}
  .management-filters button{min-height:44px;width:100%}
  .management-fleet-cards{grid-template-columns:1fr;gap:10px}
  .management-vehicle-card{min-height:96px;gap:12px;padding:12px;border-radius:12px;touch-action:manipulation}
  .management-equipment-image{width:92px;height:77px;flex-basis:92px}
  .management-vehicle-card strong{font-size:17px}
  .management-reading time{font-size:13px}
  .management-detail{margin-top:10px}
  .management-detail-toolbar{align-items:flex-start;gap:12px;padding:14px;flex-direction:column}
  .management-detail-toolbar .secondary-button{min-height:42px;width:100%}
  .management-detail-toolbar h2{font-size:22px}
  .management-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
  .management-summary-card{min-height:104px;padding:13px;border-radius:12px}
  .management-summary-card strong{margin:8px 0 4px;font-size:23px}
  .management-summary-card small{font-size:12px;line-height:1.25}
  .management-mobile-primary{border-top-color:var(--orange);background:#fffaf5}
  .management-daily-panel,.management-map-panel{margin-top:10px;padding:13px}
  .management-daily-panel .table-wrap,.management-shift-detail .table-wrap{overflow:visible}
  .management-daily-table,.management-shift-table{min-width:0;width:100%}
  .management-daily-table thead,.management-shift-table thead{display:none}
  .management-daily-table tbody,.management-daily-table .management-day-row,.management-shift-table tbody,.management-shift-table tr{display:grid;width:100%}
  .management-daily-table .management-day-row,.management-shift-table tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-bottom:10px;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:#fff}
  .management-daily-table td,.management-shift-table td{display:grid;gap:3px;padding:9px 10px;border:0;border-bottom:1px solid #edf0f2;font-size:14px}
  .management-daily-table td::before,.management-shift-table td::before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
  .management-day-action{grid-column:1/-1}
  .management-day-action::before{display:none}
  .management-day-toggle{min-height:42px;width:100%}
  .management-day-detail-row{display:block!important;margin:0 0 14px!important;border:0!important;background:transparent!important}
  .management-day-detail-row>td{display:block;padding:0!important}
  .management-day-detail-row>td::before{display:none}
  .management-day-detail{grid-template-columns:1fr;gap:10px;padding:10px 0 10px 8px}
  .management-shift-detail{padding:11px}
  .management-shift-table td[data-label="Situação"]{grid-column:span 2}
  .management-shift-table td[data-label="Aprovação VALE"]{grid-column:1/-1}
  .management-approval{align-items:flex-start;gap:7px;flex-direction:column}
  .management-approval .decision-actions{width:100%}
  .management-approval .decision-button{min-height:40px;flex:1}
  .management-map-panel .panel-heading{align-items:flex-start;gap:12px;flex-direction:column}
  .management-map-actions{align-items:stretch;width:100%;flex-direction:column}
  .management-map-actions select,.management-map-actions button{min-height:42px;width:100%}
  .fleet-live-map,.fleet-map-empty{min-height:300px}
}

/* PAD diário */
.pad-filters { grid-template-columns: 1.2fr 1fr 1fr auto; }
.pad-kpis { grid-template-columns: repeat(4, minmax(190px,1fr)); }
.pad-timeline-panel { margin: 18px 0; border-top: 3px solid var(--green); }
.pad-axis { display: flex; justify-content: space-between; margin: 0 3px 7px; color: var(--muted); font-size:12px; font-weight: 700; }
.pad-timeline { display: flex; min-height: 76px; overflow: hidden; border-radius: 11px; background: #e5ece9; }
.pad-segment { min-width: 6px; padding: 10px 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; overflow: hidden; color: #fff; text-align: center; }
.pad-segment span { max-width: 100%; overflow: hidden; font-size:12px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.pad-segment small { font-size:12px; white-space: nowrap; }
.pad-segment.operation,.pad-status.operation,.pad-legend i.operation { background: #16835f; }
.pad-segment.stop,.pad-status.stop,.pad-legend i.stop { background: var(--orange); }
.pad-segment.lunch,.pad-status.lunch,.pad-legend i.lunch { color: #463300; background: var(--gold); }
.pad-segment.maintenance,.pad-status.maintenance,.pad-legend i.maintenance { background: var(--red); }
.pad-segment.unknown,.pad-status.unknown,.pad-legend i.unknown { background: #617583; }
.pad-legend { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 13px; color: var(--muted); font-size:12px; font-weight: 700; }
.pad-legend span { display: inline-flex; align-items: center; gap: 6px; }
.pad-legend i { width: 9px; height: 9px; border-radius: 50%; }
.pad-closing-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 18px; margin-bottom: 18px; }
.pad-closing { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); align-items: center; padding: 0; overflow: hidden; }
.pad-closing > div { min-height: 105px; padding: 20px; display: grid; align-content: center; border-right: 1px solid var(--line); }
.pad-closing > div:last-child { border-right: 0; }
.pad-closing span { color: var(--muted); font-size:12px; text-transform: uppercase; }
.pad-closing strong { margin-top: 6px; color: var(--navy); font-size: 18px; }
.pad-table-panel { border-top: 3px solid var(--navy); }
.pad-table { min-width: 760px; }
.pad-analysis-table { min-width: 1050px; }
.pad-analysis-table th:last-child,.pad-analysis-table td:last-child { width: 46%; }
.pad-analysis { display: grid; gap: 8px; }
.pad-allocation-list { display: grid; gap: 8px; }
.pad-allocation-row { display: grid; grid-template-columns: minmax(165px,.8fr) minmax(165px,.8fr) minmax(180px,1fr) 38px minmax(200px,1.2fr) 36px; align-items: center; gap: 8px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafb; }
.pad-allocation-row input,.pad-allocation-row select,.pad-allocation-row textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 7px 9px; }
.pad-allocation-row textarea { min-height: 44px; resize: vertical; }
.pad-motive-code { display:inline-grid; place-items:center; min-height:38px; border-radius:8px; background:var(--navy); color:#fff; font-size:13px; font-weight:800; letter-spacing:.05em; }
.approval-motives { display:grid; gap:5px; }
.approval-motive { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.approval-motive .pad-motive-code { min-width:32px; min-height:26px; padding:0 5px; }
.pad-analysis-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.pad-allocation-add { border-radius: 50%; font-size: 20px; color: var(--green); }
.pad-analysis select,.pad-analysis textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.pad-analysis select { min-height: 38px; padding: 7px 9px; }
.pad-analysis textarea { min-height: 58px; padding: 9px 10px; resize: vertical; }
.pad-analysis-save { min-height: 38px; white-space: nowrap; }
.pad-saved-panel { margin-top: 20px; }
.pad-balance-panel { margin: 20px 0; border-top: 3px solid #d99c16; }
.pad-balance-totals { max-width: 720px; margin-bottom: 20px; }
.pad-balance-list { display: grid; gap: 18px; }
.pad-balance-entry { padding: 18px; border: 1px solid #ddc78d; border-radius: 12px; background: #fffdf5; }
.pad-balance-entry header { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; font-weight: 800; }
.pad-balance-entry header span { color: #855908; }
.pad-residual-rows { display: grid; gap: 12px; margin: 16px 0 10px; }
.pad-residual-row { display: grid; grid-template-columns: minmax(190px,1fr) minmax(190px,1fr) minmax(180px,1fr) minmax(180px,1fr) 36px; align-items: end; gap: 10px; }
.pad-residual-row label { display: grid; gap: 6px; font-size: 13px; font-weight: 700; }
.pad-residual-row input,.pad-residual-row select,.pad-residual-row textarea { width: 100%; padding: 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font: inherit; }
.pad-residual-row textarea { min-height: 42px; resize: vertical; }
.pad-residual-progress { margin: 10px 0; }
@media(max-width:1100px){.pad-residual-row{grid-template-columns:1fr 1fr}.pad-residual-row button{justify-self:end}.pad-balance-entry{padding:12px}}
@media(max-width:600px){.pad-residual-row{grid-template-columns:1fr}.pad-balance-entry header{display:grid}}
.pad-saved-list { display: grid; gap: 12px; }
.pad-saved-record { padding: 16px; border: 1px solid var(--line); border-radius: 12px; overflow-wrap: anywhere; }
.pad-saved-record.is-cancelled { background: #f5f7f6; }
.pad-saved-record ul { padding-left: 20px; }
.pad-saved-record li p { margin: 4px 0; }
.pad-saved-heading { display: flex; gap: 12px; justify-content: space-between; align-items: center; flex-wrap: wrap; }
.pad-saved-warning { padding: 12px; background: #fff4d0; border-left: 4px solid #c18400; border-radius: 6px; }
.pad-cancel-button { color: #9c2727; border-color: #c98787; }
.pad-cancel-dialog { width: min(540px, calc(100% - 32px)); max-height: 90vh; overflow: auto; border: 1px solid var(--line); border-radius: 16px; padding: 24px; color: var(--ink); }
.pad-cancel-dialog::backdrop { background: #102c2699; }
.pad-cancel-dialog .pad-analysis-actions { flex-wrap: wrap; }
.pad-cancel-dialog textarea { display: block; width: 100%; margin: 8px 0 16px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; resize: vertical; }
#pad-cancel-error { color: #9c2727; }
.pad-status { display: inline-flex; padding: 5px 8px; border-radius: 999px; color: #fff; font-size:12px; font-weight: 800; }
.pad-empty { margin: 20px 0; padding: 32px; border: 1px solid var(--line); border-radius: 14px; color: var(--muted); background: rgba(255,255,255,.95); text-align: center; }

@media(max-width:1100px){.pad-kpis{grid-template-columns:repeat(2,1fr)}.pad-closing-grid{grid-template-columns:1fr}.pad-closing{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){body.has-sidebar,body.has-sidebar.sidebar-collapsed{padding-left:78px}.side-navigation.topbar{width:260px}.sidebar-collapsed .side-navigation.topbar{width:78px;padding-inline:10px}.sidebar-collapsed .side-navigation .nav-label,.sidebar-collapsed .sidebar-brand>span{width:0;min-width:0;overflow:hidden;opacity:0}.sidebar-collapsed .side-navigation .header-link,.sidebar-collapsed .side-navigation button.header-button,.sidebar-collapsed .side-navigation .upload-button,.sidebar-collapsed .side-navigation .environment-badge{justify-content:center;padding-inline:0}.pad-filters,.pad-kpis,.pad-closing{grid-template-columns:1fr}.pad-analysis,.pad-allocation-row{grid-template-columns:1fr}.pad-closing>div{border-right:0;border-bottom:1px solid var(--line)}body.has-sidebar .page-shell{width:92%}}

/* Caixa de pendências do PAD */
.inbox-page { display:grid; gap:18px; }
.inbox-page [hidden] { display:none !important; }
.inbox-repositories { display:flex; flex-wrap:wrap; gap:14px; }
.inbox-repository { flex:1 1 320px; display:flex; align-items:center; gap:14px; padding:20px; border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; box-shadow:var(--shadow); }
.inbox-repository>span:nth-child(2) { display:grid; gap:5px; }
.inbox-repository strong { font-size:17px; }
.inbox-repository small { color:var(--muted); font-size:13px; }
.inbox-repository:hover { border-color:var(--green); }
.inbox-repository.is-active { border-color:var(--green); background:#e9f5ef; box-shadow:inset 0 0 0 1px var(--green),var(--shadow); }
.inbox-repository:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.inbox-folder-icon { flex-shrink:0; display:grid; place-items:center; width:42px; height:42px; border-radius:10px; background:var(--blue-soft); color:var(--green); font-size:25px; }
.inbox-folder-count { display:grid; place-items:center; min-width:42px; min-height:36px; margin-left:auto; padding:5px 10px; border-radius:10px; background:#f0f4f2; font-size:22px; }
.inbox-repository.is-active .inbox-folder-count { background:var(--green); color:#fff; }
.inbox-repository-exceptions .inbox-folder-icon { background:#fff4d5; color:#93630a; }
.inbox-exceptions-notice { margin:0; padding:14px 16px; border:1px solid #e9d39a; border-radius:10px; background:#fff8e6; color:#75520e; font-size:14px; }
.inbox-period-selection { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; }
.inbox-period-description { margin:0; font-size:17px; font-weight:700; }
.inbox-period-selection label { display:grid; gap:7px; min-width:300px; color:var(--muted); font-size:13px; font-weight:700; }
.inbox-period-selection select { width:100%; min-height:42px; padding:8px 12px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink); }
.inbox-review-notice { padding:13px 14px; background:#fff8e6; border-bottom:1px solid #ead69e; color:#75520e; font-size:14px; }
.inbox-review-notice p { margin:6px 0 0; }
.inbox-previous-approval { font-size:13px; }
.inbox-item.requires-review { border-color:#e5ca88; }
.status-badge.status-review { background:#fff0c3; color:#75520e; }
#inbox-review-summary { font-size:12px; }
.inbox-load-status { margin:0; font-size:14px; }
.inbox-load-status.is-error { color:#9f341e; padding:12px 14px; border:1px solid #edc4b7; border-radius:10px; background:#fff5ef; }
.inbox-filter-help { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.inbox-filter-help p { margin:0; font-size:14px; }
.inbox-filter-help button { flex-shrink:0; }
.inbox-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.inbox-summary-card { display:flex; align-items:center; gap:14px; padding:18px; border:1px solid var(--line); border-left:4px solid var(--orange); border-radius:14px; background:#fff; box-shadow:var(--shadow); }
.inbox-summary-card:last-child { border-left-color:var(--green); }
.inbox-summary-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:11px; background:#fff1e8; color:var(--orange); font-size:14px; font-weight:900; }
.inbox-summary-icon.vale { background:#e3f4ef; color:var(--green); }
.inbox-summary-card div { display:grid; gap:2px; }
.inbox-summary-card small { color:var(--muted); }
.inbox-summary-card strong { color:var(--navy); font-size:28px; }
.inbox-filters { grid-template-columns:minmax(220px,1.2fr) minmax(160px,.7fr) minmax(160px,.7fr); }
.inbox-section { border-top:3px solid var(--navy); }
.inbox-list { display:grid; gap:12px; margin-top:14px; }
.inbox-item { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:#f9fbfc; }
.inbox-item>header,.inbox-item>footer { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 14px; }
.inbox-item>header { border-bottom:1px solid var(--line); background:#fff; }
.inbox-item>header>div { display:grid; gap:3px; }
.inbox-item>header span,.inbox-reason small { color:var(--muted); font-size:13px; }
.inbox-duration { white-space:nowrap; font-weight:700; }
.inbox-returned { color:#b45309; font-size:12px; text-transform:uppercase; }
.inbox-item>footer { border-top:1px solid var(--line); }
.inbox-item-actions { display:flex; align-items:center; gap:8px; }
.inbox-allocation-list { display:grid; gap:8px; padding:12px; }
.inbox-allocation-row { display:grid; grid-template-columns:minmax(160px,.8fr) minmax(160px,.8fr) minmax(190px,1fr) 38px minmax(190px,1fr) 36px; align-items:center; gap:8px; }
.inbox-allocation-row input,.inbox-allocation-row select,.inbox-allocation-row textarea { width:100%; min-height:40px; border:1px solid var(--line); border-radius:8px; background:#fff; padding:7px 9px; }
.inbox-allocation-row textarea { resize:vertical; }
.inbox-reasons { display:grid; gap:9px; padding:14px; }
.inbox-reason { display:flex; align-items:center; gap:10px; }
.inbox-reason .pad-motive-code { min-width:36px; min-height:32px; }
.inbox-reason>span { display:grid; gap:3px; }
.inbox-empty { margin:0; padding:28px; border:1px dashed var(--line); border-radius:12px; color:var(--muted); text-align:center; }
.text-link { color:var(--green); font-size:14px; font-weight:800; text-decoration:none; }
.text-link:hover { text-decoration:underline; }
/* Jornada de operação dos veículos */
.vehicle-page .supplier-form { grid-template-columns:repeat(4,minmax(0,1fr)); }
.vehicle-section-nav { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; border-bottom:1px solid var(--line); }
.vehicle-section-nav a { display:block; padding:12px 18px; text-decoration:none; color:var(--muted); font-size:14px; font-weight:700; border-bottom:3px solid transparent; }
.vehicle-section-nav a[aria-current="page"] { color:var(--green); border-bottom-color:var(--green); }
.vehicle-section-nav a:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.hourmeter-filters { position:relative; z-index:100; display:flex; flex-wrap:wrap; align-items:end; gap:16px; margin-bottom:18px; }
.hourmeter-filters label { display:grid; gap:7px; color:var(--muted); font-size:14px; font-weight:700; }
.hourmeter-filters label:first-child { flex:1; min-width:220px; }
.hourmeter-filters input, .hourmeter-filters select { min-height:42px; padding:9px 12px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font:inherit; }
.hourmeter-period-actions { display:flex; flex-wrap:wrap; gap:8px; }
#hourmeter-period-label { flex-basis:100%; margin:0; font-size:14px; }
.hourmeter-message { padding:13px 16px; margin:0 0 18px; border-radius:8px; color:var(--green); background:#e6f3ef; }
.hourmeter-message.is-error { background:#fff0eb; color:#943917; }
.hourmeter-summary { display:flex; align-items:center; flex-wrap:wrap; gap:20px 36px; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.hourmeter-summary div { display:grid; gap:7px; }
.hourmeter-summary span { color:var(--muted); font-size:14px; }
.hourmeter-summary strong { color:var(--navy); font-size:23px; font-variant-numeric:tabular-nums; }
.hourmeter-summary p { margin-left:auto; max-width:320px; color:var(--muted); font-size:14px; }
.hourmeter-legend, .hourmeter-footnote { color:var(--muted); font-size:14px; line-height:1.6; margin:16px 0; }
.hourmeter-table-wrap { max-height:68vh; overflow:auto; border:1px solid var(--line); border-radius:9px; }
.hourmeter-table { width:100%; min-width:1130px; border-collapse:separate; border-spacing:0; font-variant-numeric:tabular-nums; }
.hourmeter-table caption { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.hourmeter-table th, .hourmeter-table td { padding:10px; border-bottom:1px solid var(--line); vertical-align:top; }
.hourmeter-table thead th { position:sticky; top:0; z-index:3; height:38px; color:#fff; background:var(--navy); font-size:13px; text-align:center; border-right:1px solid #ffffff25; }
.hourmeter-table thead tr:nth-child(2) th { top:38px; background:#214959; }
.hourmeter-table tbody th { position:sticky; left:0; z-index:2; width:125px; min-width:125px; background:#f5f8f7; color:var(--ink); font-size:14px; text-align:left; }
.hourmeter-table tbody small { display:block; margin-top:5px; color:var(--muted); font-size:12px; line-height:1.4; font-weight:400; }
.hourmeter-reading { width:120px; }
.hourmeter-table input { width:100%; min-width:95px; padding:10px 8px; min-height:40px; border:1px solid #c6d2cc; border-radius:6px; background:#fffdf4; color:var(--ink); font:inherit; font-size:14px; text-align:right; }
.hourmeter-table input:disabled { opacity:1; background:#eef5f2; border-color:transparent; color:#315449; }
.hourmeter-table input:focus-visible { outline:2px solid var(--green); outline-offset:1px; }
.hourmeter-table input[aria-invalid="true"] { border-color:#b43823; background:#fff0eb; }
.hourmeter-result { min-width:175px; max-width:230px; font-size:14px; }
.hourmeter-result .hourmeter-note { min-height:32px; margin-top:8px; font-size:13px; text-align:left; background:#fff; }
.hourmeter-result .hourmeter-origin { font-weight:700; color:var(--green); }
.hourmeter-result .hourmeter-origin.is-pending { color:#8c641a; }
.hourmeter-daily-total { min-width:105px; text-align:right; font-weight:700; color:var(--navy); }
.hourmeter-use-can { border:0; padding:5px 0; background:transparent; color:var(--green); text-decoration:underline; font-size:13px; cursor:pointer; }
.hourmeter-page button:disabled { opacity:.55; cursor:not-allowed; }
@media(max-width:700px) { .hourmeter-filters { align-items:stretch; } .hourmeter-filters label { flex-basis:100%; } .hourmeter-page .panel-heading { align-items:stretch; flex-direction:column; gap:14px; } .hourmeter-summary { gap:18px; } .hourmeter-summary p { margin:0; flex-basis:100%; } }
.vehicle-page .supplier-form > .eyebrow, .vehicle-page .supplier-form-actions { grid-column:1/-1; }
.vehicle-page .vehicle-operation-fields { display:grid; grid-template-columns:minmax(170px,1fr) minmax(210px,2fr) minmax(150px,1fr); grid-column:1/-1; gap:14px; min-width:0; margin:8px 0 0; padding:18px; border:1px solid var(--line); border-radius:12px; background:#f2f8f5; }
.vehicle-page .vehicle-operation-fields legend { padding:0 8px; color:var(--green); font-size:14px; font-weight:800; }
.vehicle-page .vehicle-operation-fields p { grid-column:1/-1; font-size:14px; line-height:1.5; }
.vehicle-page .supplier-form input:focus-visible, .vehicle-page .supplier-form select:focus-visible, .vehicle-page .supplier-form textarea:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.vehicle-page .vehicle-search-label { display:grid; gap:6px; width:min(380px,100%); color:var(--muted); font-size:13px; font-weight:700; }
.vehicle-page .vehicle-search-label input { width:100%; max-width:none; min-height:40px; font-size:14px; }
.vehicle-page .vehicle-schedule-filters { display:flex; flex-wrap:wrap; gap:9px; }
.vehicle-page .vehicle-schedule-filters button { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:44px; padding:9px 14px; border:1px solid var(--line); border-radius:10px; color:var(--ink); background:#fff; font-size:14px; font-weight:700; cursor:pointer; }
.vehicle-page .vehicle-schedule-filters button:hover { border-color:var(--green); }
.vehicle-page .vehicle-schedule-filters button[aria-pressed="true"] { color:#fff; border-color:var(--navy); background:var(--navy); }
.vehicle-page .vehicle-schedule-filters button:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.vehicle-page .vehicle-schedule-filters [data-schedule-count] { min-width:26px; padding:3px 7px; border-radius:7px; color:var(--navy); background:var(--blue-soft); text-align:center; font-variant-numeric:tabular-nums; }
.vehicle-page .vehicle-results-count { margin:14px 0 10px; font-size:14px; }
.vehicle-page .vehicle-table { min-width:1200px; }
.vehicle-page .vehicle-table .vehicle-schedule-group th { position:static; padding:15px 12px; color:var(--navy); background:#e6f3ef; border-top:2px solid #b9d7cc; font-size:14px; letter-spacing:normal; text-transform:none; }
.vehicle-page .vehicle-schedule-group[data-schedule="HOURS_12"] th { background:#eef4fb; border-top-color:#c0d3ea; }
.vehicle-page .vehicle-schedule-group[data-schedule="UNCLASSIFIED"] th { color:#694e17; background:#fff7e4; border-top-color:#ead7a6; }
.vehicle-page .vehicle-schedule-group th span { margin-left:16px; font-size:13px; font-weight:400; }
.vehicle-page .vehicle-table .vehicle-operation-cell { min-width:140px; max-width:300px; white-space:normal; overflow-wrap:anywhere; line-height:1.5; }
.vehicle-page .vehicle-table .supplier-actions { display:table-cell; white-space:nowrap; }
.vehicle-page .vehicle-table .supplier-actions button + button { margin-left:7px; }
@media(max-width:980px) { .vehicle-page .supplier-form { grid-template-columns:repeat(2,minmax(0,1fr)); } .vehicle-page .vehicle-operation-fields { grid-template-columns:1fr 1fr; } .vehicle-page .vehicle-operation-fields label:nth-of-type(2) { grid-column:1/-1; } }
@media(max-width:620px) { .vehicle-page .supplier-form, .vehicle-page .vehicle-operation-fields { grid-template-columns:1fr; } .vehicle-page .panel-heading { flex-direction:column; } .vehicle-page .vehicle-search-label { width:100%; } .vehicle-page .vehicle-schedule-filters { display:grid; grid-template-columns:1fr; } .vehicle-page .supplier-form-actions { flex-wrap:wrap; } .vehicle-page .vehicle-operation-fields { padding:12px; } }
@media(max-width:1100px){.inbox-allocation-row{grid-template-columns:repeat(2,minmax(0,1fr))}.inbox-allocation-row .pad-motive-code,.inbox-allocation-row .icon-button{justify-self:start;min-width:38px}}
@media(max-width:700px){.inbox-summary,.inbox-filters,.inbox-allocation-row{grid-template-columns:1fr}.inbox-item>header,.inbox-item>footer,.inbox-filter-help{align-items:flex-start;flex-direction:column}.inbox-item-actions{width:100%;justify-content:flex-end}.inbox-repository{flex-basis:100%;padding:16px}.inbox-period-selection label{min-width:0;width:100%}}

/* Shared reading layout: wider desktop canvas, visible native scrollbars. */
html { overflow-y:scroll; scrollbar-gutter:stable; scrollbar-width:auto; scrollbar-color:#397b6c #e1ebe6; }
html::-webkit-scrollbar { display:block; width:16px; height:16px; }
html::-webkit-scrollbar-track { background:#e1ebe6; }
html::-webkit-scrollbar-thumb { background:#397b6c; border:3px solid #e1ebe6; border-radius:8px; }
body.has-sidebar .page-shell { width:calc(100% - 48px)!important; max-width:var(--content-max-width)!important; min-width:0; }
.page-shell .panel { min-width:0; }
.page-shell :is(input,select,textarea) { font-size:14px; }
.page-shell :is(.table-wrap,.bar-chart,.comparison-chart) { scrollbar-width:auto; scrollbar-color:#397b6c #e1ebe6; }
.page-shell :is(.table-wrap,.bar-chart,.comparison-chart)::-webkit-scrollbar { display:block; width:14px; height:14px; }
.page-shell :is(.table-wrap,.bar-chart,.comparison-chart)::-webkit-scrollbar-track { background:#e1ebe6; }
.page-shell :is(.table-wrap,.bar-chart,.comparison-chart)::-webkit-scrollbar-thumb { background:#397b6c; border:3px solid #e1ebe6; border-radius:8px; }
.side-navigation .module-nav { overflow-x:hidden; }
@media(max-width:700px) {
  body.has-sidebar .page-shell { width:calc(100% - 24px)!important; padding-top:22px; }
  .page-shell :is(input,select,textarea) { font-size:16px; }
}

.pad-operation-summary { margin-bottom: 24px; }
.pad-operation-labels { display: flex; justify-content: space-between; gap: 12px; margin: 12px 0 8px; flex-wrap: wrap; }
.pad-operation-labels strong { color: #128361; }
.pad-operation-track { height: 24px; background: #e7eeec; border-radius: 8px; overflow: hidden; }
.pad-operation-track > div { height: 100%; background: #128361; }
.pad-operation-summary .muted { margin: 8px 0 0; font-size: 12px; }
.pad-readjust-fields { display: grid; gap: 12px; margin: 16px 0; }
.pad-readjust-fields label { display: grid; gap: 6px; }
.pad-readjust-fields input, .pad-readjust-fields select { width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
