/* CARTOP v4 - estilos dos módulos novos (complementa o Bootstrap 5 já usado) */
:root{
  --v4-ink:#0f172a; --v4-muted:#64748b; --v4-line:#e2e8f0; --v4-bg:#f1f5f9; --v4-card:#fff;
  --v4-brand:#1d4ed8; --v4-brand-soft:#dbeafe; --v4-ok:#047857; --v4-ok-soft:#d1fae5;
  --v4-warn:#b45309; --v4-warn-soft:#fef3c7; --v4-bad:#b91c1c; --v4-bad-soft:#fee2e2;
}
body{background:var(--v4-bg)}
.v4-title{font-weight:800;letter-spacing:-.01em;color:var(--v4-ink)}
.v4-sub{color:var(--v4-muted);font-size:.9rem}
.v4-card{background:var(--v4-card);border:1px solid var(--v4-line);border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.v4-card.pad{padding:1rem 1.1rem}
.v4-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.75rem}
.v4-kpi{background:var(--v4-card);border:1px solid var(--v4-line);border-radius:14px;padding:.9rem 1rem;cursor:default}
.v4-kpi[onclick]{cursor:pointer}
.v4-kpi[onclick]:hover{border-color:var(--v4-brand)}
.v4-kpi .n{font-size:1.9rem;font-weight:800;line-height:1.1;color:var(--v4-ink)}
.v4-kpi .l{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--v4-muted)}
.v4-kpi.warn .n{color:var(--v4-warn)} .v4-kpi.bad .n{color:var(--v4-bad)} .v4-kpi.ok .n{color:var(--v4-ok)}
.v4-badge{display:inline-block;padding:.18rem .55rem;border-radius:99px;font-size:.72rem;font-weight:700;white-space:nowrap}
.v4-badge.ok{background:var(--v4-ok-soft);color:var(--v4-ok)} .v4-badge.warn{background:var(--v4-warn-soft);color:var(--v4-warn)}
.v4-badge.bad{background:var(--v4-bad-soft);color:var(--v4-bad)} .v4-badge.info{background:var(--v4-brand-soft);color:var(--v4-brand)}
.v4-badge.mute{background:#e2e8f0;color:#475569}
.v4-table{width:100%;font-size:.88rem}
.v4-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--v4-muted);white-space:nowrap;background:#f8fafc}
.v4-table td,.v4-table th{padding:.55rem .6rem;vertical-align:middle;border-bottom:1px solid var(--v4-line)}
.v4-table tr.click{cursor:pointer} .v4-table tr.click:hover{background:#f8fafc}
.v4-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end}
.v4-toolbar .f{display:flex;flex-direction:column;min-width:130px;flex:1 1 130px}
.v4-toolbar label{font-size:.7rem;font-weight:700;color:var(--v4-muted);text-transform:uppercase;margin-bottom:.15rem}
.v4-empty{padding:2rem 1rem;text-align:center;color:var(--v4-muted)}
.v4-drop{border:2px dashed #94a3b8;border-radius:16px;background:#f8fafc;padding:2rem 1rem;text-align:center;cursor:pointer;transition:.15s}
.v4-drop.on{border-color:var(--v4-brand);background:var(--v4-brand-soft)}
.v4-progress{height:8px;border-radius:99px;background:#e2e8f0;overflow:hidden}
.v4-progress>div{height:100%;background:var(--v4-brand);width:0;transition:width .2s}
.v4-field-rev{border-color:#f59e0b!important;background:#fffbeb!important}
.v4-stop{border:1px solid var(--v4-line);border-radius:14px;background:#fff;margin-bottom:.6rem;overflow:hidden}
.v4-stop.next{border-color:var(--v4-brand);box-shadow:0 0 0 3px var(--v4-brand-soft)}
.v4-stop.done{opacity:.72}
.v4-stop-h{display:flex;gap:.7rem;align-items:flex-start;padding:.75rem .85rem}
.v4-stop-n{min-width:2rem;height:2rem;border-radius:50%;background:var(--v4-ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem}
.v4-stop.next .v4-stop-n{background:var(--v4-brand)} .v4-stop.done .v4-stop-n{background:var(--v4-ok)}
.v4-stop-docs{border-top:1px dashed var(--v4-line);padding:.4rem .85rem .6rem;background:#fafcff;font-size:.85rem}
.v4-stop-docs .d{display:flex;justify-content:space-between;gap:.5rem;padding:.25rem 0;align-items:center}
.v4-map{height:300px;border-radius:14px;border:1px solid var(--v4-line);overflow:hidden}
.v4-photo{width:96px;height:96px;object-fit:cover;border-radius:10px;border:1px solid var(--v4-line);cursor:zoom-in;background:#e2e8f0}
.v4-photos{display:flex;flex-wrap:wrap;gap:.5rem}
.v4-sticky-actions{position:sticky;bottom:0;background:linear-gradient(transparent,var(--v4-bg) 30%);padding:.8rem 0 .2rem;z-index:5}
.v4-alert-pend{border-left:5px solid #f59e0b;background:#fffbeb;border-radius:10px;padding:.8rem 1rem}
.v4-big-btn{display:flex;align-items:center;gap:.8rem;width:100%;text-align:left;padding:1rem 1.1rem;border-radius:14px;border:1px solid var(--v4-line);background:#fff;font-weight:700}
.v4-big-btn i{font-size:1.6rem;color:var(--v4-brand)} .v4-big-btn small{display:block;font-weight:400;color:var(--v4-muted)}
.v4-big-btn:hover{border-color:var(--v4-brand)}
.v4-steps{display:flex;gap:.4rem;flex-wrap:wrap}
.v4-note{font-size:.78rem;color:var(--v4-muted)}
.v4-lightbox{position:fixed;inset:0;background:rgba(2,6,23,.92);z-index:200000;display:none;flex-direction:column;align-items:center;justify-content:center;padding:1rem}
.v4-lightbox.on{display:flex}
.v4-lightbox img{max-width:100%;max-height:78vh;border-radius:8px}
.v4-lightbox .meta{color:#e2e8f0;font-size:.85rem;margin-top:.6rem;text-align:center}
.v4-toast{position:fixed;left:50%;bottom:5.2rem;transform:translateX(-50%);background:#0f172a;color:#fff;padding:.7rem 1.1rem;border-radius:99px;font-weight:600;z-index:200001;max-width:92vw;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.v4-toast.ok{background:#065f46}.v4-toast.bad{background:#991b1b}
/* barra de abas para celular (intimador) */
#v4-tabbar{display:none;position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--v4-line);z-index:1040;padding:.2rem .3rem calc(.2rem + env(safe-area-inset-bottom))}
#v4-tabbar a{flex:1;text-align:center;padding:.4rem .2rem;font-size:.68rem;font-weight:700;color:var(--v4-muted);text-decoration:none}
#v4-tabbar a i{display:block;font-size:1.25rem;margin-bottom:.1rem}
#v4-tabbar a.on{color:var(--v4-brand)}
body.v4-pilot #v4-tabbar{display:flex}
body.v4-pilot #main-content{padding-bottom:5.5rem}
body.v4-pilot .navbar-nav .pilot-only{display:none}
@media(min-width:992px){ body.v4-pilot #v4-tabbar{display:none} body.v4-pilot .navbar-nav .pilot-only{display:block} body.v4-pilot #main-content{padding-bottom:1rem} }
.navbar .dropdown-menu{border-radius:12px;border:1px solid var(--v4-line);box-shadow:0 10px 30px rgba(15,23,42,.12)}
@media print{ #main-nav,#v4-tabbar,.no-print{display:none!important} body{background:#fff} }
