:root{--ink:#16212b;--muted:#64717d;--line:#dce3e8;--bg:#f3f6f8;--red:#d9272e;--green:#15803d;--amber:#b7791f}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Calibri,Arial,sans-serif;color:var(--ink)}
.top{background:#fff;border-bottom:1px solid var(--line);padding:14px max(18px,calc((100% - 1200px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:14px}.brand img{width:110px;height:52px;object-fit:contain}.brand strong{display:block;font-size:20px}.brand small{display:block;color:var(--muted)}
nav{display:flex;gap:16px;flex-wrap:wrap}a{color:#b31e24;text-decoration:none;font-weight:700}.wrap{max-width:1200px;margin:28px auto;padding:0 18px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:22px;box-shadow:0 5px 18px #0000000b}
h1,h2{margin-top:0}.title-row{display:flex;justify-content:space-between;align-items:center;gap:18px}.button,button{display:inline-block;border:1px solid #cbd3d9;border-radius:8px;background:#fff;padding:9px 12px;cursor:pointer;font-weight:700}.primary{background:var(--red);border-color:var(--red);color:#fff}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:20px 0}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.stat b{font-size:30px;display:block}.stat span{color:var(--muted)}.good b{color:var(--green)}.bad b{color:var(--red)}.warn b{color:var(--amber)}
table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:13px;color:var(--muted)}.table-scroll{overflow:auto}.mono{font-family:Consolas,monospace;font-size:12px}
.pill{display:inline-block;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.pill.active{background:#dcfce7;color:#166534}.pill.blocked{background:#fee2e2;color:#991b1b}.pill.review{background:#fef3c7;color:#92400e}
.actions{min-width:310px}.actions form{display:inline-flex;margin:4px 4px 4px 0;gap:4px}.actions a{display:inline-block;margin:7px 10px 7px 0}
.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-form label,.login-card label{font-weight:700}.grid-form input,.grid-form textarea,.login-card input{width:100%;margin-top:6px;padding:11px;border:1px solid #bcc6ce;border-radius:8px;font:inherit}.wide{grid-column:1/-1}.login-card{max-width:480px;margin:50px auto}.login-card label{display:block;margin:14px 0}.hint{font-size:12px;color:var(--muted)}
.validation-card{max-width:650px;margin:28px auto;text-align:center;border-top:8px solid var(--green)}.validation-card.blocked{border-top-color:var(--red)}.validation-card.review{border-top-color:var(--amber)}.status-icon{margin:0 auto 12px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:white;font-size:36px;font-weight:900}.blocked .status-icon{background:var(--red)}.review .status-icon{background:var(--amber)}.big-status{font-size:28px;font-weight:900;color:var(--green);margin-bottom:22px}.blocked .big-status{color:var(--red)}.review .big-status{color:var(--amber)}
.vehicle-grid{display:grid;grid-template-columns:1fr 1fr;text-align:left;border:1px solid var(--line);border-radius:10px;overflow:hidden}.vehicle-grid>div{padding:16px;border-bottom:1px solid var(--line)}.vehicle-grid>div:nth-child(odd){border-right:1px solid var(--line)}.vehicle-grid span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase}.vehicle-grid b{font-size:18px}.vehicle-grid .plate b{font-size:30px;letter-spacing:2px}
.check-box{margin-top:20px;padding:16px;border:2px dashed #9aa6af;border-radius:10px;text-align:left}.scan-info{color:var(--muted);font-size:13px}.flash{padding:12px 15px;border-radius:8px;margin-bottom:15px}.flash.ok{background:#dcfce7}.flash.error{background:#fee2e2}
@media(max-width:760px){.top{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr 1fr}.grid-form,.vehicle-grid{grid-template-columns:1fr}.vehicle-grid>div:nth-child(odd){border-right:0}.title-row{align-items:flex-start;flex-direction:column}.actions{min-width:250px}}

/* =========================================================
   PADRONIZAÇÃO VISUAL DOS STATUS DA FROTA
   ATIVO = verde
   EM VERIFICAÇÃO = amarelo/laranja
   MANUTENÇÃO = laranja
   BLOQUEADO = vermelho
   BAIXADO = cinza/escuro
   ========================================================= */

/* Etiquetas de status no Painel */
.pill.maintenance{
    background:#ffedd5;
    color:#9a3412;
}

.pill.decommissioned{
    background:#e5e7eb;
    color:#374151;
}

/* Tela pública de validação - Manutenção */
.validation-card.maintenance{
    border-top-color:#d97706;
}

.maintenance .status-icon{
    background:#d97706;
}

.maintenance .big-status{
    color:#d97706;
}

/* Tela pública de validação - Baixado */
.validation-card.decommissioned{
    border-top-color:#4b5563;
}

.decommissioned .status-icon{
    background:#4b5563;
}

.decommissioned .big-status{
    color:#374151;
}

/* =========================================================
   FROTA SEGURA — LAYOUT ADMINISTRATIVO COM MENU LATERAL
   Mantém compatibilidade com cards, tabelas e formulários atuais.
   ========================================================= */
:root{
  --sidebar:#101b2b;
  --sidebar-soft:#17263a;
  --sidebar-text:#dbe5f0;
  --sidebar-muted:#8798ab;
  --surface:#ffffff;
  --topbar-h:72px;
  --sidebar-w:276px;
}

.app-shell{min-height:100vh}
.sidebar{
  position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);z-index:100;
  display:flex;flex-direction:column;background:var(--sidebar);color:var(--sidebar-text);
  border-right:1px solid #23344a;
}
.sidebar-brand{
  min-height:104px;padding:18px 18px;display:flex;align-items:center;gap:14px;
  border-bottom:1px solid #26374c;
}
.sidebar-brand img{
  width:88px;height:54px;object-fit:contain;background:#fff;border-radius:9px;padding:5px;
}
.sidebar-brand strong{display:block;font-size:19px;letter-spacing:.35px;color:#fff}
.sidebar-brand small{display:block;margin-top:4px;font-size:11px;color:var(--sidebar-muted);line-height:1.3}

.sidebar-nav{display:flex;flex-direction:column;gap:6px;padding:16px 12px;flex:1}
.sidebar-section{
  padding:17px 12px 6px;font-size:10px;font-weight:800;letter-spacing:1.25px;
  color:#718399;
}
.sidebar-link{
  display:flex;align-items:center;gap:13px;min-height:48px;padding:10px 12px;
  border-radius:9px;color:var(--sidebar-text);font-size:15px;font-weight:700;
  transition:background .15s ease,color .15s ease;
}
.sidebar-link:hover{background:var(--sidebar-soft);color:#fff}
.sidebar-icon{
  width:28px;height:28px;display:grid;place-items:center;border-radius:7px;
  background:#1e3047;color:#c9d6e5;font-size:16px;font-weight:900;flex:0 0 28px;
}
.sidebar-link-disabled{opacity:.55;cursor:default}
.sidebar-link-disabled:hover{background:transparent;color:var(--sidebar-text)}
.sidebar-foot{padding:14px 20px 18px;border-top:1px solid #26374c}
.sidebar-foot span,.sidebar-foot small{display:block}
.sidebar-foot span{font-size:12px;font-weight:800;color:#b9c7d7}
.sidebar-foot small{font-size:10px;color:#718399;margin-top:3px}

.app-main{min-height:100vh;margin-left:var(--sidebar-w)}
.app-topbar{
  height:var(--topbar-h);position:sticky;top:0;z-index:90;background:#fff;
  border-bottom:1px solid var(--line);display:flex;align-items:center;
  justify-content:space-between;padding:0 28px;
}
.app-topbar>div:first-child strong{display:block;font-size:15px}
.app-topbar>div:first-child small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.topbar-user{display:flex;align-items:center;gap:9px}
.topbar-user strong,.topbar-user small{display:block}
.topbar-user strong{font-size:12px}.topbar-user small{font-size:10px;color:var(--muted)}
.user-dot{width:30px;height:30px;border-radius:50%;background:#eef2f6;border:1px solid #d7dee6;position:relative}
.user-dot:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#22c55e;right:-1px;bottom:1px;border:2px solid #fff}

.app-main>.wrap{max-width:1440px;margin:0 auto;padding:26px 28px 38px}

/* Evita que regras antigas de nav transformem a barra lateral em menu horizontal. */
.sidebar nav,.sidebar-nav{flex-wrap:nowrap}
.sidebar a{color:var(--sidebar-text)}
.sidebar a:hover{color:#fff}

/* Login e páginas públicas continuam usando o cabeçalho clássico. */
body>.top{background:#fff}

/* Impressões dos módulos administrativos não devem carregar a estrutura do sistema. */
@media print{
  .sidebar,.app-topbar{display:none!important}
  .app-main{margin-left:0!important}
  .app-main>.wrap{max-width:none!important;margin:0!important;padding:0!important}
}

@media(max-width:900px){
  :root{--sidebar-w:76px}
  .sidebar-brand{justify-content:center;padding:14px 8px}
  .sidebar-brand img{width:54px}
  .sidebar-brand div,.sidebar-link span:last-child,.sidebar-section,.sidebar-foot{display:none}
  .sidebar-nav{align-items:center;padding:12px 8px}
  .sidebar-link{justify-content:center;width:48px;padding:8px}
  .sidebar-icon{background:transparent}
  .app-topbar{padding:0 18px}
  .app-main>.wrap{padding:20px 16px 30px}
}

/* =========================================================
   FROTA SEGURA — INTERFACE DE REFERÊNCIA V3
   Reconstrução visual da navegação administrativa.
   ========================================================= */
:root{
  --sidebar-w:300px;
  --topbar-h:76px;
  --sidebar:#102238;
  --sidebar-deep:#0d1c2f;
  --sidebar-text:#eef5fb;
  --sidebar-muted:#9fb0c3;
  --sidebar-active:#087cf0;
}

.sidebar{
  width:var(--sidebar-w)!important;
  background:linear-gradient(180deg,var(--sidebar) 0%,var(--sidebar-deep) 100%)!important;
  border-right:0!important;
  box-shadow:4px 0 18px rgba(15,34,56,.10);
}

.sidebar-brand{
  min-height:92px!important;
  padding:14px 22px!important;
  gap:15px!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}
.sidebar-brand img{
  width:112px!important;height:60px!important;object-fit:contain!important;
  background:#fff!important;border-radius:9px!important;padding:6px!important;
}
.sidebar-brand-copy strong{
  font-size:20px!important;line-height:1.05!important;letter-spacing:.2px!important;color:#fff!important;
}
.sidebar-brand-copy small{
  margin-top:6px!important;font-size:12px!important;color:#aebed0!important;
}

.sidebar-nav{
  display:flex!important;flex-direction:column!important;gap:7px!important;
  padding:18px 10px!important;align-items:stretch!important;
}
.sidebar-link{
  min-height:52px!important;width:100%!important;padding:10px 15px!important;
  gap:14px!important;border-radius:7px!important;
  color:var(--sidebar-text)!important;font-size:16px!important;font-weight:500!important;
  opacity:1!important;
}
.sidebar-link:hover{background:rgba(255,255,255,.08)!important;color:#fff!important}
.sidebar-link.active{
  background:linear-gradient(90deg,#0b73dc,#0d8cf4)!important;
  color:#fff!important;box-shadow:0 5px 14px rgba(0,112,230,.22)!important;
}
.sidebar-icon{
  width:28px!important;height:28px!important;flex:0 0 28px!important;
  display:grid!important;place-items:center!important;
  background:transparent!important;color:inherit!important;
  border-radius:0!important;font-size:21px!important;font-weight:700!important;
}
.sidebar-link-disabled{cursor:default!important;color:#c8d3df!important}
.sidebar-link-disabled:not(.active){opacity:.82!important}
.sidebar-link-disabled:hover:not(.active){background:transparent!important;color:#c8d3df!important}

.sidebar-foot{
  padding:18px 22px 20px!important;text-align:center!important;
  border-top:1px solid rgba(255,255,255,.08)!important;
}
.sidebar-foot span{font-size:13px!important;color:#dce6f0!important}
.sidebar-foot small{font-size:11px!important;color:#8fa1b5!important;margin-top:4px!important}

.app-main{margin-left:var(--sidebar-w)!important}
.app-topbar{
  height:var(--topbar-h)!important;padding:0 28px!important;
  background:#fff!important;border-bottom:1px solid #d9e2ea!important;
}
.topbar-left{display:flex;align-items:center}
.topbar-menu{font-size:27px;color:#243d59;line-height:1}
.topbar-user{gap:11px!important}
.user-dot{
  width:40px!important;height:40px!important;display:grid!important;place-items:center!important;
  background:#eef3f8!important;border:1px solid #d7e0e9!important;
  color:#334b67!important;font-size:14px!important;font-weight:800!important;
}
.user-dot:after{display:none!important}
.topbar-user strong{font-size:14px!important;color:#172b42}
.topbar-user small{font-size:11px!important;color:#6f8194;margin-top:2px}
.topbar-logout{font-size:20px!important;color:#52677e!important;padding:5px!important}

.app-main>.wrap{
  max-width:1500px!important;margin:0 auto!important;padding:30px 32px 42px!important;
}

/* Botões principais mais próximos do padrão visual da referência. */
.app-main .primary{
  border-radius:7px!important;padding:10px 15px!important;
  box-shadow:0 3px 8px rgba(217,39,46,.12);
}

@media print{
  .sidebar,.app-topbar{display:none!important}
  .app-main{margin-left:0!important}
  .app-main>.wrap{max-width:none!important;margin:0!important;padding:0!important}
}

@media(max-width:900px){
  :root{--sidebar-w:82px}
  .sidebar-brand{justify-content:center!important;padding:12px 8px!important}
  .sidebar-brand img{width:62px!important;height:46px!important}
  .sidebar-brand-copy,.sidebar-link span:last-child,.sidebar-foot{display:none!important}
  .sidebar-nav{align-items:center!important;padding:14px 8px!important}
  .sidebar-link{justify-content:center!important;width:56px!important;padding:10px!important}
  .app-main>.wrap{padding:20px 16px 30px!important}
}

