/* Transportes Pfutz — baseado no layout Maxtec (mesma paleta e componentes). */
@font-face { font-family:'DM Sans'; font-weight:400; font-display:swap; src:url('/static/dmsans-400.ttf') format('truetype'); }
@font-face { font-family:'DM Sans'; font-weight:700; font-display:swap; src:url('/static/dmsans-700.ttf') format('truetype'); }
@font-face { font-family:'DM Sans'; font-weight:800; font-display:swap; src:url('/static/dmsans-800.ttf') format('truetype'); }

:root { color-scheme: light; }
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: #F2F4F7; color: #2F3338; padding: 20px 20px 40px; font-size: 13px; }

/* ---------- wordmark placeholder (slot do logo) ---------- */
.wordmark { display:inline-flex; align-items:baseline; gap:.36em; font-weight:800; line-height:1; }
.wordmark .wm-1 { color:#1F2330; letter-spacing:.04em; }
.wordmark .wm-2 { color:#0D86E6; letter-spacing:.01em; }
.wordmark-lg { font-size:34px; }
.wordmark-lg .wm-1 { font-size:.55em; }
.wordmark-hd { font-size:26px; }
.wordmark-hd .wm-1 { font-size:.55em; }

/* ---------- top-nav (Opção B) ---------- */
.topnav { display:flex; align-items:center; gap:16px; background:#fff; border-radius:12px;
  padding:8px 16px; box-shadow:0 1px 3px rgba(0,0,0,.06); margin-bottom:10px; flex-wrap:wrap; }
.brand-logo { height:38px; width:auto; flex-shrink:0; cursor:pointer; }
.topnav-tools { display:flex; align-items:center; gap:10px; flex-shrink:0; margin-left:auto; }
.avatar { margin-left:2px; }
.icon-btn { background:transparent; border:none; cursor:pointer; color:#6b7280; border-radius:7px; padding:5px 8px; font-size:15px; line-height:1; }
.icon-btn:hover { background:#f3f4f6; color:#1F2330; }
.icon-btn.refresh { font-size:17px; }
.pill-filial { display:inline-flex; align-items:center; gap:6px; background:#f3f4f6; border:1px solid #e5e7eb;
  border-radius:8px; padding:4px 8px; }
.pill-filial select { background:transparent; border:none; font:inherit; font-weight:700; color:#1F2330; outline:none; cursor:pointer; max-width:160px; }
.drawer-logo { height:32px; width:auto; align-self:flex-start; margin:2px 6px 12px; cursor:pointer;
  padding-bottom:12px; border-bottom:1px solid #f3f4f6; }

.substrip { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;
  padding:0 6px 14px; font-size:11px; }
.substrip .meta { color:#9ca3af; }
.substrip .meta strong { color:#1F2330; }
.substrip .who { color:#6b7280; }
.substrip .who a { color:#2B1F8D; cursor:pointer; text-decoration:none; font-weight:700; }
.substrip .who .who-link { color:#2B1F8D; cursor:pointer; font-weight:700; }
.substrip .who .who-link:hover { text-decoration:underline; }

/* ---------- menu hamburger + drawer ---------- */
.hamburger { background:none; border:none; font-size:22px; line-height:1; cursor:pointer; color:#1F2330;
  padding:4px 8px; border-radius:8px; flex-shrink:0; }
.hamburger:hover { background:#f3f4f6; }

.drawer { position:fixed; top:0; left:0; height:100vh; width:248px; background:#fff; z-index:60;
  box-shadow:2px 0 18px rgba(15,20,40,.14); transform:translateX(-100%); transition:transform .22s ease;
  padding:14px 10px; display:flex; flex-direction:column; gap:2px; overflow-y:auto; }
.drawer.open { transform:translateX(0); }
.drawer-head { display:flex; align-items:center; justify-content:space-between; padding:2px 6px 12px; margin-bottom:4px; border-bottom:1px solid #f3f4f6; }
.drawer-head img { height:30px; width:auto; }
.sec-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#9ca3af; padding:8px 12px 6px; }

.menu-item { display:flex; align-items:center; gap:11px; width:100%; padding:10px 12px; border:none; background:none;
  border-radius:9px; font:inherit; font-size:13.5px; font-weight:600; color:#4b5563; cursor:pointer; text-align:left; transition:background .12s,color .12s; }
.menu-item .ico { width:20px; text-align:center; font-size:15px; }
.menu-item:hover { background:#f3f4f6; color:#1F2330; }
.menu-item.active { background:#2B1F8D; color:#fff; }
.menu-item .soon { margin-left:auto; font-size:8px; font-weight:800; opacity:.6; border:1px solid currentColor; border-radius:5px; padding:1px 5px; text-transform:uppercase; }

.backdrop { position:fixed; inset:0; background:rgba(12,15,30,.45); z-index:55; opacity:0; pointer-events:none; transition:opacity .2s; }
.backdrop.show { opacity:1; pointer-events:auto; }

.content { min-width:0; }
.page-title { font-size:18px; font-weight:800; color:#2F3338; margin-bottom:14px; }

/* desktop: menu aberto empurra o conteúdo; sem backdrop */
body { transition:margin-left .22s ease; }
@media (min-width:900px) {
  body.nav-open { margin-left:248px; }
  body.nav-open .backdrop { opacity:0; pointer-events:none; }
}

/* ---------- avatar (sem azul) ---------- */
.avatar { width:38px; height:38px; border-radius:50%; background:#fff; color:#1F2330; border:1px solid #1F2330;
  display:inline-flex; align-items:center; justify-content:center; font-weight:800; font-size:15px;
  cursor:pointer; flex-shrink:0; overflow:hidden; }
.avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.avatar.preset { background:#fff; color:#1F2330; border:1px solid #1F2330; }  /* emoji fixo: branco + borda fina */
.avatar.photo  { background:none; border:none; }                              /* foto: só a imagem ajustada */
.avatar-lg { width:88px; height:88px; font-size:32px; }
.avatar-pick { display:flex; gap:10px; flex-wrap:wrap; }
.avatar-opt { width:52px; height:52px; border-radius:50%; overflow:hidden; cursor:pointer; border:3px solid transparent; background:#f3f4f6; }
.avatar-opt.sel { border-color:#2B1F8D; }
.avatar-opt img { width:100%; height:100%; object-fit:cover; display:block; }
.perfil-top { display:flex; flex-direction:column; align-items:center; gap:10px; margin-bottom:6px; }

/* ---------- cards / sections (maxtec) ---------- */
.cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 18px; }
.cards-3 { grid-template-columns: repeat(3, 1fr); }
.card { background: #fff; border-radius: 10px; padding: 14px 16px; border-left: 4px solid; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.card-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: #6b7280; margin-bottom: 4px; }
.card-value { font-size: 30px; font-weight: 800; line-height: 1; }
.card-sub { font-size: 11px; color: #9ca3af; margin-top: 3px; }
.c-green { border-color:#10b981; } .c-green .card-value { color:#10b981; }
.c-blue  { border-color:#0D86E6; } .c-blue  .card-value { color:#0D86E6; }
.c-navy  { border-color:#2B1F8D; } .c-navy  .card-value { color:#2B1F8D; }
.c-red   { border-color:#ef4444; } .c-red   .card-value { color:#ef4444; }
.c-amber { border-color:#f59e0b; } .c-amber .card-value { color:#f59e0b; }

.section { background:#fff; border-radius:10px; padding:16px; margin-bottom:14px; box-shadow:0 1px 3px rgba(0,0,0,.06); }
.section-title { font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:#374151; margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; gap:6px; }

table { width:100%; border-collapse:collapse; }
th { font-size:10px; font-weight:700; text-transform:uppercase; color:#9ca3af; letter-spacing:.4px; text-align:left; padding:5px 8px; border-bottom:2px solid #f3f4f6; white-space:nowrap; }
td { padding:9px 8px; border-bottom:1px solid #f9fafb; font-size:12px; vertical-align:middle; }
tr:last-child td { border-bottom:none; }
tr:hover td { background:#fafafa; }
th.num, td.num { text-align:right; }
td.num { font-variant-numeric:tabular-nums; }

.badge { display:inline-flex; align-items:center; gap:3px; padding:2px 8px; border-radius:20px; font-size:11px; font-weight:600; white-space:nowrap; }
.b-green { background:#d1fae5; color:#065f46; }
.b-red   { background:#fee2e2; color:#991b1b; }
.b-gray  { background:#f3f4f6; color:#374151; }
.b-amber { background:#fef3c7; color:#92400e; }
.b-blue  { background:#dbeafe; color:#1e40af; }
.badge-click { cursor:pointer; }
.badge-click:hover { filter:brightness(.94); box-shadow:0 0 0 2px rgba(43,31,141,.15); }

/* custos-filho e blocos read-only (viagem) */
.readbox { background:#f5f7fa; border:1px solid #eef1f5; border-radius:8px; padding:9px 11px; font-size:12.5px; color:#374151; }
.readbox b { color:#1F2330; }
.custo-row { display:flex; align-items:center; gap:8px; padding:8px 4px; border-bottom:1px solid #f9fafb; font-size:12px; }
.custo-row:last-child { border-bottom:none; }
.custo-row .cr-tipo { font-weight:600; flex:1; }
.custo-row .cr-val { font-variant-numeric:tabular-nums; }
.custos-add { display:flex; gap:8px; align-items:flex-end; margin-top:12px; padding-top:12px; border-top:1px dashed #e5e7eb; flex-wrap:wrap; }
.custos-add .field { min-width:0; }
.conta-row { display:flex; align-items:center; gap:8px; padding:8px 4px; border-bottom:1px solid #f9fafb; font-size:12px; }
.conta-row:last-child { border-bottom:none; }
.conta-row .co-desc { flex:1; }
.conta-row .co-val { font-variant-numeric:tabular-nums; font-weight:600; }

.grid-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px; }
.filial-card { background:#fff; border-radius:10px; padding:16px; box-shadow:0 1px 3px rgba(0,0,0,.06); border-left:4px solid #2B1F8D; }
.filial-card h3 { font-size:15px; font-weight:800; margin-bottom:2px; }
.filial-card .sub { font-size:11px; color:#9ca3af; margin-bottom:10px; }
.filial-card .acts { display:flex; gap:6px; margin-top:12px; }
.filial-card.add { border-left-style:dashed; border-left-color:#cbd5e1; display:flex; align-items:center; justify-content:center; cursor:pointer; color:#6b7280; font-weight:700; min-height:110px; }
.filial-card.add:hover { color:#2B1F8D; border-left-color:#2B1F8D; }

.placeholder { background:#fff; border-radius:10px; padding:44px; text-align:center; color:#9ca3af; box-shadow:0 1px 3px rgba(0,0,0,.06); }

/* ---------- buttons (maxtec) ---------- */
.btn { display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border-radius:7px; font-size:12px; font-weight:600; cursor:pointer; border:none; transition:background .15s, transform .1s; }
.btn:active { transform:scale(.97); }
.btn:disabled { opacity:.6; cursor:default; }
.btn-primary { background:#2B1F8D; color:#fff; }
.btn-primary:hover { background:#241a75; }
.btn-danger  { background:#ef4444; color:#fff; }
.btn-danger:hover { background:#dc2626; }
.btn-ghost   { background:#f3f4f6; color:#374151; }
.btn-ghost:hover { background:#e5e7eb; }
.btn-sm { padding:3px 8px; font-size:11px; border-radius:5px; }
.btn-block { width:100%; justify-content:center; padding:9px; font-size:13px; }
.btn-icon { padding:3px 5px; font-size:13px; border-radius:5px; background:transparent; color:#9ca3af; border:none; cursor:pointer; }
.btn-icon:hover { background:#f3f4f6; color:#374151; }

/* ---------- fields ---------- */
.field { display:flex; flex-direction:column; gap:4px; }
.field label { font-size:11px; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.4px; }
.field input, .field select { padding:8px 10px; border:1.5px solid #e5e7eb; border-radius:7px; font-size:13px; font-family:inherit; color:#2F3338; background:#fff; }
.field input:focus, .field select:focus { outline:none; border-color:#2B1F8D; }
.form-row { display:grid; gap:10px; }
.form-row-2 { grid-template-columns:1fr 90px; }

/* ---------- modal (maxtec) ---------- */
.overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:1000; justify-content:center; align-items:flex-start; padding:40px 16px; overflow-y:auto; }
.overlay.open { display:flex; }
.modal { background:#fff; border-radius:14px; width:100%; max-width:460px; box-shadow:0 20px 60px rgba(0,0,0,.2); overflow:hidden; margin:auto; }
.modal-header { padding:18px 20px 14px; border-bottom:1px solid #f3f4f6; display:flex; align-items:center; justify-content:space-between; }
.modal-header h2 { font-size:15px; font-weight:800; }
.modal-body { padding:18px 20px; display:flex; flex-direction:column; gap:12px; }
.modal-footer { padding:14px 20px; border-top:1px solid #f3f4f6; display:flex; gap:8px; justify-content:flex-end; }
.modal-lg { max-width:560px; }
.modal-wide { max-width:660px; }
.modal-err { display:none; margin:14px 20px 0; background:#fef2f2; border:1px solid #fecaca; color:#991b1b; border-radius:8px; padding:10px 12px; font-size:12.5px; line-height:1.45; }
.modal-err.show { display:block; }
.modal-err .me-detail { font-size:11px; opacity:.85; margin-top:3px; }
.modal-err .me-meta { font-size:10px; color:#b91c1c; margin-top:5px; display:flex; justify-content:space-between; gap:8px; align-items:center; }
.modal-err .me-copy { background:#fff; border:1px solid #fecaca; border-radius:5px; padding:1px 7px; cursor:pointer; font-size:10px; color:#991b1b; font-family:inherit; }
.field-err { color:#dc2626; font-size:11px; margin-top:2px; display:none; }
.field.invalid input { border-color:#dc2626; }
.field.invalid .field-err { display:block; }

/* toggle (switch) */
.switch { display:inline-flex; align-items:center; gap:10px; cursor:pointer; user-select:none; }
.switch input { position:absolute; opacity:0; width:0; height:0; }
.switch .track { width:44px; height:24px; border-radius:999px; background:#cbd5e1; transition:background .18s; flex-shrink:0; position:relative; }
.switch .track::after { content:''; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .18s; box-shadow:0 1px 2px rgba(0,0,0,.25); }
.switch input:checked + .track { background:#2B1F8D; }
.switch input:checked + .track::after { transform:translateX(20px); }
.switch input:focus-visible + .track { outline:2px solid #0D86E6; outline-offset:2px; }
.switch input:disabled + .track { opacity:.55; }
.switch .sw-label { font-size:13px; font-weight:600; color:#1F2330; text-transform:none; letter-spacing:0; }

/* campo com lupa (lookup) */
.lookup { display:flex; gap:6px; align-items:center; }
.lookup input[readonly] { flex:1; background:#fafafa; cursor:default; }
.lookup .lookup-btn { flex-shrink:0; }

/* usuários: acesso a filiais + matriz de permissões */
.chk-grid { display:flex; flex-wrap:wrap; gap:8px 16px; }
.chk { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:#374151; cursor:pointer; }
.chk input { cursor:pointer; }
table.matriz th, table.matriz td { padding:6px 9px; }
table.matriz th:first-child, table.matriz td:first-child { text-align:left; white-space:nowrap; }
table.matriz input[type=checkbox] { cursor:pointer; }

/* dashboard */
.dash-mes { font-size:12px; color:#6b7280; background:#f5f7fa; border-radius:20px; padding:5px 14px; }
.dash-titulo { font-size:15px; font-weight:700; color:#2B1F8D; margin:18px 2px 2px; padding-bottom:6px; border-bottom:2px solid #ece9fb; }
.dash-titulo:first-of-type { margin-top:4px; }
.alerta-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; margin-bottom:6px; }
.alerta { display:flex; gap:11px; align-items:center; background:#fff; border:1px solid #eef1f5; border-left:4px solid #cbd5e1; border-radius:10px; padding:12px 14px; }
.alerta .al-ico { font-size:22px; opacity:.9; }
.alerta .al-qtd { font-size:22px; font-weight:800; color:#1F2330; line-height:1; font-variant-numeric:tabular-nums; }
.alerta .al-tit { font-size:12px; font-weight:600; color:#374151; margin-top:2px; }
.alerta .al-sub { font-size:11px; color:#9ca3af; margin-top:1px; }
.alerta-ok { border-left-color:#16a34a; opacity:.72; }
.alerta-vazio { border-left:4px solid #16a34a; color:#166534; background:#f0fdf4; font-size:13px; font-weight:600; }
.alerta-red { border-left-color:#dc2626; background:#fef2f2; }
.alerta-red .al-qtd { color:#dc2626; }
.alerta-amber { border-left-color:#ea580c; background:#fff7ed; }
.alerta-amber .al-qtd { color:#c2410c; }
.alerta-blue { border-left-color:#0D86E6; background:#eff6ff; }
.alerta-blue .al-qtd { color:#0D86E6; }
.kpi-delta { font-size:11px; font-weight:700; margin-top:3px; }
.kpi-delta span { font-weight:400; color:#9ca3af; }
.kpi-delta.up { color:#059669; }
.kpi-delta.down { color:#dc2626; }
.aniv-list { display:flex; flex-wrap:wrap; gap:8px; }
.aniv-item { display:flex; align-items:center; gap:8px; background:#f5f7fa; border:1px solid #eef1f5; border-radius:9px; padding:7px 11px; font-size:13px; }
.aniv-item.hoje { background:#eff6ff; border-color:#bfdbfe; }
.aniv-dia { font-weight:800; color:#2B1F8D; background:#ece9fb; border-radius:6px; padding:2px 7px; font-variant-numeric:tabular-nums; }
.aniv-nome { font-weight:600; color:#1F2330; }
.aniv-tipo { font-size:11px; color:#9ca3af; }
.aniv-hoje { font-size:11px; font-weight:700; color:#0D86E6; }
.dash-graficos { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:14px; }
.chart-wrap { position:relative; height:240px; }

/* dica (tooltip) ao lado do label */
.hint { display:inline-flex; vertical-align:-2px; margin-left:3px; color:#9ca3af; cursor:help; }
.hint:hover { color:#0D86E6; }

/* relatórios */
.rel-tipos { display:flex; flex-wrap:wrap; gap:8px; }
.rel-chip { display:flex; align-items:center; gap:7px; background:#fff; border:1px solid #e5e7eb; border-radius:9px;
  padding:9px 13px; font-size:13px; color:#374151; cursor:pointer; font-family:inherit; transition:.12s; }
.rel-chip:hover { border-color:#0D86E6; color:#0D86E6; }
.rel-chip.sel { background:#2B1F8D; border-color:#2B1F8D; color:#fff; }
.rel-chip .rc-ico { font-size:15px; }
.rel-resumo { margin-top:10px; font-size:12.5px; color:#6b7280; }
.rel-acoes { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.rel-cab { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; }
.rel-titulo { font-size:16px; font-weight:700; color:#1F2330; }
.rel-sub { font-size:12.5px; color:#6b7280; margin-top:2px; }
.rel-meta { font-size:12px; color:#6b7280; background:#f5f7fa; border-radius:20px; padding:4px 12px; white-space:nowrap; }
.rel-filtros-txt { margin-top:8px; font-size:11.5px; color:#9ca3af; border-top:1px solid #f3f4f6; padding-top:8px; }
.rel-comoler { margin-top:12px; font-size:11.5px; color:#6b7280; background:#f5f7fa; border-radius:8px; padding:9px 11px; }
.kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin:14px 0; }
.kpi { border-radius:10px; padding:12px 14px; border:1px solid #eef1f5; background:#fff; border-left:4px solid #2B1F8D; }
.kpi-lbl { font-size:10.5px; letter-spacing:.4px; color:#6b7280; font-weight:600; }
.kpi-val { font-size:18px; font-weight:700; color:#1F2330; margin-top:3px; font-variant-numeric:tabular-nums; }
.kpi-navy { border-left-color:#2B1F8D; }
.kpi-verde { border-left-color:#059669; }
.kpi-vermelho { border-left-color:#dc2626; }
.kpi-laranja { border-left-color:#ea580c; }

/* troca de senha obrigatória (1º acesso) */
.force-pw { position:fixed; inset:0; z-index:2000; background:rgba(15,23,42,.55); display:flex; align-items:center; justify-content:center; padding:16px; }
.force-pw-card { background:#fff; border-radius:14px; padding:26px 24px; width:100%; max-width:380px; box-shadow:0 20px 50px rgba(0,0,0,.25); }
.force-pw-card h2 { margin:0 0 4px; font-size:19px; color:#1F2330; }
.force-pw-card .fp-sub { margin:0 0 14px; font-size:13px; color:#6b7280; }
.force-pw-card .field { margin-bottom:12px; }

/* seletor (picker) */
#picker-overlay { z-index:1100; }
.modal.picker { max-width:420px; }
.picker-search { padding:12px 20px 8px; }
.picker-search input { width:100%; padding:8px 10px; border:1.5px solid #e5e7eb; border-radius:7px; font:inherit; font-size:13px; color:#2F3338; }
.picker-search input:focus { outline:none; border-color:#2B1F8D; }
.picker-list { height:300px; overflow-y:auto; padding:4px 12px 14px; }
.picker-item { padding:9px 10px; border-radius:8px; cursor:pointer; display:flex; flex-direction:column; gap:1px; }
.picker-item:hover { background:#f3f4f6; }
.picker-item .pi-main { font-size:13px; font-weight:600; color:#1F2330; }
.picker-item .pi-sub { font-size:11px; color:#9ca3af; }
.picker-empty { text-align:center; color:#9ca3af; padding:28px 10px; font-size:12px; }

/* abas dentro do modal */
.mtabs { display:flex; gap:2px; border-bottom:1px solid #f3f4f6; margin:-18px -20px 4px; padding:0 12px; overflow-x:auto; }
.mtab { padding:11px 12px; font-size:12px; font-weight:600; color:#6b7280; border:none; background:none; border-bottom:2px solid transparent; cursor:pointer; font-family:inherit; white-space:nowrap; }
.mtab:hover { color:#2F3338; }
.mtab.active { color:#2B1F8D; border-bottom-color:#2B1F8D; }
/* abas empilhadas: a caixa fica sempre do tamanho da maior aba (não muda ao trocar) */
.mpanes { display:grid; }
.mpanes > .mpane { grid-area:1 / 1; display:flex; flex-direction:column; gap:12px; visibility:hidden; }
.mpanes > .mpane.active { visibility:visible; }

/* auditoria */
.aud-item { border-left:2px solid #e5e7eb; padding:3px 0 3px 10px; font-size:12px; color:#374151; }
.aud-item b { color:#2B1F8D; }
.aud-meta { font-size:10px; color:#9ca3af; margin-top:1px; }
.aud-empty { font-size:12px; color:#9ca3af; }

/* toolbar + filtros da listagem */
.toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.toolbar .page-title { margin:0; }
.mfiltros { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.mfiltros .field { min-width:130px; }
.mfiltros .field input, .mfiltros .field select { padding:6px 9px; font-size:12px; }
.th-acao, .td-acao { text-align:right; white-space:nowrap; }
.row-acts { display:inline-flex; gap:2px; }
.warn-box { background:#fef2f2; border:1px solid #fecaca; border-radius:8px; padding:12px; font-size:12.5px; color:#991b1b; line-height:1.5; }

/* ---------- login (maxtec) ---------- */
.login-body { background:#F2F4F7; min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px; }
.login-box { background:#fff; border-radius:14px; box-shadow:0 20px 60px rgba(0,0,0,.12); width:100%; max-width:380px; padding:30px 28px; }
.login-logo { display:block; width:230px; max-width:80%; height:auto; margin:0 auto 12px; }
.login-sub { text-align:center; font-size:12px; color:#9ca3af; margin-bottom:22px; }
.msg { font-size:12.5px; padding:9px 11px; border-radius:8px; margin-bottom:14px; display:none; }
.msg.err { display:block; background:#fee2e2; color:#991b1b; }
.msg.ok  { display:block; background:#d1fae5; color:#065f46; }

/* ---------- toast de erro (nunca mudo) ---------- */
.toast-wrap { position:fixed; right:18px; bottom:18px; display:flex; flex-direction:column; gap:10px; z-index:2000; max-width:380px; }
.toast { background:#fff; border-radius:10px; border-left:4px solid #ef4444; box-shadow:0 10px 30px rgba(0,0,0,.15); padding:12px 14px; animation:slidein .2s ease; }
.toast.ok { border-left-color:#10b981; }
.toast .t-title { font-weight:800; color:#991b1b; display:flex; align-items:center; gap:6px; font-size:13px; }
.toast.ok .t-title { color:#065f46; }
.toast .t-detail { font-size:12px; color:#374151; margin-top:4px; word-break:break-word; }
.toast .t-meta { font-size:11px; color:#9ca3af; margin-top:6px; display:flex; justify-content:space-between; align-items:center; gap:10px; }
.toast .t-copy { background:transparent; border:1px solid #e5e7eb; border-radius:6px; padding:2px 8px; cursor:pointer; font-size:11px; color:#374151; font-family:inherit; }
@keyframes slidein { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }

/* ---------- responsivo / mobile ---------- */
@media (max-width: 720px) {
  body { padding:12px 10px 26px; }
  .topnav { gap:10px; padding:10px 12px; row-gap:10px; }
  .brand-logo { height:30px; }
  .avatar { order:2; margin-left:auto; }
  .topnav-tools { order:3; width:100%; margin-left:0; gap:8px; }
  .topnav-tools .pill-filial { flex:1; }
  .pill-filial select { max-width:none; width:100%; }
  .substrip { flex-direction:column; align-items:flex-start; gap:2px; padding:4px 4px 12px; }
  .drawer { width:80%; max-width:290px; }
  .cards, .cards-3 { grid-template-columns:1fr; }
  .grid-cards { grid-template-columns:1fr; }
  .modal { max-width:100%; }
  .toast-wrap { left:12px; right:12px; max-width:none; }
}
