/* BSM Frota v9.3 — um sistema de enquadramento baseado no Painel de Ordens de Serviço. */
:root { --bsm-red:#c62828;--bsm-dark:#741c1c;--bsm-page:#f6f7f9;--bsm-border:#eadbdb;--bsm-panel:#fff;--bsm-text:#122943;--bsm-max:1120px; }
html { box-sizing:border-box; }
*,*::before,*::after { box-sizing:inherit; }
body, body.mobile-home, body.security-page { margin:0; background:var(--bsm-page); color:var(--bsm-text); min-width:0; }
body:not(.v93-print-page) { overflow-x:hidden; }
/* Mesmo container e margens do Painel de OS, em todas as telas. */
.shell,.os-shell,.security-shell,.access-wrap,main.mobile-dashboard,
body:has(> .top) > main, body:has(> .top) > .metrics, body:has(> .top) > .panel,
body:has(> .top) > .top { box-sizing:border-box; width:min(100% - 32px,var(--bsm-max));max-width:var(--bsm-max);margin-left:auto;margin-right:auto; }
.shell,.os-shell,.security-shell, main.mobile-dashboard { padding:24px 0 64px; }
.mobile-shell { width:100%;max-width:none;margin:0 auto; }
.access-wrap{padding:24px 0 64px;max-width:var(--bsm-max);}
/* Cabeçalhos e navegação unificados: vermelho institucional, sem faixa azul. */
.header, .security-header, .mobile-header,body:has(> .top) > .top,
body:has(> .top) > header {background:linear-gradient(110deg,#c62828,#951919);color:white;}
.header,.security-header,.mobile-header {padding:16px max(16px,calc((100vw - var(--bsm-max))/2))!important;border-radius:0!important;}
.header .logo,.mobile-header .mobile-logo,.security-header .logo {background:white!important;color:#ad2020!important;border-color:#ffe0e0!important;}
.header .brand strong,.header .brand small,.mobile-header strong,.mobile-header small {color:white!important;}
.bsm-global-nav {width:100%;margin:0 auto;background:var(--bsm-page);}
.bsm-global-nav-inner {width:min(100% - 32px,var(--bsm-max));max-width:var(--bsm-max);margin-left:auto;margin-right:auto;box-sizing:border-box;}
.bsm-global-nav a[hidden],.mobile-dock a[hidden] {display:none!important;}
.bsm-global-nav-link.is-current {background:#fff0f0;color:#971818;border-color:#dc7777;}
/* Cartões, títulos, tabelas, filtros e controles seguem a mesma estrutura de OS. */
.os-kpis>div,.os-panel,.panel,.sec-card,.metric,.access-card,
.mobile-card, .mobile-action, .mobile-section, .security-panel {border-radius:16px;box-shadow:0 6px 22px #491d1d0b;border:1px solid var(--bsm-border);}
.os-panel,.panel{background:var(--bsm-panel);}
.hero h1,.os-title h1,.access-card h1,.security-shell h1,main h1 {color:var(--bsm-dark);}
.eyebrow,.count,.step{color:var(--bsm-red)}
.step {background:#feeaea;}
.primary,.os-primary,button[type=submit]:not(.os-outline) {background:#c62828;color:#fff;}
.primary:hover,.os-primary:hover,button[type=submit]:not(.os-outline):hover{background:#a32020;}
.outline,.os-outline {color:#a52121;border-color:#e9baba;background:#fff;}
input,select,textarea {max-width:100%; border:1px solid #e6caca; background:#fff; color:#16263c; }
input:focus,select:focus,textarea:focus {outline-color:#c62828;}
input[type=checkbox],input[type=radio] {accent-color:#c62828;min-height:0;width:auto;}
.os-head,.panel-title,.os-item-head {max-width:100%;}
table {max-width:100%;}
/* Preventiva possui um cabeçalho próprio; aplicar mesmo container sem deslocamento. */
body:has(> .top) > .top {width:100%;max-width:none;border-radius:0;margin:0;padding:24px max(16px,calc((100vw - var(--bsm-max))/2));}
body:has(> .top) > .metrics,body:has(> .top) > .panel {margin-top:18px;}
/* A tela mobile deve usar a mesma coluna no desktop, sem ocupar toda a largura. */
.mobile-dashboard{max-width:var(--bsm-max);}
/* Barra fixa somente em dispositivos pequenos; nunca sobrepor o rodapé. */
@media(min-width:761px){.mobile-dock,.mobile-bottom,.mobile-bottom-nav{display:none!important}}
@media(max-width:760px){
 .shell,.os-shell,.security-shell,.access-wrap,main.mobile-dashboard,
 body:has(> .top) > main,body:has(> .top) > .metrics,body:has(> .top) > .panel {width:calc(100% - 24px);padding:14px 0 78px;}
 .mobile-header,.header,.security-header{padding:14px 12px!important;}
 .bsm-global-nav-inner{width:calc(100% - 24px);overflow-x:auto;scrollbar-width:thin;}
 .os-kpis,.metrics{grid-template-columns:repeat(2,minmax(0,1fr));}
 .os-fields,.form-grid,.v93-print-grid{grid-template-columns:1fr;}
 .os-head,.hero,.panel-title{flex-wrap:wrap;}
 .v93-actions{flex-direction:column;align-items:stretch;}
 .v93-actions button{width:100%;}
 .os-panel,.panel{padding:16px;}
}
/* Cadastros e controle de acessos individual. */
.v93-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0 4px;}
.v93-actions .os-primary {margin:0;}
.v93-help {font-size:13px;line-height:1.55;color:#55647b;}
.v93-user-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;}
.v93-user{display:flex;flex-direction:column;gap:5px;text-align:left;padding:14px;min-height:76px;background:white;border:1px solid #ecd6d6;border-radius:10px;color:#172b48;}
.v93-user.selected{border-color:var(--bsm-red);background:#fff3f3;}
.v93-user strong{font-size:14px;}.v93-user small{font-size:12px;font-weight:400;line-height:1.5;color:#64748b;}
.v93-table-scroll{width:100%;overflow-x:auto;}
.v93-permission-table,.v93-audit-table{width:100%;border-collapse:collapse;min-width:700px;}
.v93-permission-table th,.v93-permission-table td,.v93-audit-table th,.v93-audit-table td{padding:12px 10px;text-align:left;border-bottom:1px solid #f0e0e0;font-size:13px;vertical-align:top;}
.v93-permission-table thead th,.v93-audit-table thead th{background:#fff0f0;color:#842020;font-weight:750;}
.v93-permission-table td:not(:last-child){text-align:center;}
.v93-permission-table td input{width:18px;height:18px;cursor:pointer;}
.v93-permission-table td input:disabled{cursor:not-allowed;opacity:.45;}
.v93-extra {display:inline-flex;align-items:center;gap:6px;margin:0 10px 6px 0;font-size:12px;font-weight:600;}
.v93-extra input{margin:0;}
.v93-inline-create{margin-top:2px;padding:8px 12px;font-size:12px;min-height:38px;align-self:flex-start;}
.v93-print-tools{justify-content:flex-end;}
.v93-print-page .os-shell{padding-top:20px;}
.v93-print-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin:12px 0 20px;}
.v93-print-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.v93-print-grid section{border:1px solid #e7dbdb;border-radius:8px;padding:12px;overflow-wrap:anywhere;}
.v93-print-grid strong{color:#792323;font-size:12px;}.v93-print-grid p{margin:6px 0;white-space:pre-wrap;}
.v93-print-header{display:flex;align-items:center;gap:18px;margin-bottom:24px;padding-bottom:20px;border-bottom:2px solid #bb2424;}
.v93-print-logo{background:#c62828;color:white;border-radius:10px;padding:14px;font-size:26px;font-weight:900;}
@media print{.v93-print-actions{display:none!important}.v93-print-page .os-shell{width:100%;max-width:none;padding:0}.v93-print-page .os-panel{box-shadow:none;border:0;padding:0}.v93-print-grid section{break-inside:avoid;}}
.v93-provider-list{display:grid;gap:10px;margin-top:16px}
.v93-provider-item{border:1px solid #e8d9d9;border-radius:12px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.v93-provider-item strong,.v93-provider-item small{display:block}
.v93-provider-item small{margin-top:4px;color:#617086}
