/* ESPELHO PIMS MASTER P29 — bundle preservando a cascata visual final aprovada. */

/* ===== app-v152.css ===== */
/* PIMS V152 — bundle determinístico. Fontes originais preservadas separadamente. */

/* ===== public/css/base.css ===== */
:root{
  --verde:#0f3d2e;
  --verde2:#14523e;
  --verde3:#eaf4ef;
  --azul:#1769e8;
  --roxo:#7135b8;
  --vermelho:#dc2626;
  --laranja:#f97316;
  --amarelo:#b48a00;
  --bg:#edf3f0;
  --txt:#11261e;
  --muted:#66786e;
  --line:#dce6e1;
  --shadow:0 18px 50px rgba(15,61,46,.13);
  --radius:22px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;
  background:radial-gradient(circle at top left,rgba(20,82,62,.16),transparent 34%),linear-gradient(180deg,#f8faf9,#edf3f0);
  color:var(--txt);
  min-height:100vh;
}

.login-screen{
  position:fixed;
  inset:0;
  z-index:99;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  background:linear-gradient(135deg,#071d17,#14523e);
}

.login-screen.hide{display:none}

.login-hero{
  padding:56px;
  color:white;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:radial-gradient(circle at 25% 15%,rgba(255,255,255,.18),transparent 28%);
}

.brand{
  display:flex;
  align-items:center;
  gap:14px;
}

.brand-logo{
  width:62px;
  height:62px;
  border-radius:20px;
  background:#fff;
  display:grid;
  place-items:center;
  overflow:hidden;
  flex:0 0 62px;
  box-shadow:0 15px 40px rgba(0,0,0,.18);
}

.brand-logo img{
  width:54px;
  max-height:54px;
  object-fit:contain;
}

.brand-logo.fallback:after{
  content:"US";
  color:var(--verde);
  font-size:24px;
  font-weight:1000;
}

.brand-logo.fallback img{display:none}

.brand strong{
  display:block;
  font-size:18px;
  line-height:1.08;
}

.brand span{
  display:block;
  margin-top:4px;
  color:#d6eee4;
  font-size:13px;
  font-weight:800;
}

.login-copy h1{
  max-width:680px;
  font-size:48px;
  line-height:1.04;
  margin:0 0 16px;
  font-weight:1000;
}

.login-copy p{
  max-width:660px;
  font-size:18px;
  color:#d6eee4;
  font-weight:700;
}

.login-panel{
  display:grid;
  place-items:center;
  padding:26px;
}

.login-card{
  width:min(470px,100%);
  background:white;
  border-radius:32px;
  padding:38px;
  box-shadow:0 30px 90px rgba(0,0,0,.28);
}

.login-logo{
  width:96px;
  height:96px;
  border-radius:28px;
  background:#f5f8f6;
  display:grid;
  place-items:center;
  margin:0 auto 20px;
}

.login-logo img{
  width:78px;
  max-height:78px;
}

.login-card h2{
  text-align:center;
  font-size:36px;
  margin:0;
  color:var(--verde);
}

.login-card p{
  text-align:center;
  color:var(--muted);
  font-weight:800;
  margin:8px 0 24px;
}

.login-card label{
  display:block;
  font-size:12px;
  font-weight:1000;
  color:#26493d;
  text-transform:uppercase;
  margin:14px 0 8px;
}

.login-card input{
  width:100%;
  height:58px;
  border:1px solid var(--line);
  border-radius:18px;
  padding:0 16px;
  font-weight:900;
  outline:none;
}

.login-card button{
  width:100%;
  height:58px;
  margin-top:22px;
  border:0;
  border-radius:18px;
  background:linear-gradient(135deg,var(--verde),var(--verde2));
  color:white;
  font-size:18px;
  font-weight:1000;
  cursor:pointer;
}

.login-card small{
  display:block;
  color:#7b8b84;
  font-weight:800;
  margin-top:16px;
  text-align:center;
}

.sidebar{
  position:fixed;
  inset:0 auto 0 0;
  width:292px;
  background:linear-gradient(180deg,#071d17,#0f3d2e 54%,#071d17);
  color:white;
  padding:22px;
  display:flex;
  flex-direction:column;
  gap:20px;
}

.side-menu{
  display:grid;
  gap:9px;
}

.side-menu button{
  border:0;
  background:transparent;
  color:#e7f3ee;
  border-radius:16px;
  padding:14px;
  text-align:left;
  font-weight:950;
  cursor:pointer;
  transition:.16s;
}

.side-menu button:hover{background:rgba(255,255,255,.12)}
.side-menu button.active{
  background:#1769e8;
  color:white;
  box-shadow:0 10px 26px rgba(23,105,232,.25);
}

.sidebar-box,
.sidebar-user{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.15);
  border-radius:18px;
  padding:15px;
}

.sidebar-box label,
.sidebar-box small,
.sidebar-user small{
  display:block;
  font-size:11px;
  color:#cde5da;
  font-weight:1000;
  text-transform:uppercase;
}

.sidebar-box select{
  width:100%;
  height:46px;
  margin-top:9px;
  background:#071d17;
  color:white;
  border:1px solid rgba(255,255,255,.20);
  border-radius:13px;
  padding:0 12px;
  font-weight:900;
}

.refresh-box strong{
  display:block;
  margin-top:8px;
  font-size:20px;
}

.refresh-box span{
  display:block;
  margin-top:3px;
  color:#cde5da;
  font-size:12px;
  font-weight:800;
}

.refresh-box button,
.sidebar-user button{
  width:100%;
  margin-top:12px;
  border:0;
  border-radius:13px;
  padding:11px;
  background:white;
  color:var(--verde);
  font-weight:1000;
  cursor:pointer;
}

.sidebar-user{margin-top:auto}
.sidebar-user b{display:block;margin-top:5px}

.app{
  margin-left:292px;
  padding:28px;
  min-width:0;
}

.topbar{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:18px;
}

.topbar h1{
  margin:0;
  font-size:31px;
  font-weight:1000;
  color:#10271e;
}

.topbar p{
  margin:5px 0 0;
  color:var(--muted);
  font-weight:750;
}

.actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.btn{
  border:0;
  border-radius:15px;
  padding:13px 18px;
  font-weight:1000;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

.btn.primary{
  background:linear-gradient(135deg,var(--verde),var(--verde2));
  color:white;
  box-shadow:0 13px 26px rgba(15,61,46,.23);
}

.btn.ghost{
  background:white;
  color:var(--verde);
  border:1px solid var(--line);
}

.status-card,
.filters-panel,
.panel,
.kpi,
.drill-panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

.status-card{
  padding:16px 18px;
  margin-bottom:18px;
  font-weight:900;
}

.status-card.ok{background:#ecfdf3;color:#0f5132;border-color:#bbf7d0}
.status-card.erro{background:#fff1f2;color:#991b1b;border-color:#fecdd3}

.filters-panel{
  padding:18px;
  display:grid;
  grid-template-columns:1.7fr repeat(6,minmax(130px,.75fr)) auto;
  gap:12px;
  align-items:end;
  margin-bottom:18px;
}

.field{
  display:flex;
  flex-direction:column;
  gap:7px;
}

.field label{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:1000;
  color:#26493d;
}

.field input,
.field select{
  width:100%;
  height:46px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fbfcfb;
  color:var(--txt);
  padding:0 13px;
  font-weight:850;
  outline:none;
}


.multi-select{
  position:relative;
}

.multi-select-btn{
  width:100%;
  height:46px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fbfcfb;
  color:var(--txt);
  padding:0 36px 0 13px;
  font-weight:850;
  outline:none;
  text-align:left;
  cursor:pointer;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  position:relative;
}

.multi-select-btn:after{
  content:"▾";
  position:absolute;
  right:13px;
  top:50%;
  transform:translateY(-50%);
  color:#35584c;
}

.multi-select-menu{
  display:none;
  position:absolute;
  top:52px;
  left:0;
  width:320px;
  max-height:280px;
  overflow:auto;
  background:white;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 22px 55px rgba(15,61,46,.22);
  z-index:40;
  padding:10px;
}

.multi-select.open .multi-select-menu{
  display:block;
}

.multi-option{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 9px;
  border-radius:12px;
  cursor:pointer;
  font-size:13px;
  font-weight:900;
  color:var(--txt);
}

.multi-option:hover{
  background:var(--verde3);
}

.multi-option input{
  width:16px;
  height:16px;
  accent-color:var(--verde);
}

.multi-empty{
  display:block;
  padding:10px;
  color:var(--muted);
  font-weight:800;
}

.classe-filter{display:none}
body[data-view="consultas"] .classe-filter{display:flex}

.view{display:none}
.view.active{display:block}

.kpis{
  display:grid;
  gap:15px;
  margin-bottom:18px;
}

.kpis-5{grid-template-columns:repeat(5,minmax(0,1fr))}

.kpi{
  padding:18px;
  overflow:hidden;
  position:relative;
}

.kpi:before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:4px;
  background:linear-gradient(90deg,var(--verde),#b8942f);
}

.kpi.green:before{background:#22c55e}
.kpi.red:before{background:#ef4444}
.kpi.orange:before{background:#f97316}
.kpi.yellow:before{background:#facc15}
.kpi.blue:before{background:#3b82f6}
.kpi.purple:before{background:#8b5cf6}
.kpi.main{background:linear-gradient(135deg,var(--verde),var(--verde2));color:white}
.kpi.main span,.kpi.main small,.kpi.main strong{color:white!important}

.kpi span{
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
  font-weight:1000;
}

.kpi strong{
  display:block;
  font-size:30px;
  margin-top:8px;
  color:var(--verde);
}

.kpi small{
  display:block;
  margin-top:5px;
  color:#66786e;
  font-weight:850;
}

.panel{
  overflow:hidden;
  margin-bottom:18px;
}

.panel-head{
  padding:17px 18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border-bottom:1px solid var(--line);
}

.panel-head strong{font-size:18px}
.panel-head small{color:var(--muted);font-weight:850}

.table-wrap{
  overflow:auto;
  max-height:calc(100vh - 365px);
}

table{
  width:100%;
  border-collapse:collapse;
  min-width:1260px;
}

th{
  background:var(--verde);
  color:white;
  padding:12px 10px;
  text-align:left;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.035em;
  white-space:nowrap;
  position:sticky;
  top:0;
  z-index:2;
}

td{
  padding:11px 10px;
  border-bottom:1px solid var(--line);
  vertical-align:middle;
  font-size:13px;
  font-weight:800;
}

tbody tr:hover{background:#f2f8f5}
tbody tr{cursor:pointer}

.badge{
  display:inline-flex;
  border-radius:999px;
  padding:6px 10px;
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  line-height:1.1;
}

.badge.green{background:#dcfce7;color:#166534}
.badge.red{background:#fee2e2;color:#b91c1c}
.badge.orange{background:#ffedd5;color:#9a3412}
.badge.yellow{background:#fef9c3;color:#854d0e}
.badge.blue{background:#dbeafe;color:#1d4ed8}
.badge.gray{background:#f1f5f9;color:#475569}

.stack-chart{
  padding:16px 18px 20px;
  display:grid;
  grid-template-columns:repeat(4,minmax(180px,1fr));
  gap:22px;
  min-height:240px;
}

.stack-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}

.stack-col{
  width:100%;
  max-width:210px;
  height:150px;
  border-bottom:1px dashed #bbb;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:0 14px;
}

.stack-bar{
  width:100%;
  min-height:20px;
  border-radius:9px 9px 0 0;
  overflow:hidden;
  display:flex;
  flex-direction:column-reverse;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);
}

.stack-part{
  display:grid;
  place-items:center;
  color:white;
  font-weight:1000;
  font-size:12px;
}

.stack-part.green{background:#2cad12}
.stack-part.red{background:#f21d1d}

.stack-label{
  text-align:center;
  color:#53615c;
  font-size:11px;
  font-weight:1000;
  min-height:28px;
}

.stack-total{
  background:#eef2f1;
  border-radius:999px;
  padding:3px 8px;
  font-size:12px;
  font-weight:1000;
}

.drill-panel{
  padding:16px 18px;
  margin-bottom:18px;
  display:flex;
  gap:18px;
  align-items:flex-end;
}

.drill-panel .field{width:260px}
.drill-panel p{
  margin:0 0 10px;
  color:var(--muted);
  font-weight:800;
}

.heat-cell{
  min-width:50px;
  height:34px;
  border-radius:7px;
  display:grid;
  place-items:center;
  font-size:12px;
  font-weight:1000;
  border:1px solid rgba(255,255,255,.65);
  cursor:pointer;
}

.heat-cell.green{background:#2ecf52;color:#05230d}
.heat-cell.orange{background:#f59e0b;color:#2d1800}
.heat-cell.red{background:#ef4444;color:white}
.heat-cell.blue{background:#60a5fa;color:#05244d}
.heat-cell.gray{background:#e5e7eb;color:#4b5563}

.heat-legend{
  padding:14px 18px;
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  border-top:1px solid var(--line);
  font-size:12px;
  font-weight:1000;
  color:#52615c;
}

.lg{
  width:12px;
  height:12px;
  border-radius:4px;
  display:inline-block;
  margin-right:6px;
  vertical-align:-2px;
}

.lg.green{background:#2ecf52}
.lg.orange{background:#f59e0b}
.lg.red{background:#ef4444}
.lg.blue{background:#60a5fa}
.lg.gray{background:#e5e7eb}

.modal{
  position:fixed;
  inset:0;
  display:none;
  place-items:center;
  background:rgba(0,0,0,.45);
  padding:22px;
  z-index:90;
}

.modal.show{display:grid}

.modal-card{
  position:relative;
  width:min(680px,100%);
  background:#071d17;
  color:white;
  border-radius:24px;
  box-shadow:0 30px 90px rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.15);
  padding:22px;
}

.modal-close{
  position:absolute;
  right:18px;
  top:15px;
  border:0;
  background:transparent;
  color:white;
  font-size:28px;
  cursor:pointer;
}

.modal-card h3{margin:0 40px 18px 0}

.modal-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:11px;
}

.modal-grid div{
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  padding:11px;
}

.modal-grid small{
  display:block;
  color:#a7dcc6;
  font-weight:1000;
  font-size:11px;
  text-transform:uppercase;
}

.modal-grid b{
  display:block;
  margin-top:4px;
  font-size:14px;
}

@media(max-width:1200px){
  .filters-panel{grid-template-columns:1fr 1fr}
  .kpis-5{grid-template-columns:repeat(2,1fr)}
  .stack-chart{grid-template-columns:1fr 1fr}
}

@media(max-width:900px){
  .login-screen{grid-template-columns:1fr}
  .login-hero{display:none}
  .sidebar{position:relative;width:100%;height:auto}
  .app{margin-left:0;padding:16px}
  .side-menu{display:flex;overflow:auto}
  .side-menu button{white-space:nowrap}
  .topbar{flex-direction:column}
  .actions,.actions .btn{width:100%}
  .filters-panel,.kpis-5,.stack-chart,.modal-grid{grid-template-columns:1fr}
  .drill-panel{display:block}
}

/* ===== AJUSTES DEFINITIVOS - FILTROS, GRÁFICO E RELATÓRIO ===== */
.filters-panel-sem-pendencia{
  grid-template-columns:1.65fr repeat(5,minmax(145px,.85fr)) auto;
}

.classe-filter{display:flex!important}

.stack-chart{
  display:flex;
  align-items:flex-end;
  gap:18px;
  overflow-x:auto;
  min-height:310px;
  padding:22px 18px 18px;
}

.cluster-item{
  min-width:150px;
  height:250px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
}

.cluster-bars{
  height:165px;
  width:100%;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:8px;
  border-bottom:1px solid #d8e3dd;
  padding:0 8px;
}

.colbar{
  width:34px;
  min-height:10px;
  border:0;
  border-radius:8px 8px 0 0;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:5px;
  color:white;
  font-size:11px;
  font-weight:1000;
  cursor:pointer;
  box-shadow:0 10px 20px rgba(15,61,46,.14);
  transition:.16s ease;
}

.colbar:hover{transform:translateY(-3px);filter:brightness(.96)}
.colbar.green{background:#22c55e}
.colbar.red{background:#ef4444}
.colbar.orange{background:#f97316}

.cluster-label{
  width:100%;
  text-align:center;
  color:#314c42;
  font-size:11px;
  line-height:1.15;
  font-weight:1000;
}

.cluster-label b,
.cluster-label small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cluster-label small{color:#66786e;margin-top:4px;font-weight:900}

.op-semaforo{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border-radius:999px;
  padding:6px 10px;
  font-size:11px;
  font-weight:1000;
  white-space:nowrap;
  max-width:240px;
  overflow:hidden;
  text-overflow:ellipsis;
}

.op-semaforo i{
  width:10px;
  height:10px;
  border-radius:50%;
  flex:0 0 10px;
  box-shadow:0 0 0 3px rgba(255,255,255,.85);
}

.op-semaforo.green{background:#dcfce7;color:#166534}
.op-semaforo.green i{background:#22c55e}
.op-semaforo.red{background:#fee2e2;color:#b91c1c}
.op-semaforo.red i{background:#ef4444}

.machine-card{
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  padding:12px;
  background:rgba(255,255,255,.05);
}

.machine-card small,
.machine-card span{display:block;color:#a7dcc6;font-weight:900;font-size:12px}
.machine-card b{display:block;margin:4px 0;color:white}

.drill-panel{
  align-items:center;
  flex-wrap:wrap;
}

.drill-panel p{
  flex:1 1 360px;
  margin:0;
}

.drill-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-left:auto;
}

.report-modal-box{
  grid-column:1/-1;
  display:grid;
  gap:12px;
}

.report-modal-box textarea{
  width:100%;
  min-height:280px;
  resize:vertical;
  border:1px solid rgba(255,255,255,.18);
  border-radius:16px;
  background:rgba(255,255,255,.08);
  color:white;
  padding:14px;
  font-weight:800;
  outline:none;
}

#matrizHora{min-width:1180px}
#matrizHora td:first-child,#matrizHora th:first-child{position:sticky;left:0;z-index:3;background:var(--verde);color:white}
#matrizHora tbody td:first-child{background:#f8fbfa;color:var(--txt);z-index:1}

@media(max-width:1200px){
  .filters-panel-sem-pendencia{grid-template-columns:1fr 1fr 1fr}
}

@media(max-width:900px){
  .filters-panel-sem-pendencia{grid-template-columns:1fr}
  .drill-actions,.drill-actions .btn{width:100%}
  .cluster-item{min-width:130px}
}

/* =========================================================
   AJUSTE DEFINITIVO — GRÁFICO, RELATÓRIO, STATUS FINAL
========================================================= */

.stack-chart{
  min-height:360px;
  display:block;
  padding:18px;
}

.power-chart{
  width:100%;
  overflow:auto;
  padding:6px 4px 18px;
}

.power-legend{
  display:flex;
  flex-wrap:wrap;
  gap:12px 18px;
  align-items:center;
  margin-bottom:16px;
  color:#42584f;
  font-size:12px;
  font-weight:1000;
}

.power-grid{
  min-width:900px;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr));
  gap:18px;
  align-items:end;
  border-left:1px dashed #d5e2dc;
  border-bottom:1px solid #d5e2dc;
  padding:20px 12px 0;
  background:linear-gradient(180deg,rgba(15,61,46,.04),transparent 72%);
  border-radius:18px;
}

.power-group{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-height:255px;
}

.power-bars{
  height:190px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:5px;
}

.power-bar{
  width:16px;
  min-height:6px;
  border:0;
  border-radius:7px 7px 0 0;
  cursor:pointer;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  color:white;
  font-size:10px;
  font-weight:1000;
  box-shadow:0 10px 22px rgba(15,61,46,.13);
  transition:.15s ease;
}

.power-bar:hover{
  transform:translateY(-4px);
  filter:brightness(.96);
}

.power-bar span{
  transform:translateY(-16px);
  color:#123329;
  background:white;
  border:1px solid #dde8e2;
  border-radius:999px;
  padding:2px 5px;
  min-width:18px;
}

.power-bar.green{background:#22c55e}
.power-bar.red{background:#ef4444}
.power-bar.orange{background:#f97316}
.power-bar.yellow{background:#eab308}
.power-bar.blue{background:#3b82f6}

.power-label{
  text-align:center;
  margin-top:10px;
  font-size:11px;
  font-weight:1000;
  color:#31483f;
  min-height:42px;
}

.power-label small{
  display:block;
  margin-top:3px;
  color:#66786e;
  font-size:10px;
}

.status-base,
.semaforo-final{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border-radius:999px;
  padding:6px 10px;
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
  white-space:nowrap;
}

.semaforo-final i{
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
  box-shadow:0 0 0 3px rgba(255,255,255,.85),0 0 14px currentColor;
}

.status-base.green,.semaforo-final.green{background:#dcfce7;color:#166534}
.status-base.red,.semaforo-final.red{background:#fee2e2;color:#b91c1c}
.status-base.orange,.semaforo-final.orange{background:#ffedd5;color:#9a3412}
.status-base.yellow,.semaforo-final.yellow{background:#fef9c3;color:#854d0e}
.status-base.blue,.semaforo-final.blue{background:#dbeafe;color:#1d4ed8}

.report-fullscreen{
  place-items:stretch;
  padding:18px;
}

.report-fullscreen .modal-card{
  width:100%;
  max-width:none;
  height:calc(100vh - 36px);
  border-radius:26px;
  display:flex;
  flex-direction:column;
  background:#f8faf9;
  color:var(--txt);
  border:1px solid var(--line);
}

.report-fullscreen .modal-close{
  color:var(--verde);
  z-index:3;
}

.report-fullscreen .modal-card h3{
  color:var(--verde);
  margin-bottom:12px;
}

.report-fullscreen .modal-grid{
  display:flex;
  flex-direction:column;
  gap:14px;
  min-height:0;
  overflow:hidden;
}

.report-header{
  background:white;
  border:1px solid var(--line);
  border-radius:20px;
  padding:15px 18px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  box-shadow:var(--shadow);
}

.report-header b{
  display:block;
  color:var(--verde);
  font-size:18px;
}

.report-header span{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:850;
  margin-top:3px;
}

.report-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.report-kpis{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}

.report-kpis article{
  background:white;
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px;
  box-shadow:var(--shadow);
}

.report-kpis span{
  display:block;
  font-size:10px;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:1000;
}

.report-kpis b{
  display:block;
  margin-top:6px;
  font-size:20px;
  color:var(--verde);
}

.report-table-wrap{
  flex:1;
  overflow:auto;
  background:white;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow);
}

.report-table-wrap table,
.report-table{
  width:100%;
  min-width:1100px;
  border-collapse:collapse;
}

.report-table-wrap th,
.report-table th{
  background:var(--verde);
  color:white;
  padding:12px 10px;
  font-size:11px;
  text-align:left;
  text-transform:uppercase;
  position:sticky;
  top:0;
  z-index:2;
}

.report-table-wrap td,
.report-table td{
  padding:11px 10px;
  border-bottom:1px solid var(--line);
  font-size:12px;
  font-weight:850;
  color:var(--txt);
}

.heat-cell.mini{
  min-width:42px;
  height:26px;
  border-radius:7px;
  font-size:11px;
}

.matrix-sub{
  display:block;
  margin-top:3px;
  font-size:10px;
  color:#66786e;
  font-weight:900;
}

.btn-relatorio-global{
  background:#fff!important;
  color:var(--verde)!important;
  border:1px solid var(--line)!important;
}

@media(max-width:900px){
  .power-grid{min-width:760px;gap:12px}
  .report-fullscreen{padding:8px}
  .report-fullscreen .modal-card{height:calc(100vh - 16px);border-radius:18px;padding:14px}
  .report-header{align-items:flex-start;flex-direction:column}
  .report-kpis{grid-template-columns:1fr 1fr}
}

@media print{
  body *{visibility:hidden!important}
  .report-fullscreen,.report-fullscreen *{visibility:visible!important}
  .report-fullscreen{position:static!important;background:white!important;padding:0!important}
  .report-fullscreen .modal-card{height:auto!important;box-shadow:none!important;border:0!important}
  .modal-close,.report-actions{display:none!important}
}


/* ===== AJUSTE COMPLETO FINAL ===== */
th[data-sort-col], th[data-matrix-sort]{cursor:pointer;user-select:none}
th[data-sort-col]:hover, th[data-matrix-sort]:hover{filter:brightness(1.12)}
body[data-view="tempo"] #graficoStatusFrente{display:none!important}
.vinculo-os-box{grid-column:1/-1!important;background:rgba(255,255,255,.06)!important}
.vinculo-os-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;border:0!important;padding:0!important;background:transparent!important}
.vinculo-os-list button{border:1px solid rgba(255,255,255,.15);border-radius:14px;background:white;color:#0f3d2e;padding:11px;text-align:left;font-weight:900;cursor:pointer}
.vinculo-os-list button:hover{background:#ecfdf3}
.vinculo-os-list button span{display:block;margin-top:4px;font-size:11px;color:#47675c;font-weight:800}
.matrix-sub{display:block;margin-top:3px;font-size:10px;color:#66786e;font-weight:900}
@media(max-width:900px){.vinculo-os-list{grid-template-columns:1fr}}

/* ===== AJUSTE PROCESSO/FRENTE + ORIGEM + PDF ===== */
.actions{
  align-items:center;
  flex-wrap:nowrap;
}
.actions .btn{
  white-space:nowrap;
}
#btnGerarPDF{
  background:linear-gradient(135deg,var(--verde),var(--verde2));
  color:white;
  box-shadow:0 13px 26px rgba(15,61,46,.23);
}
#btnLimpar{
  min-width:92px;
}
.filters-panel{
  grid-template-columns:1.65fr repeat(6,minmax(128px,.8fr));
}
#tabelaConsultas td,
#tabelaTempo td,
#tabelaApontamento td,
#matrizHora td{
  text-align:center;
  vertical-align:middle;
}
#tabelaConsultas th,
#tabelaTempo th,
#tabelaApontamento th,
#matrizHora th{
  text-align:center;
}
.kpi-clickable{
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.kpi-clickable:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 55px rgba(15,61,46,.18);
}
.kpi-active-filter{
  outline:3px solid rgba(23,105,232,.25);
  border-color:#1769e8!important;
}
@media(max-width:1280px){
  .actions{flex-wrap:wrap;justify-content:flex-end}
  .filters-panel{grid-template-columns:1fr 1fr 1fr;}
}
@media(max-width:760px){
  .actions{width:100%;display:grid;grid-template-columns:1fr 1fr;}
  .actions .btn{width:100%;padding-left:10px;padding-right:10px;}
  .filters-panel{grid-template-columns:1fr;}
}


/* PATCH: VISUAIS SALVOS */
.modal-visuais{
  grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr);
  gap:14px;
  align-items:start;
}
.visual-save-box,
.visual-list-box{
  display:grid;
  gap:10px;
  border:1px solid rgba(255,255,255,.15)!important;
  background:rgba(255,255,255,.06)!important;
  border-radius:16px;
  padding:14px;
}
.visual-save-box input{
  width:100%;
  height:46px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:14px;
  padding:0 12px;
  font-weight:900;
  outline:none;
}
.visual-list{display:grid;gap:10px}
.visual-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px 12px;
  align-items:center;
  background:rgba(255,255,255,.94);
  color:var(--verde);
  border-radius:15px;
  padding:12px;
}
.visual-item b{font-size:14px}
.visual-item span{grid-column:1/2;color:#48655a;font-size:12px;font-weight:850}
.visual-item div{grid-column:2/3;grid-row:1/3;display:flex;gap:8px;align-items:center}
.btn.danger,.visual-item .danger{color:#991b1b!important}
@media(max-width:760px){.modal-visuais{grid-template-columns:1fr}.visual-item{grid-template-columns:1fr}.visual-item div{grid-column:1;grid-row:auto;flex-wrap:wrap}}


/* RESTAURAÇÃO MENU TOTAL/FRENTE + REMOÇÃO DE SUBTÍTULOS EM CINZA */
#pageSubtitle,
.panel-head small,
.kpi small,
.drill-panel p,
.matrix-sub{
  display:none !important;
}
.total-frente-toolbar{
  padding:16px 18px;
  border-bottom:1px solid var(--line);
  background:#fff;
}
.total-form-grid{
  display:grid;
  grid-template-columns:minmax(220px,1.2fr) minmax(220px,1.2fr) minmax(110px,.5fr) auto auto;
  gap:12px;
  align-items:end;
}
.total-form-grid label{
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:1000;
  color:#26493d;
}
.total-form-grid input,
.total-form-grid select,
.input-total-frente{
  height:46px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fbfcfb;
  color:var(--txt);
  padding:0 13px;
  font-weight:850;
  outline:none;
  width:100%;
}
.input-total-frente{ max-width:130px; text-align:center; }
.btn.danger,
.btn-remover-total{
  color:#b91c1c!important;
  border-color:#fecaca!important;
  background:#fff5f5!important;
}
body[data-view="totais"] .classe-filter,
body[data-view="totais"] #boxFiltroStatus,
body[data-view="totais"] #campoFiltroClasse{
  display:none!important;
}
@media(max-width:1100px){
  .total-form-grid{grid-template-columns:1fr 1fr;}
  .total-form-grid .btn{width:100%;}
}
@media(max-width:720px){
  .total-form-grid{grid-template-columns:1fr;}
}

/* =========================================================
   PATCH FINAL — STATUS PIMS NO MENU LATERAL
========================================================= */
#statusConexao{
  display:none!important;
}

.pims-status-box strong{
  display:block;
  margin-top:8px;
  font-size:18px;
  line-height:1.15;
}

.pims-status-box strong.conectado{
  color:#ffffff;
}

.pims-status-box strong.consultando{
  color:#fef3c7;
}

.pims-status-box strong.erro{
  color:#fecaca;
}

.pims-status-box span{
  display:block;
  margin-top:5px;
  color:#cde5da;
  font-size:12px;
  font-weight:850;
  line-height:1.28;
}

.pims-status-box .proxima-linha b{
  color:#ffffff;
  font-weight:1000;
}


/* ===== CORREÇÃO RESPONSIVA DO MODAL DETERMINAR O.S. ===== */
.modal{
  overflow:auto;
  overscroll-behavior:contain;
}

.modal-vinculo-os{
  padding:14px;
  align-items:center;
  justify-items:center;
}

.modal-vinculo-os .modal-card{
  width:min(1120px, calc(100vw - 28px));
  max-height:calc(100dvh - 28px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.modal-vinculo-os #modalTitulo{
  flex:0 0 auto;
}

.modal-vinculo-os .modal-grid{
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  align-content:start;
  overflow:auto;
  padding-right:4px;
  min-height:0;
}

.modal-vinculo-os .vinculo-os-box{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-height:0;
  max-height:54vh;
  overflow:hidden;
  border-color:rgba(255,255,255,.14)!important;
}

.vinculo-os-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}

.vinculo-os-head span{
  flex:0 0 auto;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  padding:6px 10px;
  font-size:11px;
  font-weight:1000;
  color:#d6eee4;
  white-space:nowrap;
}

.vinculo-os-search{
  border:0!important;
  padding:0!important;
  background:transparent!important;
}

.vinculo-os-search input{
  width:100%;
  height:46px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:14px;
  background:rgba(255,255,255,.96);
  color:#0f3d2e;
  padding:0 14px;
  font-weight:900;
  outline:none;
}

.modal-vinculo-os .vinculo-os-list{
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  overflow:auto;
  min-height:0;
  max-height:34vh;
  padding-right:4px!important;
}

.modal-vinculo-os .vinculo-os-list button{
  min-height:94px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;
}

.vinculo-os-empty{
  display:block;
  padding:14px;
  font-weight:900;
  color:#d6eee4;
}

@media(max-width:760px){
  .modal-vinculo-os{
    padding:0;
    align-items:end;
  }

  .modal-vinculo-os .modal-card{
    width:100vw;
    max-height:92dvh;
    border-radius:24px 24px 0 0;
    padding:18px 14px max(18px, env(safe-area-inset-bottom));
  }

  .modal-vinculo-os .modal-close{
    top:10px;
    right:12px;
  }

  .modal-vinculo-os .modal-grid{
    grid-template-columns:1fr;
    gap:10px;
  }

  .modal-vinculo-os .vinculo-os-box{
    max-height:58vh;
  }

  .vinculo-os-head{
    display:block;
  }

  .vinculo-os-head span{
    display:inline-flex;
    margin-top:8px;
  }

  .modal-vinculo-os .vinculo-os-list{
    grid-template-columns:1fr;
    max-height:38vh;
  }

  .modal-vinculo-os .vinculo-os-list button{
    min-height:82px;
  }
}


/* =========================================================
   MENU 1 — CONSULTAS GERAIS SEM SCROLL LATERAL
   Mantém os demais menus com o comportamento original.
========================================================= */
body[data-view="consultas"] .filters-panel{
  grid-template-columns:minmax(220px,1.45fr) repeat(6,minmax(118px,.8fr));
  align-items:end;
}

body[data-view="consultas"] .consultas-panel{
  overflow:hidden;
}

body[data-view="consultas"] .consultas-table-wrap{
  overflow-x:hidden;
  overflow-y:auto;
  max-height:calc(100vh - 255px);
}

#tabelaConsultas.tabela-consultas{
  width:100%;
  min-width:0!important;
  table-layout:fixed;
  border-collapse:collapse;
}

#tabelaConsultas.tabela-consultas th,
#tabelaConsultas.tabela-consultas td{
  text-align:center;
  vertical-align:middle;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.22;
}

#tabelaConsultas.tabela-consultas th{
  padding:9px 5px;
  font-size:9px;
  letter-spacing:.02em;
}

#tabelaConsultas.tabela-consultas td{
  padding:8px 5px;
  font-size:10.5px;
  font-weight:850;
}

#tabelaConsultas.tabela-consultas th:nth-child(1),
#tabelaConsultas.tabela-consultas td:nth-child(1){width:7.5%;}
#tabelaConsultas.tabela-consultas th:nth-child(2),
#tabelaConsultas.tabela-consultas td:nth-child(2){width:5.2%;}
#tabelaConsultas.tabela-consultas th:nth-child(3),
#tabelaConsultas.tabela-consultas td:nth-child(3){width:5.4%;}
#tabelaConsultas.tabela-consultas th:nth-child(4),
#tabelaConsultas.tabela-consultas td:nth-child(4){width:7.2%;}
#tabelaConsultas.tabela-consultas th:nth-child(5),
#tabelaConsultas.tabela-consultas td:nth-child(5){width:7.1%;}
#tabelaConsultas.tabela-consultas th:nth-child(6),
#tabelaConsultas.tabela-consultas td:nth-child(6){width:6.2%;}
#tabelaConsultas.tabela-consultas th:nth-child(7),
#tabelaConsultas.tabela-consultas td:nth-child(7){width:4.8%;}
#tabelaConsultas.tabela-consultas th:nth-child(8),
#tabelaConsultas.tabela-consultas td:nth-child(8){width:17%;}
#tabelaConsultas.tabela-consultas th:nth-child(9),
#tabelaConsultas.tabela-consultas td:nth-child(9){width:6.3%;}
#tabelaConsultas.tabela-consultas th:nth-child(10),
#tabelaConsultas.tabela-consultas td:nth-child(10){width:8.7%;}
#tabelaConsultas.tabela-consultas th:nth-child(11),
#tabelaConsultas.tabela-consultas td:nth-child(11),
#tabelaConsultas.tabela-consultas th:nth-child(12),
#tabelaConsultas.tabela-consultas td:nth-child(12){width:6.4%;}
#tabelaConsultas.tabela-consultas th:nth-child(13),
#tabelaConsultas.tabela-consultas td:nth-child(13){width:7%;}
#tabelaConsultas.tabela-consultas th:nth-child(14),
#tabelaConsultas.tabela-consultas td:nth-child(14){width:4.5%;}
#tabelaConsultas.tabela-consultas th:nth-child(15),
#tabelaConsultas.tabela-consultas td:nth-child(15){width:3.3%;}

#tabelaConsultas.tabela-consultas td.obs-consulta{
  text-align:left;
  font-weight:950;
}

#tabelaConsultas.tabela-consultas tfoot td{
  background:#f7faf8;
  border-top:2px solid var(--verde);
  font-weight:1000;
  color:#0f3d2e;
}

#tabelaConsultas .badge{
  max-width:100%;
  white-space:normal;
  padding:5px 7px;
  font-size:9px;
}

@media(max-width:1500px){
  body[data-view="consultas"] .consultas-table-wrap{
    overflow:visible;
    max-height:none;
  }
  #tabelaConsultas.tabela-consultas,
  #tabelaConsultas.tabela-consultas thead,
  #tabelaConsultas.tabela-consultas tbody,
  #tabelaConsultas.tabela-consultas tfoot,
  #tabelaConsultas.tabela-consultas tr,
  #tabelaConsultas.tabela-consultas th,
  #tabelaConsultas.tabela-consultas td{
    display:block;
    width:100%!important;
  }
  #tabelaConsultas.tabela-consultas thead{
    display:none;
  }
  #tabelaConsultas.tabela-consultas tbody{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    gap:14px;
    padding:14px;
    background:#f5f8f6;
  }
  #tabelaConsultas.tabela-consultas tbody tr{
    background:white;
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:0 12px 30px rgba(15,61,46,.10);
    overflow:hidden;
  }
  #tabelaConsultas.tabela-consultas tbody tr:hover{
    background:white;
  }
  #tabelaConsultas.tabela-consultas td{
    display:grid;
    grid-template-columns:132px minmax(0,1fr);
    gap:10px;
    align-items:center;
    min-height:38px;
    padding:9px 12px;
    text-align:left!important;
    border-bottom:1px solid #edf3f0;
    font-size:12px;
  }
  #tabelaConsultas.tabela-consultas td:before{
    content:attr(data-label);
    color:#0f3d2e;
    font-size:10px;
    text-transform:uppercase;
    font-weight:1000;
    letter-spacing:.035em;
  }
  #tabelaConsultas.tabela-consultas td:last-child{
    border-bottom:0;
  }
  #tabelaConsultas.tabela-consultas tfoot tr{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:10px;
    background:white;
    border-top:1px solid var(--line);
    padding:12px 14px;
  }
  #tabelaConsultas.tabela-consultas tfoot td{
    border:0;
    padding:8px 10px;
    border-radius:12px;
    background:#edf7f1;
    text-align:center!important;
  }
  #tabelaConsultas.tabela-consultas tfoot td[colspan]{
    display:none!important;
  }
}

@media(max-width:900px){
  body[data-view="consultas"] .filters-panel{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:620px){
  body[data-view="consultas"] .filters-panel{
    grid-template-columns:1fr;
  }
  #tabelaConsultas.tabela-consultas tbody{
    grid-template-columns:1fr;
    padding:10px;
  }
  #tabelaConsultas.tabela-consultas td{
    grid-template-columns:1fr;
    gap:3px;
  }
  #tabelaConsultas.tabela-consultas tfoot tr{
    grid-template-columns:1fr;
  }
}

/* =========================================================
   MENU 1 — CONSULTAS GERAIS V2 POWER BI/EXCEL
========================================================= */
#tabelaConsultas.tabela-powerbi{
  table-layout:fixed!important;
  width:100%!important;
  min-width:0!important;
}

#tabelaConsultas.tabela-powerbi th{
  position:sticky;
  top:0;
  z-index:3;
  user-select:none;
  cursor:pointer;
  padding-right:12px;
}

#tabelaConsultas.tabela-powerbi th .th-label{
  display:inline-block;
  max-width:calc(100% - 10px);
}

#tabelaConsultas.tabela-powerbi th .sort-ind{
  display:inline-flex;
  min-width:10px;
  justify-content:center;
  margin-left:2px;
  color:#fff;
  font-weight:1000;
}

#tabelaConsultas.tabela-powerbi .col-resizer{
  position:absolute;
  top:0;
  right:-4px;
  width:9px;
  height:100%;
  cursor:col-resize;
  z-index:4;
  touch-action:none;
}

#tabelaConsultas.tabela-powerbi .col-resizer:after{
  content:"";
  position:absolute;
  top:22%;
  bottom:22%;
  left:4px;
  width:1px;
  background:rgba(255,255,255,.46);
}

#tabelaConsultas.tabela-powerbi th:hover .col-resizer:after{
  background:#fff;
  width:2px;
}

#tabelaConsultas.tabela-powerbi td,
#tabelaConsultas.tabela-powerbi th{
  overflow-wrap:anywhere;
  word-break:normal;
}

#tabelaConsultas.tabela-powerbi .definir-frente-link{
  border:0;
  background:#fff1f2;
  color:#b91c1c;
  border-radius:999px;
  padding:6px 9px;
  font-size:10px;
  font-weight:1000;
  cursor:pointer;
  text-transform:uppercase;
  box-shadow:inset 0 0 0 1px #fecdd3;
}

#tabelaConsultas.tabela-powerbi .definir-frente-link:hover{
  background:#fee2e2;
}

#tabelaConsultas.tabela-powerbi .semaforo-final{
  max-width:100%;
  white-space:normal;
  justify-content:center;
  line-height:1.15;
  padding:5px 7px;
  font-size:9px;
}

.modal.modal-consulta-equipamento .modal-card{
  width:min(980px,calc(100vw - 28px));
  border-radius:28px;
  overflow:hidden;
  padding:0;
}

.modal.modal-consulta-equipamento #modalTitulo{
  margin:0;
  padding:22px 68px 18px 24px;
  background:linear-gradient(135deg,var(--verde),var(--verde2));
  color:white;
  font-size:24px;
  font-weight:1000;
}

.modal.modal-consulta-equipamento .modal-close{
  background:rgba(255,255,255,.14);
  color:white;
  top:14px;
  right:16px;
}

.modal-consulta-grid{
  display:block;
  padding:20px 22px 24px;
  max-height:calc(90vh - 86px);
  overflow:auto;
}

.consulta-modal-summary{
  display:grid;
  grid-template-columns:1.1fr .8fr 1.4fr;
  gap:12px;
  margin-bottom:14px;
}

.consulta-modal-summary > div,
.consulta-modal-info > div,
.consulta-modal-observacao,
.consulta-modal-brutos{
  background:#f8fbf9;
  border:1px solid var(--line);
  border-radius:18px;
  padding:13px;
}

.consulta-modal-summary small,
.consulta-modal-info small,
.consulta-modal-observacao small{
  display:block;
  color:#5d7067;
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:6px;
}

.consulta-modal-summary strong{
  display:block;
  color:var(--verde);
  font-size:28px;
  line-height:1;
}

.consulta-modal-info{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

.consulta-modal-info b{
  display:block;
  color:#10271e;
  font-size:13px;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.consulta-modal-observacao{
  margin-top:12px;
}

.consulta-modal-observacao p{
  margin:0;
  color:#10271e;
  font-size:14px;
  font-weight:850;
  line-height:1.45;
  white-space:pre-wrap;
}

.consulta-modal-brutos{
  margin-top:12px;
}

.consulta-modal-brutos summary{
  cursor:pointer;
  color:var(--verde);
  font-weight:1000;
}

.consulta-modal-brutos pre{
  margin:12px 0 0;
  max-height:220px;
  overflow:auto;
  background:#061b15;
  color:#eafff5;
  border-radius:14px;
  padding:12px;
  font-size:11px;
}

@media(min-width:901px){
  body[data-view="consultas"] .consultas-table-wrap{
    overflow-x:hidden!important;
    overflow-y:auto!important;
    max-height:calc(100vh - 255px)!important;
  }

  #tabelaConsultas.tabela-consultas,
  #tabelaConsultas.tabela-consultas thead,
  #tabelaConsultas.tabela-consultas tbody,
  #tabelaConsultas.tabela-consultas tfoot,
  #tabelaConsultas.tabela-consultas tr{
    display:revert!important;
  }

  #tabelaConsultas.tabela-consultas th,
  #tabelaConsultas.tabela-consultas td{
    display:table-cell!important;
  }

  #tabelaConsultas.tabela-consultas thead{
    display:table-header-group!important;
  }

  #tabelaConsultas.tabela-consultas tbody{
    display:table-row-group!important;
    padding:0!important;
    background:transparent!important;
  }

  #tabelaConsultas.tabela-consultas tfoot{
    display:table-footer-group!important;
  }

  #tabelaConsultas.tabela-consultas tbody tr{
    display:table-row!important;
    box-shadow:none!important;
    border-radius:0!important;
    border:0!important;
  }

  #tabelaConsultas.tabela-consultas td:before{
    content:none!important;
  }

  #tabelaConsultas.tabela-consultas td{
    min-height:0!important;
  }
}

@media(max-width:900px){
  #tabelaConsultas.tabela-powerbi colgroup,
  #tabelaConsultas.tabela-powerbi thead{
    display:none!important;
  }

  #tabelaConsultas.tabela-powerbi tbody{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;
    gap:14px!important;
    padding:14px!important;
    background:#f5f8f6!important;
  }

  #tabelaConsultas.tabela-powerbi tr,
  #tabelaConsultas.tabela-powerbi td{
    display:block!important;
    width:100%!important;
  }

  #tabelaConsultas.tabela-powerbi tbody tr{
    background:white!important;
    border:1px solid var(--line)!important;
    border-radius:18px!important;
    box-shadow:0 12px 30px rgba(15,61,46,.10)!important;
    overflow:hidden!important;
  }

  #tabelaConsultas.tabela-powerbi td{
    display:grid!important;
    grid-template-columns:130px minmax(0,1fr)!important;
    gap:10px!important;
    align-items:center!important;
    text-align:left!important;
    font-size:12px!important;
    padding:9px 12px!important;
  }

  #tabelaConsultas.tabela-powerbi td:before{
    content:attr(data-label)!important;
    color:var(--verde)!important;
    font-size:10px!important;
    font-weight:1000!important;
    text-transform:uppercase!important;
  }

  #tabelaConsultas.tabela-powerbi tfoot tr{
    display:grid!important;
    grid-template-columns:1fr 1fr 1fr!important;
    gap:10px!important;
    padding:12px!important;
  }
}

@media(max-width:760px){
  .consulta-modal-summary,
  .consulta-modal-info{
    grid-template-columns:1fr;
  }

  .modal.modal-consulta-equipamento .modal-card{
    width:100vw;
    max-height:94dvh;
    border-radius:24px 24px 0 0;
  }

  .modal-consulta-grid{
    max-height:calc(94dvh - 82px);
    padding:14px;
  }

  .modal.modal-consulta-equipamento #modalTitulo{
    font-size:19px;
    padding:20px 58px 16px 16px;
  }
}


/* ===== MENU LATERAL RECOLHÍVEL / RESPONSIVO ===== */
:root{
  --sidebar-width:292px;
}

.sidebar,
.app{
  transition:margin-left .22s ease, transform .22s ease, width .22s ease, padding .22s ease;
}

.sidebar{
  z-index:70;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.28) transparent;
}

.sidebar::-webkit-scrollbar{width:7px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:999px}

.topbar-title-wrap{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.topbar-title-text{
  min-width:0;
}

.sidebar-toggle-inline{
  width:52px;
  height:52px;
  border:1px solid var(--line);
  border-radius:17px;
  background:#fff;
  color:var(--verde);
  box-shadow:0 12px 32px rgba(15,61,46,.12);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  cursor:pointer;
  font-weight:1000;
  flex:0 0 52px;
  transition:.18s ease;
}

.sidebar-toggle-inline:hover{
  transform:translateY(-1px);
  background:var(--verde3);
}

.sidebar-toggle-icon{
  font-size:21px;
  line-height:1;
}

.sidebar-toggle-text{
  display:none;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.sidebar-backdrop{
  display:none;
}

body.sidebar-collapsed .sidebar{
  transform:translateX(calc(-1 * var(--sidebar-width)));
  pointer-events:none;
}

body.sidebar-collapsed .app{
  margin-left:0;
}

body.sidebar-collapsed .topbar{
  max-width:none;
}

@media(min-width:901px){
  body:not(.sidebar-collapsed) .app{
    margin-left:var(--sidebar-width);
  }

  body.sidebar-collapsed .filters-panel,
  body.sidebar-collapsed .panel,
  body.sidebar-collapsed .topbar,
  body.sidebar-collapsed .status-card{
    width:100%;
  }
}

@media(max-width:1180px){
  .topbar{
    align-items:stretch;
  }

  .topbar-title-wrap{
    width:100%;
  }

  .actions{
    justify-content:flex-start;
  }
}

@media(max-width:900px){
  .sidebar{
    position:fixed!important;
    inset:0 auto 0 0!important;
    width:min(326px,calc(100vw - 28px))!important;
    height:100dvh!important;
    padding:18px!important;
    transform:translateX(0)!important;
    box-shadow:22px 0 70px rgba(0,0,0,.30)!important;
  }

  body.sidebar-collapsed .sidebar{
    transform:translateX(-110%)!important;
  }

  .app,
  body:not(.sidebar-collapsed) .app,
  body.sidebar-collapsed .app{
    margin-left:0!important;
    padding:14px!important;
  }

  .side-menu{
    display:grid!important;
    overflow:visible!important;
    gap:9px!important;
  }

  .side-menu button{
    white-space:normal!important;
  }

  .sidebar-box,
  .sidebar-user{
    padding:14px!important;
  }

  .topbar{
    gap:12px!important;
    margin-bottom:14px!important;
  }

  .topbar-title-wrap{
    align-items:center!important;
    gap:10px!important;
  }

  .topbar h1{
    font-size:25px!important;
    line-height:1.08!important;
  }

  .topbar p{
    font-size:12px!important;
  }

  .sidebar-toggle-inline{
    width:46px;
    height:46px;
    flex-basis:46px;
    border-radius:15px;
  }

  body:not(.sidebar-collapsed) .sidebar-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:65;
    background:rgba(6,27,21,.45);
    backdrop-filter:blur(2px);
  }
}

@media(max-width:560px){
  .topbar-title-wrap{
    align-items:flex-start!important;
  }

  .sidebar-toggle-inline{
    margin-top:1px;
  }

  .actions{
    display:grid!important;
    grid-template-columns:1fr 1fr;
    gap:8px!important;
  }

  .actions .btn{
    min-height:46px;
    padding:10px 11px;
    font-size:12px;
  }

  .actions .btn.primary,
  .actions .btn-relatorio-global{
    grid-column:span 2;
  }
}


/* ===== AJUSTE FINAL — MENU LATERAL SEM SCROLL VERTICAL =====
   Mantém o menu responsivo, mas compacta os blocos para caber na altura da tela.
========================================================= */
.sidebar{
  overflow:hidden!important;
  gap:clamp(8px,1.35vh,16px)!important;
  padding:clamp(12px,1.8vh,20px)!important;
}

.sidebar .brand{
  gap:10px!important;
  flex-shrink:0!important;
}

.sidebar .brand-logo{
  width:clamp(46px,6vh,58px)!important;
  height:clamp(46px,6vh,58px)!important;
  flex-basis:clamp(46px,6vh,58px)!important;
  border-radius:clamp(14px,2vh,18px)!important;
}

.sidebar .brand-logo img{
  width:clamp(38px,5vh,50px)!important;
  max-height:clamp(38px,5vh,50px)!important;
}

.sidebar .brand strong{
  font-size:clamp(13px,1.8vh,17px)!important;
  line-height:1.08!important;
}

.sidebar .brand span{
  font-size:clamp(10px,1.25vh,12px)!important;
  margin-top:2px!important;
}

.side-menu{
  gap:clamp(5px,.85vh,8px)!important;
  flex-shrink:0!important;
}

.side-menu button{
  padding:clamp(9px,1.4vh,13px) clamp(10px,1.8vh,14px)!important;
  border-radius:14px!important;
  font-size:clamp(13px,1.65vh,15px)!important;
  line-height:1.15!important;
}

.sidebar-box,
.sidebar-user{
  padding:clamp(10px,1.55vh,14px)!important;
  border-radius:16px!important;
  flex-shrink:0!important;
}

.sidebar-box label,
.sidebar-box small,
.sidebar-user small{
  font-size:clamp(9px,1.15vh,11px)!important;
}

.sidebar-box select{
  height:clamp(38px,5vh,44px)!important;
  margin-top:clamp(5px,.8vh,8px)!important;
  border-radius:12px!important;
}

.refresh-box strong{
  font-size:clamp(15px,2.1vh,19px)!important;
  margin-top:clamp(4px,.8vh,7px)!important;
}

.refresh-box span{
  font-size:clamp(9px,1.25vh,11px)!important;
  margin-top:2px!important;
  line-height:1.2!important;
}

.refresh-box button,
.sidebar-user button{
  min-height:0!important;
  padding:clamp(8px,1.3vh,11px)!important;
  margin-top:clamp(6px,1vh,10px)!important;
  border-radius:12px!important;
  line-height:1.15!important;
}

.sidebar-user{
  margin-top:auto!important;
}

.sidebar-user b{
  font-size:clamp(12px,1.7vh,15px)!important;
  line-height:1.08!important;
  margin-top:4px!important;
  word-break:break-word!important;
}

@media(max-height:760px) and (min-width:901px){
  .sidebar{gap:7px!important;padding:10px!important;}
  .side-menu button{padding:8px 10px!important;font-size:13px!important;}
  .sidebar-box,.sidebar-user{padding:9px!important;}
  .refresh-box .proxima-linha{display:none!important;}
}

@media(max-height:690px) and (min-width:901px){
  .sidebar .brand-logo{width:42px!important;height:42px!important;flex-basis:42px!important;}
  .sidebar .brand-logo img{width:34px!important;max-height:34px!important;}
  .refresh-box span#statusPimsInstancia,
  .refresh-box span#statusPimsAtualizado{display:none!important;}
  .sidebar-user{margin-top:0!important;}
}

@media(max-width:900px){
  .sidebar{
    overflow:hidden!important;
    gap:10px!important;
  }
}


/* =========================================================
   AJUSTE FINAL — RELATÓRIO PREMIUM CONSULTAS GERAIS
   Remove visual de tabela crua/ilegível no modal de enviar relatório.
========================================================= */
.report-consultas-premium .modal-card{
  background:linear-gradient(180deg,#f8faf9,#eef5f1)!important;
}

.report-consultas-premium .modal-grid{
  gap:14px!important;
  overflow:hidden!important;
}

.report-premium-header{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:16px 18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  box-shadow:0 16px 42px rgba(15,61,46,.12);
  flex-shrink:0;
}

.report-premium-header small,
.report-premium-filters b,
.report-row-grid small,
.report-row-card header span small{
  display:block;
  color:#66786e;
  text-transform:uppercase;
  font-size:10px;
  font-weight:1000;
  letter-spacing:.04em;
}

.report-premium-header strong{
  display:block;
  margin-top:2px;
  color:var(--verde);
  font-size:23px;
  font-weight:1000;
}

.report-premium-header span{
  display:block;
  margin-top:3px;
  color:#66786e;
  font-size:12px;
  font-weight:850;
}

.report-premium-kpis{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
  flex-shrink:0;
}

.report-premium-kpis article{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px;
  box-shadow:0 12px 34px rgba(15,61,46,.10);
  position:relative;
  overflow:hidden;
}

.report-premium-kpis article:before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:4px;
  background:linear-gradient(90deg,var(--verde),#b8942f);
}

.report-premium-kpis span{
  display:block;
  color:#66786e;
  text-transform:uppercase;
  font-size:10px;
  font-weight:1000;
}

.report-premium-kpis b{
  display:block;
  margin-top:6px;
  color:var(--verde);
  font-size:24px;
  font-weight:1000;
}

.report-premium-filters{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:12px 14px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  box-shadow:0 12px 30px rgba(15,61,46,.08);
  flex-shrink:0;
}

.report-premium-filters span{
  background:#f4f8f6;
  border:1px solid #dce6e1;
  border-radius:999px;
  padding:8px 10px;
  font-size:11px;
  font-weight:900;
  color:#173d31;
}

.report-premium-list{
  flex:1;
  min-height:0;
  overflow:auto;
  display:grid;
  gap:12px;
  padding-right:4px;
}

.report-row-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:14px;
  box-shadow:0 10px 26px rgba(15,61,46,.08);
}

.report-row-card header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-bottom:10px;
  border-bottom:1px solid #edf2ef;
}

.report-row-card header b{
  color:var(--verde);
  font-size:19px;
  font-weight:1000;
}

.report-row-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}

.report-row-grid p{
  margin:0;
  background:#f7faf8;
  border:1px solid #edf2ef;
  border-radius:14px;
  padding:9px 10px;
  min-width:0;
}

.report-row-grid strong{
  display:block;
  margin-top:4px;
  color:#10271e;
  font-size:12px;
  font-weight:1000;
  line-height:1.2;
  overflow-wrap:anywhere;
}

.report-row-status{
  margin-top:10px;
}

.report-row-obs{
  margin:10px 0 0;
  border-left:4px solid var(--verde);
  background:#f6faf8;
  border-radius:12px;
  padding:10px 12px;
  font-size:12px;
  font-weight:850;
  line-height:1.35;
  color:#173d31;
  overflow-wrap:anywhere;
}

.report-premium-note{
  color:#66786e;
  font-weight:900;
  flex-shrink:0;
}

/* Garante que o relatório novo não herde tabela gigante do relatório antigo. */
.report-consultas-premium .report-table,
.report-consultas-premium .report-table-wrap table{
  min-width:0!important;
}

/* Reforço: menu lateral sem scroll no desktop, mas sem cortar operação no mobile. */
@media(min-width:901px){
  .sidebar{overflow:hidden!important;}
}

@media(max-width:900px){
  .sidebar{overflow:hidden!important;}
  .report-fullscreen{padding:10px!important;}
  .report-fullscreen .modal-card{height:calc(100dvh - 20px)!important;border-radius:20px!important;}
  .report-premium-header{align-items:flex-start;flex-direction:column;}
  .report-actions{width:100%;display:grid!important;grid-template-columns:1fr 1fr;}
  .report-actions .btn{width:100%;}
  .report-premium-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  .report-row-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media(max-width:560px){
  .report-premium-kpis{grid-template-columns:1fr;}
  .report-row-grid{grid-template-columns:1fr;}
  .report-row-card header{align-items:flex-start;flex-direction:column;}
}

/* =========================================================
   AJUSTE — CONSULTAS GERAIS: relatório espelho da tabela,
   filtros em cascata e impressão/PDF sem tela branca.
========================================================= */
#tabelaConsultas.tabela-consultas-ajustada-final{
  table-layout:fixed;
  width:100%;
  min-width:0!important;
}

#tabelaConsultas.tabela-consultas-ajustada-final th,
#tabelaConsultas.tabela-consultas-ajustada-final td{
  word-break:break-word;
  overflow-wrap:anywhere;
}

.report-consultas-print .modal-card,
.report-fullscreen.report-consultas-print .modal-card{
  width:min(1680px,96vw);
  max-width:1680px;
  height:min(92vh,920px);
}

.report-print-content{
  display:flex!important;
  flex-direction:column;
  gap:12px;
  padding:0!important;
}

.report-print-head{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px 16px;
  box-shadow:0 10px 30px rgba(15,61,46,.08);
}

.report-print-head small{
  display:block;
  color:var(--muted);
  font-size:11px;
  font-weight:1000;
  text-transform:uppercase;
}

.report-print-head strong{
  display:block;
  color:var(--verde);
  font-size:22px;
  font-weight:1000;
}

.report-print-head span{
  display:block;
  margin-top:3px;
  color:#52615c;
  font-size:12px;
  font-weight:900;
}

.report-print-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.report-print-filters span{
  background:#f7faf8;
  border:1px solid var(--line);
  border-radius:999px;
  padding:7px 10px;
  font-size:11px;
  font-weight:900;
  color:#294a3e;
}

.report-print-table-wrap{
  overflow:auto;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  max-height:calc(92vh - 220px);
}

.report-print-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  min-width:0!important;
  font-size:9px;
}

.report-print-table th{
  background:var(--verde)!important;
  color:#fff!important;
  padding:8px 5px;
  text-align:center;
  text-transform:uppercase;
  font-size:8px;
  line-height:1.1;
  position:sticky;
  top:0;
  z-index:2;
  word-break:break-word;
}

.report-print-table td{
  border-bottom:1px solid var(--line);
  border-right:1px solid #edf3f0;
  padding:7px 5px;
  text-align:center;
  vertical-align:middle;
  font-weight:900;
  line-height:1.15;
  word-break:break-word;
  overflow-wrap:anywhere;
}

.report-print-table td:nth-child(8){
  text-align:left;
}

.report-print-table tfoot td{
  background:#edf5f1;
  color:var(--verde);
  font-weight:1000;
}

.print-frame-consultas{
  position:fixed;
  right:0;
  bottom:0;
  width:0;
  height:0;
  border:0;
  opacity:0;
  pointer-events:none;
}

@media (max-width:900px){
  .report-print-head{
    flex-direction:column;
    align-items:stretch;
  }

  .report-print-head .report-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .report-print-table-wrap{
    max-height:calc(92vh - 280px);
  }
}


/* ===== AJUSTE FINAL: RELATÓRIO SEM QUEBRAR INFORMAÇÕES + FILTRO SEMÁFORO ===== */
.filters-panel{
  grid-template-columns:minmax(240px,1.55fr) repeat(7,minmax(135px,.72fr));
}

.report-consultas-print .modal-card,
.report-fullscreen.report-consultas-print .modal-card{
  width:min(1820px,97vw);
  max-width:1820px;
}

.report-print-table-wrap{
  overflow:auto;
  max-width:100%;
}

.report-print-table{
  width:max-content!important;
  min-width:1780px!important;
  table-layout:fixed!important;
  border-collapse:collapse;
  font-size:9.2px;
}

.report-print-table th,
.report-print-table td{
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  line-height:1.18;
}

.report-print-table th{
  white-space:normal!important;
  vertical-align:middle;
}

.report-print-table td{
  white-space:normal!important;
}

.report-print-table td.compacto{
  white-space:nowrap!important;
}

.report-print-table td.obs{
  text-align:left!important;
  min-width:360px;
  max-width:360px;
  white-space:normal!important;
}

.report-print-table td.texto{
  white-space:normal!important;
}

#boxFiltroSemaforo .multi-select-menu{
  min-width:220px;
}

@media (max-width:1280px){
  .filters-panel{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .filters-panel .field.wide{
    grid-column:1 / -1;
  }
}

@media (max-width:760px){
  .filters-panel{
    grid-template-columns:1fr;
  }
}

/* =========================================================
   AJUSTE FINAL GLOBAL — RELATÓRIO BONITO SEM ROLAGEM LATERAL
   + LOCAL GLOBAL PELA COLUNA FRENTE DO SELECT/API SOLINFTEC
========================================================= */
.report-fullscreen.report-consultas-fit{
  padding:12px!important;
  place-items:stretch!important;
}

.report-fullscreen.report-consultas-fit .modal-card{
  width:calc(100vw - 24px)!important;
  max-width:none!important;
  height:calc(100dvh - 24px)!important;
  max-height:calc(100dvh - 24px)!important;
  border-radius:24px!important;
  background:linear-gradient(180deg,#f8faf9 0%,#eef5f1 100%)!important;
  color:var(--txt)!important;
  border:1px solid rgba(15,61,46,.18)!important;
  box-shadow:0 28px 90px rgba(4,27,19,.28)!important;
  padding:18px!important;
  overflow:hidden!important;
}

.report-fullscreen.report-consultas-fit .modal-close{
  color:#fff!important;
  background:rgba(255,255,255,.14)!important;
  border:1px solid rgba(255,255,255,.20)!important;
  border-radius:12px!important;
  width:38px!important;
  height:38px!important;
  line-height:34px!important;
  top:18px!important;
  right:18px!important;
  display:grid!important;
  place-items:center!important;
}

.report-fullscreen.report-consultas-fit .modal-card h3{
  margin:-18px -18px 14px -18px!important;
  padding:18px 66px 18px 22px!important;
  background:linear-gradient(135deg,#08251d,#0f3d2e 62%,#14523e)!important;
  color:white!important;
  font-size:23px!important;
  font-weight:1000!important;
  letter-spacing:-.02em!important;
  border-radius:24px 24px 0 0!important;
}

.report-fit-content{
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  min-height:0!important;
  overflow:hidden!important;
  padding:0!important;
}

.report-fit-content > *{
  flex-shrink:0;
}

.report-fit-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:13px 15px;
  box-shadow:0 12px 32px rgba(15,61,46,.08);
}

.report-fit-title small{
  display:block;
  color:#5d7269;
  font-size:10px;
  font-weight:1000;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.report-fit-title strong{
  display:block;
  color:var(--verde);
  font-size:22px;
  font-weight:1000;
  line-height:1.05;
}

.report-fit-title span{
  display:block;
  margin-top:3px;
  color:#566b61;
  font-size:12px;
  font-weight:850;
}

.report-fit-head .report-actions{
  display:flex;
  gap:10px;
  align-items:center;
}

.report-fit-head .report-actions .btn{
  min-height:42px;
  white-space:nowrap;
}

.report-fit-filters{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  padding:0 2px;
}

.report-fit-filters span{
  display:inline-flex;
  gap:6px;
  align-items:center;
  max-width:100%;
  background:#fff;
  border:1px solid #dce6e1;
  border-radius:999px;
  padding:6px 9px;
  color:#294a3e;
  font-size:10.5px;
  font-weight:850;
  box-shadow:0 6px 18px rgba(15,61,46,.05);
}

.report-fit-filters span b{
  color:var(--verde);
  font-weight:1000;
}

.report-fit-wrap{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 45px rgba(15,61,46,.08);
}

.report-fit-wrap::-webkit-scrollbar{width:9px;height:0}
.report-fit-wrap::-webkit-scrollbar-thumb{background:#b9c9c1;border-radius:999px;border:2px solid #fff}

.report-fit-table{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  font-size:clamp(7px,.52vw,9.4px)!important;
}

.report-fit-table th{
  position:sticky;
  top:0;
  z-index:2;
  background:linear-gradient(180deg,#0f3d2e,#0a2e23)!important;
  color:#fff!important;
  border-right:1px solid rgba(255,255,255,.20)!important;
  border-bottom:1px solid #08251d!important;
  padding:7px 3px!important;
  text-align:center!important;
  vertical-align:middle!important;
  text-transform:uppercase!important;
  font-size:clamp(6.3px,.45vw,8px)!important;
  line-height:1.08!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}

.report-fit-table td{
  border-right:1px solid #edf3f0!important;
  border-bottom:1px solid #dfe9e4!important;
  padding:6px 3px!important;
  text-align:center!important;
  vertical-align:middle!important;
  color:#081f18!important;
  font-weight:900!important;
  line-height:1.12!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}

.report-fit-table tbody tr:nth-child(even) td{
  background:#f7faf8!important;
}

.report-fit-table tbody tr:hover td{
  background:#eef7f2!important;
}

.report-fit-table td.obs{
  text-align:left!important;
  font-size:clamp(6.8px,.50vw,9px)!important;
  font-weight:850!important;
}

.report-fit-table td.local,
.report-fit-table td.texto{
  font-size:clamp(6.6px,.49vw,8.8px)!important;
}

.report-fit-table td.compacto{
  font-size:clamp(6.5px,.48vw,8.8px)!important;
}

.report-fit-table tfoot td{
  position:sticky;
  bottom:0;
  z-index:1;
  background:#eaf4ef!important;
  color:#0f3d2e!important;
  font-weight:1000!important;
  border-top:2px solid #0f3d2e!important;
}

.report-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:4px 6px;
  max-width:100%;
  font-size:clamp(5.8px,.42vw,7.4px);
  font-weight:1000;
  line-height:1.05;
  text-align:center;
  text-transform:uppercase;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.65);
}

.report-badge.green{background:#dcfce7;color:#166534}
.report-badge.red{background:#fee2e2;color:#b91c1c}
.report-badge.yellow{background:#fef9c3;color:#854d0e}
.report-badge.orange{background:#ffedd5;color:#9a3412}
.report-badge.gray{background:#f1f5f9;color:#475569}

.report-fit-note{
  display:block;
  color:#52615c;
  font-size:11px;
  font-weight:850;
  padding:0 2px 1px;
}

.report-fit-table .sem-dados{
  padding:22px!important;
  font-size:13px!important;
  color:#52615c!important;
}

/* Neutraliza regras antigas que criavam largura fixa e rolagem horizontal no relatório. */
.report-consultas-fit .report-print-table-wrap,
.report-consultas-fit .report-fit-wrap{
  overflow-x:hidden!important;
}

.report-consultas-fit .report-print-table,
.report-consultas-fit .report-fit-table{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}

@media(max-width:1200px){
  .report-fit-table{font-size:6.8px!important;}
  .report-fit-table th{font-size:5.9px!important;padding:6px 2px!important;}
  .report-fit-table td{font-size:6.4px!important;padding:5px 2px!important;}
  .report-badge{font-size:5.4px;padding:3px 4px;}
}

@media(max-width:900px){
  .report-fullscreen.report-consultas-fit{padding:8px!important;}
  .report-fullscreen.report-consultas-fit .modal-card{
    width:calc(100vw - 16px)!important;
    height:calc(100dvh - 16px)!important;
    max-height:calc(100dvh - 16px)!important;
    padding:12px!important;
    border-radius:18px!important;
  }
  .report-fullscreen.report-consultas-fit .modal-card h3{
    margin:-12px -12px 10px -12px!important;
    padding:15px 54px 15px 16px!important;
    border-radius:18px 18px 0 0!important;
    font-size:19px!important;
  }
  .report-fit-head{flex-direction:column;align-items:stretch;padding:11px;}
  .report-fit-head .report-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%;}
  .report-fit-head .report-actions .btn{width:100%;}
  .report-fit-filters span{font-size:9.5px;padding:5px 8px;}
  .report-fit-note{font-size:10px;}
}

@media(max-width:680px){
  .report-fit-table{font-size:5.2px!important;}
  .report-fit-table th{font-size:4.8px!important;line-height:1.02!important;padding:4px 1px!important;}
  .report-fit-table td{font-size:5px!important;line-height:1.04!important;padding:4px 1px!important;}
  .report-fit-table td.obs{font-size:5px!important;}
  .report-badge{font-size:4.4px;padding:2px 3px;}
}


/* =========================================================
   PATCH V3 — DETERMINAR TOTAL/FRENTE + VISUAIS SALVOS
   - Menu Determinar total/frente limpo: filtro superior + frentes.
   - Cards de frota com fundo por condição operacional.
   - Menu Visuais salvos sem filtros superiores.
========================================================= */
body[data-view="visuais"] .filters-panel{display:none!important}
body[data-view="totais"] #view-totais > .kpis,
body[data-view="totais"] .total-frente-toolbar{display:none!important}
body[data-view="totais"] .total-frente-panel .panel-head{display:none!important}
body[data-view="totais"] .table-wrap{max-height:none;overflow:visible;background:transparent}
body[data-view="totais"] #tabelaTotaisFrente{min-width:0!important;width:100%!important;display:block;background:transparent}
body[data-view="totais"] #tabelaTotaisFrente tbody,
body[data-view="totais"] #tabelaTotaisFrente tr,
body[data-view="totais"] #tabelaTotaisFrente td{display:block;width:100%;border:0;padding:0;background:transparent}
.alocacao-shell{display:grid;gap:16px;padding:18px;background:#f7faf8}
.alocacao-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:white;border:1px solid var(--line);border-radius:20px;padding:16px 18px;box-shadow:var(--shadow)}
.alocacao-top h2{margin:0;color:var(--verde);font-size:20px;font-weight:1000}.alocacao-top span{display:block;margin-top:4px;color:#5d7067;font-size:12px;font-weight:900}.alocacao-legenda{display:flex;gap:10px;flex-wrap:wrap}.alocacao-legenda i{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:-2px}.alocacao-chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:8px 11px;background:#f9fcfa;color:#284a3e;font-size:11px;font-weight:1000}.alocacao-chip.green i{background:#22c55e}.alocacao-chip.red i{background:#ef4444}.alocacao-chip.blue i{background:#3b82f6}.alocacao-chip.gray i{background:#64748b}
.alocacao-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.alocacao-stat{background:white;border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:var(--shadow)}.alocacao-stat small{display:block;color:#5d7067;text-transform:uppercase;font-size:10px;font-weight:1000}.alocacao-stat b{display:block;margin-top:5px;color:var(--verde);font-size:24px}
.processo-alocacao{display:grid;gap:12px}.processo-alocacao > header{display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(135deg,var(--verde),var(--verde2));color:white;border-radius:18px;padding:14px 16px;box-shadow:0 13px 28px rgba(15,61,46,.18)}.processo-alocacao > header strong{font-size:16px}.processo-alocacao > header span{font-size:12px;font-weight:900;color:#d6eee4}
.frente-alocacao{background:white;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}.frente-alocacao.definir{border-color:#fecaca;box-shadow:0 18px 50px rgba(220,38,38,.12)}.frente-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:15px 18px;background:#fbfdfc;border-bottom:1px solid var(--line)}.frente-head h3{margin:0;color:var(--verde);font-size:17px;font-weight:1000}.frente-head small{display:block;margin-top:3px;color:#5d7067;font-weight:900}.frente-actions{display:flex;gap:8px;flex-wrap:wrap}.btn-mini{border:1px solid var(--line);background:white;color:var(--verde);border-radius:12px;padding:9px 11px;font-weight:1000;cursor:pointer}.btn-mini:hover{background:var(--verde3)}.btn-mini.danger{color:#b91c1c;border-color:#fecaca;background:#fff5f5}
.tipo-alocacao{padding:14px 18px;border-bottom:1px solid #eef4f0}.tipo-alocacao:last-child{border-bottom:0}.tipo-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.tipo-head strong{font-size:13px;color:#243f35;text-transform:uppercase}.tipo-head span{font-size:11px;color:#66786e;font-weight:900}.frotas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.frota-card{position:relative;border:0;border-radius:12px;min-height:48px;padding:8px 8px 7px;display:flex;flex-direction:column;justify-content:center;gap:3px;color:white;text-align:left;box-shadow:0 8px 18px rgba(15,61,46,.13);cursor:pointer;transition:.14s ease}.frota-card:hover{transform:translateY(-2px);filter:brightness(.98)}.frota-card b{font-size:13px;line-height:1;font-weight:1000}.frota-card small{font-size:9px;line-height:1.05;font-weight:900;opacity:.92;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frota-card.green{background:linear-gradient(135deg,#22c55e,#15803d)}.frota-card.red{background:linear-gradient(135deg,#ef4444,#b91c1c)}.frota-card.blue{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.frota-card.gray{background:linear-gradient(135deg,#94a3b8,#475569)}.frota-card .x{position:absolute;right:4px;top:4px;border:0;background:rgba(255,255,255,.22);color:white;border-radius:999px;width:18px;height:18px;font-size:11px;font-weight:1000;display:grid;place-items:center;cursor:pointer}.frota-card.manual:after,.frota-card.offline:after,.frota-card.osmanual:after{position:absolute;left:6px;top:4px;font-size:9px;font-weight:1000;background:rgba(255,255,255,.25);padding:2px 5px;border-radius:999px}.frota-card.manual:after{content:"MANUAL"}.frota-card.offline:after{content:"OFF"}.frota-card.osmanual:after{content:"OS"}
.alocacao-empty{background:white;border:1px dashed var(--line);border-radius:18px;padding:18px;color:#5d7067;font-weight:900;text-align:center}.alocacao-modal-actions{display:flex;gap:8px;flex-wrap:wrap;grid-column:1/-1}.alocacao-modal-form{grid-column:1/-1;display:grid;gap:10px;background:rgba(255,255,255,.06)!important}.alocacao-modal-form input,.alocacao-modal-form select,.alocacao-modal-form textarea{width:100%;min-height:44px;border:1px solid rgba(255,255,255,.20);border-radius:14px;background:rgba(255,255,255,.95);color:#0f3d2e;padding:10px 12px;font-weight:900;outline:none}.alocacao-modal-form textarea{min-height:110px;resize:vertical}.os-candidatas{display:grid;gap:8px}.os-candidatas button{border:1px solid rgba(255,255,255,.18);border-radius:14px;background:white;color:#0f3d2e;padding:10px;text-align:left;font-weight:900;cursor:pointer}.os-candidatas button:hover{background:#ecfdf3}
.visual-manager-panel{overflow:visible}.visual-manager-head{align-items:center}.visuais-salvos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;padding:18px;background:#f7faf8}.visual-card-menu{background:white;border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--shadow);display:grid;gap:10px}.visual-card-menu b{color:var(--verde);font-size:16px}.visual-card-menu small{color:#66786e;font-weight:900}.visual-card-menu .tag{display:inline-flex;width:max-content;background:#eaf4ef;color:#0f3d2e;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:1000}.visual-card-actions{display:flex;gap:8px;flex-wrap:wrap}.visual-empty{background:white;border:1px dashed var(--line);border-radius:20px;padding:20px;color:#5d7067;font-weight:900;text-align:center;grid-column:1/-1}
@media(max-width:1100px){.alocacao-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.alocacao-shell{padding:10px}.alocacao-stats{grid-template-columns:1fr}.frente-head,.tipo-head,.alocacao-top{display:block}.frente-actions,.alocacao-legenda,.visual-card-actions{margin-top:10px}.frotas-grid{grid-template-columns:repeat(auto-fill,minmax(78px,1fr))}.frota-card{min-height:44px}.visuais-salvos-grid{grid-template-columns:1fr;padding:12px}}


/* PATCH V4 — Determinar total/frente limpo: sem KPIs/cards superiores na área principal */
body[data-view="totais"] .alocacao-stats{display:none!important}
body[data-view="totais"] .alocacao-shell{gap:14px}


/* =========================================================
   PATCH V6 — DISPONIBILIDADE SEM KPI + MODAL GLOBAL
========================================================= */
body[data-view="hora"] #view-hora > .kpis,
body[data-view="hora"] #view-hora .kpis-5{
  display:none!important;
}

.pendencia-semaforo{
  min-width:98px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.65);
}

.pendencia-semaforo.gray{background:#f1f5f9;color:#475569}
.pendencia-semaforo.gray i{background:#64748b}

.modal-global-actions{
  grid-column:1/-1;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  padding:12px;
  border:1px solid var(--line)!important;
  border-radius:18px;
  background:#f8fbf9!important;
}

.modal-global-actions .btn{
  min-height:44px;
}

.alocacao-modal-form textarea{
  width:100%;
  min-height:140px;
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px 14px;
  font-weight:850;
  resize:vertical;
  outline:none;
}

.os-relacionada-global .os-candidatas-lista{
  display:grid;
  gap:10px;
  max-height:310px;
  overflow:auto;
  border:0!important;
  padding:0!important;
  background:transparent!important;
}

.os-relacionada-global .os-candidatas-lista button{
  border:1px solid var(--line);
  background:white;
  color:var(--verde);
  border-radius:16px;
  padding:12px;
  cursor:pointer;
  text-align:left;
  font-weight:900;
}

.os-relacionada-global .os-candidatas-lista button:hover{
  background:var(--verde3);
}

.os-relacionada-global .os-candidatas-lista button span{
  display:block;
  margin-top:4px;
  color:#52615c;
  font-size:12px;
  font-weight:800;
}

.report-individual-content{
  display:flex!important;
  flex-direction:column;
  min-height:0;
  overflow:auto;
}

.report-individual-card{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
  background:white;
  border:1px solid var(--line);
  border-radius:22px;
  padding:16px;
  box-shadow:var(--shadow);
}

.report-individual-card div{
  border:1px solid var(--line)!important;
  background:#f8fbf9!important;
  border-radius:16px!important;
  padding:12px!important;
}

.report-individual-card small{
  display:block;
  color:#5d7067;
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:6px;
}

.report-individual-card b{
  color:var(--verde);
  font-size:14px;
}

#tabelaApontamento td:last-child{
  text-align:left;
  font-weight:950;
}

@media(max-width:760px){
  .modal-global-actions{justify-content:stretch}
  .modal-global-actions .btn{width:100%}
}


/* =========================================================
   PATCH V7 — SEM SCROLL LATERAL, SEM.OS, FILTROS E RELATÓRIOS
========================================================= */
html, body{
  max-width:100%;
  overflow-x:hidden!important;
}
body *, body *::before, body *::after{
  max-width:100%;
}
.app,
.topbar,
.filters-panel,
.panel,
.table-wrap,
.report-table-wrap,
.modal-card,
.modal-consulta-grid,
.alocacao-shell,
.processo-alocacao,
.frente-alocacao{
  max-width:100%;
  overflow-x:hidden!important;
}
table,
#tabelaConsultas,
#tabelaApontamento,
#tabelaTotaisFrente,
#matrizHora,
.report-table{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
th, td{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
#tabelaApontamento th,
#tabelaApontamento td{
  font-size:10px;
  padding:8px 5px;
  line-height:1.18;
}
#tabelaApontamento .semaforo-final,
.pendencia-curta{
  min-width:68px;
  max-width:92px;
  padding:5px 7px;
  font-size:9px;
  letter-spacing:0;
}
#tabelaApontamento .semaforo-final i,
.pendencia-curta i{
  width:9px;
  height:9px;
  flex:0 0 9px;
}
.kpi-clickable{
  cursor:pointer;
}
.kpi-active-filter{
  outline:3px solid rgba(15,61,46,.22)!important;
  border-color:#0f3d2e!important;
  transform:translateY(-1px);
}
body:not([data-view="consultas"]):not([data-view="visuais"]) #btnEnviarRelatorioGeral,
#btnEnviarRelatorio{
  display:none!important;
}
body[data-view="hora"] .drill-panel{
  display:flex;
  align-items:flex-end;
  gap:12px;
}
body[data-view="hora"] .drill-panel .field{
  width:min(240px,100%);
}
.alocacao-legenda{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.btn-add-alocacao-top{
  height:34px;
  padding:8px 12px;
  border-radius:999px;
  font-size:11px;
  white-space:nowrap;
}
.frente-alocacao.definir,
.report-table td .definir-frente-link,
.definir-frente-link{
  border-color:#fecaca!important;
  background:linear-gradient(135deg,#fff7ed,#fee2e2)!important;
}
.frente-alocacao.definir h3::before{
  content:"⚠ ";
}
.modal-global-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.modal-global-actions .btn{
  min-width:180px;
}
@media(max-width:900px){
  #tabelaApontamento,
  #tabelaApontamento thead,
  #tabelaApontamento tbody,
  #tabelaApontamento tr,
  #tabelaApontamento th,
  #tabelaApontamento td{
    display:block;
    width:100%!important;
  }
  #tabelaApontamento thead{display:none;}
  #tabelaApontamento tbody{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    padding:10px;
  }
  #tabelaApontamento tbody tr{
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:0 10px 24px rgba(15,61,46,.10);
    overflow:hidden;
  }
  #tabelaApontamento td{
    display:grid;
    grid-template-columns:115px minmax(0,1fr);
    gap:8px;
    text-align:left!important;
    font-size:12px;
    border-bottom:1px solid #edf3f0;
  }
  #tabelaApontamento td::before{
    content:attr(data-label);
    color:#0f3d2e;
    font-size:10px;
    text-transform:uppercase;
    font-weight:1000;
  }
  body[data-view="hora"] .drill-panel{
    display:grid;
    grid-template-columns:1fr;
  }
  .modal-global-actions .btn{width:100%;}
}

/* =========================================================
   PATCH V8 — CONSULTAS ALERTAS + SEM SCROLL LATERAL GLOBAL
========================================================= */

.app,.topbar,.filters-panel,.panel,.table-wrap,.modal-card,.modal-grid{
  max-width:100%;
}
body[data-view="consultas"] .filters-panel{
  display:grid!important;
  grid-template-columns:minmax(190px,1.05fr) repeat(7,minmax(112px,.82fr))!important;
  gap:10px!important;
  align-items:end!important;
  overflow:visible!important;
}
body[data-view="consultas"] .filters-panel .field.wide{
  min-width:0!important;
}
body[data-view="consultas"] #campoFiltroClasse{
  display:flex!important;
}
.consultas-alertas-panel{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:-8px 0 16px;
}
.alerta-consulta-card{
  border:1px solid var(--line);
  background:#fff;
  border-radius:18px;
  min-width:0;
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  box-shadow:0 12px 30px rgba(15,61,46,.09);
  cursor:pointer;
  transition:.15s ease;
}
.alerta-consulta-card:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(15,61,46,.14)}
.alerta-consulta-card strong{
  display:flex;
  align-items:center;
  gap:8px;
  color:#143b2f;
  font-size:15px;
  font-weight:1000;
  text-transform:uppercase;
  white-space:nowrap;
}
.alerta-consulta-card p{
  margin:4px 0 0;
  color:#60766d;
  font-size:12px;
  font-weight:850;
}
.alerta-consulta-card b{
  min-width:46px;
  height:38px;
  border-radius:14px;
  display:grid;
  place-items:center;
  font-size:20px;
  font-weight:1000;
  flex:0 0 auto;
}
.alerta-consulta-card.sem-os{border-left:5px solid #dc2626}
.alerta-consulta-card.sem-os b{background:#fee2e2;color:#b91c1c}
.alerta-consulta-card.prod-os{border-left:5px solid #f97316}
.alerta-consulta-card.prod-os b{background:#ffedd5;color:#9a3412}
.alert-dot{
  width:12px;height:12px;border-radius:50%;display:inline-block;box-shadow:0 0 0 4px rgba(255,255,255,.9),0 0 16px currentColor;
}
.alerta-consulta-card.sem-os .alert-dot{background:#dc2626;color:#dc2626}
.alerta-consulta-card.prod-os .alert-dot{background:#f97316;color:#f97316}
.alertas-lista-modal{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
  max-height:70vh;
  overflow:auto;
}
.alerta-list-item{
  border:1px solid var(--line)!important;
  background:#fff!important;
  color:var(--txt)!important;
  border-radius:18px!important;
  padding:14px!important;
  display:grid;
  grid-template-columns:minmax(90px,.5fr) minmax(0,1.4fr) minmax(0,1.1fr) minmax(0,1.6fr);
  gap:10px;
  align-items:center;
}
.alerta-list-item small{
  display:block;
  color:#60766d!important;
  font-weight:1000;
  font-size:10px;
  text-transform:uppercase;
}
.alerta-list-item b,.alerta-list-item span{
  color:#10271e!important;
  font-weight:900;
  overflow-wrap:anywhere;
}
.modal-alertas-consultas .modal-card{
  width:min(1120px,calc(100vw - 28px));
  background:#f8faf9;
  color:var(--txt);
}
.modal-alertas-consultas .modal-close{color:var(--verde)}
.modal-alertas-consultas #modalTitulo{color:var(--verde)}
.modal-global-actions button[data-relatorio-individual],
#btnGlobalRelatorioIndividualInjetado,
#btnGlobalRelatorioIndividual{
  display:none!important;
}
.table-wrap{overflow-x:hidden!important;}
table{max-width:100%;}
th,td{overflow-wrap:anywhere;word-break:normal;}
.tabela-resizable-v8 th{position:relative;}
.tabela-resizer-v8{
  position:absolute;
  top:0;
  right:-3px;
  width:8px;
  height:100%;
  cursor:col-resize;
  z-index:8;
  touch-action:none;
}
.tabela-resizer-v8:after{
  content:"";
  position:absolute;
  top:24%;bottom:24%;left:3px;width:1px;background:rgba(255,255,255,.5);
}
.os-relacionada-search-v8{
  width:100%;height:46px;border:1px solid var(--line);border-radius:14px;padding:0 13px;font-weight:900;margin:8px 0 10px;
}
.manual-v8-chip{
  display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:1000;background:#fff7ed;color:#9a3412;margin-top:6px;
}
@media(max-width:1300px){
  body[data-view="consultas"] .filters-panel{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}
@media(max-width:780px){
  body[data-view="consultas"] .filters-panel{grid-template-columns:1fr 1fr!important;}
  .consultas-alertas-panel{grid-template-columns:1fr;}
  .alerta-list-item{grid-template-columns:1fr;}
}
@media(max-width:520px){
  body[data-view="consultas"] .filters-panel{grid-template-columns:1fr!important;}
}

/* =========================================================
   PATCH V14 — MODAIS/RELATÓRIOS PREMIUM + PERÍODOS + SEM SCROLL GLOBAL
========================================================= */
html, body { overflow-x: hidden !important; max-width: 100%; }
.app, .panel, .filters-panel, .table-wrap, .modal-card, .report-fullscreen .modal-card { max-width: 100%; }
.filters-panel{ grid-template-columns:minmax(180px,1.05fr) repeat(8,minmax(112px,.72fr)) !important; align-items:end; }
.periodo-consultas-field select,
.periodo-custom-consultas input,
.periodo-custom-matriz input{ height:46px; border:1px solid var(--line); border-radius:15px; background:#fbfcfb; color:var(--txt); padding:0 12px; font-weight:850; outline:none; min-width:0; }
.periodo-custom-consultas,
.periodo-custom-matriz{ display:none; grid-template-columns:1fr 1fr auto; gap:8px; margin-top:8px; }
.periodo-custom-consultas .btn,
.periodo-custom-matriz .btn{ height:46px; padding:0 12px; white-space:nowrap; }
.status-base.yellow,.semaforo-final.yellow{background:#fef3c7;color:#92400e;}
.status-base.orange,.semaforo-final.orange{background:#ffedd5;color:#9a3412;}
.status-base.red,.semaforo-final.red{background:#fee2e2;color:#991b1b;}
.status-base.green,.semaforo-final.green{background:#dcfce7;color:#166534;}
.status-base.blue,.semaforo-final.blue{background:#dbeafe;color:#1d4ed8;}
.status-base.gray,.semaforo-final.gray{background:#f1f5f9;color:#475569;}
.frota-card.yellow{ background:linear-gradient(135deg,#f59e0b,#d97706)!important; color:white; }
.frota-card.orange{ background:linear-gradient(135deg,#fb923c,#ea580c)!important; color:white; }
.modal-card{ border-radius:28px; overflow:hidden; }
.modal-card h3,#modalTitulo{ line-height:1.18; overflow-wrap:anywhere; }
.modal-consulta-equipamento .modal-card,
.modal-alertas-consultas .modal-card,
.report-fullscreen .modal-card{ box-shadow:0 32px 90px rgba(15,61,46,.24); }
.report-print-head,.report-fit-head{ background:linear-gradient(135deg,#0f3d2e,#14523e); color:white; border-radius:22px; padding:18px; display:flex; justify-content:space-between; gap:16px; align-items:center; }
.report-print-head small,.report-fit-head small{ display:block; color:#d7f2e7; font-weight:1000; text-transform:uppercase; letter-spacing:.04em; }
.report-print-head strong,.report-fit-head strong{ display:block; font-size:22px; margin-top:4px; }
.report-print-head span,.report-fit-head span{ display:block; color:#d7f2e7; font-weight:850; margin-top:4px; }
.report-table-wrap, .table-wrap{ max-width:100%; }
table{ max-width:100%; }
.tabela-sem-scroll-global th,.tabela-sem-scroll-global td{ overflow-wrap:anywhere; word-break:normal; }
.definir-frente-link, button.definir-frente-link{ display:inline-flex; align-items:center; justify-content:center; gap:6px; border:1px solid #fed7aa!important; background:#fff7ed!important; color:#9a3412!important; border-radius:999px!important; padding:7px 10px!important; font-size:10px!important; font-weight:1000!important; text-transform:uppercase; box-shadow:0 8px 18px rgba(249,115,22,.12); }
.definir-frente-link:hover{ background:#ffedd5!important; transform:translateY(-1px); }
@media(max-width:1500px){ .filters-panel{ grid-template-columns:repeat(4,minmax(0,1fr)) !important; } }
@media(max-width:900px){ .filters-panel{ grid-template-columns:1fr 1fr !important; } .periodo-custom-consultas,.periodo-custom-matriz{ grid-template-columns:1fr; } .report-print-head,.report-fit-head{ flex-direction:column; align-items:flex-start; } }
@media(max-width:620px){ .filters-panel{ grid-template-columns:1fr !important; } }

/* =========================================================
   V15 — AJUSTES MENU A MENU, FILTROS PREMIUM E SEM SCROLL GLOBAL
========================================================= */

.app,
.topbar,
.filters-panel,
.view,
.panel,
.table-wrap,
.modal,
.modal-card,
.report-table-wrap,
.visual-manager-panel,
.total-frente-panel,
.drill-panel{
  max-width:100%;
  min-width:0;
}
body *{
  min-width:0;
}
.filters-panel{
  display:grid!important;
  grid-template-columns:minmax(170px,1.1fr) minmax(260px,1.25fr) repeat(7,minmax(118px,.78fr));
  gap:10px;
  align-items:end;
}
.filters-panel .field.wide{min-width:0;}
.periodo-calendario-field{min-width:260px;}
.periodo-calendario-box{
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:7px;
  align-items:center;
  width:100%;
}
.periodo-calendario-box input{
  height:46px;
  border:1px solid var(--line);
  border-radius:14px;
  padding:0 10px;
  font-weight:900;
  color:var(--txt);
  background:#fbfcfb;
}
.periodo-calendario-box .btn{
  height:46px;
  padding:0 13px;
}
body[data-view="hora"] .filters-panel .field:not(.wide):not(.periodo-consultas-field):not(:has(#boxFiltroProcesso)):not(:has(#boxFiltroFrente)),
body[data-view="hora"] .filters-panel #boxFiltroTipo,
body[data-view="hora"] .filters-panel #boxFiltroOrigem,
body[data-view="hora"] .filters-panel #boxFiltroStatus,
body[data-view="hora"] .filters-panel #boxFiltroSemaforo,
body[data-view="hora"] .filters-panel #boxFiltroClasse,
body[data-view="hora"] .filters-panel .classe-filter,
body[data-view="hora"] .filters-panel .periodo-consultas-field{
  display:none!important;
}
.drill-panel{
  display:grid!important;
  grid-template-columns:minmax(190px,.75fr) minmax(240px,.95fr) minmax(220px,1fr) minmax(170px,.75fr) minmax(190px,.85fr) auto;
  align-items:end;
  gap:12px;
}
.drill-panel .field{width:auto!important;}
.drill-panel input,
.drill-panel select{
  width:100%;
  height:46px;
  border:1px solid var(--line);
  border-radius:15px;
  padding:0 13px;
  background:#fbfcfb;
  font-weight:900;
  color:var(--txt);
}
.drill-panel #trilhaMatriz{display:none!important;}
.drill-actions{margin-left:0!important;}
.consultas-alertas-panel{
  overflow:hidden;
}
.modal-alertas-consultas .modal-card,
.modal.modal-premium-v15 .modal-card{
  width:min(980px,calc(100vw - 28px));
  max-height:calc(100dvh - 28px);
  overflow:hidden;
  border-radius:28px;
  padding:0;
  background:#f8faf9;
  color:var(--txt);
  border:1px solid var(--line);
}
.modal-alertas-consultas #modalTitulo,
.modal.modal-premium-v15 #modalTitulo{
  margin:0;
  padding:22px 68px 18px 24px;
  background:linear-gradient(135deg,var(--verde),var(--verde2));
  color:#fff;
  font-size:22px;
  font-weight:1000;
}
.modal-alertas-consultas .modal-close,
.modal.modal-premium-v15 .modal-close{
  top:13px;
  right:16px;
  color:#fff;
  background:rgba(255,255,255,.14);
  border-radius:14px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
}
.alertas-lista-modal-v15{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:12px;
  padding:18px;
  overflow:auto;
  max-height:calc(100dvh - 116px);
  background:#f8faf9;
}
.alerta-list-item-v15{
  display:grid;
  grid-template-columns:88px 1fr;
  gap:10px 12px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  padding:14px;
  box-shadow:0 14px 32px rgba(15,61,46,.09);
}
.alerta-list-item-v15 .frota-pill{
  grid-row:1/3;
  display:grid;
  place-items:center;
  min-height:74px;
  border-radius:18px;
  background:linear-gradient(135deg,var(--verde),var(--verde2));
  color:white;
  font-size:21px;
  font-weight:1000;
}
.alerta-list-item-v15 small{
  display:block;
  color:#557166;
  font-size:10px;
  text-transform:uppercase;
  font-weight:1000;
  letter-spacing:.04em;
}
.alerta-list-item-v15 b,
.alerta-list-item-v15 span{
  display:block;
  margin-top:3px;
  font-size:12px;
  font-weight:950;
  color:#173b2f;
  overflow-wrap:anywhere;
}
.modal-global-actions,
.modal-global-actions-injetado,
#btnDeterminarOffline,
#btnDeterminarOS,
#btnCancelarOffline,
#btnSalvarOffline,
#btnGlobalOffline,
#btnGlobalOS,
#btnGlobalRelatorioIndividual,
#btnGlobalOfflineInjetado,
#btnGlobalOSInjetado,
#btnGlobalRelatorioIndividualInjetado{
  display:none!important;
}
.report-fullscreen .modal-card{
  width:calc(100vw - 28px)!important;
  max-width:1280px!important;
  margin:auto;
}
.report-print-content,
.report-premium-v15{
  overflow:auto;
  max-height:calc(100dvh - 112px);
  padding:18px!important;
  background:#f8faf9;
}
.report-v15-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:18px;
  box-shadow:var(--shadow);
  margin-bottom:14px;
}
.report-v15-head strong{
  display:block;
  color:var(--verde);
  font-size:22px;
}
.report-v15-head span{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-weight:850;
  font-size:12px;
}
.report-v15-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:10px;
  margin-bottom:14px;
}
.report-v15-summary article{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:13px;
  box-shadow:0 12px 26px rgba(15,61,46,.08);
}
.report-v15-summary small{
  display:block;
  color:var(--muted);
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
}
.report-v15-summary b{
  display:block;
  margin-top:6px;
  color:var(--verde);
  font-size:20px;
}
.report-v15-table-wrap{
  overflow:auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:var(--shadow);
}
.report-v15-table{
  width:100%;
  min-width:0!important;
  border-collapse:collapse;
  table-layout:auto;
}
.report-v15-table th,
.report-v15-table td{
  white-space:normal!important;
  overflow-wrap:anywhere;
  text-align:center;
  vertical-align:middle;
}
.report-v15-table th{
  background:var(--verde);
  color:#fff;
  padding:11px 8px;
  font-size:10px;
}
.report-v15-table td{
  padding:10px 8px;
  font-size:11.5px;
  border-bottom:1px solid var(--line);
  font-weight:850;
}
.visual-card-menu .visual-card-actions .btn[data-visual-abrir]::before{content:"Ver ";}
.visual-card-menu .visual-card-actions .btn[data-visual-abrir]{font-size:0;}
.visual-card-menu .visual-card-actions .btn[data-visual-abrir]::before{font-size:13px;}
#matrizHora th:first-child,
#matrizHora td:first-child{
  min-width:220px;
  resize:horizontal;
}
.tabela-resizable-v15 th{position:relative;}
.tabela-resizer-v15{
  position:absolute;
  right:-3px;
  top:0;
  width:8px;
  height:100%;
  cursor:col-resize;
  z-index:5;
}
.tabela-resizer-v15:after{
  content:"";
  position:absolute;
  top:22%;
  bottom:22%;
  left:3px;
  width:2px;
  background:rgba(255,255,255,.42);
}
.tabela-resizer-v15:hover:after{background:#fff;}
@media(max-width:1500px){
  .filters-panel{grid-template-columns:repeat(4,minmax(0,1fr));}
  .drill-panel{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:900px){
  .filters-panel,.drill-panel{grid-template-columns:1fr!important;}
  .periodo-calendario-box{grid-template-columns:1fr;}
  .alertas-lista-modal-v15{grid-template-columns:1fr;padding:12px;}
  .alerta-list-item-v15{grid-template-columns:1fr;}
  .alerta-list-item-v15 .frota-pill{grid-row:auto;min-height:58px;}
  .report-v15-head{flex-direction:column;}
}
@media print{
  .report-v15-head,.report-v15-summary,.report-v15-table-wrap{box-shadow:none!important;}
}

/* =========================================================
   PATCH V19 — filtros, alertas, relatórios, cards e tabelas
========================================================= */
html, body{overflow-x:hidden!important;max-width:100%!important;}
.app,.panel,.filters-panel,.table-wrap,.modal-card{max-width:100%!important;}
.filters-panel{
  grid-template-columns:minmax(180px,1.05fr) repeat(7,minmax(118px,.72fr)) minmax(310px,1.15fr)!important;
  gap:10px!important;
  align-items:end!important;
}
.periodo-entrada-final-v19{order:99!important;min-width:300px!important;}
.periodo-calendario-box{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;align-items:center;}
.periodo-calendario-box input{height:46px;min-width:0;}
.periodo-calendario-box .btn{height:46px;padding:0 12px;}
.consultas-alertas-v19{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px;}
.consultas-alertas-v19 .alerta-consulta-card{border-radius:20px;padding:14px 16px;box-shadow:0 14px 34px rgba(15,61,46,.10);border:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;cursor:pointer;background:white;min-width:0;transition:.15s ease;}
.consultas-alertas-v19 .alerta-consulta-card:hover{transform:translateY(-2px);box-shadow:0 20px 42px rgba(15,61,46,.16);}
.consultas-alertas-v19 .alerta-consulta-card strong{font-size:13px;color:var(--verde);display:flex;gap:8px;align-items:center;}
.consultas-alertas-v19 .alerta-consulta-card p{margin:4px 0 0;color:var(--muted);font-weight:850;font-size:11px;}
.consultas-alertas-v19 .alerta-consulta-card b{font-size:28px;color:var(--verde);}
.consultas-alertas-v19 .sem-os{border-left:6px solid #eab308;}
.consultas-alertas-v19 .prod-os{border-left:6px solid #f97316;}
.alert-dot{width:10px;height:10px;border-radius:999px;background:currentColor;display:inline-block;box-shadow:0 0 0 4px rgba(255,255,255,.9),0 0 12px currentColor;}
.alerta-v19-list{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;max-height:70vh;overflow:auto;}
.alerta-v19-row{display:grid;grid-template-columns:minmax(90px,.45fr) minmax(180px,1fr) minmax(180px,1fr) minmax(180px,1fr);gap:10px;background:#f8fbf9;border:1px solid var(--line);border-radius:18px;padding:12px;color:var(--txt);align-items:center;}
.alerta-v19-row small{display:block;text-transform:uppercase;color:#5d7067;font-weight:1000;font-size:10px;margin-bottom:4px;}
.alerta-v19-row b{display:block;color:#0f3d2e;font-size:13px;overflow-wrap:anywhere;}
.alerta-v19-row span{display:block;color:#64756d;font-size:11px;font-weight:850;margin-top:3px;overflow-wrap:anywhere;}
.alerta-v19-frota{background:#0f3d2e;color:white;border-radius:14px;padding:10px;text-align:center;}
.alerta-v19-frota small,.alerta-v19-frota b{color:white!important;}
.tabela-power-v19{table-layout:fixed;max-width:100%;}
.tabela-power-v19 th{position:relative!important;user-select:none;cursor:pointer;padding-right:24px!important;}
.tabela-power-v19 .sort-v19{font-size:10px;margin-left:5px;opacity:.78;}
.tabela-power-v19 .resize-v19{position:absolute;right:-3px;top:0;width:8px;height:100%;cursor:col-resize;z-index:6;}
.tabela-power-v19 .resize-v19:after{content:"";position:absolute;top:22%;bottom:22%;left:3px;width:1px;background:rgba(255,255,255,.55);}
.tabela-power-v19 td,.tabela-power-v19 th{overflow-wrap:anywhere;word-break:normal;}
.report-v15-table-wrap{max-width:100%;overflow:auto!important;}
.report-v15-table td,.report-v15-table th{white-space:normal!important;overflow-wrap:anywhere;}
.rel-disp-table-v19 td.green{background:#dcfce7;color:#166534;font-weight:1000;}
.rel-disp-table-v19 td.orange{background:#ffedd5;color:#9a3412;font-weight:1000;}
.rel-disp-table-v19 td.red{background:#fee2e2;color:#b91c1c;font-weight:1000;}
.rel-aloc-v19{display:flex!important;flex-direction:column!important;gap:12px!important;color:var(--txt);overflow:auto!important;}
.rel-aloc-head{display:flex;justify-content:space-between;gap:12px;align-items:center;background:white;border:1px solid var(--line);border-radius:20px;padding:14px 16px;box-shadow:var(--shadow);}
.rel-aloc-head small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:1000;}
.rel-aloc-head strong{display:block;color:var(--verde);font-size:18px;}
.rel-aloc-head span{display:block;color:#60736a;font-size:12px;font-weight:850;margin-top:3px;}
.rel-aloc-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:white;border:1px solid var(--line);border-radius:18px;padding:8px;}
.rel-aloc-frente{width:100%;border-collapse:collapse;table-layout:fixed;min-width:0!important;border:1px solid #9aa8a1;}
.rel-aloc-frente thead th{background:#0f3d2e!important;color:white!important;text-align:left!important;font-size:10px!important;padding:5px 7px!important;position:static!important;}
.rel-aloc-frente tbody th{width:90px;background:#0f3d2e!important;color:white!important;font-size:9px!important;text-align:left!important;padding:4px 5px!important;position:static!important;white-space:normal!important;}
.rel-aloc-frente td{padding:2px 3px!important;border:1px solid #9aa8a1!important;line-height:1.35;background:#fff;}
.rel-frota{display:inline-flex;align-items:center;justify-content:center;min-width:45px;margin:1px;padding:2px 4px;border-radius:3px;border:1px solid #b9c4bf;font-size:9px;font-weight:1000;color:#0b251c;background:#fff;}
.rel-frota.red{background:#fee2e2;color:#991b1b;border-color:#ef4444;}
.rel-frota.orange{background:#ffedd5;color:#9a3412;border-color:#f97316;}
.rel-frota.yellow{background:#fef9c3;color:#854d0e;border-color:#eab308;}
.rel-frota.green{background:#dcfce7;color:#166534;border-color:#22c55e;}
.rel-frota.blue{background:#dbeafe;color:#1d4ed8;border-color:#3b82f6;}
.rel-frota.gray{background:#f1f5f9;color:#475569;}
.frota-card-v19{border-radius:12px!important;box-shadow:0 10px 24px rgba(15,61,46,.10)!important;border:1px solid rgba(15,61,46,.12)!important;transition:.15s ease!important;}
.frota-card-v19:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(15,61,46,.18)!important;}
.frota-card-v19.frota-red{background:#fee2e2!important;color:#991b1b!important;}
.frota-card-v19.frota-orange{background:#ffedd5!important;color:#9a3412!important;}
.frota-card-v19.frota-yellow{background:#fef9c3!important;color:#854d0e!important;}
.frota-card-v19.frota-green{background:#dcfce7!important;color:#166534!important;}
.frota-card-v19.frota-blue{background:#dbeafe!important;color:#1d4ed8!important;}
.frota-card-v19.frota-gray{background:#f1f5f9!important;color:#475569!important;}
#btnGerarPDF,.btn-pdf-premium-v15{border-radius:16px!important;background:linear-gradient(135deg,#0f3d2e,#17694f)!important;color:white!important;box-shadow:0 14px 30px rgba(15,61,46,.23)!important;}
@media(max-width:1500px){.filters-panel{grid-template-columns:repeat(4,minmax(0,1fr))!important}.periodo-entrada-final-v19{grid-column:span 2;}}
@media(max-width:900px){.filters-panel,.consultas-alertas-v19,.rel-aloc-grid{grid-template-columns:1fr!important}.periodo-entrada-final-v19{grid-column:auto;min-width:0!important}.periodo-calendario-box{grid-template-columns:1fr}.alerta-v19-row{grid-template-columns:1fr}.rel-aloc-head{display:block}.rel-aloc-head .btn{margin-top:10px;width:100%;}}
@media print{.rel-aloc-grid{grid-template-columns:1fr 1fr!important;gap:4px!important}.rel-aloc-frente thead th,.rel-aloc-frente tbody th{font-size:8px!important}.rel-frota{font-size:7px!important;min-width:34px;padding:1px 2px}.rel-aloc-head .btn,.report-v15-head .btn{display:none!important}}

/* =========================================================
   PATCH V21 — estabilidade, filtros, PDF e disponibilidade
========================================================= */
html, body{
  overflow-x:hidden!important;
  max-width:100%!important;
}
body.hide-global-filters-hora-v21 .filters-panel{
  display:none!important;
}
.filters-panel{
  max-width:100%;
  overflow:visible;
  align-items:end;
}
.filters-panel .field,
.filters-panel input,
.filters-panel select,
.filters-panel button,
.multi-select,
.multi-select-btn{
  min-width:0;
  max-width:100%;
}
.drill-panel{
  max-width:100%;
  overflow:hidden;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:flex-end;
}
.drill-panel .field{
  min-width:190px;
  flex:1 1 210px;
}
.drill-panel .disponibilidade-busca-field{
  flex:1.4 1 260px;
}
.table-wrap,
.report-table-wrap,
.report-v21-table-wrap{
  max-width:100%;
  overflow:auto;
}
.tabela-power-v21 th{
  position:relative!important;
  user-select:none;
  cursor:pointer;
  padding-right:28px!important;
}
.tabela-power-v21 .sort-v21{
  display:inline-flex;
  margin-left:5px;
  font-size:10px;
  opacity:.82;
  vertical-align:middle;
}
.tabela-power-v21 .resize-v21{
  position:absolute;
  right:-3px;
  top:0;
  width:9px;
  height:100%;
  cursor:col-resize;
  z-index:9;
  touch-action:none;
}
.tabela-power-v21 .resize-v21:after{
  content:"";
  position:absolute;
  top:18%;
  bottom:18%;
  left:4px;
  width:1px;
  background:rgba(255,255,255,.58);
}
.tabela-power-v21 th:hover .resize-v21:after{
  width:2px;
  background:#fff;
}
#matrizHora.tabela-power-v21 th:first-child,
#matrizHora.tabela-power-v21 td:first-child{
  min-width:190px;
}
.hora-pendente-v21{
  background:#edf2f0!important;
  color:#74837c!important;
  border-color:#dce6e1!important;
  box-shadow:none!important;
}
.consultas-alertas-v21{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin:0 0 18px;
  max-width:100%;
}
.consultas-alertas-v21 .alerta-consulta-card{
  min-width:0;
  overflow:hidden;
}
.alerta-v21-list{
  display:grid;
  gap:12px;
  max-height:68vh;
  overflow:auto;
  padding:2px;
}
.alerta-v21-row{
  display:grid;
  grid-template-columns:minmax(80px,.55fr) minmax(190px,1.2fr) minmax(200px,1.3fr) minmax(180px,1fr);
  gap:10px;
  padding:13px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  color:var(--txt);
  box-shadow:0 10px 28px rgba(15,61,46,.10);
}
.alerta-v21-row small{
  display:block;
  color:#60766d;
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.alerta-v21-row b{
  display:block;
  color:#0f3d2e;
  font-weight:1000;
  margin-top:3px;
  overflow-wrap:anywhere;
}
.alerta-v21-row span{
  display:block;
  color:#52665e;
  font-weight:850;
  font-size:12px;
  margin-top:2px;
  overflow-wrap:anywhere;
}
.report-v21-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:14px 16px;
  margin-bottom:14px;
  box-shadow:var(--shadow);
}
.report-v21-head small{
  display:block;
  text-transform:uppercase;
  font-size:10px;
  font-weight:1000;
  color:#60766d;
  letter-spacing:.05em;
}
.report-v21-head strong{
  display:block;
  color:#0f3d2e;
  font-size:20px;
  margin-top:2px;
}
.report-v21-head span{
  display:block;
  color:#60766d;
  font-size:12px;
  font-weight:850;
  margin-top:3px;
}
.relatorio-espelho-v21{
  display:flex;
  flex-direction:column;
  min-height:0;
  gap:10px;
}
.report-v21-table-wrap{
  border-radius:18px;
  background:#fff;
  border:1px solid var(--line);
}
.report-v21-table-wrap table{
  width:100%;
  border-collapse:collapse;
  min-width:0!important;
}
.report-v21-table-wrap th{
  background:#0f3d2e;
  color:#fff;
}
.report-v21-table-wrap td,
.report-v21-table-wrap th{
  padding:8px 9px;
  font-size:11px;
  border:1px solid #dce6e1;
  overflow-wrap:anywhere;
}
@media(max-width:760px){
  .consultas-alertas-v21{grid-template-columns:1fr;}
  .alerta-v21-row{grid-template-columns:1fr;}
  .report-v21-head{align-items:flex-start;flex-direction:column;}
  .drill-panel .field{flex:1 1 100%;}
}

/* =========================================================
   PATCH V22 — Consultas Gerais limpo
========================================================= */
.periodo-data-entrada-v22 label{
  color:#244a3d;
}
.periodo-data-entrada-v22 .periodo-calendario-box{
  display:grid;
  grid-template-columns:minmax(128px,1fr) minmax(128px,1fr) auto;
  gap:8px;
  align-items:center;
}
.periodo-data-entrada-v22 input[type="date"]{
  min-width:0;
  height:46px;
}
.consultas-alertas-v22{
  max-width:100%;
  overflow:hidden;
}
.modal-alerta-v22 .modal-card{
  width:min(980px,calc(100vw - 28px));
}
.alerta-v22-list{
  display:grid;
  gap:12px;
  max-height:calc(82vh - 130px);
  overflow:auto;
  padding-right:4px;
}
.alerta-v22-row{
  display:grid;
  grid-template-columns:minmax(90px,.45fr) minmax(180px,1fr) minmax(220px,1.2fr);
  gap:10px;
  align-items:stretch;
  background:#f8fbf9;
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px;
  color:var(--txt);
}
.alerta-v22-row div{
  border:0!important;
  padding:0!important;
  background:transparent!important;
}
.alerta-v22-row small{
  display:block;
  color:#557168;
  font-size:10px;
  text-transform:uppercase;
  font-weight:1000;
  margin-bottom:4px;
}
.alerta-v22-row b,
.alerta-v22-row span{
  display:block;
  color:#0f3d2e;
  font-size:13px;
  font-weight:950;
  overflow-wrap:anywhere;
}
.alerta-v22-row span{
  color:#536b62;
  font-weight:850;
  margin-top:3px;
}
@media(max-width:760px){
  .periodo-data-entrada-v22 .periodo-calendario-box,
  .alerta-v22-row{
    grid-template-columns:1fr;
  }
}

/* =========================================================
   PATCH V24 — SEMÁFORO SIMPLIFICADO NO MENU LATERAL
========================================================= */
html, body{ overflow-x:hidden; }
#alertasConsultasGerais,
.consultas-alertas-panel,
.consultas-alertas-v19,
.consultas-alertas-v21,
.consultas-alertas-v22{
  display:none!important;
}
.side-alertas-box{
  display:grid;
  gap:10px;
}
.side-alertas-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:8px;
}
.side-alerta{
  border:1px solid rgba(255,255,255,.16);
  border-radius:15px;
  padding:10px 8px;
  color:#fff;
  cursor:pointer;
  min-width:0;
  text-align:left;
  box-shadow:0 12px 26px rgba(0,0,0,.14);
}
.side-alerta span{
  display:block;
  font-size:9px;
  font-weight:1000;
  letter-spacing:.03em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.side-alerta b{
  display:block;
  margin-top:5px;
  font-size:24px;
  line-height:1;
  font-weight:1000;
}
.side-alerta-sem{ background:linear-gradient(135deg,#b91c1c,#ef4444); }
.side-alerta-prod{ background:linear-gradient(135deg,#c2410c,#f97316); }
#sideSemaforoAtualizado{
  display:block;
  font-size:10px;
  color:#cde5da;
  font-weight:850;
  font-style:normal;
}
.modal-alertas-sidebar .modal-card{
  width:min(860px,calc(100vw - 28px));
  max-height:calc(100dvh - 28px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.modal-alertas-sidebar .modal-grid{
  display:block;
  overflow:auto;
  min-height:0;
}
.side-alertas-modal-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
}
.side-alertas-modal-card{
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  padding:13px;
  background:rgba(255,255,255,.96);
  color:#0f3d2e;
  text-align:left;
  cursor:pointer;
  box-shadow:0 12px 26px rgba(0,0,0,.12);
}
.side-alertas-modal-card:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 38px rgba(0,0,0,.18);
}
.side-alertas-modal-card strong{
  display:block;
  font-size:20px;
  font-weight:1000;
  color:#0f3d2e;
}
.side-alertas-modal-card span,
.side-alertas-modal-card small{
  display:block;
  margin-top:5px;
  color:#315548;
  font-weight:850;
  line-height:1.28;
}
.modal-empty-state{
  border:1px solid rgba(255,255,255,.15);
  border-radius:16px;
  padding:16px;
  background:rgba(255,255,255,.08);
  color:#fff;
}
@media(max-width:760px){
  .side-alertas-grid{grid-template-columns:1fr;}
  .side-alertas-modal-list{grid-template-columns:1fr;}
}

/* =========================================================
   PATCH V28 — RELATÓRIO ALOCAÇÃO COM RELAÇÃO DE PARADAS
========================================================= */
.rel-aloc-paradas{
  background:white;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.rel-aloc-section-title{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:12px 14px;
  background:linear-gradient(135deg,#0f3d2e,#14523e);
  color:white;
}
.rel-aloc-section-title strong{
  font-size:15px;
  font-weight:1000;
}
.rel-aloc-section-title span{
  font-size:11px;
  font-weight:1000;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  padding:5px 9px;
  white-space:nowrap;
}
.rel-aloc-paradas-wrap{
  width:100%;
  overflow:auto;
  max-width:100%;
}
.rel-aloc-paradas-table{
  min-width:1180px;
  width:100%;
  table-layout:fixed;
}
.rel-aloc-paradas-table th{
  font-size:9px!important;
  padding:8px 6px!important;
  text-align:center!important;
  white-space:normal!important;
  position:sticky!important;
  top:0!important;
}
.rel-aloc-paradas-table td{
  font-size:9px!important;
  padding:7px 6px!important;
  text-align:center!important;
  vertical-align:middle!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  line-height:1.2!important;
}
.rel-aloc-paradas-table td.red{background:#fee2e2!important;color:#991b1b!important;font-weight:1000!important;}
.rel-aloc-paradas-table td.orange{background:#ffedd5!important;color:#9a3412!important;font-weight:1000!important;}
.rel-aloc-paradas-table td.yellow{background:#fef9c3!important;color:#854d0e!important;font-weight:1000!important;}
.rel-aloc-paradas-table td.green{background:#dcfce7!important;color:#166534!important;font-weight:1000!important;}
.rel-aloc-paradas-table td.blue{background:#dbeafe!important;color:#1d4ed8!important;font-weight:1000!important;}
.rel-aloc-paradas-table td.gray{background:#f1f5f9!important;color:#475569!important;font-weight:1000!important;}
@media(max-width:900px){
  .rel-aloc-section-title{display:block;}
  .rel-aloc-section-title span{display:inline-flex;margin-top:8px;}
  .rel-aloc-paradas-table{min-width:980px;}
}
@media print{
  .rel-aloc-paradas{box-shadow:none!important;border-radius:0!important;page-break-inside:auto;}
  .rel-aloc-section-title{padding:6px 8px!important;}
  .rel-aloc-section-title strong{font-size:10px!important;}
  .rel-aloc-section-title span{font-size:8px!important;padding:2px 5px!important;}
  .rel-aloc-paradas-wrap{overflow:visible!important;}
  .rel-aloc-paradas-table{min-width:0!important;table-layout:fixed!important;}
  .rel-aloc-paradas-table th{font-size:6.3px!important;padding:3px 2px!important;}
  .rel-aloc-paradas-table td{font-size:6.1px!important;padding:3px 2px!important;}
}

/* =========================================================
   PATCH V30 — RELATÓRIO ALOCAÇÃO FIT PARA PRINT/PRINTSCREEN
   Mantém o visual aprovado, mas compacta para caber a alocação
   e a relação de paradas na mesma captura.
========================================================= */
.modal-rel-aloc-v19.report-fullscreen{
  padding:10px!important;
  align-items:stretch!important;
  justify-items:stretch!important;
}
.modal-rel-aloc-v19.report-fullscreen .modal-card{
  width:calc(100vw - 20px)!important;
  max-width:1320px!important;
  height:calc(100dvh - 20px)!important;
  border-radius:22px!important;
  padding:12px!important;
  overflow:hidden!important;
}
.modal-rel-aloc-v19.report-fullscreen .modal-card h3{
  font-size:18px!important;
  margin:0 44px 8px 0!important;
  line-height:1.1!important;
}
.modal-rel-aloc-v19.report-fullscreen .modal-close{
  top:12px!important;
  right:16px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19{
  gap:7px!important;
  overflow:auto!important;
  max-height:calc(100dvh - 74px)!important;
  padding-right:3px!important;
}
.modal-rel-aloc-v19 .rel-aloc-head{
  padding:8px 12px!important;
  border-radius:16px!important;
  min-height:0!important;
}
.modal-rel-aloc-v19 .rel-aloc-head small{
  font-size:8px!important;
  margin:0!important;
}
.modal-rel-aloc-v19 .rel-aloc-head strong{
  font-size:16px!important;
  line-height:1.05!important;
}
.modal-rel-aloc-v19 .rel-aloc-head span{
  font-size:10px!important;
  margin-top:2px!important;
}
.modal-rel-aloc-v19 .rel-aloc-head .btn{
  min-height:40px!important;
  padding:8px 14px!important;
  border-radius:14px!important;
}
.modal-rel-aloc-v19 .rel-aloc-grid{
  grid-template-columns:1fr 1fr!important;
  gap:6px!important;
  padding:6px!important;
  border-radius:14px!important;
}
.modal-rel-aloc-v19 .rel-aloc-frente thead th{
  font-size:8px!important;
  padding:3px 5px!important;
  line-height:1.05!important;
}
.modal-rel-aloc-v19 .rel-aloc-frente tbody th{
  width:82px!important;
  font-size:7.4px!important;
  padding:2px 4px!important;
  line-height:1.05!important;
}
.modal-rel-aloc-v19 .rel-aloc-frente td{
  padding:1px 2px!important;
  line-height:1.05!important;
}
.modal-rel-aloc-v19 .rel-frota{
  min-width:36px!important;
  margin:1px!important;
  padding:1px 3px!important;
  border-radius:3px!important;
  font-size:7.4px!important;
  line-height:1.05!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas{
  border-radius:14px!important;
  overflow:hidden!important;
}
.modal-rel-aloc-v19 .rel-aloc-section-title{
  padding:7px 10px!important;
  min-height:0!important;
}
.modal-rel-aloc-v19 .rel-aloc-section-title strong{
  font-size:13px!important;
  line-height:1.05!important;
}
.modal-rel-aloc-v19 .rel-aloc-section-title span{
  font-size:9px!important;
  padding:3px 7px!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-wrap{
  overflow:visible!important;
  max-width:100%!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  border-collapse:collapse!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th{
  position:static!important;
  font-size:7px!important;
  padding:3px 2px!important;
  line-height:1.05!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table td{
  font-size:6.8px!important;
  padding:3px 2px!important;
  line-height:1.05!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table.many th{
  font-size:6.1px!important;
  padding:2px 1px!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table.many td{
  font-size:5.9px!important;
  padding:2px 1px!important;
  line-height:1!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(1),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(1){width:7%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(2),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(2){width:5%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(3),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(3){width:5.5%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(4),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(4){width:8%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(5),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(5){width:7%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(6),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(6){width:6%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(7),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(7){width:5%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(8),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(8){width:12%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(9),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(9){width:5.5%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(10),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(10){width:8%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(11),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(11){width:7%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(12),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(12){width:7%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(13),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(13){width:6%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(14),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(14){width:5%;}

@media print{
  .modal-rel-aloc-v19.report-fullscreen .modal-card{
    width:100%!important;
    height:auto!important;
    max-width:none!important;
    padding:0!important;
    border-radius:0!important;
  }
  .modal-rel-aloc-v19 .rel-aloc-v19{
    max-height:none!important;
    overflow:visible!important;
    gap:5px!important;
  }
  .modal-rel-aloc-v19 .rel-aloc-head{
    padding:5px 7px!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  .modal-rel-aloc-v19 .rel-aloc-grid{
    gap:3px!important;
    padding:3px!important;
    border-radius:0!important;
  }
  .modal-rel-aloc-v19 .rel-aloc-section-title{
    padding:4px 6px!important;
  }
  .modal-rel-aloc-v19 .rel-aloc-paradas-table th{
    font-size:5.7px!important;
    padding:2px 1px!important;
  }
  .modal-rel-aloc-v19 .rel-aloc-paradas-table td{
    font-size:5.5px!important;
    padding:2px 1px!important;
  }
}

/* =========================================================
   PATCH V31 — RELATÓRIO ALOCAÇÃO FIT + FILTROS DETERMINAR FRENTE
   Ajusta para print/captura e remove filtros sem uso no menu Totais.
========================================================= */
body[data-view="totais"] .filters-panel .field:has(#boxFiltroOrigem),
body[data-view="totais"] .filters-panel .field:has(#boxFiltroStatus),
body[data-view="totais"] .filters-panel .field:has(#boxFiltroSemaforo),
body[data-view="totais"] #boxFiltroOrigem,
body[data-view="totais"] #boxFiltroStatus,
body[data-view="totais"] #boxFiltroSemaforo{
  display:none!important;
}

.modal-rel-aloc-v19.report-fullscreen{
  padding:6px!important;
}
.modal-rel-aloc-v19.report-fullscreen .modal-card{
  width:calc(100vw - 12px)!important;
  max-width:1320px!important;
  height:calc(100dvh - 12px)!important;
  padding:8px!important;
  border-radius:18px!important;
}
.modal-rel-aloc-v19.report-fullscreen .modal-card h3{
  font-size:16px!important;
  margin:0 40px 5px 0!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19{
  gap:5px!important;
  max-height:calc(100dvh - 54px)!important;
  overflow:auto!important;
}
.modal-rel-aloc-v19 .rel-aloc-head{
  padding:6px 10px!important;
  border-radius:14px!important;
}
.modal-rel-aloc-v19 .rel-aloc-head strong{font-size:14px!important;line-height:1!important;}
.modal-rel-aloc-v19 .rel-aloc-head small{font-size:7px!important;}
.modal-rel-aloc-v19 .rel-aloc-head span{font-size:8.5px!important;line-height:1.05!important;}
.modal-rel-aloc-v19 .rel-aloc-head .btn{
  min-height:34px!important;
  padding:6px 12px!important;
  font-size:11px!important;
}
.modal-rel-aloc-v19 .rel-aloc-grid{
  gap:4px!important;
  padding:4px!important;
  border-radius:12px!important;
}
.modal-rel-aloc-v19 .rel-aloc-frente thead th{
  font-size:7.2px!important;
  padding:2px 4px!important;
}
.modal-rel-aloc-v19 .rel-aloc-frente tbody th{
  width:76px!important;
  font-size:6.7px!important;
  padding:2px 3px!important;
}
.modal-rel-aloc-v19 .rel-frota{
  min-width:31px!important;
  font-size:6.6px!important;
  padding:1px 2px!important;
  margin:0 1px!important;
}
.modal-rel-aloc-v19 .rel-aloc-section-title{
  padding:5px 8px!important;
}
.modal-rel-aloc-v19 .rel-aloc-section-title strong{font-size:11px!important;}
.modal-rel-aloc-v19 .rel-aloc-section-title span{font-size:7.5px!important;padding:2px 5px!important;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th{
  font-size:5.7px!important;
  padding:2px 1px!important;
  line-height:1!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table td{
  font-size:5.5px!important;
  padding:2px 1px!important;
  line-height:1!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table.many th{
  font-size:5.1px!important;
  padding:1px!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table.many td{
  font-size:4.9px!important;
  padding:1px!important;
  line-height:1!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(8),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(8){width:10%!important;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table th:nth-child(10),
.modal-rel-aloc-v19 .rel-aloc-paradas-table td:nth-child(10){width:7%!important;}

@media print{
  body[data-view="totais"] .filters-panel .field:has(#boxFiltroOrigem),
  body[data-view="totais"] .filters-panel .field:has(#boxFiltroStatus),
  body[data-view="totais"] .filters-panel .field:has(#boxFiltroSemaforo){display:none!important;}
  .modal-rel-aloc-v19 .rel-aloc-paradas-table th{font-size:5px!important;padding:1px!important;}
  .modal-rel-aloc-v19 .rel-aloc-paradas-table td{font-size:4.8px!important;padding:1px!important;}
}

/* =========================================================
   PATCH V32 — RELATÓRIO DE ALOCAÇÃO LEGÍVEL
   Mantém o visual aprovado, mas deixa a relação de paradas
   maior para leitura e print. Em vez de 14 colunas minúsculas,
   consolida informações em 8 colunas com duas linhas internas.
========================================================= */
.modal-rel-aloc-v19.report-fullscreen .modal-card{
  max-width:1380px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19{
  gap:10px!important;
}
.modal-rel-aloc-v19 .rel-aloc-head{
  padding:11px 14px!important;
}
.modal-rel-aloc-v19 .rel-aloc-head strong{
  font-size:18px!important;
}
.modal-rel-aloc-v19 .rel-aloc-head span{
  font-size:11px!important;
}
.modal-rel-aloc-v19 .rel-aloc-grid{
  gap:8px!important;
  padding:8px!important;
}
.modal-rel-aloc-v19 .rel-aloc-frente thead th{
  font-size:9px!important;
  padding:5px 7px!important;
}
.modal-rel-aloc-v19 .rel-aloc-frente tbody th{
  width:96px!important;
  font-size:8.5px!important;
  padding:4px 6px!important;
}
.modal-rel-aloc-v19 .rel-frota{
  min-width:42px!important;
  padding:3px 6px!important;
  font-size:8.6px!important;
  line-height:1.15!important;
}
.rel-aloc-paradas-table.readable{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  border-collapse:collapse!important;
}
.rel-aloc-paradas-table.readable th{
  position:static!important;
  font-size:9.2px!important;
  padding:7px 5px!important;
  line-height:1.12!important;
  text-align:center!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.rel-aloc-paradas-table.readable td{
  font-size:9.1px!important;
  padding:7px 5px!important;
  line-height:1.16!important;
  text-align:center!important;
  vertical-align:middle!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.rel-aloc-paradas-table.readable td b{
  display:block;
  font-size:9.3px;
  font-weight:1000;
  line-height:1.13;
}
.rel-aloc-paradas-table.readable td small{
  display:block;
  margin-top:3px;
  color:#50675e;
  font-size:7.8px;
  font-weight:900;
  line-height:1.1;
}
.rel-aloc-paradas-table.readable .rel-desc{
  text-align:left!important;
}
.rel-aloc-paradas-table.readable .rel-status{
  font-size:8.2px!important;
  font-weight:1000!important;
}
.rel-aloc-paradas-table.readable .rel-horas{
  font-size:9.5px!important;
  font-weight:1000!important;
}
.rel-aloc-paradas-table.readable th:nth-child(1),
.rel-aloc-paradas-table.readable td:nth-child(1){width:11%;}
.rel-aloc-paradas-table.readable th:nth-child(2),
.rel-aloc-paradas-table.readable td:nth-child(2){width:11%;}
.rel-aloc-paradas-table.readable th:nth-child(3),
.rel-aloc-paradas-table.readable td:nth-child(3){width:10%;}
.rel-aloc-paradas-table.readable th:nth-child(4),
.rel-aloc-paradas-table.readable td:nth-child(4){width:24%;}
.rel-aloc-paradas-table.readable th:nth-child(5),
.rel-aloc-paradas-table.readable td:nth-child(5){width:13%;}
.rel-aloc-paradas-table.readable th:nth-child(6),
.rel-aloc-paradas-table.readable td:nth-child(6){width:13%;}
.rel-aloc-paradas-table.readable th:nth-child(7),
.rel-aloc-paradas-table.readable td:nth-child(7){width:10%;}
.rel-aloc-paradas-table.readable th:nth-child(8),
.rel-aloc-paradas-table.readable td:nth-child(8){width:8%;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table.readable.many th{
  font-size:8.7px!important;
  padding:6px 4px!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table.readable.many td{
  font-size:8.4px!important;
  padding:5px 4px!important;
  line-height:1.1!important;
}
.modal-rel-aloc-v19 .rel-aloc-paradas-table.readable.many td b{font-size:8.6px!important;}
.modal-rel-aloc-v19 .rel-aloc-paradas-table.readable.many td small{font-size:7.2px!important;}

@media print{
  .modal-rel-aloc-v19 .rel-aloc-paradas-table.readable th{
    font-size:8px!important;
    padding:5px 3px!important;
  }
  .modal-rel-aloc-v19 .rel-aloc-paradas-table.readable td{
    font-size:7.6px!important;
    padding:4px 3px!important;
    line-height:1.08!important;
  }
  .modal-rel-aloc-v19 .rel-aloc-paradas-table.readable td b{font-size:7.8px!important;}
  .modal-rel-aloc-v19 .rel-aloc-paradas-table.readable td small{font-size:6.6px!important;}
  .modal-rel-aloc-v19 .rel-frota{font-size:7.3px!important;min-width:35px!important;padding:2px 4px!important;}
}


/* =========================================================
   PATCH V33 — RELATÓRIO ALOCAÇÃO AUTOAJUSTÁVEL + FILTRO TOTAIS SEM SCROLL
   Mantém o visual aprovado e só ajusta densidade conforme quantidade de paradas.
========================================================= */
body[data-view="totais"] .filters-panel{
  display:grid!important;
  grid-template-columns:minmax(220px,1.35fr) minmax(150px,.9fr) minmax(170px,1fr) minmax(170px,1fr)!important;
  gap:10px!important;
  align-items:end!important;
  overflow:visible!important;
  max-height:none!important;
}
body[data-view="totais"] .filters-panel .periodo-entrada-final-v19,
body[data-view="totais"] .filters-panel .field:has(#periodoEntradaInicio),
body[data-view="totais"] .filters-panel .field:has(#periodoEntradaFim),
body[data-view="totais"] .filters-panel .field:has(#boxFiltroOrigem),
body[data-view="totais"] .filters-panel .field:has(#boxFiltroStatus),
body[data-view="totais"] .filters-panel .field:has(#boxFiltroSemaforo),
body[data-view="totais"] .filters-panel .field:has(#boxFiltroClasse),
body[data-view="totais"] .filters-panel .classe-filter,
body[data-view="totais"] #boxFiltroOrigem,
body[data-view="totais"] #boxFiltroStatus,
body[data-view="totais"] #boxFiltroSemaforo,
body[data-view="totais"] #boxFiltroClasse,
body[data-view="totais"] #campoFiltroClasse{
  display:none!important;
}
body[data-view="totais"] .filters-panel .field,
body[data-view="totais"] .filters-panel .field.wide{
  min-width:0!important;
  width:100%!important;
  max-width:none!important;
}
body[data-view="totais"] .filters-panel input,
body[data-view="totais"] .filters-panel button,
body[data-view="totais"] .filters-panel .multi-select-btn{
  height:44px!important;
}
body[data-view="totais"] .multi-select-menu{
  max-height:260px!important;
  overflow:auto!important;
}

.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-few .rel-aloc-paradas-table.readable th{
  font-size:9.6px!important;
  padding:7px 5px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-few .rel-aloc-paradas-table.readable td{
  font-size:9.5px!important;
  padding:7px 5px!important;
  line-height:1.16!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-medium .rel-aloc-paradas-table.readable th{
  font-size:9px!important;
  padding:6px 4px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-medium .rel-aloc-paradas-table.readable td{
  font-size:8.8px!important;
  padding:5px 4px!important;
  line-height:1.12!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-many .rel-aloc-head{
  padding:8px 12px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-many .rel-aloc-grid{
  gap:6px!important;
  padding:6px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-many .rel-aloc-frente thead th{
  font-size:8.3px!important;
  padding:4px 6px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-many .rel-aloc-frente tbody th{
  font-size:7.6px!important;
  padding:3px 5px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-many .rel-frota{
  font-size:7.9px!important;
  min-width:38px!important;
  padding:2px 4px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-many .rel-aloc-paradas-table.readable th{
  font-size:8.2px!important;
  padding:5px 3px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-many .rel-aloc-paradas-table.readable td{
  font-size:8px!important;
  padding:4px 3px!important;
  line-height:1.08!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-head{
  padding:7px 10px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-head strong{
  font-size:15px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-head span{
  font-size:9px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-grid{
  gap:5px!important;
  padding:5px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-frente thead th{
  font-size:7.8px!important;
  padding:3px 5px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-frente tbody th{
  width:84px!important;
  font-size:7.1px!important;
  padding:2px 4px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-frota{
  font-size:7.3px!important;
  min-width:34px!important;
  padding:1px 3px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-section-title{
  padding:6px 9px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-section-title strong{
  font-size:12px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-paradas-table.readable th{
  font-size:7.6px!important;
  padding:4px 3px!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-paradas-table.readable td{
  font-size:7.3px!important;
  padding:3px 3px!important;
  line-height:1.06!important;
}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-paradas-table.readable td b{font-size:7.5px!important;}
.modal-rel-aloc-v19 .rel-aloc-v19.rel-paradas-dense .rel-aloc-paradas-table.readable td small{font-size:6.4px!important;}

@media(max-width:1200px){
  body[data-view="totais"] .filters-panel{grid-template-columns:1fr 1fr!important;}
}
@media(max-width:720px){
  body[data-view="totais"] .filters-panel{grid-template-columns:1fr!important;}
}

/* =========================================================
   PATCH V34 — MODAL ADICIONAR FROTA/TIPO/FRENTE
   Mantém o restante aprovado e melhora somente o modal de alocação.
========================================================= */
.modal-alocacao-add .modal-card{
  width:min(760px, calc(100vw - 28px));
}
.modal-add-alocacao-grid{
  grid-template-columns:1fr!important;
}
.alocacao-add-modal{
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.055))!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:20px!important;
  padding:16px!important;
  gap:14px!important;
}
.alocacao-modal-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  padding:14px;
}
.alocacao-modal-head small,
.alocacao-add-modal label span,
.aloc-preview small{
  display:block;
  color:#a7dcc6;
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.alocacao-modal-head b{
  display:block;
  margin-top:4px;
  color:#fff;
  font-size:20px;
  line-height:1.08;
  font-weight:1000;
}
.alocacao-modal-head span{
  display:block;
  margin-top:7px;
  color:#d6eee4;
  font-size:12px;
  line-height:1.32;
  font-weight:850;
}
.alocacao-form-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:12px;
  align-items:start;
}
.alocacao-form-grid label{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin:0;
}
.alocacao-form-grid label.field-full{
  grid-column:1/-1;
}
.alocacao-add-modal input{
  min-height:52px!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:16px!important;
  background:#fff!important;
  color:#0f3d2e!important;
  font-size:14px!important;
  font-weight:950!important;
}
.alocacao-add-modal em{
  color:#cde5da;
  font-style:normal;
  font-size:11px;
  font-weight:850;
  line-height:1.25;
}
.aloc-preview{
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff;
  color:#0f3d2e;
  border:1px solid rgba(255,255,255,.20);
  border-radius:18px;
  padding:13px 14px;
  box-shadow:0 16px 35px rgba(0,0,0,.15);
}
.aloc-preview i{
  width:16px;
  height:16px;
  border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 5px #dcfce7;
  flex:0 0 16px;
}
.aloc-preview small{
  color:#49695d;
}
.aloc-preview b{
  display:block;
  margin-top:3px;
  font-size:14px;
  line-height:1.25;
  color:#0f3d2e;
  font-weight:1000;
}
.aloc-preview span{
  display:block;
  margin-top:3px;
  color:#66786e;
  font-size:12px;
  font-weight:850;
}
.alocacao-add-modal .alocacao-modal-actions{
  justify-content:flex-end;
  background:rgba(255,255,255,.06);
  border-radius:16px;
  padding:10px;
}
@media(max-width:720px){
  .modal-alocacao-add .modal-card{
    width:100vw;
    max-height:92dvh;
    border-radius:24px 24px 0 0;
  }
  .alocacao-form-grid{
    grid-template-columns:1fr;
  }
  .alocacao-add-modal .alocacao-modal-actions,
  .alocacao-add-modal .btn{
    width:100%;
  }
}

/* ===== PATCH V35 — MODAL ADICIONAR FROTA/TIPO/FRENTE ===== */
.modal-add-frente-v35 .modal-card{max-width:760px;}
.alocacao-add-modal-v35{grid-column:1/-1;display:grid;gap:12px;width:100%;}
.alocacao-modal-head-v35{background:linear-gradient(135deg,#0f3d2e,#14523e);color:#fff;border-radius:18px;padding:16px 18px;box-shadow:0 14px 30px rgba(15,61,46,.18)}
.alocacao-modal-head-v35 b{display:block;font-size:18px;font-weight:1000;margin-bottom:4px;}
.alocacao-modal-head-v35 span{display:block;font-size:12px;line-height:1.35;color:#d6eee4;font-weight:850;}
.alocacao-add-modal-v35 label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:1000;color:#26493d;margin-top:4px;}
.alocacao-add-modal-v35 input{width:100%;height:50px;border:1px solid var(--line);border-radius:15px;background:#fbfcfb;color:var(--txt);padding:0 14px;font-weight:900;outline:none;}
.alocacao-add-modal-v35 input:focus{border-color:#0f3d2e;box-shadow:0 0 0 4px rgba(15,61,46,.10);background:#fff;}
.alocacao-preview-v35{border:1px dashed rgba(15,61,46,.28);background:#f6fbf8;border-radius:16px;padding:13px 15px;}
.alocacao-preview-v35 small{display:block;color:#66786e;text-transform:uppercase;font-size:10px;font-weight:1000;margin-bottom:4px;}
.alocacao-preview-v35 b{display:block;color:#0f3d2e;font-size:15px;font-weight:1000;}
.alocacao-preview-v35 span{display:block;margin-top:3px;color:#35584c;font-size:12px;font-weight:850;}
.input-error-v35{border-color:#dc2626!important;box-shadow:0 0 0 4px rgba(220,38,38,.12)!important;}
@media(max-width:760px){.modal-add-frente-v35 .modal-card{width:100vw;max-width:100vw;border-radius:22px 22px 0 0}.alocacao-modal-head-v35{border-radius:16px}.alocacao-modal-actions{display:grid;grid-template-columns:1fr;}}

/* =========================================================
   PATCH V36 — Cards manuais e alocação sem quebra visual
========================================================= */
.frota-card-v36-final{
  min-height:62px!important;
  padding:18px 10px 9px!important;
  align-items:flex-start!important;
  justify-content:center!important;
  overflow:hidden!important;
  word-break:normal!important;
}
.frota-card-v36-final b{
  display:block!important;
  width:100%!important;
  font-size:14px!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.frota-card-v36-final small{
  display:block!important;
  width:100%!important;
  font-size:9.5px!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.frota-card-v36-final em{
  position:absolute!important;
  left:7px!important;
  top:5px!important;
  display:inline-flex!important;
  align-items:center!important;
  max-width:calc(100% - 34px)!important;
  height:15px!important;
  padding:0 6px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.32)!important;
  color:inherit!important;
  font-size:8px!important;
  font-style:normal!important;
  font-weight:1000!important;
  letter-spacing:.02em!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.frota-card-v36-final.manual:after,
.frota-card-v36-final.offline:after,
.frota-card-v36-final.osmanual:after{
  content:none!important;
  display:none!important;
}
.frota-card-v36-final .x{
  z-index:3!important;
  right:5px!important;
  top:5px!important;
  background:rgba(255,255,255,.55)!important;
  color:#0f3d2e!important;
}
.frotas-grid-v36{
  grid-template-columns:repeat(auto-fill,minmax(108px,1fr))!important;
}
.frente-alocacao-v36 .tipo-head strong{
  overflow-wrap:anywhere!important;
}
@media(max-width:760px){
  .frotas-grid-v36{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))!important;}
  .frota-card-v36-final{min-height:58px!important;}
}

/* =========================================================
   PATCH V42 — Cards aprovados + modais premium controlados
========================================================= */
.frotas-grid-v36{
  grid-template-columns:repeat(auto-fill,minmax(116px,1fr))!important;
  gap:10px!important;
}
.frota-card-v36-final{
  min-height:62px!important;
  border-radius:14px!important;
  padding:14px 12px 10px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  border:1px solid rgba(15,61,46,.12)!important;
  box-shadow:0 8px 20px rgba(15,61,46,.08)!important;
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease!important;
  overflow:hidden!important;
}
.frota-card-v36-final:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 14px 30px rgba(15,61,46,.14)!important;
  filter:saturate(1.04)!important;
}
.frota-card-v36-final b{
  font-size:17px!important;
  line-height:1!important;
  letter-spacing:.02em!important;
  font-weight:1000!important;
  max-width:calc(100% - 20px)!important;
}
.frota-card-v36-final small{
  margin-top:5px!important;
  font-size:10px!important;
  line-height:1.05!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  max-width:100%!important;
}
.frota-card-v36-final.green{background:linear-gradient(135deg,#dcfce7,#c7f9d6)!important;color:#14532d!important;border-color:#8ce8ae!important;}
.frota-card-v36-final.red{background:linear-gradient(135deg,#fee2e2,#ffd5d5)!important;color:#991b1b!important;border-color:#fca5a5!important;}
.frota-card-v36-final.orange{background:linear-gradient(135deg,#ffedd5,#fed7aa)!important;color:#9a3412!important;border-color:#fdba74!important;}
.frota-card-v36-final.yellow{background:linear-gradient(135deg,#fef9c3,#fef08a)!important;color:#854d0e!important;border-color:#fde047!important;}
.frota-card-v36-final.blue{background:linear-gradient(135deg,#dbeafe,#bfdbfe)!important;color:#1e3a8a!important;border-color:#93c5fd!important;}
.frota-card-v36-final.gray{background:linear-gradient(135deg,#f1f5f9,#e2e8f0)!important;color:#334155!important;border-color:#cbd5e1!important;}
.frota-card-v36-final em{
  top:5px!important;
  left:7px!important;
  background:rgba(255,255,255,.70)!important;
  color:#0f3d2e!important;
  box-shadow:0 1px 4px rgba(15,61,46,.10)!important;
}
.frota-card-v36-final .x{
  top:6px!important;
  right:6px!important;
  width:18px!important;
  height:18px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.78)!important;
  color:#0f3d2e!important;
  font-size:13px!important;
  line-height:1!important;
}

.modal-card-os-v42 .modal-card,
.modal-add-frente-v35 .modal-card{
  border-radius:26px!important;
  border:1px solid rgba(15,61,46,.14)!important;
  box-shadow:0 28px 80px rgba(7,29,23,.28)!important;
}
.modal-os-shell-v42{
  grid-column:1/-1;
  width:100%;
  display:grid;
  gap:14px;
}
.modal-os-head-v42{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:18px;
  border-radius:20px;
  color:white;
  background:linear-gradient(135deg,#0f3d2e,#14523e);
}
.modal-os-head-v42.red{background:linear-gradient(135deg,#991b1b,#dc2626);}
.modal-os-head-v42.orange{background:linear-gradient(135deg,#9a3412,#f97316);}
.modal-os-head-v42.yellow{background:linear-gradient(135deg,#854d0e,#eab308);color:#1f1600;}
.modal-os-head-v42.blue{background:linear-gradient(135deg,#1e3a8a,#2563eb);}
.modal-os-head-v42.gray{background:linear-gradient(135deg,#334155,#64748b);}
.modal-os-head-v42 small,
.modal-os-head-v42 span{display:block;font-weight:900;opacity:.92;}
.modal-os-head-v42 strong{display:block;font-size:30px;line-height:1;margin:3px 0;font-weight:1000;}
.modal-os-head-v42 em{font-style:normal;font-size:11px;font-weight:1000;text-transform:uppercase;border:1px solid rgba(255,255,255,.32);border-radius:999px;padding:7px 10px;white-space:nowrap;}
.modal-os-campos-v42{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.modal-os-campos-v42 article{
  background:#f8fbf9;
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px;
  min-width:0;
}
.modal-os-campos-v42 small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#60746b;font-weight:1000;margin-bottom:5px;}
.modal-os-campos-v42 b{display:block;color:#0f3d2e;font-size:13px;line-height:1.2;font-weight:950;overflow-wrap:anywhere;}
.alocacao-add-modal-v35{
  gap:14px!important;
}
.alocacao-add-modal-v35 label{
  margin-top:0!important;
}
.alocacao-add-modal-v35 input{
  height:52px!important;
  border-radius:16px!important;
}
.btn-excluir-frente-v42{
  justify-self:start;
  background:#fff5f5!important;
  color:#991b1b!important;
  border:1px solid #fecaca!important;
  box-shadow:none!important;
}
.btn-excluir-frente-v42:hover{
  background:#fee2e2!important;
}
.alocacao-preview-v35{
  background:linear-gradient(135deg,#f6fbf8,#eef8f2)!important;
  border-style:solid!important;
}
@media(max-width:900px){
  .modal-os-campos-v42{grid-template-columns:1fr 1fr;}
}
@media(max-width:640px){
  .modal-os-campos-v42{grid-template-columns:1fr;}
  .modal-os-head-v42{align-items:flex-start;flex-direction:column;}
  .frotas-grid-v36{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))!important;}
}

/* =========================================================
   PATCH V43 — Cards, modal e alocação em lote
========================================================= */
.frota-card-v43{
  min-height:62px;
  border-radius:14px!important;
  padding:10px 34px 10px 12px!important;
  align-items:flex-start!important;
  justify-content:center!important;
  box-shadow:0 10px 24px rgba(15,61,46,.08)!important;
  transition:transform .14s ease, box-shadow .14s ease, filter .14s ease;
}
.frota-card-v43:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(15,61,46,.14)!important;filter:saturate(1.03)}
.frota-card-v43 b{font-size:18px!important;line-height:1!important;letter-spacing:.02em}
.frota-card-v43 small{font-size:10px!important;font-weight:1000!important;margin-top:4px!important;letter-spacing:.02em}
.frota-card-v43 .x{top:7px!important;right:7px!important;width:20px!important;height:20px!important;background:rgba(255,255,255,.82)!important;color:#0f3d2e!important;box-shadow:0 2px 8px rgba(15,61,46,.12)}
.frota-card-v43 em{position:absolute;left:8px;bottom:5px;font-size:8px;font-weight:1000;font-style:normal;background:rgba(255,255,255,.65);padding:2px 6px;border-radius:999px;color:#0f3d2e}
.alocacao-shell-v43 .alocacao-legenda{gap:8px 10px}
.alocacao-shell-v43 .frente-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.alocacao-shell-v43 .btn-mini{white-space:nowrap}
.modal-card-os-v43 .modal-card{width:min(980px,calc(100vw - 26px))!important;max-height:calc(100dvh - 28px);overflow:hidden;display:flex;flex-direction:column}
.modal-os-grid-v43{display:block!important;overflow:auto!important;min-height:0;padding-right:4px}
.modal-os-shell-v43{display:grid;gap:14px;width:100%}
.modal-os-head-v43{display:flex;justify-content:space-between;gap:14px;align-items:center;border-radius:22px;padding:16px 18px;color:#0f3d2e;border:1px solid #dbe8e1;background:#f8fbf9}
.modal-os-head-v43 strong{display:block;font-size:28px;font-weight:1000;line-height:1;color:#0f3d2e}
.modal-os-head-v43 small{display:block;font-size:10px;text-transform:uppercase;font-weight:1000;letter-spacing:.05em;color:#547064;margin-bottom:6px}
.modal-os-head-v43 span{display:inline-flex;margin-top:7px;font-size:12px;font-weight:1000;border-radius:999px;padding:5px 10px;background:white;border:1px solid #dbe8e1}
.modal-os-head-v43 em{font-style:normal;font-weight:1000;font-size:11px;border-radius:999px;background:#0f3d2e;color:white;padding:7px 10px;white-space:nowrap}
.modal-os-head-v43.red{background:#fff1f1;border-color:#fecaca}.modal-os-head-v43.red strong,.modal-os-head-v43.red{color:#991b1b}
.modal-os-head-v43.green{background:#ecfdf3;border-color:#bbf7d0}.modal-os-head-v43.green strong,.modal-os-head-v43.green{color:#166534}
.modal-os-head-v43.orange{background:#fff7ed;border-color:#fed7aa}.modal-os-head-v43.orange strong,.modal-os-head-v43.orange{color:#9a3412}
.modal-os-head-v43.yellow{background:#fefce8;border-color:#fde68a}.modal-os-head-v43.yellow strong,.modal-os-head-v43.yellow{color:#854d0e}
.modal-os-head-v43.blue{background:#eff6ff;border-color:#bfdbfe}.modal-os-head-v43.blue strong,.modal-os-head-v43.blue{color:#1d4ed8}
.modal-os-table-v43{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.modal-os-table-v43 article{background:#fff;border:1px solid #dce6e1;border-radius:15px;padding:11px;min-width:0;box-shadow:0 8px 20px rgba(15,61,46,.06)}
.modal-os-table-v43 small{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.045em;color:#546d63;font-weight:1000;margin-bottom:6px}
.modal-os-table-v43 b{display:block;color:#10271e;font-size:11px;line-height:1.25;font-weight:950;overflow-wrap:anywhere}
.lote-shell-v43{display:grid;gap:14px;width:100%}
.lote-shell-v43 header{background:#f8fbf9;border:1px solid #dce6e1;border-radius:20px;padding:15px 16px}
.lote-shell-v43 header small{display:block;text-transform:uppercase;font-size:10px;font-weight:1000;color:#5d7067}.lote-shell-v43 header strong{display:block;color:#0f3d2e;font-size:20px;margin-top:4px}.lote-shell-v43 header span{display:block;color:#66786e;font-size:12px;font-weight:850;margin-top:5px}
.lote-form-v43{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.lote-form-v43 label{display:flex;flex-direction:column;gap:6px;font-size:10px;text-transform:uppercase;font-weight:1000;color:#26493d;letter-spacing:.04em}
.lote-form-v43 input,.lote-form-v43 select{height:46px;border:1px solid #dce6e1;border-radius:14px;background:#fff;color:#11261e;padding:0 12px;font-weight:900;outline:none;min-width:0}
.lote-toolbar-v43{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#edf6f1;border:1px solid #dce6e1;border-radius:16px;padding:10px 12px;font-weight:1000;color:#0f3d2e}
.lote-lista-v43{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;max-height:42vh;overflow:auto;padding:2px 2px 8px}
.lote-item-v43{position:relative;display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:center;border-radius:14px;padding:10px;border:1px solid #dce6e1;background:#fff;cursor:pointer}
.lote-item-v43 input{grid-row:1/3}.lote-item-v43 b{font-size:16px;color:#0f3d2e}.lote-item-v43 span,.lote-item-v43 small{grid-column:2;font-size:10px;font-weight:950;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#50685f}
.lote-item-v43.red{background:#fee2e2;border-color:#fca5a5}.lote-item-v43.green{background:#dcfce7;border-color:#86efac}.lote-item-v43.orange{background:#ffedd5;border-color:#fdba74}.lote-item-v43.yellow{background:#fef9c3;border-color:#fde047}.lote-item-v43.blue{background:#dbeafe;border-color:#93c5fd}
@media(max-width:1100px){.modal-os-table-v43{grid-template-columns:repeat(3,minmax(0,1fr))}.lote-form-v43{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.modal-os-table-v43,.lote-form-v43{grid-template-columns:1fr}.modal-os-head-v43{display:block}.modal-os-head-v43 em{display:inline-flex;margin-top:10px}.lote-lista-v43{grid-template-columns:1fr}}

/* =========================================================
   PATCH V45 — botão único leve + modal seletor estável
   Base: V43 estável. Não reescreve alocação, só reduz eventos e limpa ações.
========================================================= */
.alocacao-legenda #btnGerenciarAlocacaoV45{
  margin-left:8px;
  white-space:nowrap;
  min-height:42px;
  padding:11px 18px;
  border-radius:16px;
}
.processo-alocacao-v43 .frente-head{
  align-items:center;
}
.processo-alocacao-v43 .frente-actions{
  display:none!important;
}
.modal-gerenciar-alocacao-v45 .modal-card{
  width:min(760px,calc(100vw - 28px));
}
.modal-gerenciar-grid-v45{
  display:block!important;
}
.gerenciar-shell-v45{
  display:grid;
  gap:16px;
  width:100%;
}
.gerenciar-shell-v45 header{
  padding:16px;
  border-radius:18px;
  background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.04));
  border:1px solid rgba(255,255,255,.14);
}
.gerenciar-shell-v45 header small{
  display:block;
  color:#a7dcc6;
  font-size:11px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.gerenciar-shell-v45 header strong{
  display:block;
  margin-top:5px;
  font-size:24px;
  color:#fff;
}
.gerenciar-shell-v45 header span{
  display:block;
  margin-top:6px;
  color:#d6eee4;
  font-size:13px;
  font-weight:850;
  line-height:1.35;
}
.gerenciar-opcoes-v45{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.gerenciar-card-v45{
  min-height:138px;
  text-align:left;
  cursor:pointer;
  border:1px solid rgba(255,255,255,.16);
  border-radius:20px;
  padding:18px;
  background:#fff;
  color:#0f3d2e;
  box-shadow:0 20px 40px rgba(0,0,0,.16);
  transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.gerenciar-card-v45:hover{
  transform:translateY(-2px);
  box-shadow:0 24px 54px rgba(0,0,0,.22);
  border-color:#8ad5a1;
}
.gerenciar-card-v45 b{
  display:block;
  font-size:17px;
  font-weight:1000;
}
.gerenciar-card-v45 span{
  display:block;
  margin-top:8px;
  color:#48655a;
  font-size:13px;
  font-weight:850;
  line-height:1.35;
}
@media(max-width:760px){
  .gerenciar-opcoes-v45{grid-template-columns:1fr;}
  .alocacao-legenda{gap:8px;}
  .alocacao-legenda #btnGerenciarAlocacaoV45{width:100%;margin-left:0;}
}


/* =========================================================
   PATCH V46 — EVITA TROCA VISUAL/ANIMAÇÃO NO MENU ALOCAÇÃO
========================================================= */
body[data-view="totais"] #tabelaTotaisFrente,
body[data-view="totais"] #tabelaTotaisFrente *{
  animation:none!important;
  transition:none!important;
}
body[data-view="totais"] #tabelaTotaisFrente{
  contain:layout paint;
}
body[data-view="totais"] .alocacao-shell,
body[data-view="totais"] .alocacao-shell-v43{
  opacity:1!important;
  transform:none!important;
}
body[data-view="totais"] .frente-actions{
  display:none!important;
}
body[data-view="totais"] .alocacao-legenda .btn-add-alocacao-top{
  display:inline-flex!important;
}

/* PATCH V47 — semáforo lateral removido por enquanto */
#sideSemaforoAlertas,
.side-alertas-box{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  overflow:hidden!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
}

/* PATCH V48 — Determinar total/frente leve */
body[data-view="totais"] .alocacao-shell,
body[data-view="totais"] .alocacao-shell-v36,
body[data-view="totais"] .alocacao-shell-v43{animation:none!important;transition:none!important}
.v48-shell{display:grid;gap:14px;width:100%;max-width:100%;overflow:hidden;padding:14px;background:#f6faf8;border-radius:22px}
.v48-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;background:white;border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:0 12px 30px rgba(15,61,46,.08)}
.v48-top h2{margin:0;color:var(--verde);font-size:20px}.v48-top span{display:block;margin-top:4px;color:var(--muted);font-weight:850;font-size:12px}.v48-legenda{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}.v48-legenda span{display:inline-flex;align-items:center;gap:6px;background:#f8fbf9;border:1px solid var(--line);border-radius:999px;padding:8px 10px;font-size:11px;font-weight:1000;white-space:nowrap}.v48-legenda i{width:10px;height:10px;border-radius:50%;display:inline-block}.v48-legenda .green i{background:#16a34a}.v48-legenda .red i{background:#dc2626}.v48-legenda .blue i{background:#2563eb}.v48-legenda .gray i{background:#64748b}
.v48-proc{background:white;border:1px solid var(--line);border-radius:22px;box-shadow:0 14px 34px rgba(15,61,46,.08);overflow:hidden}.v48-proc>header{display:flex;justify-content:space-between;align-items:center;gap:10px;background:linear-gradient(135deg,#0f3d2e,#14523e);color:white;padding:13px 16px}.v48-proc>header strong{font-size:16px}.v48-proc>header span{font-size:11px;font-weight:900;background:rgba(255,255,255,.14);border-radius:999px;padding:5px 9px}
.v48-frente{margin:12px;border:1px solid #dce6e1;border-radius:18px;background:#fff;overflow:hidden}.v48-frente.definir{border-color:#fecaca;background:#fffafa}.v48-frente-head{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;background:#f8fbf9;border-bottom:1px solid #e7efeb}.v48-frente-head h3{margin:0;color:#0f3d2e;font-size:15px}.v48-frente-head small{display:block;margin-top:3px;color:#60746b;font-weight:850}.v48-tipo{padding:10px 12px;border-bottom:1px solid #eef4f1}.v48-tipo:last-child{border-bottom:0}.v48-tipo-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.v48-tipo-head b{font-size:12px;color:#233d34}.v48-tipo-head span{font-size:11px;font-weight:1000;color:#0f3d2e;background:#eaf4ef;border-radius:999px;padding:4px 8px}.v48-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.v48-card{position:relative;min-height:58px;border:0;border-radius:15px;padding:8px 18px 7px 8px;color:white;text-align:left;cursor:pointer;box-shadow:0 8px 18px rgba(15,61,46,.12);overflow:hidden}.v48-card b{display:block;font-size:17px;line-height:1;font-weight:1000}.v48-card i{display:block;font-style:normal;font-size:8px;font-weight:1000;letter-spacing:.03em;opacity:.92;text-transform:uppercase;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v48-card em{position:absolute;left:6px;bottom:4px;font-style:normal;font-size:7px;font-weight:1000;background:rgba(255,255,255,.22);border-radius:999px;padding:2px 5px}.v48-card span[data-v48-remover]{position:absolute;right:5px;top:5px;width:16px;height:16px;display:grid;place-items:center;background:rgba(255,255,255,.22);border-radius:50%;font-weight:1000}.v48-card.green{background:linear-gradient(135deg,#15803d,#22c55e)}.v48-card.red{background:linear-gradient(135deg,#b91c1c,#ef4444)}.v48-card.blue{background:linear-gradient(135deg,#1d4ed8,#3b82f6)}.v48-card.orange{background:linear-gradient(135deg,#c2410c,#f97316)}.v48-card.yellow{background:linear-gradient(135deg,#a16207,#facc15);color:#211800}.v48-card.gray{background:linear-gradient(135deg,#475569,#94a3b8)}.v48-more{border:1px dashed #b9c9c1;border-radius:15px;background:white;color:#0f3d2e;font-weight:1000;cursor:pointer;min-height:58px}.v48-tabs{display:flex;gap:8px;margin-top:12px}.v48-tabs button{flex:1;border:1px solid var(--line);border-radius:14px;background:white;color:var(--verde);font-weight:1000;padding:12px;cursor:pointer}.v48-tabs button.active{background:var(--verde);color:white}.v48-pane{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.v48-pane label{display:grid;gap:6px;font-size:11px;font-weight:1000;text-transform:uppercase;color:#26493d}.v48-pane input,.v48-pane select{height:46px;border:1px solid var(--line);border-radius:14px;padding:0 12px;font-weight:900}.v48-pane .btn{grid-column:1/-1}.v48-lote-actions{grid-column:1/-1;display:flex;align-items:center;gap:10px}.v48-lista-lote{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;max-height:270px;overflow:auto;background:#f8fbf9;border:1px solid var(--line);border-radius:16px;padding:10px}.v48-lista-lote label{display:flex!important;align-items:center;gap:8px;background:white;border:1px solid #e7efeb;border-radius:12px;padding:9px;text-transform:none}.v48-lista-lote span{font-size:11px;color:#66786e;font-weight:850}
@media(max-width:900px){.v48-top{display:grid}.v48-legenda{justify-content:flex-start}.v48-pane{grid-template-columns:1fr}.v48-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}}

/* ===== V49 — AJUSTES LEVES DETERMINAR TOTAL/FRENTE ===== */
.v48-grid{
  grid-template-columns:repeat(auto-fill,minmax(104px,1fr));
}
.v48-card{
  min-width:0;
  min-height:62px;
  padding:9px 22px 8px 10px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;
}
.v48-card b{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow:hidden;
  text-overflow:clip;
  letter-spacing:-.02em;
  font-size:16px;
  line-height:1.05;
  max-width:100%;
}
.v48-card.manual b{
  white-space:nowrap!important;
  word-break:keep-all!important;
}
.v48-card i{
  margin-bottom:1px;
  max-width:100%;
}
.v48-card em{
  position:static;
  align-self:flex-start;
  margin-top:1px;
  line-height:1;
  max-width:100%;
  white-space:nowrap;
}
.v48-card span[data-v48-remover]{
  right:6px;
  top:6px;
  width:18px;
  height:18px;
  background:rgba(255,255,255,.78);
  color:#0f3d2e;
  box-shadow:0 4px 10px rgba(0,0,0,.08);
}
.v48-pane{
  align-items:start;
}
.v48-pane label{
  min-width:0;
}
.v48-pane input,
.v48-pane select{
  min-width:0;
  width:100%;
}
.v48-lista-lote{
  max-height:300px;
}
.v48-lista-lote label b{
  white-space:nowrap;
}
.v48-lista-lote label span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:760px){
  .v48-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));}
  .v48-card b{font-size:15px;}
}

/* ===== V50 — MODAL ADICIONAR/ALOCAR LEGÍVEL + SELEÇÃO EM LOTE ===== */
.modal-gerenciar-alocacao-v45 .modal-card{
  width:min(1040px, calc(100vw - 28px))!important;
  max-height:calc(100vh - 24px)!important;
  overflow:hidden!important;
}
.modal-gerenciar-grid-v45{
  max-height:calc(100vh - 122px)!important;
  overflow:auto!important;
  padding:18px!important;
  background:linear-gradient(180deg,#ffffff 0%,#f7fbf9 100%)!important;
}
.gerenciar-shell-v45 header{
  background:linear-gradient(135deg,#0f3d2e,#14523e)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 14px 30px rgba(15,61,46,.16)!important;
}
.gerenciar-shell-v45 header small,
.gerenciar-shell-v45 header strong,
.gerenciar-shell-v45 header span{
  color:#fff!important;
  opacity:1!important;
  text-shadow:none!important;
}
.gerenciar-shell-v45 header small{
  color:#bff2d8!important;
}
.v48-tabs{
  background:#eef6f1;
  border:1px solid #dce9e2;
  border-radius:18px;
  padding:6px;
}
.v48-tabs button{
  border:0!important;
  border-radius:14px!important;
  background:transparent!important;
  color:#0f3d2e!important;
  box-shadow:none!important;
}
.v48-tabs button.active{
  background:#0f3d2e!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(15,61,46,.18)!important;
}
.v48-pane label{
  color:#0f3d2e!important;
  letter-spacing:.02em;
}
.v48-pane input,
.v48-pane select{
  background:#fff!important;
  color:#0b271e!important;
  border-color:#d6e5dc!important;
  box-shadow:0 6px 14px rgba(15,61,46,.05)!important;
}
.v48-lote-actions{
  background:#fff;
  border:1px solid #dce9e2;
  border-radius:16px;
  padding:10px;
  justify-content:space-between;
  flex-wrap:wrap;
}
.v48-lote-actions .btn,
#v48TodosLote{
  min-width:170px;
  height:44px;
  border-radius:14px!important;
  font-weight:1000!important;
}
#v48ResumoLote{
  color:#0f3d2e;
  font-weight:1000;
  font-size:13px;
  background:#eaf6ef;
  border:1px solid #cce5d7;
  border-radius:999px;
  padding:9px 12px;
}
.v48-lista-lote{
  max-height:360px!important;
  background:#f4faf7!important;
}
.v48-lista-lote .v48-lote-card,
.v48-lista-lote label{
  display:grid!important;
  grid-template-columns:auto minmax(66px,auto) minmax(0,1fr);
  align-items:center;
  gap:9px;
  min-height:46px;
  border-color:#d9e8df!important;
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.v48-lista-lote .v48-lote-card:hover,
.v48-lista-lote label:hover{
  transform:translateY(-1px);
  border-color:#9bd7b5!important;
  box-shadow:0 8px 18px rgba(15,61,46,.08);
}
.v48-lista-lote input[type="checkbox"]{
  width:18px!important;
  height:18px!important;
  accent-color:#0f3d2e;
}
.v48-lista-lote label b{
  color:#0f3d2e!important;
  font-size:14px!important;
  white-space:nowrap!important;
}
.v48-lista-lote label span{
  color:#40594f!important;
  font-size:11px!important;
  font-weight:900!important;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.v48-empty-lote{
  display:block;
  color:#6b7d74;
  font-weight:900;
  padding:12px;
}
@media(max-width:780px){
  .modal-gerenciar-grid-v45{padding:12px!important;}
  .v48-pane{grid-template-columns:1fr!important;}
  .v48-lote-actions{display:grid;gap:8px;}
  #v48ResumoLote{border-radius:14px;}
}


/* PATCH V51 — Status O.S. no login */
.login-card select.login-status-os,
.login-card #loginStatusOS {
  width: 100%;
  height: 48px;
  border-radius: 16px;
  border: 1px solid rgba(15,61,46,.18);
  background: #fff;
  color: #0f3d2e;
  font-weight: 900;
  padding: 0 14px;
  outline: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.pims-status-box #statusPimsOSSelecionado {
  display: block;
  font-weight: 900;
  color: #d7f8ea;
  margin-top: 4px;
}

/* PATCH V52 — filtro Status aparece só quando Status O.S. do login = TODOS */
.status-filter-hidden-by-login,
body[data-status-filtro-disponivel="nao"] #boxFiltroStatus,
body[data-status-filtro-disponivel="nao"] #boxFiltroStatus.closest {
  display: none !important;
}

.filters-panel .field[hidden] {
  display: none !important;
}

/* PATCH V54 — estabilidade, semáforo lateral removido e disponibilidade hoje */
#sideSemaforoAlertas,
.side-alertas-box {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.status-filter-hidden-by-login {
  display: none !important;
}
.heat-cell.neutral,
.heat-cell.hora-vazia {
  background: #eef2f0 !important;
  color: #64736d !important;
  border: 1px solid rgba(15, 61, 46, .12) !important;
  box-shadow: none !important;
  font-weight: 900;
}
td.hora-nao-fechada {
  background: #f7faf8 !important;
}
.alocacao-shell,
.alocacao-shell * {
  backface-visibility: hidden;
}
.frota-card b,
.frota-card small {
  overflow-wrap: normal;
  word-break: normal;
}

/* =========================================================
   V58 — relatórios ocupam a tela inteira e disponibilidade fracionada
========================================================= */
#modalDetalhe.report-fullscreen,
#modalDetalhe.report-v58-fullscreen{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  padding:0!important;
  margin:0!important;
  align-items:stretch!important;
  justify-content:stretch!important;
  overflow:hidden!important;
  background:rgba(8, 22, 17, .38)!important;
  z-index:9999!important;
}
#modalDetalhe.report-fullscreen .modal-card,
#modalDetalhe.report-v58-fullscreen .modal-card,
#modalDetalhe.report-fullscreen .report-card-v58{
  width:100vw!important;
  height:100dvh!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  border-radius:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  box-shadow:none!important;
}
#modalDetalhe.report-fullscreen #modalConteudo,
#modalDetalhe.report-v58-fullscreen #modalConteudo,
#modalDetalhe.report-fullscreen .report-content-v58{
  flex:1 1 auto!important;
  min-height:0!important;
  width:100%!important;
  max-width:100%!important;
  overflow:auto!important;
  padding-bottom:12px!important;
}
#modalDetalhe.report-fullscreen .modal-close{
  top:12px!important;
  right:14px!important;
  z-index:5!important;
}
#modalDetalhe.report-fullscreen table{
  max-width:100%!important;
  width:100%!important;
  border-collapse:collapse!important;
  table-layout:auto!important;
}
#modalDetalhe.report-fullscreen th,
#modalDetalhe.report-fullscreen td{
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  white-space:normal!important;
  line-height:1.2!important;
  vertical-align:middle!important;
}
#modalDetalhe.report-fullscreen .report-v15-table-wrap,
#modalDetalhe.report-fullscreen .rel-aloc-table-wrap,
#modalDetalhe.report-fullscreen .table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}
#modalDetalhe.report-fullscreen .rel-frota,
#modalDetalhe.report-fullscreen .frota-mini,
#modalDetalhe.report-fullscreen .aloc-rel-chip{
  white-space:nowrap!important;
  break-inside:avoid!important;
}
#modalDetalhe.report-fullscreen .rel-aloc-grid,
#modalDetalhe.report-fullscreen .rel-aloc-layout,
#modalDetalhe.report-fullscreen .rel-aloc-frentes-grid{
  width:100%!important;
  max-width:100%!important;
  grid-template-columns:repeat(auto-fit, minmax(420px, 1fr))!important;
  gap:8px!important;
}
#modalDetalhe.report-fullscreen.report-density-comfort table{font-size:clamp(10px,.72vw,13px)!important;}
#modalDetalhe.report-fullscreen.report-density-medium table{font-size:clamp(9px,.62vw,11.5px)!important;}
#modalDetalhe.report-fullscreen.report-density-dense table{font-size:clamp(8px,.55vw,10px)!important;}
#modalDetalhe.report-fullscreen.report-density-dense th,
#modalDetalhe.report-fullscreen.report-density-dense td{padding:4px 5px!important;}
#matrizHora .heat-cell.neutral{
  background:#f1f5f3!important;
  color:#66736d!important;
  border:1px solid #d6e0dc!important;
}
@media print{
  @page{size:landscape;margin:5mm;}
  body *{visibility:hidden!important;}
  #modalDetalhe.report-fullscreen,
  #modalDetalhe.report-fullscreen *{visibility:visible!important;}
  #modalDetalhe.report-fullscreen{position:static!important;inset:auto!important;width:100%!important;height:auto!important;background:#fff!important;overflow:visible!important;}
  #modalDetalhe.report-fullscreen .modal-card{width:100%!important;height:auto!important;overflow:visible!important;border-radius:0!important;box-shadow:none!important;}
  #modalDetalhe.report-fullscreen #modalConteudo{overflow:visible!important;}
  #modalDetalhe.report-fullscreen .modal-close,
  #modalDetalhe.report-fullscreen button{display:none!important;}
}

/* =========================================================
   V62 — VISUAL LEVE INSPIRADO NA BASE LIMPA V61
   Aplicado sobre o sistema antigo sem alterar regras/funções.
   Foco: aparência mais leve, filtros compactos, cards limpos,
   modais e relatórios mais aproveitáveis para print.
   ========================================================= */
:root{
  --green-900:#092f24!important;
  --green-800:#0f3d2e!important;
  --green-700:#14513d!important;
  --green-100:#e8f4ef!important;
  --bg:#f3f6f5!important;
  --card:#ffffff!important;
  --line:#dce5e1!important;
  --text:#13231d!important;
  --muted:#60736b!important;
  --shadow-soft:0 8px 26px rgba(9,47,36,.06)!important;
  --shadow-strong:0 18px 45px rgba(9,47,36,.12)!important;
  --radius-soft:18px!important;
}
*{box-sizing:border-box!important}
html,body{width:100%!important;overflow-x:hidden!important;background:var(--bg)!important;color:var(--text)!important}
body{font-family:Inter,Segoe UI,Roboto,Arial,sans-serif!important}
button,input,select,textarea{font:inherit!important}

/* Login mais limpo */
.login-screen{background:linear-gradient(135deg,#08291f,#0f3d2e 52%,#eaf4ef 52%)!important;padding:24px!important;overflow-x:hidden!important}
.login-hero{max-width:1120px!important;gap:26px!important}
.login-panel,.login-card{border-radius:28px!important;border:1px solid rgba(255,255,255,.72)!important;box-shadow:var(--shadow-strong)!important;background:rgba(255,255,255,.96)!important}
.login-card input,.login-card select{border-radius:14px!important;border:1px solid var(--line)!important;box-shadow:none!important;background:#fff!important;color:var(--text)!important}
.login-card input:focus,.login-card select:focus{border-color:var(--green-700)!important;box-shadow:0 0 0 3px rgba(20,81,61,.12)!important}
.login-card button{border-radius:14px!important;background:var(--green-800)!important;box-shadow:none!important}

/* Estrutura geral */
.sidebar{background:var(--green-900)!important;box-shadow:none!important;border-right:0!important;overflow:auto!important}
.sidebar .brand strong,.brand strong{letter-spacing:.04em!important}
.sidebar-box,.sidebar-user{border-radius:18px!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.12)!important;box-shadow:none!important}
.sidebar-box select{border-radius:14px!important;background:#fff!important;color:var(--green-900)!important;border:0!important}
.side-menu button,.side-menu a,.side-menu .menu-btn{border-radius:14px!important;transition:none!important}
.side-menu .active,.side-menu button.active,.side-menu a.active{background:#fff!important;color:var(--green-900)!important;box-shadow:none!important}
.app,.main{background:var(--bg)!important;min-width:0!important;overflow-x:hidden!important}
.topbar{border-radius:var(--radius-soft)!important;border:1px solid var(--line)!important;background:var(--card)!important;box-shadow:var(--shadow-soft)!important;padding:18px 20px!important}
.topbar h1,.topbar h2,.topbar-title-text{color:var(--green-900)!important}
.topbar p{color:var(--muted)!important}

/* Botões */
.btn,button.btn,.btn-mini,.btn-add-alocacao-top,#btnGerenciarAlocacaoV45{border-radius:14px!important;font-weight:900!important;box-shadow:none!important;transition:none!important;white-space:nowrap!important}
.btn.primary,.btn-add-alocacao-top,#btnGerenciarAlocacaoV45{background:var(--green-800)!important;color:#fff!important;border:1px solid var(--green-800)!important}
.btn.ghost,.btn-mini{background:#eff5f2!important;color:var(--green-900)!important;border:1px solid var(--line)!important}
.btn:hover,.btn-mini:hover{filter:brightness(.98)!important;transform:none!important}

/* Painéis e filtros */
.filters-panel,.panel,.kpi,.status-card,.drill-panel{border-radius:var(--radius-soft)!important;border:1px solid var(--line)!important;background:var(--card)!important;box-shadow:var(--shadow-soft)!important}
.filters-panel{padding:14px!important;gap:10px!important;align-items:end!important;overflow:visible!important;max-height:none!important}
.filters-panel .field,.filters-panel label{min-width:0!important}
.filters-panel input,.filters-panel select,.multi-select-btn,.periodo-calendario-box input{height:42px!important;border-radius:14px!important;border:1px solid var(--line)!important;background:#fff!important;color:var(--text)!important;box-shadow:none!important;min-width:0!important}
.filters-panel input:focus,.filters-panel select:focus,.multi-select-btn:focus{border-color:var(--green-700)!important;box-shadow:0 0 0 3px rgba(20,81,61,.10)!important}
.multi-select-menu{border-radius:16px!important;border:1px solid var(--line)!important;box-shadow:var(--shadow-strong)!important;overflow:auto!important;max-height:320px!important}
.panel-head{border-bottom:1px solid #eef3f1!important;padding-bottom:10px!important;margin-bottom:10px!important}
.panel-head strong{color:var(--green-900)!important}
.panel-head small{color:var(--muted)!important}

/* Tabelas */
.table-wrap,.consultas-table-wrap,.report-table-wrap,.report-print-table-wrap{border-radius:var(--radius-soft)!important;border:1px solid var(--line)!important;box-shadow:var(--shadow-soft)!important;background:#fff!important;max-width:100%!important;overflow:auto!important}
table th,.tabela-consultas th,.report-table th,.report-print-table th{background:var(--green-800)!important;color:#fff!important;white-space:nowrap!important;font-weight:900!important}
table td,.tabela-consultas td,.report-table td,.report-print-table td{border-color:#edf3f0!important;overflow-wrap:anywhere!important;word-break:normal!important}
.tabela-consultas tr:hover td,table tr:hover td{background:#f8fbfa!important}

/* KPIs mais suaves */
.kpis{gap:12px!important}.kpi{padding:14px!important}.kpi strong{color:var(--green-900)!important}.kpi small,.kpi span{color:var(--muted)!important}

/* Determinar total/frente — visual leve */
body[data-view="totais"] .total-frente-panel,body[data-view="totais"] .alocacao-shell,body[data-view="totais"] .alocacao-shell-v43{background:transparent!important;box-shadow:none!important;border:0!important;animation:none!important;transition:none!important}
.alocacao-top,.allocation-toolbar{border-radius:var(--radius-soft)!important;border:1px solid var(--line)!important;background:#fff!important;box-shadow:var(--shadow-soft)!important;padding:14px 16px!important}
.alocacao-legenda{gap:8px 10px!important;align-items:center!important}.alocacao-chip{border-radius:999px!important;background:#f8fbfa!important;border:1px solid var(--line)!important;color:var(--green-900)!important}
.processo-alocacao > header{background:linear-gradient(135deg,var(--green-900),var(--green-800))!important;border-radius:18px!important;box-shadow:0 13px 28px rgba(15,61,46,.14)!important}
.frente-alocacao,.v48-frente{border-radius:18px!important;border:1px solid var(--line)!important;background:#fff!important;box-shadow:var(--shadow-soft)!important;overflow:hidden!important}
.frente-head,.v48-frente-head{background:#f8fbf9!important;border-bottom:1px solid #e7efeb!important}
.frente-head h3,.v48-frente-head h3{color:var(--green-900)!important;font-weight:950!important}
.tipo-head strong,.v48-tipo-head b{color:#233d34!important;font-weight:950!important}.tipo-head span,.v48-tipo-head span{background:#eaf4ef!important;color:var(--green-900)!important;border-radius:999px!important}
.frotas-grid,.v48-grid{gap:8px!important;grid-template-columns:repeat(auto-fill,minmax(84px,1fr))!important}.frota-card,.frota-card-v36-final,.frota-card-v43,.v48-card{border-radius:15px!important;box-shadow:0 8px 18px rgba(15,61,46,.12)!important;transition:none!important;overflow:hidden!important;white-space:nowrap!important;min-height:56px!important}.frota-card:hover,.frota-card-v43:hover,.v48-card:hover{transform:none!important;filter:brightness(.98)!important}.frota-card b,.frota-card-v36-final b,.frota-card-v43 b,.v48-card b{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-weight:1000!important}.frota-card small,.frota-card-v36-final small,.frota-card-v43 small,.v48-card i{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.v48-card.green,.frota-card.green{background:linear-gradient(135deg,#15803d,#22c55e)!important;color:#fff!important}.v48-card.red,.frota-card.red{background:linear-gradient(135deg,#b91c1c,#ef4444)!important;color:#fff!important}.v48-card.blue,.frota-card.blue{background:linear-gradient(135deg,#1d4ed8,#3b82f6)!important;color:#fff!important}.v48-card.orange,.frota-card.orange{background:linear-gradient(135deg,#c2410c,#f97316)!important;color:#fff!important}.v48-card.gray,.frota-card.gray{background:linear-gradient(135deg,#475569,#94a3b8)!important;color:#fff!important}
.v48-more,.expand-btn{border-radius:15px!important;border:1px dashed #b9c9c1!important;background:#fff!important;color:var(--green-900)!important;font-weight:950!important}

/* Modais */
.modal{background:rgba(0,0,0,.52)!important;backdrop-filter:none!important}.modal-card{border-radius:24px!important;border:1px solid rgba(255,255,255,.22)!important;box-shadow:var(--shadow-strong)!important;max-width:min(1120px,calc(100vw - 28px))!important;max-height:94vh!important;overflow:auto!important}.modal-card h3,#modalTitulo{color:var(--green-900)!important}.modal-close{border-radius:12px!important;background:#eff5f2!important;color:var(--green-900)!important;border:1px solid var(--line)!important}.modal-grid div,.info-box{border-radius:14px!important;border:1px solid var(--line)!important;background:#f7faf9!important}.modal-grid small,.info-box span{color:var(--muted)!important;text-transform:uppercase!important}.modal-grid b,.info-box strong{color:var(--green-900)!important}.modal-gerenciar-alocacao-v45 .modal-card,.modal-alocacao-add .modal-card,.modal-add-frente-v35 .modal-card{max-width:min(980px,calc(100vw - 28px))!important;border-radius:24px!important}.v48-tabs button{border-radius:14px!important}.v48-tabs button.active{background:var(--green-800)!important;color:#fff!important}.v48-pane input,.v48-pane select,.alocacao-add-modal-v35 input{border-radius:14px!important;border:1px solid var(--line)!important;background:#fff!important;color:var(--text)!important}.v48-lista-lote,.fleet-picker{border-radius:16px!important;border:1px solid var(--line)!important;background:#f8fbf9!important}

/* Relatórios: ocupar melhor a tela e manter leitura */
.report-fullscreen .modal-card,.report-consultas-premium .modal-card,.report-consultas-print .modal-card,.modal-rel-aloc-v19 .modal-card,.relatorio-espelho-v21{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;min-height:calc(100vh - 24px)!important;border-radius:18px!important;margin:12px!important;background:#fff!important}.report-header,.report-print-head,.report-premium-header{border-radius:18px!important;background:linear-gradient(135deg,var(--green-900),var(--green-800))!important;color:#fff!important;padding:14px 16px!important}.report-header b,.report-header strong,.report-print-head strong,.report-premium-header strong{color:#fff!important}.report-header span,.report-header small,.report-print-head span,.report-print-head small{color:#d9eee7!important}.report-table,.report-print-table,.rel-aloc-frente{table-layout:fixed!important;width:100%!important;min-width:0!important}.report-table th,.report-print-table th,.rel-aloc-frente thead th{font-size:10.5px!important;padding:6px 7px!important}.report-table td,.report-print-table td,.rel-aloc-frente td{font-size:10.5px!important;padding:6px 7px!important;line-height:1.28!important;word-break:break-word!important;overflow-wrap:anywhere!important}.report-section h3{color:var(--green-900)!important}

/* Visuais salvos */
.visuais-salvos-grid,.visual-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;gap:14px!important}.visual-item,.visual-card{border-radius:18px!important;border:1px solid var(--line)!important;background:#fff!important;box-shadow:var(--shadow-soft)!important}

/* Sem scroll lateral global */
.app,.main,.view,.panel,.filters-panel,.table-wrap,.modal-card,.report-table-wrap{max-width:100%!important;min-width:0!important}
img,svg,canvas{max-width:100%!important}

@media(max-width:900px){.filters-panel{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}.topbar{flex-direction:column!important}.actions{width:100%!important;justify-content:flex-start!important}.frotas-grid,.v48-grid{grid-template-columns:repeat(auto-fill,minmax(78px,1fr))!important}.modal-card{width:calc(100vw - 14px)!important;max-width:calc(100vw - 14px)!important}.v48-pane{grid-template-columns:1fr!important}.report-fullscreen .modal-card,.report-consultas-premium .modal-card,.report-consultas-print .modal-card,.modal-rel-aloc-v19 .modal-card{width:100vw!important;max-width:100vw!important;margin:0!important;border-radius:0!important}}
@media print{html,body{background:#fff!important}.sidebar,.topbar,.filters-panel,.modal-close,.modal-actions,.report-actions,.btn{display:none!important}.modal{position:static!important;display:block!important;background:#fff!important;padding:0!important}.modal-card,.report-fullscreen .modal-card,.report-consultas-premium .modal-card,.report-consultas-print .modal-card,.modal-rel-aloc-v19 .modal-card{width:100%!important;max-width:100%!important;min-height:auto!important;box-shadow:none!important;border-radius:0!important;margin:0!important}.report-table th,.report-print-table th,.rel-aloc-frente th{background:#0f3d2e!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* V112 — Semáforo Oportunidade */
.semaforo-sidebar-card.amber{background:#fef3c7!important;color:#92400e!important;}
.semaforo-sidebar-card.amber i{background:#d97706!important;}
.badge.amber{background:#fef3c7!important;color:#92400e!important;}


/* PATCH — Semáforo Oportunidade */





/* PATCH — Oportunidade definitivo */





/* PATCH — Semáforo implemento automático + oportunidade */





/* PATCH — Oficina nos campos Local/Processo */
.oficina-display-main{
  color:#0f3d2e!important;
  font-weight:1000!important;
}
.oficina-display-sub{
  color:#6a7f75!important;
  font-weight:900!important;
  line-height:1.18!important;
}
td .oficina-display-main + .oficina-display-sub,
td .cell-sub.oficina-display-sub{
  margin-top:3px!important;
}
.report-table .oficina-display-main{
  color:#0f3d2e!important;
}
.report-table .oficina-display-sub{
  color:#53675d!important;
}


/* PATCH — Semáforo global / Determinar / Disponibilidade 85 */
.badge.purple{background:#ede9fe!important;color:#5b21b6!important;}
.fleet-card.purple{background:linear-gradient(135deg,#5b21b6,#8b5cf6)!important;color:#fff!important;}
.dot.purple{background:#7c3aed!important;}
.det-toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
#btnInfluenciarSemaforo.active{background:#0f3d2e!important;color:#fff!important;border-color:#0f3d2e!important;box-shadow:0 0 0 3px rgba(15,61,46,.12)!important;}
.matrix td.ok,.matrix td.excelente{background:#dff8e8!important;color:#075c2d!important;font-weight:1000!important;}
.matrix td.bad,.matrix td.warn{background:#ffe0e0!important;color:#a11212!important;font-weight:1000!important;}
.disp-report-legend .disp-ok{background:#dff8e8!important;color:#075c2d!important;}
.disp-report-legend .disp-bad{background:#ffe0e0!important;color:#a11212!important;}
td.disp-excelente,td.disp-ok{background:#dff8e8!important;color:#075c2d!important;font-weight:900!important;}
td.disp-warn,td.disp-bad{background:#ffe0e0!important;color:#a11212!important;font-weight:900!important;}


/* PATCH — Implemento global + Influenciar semáforo V2 */

.badge.gray{background:#eef2f7!important;color:#475569!important;}

.fleet-card.gray{background:linear-gradient(135deg,#475569,#94a3b8)!important;color:#fff!important;}

.dot.gray{background:#64748b!important;}


.tratativa-tag{
  display:block!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0 auto 3px!important;
  padding:2px 6px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.95)!important;
  color:#0f3d2e!important;
  font-size:8px!important;
  font-weight:1000!important;
  line-height:1!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.tratativa-tag.purple{color:#5b21b6!important;}
.tratativa-tag.gray{color:#475569!important;}


/* PATCH — Relatório: Implemento Quebrado V3 */
.report-table .badge.purple,
.badge.purple{
  background:#ede9fe!important;
  color:#5b21b6!important;
}
.report-table .badge.gray,
.badge.gray{
  background:#eef2f7!important;
  color:#475569!important;
}
.rel-aloc-fleet.purple{
  background:#ede9fe!important;
  color:#5b21b6!important;
  border-color:#c4b5fd!important;
}
.rel-aloc-fleet.gray{
  background:#eef2f7!important;
  color:#475569!important;
  border-color:#cbd5e1!important;
}


/* PATCH — Relatório Disponibilidade: visual compacto igual ao menu */
.relatorio-disponibilidade-compacta .report-modal-body,
.relatorio-disponibilidade-compacta .report-view{
  overflow:auto!important;
}
.relatorio-disponibilidade-compacta .disp-report-legend-compact{
  display:flex!important;
  gap:8px!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  margin:6px 0 10px!important;
}
.relatorio-disponibilidade-compacta .disp-report-legend-compact span{
  border-radius:999px!important;
  padding:6px 10px!important;
  font-size:11px!important;
  font-weight:1000!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-shell{
  width:max-content!important;
  max-width:100%!important;
  overflow:auto!important;
  background:#fff!important;
  border-radius:18px!important;
  border:1px solid #dce8e2!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-hours{
  width:max-content!important;
  min-width:0!important;
  table-layout:fixed!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  margin:0!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-hours th,
.relatorio-disponibilidade-compacta .disp-report-compact-hours td{
  width:74px!important;
  min-width:74px!important;
  max-width:74px!important;
  height:54px!important;
  padding:8px!important;
  text-align:center!important;
  vertical-align:middle!important;
  font-size:12px!important;
  line-height:1.1!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-hours th.disp-col-item,
.relatorio-disponibilidade-compacta .disp-report-compact-hours td.disp-report-item-cell{
  width:190px!important;
  min-width:190px!important;
  max-width:190px!important;
  text-align:left!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-hours th.disp-col-total,
.relatorio-disponibilidade-compacta .disp-report-compact-hours td:last-child{
  width:78px!important;
  min-width:78px!important;
  max-width:78px!important;
}
.relatorio-disponibilidade-compacta .disp-report-item-cell b{
  display:block!important;
  color:#0f2d22!important;
  font-size:12px!important;
  font-weight:1000!important;
  line-height:1.1!important;
}
.relatorio-disponibilidade-compacta .disp-report-item-cell small{
  display:block!important;
  color:#546c61!important;
  font-size:9px!important;
  font-weight:900!important;
  line-height:1.12!important;
  margin-top:2px!important;
}
.relatorio-disponibilidade-compacta .disp-ok,
.relatorio-disponibilidade-compacta td.disp-ok{
  background:#dff8e8!important;
  color:#075c2d!important;
  font-weight:1000!important;
}
.relatorio-disponibilidade-compacta .disp-bad,
.relatorio-disponibilidade-compacta td.disp-bad{
  background:#ffe0e0!important;
  color:#a11212!important;
  font-weight:1000!important;
}
.relatorio-disponibilidade-compacta td.disp-empty{
  background:#f8fbf9!important;
  color:#9aa8a0!important;
}
@media print{
  .relatorio-disponibilidade-compacta .disp-report-compact-shell{
    overflow:visible!important;
    width:max-content!important;
  }
  .relatorio-disponibilidade-compacta .disp-report-compact-hours th,
  .relatorio-disponibilidade-compacta .disp-report-compact-hours td{
    width:54px!important;
    min-width:54px!important;
    max-width:54px!important;
    height:36px!important;
    padding:4px!important;
    font-size:8px!important;
  }
  .relatorio-disponibilidade-compacta .disp-report-compact-hours th.disp-col-item,
  .relatorio-disponibilidade-compacta .disp-report-compact-hours td.disp-report-item-cell{
    width:135px!important;
    min-width:135px!important;
    max-width:135px!important;
  }
  .relatorio-disponibilidade-compacta .disp-report-compact-hours th.disp-col-total,
  .relatorio-disponibilidade-compacta .disp-report-compact-hours td:last-child{
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;
  }
  .relatorio-disponibilidade-compacta .disp-report-item-cell b{font-size:8px!important;}
  .relatorio-disponibilidade-compacta .disp-report-item-cell small{font-size:6.6px!important;}
}


/* PATCH — Limpar filtros em todos os menus */
#btnLimparFiltrosTopo,
.top-clear-filter{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  white-space:nowrap!important;
}
.det-filter-actions,
.disp-filter-actions,
.consultas-filter-actions,
.materiais-filter-actions{
  display:flex!important;
  align-items:end!important;
  justify-content:flex-start!important;
  gap:8px!important;
  min-width:max-content!important;
}
.det-filter-actions .btn,
.disp-filter-actions .btn,
.consultas-filter-actions .btn,
.materiais-filter-actions .btn{
  min-height:42px!important;
}
@media(max-width:900px){
  .det-filter-actions,
  .disp-filter-actions,
  .consultas-filter-actions,
  .materiais-filter-actions{
    min-width:0!important;
    width:100%!important;
  }
  .det-filter-actions .btn,
  .disp-filter-actions .btn,
  .consultas-filter-actions .btn,
  .materiais-filter-actions .btn{
    width:100%!important;
  }
}


/* PATCH — Semáforo Aguardando Retirada */
.semaforo-sidebar-card.blue{background:#dbeafe!important;color:#1d4ed8!important;}
.semaforo-sidebar-card.blue i{background:#2563eb!important;}
.badge.blue{background:#dbeafe!important;color:#1d4ed8!important;}
.fleet-card.blue{background:linear-gradient(135deg,#1d4ed8,#60a5fa)!important;color:#fff!important;}
.dot.blue{background:#2563eb!important;}
.semaforo-acoes .retirada{border-color:#bfdbfe!important;color:#1d4ed8!important;background:#eff6ff!important;}


/* PATCH — Relatório/Determinar: liberado só com O.S. */
.badge.orange,
.report-table .badge.orange{
  background:#f97316!important;
  color:#fff!important;
}
.rel-aloc-fleet.orange,
.fleet-card.orange{
  background:linear-gradient(135deg,#f97316,#ea580c)!important;
  color:#fff!important;
}


/* PATCH — Relatório somente com O.S. válida */




/* PATCH — Relatório: seguir lógica da osList */
.relatorio-alocacao-total-frente .rel-aloc-fleet.orange,
.report-table .badge.orange,
.compact-print-table .badge.orange{
  background:#f97316!important;
  color:#fff!important;
  border-color:#ea580c!important;
}
.relatorio-alocacao-total-frente .empty-note{
  border:1px dashed #cfe0d8!important;
  border-radius:14px!important;
  padding:14px!important;
  background:#fbfdfc!important;
  color:#0f3d2e!important;
  font-weight:900!important;
}


/* PATCH — Alocação lógica osList + semáforo */
.fleet-card.orange,
.badge.orange{
  background:linear-gradient(135deg,#f97316,#ea580c)!important;
  color:#fff!important;
}
.fleet-card.green{
  background:linear-gradient(135deg,#147d46,#1aa35b)!important;
  color:#fff!important;
}
.fleet-card.yellow{
  background:linear-gradient(135deg,#eab308,#facc15)!important;
  color:#263000!important;
}
.fleet-card.blue{
  background:linear-gradient(135deg,#2563eb,#60a5fa)!important;
  color:#fff!important;
}
.fleet-card.purple{
  background:linear-gradient(135deg,#7c3aed,#8b5cf6)!important;
  color:#fff!important;
}
.fleet-card.gray{
  background:linear-gradient(135deg,#64748b,#94a3b8)!important;
  color:#fff!important;
}
.dot.orange{background:#f97316!important;}


/* PATCH — Alocação instância + relatório correto */
.rel-aloc-fleet.orange,
.badge.orange,
.report-table .badge.orange{
  background:#f97316!important;
  color:#fff!important;
  border-color:#ea580c!important;
}


/* PATCH FINAL — Funcionalidades, oficina, semáforo e disponibilidade */
.manual-tag.oficina-tag,
.oficina-tag{
  display:block!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0 auto 2px!important;
  padding:2px 5px!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#0f3d2e!important;
  font-size:8px!important;
  font-weight:1000!important;
  line-height:1!important;
  box-shadow:0 1px 5px rgba(0,0,0,.12)!important;
}
.badge.orange,
.report-table .badge.orange,
.rel-aloc-fleet.orange,
.fleet-card.orange{
  background:#f97316!important;
  color:#fff!important;
  border-color:#ea580c!important;
}


/* PATCH — Adicionar/alocar definitivo */
.fleet-card[data-frota]{
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease!important;
}
.fleet-card[data-frota]:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 10px 22px rgba(0,0,0,.16)!important;
}
.manual-tag{
  background:#ffffff!important;
  color:#0f3d2e!important;
  border:1px solid rgba(15,61,46,.25)!important;
}


/* PATCH — Oficina visível nos relatórios */
.report-table .oficina-display-main,
.compact-print-table .oficina-display-main,
.oficina-display-main{
  color:#0f3d2e!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.report-table .oficina-display-sub,
.compact-print-table .oficina-display-sub,
.oficina-display-sub{
  color:#0f766e!important;
  font-weight:900!important;
  text-transform:uppercase!important;
}
.report-table .oficina-display-ref,
.compact-print-table .oficina-display-ref,
.oficina-display-ref{
  color:#5f7069!important;
  font-weight:800!important;
  font-size:.72em!important;
}
.rel-aloc-front-title strong{
  text-transform:uppercase!important;
}


/* PATCH — Relatório alocação topo unificado */
.relatorio-alocacao-total-frente .rel-aloc-front-title strong{
  text-transform:uppercase!important;
}
.relatorio-alocacao-total-frente .rel-paradas-section .oficina-display-main{
  color:#0f3d2e!important;
  font-weight:1000!important;
}


/* PATCH — Relatório oficina + implemento + sem O.S. */



.badge.purple,
.report-table .badge.purple,
.compact-print-table .badge.purple{
  background:#ede9fe!important;
  color:#5b21b6!important;
}
.linha-sem-os-relatorio td{
  background:#fffdf3!important;
}
.linha-sem-os-relatorio .badge.yellow{
  background:#fef3c7!important;
  color:#92400e!important;
}


/* PATCH — Salvar alocação quota + visual origem */
.alocar-hard-modal-v2{
  width:min(1180px,96vw)!important;
  border-radius:22px!important;
}
.alocar-hard-modal-v2 header{
  padding:22px 26px!important;
}
.alocar-hard-modal-v2 header h2{
  font-size:26px!important;
}
.alocar-hard-modal-v2 header p{
  max-width:760px!important;
}
.alocar-hard-modal-v2 .alocar-hard-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  padding:18px 24px 12px!important;
}
.alocar-hard-modal-v2 .alocar-hard-grid label:nth-child(3),
.alocar-hard-modal-v2 .alocar-hard-grid label:nth-child(4){
  grid-column:auto!important;
}
.alocar-hard-list-v2{
  margin:0 24px!important;
  padding:14px!important;
  max-height:46vh!important;
  grid-template-columns:repeat(auto-fill,minmax(330px,1fr))!important;
  gap:10px!important;
  background:#f5faf8!important;
}
.alocar-hard-item-v2{
  min-height:76px!important;
  display:grid!important;
  grid-template-columns:20px minmax(76px,.65fr) minmax(130px,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  padding:12px!important;
  border-radius:16px!important;
  background:#fff!important;
  border:1px solid rgba(15,61,46,.15)!important;
  box-shadow:0 4px 14px rgba(0,0,0,.035)!important;
  transition:.15s ease!important;
}
.alocar-hard-item-v2:hover{
  border-color:rgba(15,61,46,.35)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.08)!important;
  transform:translateY(-1px)!important;
}
.alocar-hard-item-v2 input{
  width:16px!important;
  height:16px!important;
  accent-color:#0f3d2e!important;
}
.alocar-hard-frota-block{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
}
.alocar-hard-frota-block strong{
  color:#0f3d2e!important;
  font-size:19px!important;
  font-weight:1000!important;
  line-height:1!important;
}
.alocar-hard-frota-block small{
  margin-top:4px!important;
  color:#52655d!important;
  font-size:10px!important;
  font-weight:950!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.alocar-hard-origem-block{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  padding-left:10px!important;
  border-left:1px solid rgba(15,61,46,.12)!important;
}
.alocar-hard-origem-block b{
  color:#0f3d2e!important;
  font-size:10px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  letter-spacing:.02em!important;
}
.alocar-hard-origem-block small{
  margin-top:3px!important;
  color:#283f36!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1.15!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.alocar-hard-status{
  justify-self:end!important;
  max-width:120px!important;
  padding:5px 9px!important;
  border-radius:999px!important;
  background:#eef6f1!important;
  color:#0f3d2e!important;
  font-size:9px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.alocar-hard-toast{
  z-index:1000001!important;
}
@media(max-width:980px){
  .alocar-hard-modal-v2 .alocar-hard-grid{
    grid-template-columns:1fr 1fr!important;
  }
  .alocar-hard-list-v2{
    grid-template-columns:1fr!important;
  }
}
@media(max-width:680px){
  .alocar-hard-modal-v2 .alocar-hard-grid{
    grid-template-columns:1fr!important;
  }
  .alocar-hard-item-v2{
    grid-template-columns:22px 1fr!important;
  }
  .alocar-hard-origem-block,
  .alocar-hard-status{
    grid-column:2!important;
    justify-self:stretch!important;
  }
}


/* PATCH — origem relatório + oficina card + status coerente */
.rel-origem-filter-wrap{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  height:44px!important;
  padding:0 14px!important;
  border-radius:14px!important;
  background:#fff!important;
  border:1px solid rgba(15,61,46,.18)!important;
  color:#0f3d2e!important;
  font-weight:1000!important;
  box-shadow:0 3px 12px rgba(0,0,0,.08)!important;
}
.rel-origem-filter-wrap span{
  font-size:12px!important;
  text-transform:uppercase!important;
  letter-spacing:.02em!important;
}
.rel-origem-filter{
  border:none!important;
  outline:none!important;
  background:transparent!important;
  color:#0f3d2e!important;
  font-weight:1000!important;
  max-width:170px!important;
}
.report-header-tools button,
.report-header-tools .btn{
  white-space:nowrap!important;
}
.report-table .oficina-display-sub,
.report-table .oficina-display-ref,
.compact-print-table .oficina-display-sub,
.compact-print-table .oficina-display-ref,
.oficina-display-sub,
.oficina-display-ref{
  display:none!important;
}


.fleet-card{
  min-height:58px!important;
  height:58px!important;
  padding:5px 7px!important;
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1px!important;
  line-height:1.05!important;
  overflow:hidden!important;
}
.fleet-card .manual-tag{
  position:static!important;
  display:block!important;
  min-height:10px!important;
  height:10px!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:none!important;
  box-shadow:none!important;
  color:rgba(255,255,255,.9)!important;
  font-size:7px!important;
  font-weight:900!important;
  line-height:10px!important;
  text-align:center!important;
}
.fleet-card-frota{
  display:block!important;
  font-size:16px!important;
  font-weight:950!important;
  line-height:18px!important;
  color:inherit!important;
}
.fleet-card-oficina{
  display:block!important;
  width:100%!important;
  min-height:11px!important;
  height:11px!important;
  max-width:100%!important;
  font-size:7.5px!important;
  font-weight:1000!important;
  line-height:11px!important;
  text-align:center!important;
  text-transform:uppercase!important;
  color:#fff!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.fleet-card-oficina.empty{
  visibility:hidden!important;
}




/* PATCH — Determinar modal premium + oportunidade pele */
.fleet-card.opportunity,
.badge.opportunity{
  background:linear-gradient(135deg,#ffd8ca 0%,#f6b7a8 100%)!important;
  color:#6f2418!important;
  border:1px solid rgba(166,63,45,.28)!important;
}
.dot.opportunity{
  background:#f6b7a8!important;
  box-shadow:0 0 0 4px rgba(246,183,168,.24)!important;
}
.fleet-card.opportunity .manual-tag,
.fleet-card.opportunity .fleet-card-oficina{
  color:#6f2418!important;
}
.det-modal-premium{
  display:flex!important;
  flex-direction:column!important;
  gap:18px!important;
}
.det-info-grid-premium{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
}
.det-info-card-premium{
  min-height:82px!important;
  padding:14px!important;
  border:1px solid rgba(15,61,46,.14)!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#ffffff 0%,#f7fbf9 100%)!important;
}
.det-info-card-premium span{
  display:block!important;
  margin-bottom:8px!important;
  color:#6a7a73!important;
  font-size:11px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-info-card-premium strong{
  color:#0f2f26!important;
  font-size:17px!important;
  font-weight:1000!important;
  line-height:1.22!important;
  word-break:break-word!important;
}
.det-office-panel-premium,
.det-os-panel-premium{
  border:1px solid rgba(15,61,46,.14)!important;
  border-radius:18px!important;
  background:#ffffff!important;
  box-shadow:0 12px 28px rgba(15,61,46,.06)!important;
  padding:16px!important;
}
.det-office-panel-premium{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 260px!important;
  gap:18px!important;
  align-items:center!important;
}
.det-office-panel-premium h3,
.det-section-head-premium h3{
  margin:0!important;
  color:#0f3d2e!important;
  font-size:17px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-office-panel-premium p,
.det-section-head-premium p{
  margin:5px 0 0!important;
  color:#62736c!important;
  font-weight:800!important;
  font-size:12px!important;
}
.det-office-current{
  padding:12px 14px!important;
  border-radius:14px!important;
  background:#eef7f2!important;
  border:1px solid rgba(15,61,46,.12)!important;
}
.det-office-current span{
  display:block!important;
  color:#6a7a73!important;
  font-size:10px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-office-current strong{
  color:#0f3d2e!important;
  font-size:17px!important;
  font-weight:1000!important;
}
.det-os-cards{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
  margin-top:14px!important;
}
.det-os-card{
  border:1px solid rgba(15,61,46,.16)!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbf9 100%)!important;
  padding:14px!important;
}
.det-os-card-top{
  display:grid!important;
  grid-template-columns:120px 1fr auto!important;
  align-items:center!important;
  gap:12px!important;
  padding-bottom:12px!important;
  border-bottom:1px solid rgba(15,61,46,.1)!important;
}
.det-os-numero span,
.det-os-card-grid span,
.det-os-observacao span,
.det-flag-controls span{
  display:block!important;
  color:#718078!important;
  font-size:10px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-os-numero strong{
  color:#0f3d2e!important;
  font-size:20px!important;
  font-weight:1000!important;
}
.det-os-card-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:12px!important;
}
.det-os-card-grid div,
.det-os-observacao{
  padding:10px!important;
  border-radius:13px!important;
  background:#fff!important;
  border:1px solid rgba(15,61,46,.10)!important;
}
.det-os-card-grid strong,
.det-os-observacao strong{
  display:block!important;
  color:#102f26!important;
  font-size:13px!important;
  font-weight:950!important;
  margin-top:4px!important;
}
.det-os-observacao{
  margin-top:10px!important;
}
.det-flag-controls{
  display:grid!important;
  grid-template-columns:220px 220px auto!important;
  align-items:end!important;
  gap:10px!important;
  margin-top:12px!important;
  padding:12px!important;
  border-radius:14px!important;
  background:#eef7f2!important;
  border:1px solid rgba(15,61,46,.12)!important;
}
.det-flag-controls select,
.det-flag-controls input{
  width:100%!important;
  height:42px!important;
  border-radius:12px!important;
  border:1px solid rgba(15,61,46,.20)!important;
  background:#fff!important;
  padding:0 12px!important;
  font-weight:900!important;
  color:#0f3d2e!important;
  outline:none!important;
}
.det-flag-custom-wrap.is-disabled{
  opacity:.55!important;
}
.det-flag-save{
  height:42px!important;
}
.det-flag-resumo{
  margin-top:10px!important;
  color:#0f3d2e!important;
  font-size:12px!important;
  font-weight:1000!important;
}
.det-empty-os{
  padding:18px!important;
  text-align:center!important;
}
@media(max-width:980px){
  .det-info-grid-premium{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .det-office-panel-premium{grid-template-columns:1fr!important;}
  .det-os-card-top{grid-template-columns:1fr!important;}
  .det-os-card-grid{grid-template-columns:1fr 1fr!important;}
  .det-flag-controls{grid-template-columns:1fr!important;}
}
@media(max-width:620px){
  .det-info-grid-premium,
  .det-os-card-grid{grid-template-columns:1fr!important;}
}


/* PATCH SEGURO — melhorias determinar/modal */
.fleet-card.opportunity,
.badge.opportunity{
  background:linear-gradient(135deg,#ffd8ca 0%,#f4b6a6 100%)!important;
  color:#6f2418!important;
  border:1px solid rgba(166,63,45,.30)!important;
}
.dot.opportunity{
  background:#f4b6a6!important;
  box-shadow:0 0 0 4px rgba(244,182,166,.26)!important;
}

.det-safe-office-section,
.det-safe-os-section{
  margin-top:16px!important;
  padding:16px!important;
  border-radius:18px!important;
  border:1px solid rgba(15,61,46,.14)!important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbf9 100%)!important;
  box-shadow:0 12px 28px rgba(15,61,46,.06)!important;
}
.det-safe-section-head{
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:14px!important;
  margin-bottom:12px!important;
}
.det-safe-section-head h3{
  margin:0!important;
  color:#0f3d2e!important;
  font-size:17px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-safe-section-head p{
  margin:5px 0 0!important;
  color:#62736c!important;
  font-size:12px!important;
  font-weight:800!important;
}
.det-safe-current{
  min-width:190px!important;
  padding:10px 13px!important;
  border-radius:14px!important;
  background:#eef7f2!important;
  border:1px solid rgba(15,61,46,.12)!important;
}
.det-safe-current span,
.det-safe-office-form span,
.det-safe-os-num span,
.det-safe-os-grid span,
.det-safe-obs span,
.det-safe-flag-controls span{
  display:block!important;
  color:#718078!important;
  font-size:10px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-safe-current strong{
  display:block!important;
  color:#0f3d2e!important;
  font-size:16px!important;
  font-weight:1000!important;
}
.det-safe-office-form{
  display:grid!important;
  grid-template-columns:minmax(260px,1fr) auto auto!important;
  gap:10px!important;
  align-items:end!important;
}
.det-safe-office-form label{
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
}
.det-safe-office-form input,
.det-safe-flag-controls select,
.det-safe-flag-controls input{
  height:44px!important;
  border-radius:13px!important;
  border:1px solid rgba(15,61,46,.20)!important;
  background:#fff!important;
  color:#0f3d2e!important;
  font-weight:900!important;
  outline:none!important;
  padding:0 12px!important;
}
.det-safe-office-form .btn{
  height:44px!important;
  white-space:nowrap!important;
}
.det-safe-os-list{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
}
.det-safe-os-card{
  padding:14px!important;
  border-radius:18px!important;
  border:1px solid rgba(15,61,46,.14)!important;
  background:#fff!important;
}
.det-safe-os-top{
  display:grid!important;
  grid-template-columns:110px 1fr auto!important;
  align-items:center!important;
  gap:12px!important;
  padding-bottom:12px!important;
  border-bottom:1px solid rgba(15,61,46,.10)!important;
}
.det-safe-switch{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  font-weight:1000!important;
  color:#0f3d2e!important;
  text-transform:uppercase!important;
}
.det-safe-switch input{
  accent-color:#0f3d2e!important;
}
.det-safe-os-num strong{
  color:#0f3d2e!important;
  font-size:20px!important;
  font-weight:1000!important;
}
.det-safe-badges{
  display:flex!important;
  justify-content:flex-end!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
.det-safe-os-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:12px!important;
}
.det-safe-os-grid div,
.det-safe-obs{
  padding:10px!important;
  border-radius:13px!important;
  border:1px solid rgba(15,61,46,.10)!important;
  background:#f9fcfa!important;
}
.det-safe-os-grid strong,
.det-safe-obs strong{
  display:block!important;
  margin-top:4px!important;
  color:#102f26!important;
  font-size:13px!important;
  font-weight:950!important;
}
.det-safe-obs{
  margin-top:10px!important;
}
.det-safe-flag-controls{
  display:grid!important;
  grid-template-columns:220px 220px auto!important;
  align-items:end!important;
  gap:10px!important;
  margin-top:12px!important;
  padding:12px!important;
  border-radius:14px!important;
  background:#eef7f2!important;
  border:1px solid rgba(15,61,46,.12)!important;
}
.det-safe-flag-resumo{
  margin-top:10px!important;
  color:#0f3d2e!important;
  font-size:12px!important;
  font-weight:1000!important;
}
@media(max-width:900px){
  .det-safe-section-head,
  .det-safe-office-form,
  .det-safe-os-top,
  .det-safe-flag-controls{
    grid-template-columns:1fr!important;
    display:grid!important;
  }
  .det-safe-os-grid{
    grid-template-columns:1fr 1fr!important;
  }
}
@media(max-width:620px){
  .det-safe-os-grid{
    grid-template-columns:1fr!important;
  }
}


/* PATCH — Relatório implemento com dados da O.S. associada */
.report-table .linha-implemento-os-associada td{
  background:#fbf7ff!important;
}




/* PATCH_RELATORIO_BOTOES_LEGENDA_V1 */
.report-modal-header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;flex-wrap:wrap!important;}
.report-header-tools{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;flex-wrap:wrap!important;}
.report-header-tools > *{flex:0 0 auto!important;}
.report-header-tools .btn,.report-header-tools .modal-close,.report-header-tools .rel-origem-filter-wrap{min-height:42px!important;height:42px!important;border-radius:14px!important;padding:0 16px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:13px!important;font-weight:1000!important;letter-spacing:.01em!important;box-shadow:0 6px 16px rgba(15,61,46,.10)!important;transition:transform .14s ease, box-shadow .14s ease, filter .14s ease!important;}
.report-header-tools .btn:hover,.report-header-tools .modal-close:hover,.report-header-tools .rel-origem-filter-wrap:hover{transform:translateY(-1px)!important;box-shadow:0 10px 20px rgba(15,61,46,.15)!important;}
.report-print-btn{background:#fff!important;color:#0f3d2e!important;border:1px solid rgba(255,255,255,.78)!important;}
.report-header-tools .btn:not(.report-print-btn):not(.modal-close){background:#fff!important;color:#0f3d2e!important;border:1px solid rgba(15,61,46,.16)!important;}
.report-header-tools .modal-close{background:rgba(255,255,255,.12)!important;color:#fff!important;border:1px solid rgba(255,255,255,.24)!important;}
.rel-origem-filter-wrap{gap:10px!important;background:#fff!important;border:1px solid rgba(15,61,46,.16)!important;}
.rel-origem-filter-wrap span{font-size:11px!important;font-weight:1000!important;color:#355147!important;}
.rel-origem-filter{min-width:112px!important;font-size:13px!important;}
.report-legend-bar{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;margin:6px 0 12px!important;padding:10px 12px!important;border-radius:16px!important;background:#f8fbf9!important;border:1px solid #dfe8e3!important;}
.report-legend-title{color:#0f3d2e!important;font-size:12px!important;font-weight:1000!important;text-transform:uppercase!important;margin-right:2px!important;}
.report-legend-item{display:inline-flex!important;align-items:center!important;gap:6px!important;padding:6px 10px!important;border-radius:999px!important;border:1px solid #dde8e1!important;background:#fff!important;color:#18362b!important;font-size:11px!important;font-weight:900!important;line-height:1!important;white-space:nowrap!important;}
.report-legend-dot{width:10px!important;height:10px!important;border-radius:999px!important;display:inline-block!important;flex:0 0 10px!important;}
.report-legend-dot.green{background:#16a34a!important;}
.report-legend-dot.red{background:#dc2626!important;}
.report-legend-dot.orange{background:#f59e0b!important;}
.report-legend-dot.blue{background:#2563eb!important;}
.report-legend-dot.yellow{background:#eab308!important;}
.report-legend-dot.purple{background:#7c3aed!important;}
.report-legend-dot.gray{background:#64748b!important;}
.report-legend-dot.teal{background:#0f766e!important;}
.report-legend-dot.opportunity{background:#e6b7a8!important;}
@media(max-width:900px){.report-header-tools{justify-content:flex-start!important;width:100%!important;}.report-header-tools .btn,.report-header-tools .modal-close,.report-header-tools .rel-origem-filter-wrap{min-height:40px!important;height:40px!important;}.report-legend-bar{padding:10px!important;}}


/* PATCH_CORES_PREVENTIVA_AGUARD_RETIRADA */
/* PREVENTIVA = azul escuro */
.badge.blue,
.fleet-card.blue,
.rel-aloc-fleet.blue,
.dot.blue,
.status-dot.blue{
  background:#1d4ed8!important;
  color:#ffffff!important;
  border-color:#1e40af!important;
}
.badge.blue{
  background:#dbeafe!important;
  color:#1e3a8a!important;
  border:1px solid #93c5fd!important;
}
.fleet-card.blue,
.rel-aloc-fleet.blue{
  background:linear-gradient(135deg,#1e40af 0%,#1d4ed8 100%)!important;
  color:#ffffff!important;
  border-color:#1e3a8a!important;
}
.dot.blue,
.status-dot.blue,
.report-legend-dot.blue{
  background:#1d4ed8!important;
}

/* AGUARDANDO RETIRADA = azul claro */
.badge.teal,
.badge.awaiting,
.badge.aguardando-retirada,
.badge.aguard-retirada{
  background:#e0f2fe!important;
  color:#075985!important;
  border:1px solid #7dd3fc!important;
}
.fleet-card.teal,
.fleet-card.awaiting,
.fleet-card.aguardando-retirada,
.fleet-card.aguard-retirada,
.rel-aloc-fleet.teal,
.rel-aloc-fleet.awaiting,
.rel-aloc-fleet.aguardando-retirada,
.rel-aloc-fleet.aguard-retirada{
  background:linear-gradient(135deg,#7dd3fc 0%,#38bdf8 100%)!important;
  color:#07364a!important;
  border-color:#0ea5e9!important;
}
.dot.teal,
.dot.awaiting,
.dot.aguardando-retirada,
.dot.aguard-retirada,
.status-dot.teal,
.status-dot.awaiting,
.status-dot.aguardando-retirada,
.status-dot.aguard-retirada,
.report-legend-dot.teal,
.report-legend-dot.awaiting,
.report-legend-dot.aguardando-retirada,
.report-legend-dot.aguard-retirada{
  background:#7dd3fc!important;
}

/* OPORTUNIDADE permanece cor de pele */
.badge.opportunity,
.fleet-card.opportunity,
.rel-aloc-fleet.opportunity{
  background:linear-gradient(135deg,#ffd8ca 0%,#f4b6a6 100%)!important;
  color:#6f2418!important;
  border-color:rgba(166,63,45,.30)!important;
}
.report-legend-dot.opportunity,
.dot.opportunity{
  background:#f4b6a6!important;
}

/* Legenda do relatório, caso ainda não exista estilo carregado */
.report-legend-bar{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  margin:6px 0 12px!important;
  padding:10px 12px!important;
  border-radius:16px!important;
  background:#f8fbf9!important;
  border:1px solid #dfe8e3!important;
}
.report-legend-title{
  color:#0f3d2e!important;
  font-size:12px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  margin-right:2px!important;
}
.report-legend-item{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  padding:6px 10px!important;
  border-radius:999px!important;
  border:1px solid #dde8e1!important;
  background:#fff!important;
  color:#18362b!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.report-legend-dot{
  width:10px!important;
  height:10px!important;
  border-radius:999px!important;
  display:inline-block!important;
  flex:0 0 10px!important;
}


/* PATCH_DEFINITIVO_COR_AGUARD_RETIRADA */
/* PREVENTIVA: azul escuro */
.badge.blue,
.badge.preventiva{
  background:#dbeafe!important;
  color:#1e3a8a!important;
  border:1px solid #93c5fd!important;
}
.fleet-card.blue,
.fleet-card.preventiva,
.rel-aloc-fleet.blue,
.rel-aloc-fleet.preventiva{
  background:linear-gradient(135deg,#1e3a8a 0%,#1d4ed8 100%)!important;
  color:#fff!important;
  border-color:#1e40af!important;
}


/* AGUARDANDO RETIRADA: azul claro */
.badge.teal,
.badge.aguardando-retirada,
.badge.aguard-retirada,
.badge.awaiting{
  background:#e0f2fe!important;
  color:#075985!important;
  border:1px solid #7dd3fc!important;
}
.fleet-card.teal,
.fleet-card.aguardando-retirada,
.fleet-card.aguard-retirada,
.fleet-card.awaiting,
.rel-aloc-fleet.teal,
.rel-aloc-fleet.aguardando-retirada,
.rel-aloc-fleet.aguard-retirada,
.rel-aloc-fleet.awaiting{
  background:linear-gradient(135deg,#bae6fd 0%,#7dd3fc 100%)!important;
  color:#07364a!important;
  border-color:#38bdf8!important;
}
.dot.teal,
.status-dot.teal,
.report-legend-dot.teal,
.dot.aguardando-retirada,
.status-dot.aguardando-retirada,
.report-legend-dot.aguardando-retirada{
  background:#7dd3fc!important;
}

/* OPORTUNIDADE: pele */



/* Legenda */

.report-legend-title{
  color:#0f3d2e!important;
  font-size:12px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}

.report-legend-dot{
  width:10px!important;
  height:10px!important;
  border-radius:999px!important;
  display:inline-block!important;
}


/* PATCH_AJUSTE_APENAS_CORES_FORTES
   Ajusta SOMENTE as cores que estavam fortes demais:
   - Com O.S./Prod / orange
   - Aguardando Retirada / teal
   Não altera verde, vermelho, roxo, amarelo, cinza, preventiva ou oportunidade.
*/

/* COM O.S./PROD — laranja mais suave */
.fleet-card.orange,
.fleet-card.com-os-prod,
.fleet-card.produtivo,
.rel-aloc-fleet.orange,
.rel-aloc-fleet.com-os-prod,
.rel-aloc-fleet.produtivo{
  background:linear-gradient(135deg,#fff3df 0%,#f7c778 100%)!important;
  color:#7a3d00!important;
  border-color:#e8ae58!important;
}
.badge.orange,
.status-pill.orange,
.pill.orange{
  background:#fff3df!important;
  color:#8a4700!important;
  border:1px solid #efbf72!important;
}
.dot.orange,
.status-dot.orange,
.report-legend-dot.orange{
  background:#e59a2f!important;
}

/* AGUARDANDO RETIRADA — azul claro mais suave */
.fleet-card.teal,
.fleet-card.aguardando-retirada,
.fleet-card.aguard-retirada,
.fleet-card.awaiting,
.rel-aloc-fleet.teal,
.rel-aloc-fleet.aguardando-retirada,
.rel-aloc-fleet.aguard-retirada,
.rel-aloc-fleet.awaiting{
  background:linear-gradient(135deg,#eef9ff 0%,#bfeaff 100%)!important;
  color:#07506b!important;
  border-color:#8fd4f2!important;
}
.badge.teal,
.badge.aguardando-retirada,
.badge.aguard-retirada,
.badge.awaiting,
.status-pill.teal,
.status-pill.aguardando-retirada,
.pill.teal,
.pill.aguardando-retirada{
  background:#eef9ff!important;
  color:#07506b!important;
  border:1px solid #9bdcf7!important;
}
.dot.teal,
.dot.aguardando-retirada,
.status-dot.teal,
.status-dot.aguardando-retirada,
.report-legend-dot.teal,
.report-legend-dot.aguardando-retirada{
  background:#8bd8f5!important;
}

/* Botão Atualizar PIMS no relatório */
.report-update-pims-btn{
  min-height:42px!important;
  height:42px!important;
  border-radius:14px!important;
  padding:0 16px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  background:#fff!important;
  color:#0f3d2e!important;
  border:1px solid rgba(15,61,46,.16)!important;
  font-size:13px!important;
  font-weight:1000!important;
  box-shadow:0 6px 16px rgba(15,61,46,.10)!important;
  cursor:pointer!important;
  white-space:nowrap!important;
}
.report-update-pims-btn:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 10px 20px rgba(15,61,46,.15)!important;
}
.report-update-pims-btn[disabled]{
  opacity:.72!important;
  cursor:wait!important;
  transform:none!important;
}
.pims-report-toast{
  position:fixed!important;
  right:18px!important;
  bottom:18px!important;
  z-index:999999!important;
  background:#0f3d2e!important;
  color:#fff!important;
  border-radius:14px!important;
  padding:12px 14px!important;
  box-shadow:0 12px 32px rgba(0,0,0,.22)!important;
  font-size:13px!important;
  font-weight:900!important;
}


/* PATCH_RELATORIO_LARANJA_SUAVE
   Corrige SOMENTE o laranja forte dentro do relatório. */
.report-view .badge.orange,
.report-view .badge.produtivo,
.report-view .badge.com-os-prod,
.report-modal .badge.orange,
.report-modal .badge.produtivo,
.report-modal .badge.com-os-prod,
.report-table .badge.orange,
.report-table .badge.produtivo,
.report-table .badge.com-os-prod,
.compact-print-table .badge.orange,
.compact-print-table .badge.produtivo,
.compact-print-table .badge.com-os-prod{
  background:#fff3df!important;
  color:#8a4700!important;
  border:1px solid #efbf72!important;
}

.report-view .rel-aloc-fleet.orange,
.report-view .rel-aloc-fleet.produtivo,
.report-view .rel-aloc-fleet.com-os-prod,
.report-modal .rel-aloc-fleet.orange,
.report-modal .rel-aloc-fleet.produtivo,
.report-modal .rel-aloc-fleet.com-os-prod{
  background:#fff3df!important;
  color:#7a3d00!important;
  border-color:#e8ae58!important;
}

.report-view .report-legend-dot.orange,
.report-modal .report-legend-dot.orange,
.report-legend-dot.orange{
  background:#e59a2f!important;
}


/* PATCH_SEMAFORO_CORES_E_AUTO_DESALOCAR
   Modal do semáforo segue a cor do status real, e não o texto dos botões. */
.semaforo-card{
  background:#ffffff!important;
  border-color:#d9e6df!important;
}
.semaforo-card .semaforo-card-head{
  background:#f5faf7!important;
}

/* COM O.S./PROD */
.semaforo-card.semaforo-card-orange{
  background:#fff3df!important;
  border-color:#efbf72!important;
}
.semaforo-card.semaforo-card-orange .semaforo-card-head{
  background:#fff0d6!important;
  border-bottom-color:#efbf72!important;
}

/* OFFLINE */
.semaforo-card.semaforo-card-gray{
  background:#f3f6f8!important;
  border-color:#b8c2cc!important;
}
.semaforo-card.semaforo-card-gray .semaforo-card-head{
  background:#edf2f6!important;
  border-bottom-color:#b8c2cc!important;
}

/* IMPLEMENTO QUEBRADO */
.semaforo-card.semaforo-card-purple{
  background:#f4efff!important;
  border-color:#c8b5ff!important;
}
.semaforo-card.semaforo-card-purple .semaforo-card-head{
  background:#eee6ff!important;
  border-bottom-color:#c8b5ff!important;
}

/* AGUARDANDO RETIRADA */
.semaforo-card.semaforo-card-teal{
  background:#eef9ff!important;
  border-color:#9bdcf7!important;
}
.semaforo-card.semaforo-card-teal .semaforo-card-head{
  background:#e4f5fd!important;
  border-bottom-color:#9bdcf7!important;
}

/* SEM O.S. */
.semaforo-card.semaforo-card-yellow{
  background:#fff9e6!important;
  border-color:#edd46f!important;
}
.semaforo-card.semaforo-card-yellow .semaforo-card-head{
  background:#fff4cc!important;
  border-bottom-color:#edd46f!important;
}

/* PARADO */
.semaforo-card.semaforo-card-red{
  background:#fff0ef!important;
  border-color:#f2aaa6!important;
}
.semaforo-card.semaforo-card-red .semaforo-card-head{
  background:#fde7e5!important;
  border-bottom-color:#f2aaa6!important;
}

/* LIBERADO */
.semaforo-card.semaforo-card-green{
  background:#edf8f1!important;
  border-color:#9fd8b4!important;
}
.semaforo-card.semaforo-card-green .semaforo-card-head{
  background:#e4f4ea!important;
  border-bottom-color:#9fd8b4!important;
}

/* PREVENTIVA */
.semaforo-card.semaforo-card-blue{
  background:#eef4ff!important;
  border-color:#9db9f3!important;
}
.semaforo-card.semaforo-card-blue .semaforo-card-head{
  background:#e6efff!important;
  border-bottom-color:#9db9f3!important;
}

/* OPORTUNIDADE */
.semaforo-card.semaforo-card-opportunity{
  background:#fff2ec!important;
  border-color:#efb9a7!important;
}
.semaforo-card.semaforo-card-opportunity .semaforo-card-head{
  background:#ffe9df!important;
  border-bottom-color:#efb9a7!important;
}

/* Campos internos continuam neutros e legíveis */
.semaforo-card .semaforo-field{
  background:rgba(255,255,255,.82)!important;
}

/* Badges suavizados no modal */
.semaforo-card .badge.orange{
  background:#fff3df!important;
  color:#8a4700!important;
  border:1px solid #efbf72!important;
}
.semaforo-card .badge.teal{
  background:#eef9ff!important;
  color:#07506b!important;
  border:1px solid #9bdcf7!important;
}
.semaforo-card .badge.gray{
  background:#eef2f6!important;
  color:#405061!important;
  border:1px solid #b8c2cc!important;
}
.semaforo-card .badge.purple{
  background:#f2ecff!important;
  color:#5b21b6!important;
  border:1px solid #c8b5ff!important;
}


/* PATCH_SEMAFORO_COR_AGUARD_E_REMOVER_CLASSIFICACAO */

/* AGUARDANDO RETIRADA = azul claro, inclusive chips da alocação/relatório */






/* PREVENTIVA = azul escuro, sem confundir com aguardando retirada */
.fleet-card.blue:not(.teal):not(.aguardando-retirada),
.rel-aloc-fleet.blue:not(.teal):not(.aguardando-retirada){
  background:linear-gradient(135deg,#1e40af 0%,#2563eb 100%)!important;
  color:#fff!important;
  border-color:#1d4ed8!important;
}

.badge.blue:not(.teal):not(.aguardando-retirada){
  background:#e7efff!important;
  color:#1e3a8a!important;
  border:1px solid #9db9f3!important;
}

.report-legend-dot.blue{
  background:#2f5fd0!important;
}

/* Modal semáforo: card por status real */

















/* Botão remover classificação no modal */
.btn-remover-classificacao-semaforo{
  background:#fff!important;
  color:#b42318!important;
  border:1px solid #f3b4ad!important;
  border-radius:12px!important;
  padding:8px 12px!important;
  font-weight:1000!important;
  cursor:pointer!important;
  box-shadow:0 4px 12px rgba(180,35,24,.08)!important;
}
.btn-remover-classificacao-semaforo:hover{
  background:#fff1f0!important;
}
.semaforo-classificacao-removida{
  display:inline-flex!important;
  align-items:center!important;
  border-radius:999px!important;
  padding:6px 10px!important;
  background:#ecfdf3!important;
  color:#027a48!important;
  border:1px solid #abefc6!important;
  font-size:11px!important;
  font-weight:1000!important;
}


/* PATCH_AJUSTE_FINO_SEMAFORO_RELATORIO */

/* Remove apenas o botão extra. O botão original "Remover" continua visível. */
.btn-remover-classificacao-semaforo{
  display:none!important;
}

/* Legenda do relatório: bordas todas neutras, inclusive Com O.S./Prod. */
.report-legend-item,
.report-legend-item:has(.report-legend-dot.orange),
.report-legend-item:has(.dot.orange){
  border-color:#dfe8e3!important;
  box-shadow:0 3px 10px rgba(15,61,46,.05)!important;
}

/* Com O.S./Prod continua laranja, porém sem borda destacada na legenda. */
.report-legend-dot.orange,
.dot.orange,
.status-dot.orange{
  background:#e59a2f!important;
}

/* Preventiva no relatório: azul escuro, mas com visual limpo. */
.report-table .badge.blue,
.compact-print-table .badge.blue,
.report-view .badge.blue,
.report-modal .badge.blue{
  background:#e7efff!important;
  color:#1e3a8a!important;
  border:1px solid #9db9f3!important;
}

/* Oportunidade no relatório: cor de pele, separada da preventiva. */
.report-table .badge.opportunity,
.compact-print-table .badge.opportunity,
.report-view .badge.opportunity,
.report-modal .badge.opportunity{
  background:#fff0e8!important;
  color:#7a2d1f!important;
  border:1px solid #efb9a7!important;
}

/* Chips da alocação no relatório, quando forem preventiva/oportunidade. */
.report-view .rel-aloc-fleet.blue,
.report-modal .rel-aloc-fleet.blue{
  background:#e7efff!important;
  color:#1e3a8a!important;
  border-color:#9db9f3!important;
}
.report-view .rel-aloc-fleet.opportunity,
.report-modal .rel-aloc-fleet.opportunity{
  background:#fff0e8!important;
  color:#7a2d1f!important;
  border-color:#efb9a7!important;
}

/* Aguardando retirada fica azul claro e nunca azul escuro. */
.fleet-card.teal,
.fleet-card.aguardando-retirada,
.rel-aloc-fleet.teal,
.rel-aloc-fleet.aguardando-retirada{
  background:linear-gradient(135deg,#eef9ff 0%,#bfeaff 100%)!important;
  color:#07506b!important;
  border-color:#8fd4f2!important;
}
.badge.teal,
.badge.aguardando-retirada{
  background:#eef9ff!important;
  color:#07506b!important;
  border:1px solid #9bdcf7!important;
}


/* PATCH_REPARO_RELATORIO_SEMAFORO_CLASSIFICACOES */

/* Remove somente o botão extra criado no patch anterior. */


/* Botão original Remover criado por este reparo. */
.btn-remover-semaforo-manual{
  background:#fff!important;
  color:#12382c!important;
  border:1px solid #cddbd4!important;
  border-radius:10px!important;
  padding:7px 12px!important;
  font-weight:1000!important;
  cursor:pointer!important;
  box-shadow:0 3px 10px rgba(15,61,46,.06)!important;
}
.btn-remover-semaforo-manual:hover{
  background:#f3faf6!important;
}

/* Confirmação visual após remover. */
.semaforo-removido-ok{
  display:inline-flex!important;
  align-items:center!important;
  border-radius:999px!important;
  padding:6px 10px!important;
  background:#ecfdf3!important;
  color:#027a48!important;
  border:1px solid #abefc6!important;
  font-size:11px!important;
  font-weight:1000!important;
}

/* Aguardando retirada nunca pode ficar azul escuro. */
.fleet-card.teal,
.fleet-card.aguardando-retirada,
.rel-aloc-fleet.teal,
.rel-aloc-fleet.aguardando-retirada,
.semaforo-card.semaforo-card-teal{
  background:#eef9ff!important;
  color:#07506b!important;
  border-color:#9bdcf7!important;
}

.dot.teal,
.status-dot.teal,
.report-legend-dot.teal{
  background:#8bd8f5!important;
}

/* Preventiva continua azul escuro, mas só para preventiva. */
.fleet-card.blue:not(.teal):not(.aguardando-retirada),
.rel-aloc-fleet.blue:not(.teal):not(.aguardando-retirada){
  background:#e7efff!important;
  color:#1e3a8a!important;
  border-color:#9db9f3!important;
}


/* Modal semáforo por status manual. */






/* PATCH_FINAL_REPARO_SEMAFORO_RELATORIO */

/* Semáforo modal acompanha o status */
.semaforo-card.semaforo-card-orange{background:#fff3df!important;border-color:#efbf72!important;}
.semaforo-card.semaforo-card-orange .semaforo-card-head{background:#fff0d6!important;border-bottom-color:#efbf72!important;}
.semaforo-card.semaforo-card-gray{background:#f3f6f8!important;border-color:#b8c2cc!important;}
.semaforo-card.semaforo-card-gray .semaforo-card-head{background:#edf2f6!important;border-bottom-color:#b8c2cc!important;}
.semaforo-card.semaforo-card-purple{background:#f4efff!important;border-color:#c8b5ff!important;}
.semaforo-card.semaforo-card-purple .semaforo-card-head{background:#eee6ff!important;border-bottom-color:#c8b5ff!important;}
.semaforo-card.semaforo-card-teal{background:#eef9ff!important;border-color:#9bdcf7!important;}
.semaforo-card.semaforo-card-teal .semaforo-card-head{background:#e4f5fd!important;border-bottom-color:#9bdcf7!important;}
.semaforo-card.semaforo-card-yellow{background:#fff9e6!important;border-color:#edd46f!important;}
.semaforo-card.semaforo-card-yellow .semaforo-card-head{background:#fff4cc!important;border-bottom-color:#edd46f!important;}
.semaforo-card.semaforo-card-red{background:#fff0ef!important;border-color:#f2aaa6!important;}
.semaforo-card.semaforo-card-red .semaforo-card-head{background:#fde7e5!important;border-bottom-color:#f2aaa6!important;}
.semaforo-card.semaforo-card-green{background:#edf8f1!important;border-color:#9fd8b4!important;}
.semaforo-card.semaforo-card-green .semaforo-card-head{background:#e4f4ea!important;border-bottom-color:#9fd8b4!important;}
.semaforo-card.semaforo-card-blue{background:#eef4ff!important;border-color:#9db9f3!important;}
.semaforo-card.semaforo-card-blue .semaforo-card-head{background:#e6efff!important;border-bottom-color:#9db9f3!important;}
.semaforo-card.semaforo-card-opportunity{background:#fff2ec!important;border-color:#efb9a7!important;}
.semaforo-card.semaforo-card-opportunity .semaforo-card-head{background:#ffe9df!important;border-bottom-color:#efb9a7!important;}

.semaforo-card .semaforo-field{background:rgba(255,255,255,.82)!important;}

/* Apenas um botão Remover */
.btn-remover-classificacao-semaforo{display:none!important;}

.btn-remover-semaforo-manual:hover{background:#f3faf6!important;}

/* Aguardando retirada azul claro */
.badge.teal,.fleet-card.teal,.rel-aloc-fleet.teal,.semaforo-sidebar-card.teal{
  background:#eef9ff!important;
  color:#07506b!important;
  border-color:#9bdcf7!important;
}
.dot.teal,.status-dot.teal,.report-legend-dot.teal{background:#8bd8f5!important;}

/* Preventiva no relatório: azul, mas coerente com o visual claro */
.report-table .badge.blue,.compact-print-table .badge.blue,.report-view .badge.blue,.report-modal .badge.blue{
  background:#e7efff!important;
  color:#1e3a8a!important;
  border:1px solid #9db9f3!important;
}

/* Oportunidade no relatório: pele, separada */
.report-table .badge.opportunity,.compact-print-table .badge.opportunity,.report-view .badge.opportunity,.report-modal .badge.opportunity{
  background:#fff0e8!important;
  color:#7a2d1f!important;
  border:1px solid #efb9a7!important;
}

/* Com O.S./Prod no relatório suave */
.report-table .badge.orange,.compact-print-table .badge.orange,.report-view .badge.orange,.report-modal .badge.orange{
  background:#fff3df!important;
  color:#8a4700!important;
  border:1px solid #efbf72!important;
}

/* Legenda com borda padronizada */
.report-legend-item{border-color:#dfe8e3!important;box-shadow:0 3px 10px rgba(15,61,46,.05)!important;}
.report-legend-dot.orange{background:#e59a2f!important;}
.report-legend-dot.blue{background:#2f5fd0!important;}
.report-legend-dot.opportunity{background:#e8b8a7!important;}


/* PATCH_CORES_PREVENTIVA_AGUARD_RELATORIO_DETERMINAR
   Ajuste fino somente visual:
   - Relatório: preventiva no azul claro do chip 210315.
   - Determinar total/frente: preventiva azul escuro, aguardando retirada azul claro mais firme.
*/

/* =========================
   RELATÓRIO
   ========================= */

/* Preventiva no relatório = mesma identidade do chip 210315 da alocação */
.report-view .badge.blue,
.report-modal .badge.blue,
.report-table .badge.blue,
.compact-print-table .badge.blue,
.report-view .rel-aloc-fleet.blue,
.report-modal .rel-aloc-fleet.blue,
.report-alocacao .rel-aloc-fleet.blue{
  background:#e7efff!important;
  color:#1e3a8a!important;
  border:1px solid #9db9f3!important;
  box-shadow:none!important;
}

/* Aguardando retirada no relatório mantém azul claro do badge */
.report-view .badge.teal,
.report-modal .badge.teal,
.report-table .badge.teal,
.compact-print-table .badge.teal,
.report-view .rel-aloc-fleet.teal,
.report-modal .rel-aloc-fleet.teal,
.report-alocacao .rel-aloc-fleet.teal,
.report-view .rel-aloc-fleet.aguardando-retirada,
.report-modal .rel-aloc-fleet.aguardando-retirada{
  background:#eef9ff!important;
  color:#07506b!important;
  border:1px solid #9bdcf7!important;
  box-shadow:none!important;
}

/* Pontos da legenda permanecem distintos */

.report-legend-dot.teal{background:#8bd8f5!important;}

/* =========================
   DETERMINAR TOTAL/FRENTE
   ========================= */

/* No menu, preventiva pode ser azul escuro */
.fleet-card.blue:not(.teal):not(.aguardando-retirada),
.det-fleet-card.blue:not(.teal):not(.aguardando-retirada),
.determinar-card.blue:not(.teal):not(.aguardando-retirada){
  background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 100%)!important;
  color:#ffffff!important;
  border-color:#1d4ed8!important;
  box-shadow:0 8px 18px rgba(30,64,175,.18)!important;
}

/* Garante leitura interna em card azul escuro */
.fleet-card.blue:not(.teal):not(.aguardando-retirada) *,
.det-fleet-card.blue:not(.teal):not(.aguardando-retirada) *,
.determinar-card.blue:not(.teal):not(.aguardando-retirada) *{
  color:inherit!important;
}

/* No menu, aguardando retirada fica azul claro, porém um pouco mais firme */
.fleet-card.teal,
.fleet-card.aguardando-retirada,
.det-fleet-card.teal,
.det-fleet-card.aguardando-retirada,
.determinar-card.teal,
.determinar-card.aguardando-retirada{
  background:linear-gradient(135deg,#e2f6ff 0%,#9bdcf7 100%)!important;
  color:#064e68!important;
  border-color:#38bdf8!important;
  box-shadow:0 8px 18px rgba(14,165,233,.16)!important;
}

/* Evita aguardando retirada herdar azul escuro */
.fleet-card.teal *,
.fleet-card.aguardando-retirada *,
.det-fleet-card.teal *,
.det-fleet-card.aguardando-retirada *,
.determinar-card.teal *,
.determinar-card.aguardando-retirada *{
  color:inherit!important;
}

/* Badges gerais: preventiva e aguardando retirada continuam separados */




/* PATCH_RELATORIO_DTF_AZUL_AGUARD_LEGENDA */

/* RELATÓRIO: chip da alocação total/frente em aguardando retirada = azul claro */
.report-view .rel-aloc-fleet.teal,
.report-modal .rel-aloc-fleet.teal,
.report-alocacao .rel-aloc-fleet.teal,
.report-view .rel-aloc-fleet.aguardando-retirada,
.report-modal .rel-aloc-fleet.aguardando-retirada,
.report-alocacao .rel-aloc-fleet.aguardando-retirada{
  background:#eef9ff!important;
  color:#07506b!important;
  border:1px solid #9bdcf7!important;
  box-shadow:none!important;
}

/* RELATÓRIO: preventiva continua azul preventiva */
.report-view .rel-aloc-fleet.blue:not(.teal):not(.aguardando-retirada),
.report-modal .rel-aloc-fleet.blue:not(.teal):not(.aguardando-retirada),
.report-alocacao .rel-aloc-fleet.blue:not(.teal):not(.aguardando-retirada){
  background:#e7efff!important;
  color:#1e3a8a!important;
  border:1px solid #9db9f3!important;
  box-shadow:none!important;
}

/* Badge aguardando retirada na tabela segue azul claro */
.report-view .badge.teal,
.report-modal .badge.teal,
.report-table .badge.teal,
.compact-print-table .badge.teal{
  background:#eef9ff!important;
  color:#07506b!important;
  border:1px solid #9bdcf7!important;
}

/* Legenda: padroniza borda do Com O.S./Prod */
.report-legend-item,
.report-legend-item:has(.report-legend-dot.orange),
.report-legend-item:has(.dot.orange){
  border-color:#dfe8e3!important;
  box-shadow:0 3px 10px rgba(15,61,46,.05)!important;
  outline:0!important;
}



/* PATCH_LEGENDA_COM_OS_PROD_BRANCA
   Item Com O.S./Prod da legenda com fundo/borda padrão.
   O ponto continua laranja. */

.report-legend-bar .report-legend-item,
.report-legend-bar .report-legend-item.legend-com-os-prod,
.report-legend-bar .report-legend-item.com-os-prod,
.report-legend-bar .report-legend-item.orange,
.report-legend-bar .report-legend-item:has(.report-legend-dot.orange),
.report-legend-bar .report-legend-item:has(.dot.orange){
  background:#fff!important;
  border:1px solid #dfe8e3!important;
  color:#18362b!important;
  box-shadow:0 3px 10px rgba(15,61,46,.05)!important;
  outline:0!important;
}

.report-legend-bar .report-legend-dot.orange,
.report-legend-bar .dot.orange{
  background:#e59a2f!important;
  border-color:#e59a2f!important;
}


/* PATCH_LEGENDA_COM_OS_SEM_PISCAR
   Item Com O.S./Prod igual aos demais.
   Apenas o ponto permanece laranja. */

.report-legend-bar .report-legend-item.legend-com-os-prod,
.report-legend-bar .report-legend-item[data-legend="com-os-prod"],
.report-legend-bar .report-legend-item:has(.report-legend-dot.orange),
.report-legend-bar .report-legend-item:has(.dot.orange){
  background:#fff!important;
  border:1px solid #dfe8e3!important;
  border-color:#dfe8e3!important;
  color:#18362b!important;
  box-shadow:0 3px 10px rgba(15,61,46,.05)!important;
  outline:0!important;
}

.report-legend-bar .report-legend-item.legend-com-os-prod:hover,
.report-legend-bar .report-legend-item:has(.report-legend-dot.orange):hover{
  background:#fff!important;
  border-color:#dfe8e3!important;
}




/* PATCH_MODAL_OFICINA_FUNCIONAL_VISUAL */

/* Modal da frota mais organizado, sem alterar o modal global inteiro */
.modal-card:has(.det-oficina-editor),
.modal-content:has(.det-oficina-editor),
[role="dialog"]:has(.det-oficina-editor){
  max-width:980px!important;
}

.det-oficina-editor{
  margin:10px 0 14px!important;
  padding:14px!important;
  border:1px solid #d7e5de!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#f8fbf9 0%,#ffffff 100%)!important;
  box-shadow:0 10px 28px rgba(15,61,46,.08)!important;
}

.det-oficina-editor-head{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin-bottom:12px!important;
}

.det-oficina-editor-title{
  display:grid!important;
  gap:3px!important;
}

.det-oficina-editor-title strong{
  color:#0f3d2e!important;
  font-size:15px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  letter-spacing:.02em!important;
}

.det-oficina-editor-title small{
  color:#5c7168!important;
  font-size:11px!important;
  font-weight:800!important;
}

.det-oficina-current{
  min-width:160px!important;
  padding:8px 12px!important;
  border:1px solid #cfe0d8!important;
  border-radius:14px!important;
  background:#eef7f1!important;
  color:#0f3d2e!important;
  text-align:left!important;
}

.det-oficina-current span{
  display:block!important;
  color:#66786f!important;
  font-size:9.5px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}

.det-oficina-current b{
  display:block!important;
  margin-top:2px!important;
  color:#0f3d2e!important;
  font-size:14px!important;
  font-weight:1000!important;
  overflow-wrap:anywhere!important;
}

.det-oficina-editor-grid{
  display:grid!important;
  grid-template-columns:minmax(260px,1fr) auto auto!important;
  gap:10px!important;
  align-items:end!important;
}

.det-oficina-editor label{
  display:grid!important;
  gap:6px!important;
  margin:0!important;
}

.det-oficina-editor label span{
  color:#52695f!important;
  font-size:10.5px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}

.det-oficina-input{
  width:100%!important;
  height:46px!important;
  border:1px solid #cadbd3!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#0f2d22!important;
  padding:0 13px!important;
  font-weight:950!important;
  outline:0!important;
}

.det-oficina-input:focus{
  border-color:#0f6b46!important;
  box-shadow:0 0 0 3px rgba(15,107,70,.12)!important;
}

.det-oficina-btn{
  min-height:46px!important;
  border-radius:14px!important;
  border:1px solid #cddbd4!important;
  padding:0 14px!important;
  font-weight:1000!important;
  cursor:pointer!important;
  white-space:nowrap!important;
}

.det-oficina-btn.save{
  background:#0f3d2e!important;
  color:#fff!important;
  border-color:#0f3d2e!important;
  box-shadow:0 8px 20px rgba(15,61,46,.16)!important;
}

.det-oficina-btn.remove{
  background:#fff!important;
  color:#b42318!important;
  border-color:#f3b4ad!important;
}

.det-oficina-note{
  margin-top:9px!important;
  color:#64766e!important;
  font-size:11px!important;
  font-weight:800!important;
}

/* Ajuste visual dos cards internos do modal, só quando o editor existir */
.modal-card:has(.det-oficina-editor) .info-grid,
.modal-content:has(.det-oficina-editor) .info-grid{
  gap:10px!important;
}

.modal-card:has(.det-oficina-editor) .info-card,
.modal-content:has(.det-oficina-editor) .info-card{
  border-radius:14px!important;
  background:#fbfdfc!important;
  border-color:#dce8e2!important;
}

.fleet-card-oficina{
  display:block!important;
  min-height:14px!important;
  margin-top:2px!important;
  padding:1px 5px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.88)!important;
  color:#0f3d2e!important;
  font-size:8.5px!important;
  font-weight:1000!important;
  line-height:1.1!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

.det-oficina-toast{
  position:fixed!important;
  right:18px!important;
  bottom:18px!important;
  z-index:999999!important;
  background:#0f3d2e!important;
  color:#fff!important;
  border-radius:14px!important;
  padding:12px 14px!important;
  box-shadow:0 12px 32px rgba(0,0,0,.22)!important;
  font-size:13px!important;
  font-weight:900!important;
}

@media(max-width:760px){
  .det-oficina-editor-head,
  .det-oficina-editor-grid{
    grid-template-columns:1fr!important;
    display:grid!important;
  }
  .det-oficina-current{
    width:100%!important;
  }
  .det-oficina-btn{
    width:100%!important;
  }
}


/* PATCH_MODAL_OFICINA_NAO_QUEBRAR_VISUAL */

.det-oficina-editor{
  grid-column:1 / -1!important;
  width:100%!important;
  margin:12px 0 14px!important;
  padding:14px!important;
  border:1px solid #d7e5de!important;
  border-radius:18px!important;
  background:#f8fbf9!important;
  box-shadow:0 8px 22px rgba(15,61,46,.08)!important;
  overflow:visible!important;
}

.det-oficina-editor.det-oficina-editor-fixed{
  display:block!important;
}

.det-oficina-editor-head{
  display:flex!important;
  justify-content:space-between!important;
  align-items:flex-start!important;
  gap:12px!important;
  margin-bottom:12px!important;
}

.det-oficina-editor-title{
  min-width:0!important;
  display:grid!important;
  gap:3px!important;
}

.det-oficina-editor-title strong{
  display:block!important;
  color:#0f3d2e!important;
  font-size:14px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  letter-spacing:.02em!important;
}

.det-oficina-editor-title small{
  display:block!important;
  color:#64766e!important;
  font-size:11px!important;
  font-weight:800!important;
  line-height:1.35!important;
}

.det-oficina-current{
  flex:0 0 180px!important;
  padding:8px 12px!important;
  border:1px solid #cfe0d8!important;
  border-radius:14px!important;
  background:#eef7f1!important;
  color:#0f3d2e!important;
  overflow:hidden!important;
}



.det-oficina-current b{
  display:block!important;
  color:#0f3d2e!important;
  font-size:13px!important;
  font-weight:1000!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

.det-oficina-editor-grid{
  display:grid!important;
  grid-template-columns:minmax(240px,1fr) auto auto!important;
  gap:10px!important;
  align-items:end!important;
}

.det-oficina-editor label{
  display:grid!important;
  gap:6px!important;
  margin:0!important;
  min-width:0!important;
}



.det-oficina-input{
  width:100%!important;
  height:44px!important;
  border:1px solid #cadbd3!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#0f2d22!important;
  padding:0 13px!important;
  font-weight:950!important;
  outline:0!important;
  min-width:0!important;
}



.det-oficina-btn{
  height:44px!important;
  border-radius:14px!important;
  border:1px solid #cddbd4!important;
  padding:0 14px!important;
  font-weight:1000!important;
  cursor:pointer!important;
  white-space:nowrap!important;
}

.det-oficina-btn.save{
  background:#0f3d2e!important;
  color:#fff!important;
  border-color:#0f3d2e!important;
}



.det-oficina-note{
  margin-top:8px!important;
  color:#64766e!important;
  font-size:10.5px!important;
  font-weight:800!important;
}

/* Remove quebra do patch anterior */
.info-card .det-oficina-editor,
.card .det-oficina-editor{
  display:none!important;
}

/* Cards vazios do modal ficam ocultos */
.det-empty-info-card{
  display:none!important;
}

/* Card de oficina antigo não ocupa espaço quando vazio */
.det-oficina-card-empty{
  display:none!important;
}

/* Card visual da frota com oficina abaixo do número */




@media(max-width:760px){
  .det-oficina-editor-head{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .det-oficina-current{
    width:100%!important;
    flex:auto!important;
  }
  .det-oficina-editor-grid{
    grid-template-columns:1fr!important;
  }
  .det-oficina-btn{
    width:100%!important;
  }
}


/* PATCH_DTF_CORES_AGUARD_RETIRADA_PREVENTIVA */
.patch-dtf-aguard-retirada,
.patch-dtf-aguard-retirada .fleet-card-number,
.patch-dtf-aguard-retirada .equip-number,
.patch-dtf-aguard-retirada .frota-number{
  background: linear-gradient(180deg, #dff3ff 0%, #bfe4ff 100%) !important;
  border-color: #8fc9ff !important;
  color: #0d4f85 !important;
  box-shadow: 0 2px 6px rgba(40,116,181,.14) !important;
}

.patch-dtf-preventiva,
.patch-dtf-preventiva .fleet-card-number,
.patch-dtf-preventiva .equip-number,
.patch-dtf-preventiva .frota-number{
  background: linear-gradient(180deg, #4b66d7 0%, #3854c6 100%) !important;
  border-color: #2d49bb !important;
  color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(34,62,151,.18) !important;
}

/* legenda do menu */
.det-status-legend .legend-aguard-retirada,
.legend-aguard-retirada,
[data-legend="aguard-retirada"],
[data-legend="aguardando-retirada"]{
  background: #eef8ff !important;
  border-color: #b7dcff !important;
  color: #0d4f85 !important;
}

.det-status-legend .legend-preventiva,
.legend-preventiva,
[data-legend="preventiva"]{
  background: #eef2ff !important;
  border-color: #c9d5ff !important;
  color: #2947b8 !important;
}


/* PATCH_DTF_CORES_CARDS_E_LEGENDAS_PADRAO */

/* ==============================
   CARDS — DETERMINAR TOTAL/FRENTE
   ============================== */

/* AGUARDANDO RETIRADA: azul claro */
.fleet-card.teal,
.fleet-card.aguardando-retirada,
.fleet-card[data-status*="AGUARD"],
.fleet-card[data-status*="RETIR"],
.det-fleet-card.teal,
.det-fleet-card.aguardando-retirada,
.determinar-card.teal,
.determinar-card.aguardando-retirada,
.patch-dtf-card-aguardando-retirada{
  background:linear-gradient(180deg,#dff4ff 0%,#b8e6ff 100%)!important;
  border-color:#8fd4f7!important;
  color:#064e68!important;
  box-shadow:0 8px 18px rgba(14,165,233,.16)!important;
}

/* PREVENTIVA: azul escuro */
.fleet-card.blue:not(.teal):not(.aguardando-retirada),
.fleet-card.preventiva:not(.teal):not(.aguardando-retirada),
.det-fleet-card.blue:not(.teal):not(.aguardando-retirada),
.determinar-card.blue:not(.teal):not(.aguardando-retirada),
.patch-dtf-card-preventiva{
  background:linear-gradient(180deg,#3156d4 0%,#2445b9 100%)!important;
  border-color:#1d3ea5!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(34,62,151,.20)!important;
}

.fleet-card.teal *,
.fleet-card.aguardando-retirada *,
.patch-dtf-card-aguardando-retirada *,
.fleet-card.blue:not(.teal):not(.aguardando-retirada) *,
.patch-dtf-card-preventiva *{
  color:inherit!important;
}

/* ==============================
   LEGENDAS — MENU E RELATÓRIO
   ============================== */

.status-legend,
.det-status-legend,
.report-legend-bar{
  gap:8px!important;
}

/* base dos itens */
.status-legend .legend-item,
.det-status-legend .legend-item,
.report-legend-bar .report-legend-item,
.report-legend-item{
  background:#fff!important;
  color:#18362b!important;
  border:1px solid #dfe8e3!important;
  box-shadow:0 3px 10px rgba(15,61,46,.05)!important;
  outline:0!important;
}

/* Verde — Liberado */
.status-legend .legend-item:has(.dot.green),
.det-status-legend .legend-item:has(.dot.green),
.report-legend-item:has(.report-legend-dot.green),
.report-legend-item:has(.dot.green),
.patch-legend-green{
  border-color:#bfe7ce!important;
  background:#f4fbf6!important;
}

/* Vermelho — Parado */
.status-legend .legend-item:has(.dot.red),
.det-status-legend .legend-item:has(.dot.red),
.report-legend-item:has(.report-legend-dot.red),
.report-legend-item:has(.dot.red),
.patch-legend-red{
  border-color:#f3c1bd!important;
  background:#fff6f5!important;
}

/* Laranja — Com O.S./Prod */
.status-legend .legend-item:has(.dot.orange),
.det-status-legend .legend-item:has(.dot.orange),
.report-legend-item:has(.report-legend-dot.orange),
.report-legend-item:has(.dot.orange),
.patch-legend-orange{
  border-color:#efcf9d!important;
  background:#fffaf2!important;
}

/* Azul escuro — Preventiva */
.status-legend .legend-item:has(.dot.blue),
.det-status-legend .legend-item:has(.dot.blue),
.report-legend-item:has(.report-legend-dot.blue),
.report-legend-item:has(.dot.blue),
.patch-legend-blue{
  border-color:#b9c8ff!important;
  background:#f3f6ff!important;
}

/* Pele — Oportunidade */
.status-legend .legend-item:has(.dot.opportunity),
.status-legend .legend-item:has(.dot.oportunidade),
.det-status-legend .legend-item:has(.dot.opportunity),
.det-status-legend .legend-item:has(.dot.oportunidade),
.report-legend-item:has(.report-legend-dot.opportunity),
.report-legend-item:has(.dot.opportunity),
.patch-legend-opportunity{
  border-color:#efc8b9!important;
  background:#fff7f3!important;
}

/* Roxo — Implemento quebrado */
.status-legend .legend-item:has(.dot.purple),
.det-status-legend .legend-item:has(.dot.purple),
.report-legend-item:has(.report-legend-dot.purple),
.report-legend-item:has(.dot.purple),
.patch-legend-purple{
  border-color:#d3c2ff!important;
  background:#f8f4ff!important;
}

/* Amarelo — Sem O.S. */
.status-legend .legend-item:has(.dot.yellow),
.det-status-legend .legend-item:has(.dot.yellow),
.report-legend-item:has(.report-legend-dot.yellow),
.report-legend-item:has(.dot.yellow),
.patch-legend-yellow{
  border-color:#ead889!important;
  background:#fffbea!important;
}

/* Cinza — Offline */
.status-legend .legend-item:has(.dot.gray),
.det-status-legend .legend-item:has(.dot.gray),
.report-legend-item:has(.report-legend-dot.gray),
.report-legend-item:has(.dot.gray),
.patch-legend-gray{
  border-color:#c9d2dc!important;
  background:#f6f8fa!important;
}

/* Azul claro — Aguardando retirada */
.status-legend .legend-item:has(.dot.teal),
.status-legend .legend-item:has(.dot.aguardando-retirada),
.det-status-legend .legend-item:has(.dot.teal),
.det-status-legend .legend-item:has(.dot.aguardando-retirada),
.report-legend-item:has(.report-legend-dot.teal),
.report-legend-item:has(.dot.teal),
.patch-legend-teal{
  border-color:#b7e4f8!important;
  background:#f1faff!important;
}

/* pontos das legendas */
.dot.green,.report-legend-dot.green{background:#2aa866!important;}
.dot.red,.report-legend-dot.red{background:#dc3333!important;}
.dot.orange,.report-legend-dot.orange{background:#e59a2f!important;}
.dot.blue,.report-legend-dot.blue{background:#3156d4!important;}
.dot.opportunity,.dot.oportunidade,.report-legend-dot.opportunity{background:#e8b8a7!important;}
.dot.purple,.report-legend-dot.purple{background:#7c3aed!important;}
.dot.yellow,.report-legend-dot.yellow{background:#e5b91d!important;}
.dot.gray,.report-legend-dot.gray{background:#718096!important;}
.dot.teal,.dot.aguardando-retirada,.report-legend-dot.teal{background:#8bd8f5!important;}


/* PATCH_DTF_CARD_AGUARD_RETIRADA_FORCE_INLINE */

/* Card AGUARDANDO RETIRADA no Determinar total/frente */
.dtf-aguard-retirada-card-force{
  background:linear-gradient(180deg,#dff4ff 0%,#b8e6ff 100%)!important;
  background-color:#dff4ff!important;
  color:#064e68!important;
  border-color:#8fd4f7!important;
  box-shadow:0 8px 18px rgba(14,165,233,.16)!important;
}

.dtf-aguard-retirada-card-force *,
.dtf-aguard-retirada-card-force small,
.dtf-aguard-retirada-card-force b,
.dtf-aguard-retirada-card-force span{
  color:#064e68!important;
}

.dtf-aguard-retirada-card-force::before,
.dtf-aguard-retirada-card-force::after{
  color:#064e68!important;
}

/* Preventiva continua distinta */
.dtf-preventiva-card-force{
  background:linear-gradient(180deg,#3156d4 0%,#2445b9 100%)!important;
  background-color:#3156d4!important;
  color:#fff!important;
  border-color:#1d3ea5!important;
}


/* PATCH_SEMAFORO_RESERVA_DEFINIR_INFLUENCIAR */

.influenciar-semaforo-on{
  background:#0f3d2e!important;
  color:#fff!important;
  border-color:#0f3d2e!important;
  box-shadow:0 8px 22px rgba(15,61,46,.18)!important;
}

.influenciar-semaforo-off{
  background:#fff!important;
  color:#0f3d2e!important;
  border-color:#d7e5de!important;
}


/* PATCH_GERAL_SEMAFORO_OFICINA_SALVAR_VISUAL */





.det-oficina-alocar-toolbar{
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:10px!important;
  margin:10px 0!important;
}

.det-oficina-open-btn{
  background:#fff!important;
  color:#0f3d2e!important;
  border:1px solid #cddbd4!important;
  border-radius:12px!important;
  padding:10px 14px!important;
  font-weight:1000!important;
  cursor:pointer!important;
}

.det-oficina-alocar-panel{
  display:none!important;
  margin:10px 0 14px!important;
  padding:14px!important;
  border:1px solid #d7e5de!important;
  border-radius:16px!important;
  background:#f8fbf9!important;
  box-shadow:0 8px 22px rgba(15,61,46,.08)!important;
}

.det-oficina-alocar-panel.open{
  display:block!important;
}

.det-oficina-alocar-head{
  display:grid!important;
  gap:3px!important;
  margin-bottom:10px!important;
}

.det-oficina-alocar-head strong{
  color:#0f3d2e!important;
  font-size:14px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}

.det-oficina-alocar-head small,
.det-oficina-alocar-note{
  color:#64766e!important;
  font-size:11px!important;
  font-weight:800!important;
}

.det-oficina-alocar-grid{
  display:grid!important;
  grid-template-columns:minmax(240px,1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
}

.det-oficina-alocar-input{
  width:100%!important;
  height:44px!important;
  border:1px solid #cadbd3!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#0f2d22!important;
  padding:0 13px!important;
  font-weight:950!important;
  outline:0!important;
}

.det-oficina-alocar-save{
  height:44px!important;
  border-radius:14px!important;
  border:1px solid #0f3d2e!important;
  background:#0f3d2e!important;
  color:#fff!important;
  padding:0 14px!important;
  font-weight:1000!important;
  cursor:pointer!important;
}

.det-oficina-alocar-note{
  margin-top:8px!important;
}

.pims-patch-toast{
  position:fixed!important;
  right:18px!important;
  bottom:18px!important;
  z-index:999999!important;
  background:#0f3d2e!important;
  color:#fff!important;
  border-radius:14px!important;
  padding:12px 14px!important;
  box-shadow:0 12px 32px rgba(0,0,0,.22)!important;
  font-size:13px!important;
  font-weight:900!important;
}

@media(max-width:760px){
  .det-oficina-alocar-grid{
    grid-template-columns:1fr!important;
  }
  .det-oficina-alocar-save,
  .det-oficina-open-btn{
    width:100%!important;
  }
}


/* PATCH_FINAL_PENDENCIAS_LEVE_SEM_TRAVAR */

/* Card aguardando retirada */




/* Botão influenciar estável */




/* Oficina apenas no modal Adicionar/alocar */



























/* PATCH_CORRECAO_DEFINITIVA_SEMAFORO_OFICINA_VISUAL */

/* Card AGUARDANDO RETIRADA — azul claro forçado */
.dtf-aguard-retirada-card-force,
.fleet-card.teal,
.fleet-card.aguardando-retirada{
  background:linear-gradient(180deg,#dff4ff 0%,#b8e6ff 100%)!important;
  background-color:#dff4ff!important;
  color:#064e68!important;
  border-color:#8fd4f7!important;
  box-shadow:0 8px 18px rgba(14,165,233,.16)!important;
}

.dtf-aguard-retirada-card-force *,
.fleet-card.teal *,
.fleet-card.aguardando-retirada *{
  color:#064e68!important;
}

/* Oportunidade — por CD_CLASMANU = 8 */
.dtf-oportunidade-card-force,
.fleet-card.opportunity,
.fleet-card.oportunidade{
  background:linear-gradient(180deg,#fff0e8 0%,#ffd8c9 100%)!important;
  color:#7a2d1f!important;
  border-color:#efb9a7!important;
}

/* Influenciar semáforo polido */




.influenciar-semaforo-on small,
.influenciar-semaforo-off small{
  opacity:.78!important;
  font-size:11px!important;
  margin-left:4px!important;
}

/* Determinar oficina apenas no modal Adicionar/alocar */



























/* AJUSTE_FINAL_CONSOLIDADO_PIMS_20260608 */
.fleet-card.teal,
.fleet-card.aguardando-retirada,
.fleet-card[class*="teal"]{
  background:linear-gradient(180deg,#dff4ff 0%,#b8e6ff 100%)!important;
  background-color:#dff4ff!important;
  color:#064e68!important;
  border-color:#8fd4f7!important;
  box-shadow:0 8px 18px rgba(14,165,233,.16)!important;
}
.fleet-card.teal *,
.fleet-card.aguardando-retirada *{color:#064e68!important;}
.fleet-card.blue:not(.teal):not(.aguardando-retirada){
  background:linear-gradient(180deg,#3156d4 0%,#2445b9 100%)!important;
  color:#fff!important;
  border-color:#1d3ea5!important;
}
.fleet-card.opportunity,
.fleet-card.oportunidade,
.badge.opportunity{
  background:#fff0e8!important;
  color:#7a2d1f!important;
  border:1px solid #efb9a7!important;
}
.badge.teal{background:#eef9ff!important;color:#07506b!important;border:1px solid #9bdcf7!important;}
.dot.teal,.report-legend-dot.teal{background:#8bd8f5!important;}
.det-toolbar .legend span,
.report-legend-item{
  background:#fff!important;
  border:1px solid #dfe8e3!important;
  box-shadow:0 3px 10px rgba(15,61,46,.05)!important;
}
.alocar-hard-oficina-panel{
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto;
  gap:10px;
  align-items:end;
  margin:10px 0 12px;
  padding:12px;
  border:1px solid #d7e5de;
  border-radius:16px;
  background:#f8fbf9;
}
.alocar-hard-oficina-panel.hidden{display:none!important;}
.alocar-hard-oficina-panel label{display:grid;gap:6px;margin:0;}
.alocar-hard-oficina-panel label span{font-size:11px;font-weight:1000;color:#52695f;text-transform:uppercase;}
.alocar-hard-oficina-panel input{height:42px;border:1px solid #cadbd3;border-radius:12px;padding:0 12px;font-weight:900;}
.alocar-hard-oficina-panel small{grid-column:1/-1;color:#64766e;font-size:11px;font-weight:800;}
#btnInfluenciarSemaforo.active,
#btnInfluenciarSemaforo[aria-pressed="true"]{background:#0f3d2e!important;color:#fff!important;border-color:#0f3d2e!important;}
#btnInfluenciarSemaforo:not(.active),
#btnInfluenciarSemaforo[aria-pressed="false"]{background:#fff!important;color:#0f3d2e!important;border-color:#d7e5de!important;}
@media(max-width:760px){.alocar-hard-oficina-panel{grid-template-columns:1fr}.alocar-hard-oficina-panel .btn{width:100%;}}


/* V110_CORRECAO_CONSOLIDADA — cores, legenda, oficina, visuais */
.fleet-card.aguardando-retirada,
.fleet-card.teal,
.fleet-card.dtf-aguard-retirada-card-force{
  background:linear-gradient(180deg,#dff4ff 0%,#b8e6ff 100%)!important;
  background-color:#dff4ff!important;
  color:#064e68!important;
  border-color:#8fd4f7!important;
  box-shadow:0 8px 18px rgba(14,165,233,.16)!important;
}
.fleet-card.aguardando-retirada *, .fleet-card.teal *{ color:#064e68!important; }
.fleet-card.opportunity,
.fleet-card.oportunidade,
.fleet-card.dtf-oportunidade-card-force{
  background:linear-gradient(180deg,#fff0e8 0%,#ffd8c9 100%)!important;
  color:#7a2d1f!important;
  border-color:#efb9a7!important;
}
.fleet-card.blue.preventiva,
.fleet-card.blue:not(.teal):not(.aguardando-retirada):not(.opportunity){
  background:linear-gradient(180deg,#3156d4 0%,#2445b9 100%)!important;
  color:#fff!important;
  border-color:#1d3ea5!important;
}
.legend span,
.report-legend-item{
  background:#fff!important;
  color:#18362b!important;
  border:1px solid #dfe8e3!important;
  box-shadow:0 3px 10px rgba(15,61,46,.05)!important;
  border-radius:999px!important;
}
.legend span:has(.dot.green), .report-legend-item:has(.green){background:#f4fbf6!important;border-color:#bfe7ce!important;}
.legend span:has(.dot.red), .report-legend-item:has(.red){background:#fff6f5!important;border-color:#f3c1bd!important;}
.legend span:has(.dot.orange), .report-legend-item:has(.orange){background:#fffaf2!important;border-color:#efcf9d!important;}
.legend span:has(.dot.blue), .report-legend-item:has(.blue){background:#f3f6ff!important;border-color:#b9c8ff!important;}
.legend span:has(.dot.opportunity), .report-legend-item:has(.opportunity){background:#fff7f3!important;border-color:#efc8b9!important;}
.legend span:has(.dot.purple), .report-legend-item:has(.purple){background:#f8f4ff!important;border-color:#d3c2ff!important;}
.legend span:has(.dot.yellow), .report-legend-item:has(.yellow){background:#fffbea!important;border-color:#ead889!important;}
.legend span:has(.dot.gray), .report-legend-item:has(.gray){background:#f6f8fa!important;border-color:#c9d2dc!important;}
.legend span:has(.dot.teal), .report-legend-item:has(.teal){background:#f1faff!important;border-color:#b7e4f8!important;}
.alocar-hard-oficina-panel{margin:10px 0 14px;padding:12px;border:1px solid #d7e5de;border-radius:16px;background:#f8fbf9;box-shadow:0 8px 22px rgba(15,61,46,.08);}

.alocar-hard-oficina-panel label{display:grid;gap:6px;margin-bottom:8px;}
.alocar-hard-oficina-panel input{height:42px;border:1px solid #cadbd3;border-radius:14px;padding:0 12px;font-weight:900;}
.visual-card small{display:block;margin:6px 0 10px;color:#64766e;font-weight:800;line-height:1.35;}


/* V115_RECUPERACAO_MODAL_ALOCAR_ESTAVEL
   Base v113: somente encurta botão I.S e corrige posicionamento visual do modal Adicionar/alocar. */
.det-toolbar{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  flex-wrap:nowrap!important;
  padding:10px 12px!important;
  overflow:visible!important;
}
.det-toolbar .legend{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  flex-wrap:nowrap!important;
  min-width:0!important;
  overflow:hidden!important;
}
.det-toolbar .legend span{
  white-space:nowrap!important;
  flex:0 0 auto!important;
  padding:6px 9px!important;
  font-size:11px!important;
}
.det-toolbar-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  flex:0 0 auto!important;
  flex-wrap:nowrap!important;
}
#btnInfluenciarSemaforo{
  min-width:84px!important;
  max-width:92px!important;
  width:92px!important;
  height:38px!important;
  padding:0 10px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  font-size:13px!important;
  border-radius:14px!important;
}
#btnDeterminarOficina{
  height:38px!important;
  padding:0 13px!important;
  white-space:nowrap!important;
  font-size:13px!important;
  border-radius:14px!important;
}
#btnAdicionarAlocar{
  height:40px!important;
  padding:0 14px!important;
  white-space:nowrap!important;
  font-size:14px!important;
  border-radius:14px!important;
}

/* Modal Adicionar/alocar — posicionamento isolado, sem tocar na regra de alocação. */
.alocar-hard-modal-wrap,
.alocar-hard-modal-wrap-v2{
  position:fixed!important;
  inset:0!important;
  z-index:2147483000!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100vw!important;
  height:100vh!important;
  padding:18px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.alocar-hard-backdrop{
  position:absolute!important;
  inset:0!important;
  background:rgba(4,22,15,.62)!important;
  backdrop-filter:blur(4px)!important;
  z-index:0!important;
}
.alocar-hard-modal,
.alocar-hard-modal-v2{
  position:relative!important;
  z-index:1!important;
  width:min(1120px,calc(100vw - 36px))!important;
  max-width:min(1120px,calc(100vw - 36px))!important;
  max-height:calc(100vh - 36px)!important;
  margin:0!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  border-radius:22px!important;
  background:#fff!important;
  color:#0f2d22!important;
  border:1px solid rgba(255,255,255,.55)!important;
  box-shadow:0 28px 80px rgba(0,0,0,.34)!important;
  box-sizing:border-box!important;
}
.alocar-hard-modal-v2 header,
.alocar-hard-modal header{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:14px!important;
  padding:18px 22px!important;
  background:#0f3d2e!important;
  color:#fff!important;
}
.alocar-hard-modal-v2 header h2,
.alocar-hard-modal header h2{
  margin:0!important;
  color:#fff!important;
  font-size:22px!important;
  line-height:1.05!important;
  font-weight:1000!important;
}
.alocar-hard-modal-v2 header p,
.alocar-hard-modal header p{
  margin:6px 0 0!important;
  color:rgba(255,255,255,.88)!important;
  max-width:760px!important;
  font-size:13px!important;
  line-height:1.28!important;
}
.alocar-hard-close{
  flex:0 0 auto!important;
  width:42px!important;
  height:42px!important;
  border-radius:14px!important;
  border:1px solid rgba(255,255,255,.35)!important;
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  font-size:24px!important;
  font-weight:900!important;
  cursor:pointer!important;
}
.alocar-hard-modal-v2 .alocar-hard-grid,
.alocar-hard-modal .alocar-hard-grid{
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  padding:16px 22px 10px!important;
  box-sizing:border-box!important;
}
.alocar-hard-grid label{
  display:grid!important;
  gap:6px!important;
  min-width:0!important;
  color:#0f3d2e!important;
  font-weight:1000!important;
  font-size:11px!important;
  text-transform:uppercase!important;
}
.alocar-hard-grid input,
.alocar-hard-grid textarea{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  border:1px solid #cddbd4!important;
  border-radius:13px!important;
  background:#fff!important;
  color:#0f2d22!important;
  padding:10px 12px!important;
  font-size:13px!important;
  font-weight:800!important;
  outline:0!important;
  text-transform:none!important;
}
.alocar-hard-grid textarea{
  min-height:40px!important;
  resize:vertical!important;
}
.alocar-hard-actions-top{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:0 22px 10px!important;
  margin:0!important;
  flex-wrap:wrap!important;
}
.alocar-hard-list,
.alocar-hard-list-v2{
  flex:1 1 auto!important;
  min-height:190px!important;
  max-height:none!important;
  overflow:auto!important;
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr))!important;
  gap:10px!important;
  margin:0 22px 12px!important;
  padding:12px!important;
  background:#f5faf8!important;
  border:1px solid #dbe8e2!important;
  border-radius:18px!important;
  box-sizing:border-box!important;
}
.alocar-hard-item,
.alocar-hard-item-v2{
  display:grid!important;
  grid-template-columns:20px minmax(84px,.55fr) minmax(130px,1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
  min-width:0!important;
  min-height:74px!important;
  padding:12px!important;
  background:#fff!important;
  border:1px solid rgba(15,61,46,.16)!important;
  border-radius:16px!important;
  box-shadow:0 4px 14px rgba(0,0,0,.035)!important;
  box-sizing:border-box!important;
}
.alocar-hard-item input[type="checkbox"]{
  width:16px!important;
  height:16px!important;
  accent-color:#0f3d2e!important;
}
.alocar-hard-frota-block,
.alocar-hard-origem-block{
  min-width:0!important;
}
.alocar-hard-frota-block strong{
  color:#0f3d2e!important;
  font-size:18px!important;
  font-weight:1000!important;
  line-height:1!important;
}
.alocar-hard-frota-block small,
.alocar-hard-origem-block small{
  display:block!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.alocar-hard-status{
  justify-self:end!important;
  max-width:120px!important;
  padding:5px 8px!important;
  border-radius:999px!important;
  background:#eef6f1!important;
  color:#0f3d2e!important;
  font-size:9px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.alocar-hard-modal footer,
.alocar-hard-modal-v2 footer{
  flex:0 0 auto!important;
  position:relative!important;
  left:auto!important;
  right:auto!important;
  bottom:auto!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:10px!important;
  padding:14px 22px!important;
  background:#fff!important;
  border-top:1px solid #e1ebe6!important;
  box-shadow:0 -8px 22px rgba(15,61,46,.06)!important;
  z-index:2!important;
}
.alocar-hard-modal footer .btn,
.alocar-hard-modal-v2 footer .btn{
  min-height:42px!important;
  border-radius:14px!important;
  padding:0 16px!important;
  font-weight:1000!important;
}
@media(max-width:980px){
  .det-toolbar{flex-wrap:wrap!important;}
  .det-toolbar .legend{flex-wrap:wrap!important;}
  .det-toolbar-actions{width:100%!important;justify-content:flex-end!important;}
  .alocar-hard-modal-v2 .alocar-hard-grid,
  .alocar-hard-modal .alocar-hard-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .alocar-hard-list,.alocar-hard-list-v2{grid-template-columns:1fr!important;}
}
@media(max-width:680px){
  .alocar-hard-modal-wrap,.alocar-hard-modal-wrap-v2{padding:8px!important;}
  .alocar-hard-modal,.alocar-hard-modal-v2{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px)!important;border-radius:18px!important;}
  .alocar-hard-modal-v2 header,.alocar-hard-modal header{padding:14px!important;}
  .alocar-hard-modal-v2 .alocar-hard-grid,.alocar-hard-modal .alocar-hard-grid{grid-template-columns:1fr!important;padding:12px!important;}
  .alocar-hard-actions-top{padding:0 12px 10px!important;}
  .alocar-hard-list,.alocar-hard-list-v2{margin:0 12px 10px!important;padding:10px!important;}
  .alocar-hard-item,.alocar-hard-item-v2{grid-template-columns:22px 1fr!important;}
  .alocar-hard-origem-block,.alocar-hard-status{grid-column:2!important;justify-self:stretch!important;}
  .alocar-hard-modal footer,.alocar-hard-modal-v2 footer{padding:12px!important;}
}

/* V116_AJUSTE_MODAL_ALOCAR_FILTROS_ORIGEM_TIPO
   Ajuste limitado ao modal Adicionar/alocar: filtros Frente origem + Tipo, cards compactos e sem quebra. */
.alocar-hard-modal-wrap,
.alocar-hard-modal-wrap-v2{
  position:fixed!important;
  inset:0!important;
  z-index:99999!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  overflow:hidden!important;
}
.alocar-hard-modal,
.alocar-hard-modal-v2{
  width:min(1180px,calc(100vw - 40px))!important;
  max-width:min(1180px,calc(100vw - 40px))!important;
  max-height:calc(100vh - 36px)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  border-radius:22px!important;
}
.alocar-hard-modal-v2 .alocar-hard-grid,
.alocar-hard-modal .alocar-hard-grid{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:12px!important;
  padding:16px 18px 10px!important;
  align-items:end!important;
}
.alocar-hard-grid label{
  min-width:0!important;
}
.alocar-hard-grid label span{
  display:block!important;
  margin-bottom:6px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.alocar-hard-grid input,
.alocar-hard-grid select,
.alocar-hard-grid textarea{
  width:100%!important;
  min-width:0!important;
  height:48px!important;
  border:1px solid #cddbd4!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#0b2f22!important;
  padding:0 12px!important;
  font-weight:900!important;
  outline:none!important;
  box-sizing:border-box!important;
}
.alocar-hard-grid textarea{
  padding-top:10px!important;
  resize:vertical!important;
  min-height:48px!important;
  max-height:86px!important;
}
.alocar-hard-actions-top{
  padding:0 18px 10px!important;
  margin:0!important;
}
.alocar-hard-list,
.alocar-hard-list-v2{
  margin:0 18px 12px!important;
  padding:10px!important;
  flex:1 1 auto!important;
  min-height:220px!important;
  max-height:none!important;
  overflow:auto!important;
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(330px,1fr))!important;
  gap:10px!important;
  align-content:start!important;
  background:#f7fbf9!important;
  border:1px solid #dbe8e2!important;
  border-radius:18px!important;
}
.alocar-hard-item,
.alocar-hard-item-v2{
  display:grid!important;
  grid-template-columns:24px minmax(70px,.62fr) minmax(120px,1fr) minmax(135px,1.1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
  min-width:0!important;
  min-height:78px!important;
  border:1px solid #d5e4dd!important;
  border-radius:16px!important;
  background:#fff!important;
  padding:12px!important;
  box-shadow:0 6px 16px rgba(15,61,46,.06)!important;
  overflow:hidden!important;
  position:relative!important;
}
.alocar-hard-item input[type="checkbox"],
.alocar-hard-item-v2 input[type="checkbox"]{
  position:static!important;
  opacity:1!important;
  width:18px!important;
  height:18px!important;
  margin:0!important;
  appearance:auto!important;
  justify-self:center!important;
}
.alocar-hard-checkmark{
  display:none!important;
}
.alocar-hard-frota-block,
.alocar-hard-tipo-block,
.alocar-hard-origem-block{
  display:grid!important;
  gap:3px!important;
  min-width:0!important;
  max-width:100%!important;
}
.alocar-hard-frota-block strong{
  color:#0f3d2e!important;
  font-size:18px!important;
  line-height:1!important;
  font-weight:1000!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.alocar-hard-frota-block small,
.alocar-hard-tipo-block small,
.alocar-hard-origem-block small,
.alocar-hard-origem-block em{
  color:#415950!important;
  font-size:10px!important;
  line-height:1.15!important;
  font-weight:900!important;
  font-style:normal!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.alocar-hard-tipo-block b,
.alocar-hard-origem-block b{
  color:#0f3d2e!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}
.alocar-hard-status{
  position:static!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  max-width:118px!important;
  min-width:0!important;
  color:#0f3d2e!important;
  background:#eef7f2!important;
  border:1px solid #d7e7df!important;
  border-radius:999px!important;
  padding:5px 8px!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  justify-self:end!important;
}
.alocar-hard-modal footer,
.alocar-hard-modal-v2 footer{
  flex:0 0 auto!important;
  border-top:1px solid #dbe8e2!important;
  background:#fff!important;
  padding:12px 18px!important;
  display:flex!important;
  justify-content:flex-end!important;
  gap:10px!important;
}
@media(max-width:1180px){
  .alocar-hard-modal-v2 .alocar-hard-grid,
  .alocar-hard-modal .alocar-hard-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
@media(max-width:760px){
  .alocar-hard-modal-wrap,.alocar-hard-modal-wrap-v2{padding:8px!important;align-items:stretch!important;}
  .alocar-hard-modal,.alocar-hard-modal-v2{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px)!important;border-radius:18px!important;}
  .alocar-hard-modal-v2 .alocar-hard-grid,
  .alocar-hard-modal .alocar-hard-grid{grid-template-columns:1fr!important;padding:12px!important;}
  .alocar-hard-actions-top{padding:0 12px 10px!important;}
  .alocar-hard-list,.alocar-hard-list-v2{margin:0 12px 10px!important;grid-template-columns:1fr!important;min-height:220px!important;}
  .alocar-hard-item,.alocar-hard-item-v2{grid-template-columns:24px minmax(0,1fr)!important;align-items:start!important;}
  .alocar-hard-frota-block,.alocar-hard-tipo-block,.alocar-hard-origem-block,.alocar-hard-status{grid-column:2!important;justify-self:stretch!important;max-width:100%!important;}
  .alocar-hard-status{justify-content:flex-start!important;}
  .alocar-hard-modal footer,.alocar-hard-modal-v2 footer{padding:12px!important;}
}

/* V117 — semáforo reserva + medidor LocalStorage */
.semaforo-head-actions{display:flex!important;align-items:center!important;gap:6px!important;justify-content:flex-end!important;}
.semaforo-reserva-toggle{height:24px!important;padding:0 8px!important;border-radius:999px!important;font-size:9px!important;font-weight:1000!important;white-space:nowrap!important;cursor:pointer!important;}
.sidebar-user-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;}
.storage-meter{width:auto!important;min-width:74px!important;height:28px!important;margin:0!important;padding:3px 7px!important;border-radius:12px!important;display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:5px!important;}
.storage-meter span{font-size:8px!important;font-weight:1000!important;text-transform:uppercase!important;line-height:1!important;}
.storage-meter b{font-size:11px!important;font-weight:1000!important;margin:0!important;line-height:1!important;}


/* PATCH_STORAGE_SIDEBAR_FONTE_CORRIGIDA_START */
/*
  Correção fina do STORAGE na sidebar recolhida.
  - Não força fonte minúscula nos filhos.
  - Esconde detalhes internos apenas no modo recolhido.
  - Mostra um rótulo limpo via ::after.
  - Mantém o botão clicável e no mesmo padrão do botão SAIR.
*/

body.sidebar-collapsed .storage-meter,
body.sidebar-collapsed .storage-meter-btn,
body.sidebar-collapsed .storage-widget,
body.sidebar-collapsed .storage-card,
body.sidebar-collapsed .localstorage-meter,
body.sidebar-collapsed #storageMeter,
body.sidebar-collapsed #storageMeterBtn,
body.sidebar-collapsed #localStorageMeter,
body.sidebar-collapsed [data-storage-meter],
body.menu-collapsed .storage-meter,
body.menu-collapsed .storage-meter-btn,
body.menu-collapsed .storage-widget,
body.menu-collapsed .storage-card,
body.menu-collapsed .localstorage-meter,
body.menu-collapsed #storageMeter,
body.menu-collapsed #storageMeterBtn,
body.menu-collapsed #localStorageMeter,
body.menu-collapsed [data-storage-meter],
.sidebar.collapsed .storage-meter,
.sidebar.collapsed .storage-meter-btn,
.sidebar.collapsed .storage-widget,
.sidebar.collapsed .storage-card,
.sidebar.collapsed .localstorage-meter,
.sidebar.collapsed #storageMeter,
.sidebar.collapsed #storageMeterBtn,
.sidebar.collapsed #localStorageMeter,
.sidebar.collapsed [data-storage-meter],
.sidebar.recolhida .storage-meter,
.sidebar.recolhida .storage-meter-btn,
.sidebar.recolhida .storage-widget,
.sidebar.recolhida .storage-card,
.sidebar.recolhida .localstorage-meter,
.sidebar.recolhida #storageMeter,
.sidebar.recolhida #storageMeterBtn,
.sidebar.recolhida #localStorageMeter,
.sidebar.recolhida [data-storage-meter],
.sidebar.is-collapsed .storage-meter,
.sidebar.is-collapsed .storage-meter-btn,
.sidebar.is-collapsed .storage-widget,
.sidebar.is-collapsed .storage-card,
.sidebar.is-collapsed .localstorage-meter,
.sidebar.is-collapsed #storageMeter,
.sidebar.is-collapsed #storageMeterBtn,
.sidebar.is-collapsed #localStorageMeter,
.sidebar.is-collapsed [data-storage-meter],
.app-sidebar.collapsed .storage-meter,
.app-sidebar.collapsed .storage-meter-btn,
.app-sidebar.collapsed .storage-widget,
.app-sidebar.collapsed .storage-card,
.app-sidebar.collapsed .localstorage-meter,
.app-sidebar.collapsed #storageMeter,
.app-sidebar.collapsed #storageMeterBtn,
.app-sidebar.collapsed #localStorageMeter,
.app-sidebar.collapsed [data-storage-meter],
.menu-lateral.collapsed .storage-meter,
.menu-lateral.collapsed .storage-meter-btn,
.menu-lateral.collapsed .storage-widget,
.menu-lateral.collapsed .storage-card,
.menu-lateral.collapsed .localstorage-meter,
.menu-lateral.collapsed #storageMeter,
.menu-lateral.collapsed #storageMeterBtn,
.menu-lateral.collapsed #localStorageMeter,
.menu-lateral.collapsed [data-storage-meter]{
  position:relative!important;
  width:54px!important;
  min-width:54px!important;
  max-width:54px!important;
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  margin:6px auto!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  border-radius:12px!important;
  box-sizing:border-box!important;
  text-align:center!important;
  cursor:pointer!important;
}

/* No menu recolhido, esconde textos internos quebrados e deixa o ::after controlar o rótulo */
body.sidebar-collapsed .storage-meter > *,
body.sidebar-collapsed .storage-meter-btn > *,
body.sidebar-collapsed .storage-widget > *,
body.sidebar-collapsed .storage-card > *,
body.sidebar-collapsed .localstorage-meter > *,
body.sidebar-collapsed #storageMeter > *,
body.sidebar-collapsed #storageMeterBtn > *,
body.sidebar-collapsed #localStorageMeter > *,
body.sidebar-collapsed [data-storage-meter] > *,
body.menu-collapsed .storage-meter > *,
body.menu-collapsed .storage-meter-btn > *,
body.menu-collapsed .storage-widget > *,
body.menu-collapsed .storage-card > *,
body.menu-collapsed .localstorage-meter > *,
body.menu-collapsed #storageMeter > *,
body.menu-collapsed #storageMeterBtn > *,
body.menu-collapsed #localStorageMeter > *,
body.menu-collapsed [data-storage-meter] > *,
.sidebar.collapsed .storage-meter > *,
.sidebar.collapsed .storage-meter-btn > *,
.sidebar.collapsed .storage-widget > *,
.sidebar.collapsed .storage-card > *,
.sidebar.collapsed .localstorage-meter > *,
.sidebar.collapsed #storageMeter > *,
.sidebar.collapsed #storageMeterBtn > *,
.sidebar.collapsed #localStorageMeter > *,
.sidebar.collapsed [data-storage-meter] > *,
.sidebar.recolhida .storage-meter > *,
.sidebar.recolhida .storage-meter-btn > *,
.sidebar.recolhida .storage-widget > *,
.sidebar.recolhida .storage-card > *,
.sidebar.recolhida .localstorage-meter > *,
.sidebar.recolhida #storageMeter > *,
.sidebar.recolhida #storageMeterBtn > *,
.sidebar.recolhida #localStorageMeter > *,
.sidebar.recolhida [data-storage-meter] > *,
.sidebar.is-collapsed .storage-meter > *,
.sidebar.is-collapsed .storage-meter-btn > *,
.sidebar.is-collapsed .storage-widget > *,
.sidebar.is-collapsed .storage-card > *,
.sidebar.is-collapsed .localstorage-meter > *,
.sidebar.is-collapsed #storageMeter > *,
.sidebar.is-collapsed #storageMeterBtn > *,
.sidebar.is-collapsed #localStorageMeter > *,
.sidebar.is-collapsed [data-storage-meter] > *,
.app-sidebar.collapsed .storage-meter > *,
.app-sidebar.collapsed .storage-meter-btn > *,
.app-sidebar.collapsed .storage-widget > *,
.app-sidebar.collapsed .storage-card > *,
.app-sidebar.collapsed .localstorage-meter > *,
.app-sidebar.collapsed #storageMeter > *,
.app-sidebar.collapsed #storageMeterBtn > *,
.app-sidebar.collapsed #localStorageMeter > *,
.app-sidebar.collapsed [data-storage-meter] > *,
.menu-lateral.collapsed .storage-meter > *,
.menu-lateral.collapsed .storage-meter-btn > *,
.menu-lateral.collapsed .storage-widget > *,
.menu-lateral.collapsed .storage-card > *,
.menu-lateral.collapsed .localstorage-meter > *,
.menu-lateral.collapsed #storageMeter > *,
.menu-lateral.collapsed #storageMeterBtn > *,
.menu-lateral.collapsed #localStorageMeter > *,
.menu-lateral.collapsed [data-storage-meter] > *{
  display:none!important;
}

/* Rótulo único, limpo e sem quebrar */
body.sidebar-collapsed .storage-meter::after,
body.sidebar-collapsed .storage-meter-btn::after,
body.sidebar-collapsed .storage-widget::after,
body.sidebar-collapsed .storage-card::after,
body.sidebar-collapsed .localstorage-meter::after,
body.sidebar-collapsed #storageMeter::after,
body.sidebar-collapsed #storageMeterBtn::after,
body.sidebar-collapsed #localStorageMeter::after,
body.sidebar-collapsed [data-storage-meter]::after,
body.menu-collapsed .storage-meter::after,
body.menu-collapsed .storage-meter-btn::after,
body.menu-collapsed .storage-widget::after,
body.menu-collapsed .storage-card::after,
body.menu-collapsed .localstorage-meter::after,
body.menu-collapsed #storageMeter::after,
body.menu-collapsed #storageMeterBtn::after,
body.menu-collapsed #localStorageMeter::after,
body.menu-collapsed [data-storage-meter]::after,
.sidebar.collapsed .storage-meter::after,
.sidebar.collapsed .storage-meter-btn::after,
.sidebar.collapsed .storage-widget::after,
.sidebar.collapsed .storage-card::after,
.sidebar.collapsed .localstorage-meter::after,
.sidebar.collapsed #storageMeter::after,
.sidebar.collapsed #storageMeterBtn::after,
.sidebar.collapsed #localStorageMeter::after,
.sidebar.collapsed [data-storage-meter]::after,
.sidebar.recolhida .storage-meter::after,
.sidebar.recolhida .storage-meter-btn::after,
.sidebar.recolhida .storage-widget::after,
.sidebar.recolhida .storage-card::after,
.sidebar.recolhida .localstorage-meter::after,
.sidebar.recolhida #storageMeter::after,
.sidebar.recolhida #storageMeterBtn::after,
.sidebar.recolhida #localStorageMeter::after,
.sidebar.recolhida [data-storage-meter]::after,
.sidebar.is-collapsed .storage-meter::after,
.sidebar.is-collapsed .storage-meter-btn::after,
.sidebar.is-collapsed .storage-widget::after,
.sidebar.is-collapsed .storage-card::after,
.sidebar.is-collapsed .localstorage-meter::after,
.sidebar.is-collapsed #storageMeter::after,
.sidebar.is-collapsed #storageMeterBtn::after,
.sidebar.is-collapsed #localStorageMeter::after,
.sidebar.is-collapsed [data-storage-meter]::after,
.app-sidebar.collapsed .storage-meter::after,
.app-sidebar.collapsed .storage-meter-btn::after,
.app-sidebar.collapsed .storage-widget::after,
.app-sidebar.collapsed .storage-card::after,
.app-sidebar.collapsed .localstorage-meter::after,
.app-sidebar.collapsed #storageMeter::after,
.app-sidebar.collapsed #storageMeterBtn::after,
.app-sidebar.collapsed #localStorageMeter::after,
.app-sidebar.collapsed [data-storage-meter]::after,
.menu-lateral.collapsed .storage-meter::after,
.menu-lateral.collapsed .storage-meter-btn::after,
.menu-lateral.collapsed .storage-widget::after,
.menu-lateral.collapsed .storage-card::after,
.menu-lateral.collapsed .localstorage-meter::after,
.menu-lateral.collapsed #storageMeter::after,
.menu-lateral.collapsed #storageMeterBtn::after,
.menu-lateral.collapsed #localStorageMeter::after,
.menu-lateral.collapsed [data-storage-meter]::after{
  content:"Storage"!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
  padding:0 3px!important;
  box-sizing:border-box!important;
  color:#eafff5!important;
  font-size:8px!important;
  line-height:1!important;
  font-weight:1000!important;
  letter-spacing:-.02em!important;
  text-transform:none!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-align:center!important;
  text-rendering:geometricPrecision!important;
  -webkit-font-smoothing:antialiased!important;
}

/* Garante que a sidebar recolhida não deixe o botão vazar */
.sidebar,
.app-sidebar,
.menu-lateral{
  overflow-x:hidden!important;
}
/* PATCH_STORAGE_SIDEBAR_FONTE_CORRIGIDA_END */


/* Storage v2 — LocalStorage leve + IndexedDB + JSON Node */
.storage-modal-v2 .storage-modal-summary-v2{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.storage-section-title{ margin:18px 0 8px; font-size:13px; color:#123d2d; font-weight:900; text-transform:uppercase; letter-spacing:.03em; }
@media (max-width: 820px){ .storage-modal-v2 .storage-modal-summary-v2{grid-template-columns:1fr;} }


/* PATCH_STATUS_SISTEMA_VISUAL_TRATATIVAS_V1 */
/* PATCH SIDEBAR COM USUARIO FIXO E AREA CENTRAL ROLAVEL */
@media(min-width:901px){
  #sidebarPrincipal.sidebar{height:100dvh!important;overflow:hidden!important;padding:10px!important;gap:8px!important;display:flex!important;flex-direction:column!important;}
  #sidebarPrincipal .brand{flex:0 0 auto!important;margin:0!important;gap:8px!important;min-height:52px!important;}
  #sidebarPrincipal .brand-logo{width:44px!important;height:44px!important;flex:0 0 44px!important;}
  #sidebarPrincipal .brand-logo img{max-width:36px!important;max-height:36px!important;}
  #sidebarPrincipal .brand strong{font-size:.93rem!important;line-height:1.05!important;}
  #sidebarPrincipal .brand span{font-size:.74rem!important;line-height:1.05!important;}
  #sidebarPrincipal .side-menu{flex:0 0 auto!important;gap:6px!important;margin:0!important;}
  #sidebarPrincipal .menu-item{padding:9px 10px!important;min-height:40px!important;border-radius:12px!important;font-size:.82rem!important;}
  #sidebarPrincipal .sidebar-box{padding:9px!important;border-radius:15px!important;flex:0 0 auto!important;}
  #sidebarPrincipal .refresh-box{max-height:122px!important;overflow:hidden!important;}
  #sidebarPrincipal .status-lines{font-size:.74rem!important;line-height:1.15!important;gap:2px!important;}
  #sidebarPrincipal .sidebar-refresh-btn{margin-top:7px!important;padding:8px!important;min-height:36px!important;}
  #sidebarPrincipal #sidebarSemaforo{flex:1 1 auto!important;min-height:168px!important;max-height:none!important;overflow:auto!important;scrollbar-width:thin!important;}
  #sidebarPrincipal .semaforo-sidebar-grid{gap:6px!important;}
  #sidebarPrincipal .semaforo-sidebar-card{min-height:34px!important;padding:7px 8px!important;border-radius:11px!important;}
  #sidebarPrincipal .semaforo-sidebar-card span{font-size:.72rem!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #sidebarPrincipal .semaforo-sidebar-card b{font-size:.9rem!important;}
  #sidebarPrincipal .sidebar-user{flex:0 0 auto!important;margin-top:0!important;padding:10px!important;border-radius:16px!important;position:sticky!important;bottom:0!important;background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.09))!important;backdrop-filter:blur(8px)!important;}
  #sidebarPrincipal .sidebar-user b{font-size:.9rem!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #sidebarPrincipal .sidebar-user button#btnSair{margin-top:7px!important;padding:8px!important;min-height:34px!important;}
  #sidebarPrincipal .storage-meter{width:auto!important;margin-top:0!important;min-width:78px!important;padding:7px 9px!important;}
}
@media(max-width:900px){
  #sidebarPrincipal.sidebar{overflow:auto!important;}
  #sidebarPrincipal .sidebar-user{margin-top:10px!important;position:relative!important;bottom:auto!important;}
}


/* PATCH_STATUS_SISTEMA_LOTE_TV_VISUAL — sidebar segura e responsiva */
@media (min-width: 901px){
  .sidebar{
    height:100vh!important;
    max-height:100vh!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    gap:8px!important;
    padding-bottom:10px!important;
  }
  .sidebar .brand{flex:0 0 auto!important;margin-bottom:2px!important;}
  .side-menu{
    flex:0 0 auto!important;
    max-height:36vh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding-right:2px!important;
  }
  .sidebar-box:not(.sidebar-user){
    flex:0 1 auto!important;
    max-height:30vh!important;
    overflow:auto!important;
    padding:9px!important;
    margin:0!important;
  }
  .sidebar-user{
    flex:0 0 auto!important;
    margin-top:auto!important;
    position:sticky!important;
    bottom:0!important;
    z-index:5!important;
    padding:10px!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .sidebar-user b{white-space:normal!important;line-height:1.2!important;}
  .side-menu button,.side-menu a,.side-menu .menu-btn{padding:9px 10px!important;min-height:38px!important;font-size:13px!important;}
  .sidebar-box label,.sidebar-box small,.sidebar-user small{font-size:10px!important;line-height:1.15!important;}
  .semaforo-sidebar-card,.side-alerta{padding:8px 10px!important;min-height:auto!important;}
}
@media (max-width: 900px){
  .sidebar{overflow:auto!important;max-height:100vh!important;}
  .sidebar-user{position:relative!important;margin-top:8px!important;}
}
html,body{max-width:100%;overflow-x:hidden;}
.sistema-page,.system-tab-panel,.system-section{max-width:100%;box-sizing:border-box;}




/* PATCH_STATUS_FIX_ID_LOGS_TOTEM_VISUAL — sidebar segura */
body{overflow-x:hidden!important;}
.app-shell,.layout,.main-layout{min-width:0!important;}
.sidebar,.app-sidebar,.side-menu,aside.sidebar{max-height:100vh!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;}
.sidebar nav,.app-sidebar nav,.side-menu nav,.sidebar .menu,.app-sidebar .menu,.side-menu .menu,.sidebar-scroll,.sidebar-content{min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:thin;}
.sidebar .user,.sidebar .user-box,.sidebar .usuario-logado,.sidebar .logged-user,.sidebar-user,.app-sidebar .user,.app-sidebar .usuario-logado{flex:0 0 auto!important;position:sticky!important;bottom:0!important;background:inherit!important;z-index:3!important;max-width:100%!important;overflow:hidden!important;}
.sidebar .user *,.sidebar .usuario-logado *,.sidebar-user *{min-width:0!important;white-space:normal!important;word-break:break-word!important;}
@media(max-width:900px){.sidebar,.app-sidebar,.side-menu,aside.sidebar{max-height:none!important}.sidebar .user,.sidebar .usuario-logado,.sidebar-user,.app-sidebar .user{position:relative!important}}

/* PATCH_SIDEBAR_RECOLHIDA_SEMAFORO_STORAGE_SAIR_START */
/*
  Sidebar recolhida premium e funcional.
  Escopo: somente layout/visual da sidebar. Não altera regras do semáforo.
*/
:root{
  --pims-sidebar-open:292px;
  --pims-sidebar-closed:78px;
}

.sidebar#sidebarPrincipal{
  display:flex!important;
  flex-direction:column!important;
  height:100dvh!important;
  max-height:100dvh!important;
  min-height:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}

.sidebar#sidebarPrincipal .side-menu{
  min-height:0!important;
}

.sidebar#sidebarPrincipal .sidebar-user{
  margin-top:auto!important;
  flex:0 0 auto!important;
}

.sidebar#sidebarPrincipal .semaforo-sidebar-box{
  min-height:0!important;
}

@media(min-width:901px){
  body:not(.sidebar-collapsed) .app{
    margin-left:var(--pims-sidebar-open)!important;
  }
  body.sidebar-collapsed .sidebar#sidebarPrincipal{
    width:var(--pims-sidebar-closed)!important;
    min-width:var(--pims-sidebar-closed)!important;
    max-width:var(--pims-sidebar-closed)!important;
    transform:none!important;
    pointer-events:auto!important;
    padding:10px 8px!important;
    gap:8px!important;
    align-items:center!important;
    overflow:hidden!important;
    box-shadow:12px 0 34px rgba(0,0,0,.18)!important;
  }
  body.sidebar-collapsed .app,
  body.sidebar-collapsed .main{
    margin-left:var(--pims-sidebar-closed)!important;
  }
  body.sidebar-collapsed .sidebar-handle{
    display:none!important;
  }
}

body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-toggle{
  position:static!important;
  order:0!important;
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  min-height:48px!important;
  flex:0 0 48px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0 auto 2px!important;
  border-radius:15px!important;
  font-size:22px!important;
  line-height:1!important;
  z-index:5!important;
}

body.sidebar-collapsed .sidebar#sidebarPrincipal .brand{
  width:100%!important;
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
  gap:0!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .brand > div:not(.brand-logo){
  display:none!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .brand-logo{
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  flex-basis:46px!important;
  border-radius:14px!important;
  margin:0 auto!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .brand-logo img{
  width:38px!important;
  max-height:38px!important;
}

body.sidebar-collapsed .sidebar#sidebarPrincipal .side-menu{
  width:100%!important;
  flex:0 0 auto!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:7px!important;
  padding:0!important;
  margin:2px 0!important;
  overflow:visible!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .side-menu .menu-item{
  width:52px!important;
  min-width:52px!important;
  max-width:52px!important;
  height:48px!important;
  min-height:48px!important;
  padding:0!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:14px!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-align:center!important;
  box-sizing:border-box!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .side-menu .menu-item .menu-label,
body.sidebar-collapsed .sidebar#sidebarPrincipal .side-menu .menu-item span:not(.menu-icon){
  display:none!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .side-menu .menu-item .menu-icon{
  display:flex!important;
  width:100%!important;
  height:100%!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  font-size:17px!important;
  line-height:1!important;
  flex:0 0 auto!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .side-menu .menu-item.active{
  background:#3867e8!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(56,103,232,.24)!important;
}

/* Oculta status PIMS no modo compacto para preservar a navegação e o rodapé. */
body.sidebar-collapsed .sidebar#sidebarPrincipal .pims-status-box,
body.sidebar-collapsed .sidebar#sidebarPrincipal .refresh-box.session-card{
  display:none!important;
}

/* Mini semáforo compacto — usa os mesmos botões e os mesmos números já calculados. */
body.sidebar-collapsed .sidebar#sidebarPrincipal #sidebarSemaforo{
  width:100%!important;
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:5px!important;
  padding:6px 0!important;
  margin:0!important;
  border:0!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.06)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)!important;
  overflow:hidden auto!important;
  scrollbar-width:none!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal #sidebarSemaforo::-webkit-scrollbar{display:none!important;}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-head{
  display:none!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-grid{
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:5px!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card{
  width:56px!important;
  min-width:56px!important;
  max-width:56px!important;
  min-height:30px!important;
  height:30px!important;
  padding:0 5px!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:12px 1fr!important;
  align-items:center!important;
  justify-items:center!important;
  gap:4px!important;
  border-radius:12px!important;
  overflow:hidden!important;
  cursor:pointer!important;
  box-shadow:none!important;
  border-width:1px!important;
  box-sizing:border-box!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card span{
  display:none!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card i{
  display:block!important;
  width:10px!important;
  height:10px!important;
  min-width:10px!important;
  min-height:10px!important;
  border-radius:50%!important;
  margin:0!important;
  box-shadow:0 0 0 2px rgba(255,255,255,.75)!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card b{
  display:block!important;
  width:auto!important;
  min-width:0!important;
  max-width:34px!important;
  margin:0!important;
  color:#0b251b!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:1000!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card.yellow i{background:#facc15!important;}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card.orange i{background:#fb923c!important;}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card.amber i{background:#f6c7b7!important;}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card.purple i{background:#8b5cf6!important;}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card.gray i{background:#94a3b8!important;}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card.teal i{background:#7dd3fc!important;}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card.blue i{background:#3b82f6!important;}
body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card.green i{background:#22c55e!important;}

/* Rodapé fixo/sempre acessível: Storage + Sair */
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user{
  width:100%!important;
  flex:0 0 auto!important;
  margin-top:auto!important;
  padding:6px 0 0!important;
  border:0!important;
  border-top:1px solid rgba(255,255,255,.12)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:7px!important;
  overflow:visible!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user small,
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user b,
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user .user-unit,
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user #usuarioLogado,
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user #usuarioUnidade{
  display:none!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user-head{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter,
body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter{
  position:relative!important;
  width:54px!important;
  min-width:54px!important;
  max-width:54px!important;
  height:36px!important;
  min-height:36px!important;
  max-height:36px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.10)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.25)!important;
  box-shadow:none!important;
  overflow:hidden!important;
  cursor:pointer!important;
  pointer-events:auto!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter > *,
body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter > *{
  display:none!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter::after,
body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter::after{
  content:"Storage"!important;
  display:block!important;
  width:100%!important;
  color:#ecfff6!important;
  font-size:8px!important;
  line-height:1!important;
  font-weight:1000!important;
  letter-spacing:-.02em!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
body.sidebar-collapsed .sidebar#sidebarPrincipal #btnSair{
  width:54px!important;
  min-width:54px!important;
  max-width:54px!important;
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
  border-radius:12px!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:1000!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-align:center!important;
  cursor:pointer!important;
  pointer-events:auto!important;
}

@media(max-height:760px) and (min-width:901px){
  body.sidebar-collapsed .sidebar#sidebarPrincipal{gap:6px!important;padding-top:7px!important;padding-bottom:7px!important;}
  body.sidebar-collapsed .sidebar#sidebarPrincipal .brand-logo{width:40px!important;height:40px!important;min-width:40px!important;flex-basis:40px!important;}
  body.sidebar-collapsed .sidebar#sidebarPrincipal .brand-logo img{width:32px!important;max-height:32px!important;}
  body.sidebar-collapsed .sidebar#sidebarPrincipal .side-menu{gap:5px!important;}
  body.sidebar-collapsed .sidebar#sidebarPrincipal .side-menu .menu-item{height:42px!important;min-height:42px!important;}
  body.sidebar-collapsed .sidebar#sidebarPrincipal .semaforo-sidebar-card{height:27px!important;min-height:27px!important;}
  body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter,
  body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter{height:32px!important;min-height:32px!important;}
  body.sidebar-collapsed .sidebar#sidebarPrincipal #btnSair{height:34px!important;min-height:34px!important;}
}

@media(max-width:900px){
  body.sidebar-collapsed .sidebar#sidebarPrincipal{
    transform:translateX(-110%)!important;
    width:min(326px,calc(100vw - 28px))!important;
    max-width:min(326px,calc(100vw - 28px))!important;
    pointer-events:none!important;
  }
  body.sidebar-collapsed .app,
  body.sidebar-collapsed .main{
    margin-left:0!important;
  }
}
/* PATCH_SIDEBAR_RECOLHIDA_SEMAFORO_STORAGE_SAIR_END */

/* PATCH_FIX_SAIR_STORAGE_RECOLHIDO_START */
/*
  Correção fina apenas do rodapé da sidebar recolhida.
  Problema corrigido:
  - Sair aparecendo duplicado por pseudo-elemento antigo.
  - Storage/Sair desalinhados ou com fonte quebrada no menu fechado.
*/
@media (min-width:901px){
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user{
    width:100%!important;
    margin-top:auto!important;
    padding:7px 0 4px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:7px!important;
    background:transparent!important;
    border:0!important;
    border-top:1px solid rgba(255,255,255,.12)!important;
    box-shadow:none!important;
    overflow:visible!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head{
    width:100%!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user small,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user b,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user .user-unit,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user #usuarioLogado,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user #usuarioUnidade{
    display:none!important;
  }

  /* STORAGE — um único rótulo, centralizado, sem quebrar fonte */
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter,
  body.sidebar-collapsed #sidebarPrincipal [data-storage-meter]{
    position:relative!important;
    width:54px!important;
    min-width:54px!important;
    max-width:54px!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    margin:0 auto!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:12px!important;
    border:1px solid rgba(255,255,255,.26)!important;
    background:rgba(255,255,255,.10)!important;
    color:#eafff5!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    cursor:pointer!important;
    pointer-events:auto!important;
    text-align:center!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > *,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter > *,
  body.sidebar-collapsed #sidebarPrincipal [data-storage-meter] > *{
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter::before,
  body.sidebar-collapsed #sidebarPrincipal [data-storage-meter]::before{
    content:none!important;
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter::after,
  body.sidebar-collapsed #sidebarPrincipal [data-storage-meter]::after{
    content:"Storage"!important;
    width:100%!important;
    height:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0 2px!important;
    margin:0!important;
    color:#eafff5!important;
    font-family:inherit!important;
    font-size:8.5px!important;
    line-height:1!important;
    font-weight:1000!important;
    letter-spacing:-.03em!important;
    text-transform:none!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-align:center!important;
    box-sizing:border-box!important;
    text-rendering:geometricPrecision!important;
    -webkit-font-smoothing:antialiased!important;
  }

  /* SAIR — remove pseudo-elemento antigo que duplicava o texto: SairSair */
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user button#btnSair::before,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user button#btnSair::after,
  body.sidebar-collapsed #sidebarPrincipal #btnSair::before,
  body.sidebar-collapsed #sidebarPrincipal #btnSair::after,
  body.sidebar-collapsed .sidebar-user button#btnSair::before,
  body.sidebar-collapsed .sidebar-user button#btnSair::after{
    content:none!important;
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair{
    width:54px!important;
    min-width:54px!important;
    max-width:54px!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    margin:0 auto!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:12px!important;
    border:1px solid rgba(255,255,255,.24)!important;
    background:#ffffff!important;
    color:#0f3d2e!important;
    box-shadow:none!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    font-family:inherit!important;
    font-size:10px!important;
    line-height:1!important;
    font-weight:1000!important;
    letter-spacing:-.03em!important;
    text-align:center!important;
    white-space:nowrap!important;
    text-transform:none!important;
    cursor:pointer!important;
    pointer-events:auto!important;
    text-rendering:geometricPrecision!important;
    -webkit-font-smoothing:antialiased!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair:hover,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter:hover,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter:hover,
  body.sidebar-collapsed #sidebarPrincipal [data-storage-meter]:hover{
    transform:translateY(-1px)!important;
    box-shadow:0 8px 18px rgba(0,0,0,.18)!important;
  }
}
/* PATCH_FIX_SAIR_STORAGE_RECOLHIDO_END */

/* PATCH_FIX_STORAGE_CENTRALIZADO_RECOLHIDO_START */
/*
  Ajuste fino do Storage na sidebar recolhida.
  Corrige o botão Storage ficando encostado/fora do centro da própria borda.
  Também elimina altura vazia no bloco do usuário quando a sidebar está recolhida.
*/
@media (min-width:901px){
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user,
  body.menu-collapsed #sidebarPrincipal .sidebar-user,
  #sidebarPrincipal.sidebar.collapsed .sidebar-user,
  #sidebarPrincipal.sidebar.recolhida .sidebar-user,
  #sidebarPrincipal.sidebar.is-collapsed .sidebar-user{
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    margin-top:auto!important;
    padding:6px 0 8px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    overflow:visible!important;
    box-sizing:border-box!important;
    background:transparent!important;
    border:0!important;
    border-top:1px solid rgba(255,255,255,.12)!important;
    box-shadow:none!important;
  }

  /* Evita aquele retângulo vazio grande acima do Storage no modo recolhido */
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head,
  body.menu-collapsed #sidebarPrincipal .sidebar-user-head,
  #sidebarPrincipal.sidebar.collapsed .sidebar-user-head,
  #sidebarPrincipal.sidebar.recolhida .sidebar-user-head,
  #sidebarPrincipal.sidebar.is-collapsed .sidebar-user-head{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:38px!important;
    margin:0 auto!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:0!important;
    overflow:visible!important;
    box-sizing:border-box!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
  }

  /* No cabeçalho do usuário recolhido, só o Storage deve aparecer */
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head > :not(.storage-meter):not(.storage-meter-btn):not(.storage-widget):not(.storage-card):not(.localstorage-meter):not(#storageMeter):not(#storageMeterBtn):not(#localStorageMeter):not([data-storage-meter]),
  body.menu-collapsed #sidebarPrincipal .sidebar-user-head > :not(.storage-meter):not(.storage-meter-btn):not(.storage-widget):not(.storage-card):not(.localstorage-meter):not(#storageMeter):not(#storageMeterBtn):not(#localStorageMeter):not([data-storage-meter]),
  #sidebarPrincipal.sidebar.collapsed .sidebar-user-head > :not(.storage-meter):not(.storage-meter-btn):not(.storage-widget):not(.storage-card):not(.localstorage-meter):not(#storageMeter):not(#storageMeterBtn):not(#localStorageMeter):not([data-storage-meter]),
  #sidebarPrincipal.sidebar.recolhida .sidebar-user-head > :not(.storage-meter):not(.storage-meter-btn):not(.storage-widget):not(.storage-card):not(.localstorage-meter):not(#storageMeter):not(#storageMeterBtn):not(#localStorageMeter):not([data-storage-meter]),
  #sidebarPrincipal.sidebar.is-collapsed .sidebar-user-head > :not(.storage-meter):not(.storage-meter-btn):not(.storage-widget):not(.storage-card):not(.localstorage-meter):not(#storageMeter):not(#storageMeterBtn):not(#localStorageMeter):not([data-storage-meter]){
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user small,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user b,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user .user-unit,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user #usuarioLogado,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user #usuarioUnidade,
  body.menu-collapsed #sidebarPrincipal .sidebar-user small,
  body.menu-collapsed #sidebarPrincipal .sidebar-user b,
  body.menu-collapsed #sidebarPrincipal .sidebar-user .user-unit,
  body.menu-collapsed #sidebarPrincipal .sidebar-user #usuarioLogado,
  body.menu-collapsed #sidebarPrincipal .sidebar-user #usuarioUnidade{
    display:none!important;
  }

  /* STORAGE centralizado: menor, sem encostar na borda e sem fonte quebrada */
  body.sidebar-collapsed #sidebarPrincipal .storage-meter,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter-btn,
  body.sidebar-collapsed #sidebarPrincipal .storage-widget,
  body.sidebar-collapsed #sidebarPrincipal .storage-card,
  body.sidebar-collapsed #sidebarPrincipal .localstorage-meter,
  body.sidebar-collapsed #sidebarPrincipal #storageMeter,
  body.sidebar-collapsed #sidebarPrincipal #storageMeterBtn,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
  body.sidebar-collapsed #sidebarPrincipal [data-storage-meter],
  body.menu-collapsed #sidebarPrincipal .storage-meter,
  body.menu-collapsed #sidebarPrincipal .storage-meter-btn,
  body.menu-collapsed #sidebarPrincipal .storage-widget,
  body.menu-collapsed #sidebarPrincipal .storage-card,
  body.menu-collapsed #sidebarPrincipal .localstorage-meter,
  body.menu-collapsed #sidebarPrincipal #storageMeter,
  body.menu-collapsed #sidebarPrincipal #storageMeterBtn,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter,
  body.menu-collapsed #sidebarPrincipal [data-storage-meter],
  #sidebarPrincipal.sidebar.collapsed .storage-meter,
  #sidebarPrincipal.sidebar.collapsed .storage-meter-btn,
  #sidebarPrincipal.sidebar.collapsed .storage-widget,
  #sidebarPrincipal.sidebar.collapsed .storage-card,
  #sidebarPrincipal.sidebar.collapsed .localstorage-meter,
  #sidebarPrincipal.sidebar.collapsed #storageMeter,
  #sidebarPrincipal.sidebar.collapsed #storageMeterBtn,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter,
  #sidebarPrincipal.sidebar.collapsed [data-storage-meter],
  #sidebarPrincipal.sidebar.recolhida .storage-meter,
  #sidebarPrincipal.sidebar.recolhida .storage-meter-btn,
  #sidebarPrincipal.sidebar.recolhida .storage-widget,
  #sidebarPrincipal.sidebar.recolhida .storage-card,
  #sidebarPrincipal.sidebar.recolhida .localstorage-meter,
  #sidebarPrincipal.sidebar.recolhida #storageMeter,
  #sidebarPrincipal.sidebar.recolhida #storageMeterBtn,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter,
  #sidebarPrincipal.sidebar.recolhida [data-storage-meter],
  #sidebarPrincipal.sidebar.is-collapsed .storage-meter,
  #sidebarPrincipal.sidebar.is-collapsed .storage-meter-btn,
  #sidebarPrincipal.sidebar.is-collapsed .storage-widget,
  #sidebarPrincipal.sidebar.is-collapsed .storage-card,
  #sidebarPrincipal.sidebar.is-collapsed .localstorage-meter,
  #sidebarPrincipal.sidebar.is-collapsed #storageMeter,
  #sidebarPrincipal.sidebar.is-collapsed #storageMeterBtn,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter,
  #sidebarPrincipal.sidebar.is-collapsed [data-storage-meter]{
    position:relative!important;
    inset:auto!important;
    width:48px!important;
    min-width:48px!important;
    max-width:48px!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    margin:0 auto 4px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:11px!important;
    border:1px solid rgba(255,255,255,.24)!important;
    background:rgba(255,255,255,.10)!important;
    color:#eafff5!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    line-height:1!important;
    text-align:center!important;
    white-space:nowrap!important;
    cursor:pointer!important;
    pointer-events:auto!important;
    transform:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .storage-meter > *,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter-btn > *,
  body.sidebar-collapsed #sidebarPrincipal .storage-widget > *,
  body.sidebar-collapsed #sidebarPrincipal .storage-card > *,
  body.sidebar-collapsed #sidebarPrincipal .localstorage-meter > *,
  body.sidebar-collapsed #sidebarPrincipal #storageMeter > *,
  body.sidebar-collapsed #sidebarPrincipal #storageMeterBtn > *,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > *,
  body.sidebar-collapsed #sidebarPrincipal [data-storage-meter] > *,
  body.menu-collapsed #sidebarPrincipal .storage-meter > *,
  body.menu-collapsed #sidebarPrincipal .storage-meter-btn > *,
  body.menu-collapsed #sidebarPrincipal .storage-widget > *,
  body.menu-collapsed #sidebarPrincipal .storage-card > *,
  body.menu-collapsed #sidebarPrincipal .localstorage-meter > *,
  body.menu-collapsed #sidebarPrincipal #storageMeter > *,
  body.menu-collapsed #sidebarPrincipal #storageMeterBtn > *,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter > *,
  body.menu-collapsed #sidebarPrincipal [data-storage-meter] > *{
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .storage-meter::before,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter-btn::before,
  body.sidebar-collapsed #sidebarPrincipal .storage-widget::before,
  body.sidebar-collapsed #sidebarPrincipal .storage-card::before,
  body.sidebar-collapsed #sidebarPrincipal .localstorage-meter::before,
  body.sidebar-collapsed #sidebarPrincipal #storageMeter::before,
  body.sidebar-collapsed #sidebarPrincipal #storageMeterBtn::before,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
  body.sidebar-collapsed #sidebarPrincipal [data-storage-meter]::before{
    content:none!important;
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .storage-meter::after,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter-btn::after,
  body.sidebar-collapsed #sidebarPrincipal .storage-widget::after,
  body.sidebar-collapsed #sidebarPrincipal .storage-card::after,
  body.sidebar-collapsed #sidebarPrincipal .localstorage-meter::after,
  body.sidebar-collapsed #sidebarPrincipal #storageMeter::after,
  body.sidebar-collapsed #sidebarPrincipal #storageMeterBtn::after,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after,
  body.sidebar-collapsed #sidebarPrincipal [data-storage-meter]::after,
  body.menu-collapsed #sidebarPrincipal .storage-meter::after,
  body.menu-collapsed #sidebarPrincipal .storage-meter-btn::after,
  body.menu-collapsed #sidebarPrincipal .storage-widget::after,
  body.menu-collapsed #sidebarPrincipal .storage-card::after,
  body.menu-collapsed #sidebarPrincipal .localstorage-meter::after,
  body.menu-collapsed #sidebarPrincipal #storageMeter::after,
  body.menu-collapsed #sidebarPrincipal #storageMeterBtn::after,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter::after,
  body.menu-collapsed #sidebarPrincipal [data-storage-meter]::after,
  #sidebarPrincipal.sidebar.collapsed .storage-meter::after,
  #sidebarPrincipal.sidebar.collapsed .storage-meter-btn::after,
  #sidebarPrincipal.sidebar.collapsed .storage-widget::after,
  #sidebarPrincipal.sidebar.collapsed .storage-card::after,
  #sidebarPrincipal.sidebar.collapsed .localstorage-meter::after,
  #sidebarPrincipal.sidebar.collapsed #storageMeter::after,
  #sidebarPrincipal.sidebar.collapsed #storageMeterBtn::after,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter::after,
  #sidebarPrincipal.sidebar.collapsed [data-storage-meter]::after,
  #sidebarPrincipal.sidebar.recolhida .storage-meter::after,
  #sidebarPrincipal.sidebar.recolhida .storage-meter-btn::after,
  #sidebarPrincipal.sidebar.recolhida .storage-widget::after,
  #sidebarPrincipal.sidebar.recolhida .storage-card::after,
  #sidebarPrincipal.sidebar.recolhida .localstorage-meter::after,
  #sidebarPrincipal.sidebar.recolhida #storageMeter::after,
  #sidebarPrincipal.sidebar.recolhida #storageMeterBtn::after,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter::after,
  #sidebarPrincipal.sidebar.recolhida [data-storage-meter]::after,
  #sidebarPrincipal.sidebar.is-collapsed .storage-meter::after,
  #sidebarPrincipal.sidebar.is-collapsed .storage-meter-btn::after,
  #sidebarPrincipal.sidebar.is-collapsed .storage-widget::after,
  #sidebarPrincipal.sidebar.is-collapsed .storage-card::after,
  #sidebarPrincipal.sidebar.is-collapsed .localstorage-meter::after,
  #sidebarPrincipal.sidebar.is-collapsed #storageMeter::after,
  #sidebarPrincipal.sidebar.is-collapsed #storageMeterBtn::after,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter::after,
  #sidebarPrincipal.sidebar.is-collapsed [data-storage-meter]::after{
    content:"Storage"!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    margin:0!important;
    color:#eafff5!important;
    font-family:inherit!important;
    font-size:7.4px!important;
    line-height:1!important;
    font-weight:1000!important;
    letter-spacing:-.04em!important;
    text-transform:none!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-align:center!important;
    transform:none!important;
    text-rendering:geometricPrecision!important;
    -webkit-font-smoothing:antialiased!important;
  }

  /* Mantém o Sair centralizado sem mexer no texto já corrigido */
  body.sidebar-collapsed #sidebarPrincipal #btnSair,
  body.menu-collapsed #sidebarPrincipal #btnSair,
  #sidebarPrincipal.sidebar.collapsed #btnSair,
  #sidebarPrincipal.sidebar.recolhida #btnSair,
  #sidebarPrincipal.sidebar.is-collapsed #btnSair{
    width:48px!important;
    min-width:48px!important;
    max-width:48px!important;
    margin:0 auto!important;
  }
}
/* PATCH_FIX_STORAGE_CENTRALIZADO_RECOLHIDO_END */

/* PATCH_FIX_STORAGE_CENTRO_DEFINITIVO_START */
/*
  Correção definitiva do botão Storage no menu lateral recolhido.
  Estratégia: o conteúdo interno antigo fica invisível somente no estado recolhido
  e o próprio botão desenha um rótulo centralizado via ::before.
*/
body.sidebar-collapsed #sidebarPrincipal,
body.sidebar-collapsed .sidebar#sidebarPrincipal {
  overflow-x: hidden !important;
}

body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter {
  position: relative !important;
  width: 52px !important;
  min-width: 52px !important;
  max-width: 52px !important;
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  margin: 0 auto 7px auto !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-align: center !important;
  line-height: 1 !important;
  font-size: 0 !important;
  letter-spacing: 0 !important;
  text-indent: 0 !important;
  transform: none !important;
  border-radius: 12px !important;
  cursor: pointer !important;
}

/* Garante que nenhum filho interno empurre o texto para a borda */
body.sidebar-collapsed #sidebarPrincipal #localStorageMeter *,
body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter * {
  position: static !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-align: center !important;
  line-height: 1 !important;
  font-size: 0 !important;
  letter-spacing: 0 !important;
  text-indent: 0 !important;
}

/* Rótulo final centralizado: evita fonte quebrada, duplicada ou colada na borda */
body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter::before {
  content: "Storage" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 2px !important;
  box-sizing: border-box !important;
  color: #ffffff !important;
  font-size: 7px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -0.15px !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: clip !important;
  pointer-events: none !important;
}

/* Mantém o botão Sair abaixo, centralizado, sem alterar o funcionamento */
body.sidebar-collapsed #sidebarPrincipal .logout,
body.sidebar-collapsed #sidebarPrincipal #btnLogout,
body.sidebar-collapsed #sidebarPrincipal .btn-logout,
body.sidebar-collapsed .sidebar#sidebarPrincipal .logout,
body.sidebar-collapsed .sidebar#sidebarPrincipal #btnLogout,
body.sidebar-collapsed .sidebar#sidebarPrincipal .btn-logout {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  justify-content: center !important;
  align-items: center !important;
}

/* Se o rodapé da sidebar existir, mantém os botões dentro do eixo central */
body.sidebar-collapsed #sidebarPrincipal .sidebar-footer,
body.sidebar-collapsed #sidebarPrincipal .sidebar-bottom,
body.sidebar-collapsed #sidebarPrincipal .sidebar-actions,
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-footer,
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-bottom,
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-actions {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 7px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}
/* PATCH_FIX_STORAGE_CENTRO_DEFINITIVO_END */

/* PATCH_FINAL_STORAGE_VISUAL_SEGURO_START */
/* Correção final do Storage sem JS e sem reescrever menu. */
#sidebarPrincipal #localStorageMeter,
#sidebarPrincipal .storage-meter {
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

#sidebarPrincipal #localStorageMeter > span,
#sidebarPrincipal #localStorageMeter > b,
#sidebarPrincipal .storage-meter > span,
#sidebarPrincipal .storage-meter > b {
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  line-height: 1 !important;
}

#sidebarPrincipal .sidebar-user-head {
  min-width: 0 !important;
}

@media (min-width: 901px) {
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user,
  body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user {
    width: 100% !important;
    min-height: 74px !important;
    height: auto !important;
    max-height: none !important;
    margin-top: auto !important;
    padding: 6px 0 8px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    border-top: 1px solid rgba(255,255,255,.12) !important;
    box-sizing: border-box !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head,
  body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user-head {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head > :not(#localStorageMeter):not(.storage-meter) {
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #usuarioLogado,
  body.sidebar-collapsed #sidebarPrincipal #usuarioUnidade,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user > small,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user > b,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user > span.user-unit {
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
  body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter,
  body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter {
    position: relative !important;
    inset: auto !important;
    width: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    margin: 0 auto 4px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    text-align: center !important;
    line-height: 1 !important;
    font-size: 0 !important;
    letter-spacing: 0 !important;
    text-indent: 0 !important;
    transform: none !important;
    border-radius: 11px !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    white-space: nowrap !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > *,
  body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter > *,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter > *,
  body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter > * {
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
  body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter::before,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter::before,
  body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter::before {
    content: "Storage" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 3 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    padding: 0 2px !important;
    box-sizing: border-box !important;
    color: #ffffff !important;
    font-size: 7px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: -0.15px !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    pointer-events: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after,
  body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter::after,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter::after,
  body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter::after {
    content: none !important;
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair,
  body.sidebar-collapsed .sidebar#sidebarPrincipal #btnSair {
    width: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    height: 34px !important;
    min-height: 34px !important;
    margin: 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 900px) {
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
  body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter,
  #sidebarPrincipal #localStorageMeter,
  #sidebarPrincipal .storage-meter {
    position: relative !important;
    width: auto !important;
    min-width: 62px !important;
    max-width: 86px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    padding: 4px 7px !important;
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 1px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-align: center !important;
    line-height: 1 !important;
    font-size: inherit !important;
    text-indent: 0 !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after,
  #sidebarPrincipal #localStorageMeter::before,
  #sidebarPrincipal #localStorageMeter::after {
    content: none !important;
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > *,
  #sidebarPrincipal #localStorageMeter > *,
  #sidebarPrincipal .storage-meter > * {
    display: block !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    line-height: 1 !important;
    text-align: center !important;
  }

  #sidebarPrincipal #localStorageMeter > span,
  #sidebarPrincipal .storage-meter > span {
    font-size: 8px !important;
    font-weight: 900 !important;
    letter-spacing: -0.25px !important;
  }

  #sidebarPrincipal #localStorageMeter > b,
  #sidebarPrincipal .storage-meter > b {
    font-size: 9px !important;
    font-weight: 1000 !important;
    letter-spacing: -0.2px !important;
  }
}
/* PATCH_FINAL_STORAGE_VISUAL_SEGURO_END */

/* PATCH_FINAL_STORAGE_FECHADO_SEGURO_START */
/* Correção definitiva do Storage no menu fechado/recolhido. */
@media (min-width:901px){
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user *{
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter.storage-meter,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter{
    position:relative!important;
    width:54px!important;
    min-width:54px!important;
    max-width:54px!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    padding:0!important;
    margin:0 auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:12px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    text-align:center!important;
    white-space:nowrap!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    font-size:0!important;
    line-height:0!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > span,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > b,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > *{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    width:0!important;
    max-width:0!important;
    height:0!important;
    max-height:0!important;
    font-size:0!important;
    line-height:0!important;
    overflow:hidden!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after{
    content:none!important;
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before{
    content:"Storage"!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    height:100%!important;
    padding:0 2px!important;
    margin:0!important;
    box-sizing:border-box!important;
    color:#eafff5!important;
    font-family:Arial, Helvetica, sans-serif!important;
    font-size:6.4px!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:-.45px!important;
    text-transform:none!important;
    white-space:nowrap!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    overflow:hidden!important;
    text-align:center!important;
    transform:scaleX(.92)!important;
    transform-origin:center!important;
    -webkit-font-smoothing:antialiased!important;
    text-rendering:geometricPrecision!important;
  }
}
/* PATCH_FINAL_STORAGE_FECHADO_SEGURO_END */

/* PATCH_FINAL_STORAGE_RECOLHIDO_SEM_QUEBRA-INICIO */
body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
body.menu-collapsed #sidebarPrincipal #localStorageMeter,
#sidebarPrincipal.sidebar.collapsed #localStorageMeter,
#sidebarPrincipal.sidebar.recolhida #localStorageMeter,
#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter{
  width:46px!important;
  min-width:46px!important;
  max-width:46px!important;
  height:34px!important;
  min-height:34px!important;
  padding:2px!important;
  margin:0 auto!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1px!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  text-align:center!important;
  border-radius:12px!important;
}
body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > span,
body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > b,
body.menu-collapsed #sidebarPrincipal #localStorageMeter > span,
body.menu-collapsed #sidebarPrincipal #localStorageMeter > b,
#sidebarPrincipal.sidebar.collapsed #localStorageMeter > span,
#sidebarPrincipal.sidebar.collapsed #localStorageMeter > b,
#sidebarPrincipal.sidebar.recolhida #localStorageMeter > span,
#sidebarPrincipal.sidebar.recolhida #localStorageMeter > b,
#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter > span,
#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter > b{
  display:block!important;
  position:static!important;
  max-width:42px!important;
  width:auto!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  line-height:1!important;
  transform:none!important;
}
body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > span,
body.menu-collapsed #sidebarPrincipal #localStorageMeter > span,
#sidebarPrincipal.sidebar.collapsed #localStorageMeter > span,
#sidebarPrincipal.sidebar.recolhida #localStorageMeter > span,
#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter > span{
  font-size:5.8px!important;
  letter-spacing:-.45px!important;
  font-weight:1000!important;
  text-transform:none!important;
}
body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > b,
body.menu-collapsed #sidebarPrincipal #localStorageMeter > b,
#sidebarPrincipal.sidebar.collapsed #localStorageMeter > b,
#sidebarPrincipal.sidebar.recolhida #localStorageMeter > b,
#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter > b{
  font-size:7px!important;
  letter-spacing:-.25px!important;
  font-weight:1000!important;
}
body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after,
body.menu-collapsed #sidebarPrincipal #localStorageMeter::before,
body.menu-collapsed #sidebarPrincipal #localStorageMeter::after,
#sidebarPrincipal.sidebar.collapsed #localStorageMeter::before,
#sidebarPrincipal.sidebar.collapsed #localStorageMeter::after,
#sidebarPrincipal.sidebar.recolhida #localStorageMeter::before,
#sidebarPrincipal.sidebar.recolhida #localStorageMeter::after,
#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter::before,
#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter::after{
  content:none!important;
  display:none!important;
}
/* PATCH_FINAL_STORAGE_RECOLHIDO_SEM_QUEBRA-FIM */

/* PATCH_OFFLINE_MODAL_STORAGE_CSS_V4-INICIO */
/* Storage fechado: não quebrar fonte no menu recolhido */
#localStorageMeter.storage-meter,
.sidebar-collapsed #localStorageMeter,
body.sidebar-collapsed #localStorageMeter,
.app-collapsed #localStorageMeter {
  width:48px!important;
  min-width:48px!important;
  max-width:52px!important;
  min-height:42px!important;
  padding:3px 2px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1px!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  overflow:hidden!important;
  text-align:center!important;
  box-sizing:border-box!important;
}
#localStorageMeter.storage-meter span,
#localStorageMeter.storage-meter b {
  display:block!important;
  max-width:100%!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  line-height:1!important;
}
#localStorageMeter.storage-meter span { font-size:6px!important; font-weight:900!important; letter-spacing:-.45px!important; }
#localStorageMeter.storage-meter b { font-size:8px!important; font-weight:1000!important; letter-spacing:-.2px!important; }

/* Modal do semáforo/offline: proteção contra quebra visual */
.semaforo-cards-wrap{min-width:0!important;max-width:100%!important;overflow:auto!important;}
.semaforo-card,.semaforo-card *{box-sizing:border-box!important;}
.semaforo-card{min-width:0!important;max-width:100%!important;overflow:hidden!important;}
.semaforo-card-head,.semaforo-card-grid,.semaforo-field,.semaforo-acoes,.semaforo-row-actions{min-width:0!important;max-width:100%!important;}
.semaforo-card-title strong,.semaforo-card-title small,.semaforo-field strong,.semaforo-field small{word-break:normal!important;overflow-wrap:break-word!important;hyphens:none!important;}
.offline-status-select,[data-offline-status]{width:100%!important;max-width:100%!important;min-width:0!important;font-size:11px!important;line-height:1.15!important;font-weight:900!important;}
@media(max-width:620px){.semaforo-card-grid{grid-template-columns:1fr!important}.semaforo-field,.semaforo-field.wide,.semaforo-field.full{grid-column:1/-1!important}.semaforo-card-head{display:grid!important;grid-template-columns:1fr!important}.semaforo-card-head .badge{justify-self:start!important;max-width:100%!important}}
/* PATCH_OFFLINE_MODAL_STORAGE_CSS_V4-FIM */

/* PATCH_OFFLINE_SEM_MANUTENCAO_DEFINITIVO_CSS-INICIO */
.offline-modal-final{display:grid;gap:14px;min-width:0;max-width:100%;overflow:hidden;}
.offline-modal-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;}
.offline-modal-info div{background:#f8fcfa;border:1px solid #dfece5;border-radius:14px;padding:10px;min-width:0;overflow:hidden;}
.offline-modal-info span{display:block;font-size:10px;font-weight:1000;color:#60756b;text-transform:uppercase;line-height:1.15;}
.offline-modal-info strong{display:block;font-size:13px;font-weight:1000;color:#0f3d2e;line-height:1.18;white-space:normal;overflow-wrap:anywhere;word-break:normal;}
.offline-modal-field{min-width:0;max-width:100%;}
.offline-modal-field select,.offline-status-select{width:100%!important;max-width:100%!important;min-width:0!important;white-space:normal!important;text-overflow:ellipsis!important;overflow:hidden!important;}
.offline-modal-rules{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:8px 10px;background:#fff;border:1px solid #e5efe9;border-radius:14px;padding:12px;min-width:0;}
.offline-modal-rules b,.offline-modal-rules span{font-size:12px;line-height:1.2;min-width:0;overflow-wrap:anywhere;word-break:normal;}
.offline-modal-rules b{color:#0f3d2e;font-weight:1000;}
.offline-modal-rules span{color:#53695e;font-weight:800;}
.modal-root .modal-card,.modal-root .modal-content,.modal-root [role="dialog"]{max-width:min(96vw,980px);min-width:0;overflow:hidden;}
.modal-root .modal-body{min-width:0;overflow:auto;}
body.sidebar-collapsed #localStorageMeter.storage-meter{width:42px!important;min-width:42px!important;max-width:42px!important;height:42px!important;padding:3px 2px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:1px!important;overflow:hidden!important;}
body.sidebar-collapsed #localStorageMeter.storage-meter span,body.sidebar-collapsed #localStorageMeter.storage-meter b{display:block!important;max-width:100%!important;white-space:nowrap!important;word-break:normal!important;overflow:hidden!important;text-overflow:clip!important;line-height:1!important;}
body.sidebar-collapsed #localStorageMeter.storage-meter span{font-size:6px!important;letter-spacing:-.45px!important;font-weight:900!important;}
body.sidebar-collapsed #localStorageMeter.storage-meter b{font-size:8px!important;font-weight:1000!important;}
@media(max-width:560px){.offline-modal-info{grid-template-columns:1fr;}.offline-modal-rules{grid-template-columns:1fr;}.offline-modal-rules span{margin-top:-5px;}}
/* PATCH_OFFLINE_SEM_MANUTENCAO_DEFINITIVO_CSS-FIM */

/* PATCH_PIMS_V21_MENU_RECOLHIDO_START */
@media (min-width:901px){
  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo,
  #sidebarPrincipal.sidebar.collapsed #sidebarSemaforo,
  #sidebarPrincipal.sidebar.recolhida #sidebarSemaforo,
  #sidebarPrincipal.sidebar.is-collapsed #sidebarSemaforo{padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;min-height:0!important;max-height:none!important;overflow:hidden!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-head,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-head,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-head,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-head{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-grid,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-grid,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-grid,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-grid{display:flex!important;flex-direction:column!important;gap:5px!important;height:auto!important;overflow:hidden!important;align-items:center!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card{width:48px!important;height:23px!important;min-height:23px!important;max-height:23px!important;border-radius:9px!important;padding:0 5px!important;display:grid!important;grid-template-columns:10px 1fr!important;gap:3px!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card i{width:8px!important;height:8px!important;min-width:8px!important;margin:0!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card span{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card b{font-size:10px!important;line-height:1!important;min-width:0!important;text-align:center!important;white-space:nowrap!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter,
  #sidebarPrincipal.sidebar.collapsed .storage-meter,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter,
  #sidebarPrincipal.sidebar.recolhida .storage-meter,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter,
  #sidebarPrincipal.sidebar.is-collapsed .storage-meter{width:52px!important;min-width:52px!important;max-width:52px!important;height:24px!important;min-height:24px!important;max-height:24px!important;padding:2px 3px!important;display:grid!important;grid-template-columns:1fr auto!important;gap:2px!important;align-items:center!important;overflow:hidden!important;white-space:nowrap!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter span,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter span,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter span,
  #sidebarPrincipal.sidebar.collapsed .storage-meter span,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter span,
  #sidebarPrincipal.sidebar.recolhida .storage-meter span,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter span,
  #sidebarPrincipal.sidebar.is-collapsed .storage-meter span{font-size:0!important;line-height:1!important;max-width:none!important;overflow:visible!important;letter-spacing:0!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter span::after,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter span::after,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter span::after,
  #sidebarPrincipal.sidebar.collapsed .storage-meter span::after,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter span::after,
  #sidebarPrincipal.sidebar.recolhida .storage-meter span::after,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter span::after,
  #sidebarPrincipal.sidebar.is-collapsed .storage-meter span::after{content:"STG";font-size:6.5px!important;font-weight:1000!important;line-height:1!important;letter-spacing:-.2px!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter b,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter b,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter b,
  #sidebarPrincipal.sidebar.collapsed .storage-meter b,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter b,
  #sidebarPrincipal.sidebar.recolhida .storage-meter b,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter b,
  #sidebarPrincipal.sidebar.is-collapsed .storage-meter b{font-size:7px!important;line-height:1!important;white-space:nowrap!important;}
}
/* PATCH_PIMS_V21_MENU_RECOLHIDO_END */

/* PATCH_01_SIDEBAR_100_SEM_QUEBRA_START */
/* Ajuste final da sidebar em zoom 100%: todos os blocos cabem sem quebrar */
@media (min-width:901px){
  #sidebarPrincipal.sidebar{
    height:100dvh!important;max-height:100dvh!important;min-height:0!important;
    display:flex!important;flex-direction:column!important;gap:5px!important;padding:8px!important;
    overflow:hidden!important;overflow-x:hidden!important;overflow-y:hidden!important;
  }
  #sidebarPrincipal.sidebar *{box-sizing:border-box!important;}
  #sidebarPrincipal.sidebar::-webkit-scrollbar,#sidebarPrincipal.sidebar *::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;}

  #sidebarPrincipal .brand{flex:0 0 44px!important;height:44px!important;min-height:44px!important;max-height:44px!important;padding:0 39px 0 0!important;gap:7px!important;overflow:hidden!important;}
  #sidebarPrincipal .brand-logo{width:38px!important;height:38px!important;min-width:38px!important;flex:0 0 38px!important;border-radius:13px!important;}
  #sidebarPrincipal .brand-logo img{width:30px!important;max-width:30px!important;max-height:30px!important;}
  #sidebarPrincipal .brand strong{font-size:13px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #sidebarPrincipal .brand span{font-size:9.5px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #sidebarPrincipal .sidebar-toggle{top:13px!important;right:13px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;}

  #sidebarPrincipal .side-menu{flex:0 0 auto!important;display:flex!important;flex-direction:column!important;gap:3px!important;overflow:hidden!important;margin:0!important;padding:0!important;}
  #sidebarPrincipal .side-menu .menu-item{height:32px!important;min-height:32px!important;max-height:32px!important;flex:0 0 32px!important;padding:0 10px!important;border-radius:11px!important;gap:9px!important;overflow:hidden!important;}
  #sidebarPrincipal .side-menu .menu-icon{width:16px!important;min-width:16px!important;flex:0 0 16px!important;}
  #sidebarPrincipal .side-menu .menu-label{font-size:11.5px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}

  #sidebarPrincipal .refresh-box,#sidebarPrincipal .pims-status-box,#sidebarPrincipal .session-card{
    flex:0 0 96px!important;height:96px!important;min-height:96px!important;max-height:96px!important;
    padding:8px!important;border-radius:15px!important;overflow:hidden!important;margin:0!important;display:flex!important;flex-direction:column!important;
  }
  #sidebarPrincipal .status-head{height:19px!important;min-height:19px!important;max-height:19px!important;margin:0 0 5px 0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:6px!important;}
  #sidebarPrincipal .status-head small{font-size:9px!important;white-space:nowrap!important;line-height:1!important;}
  #sidebarPrincipal .status-pill{height:18px!important;min-height:18px!important;padding:2px 8px!important;font-size:8.5px!important;line-height:1!important;}
  #sidebarPrincipal .status-lines{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:2px 7px!important;margin:0!important;min-height:0!important;}
  #sidebarPrincipal .status-lines>*{font-size:9px!important;line-height:1.08!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;min-width:0!important;}
  #sidebarPrincipal .status-lines>:nth-child(2){text-align:right!important;}
  #sidebarPrincipal .status-lines>:nth-child(3),#sidebarPrincipal #statusPimsAtualizado{grid-column:1/-1!important;}
  #sidebarPrincipal .sidebar-refresh-btn{height:27px!important;min-height:27px!important;max-height:27px!important;margin:auto 0 0 0!important;border-radius:11px!important;font-size:10.5px!important;line-height:1!important;}

  #sidebarPrincipal #sidebarSemaforo,#sidebarPrincipal .semaforo-sidebar-box{
    flex:0 0 218px!important;height:218px!important;min-height:218px!important;max-height:218px!important;
    padding:7px!important;border-radius:15px!important;overflow:hidden!important;margin:0!important;display:flex!important;flex-direction:column!important;
  }
  #sidebarPrincipal .semaforo-sidebar-head{flex:0 0 22px!important;height:22px!important;min-height:22px!important;max-height:22px!important;margin:0 0 5px 0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:5px!important;overflow:hidden!important;}
  #sidebarPrincipal .semaforo-sidebar-head small{font-size:8.5px!important;line-height:1!important;white-space:nowrap!important;}
  #sidebarPrincipal .semaforo-head-actions{display:flex!important;align-items:center!important;gap:4px!important;min-width:0!important;overflow:hidden!important;}
  #sidebarPrincipal .semaforo-reserva-toggle,#sidebarPrincipal .semaforo-total-pill{height:18px!important;min-height:18px!important;max-height:18px!important;padding:0 6px!important;font-size:7.8px!important;border-radius:999px!important;line-height:1!important;white-space:nowrap!important;}
  #sidebarPrincipal .semaforo-sidebar-grid{flex:1 1 auto!important;display:grid!important;grid-template-rows:repeat(6,1fr)!important;gap:4px!important;min-height:0!important;overflow:hidden!important;}
  #sidebarPrincipal .semaforo-sidebar-card{min-height:0!important;height:auto!important;border-radius:10px!important;padding:0 7px!important;display:grid!important;grid-template-columns:10px minmax(0,1fr) auto!important;gap:5px!important;align-items:center!important;overflow:hidden!important;}
  #sidebarPrincipal .semaforo-sidebar-card i{width:8px!important;height:8px!important;min-width:8px!important;margin:0!important;}
  #sidebarPrincipal .semaforo-sidebar-card span{font-size:9.2px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;min-width:0!important;}
  #sidebarPrincipal .semaforo-sidebar-card b{font-size:11px!important;line-height:1!important;min-width:16px!important;text-align:right!important;}

  #sidebarPrincipal .sidebar-user{flex:0 0 100px!important;height:100px!important;min-height:100px!important;max-height:100px!important;margin-top:auto!important;padding:7px!important;border-radius:15px!important;gap:3px!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;}
  #sidebarPrincipal .sidebar-user-head{height:25px!important;min-height:25px!important;max-height:25px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:5px!important;overflow:hidden!important;}
  #sidebarPrincipal .sidebar-user-head small{font-size:8px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:calc(100% - 72px)!important;}
  #sidebarPrincipal #localStorageMeter,#sidebarPrincipal .storage-meter{width:68px!important;min-width:68px!important;max-width:68px!important;height:24px!important;min-height:24px!important;max-height:24px!important;padding:2px 6px!important;gap:3px!important;border-radius:999px!important;overflow:hidden!important;display:flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;}
  #sidebarPrincipal #localStorageMeter span,#sidebarPrincipal .storage-meter span{font-size:6.4px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;max-width:38px!important;}
  #sidebarPrincipal #localStorageMeter b,#sidebarPrincipal .storage-meter b{font-size:8px!important;line-height:1!important;white-space:nowrap!important;}
  #sidebarPrincipal #usuarioLogado{font-size:11px!important;line-height:13px!important;min-height:13px!important;max-height:13px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #sidebarPrincipal #usuarioUnidade{font-size:8.5px!important;line-height:11px!important;min-height:11px!important;max-height:11px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #sidebarPrincipal #btnSair{height:27px!important;min-height:27px!important;max-height:27px!important;margin:auto 0 0 0!important;border-radius:11px!important;font-size:10px!important;line-height:1!important;}

  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo,
  #sidebarPrincipal.sidebar.collapsed #sidebarSemaforo,
  #sidebarPrincipal.sidebar.recolhida #sidebarSemaforo,
  #sidebarPrincipal.sidebar.is-collapsed #sidebarSemaforo{height:auto!important;min-height:0!important;max-height:none!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;overflow:hidden!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-head,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-head,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-head,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-head{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-grid,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-grid,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-grid,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-grid{display:flex!important;flex-direction:column!important;align-items:center!important;gap:4px!important;height:auto!important;overflow:hidden!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card{width:44px!important;height:21px!important;min-height:21px!important;max-height:21px!important;border-radius:8px!important;padding:0 4px!important;grid-template-columns:9px 1fr!important;gap:2px!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card i{width:7px!important;height:7px!important;min-width:7px!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card span{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card b{font-size:9.5px!important;line-height:1!important;min-width:0!important;text-align:center!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter,
  #sidebarPrincipal.sidebar.collapsed .storage-meter,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter,
  #sidebarPrincipal.sidebar.recolhida .storage-meter,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter,
  #sidebarPrincipal.sidebar.is-collapsed .storage-meter{width:50px!important;min-width:50px!important;max-width:50px!important;height:24px!important;min-height:24px!important;max-height:24px!important;padding:2px 3px!important;display:grid!important;grid-template-columns:1fr auto!important;gap:2px!important;align-items:center!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter span,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter span,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter span,
  #sidebarPrincipal.sidebar.collapsed .storage-meter span,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter span,
  #sidebarPrincipal.sidebar.recolhida .storage-meter span,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter span,
  #sidebarPrincipal.sidebar.is-collapsed .storage-meter span{font-size:0!important;max-width:none!important;overflow:visible!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter span::after,
  body.sidebar-collapsed #sidebarPrincipal .storage-meter span::after,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter span::after,
  #sidebarPrincipal.sidebar.collapsed .storage-meter span::after,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter span::after,
  #sidebarPrincipal.sidebar.recolhida .storage-meter span::after,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter span::after,
  #sidebarPrincipal.sidebar.is-collapsed .storage-meter span::after{content:"STG";font-size:6.8px!important;font-weight:1000!important;line-height:1!important;letter-spacing:-.15px!important;}
}
@media (min-width:901px) and (max-height:720px){
  #sidebarPrincipal .brand span{display:none!important;}
  #sidebarPrincipal .side-menu .menu-item{height:29px!important;min-height:29px!important;max-height:29px!important;flex-basis:29px!important;}
  #sidebarPrincipal .refresh-box,#sidebarPrincipal .pims-status-box,#sidebarPrincipal .session-card{height:88px!important;min-height:88px!important;max-height:88px!important;}
  #sidebarPrincipal #sidebarSemaforo,#sidebarPrincipal .semaforo-sidebar-box{height:202px!important;min-height:202px!important;max-height:202px!important;}
  #sidebarPrincipal .sidebar-user{height:90px!important;min-height:90px!important;max-height:90px!important;}
}
/* PATCH_01_SIDEBAR_100_SEM_QUEBRA_END */

/* PATCH_REPARO_OFFLINE_ADERENCIA_CSS_START */
@media (min-width:901px){body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card,#sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card,#sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card,#sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card{width:46px!important;height:22px!important;min-height:22px!important;max-height:22px!important;padding:0 4px!important;gap:3px!important;grid-template-columns:10px 1fr!important;border-radius:9px!important}body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card i,#sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card i,#sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card i,#sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card i{width:8px!important;height:8px!important;min-width:8px!important}body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card b,#sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card b,#sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card b,#sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card b{font-size:10px!important;line-height:1!important;min-width:0!important;text-align:center!important}body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-grid,#sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-grid,#sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-grid,#sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-grid{gap:4px!important}body.sidebar-collapsed #sidebarPrincipal #localStorageMeter span,body.sidebar-collapsed #sidebarPrincipal .storage-meter span,#sidebarPrincipal.sidebar.collapsed #localStorageMeter span,#sidebarPrincipal.sidebar.collapsed .storage-meter span,#sidebarPrincipal.sidebar.recolhida #localStorageMeter span,#sidebarPrincipal.sidebar.recolhida .storage-meter span,#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter span,#sidebarPrincipal.sidebar.is-collapsed .storage-meter span{font-size:0!important;max-width:22px!important;letter-spacing:0!important}body.sidebar-collapsed #sidebarPrincipal #localStorageMeter span::before,body.sidebar-collapsed #sidebarPrincipal .storage-meter span::before,#sidebarPrincipal.sidebar.collapsed #localStorageMeter span::before,#sidebarPrincipal.sidebar.collapsed .storage-meter span::before,#sidebarPrincipal.sidebar.recolhida #localStorageMeter span::before,#sidebarPrincipal.sidebar.recolhida .storage-meter span::before,#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter span::before,#sidebarPrincipal.sidebar.is-collapsed .storage-meter span::before{content:"STG";font-size:6px!important;font-weight:900!important;line-height:1!important}.aderencia-criterio{min-width:260px!important;max-width:420px!important;white-space:normal!important;line-height:1.25!important;font-size:11px!important;color:#334155!important}}
/* PATCH_REPARO_OFFLINE_ADERENCIA_CSS_END */

/* PATCH_FINAL_RESTAURA_OFFLINE_ADERENCIA_CSS_START */
@media (min-width:901px){
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card,#sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card,#sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card,#sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card{width:44px!important;height:22px!important;min-height:22px!important;max-height:22px!important;padding:0 4px!important;gap:3px!important;grid-template-columns:9px 1fr!important;border-radius:9px!important;overflow:hidden!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card i,#sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card i,#sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card i,#sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card i{width:7px!important;height:7px!important;min-width:7px!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card b,#sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card b,#sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card b,#sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card b{font-size:10px!important;line-height:1!important;min-width:0!important;text-align:center!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-grid,#sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-grid,#sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-grid,#sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-grid{gap:4px!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,body.sidebar-collapsed #sidebarPrincipal .storage-meter,#sidebarPrincipal.sidebar.collapsed #localStorageMeter,#sidebarPrincipal.sidebar.collapsed .storage-meter,#sidebarPrincipal.sidebar.recolhida #localStorageMeter,#sidebarPrincipal.sidebar.recolhida .storage-meter,#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter,#sidebarPrincipal.sidebar.is-collapsed .storage-meter{width:48px!important;min-width:48px!important;max-width:48px!important;height:24px!important;min-height:24px!important;max-height:24px!important;display:flex!important;gap:2px!important;justify-content:center!important;align-items:center!important;white-space:nowrap!important;overflow:hidden!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter span,body.sidebar-collapsed #sidebarPrincipal .storage-meter span,#sidebarPrincipal.sidebar.collapsed #localStorageMeter span,#sidebarPrincipal.sidebar.collapsed .storage-meter span,#sidebarPrincipal.sidebar.recolhida #localStorageMeter span,#sidebarPrincipal.sidebar.recolhida .storage-meter span,#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter span,#sidebarPrincipal.sidebar.is-collapsed .storage-meter span{font-size:0!important;max-width:22px!important;letter-spacing:0!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter span::before,body.sidebar-collapsed #sidebarPrincipal .storage-meter span::before,#sidebarPrincipal.sidebar.collapsed #localStorageMeter span::before,#sidebarPrincipal.sidebar.collapsed .storage-meter span::before,#sidebarPrincipal.sidebar.recolhida #localStorageMeter span::before,#sidebarPrincipal.sidebar.recolhida .storage-meter span::before,#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter span::before,#sidebarPrincipal.sidebar.is-collapsed .storage-meter span::before{content:"STG";font-size:6px!important;font-weight:1000!important;line-height:1!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter b,body.sidebar-collapsed #sidebarPrincipal .storage-meter b,#sidebarPrincipal.sidebar.collapsed #localStorageMeter b,#sidebarPrincipal.sidebar.collapsed .storage-meter b,#sidebarPrincipal.sidebar.recolhida #localStorageMeter b,#sidebarPrincipal.sidebar.recolhida .storage-meter b,#sidebarPrincipal.sidebar.is-collapsed #localStorageMeter b,#sidebarPrincipal.sidebar.is-collapsed .storage-meter b{font-size:7px!important;font-weight:1000!important;}
}
.aderencia-criterio{min-width:260px!important;max-width:420px!important;white-space:normal!important;line-height:1.25!important;font-size:11px!important;color:#334155!important;}
.aderencia-criterio-text{display:block;white-space:normal!important;line-height:1.25!important;}
.aderencia-table-wrap{contain:layout paint;}
/* PATCH_FINAL_RESTAURA_OFFLINE_ADERENCIA_CSS_END */

/* PATCH_V129_DESEMPENHO_TOTEM_CORES_OFICINA:INICIO */
/* Semáforo lateral com a mesma paleta dos cartões do relatório. */
#sidebarPrincipal .semaforo-sidebar-card{
  background:#eef3f0!important;
  color:#123f31!important;
  border:1.5px solid #cbd5d1!important;
  box-shadow:0 2px 7px rgba(8,43,32,.08)!important;
  transition:transform .14s ease, box-shadow .14s ease, border-width .14s ease!important;
}
#sidebarPrincipal .semaforo-sidebar-card:hover,
#sidebarPrincipal .semaforo-sidebar-card:focus-visible{
  transform:translateY(-1px)!important;
  box-shadow:0 5px 12px rgba(8,43,32,.14)!important;
  filter:none!important;
}
#sidebarPrincipal .semaforo-sidebar-card.active,
#sidebarPrincipal .semaforo-sidebar-card.is-active,
#sidebarPrincipal .semaforo-sidebar-card[aria-pressed="true"]{
  border-width:2px!important;
  box-shadow:0 0 0 2px rgba(255,255,255,.18),0 5px 12px rgba(8,43,32,.15)!important;
}
#sidebarPrincipal .semaforo-sidebar-card span,
#sidebarPrincipal .semaforo-sidebar-card b{color:inherit!important;}
#sidebarPrincipal .semaforo-sidebar-card i{background:currentColor!important;box-shadow:none!important;}
#sidebarPrincipal .semaforo-sidebar-card.yellow{background:#fff8d8!important;color:#806000!important;border-color:#ead77b!important;}
#sidebarPrincipal .semaforo-sidebar-card.orange{background:#fff0db!important;color:#9a5600!important;border-color:#f1c98b!important;}
#sidebarPrincipal .semaforo-sidebar-card.amber{background:#fff4ef!important;color:#9a4428!important;border-color:#e6b7a8!important;}
#sidebarPrincipal .semaforo-sidebar-card.purple{background:#ede9fe!important;color:#5b21b6!important;border-color:#c4b5fd!important;}
#sidebarPrincipal .semaforo-sidebar-card.gray{background:#eef1ef!important;color:#5d6963!important;border-color:#cbd5d1!important;}
#sidebarPrincipal .semaforo-sidebar-card.teal{background:#eef9ff!important;color:#07506b!important;border-color:#9bdcf7!important;}
/* PATCH_V129_DESEMPENHO_TOTEM_CORES_OFICINA:FIM */


/* ===== public/css/shell.css ===== */
/* Camada de compatibilidade visual v60 para a arquitetura modular */
:root{
  --verde:#0f3d2e;
  --verde2:#14523e;
  --verde3:#eaf4ef;
  --brand:#0f3d2e;
  --brand-2:#14523e;
  --brand-soft:#eaf4ef;
  --surface:#ffffff;
  --surface-2:#f7faf8;
  --ink:#11261e;
  --muted:#66786e;
  --line:#dce6e1;
  --bg:#edf3f0;
  --shadow:0 18px 50px rgba(15,61,46,.13);
  --radius:22px;
  --sidebar:292px;
}
html,body{overflow-x:hidden!important;min-height:100vh;background:radial-gradient(circle at top left,rgba(20,82,62,.16),transparent 34%),linear-gradient(180deg,#f8faf9,#edf3f0)!important;color:var(--ink);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;}
.hidden{display:none!important}
.login-shell{position:fixed;inset:0;z-index:99;display:grid;grid-template-columns:1.05fr .95fr;padding:0;background:linear-gradient(135deg,#071d17,#14523e);align-items:stretch;justify-content:stretch;}
.login-shell:before{content:"";padding:56px;color:white;display:flex;background:radial-gradient(circle at 25% 15%,rgba(255,255,255,.18),transparent 28%);}
.login-shell .login-card{align-self:center;justify-self:center;width:min(470px,calc(100% - 52px));background:white;border-radius:32px;padding:38px;box-shadow:0 30px 90px rgba(0,0,0,.28);border:0;position:relative;}
.login-shell .brand-badge{width:96px;height:96px;border-radius:28px;background:#f5f8f6;color:var(--verde);display:grid;place-items:center;margin:0 auto 20px;font-weight:1000;box-shadow:none;}
.login-shell .login-card h1{text-align:center;font-size:34px;line-height:1.05;margin:0;color:var(--verde);font-weight:1000;}
.login-shell .login-card p{text-align:center;color:var(--muted);font-weight:800;margin:10px 0 24px;line-height:1.35;}
.login-form{display:grid;gap:14px;margin-top:18px}.login-hint{display:block;color:#7b8b84;font-weight:800;margin-top:16px;text-align:center;line-height:1.45}.field span{font-size:12px;font-weight:1000;color:#26493d;text-transform:uppercase;}
.field input,.field select{width:100%;height:54px;border:1px solid var(--line);border-radius:18px;padding:0 16px;font-weight:900;outline:none;background:#fff;color:var(--ink);}
.app-shell{display:grid;grid-template-columns:292px minmax(0,1fr);min-height:100vh;background:transparent;}
.app-shell .sidebar{position:fixed;inset:0 auto 0 0;width:292px;height:100vh;background:linear-gradient(180deg,#071d17,#0f3d2e 54%,#071d17);color:white;padding:22px;display:flex;flex-direction:column;gap:20px;overflow:auto;z-index:20;}
.side-logo{display:flex;flex-direction:column;gap:2px;padding:8px 6px 14px;border-bottom:1px solid rgba(255,255,255,.12)}.side-logo strong{font-size:26px;font-weight:1000;letter-spacing:.02em}.side-logo span{font-size:12px;color:#d6eee4;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.session-card{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.15);border-radius:18px;padding:15px;display:grid;gap:5px;font-size:12px;color:#cde5da;font-weight:850}.menu{display:grid;gap:9px}.menu-item{border:0;background:transparent;color:#e7f3ee;border-radius:16px;padding:14px;text-align:left;font-weight:950;cursor:pointer;transition:.16s}.menu-item:hover{background:rgba(255,255,255,.12)}.menu-item.active{background:#1769e8;color:white;box-shadow:0 10px 26px rgba(23,105,232,.25)}
.main{margin-left:292px;min-width:0;padding:28px;width:calc(100vw - 292px);}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;margin-bottom:18px}.topbar h2{margin:0;font-size:31px;font-weight:1000;color:#10271e}.topbar p{margin:5px 0 0;color:var(--muted);font-weight:750}.top-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.menu-host{min-height:360px}.menu-fragment{animation:fadeIn .12s ease}.loading{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin-bottom:18px;color:var(--brand);font-weight:900;box-shadow:var(--shadow)}.loading span{width:14px;height:14px;border-radius:50%;border:3px solid #c8ded5;border-top-color:var(--brand);animation:spin .8s linear infinite}.toast{position:fixed;right:18px;bottom:18px;background:var(--brand);color:#fff;padding:12px 14px;border-radius:14px;box-shadow:var(--shadow);z-index:1200;font-weight:800;max-width:min(360px,90vw)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{from{opacity:.7;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:900px){.login-shell{display:flex;align-items:center;justify-content:center;padding:18px}.login-shell:before{display:none}.app-shell{display:block}.app-shell .sidebar{position:relative;width:100%;height:auto;border-radius:0 0 24px 24px}.main{margin-left:0;width:100%;padding:14px}.topbar{display:block}.top-actions{justify-content:flex-start;margin-top:12px}.menu{grid-template-columns:repeat(2,1fr)}}

/* Sidebar minimizável — estilo leve preservado */
.sidebar-toggle{position:absolute;right:14px;top:14px;width:38px;height:38px;border-radius:13px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.10);color:#fff;font-weight:1000;cursor:pointer;display:grid;place-items:center;z-index:5}
.sidebar-toggle:hover{background:rgba(255,255,255,.18)}
body.sidebar-collapsed .app-shell{grid-template-columns:88px minmax(0,1fr)}
body.sidebar-collapsed .app-shell .sidebar{width:88px;padding:18px 12px;align-items:center;overflow:visible}
body.sidebar-collapsed .main{margin-left:88px;width:calc(100vw - 88px)}
body.sidebar-collapsed .brand{justify-content:center;gap:0}
body.sidebar-collapsed .brand > div:not(.brand-logo),
body.sidebar-collapsed .sidebar-box,
body.sidebar-collapsed .sidebar-user small,
body.sidebar-collapsed .sidebar-user b,
body.sidebar-collapsed .menu-item{font-size:0;color:transparent;text-align:center;padding-left:0;padding-right:0}
body.sidebar-collapsed .menu-item::first-letter{font-size:20px;color:#fff}
body.sidebar-collapsed .menu-item{width:58px;height:48px;display:grid;place-items:center;overflow:hidden}
body.sidebar-collapsed .sidebar-user button{width:58px;padding:10px 0;font-size:0}
body.sidebar-collapsed .sidebar-user button::after{content:"Sair";font-size:11px;color:inherit}
body.sidebar-collapsed .sidebar-toggle{right:50%;transform:translateX(50%)}
@media(max-width:900px){body.sidebar-collapsed .main{margin-left:0;width:100%}body.sidebar-collapsed .app-shell .sidebar{width:100%;align-items:stretch;overflow:auto}body.sidebar-collapsed .brand > div:not(.brand-logo),body.sidebar-collapsed .sidebar-box,body.sidebar-collapsed .sidebar-user small,body.sidebar-collapsed .sidebar-user b,body.sidebar-collapsed .menu-item{font-size:revert;color:revert;text-align:left}body.sidebar-collapsed .menu-item{width:auto;height:auto;display:block}body.sidebar-collapsed .sidebar-toggle{right:14px;transform:none}}


/* ===== public/css/components.css ===== */
/* Componentes visuais premium preservados do sistema aprovado */
.btn{border:0;border-radius:15px;padding:13px 18px;font-weight:1000;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:.16s;white-space:nowrap}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(15,61,46,.15)}.btn.primary{background:linear-gradient(135deg,var(--verde),var(--verde2));color:white;box-shadow:0 13px 26px rgba(15,61,46,.23)}.btn.ghost{background:white;color:var(--verde);border:1px solid var(--line)}.btn.warn{background:#fff7e0;color:#7b5200;border:1px solid #ead39a}.btn.danger{background:#fff0f0;color:#a60000;border:1px solid #f0b8b8}.btn.full{width:100%}.btn.small{padding:7px 10px;font-size:12px;border-radius:10px}
.panel,.filters,.filters-panel,.table-shell,.kpi,.drill-panel,.status-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:18px;margin-bottom:18px}.filters,.filters-panel{padding:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;align-items:end;margin-bottom:18px}.filters.compact{grid-template-columns:1.4fr repeat(auto-fit,minmax(145px,1fr))}.filters.no-scroll{overflow:visible;max-height:none}.field{display:flex;flex-direction:column;gap:7px}.field label,.field span,.filters label{display:block;font-size:12px;font-weight:1000;color:#26493d;text-transform:uppercase}.field input,.field select,.field textarea,.filters input,.filters select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:15px;padding:0 13px;font-weight:900;outline:none;background:#fff;color:var(--ink)}.field textarea{padding:12px;min-height:90px}.field input:focus,.field select:focus,.field textarea:focus,.filters input:focus,.filters select:focus{border-color:#91bcae;box-shadow:0 0 0 4px rgba(15,61,46,.08)}
.table-shell{width:100%;max-width:100%;overflow:auto}.data-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:auto;min-width:980px}.data-table th{position:sticky;top:0;background:var(--verde);color:#fff;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:11px 10px;z-index:2;white-space:nowrap;user-select:none}.data-table th.sortable{cursor:pointer}.data-table th.sortable::after{content:"↕";font-size:10px;margin-left:6px;opacity:.75}.data-table td{border-bottom:1px solid #edf2ef;padding:9px 10px;font-size:13px;vertical-align:middle;max-width:360px;overflow-wrap:anywhere}.data-table tr:hover td{background:#f9fcfa}.data-table .nowrap{white-space:nowrap}.resizer{display:inline-block;width:8px;height:18px;float:right;cursor:col-resize;margin-left:8px;border-right:2px solid rgba(255,255,255,.55)}
.badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:1000;white-space:nowrap}.badge.red{background:#ffe1e1;color:#9f1515}.badge.green{background:#ddfae8;color:#116b39}.badge.orange{background:#fff0db;color:#8a4b00}.badge.yellow{background:#fff8d8;color:#806000}.badge.blue{background:#e5efff;color:#1454a0}.badge.gray{background:#eef1ef;color:#59635f}
.modal-root{position:fixed;inset:0;background:rgba(4,19,13,.58);z-index:1000;display:flex;align-items:center;justify-content:center;padding:14px}.modal{width:min(1120px,96vw);max-height:94vh;overflow:auto;background:#fff;border-radius:24px;box-shadow:0 28px 70px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.4)}.modal.full{width:100vw;height:100vh;max-height:100vh;border-radius:0}.modal-header{position:sticky;top:0;background:linear-gradient(135deg,var(--verde),var(--verde2));color:#fff;padding:18px 20px;display:flex;justify-content:space-between;gap:12px;align-items:center;z-index:3}.modal-header h3{margin:0;font-size:18px}.modal-header p{margin:3px 0 0;color:#d8eee5;font-size:13px}.modal-body{padding:18px}.modal-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--line);background:#fbfdfc}.modal-close{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:12px;padding:8px 12px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.info-card{background:#f8fbf9;border:1px solid var(--line);border-radius:14px;padding:11px}.info-card span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.info-card strong{display:block;margin-top:4px;overflow-wrap:anywhere}
.report-view{background:#fff;color:#16231d;min-height:100vh;width:100%;padding:14px}.report-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:3px solid var(--verde);padding-bottom:10px;margin-bottom:10px}.report-head h2{margin:0;color:var(--verde)}.report-meta{font-size:12px;color:var(--muted);text-align:right}.report-section{margin:10px 0 14px}.report-section h3{margin:0 0 8px;color:var(--verde);font-size:16px}.report-table{width:100%;border-collapse:collapse;font-size:12px}.report-table th{background:var(--verde);color:#fff;text-align:left;padding:7px}.report-table td{border:1px solid #dfe8e3;padding:6px;vertical-align:top;overflow-wrap:anywhere}.report-table.compact{font-size:11px}.report-table.compact td{padding:5px}.report-actions{position:sticky;top:0;display:flex;gap:8px;justify-content:flex-end;background:#fff;padding:8px 0;z-index:3}
@media print{body{background:#fff}.sidebar,.topbar,.report-actions,.btn,.modal-header .modal-close{display:none!important}.modal-root{position:static;background:#fff;padding:0}.modal,.modal.full{width:100%!important;height:auto!important;max-height:none!important;box-shadow:none;border:0;border-radius:0}.main{padding:0!important;margin:0!important;width:100%!important}.report-view{padding:0!important}.report-table{font-size:10px}.report-table td,.report-table th{padding:4px}}
@media(max-width:900px){.filters,.filters.compact{grid-template-columns:1fr}.data-table{min-width:780px}.modal{width:98vw}.report-head{display:block}.report-meta{text-align:left;margin-top:8px}}


/* ===== public/menus/consultas-gerais/consultas.css ===== */
/* Consultas Gerais: filtros multi-seleção, tabela compacta e sem scroll lateral global */
.consultas-page{max-width:100%;min-width:0}
.consultas-page .table-shell{min-height:360px;overflow:auto;max-width:100%}
.consultas-filters{
  grid-template-columns:minmax(230px,1.15fr) repeat(6,minmax(135px,.72fr)) auto;
  gap:10px;
  align-items:end;
  overflow:visible;
  max-height:none;
}
.consultas-filters .busca-field{min-width:0;margin:0}
.consultas-filters .busca-field input{height:46px;min-height:46px}
.consultas-filter-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;white-space:nowrap}

.ms-filter{position:relative;min-width:0}
.ms-filter-label{display:block;font-size:12px;font-weight:1000;color:#26493d;text-transform:uppercase;margin-bottom:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms-filter-button{
  width:100%;min-height:46px;border:1px solid var(--line);border-radius:15px;background:#fff;color:var(--ink);
  padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;font-weight:950;line-height:1.15;text-align:left;
}
.ms-filter-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-filter-button small{color:var(--muted);font-weight:1000;flex:0 0 auto}
.ms-filter.open .ms-filter-button{border-color:#91bcae;box-shadow:0 0 0 4px rgba(15,61,46,.08)}
.ms-filter-panel{
  position:absolute;z-index:30;top:calc(100% + 8px);left:0;width:min(360px,92vw);max-height:310px;overflow:auto;
  background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 55px rgba(15,61,46,.18);padding:10px;display:none;
}
.ms-filter.open .ms-filter-panel{display:block}
.ms-filter-tools{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px;position:sticky;top:0;background:#fff;padding-bottom:6px;z-index:2}
.ms-filter-tools button{border:1px solid var(--line);background:#f8fbf9;color:var(--verde);border-radius:10px;padding:7px 8px;font-size:11px;font-weight:1000;cursor:pointer}
.ms-filter-list{display:grid;gap:5px}
.ms-option{display:flex;gap:8px;align-items:flex-start;padding:7px 8px;border-radius:10px;cursor:pointer;font-weight:850;color:#21372f;line-height:1.2}
.ms-option:hover{background:#f2f8f5}
.ms-option input{margin-top:1px;accent-color:var(--verde);flex:0 0 auto}
.ms-option span{overflow-wrap:anywhere}

.define-frente-btn{padding:6px 9px;border-radius:10px;border:1px solid #e4c98c;background:#fff8df;color:#6b4a00;font-weight:900;white-space:nowrap;max-width:100%}
.define-frente-btn:hover{background:#ffe9a8;box-shadow:0 8px 16px rgba(107,74,0,.14)}
.consultas-table{min-width:0!important;width:100%;table-layout:fixed}
.consultas-table th,.consultas-table td{font-size:12px;padding:8px 8px;vertical-align:top;overflow-wrap:anywhere;word-break:normal}
.consultas-table th{white-space:nowrap}
.consultas-table td.col-equip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.consultas-table td.col-status{white-space:nowrap}
.consultas-table small{color:var(--muted);font-weight:800}
.consultas-table .cell-main{font-weight:950;color:#10271e}
.consultas-table .cell-sub{display:block;margin-top:3px;color:#66786e;font-size:11px;font-weight:800;line-height:1.25}
.consultas-table .cell-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.28}

.report-view.consultas-report-fit{padding:10px!important}
.consultas-report-fit .report-table{font-size:11px;table-layout:fixed}
.consultas-report-fit .report-table th,.consultas-report-fit .report-table td{padding:5px 6px;overflow-wrap:anywhere}

@media(max-width:1280px){
  .consultas-filters{grid-template-columns:minmax(220px,1fr) repeat(3,minmax(150px,1fr));}
  .consultas-filter-actions{justify-content:flex-start}
}
@media(max-width:780px){
  .consultas-filters{grid-template-columns:1fr}.consultas-filter-actions{display:grid;grid-template-columns:1fr 1fr}.ms-filter-panel{position:fixed;left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:55vh}
}
@media print{
  .consultas-report-fit .report-table{font-size:9.5px}.consultas-report-fit .report-table th,.consultas-report-fit .report-table td{padding:3.5px 4px}
}


/* ===== public/menus/determinar-frente/determinar.css ===== */
.allocation-grid{display:grid;gap:14px}.process-block{background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px;box-shadow:0 12px 28px rgba(15,61,46,.07)}.process-head{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:9px;margin-bottom:10px}.process-head h3{margin:0;color:var(--brand)}.front-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.front-card{background:#f8fbf9;border:1px solid var(--line);border-radius:18px;padding:12px}.front-card h4{margin:0 0 4px;color:var(--brand)}.type-row{margin-top:10px}.type-title{font-size:12px;font-weight:950;color:#32433b;margin-bottom:6px;text-transform:uppercase}.fleet-list{display:flex;flex-wrap:wrap;gap:7px}.fleet-card{border:0;border-radius:12px;padding:8px 10px;min-width:64px;color:#fff;font-weight:950;white-space:nowrap;box-shadow:0 6px 15px rgba(0,0,0,.12)}.fleet-card.red{background:linear-gradient(135deg,#b82020,#d54444)}.fleet-card.green{background:linear-gradient(135deg,#147d46,#1aa35b)}.fleet-card.orange{background:linear-gradient(135deg,#ca6b00,#ee961e)}.fleet-card.yellow{background:linear-gradient(135deg,#b48900,#d9ad19);color:#2e2500}.fleet-card.blue{background:linear-gradient(135deg,#1c6fb8,#2d8ad6)}.fleet-card.gray{background:linear-gradient(135deg,#68736e,#8a9690)}.fleet-card .manual-tag{display:block;font-size:9px;opacity:.85;line-height:1}.empty-note{color:var(--muted);font-size:13px;background:#fff;border:1px dashed var(--line);border-radius:16px;padding:16px;text-align:center}
.toolbar-line{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px 16px;margin-bottom:14px;box-shadow:var(--shadow)}.legend{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;font-weight:1000;color:#26493d}.legend span{display:inline-flex;align-items:center;gap:6px;background:#f8fbf9;border:1px solid var(--line);border-radius:999px;padding:7px 10px}.dot{width:11px;height:11px;border-radius:50%;display:inline-block}.dot.red{background:#dc2626}.dot.green{background:#16a34a}.dot.blue{background:#2563eb}.dot.gray{background:#64748b}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.tab-btn{border:1px solid var(--line);background:#fff;color:var(--verde);border-radius:16px;padding:13px;font-weight:1000}.tab-btn.active{background:linear-gradient(135deg,var(--verde),var(--verde2));color:#fff}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.selection-list{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;max-height:300px;overflow:auto;padding:4px}.selection-item{display:flex;align-items:center;gap:9px;background:#f8fbf9;border:1px solid var(--line);border-radius:14px;padding:10px}.selection-item strong{white-space:nowrap}.selection-item small{color:var(--muted);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:700px){.form-grid,.tabs{grid-template-columns:1fr}.selection-list{grid-template-columns:1fr}}

/* V75 — Determinar total/frente no modelo visual por blocos */
.det-page{display:grid;gap:14px;min-width:0;max-width:100%}
.det-toolbar{margin-bottom:0}
.dot.orange{background:#f59e0b}.dot.yellow{background:#eab308}
.det-filters{grid-template-columns:minmax(220px,1.2fr) repeat(3,minmax(170px,.8fr));align-items:end;overflow:visible!important;max-width:100%}
.allocation-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.board-front-card{background:#fff;border:1px solid #c9d8d1;border-radius:16px;padding:0;overflow:hidden;box-shadow:0 12px 26px rgba(15,61,46,.08)}
.front-card-title{background:linear-gradient(135deg,#0f3d2e,#174f3d);color:#fff;text-align:center;padding:10px 12px;border-radius:15px 15px 0 0;display:grid;gap:2px;justify-items:center}
.front-card-title h4{margin:0!important;color:#fff!important;font-size:14px;font-weight:1000;text-transform:uppercase;letter-spacing:.01em;text-align:center;line-height:1.2}
.front-card-title small{color:#dceee6;font-size:11px;font-weight:900;text-transform:uppercase;text-align:center}
.board-type-row{display:grid;grid-template-columns:minmax(210px,.42fr) minmax(0,1fr);gap:0;border-top:1px solid #dce6e1;margin:0!important;min-height:34px;background:#fff}
.board-type-row:first-of-type{border-top:0}
.board-type-row .type-title{margin:0!important;padding:9px 10px;background:#123f31;color:#fff;font-size:11px;font-weight:1000;display:flex;align-items:center;text-transform:uppercase;line-height:1.15}
.board-fleet-list{padding:6px 8px;gap:6px;align-items:center;min-width:0;background:#fbfdfc}
.board-fleet-list .fleet-card{min-width:58px;padding:5px 8px;border-radius:7px;border:1px solid rgba(15,61,46,.16);font-size:11px;box-shadow:none;line-height:1.1;color:#123f31;background:#eef3f0;cursor:pointer}
.board-fleet-list .fleet-card.red{background:#ffe7e7!important;color:#9f1515!important;border-color:#f4b7b7!important}
.board-fleet-list .fleet-card.green{background:#e3f8eb!important;color:#0b6b37!important;border-color:#a9dfbf!important}
.board-fleet-list .fleet-card.orange{background:#fff0db!important;color:#9a5600!important;border-color:#f1c98b!important}
.board-fleet-list .fleet-card.yellow{background:#fff8d8!important;color:#806000!important;border-color:#ead77b!important}
.board-fleet-list .fleet-card.blue{background:#e7efff!important;color:#1959a6!important;border-color:#aac7f5!important}
.board-fleet-list .fleet-card.gray{background:#eef1ef!important;color:#5d6963!important;border-color:#cbd5d1!important}
.board-fleet-list .fleet-card:hover{transform:translateY(-1px);box-shadow:0 8px 14px rgba(15,61,46,.11)}
.manual-tag{font-size:8px!important;line-height:1!important;opacity:.88}
.paradas-filtro-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 28px rgba(15,61,46,.07);overflow:hidden}
.paradas-filtro-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 16px;background:#f7fbf9;border-bottom:1px solid var(--line)}
.paradas-filtro-head h3{margin:0;color:var(--brand);font-size:16px;font-weight:1000}
.paradas-filtro-head p{margin:3px 0 0;color:var(--muted);font-size:12px;font-weight:800}
.paradas-table-shell{max-width:100%;overflow:auto;max-height:44vh}
.det-paradas-table{width:100%;table-layout:fixed;min-width:980px}
.det-paradas-table th{background:#0f3d2e;color:#fff;font-size:11px;text-transform:uppercase;white-space:nowrap}
.det-paradas-table td{font-size:11px;vertical-align:top;overflow-wrap:anywhere;line-height:1.2}
.det-paradas-table b{display:block;color:#13251d;font-weight:1000}.det-paradas-table small{display:block;color:#60736a;font-weight:800;margin-top:2px}.empty-cell{text-align:center!important;padding:18px!important;color:#66786e;font-weight:900}
.lote-grid textarea{width:100%;border:1px solid var(--line);border-radius:17px;padding:12px 14px;font-weight:900;color:var(--ink);resize:none;outline:none;min-height:50px;font-family:inherit}
.lote-toolbar-line{box-shadow:none!important;margin:12px 0!important;padding:10px!important}.lote-selection-list{max-height:210px!important}
@media(max-width:1180px){.allocation-board{grid-template-columns:1fr}.det-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.board-type-row{grid-template-columns:minmax(170px,.38fr) minmax(0,1fr)}}
@media(max-width:720px){.det-filters{grid-template-columns:1fr}.board-type-row{grid-template-columns:1fr}.board-type-row .type-title{justify-content:center;text-align:center}.board-fleet-list{justify-content:center}.paradas-filtro-head{display:grid;text-align:center}.det-paradas-table{min-width:760px}.allocation-board{gap:10px}}


/* V84 — apenas um processo por linha no Determinar total/frente */
.allocation-board{grid-template-columns:1fr!important;align-items:start!important;}
.process-block{width:100%!important;}


/* V85 — mostrar todas as frotas e permitir tratamento individual */
.fleet-list{max-height:none!important;overflow:visible!important;}
.fleet-card{cursor:pointer;}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
.btn.danger{background:#b91c1c!important;color:#fff!important;border-color:#b91c1c!important;}
.btn.danger:hover{filter:brightness(.96);transform:translateY(-1px);}

/* V108 — modal Adicionar/alocar somente em lote */
.lote-unico{max-width:760px;margin:0 auto;}
.lote-unico .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
@media(max-width:720px){.lote-unico .form-grid{grid-template-columns:1fr;}}


/* PATCH — Determinar total/frente: oficina/local informativo V2 */
.fleet-card .oficina-tag{
  display:block!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0 0 3px!important;
  padding:2px 5px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.88)!important;
  color:#0f3d2e!important;
  font-size:8.5px!important;
  font-weight:1000!important;
  line-height:1!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.oficina-info-panel{
  display:grid!important;
  grid-template-columns:minmax(180px,.9fr) minmax(260px,1.2fr) auto!important;
  gap:10px!important;
  align-items:end!important;
  background:#f8fbf9!important;
  border:1px solid #dce8e2!important;
  border-radius:16px!important;
  padding:12px!important;
  margin:0 0 12px!important;
}
.oficina-info-current{
  min-width:0!important;
  display:grid!important;
  gap:3px!important;
}
.oficina-info-current span,
.oficina-info-field span{
  color:#63786e!important;
  font-size:10.5px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.oficina-info-current strong{
  color:#0f3d2e!important;
  font-size:16px!important;
  font-weight:1000!important;
  overflow-wrap:anywhere!important;
}
.oficina-info-current small{
  color:#687a72!important;
  font-size:11px!important;
  font-weight:800!important;
  line-height:1.2!important;
}
.oficina-info-field{
  margin:0!important;
  min-width:0!important;
}
.oficina-info-field input{
  width:100%!important;
  height:44px!important;
  border:1px solid #cadbd3!important;
  border-radius:13px!important;
  padding:0 12px!important;
  font-weight:900!important;
  color:#0f2d22!important;
  background:#fff!important;
}
.oficina-info-actions{
  display:flex!important;
  gap:7px!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-end!important;
}
.oficina-info-actions .btn{
  min-height:40px!important;
  white-space:nowrap!important;
}
@media(max-width:900px){
  .oficina-info-panel{
    grid-template-columns:1fr!important;
    align-items:stretch!important;
  }
  .oficina-info-actions{justify-content:flex-start!important;}
}


/* PATCH — Oficina nos campos Local/Processo */







/* PATCH — Semáforo global / Determinar / Disponibilidade 85 */













/* PATCH — Implemento global + Influenciar semáforo V2 */













/* PATCH — Semáforo Aguardando Retirada */








/* PATCH — Relatório/Determinar: liberado só com O.S. */




/* PATCH — Alocação lógica osList + semáforo */









/* PATCH — Alocação instância + relatório correto */



/* PATCH FINAL — Funcionalidades, oficina, semáforo e disponibilidade */




/* PATCH — Adicionar/alocar definitivo */





/* PATCH — Oficina visível nos relatórios */






/* PATCH — Relatório alocação topo unificado */




/* PATCH — Relatório oficina + implemento + sem O.S. */








/* PATCH — Salvar alocação quota + visual origem */






















/* PATCH — origem relatório + oficina card + status coerente */
















/* PATCH — Determinar modal premium + oportunidade pele */


































/* PATCH SEGURO — melhorias determinar/modal */































/* PATCH_CORES_PREVENTIVA_AGUARD_RETIRADA */
/* PREVENTIVA = azul escuro */





/* AGUARDANDO RETIRADA = azul claro */




/* OPORTUNIDADE permanece cor de pele */



/* Legenda do relatório, caso ainda não exista estilo carregado */






/* PATCH_DEFINITIVO_COR_AGUARD_RETIRADA */
/* PREVENTIVA: azul escuro */




/* AGUARDANDO RETIRADA: azul claro */




/* OPORTUNIDADE: pele */



/* Legenda */






/* PATCH_AJUSTE_APENAS_CORES_FORTES
   Ajusta SOMENTE as cores que estavam fortes demais:
   - Com O.S./Prod / orange
   - Aguardando Retirada / teal
   Não altera verde, vermelho, roxo, amarelo, cinza, preventiva ou oportunidade.
*/

/* COM O.S./PROD — laranja mais suave */




/* AGUARDANDO RETIRADA — azul claro mais suave */




/* Botão Atualizar PIMS no relatório */






/* PATCH_CORES_PREVENTIVA_AGUARD_RELATORIO_DETERMINAR
   Ajuste fino somente visual:
   - Relatório: preventiva no azul claro do chip 210315.
   - Determinar total/frente: preventiva azul escuro, aguardando retirada azul claro mais firme.
*/

/* =========================
   RELATÓRIO
   ========================= */

/* Preventiva no relatório = mesma identidade do chip 210315 da alocação */


/* Aguardando retirada no relatório mantém azul claro do badge */


/* Pontos da legenda permanecem distintos */



/* =========================
   DETERMINAR TOTAL/FRENTE
   ========================= */

/* No menu, preventiva pode ser azul escuro */


/* Garante leitura interna em card azul escuro */


/* No menu, aguardando retirada fica azul claro, porém um pouco mais firme */


/* Evita aguardando retirada herdar azul escuro */


/* Badges gerais: preventiva e aguardando retirada continuam separados */




/* PATCH_MODAL_OFICINA_FUNCIONAL_VISUAL */

/* Modal da frota mais organizado, sem alterar o modal global inteiro */




































/* Ajuste visual dos cards internos do modal, só quando o editor existir */











/* PATCH_MODAL_OFICINA_NAO_QUEBRAR_VISUAL */





































/* Remove quebra do patch anterior */


/* Cards vazios do modal ficam ocultos */


/* Card de oficina antigo não ocupa espaço quando vazio */


/* Card visual da frota com oficina abaixo do número */







/* PATCH_DTF_CORES_AGUARD_RETIRADA_PREVENTIVA */




/* legenda do menu */





/* PATCH_DTF_CORES_CARDS_E_LEGENDAS_PADRAO */

/* ==============================
   CARDS — DETERMINAR TOTAL/FRENTE
   ============================== */

/* AGUARDANDO RETIRADA: azul claro */


/* PREVENTIVA: azul escuro */




/* ==============================
   LEGENDAS — MENU E RELATÓRIO
   ============================== */



/* base dos itens */


/* Verde — Liberado */


/* Vermelho — Parado */


/* Laranja — Com O.S./Prod */


/* Azul escuro — Preventiva */


/* Pele — Oportunidade */


/* Roxo — Implemento quebrado */


/* Amarelo — Sem O.S. */


/* Cinza — Offline */


/* Azul claro — Aguardando retirada */


/* pontos das legendas */











/* PATCH_DTF_CARD_AGUARD_RETIRADA_FORCE_INLINE */

/* Card AGUARDANDO RETIRADA no Determinar total/frente */






/* Preventiva continua distinta */



/* PATCH_SEMAFORO_RESERVA_DEFINIR_INFLUENCIAR */






/* PATCH_GERAL_SEMAFORO_OFICINA_SALVAR_VISUAL */
































/* PATCH_FINAL_PENDENCIAS_LEVE_SEM_TRAVAR */

/* Card aguardando retirada */




/* Botão influenciar estável */




/* Oficina apenas no modal Adicionar/alocar */



























/* PATCH_CORRECAO_DEFINITIVA_SEMAFORO_OFICINA_VISUAL */

/* Card AGUARDANDO RETIRADA — azul claro forçado */




/* Oportunidade — por CD_CLASMANU = 8 */


/* Influenciar semáforo polido */






/* Determinar oficina apenas no modal Adicionar/alocar */



























/* V110_CORRECAO_CONSOLIDADA — cores, legenda, oficina, visuais */























/* V111_AJUSTES_FINAIS_CONSOLIDADOS */
.det-toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
#btnDeterminarOficina{font-weight:1000;border-color:#cddbd4;background:#fff;color:#0f3d2e;}
#btnDeterminarOficina:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,61,46,.10);}
.fleet-card.teal,.fleet-card.aguardando-retirada{background:linear-gradient(180deg,#dff4ff 0%,#b8e6ff 100%)!important;color:#064e68!important;border-color:#8fd4f7!important;box-shadow:0 8px 18px rgba(14,165,233,.16)!important;}
.fleet-card.teal *,.fleet-card.aguardando-retirada *{color:#064e68!important;}
.fleet-card.opportunity,.fleet-card.oportunidade{background:linear-gradient(180deg,#fff0e8 0%,#ffd8c9 100%)!important;color:#7a2d1f!important;border-color:#efb9a7!important;}
.dot.teal{background:#8bd8f5!important}.dot.opportunity{background:#e8b8a7!important}
.det-oficina-modal-v111{display:grid;gap:14px;min-width:min(720px,92vw);}
.det-oficina-grid-v111{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end;}
.det-oficina-grid-v111 .field{margin:0;}
.det-oficina-resumo-v111{background:#f8fbf9;border:1px solid #d7e5de;border-radius:14px;padding:12px;color:#53675d;font-weight:900;line-height:1.35;}
.alocar-hard-modal-v2{max-width:min(1080px,94vw)!important;}
.alocar-hard-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;}
.alocar-hard-actions-top{display:flex!important;gap:10px!important;align-items:center!important;flex-wrap:wrap!important;margin:12px 0!important;}
.alocar-hard-list-v2{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))!important;gap:8px!important;max-height:min(46vh,420px)!important;overflow:auto!important;padding:4px!important;}
.alocar-hard-item-v2{display:grid!important;grid-template-columns:auto 18px minmax(70px,.45fr) minmax(110px,1fr) auto!important;gap:8px!important;align-items:center!important;min-width:0!important;border:1px solid #d7e5de!important;border-radius:14px!important;background:#fff!important;padding:9px!important;}
.alocar-hard-frota-block,.alocar-hard-origem-block{display:grid!important;gap:2px!important;min-width:0!important;}
.alocar-hard-frota-block strong{color:#0f3d2e!important;font-size:16px!important;font-weight:1000!important;}
.alocar-hard-origem-block small,.alocar-hard-frota-block small{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#5f736a!important;font-weight:850!important;}
.alocar-hard-status{font-size:10px!important;font-weight:1000!important;color:#0f3d2e!important;background:#f3f8f5!important;border-radius:999px!important;padding:4px 7px!important;white-space:nowrap!important;}
.det-switch-flag.nao-gerar span{color:#b42318!important;}
.det-os-card:has([data-disp-nao-gerar]:checked){border-color:#f1b6ad!important;background:#fff8f6!important;}
.det-flag-save:disabled,.det-flag-controls select:disabled{opacity:.55!important;cursor:not-allowed!important;}
.visual-card small{display:none!important;}
@media(max-width:850px){.det-oficina-grid-v111,.alocar-hard-grid{grid-template-columns:1fr!important}.alocar-hard-item-v2{grid-template-columns:auto minmax(70px,.6fr) minmax(100px,1fr)!important}.alocar-hard-checkmark,.alocar-hard-status{display:none!important}}


/* V112 — barra legenda + ações em uma única linha no desktop */
.det-page .det-toolbar{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  flex-wrap:nowrap!important;
  overflow:visible!important;
}
.det-page .det-toolbar > .legend{
  flex:1 1 auto!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
.det-page .det-toolbar > .det-toolbar-actions{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  flex-wrap:nowrap!important;
  white-space:nowrap!important;
}
.det-page .det-toolbar > .det-toolbar-actions .btn{
  min-height:46px!important;
  white-space:nowrap!important;
  flex:0 0 auto!important;
}
@media(max-width:1280px){
  .det-page .det-toolbar{flex-wrap:wrap!important;}
  .det-page .det-toolbar > .legend{width:100%!important;}
  .det-page .det-toolbar > .det-toolbar-actions{width:100%!important;justify-content:flex-end!important;flex-wrap:wrap!important;}
}
@media(max-width:720px){
  .det-page .det-toolbar > .legend,
  .det-page .det-toolbar > .det-toolbar-actions{justify-content:center!important;}
  .det-page .det-toolbar > .det-toolbar-actions .btn{width:100%!important;}
}

/* V113 — ajustes finais: legenda em uma linha, botões compactos e modal oficina funcional */
.det-page .det-toolbar{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  flex-wrap:nowrap!important;
  gap:10px!important;
  padding:10px 12px!important;
  overflow:visible!important;
}
.det-page .det-toolbar > .legend{
  flex:1 1 auto!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
  gap:6px!important;
  overflow:visible!important;
}
.det-page .det-toolbar > .legend span{
  flex:0 0 auto!important;
  padding:5px 8px!important;
  min-height:30px!important;
  font-size:11px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.det-page .det-toolbar > .legend .dot{
  width:9px!important;
  height:9px!important;
  flex:0 0 9px!important;
}
.det-page .det-toolbar > .det-toolbar-actions{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  flex-wrap:nowrap!important;
  white-space:nowrap!important;
}
.det-page .det-toolbar > .det-toolbar-actions .btn,
#btnInfluenciarSemaforo,
#btnDeterminarOficina,
#btnAdicionarAlocar{
  min-height:38px!important;
  height:38px!important;
  padding:0 14px!important;
  border-radius:13px!important;
  font-size:14px!important;
  line-height:1!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
  flex:0 0 auto!important;
}
#btnInfluenciarSemaforo{min-width:205px!important;}
#btnDeterminarOficina{min-width:160px!important;}
#btnAdicionarAlocar{min-width:155px!important;}
.det-oficina-modal-v113{min-width:min(820px,92vw)!important;}
.det-oficina-grid-v113{grid-template-columns:minmax(180px,.8fr) minmax(260px,1.1fr) minmax(180px,.9fr)!important;align-items:end!important;}
.det-oficina-os-field-v113{display:grid!important;gap:7px!important;margin:0!important;}
.det-oficina-os-row-v113{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;align-items:center!important;}
.det-oficina-os-row-v113 select{min-width:0!important;width:100%!important;}
.det-oficina-os-row-v113 .btn{height:42px!important;min-height:42px!important;padding:0 12px!important;border-radius:13px!important;font-size:12px!important;}
@media(max-width:1450px){
  .det-page .det-toolbar{gap:8px!important;}
  .det-page .det-toolbar > .legend{gap:5px!important;}
  .det-page .det-toolbar > .legend span{font-size:10.5px!important;padding:5px 7px!important;}
  .det-page .det-toolbar > .det-toolbar-actions{gap:6px!important;}
  #btnInfluenciarSemaforo{min-width:190px!important;}
  #btnDeterminarOficina{min-width:145px!important;}
  #btnAdicionarAlocar{min-width:140px!important;}
  .det-page .det-toolbar > .det-toolbar-actions .btn{font-size:13px!important;padding:0 10px!important;}
}
@media(max-width:1180px){
  .det-page .det-toolbar{flex-wrap:wrap!important;}
  .det-page .det-toolbar > .legend{width:100%!important;overflow-x:auto!important;}
  .det-page .det-toolbar > .det-toolbar-actions{width:100%!important;justify-content:flex-end!important;flex-wrap:wrap!important;}
  .det-oficina-grid-v113{grid-template-columns:1fr!important;}
  .det-oficina-os-row-v113{grid-template-columns:1fr!important;}
}
@media(max-width:720px){
  .det-page .det-toolbar > .legend{justify-content:flex-start!important;}
  .det-page .det-toolbar > .det-toolbar-actions{justify-content:center!important;}
  .det-page .det-toolbar > .det-toolbar-actions .btn{width:100%!important;}
}


/* V115_RECUPERACAO_MODAL_ALOCAR_ESTAVEL
   Base v113: somente encurta botão I.S e corrige posicionamento visual do modal Adicionar/alocar. */








/* Modal Adicionar/alocar — posicionamento isolado, sem tocar na regra de alocação. */
























/* V116_AJUSTE_MODAL_ALOCAR_FILTROS_ORIGEM_TIPO
   Ajuste limitado ao modal Adicionar/alocar: filtros Frente origem + Tipo, cards compactos e sem quebra. */





















/* PATCH_MODAL_DETALHES_SETORIZADO_V1:INICIO */
.det-modal-setorizado{
  min-height:300px!important;
  gap:14px!important;
}
.det-modal-setorizado [hidden]{display:none!important;}
.det-modal-hub,
.det-modal-pane{
  width:100%!important;
  min-width:0!important;
}
.det-modal-hub.is-active,
.det-modal-pane.is-active{
  display:flex!important;
  flex-direction:column!important;
  gap:14px!important;
}
.det-modal-hub-intro{
  display:flex!important;
  flex-direction:column!important;
  gap:4px!important;
  padding:4px 2px 8px!important;
  text-align:center!important;
}
.det-modal-hub-intro strong{
  color:#0f3d2e!important;
  font-size:19px!important;
  font-weight:1000!important;
}
.det-modal-hub-intro span{
  color:#62736c!important;
  font-size:12px!important;
  font-weight:800!important;
}
.det-modal-hub-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
}
.det-modal-hub-card{
  min-width:0!important;
  min-height:150px!important;
  padding:20px 16px!important;
  border:1px solid rgba(15,61,46,.18)!important;
  border-radius:22px!important;
  background:linear-gradient(180deg,#fff 0%,#f4faf7 100%)!important;
  color:#0f3d2e!important;
  box-shadow:0 12px 28px rgba(15,61,46,.08)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px!important;
  text-align:center!important;
  cursor:pointer!important;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease!important;
}
.det-modal-hub-card:hover,
.det-modal-hub-card:focus-visible{
  transform:translateY(-2px)!important;
  border-color:#2d7a5f!important;
  box-shadow:0 18px 34px rgba(15,61,46,.14)!important;
  outline:none!important;
}
.det-modal-hub-card strong{
  color:#0f2f26!important;
  font-size:16px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  line-height:1.2!important;
}
.det-modal-hub-card small{
  color:#62736c!important;
  font-size:11px!important;
  font-weight:800!important;
  line-height:1.35!important;
}
.det-modal-hub-icon{
  width:46px!important;
  height:46px!important;
  border-radius:15px!important;
  display:grid!important;
  place-items:center!important;
  background:#0f3d2e!important;
  color:#fff!important;
  font-size:13px!important;
  font-weight:1000!important;
  letter-spacing:.04em!important;
}
.det-modal-pane-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:10px 12px!important;
  border:1px solid rgba(15,61,46,.14)!important;
  border-radius:16px!important;
  background:#eef7f2!important;
}
.det-modal-pane-head span{
  display:block!important;
  color:#6a7a73!important;
  font-size:9px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-modal-pane-head h3{
  margin:2px 0 0!important;
  color:#0f3d2e!important;
  font-size:17px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-other-actions-premium{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  padding:16px!important;
  border:1px solid rgba(15,61,46,.14)!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 12px 28px rgba(15,61,46,.06)!important;
}
.det-other-actions-premium>div:first-child{
  display:flex!important;
  flex-direction:column!important;
  gap:4px!important;
}
.det-other-actions-premium span{
  color:#6a7a73!important;
  font-size:10px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-other-actions-premium strong{
  color:#0f3d2e!important;
  font-size:17px!important;
  font-weight:1000!important;
}
.det-other-actions-premium small,
.det-other-empty{
  color:#62736c!important;
  font-size:11px!important;
  font-weight:800!important;
}
@media(max-width:900px){
  .det-modal-hub-grid{grid-template-columns:1fr!important;}
  .det-modal-hub-card{min-height:112px!important;}
  .det-other-actions-premium{align-items:stretch!important;flex-direction:column!important;}
}
@media(max-width:620px){
  .det-modal-pane-head{align-items:stretch!important;flex-direction:column!important;}
  .det-modal-pane-head .btn{width:100%!important;}
  .det-modal-hub-card{padding:16px 12px!important;}
}
/* PATCH_MODAL_DETALHES_SETORIZADO_V1:FIM */

/* PATCH_RESUMO_TIPO_E_BADGES_V1:INICIO */
/* A cor e o tooltip já identificam a situação; mini-legendas deixam de ocupar o card. */
#allocationGrid .fleet-card .tratativa-tag,
#allocationGrid .fleet-card .oficina-tag,
#allocationGrid .fleet-card .fleet-card-oficina{
  display:none!important;
}
#allocationGrid .fleet-card{
  justify-content:center!important;
}
#allocationGrid .fleet-card .manual-tag{
  margin-bottom:2px!important;
}
.det-type-title-summary{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  min-width:0!important;
}
.det-type-title-name{
  min-width:0!important;
  color:inherit!important;
  font:inherit!important;
}
.det-type-title-total,
.det-type-title-stopped{
  display:inline-flex!important;
  align-items:center!important;
  min-height:20px!important;
  padding:2px 7px!important;
  border-radius:999px!important;
  font-size:9px!important;
  font-weight:1000!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.det-type-title-total{
  background:#e8f1ed!important;
  color:#174d3b!important;
  border:1px solid rgba(15,61,46,.14)!important;
}
.det-type-title-stopped{
  background:#ffe8e8!important;
  color:#a51e1e!important;
  border:1px solid #efb6b6!important;
}
@media(max-width:620px){
  .det-type-title-summary{align-items:flex-start!important;}
  .det-type-title-name{flex:1 0 100%!important;}
}
/* PATCH_RESUMO_TIPO_E_BADGES_V1:FIM */

/* PATCH_TRATATIVA_SEMAFORO_MODAL_ALOCACAO_V1:INICIO */
.det-tratativa-modal-card{
  margin-top:14px!important;
  padding:16px!important;
  border:1px solid rgba(15,61,46,.16)!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#fff,#f5faf7)!important;
  box-shadow:0 8px 22px rgba(15,61,46,.06)!important;
}
.det-tratativa-modal-head{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
}
.det-tratativa-modal-head>div{min-width:0!important;}
.det-tratativa-modal-head span,
.det-tratativa-current span{
  display:block!important;
  color:#60736b!important;
  font-size:9px!important;
  font-weight:1000!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
}
.det-tratativa-modal-head h3{
  margin:3px 0 4px!important;
  color:#123f31!important;
  font-size:16px!important;
}
.det-tratativa-modal-head p{
  margin:0!important;
  color:#61736c!important;
  font-size:10px!important;
  font-weight:700!important;
  line-height:1.35!important;
}
.det-tratativa-sync{
  flex:0 0 auto!important;
  display:inline-flex!important;
  align-items:center!important;
  min-height:24px!important;
  padding:4px 9px!important;
  border-radius:999px!important;
  white-space:nowrap!important;
  font-size:8px!important;
  font-weight:1000!important;
  background:#edf4f1!important;
  color:#45635a!important;
  border:1px solid #d5e4de!important;
}
.det-tratativa-sync.is-ok{background:#e3f6e9!important;color:#16743c!important;border-color:#b5dfc2!important;}
.det-tratativa-sync.is-pending{background:#fff4d6!important;color:#8d5d00!important;border-color:#edcf80!important;}
.det-tratativa-current{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:8px!important;
  margin:14px 0!important;
}
.det-tratativa-current>div{
  min-width:0!important;
  padding:10px!important;
  border:1px solid #dce8e3!important;
  border-radius:12px!important;
  background:#fff!important;
}
.det-tratativa-current strong{
  display:block!important;
  margin-top:4px!important;
  color:#173f33!important;
  font-size:11px!important;
  font-weight:1000!important;
  overflow-wrap:anywhere!important;
}
.det-tratativa-form{
  display:grid!important;
  grid-template-columns:minmax(190px,.8fr) minmax(180px,.7fr) minmax(260px,1.5fr)!important;
  gap:10px!important;
  align-items:end!important;
}
.det-tratativa-form .field{min-width:0!important;margin:0!important;}
.det-tratativa-form select,
.det-tratativa-form input,
.det-tratativa-form textarea{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.det-tratativa-form textarea{resize:vertical!important;min-height:44px!important;}
.det-tratativa-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  gap:8px!important;
  margin-top:12px!important;
}
.det-tratativa-actions .btn{min-height:38px!important;}
.det-tratativa-actions .btn:disabled{opacity:.45!important;cursor:not-allowed!important;}
.det-tratativa-feedback{
  min-height:16px!important;
  margin-top:7px!important;
  color:#52675f!important;
  font-size:9px!important;
  font-weight:800!important;
  text-align:right!important;
}
@media(max-width:900px){
  .det-tratativa-current{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .det-tratativa-form{grid-template-columns:1fr 1fr!important;}
  .det-tratativa-observacao{grid-column:1/-1!important;}
}
@media(max-width:600px){
  .det-tratativa-modal-head{flex-direction:column!important;}
  .det-tratativa-current,
  .det-tratativa-form{grid-template-columns:1fr!important;}
  .det-tratativa-observacao{grid-column:auto!important;}
  .det-tratativa-actions{flex-direction:column!important;}
  .det-tratativa-actions .btn{width:100%!important;}
  .det-tratativa-feedback{text-align:left!important;}
}
/* PATCH_TRATATIVA_SEMAFORO_MODAL_ALOCACAO_V1:FIM */
/* PATCH_V127_DTF_TOTEM_SEM_VISUAIS:INICIO
   Cards padronizados: fundo branco, texto e borda conforme o status. */
#allocationGrid .fleet-card{
  background:#fff!important;
  border:2px solid #60736a!important;
  color:#43534c!important;
  box-shadow:0 4px 12px rgba(15,61,46,.08)!important;
  font-weight:1000!important;
}
#allocationGrid .fleet-card:hover,
#allocationGrid .fleet-card:focus-visible{
  background:#fff!important;
  box-shadow:0 8px 18px rgba(15,61,46,.14)!important;
  transform:translateY(-1px)!important;
}
#allocationGrid .fleet-card.red{color:#b42318!important;border-color:#d94b40!important;}
#allocationGrid .fleet-card.green{color:#15803d!important;border-color:#2da85a!important;}
#allocationGrid .fleet-card.orange,
#allocationGrid .fleet-card.com-os-prod,
#allocationGrid .fleet-card.produtivo{color:#c25700!important;border-color:#e57a19!important;}
#allocationGrid .fleet-card.yellow{color:#8a6500!important;border-color:#d4aa18!important;}
#allocationGrid .fleet-card.blue,
#allocationGrid .fleet-card.preventiva{color:#1d4ed8!important;border-color:#4c78df!important;}
#allocationGrid .fleet-card.purple{color:#6d28d9!important;border-color:#8b5cf6!important;}
#allocationGrid .fleet-card.gray{color:#52615a!important;border-color:#7a8982!important;}
#allocationGrid .fleet-card.teal,
#allocationGrid .fleet-card.awaiting,
#allocationGrid .fleet-card.aguardando-retirada,
#allocationGrid .fleet-card.aguard-retirada{color:#08769b!important;border-color:#38a6c8!important;}
#allocationGrid .fleet-card.opportunity,
#allocationGrid .fleet-card.oportunidade{color:#a94424!important;border-color:#d97856!important;}
#allocationGrid .fleet-card *,
#allocationGrid .fleet-card .manual-tag{
  color:inherit!important;
}
#allocationGrid .fleet-card .manual-tag{
  background:#fff!important;
  border:1px solid currentColor!important;
}
#allocationGrid .det-type-title-total,
#allocationGrid .det-type-title-stopped{display:none!important;}
/* PATCH_V127_DTF_TOTEM_SEM_VISUAIS:FIM */

/* PATCH_V129_DESEMPENHO_TOTEM_CORES_OFICINA:INICIO */
/* A alocação usa exatamente a mesma paleta suave do relatório. */
#allocationGrid .fleet-card,
#allocationGrid .det-fleet-card{
  background:#eef3f0!important;
  color:#123f31!important;
  border:1.5px solid #cbd5d1!important;
  box-shadow:0 2px 7px rgba(15,61,46,.08)!important;
  border-radius:9px!important;
  font-weight:1000!important;
}
#allocationGrid .fleet-card:hover,
#allocationGrid .fleet-card:focus-visible,
#allocationGrid .det-fleet-card:hover,
#allocationGrid .det-fleet-card:focus-visible{
  transform:translateY(-1px)!important;
  box-shadow:0 5px 12px rgba(15,61,46,.13)!important;
  filter:none!important;
}
#allocationGrid .fleet-card.red,#allocationGrid .det-fleet-card.red{background:#ffe7e7!important;color:#9f1515!important;border-color:#f4b7b7!important;}
#allocationGrid .fleet-card.green,#allocationGrid .det-fleet-card.green{background:#e3f8eb!important;color:#0b6b37!important;border-color:#a9dfbf!important;}
#allocationGrid .fleet-card.orange,#allocationGrid .fleet-card.com-os-prod,#allocationGrid .fleet-card.produtivo,
#allocationGrid .det-fleet-card.orange,#allocationGrid .det-fleet-card.com-os-prod,#allocationGrid .det-fleet-card.produtivo{background:#fff0db!important;color:#9a5600!important;border-color:#f1c98b!important;}
#allocationGrid .fleet-card.yellow,#allocationGrid .det-fleet-card.yellow{background:#fff8d8!important;color:#806000!important;border-color:#ead77b!important;}
#allocationGrid .fleet-card.blue,#allocationGrid .fleet-card.preventiva,
#allocationGrid .det-fleet-card.blue,#allocationGrid .det-fleet-card.preventiva{background:#e7efff!important;color:#1e3a8a!important;border-color:#9db9f3!important;}
#allocationGrid .fleet-card.purple,#allocationGrid .det-fleet-card.purple{background:#ede9fe!important;color:#5b21b6!important;border-color:#c4b5fd!important;}
#allocationGrid .fleet-card.gray,#allocationGrid .det-fleet-card.gray{background:#eef1ef!important;color:#5d6963!important;border-color:#cbd5d1!important;}
#allocationGrid .fleet-card.teal,#allocationGrid .fleet-card.awaiting,#allocationGrid .fleet-card.aguardando-retirada,#allocationGrid .fleet-card.aguard-retirada,
#allocationGrid .det-fleet-card.teal,#allocationGrid .det-fleet-card.awaiting,#allocationGrid .det-fleet-card.aguardando-retirada,#allocationGrid .det-fleet-card.aguard-retirada{background:#eef9ff!important;color:#07506b!important;border-color:#9bdcf7!important;}
#allocationGrid .fleet-card.opportunity,#allocationGrid .fleet-card.oportunidade,
#allocationGrid .det-fleet-card.opportunity,#allocationGrid .det-fleet-card.oportunidade{background:#fff4ef!important;color:#9a4428!important;border-color:#e6b7a8!important;}
#allocationGrid .fleet-card *,#allocationGrid .det-fleet-card *{color:inherit!important;}
#allocationGrid .fleet-card .manual-tag,#allocationGrid .det-fleet-card .manual-tag{
  background:rgba(255,255,255,.72)!important;
  color:inherit!important;
  border:1px solid currentColor!important;
  box-shadow:none!important;
}
#allocationGrid .fleet-card-oficina{
  display:block!important;
  margin-top:3px!important;
  padding-top:3px!important;
  border-top:1px solid currentColor!important;
  opacity:.82!important;
  font-size:9px!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#allocationGrid .fleet-card-oficina.empty{display:none!important;}
/* PATCH_V129_DESEMPENHO_TOTEM_CORES_OFICINA:FIM */


/* ===== public/menus/disponibilidade/disponibilidade.css ===== */
.matrix td.ok{background:#e7f6ed;color:#0e6838;font-weight:900}.matrix td.warn{background:#fff8d8;color:#806000;font-weight:900}.matrix td.bad{background:#ffe8e8;color:#a80e0e;font-weight:900}.matrix td.empty{background:#f4f6f5;color:#9aa39f}.matrix th:first-child,.matrix td:first-child{min-width:220px;white-space:nowrap;font-weight:900}
.disponibilidade-page .filters{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.matrix{font-variant-numeric:tabular-nums}.matrix td{text-align:center}.matrix th:first-child,.matrix td:first-child{text-align:left}

/* V75 — cores da disponibilidade mais claras e executivas */
.matrix td.excelente{background:#dff8e8;color:#075c2d;font-weight:1000;box-shadow:inset 0 0 0 1px rgba(7,92,45,.08)}
.matrix td.ok{background:#ecf8df;color:#3f6d05;font-weight:1000;box-shadow:inset 0 0 0 1px rgba(63,109,5,.08)}
.matrix td.warn{background:#fff0c7;color:#875300;font-weight:1000;box-shadow:inset 0 0 0 1px rgba(135,83,0,.08)}
.matrix td.bad{background:#ffe0e0;color:#a11212;font-weight:1000;box-shadow:inset 0 0 0 1px rgba(161,18,18,.08)}

.matrix tbody tr:hover td{filter:saturate(1.05);box-shadow:inset 0 0 0 1px rgba(15,61,46,.10)}

/* V108 — matriz de disponibilidade legível, sem texto/percentual sobreposto */
.disponibilidade-page .table-shell{overflow:auto;max-width:100%;}
.matrix{table-layout:fixed;min-width:1260px;width:100%;border-collapse:separate;border-spacing:0;}
.matrix th,.matrix td{min-width:0;overflow:hidden;text-overflow:clip;vertical-align:middle;}
.matrix th:first-child,.matrix td:first-child{width:150px!important;min-width:150px!important;max-width:150px!important;white-space:normal!important;position:sticky;left:0;z-index:2;background:#fff;box-shadow:1px 0 0 var(--line);}
.matrix th:first-child{z-index:4;background:#0f3d2e!important;color:#fff!important;}
.matrix th:last-child,.matrix td:last-child{width:62px!important;min-width:62px!important;max-width:62px!important;}
.matrix th:not(:first-child):not(:last-child),.matrix td:not(:first-child):not(:last-child){width:52px;min-width:52px;max-width:52px;text-align:center;}
.matrix td:not(:first-child){font-size:12px;line-height:1;white-space:nowrap;}
.disp-item-cell{display:grid;grid-template-columns:1fr;gap:2px;align-content:center;min-width:0;max-width:100%;padding:8px 6px!important;line-height:1.08;overflow:hidden;}
.disp-item-cell b{display:block;font-size:12px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.disp-item-cell small{display:block;font-size:9px;line-height:1.05;color:#52645d;font-weight:900;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.disp-item-cell em{justify-self:start;display:inline-flex;max-width:100%;border:1px solid #c9d8d1;background:#eaf4ef;color:#0f3d2e;border-radius:999px;padding:2px 7px;font-size:9px;font-style:normal;font-weight:1000;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media(max-width:900px){.matrix{min-width:1180px}.matrix th:first-child,.matrix td:first-child{width:138px!important;min-width:138px!important;max-width:138px!important}.matrix th:not(:first-child):not(:last-child),.matrix td:not(:first-child):not(:last-child){width:48px;min-width:48px;max-width:48px}.disp-item-cell b{font-size:11px}.disp-item-cell small{font-size:8px}.disp-item-cell em{font-size:8px;padding:2px 5px}}


/* PATCH — Semáforo global / Determinar / Disponibilidade 85 */













/* PATCH — Disponibilidade: colunas com tamanho normal */
#tabelaDisponibilidade.disp-compact-hours{
  width:max-content!important;
  min-width:0!important;
  table-layout:fixed!important;
  margin-right:auto!important;
}
#tabelaDisponibilidade.disp-compact-hours th,
#tabelaDisponibilidade.disp-compact-hours td{
  width:74px!important;
  min-width:74px!important;
  max-width:74px!important;
  padding-left:8px!important;
  padding-right:8px!important;
  text-align:center!important;
}
#tabelaDisponibilidade.disp-compact-hours th:first-child,
#tabelaDisponibilidade.disp-compact-hours td:first-child{
  width:190px!important;
  min-width:190px!important;
  max-width:190px!important;
  text-align:left!important;
}
#tabelaDisponibilidade.disp-compact-hours th:last-child,
#tabelaDisponibilidade.disp-compact-hours td:last-child{
  width:78px!important;
  min-width:78px!important;
  max-width:78px!important;
}
#tabelaDisponibilidade.disp-compact-hours .disp-item-cell{
  width:100%!important;
  max-width:100%!important;
}
#tabelaDisponibilidade.disp-compact-hours .disp-item-cell b{
  white-space:normal!important;
}
#tabelaDisponibilidade.disp-compact-hours .disp-item-cell small,
#tabelaDisponibilidade.disp-compact-hours .disp-item-cell em{
  white-space:normal!important;
}
.table-shell:has(#tabelaDisponibilidade.disp-compact-hours),
.disp-table-shell:has(#tabelaDisponibilidade.disp-compact-hours){
  overflow:auto!important;
}
@supports not selector(:has(*)){
  #tabelaDisponibilidade.disp-compact-hours{
    display:table!important;
  }
}


/* PATCH FINAL — Funcionalidades, oficina, semáforo e disponibilidade */




/* ===== public/menus/materiais/materiais.css ===== */
/* Materiais solicitados x atendidos */
.materiais-page{max-width:100%;min-width:0;display:grid;gap:14px}
.materiais-kpis{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px}
.mat-kpi-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 28px rgba(15,61,46,.07);padding:14px 16px;display:grid;gap:4px;min-height:86px}
.mat-kpi-card span{font-size:11px;font-weight:1000;color:#66786e;text-transform:uppercase;letter-spacing:.02em}
.mat-kpi-card strong{font-size:26px;line-height:1;color:var(--verde);font-weight:1000}
.mat-kpi-card small{font-size:11px;color:#66786e;font-weight:800}
.materiais-dashboard{display:grid;grid-template-columns:1.25fr .95fr;gap:14px;align-items:stretch}
.materiais-chart-card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:14px;min-width:0;min-height:245px}
.materiais-chart-card h3{margin:0 0 10px;text-align:center;color:#33413b;font-size:16px;font-weight:900;text-transform:uppercase;letter-spacing:.01em}
.mat-chart-vertical{height:190px;display:flex;align-items:end;gap:14px;padding:8px 8px 0;overflow:hidden}
.mat-vbar-wrap{flex:1 1 0;min-width:52px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}
.mat-vbar-value{font-size:12px;font-weight:900;color:#66786e;min-height:16px}
.mat-vbar{width:100%;max-width:76px;background:#7f9894;border-radius:4px 4px 0 0;display:grid;place-items:start center;color:#fff;font-weight:1000;font-size:12px;padding-top:5px;min-height:12px}
.mat-vbar-label{height:42px;text-align:center;font-size:10px;color:#66786e;font-weight:800;line-height:1.15;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-transform:uppercase}
.mat-chart-horizontal{height:190px;display:grid;gap:7px;overflow:hidden;padding:4px 8px}
.mat-hbar-row{display:grid;grid-template-columns:minmax(115px,.55fr) minmax(0,1fr) 26px;gap:8px;align-items:center;font-size:12px;color:#66786e;font-weight:850}
.mat-hbar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;text-transform:uppercase}
.mat-hbar-track{height:22px;background:#f1f5f3;border-radius:2px;overflow:hidden}
.mat-hbar{height:100%;background:#9cafab;display:flex;align-items:center;justify-content:flex-end;color:#fff;font-size:12px;font-weight:1000;padding-right:6px;min-width:18px}
.materiais-filters{grid-template-columns:minmax(240px,1.2fr) repeat(2,minmax(135px,.55fr)) repeat(5,minmax(145px,.7fr));gap:10px;align-items:end;overflow:visible;max-height:none;margin-bottom:0}
.materiais-filters .field{min-width:0;margin:0}.materiais-filters input{height:46px;min-height:46px}
.materiais-filter-actions{display:flex;align-items:end;justify-content:flex-end;white-space:nowrap}
.materiais-table-shell{min-height:340px;overflow:auto;max-width:100%}
.materiais-table{min-width:1350px;width:100%;table-layout:fixed}
.materiais-table th,.materiais-table td{font-size:11px;padding:7px 7px;vertical-align:top;overflow-wrap:anywhere;line-height:1.22}
.materiais-table th{white-space:normal;text-align:center}
.materiais-table td{text-align:center}.materiais-table td.col-desc{text-align:left}.materiais-table td.col-num{text-align:right;white-space:nowrap}
.mat-cell-main{display:block;font-weight:1000;color:#10271e}.mat-cell-sub{display:block;color:#66786e;font-size:10px;font-weight:800;margin-top:2px}.mat-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mat-status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:1000;white-space:nowrap}.mat-status-pill.atendido{background:#ddfae8;color:#116b39}.mat-status-pill.parcial{background:#fff0db;color:#8a4b00}.mat-status-pill.pendente{background:#ffe1e1;color:#9f1515}
.materiais-report-fit .report-table{font-size:9.8px;table-layout:fixed}.materiais-report-fit .report-table th,.materiais-report-fit .report-table td{padding:4px 5px;line-height:1.15;overflow-wrap:anywhere}.materiais-report-fit .mat-report-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:1380px){.materiais-kpis{grid-template-columns:repeat(3,1fr)}.materiais-dashboard{grid-template-columns:1fr}.materiais-filters{grid-template-columns:minmax(220px,1fr) repeat(3,minmax(150px,1fr))}}
@media(max-width:780px){.materiais-kpis{grid-template-columns:1fr}.materiais-filters{grid-template-columns:1fr}.mat-chart-vertical{overflow:auto}.materiais-filter-actions{justify-content:flex-start}.materiais-dashboard{grid-template-columns:1fr}.mat-hbar-row{grid-template-columns:90px 1fr 24px}.ms-filter-panel{position:fixed;left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:55vh}}
@media print{.materiais-report-fit .report-table{font-size:7.6px}.materiais-report-fit .report-table th,.materiais-report-fit .report-table td{padding:2.5px 3px}}

/* V108 — filtros de Materiais enxutos */
.materiais-filters-enxutos{grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end;gap:10px;}
.materiais-filters-enxutos .materiais-filter-actions{justify-content:flex-start;align-items:end;}
@media(max-width:1280px){.materiais-filters-enxutos{grid-template-columns:repeat(3,minmax(150px,1fr));}}
@media(max-width:780px){.materiais-filters-enxutos{grid-template-columns:1fr;}}


/* PATCH — Materiais: data de envio e correção visual */
.materiais-page{gap:16px!important;}
.materiais-kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;gap:14px!important;}
.materiais-dashboard{grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr)!important;gap:16px!important;align-items:stretch!important;}
.materiais-chart-card{min-width:0!important;overflow:hidden!important;border-radius:24px!important;}
.materiais-chart-card h3{font-size:15px!important;line-height:1.2!important;margin-bottom:12px!important;}
.mat-chart-vertical{min-height:185px!important;overflow-x:auto!important;overflow-y:hidden!important;padding-bottom:6px!important;}
.mat-vbar-wrap{min-width:68px!important;}
.mat-chart-horizontal{max-height:205px!important;overflow-y:auto!important;overflow-x:hidden!important;padding-right:6px!important;}
.mat-hbar-row{grid-template-columns:minmax(120px,.62fr) minmax(130px,1fr) 38px!important;}
.materiais-filters,
.materiais-filters-enxutos{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important;
  gap:12px!important;
  align-items:end!important;
  overflow:visible!important;
  max-height:none!important;
}
.materiais-date-filter{min-width:0!important;display:grid!important;gap:6px!important;}
.materiais-date-filter label{font-size:11px!important;font-weight:1000!important;color:#66786e!important;text-transform:uppercase!important;}
.materiais-date-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;}
.materiais-date-row input{width:100%!important;height:46px!important;min-height:46px!important;border:1px solid var(--line)!important;border-radius:14px!important;background:#fff!important;color:#10271e!important;font-weight:900!important;padding:0 10px!important;}
.materiais-filter-actions{justify-content:flex-start!important;}
.materiais-table-shell{overflow:auto!important;border-radius:18px!important;max-width:100%!important;}
.materiais-table{min-width:1600px!important;table-layout:fixed!important;}
.materiais-table th{font-size:11px!important;line-height:1.15!important;white-space:normal!important;}
.materiais-table td{font-size:11px!important;line-height:1.18!important;vertical-align:middle!important;}
.materiais-table td .mat-cell-main,
.materiais-table td b{line-height:1.12!important;}
@media(max-width:1100px){
  .materiais-dashboard{grid-template-columns:1fr!important;}
  .materiais-date-filter{grid-column:1 / -1!important;}
}
@media(max-width:780px){
  .materiais-kpis{grid-template-columns:1fr!important;}
  .materiais-filters,.materiais-filters-enxutos{grid-template-columns:1fr!important;}
  .materiais-date-row{grid-template-columns:1fr 1fr!important;}
  .mat-hbar-row{grid-template-columns:minmax(88px,.6fr) minmax(120px,1fr) 34px!important;}
}


/* ===== public/menus/sistema/sistema.css ===== */
.sistema-page{display:flex;flex-direction:column;gap:12px;max-width:100%;overflow:hidden;color:#123b2f}.system-hero.premium{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(135deg,#0b3326 0%,#15523d 55%,#0f3d2e 100%);color:#fff;border-radius:20px;padding:16px 18px;box-shadow:0 16px 38px rgba(9,52,37,.18)}.system-hero-title small{text-transform:uppercase;letter-spacing:.14em;font-weight:900;opacity:.78}.system-hero h2{margin:3px 0 0;font-size:clamp(1.18rem,1.8vw,1.8rem);line-height:1.1}.system-hero p{display:none}.system-hero-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.system-hero-actions .btn{min-height:36px;padding:8px 12px}.system-alerts{display:flex;flex-wrap:wrap;gap:8px}.system-alert{border-radius:14px;padding:9px 11px;font-weight:800;border:1px solid rgba(15,61,46,.12);background:#fff;font-size:.88rem}.system-alert.warn{background:#fff8e1;border-color:#f3ce66;color:#785000}.system-alert.err{background:#fff1f2;border-color:#f5a3a3;color:#8d1d1d}.system-alert.ok{background:#ecfdf5;border-color:#8bd5ad;color:#11623b}.system-tabs.compact{display:flex;gap:7px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 8px;scrollbar-width:thin}.system-tabs button{border:1px solid rgba(15,61,46,.16);background:#fff;color:#123b2f;border-radius:999px;padding:8px 12px;font-weight:900;white-space:nowrap;cursor:pointer;box-shadow:0 4px 14px rgba(15,61,46,.04)}.system-tabs button.active{background:#0f3d2e;color:#fff;box-shadow:0 8px 22px rgba(15,61,46,.18)}.system-tab-panel{display:none}.system-tab-panel.active{display:block}.system-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.system-card{background:#fff;border:1px solid rgba(15,61,46,.11);border-radius:18px;padding:14px;box-shadow:0 9px 24px rgba(15,61,46,.06);min-width:0;position:relative;overflow:hidden}.system-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#0f3d2e,#2e7d5d);opacity:.38}.system-card small{display:block;color:#5c746b;text-transform:uppercase;letter-spacing:.08em;font-weight:900;font-size:.68rem}.system-card strong{display:block;margin-top:6px;font-size:clamp(1.25rem,2.3vw,1.95rem);color:#0f3d2e;line-height:1.05}.system-card span{display:block;margin-top:5px;color:#547064;font-weight:750;word-break:break-word;font-size:.84rem}.system-card.ok:before{background:#16a34a}.system-card.warn{background:#fffaf0}.system-card.warn:before{background:#f59e0b}.system-card.err{background:#fff5f5}.system-card.err:before{background:#dc2626}.system-section{margin-top:12px;background:#fff;border:1px solid rgba(15,61,46,.11);border-radius:20px;padding:14px;overflow:hidden;box-shadow:0 10px 28px rgba(15,61,46,.055)}.system-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.system-section-head.compact h3,.system-section h3{margin:0;color:#0f3d2e;font-size:1rem}.system-actions{display:flex;flex-wrap:wrap;gap:7px}.system-table-wrap{overflow:auto;max-width:100%;border-radius:15px;border:1px solid rgba(15,61,46,.1)}.system-table{width:100%;border-collapse:separate;border-spacing:0;min-width:760px;background:#fff}.system-table th{background:#0f3d2e;color:#fff;text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.045em;padding:10px}.system-table td{padding:10px;border-bottom:1px solid rgba(15,61,46,.08);vertical-align:middle;color:#17382d;font-size:.87rem}.system-table tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 8px;font-weight:900;font-size:.72rem;white-space:nowrap}.badge.ok{background:#dcfce7;color:#166534}.badge.warn{background:#fef3c7;color:#92400e}.badge.err{background:#fee2e2;color:#991b1b}.badge.info{background:#dbeafe;color:#1e40af}.system-empty{padding:16px;border:1px dashed rgba(15,61,46,.18);border-radius:15px;color:#5c746b;font-weight:800;background:#fbfdfc}.diag-toolbar{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.diag-metrics,.diag-bulkbar,.diag-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.diag-pill{display:inline-flex;align-items:center;min-height:30px;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:900;background:#f3f7f5;color:#214a3b}.diag-pill.warn{background:#fef3c7;color:#92400e}.diag-pill.ok{background:#dcfce7;color:#166534}.diag-pill.info{background:#dbeafe;color:#1e40af}.diag-filters input,.diag-filters select,.diag-bulkbar input,.diag-row-obs,.system-filterbar input,.system-filterbar select{border:1px solid rgba(15,61,46,.16);border-radius:12px;padding:8px 10px;background:#fff;font-weight:750;color:#123b2f;min-height:36px}.diag-filters input{min-width:230px;flex:1}.diag-bulkbar input{min-width:260px;flex:1}.diag-check{display:flex;align-items:center;gap:6px;font-weight:850;color:#48675a;font-size:.85rem}.diag-detail{max-width:360px}.diag-actions{white-space:nowrap}.btn.mini{min-height:30px;padding:6px 9px;font-size:.76rem;border-radius:10px}.system-modal{position:fixed;inset:0;z-index:9999;background:rgba(3,20,14,.48);display:flex;align-items:center;justify-content:center;padding:18px}.system-modal-card{width:min(860px,96vw);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;background:#fff;border-radius:22px;box-shadow:0 28px 70px rgba(0,0,0,.25)}.system-modal-head,.system-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(15,61,46,.1)}.system-modal-head h3{margin:0;color:#0f3d2e}.system-modal-body{padding:16px;overflow:auto}.system-modal-foot{border-top:1px solid rgba(15,61,46,.1);border-bottom:0;justify-content:flex-end}.confirm-box{display:flex;align-items:center;gap:12px;background:#f0f7f3;border:1px solid rgba(15,61,46,.1);border-radius:16px;padding:12px}.confirm-box strong{font-size:2rem;color:#0f3d2e}.json-view{white-space:pre-wrap;background:#0b1f18;color:#eafff4;border-radius:14px;padding:12px;max-height:420px;overflow:auto;font-size:.82rem}.tv-panel{min-height:calc(100vh - 220px);background:radial-gradient(circle at 20% 20%,#1e664c 0,#0b2d22 38%,#061b14 100%);color:#fff;border-radius:24px;padding:20px;overflow:hidden}.tv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.tv-toolbar strong{font-size:1.35rem}.tv-toolbar span{display:block;opacity:.82;font-weight:750;margin-top:3px}.tv-toolbar>div:last-child{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.tv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tv-card{background:rgba(255,255,255,.095);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:16px;box-shadow:0 12px 30px rgba(0,0,0,.16)}.tv-card strong{font-size:clamp(2rem,4vw,3.4rem);line-height:1}.tv-card small{display:block;opacity:.78;text-transform:uppercase;font-weight:900;letter-spacing:.08em;margin-bottom:8px}.tv-card.ok{background:rgba(22,163,74,.18)}.tv-card.warn{background:rgba(245,158,11,.17)}.tv-analytics{display:grid;grid-template-columns:1fr 1.25fr 1.25fr 1.25fr;gap:12px;margin-top:12px}.tv-chart-card{background:rgba(255,255,255,.085);border:1px solid rgba(255,255,255,.13);border-radius:18px;padding:16px;min-width:0}.tv-chart-card h3{margin:0 0 12px;color:#fff}.tv-donut{--pct:0;width:170px;height:170px;border-radius:50%;display:grid;place-items:center;margin:auto;background:conic-gradient(#f59e0b calc(var(--pct)*1%), rgba(255,255,255,.16) 0)}.tv-donut:before{content:"";position:absolute}.tv-donut span{width:112px;height:112px;border-radius:50%;background:#0b2d22;display:grid;place-items:center;font-size:1.85rem;font-weight:950}.tv-donut small{display:block;font-size:.68rem;opacity:.8;text-transform:uppercase}.tv-bar{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;min-height:30px;margin:8px 0;padding:6px 8px;border-radius:12px;background:rgba(255,255,255,.08);overflow:hidden}.tv-bar i{position:absolute;inset:0 auto 0 0;background:rgba(46,125,93,.72);z-index:0}.tv-bar span,.tv-bar b{position:relative;z-index:1}.tv-alerts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.tv-empty{opacity:.75;font-weight:800}.tv-panel:fullscreen{border-radius:0;min-height:100vh;padding:26px}.tv-panel:fullscreen .tv-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.tv-panel:fullscreen .tv-analytics{grid-template-columns:1fr 1.4fr 1.4fr 1.4fr}.audit-table td,.log-table td{max-width:260px}.system-filterbar.inline{display:flex;gap:8px;flex-wrap:wrap}.system-filterbar.inline input{min-width:240px}@media(max-width:1220px){.system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tv-analytics{grid-template-columns:1fr 1fr}.system-hero{align-items:flex-start;flex-direction:column}.system-hero-actions{justify-content:flex-start}}@media(max-width:720px){.sistema-page{gap:10px}.system-hero.premium{border-radius:16px;padding:14px}.system-hero-actions{width:100%}.system-hero-actions .btn{flex:1 1 135px}.system-grid{grid-template-columns:1fr}.system-section{padding:12px;border-radius:16px}.system-section-head{align-items:flex-start;flex-direction:column}.diag-filters,.diag-bulkbar{flex-direction:column;align-items:stretch}.diag-filters input,.diag-filters select,.diag-bulkbar input,.diag-bulkbar .btn{width:100%;min-width:0}.system-table{min-width:760px}.tv-grid,.tv-analytics,.tv-alerts{grid-template-columns:1fr}.tv-panel{border-radius:18px;padding:14px;min-height:auto}.tv-toolbar{align-items:flex-start;flex-direction:column}.tv-toolbar>div:last-child{justify-content:flex-start}.system-tabs{margin-inline:-2px}.system-modal{padding:10px}.system-modal-card{border-radius:18px}}

/* ===== public/css/v60-modular-fix.css ===== */
/* =========================================================
   V74 — RESTAURAÇÃO VISUAL APROVADA (V60) NA BASE MODULAR
   Não altera regras nem funcionalidades; somente shell, menus,
   filtros, cards, modais e relatórios para o padrão visual aprovado.
========================================================= */


html,body{width:100%;overflow-x:hidden!important;background:radial-gradient(circle at top left,rgba(20,82,62,.16),transparent 34%),linear-gradient(180deg,#f8faf9,#edf3f0)!important;color:var(--ink);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;}


/* Login aprovado */
#loginView.login-screen{position:fixed;inset:0;z-index:99;display:grid;grid-template-columns:1.05fr .95fr;background:linear-gradient(135deg,#071d17,#14523e);padding:0;}
#loginView.hidden{display:none!important}
#loginView .login-hero{padding:56px;color:white;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 25% 15%,rgba(255,255,255,.18),transparent 28%)}
#loginView .login-copy h1{max-width:680px;font-size:48px;line-height:1.04;margin:0 0 16px;font-weight:1000;color:white}
#loginView .login-copy p{max-width:660px;font-size:18px;color:#d6eee4;font-weight:700}
#loginView .login-panel{display:grid;place-items:center;padding:26px}
#loginView .login-card{width:min(470px,100%);background:white;border-radius:32px;padding:38px;box-shadow:0 30px 90px rgba(0,0,0,.28);border:0;display:block}
#loginView .login-logo{width:96px;height:96px;border-radius:28px;background:#f5f8f6;display:grid;place-items:center;margin:0 auto 20px;color:var(--verde);font-weight:1000}
#loginView .login-logo img{width:78px;max-height:78px;object-fit:contain}
#loginView h2{text-align:center;font-size:36px;margin:0;color:var(--verde);font-weight:1000}
#loginView p{text-align:center;color:var(--muted);font-weight:800;margin:8px 0 24px}
#loginView label{display:block;font-size:12px;font-weight:1000;color:#26493d;text-transform:uppercase;margin:14px 0 8px}
#loginView input,#loginView select{width:100%;height:58px;border:1px solid var(--line);border-radius:18px;padding:0 16px;font-weight:900;outline:none;background:#fff;color:var(--ink)}
#loginView input:focus,#loginView select:focus{border-color:#91bcae;box-shadow:0 0 0 4px rgba(15,61,46,.08)}
#loginView button{width:100%;height:58px;margin-top:22px;border:0;border-radius:18px;background:linear-gradient(135deg,var(--verde),var(--verde2));color:white;font-size:18px;font-weight:1000;cursor:pointer;box-shadow:0 13px 26px rgba(15,61,46,.23)}
#loginView small{display:block;color:#7b8b84;font-weight:800;margin-top:16px;text-align:center}

/* Shell aprovado */
.app-shell{display:block;min-height:100vh;background:transparent}.app-shell.hidden{display:none!important}
.sidebar{position:fixed!important;inset:0 auto 0 0!important;width:292px!important;height:100vh!important;background:linear-gradient(180deg,#071d17,#0f3d2e 54%,#071d17)!important;color:white!important;padding:22px!important;display:flex!important;flex-direction:column!important;gap:20px!important;overflow:auto!important;z-index:20!important;box-shadow:none!important;border:0!important}
.brand{display:flex;align-items:center;gap:14px}.brand-logo{width:62px;height:62px;border-radius:20px;background:#fff;display:grid;place-items:center;overflow:hidden;flex:0 0 62px;box-shadow:0 15px 40px rgba(0,0,0,.18)}.brand-logo img{width:54px;max-height:54px;object-fit:contain}.brand-logo.fallback:after{content:"US";color:var(--verde);font-size:24px;font-weight:1000}.brand strong{display:block;font-size:18px;line-height:1.08;color:#fff}.brand span{display:block;margin-top:4px;color:#d6eee4;font-size:13px;font-weight:800}
.side-menu,.menu{display:grid;gap:9px}.side-menu button,.menu-item{border:0;background:transparent;color:#e7f3ee;border-radius:16px;padding:14px;text-align:left;font-weight:950;cursor:pointer;transition:.16s;width:100%}.side-menu button:hover,.menu-item:hover{background:rgba(255,255,255,.12)}.side-menu button.active,.menu-item.active{background:#1769e8!important;color:white!important;box-shadow:0 10px 26px rgba(23,105,232,.25)!important}
.sidebar-box,.sidebar-user,.session-card{background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:18px!important;padding:15px!important;color:white!important;box-shadow:none!important}.sidebar-box label,.sidebar-box small,.sidebar-user small,.session-card small{display:block;font-size:11px;color:#cde5da;font-weight:1000;text-transform:uppercase}.refresh-box strong,.session-card strong{display:block;margin-top:8px;font-size:20px;color:#fff}.refresh-box span,.session-card span{display:block;margin-top:5px;color:#cde5da;font-size:12px;font-weight:850;line-height:1.28}.sidebar-user button{width:100%;margin-top:12px;border:0;border-radius:13px;padding:11px;background:white;color:var(--verde);font-weight:1000;cursor:pointer}
.app.main,.main{margin-left:292px!important;width:calc(100vw - 292px)!important;min-width:0!important;padding:28px!important;background:transparent!important}.topbar{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;gap:16px!important;margin-bottom:18px!important;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:0!important}.topbar h1,.topbar h2{margin:0!important;font-size:31px!important;font-weight:1000!important;color:#10271e!important}.topbar p{margin:5px 0 0!important;color:var(--muted)!important;font-weight:750!important}.actions,.top-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.menu-fragment{animation:none!important}

/* Botões/painéis/filtros no padrão aprovado */
.btn.primary{background:linear-gradient(135deg,var(--verde),var(--verde2))!important;color:white!important;box-shadow:0 13px 26px rgba(15,61,46,.23)!important}.btn.ghost{background:white!important;color:var(--verde)!important;border:1px solid var(--line)!important}
.loading.status-card,.status-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin-bottom:18px;font-weight:900}.loading{display:flex;gap:10px;align-items:center;color:var(--verde)}.loading span{width:14px;height:14px;border-radius:50%;border:3px solid #c8ded5;border-top-color:var(--verde);animation:v74spin .8s linear infinite}@keyframes v74spin{to{transform:rotate(360deg)}}
.filters,.filters-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;align-items:end;margin-bottom:18px;overflow:visible;max-height:none}
.panel,.table-shell,.kpi,.drill-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.table-shell{width:100%;max-width:100%;overflow:auto;max-height:calc(100vh - 290px)}.data-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:auto;min-width:1180px}.data-table td{border-bottom:1px solid #edf2ef;padding:9px 10px;font-size:13px;vertical-align:middle;max-width:360px;overflow-wrap:anywhere;font-weight:850}

/* Determinar total/frente — cards aprovados */
.process-head h3{margin:0;color:var(--verde);font-size:18px}.front-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.front-card{background:#f8fbf9;border:1px solid var(--line);border-radius:18px;padding:12px;overflow:hidden}.front-card h4{margin:0 0 4px;color:var(--verde);font-size:16px}.fleet-card{border:0;border-radius:12px;padding:8px 10px;min-width:76px;max-width:112px;color:#fff;font-weight:950;white-space:nowrap;box-shadow:0 6px 15px rgba(0,0,0,.12);overflow:hidden;text-overflow:ellipsis}.fleet-card .manual-tag{display:block;font-size:9px;opacity:.85;line-height:1;overflow:hidden;text-overflow:ellipsis}

/* Modais e relatórios */
.modal-root.hidden{display:none!important}.modal{width:min(1120px,96vw);max-height:94vh;overflow:auto;background:#fff;border-radius:24px;box-shadow:0 28px 70px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.4);position:relative;color:var(--ink);display:block}.modal-header h3{margin:0;font-size:18px;color:#fff}.modal-close{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:12px;padding:8px 12px;cursor:pointer}.info-card{background:#f8fbf9;border:1px solid var(--line);border-radius:14px;padding:11px;overflow:hidden}
.toast{position:fixed;right:18px;bottom:18px;background:var(--verde);color:#fff;padding:12px 14px;border-radius:14px;box-shadow:var(--shadow);z-index:1200;font-weight:800;max-width:min(360px,90vw)}

@media(max-width:900px){#loginView.login-screen{display:flex;align-items:center;justify-content:center;padding:18px}#loginView .login-hero{display:none}.sidebar{position:relative!important;width:100%!important;height:auto!important;border-radius:0 0 24px 24px!important}.app.main,.main{margin-left:0!important;width:100%!important;padding:14px!important}.topbar{display:block!important}.actions,.top-actions{justify-content:flex-start;margin-top:12px}.side-menu,.menu{grid-template-columns:repeat(2,1fr);display:grid}.filters,.filters.compact{grid-template-columns:1fr}.front-grid{grid-template-columns:1fr}.data-table{min-width:780px}.modal{width:98vw}.report-head{display:block}.report-meta{text-align:left;margin-top:8px}}


/* ===== V69: correções finais de responsividade, modal e impressão ===== */
html,body{max-width:100vw!important;overflow-x:hidden!important;}
.app-shell,.main,.menu-host,.menu-fragment,.consultas-page,.table-shell{min-width:0!important;max-width:100%!important;overflow-x:hidden!important;}
.main{width:auto!important;max-width:calc(100vw - 292px)!important;}
body.sidebar-collapsed .main{max-width:calc(100vw - 88px)!important;}
.topbar{min-width:0!important;max-width:100%!important;overflow:hidden!important;}
.top-actions{min-width:0!important;}

/* Consultas Gerais: filtros responsivos sem estouro lateral */
.consultas-filters{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;
  gap:10px!important;
  align-items:end!important;
  max-width:100%!important;
  overflow:visible!important;
}
.consultas-filters .busca-field{grid-column:span 2;min-width:0!important;}
.consultas-filter-actions{grid-column:span 2;display:flex!important;gap:8px!important;justify-content:flex-end!important;min-width:0!important;}
.consultas-filter-actions .btn{min-width:0!important;}
@media(max-width:1180px){
  .consultas-filters .busca-field,.consultas-filter-actions{grid-column:1 / -1!important;}
  .consultas-filter-actions{justify-content:flex-start!important;flex-wrap:wrap!important;}
}
@media(max-width:720px){
  .consultas-filters{grid-template-columns:1fr!important;}
  .consultas-filters .busca-field,.consultas-filter-actions{grid-column:auto!important;}
  .consultas-filter-actions{display:grid!important;grid-template-columns:1fr 1fr!important;}
}
.ms-filter{min-width:0!important;position:relative!important;}
.ms-filter-button{min-width:0!important;max-width:100%!important;}
.ms-filter-panel{
  position:fixed!important;
  z-index:2000!important;
  width:min(390px,calc(100vw - 24px))!important;
  max-height:min(360px,calc(100vh - 32px))!important;
  overflow:auto!important;
  background:#fff!important;
  color:#142920!important;
  border:1px solid #dce6e1!important;
  box-shadow:0 24px 70px rgba(15,61,46,.25)!important;
}
.ms-option span{color:#142920!important;font-weight:850!important;}
.ms-filter-label{color:#26493d!important;}

/* Tabela Consultas: caber sem scroll global */
.consultas-table-shell{overflow:auto!important;max-width:100%!important;}
.consultas-table{width:100%!important;min-width:0!important;table-layout:fixed!important;}
.consultas-table th,.consultas-table td{overflow:hidden!important;overflow-wrap:anywhere!important;word-break:normal!important;}
.consultas-table .cell-clamp{-webkit-line-clamp:2!important;}

/* Modal atual: remover interferência de estilos antigos */
.modal-root{position:fixed!important;inset:0!important;background:rgba(4,19,13,.58)!important;z-index:4000!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:14px!important;overflow:hidden!important;}
.modal-root.hidden{display:none!important;}
.modal-root .modal{background:#fff!important;color:#11261e!important;width:min(1120px,96vw)!important;max-height:94vh!important;overflow:auto!important;border-radius:24px!important;box-shadow:0 28px 70px rgba(0,0,0,.28)!important;border:1px solid rgba(255,255,255,.4)!important;display:block!important;backdrop-filter:none!important;}
.modal-root .modal.full{width:100vw!important;height:100vh!important;max-height:100vh!important;border-radius:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;}
.modal-root .modal.full .modal-header{position:relative!important;top:auto!important;left:auto!important;right:auto!important;width:100%!important;flex:0 0 auto!important;min-height:66px!important;background:linear-gradient(135deg,#0f3d2e,#14523e)!important;color:#fff!important;padding:14px 22px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;}
.modal-root .modal.full .modal-header h3{font-size:18px!important;color:#fff!important;margin:0!important;}
.modal-root .modal.full .modal-header p{color:#d8eee5!important;margin:3px 0 0!important;}
.modal-root .modal.full .modal-close{background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.22)!important;color:#fff!important;border-radius:12px!important;padding:9px 12px!important;font-weight:900!important;}
.modal-root .modal.full .modal-body{flex:1 1 auto!important;min-height:0!important;overflow:auto!important;padding:12px 18px 18px!important;background:#fff!important;}
.report-view{background:#fff!important;min-height:auto!important;width:100%!important;color:#16231d!important;}
.report-actions{position:sticky!important;top:0!important;display:flex!important;justify-content:flex-end!important;background:#fff!important;padding:4px 0 10px!important;z-index:4!important;}
.report-head{display:flex!important;justify-content:space-between!important;gap:12px!important;align-items:flex-start!important;border-bottom:3px solid #0f3d2e!important;padding-bottom:10px!important;margin-bottom:10px!important;}
.report-table{width:100%!important;min-width:0!important;table-layout:fixed!important;border-collapse:collapse!important;}
.report-table th,.report-table td{word-break:break-word!important;overflow-wrap:anywhere!important;line-height:1.24!important;}
.report-table th{font-size:10.5px!important;padding:6px!important;}
.report-table td{font-size:10.5px!important;padding:6px!important;}

@media(max-width:900px){
  .main,body.sidebar-collapsed .main{margin-left:0!important;width:100%!important;max-width:100vw!important;}
  .modal-root{padding:8px!important;}
  .modal-root .modal{width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px)!important;border-radius:18px!important;}
  .modal-root .modal.full{width:100vw!important;height:100vh!important;border-radius:0!important;}
  .report-head{display:block!important;}
  .report-meta{text-align:left!important;margin-top:8px!important;}
}
@media print{
  @page{size:A4 landscape;margin:6mm;}
  html,body{background:#fff!important;overflow:visible!important;}
  .sidebar,.topbar,.filters,.filters-panel,.report-actions,.modal-header,.modal-close,.btn,.toast,.loading{display:none!important;}
  .modal-root{position:static!important;display:block!important;background:#fff!important;padding:0!important;overflow:visible!important;}
  .modal-root .modal,.modal-root .modal.full{position:static!important;display:block!important;width:100%!important;height:auto!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border:0!important;border-radius:0!important;background:#fff!important;}
  .modal-root .modal-body,.report-view{display:block!important;overflow:visible!important;padding:0!important;background:#fff!important;}
  .main{margin:0!important;width:100%!important;max-width:100%!important;padding:0!important;}
  .report-table{font-size:8.5px!important;table-layout:fixed!important;}
  .report-table th,.report-table td{padding:3.5px 4px!important;font-size:8.5px!important;line-height:1.12!important;}
  .report-table th{background:#0f3d2e!important;color:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
}

/* ===== V70: ajuste pontual - sidebar minimizada visível + modal Adicionar/Alocar legível ===== */
:root{--sidebar-open:292px;--sidebar-mini:92px;}
body.sidebar-collapsed .sidebar{
  width:var(--sidebar-mini)!important;
  padding:18px 12px!important;
  align-items:center!important;
  overflow:hidden auto!important;
}
body.sidebar-collapsed .app.main,
body.sidebar-collapsed .main{
  margin-left:var(--sidebar-mini)!important;
  width:calc(100vw - var(--sidebar-mini))!important;
  max-width:calc(100vw - var(--sidebar-mini))!important;
  padding-left:24px!important;
  padding-right:24px!important;
}
body:not(.sidebar-collapsed) .app.main,
body:not(.sidebar-collapsed) .main{
  margin-left:var(--sidebar-open)!important;
  width:calc(100vw - var(--sidebar-open))!important;
  max-width:calc(100vw - var(--sidebar-open))!important;
}
.sidebar,.main,.table-shell,.consultas-table-shell{transition:width .16s ease,max-width .16s ease,margin-left .16s ease,padding .16s ease!important;}
.side-menu .menu-item{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  min-height:48px!important;
  overflow:hidden!important;
}
.menu-icon{
  display:inline-grid!important;
  place-items:center!important;
  width:24px!important;
  min-width:24px!important;
  height:24px!important;
  color:#fff!important;
  font-size:20px!important;
  line-height:1!important;
}
.menu-label{display:inline-block!important;color:inherit!important;white-space:normal!important;line-height:1.18!important;}
body.sidebar-collapsed .brand{justify-content:center!important;width:100%!important;}
body.sidebar-collapsed .brand-logo{width:54px!important;height:54px!important;flex-basis:54px!important;border-radius:17px!important;}
body.sidebar-collapsed .brand-logo img{width:48px!important;max-height:48px!important;}
body.sidebar-collapsed .brand > div:not(.brand-logo),
body.sidebar-collapsed .sidebar-box,
body.sidebar-collapsed .sidebar-user small,
body.sidebar-collapsed .sidebar-user b{display:none!important;}
body.sidebar-collapsed .side-menu,
body.sidebar-collapsed .menu{width:100%!important;display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
body.sidebar-collapsed .side-menu .menu-item,
body.sidebar-collapsed .menu-item{
  width:62px!important;
  height:52px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:17px!important;
  color:#fff!important;
  font-size:0!important;
  text-align:center!important;
  background:rgba(255,255,255,.06)!important;
}
body.sidebar-collapsed .menu-item.active{background:#1769e8!important;box-shadow:0 10px 26px rgba(23,105,232,.25)!important;}
body.sidebar-collapsed .menu-icon{font-size:22px!important;width:62px!important;height:52px!important;color:#fff!important;}
body.sidebar-collapsed .menu-label{display:none!important;}
body.sidebar-collapsed .sidebar-toggle{
  position:relative!important;
  top:auto!important;
  right:auto!important;
  transform:none!important;
  order:-1!important;
  width:54px!important;
  height:44px!important;
  margin:0 auto 4px!important;
  border-radius:16px!important;
}
body.sidebar-collapsed .sidebar-user{width:100%!important;padding:0!important;background:transparent!important;border:0!important;margin-top:auto!important;}
body.sidebar-collapsed .sidebar-user button{width:62px!important;height:44px!important;margin:0 auto!important;font-size:0!important;border-radius:15px!important;display:grid!important;place-items:center!important;}
body.sidebar-collapsed .sidebar-user button::after{content:"Sair";font-size:11px!important;color:var(--verde)!important;font-weight:1000!important;}
body.sidebar-collapsed .topbar,
body.sidebar-collapsed .menu-host,
body.sidebar-collapsed .filters,
body.sidebar-collapsed .filters-panel,
body.sidebar-collapsed .table-shell,
body.sidebar-collapsed .consultas-table-shell{max-width:100%!important;}
@media(max-width:900px){
  body.sidebar-collapsed .sidebar{width:100%!important;align-items:stretch!important;overflow:auto!important;}
  body.sidebar-collapsed .app.main,body.sidebar-collapsed .main{margin-left:0!important;width:100%!important;max-width:100vw!important;padding:14px!important;}
  body.sidebar-collapsed .brand > div:not(.brand-logo),body.sidebar-collapsed .sidebar-box,body.sidebar-collapsed .sidebar-user small,body.sidebar-collapsed .sidebar-user b{display:block!important;}
  body.sidebar-collapsed .side-menu .menu-item,body.sidebar-collapsed .menu-item{width:auto!important;height:auto!important;display:flex!important;padding:14px!important;font-size:revert!important;place-items:normal!important;}
  body.sidebar-collapsed .menu-label{display:inline-block!important;}
  body.sidebar-collapsed .menu-icon{width:24px!important;height:24px!important;font-size:20px!important;}
  body.sidebar-collapsed .sidebar-toggle{position:absolute!important;right:14px!important;top:14px!important;width:38px!important;height:38px!important;margin:0!important;}
}

/* Modal Adicionar / alocar — visual claro, sem sobreposição */
.modal-root .modal:not(.full){
  width:min(980px,calc(100vw - 28px))!important;
  max-height:calc(100vh - 28px)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.modal-root .modal:not(.full) .modal-header{
  position:relative!important;
  flex:0 0 auto!important;
  width:100%!important;
  min-height:76px!important;
  padding:18px 24px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  border-radius:24px 24px 0 0!important;
}
.modal-root .modal:not(.full) .modal-header h3{font-size:21px!important;color:#fff!important;line-height:1.15!important;}
.modal-root .modal:not(.full) .modal-header p{font-size:13px!important;color:#e3f4ed!important;line-height:1.25!important;max-width:720px!important;}
.modal-root .modal:not(.full) .modal-close{
  flex:0 0 auto!important;
  background:rgba(255,255,255,.92)!important;
  color:#0f3d2e!important;
  border:1px solid rgba(255,255,255,.45)!important;
  border-radius:13px!important;
  font-weight:1000!important;
  padding:10px 14px!important;
}
.modal-root .modal:not(.full) .modal-body{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
  padding:22px 26px!important;
  background:linear-gradient(180deg,#fff,#f9fcfa)!important;
}
.modal-root .modal:not(.full) .modal-actions{
  position:sticky!important;
  bottom:0!important;
  z-index:5!important;
  flex:0 0 auto!important;
  background:rgba(255,255,255,.96)!important;
  border-top:1px solid #dce6e1!important;
  box-shadow:0 -16px 36px rgba(15,61,46,.08)!important;
  padding:14px 26px!important;
}
.modal-root .tabs{grid-template-columns:1fr 1fr!important;gap:12px!important;margin-bottom:18px!important;}
.modal-root .tab-btn{min-height:54px!important;font-size:16px!important;border-radius:18px!important;}
.modal-root .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;}
.modal-root .field input,.modal-root .field select,.modal-root .field textarea{
  min-height:50px!important;
  font-size:15px!important;
  border-radius:17px!important;
}
.modal-root .toolbar-line{
  margin:16px 0!important;
  padding:14px!important;
  box-shadow:none!important;
  border-radius:18px!important;
  background:#fff!important;
}
.modal-root .selection-list{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr))!important;
  gap:10px!important;
  max-height:min(360px,38vh)!important;
  overflow:auto!important;
  padding:8px 4px 12px!important;
  align-items:start!important;
}
.modal-root .selection-item{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  gap:3px 9px!important;
  align-items:center!important;
  min-width:0!important;
  padding:10px 12px!important;
  border-radius:15px!important;
  background:#fbfdfc!important;
}
.modal-root .selection-item input{grid-row:1 / span 2!important;margin:0!important;}
.modal-root .selection-item strong{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:#10271e!important;
  font-size:15px!important;
  line-height:1.2!important;
}
.modal-root .selection-item small{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:#60736a!important;
  font-size:11px!important;
  line-height:1.2!important;
}
.modal-root #lResumo{white-space:nowrap!important;}
@media(max-width:760px){
  .modal-root .modal:not(.full){width:calc(100vw - 14px)!important;max-height:calc(100vh - 14px)!important;border-radius:20px!important;}
  .modal-root .modal:not(.full) .modal-header{padding:16px!important;border-radius:20px 20px 0 0!important;align-items:flex-start!important;}
  .modal-root .modal:not(.full) .modal-body{padding:16px!important;}
  .modal-root .modal:not(.full) .modal-actions{padding:12px 16px!important;}
  .modal-root .form-grid,.modal-root .tabs{grid-template-columns:1fr!important;}
  .modal-root .selection-list{grid-template-columns:1fr!important;max-height:34vh!important;}
  .modal-root .toolbar-line{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;}
}

/* ===== V71: sidebar sempre visível, filtros inteligentes e botões profissionais ===== */
:root{--sidebar-open:292px;--sidebar-mini:92px;--btn-radius:16px;}
body:not(.sidebar-collapsed) #sidebarPrincipal,
body:not(.sidebar-collapsed) .sidebar{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  transform:none!important;
  left:0!important;
  width:var(--sidebar-open)!important;
  min-width:var(--sidebar-open)!important;
  z-index:80!important;
}
body.sidebar-collapsed #sidebarPrincipal,
body.sidebar-collapsed .sidebar{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  transform:none!important;
  left:0!important;
  width:var(--sidebar-mini)!important;
  min-width:var(--sidebar-mini)!important;
  z-index:80!important;
  background:linear-gradient(180deg,#071d17,#0f3d2e 58%,#071d17)!important;
  box-shadow:10px 0 30px rgba(7,29,23,.12)!important;
}
body:not(.sidebar-collapsed) .app-shell{grid-template-columns:var(--sidebar-open) minmax(0,1fr)!important;}
body.sidebar-collapsed .app-shell{grid-template-columns:var(--sidebar-mini) minmax(0,1fr)!important;}
body:not(.sidebar-collapsed) .app.main,
body:not(.sidebar-collapsed) .main{
  margin-left:var(--sidebar-open)!important;
  width:calc(100vw - var(--sidebar-open))!important;
  max-width:calc(100vw - var(--sidebar-open))!important;
  min-width:0!important;
}
body.sidebar-collapsed .app.main,
body.sidebar-collapsed .main{
  margin-left:var(--sidebar-mini)!important;
  width:calc(100vw - var(--sidebar-mini))!important;
  max-width:calc(100vw - var(--sidebar-mini))!important;
  min-width:0!important;
}
.sidebar-handle{
  position:fixed;left:10px;top:50%;transform:translateY(-50%);z-index:90;
  width:44px;height:56px;border-radius:0 18px 18px 0;border:1px solid rgba(255,255,255,.18);
  background:#0f3d2e;color:#fff;font-size:20px;font-weight:1000;display:none;place-items:center;
  box-shadow:0 14px 35px rgba(15,61,46,.22);cursor:pointer;
}
body.sidebar-collapsed .sidebar-handle{display:grid!important;left:92px;}
body:not(.sidebar-collapsed) .sidebar-handle{display:none!important;}
body.sidebar-collapsed .sidebar-toggle{background:#fff!important;color:#0f3d2e!important;border:0!important;}
body.sidebar-collapsed .menu-item{position:relative!important;}
body.sidebar-collapsed .menu-item:hover::after{
  content:attr(title);position:absolute;left:76px;top:50%;transform:translateY(-50%);
  background:#0f3d2e;color:#fff;font-size:12px;font-weight:900;white-space:nowrap;
  padding:8px 10px;border-radius:12px;box-shadow:0 12px 28px rgba(15,61,46,.2);pointer-events:none;
}
.topbar{align-items:center!important;gap:18px!important;}
.top-actions{display:flex!important;gap:10px!important;align-items:center!important;justify-content:flex-end!important;}
.top-actions .btn,#btnAtualizar,#btnSalvarVisual,#btnAbrirRelatorio,#btnGerarPDF,#btnLimparFiltrosConsultas{
  min-height:46px!important;border-radius:var(--btn-radius)!important;padding:0 18px!important;
  font-weight:1000!important;letter-spacing:.01em!important;border:1px solid #d9e6e0!important;
  box-shadow:0 8px 18px rgba(15,61,46,.08)!important;background:#fff!important;color:#123b2d!important;
}
#btnAtualizar::before{content:"↻";font-weight:1000;}
#btnSalvarVisual::before{content:"＋";font-weight:1000;}
#btnAbrirRelatorio::before{content:"▤";font-weight:1000;}
#btnGerarPDF{background:linear-gradient(135deg,#0f3d2e,#17694f)!important;color:#fff!important;border-color:#0f3d2e!important;box-shadow:0 12px 26px rgba(15,61,46,.22)!important;}
#btnGerarPDF::before{content:"⤓";font-weight:1000;}
#btnLimparFiltrosConsultas{background:#f8fbf9!important;color:#0f3d2e!important;padding:0 14px!important;}
#btnLimparFiltrosConsultas::before{content:"×";font-size:18px;line-height:1;}
.top-actions .btn:hover,#btnLimparFiltrosConsultas:hover{filter:none!important;transform:translateY(-1px)!important;box-shadow:0 12px 28px rgba(15,61,46,.14)!important;}
.consultas-filters{
  grid-template-columns:minmax(210px,1.05fr) repeat(3,minmax(150px,.75fr)) repeat(3,minmax(145px,.72fr)) auto!important;
  gap:11px!important;align-items:end!important;padding:16px!important;border-radius:24px!important;
}
.consultas-filter-actions{align-self:end!important;}
.ms-filter{min-width:0!important;}
.ms-filter-label{font-size:11px!important;margin-bottom:6px!important;color:#21473a!important;}
.ms-filter-button{
  min-height:46px!important;border-radius:15px!important;padding:0 12px!important;background:#fff!important;
  border:1px solid #d8e5df!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)!important;
}
.ms-filter-button span{font-size:13px!important;font-weight:900!important;}
.ms-filter-button small{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#eef6f2;color:#0f3d2e!important;}
.ms-filter.open .ms-filter-button{border-color:#0f3d2e!important;box-shadow:0 0 0 4px rgba(15,61,46,.09)!important;}
.ms-filter-panel{
  position:fixed!important;z-index:250!important;width:min(420px,calc(100vw - 24px))!important;
  background:#fff!important;border:1px solid #dce6e1!important;border-radius:18px!important;
  box-shadow:0 24px 60px rgba(15,61,46,.22)!important;padding:12px!important;overflow:auto!important;
}
.ms-filter-tools{grid-template-columns:1fr 1fr!important;gap:8px!important;margin-bottom:9px!important;padding-bottom:8px!important;border-bottom:1px solid #edf3f0!important;}
.ms-filter-tools button{min-height:38px!important;border-radius:12px!important;font-size:12px!important;background:#f8fbf9!important;}
.ms-filter-list{display:grid!important;grid-template-columns:1fr!important;gap:4px!important;}
.ms-option{display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;align-items:center!important;gap:8px!important;min-height:34px!important;padding:7px 8px!important;border:1px solid transparent!important;border-radius:12px!important;}
.ms-option:hover{background:#f3faf6!important;border-color:#d9e8e1!important;}
.ms-option input{width:16px!important;height:16px!important;margin:0!important;}
.ms-option span{min-width:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:12px!important;font-weight:900!important;color:#21372f!important;}
.ms-empty{padding:10px!important;color:#66786e!important;font-weight:900!important;}
.consultas-page,.consultas-page .table-shell,.consultas-table-shell{width:100%!important;max-width:100%!important;min-width:0!important;}

.consultas-table th,.consultas-table td{overflow-wrap:anywhere!important;}
@media(max-width:1380px){.consultas-filters{grid-template-columns:minmax(190px,1fr) repeat(3,minmax(145px,1fr))!important;}.consultas-filter-actions{justify-content:flex-start!important;}}
@media(max-width:900px){
  body:not(.sidebar-collapsed) .sidebar,body.sidebar-collapsed .sidebar{position:relative!important;width:100%!important;min-width:0!important;z-index:10!important;}
  body:not(.sidebar-collapsed) .app.main,body.sidebar-collapsed .app.main,body:not(.sidebar-collapsed) .main,body.sidebar-collapsed .main{margin-left:0!important;width:100%!important;max-width:100vw!important;padding:14px!important;}
  .sidebar-handle{display:none!important;}
  .topbar{align-items:flex-start!important;display:grid!important;grid-template-columns:1fr!important;}
  .top-actions{justify-content:flex-start!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;}
  .top-actions .btn{width:100%!important;}
  .consultas-filters{grid-template-columns:1fr!important;padding:12px!important;}
  .consultas-filter-actions{display:grid!important;grid-template-columns:1fr!important;}
  .ms-filter-panel{left:12px!important;right:12px!important;top:auto!important;bottom:12px!important;width:auto!important;max-height:58vh!important;}
}

/* =========================================================
   V72 — ajustes finais solicitados: logo, sidebar, status,
   filtros em linha única e botões mais profissionais
========================================================= */
:root{
  --sidebar-open:292px;
  --sidebar-mini:84px;
}

/* Login com logo real e assinatura alinhada ao título */
#loginView .brand-logo,
#loginView .login-logo,
.sidebar .brand-logo{
  background:#fff!important;
}
#loginView .brand-logo img,
#loginView .login-logo img,
.sidebar .brand-logo img{
  width:88%!important;
  height:88%!important;
  max-width:88%!important;
  max-height:88%!important;
  object-fit:contain!important;
}
#loginView .login-copy{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:10px!important;
  max-width:720px!important;
}
#loginView .login-copy h1{
  margin-bottom:4px!important;
}
#loginView .login-copy p{
  margin:0!important;
}
#loginView .login-footer-brand{
  margin-top:18px!important;
  color:#b7d7ca!important;
  text-align:left!important;
  font-size:14px!important;
  font-weight:1000!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
  opacity:.95!important;
}

/* Sidebar sempre visível, sem botão flutuante invadindo a tabela */
#btnSidebarHandle{display:none!important;}
.sidebar{
  width:var(--sidebar-open)!important;
  min-width:var(--sidebar-open)!important;
  overflow-x:hidden!important;
  padding:22px 20px!important;
}
.app.main,.main{
  margin-left:var(--sidebar-open)!important;
  width:calc(100vw - var(--sidebar-open))!important;
  max-width:calc(100vw - var(--sidebar-open))!important;
}
.sidebar-toggle{
  position:absolute!important;
  right: 6px!important;
  top: 28px!important;
  width: 36px!important;
  height: 40px!important;
  border-radius: 10px!important;
  background: rgba(255, 255, 255, .12) !important;
  border:1px solid rgba(255,255,255,.22)!important;
  color:#fff!important;
  box-shadow:none!important;
  z-index:10!important;
}
.sidebar-toggle:hover{background:rgba(255,255,255,.22)!important;}
body.sidebar-collapsed .sidebar{
  width:var(--sidebar-mini)!important;
  min-width:var(--sidebar-mini)!important;
  padding:14px 12px!important;
  align-items:center!important;
  overflow:hidden!important;
}
body.sidebar-collapsed .app.main,
body.sidebar-collapsed .main{
  margin-left:var(--sidebar-mini)!important;
  width:calc(100vw - var(--sidebar-mini))!important;
  max-width:calc(100vw - var(--sidebar-mini))!important;
}
body.sidebar-collapsed .sidebar-toggle{
  position:relative!important;
  top:auto!important;
  right:auto!important;
  transform:none!important;
  width:52px!important;
  height:44px!important;
  margin:0 auto 6px!important;
  border-radius:15px!important;
  flex:0 0 auto!important;
}
body.sidebar-collapsed .brand{
  justify-content:center!important;
  width:100%!important;
  gap:0!important;
  margin-top:2px!important;
}
body.sidebar-collapsed .brand-logo{
  width:54px!important;
  height:54px!important;
  flex:0 0 54px!important;
  border-radius:16px!important;
}
body.sidebar-collapsed .brand > div:not(.brand-logo),
body.sidebar-collapsed .sidebar-box,
body.sidebar-collapsed .sidebar-user small,
body.sidebar-collapsed .sidebar-user b,
body.sidebar-collapsed .sidebar-user .user-unit{
  display:none!important;
}
body.sidebar-collapsed .side-menu,
body.sidebar-collapsed .menu{
  width:100%!important;
  display:grid!important;
  gap:10px!important;
}
body.sidebar-collapsed .menu-item{
  width:60px!important;
  height:52px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:16px!important;
  overflow:hidden!important;
  color:#fff!important;
  background:rgba(255,255,255,.08)!important;
}

body.sidebar-collapsed .menu-icon{
  display:grid!important;
  place-items:center!important;
  font-size:21px!important;
  width:100%!important;
  height:100%!important;
}
body.sidebar-collapsed .menu-item.active{background:#1769e8!important;}
body.sidebar-collapsed .sidebar-user{margin-top:auto!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;width:60px!important;}
body.sidebar-collapsed .sidebar-user button{
  width:60px!important;
  height:42px!important;
  padding:0!important;
  border-radius:14px!important;
  font-size:0!important;
}
body.sidebar-collapsed .sidebar-user button::after{content:"Sair";font-size:11px!important;font-weight:1000!important;}
.sidebar,.main,.table-shell,.consultas-table-shell{transition:width .14s ease,max-width .14s ease,margin-left .14s ease!important;}

/* Status PIMS profissional no menu lateral */
.pims-status-box{
  display:grid!important;
  gap:12px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.07))!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important;
}
.status-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;}
.status-pill{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:24px!important;
  padding:5px 9px!important;
  border-radius:999px!important;
  font-size:10px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  letter-spacing:.03em!important;
  white-space:nowrap!important;
}
.status-pill.aguardando{background:#fef3c7!important;color:#7a4a00!important;}
.status-pill.atualizando{background:#dbeafe!important;color:#15549c!important;}
.status-pill.online{background:#dcfce7!important;color:#0f6b35!important;}
.status-pill.erro{background:#fee2e2!important;color:#9f1515!important;}
.status-lines{display:grid!important;gap:6px!important;}
.status-lines span{font-size:12px!important;line-height:1.25!important;color:#d8eee5!important;font-weight:850!important;}
.sidebar-refresh-btn{
  width:100%!important;
  height:40px!important;
  border:1px solid rgba(255,255,255,.20)!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#0f3d2e!important;
  font-size:13px!important;
  font-weight:1000!important;
  cursor:pointer!important;
  box-shadow:0 10px 24px rgba(0,0,0,.12)!important;
}
.sidebar-refresh-btn:hover{filter:brightness(.98);transform:translateY(-1px);}
.sidebar-user{display:grid!important;gap:8px!important;}
.sidebar-user b{font-size:16px!important;line-height:1.15!important;color:#fff!important;}
.sidebar-user .user-unit{font-size:12px!important;color:#d8eee5!important;font-weight:850!important;}

/* Atualizar fica somente no menu lateral */
.top-actions #btnAtualizar{display:none!important;}
.top-actions{
  align-items:center!important;
  gap:10px!important;
}
.top-actions .btn,
.consultas-filter-actions .btn,
#btnLimparFiltrosConsultas{
  height:46px!important;
  border-radius:15px!important;
  padding:0 18px!important;
  font-size:14px!important;
  font-weight:1000!important;
  border:1px solid #dbe7e2!important;
  box-shadow:0 10px 22px rgba(15,61,46,.08)!important;
  letter-spacing:.01em!important;
}
.top-actions .btn.ghost::before{font-size:15px!important;line-height:1!important;}
#btnSalvarVisual::before{content:"+";}
#btnAbrirRelatorio::before{content:"▤";}
#btnGerarPDF::before{content:"↓";}
#btnGerarPDF{
  background:linear-gradient(135deg,#0f3d2e,#17694f)!important;
  border-color:transparent!important;
  color:#fff!important;
  min-width:124px!important;
}
#btnLimparFiltrosConsultas{
  color:#0f3d2e!important;
  background:#f9fcfa!important;
  min-width:142px!important;
}
#btnLimparFiltrosConsultas::before{content:"× ";font-size:17px!important;}

/* Consultas Gerais: filtros em uma linha no desktop e dropdowns compactos */
.consultas-filters{
  display:grid!important;
  grid-template-columns:minmax(270px,1.45fr) repeat(6,minmax(126px,.78fr)) minmax(140px,.55fr)!important;
  gap:10px!important;
  align-items:end!important;
  padding:18px!important;
  overflow:visible!important;
}
.consultas-filters .busca-field input,
.ms-filter-button{
  height:45px!important;
  min-height:45px!important;
  border-radius:15px!important;
  padding:0 12px!important;
  font-size:13px!important;
  background:#fff!important;
}
.consultas-filters .busca-field label,
.ms-filter-label{
  font-size:11px!important;
  margin-bottom:6px!important;
  letter-spacing:.01em!important;
}
.ms-filter-button span{
  font-size:13px!important;
  font-weight:950!important;
}
.ms-filter-button small{
  width:24px!important;
  height:24px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:999px!important;
  background:#eef6f2!important;
  color:#0f3d2e!important;
  font-size:11px!important;
}
.ms-filter-panel{
  width:min(320px,calc(100vw - 36px))!important;
  max-height:min(340px,62vh)!important;
  padding:10px!important;
  border-radius:18px!important;
}
.ms-option{
  align-items:center!important;
  gap:9px!important;
  min-height:36px!important;
  padding:8px 9px!important;
}
.ms-option input{
  width:16px!important;
  height:16px!important;
  margin:0!important;
}
.ms-option span{
  font-size:12px!important;
  line-height:1.18!important;
  font-weight:900!important;
}
.ms-filter-tools button{
  height:34px!important;
  font-size:11px!important;
}

/* Quando o menu lateral muda, a tabela precisa usar o espaço real */
.menu-host,.consultas-page,.consultas-table-shell,.table-shell{max-width:100%!important;min-width:0!important;}
.consultas-table-shell{width:100%!important;}
.consultas-table{width:100%!important;}

@media (max-width:1450px){
  .consultas-filters{
    grid-template-columns:minmax(240px,1.35fr) repeat(3,minmax(145px,1fr))!important;
  }
  .consultas-filter-actions{justify-content:flex-start!important;}
}
@media (max-width:900px){
  .sidebar{position:relative!important;width:100%!important;min-width:0!important;height:auto!important;border-radius:0 0 24px 24px!important;}
  .app.main,.main,body.sidebar-collapsed .app.main,body.sidebar-collapsed .main{margin-left:0!important;width:100%!important;max-width:100vw!important;padding:14px!important;}
  body.sidebar-collapsed .sidebar{width:100%!important;min-width:0!important;align-items:stretch!important;overflow:auto!important;}
  body.sidebar-collapsed .brand > div:not(.brand-logo),body.sidebar-collapsed .sidebar-box,body.sidebar-collapsed .sidebar-user small,body.sidebar-collapsed .sidebar-user b,body.sidebar-collapsed .sidebar-user .user-unit{display:block!important;}
  .consultas-filters{grid-template-columns:1fr!important;}
  .top-actions{justify-content:stretch!important;display:grid!important;grid-template-columns:1fr!important;}
  .top-actions .btn{width:100%!important;}
}


/* v73: menu minimizado reabrível e limpar filtros no topo */
body.sidebar-collapsed #sidebarPrincipal,
body.sidebar-collapsed .sidebar{
  position:fixed!important;
  left:0!important;
  top:0!important;
  bottom:0!important;
  width:82px!important;
  min-width:82px!important;
  max-width:82px!important;
  padding:14px 11px!important;
  z-index:120!important;
  overflow:hidden!important;
}
body.sidebar-collapsed .app.main,
body.sidebar-collapsed .main{
  margin-left:82px!important;
  width:calc(100vw - 82px)!important;
  max-width:calc(100vw - 82px)!important;
  padding-left:24px!important;
}
body.sidebar-collapsed .sidebar-toggle,
body.sidebar-collapsed #btnToggleSidebar{
  position:relative!important;
  top:auto!important;
  right:auto!important;
  left:auto!important;
  display:grid!important;
  place-items:center!important;
  width:52px!important;
  height:44px!important;
  min-width:52px!important;
  min-height:44px!important;
  margin:0 auto 10px!important;
  border-radius:16px!important;
  background:#ffffff!important;
  color:#0f3d2e!important;
  border:0!important;
  box-shadow:0 10px 24px rgba(0,0,0,.16)!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  z-index:999!important;
  transform:none!important;
}
body.sidebar-collapsed .sidebar-toggle:hover,
body.sidebar-collapsed #btnToggleSidebar:hover{background:#eef6f2!important;}
body.sidebar-collapsed #btnSidebarHandle{
  display:none!important;
  pointer-events:none!important;
}
body.sidebar-collapsed .brand-logo{pointer-events:none!important;}
body.sidebar-collapsed .brand{margin-top:0!important;}
body.sidebar-collapsed .menu-item{cursor:pointer!important;pointer-events:auto!important;}
body.sidebar-collapsed .menu-host,
body.sidebar-collapsed .consultas-page,
body.sidebar-collapsed .consultas-table-shell{max-width:100%!important;}

.menu-consultas-ativas #btnLimparFiltrosConsultas,
.menu-consultas-ativas .consultas-filter-actions{display:none!important;}
.top-actions #btnLimparFiltrosTopo,
#btnLimparFiltrosTopo{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  height:46px!important;
  min-width:142px!important;
  border-radius:15px!important;
  padding:0 18px!important;
  background:#f9fcfa!important;
  color:#0f3d2e!important;
  border:1px solid #dbe7e2!important;
  font-size:14px!important;
  font-weight:1000!important;
  box-shadow:0 10px 22px rgba(15,61,46,.08)!important;
  cursor:pointer!important;
}
#btnLimparFiltrosTopo span{font-size:18px!important;line-height:1!important;}
#btnLimparFiltrosTopo:hover{transform:translateY(-1px)!important;box-shadow:0 14px 30px rgba(15,61,46,.14)!important;}

.consultas-filters{
  grid-template-columns:minmax(320px,1.8fr) repeat(6,minmax(132px,1fr))!important;
  gap:10px!important;
  align-items:end!important;
}
.consultas-filters .busca-field{min-width:0!important;}
.consultas-filters .busca-field input,
.ms-filter-button{
  width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.ms-filter-button span{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
@media(max-width:1500px){
  .consultas-filters{grid-template-columns:minmax(250px,1.6fr) repeat(3,minmax(155px,1fr))!important;}
}
@media(max-width:900px){
  body.sidebar-collapsed #sidebarPrincipal,
  body.sidebar-collapsed .sidebar{position:relative!important;width:100%!important;min-width:0!important;max-width:none!important;}
  body.sidebar-collapsed .app.main,
  body.sidebar-collapsed .main{margin-left:0!important;width:100%!important;max-width:100vw!important;padding-left:14px!important;}
}

/* =========================================================
   V74 — pacote conjunto: login, usuário, sidebar, semáforo
   e filtros de Consultas Gerais em linha única
========================================================= */
#loginView.login-screen{
  background:
    radial-gradient(circle at 14% 16%,rgba(255,255,255,.16),transparent 28%),
    radial-gradient(circle at 82% 18%,rgba(66,184,131,.16),transparent 26%),
    linear-gradient(135deg,#061812 0%,#0f3d2e 48%,#071d17 100%)!important;
}
#loginView .login-hero{
  padding:clamp(34px,5vw,64px)!important;
  background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,0))!important;
  position:relative!important;
  overflow:hidden!important;
}
#loginView .login-hero::after{
  content:"";
  position:absolute;
  width:360px;
  height:360px;
  right:-120px;
  bottom:-120px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  pointer-events:none;
}
#loginView .brand-login{
  padding:12px!important;
  width:max-content!important;
  max-width:100%!important;
  border:1px solid rgba(255,255,255,.14)!important;
  border-radius:24px!important;
  background:rgba(255,255,255,.08)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important;
}
#loginView .login-copy h1{
  font-size:clamp(38px,5.3vw,68px)!important;
  letter-spacing:-.055em!important;
  max-width:760px!important;
}
#loginView .login-copy p{
  max-width:650px!important;
  font-size:clamp(16px,1.4vw,20px)!important;
  line-height:1.5!important;
  color:#d9f0e6!important;
}
#loginView .login-panel{
  padding:clamp(18px,3vw,42px)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03))!important;
}
#loginView .login-card{
  border:1px solid rgba(255,255,255,.65)!important;
  box-shadow:0 34px 95px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.75)!important;
  background:linear-gradient(180deg,#ffffff,#f8fbf9)!important;
}
#loginView .login-card h2{
  letter-spacing:-.035em!important;
  font-weight:1000!important;
}
#loginView .login-card p{
  margin-bottom:26px!important;
}
#loginView .login-card input,
#loginView .login-card select{
  width:100%!important;
  height:56px!important;
  border:1px solid #d9e6e0!important;
  border-radius:18px!important;
  background:#fff!important;
  color:#10271e!important;
  padding:0 16px!important;
  font-weight:950!important;
  outline:none!important;
  box-shadow:inset 0 1px 0 rgba(15,61,46,.03)!important;
}
#loginView .login-card input:focus,
#loginView .login-card select:focus{
  border-color:#0f3d2e!important;
  box-shadow:0 0 0 4px rgba(15,61,46,.10)!important;
}
#loginView #btnLogin{
  background:linear-gradient(135deg,#0f3d2e,#17694f)!important;
  box-shadow:0 16px 35px rgba(15,61,46,.24)!important;
  font-weight:1000!important;
  letter-spacing:.01em!important;
}
#loginView #btnLogin:hover{transform:translateY(-1px)!important;filter:brightness(1.02)!important;}

.sidebar-toggle,
#btnToggleSidebar{
  display:grid!important;
  place-items:center!important;
  position:absolute!important;
  top:22px!important;
  right:10px!important;
  width:38px!important;
  height:42px!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:none!important;
  font-size:20px!important;
  line-height:1!important;
  cursor:pointer!important;
}
.sidebar-toggle:hover,#btnToggleSidebar:hover{background:rgba(255,255,255,.20)!important;}
body.sidebar-collapsed .sidebar-toggle,
body.sidebar-collapsed #btnToggleSidebar{
  position:relative!important;
  inset:auto!important;
  width:54px!important;
  height:44px!important;
  margin:0 auto 10px!important;
  border-radius:16px!important;
  background:#fff!important;
  color:#0f3d2e!important;
  border:0!important;
  box-shadow:0 10px 24px rgba(0,0,0,.16)!important;
}


.semaforo-sidebar-box{
  display:grid!important;
  gap:12px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.07))!important;
  border:1px solid rgba(255,255,255,.18)!important;
  border-radius:18px!important;
  padding:14px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important;
}
.semaforo-sidebar-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
}
.semaforo-sidebar-head small{
  color:#d8eee5!important;
  font-size:11px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
}
.semaforo-total-pill{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:24px!important;
  padding:5px 9px!important;
  border-radius:999px!important;
  background:#eef6f2!important;
  color:#0f3d2e!important;
  font-size:10px!important;
  font-weight:1000!important;
  white-space:nowrap!important;
}
.semaforo-sidebar-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:9px!important;
}
.semaforo-sidebar-card{
  width:100%!important;
  min-height:48px!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:15px!important;
  padding:9px 10px!important;
  display:grid!important;
  grid-template-columns:14px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:9px!important;
  cursor:pointer!important;
  text-align:left!important;
  box-shadow:0 10px 22px rgba(0,0,0,.10)!important;
}
.semaforo-sidebar-card i{
  width:10px!important;
  height:10px!important;
  border-radius:999px!important;
  box-shadow:0 0 0 4px rgba(255,255,255,.45)!important;
}
.semaforo-sidebar-card span{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:12px!important;
  font-weight:1000!important;
  letter-spacing:.01em!important;
}
.semaforo-sidebar-card b{
  font-size:20px!important;
  line-height:1!important;
  font-weight:1000!important;
}
.semaforo-sidebar-card.yellow{background:#fef7d7!important;color:#7a4a00!important;}
.semaforo-sidebar-card.yellow i{background:#eab308!important;}
.semaforo-sidebar-card.orange{background:#ffedd5!important;color:#9a3412!important;}
.semaforo-sidebar-card.orange i{background:#f97316!important;}
.semaforo-sidebar-card:hover{transform:translateY(-1px)!important;filter:brightness(1.01)!important;}
.semaforo-sidebar-box.sem-dados .semaforo-sidebar-card{opacity:.78!important;}
body.sidebar-collapsed .semaforo-sidebar-box{display:none!important;}

.sidebar-user{
  border-radius:18px!important;
  border:1px solid rgba(255,255,255,.16)!important;
  background:rgba(255,255,255,.08)!important;
  padding:14px!important;
}
.sidebar-user b#usuarioLogado{
  font-size:17px!important;
  color:#fff!important;
  line-height:1.12!important;
  word-break:break-word!important;
}

@media(min-width:901px){
  .menu-consultas-ativas #btnLimparFiltrosConsultas,
  .menu-consultas-ativas .consultas-filter-actions{display:none!important;}
  .consultas-filters{
    display:grid!important;
    grid-template-columns:minmax(220px,1.55fr) repeat(6,minmax(0,.82fr))!important;
    grid-auto-flow:column!important;
    gap:9px!important;
    align-items:end!important;
    overflow:visible!important;
    padding:16px!important;
  }
  .consultas-filters .busca-field,
  .consultas-filters .ms-filter{min-width:0!important;}
  .consultas-filters .busca-field input,
  .consultas-filters .ms-filter-button{
    height:44px!important;
    min-height:44px!important;
    padding:0 11px!important;
  }
  .consultas-filters .busca-field label,
  .consultas-filters .ms-filter-label{
    font-size:10.5px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .ms-filter-button span{font-size:12.5px!important;}
}
@media(max-width:900px){
  #loginView.login-screen{grid-template-columns:1fr!important;overflow:auto!important;position:fixed!important;}
  #loginView .login-hero{display:none!important;}
  #loginView .login-panel{min-height:100dvh!important;}
  .semaforo-sidebar-grid{grid-template-columns:1fr 1fr!important;}
  .consultas-filters{grid-template-columns:1fr!important;grid-auto-flow:row!important;}
}
@media(max-width:480px){.semaforo-sidebar-grid{grid-template-columns:1fr!important;}}

/* =========================================================
   V75 — Login dividido, modais sem scroll lateral e visuais salvos fiéis aos filtros
========================================================= */
#loginView.login-screen{background:#fff!important;overflow:hidden!important;grid-template-columns:1fr 1fr!important;position:fixed!important}
#loginView.login-screen::before{content:"";position:absolute;inset:0;background:linear-gradient(112deg,#071d17 0%,#0f3d2e 47%,#ffffff 47.15%,#ffffff 100%);z-index:-2}
#loginView.login-screen::after{content:"";position:absolute;left:41%;top:-12%;width:28%;height:124%;background:linear-gradient(160deg,rgba(255,255,255,.13),rgba(255,255,255,0));transform:skewX(-13deg);z-index:-1;pointer-events:none}
#loginView .login-hero{background:transparent!important;position:relative;z-index:1}
#loginView .login-panel{background:transparent!important;position:relative;z-index:1}
#loginView .login-card{box-shadow:0 30px 90px rgba(15,61,46,.20)!important;border:1px solid #e4ece8!important}
#loginView .login-copy h1{font-size:clamp(34px,4.2vw,58px)!important}
#loginView .login-footer-brand{color:#d6eee4!important;text-align:left!important;margin-top:24px!important}
.modal-root{overflow:hidden!important;max-width:100vw!important}
.modal-root .modal{max-width:calc(100vw - 24px)!important;overflow:hidden!important}
.modal-root .modal:not(.full){max-height:calc(100vh - 24px)!important}
.modal-root .modal-body{overflow-x:hidden!important;overscroll-behavior:contain!important}
.modal-root .modal:not(.full) .modal-body{overflow-y:auto!important;scrollbar-gutter:stable;max-width:100%!important}
.modal-root .form-grid,.modal-root .info-grid,.modal-root .selection-list{max-width:100%;min-width:0}
.modal-root .field,.modal-root .field input,.modal-root .field select,.modal-root .field textarea{min-width:0;max-width:100%}
.modal-root .selection-list{overflow-x:hidden!important}
.modal-root .selection-item{min-width:0!important;max-width:100%!important}
.modal-root .report-view{overflow:auto!important;max-width:100%;}
.report-table td,.report-table th{overflow-wrap:anywhere;word-break:normal}
.visual-card p.filter-summary{background:#f7fbf9;border:1px solid #dce6e1;border-radius:13px;padding:9px 10px;color:#32433b;font-weight:800;line-height:1.35}
@media(max-width:900px){#loginView.login-screen{display:grid!important;grid-template-columns:1fr!important;overflow:auto!important}#loginView.login-screen::before{background:linear-gradient(180deg,#071d17 0%,#0f3d2e 42%,#ffffff 42.2%,#ffffff 100%)}#loginView .login-hero{padding:34px 22px 16px!important;min-height:260px}#loginView .login-panel{padding:18px!important;align-items:start!important}#loginView .login-card{border-radius:26px!important;padding:26px!important}}
@media(max-width:760px){.modal-root .modal:not(.full) .modal-body{overflow-y:auto!important}.modal-root .form-grid{grid-template-columns:1fr!important}}

/* V76 — Relatório de alocação no formato por blocos e disponibilidade clicável */
.rel-aloc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start;max-width:100%}
.rel-aloc-front-card{background:#fff;border:1px solid #c9d8d1;border-radius:10px;overflow:hidden;break-inside:avoid;box-shadow:0 8px 18px rgba(15,61,46,.06)}
.rel-aloc-front-title{display:grid;gap:2px;justify-items:center;background:#0f3d2e;color:#fff;text-align:center;padding:8px 10px}
.rel-aloc-front-title strong{font-size:12px;font-weight:1000;line-height:1.15;text-transform:uppercase;color:#fff;text-align:center}
.rel-aloc-front-title small{font-size:9px;font-weight:900;color:#dceee6;text-transform:uppercase;text-align:center}
.rel-aloc-front-body{display:grid;background:#fff}
.rel-aloc-type-row{display:grid;grid-template-columns:minmax(190px,.38fr) minmax(0,1fr);border-top:1px solid #dce6e1;min-height:30px}
.rel-aloc-type-row:first-child{border-top:0}
.rel-aloc-type-name{display:flex;align-items:center;background:#123f31;color:#fff;padding:7px 9px;font-size:10px;font-weight:1000;text-transform:uppercase;line-height:1.1}
.rel-aloc-fleet-list{display:flex;flex-wrap:wrap;gap:4px;padding:5px 7px;background:#fbfdfc;align-items:center;min-width:0}
.rel-aloc-fleet{display:inline-flex;align-items:center;justify-content:center;min-width:48px;border-radius:6px;border:1px solid #cbd5d1;background:#eef3f0;color:#123f31;font-size:10px;font-weight:1000;padding:3px 6px;line-height:1}
.rel-aloc-fleet.red{background:#ffe7e7;color:#9f1515;border-color:#f4b7b7}.rel-aloc-fleet.green{background:#e3f8eb;color:#0b6b37;border-color:#a9dfbf}.rel-aloc-fleet.orange{background:#fff0db;color:#9a5600;border-color:#f1c98b}.rel-aloc-fleet.yellow{background:#fff8d8;color:#806000;border-color:#ead77b}.rel-aloc-fleet.blue{background:#e7efff;color:#1959a6;border-color:#aac7f5}.rel-aloc-fleet.gray{background:#eef1ef;color:#5d6963;border-color:#cbd5d1}
.disp-frota-row{cursor:pointer}.disp-frota-row:hover td:first-child{background:#eef8f3!important}.disp-item-cell{display:grid;gap:1px;min-width:0}.disp-item-cell b{font-weight:1000;color:#10271e;white-space:nowrap}.disp-item-cell small{font-size:9px;color:#60736a;font-weight:1000;text-transform:uppercase}.disp-item-cell em{font-size:9px;color:#0f6b4c;font-style:normal;font-weight:1000;text-transform:uppercase}.modal-os-shell{margin-top:14px;max-height:34vh;overflow:auto}.modal-os-table{min-width:860px!important}
@media(max-width:900px){.rel-aloc-grid{grid-template-columns:1fr}.rel-aloc-type-row{grid-template-columns:1fr}.rel-aloc-type-name{justify-content:center;text-align:center}.rel-aloc-fleet-list{justify-content:center}.disp-item-cell b{white-space:normal}}

/* =========================================================
   V78 — filtros inteligentes multi-seleção + relatórios ajustados
========================================================= */
.det-filters,
.disp-filters{
  overflow:visible!important;
  max-width:100%!important;
  min-width:0!important;
}
.det-filters{grid-template-columns:minmax(250px,1.35fr) repeat(3,minmax(170px,.85fr))!important;align-items:end!important;}
.disp-filters{grid-template-columns:minmax(138px,.7fr) minmax(138px,.7fr) minmax(240px,1.15fr) repeat(3,minmax(165px,.8fr)) auto!important;align-items:end!important;}
.det-busca-field,
.disp-busca-field{min-width:0!important;}
.det-filters .ms-filter,
.disp-filters .ms-filter{min-width:0!important;position:relative!important;}
.det-filters .ms-filter-button,
.disp-filters .ms-filter-button{width:100%!important;min-width:0!important;}
.det-filters .field input,
.disp-filters .field input,
.disp-filters .field select{height:46px!important;}
.disp-filter-actions{display:flex;align-items:end;height:100%;}
.disp-filter-actions .btn{height:46px!important;padding:0 14px!important;}
.disp-filter-actions .btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none!important;transform:none!important;}
.disp-drill-info{margin:-6px 0 12px;background:#eef6f2;border:1px solid #cfe3da;border-radius:16px;padding:10px 14px;color:#0f3d2e;font-size:12px;font-weight:950;}
.disp-table-shell{border-radius:22px!important;}
.matrix .disp-item-cell{display:grid;gap:2px;align-items:center;line-height:1.15;}
.matrix .disp-item-cell b{font-weight:1000;color:#10271e;}
.matrix .disp-item-cell small{display:block;color:#60736a;font-size:10px;font-weight:950;text-transform:uppercase;}
.matrix .disp-item-cell em{display:inline-flex;width:max-content;margin-top:2px;color:#0f3d2e;background:#edf7f2;border:1px solid #cfe3da;border-radius:999px;padding:2px 7px;font-size:9px;font-style:normal;font-weight:1000;text-transform:uppercase;}
.matrix tr.disp-drill-row{cursor:pointer;}
.matrix tr.disp-drill-row:hover td:first-child{background:#edf7f2!important;}
.matrix tr.disp-frota-row{cursor:pointer;}
.matrix tr.disp-frota-row td:first-child{box-shadow:inset 4px 0 0 #0f3d2e;}
.matrix tr.nivel-0 td:first-child{font-weight:1000;}
.matrix tr.nivel-1 td:first-child{background:#fbfdfc;}
.matrix tr.nivel-2 td:first-child{background:#f7fbf9;}
.modal-root{overflow:hidden!important;}
.modal{overflow:hidden!important;max-width:96vw!important;max-height:94vh!important;display:flex!important;flex-direction:column!important;}
.modal.full{max-width:100vw!important;max-height:100vh!important;width:100vw!important;height:100vh!important;}
.modal-body{overflow:auto!important;overflow-x:hidden!important;min-height:0!important;}
.modal-os-shell{max-height:min(48vh,420px)!important;overflow:auto!important;}
.modal-os-table{min-width:760px!important;}
.report-modal-shell{background:#fff!important;}
.report-modal-shell .report-view{overflow:auto!important;overflow-x:hidden!important;height:calc(100vh - 76px)!important;min-height:0!important;}
.report-modal-shell .report-actions{top:0!important;}
.report-view.relatorio-alocacao-total-frente{padding:10px!important;}
.report-view.relatorio-alocacao-total-frente .report-head{margin-bottom:7px!important;padding-bottom:7px!important;}
.report-view.relatorio-alocacao-total-frente .report-head h2{font-size:20px!important;}
.report-view.relatorio-alocacao-total-frente .report-section{margin:8px 0 12px!important;}
.report-view.relatorio-alocacao-total-frente .rel-aloc-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(430px,100%),1fr))!important;gap:8px!important;align-items:start!important;}
.report-view.relatorio-alocacao-total-frente .rel-aloc-grid.dense{grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr))!important;gap:6px!important;}
.report-view.relatorio-alocacao-total-frente .rel-aloc-front-card{break-inside:avoid!important;border-radius:8px!important;}
.report-view.relatorio-alocacao-total-frente .rel-aloc-front-title{padding:6px 8px!important;}
.report-view.relatorio-alocacao-total-frente .rel-aloc-front-title strong{font-size:11px!important;line-height:1.08!important;text-align:center!important;}
.report-view.relatorio-alocacao-total-frente .rel-aloc-front-title small{font-size:8px!important;}
.report-view.relatorio-alocacao-total-frente .rel-aloc-type-row{grid-template-columns:minmax(150px,.36fr) minmax(0,1fr)!important;min-height:24px!important;}
.report-view.relatorio-alocacao-total-frente .rel-aloc-type-name{font-size:8.3px!important;padding:4px 6px!important;}
.report-view.relatorio-alocacao-total-frente .rel-aloc-fleet-list{gap:3px!important;padding:4px 5px!important;}
.report-view.relatorio-alocacao-total-frente .rel-aloc-fleet{font-size:8px!important;min-width:39px!important;padding:2px 4px!important;}
.report-view.relatorio-alocacao-total-frente .report-table th,
.report-view.relatorio-alocacao-total-frente .report-table td{font-size:9px!important;padding:4px 5px!important;line-height:1.13!important;}
.report-view.relatorio-disponibilidade-colorido{padding:12px!important;}
.disp-report-legend{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 10px;}
.disp-report-legend span{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:1000;border:1px solid transparent;}
.disp-report-legend .disp-excelente{background:#dff8e8;color:#075c2d;border-color:#a9dfbf;}
.disp-report-legend .disp-ok{background:#ecf8df;color:#3f6d05;border-color:#cce9a9;}
.disp-report-legend .disp-warn{background:#fff0c7;color:#875300;border-color:#f1cd76;}
.disp-report-legend .disp-bad{background:#ffe0e0;color:#a11212;border-color:#f0aaaa;}
.relatorio-disponibilidade-colorido .disponibilidade-report-table th{font-size:10px!important;text-align:center!important;}
.relatorio-disponibilidade-colorido .disponibilidade-report-table th:first-child{text-align:left!important;}
.relatorio-disponibilidade-colorido .disponibilidade-report-table td{font-size:10px!important;text-align:center!important;}
.relatorio-disponibilidade-colorido .disponibilidade-report-table td:first-child{text-align:left!important;min-width:210px!important;}
.relatorio-disponibilidade-colorido .disponibilidade-report-table small{display:block;color:#60736a;font-size:8px;font-weight:900;text-transform:uppercase;margin-top:2px;}
@media(max-width:1350px){.disp-filters{grid-template-columns:repeat(3,minmax(0,1fr))!important;}.det-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media(max-width:760px){.det-filters,.disp-filters{grid-template-columns:1fr!important;}.disp-filter-actions .btn{width:100%!important;}.report-view.relatorio-alocacao-total-frente .rel-aloc-type-row{grid-template-columns:1fr!important;}.report-view.relatorio-alocacao-total-frente .rel-aloc-type-name{justify-content:center;text-align:center;}.report-modal-shell .report-view{height:calc(100dvh - 72px)!important;}}

/* ===== V79 consolidado: login, alocação, modais e disponibilidade ===== */
.login-screen{
  grid-template-columns:1.05fr .95fr!important;
  background:linear-gradient(108deg,#071d17 0%,#0f3d2e 46%,#f8faf9 46.2%,#ffffff 100%)!important;
  overflow:hidden!important;
}
.login-screen::before{
  content:"";
  position:absolute;
  inset:-2% 39% -2% 34%;
  background:linear-gradient(108deg,rgba(255,255,255,.08),rgba(255,255,255,.22) 48%,rgba(15,61,46,.06) 49%,rgba(255,255,255,0) 50%);
  clip-path:polygon(28% 0,100% 0,72% 100%,0 100%);
  pointer-events:none;
  z-index:0;
}
.login-screen::after{
  content:"";
  position:absolute;
  inset:18px 22px 22px 50%;
  border:1px solid rgba(15,61,46,.15);
  border-radius:26px;
  pointer-events:none;
  z-index:0;
}
.login-hero,.login-panel{position:relative!important;z-index:1!important;}
.login-hero{justify-content:center!important;padding:56px 64px!important;background:radial-gradient(circle at 20% 8%,rgba(255,255,255,.12),transparent 27%)!important;}
.brand-login{position:absolute!important;top:56px!important;left:64px!important;}
.login-copy{display:grid!important;align-content:center!important;justify-items:start!important;margin-top:22px!important;min-height:45vh!important;}
.login-copy h1{font-size:clamp(38px,4vw,58px)!important;margin-bottom:14px!important;}
.login-copy p{max-width:620px!important;margin:0!important;}
.login-footer-brand{margin-top:42px!important;display:block!important;color:#d6eee4!important;font-weight:950!important;text-transform:uppercase!important;}
.login-card{border:1px solid rgba(15,61,46,.10)!important;box-shadow:0 28px 80px rgba(15,61,46,.16)!important;}
.login-card h2{font-size:clamp(28px,2.2vw,36px)!important;}
.login-card > p,.login-card > small{display:none!important;}
.login-card label{margin-top:16px!important;}
.login-card input,.login-card select{height:58px!important;border-radius:18px!important;}
@media(max-width:900px){
  .login-screen{display:flex!important;align-items:center!important;justify-content:center!important;background:linear-gradient(180deg,#071d17 0 36%,#fff 36% 100%)!important;padding:18px!important;}
  .login-screen::before,.login-screen::after,.login-hero{display:none!important;}
  .login-panel{width:100%!important;padding:0!important;}
}

/* Determinar total/frente: layout principal compacto sem relação de paradas na tela */
.det-page{gap:12px!important;}
.det-toolbar{padding:12px 14px!important;border-radius:20px!important;box-shadow:0 10px 24px rgba(15,61,46,.08)!important;}
.det-filters{padding:14px!important;border-radius:20px!important;box-shadow:0 10px 24px rgba(15,61,46,.07)!important;}
.paradas-filtro-card{display:none!important;}
.allocation-board{grid-template-columns:repeat(auto-fit,minmax(440px,1fr))!important;gap:12px!important;}
.process-block{padding:12px!important;border-radius:18px!important;box-shadow:0 10px 24px rgba(15,61,46,.07)!important;}
.process-head{padding-bottom:8px!important;margin-bottom:8px!important;}
.process-head h3{font-size:18px!important;line-height:1.1!important;}
.front-grid{grid-template-columns:repeat(auto-fit,minmax(310px,1fr))!important;gap:10px!important;}
.front-card{padding:10px!important;border-radius:16px!important;min-height:0!important;background:#fbfdfc!important;}
.front-card h4{text-align:center!important;font-size:15px!important;line-height:1.15!important;margin:0 0 8px!important;}
.type-row{margin-top:8px!important;}
.type-title{display:flex!important;align-items:center!important;min-height:26px!important;margin-bottom:5px!important;line-height:1.15!important;}
.fleet-list{gap:6px!important;align-items:center!important;}
.fleet-card{min-width:58px!important;padding:6px 9px!important;border-radius:10px!important;box-shadow:0 4px 12px rgba(15,61,46,.10)!important;}
@media(max-width:720px){.allocation-board{grid-template-columns:1fr!important}.front-grid{grid-template-columns:1fr!important}.det-toolbar{align-items:stretch!important}.det-toolbar .btn{width:100%!important}}

/* Relatório de alocação: compactar área superior e melhorar print */
.relatorio-alocacao-total-frente .report-actions{padding:0 0 6px!important;}
.relatorio-alocacao-total-frente .report-head{padding:6px 0 8px!important;margin:0 0 8px!important;min-height:0!important;}
.relatorio-alocacao-total-frente .report-head h2{font-size:18px!important;margin:0!important;}
.relatorio-alocacao-total-frente .report-head p{margin:3px 0 0!important;font-size:12px!important;}
.relatorio-alocacao-total-frente .report-section{margin:8px 0 12px!important;}
.relatorio-alocacao-total-frente .rel-aloc-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))!important;gap:8px!important;align-items:start!important;}
.relatorio-alocacao-total-frente .rel-aloc-front-title{padding:7px 8px!important;text-align:center!important;}
.relatorio-alocacao-total-frente .rel-aloc-type-row{min-height:24px!important;}
.relatorio-alocacao-total-frente .rel-aloc-type-name{font-size:10px!important;}
.relatorio-alocacao-total-frente .rel-aloc-fleet{font-size:10px!important;min-width:48px!important;padding:3px 5px!important;}

/* Modais compactos e sem quebra lateral */
.modal-root .modal:not(.full){width:min(1180px,calc(100vw - 28px))!important;max-height:calc(100vh - 28px)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;border-radius:24px!important;}
.modal-root .modal:not(.full) .modal-header{flex:0 0 auto!important;padding:16px 20px!important;background:linear-gradient(135deg,#0f3d2e,#14523e)!important;color:#fff!important;display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px!important;}
.modal-root .modal:not(.full) .modal-header h3{color:#fff!important;margin:0!important;}
.modal-root .modal:not(.full) .modal-header p{color:#dceee6!important;margin:3px 0 0!important;}
.modal-root .modal:not(.full) .modal-close{background:#fff!important;color:#0f3d2e!important;border:0!important;border-radius:14px!important;padding:10px 14px!important;font-weight:1000!important;}
.modal-root .modal:not(.full) .modal-body{flex:1 1 auto!important;min-height:0!important;overflow:auto!important;overflow-x:hidden!important;padding:16px 20px!important;background:#fff!important;}
.compact-info-grid,.detalhe-frota-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;gap:10px!important;max-width:100%!important;}
.info-card{min-width:0!important;overflow:hidden!important;}
.info-card strong{overflow-wrap:anywhere!important;word-break:normal!important;}
.modal-section-title{margin:14px 0 8px!important;color:#0f3d2e!important;font-weight:1000!important;text-transform:uppercase!important;font-size:13px!important;}
.compact-modal-table-shell,.modal-os-shell{max-height:min(40vh,360px)!important;overflow:auto!important;border:1px solid var(--line)!important;border-radius:16px!important;}
.compact-modal-table,.modal-os-table{min-width:860px!important;table-layout:fixed!important;}
.compact-modal-table th,.compact-modal-table td,.modal-os-table th,.modal-os-table td{font-size:11px!important;padding:7px!important;line-height:1.18!important;overflow-wrap:anywhere!important;}
.switch-flag{display:inline-flex!important;align-items:center!important;gap:6px!important;font-size:11px!important;font-weight:950!important;color:#0f3d2e!important;white-space:nowrap!important;}
.switch-flag input{accent-color:#0f3d2e!important;width:16px!important;height:16px!important;}
@media(max-width:760px){.compact-info-grid,.detalhe-frota-grid{grid-template-columns:1fr!important}.modal-root .modal:not(.full) .modal-body{padding:12px!important}.compact-modal-table,.modal-os-table{min-width:760px!important}}

/* Disponibilidade: períodos longos legíveis e relatório colorido */
.disp-table-shell{max-width:100%!important;overflow:auto!important;max-height:calc(100vh - 250px)!important;border-radius:18px!important;}
.matrix{table-layout:fixed!important;min-width:920px!important;}
.matrix th{white-space:nowrap!important;font-size:11px!important;}
.matrix td{font-size:12px!important;line-height:1.1!important;min-width:54px!important;}
.matrix th:first-child,.matrix td:first-child{position:sticky!important;left:0!important;z-index:2!important;background:#fff!important;min-width:210px!important;max-width:240px!important;}
.matrix th:first-child{z-index:3!important;background:#0f3d2e!important;color:#fff!important;}
.disp-item-cell b{display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.disp-item-cell small,.disp-item-cell em{display:block!important;font-size:10px!important;line-height:1.1!important;}
.report-table td.disp-excelente,.disponibilidade-report-table td.disp-excelente{background:#dff8e8!important;color:#075c2d!important;font-weight:1000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
.report-table td.disp-ok,.disponibilidade-report-table td.disp-ok{background:#ecf8df!important;color:#3f6d05!important;font-weight:1000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
.report-table td.disp-warn,.disponibilidade-report-table td.disp-warn{background:#fff0c7!important;color:#875300!important;font-weight:1000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
.report-table td.disp-bad,.disponibilidade-report-table td.disp-bad{background:#ffe0e0!important;color:#a11212!important;font-weight:1000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
.report-table td.disp-empty,.disponibilidade-report-table td.disp-empty{background:#f4f6f5!important;color:#9aa39f!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
.disp-report-legend{display:flex!important;gap:8px!important;flex-wrap:wrap!important;margin:8px 0 10px!important;}
.disp-report-legend span{border-radius:999px!important;padding:6px 10px!important;font-size:11px!important;font-weight:1000!important;border:1px solid rgba(15,61,46,.12)!important;}
.disp-report-legend .disp-excelente{background:#dff8e8!important;color:#075c2d!important;}
.disp-report-legend .disp-ok{background:#ecf8df!important;color:#3f6d05!important;}
.disp-report-legend .disp-warn{background:#fff0c7!important;color:#875300!important;}


/* =========================================================
   V80 — Correção focada da tela de login
   Mantém o conceito verde/branco com corte, sem sobreposição
   visual e com o texto esquerdo centralizado.
========================================================= */
#loginView.login-screen{
  position:fixed!important;
  inset:0!important;
  display:grid!important;
  grid-template-columns:minmax(560px,52%) minmax(420px,48%)!important;
  background:#f8fbf9!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
#loginView.login-screen::before,
#loginView.login-screen::after{
  display:none!important;
  content:none!important;
}
#loginView .login-hero{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  min-height:100dvh!important;
  padding:clamp(40px,4.5vw,76px)!important;
  background:linear-gradient(135deg,#061d17 0%,#0b3328 58%,#104936 100%)!important;
  overflow:visible!important;
  z-index:1!important;
}
#loginView .login-hero::before{
  content:""!important;
  position:absolute!important;
  top:-3vh!important;
  right:-12.5vw!important;
  width:24vw!important;
  height:106vh!important;
  background:linear-gradient(155deg,rgba(17,79,60,.98),rgba(9,42,32,.96))!important;
  transform:skewX(-14deg)!important;
  transform-origin:top center!important;
  box-shadow:22px 0 70px rgba(15,61,46,.13)!important;
  z-index:0!important;
  pointer-events:none!important;
}
#loginView .login-hero::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:
    radial-gradient(circle at 18% 18%,rgba(255,255,255,.11),transparent 28%),
    linear-gradient(90deg,rgba(255,255,255,.02),transparent 52%)!important;
  z-index:0!important;
  pointer-events:none!important;
}
#loginView .brand-login{
  position:absolute!important;
  top:clamp(28px,5vh,64px)!important;
  left:clamp(32px,4.5vw,76px)!important;
  z-index:2!important;
  width:auto!important;
  max-width:min(380px,72%)!important;
  padding:10px 14px!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 18px 48px rgba(0,0,0,.14)!important;
  backdrop-filter:blur(10px)!important;
}
#loginView .brand-login .brand-logo{
  width:58px!important;
  height:58px!important;
  flex:0 0 58px!important;
  border-radius:18px!important;
  box-shadow:0 14px 35px rgba(0,0,0,.18)!important;
}
#loginView .brand-login .brand-logo img{
  width:50px!important;
  max-height:50px!important;
}
#loginView .brand-login strong{
  color:#fff!important;
  font-size:17px!important;
  line-height:1.05!important;
}
#loginView .brand-login span{
  color:#d8f1e8!important;
  font-size:12px!important;
  font-weight:900!important;
}
#loginView .login-copy{
  position:relative!important;
  z-index:2!important;
  display:block!important;
  width:min(620px,78%)!important;
  min-height:0!important;
  margin:0!important;
  padding-top:42px!important;
  align-content:initial!important;
  justify-items:initial!important;
}
#loginView .login-copy h1{
  max-width:620px!important;
  margin:0 0 18px!important;
  color:#fff!important;
  font-size:clamp(42px,4vw,64px)!important;
  line-height:1.02!important;
  letter-spacing:-.045em!important;
  font-weight:1000!important;
  text-wrap:balance!important;
}
#loginView .login-copy p{
  max-width:560px!important;
  margin:0!important;
  color:#dff4ec!important;
  font-size:clamp(16px,1.18vw,20px)!important;
  line-height:1.45!important;
  font-weight:850!important;
  text-align:left!important;
}
#loginView .login-footer-brand{
  display:block!important;
  margin-top:38px!important;
  color:#dff4ec!important;
  text-align:left!important;
  font-size:13px!important;
  letter-spacing:.04em!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
#loginView .login-panel{
  position:relative!important;
  z-index:3!important;
  display:grid!important;
  place-items:center!important;
  min-height:100dvh!important;
  padding:clamp(28px,4vw,72px)!important;
  background:
    radial-gradient(circle at 50% 50%,rgba(15,61,46,.08),transparent 38%),
    linear-gradient(180deg,#ffffff,#f8fbf9)!important;
  overflow:hidden!important;
}
#loginView .login-panel::before{
  content:""!important;
  position:absolute!important;
  inset:24px!important;
  border:1px solid rgba(15,61,46,.08)!important;
  border-radius:28px!important;
  pointer-events:none!important;
}
#loginView .login-card{
  position:relative!important;
  z-index:2!important;
  width:min(430px,100%)!important;
  padding:clamp(30px,3vw,42px)!important;
  border-radius:28px!important;
  background:rgba(255,255,255,.96)!important;
  border:1px solid #dde8e3!important;
  box-shadow:0 28px 78px rgba(15,61,46,.16)!important;
}
#loginView .login-logo{
  width:86px!important;
  height:86px!important;
  margin:0 auto 20px!important;
  border-radius:24px!important;
  background:#f8fbf9!important;
  box-shadow:none!important;
}
#loginView .login-logo img{
  width:72px!important;
  max-height:72px!important;
}
#loginView .login-card h2{
  margin:0 0 20px!important;
  color:#0b3328!important;
  font-size:clamp(28px,2vw,34px)!important;
  line-height:1.05!important;
  text-align:center!important;
  font-weight:1000!important;
}
#loginView .login-card > p,
#loginView .login-card > small{
  display:none!important;
}
#loginView .login-card label{
  display:block!important;
  margin:14px 0 7px!important;
  color:#143e31!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  letter-spacing:.02em!important;
}
#loginView .login-card input,
#loginView .login-card select{
  height:56px!important;
  border-radius:16px!important;
  border:1px solid #d8e5df!important;
  background:#fff!important;
  color:#10271e!important;
  font-size:15px!important;
  font-weight:900!important;
  padding:0 16px!important;
}
#loginView .login-card input::placeholder{
  color:#75857e!important;
  opacity:1!important;
}
#loginView #btnLogin{
  height:58px!important;
  margin-top:22px!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,#0f3d2e,#1f704f)!important;
  box-shadow:0 16px 34px rgba(15,61,46,.24)!important;
}
@media(max-width:1100px){
  #loginView.login-screen{grid-template-columns:48% 52%!important;}
  #loginView .login-hero{padding:34px!important;}
  #loginView .brand-login{left:34px!important;}
  #loginView .login-copy{width:82%!important;}
  #loginView .login-copy h1{font-size:clamp(34px,4.5vw,50px)!important;}
}
@media(max-width:900px){
  #loginView.login-screen{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:18px!important;
    background:linear-gradient(180deg,#071d17 0%,#0f3d2e 34%,#f8fbf9 34.2%,#ffffff 100%)!important;
    overflow:auto!important;
  }
  #loginView .login-hero,
  #loginView .login-hero::before,
  #loginView .login-hero::after{
    display:none!important;
  }
  #loginView .login-panel{
    width:100%!important;
    min-height:auto!important;
    padding:0!important;
    background:transparent!important;
    overflow:visible!important;
  }
  #loginView .login-panel::before{display:none!important;}
  #loginView .login-card{
    width:min(440px,100%)!important;
    border-radius:26px!important;
    padding:28px!important;
  }
}

/* ============================================================
   PATCH V81 — Login aprovado: corte limpo, sem sobreposição
   ============================================================ */
#loginView.login-screen{
  position:fixed!important;
  inset:0!important;
  z-index:99!important;
  display:grid!important;
  grid-template-columns:56% 44%!important;
  min-height:100dvh!important;
  padding:0!important;
  overflow:hidden!important;
  background:#f8fbf9!important;
  color:#10271e!important;
}
#loginView.login-screen::before,
#loginView.login-screen::after{
  display:none!important;
}
#loginView .login-hero{
  position:relative!important;
  z-index:2!important;
  min-height:100dvh!important;
  padding:clamp(34px,4.2vw,76px)!important;
  display:grid!important;
  grid-template-rows:auto 1fr auto!important;
  align-items:stretch!important;
  justify-content:stretch!important;
  background:
    radial-gradient(circle at 18% 18%,rgba(56,177,124,.18),transparent 31%),
    radial-gradient(circle at 76% 58%,rgba(255,255,255,.08),transparent 30%),
    linear-gradient(135deg,#061e18 0%,#0b3328 48%,#15543f 100%)!important;
  clip-path:polygon(0 0,86% 0,100% 100%,0 100%)!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
#loginView .login-hero::before{
  content:""!important;
  position:absolute!important;
  inset:-10% 4% -16% 45%!important;
  z-index:0!important;
  background:
    linear-gradient(105deg,transparent 0 22%,rgba(255,255,255,.055) 22% 44%,transparent 44% 100%),
    linear-gradient(105deg,transparent 0 53%,rgba(255,255,255,.09) 53% 54%,transparent 54% 100%)!important;
  transform:skewX(-8deg)!important;
  pointer-events:none!important;
}
#loginView .login-hero::after{
  content:""!important;
  position:absolute!important;
  width:min(260px,16vw)!important;
  height:min(520px,48vh)!important;
  right:18%!important;
  top:38%!important;
  z-index:0!important;
  border-radius:28px!important;
  background:rgba(255,255,255,.055)!important;
  border:1px solid rgba(255,255,255,.055)!important;
  transform:translateY(-50%) rotate(13deg)!important;
  pointer-events:none!important;
}
#loginView .brand-login{
  position:relative!important;
  z-index:3!important;
  top:auto!important;
  left:auto!important;
  width:max-content!important;
  max-width:min(380px,78%)!important;
  padding:12px 18px!important;
  border-radius:24px!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  background:rgba(255,255,255,.105)!important;
  border:1px solid rgba(255,255,255,.28)!important;
  box-shadow:0 18px 48px rgba(0,0,0,.16)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
}
#loginView .brand-login .brand-logo{
  width:58px!important;
  height:58px!important;
  flex:0 0 58px!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 14px 35px rgba(0,0,0,.18)!important;
}
#loginView .brand-login .brand-logo img{
  width:50px!important;
  max-height:50px!important;
  object-fit:contain!important;
}
#loginView .brand-login strong{
  color:#fff!important;
  font-size:18px!important;
  line-height:1.08!important;
  font-weight:1000!important;
  letter-spacing:.01em!important;
  text-shadow:0 8px 24px rgba(0,0,0,.16)!important;
}
#loginView .brand-login span{
  color:#d9f3e9!important;
  font-size:12.5px!important;
  font-weight:900!important;
  margin-top:4px!important;
}
#loginView .login-copy{
  position:relative!important;
  z-index:3!important;
  align-self:center!important;
  width:min(650px,74%)!important;
  margin:0 0 0 clamp(0px,.8vw,14px)!important;
  padding:0!important;
  transform:translateY(-2vh)!important;
}
#loginView .login-copy h1{
  max-width:650px!important;
  margin:0 0 18px!important;
  color:#fff!important;
  font-size:clamp(42px,4.2vw,66px)!important;
  line-height:1.02!important;
  letter-spacing:-.055em!important;
  font-weight:1000!important;
  text-wrap:balance!important;
  text-shadow:0 16px 46px rgba(0,0,0,.28)!important;
}
#loginView .login-copy h1::after{
  content:""!important;
  display:block!important;
  width:72px!important;
  height:4px!important;
  margin-top:18px!important;
  border-radius:999px!important;
  background:#28b06f!important;
  box-shadow:0 10px 26px rgba(40,176,111,.28)!important;
}
#loginView .login-copy p{
  max-width:590px!important;
  margin:0!important;
  color:#dff4ec!important;
  font-size:clamp(17px,1.25vw,22px)!important;
  line-height:1.45!important;
  font-weight:850!important;
  text-align:left!important;
  text-shadow:0 12px 34px rgba(0,0,0,.22)!important;
}
#loginView .login-footer-brand{
  display:block!important;
  margin-top:70px!important;
  color:#c5eadc!important;
  text-align:left!important;
  font-size:13px!important;
  letter-spacing:.05em!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
#loginView .login-panel{
  position:relative!important;
  z-index:1!important;
  min-height:100dvh!important;
  display:grid!important;
  place-items:center!important;
  padding:clamp(34px,5vw,88px) clamp(34px,5vw,96px) clamp(34px,5vw,88px) clamp(72px,7vw,136px)!important;
  margin-left:clamp(-118px,-6.8vw,-62px)!important;
  background:
    radial-gradient(circle at 52% 50%,rgba(15,61,46,.08),transparent 34%),
    radial-gradient(circle at 70% 42%,rgba(20,82,62,.055),transparent 32%),
    linear-gradient(180deg,#ffffff 0%,#f8fbf9 100%)!important;
  overflow:hidden!important;
}
#loginView .login-panel::before{
  content:""!important;
  position:absolute!important;
  inset:clamp(18px,2vw,34px)!important;
  border:1px solid rgba(15,61,46,.07)!important;
  border-radius:30px!important;
  pointer-events:none!important;
}
#loginView .login-panel::after{
  content:""!important;
  position:absolute!important;
  left:clamp(28px,4.2vw,78px)!important;
  top:-10%!important;
  width:1px!important;
  height:120%!important;
  background:linear-gradient(180deg,transparent,rgba(15,61,46,.14),transparent)!important;
  transform:rotate(9deg)!important;
  pointer-events:none!important;
}
#loginView .login-card{
  position:relative!important;
  z-index:2!important;
  width:min(430px,100%)!important;
  padding:clamp(34px,3.4vw,50px)!important;
  border-radius:28px!important;
  background:rgba(255,255,255,.97)!important;
  border:1px solid #dfeae5!important;
  box-shadow:0 32px 86px rgba(15,61,46,.16)!important;
  backdrop-filter:blur(12px)!important;
  -webkit-backdrop-filter:blur(12px)!important;
}
#loginView .login-logo{
  width:84px!important;
  height:84px!important;
  margin:0 auto 22px!important;
  border-radius:24px!important;
  background:transparent!important;
  box-shadow:none!important;
  display:grid!important;
  place-items:center!important;
}
#loginView .login-logo img{
  width:76px!important;
  max-height:76px!important;
  object-fit:contain!important;
}
#loginView .login-card h2{
  margin:0 0 24px!important;
  color:#0b3328!important;
  font-size:clamp(29px,2vw,35px)!important;
  line-height:1.05!important;
  text-align:center!important;
  font-weight:1000!important;
  letter-spacing:-.025em!important;
}

#loginView .login-card label{
  display:block!important;
  margin:14px 0 8px!important;
  color:#133d30!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:1000!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
#loginView .login-card input,
#loginView .login-card select{
  width:100%!important;
  height:56px!important;
  border-radius:15px!important;
  border:1px solid #d7e5df!important;
  background:#fff!important;
  color:#10271e!important;
  font-size:15px!important;
  font-weight:850!important;
  padding:0 16px!important;
  outline:none!important;
  box-shadow:none!important;
}
#loginView .login-card input:focus,
#loginView .login-card select:focus{
  border-color:#1d6b4d!important;
  box-shadow:0 0 0 4px rgba(29,107,77,.11)!important;
}

#loginView #btnLogin{
  width:100%!important;
  height:60px!important;
  margin-top:24px!important;
  border:0!important;
  border-radius:15px!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:1000!important;
  background:linear-gradient(135deg,#0f3d2e,#1d6b4d)!important;
  box-shadow:0 16px 34px rgba(15,61,46,.25)!important;
  cursor:pointer!important;
}
#loginView #btnLogin:hover{
  filter:brightness(1.03)!important;
  transform:translateY(-1px)!important;
}
@media(max-width:1220px){
  #loginView.login-screen{grid-template-columns:54% 46%!important;}
  #loginView .login-copy{width:min(560px,72%)!important;}
  #loginView .login-copy h1{font-size:clamp(38px,4vw,54px)!important;}
  #loginView .login-copy p{font-size:16px!important;}
  #loginView .login-panel{padding-left:clamp(62px,6vw,100px)!important;}
}
@media(max-width:940px){
  #loginView.login-screen{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:100dvh!important;
    padding:18px!important;
    overflow:auto!important;
    background:
      linear-gradient(180deg,rgba(7,29,23,.92),rgba(15,61,46,.92) 0 36%,#f8fbf9 36.2%,#ffffff 100%)!important;
  }
  #loginView .login-hero,
  #loginView .login-hero::before,
  #loginView .login-hero::after,
  #loginView .brand-login,
  #loginView .login-copy{
    display:none!important;
  }
  #loginView .login-panel{
    width:100%!important;
    min-height:auto!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    overflow:visible!important;
  }
  #loginView .login-panel::before,
  #loginView .login-panel::after{display:none!important;}
  #loginView .login-card{
    width:min(440px,100%)!important;
    border-radius:26px!important;
    padding:28px!important;
  }
}

/* ============================================================
   PATCH V82 — Login validado: visual igual à prévia e clique funcional
   ============================================================ */
#loginView.login-screen.hidden{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#appView.app-shell.hidden{
  display:none!important;
}
#loginView.login-screen{
  position:fixed!important;
  inset:0!important;
  z-index:99!important;
  display:grid!important;
  grid-template-columns:58% 42%!important;
  min-height:100dvh!important;
  padding:0!important;
  overflow:hidden!important;
  background:#fbfdfc!important;
  color:#10271e!important;
}
#loginView.login-screen::before,
#loginView.login-screen::after{display:none!important;}
#loginView .login-hero{
  position:relative!important;
  z-index:1!important;
  min-height:100dvh!important;
  padding:clamp(38px,4.2vw,72px)!important;
  display:grid!important;
  grid-template-rows:auto 1fr auto!important;
  align-items:stretch!important;
  justify-content:stretch!important;
  background:
    radial-gradient(circle at 18% 18%,rgba(40,176,111,.18),transparent 30%),
    radial-gradient(circle at 72% 55%,rgba(255,255,255,.09),transparent 31%),
    linear-gradient(135deg,#061e18 0%,#0b3328 48%,#15543f 100%)!important;
  clip-path:polygon(0 0,84% 0,100% 100%,0 100%)!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
#loginView .login-hero::before{
  content:""!important;
  position:absolute!important;
  inset:-14% 5% -16% 44%!important;
  z-index:0!important;
  background:
    linear-gradient(105deg,transparent 0 26%,rgba(255,255,255,.05) 26% 48%,transparent 48% 100%),
    linear-gradient(105deg,transparent 0 58%,rgba(255,255,255,.11) 58% 58.7%,transparent 58.7% 100%)!important;
  transform:skewX(-8deg)!important;
  pointer-events:none!important;
}
#loginView .login-hero::after{
  content:""!important;
  position:absolute!important;
  width:min(270px,17vw)!important;
  height:min(520px,48vh)!important;
  right:17%!important;
  top:50%!important;
  z-index:0!important;
  border-radius:28px!important;
  background:rgba(255,255,255,.052)!important;
  border:1px solid rgba(255,255,255,.055)!important;
  transform:translateY(-50%) rotate(13deg)!important;
  pointer-events:none!important;
}
#loginView .brand-login{
  position:relative!important;
  z-index:3!important;
  top:auto!important;
  left:auto!important;
  width:max-content!important;
  max-width:min(380px,78%)!important;
  padding:12px 18px!important;
  border-radius:24px!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  background:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.28)!important;
  box-shadow:0 18px 48px rgba(0,0,0,.16)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
}

#loginView .brand-login .brand-logo img{width:50px!important;max-height:50px!important;object-fit:contain!important;}
#loginView .brand-login strong{color:#fff!important;font-size:18px!important;line-height:1.08!important;font-weight:1000!important;letter-spacing:.01em!important;text-shadow:0 8px 24px rgba(0,0,0,.16)!important;}
#loginView .brand-login span{display:block!important;color:#d9f3e9!important;font-size:12.5px!important;font-weight:900!important;margin-top:4px!important;}
#loginView .login-copy{
  position:relative!important;
  z-index:3!important;
  align-self:center!important;
  width:min(660px,74%)!important;
  margin:0 0 0 clamp(0px,.8vw,14px)!important;
  padding:0!important;
  transform:translateY(-1vh)!important;
}
#loginView .login-copy h1{
  max-width:660px!important;
  margin:0 0 18px!important;
  color:#fff!important;
  font-size:clamp(42px,4.15vw,66px)!important;
  line-height:1.02!important;
  letter-spacing:-.055em!important;
  font-weight:1000!important;
  text-shadow:0 16px 46px rgba(0,0,0,.28)!important;
}


#loginView .login-footer-brand{
  display:block!important;
  margin-top:64px!important;
  color:#c5eadc!important;
  text-align:left!important;
  font-size:13px!important;
  letter-spacing:.05em!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
#loginView .login-panel{
  position:relative!important;
  z-index:2!important;
  min-height:100dvh!important;
  display:grid!important;
  place-items:center!important;
  padding:clamp(34px,5vw,88px) clamp(34px,5vw,96px) clamp(34px,5vw,88px) clamp(92px,7.8vw,148px)!important;
  margin-left:clamp(-142px,-8vw,-82px)!important;
  background:
    radial-gradient(circle at 50% 50%,rgba(15,61,46,.075),transparent 34%),
    radial-gradient(circle at 72% 40%,rgba(20,82,62,.052),transparent 34%),
    linear-gradient(180deg,#ffffff 0%,#f8fbf9 100%)!important;
  overflow:hidden!important;
}
#loginView .login-panel::before{
  content:""!important;
  position:absolute!important;
  inset:clamp(18px,2vw,34px)!important;
  border:1px solid rgba(15,61,46,.065)!important;
  border-radius:30px!important;
  pointer-events:none!important;
}
#loginView .login-panel::after{
  content:""!important;
  position:absolute!important;
  left:clamp(28px,4.2vw,78px)!important;
  top:-10%!important;
  width:1px!important;
  height:120%!important;
  background:linear-gradient(180deg,transparent,rgba(15,61,46,.12),transparent)!important;
  transform:rotate(9deg)!important;
  pointer-events:none!important;
}
#loginView .login-card{
  position:relative!important;
  z-index:3!important;
  width:min(430px,100%)!important;
  padding:clamp(34px,3.4vw,50px)!important;
  border-radius:28px!important;
  background:rgba(255,255,255,.97)!important;
  border:1px solid #dfeae5!important;
  box-shadow:0 32px 86px rgba(15,61,46,.16)!important;
  backdrop-filter:blur(12px)!important;
  -webkit-backdrop-filter:blur(12px)!important;
  pointer-events:auto!important;
}
#loginView .login-logo{width:84px!important;height:84px!important;margin:0 auto 22px!important;border-radius:24px!important;background:transparent!important;box-shadow:none!important;display:grid!important;place-items:center!important;}
#loginView .login-logo img{width:76px!important;max-height:76px!important;object-fit:contain!important;}
#loginView .login-card h2{margin:0 0 24px!important;color:#0b3328!important;font-size:clamp(29px,2vw,35px)!important;line-height:1.05!important;text-align:center!important;font-weight:1000!important;letter-spacing:-.025em!important;}
#loginView .login-card > p,#loginView .login-card > small{display:none!important;}
#loginView .login-card label{display:block!important;margin:14px 0 8px!important;color:#133d30!important;font-size:12px!important;line-height:1!important;font-weight:1000!important;text-transform:none!important;letter-spacing:0!important;}
#loginView .login-card input,#loginView .login-card select{width:100%!important;height:56px!important;border-radius:15px!important;border:1px solid #d7e5df!important;background:#fff!important;color:#10271e!important;font-size:15px!important;font-weight:850!important;padding:0 16px!important;outline:none!important;box-shadow:none!important;pointer-events:auto!important;}
#loginView .login-card input:focus,#loginView .login-card select:focus{border-color:#1d6b4d!important;box-shadow:0 0 0 4px rgba(29,107,77,.11)!important;}
#loginView .login-card input::placeholder{color:#75857e!important;opacity:1!important;}
#loginView #btnLogin{width:100%!important;height:60px!important;margin-top:24px!important;border:0!important;border-radius:15px!important;color:#fff!important;font-size:16px!important;font-weight:1000!important;background:linear-gradient(135deg,#0f3d2e,#1d6b4d)!important;box-shadow:0 16px 34px rgba(15,61,46,.25)!important;cursor:pointer!important;pointer-events:auto!important;}
#loginView #btnLogin:hover{filter:brightness(1.03)!important;transform:translateY(-1px)!important;}
#loginView #btnLogin:disabled{opacity:.78!important;cursor:wait!important;transform:none!important;}
@media(max-width:1220px){
  #loginView.login-screen{grid-template-columns:56% 44%!important;}
  #loginView .login-copy{width:min(560px,72%)!important;}
  #loginView .login-copy h1{font-size:clamp(38px,4vw,54px)!important;}
  #loginView .login-copy p{font-size:16px!important;}
  #loginView .login-panel{padding-left:clamp(78px,6vw,116px)!important;}
}
@media(max-width:940px){
  #loginView.login-screen{display:flex!important;align-items:center!important;justify-content:center!important;min-height:100dvh!important;padding:18px!important;overflow:auto!important;background:linear-gradient(180deg,rgba(7,29,23,.92) 0%,rgba(15,61,46,.92) 36%,#f8fbf9 36.2%,#ffffff 100%)!important;}
  #loginView .login-hero,#loginView .login-hero::before,#loginView .login-hero::after,#loginView .brand-login,#loginView .login-copy{display:none!important;}
  #loginView .login-panel{width:100%!important;min-height:auto!important;padding:0!important;margin:0!important;background:transparent!important;overflow:visible!important;}
  #loginView .login-panel::before,#loginView .login-panel::after{display:none!important;}
  #loginView .login-card{width:min(440px,100%)!important;border-radius:26px!important;padding:28px!important;}
}

/* ============================================================
   PATCH V83 — Login: fundo geral verde, sem painel branco externo
   Pedido: remover a área branca grande e manter somente o card branco.
   Mantém a funcionalidade validada da V82.
   ============================================================ */

#loginView.login-screen{
  background:
    radial-gradient(circle at 20% 18%,rgba(40,176,111,.18),transparent 30%),
    radial-gradient(circle at 76% 48%,rgba(255,255,255,.08),transparent 34%),
    linear-gradient(135deg,#061e18 0%,#0b3328 48%,#15543f 100%)!important;
  grid-template-columns:58% 42%!important;
  overflow:hidden!important;
}
#loginView .login-hero{
  background:transparent!important;
  clip-path:none!important;
  overflow:hidden!important;
}
#loginView .login-hero::before{
  content:""!important;
  position:absolute!important;
  inset:-14% 8% -16% 42%!important;
  z-index:0!important;
  background:
    linear-gradient(105deg,transparent 0 26%,rgba(255,255,255,.045) 26% 48%,transparent 48% 100%),
    linear-gradient(105deg,transparent 0 58%,rgba(255,255,255,.095) 58% 58.7%,transparent 58.7% 100%)!important;
  transform:skewX(-8deg)!important;
  pointer-events:none!important;
}
#loginView .login-hero::after{
  content:""!important;
  position:absolute!important;
  width:min(270px,17vw)!important;
  height:min(520px,48vh)!important;
  right:18%!important;
  top:50%!important;
  z-index:0!important;
  border-radius:28px!important;
  background:rgba(255,255,255,.045)!important;
  border:1px solid rgba(255,255,255,.055)!important;
  transform:translateY(-50%) rotate(13deg)!important;
  pointer-events:none!important;
}
#loginView .login-panel{
  background:transparent!important;
  margin-left:0!important;
  padding:clamp(34px,5vw,88px) clamp(44px,7vw,132px) clamp(34px,5vw,88px) clamp(28px,4vw,78px)!important;
  overflow:visible!important;
}
#loginView .login-panel::before,
#loginView .login-panel::after{
  display:none!important;
  content:none!important;
}
#loginView .login-card{
  background:rgba(255,255,255,.98)!important;
  border:1px solid rgba(223,234,229,.95)!important;
  box-shadow:0 34px 90px rgba(0,0,0,.24), 0 0 0 1px rgba(255,255,255,.38) inset!important;
}
@media(max-width:1220px){
  #loginView.login-screen{grid-template-columns:56% 44%!important;}
  #loginView .login-panel{padding-left:clamp(18px,3.2vw,48px)!important;padding-right:clamp(28px,5vw,82px)!important;}
}
@media(max-width:940px){
  #loginView.login-screen{
    background:
      radial-gradient(circle at 50% 0%,rgba(40,176,111,.18),transparent 34%),
      linear-gradient(160deg,#061e18 0%,#0f3d2e 58%,#15543f 100%)!important;
  }
  #loginView .login-panel{background:transparent!important;}
}

/* V84 — Determinar total/frente com apenas um processo por linha */




/* V85 — mostrar todas as frotas e permitir tratamento individual */







/* Melhorias incrementais — Semáforo modal, offline e cabeçalho dos relatórios */
.semaforo-sidebar-grid{grid-template-columns:1fr!important;}
.semaforo-sidebar-card.gray{background:#eef1ef!important;color:#40504a!important;}
.semaforo-sidebar-card.gray i{background:#64748b!important;}
.semaforo-modal-shell{max-height:68vh;overflow:auto;max-width:100%;}
.semaforo-modal-table{min-width:900px;}
.semaforo-modal-table th{white-space:nowrap;}
.offline-status-select{height:34px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-weight:900;padding:0 8px;}
.btn.small{padding:7px 9px!important;border-radius:10px!important;font-size:11px!important;}
.report-modal-header{align-items:center!important;gap:14px!important;}
.report-header-title h3{margin:0!important;}
.report-header-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-left:auto;}
.report-header-meta{color:#d8eee5;font-size:11px;font-weight:850;text-align:right;line-height:1.25;white-space:nowrap;}
.report-print-btn{background:#fff!important;color:#0f3d2e!important;border:1px solid rgba(255,255,255,.75)!important;font-weight:1000!important;border-radius:12px!important;padding:9px 13px!important;}
.report-view{padding-top:12px!important;}
.report-head{margin-bottom:8px!important;padding-bottom:8px!important;}
.report-head p,.report-head small,.modal-header.report-modal-header p{display:none!important;}
@media(max-width:900px){.report-header-tools{justify-content:flex-start;width:100%;}.report-header-meta{text-align:left;white-space:normal}.report-modal-header{align-items:flex-start!important;}.semaforo-modal-table{min-width:760px;}}


/* V97 — ajuste pontual: sidebar sem rolagem no desktop e cabeçalho de relatório sem sobreposição */
@media (min-width: 901px){
  .app-shell .sidebar,
  .sidebar{
    overflow:hidden!important;
    padding:14px 14px 12px!important;
    gap:11px!important;
  }
  .brand{gap:9px!important;min-height:48px!important;}
  .brand-logo{width:50px!important;height:50px!important;flex:0 0 50px!important;border-radius:16px!important;}
  .brand-logo img{width:44px!important;max-height:44px!important;}
  .brand strong{font-size:15.5px!important;line-height:1.05!important;}
  .brand span{font-size:10.5px!important;margin-top:2px!important;}
  .side-menu,.menu{gap:6px!important;}
  .side-menu button,.menu-item{min-height:42px!important;padding:10px 12px!important;border-radius:14px!important;font-size:13px!important;line-height:1.1!important;}
  .menu-icon{width:18px!important;min-width:18px!important;}
  .sidebar-box,.sidebar-user,.session-card{padding:11px 12px!important;border-radius:16px!important;}
  .pims-status-box{gap:8px!important;}
  .status-head{gap:7px!important;}
  .status-head small,.semaforo-sidebar-head small,.sidebar-user small{font-size:10px!important;line-height:1!important;}
  .status-pill{min-height:20px!important;padding:3px 7px!important;font-size:9px!important;}
  .status-lines{display:grid!important;grid-template-columns:1fr 1fr!important;gap:4px 8px!important;align-items:center!important;}
  .status-lines span{font-size:10.5px!important;line-height:1.08!important;margin:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .status-lines #statusPimsAtualizado{grid-column:1 / -1!important;}
  .sidebar-refresh-btn{height:34px!important;border-radius:12px!important;font-size:12px!important;margin-top:0!important;}
  .semaforo-sidebar-box{padding:11px 12px!important;}
  .semaforo-sidebar-grid{gap:7px!important;}
  .semaforo-sidebar-card{min-height:39px!important;padding:8px 10px!important;border-radius:13px!important;}
  .semaforo-sidebar-card span{font-size:11px!important;}
  .semaforo-sidebar-card b{font-size:18px!important;}
  .sidebar-user{gap:5px!important;}
  .sidebar-user b#usuarioLogado,.sidebar-user b{font-size:14px!important;margin-top:2px!important;line-height:1.08!important;}
  .sidebar-user .user-unit{font-size:10.5px!important;line-height:1.08!important;}
  .sidebar-user button{height:34px!important;margin-top:6px!important;padding:0 10px!important;border-radius:12px!important;font-size:12px!important;}
}

.report-modal-header{
  min-height:64px!important;
  padding:12px 18px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  overflow:visible!important;
}
.report-header-title{min-width:0!important;flex:1 1 auto!important;}
.report-header-title h3{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.report-header-tools{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  flex:0 0 auto!important;
  flex-wrap:nowrap!important;
  margin-left:auto!important;
  min-width:max-content!important;
}
.report-header-meta{
  flex:0 0 auto!important;
  min-width:140px!important;
  max-width:220px!important;
  color:#d8eee5!important;
  font-size:10.5px!important;
  font-weight:850!important;
  text-align:right!important;
  line-height:1.18!important;
  white-space:normal!important;
}
.report-print-btn,
.report-modal-header .modal-close{
  position:static!important;
  flex:0 0 auto!important;
  white-space:nowrap!important;
  margin:0!important;
  transform:none!important;
  z-index:auto!important;
}
.report-print-btn{height:38px!important;padding:0 14px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
.report-modal-header .modal-close{height:38px!important;padding:0 14px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
@media(max-width:900px){
  .report-modal-header{align-items:flex-start!important;flex-wrap:wrap!important;}
  .report-header-tools{width:100%!important;min-width:0!important;flex-wrap:wrap!important;justify-content:flex-start!important;}
  .report-header-meta{text-align:left!important;min-width:100%!important;max-width:100%!important;}
}


/* V98 — atualização automática 10 min + semáforo Implemento Quebrado */
.semaforo-sidebar-card.purple{background:#efe7ff!important;color:#4c1d95!important;}
.semaforo-sidebar-card.purple i{background:#7c3aed!important;}
.semaforo-row-actions{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:7px!important;flex-wrap:wrap!important;}
.semaforo-row-actions .btn.impl{border-color:#d8c8ff!important;color:#4c1d95!important;background:#f7f1ff!important;}
.semaforo-os-field{margin-top:14px!important;display:grid!important;gap:7px!important;}
.semaforo-os-field input{height:44px!important;border:1px solid var(--line)!important;border-radius:14px!important;padding:0 12px!important;font-weight:900!important;color:var(--ink)!important;outline:none!important;}
@media (min-width:901px){
  .semaforo-sidebar-grid{gap:6px!important;}
  .semaforo-sidebar-card{min-height:35px!important;padding:7px 9px!important;gap:7px!important;}
  .semaforo-sidebar-card span{font-size:10.5px!important;}
  .semaforo-sidebar-card b{font-size:16px!important;}
  .semaforo-sidebar-card i{width:9px!important;height:9px!important;}
}


/* V99 — Relatório de alocação compacto automático para carretas/muitas paradas */
.relatorio-alocacao-total-frente.compact-print{padding:8px 12px!important;}
.relatorio-alocacao-total-frente.compact-print .report-head{padding:3px 0 5px!important;margin:0 0 5px!important;}
.relatorio-alocacao-total-frente.compact-print .report-head h2{font-size:17px!important;}
.relatorio-alocacao-total-frente.compact-print .report-section{margin:5px 0 8px!important;}
.relatorio-alocacao-total-frente.compact-print .report-section h3{font-size:13px!important;margin:0 0 5px!important;}
.relatorio-alocacao-total-frente.compact-print .rel-aloc-grid{grid-template-columns:1fr!important;gap:5px!important;}
.relatorio-alocacao-total-frente.compact-print .rel-aloc-front-card{border-radius:12px!important;box-shadow:none!important;}
.relatorio-alocacao-total-frente.compact-print .rel-aloc-front-title{padding:5px 7px!important;}
.relatorio-alocacao-total-frente.compact-print .rel-aloc-front-title strong{font-size:12px!important;line-height:1!important;}
.relatorio-alocacao-total-frente.compact-print .rel-aloc-front-title small{font-size:9px!important;line-height:1!important;}
.relatorio-alocacao-total-frente.compact-print .rel-aloc-type-row{grid-template-columns:minmax(170px,22%) minmax(0,1fr)!important;min-height:20px!important;}
.relatorio-alocacao-total-frente.compact-print .rel-aloc-type-name{font-size:9px!important;padding:4px 6px!important;line-height:1.05!important;}
.relatorio-alocacao-total-frente.compact-print .rel-aloc-fleet-list{gap:2px!important;padding:3px 5px!important;}
.relatorio-alocacao-total-frente.compact-print .rel-aloc-fleet{font-size:8.5px!important;min-width:40px!important;padding:2px 4px!important;border-radius:4px!important;}
.compact-print-table{table-layout:fixed!important;width:100%!important;font-size:10px!important;}
.compact-print-table th{font-size:9px!important;padding:4px 5px!important;line-height:1.05!important;white-space:normal!important;}
.compact-print-table td{font-size:9px!important;padding:4px 5px!important;line-height:1.08!important;vertical-align:middle!important;}
.compact-print-table small{display:block!important;font-size:8px!important;line-height:1!important;margin-top:1px!important;}
.compact-print-table .badge{font-size:8px!important;padding:2px 5px!important;line-height:1!important;}
.compact-print-table .compact-obs{display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;}
.compact-print-table .num{text-align:right!important;white-space:nowrap!important;}
.compact-print-table .compact-total-row td{background:#f3f8f5!important;font-weight:1000!important;border-top:2px solid #0f3d2e!important;}
.compact-print-table .col-local{width:12%!important}.compact-print-table .col-equip{width:8%!important}.compact-print-table .col-origem{width:8%!important}.compact-print-table .col-tipo{width:12%!important}.compact-print-table .col-classe{width:10%!important}.compact-print-table .col-motivo{width:9%!important}.compact-print-table .col-os{width:8%!important}.compact-print-table .col-obs{width:20%!important}.compact-print-table .col-prev{width:8%!important}.compact-print-table .col-horas{width:5%!important}
@media(max-width:900px){.relatorio-alocacao-total-frente.compact-print .rel-aloc-type-row{grid-template-columns:1fr!important}.compact-print-table{min-width:980px!important}}

/* V103 materiais menu compact sidebar */
.side-menu.menu{gap:6px!important}.side-menu .menu-item{padding-top:10px!important;padding-bottom:10px!important}.sidebar{gap:12px!important}

/* V108 — correção global de modais/tabelas para não ultrapassar bordas */
#modalRoot .modal,#modalRoot .modal *{box-sizing:border-box;min-width:0;}
#modalRoot .modal{max-width:min(1180px,calc(100vw - 28px));overflow:hidden;}
#modalRoot .modal-header{gap:12px;min-width:0;}
#modalRoot .modal-header>div{min-width:0;}
#modalRoot .modal-header h3,#modalRoot .modal-header p{overflow-wrap:anywhere;word-break:normal;}
#modalRoot .modal-body{max-width:100%;overflow-x:hidden;}
#modalRoot .table-shell,#modalRoot .modal-os-shell,#modalRoot .compact-modal-table-shell{max-width:100%;overflow:auto;}
#modalRoot table{max-width:100%;table-layout:fixed;border-collapse:collapse;}
#modalRoot th,#modalRoot td{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word;white-space:normal;vertical-align:top;}
#modalRoot td b,#modalRoot td small,#modalRoot td span,#modalRoot .info-card strong,#modalRoot .info-card span{max-width:100%;overflow-wrap:anywhere;word-break:break-word;}
#modalRoot .modal-actions,#modalRoot .switch-flag,#modalRoot .action-stack{flex-wrap:wrap;min-width:0;}
#modalRoot .btn,#modalRoot button{max-width:100%;white-space:normal;}
#modalRoot .compact-modal-table{min-width:880px;}
#modalRoot .data-table th,#modalRoot .data-table td{padding:8px 9px;line-height:1.18;}
@media(max-width:760px){#modalRoot .modal{max-width:calc(100vw - 14px);border-radius:20px;}#modalRoot .modal-body{padding:12px;}#modalRoot .compact-modal-table{min-width:720px;}}


/* ============================================================
   PATCH LOGIN SEGURO — card compacto + senha por nascimento
   - Remove a área/borda branca grande ao redor do login.
   - Mantém somente o card branco do formulário.
   ============================================================ */
#loginView.login-screen:not(.hidden){
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:100dvh!important;
  padding:24px!important;
  background:
    radial-gradient(circle at 50% 34%,rgba(40,176,111,.14),transparent 34%),
    radial-gradient(circle at 20% 16%,rgba(255,255,255,.07),transparent 30%),
    linear-gradient(150deg,#061e18 0%,#0b3328 52%,#15543f 100%)!important;
  overflow:auto!important;
}
#loginView .login-hero,
#loginView .login-hero::before,
#loginView .login-hero::after,
#loginView .brand-login,
#loginView .login-copy{
  display:none!important;
}
#loginView .login-panel{
  width:min(520px,100%)!important;
  min-height:auto!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  background:transparent!important;
  overflow:visible!important;
}

#loginView .login-card{
  width:min(390px,calc(100vw - 48px))!important;
  padding:34px 32px 32px!important;
  border-radius:24px!important;
  background:#fff!important;
  border:1px solid rgba(223,234,229,.95)!important;
  box-shadow:0 34px 90px rgba(0,0,0,.24)!important;
}
#loginView .login-logo{width:74px!important;height:74px!important;margin-bottom:18px!important;}
#loginView .login-logo img{width:68px!important;max-height:68px!important;}
#loginView .login-card h2{font-size:30px!important;margin-bottom:22px!important;}
#loginView .login-card input,
#loginView .login-card select{height:54px!important;}
#loginView #btnLogin{height:58px!important;}


/* PATCH CACHE-BUSTER LOGIN RESPONSIVO - manter card sem espremer */
#loginView.login-screen:not(.hidden){grid-template-columns:minmax(0,1.08fr) minmax(500px,.92fr)!important;width:100vw!important;height:100dvh!important;}
#loginView .login-panel{padding:clamp(26px,3.6vw,66px)!important;}
#loginView .login-card{width:clamp(430px,28.5vw,520px)!important;max-width:calc(100vw - 52px)!important;}
#loginView .login-card h2{white-space:nowrap!important;}
@media(max-width:980px){#loginView.login-screen:not(.hidden){display:flex!important;align-items:center!important;justify-content:center!important;padding:18px!important;overflow:auto!important;}#loginView .login-hero,#loginView .brand-login,#loginView .login-copy{display:none!important;}#loginView .login-panel{width:100%!important;min-height:auto!important;height:auto!important;padding:0!important;}#loginView .login-card{width:min(450px,100%)!important;max-width:100%!important;}#loginView .login-card h2{white-space:normal!important;}}

/* V112 — Semáforo Oportunidade */





/* PATCH — Semáforo Oportunidade */





/* PATCH — Oportunidade definitivo */





/* PATCH — Semáforo implemento automático + oportunidade */





/* PATCH — Oficina nos campos Local/Processo */







/* PATCH — Semáforo global / Determinar / Disponibilidade 85 */













/* PATCH — Implemento global + Influenciar semáforo V2 */













/* PATCH — Relatório: Implemento Quebrado V3 */






/* PATCH — Disponibilidade: colunas com tamanho normal */











/* PATCH — Relatório Disponibilidade: visual compacto igual ao menu */
















/* PATCH — Limpar filtros em todos os menus */






/* PATCH — Semáforo Aguardando Retirada */








/* PATCH — Relatório/Determinar: liberado só com O.S. */




/* PATCH — Relatório somente com O.S. válida */




/* PATCH — Relatório: seguir lógica da osList */




/* PATCH — Alocação lógica osList + semáforo */









/* PATCH — Alocação instância + relatório correto */



/* PATCH FINAL — Funcionalidades, oficina, semáforo e disponibilidade */




/* PATCH — Adicionar/alocar definitivo */





/* PATCH — Oficina visível nos relatórios */






/* PATCH — Relatório alocação topo unificado */




/* PATCH — Relatório oficina + implemento + sem O.S. */








/* PATCH — Salvar alocação quota + visual origem */






















/* PATCH — origem relatório + oficina card + status coerente */
















/* PATCH — Determinar modal premium + oportunidade pele */


































/* PATCH SEGURO — melhorias determinar/modal */































/* PATCH — Relatório implemento com dados da O.S. associada */





/* PATCH_RELATORIO_BOTOES_LEGENDA_V1 */



























/* PATCH_CORES_PREVENTIVA_AGUARD_RETIRADA */
/* PREVENTIVA = azul escuro */





/* AGUARDANDO RETIRADA = azul claro */




/* OPORTUNIDADE permanece cor de pele */



/* Legenda do relatório, caso ainda não exista estilo carregado */






/* PATCH_DEFINITIVO_COR_AGUARD_RETIRADA */
/* PREVENTIVA: azul escuro */




/* AGUARDANDO RETIRADA: azul claro */




/* OPORTUNIDADE: pele */



/* Legenda */






/* PATCH_AJUSTE_APENAS_CORES_FORTES
   Ajusta SOMENTE as cores que estavam fortes demais:
   - Com O.S./Prod / orange
   - Aguardando Retirada / teal
   Não altera verde, vermelho, roxo, amarelo, cinza, preventiva ou oportunidade.
*/

/* COM O.S./PROD — laranja mais suave */




/* AGUARDANDO RETIRADA — azul claro mais suave */




/* Botão Atualizar PIMS no relatório */






/* PATCH_RELATORIO_LARANJA_SUAVE
   Corrige SOMENTE o laranja forte dentro do relatório. */







/* PATCH_SEMAFORO_CORES_E_AUTO_DESALOCAR
   Modal do semáforo segue a cor do status real, e não o texto dos botões. */



/* COM O.S./PROD */



/* OFFLINE */



/* IMPLEMENTO QUEBRADO */



/* AGUARDANDO RETIRADA */



/* SEM O.S. */



/* PARADO */



/* LIBERADO */



/* PREVENTIVA */



/* OPORTUNIDADE */



/* Campos internos continuam neutros e legíveis */


/* Badges suavizados no modal */






/* PATCH_SEMAFORO_COR_AGUARD_E_REMOVER_CLASSIFICACAO */

/* AGUARDANDO RETIRADA = azul claro, inclusive chips da alocação/relatório */






/* PREVENTIVA = azul escuro, sem confundir com aguardando retirada */






/* Modal semáforo: card por status real */

















/* Botão remover classificação no modal */





/* PATCH_AJUSTE_FINO_SEMAFORO_RELATORIO */

/* Remove apenas o botão extra. O botão original "Remover" continua visível. */


/* Legenda do relatório: bordas todas neutras, inclusive Com O.S./Prod. */


/* Com O.S./Prod continua laranja, porém sem borda destacada na legenda. */


/* Preventiva no relatório: azul escuro, mas com visual limpo. */


/* Oportunidade no relatório: cor de pele, separada da preventiva. */


/* Chips da alocação no relatório, quando forem preventiva/oportunidade. */



/* Aguardando retirada fica azul claro e nunca azul escuro. */




/* PATCH_REPARO_RELATORIO_SEMAFORO_CLASSIFICACOES */

/* Remove somente o botão extra criado no patch anterior. */


/* Botão original Remover criado por este reparo. */



/* Confirmação visual após remover. */


/* Aguardando retirada nunca pode ficar azul escuro. */




/* Preventiva continua azul escuro, mas só para preventiva. */



/* Modal semáforo por status manual. */






/* PATCH_FINAL_REPARO_SEMAFORO_RELATORIO */

/* Semáforo modal acompanha o status */





















/* Apenas um botão Remover */




/* Aguardando retirada azul claro */



/* Preventiva no relatório: azul, mas coerente com o visual claro */


/* Oportunidade no relatório: pele, separada */


/* Com O.S./Prod no relatório suave */


/* Legenda com borda padronizada */






/* PATCH_CORES_PREVENTIVA_AGUARD_RELATORIO_DETERMINAR
   Ajuste fino somente visual:
   - Relatório: preventiva no azul claro do chip 210315.
   - Determinar total/frente: preventiva azul escuro, aguardando retirada azul claro mais firme.
*/

/* =========================
   RELATÓRIO
   ========================= */

/* Preventiva no relatório = mesma identidade do chip 210315 da alocação */


/* Aguardando retirada no relatório mantém azul claro do badge */


/* Pontos da legenda permanecem distintos */



/* =========================
   DETERMINAR TOTAL/FRENTE
   ========================= */

/* No menu, preventiva pode ser azul escuro */


/* Garante leitura interna em card azul escuro */


/* No menu, aguardando retirada fica azul claro, porém um pouco mais firme */


/* Evita aguardando retirada herdar azul escuro */


/* Badges gerais: preventiva e aguardando retirada continuam separados */




/* PATCH_RELATORIO_DTF_AZUL_AGUARD_LEGENDA */

/* RELATÓRIO: chip da alocação total/frente em aguardando retirada = azul claro */


/* RELATÓRIO: preventiva continua azul preventiva */


/* Badge aguardando retirada na tabela segue azul claro */


/* Legenda: padroniza borda do Com O.S./Prod */




/* PATCH_LEGENDA_COM_OS_PROD_BRANCA
   Item Com O.S./Prod da legenda com fundo/borda padrão.
   O ponto continua laranja. */






/* PATCH_LEGENDA_COM_OS_SEM_PISCAR
   Item Com O.S./Prod igual aos demais.
   Apenas o ponto permanece laranja. */








/* PATCH_MODAL_OFICINA_FUNCIONAL_VISUAL */

/* Modal da frota mais organizado, sem alterar o modal global inteiro */




































/* Ajuste visual dos cards internos do modal, só quando o editor existir */











/* PATCH_MODAL_OFICINA_NAO_QUEBRAR_VISUAL */





































/* Remove quebra do patch anterior */


/* Cards vazios do modal ficam ocultos */


/* Card de oficina antigo não ocupa espaço quando vazio */


/* Card visual da frota com oficina abaixo do número */







/* PATCH_DTF_CORES_AGUARD_RETIRADA_PREVENTIVA */




/* legenda do menu */





/* PATCH_DTF_CORES_CARDS_E_LEGENDAS_PADRAO */

/* ==============================
   CARDS — DETERMINAR TOTAL/FRENTE
   ============================== */

/* AGUARDANDO RETIRADA: azul claro */


/* PREVENTIVA: azul escuro */




/* ==============================
   LEGENDAS — MENU E RELATÓRIO
   ============================== */



/* base dos itens */


/* Verde — Liberado */


/* Vermelho — Parado */


/* Laranja — Com O.S./Prod */


/* Azul escuro — Preventiva */


/* Pele — Oportunidade */


/* Roxo — Implemento quebrado */


/* Amarelo — Sem O.S. */


/* Cinza — Offline */


/* Azul claro — Aguardando retirada */


/* pontos das legendas */











/* PATCH_DTF_CARD_AGUARD_RETIRADA_FORCE_INLINE */

/* Card AGUARDANDO RETIRADA no Determinar total/frente */






/* Preventiva continua distinta */



/* PATCH_SEMAFORO_RESERVA_DEFINIR_INFLUENCIAR */






/* PATCH_GERAL_SEMAFORO_OFICINA_SALVAR_VISUAL */
































/* PATCH_FINAL_PENDENCIAS_LEVE_SEM_TRAVAR */

/* Card aguardando retirada */




/* Botão influenciar estável */




/* Oficina apenas no modal Adicionar/alocar */



























/* PATCH_CORRECAO_DEFINITIVA_SEMAFORO_OFICINA_VISUAL */

/* Card AGUARDANDO RETIRADA — azul claro forçado */




/* Oportunidade — por CD_CLASMANU = 8 */


/* Influenciar semáforo polido */






/* Determinar oficina apenas no modal Adicionar/alocar */



























/* V110_CORRECAO_CONSOLIDADA — cores, legenda, oficina, visuais */




















/* V112 — barra legenda + ações em uma única linha no desktop */







/* V113 — Determinar total/frente barra compacta */
.det-page .det-toolbar{display:flex!important;align-items:center!important;justify-content:space-between!important;flex-wrap:nowrap!important;gap:10px!important;padding:10px 12px!important;overflow:visible!important;}
.det-page .det-toolbar>.legend{flex:1 1 auto!important;min-width:0!important;display:flex!important;align-items:center!important;flex-wrap:nowrap!important;gap:6px!important;overflow:visible!important;}
.det-page .det-toolbar>.legend span{flex:0 0 auto!important;padding:5px 8px!important;min-height:30px!important;font-size:11px!important;line-height:1!important;white-space:nowrap!important;}
.det-page .det-toolbar>.legend .dot{width:9px!important;height:9px!important;flex:0 0 9px!important;}
.det-page .det-toolbar>.det-toolbar-actions{flex:0 0 auto!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex-wrap:nowrap!important;white-space:nowrap!important;}
.det-page .det-toolbar>.det-toolbar-actions .btn,#btnInfluenciarSemaforo,#btnDeterminarOficina,#btnAdicionarAlocar{min-height:38px!important;height:38px!important;padding:0 14px!important;border-radius:13px!important;font-size:14px!important;line-height:1!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;flex:0 0 auto!important;}

@media(max-width:1450px){.det-page .det-toolbar{gap:8px!important}.det-page .det-toolbar>.legend{gap:5px!important}.det-page .det-toolbar>.legend span{font-size:10.5px!important;padding:5px 7px!important}.det-page .det-toolbar>.det-toolbar-actions{gap:6px!important}#btnInfluenciarSemaforo{min-width:190px!important}#btnDeterminarOficina{min-width:145px!important}#btnAdicionarAlocar{min-width:140px!important}.det-page .det-toolbar>.det-toolbar-actions .btn{font-size:13px!important;padding:0 10px!important}}
@media(max-width:1180px){.det-page .det-toolbar{flex-wrap:wrap!important}.det-page .det-toolbar>.legend{width:100%!important;overflow-x:auto!important}.det-page .det-toolbar>.det-toolbar-actions{width:100%!important;justify-content:flex-end!important;flex-wrap:wrap!important}}


/* V115_RECUPERACAO_MODAL_ALOCAR_ESTAVEL
   Base v113: somente encurta botão I.S e corrige posicionamento visual do modal Adicionar/alocar. */








/* Modal Adicionar/alocar — posicionamento isolado, sem tocar na regra de alocação. */
























/* V116_AJUSTE_MODAL_ALOCAR_FILTROS_ORIGEM_TIPO
   Ajuste limitado ao modal Adicionar/alocar: filtros Frente origem + Tipo, cards compactos e sem quebra. */





















/* V117 — semáforo reserva + medidor LocalStorage */
.semaforo-sidebar-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
}
.semaforo-head-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:6px!important;
  min-width:0!important;
}
.semaforo-reserva-toggle{
  height:24px!important;
  padding:0 8px!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.14)!important;
  color:#fff!important;
  font-size:9px!important;
  font-weight:1000!important;
  line-height:1!important;
  cursor:pointer!important;
  white-space:nowrap!important;
  max-width:86px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.semaforo-reserva-toggle.ativo{background:#e9fff2!important;color:#0f3d2e!important;border-color:#b9e4c9!important;}
.semaforo-reserva-toggle.inativo{background:#fff1f1!important;color:#8f1f1f!important;border-color:#f3b8b8!important;}
.sidebar-user-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  min-width:0!important;
}
.sidebar-user-head small{margin:0!important;min-width:0!important;}
.storage-meter{
  width:auto!important;
  min-width:74px!important;
  height:28px!important;
  margin:0!important;
  padding:3px 7px!important;
  border:1px solid rgba(255,255,255,.18)!important;
  border-radius:12px!important;
  display:grid!important;
  grid-template-columns:1fr auto!important;
  align-items:center!important;
  gap:5px!important;
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  cursor:pointer!important;
  box-shadow:none!important;
}
.storage-meter span{font-size:8px!important;font-weight:1000!important;text-transform:uppercase!important;color:rgba(255,255,255,.82)!important;line-height:1!important;}
.storage-meter b{font-size:11px!important;font-weight:1000!important;color:#fff!important;margin:0!important;line-height:1!important;}
.storage-meter.baixo{background:rgba(34,197,94,.22)!important;border-color:rgba(134,239,172,.35)!important;}
.storage-meter.medio{background:rgba(245,158,11,.25)!important;border-color:rgba(252,211,77,.42)!important;}
.storage-meter.alto{background:rgba(239,68,68,.27)!important;border-color:rgba(252,165,165,.48)!important;}
.storage-modal{display:grid;gap:12px;min-width:0;}
.storage-modal-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.storage-modal-summary>div{border:1px solid #dce9e2;background:#f8fbf9;border-radius:16px;padding:13px;display:grid;gap:4px;}
.storage-modal-summary span{font-size:11px;font-weight:1000;text-transform:uppercase;color:#61766d;}
.storage-modal-summary strong{font-size:24px;font-weight:1000;color:#0f3d2e;}
.storage-modal-summary small{font-size:11px;font-weight:850;color:#61766d;}
.storage-table{width:100%;border-collapse:collapse;border:1px solid #dce9e2;border-radius:14px;overflow:hidden;background:#fff;}
.storage-table th,.storage-table td{padding:9px 10px;border-bottom:1px solid #eef4f1;text-align:left;font-size:12px;font-weight:850;}
.storage-table th{background:#0f3d2e;color:#fff;font-weight:1000;text-transform:uppercase;font-size:11px;}
.storage-warning,.storage-clean-result{margin:0;border-radius:14px;padding:10px 12px;font-size:12px;font-weight:900;line-height:1.35;}
.storage-warning{background:#fff8e6;color:#6f4e00;border:1px solid #f1d893;}
.storage-clean-result{background:#e9fff2;color:#0f3d2e;border:1px solid #b9e4c9;}
body.sidebar-collapsed .semaforo-reserva-toggle,
body.sidebar-collapsed .storage-meter{display:none!important;}
@media(max-width:760px){
  .storage-modal-summary{grid-template-columns:1fr;}
}


/* PATCH_STORAGE_SIDEBAR_FONTE_CORRIGIDA_START */
/*
  Correção fina do STORAGE na sidebar recolhida.
  - Não força fonte minúscula nos filhos.
  - Esconde detalhes internos apenas no modo recolhido.
  - Mostra um rótulo limpo via ::after.
  - Mantém o botão clicável e no mesmo padrão do botão SAIR.
*/



/* No menu recolhido, esconde textos internos quebrados e deixa o ::after controlar o rótulo */


/* Rótulo único, limpo e sem quebrar */


/* Garante que a sidebar recolhida não deixe o botão vazar */

/* PATCH_STORAGE_SIDEBAR_FONTE_CORRIGIDA_END */


/* Storage v2 — LocalStorage leve + IndexedDB + JSON Node */




/* PATCH_V116_RESPONSIVIDADE_GERAL_SISTEMA
   Reforço responsivo sem alterar identidade visual e sem mexer em regras de negócio. */
html, body { max-width: 100%; overflow-x: hidden; }
* { box-sizing: border-box; }
.app-shell, .app, .main, .menu-host, .menu-fragment { min-width: 0; max-width: 100%; }
.menu-fragment { overflow-x: hidden; }
.actions, .top-actions, .filters, .filter-row, .toolbar, .dtf-actions, .relatorio-actions { flex-wrap: wrap; min-width: 0; }
.btn, button, input, select, textarea { max-width: 100%; }
.table-wrap, .grid-scroll, .data-table-wrap, .report-table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.modal-root:not(.hidden) { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: clamp(10px, 2.5vw, 28px); overflow: auto; }
.modal-root .modal, .modal-root .modal-card, .modal-root [role="dialog"] { max-width: min(1120px, calc(100vw - 24px)); max-height: calc(100vh - 24px); overflow: auto; margin: auto; }
.card, .panel, .status-card, .metric-card, .dtf-card, .fleet-card, .equip-card { min-width: 0; overflow-wrap: anywhere; }
.storage-modal, .storage-modal-v2 { max-width: 100%; overflow-x: hidden; }
.storage-table { min-width: 620px; }
@media (max-width: 900px) {
  .topbar { align-items: stretch; gap: 10px; }
  .topbar-title-wrap, .topbar-title-text { min-width: 0; }
  .topbar h1 { font-size: clamp(1.15rem, 5vw, 1.65rem); }
  .top-actions { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .top-actions .btn { width: 100%; justify-content: center; }
  .sidebar { max-width: min(88vw, 340px); }
  .modal-root:not(.hidden) { align-items: flex-start; padding: 10px; }
  .modal-root .modal, .modal-root .modal-card, .modal-root [role="dialog"] { width: 100%; max-width: calc(100vw - 20px); max-height: calc(100dvh - 20px); border-radius: 18px; }
}
@media (max-width: 560px) {
  .top-actions { grid-template-columns: 1fr; }
  .storage-modal-summary, .storage-modal-summary-v2 { grid-template-columns: 1fr !important; }
  .storage-table { min-width: 520px; }
  .btn { min-height: 42px; }
}

/* PATCH_SIDEBAR_RECOLHIDA_SEMAFORO_STORAGE_SAIR_START */
/*
  Sidebar recolhida premium e funcional.
  Escopo: somente layout/visual da sidebar. Não altera regras do semáforo.
*/

























/* Oculta status PIMS no modo compacto para preservar a navegação e o rodapé. */


/* Mini semáforo compacto — usa os mesmos botões e os mesmos números já calculados. */

















/* Rodapé fixo/sempre acessível: Storage + Sair */











/* PATCH_SIDEBAR_RECOLHIDA_SEMAFORO_STORAGE_SAIR_END */

/* PATCH_FIX_SAIR_STORAGE_RECOLHIDO_START */
/*
  Correção fina apenas do rodapé da sidebar recolhida.
  Problema corrigido:
  - Sair aparecendo duplicado por pseudo-elemento antigo.
  - Storage/Sair desalinhados ou com fonte quebrada no menu fechado.
*/

/* PATCH_FIX_SAIR_STORAGE_RECOLHIDO_END */

/* PATCH_FIX_STORAGE_CENTRALIZADO_RECOLHIDO_START */
/*
  Ajuste fino do Storage na sidebar recolhida.
  Corrige o botão Storage ficando encostado/fora do centro da própria borda.
  Também elimina altura vazia no bloco do usuário quando a sidebar está recolhida.
*/

/* PATCH_FIX_STORAGE_CENTRALIZADO_RECOLHIDO_END */

/* PATCH_FIX_STORAGE_CENTRO_DEFINITIVO_START */
/*
  Correção definitiva do botão Storage no menu lateral recolhido.
  Estratégia: o conteúdo interno antigo fica invisível somente no estado recolhido
  e o próprio botão desenha um rótulo centralizado via ::before.
*/




/* Garante que nenhum filho interno empurre o texto para a borda */


/* Rótulo final centralizado: evita fonte quebrada, duplicada ou colada na borda */


/* Mantém o botão Sair abaixo, centralizado, sem alterar o funcionamento */


/* Se o rodapé da sidebar existir, mantém os botões dentro do eixo central */

/* PATCH_FIX_STORAGE_CENTRO_DEFINITIVO_END */


/* PATCH_STORAGE_FECHADO_DEFINITIVO_V2 START */
/* Corrige a fonte quebrada do Storage no menu recolhido sem alterar HTML. */
body.sidebar-collapsed #sidebarPrincipal .sidebar-user,
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user {
  padding-left: 6px !important;
  padding-right: 6px !important;
  overflow: visible !important;
}

body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head,
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user-head {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow: visible !important;
}

body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head > small,
body.sidebar-collapsed .sidebar#sidebarPrincipal .sidebar-user-head > small {
  display: none !important;
}

body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter,
body.sidebar-collapsed #sidebarPrincipal .storage-meter,
body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter {
  width: 42px !important;
  min-width: 42px !important;
  max-width: 42px !important;
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  padding: 2px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;

  display: grid !important;
  grid-template-rows: 17px 10px !important;
  grid-template-columns: 1fr !important;
  align-items: center !important;
  justify-items: center !important;
  gap: 0 !important;

  position: relative !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  text-align: center !important;
  line-height: 1 !important;
  border-radius: 12px !important;
}

body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > span,
body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter > span,
body.sidebar-collapsed #sidebarPrincipal .storage-meter > span,
body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter > span {
  display: none !important;
}

body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > b,
body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter > b,
body.sidebar-collapsed #sidebarPrincipal .storage-meter > b,
body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter > b {
  display: block !important;
  grid-row: 1 !important;
  max-width: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 9px !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
  letter-spacing: -0.2px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: clip !important;
  color: inherit !important;
}

body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after,
body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter::after,
body.sidebar-collapsed #sidebarPrincipal .storage-meter::after,
body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter::after {
  content: "STG" !important;
  display: block !important;
  grid-row: 2 !important;
  position: static !important;
  width: 100% !important;
  max-width: 38px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: 6px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -0.25px !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  color: inherit !important;
}

body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
body.sidebar-collapsed .sidebar#sidebarPrincipal #localStorageMeter::before,
body.sidebar-collapsed #sidebarPrincipal .storage-meter::before,
body.sidebar-collapsed .sidebar#sidebarPrincipal .storage-meter::before {
  content: none !important;
  display: none !important;
}
/* PATCH_STORAGE_FECHADO_DEFINITIVO_V2 END */

/* PATCH_V129_DESEMPENHO_TOTEM_CORES_OFICINA:INICIO */
/* Oficina visível sob a frota no relatório de alocação, sem alterar o agrupamento oficial. */
.relatorio-alocacao-total-frente .rel-aloc-fleet-entry{
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  max-width:118px!important;
  break-inside:avoid!important;
}
.relatorio-alocacao-total-frente .rel-aloc-fleet-entry .rel-aloc-fleet{width:100%!important;}
.relatorio-alocacao-total-frente .rel-aloc-fleet-office{
  display:block!important;
  max-width:118px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:#52645d!important;
  font-size:8px!important;
  font-weight:1000!important;
  line-height:1!important;
  text-transform:uppercase!important;
  text-align:center!important;
}
/* PATCH_V129_DESEMPENHO_TOTEM_CORES_OFICINA:FIM */


/* ===== public/css/login-final.css ===== */

/* ============================================================
   LOGIN FINAL RESPONSIVO - PIMS
   Ajuste definitivo: evita card espremido, mantém visual aprovado.
   Carregar por último.
   ============================================================ */

html:has(#loginView.login-screen:not(.hidden)),
body:has(#loginView.login-screen:not(.hidden)){
  overflow:hidden!important;
}

#loginView.login-screen.hidden,
#appView.app-shell.hidden{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

#loginView.login-screen:not(.hidden){
  position:fixed!important;
  inset:0!important;
  z-index:9999!important;
  width:100vw!important;
  height:100dvh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:minmax(0, 1.08fr) minmax(500px, .92fr)!important;
  overflow:hidden!important;
  color:#10271e!important;
  isolation:isolate!important;
  background:
    radial-gradient(circle at 22% 24%,rgba(45,184,116,.14),transparent 30%),
    radial-gradient(circle at 78% 52%,rgba(255,255,255,.075),transparent 36%),
    linear-gradient(135deg,#061e18 0%,#0b3328 51%,#15543f 100%)!important;
}

#loginView.login-screen:not(.hidden)::before{
  content:none!important;
  display:none!important;
}

#loginView.login-screen:not(.hidden)::after{
  content:none!important;
  display:none!important;
}

#loginView .login-hero{
  position:relative!important;
  z-index:2!important;
  min-width:0!important;
  height:100dvh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:clamp(40px,4vw,66px) clamp(34px,4.4vw,78px)!important;
  display:grid!important;
  grid-template-rows:auto 1fr!important;
  align-items:stretch!important;
  color:#fff!important;
  background:transparent!important;
  overflow:hidden!important;
  clip-path:none!important;
}

#loginView .login-hero::before{
  content:""!important;
  position:absolute!important;
  inset:-18% 0 -18% 38%!important;
  z-index:0!important;
  background:
    linear-gradient(106deg,transparent 0 25%,rgba(255,255,255,.044) 25.2% 45%,transparent 45.2% 100%),
    linear-gradient(106deg,transparent 0 58%,rgba(255,255,255,.095) 58.1% 58.7%,transparent 58.8% 100%)!important;
  transform:skewX(-8deg)!important;
  pointer-events:none!important;
  display:block!important;
}

#loginView .login-hero::after{
  content:""!important;
  position:absolute!important;
  left:clamp(-90px,-4vw,-22px)!important;
  top:24%!important;
  z-index:0!important;
  width:clamp(210px,17vw,280px)!important;
  height:clamp(380px,51vh,520px)!important;
  border-radius:30px!important;
  background:rgba(255,255,255,.047)!important;
  border:1px solid rgba(255,255,255,.065)!important;
  transform:rotate(13deg)!important;
  pointer-events:none!important;
  display:block!important;
}

#loginView .brand-login{
  position:relative!important;
  z-index:4!important;
  width:max-content!important;
  max-width:min(344px,92%)!important;
  min-height:84px!important;
  padding:12px 17px!important;
  border-radius:21px!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  background:rgba(255,255,255,.105)!important;
  border:1px solid rgba(255,255,255,.28)!important;
  box-shadow:0 20px 50px rgba(0,0,0,.16)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
}

#loginView .brand-login .brand-logo{
  width:61px!important;
  height:61px!important;
  flex:0 0 61px!important;
  border-radius:16px!important;
  background:#fff!important;
  display:grid!important;
  place-items:center!important;
  box-shadow:0 14px 35px rgba(0,0,0,.18)!important;
  overflow:hidden!important;
}

#loginView .brand-login .brand-logo img{
  width:54px!important;
  max-height:54px!important;
  object-fit:contain!important;
}

#loginView .brand-login strong{
  display:block!important;
  color:#fff!important;
  font-size:18px!important;
  line-height:1.05!important;
  font-weight:1000!important;
  letter-spacing:.01em!important;
  text-shadow:0 8px 24px rgba(0,0,0,.16)!important;
}

#loginView .brand-login span{
  display:block!important;
  color:#d9f3e9!important;
  font-size:12.5px!important;
  line-height:1.08!important;
  font-weight:900!important;
  margin-top:6px!important;
}

#loginView .login-copy{
  position:relative!important;
  z-index:4!important;
  align-self:center!important;
  justify-self:start!important;
  width:min(680px,86%)!important;
  margin:0 0 0 clamp(18px,1.2vw,34px)!important;
  padding:0!important;
  transform:translateY(-1vh)!important;
  text-align:left!important;
  display:block!important;
}

#loginView .login-copy h1{
  max-width:680px!important;
  margin:0 0 22px!important;
  color:#fff!important;
  font-size:clamp(46px,4.7vw,72px)!important;
  line-height:1.02!important;
  letter-spacing:-.055em!important;
  font-weight:1000!important;
  text-align:left!important;
  text-shadow:0 17px 48px rgba(0,0,0,.30)!important;
}

#loginView .login-copy h1::after{
  content:""!important;
  display:block!important;
  width:76px!important;
  height:5px!important;
  margin-top:22px!important;
  border-radius:999px!important;
  background:#2fc176!important;
  box-shadow:0 10px 26px rgba(47,193,118,.30)!important;
}

#loginView .login-copy p{
  max-width:640px!important;
  margin:0!important;
  color:#f3fff9!important;
  font-size:clamp(17px,1.34vw,23px)!important;
  line-height:1.45!important;
  font-weight:950!important;
  text-align:left!important;
  text-shadow:0 12px 34px rgba(0,0,0,.25)!important;
}

#loginView .login-footer-brand{
  position:absolute!important;
  left:0!important;
  top:calc(100% + clamp(54px,9vh,118px))!important;
  z-index:4!important;
  display:block!important;
  margin:0!important;
  color:#d5f2e7!important;
  text-align:left!important;
  font-size:13px!important;
  letter-spacing:.045em!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  text-shadow:0 10px 26px rgba(0,0,0,.20)!important;
  white-space:nowrap!important;
}

#loginView .login-panel{
  position:relative!important;
  z-index:3!important;
  min-width:0!important;
  height:100dvh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:clamp(26px,3.6vw,66px)!important;
  display:grid!important;
  place-items:center!important;
  background:transparent!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  overflow:visible!important;
}

#loginView .login-panel::before{
  content:none!important;
  display:none!important;
}

#loginView .login-panel::after{
  content:none!important;
  display:none!important;
}

#loginView .login-card{
  position:relative!important;
  z-index:5!important;
  width:clamp(430px,28.5vw,520px)!important;
  max-width:calc(100vw - 52px)!important;
  min-width:0!important;
  min-height:auto!important;
  margin:0!important;
  padding:clamp(34px,2.85vw,52px) clamp(34px,2.85vw,52px)!important;
  border-radius:30px!important;
  background:rgba(255,255,255,.985)!important;
  border:1px solid rgba(223,234,229,.96)!important;
  box-shadow:0 34px 92px rgba(0,0,0,.24),0 0 0 1px rgba(255,255,255,.44) inset!important;
  backdrop-filter:blur(10px)!important;
  -webkit-backdrop-filter:blur(10px)!important;
  display:block!important;
  pointer-events:auto!important;
}

#loginView .login-logo{
  width:clamp(68px,4.6vw,80px)!important;
  height:clamp(68px,4.6vw,80px)!important;
  margin:0 auto clamp(17px,1.35vw,24px)!important;
  border-radius:22px!important;
  background:transparent!important;
  box-shadow:none!important;
  display:grid!important;
  place-items:center!important;
}

#loginView .login-logo img{
  width:clamp(66px,4.4vw,78px)!important;
  max-height:clamp(66px,4.4vw,78px)!important;
  object-fit:contain!important;
}

#loginView .login-card h2{
  margin:0 0 clamp(22px,1.6vw,30px)!important;
  color:#0b3328!important;
  font-size:clamp(31px,2.15vw,39px)!important;
  line-height:1.05!important;
  text-align:center!important;
  font-weight:1000!important;
  letter-spacing:-.03em!important;
  white-space:nowrap!important;
}

#loginView .login-msg{
  margin:0 0 12px!important;
  padding:10px 12px!important;
  border-radius:12px!important;
  background:#fff0f0!important;
  border:1px solid #ffd0d0!important;
  color:#9f1515!important;
  font-size:12px!important;
  font-weight:900!important;
  text-align:center!important;
}

#loginView .login-card label{
  display:block!important;
  margin:clamp(13px,1.05vw,16px) 0 8px!important;
  color:#133d30!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:1000!important;
  text-transform:none!important;
  letter-spacing:0!important;
}

#loginView .required{color:#e2555b!important;font-weight:1000!important;}

#loginView .password-wrap{
  position:relative!important;
  display:block!important;
  width:100%!important;
}

#loginView .login-card input,
#loginView .login-card select{
  width:100%!important;
  height:clamp(54px,3.65vw,60px)!important;
  border-radius:15px!important;
  border:1px solid #d7e5df!important;
  background:#fff!important;
  color:#10271e!important;
  font-size:15px!important;
  font-weight:900!important;
  padding:0 16px!important;
  outline:none!important;
  box-shadow:none!important;
  pointer-events:auto!important;
}

#loginView .password-wrap input{padding-right:56px!important;}



#loginView .login-card input::placeholder{
  color:#75857e!important;
  opacity:1!important;
  font-weight:900!important;
}

#loginView .login-field-error{
  border-color:#e2555b!important;
  box-shadow:0 0 0 4px rgba(226,85,91,.10)!important;
}

#loginView .btn-toggle-senha{
  position:absolute!important;
  right:14px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:34px!important;
  height:34px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:10px!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#2c3b35!important;
  display:grid!important;
  place-items:center!important;
  cursor:pointer!important;
}

#loginView .btn-toggle-senha svg{
  width:23px!important;
  height:23px!important;
  fill:currentColor!important;
  opacity:.86!important;
}

#loginView #btnLogin{
  width:100%!important;
  height:clamp(58px,3.85vw,64px)!important;
  margin-top:clamp(24px,1.85vw,30px)!important;
  border:0!important;
  border-radius:15px!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:1000!important;
  background:linear-gradient(135deg,#0f3d2e,#1d6b4d)!important;
  box-shadow:0 16px 34px rgba(15,61,46,.27)!important;
  cursor:pointer!important;
  pointer-events:auto!important;
}




#loginView .login-secure{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  width:100%!important;
  margin:clamp(24px,1.95vw,32px) 0 0!important;
  color:#34493f!important;
  font-size:13px!important;
  line-height:1.25!important;
  font-weight:800!important;
  text-align:left!important;
}

#loginView .login-secure svg{
  width:24px!important;
  height:24px!important;
  flex:0 0 24px!important;
  fill:#28b06f!important;
}

@media(max-width:1320px){
  #loginView.login-screen:not(.hidden){
    grid-template-columns:minmax(0,1fr) minmax(455px,.92fr)!important;
  }
  #loginView .login-copy{width:min(600px,82%)!important;}
  #loginView .login-copy h1{font-size:clamp(42px,4.3vw,58px)!important;}
  #loginView .login-copy p{font-size:clamp(16px,1.34vw,19px)!important;}
  #loginView .login-card{width:clamp(410px,33vw,480px)!important;padding:34px!important;}
}

@media(max-width:1120px){
  #loginView.login-screen:not(.hidden){
    grid-template-columns:minmax(0,1fr) minmax(430px,.95fr)!important;
  }
  #loginView .login-hero{padding:34px 30px!important;}
  #loginView .login-copy h1{font-size:40px!important;}
  #loginView .login-copy p{font-size:15px!important;}
  #loginView .brand-login{transform:scale(.92)!important;transform-origin:left top!important;}
  #loginView .login-card{width:400px!important;padding:30px!important;border-radius:28px!important;}
  #loginView .login-card h2{font-size:31px!important;}
}

@media(max-width:980px){
  html:has(#loginView.login-screen:not(.hidden)),
  body:has(#loginView.login-screen:not(.hidden)){
    overflow:auto!important;
  }
  #loginView.login-screen:not(.hidden){
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:100dvh!important;
    height:auto!important;
    padding:18px!important;
    overflow:auto!important;
    background:
      radial-gradient(circle at 50% 0%,rgba(40,176,111,.18),transparent 34%),
      linear-gradient(160deg,#061e18 0%,#0f3d2e 58%,#15543f 100%)!important;
  }
  #loginView .login-hero,
  #loginView .login-hero::before,
  #loginView .login-hero::after,
  #loginView .brand-login,
  #loginView .login-copy,
  #loginView .login-footer-brand{display:none!important;}
  #loginView .login-panel{width:100%!important;min-height:auto!important;height:auto!important;padding:0!important;margin:0!important;background:transparent!important;overflow:visible!important;}
  #loginView .login-panel::before,#loginView .login-panel::after{display:none!important;content:none!important;}
  #loginView .login-card{width:min(450px,100%)!important;max-width:100%!important;border-radius:26px!important;padding:30px 26px!important;}
  #loginView .login-card h2{font-size:30px!important;white-space:normal!important;}
}

@media(max-height:760px) and (min-width:981px){
  #loginView .login-hero{padding-top:30px!important;padding-bottom:30px!important;}
  #loginView .brand-login{transform:scale(.88)!important;transform-origin:left top!important;}
  #loginView .login-copy{transform:translateY(0)!important;}
  #loginView .login-copy h1{font-size:clamp(38px,4vw,54px)!important;margin-bottom:16px!important;}
  #loginView .login-copy h1::after{margin-top:16px!important;}
  #loginView .login-copy p{font-size:16px!important;}
  #loginView .login-footer-brand{top:calc(100% + 42px)!important;}
  #loginView .login-card{padding:26px 30px!important;width:410px!important;border-radius:26px!important;}
  #loginView .login-logo{width:62px!important;height:62px!important;margin-bottom:14px!important;}
  #loginView .login-logo img{width:60px!important;max-height:60px!important;}
  #loginView .login-card h2{font-size:30px!important;margin-bottom:18px!important;}
  #loginView .login-card label{margin:12px 0 7px!important;}
  #loginView .login-card input,#loginView .login-card select{height:50px!important;}
  #loginView #btnLogin{height:54px!important;margin-top:22px!important;}
  #loginView .login-secure{margin-top:20px!important;font-size:12px!important;}
}

@media(max-width:520px){
  #loginView.login-screen:not(.hidden){padding:14px!important;}
  #loginView .login-card{padding:28px 22px!important;border-radius:24px!important;}
  #loginView .login-logo{width:64px!important;height:64px!important;}
  #loginView .login-logo img{width:62px!important;max-height:62px!important;}
  #loginView .login-card h2{font-size:28px!important;}
  #loginView .login-card input,#loginView .login-card select{height:52px!important;}
  #loginView #btnLogin{height:56px!important;}
}

/* Remove definitivamente a linha branca herdada no lado direito do login */
#loginView .login-panel,
#loginView .login-panel::before,
#loginView .login-panel::after{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}


/* PATCH — Login: mensagem senha errada */
#loginView .login-msg{
  animation:loginMsgPulse .18s ease-out 1;
}
@keyframes loginMsgPulse{
  from{transform:translateY(-2px);opacity:.72;}
  to{transform:translateY(0);opacity:1;}
}
#loginView #loginSenha.login-field-error{
  border-color:#e2555b!important;
  box-shadow:0 0 0 4px rgba(226,85,91,.14)!important;
}


/* ===== public/css/sidebar-responsive-patch.css ===== */
/* PATCH_MENU_LATERAL_RESPONSIVO:INICIO */
/* Camada pequena e isolada. Atua somente na sidebar oficial. */
:root{
  --pims-sidebar-fluid-width:clamp(280px,19vw,310px);
  --pims-sidebar-collapsed-width:78px;
}

#sidebarPrincipal,
#sidebarPrincipal *{box-sizing:border-box;}

#sidebarPrincipal :is(strong,span,small,b,button){
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}

@media (min-width:901px){
  body:not(.sidebar-collapsed) .app-shell{
    grid-template-columns:var(--pims-sidebar-fluid-width) minmax(0,1fr)!important;
  }

  body:not(.sidebar-collapsed) #sidebarPrincipal.sidebar{
    width:var(--pims-sidebar-fluid-width)!important;
  }

  body:not(.sidebar-collapsed) .main{
    margin-left:var(--pims-sidebar-fluid-width)!important;
    width:calc(100vw - var(--pims-sidebar-fluid-width))!important;
  }

  #sidebarPrincipal.sidebar{
    height:100vh!important;
    height:100dvh!important;
    min-height:0!important;
    padding:clamp(8px,1.15vh,12px)!important;
    gap:clamp(5px,.8vh,9px)!important;
    display:grid!important;
    grid-template-rows:auto auto auto minmax(0,1fr) auto!important;
    align-content:stretch!important;
    overflow:hidden!important;
  }

  #sidebarPrincipal .brand{
    min-width:0!important;
    min-height:48px!important;
    height:auto!important;
    padding:0 42px 0 0!important;
    margin:0!important;
    gap:8px!important;
    display:flex!important;
    align-items:center!important;
    overflow:visible!important;
  }

  #sidebarPrincipal .brand-logo{
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    flex:0 0 40px!important;
  }

  #sidebarPrincipal .brand-logo img{
    width:32px!important;
    max-width:32px!important;
    max-height:32px!important;
  }

  #sidebarPrincipal .brand>div:not(.brand-logo){
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }

  #sidebarPrincipal .brand strong{
    display:block!important;
    max-width:100%!important;
    font-size:clamp(13px,.92vw,15px)!important;
    line-height:1.08!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  #sidebarPrincipal .brand span{
    display:block!important;
    max-width:100%!important;
    margin-top:2px!important;
    font-size:clamp(9px,.68vw,11px)!important;
    line-height:1.08!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  #sidebarPrincipal .sidebar-toggle{
    top:clamp(9px,1.2vh,13px)!important;
    right:clamp(9px,1vw,13px)!important;
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    padding:0!important;
  }

  #sidebarPrincipal .side-menu{
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:repeat(7,minmax(31px,auto))!important;
    gap:clamp(2px,.45vh,5px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scrollbar-width:thin!important;
  }

  #sidebarPrincipal .side-menu .menu-item{
    width:100%!important;
    min-width:0!important;
    min-height:clamp(31px,4.1vh,39px)!important;
    height:auto!important;
    padding:clamp(6px,.8vh,9px) 9px!important;
    border-radius:11px!important;
    display:grid!important;
    grid-template-columns:20px minmax(0,1fr)!important;
    align-items:center!important;
    gap:8px!important;
    text-align:left!important;
    overflow:hidden!important;
  }

  #sidebarPrincipal .menu-icon{
    width:20px!important;
    min-width:20px!important;
    display:grid!important;
    place-items:center!important;
    font-size:16px!important;
    line-height:1!important;
  }

  #sidebarPrincipal .menu-label{
    min-width:0!important;
    display:block!important;
    color:inherit!important;
    font-size:clamp(11px,.78vw,13px)!important;
    line-height:1.1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  #sidebarPrincipal .sidebar-box{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    border-radius:15px!important;
  }

  #sidebarPrincipal .pims-status-box{
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    padding:8px!important;
    display:grid!important;
    gap:5px!important;
    overflow:visible!important;
  }

  #sidebarPrincipal .status-head{
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:6px!important;
  }

  #sidebarPrincipal .status-head small,
  #sidebarPrincipal .status-pill{
    white-space:nowrap!important;
  }

  #sidebarPrincipal .status-lines{
    min-width:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:2px 7px!important;
    font-size:clamp(9px,.68vw,11px)!important;
    line-height:1.1!important;
  }

  #sidebarPrincipal .status-lines span{
    min-width:0!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  #sidebarPrincipal #statusPimsAtualizado{
    grid-column:1 / -1!important;
  }

  #sidebarPrincipal .sidebar-refresh-btn{
    width:100%!important;
    min-width:0!important;
    min-height:31px!important;
    margin:0!important;
    padding:6px 9px!important;
    white-space:nowrap!important;
  }

  #sidebarPrincipal #sidebarSemaforo{
    min-width:0!important;
    min-height:0!important;
    height:100%!important;
    max-height:none!important;
    padding:8px!important;
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
    overflow:hidden!important;
  }

  #sidebarPrincipal .semaforo-sidebar-head{
    flex:0 0 auto!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:6px!important;
  }

  #sidebarPrincipal .semaforo-head-actions{
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:4px!important;
    flex-wrap:nowrap!important;
  }

  #sidebarPrincipal .semaforo-reserva-toggle,
  #sidebarPrincipal .semaforo-total-pill{
    min-width:0!important;
    max-width:100%!important;
    white-space:nowrap!important;
    font-size:clamp(8px,.58vw,10px)!important;
  }

  #sidebarPrincipal .semaforo-sidebar-grid{
    flex:1 1 auto!important;
    min-height:0!important;
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:repeat(6,minmax(29px,1fr))!important;
    gap:clamp(3px,.55vh,6px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scrollbar-width:thin!important;
  }

  #sidebarPrincipal .semaforo-sidebar-card{
    width:100%!important;
    min-width:0!important;
    min-height:29px!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:5px 8px!important;
    border-radius:10px!important;
    display:grid!important;
    grid-template-columns:11px minmax(0,1fr) minmax(20px,auto)!important;
    align-items:center!important;
    gap:6px!important;
    overflow:hidden!important;
  }

  #sidebarPrincipal .semaforo-sidebar-card i{
    width:10px!important;
    height:10px!important;
    min-width:10px!important;
    margin:0!important;
  }

  #sidebarPrincipal .semaforo-sidebar-card span{
    min-width:0!important;
    max-width:100%!important;
    display:block!important;
    font-size:clamp(9.5px,.7vw,11.5px)!important;
    line-height:1.05!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    text-align:left!important;
  }

  #sidebarPrincipal .semaforo-sidebar-card b{
    min-width:20px!important;
    display:block!important;
    font-size:clamp(11px,.8vw,13px)!important;
    line-height:1!important;
    white-space:nowrap!important;
    text-align:right!important;
  }

  #sidebarPrincipal .sidebar-user{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:8px!important;
    position:static!important;
    border-radius:15px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:3px 7px!important;
    overflow:visible!important;
  }

  #sidebarPrincipal .sidebar-user-head{
    grid-column:1 / -1!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:7px!important;
  }

  #sidebarPrincipal .sidebar-user-head small,
  #sidebarPrincipal #usuarioLogado,
  #sidebarPrincipal #usuarioUnidade{
    min-width:0!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  #sidebarPrincipal #usuarioLogado{
    grid-column:1 / -1!important;
    font-size:clamp(11px,.78vw,13px)!important;
    line-height:1.1!important;
  }

  #sidebarPrincipal #usuarioUnidade{
    grid-column:1 / -1!important;
    font-size:clamp(9px,.66vw,11px)!important;
    line-height:1.1!important;
  }

  #sidebarPrincipal #localStorageMeter.storage-meter{
    width:auto!important;
    min-width:64px!important;
    max-width:82px!important;
    min-height:28px!important;
    height:auto!important;
    margin:0!important;
    padding:4px 7px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    place-items:center!important;
    gap:1px!important;
    overflow:hidden!important;
  }

  #sidebarPrincipal #localStorageMeter.storage-meter span,
  #sidebarPrincipal #localStorageMeter.storage-meter b{
    max-width:100%!important;
    display:block!important;
    font-size:8px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  #sidebarPrincipal #btnSair{
    grid-column:1 / -1!important;
    width:100%!important;
    min-width:0!important;
    min-height:31px!important;
    margin:4px 0 0!important;
    padding:6px 9px!important;
    white-space:nowrap!important;
  }

  body.sidebar-collapsed .app-shell{
    grid-template-columns:var(--pims-sidebar-collapsed-width) minmax(0,1fr)!important;
  }

  body.sidebar-collapsed #sidebarPrincipal.sidebar{
    width:var(--pims-sidebar-collapsed-width)!important;
    padding:10px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:7px!important;
    overflow:hidden!important;
  }

  body.sidebar-collapsed .main{
    margin-left:var(--pims-sidebar-collapsed-width)!important;
    width:calc(100vw - var(--pims-sidebar-collapsed-width))!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand{
    min-height:44px!important;
    width:100%!important;
    padding:0!important;
    justify-content:center!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand>div:not(.brand-logo),
  body.sidebar-collapsed #sidebarPrincipal .sidebar-box,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head,
  body.sidebar-collapsed #sidebarPrincipal #usuarioLogado,
  body.sidebar-collapsed #sidebarPrincipal #usuarioUnidade,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter{
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu{
    width:100%!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:6px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item{
    width:52px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    place-items:center!important;
    color:#fff!important;
    font-size:inherit!important;
    overflow:hidden!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .menu-label{
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .menu-icon{
    display:grid!important;
    color:inherit!important;
    font-size:18px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user{
    width:100%!important;
    margin-top:auto!important;
    padding:0!important;
    display:block!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair{
    width:52px!important;
    height:38px!important;
    min-height:38px!important;
    margin:0 auto!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    font-size:0!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair::after{
    content:"Sair";
    font-size:10px!important;
    color:inherit!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-toggle{
    top:10px!important;
    right:50%!important;
    transform:translateX(50%)!important;
  }
}

@media (min-width:901px) and (max-height:720px){
  #sidebarPrincipal.sidebar{
    padding:7px!important;
    gap:4px!important;
  }
  #sidebarPrincipal .brand{min-height:40px!important;}
  #sidebarPrincipal .brand-logo{width:36px!important;height:36px!important;min-width:36px!important;flex-basis:36px!important;}
  #sidebarPrincipal .side-menu{gap:2px!important;grid-template-rows:repeat(7,minmax(28px,auto))!important;}
  #sidebarPrincipal .side-menu .menu-item{min-height:28px!important;padding:5px 8px!important;}
  #sidebarPrincipal .pims-status-box{padding:6px!important;gap:3px!important;}
  #sidebarPrincipal .sidebar-refresh-btn{min-height:28px!important;padding:4px 8px!important;}
  #sidebarPrincipal #sidebarSemaforo{padding:6px!important;gap:4px!important;}
  #sidebarPrincipal .semaforo-sidebar-grid{grid-template-rows:repeat(6,minmax(25px,1fr))!important;gap:3px!important;}
  #sidebarPrincipal .semaforo-sidebar-card{min-height:25px!important;padding:3px 7px!important;}
  #sidebarPrincipal .sidebar-user{padding:6px!important;gap:2px 6px!important;}
  #sidebarPrincipal #btnSair{min-height:28px!important;margin-top:2px!important;padding:4px 8px!important;}
}

@media (max-width:900px){
  #sidebarPrincipal.sidebar{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    padding:10px!important;
    gap:8px!important;
    overflow-x:hidden!important;
  }
  #sidebarPrincipal .brand,
  #sidebarPrincipal .side-menu,
  #sidebarPrincipal .sidebar-box,
  #sidebarPrincipal .sidebar-user{width:100%!important;min-width:0!important;}
  #sidebarPrincipal .side-menu{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }
  #sidebarPrincipal .side-menu .menu-item{
    min-width:0!important;
    display:grid!important;
    grid-template-columns:20px minmax(0,1fr)!important;
    align-items:center!important;
    gap:7px!important;
    white-space:nowrap!important;
  }
  #sidebarPrincipal .menu-label{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
  #sidebarPrincipal .semaforo-sidebar-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }
  #sidebarPrincipal .semaforo-sidebar-card{
    min-width:0!important;
    display:grid!important;
    grid-template-columns:10px minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:5px!important;
  }
  #sidebarPrincipal .semaforo-sidebar-card span{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
  body.sidebar-collapsed #sidebarPrincipal .brand>div:not(.brand-logo),
  body.sidebar-collapsed #sidebarPrincipal .sidebar-box,
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head,
  body.sidebar-collapsed #sidebarPrincipal #usuarioLogado,
  body.sidebar-collapsed #sidebarPrincipal #usuarioUnidade,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
  body.sidebar-collapsed #sidebarPrincipal .menu-label{display:revert!important;}
}

@media (max-width:480px){
  #sidebarPrincipal .side-menu,
  #sidebarPrincipal .semaforo-sidebar-grid{grid-template-columns:1fr!important;}
  #sidebarPrincipal .semaforo-sidebar-head{align-items:flex-start!important;}
  #sidebarPrincipal .semaforo-head-actions{flex-wrap:wrap!important;}
}
/* PATCH_MENU_LATERAL_RESPONSIVO:FIM */

/* PATCH_MENU_LATERAL_AJUSTE_FINO_V2:INICIO */
/* Ajuste isolado: distribuição vertical, Storage completo e modo recolhido. */

@media (min-width: 901px) {
  #sidebarPrincipal.sidebar {
    --pims-side-gap: 6px;
    --pims-side-item-h: 38px;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: 100dvh !important;
    padding: 8px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--pims-side-gap) !important;
    overflow: hidden !important;
  }

  #sidebarPrincipal.sidebar,
  #sidebarPrincipal.sidebar * {
    box-sizing: border-box !important;
  }

  #sidebarPrincipal .brand {
    order: 0 !important;
    flex: 0 0 48px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    max-height: 48px !important;
    margin: 0 !important;
    padding: 0 42px 0 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    overflow: hidden !important;
  }

  #sidebarPrincipal .brand > div:not(.brand-logo),
  #sidebarPrincipal .brand strong,
  #sidebarPrincipal .brand span {
    min-width: 0 !important;
    max-width: 100% !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  #sidebarPrincipal .brand strong,
  #sidebarPrincipal .brand span {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #sidebarPrincipal .sidebar-toggle {
    position: absolute !important;
    top: 11px !important;
    right: 11px !important;
    left: auto !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    display: grid !important;
    place-items: center !important;
    line-height: 1 !important;
  }

  #sidebarPrincipal .side-menu {
    order: 1 !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
    overflow: visible !important;
  }

  #sidebarPrincipal .side-menu .menu-item {
    flex: 0 0 var(--pims-side-item-h) !important;
    width: 100% !important;
    min-width: 0 !important;
    height: var(--pims-side-item-h) !important;
    min-height: var(--pims-side-item-h) !important;
    max-height: var(--pims-side-item-h) !important;
    margin: 0 !important;
    padding: 0 10px !important;
    display: grid !important;
    grid-template-columns: 20px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 8px !important;
    overflow: hidden !important;
  }

  #sidebarPrincipal .side-menu .menu-label {
    min-width: 0 !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #sidebarPrincipal .pims-status-box,
  #sidebarPrincipal .refresh-box,
  #sidebarPrincipal .session-card {
    order: 2 !important;
    flex: 0 0 96px !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 96px !important;
    min-height: 96px !important;
    max-height: 96px !important;
    margin: 0 !important;
    padding: 8px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    overflow: hidden !important;
  }

  #sidebarPrincipal .status-head,
  #sidebarPrincipal .status-lines {
    min-width: 0 !important;
    margin: 0 !important;
  }

  #sidebarPrincipal .status-lines {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 1px 7px !important;
  }

  #sidebarPrincipal #statusPimsAtualizado {
    grid-column: 1 / -1 !important;
  }

  #sidebarPrincipal .sidebar-refresh-btn {
    width: 100% !important;
    min-width: 0 !important;
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    margin: auto 0 0 !important;
    padding: 0 10px !important;
    white-space: nowrap !important;
  }

  #sidebarPrincipal #sidebarSemaforo,
  #sidebarPrincipal .semaforo-sidebar-box {
    order: 3 !important;
    flex: 1 1 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 190px !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 8px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    overflow: hidden !important;
  }

  #sidebarPrincipal .semaforo-sidebar-head {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    min-height: 22px !important;
    margin: 0 !important;
  }

  #sidebarPrincipal .semaforo-head-actions {
    min-width: 0 !important;
    flex-wrap: nowrap !important;
  }

  #sidebarPrincipal .semaforo-sidebar-grid {
    flex: 1 1 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: repeat(6, minmax(29px, 1fr)) !important;
    align-content: stretch !important;
    gap: 5px !important;
    overflow: hidden !important;
    scrollbar-width: none !important;
  }

  #sidebarPrincipal .semaforo-sidebar-grid::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
  }

  #sidebarPrincipal .semaforo-sidebar-card {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 29px !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 4px 8px !important;
    display: grid !important;
    grid-template-columns: 11px minmax(0, 1fr) minmax(22px, auto) !important;
    align-items: center !important;
    gap: 6px !important;
    overflow: hidden !important;
  }

  #sidebarPrincipal .semaforo-sidebar-card span {
    min-width: 0 !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #sidebarPrincipal .semaforo-sidebar-card b {
    min-width: 22px !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  #sidebarPrincipal .sidebar-user {
    order: 4 !important;
    flex: 0 0 102px !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 102px !important;
    min-height: 102px !important;
    max-height: 102px !important;
    margin: 0 !important;
    padding: 8px !important;
    position: static !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 34px auto auto 30px !important;
    gap: 2px !important;
    overflow: hidden !important;
  }

  #sidebarPrincipal .sidebar-user-head {
    width: 100% !important;
    min-width: 0 !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 76px !important;
    align-items: center !important;
    gap: 7px !important;
    overflow: visible !important;
  }

  #sidebarPrincipal .sidebar-user-head > small {
    min-width: 0 !important;
    max-width: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #sidebarPrincipal #localStorageMeter.storage-meter {
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    margin: 0 !important;
    padding: 4px 7px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
    place-items: center !important;
    gap: 1px !important;
    overflow: visible !important;
    white-space: nowrap !important;
  }

  #sidebarPrincipal #localStorageMeter.storage-meter span,
  #sidebarPrincipal #localStorageMeter.storage-meter b {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
  }

  #sidebarPrincipal #localStorageMeter.storage-meter span {
    font-size: 8px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
  }

  #sidebarPrincipal #localStorageMeter.storage-meter b {
    font-size: 10px !important;
    font-weight: 1000 !important;
  }

  #sidebarPrincipal #usuarioLogado,
  #sidebarPrincipal #usuarioUnidade {
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #sidebarPrincipal #btnSair {
    width: 100% !important;
    min-width: 0 !important;
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    white-space: nowrap !important;
  }

  /* Modo recolhido: fluxo vertical real, sem botão sobre o logo. */
  body.sidebar-collapsed #sidebarPrincipal.sidebar {
    --pims-side-gap: 7px;
    width: var(--pims-sidebar-collapsed-width, 78px) !important;
    min-width: var(--pims-sidebar-collapsed-width, 78px) !important;
    max-width: var(--pims-sidebar-collapsed-width, 78px) !important;
    padding: 8px 10px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: var(--pims-side-gap) !important;
    overflow: hidden !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-toggle {
    order: 0 !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    flex: 0 0 48px !important;
    align-self: center !important;
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    border-radius: 16px !important;
    font-size: 22px !important;
    line-height: 1 !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand {
    order: 1 !important;
    flex: 0 0 48px !important;
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    overflow: hidden !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand > div:not(.brand-logo) {
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand-logo {
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    margin: 0 !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand-logo img {
    width: 36px !important;
    max-width: 36px !important;
    max-height: 36px !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu {
    order: 2 !important;
    flex: 0 0 auto !important;
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 7px !important;
    overflow: visible !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item {
    flex: 0 0 46px !important;
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    place-items: center !important;
    overflow: hidden !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-label {
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-icon {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    font-size: 18px !important;
    line-height: 1 !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-box,
  body.sidebar-collapsed #sidebarPrincipal .refresh-box,
  body.sidebar-collapsed #sidebarPrincipal .session-card {
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo,
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-box {
    order: 3 !important;
    flex: 1 1 auto !important;
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    min-height: 180px !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-head {
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-grid {
    flex: 0 0 auto !important;
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    height: auto !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: repeat(6, 27px) !important;
    align-content: start !important;
    gap: 6px !important;
    overflow: hidden !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card {
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    height: 27px !important;
    min-height: 27px !important;
    max-height: 27px !important;
    margin: 0 !important;
    padding: 0 6px !important;
    display: grid !important;
    grid-template-columns: 10px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 4px !important;
    border-radius: 10px !important;
    overflow: hidden !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card span {
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card b {
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    font-size: 11px !important;
    line-height: 1 !important;
    text-align: center !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user {
    order: 4 !important;
    flex: 0 0 80px !important;
    width: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
    height: 80px !important;
    min-height: 80px !important;
    max-height: 80px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 7px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head {
    flex: 0 0 35px !important;
    width: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
    height: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head > small,
  body.sidebar-collapsed #sidebarPrincipal #usuarioLogado,
  body.sidebar-collapsed #sidebarPrincipal #usuarioUnidade {
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter.storage-meter {
    display: grid !important;
    flex: 0 0 35px !important;
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    height: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
    margin: 0 !important;
    padding: 4px 2px !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
    place-items: center !important;
    gap: 1px !important;
    border-radius: 12px !important;
    overflow: visible !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter.storage-meter span,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter.storage-meter b {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    font-size: inherit !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    letter-spacing: 0 !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter.storage-meter span::before,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter.storage-meter span::after {
    content: none !important;
    display: none !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter.storage-meter span {
    font-size: 8px !important;
    font-weight: 1000 !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter.storage-meter b {
    font-size: 9px !important;
    font-weight: 1000 !important;
    line-height: 1 !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair {
    flex: 0 0 38px !important;
    width: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    font-size: 10px !important;
    line-height: 1 !important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair::after {
    content: none !important;
  }
}

@media (min-width: 901px) and (max-height: 820px) {
  #sidebarPrincipal.sidebar {
    --pims-side-gap: 4px;
    --pims-side-item-h: 34px;
    padding: 6px !important;
  }
  #sidebarPrincipal .brand {
    flex-basis: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
  }
  #sidebarPrincipal .pims-status-box,
  #sidebarPrincipal .refresh-box,
  #sidebarPrincipal .session-card {
    flex-basis: 84px !important;
    height: 84px !important;
    min-height: 84px !important;
    max-height: 84px !important;
    padding: 6px !important;
  }
  #sidebarPrincipal #sidebarSemaforo,
  #sidebarPrincipal .semaforo-sidebar-box {
    min-height: 178px !important;
    padding: 6px !important;
    gap: 4px !important;
  }
  #sidebarPrincipal .semaforo-sidebar-grid {
    grid-template-rows: repeat(6, minmax(25px, 1fr)) !important;
    gap: 3px !important;
  }
  #sidebarPrincipal .semaforo-sidebar-card {
    min-height: 25px !important;
    padding-top: 2px !important;
    padding-bottom: 2px !important;
  }
  #sidebarPrincipal .sidebar-user {
    flex-basis: 88px !important;
    height: 88px !important;
    min-height: 88px !important;
    max-height: 88px !important;
    grid-template-rows: 29px auto auto 27px !important;
    padding: 6px !important;
  }
  #sidebarPrincipal .sidebar-user-head {
    height: 29px !important;
    min-height: 29px !important;
    max-height: 29px !important;
  }
  #sidebarPrincipal #localStorageMeter.storage-meter {
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
  }
  #sidebarPrincipal #btnSair,
  #sidebarPrincipal .sidebar-refresh-btn {
    height: 27px !important;
    min-height: 27px !important;
    max-height: 27px !important;
  }

  body.sidebar-collapsed #sidebarPrincipal.sidebar {
    --pims-side-gap: 5px;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
  body.sidebar-collapsed #sidebarPrincipal .sidebar-toggle,
  body.sidebar-collapsed #sidebarPrincipal .brand {
    flex-basis: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
  }
  body.sidebar-collapsed #sidebarPrincipal .side-menu {
    gap: 5px !important;
  }
  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item {
    flex-basis: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
  }
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-grid {
    grid-template-rows: repeat(6, 24px) !important;
    gap: 4px !important;
  }
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card {
    height: 24px !important;
    min-height: 24px !important;
    max-height: 24px !important;
  }
}

@media (min-width: 901px) and (max-height: 680px) {
  #sidebarPrincipal.sidebar {
    --pims-side-gap: 3px;
    --pims-side-item-h: 29px;
    padding: 5px !important;
  }
  #sidebarPrincipal .brand {
    flex-basis: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
  }
  #sidebarPrincipal .brand-logo {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
  }
  #sidebarPrincipal .pims-status-box,
  #sidebarPrincipal .refresh-box,
  #sidebarPrincipal .session-card {
    flex-basis: 74px !important;
    height: 74px !important;
    min-height: 74px !important;
    max-height: 74px !important;
    padding: 5px !important;
  }
  #sidebarPrincipal .status-head {
    margin-bottom: 1px !important;
  }
  #sidebarPrincipal #sidebarSemaforo,
  #sidebarPrincipal .semaforo-sidebar-box {
    min-height: 160px !important;
    padding: 5px !important;
    gap: 3px !important;
  }
  #sidebarPrincipal .semaforo-sidebar-head {
    min-height: 18px !important;
  }
  #sidebarPrincipal .semaforo-sidebar-grid {
    grid-template-rows: repeat(6, minmax(22px, 1fr)) !important;
    gap: 2px !important;
  }
  #sidebarPrincipal .semaforo-sidebar-card {
    min-height: 22px !important;
    padding: 1px 6px !important;
  }
  #sidebarPrincipal .sidebar-user {
    flex-basis: 72px !important;
    height: 72px !important;
    min-height: 72px !important;
    max-height: 72px !important;
    grid-template-rows: 24px auto auto 23px !important;
    padding: 4px !important;
  }
  #sidebarPrincipal .sidebar-user-head {
    height: 24px !important;
    min-height: 24px !important;
    max-height: 24px !important;
  }
  #sidebarPrincipal #localStorageMeter.storage-meter {
    height: 24px !important;
    min-height: 24px !important;
    max-height: 24px !important;
    padding: 2px 5px !important;
  }
  #sidebarPrincipal #btnSair,
  #sidebarPrincipal .sidebar-refresh-btn {
    height: 23px !important;
    min-height: 23px !important;
    max-height: 23px !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu {
    gap: 3px !important;
  }
  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item {
    flex-basis: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
  }
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-grid {
    grid-template-rows: repeat(6, 21px) !important;
    gap: 3px !important;
  }
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card {
    height: 21px !important;
    min-height: 21px !important;
    max-height: 21px !important;
  }
}

@media (min-width: 901px) and (max-height: 580px) {
  #sidebarPrincipal .semaforo-sidebar-grid {
    overflow-y: auto !important;
    scrollbar-width: thin !important;
  }
}

/* PATCH_MENU_LATERAL_AJUSTE_FINO_V2:FIM */

/* PATCH_USUARIO_SAIR_FINAL_V1:INICIO */
/* Nome do usuário no cabeçalho do bloco e botão Sair totalmente contido. */
@media (min-width: 901px) {
  #sidebarPrincipal .sidebar-user {
    flex: 0 0 90px !important;
    height: 90px !important;
    min-height: 90px !important;
    max-height: 90px !important;
    padding: 6px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 32px 14px 28px !important;
    gap: 2px !important;
    align-content: stretch !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  #sidebarPrincipal .sidebar-user-head {
    width: 100% !important;
    min-width: 0 !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 76px !important;
    align-items: center !important;
    gap: 7px !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  #sidebarPrincipal .sidebar-user-head > small {
    display: none !important;
  }

  #sidebarPrincipal .sidebar-user-head > #usuarioLogado {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: center !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
    line-height: 1.08 !important;
    color: inherit !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #sidebarPrincipal .sidebar-user-head > #localStorageMeter.storage-meter {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: center !important;
    margin: 0 !important;
  }

  #sidebarPrincipal #usuarioUnidade {
    min-width: 0 !important;
    max-width: 100% !important;
    height: 14px !important;
    min-height: 14px !important;
    max-height: 14px !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: center !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 14px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #sidebarPrincipal .sidebar-user button#btnSair {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    align-self: end !important;
    border-radius: 10px !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    overflow: hidden !important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-head > #usuarioLogado,
  body.sidebar-collapsed #sidebarPrincipal #usuarioUnidade {
    display: none !important;
  }
}

@media (min-width: 901px) and (max-height: 820px) {
  #sidebarPrincipal .sidebar-user {
    flex-basis: 84px !important;
    height: 84px !important;
    min-height: 84px !important;
    max-height: 84px !important;
    padding: 5px !important;
    grid-template-rows: 29px 13px 26px !important;
    gap: 2px !important;
  }
  #sidebarPrincipal .sidebar-user-head {
    height: 29px !important;
    min-height: 29px !important;
    max-height: 29px !important;
  }
  #sidebarPrincipal .sidebar-user-head > #usuarioLogado { font-size: 11px !important; }
  #sidebarPrincipal .sidebar-user button#btnSair {
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
  }
}

@media (min-width: 901px) and (max-height: 680px) {
  #sidebarPrincipal .sidebar-user {
    flex-basis: 76px !important;
    height: 76px !important;
    min-height: 76px !important;
    max-height: 76px !important;
    padding: 4px !important;
    grid-template-rows: 26px 12px 24px !important;
    gap: 1px !important;
  }
  #sidebarPrincipal .sidebar-user-head {
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
  }
  #sidebarPrincipal .sidebar-user-head > #usuarioLogado { font-size: 10px !important; }
  #sidebarPrincipal .sidebar-user-head > #localStorageMeter.storage-meter {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: center !important;
    margin: 0 !important;
  }

  #sidebarPrincipal #usuarioUnidade {
    height: 12px !important;
    min-height: 12px !important;
    max-height: 12px !important;
    line-height: 12px !important;
    font-size: 9px !important;
  }
  #sidebarPrincipal .sidebar-user button#btnSair {
    height: 24px !important;
    min-height: 24px !important;
    max-height: 24px !important;
  }
}
/* PATCH_USUARIO_SAIR_FINAL_V1:FIM */


/* ===== public/css/pwa.css ===== */
.pwa-install-btn{
  width:100%; min-height:46px; margin-top:10px; border:1px solid rgba(89,190,119,.48);
  border-radius:12px; background:linear-gradient(135deg,#0f4b36,#123d30); color:#fff;
  display:flex; align-items:center; justify-content:center; gap:10px; font-weight:750; cursor:pointer;
  box-shadow:0 10px 24px rgba(4,33,24,.18);
}
.pwa-install-btn img{width:28px;height:28px;border-radius:7px;object-fit:cover}
.pwa-install-btn:hover{filter:brightness(1.07)}
.pwa-install-hint{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:rgba(19,92,64,.1);color:#22513f;font-size:.82rem;line-height:1.35}
@media (display-mode: standalone){#btnInstalarPwa,#btnInstalarPwaTopo{display:none!important}}
@media (max-width:720px){#btnInstalarPwaTopo{display:none!important}}


/* ===== public/css/mobile-premium.css ===== */
/* ============================================================
   ESPELHO PIMS — MOBILE PREMIUM V122
   Navegação inferior, painel "Mais", safe areas e telas móveis.
   O desktop permanece inalterado.
   ============================================================ */

.mobile-bottom-nav,
.mobile-more-backdrop{display:none}

@media (max-width: 900px){
  :root{
    --mobile-nav-height:78px;
    --mobile-safe-bottom:env(safe-area-inset-bottom,0px);
    --mobile-green:#0f3d2e;
    --mobile-green-2:#15543f;
    --mobile-surface:#f4f8f6;
  }

  html,body{
    width:100%!important;
    max-width:100%!important;
    min-height:100%!important;
    overflow-x:hidden!important;
    background:
      radial-gradient(circle at 15% 0%,rgba(46,170,112,.13),transparent 30%),
      linear-gradient(180deg,#f7faf8 0%,#edf4f0 100%)!important;
    overscroll-behavior-y:none;
  }

  body.mobile-more-open{overflow:hidden!important}

  #appView.app-shell:not(.hidden){
    display:block!important;
    width:100%!important;
    min-height:100dvh!important;
    background:transparent!important;
  }

  /* Sidebar desktop não participa da navegação mobile. */
  #appView #sidebarPrincipal,
  #btnSidebarHandle{display:none!important}

  #appView .main,
  body.sidebar-collapsed #appView .main{
    margin-left:0!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding:12px 10px calc(var(--mobile-nav-height) + var(--mobile-safe-bottom) + 20px)!important;
    overflow-x:hidden!important;
  }

  #appView .topbar{
    position:sticky!important;
    top:0!important;
    z-index:70!important;
    display:grid!important;
    gap:11px!important;
    margin:-12px -10px 14px!important;
    padding:calc(13px + env(safe-area-inset-top,0px)) 12px 13px!important;
    border:0!important;
    border-radius:0 0 24px 24px!important;
    background:
      radial-gradient(circle at 12% 0%,rgba(73,202,132,.22),transparent 30%),
      linear-gradient(135deg,#061d17 0%,#0f3d2e 60%,#15543f 100%)!important;
    box-shadow:0 16px 36px rgba(5,29,22,.22)!important;
    color:#fff!important;
  }

  #appView .topbar-title-wrap,
  #appView .topbar-title-text{width:100%!important;min-width:0!important}

  #pageTitle{
    margin:0!important;
    color:#fff!important;
    font-size:clamp(22px,6.4vw,28px)!important;
    line-height:1.05!important;
    letter-spacing:-.035em!important;
    font-weight:1000!important;
  }

  #pageSubtitle{
    margin:5px 0 0!important;
    color:#d8eee6!important;
    font-size:12px!important;
    line-height:1.3!important;
    font-weight:760!important;
  }

  #appView .top-actions{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:7px!important;
    width:100%!important;
  }

  #appView .top-actions .btn{
    width:100%!important;
    min-width:0!important;
    min-height:40px!important;
    padding:8px 6px!important;
    border-radius:13px!important;
    font-size:10.5px!important;
    line-height:1.05!important;
    font-weight:950!important;
    white-space:normal!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  #appView .top-actions .btn.ghost{
    background:rgba(255,255,255,.12)!important;
    color:#fff!important;
    border:1px solid rgba(255,255,255,.18)!important;
    box-shadow:none!important;
  }

  #appView .top-actions .btn.primary{
    background:#fff!important;
    color:var(--mobile-green)!important;
    border:1px solid #fff!important;
    box-shadow:0 9px 20px rgba(0,0,0,.14)!important;
  }

  #btnInstalarPwaTopo{display:none!important}

  #menuHost,.menu-host,.menu-fragment{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
  }

  .consultas-page,.disponibilidade-page,.det-page,.visuais-page,.materiais-page,
  .aderencia-page,.sistema-page{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
  }

  .filters,.filters.compact,.materiais-filters,.materiais-filters-enxutos,
  .filter-card,.filter-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
    width:100%!important;
    max-width:100%!important;
    padding:12px!important;
    border-radius:20px!important;
    overflow:visible!important;
  }

  .filters label,.filter-card label,.materiais-filters label{min-width:0!important;width:100%!important}
  .filters input,.filters select,.filters button,.filter-card input,.filter-card select,
  .materiais-filters input,.materiais-filters select,.ms-filter-button{
    width:100%!important;
    max-width:100%!important;
    min-height:44px!important;
    border-radius:13px!important;
    font-size:13px!important;
  }

  .filter-actions,.materiais-filter-actions,.actions:not(.top-actions){
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    width:100%!important;
  }

  .filter-actions .btn,.materiais-filter-actions .btn,.actions:not(.top-actions) .btn{
    width:100%!important;
    min-height:43px!important;
    border-radius:13px!important;
  }

  .kpi-grid,.cards-grid,.summary-grid,.materiais-kpis{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:9px!important;
    width:100%!important;
  }

  .dashboard-grid,.charts-grid,.front-grid,.materiais-dashboard{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:11px!important;
    width:100%!important;
  }

  .card,.kpi-card,.mat-kpi-card,.filter-card,.table-shell,.materiais-table-shell,
  .det-card,.disp-card,.visual-card-menu,.materiais-chart-card,.status-card{
    border-radius:18px!important;
    box-shadow:0 10px 24px rgba(15,61,46,.075)!important;
  }

  .table-shell,.materiais-table-shell,.table-wrap,.table-container{
    width:100%!important;
    max-width:100%!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:thin;
  }

  .data-table,.materiais-table,table{
    font-size:11px!important;
  }

  .data-table th,.data-table td,.materiais-table th,.materiais-table td{
    padding:8px 7px!important;
    font-size:11px!important;
    line-height:1.2!important;
  }

  .modal-root{
    padding:8px!important;
    align-items:flex-end!important;
  }

  .modal,.modal-card{
    width:100%!important;
    max-width:100%!important;
    max-height:90dvh!important;
    border-radius:24px 24px 0 0!important;
  }

  .toast{
    left:12px!important;
    right:12px!important;
    bottom:calc(var(--mobile-nav-height) + var(--mobile-safe-bottom) + 18px)!important;
    max-width:none!important;
    text-align:center!important;
    border-radius:15px!important;
  }

  /* Navegação inferior */
  .mobile-bottom-nav{
    position:fixed;
    left:8px;
    right:8px;
    bottom:calc(7px + var(--mobile-safe-bottom));
    z-index:950;
    height:var(--mobile-nav-height);
    padding:7px;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:4px;
    border:1px solid rgba(255,255,255,.13);
    border-radius:23px;
    background:linear-gradient(135deg,rgba(5,28,21,.98),rgba(15,61,46,.98) 62%,rgba(21,84,63,.98));
    box-shadow:0 18px 42px rgba(4,25,18,.38);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
  }

  #appView.hidden ~ .mobile-bottom-nav,
  #loginView:not(.hidden) ~ .mobile-bottom-nav{display:none!important}

  .mobile-nav-item{
    appearance:none;
    border:0;
    border-radius:17px;
    background:transparent;
    color:#cce8dc;
    min-width:0;
    padding:6px 2px 5px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    font:inherit;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }

  .mobile-nav-item:active{transform:scale(.96)}
  .mobile-nav-item.active{
    background:rgba(255,255,255,.15);
    color:#fff;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
  }
  .mobile-nav-icon{font-size:20px;line-height:1;height:22px;display:grid;place-items:center}
  .mobile-nav-label{font-size:9px;line-height:1.05;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .mobile-nav-live{position:absolute;width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.16);transform:translate(13px,-11px)}

  /* Painel Mais */
  .mobile-more-backdrop{
    position:fixed;
    inset:0;
    z-index:980;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    padding:14px 10px calc(10px + var(--mobile-safe-bottom));
    background:rgba(3,17,12,.54);
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
  }
  .mobile-more-backdrop.open{opacity:1;pointer-events:auto}
  .mobile-more-sheet{
    width:min(520px,100%);
    max-height:84dvh;
    overflow:auto;
    border-radius:26px;
    padding:14px;
    background:linear-gradient(180deg,#fbfdfc,#edf5f1);
    box-shadow:0 30px 80px rgba(0,0,0,.34);
    transform:translateY(20px);
    transition:transform .18s ease;
  }
  .mobile-more-backdrop.open .mobile-more-sheet{transform:translateY(0)}
  .mobile-more-handle{width:46px;height:5px;border-radius:999px;background:#c8d7d0;margin:0 auto 12px}
  .mobile-more-header{display:flex;align-items:center;gap:11px;padding:2px 3px 13px}
  .mobile-more-logo{width:48px;height:48px;border-radius:14px;object-fit:cover;box-shadow:0 8px 20px rgba(15,61,46,.16)}
  .mobile-more-header-text{min-width:0;flex:1}
  .mobile-more-header-text strong{display:block;color:#0d3327;font-size:16px;line-height:1.1}
  .mobile-more-header-text span{display:block;margin-top:4px;color:#60766d;font-size:11px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-more-close{width:38px;height:38px;border:0;border-radius:12px;background:#e4eee9;color:#153f31;font-size:22px;cursor:pointer}
  .mobile-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .mobile-more-action{
    border:1px solid #d5e4dd;
    border-radius:17px;
    min-height:76px;
    padding:11px;
    background:#fff;
    color:#143d2f;
    text-align:left;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(15,61,46,.055);
  }
  .mobile-more-action:active{transform:scale(.98)}
  .mobile-more-action.active{border-color:#3ba66f;background:#eaf8f0;box-shadow:inset 0 0 0 1px rgba(59,166,111,.2)}
  .mobile-more-action i{font-style:normal;font-size:22px;line-height:1}
  .mobile-more-action b{font-size:12px;line-height:1.1}
  .mobile-more-action small{font-size:9.5px;color:#6a7c74;line-height:1.2}
  .mobile-more-footer{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
  .mobile-more-footer button{min-height:43px;border-radius:14px;border:1px solid #cfddd6;background:#fff;color:#173f32;font-weight:900}
  .mobile-more-footer .danger{color:#a82121;border-color:#efcccc;background:#fff7f7}
  .mobile-sync-status{margin-top:10px;padding:10px 11px;border-radius:14px;background:#dff1e7;color:#155238;font-size:10.5px;font-weight:800;line-height:1.35}
}

@media (max-width: 410px){
  #appView .top-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .kpi-grid,.cards-grid,.summary-grid,.materiais-kpis{grid-template-columns:1fr!important}
  .mobile-nav-label{font-size:8.2px}
  .mobile-more-grid{grid-template-columns:1fr 1fr}
}


/* ===== public/css/mobile-v124.css ===== */
/* ============================================================
   ESPELHO PIMS — MOBILE PREMIUM DEFINITIVO V124
   Atua apenas até 900 px. O desktop e o logo oficial permanecem.
   ============================================================ */

.mobile-v124-only,
.mobile-filter-toggle-v124,
.mobile-table-toolbar-v124,
.mobile-appbar-logo-v124,
.mobile-sync-chip-v124,
.mobile-pwa-splash-v124,
.mobile-scroll-top-v124 { display:none; }

@media (max-width: 900px) {
  :root {
    --m124-green-950:#041711;
    --m124-green-900:#08271d;
    --m124-green-800:#0f3d2e;
    --m124-green-700:#15543f;
    --m124-green-500:#2a9a68;
    --m124-bg:#eef5f1;
    --m124-card:#ffffff;
    --m124-line:#d8e5df;
    --m124-text:#10271e;
    --m124-muted:#667a70;
    --m124-nav-h:68px;
    --m124-safe-b:env(safe-area-inset-bottom, 0px);
    --m124-safe-t:env(safe-area-inset-top, 0px);
  }

  * { box-sizing:border-box; }
  html {
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    scroll-behavior:smooth;
    background:var(--m124-bg);
  }
  body {
    width:100%!important;
    max-width:100%!important;
    min-height:100dvh!important;
    margin:0!important;
    overflow-x:hidden!important;
    color:var(--m124-text);
    background:
      radial-gradient(circle at 15% -10%,rgba(40,151,101,.13),transparent 34%),
      linear-gradient(180deg,#f7faf8 0%,var(--m124-bg) 100%)!important;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
    overscroll-behavior-y:contain;
  }
  body.mobile-table-open-v124,
  body.mobile-more-open { overflow:hidden!important; }

  input, select, textarea, button { font-size:16px; }
  button, [role="button"] { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }

  #appView.app-shell:not(.hidden) {
    display:block!important;
    min-height:100dvh!important;
    width:100%!important;
    overflow:visible!important;
  }

  #sidebarPrincipal,
  #btnSidebarHandle { display:none!important; }

  #appView .main,
  body.sidebar-collapsed #appView .main {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:100dvh!important;
    margin:0!important;
    padding:0 10px calc(var(--m124-nav-h) + var(--m124-safe-b) + 22px)!important;
    overflow:visible!important;
  }

  /* Cabeçalho compacto e legível. */
  #appView .topbar {
    position:sticky!important;
    top:0!important;
    z-index:700!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    width:auto!important;
    min-width:0!important;
    margin:0 -10px 12px!important;
    padding:calc(9px + var(--m124-safe-t)) 12px 11px!important;
    border:0!important;
    border-radius:0 0 20px 20px!important;
    color:#fff!important;
    background:
      radial-gradient(circle at 12% -25%,rgba(97,222,155,.25),transparent 34%),
      linear-gradient(135deg,var(--m124-green-950),var(--m124-green-800) 62%,var(--m124-green-700))!important;
    box-shadow:0 12px 28px rgba(5,33,24,.24)!important;
  }

  #appView .topbar-title-wrap {
    display:grid!important;
    grid-template-columns:40px minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
  }
  .mobile-appbar-logo-v124 {
    display:block!important;
    width:40px!important;
    height:40px!important;
    padding:5px!important;
    border-radius:12px!important;
    object-fit:contain!important;
    background:#fff!important;
    box-shadow:0 7px 18px rgba(0,0,0,.18)!important;
  }
  #appView .topbar-title-text { min-width:0!important; width:100%!important; }
  #pageTitle {
    display:block!important;
    margin:0!important;
    color:#fff!important;
    font-size:clamp(19px,5.4vw,23px)!important;
    line-height:1.08!important;
    font-weight:950!important;
    letter-spacing:-.025em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  #pageSubtitle {
    display:block!important;
    margin:3px 0 0!important;
    max-width:100%!important;
    color:#cfe9df!important;
    font-size:10.5px!important;
    line-height:1.2!important;
    font-weight:700!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .mobile-sync-chip-v124 {
    display:flex!important;
    align-items:center!important;
    gap:5px!important;
    min-height:30px!important;
    max-width:94px!important;
    padding:5px 8px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:999px!important;
    color:#e7f8f0!important;
    background:rgba(255,255,255,.10)!important;
    font-size:9px!important;
    line-height:1!important;
    font-weight:900!important;
    white-space:nowrap!important;
  }
  .mobile-sync-chip-v124::before {
    content:"";
    width:7px;
    height:7px;
    flex:0 0 auto;
    border-radius:50%;
    background:#52df8d;
    box-shadow:0 0 0 3px rgba(82,223,141,.16);
  }
  .mobile-sync-chip-v124.syncing::before { background:#ffd35a; animation:m124Pulse 1s infinite; }
  .mobile-sync-chip-v124.error::before { background:#ff7272; }
  @keyframes m124Pulse { 50% { opacity:.42; transform:scale(.82); } }

  #appView .top-actions {
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
  }
  #appView .top-actions #btnSalvarVisual,
  #appView .top-actions #btnGerarPDF,
  #appView .top-actions #btnInstalarPwaTopo { display:none!important; }
  #appView .top-actions .btn {
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    min-height:39px!important;
    margin:0!important;
    padding:8px 10px!important;
    border-radius:12px!important;
    font-size:11.5px!important;
    line-height:1!important;
    font-weight:900!important;
    white-space:nowrap!important;
    box-shadow:none!important;
  }
  #btnAtualizar::before { content:"↻"; margin-right:6px; font-size:15px; }
  #btnAbrirRelatorio::before { content:"▤"; margin-right:6px; font-size:14px; }
  #appView .top-actions .btn.ghost {
    color:#fff!important;
    border:1px solid rgba(255,255,255,.18)!important;
    background:rgba(255,255,255,.11)!important;
  }

  #loadingBar {
    position:sticky!important;
    top:116px!important;
    z-index:650!important;
    margin:0 0 10px!important;
    border-radius:14px!important;
    box-shadow:0 10px 22px rgba(5,33,24,.16)!important;
  }

  #menuHost,
  .menu-host,
  .menu-fragment,
  .consultas-page,
  .aderencia-page,
  .det-page,
  .disponibilidade-page,
  .visuais-page,
  .materiais-page,
  .sistema-page {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:visible!important;
  }

  /* Cartão para abrir/fechar filtros, reduzindo a poluição visual. */
  .mobile-filter-toggle-v124 {
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    width:100%!important;
    min-height:48px!important;
    margin:0 0 10px!important;
    padding:10px 13px!important;
    border:1px solid var(--m124-line)!important;
    border-radius:16px!important;
    color:var(--m124-green-800)!important;
    background:rgba(255,255,255,.96)!important;
    box-shadow:0 8px 22px rgba(15,61,46,.07)!important;
    font-weight:950!important;
    text-align:left!important;
  }
  .mobile-filter-toggle-v124 span { display:flex; align-items:center; gap:8px; min-width:0; }
  .mobile-filter-toggle-v124 span::before { content:"⌕"; font-size:20px; line-height:1; }
  .mobile-filter-toggle-v124 small {
    color:var(--m124-muted)!important;
    font-size:10px!important;
    font-weight:800!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .mobile-filter-toggle-v124 i {
    font-style:normal!important;
    font-size:18px!important;
    transition:transform .18s ease!important;
  }
  .mobile-filter-toggle-v124[aria-expanded="true"] i { transform:rotate(180deg); }

  .mobile-collapsible-v124.mobile-collapsed-v124 { display:none!important; }
  .mobile-collapsible-v124 {
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0 0 11px!important;
    padding:12px!important;
    border:1px solid var(--m124-line)!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.97)!important;
    box-shadow:0 10px 24px rgba(15,61,46,.07)!important;
    overflow:visible!important;
  }
  .mobile-collapsible-v124 > * { min-width:0!important; max-width:100%!important; }
  .mobile-collapsible-v124 input,
  .mobile-collapsible-v124 select,
  .mobile-collapsible-v124 .ms-filter-button,
  .mobile-collapsible-v124 button {
    width:100%!important;
    max-width:100%!important;
    min-height:46px!important;
    border-radius:13px!important;
  }
  .mobile-collapsible-v124 input,
  .mobile-collapsible-v124 select { font-size:16px!important; }
  .ms-filter-panel {
    position:fixed!important;
    z-index:1900!important;
    left:8px!important;
    right:8px!important;
    bottom:calc(8px + var(--m124-safe-b))!important;
    top:auto!important;
    width:auto!important;
    max-width:none!important;
    max-height:72dvh!important;
    border-radius:22px!important;
    box-shadow:0 28px 90px rgba(0,0,0,.36)!important;
  }

  /* Cartões e indicadores. */
  .card,
  .kpi-card,
  .mat-kpi-card,
  .filter-card,
  .det-card,
  .disp-card,
  .visual-card-menu,
  .materiais-chart-card,
  .status-card,
  .table-shell,
  .materiais-table-shell {
    min-width:0!important;
    max-width:100%!important;
    border-radius:17px!important;
    box-shadow:0 8px 22px rgba(15,61,46,.07)!important;
  }
  .kpi-grid,
  .cards-grid,
  .summary-grid,
  .materiais-kpis,
  .semaforo-grid,
  .semaforo-sidebar-grid {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
  }
  .dashboard-grid,
  .charts-grid,
  .front-grid,
  .materiais-dashboard {
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    width:100%!important;
  }
  .kpi-card,
  .mat-kpi-card { min-height:92px!important; padding:12px!important; }
  .kpi-card b,
  .mat-kpi-card b { font-size:clamp(18px,6vw,26px)!important; line-height:1!important; }

  /* Tabelas: navegação lateral clara e modo tela cheia. */
  .table-shell,
  .materiais-table-shell,
  .table-wrap,
  .table-container {
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    background:#fff!important;
    border:1px solid var(--m124-line)!important;
  }
  .mobile-table-toolbar-v124 {
    position:sticky!important;
    top:0!important;
    left:0!important;
    z-index:12!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
    width:min(100%,100vw)!important;
    min-width:min(100%,100vw)!important;
    padding:9px 10px!important;
    border-bottom:1px solid var(--m124-line)!important;
    background:rgba(247,251,249,.96)!important;
    backdrop-filter:blur(10px)!important;
  }
  .mobile-table-toolbar-v124 span {
    color:var(--m124-muted)!important;
    font-size:10px!important;
    font-weight:850!important;
    white-space:nowrap!important;
  }
  .mobile-table-toolbar-v124 button {
    min-height:34px!important;
    padding:7px 10px!important;
    border:1px solid #cbded5!important;
    border-radius:10px!important;
    color:var(--m124-green-800)!important;
    background:#fff!important;
    font-size:10px!important;
    font-weight:950!important;
  }
  table,
  .data-table,
  .materiais-table,
  .consultas-table {
    width:max-content!important;
    min-width:820px!important;
    max-width:none!important;
    table-layout:auto!important;
    font-size:11px!important;
  }
  table th,
  .data-table th,
  .materiais-table th {
    position:sticky!important;
    top:52px!important;
    z-index:8!important;
    white-space:nowrap!important;
  }
  table th,
  table td,
  .data-table th,
  .data-table td,
  .materiais-table th,
  .materiais-table td {
    max-width:240px!important;
    padding:8px 7px!important;
    font-size:11px!important;
    line-height:1.25!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
  }
  .mobile-table-fullscreen-v124 {
    position:fixed!important;
    inset:0!important;
    z-index:2200!important;
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    padding:calc(var(--m124-safe-t) + 4px) 0 var(--m124-safe-b)!important;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
    overflow:auto!important;
  }
  .mobile-table-fullscreen-v124 .mobile-table-toolbar-v124 {
    top:0!important;
    min-width:100vw!important;
    border-radius:0!important;
  }
  .mobile-table-fullscreen-v124 table th { top:52px!important; }

  /* Modais viram bottom sheets, sem cortar botões. */
  .modal-root {
    z-index:2400!important;
    align-items:flex-end!important;
    padding:8px 8px calc(8px + var(--m124-safe-b))!important;
  }
  .modal,
  .modal-card,
  .modal-panel {
    width:100%!important;
    max-width:100%!important;
    max-height:91dvh!important;
    margin:0!important;
    border-radius:24px 24px 12px 12px!important;
    overflow:auto!important;
  }
  .modal-actions,
  .modal-footer {
    position:sticky!important;
    bottom:0!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
    padding:10px!important;
    background:rgba(255,255,255,.96)!important;
    backdrop-filter:blur(10px)!important;
  }
  .modal-actions button,
  .modal-footer button { min-height:44px!important; border-radius:12px!important; }

  /* Navegação inferior mais compacta. */
  .mobile-bottom-nav {
    left:7px!important;
    right:7px!important;
    bottom:calc(6px + var(--m124-safe-b))!important;
    z-index:1800!important;
    height:var(--m124-nav-h)!important;
    padding:6px!important;
    gap:3px!important;
    border-radius:21px!important;
    background:linear-gradient(135deg,rgba(4,23,17,.985),rgba(15,61,46,.985) 65%,rgba(21,84,63,.985))!important;
    box-shadow:0 16px 38px rgba(3,22,15,.38)!important;
  }
  .mobile-nav-item {
    min-height:54px!important;
    padding:5px 2px 4px!important;
    border-radius:15px!important;
    gap:3px!important;
  }
  .mobile-nav-item.active {
    color:#fff!important;
    background:rgba(255,255,255,.15)!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)!important;
  }
  .mobile-nav-icon { height:21px!important; font-size:19px!important; }
  .mobile-nav-label { max-width:100%!important; font-size:8.5px!important; font-weight:900!important; }

  .mobile-more-sheet {
    width:min(560px,100%)!important;
    max-height:88dvh!important;
    padding:13px!important;
    border-radius:25px 25px 15px 15px!important;
  }
  .mobile-more-logo {
    width:48px!important;
    height:48px!important;
    object-fit:cover!important;
    /* O logo Espelho PIMS aparece somente aqui e como ícone/capa do PWA. */
  }
  .mobile-more-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:8px!important; }
  .mobile-more-action { min-height:72px!important; padding:10px!important; border-radius:15px!important; }

  .toast {
    left:10px!important;
    right:10px!important;
    bottom:calc(var(--m124-nav-h) + var(--m124-safe-b) + 14px)!important;
    z-index:2100!important;
    width:auto!important;
    max-width:none!important;
    padding:11px 13px!important;
    border-radius:14px!important;
    text-align:center!important;
    font-size:11px!important;
  }

  .mobile-scroll-top-v124 {
    position:fixed!important;
    right:14px!important;
    bottom:calc(var(--m124-nav-h) + var(--m124-safe-b) + 18px)!important;
    z-index:1750!important;
    display:grid!important;
    place-items:center!important;
    width:40px!important;
    height:40px!important;
    border:1px solid rgba(255,255,255,.20)!important;
    border-radius:13px!important;
    color:#fff!important;
    background:rgba(15,61,46,.92)!important;
    box-shadow:0 10px 25px rgba(4,28,20,.25)!important;
    opacity:0!important;
    pointer-events:none!important;
    transform:translateY(8px)!important;
    transition:.18s ease!important;
  }
  .mobile-scroll-top-v124.show {
    opacity:1!important;
    pointer-events:auto!important;
    transform:translateY(0)!important;
  }

  /* Login usa apenas o logo oficial da Usina. */
  #loginView .brand-logo img,
  #loginView .login-logo img,
  #sidebarPrincipal .brand-logo img { object-fit:contain!important; }
  #loginView .login-panel { padding:18px 12px calc(20px + var(--m124-safe-b))!important; }
  #loginView .login-card {
    width:min(100%,420px)!important;
    max-width:420px!important;
    padding:20px 16px!important;
    border-radius:24px!important;
  }
  #loginView input,
  #loginView select,
  #loginView #btnLogin { min-height:48px!important; font-size:16px!important; border-radius:13px!important; }

  /* Capa somente quando aberto como aplicativo instalado. */
  .mobile-pwa-splash-v124 {
    position:fixed!important;
    inset:0!important;
    z-index:9999!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:14px!important;
    padding:26px!important;
    color:#fff!important;
    background:
      radial-gradient(circle at 50% 32%,rgba(75,214,137,.22),transparent 29%),
      linear-gradient(145deg,#03150f,#0f3d2e 65%,#15543f)!important;
    transition:opacity .28s ease, visibility .28s ease!important;
  }
  .mobile-pwa-splash-v124.hide { opacity:0!important; visibility:hidden!important; }
  .mobile-pwa-splash-v124 img {
    width:126px!important;
    height:126px!important;
    border-radius:30px!important;
    object-fit:cover!important;
    box-shadow:0 24px 60px rgba(0,0,0,.34)!important;
  }
  .mobile-pwa-splash-v124 strong { font-size:27px!important; line-height:1!important; }
  .mobile-pwa-splash-v124 span { color:#cce9dd!important; font-size:12px!important; font-weight:750!important; }

  @media (max-width:380px) {
    #appView .topbar-title-wrap { grid-template-columns:36px minmax(0,1fr)!important; }
    .mobile-appbar-logo-v124 { width:36px!important; height:36px!important; }
    .mobile-sync-chip-v124 { display:none!important; }
    #pageTitle { font-size:18px!important; }
    #pageSubtitle { font-size:9.5px!important; }
    .kpi-grid,
    .cards-grid,
    .summary-grid,
    .materiais-kpis { grid-template-columns:1fr!important; }
    .mobile-more-grid { grid-template-columns:1fr!important; }
  }

  @media (orientation:landscape) and (max-height:520px) {
    #appView .topbar { position:relative!important; }
    .mobile-bottom-nav { height:60px!important; }
    #appView .main { padding-bottom:calc(66px + var(--m124-safe-b))!important; }
    .mobile-nav-item { min-height:46px!important; }
    .mobile-nav-label { display:none!important; }
  }
}

@media (min-width:901px) {
  .mobile-collapsible-v124 { display:revert!important; }
  .mobile-filter-toggle-v124,
  .mobile-table-toolbar-v124,
  .mobile-pwa-splash-v124,
  .mobile-scroll-top-v124 { display:none!important; }
}


/* ===== public/css/mobile-v125-cards.css ===== */
/* ============================================================
   ESPELHO PIMS — MOBILE CARDS V125
   Somente mobile. Mantém o desktop e todas as funções existentes.
   ============================================================ */

.mobile-card-toolbar-v125,
.mobile-card-summary-v125 { display:none; }

@media (max-width: 900px) {
  :root {
    --v125-green-950:#041711;
    --v125-green-900:#08271d;
    --v125-green-800:#0f3d2e;
    --v125-green-700:#176246;
    --v125-green-500:#2d9f6b;
    --v125-bg:#eef5f1;
    --v125-card:#ffffff;
    --v125-line:#d7e5de;
    --v125-text:#13271f;
    --v125-muted:#65796f;
    --v125-danger:#d94848;
    --v125-warning:#e99a24;
    --v125-purple:#7b49ce;
    --v125-blue:#2d78c7;
  }

  /* Nunca usar o logo do app dentro da interface. */
  #loginView .brand-logo img,
  #loginView .login-logo img,
  #sidebarPrincipal .brand-logo img,
  .mobile-appbar-logo-v124,
  .mobile-more-logo {
    object-fit:contain!important;
    background:#fff!important;
  }

  /* Cabeçalho menor, mais funcional e com área útil maior. */
  #appView .topbar {
    gap:8px!important;
    padding:calc(8px + env(safe-area-inset-top, 0px)) 10px 10px!important;
    border-radius:0 0 17px 17px!important;
  }
  #appView .topbar-title-wrap {
    grid-template-columns:38px minmax(0,1fr) auto!important;
    gap:8px!important;
  }
  .mobile-appbar-logo-v124 {
    width:38px!important;
    height:38px!important;
    padding:6px!important;
    border-radius:11px!important;
  }
  #pageTitle {
    font-size:clamp(18px,5vw,22px)!important;
    line-height:1.05!important;
  }
  #pageSubtitle { font-size:9.5px!important; }
  .mobile-sync-chip-v124 {
    min-height:28px!important;
    max-width:84px!important;
    padding:5px 7px!important;
    font-size:8.5px!important;
  }
  #appView .top-actions .btn {
    min-height:40px!important;
    border-radius:12px!important;
    font-size:11px!important;
  }

  /* Shell de dados em cards. */
  .mobile-card-shell-v125 {
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  .mobile-card-toolbar-v125 {
    position:sticky!important;
    top:112px!important;
    z-index:110!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
    width:100%!important;
    margin:0 0 10px!important;
    padding:9px 10px!important;
    border:1px solid var(--v125-line)!important;
    border-radius:15px!important;
    background:rgba(255,255,255,.96)!important;
    box-shadow:0 7px 20px rgba(15,61,46,.08)!important;
    backdrop-filter:blur(12px)!important;
  }
  .mobile-card-summary-v125 {
    display:flex!important;
    min-width:0!important;
    flex-direction:column!important;
    gap:2px!important;
  }
  .mobile-card-summary-v125 b {
    color:var(--v125-green-900)!important;
    font-size:12px!important;
    line-height:1.1!important;
  }
  .mobile-card-summary-v125 small {
    color:var(--v125-muted)!important;
    font-size:9.5px!important;
    font-weight:750!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .mobile-card-toggle-v125 {
    flex:0 0 auto!important;
    min-height:35px!important;
    padding:7px 10px!important;
    border:1px solid #c8ddd3!important;
    border-radius:11px!important;
    color:var(--v125-green-800)!important;
    background:#f7fbf9!important;
    font-size:10px!important;
    font-weight:950!important;
  }

  /* Tabela real convertida em cards; eventos e botões continuam funcionando. */
  table.mobile-cards-v125 {
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    border:0!important;
    background:transparent!important;
    table-layout:auto!important;
  }
  table.mobile-cards-v125 thead { display:none!important; }
  table.mobile-cards-v125 tbody {
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:11px!important;
    width:100%!important;
    min-width:0!important;
  }
  table.mobile-cards-v125 tbody > tr {
    position:relative!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:0!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding:0!important;
    overflow:hidden!important;
    border:1px solid var(--v125-line)!important;
    border-left:5px solid var(--v125-green-500)!important;
    border-radius:18px!important;
    background:linear-gradient(180deg,#fff 0%,#fbfdfc 100%)!important;
    box-shadow:0 9px 24px rgba(15,61,46,.08)!important;
  }
  table.mobile-cards-v125 tbody > tr::before {
    content:attr(data-card-title)!important;
    grid-column:1 / -1!important;
    display:block!important;
    min-width:0!important;
    padding:12px 13px 4px!important;
    color:var(--v125-green-900)!important;
    font-size:15px!important;
    line-height:1.15!important;
    font-weight:950!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  table.mobile-cards-v125 tbody > tr[data-card-subtitle]:not([data-card-subtitle=""])::after {
    content:attr(data-card-subtitle) "  ·  Toque para detalhes"!important;
    grid-column:1 / -1!important;
    display:block!important;
    padding:8px 13px 10px!important;
    border-top:1px dashed #dfebe5!important;
    color:var(--v125-muted)!important;
    background:#f8fbf9!important;
    font-size:9px!important;
    line-height:1.25!important;
    font-weight:800!important;
  }
  table.mobile-cards-v125 tbody > tr.mobile-card-expanded-v125::after {
    content:attr(data-card-subtitle) "  ·  Toque para recolher"!important;
  }

  table.mobile-cards-v125 tbody > tr > td {
    position:relative!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    align-content:start!important;
    gap:4px!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:62px!important;
    padding:9px 12px!important;
    border:0!important;
    border-top:1px solid #e7efeb!important;
    border-right:1px solid #e7efeb!important;
    color:var(--v125-text)!important;
    background:transparent!important;
    font-size:11px!important;
    line-height:1.3!important;
    white-space:normal!important;
    overflow:visible!important;
    word-break:break-word!important;
  }
  table.mobile-cards-v125 tbody > tr > td:nth-child(even) { border-right:0!important; }
  table.mobile-cards-v125 tbody > tr > td::before {
    content:attr(data-mobile-label)!important;
    display:block!important;
    color:var(--v125-muted)!important;
    font-size:8.5px!important;
    line-height:1.05!important;
    font-weight:900!important;
    letter-spacing:.035em!important;
    text-transform:uppercase!important;
  }
  table.mobile-cards-v125 tbody > tr > td .cell-main,
  table.mobile-cards-v125 tbody > tr > td .cell-sub,
  table.mobile-cards-v125 tbody > tr > td .cell-clamp {
    display:block!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    -webkit-line-clamp:unset!important;
  }
  table.mobile-cards-v125 tbody > tr > td .cell-main {
    color:var(--v125-text)!important;
    font-size:12px!important;
    font-weight:950!important;
  }
  table.mobile-cards-v125 tbody > tr > td .cell-sub {
    margin-top:2px!important;
    color:var(--v125-muted)!important;
    font-size:9.5px!important;
    line-height:1.25!important;
  }
  table.mobile-cards-v125 tbody > tr > td .badge,
  table.mobile-cards-v125 tbody > tr > td [class*="badge"] {
    display:inline-flex!important;
    width:max-content!important;
    max-width:100%!important;
    min-height:25px!important;
    align-items:center!important;
    padding:5px 8px!important;
    border-radius:999px!important;
    white-space:normal!important;
  }

  /* Campos secundários ficam recolhidos para o card não virar uma página inteira. */
  table.mobile-cards-v125 tbody > tr:not(.mobile-card-expanded-v125) > td.mobile-card-secondary-v125 {
    display:none!important;
  }
  table.mobile-cards-v125 tbody > tr > td.mobile-card-wide-v125 {
    grid-column:1 / -1!important;
    border-right:0!important;
  }
  table.mobile-cards-v125 tbody > tr > td.mobile-card-empty-v125 {
    display:block!important;
    grid-column:1 / -1!important;
    min-height:80px!important;
    padding:24px 14px!important;
    text-align:center!important;
  }
  table.mobile-cards-v125 tbody > tr > td.mobile-card-empty-v125::before { display:none!important; }

  /* Acentos visuais por situação. */
  table.mobile-cards-v125 tbody > tr.card-status-danger-v125 { border-left-color:var(--v125-danger)!important; }
  table.mobile-cards-v125 tbody > tr.card-status-warning-v125 { border-left-color:var(--v125-warning)!important; }
  table.mobile-cards-v125 tbody > tr.card-status-purple-v125 { border-left-color:var(--v125-purple)!important; }
  table.mobile-cards-v125 tbody > tr.card-status-blue-v125 { border-left-color:var(--v125-blue)!important; }
  table.mobile-cards-v125 tbody > tr.card-status-ok-v125 { border-left-color:var(--v125-green-500)!important; }

  /* Modo tabela opcional para quem precisar comparar muitas colunas. */
  .mobile-table-mode-v125 table.mobile-cards-v125 {
    display:table!important;
    width:max-content!important;
    min-width:820px!important;
  }
  .mobile-table-mode-v125 table.mobile-cards-v125 thead { display:table-header-group!important; }
  .mobile-table-mode-v125 table.mobile-cards-v125 tbody { display:table-row-group!important; }
  .mobile-table-mode-v125 table.mobile-cards-v125 tbody > tr { display:table-row!important; }
  .mobile-table-mode-v125 table.mobile-cards-v125 tbody > tr::before,
  .mobile-table-mode-v125 table.mobile-cards-v125 tbody > tr::after { display:none!important; }
  .mobile-table-mode-v125 table.mobile-cards-v125 tbody > tr > td {
    display:table-cell!important;
    min-height:0!important;
    white-space:nowrap!important;
  }
  .mobile-table-mode-v125 table.mobile-cards-v125 tbody > tr > td::before { display:none!important; }
  .mobile-table-mode-v125 table.mobile-cards-v125 tbody > tr > td.mobile-card-secondary-v125 { display:table-cell!important; }
  .mobile-table-mode-v125 {
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    border:1px solid var(--v125-line)!important;
    border-radius:16px!important;
    background:#fff!important;
  }

  /* Filtros ocupam menos espaço e funcionam bem com o polegar. */
  .mobile-filter-toggle-v124 {
    min-height:46px!important;
    margin-bottom:9px!important;
    border-radius:15px!important;
  }
  .mobile-collapsible-v124 {
    gap:8px!important;
    padding:10px!important;
    border-radius:16px!important;
  }
  .mobile-collapsible-v124 input,
  .mobile-collapsible-v124 select,
  .mobile-collapsible-v124 button,
  .mobile-collapsible-v124 .ms-filter-button {
    min-height:45px!important;
  }

  /* Menu inferior confortável e sem apertar a área de conteúdo. */
  .mobile-bottom-nav {
    height:66px!important;
    border-radius:20px!important;
  }
  .mobile-nav-item { min-height:52px!important; }
  .mobile-nav-label { font-size:8.7px!important; }

  @media (max-width: 430px) {
    table.mobile-cards-v125 tbody > tr { grid-template-columns:1fr!important; }
    table.mobile-cards-v125 tbody > tr > td {
      grid-column:1!important;
      border-right:0!important;
      min-height:56px!important;
    }
    table.mobile-cards-v125 tbody > tr::before,
    table.mobile-cards-v125 tbody > tr::after { grid-column:1!important; }
    .mobile-card-toolbar-v125 { top:110px!important; }
  }

  @media (orientation:landscape) and (max-height:520px) {
    .mobile-card-toolbar-v125 { position:relative!important; top:auto!important; }
    table.mobile-cards-v125 tbody { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  }
}

@media (max-width: 900px) {
  .mobile-card-shell-v125 > .mobile-table-toolbar-v124 { display:none!important; }
  .mobile-card-shell-v125.mobile-table-mode-v125 > .mobile-table-toolbar-v124 { display:flex!important; }
}


/* ===== public/css/v139-definitiva.css ===== */
/* V139 DEFINITIVA VALIDADA — identidade visual consolidada.
   Cards da alocação: sólidos e fortes.
   Legenda e semáforo lateral: claros, legíveis e alinhados ao relatório. */
:root{
  --v139-red:#d9423a;
  --v139-green:#299653;
  --v139-orange:#e78718;
  --v139-blue:#3d78c8;
  --v139-opportunity:#d96f4a;
  --v139-yellow:#d4aa17;
  --v139-purple:#7842d6;
  --v139-gray:#7b8985;
  --v139-teal:#3597c2;
}

/* ALOCAÇÃO: cartões sólidos, sem excesso de sombra ou tonalidade escura. */
#allocationGrid .fleet-card{
  border:1px solid transparent!important;
  border-radius:9px!important;
  box-shadow:0 3px 8px rgba(15,61,46,.13)!important;
  color:#fff!important;
  font-weight:900!important;
  text-shadow:none!important;
  transition:transform .14s ease, box-shadow .14s ease, filter .14s ease!important;
}
#allocationGrid .fleet-card:hover,
#allocationGrid .fleet-card:focus-visible{
  transform:translateY(-1px)!important;
  box-shadow:0 6px 14px rgba(15,61,46,.18)!important;
  filter:saturate(1.04) brightness(1.02)!important;
}
#allocationGrid .fleet-card.green{background:var(--v139-green)!important;border-color:#208044!important;color:#fff!important;}
#allocationGrid .fleet-card.red{background:var(--v139-red)!important;border-color:#bf332d!important;color:#fff!important;}
#allocationGrid .fleet-card.orange,
#allocationGrid .fleet-card.com-os-prod,
#allocationGrid .fleet-card.produtivo{background:var(--v139-orange)!important;border-color:#cc7410!important;color:#fff!important;}
#allocationGrid .fleet-card.blue,
#allocationGrid .fleet-card.preventiva{background:var(--v139-blue)!important;border-color:#3268b1!important;color:#fff!important;}
#allocationGrid .fleet-card.opportunity,
#allocationGrid .fleet-card.oportunidade{background:var(--v139-opportunity)!important;border-color:#c25e3d!important;color:#fff!important;}
#allocationGrid .fleet-card.yellow{background:var(--v139-yellow)!important;border-color:#b8910e!important;color:#342900!important;}
#allocationGrid .fleet-card.purple{background:var(--v139-purple)!important;border-color:#6631c1!important;color:#fff!important;}
#allocationGrid .fleet-card.gray{background:var(--v139-gray)!important;border-color:#687670!important;color:#fff!important;}
#allocationGrid .fleet-card.teal,
#allocationGrid .fleet-card.awaiting,
#allocationGrid .fleet-card.aguardando-retirada{background:var(--v139-teal)!important;border-color:#2782aa!important;color:#fff!important;}
#allocationGrid .fleet-card *{color:inherit!important;}
#allocationGrid .fleet-card .manual-tag{
  background:rgba(255,255,255,.19)!important;
  border:1px solid rgba(255,255,255,.48)!important;
  color:inherit!important;
}


/* LEGENDA: padrão do relatório, sem blocos escuros. */
.det-toolbar .legend{gap:7px!important;align-items:center!important;}
.det-toolbar .legend > span{
  min-height:30px!important;
  padding:6px 10px!important;
  border-radius:999px!important;
  border:1px solid #d8e1dd!important;
  background:#fff!important;
  color:#173d31!important;
  font-weight:850!important;
  box-shadow:0 1px 2px rgba(15,61,46,.05)!important;
}
.det-toolbar .legend .dot{width:9px!important;height:9px!important;box-shadow:none!important;}
.det-toolbar .legend > span:has(.dot.red){background:#fff2f1!important;border-color:#efaaa5!important;color:#8f2823!important;}
.det-toolbar .legend > span:has(.dot.green){background:#edf9f1!important;border-color:#9dd7b2!important;color:#176437!important;}
.det-toolbar .legend > span:has(.dot.orange){background:#fff4e6!important;border-color:#f0bd7c!important;color:#8f4d06!important;}
.det-toolbar .legend > span:has(.dot.blue){background:#eef4ff!important;border-color:#a9c1ed!important;color:#27549a!important;}
.det-toolbar .legend > span:has(.dot.opportunity){background:#fff1eb!important;border-color:#e8b19d!important;color:#91462e!important;}
.det-toolbar .legend > span:has(.dot.yellow){background:#fff9dd!important;border-color:#dcc267!important;color:#735b00!important;}
.det-toolbar .legend > span:has(.dot.purple){background:#f5efff!important;border-color:#bca0ec!important;color:#57309b!important;}
.det-toolbar .legend > span:has(.dot.gray){background:#f1f4f3!important;border-color:#b8c2be!important;color:#46554f!important;}
.det-toolbar .legend > span:has(.dot.teal){background:#edf9fd!important;border-color:#9bd3e8!important;color:#17627e!important;}
.dot.red{background:var(--v139-red)!important;}.dot.green{background:var(--v139-green)!important;}.dot.orange{background:var(--v139-orange)!important;}.dot.blue{background:var(--v139-blue)!important;}.dot.opportunity{background:var(--v139-opportunity)!important;}.dot.yellow{background:var(--v139-yellow)!important;}.dot.purple{background:var(--v139-purple)!important;}.dot.gray{background:var(--v139-gray)!important;}.dot.teal{background:var(--v139-teal)!important;}

/* SEMÁFORO LATERAL: fundo claro, faixa e contador na cor da situação. */
#sidebarPrincipal .semaforo-sidebar-card{
  --status:#6d7c76;
  --status-soft:#f3f5f4;
  --status-border:#bdc7c3;
  position:relative!important;
  overflow:hidden!important;
  background:var(--status-soft)!important;
  border:1px solid var(--status-border)!important;
  border-left:5px solid var(--status)!important;
  color:#153d30!important;
  box-shadow:none!important;
  min-height:45px!important;
  padding:8px 10px 8px 9px!important;
}
#sidebarPrincipal .semaforo-sidebar-card::before{display:none!important;}
#sidebarPrincipal .semaforo-sidebar-card i{background:var(--status)!important;border:none!important;box-shadow:none!important;}
#sidebarPrincipal .semaforo-sidebar-card span{color:#173f32!important;font-weight:900!important;opacity:1!important;}
#sidebarPrincipal .semaforo-sidebar-card b{
  min-width:26px!important;
  height:24px!important;
  padding:0 7px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:999px!important;
  background:var(--status)!important;
  color:#fff!important;
  font-weight:950!important;
  box-shadow:none!important;
}
#sidebarPrincipal .semaforo-sidebar-card.yellow{--status:var(--v139-yellow);--status-soft:#fff8d8;--status-border:#e1c661;}
#sidebarPrincipal .semaforo-sidebar-card.orange{--status:var(--v139-orange);--status-soft:#fff0dc;--status-border:#efb46b;}
#sidebarPrincipal .semaforo-sidebar-card.amber{--status:var(--v139-opportunity);--status-soft:#fcece6;--status-border:#e4a38b;}
#sidebarPrincipal .semaforo-sidebar-card.purple{--status:var(--v139-purple);--status-soft:#f1e9ff;--status-border:#b697eb;}
#sidebarPrincipal .semaforo-sidebar-card.gray{--status:var(--v139-gray);--status-soft:#edf1ef;--status-border:#aab6b1;}
#sidebarPrincipal .semaforo-sidebar-card.teal{--status:var(--v139-teal);--status-soft:#e8f6fc;--status-border:#8dccE5;}
#sidebarPrincipal .semaforo-sidebar-card.active,
#sidebarPrincipal .semaforo-sidebar-card[aria-pressed="true"]{
  outline:2px solid color-mix(in srgb, var(--status) 45%, transparent)!important;
  outline-offset:1px!important;
  filter:none!important;
}

/* Quando recolhido, mantém leitura por ponto + contador, sem bloco pesado. */
body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card,
#sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card,
#sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card,
#sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card{
  border-left-width:3px!important;
}

@media (max-width:760px){
  .det-toolbar .legend{display:flex!important;overflow-x:auto!important;flex-wrap:nowrap!important;padding-bottom:3px!important;}
  .det-toolbar .legend > span{flex:0 0 auto!important;}
  #allocationGrid .fleet-card{box-shadow:0 2px 6px rgba(15,61,46,.12)!important;}
}

/* PATCH_V140_SIDEBAR_CONTADORES_STORAGE_START */
/*
  Ajuste estritamente visual da sidebar recolhida:
  1) centraliza o número dentro do círculo do Semáforo;
  2) exibe STORAGE por extenso, sem abreviação e sem quebra.
*/
@media (min-width:901px){
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card,
  body.menu-collapsed #sidebarPrincipal .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card{
    width:46px!important;
    min-width:46px!important;
    max-width:46px!important;
    height:24px!important;
    min-height:24px!important;
    max-height:24px!important;
    padding:0 4px!important;
    display:grid!important;
    grid-template-columns:8px 18px!important;
    grid-template-rows:18px!important;
    align-items:center!important;
    justify-content:center!important;
    column-gap:5px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card span,
  body.menu-collapsed #sidebarPrincipal .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card span{
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card i,
  body.menu-collapsed #sidebarPrincipal .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card i{
    position:static!important;
    grid-column:1!important;
    width:8px!important;
    min-width:8px!important;
    max-width:8px!important;
    height:8px!important;
    min-height:8px!important;
    max-height:8px!important;
    margin:0!important;
    padding:0!important;
    align-self:center!important;
    justify-self:center!important;
    border-radius:50%!important;
    transform:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card b,
  body.menu-collapsed #sidebarPrincipal .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card b{
    position:static!important;
    grid-column:2!important;
    width:18px!important;
    min-width:18px!important;
    max-width:18px!important;
    height:18px!important;
    min-height:18px!important;
    max-height:18px!important;
    margin:0!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    align-items:center!important;
    justify-content:center!important;
    align-self:center!important;
    justify-self:center!important;
    border-radius:50%!important;
    box-sizing:border-box!important;
    font-family:inherit!important;
    font-size:9px!important;
    font-weight:1000!important;
    font-variant-numeric:tabular-nums!important;
    line-height:18px!important;
    letter-spacing:-.15px!important;
    text-align:center!important;
    text-indent:0!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    transform:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter{
    position:relative!important;
    width:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    height:25px!important;
    min-height:25px!important;
    max-height:25px!important;
    margin:0 auto!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    white-space:nowrap!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    text-align:center!important;
    font-size:0!important;
    line-height:0!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > *,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter > *,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter > *,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter > *,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter > *{
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter::after,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter::after,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter::after,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter::after{
    content:none!important;
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter::before,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter::before,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter::before,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter::before{
    content:"STORAGE"!important;
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    padding:0 2px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    color:#eafff5!important;
    font-family:inherit!important;
    font-size:6.7px!important;
    font-weight:1000!important;
    line-height:1!important;
    letter-spacing:-.18px!important;
    text-transform:uppercase!important;
    text-align:center!important;
    text-indent:0!important;
    white-space:nowrap!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    overflow:hidden!important;
    pointer-events:none!important;
    transform:none!important;
    -webkit-font-smoothing:antialiased!important;
    text-rendering:geometricPrecision!important;
  }
}
/* PATCH_V140_SIDEBAR_CONTADORES_STORAGE_END */

/* PATCH_V141_SIDEBAR_CONTADORES_STORAGE_AUTO_START */
@media (min-width:901px){
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card,
  body.menu-collapsed #sidebarPrincipal .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card{
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;
    height:28px!important;
    min-height:28px!important;
    max-height:28px!important;
    padding:0 5px!important;
    grid-template-columns:8px minmax(28px,1fr)!important;
    grid-template-rows:20px!important;
    column-gap:6px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card b,
  body.menu-collapsed #sidebarPrincipal .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card b{
    width:30px!important;
    min-width:30px!important;
    max-width:30px!important;
    height:20px!important;
    min-height:20px!important;
    max-height:20px!important;
    border-radius:999px!important;
    font-size:10px!important;
    line-height:20px!important;
    letter-spacing:0!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter{
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    display:grid!important;
    grid-template-rows:1fr 1fr!important;
    gap:1px!important;
    place-items:center!important;
    font-size:8px!important;
    line-height:1!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter::before,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter::before,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter::before,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter::before{
    content:none!important;
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > *,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter > *,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter > *,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter > *,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter > *{
    display:block!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    letter-spacing:0!important;
    line-height:1!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter span,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter span,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter span,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter span,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter span{
    font-size:8px!important;
    font-weight:1000!important;
    color:#eafff5!important;
    text-transform:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter b,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter b,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter b,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter b,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter b{
    font-size:9px!important;
    font-weight:1000!important;
    color:#fff!important;
  }
}

/* PATCH_V141_SIDEBAR_CONTADORES_STORAGE_AUTO_END */

/* PATCH_V142_SIDEBAR_FECHADO_SEMAFORO_STORAGE_START */
@media (min-width:901px){
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-grid,
  body.menu-collapsed #sidebarPrincipal .semaforo-sidebar-grid,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-grid,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-grid,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-grid{
    display:grid!important;
    gap:5px!important;
    place-items:center!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card,
  body.menu-collapsed #sidebarPrincipal .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card{
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;
    height:29px!important;
    min-height:29px!important;
    max-height:29px!important;
    padding:0 6px!important;
    display:grid!important;
    grid-template-columns:10px 1fr!important;
    align-items:center!important;
    justify-items:center!important;
    column-gap:5px!important;
    overflow:hidden!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card span,
  body.menu-collapsed #sidebarPrincipal .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card span,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card span{
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card i,
  body.menu-collapsed #sidebarPrincipal .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card i,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card i{
    position:static!important;
    width:10px!important;
    height:10px!important;
    margin:0!important;
    border-radius:999px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card b,
  body.menu-collapsed #sidebarPrincipal .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.collapsed .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.recolhida .semaforo-sidebar-card b,
  #sidebarPrincipal.sidebar.is-collapsed .semaforo-sidebar-card b{
    position:static!important;
    display:block!important;
    width:auto!important;
    min-width:0!important;
    max-width:34px!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:transparent!important;
    color:#0d3427!important;
    font-size:11px!important;
    font-weight:1000!important;
    line-height:1!important;
    text-align:center!important;
    letter-spacing:0!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter{
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    padding:3px 4px!important;
    display:grid!important;
    grid-template-rows:14px 12px!important;
    place-items:center!important;
    overflow:hidden!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter::before,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter::after,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter::before,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter::after,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter::before,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter::after,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter::before,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter::after{
    content:none!important;
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter span,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter span,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter span,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter span,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter span{
    display:block!important;
    max-width:52px!important;
    overflow:hidden!important;
    color:#eafff5!important;
    font-size:8px!important;
    font-weight:1000!important;
    line-height:1!important;
    text-align:center!important;
    text-transform:none!important;
    letter-spacing:0!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter b,
  body.menu-collapsed #sidebarPrincipal #localStorageMeter b,
  #sidebarPrincipal.sidebar.collapsed #localStorageMeter b,
  #sidebarPrincipal.sidebar.recolhida #localStorageMeter b,
  #sidebarPrincipal.sidebar.is-collapsed #localStorageMeter b{
    display:block!important;
    color:#fff!important;
    font-size:9px!important;
    font-weight:1000!important;
    line-height:1!important;
    text-align:center!important;
  }
}
/* PATCH_V142_SIDEBAR_FECHADO_SEMAFORO_STORAGE_END */


/* ===== V152: estabilidade de layout e atualização silenciosa ===== */
html, body { width:100%; max-width:100%; min-height:100%; overflow-x:hidden; }
*, *::before, *::after { box-sizing:border-box; }
.app-shell, .main, .menu-host, .menu-fragment { min-width:0; max-width:100%; }
.table-wrap, .table-container, [data-table-wrap] { max-width:100%; overflow:auto; overscroll-behavior:contain; }
body.pims-silent-refresh-v126 .menu-host,
body.pims-silent-refresh-v126 .menu-fragment,
body.pims-silent-refresh-v126 .sidebar,
body.pims-silent-refresh-v126 .topbar { animation:none !important; transition:none !important; opacity:1 !important; }
img, svg, canvas { max-width:100%; }
@media (max-width: 820px) {
  .app-shell, .main, .menu-host { width:100%; }
  .topbar { min-width:0; }
  .top-actions { flex-wrap:wrap; }
  .modal, .modal-card, .dialog { max-width:calc(100vw - 24px); }
}

/* V166 R3 — transição de menus sem piscar e recuperação elegante */
#menuHost{
  min-height:220px;
  transition:opacity .16s ease, transform .16s ease, filter .16s ease;
  transform-origin:top center;
}
body.pims-menu-switching #menuHost{
  opacity:.58;
  transform:translateY(3px);
  filter:saturate(.92);
  pointer-events:none;
}
.menu-fragment{animation:pimsMenuEnter .18s ease both}
@keyframes pimsMenuEnter{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.menu-load-error{
  min-height:240px;display:grid;place-items:center;align-content:center;gap:10px;text-align:center;
  padding:28px;border:1px solid #e4c5c5;border-radius:18px;background:#fff7f7;color:#7f1d1d;
  box-shadow:0 12px 30px rgba(127,29,29,.06)
}
.menu-load-error strong{font-size:1.1rem}.menu-load-error span{max-width:680px;color:#8d4a4a;font-weight:700}
body.pims-silent-refresh-v126 #menuHost{transition:none!important}
@media(prefers-reduced-motion:reduce){#menuHost,.menu-fragment{animation:none!important;transition:none!important}}

/* ===== V166 R4: fluidez geral e prevenção de repaints desnecessários ===== */
.menu-host{contain:layout style}
.menu-fragment{contain:layout style}
body.pims-background-refresh #menuHost{pointer-events:auto}
@media (prefers-reduced-motion: reduce){
  #menuHost,.menu-fragment,.status-card,.card{scroll-behavior:auto!important}
}


/* PATCH VISUAL V164 — Determinar Total/Frente
   Remove apenas o containment posterior durante este menu, reproduzindo a
   composição visual original da V164 sem tocar nas regras operacionais. */
html[data-pims-determinar-visual="v164"] #menuHost,
html[data-pims-determinar-visual="v164"] #menuHost > .menu-fragment{
  contain:none!important;
}


/* PATCH_DTF_STATUS_UNIFICADO_FILTRO_DIRETO_V1 */
.det-page .det-status-legend .det-status-filter{
  appearance:none;border:1px solid var(--line,#d7e2dc);background:#f8fbf9;color:#26493d;
  display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;
  font:inherit;font-size:12px;font-weight:900;line-height:1;cursor:pointer;white-space:nowrap;
  transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease,border-color .14s ease;
}
.det-page .det-status-legend .det-status-filter:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(15,61,46,.10)}
.det-page .det-status-legend .det-status-filter:focus-visible{outline:3px solid rgba(25,118,210,.24);outline-offset:2px}
.det-page .det-status-legend.has-active-filter .det-status-filter:not(.active){opacity:.48}
.det-page .det-status-legend .det-status-filter.active{opacity:1;box-shadow:0 0 0 3px rgba(15,61,46,.12),0 6px 14px rgba(15,61,46,.15);border-color:#174f3b;transform:translateY(-1px)}
.det-page .det-status-legend .det-status-filter[data-det-status-filter="LIBERADO"]{background:#f4fbf6;border-color:#bfe7ce}
.det-page .det-status-legend .det-status-filter[data-det-status-filter="PARADO"]{background:#fff6f5;border-color:#f3c1bd}
.det-page .det-status-legend .det-status-filter[data-det-status-filter="COM_OS_PROD"]{background:#fffaf2;border-color:#efcf9d}
.det-page .det-status-legend .det-status-filter[data-det-status-filter="PREVENTIVA"]{background:#f3f6ff;border-color:#b9c8ff}
.det-page .det-status-legend .det-status-filter[data-det-status-filter="OPORTUNIDADE"]{background:#fff7f3;border-color:#efc8b9}
.det-page .det-status-legend .det-status-filter[data-det-status-filter="IMPLEMENTO"]{background:#f8f4ff;border-color:#d3c2ff}
.det-page .det-status-legend .det-status-filter[data-det-status-filter="SEM_OS"]{background:#fffbea;border-color:#ead889}
.det-page .det-status-legend .det-status-filter[data-det-status-filter="OFFLINE"]{background:#f6f8fa;border-color:#c9d2dc}
.det-page .det-status-legend .det-status-filter[data-det-status-filter="AGUARDANDO"]{background:#f1faff;border-color:#b7e4f8}
@media (max-width:760px){.det-page .det-status-legend{overflow-x:auto;flex-wrap:nowrap!important;padding-bottom:4px}.det-page .det-status-legend .det-status-filter{font-size:10.5px;padding:6px 8px}}

/* PATCH_DTF_REMOVER_MANUAL_CARD_V1 — defesa visual para renderizações legadas */
#allocationGrid .fleet-card .manual-tag,
#allocationGrid .det-fleet-card .manual-tag{
  display:none!important;
}

/* PATCH_V166_R4_VISUAL_MENUS_DEFINITIVO */
.topbar.topbar-hidden-for-menu{display:none!important;}
.topbar.topbar-premium-vfinal{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:18px!important;
  margin:0 0 18px!important;
  padding:24px 28px!important;
  border-radius:28px!important;
  border:1px solid rgba(15,61,46,.09)!important;
  background:linear-gradient(135deg,#f7faf8 0%,#eef6f2 58%,#e7f2ed 100%)!important;
  box-shadow:0 18px 40px rgba(15,61,46,.08)!important;
  position:relative!important;
  overflow:hidden!important;
}
.topbar.topbar-premium-vfinal::before{
  content:"";
  position:absolute;
  inset:auto -40px -56px auto;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(circle at center, rgba(66,153,112,.18), rgba(66,153,112,0) 68%);
  pointer-events:none;
}
.topbar.topbar-premium-vfinal::after{
  content:"";
  position:absolute;
  right:34px;
  top:-48px;
  width:170px;
  height:170px;
  border-radius:50%;
  border:20px solid rgba(20,81,61,.05);
  pointer-events:none;
}
.topbar.topbar-premium-vfinal .topbar-title-wrap,
.topbar.topbar-premium-vfinal .topbar-title-text,
.topbar.topbar-premium-vfinal .top-actions{position:relative!important;z-index:1!important;}
.topbar.topbar-premium-vfinal .topbar-title-text::before{
  content:"PAINEL OPERACIONAL";
  display:block;
  margin-bottom:8px;
  color:#2d6d53;
  font-size:12px;
  font-weight:1000;
  letter-spacing:.18em;
  text-transform:uppercase;
}
body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal .topbar-title-text::before{content:"CENTRAL DE CONSULTAS";}
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal .topbar-title-text::before{content:"DISPONIBILIDADE OPERACIONAL";}
body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal .topbar-title-text::before{content:"GESTÃO DE ALOCAÇÃO";}
body[data-current-menu="materiais"] .topbar.topbar-premium-vfinal .topbar-title-text::before{content:"SUPRIMENTOS E RESERVAS";}
.topbar.topbar-premium-vfinal h1,
.topbar.topbar-premium-vfinal h2{
  margin:0!important;
  font-size:clamp(2.05rem,2.55vw,2.75rem)!important;
  line-height:1.04!important;
  letter-spacing:-.03em!important;
  color:#10271e!important;
}
.topbar.topbar-premium-vfinal p{
  margin:10px 0 0!important;
  color:#50665d!important;
  font-size:14px!important;
  max-width:760px!important;
}
.topbar.topbar-premium-vfinal .top-actions,
.top-actions-premium-vfinal{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:12px!important;
  flex-wrap:wrap!important;
}
.topbar.topbar-premium-vfinal .top-actions .btn{
  min-height:48px!important;
  padding:0 18px!important;
  border-radius:16px!important;
  font-weight:1000!important;
  border:1px solid rgba(15,61,46,.12)!important;
  background:#fff!important;
  color:#113427!important;
  box-shadow:0 10px 18px rgba(15,61,46,.06)!important;
}
.topbar.topbar-premium-vfinal .top-actions .btn:hover{transform:translateY(-1px)!important;filter:none!important;}
.topbar.topbar-premium-vfinal .top-actions #btnGerarPDF,
.topbar.topbar-premium-vfinal .top-actions .btn-shell-pdf{
  background:linear-gradient(135deg,#0f3d2e,#1d6c4c)!important;
  color:#fff!important;
  border-color:transparent!important;
}
.topbar.topbar-premium-vfinal .top-actions #btnAbrirRelatorio,
.topbar.topbar-premium-vfinal .top-actions .btn-shell-report{
  background:#f8fbf9!important;
}
body[data-current-menu="consultas-gerais"] .consultas-filters,
body[data-current-menu="disponibilidade"] .disp-filters,
body[data-current-menu="determinar-frente"] .det-filters,
body[data-current-menu="materiais"] .materiais-filters{
  background:linear-gradient(180deg,#ffffff 0%,#f7fbf9 100%)!important;
  border:1px solid rgba(15,61,46,.08)!important;
  border-radius:26px!important;
  box-shadow:0 14px 34px rgba(15,61,46,.07)!important;
  padding:18px!important;
}
body[data-current-menu="consultas-gerais"] .consultas-table-shell,
body[data-current-menu="disponibilidade"] .disp-table-shell,
body[data-current-menu="materiais"] .materiais-table-shell{
  border:1px solid rgba(15,61,46,.08)!important;
  border-radius:26px!important;
  overflow:hidden!important;
  box-shadow:0 16px 34px rgba(15,61,46,.06)!important;
  background:#fff!important;
}
body[data-current-menu="determinar-frente"] .det-toolbar{
  background:linear-gradient(180deg,#ffffff 0%,#f7fbf9 100%)!important;
  border:1px solid rgba(15,61,46,.08)!important;
  border-radius:26px!important;
  box-shadow:0 14px 32px rgba(15,61,46,.07)!important;
  padding:16px 18px!important;
}
body[data-current-menu="determinar-frente"] .det-status-filter{
  border:1px solid rgba(15,61,46,.12)!important;
  border-radius:999px!important;
  padding:9px 12px!important;
  background:#fff!important;
  font-weight:1000!important;
  color:#173f31!important;
  box-shadow:0 8px 16px rgba(15,61,46,.05)!important;
}
body[data-current-menu="determinar-frente"] .det-status-filter[aria-pressed="true"]{
  background:#0f3d2e!important;
  color:#fff!important;
  border-color:#0f3d2e!important;
}
body[data-current-menu="determinar-frente"] .allocation-board{gap:18px!important;}
body[data-current-menu="determinar-frente"] .process-block{
  border:1px solid rgba(15,61,46,.09)!important;
  border-radius:28px!important;
  box-shadow:0 18px 36px rgba(15,61,46,.08)!important;
  overflow:hidden!important;
  background:#fff!important;
}
body[data-current-menu="determinar-frente"] .process-head{
  margin:0!important;
  padding:18px 18px 14px!important;
  border-bottom:1px solid #dfe9e4!important;
  background:linear-gradient(180deg,#fcfefd 0%,#f3f8f5 100%)!important;
}
body[data-current-menu="determinar-frente"] .front-grid{padding:14px!important;gap:14px!important;}
body[data-current-menu="determinar-frente"] .board-front-card{
  border-radius:20px!important;
  border:1px solid #dbe8e2!important;
  box-shadow:0 12px 24px rgba(15,61,46,.07)!important;
}
body[data-current-menu="determinar-frente"] .front-card-title{
  border-radius:20px 20px 0 0!important;
  padding:12px 14px!important;
}
body[data-current-menu="determinar-frente"] .board-type-row .type-title{background:#113f31!important;}
body[data-current-menu="determinar-frente"] .paradas-filtro-card{
  border-radius:26px!important;
  border-color:rgba(15,61,46,.08)!important;
  box-shadow:0 16px 30px rgba(15,61,46,.07)!important;
}
@media(max-width:980px){
  .topbar.topbar-premium-vfinal{grid-template-columns:1fr!important;padding:20px 20px!important;}
  .topbar.topbar-premium-vfinal .top-actions{justify-content:flex-start!important;}
  .topbar.topbar-premium-vfinal h1,
  .topbar.topbar-premium-vfinal h2{font-size:clamp(1.65rem,7vw,2.25rem)!important;}
}


/* PATCH_R34_FILTROS_PESQUISAVEIS_GLOBAIS_START */
/* O mesmo acabamento de Materiais passa a valer para todos os filtros múltiplos. */
.ms-filter .ms-filter-search-row{
  position:sticky;top:0;z-index:4;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:0 0 9px;background:#fff;
}
.ms-filter .ms-filter-search{
  width:100%!important;height:40px!important;min-height:40px!important;border:1px solid #cdded5!important;border-radius:12px!important;background:#f8fbf9!important;color:#153d2f!important;padding:0 12px!important;font-size:12px!important;font-weight:850!important;outline:none!important;
}
.ms-filter .ms-filter-search:focus{border-color:#4d9577!important;background:#fff!important;box-shadow:0 0 0 4px rgba(38,128,92,.10)!important}
.ms-filter .ms-filter-search-count{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:30px;padding:0 8px;border-radius:999px;background:#eaf4ef;color:#2d6851;font-size:9px;font-weight:1000}
.ms-filter .ms-filter-tools{position:sticky!important;top:49px!important;z-index:3!important;margin-bottom:8px!important;padding:7px 0 9px!important;background:#fff!important}
.ms-filter .ms-filter-tools button{min-height:36px!important;border-color:#d7e4de!important;background:#f6faf8!important;color:#17513b!important}
.ms-filter .ms-option{min-height:38px!important;border:1px solid transparent!important;border-radius:12px!important;padding:8px 9px!important}
.ms-filter .ms-option:hover{border-color:#d8e8e0!important;background:#f2f8f5!important}
.ms-filter .ms-option input{width:17px!important;height:17px!important;accent-color:#176b4b!important}
.ms-filter .ms-search-empty{display:block;padding:13px;text-align:center;color:#73857c;font-weight:850}
.ms-filter .ms-search-empty[hidden]{display:none!important}
/* PATCH_R34_FILTROS_PESQUISAVEIS_GLOBAIS_END */


/* PATCH_R69_DTF_MULTI_LEGENDA */
.det-page .det-status-legend.has-active-filter .det-status-filter.active{
  position:relative;
}
.det-page .det-status-legend.has-active-filter .det-status-filter.active::after{
  content:"✓";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:15px;
  height:15px;
  margin-left:2px;
  border-radius:999px;
  background:#0f3d2e;
  color:#fff;
  font-size:10px;
  line-height:1;
  font-weight:1000;
}
.det-page .det-status-legend.has-active-filter::before{
  content:"Multi";
  display:inline-flex;
  align-items:center;
  align-self:center;
  height:24px;
  padding:0 9px;
  border-radius:999px;
  background:#e9f6ef;
  border:1px solid #b7dec8;
  color:#0f3d2e;
  font-size:10px;
  font-weight:1000;
  letter-spacing:.04em;
  text-transform:uppercase;
}



/* PATCH_R70_ALOCACAO_TV_LEVE */
#btnAlocacaoTv{font-weight:1000;border-color:#cddbd4;background:#fff;color:#0f3d2e;min-width:110px!important;}
#btnAlocacaoTv:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,61,46,.10);}
.det-tv-overlay{position:fixed;inset:0;z-index:99999;background:rgba(3,21,15,.72);backdrop-filter:blur(6px);display:none;padding:14px;box-sizing:border-box;}
.det-tv-overlay.is-open{display:block;}
body.det-tv-open{overflow:hidden!important;}
.det-tv-shell{height:100%;width:100%;background:#f3f8f5;border-radius:24px;box-shadow:0 26px 80px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.7);}
.det-tv-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;background:linear-gradient(135deg,#0f3d2e,#1f6a4a);color:#fff;}
.det-tv-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:1000;letter-spacing:.16em;text-transform:uppercase;color:#bdf0d2;}
.det-tv-header h2{margin:4px 0 2px;font-size:clamp(24px,2.7vw,42px);line-height:1;font-weight:1000;color:#fff;}
.det-tv-header p{margin:0;font-size:clamp(12px,1vw,15px);font-weight:800;color:rgba(255,255,255,.84);max-width:1100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.det-tv-side{display:grid;grid-template-columns:auto auto;grid-template-areas:"num txt" "small btn";align-items:center;gap:2px 12px;min-width:260px;text-align:right;}
.det-tv-side strong{grid-area:num;font-size:clamp(34px,3.8vw,60px);line-height:.9;color:#fff;}
.det-tv-side span{grid-area:txt;font-size:13px;font-weight:1000;text-transform:uppercase;color:#ccefe0;text-align:left;}
.det-tv-side small{grid-area:small;font-size:11px;font-weight:800;color:#dbeee7;white-space:nowrap;}
.det-tv-close{grid-area:btn;border:0;border-radius:14px;padding:10px 16px;background:#fff;color:#0f3d2e;font-weight:1000;cursor:pointer;}
.det-tv-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;padding:10px 14px;background:#eaf3ee;border-bottom:1px solid #d6e5dd;}
.det-tv-kpi{display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:14px;background:#fff;border:1px solid #d9e7e0;padding:8px 10px;font-weight:1000;min-height:38px;}
.det-tv-kpi b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.det-tv-kpi span{min-width:30px;text-align:center;border-radius:999px;padding:4px 8px;background:#eef4f1;color:#0f3d2e;}
.det-tv-kpi.red{border-color:#f0b3ad}.det-tv-kpi.green{border-color:#b7dec8}.det-tv-kpi.orange{border-color:#f0cf9c}.det-tv-kpi.yellow{border-color:#e1c04e}.det-tv-kpi.purple{border-color:#cdb4ff}.det-tv-kpi.gray{border-color:#bbc7c1}.det-tv-kpi.teal{border-color:#a8d8e8}.det-tv-kpi.opportunity{border-color:#e5bdad}
.det-tv-board{flex:1;overflow:auto;padding:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));align-content:start;gap:12px;}
.det-tv-status{background:#fff;border:1px solid #dce8e2;border-radius:18px;box-shadow:0 10px 26px rgba(12,61,45,.08);overflow:hidden;min-width:0;}
.det-tv-status-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #e5eee9;background:#f8fbf9;}
.det-tv-status-head h3{margin:0;font-size:16px;font-weight:1000;color:#0f2f24;}.det-tv-status-head span{border-radius:999px;padding:4px 10px;background:#0f3d2e;color:#fff;font-weight:1000;}
.det-tv-red .det-tv-status-head span{background:#c0392b}.det-tv-green .det-tv-status-head span{background:#2f9360}.det-tv-orange .det-tv-status-head span{background:#d98b1f}.det-tv-yellow .det-tv-status-head span{background:#d4a80d}.det-tv-purple .det-tv-status-head span{background:#7f4bd9}.det-tv-gray .det-tv-status-head span{background:#7a8a83}.det-tv-teal .det-tv-status-head span{background:#4399b3}.det-tv-opportunity .det-tv-status-head span{background:#d06f4c}
.det-tv-process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;padding:10px;}
.det-tv-process{min-width:0;border-radius:14px;background:#f8fbf9;border:1px solid #e2ece7;padding:8px;}
.det-tv-process h4{margin:0 0 6px;font-size:12px;font-weight:1000;color:#24483b;text-transform:uppercase;display:flex;justify-content:space-between;gap:6px;}.det-tv-process h4 span{color:#667a70;}
.det-tv-fleet-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:5px;}
.det-tv-fleet{border:1px solid #d2e0d8;border-radius:10px;background:#fff;padding:6px 6px;text-align:left;min-width:0;cursor:pointer;}
.det-tv-fleet b{display:block;font-size:15px;font-weight:1000;color:#102f25;line-height:1;}.det-tv-fleet small{display:block;font-size:8.5px;line-height:1.12;color:#5f7269;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.det-tv-fleet.red{border-color:#f0b3ad;background:#fff7f6}.det-tv-fleet.green{border-color:#bde1cc;background:#f4fbf7}.det-tv-fleet.orange{border-color:#f0cf9c;background:#fff8ef}.det-tv-fleet.yellow{border-color:#e6ca60;background:#fff9d9}.det-tv-fleet.purple{border-color:#cdb4ff;background:#f5efff}.det-tv-fleet.gray{border-color:#bbc7c1;background:#f1f5f3}.det-tv-fleet.teal{border-color:#a8d8e8;background:#ecf8fc}.det-tv-fleet.opportunity{border-color:#e5bdad;background:#fff4ef}
.det-tv-empty{grid-column:1/-1;text-align:center;padding:60px;font-size:22px;font-weight:1000;color:#0f3d2e;}
@media(max-width:900px){.det-tv-overlay{padding:0}.det-tv-shell{border-radius:0}.det-tv-header{align-items:flex-start;flex-direction:column}.det-tv-side{width:100%;grid-template-columns:auto 1fr auto;grid-template-areas:"num txt btn" "small small btn";text-align:left}.det-tv-board{grid-template-columns:1fr}.det-tv-header p{white-space:normal}.det-tv-kpis{grid-template-columns:repeat(2,1fr)}}


/* MASTER P15 — MENU OPÇÃO 1 + COLUNA O.S./STATUS */
#sidebarPrincipal .side-menu .menu-item{
  display:grid!important;
  grid-template-columns:22px minmax(0,1fr)!important;
  align-items:center!important;
  column-gap:10px!important;
}
#sidebarPrincipal .menu-icon{
  width:22px!important;
  min-width:22px!important;
  height:22px!important;
  display:grid!important;
  place-items:center!important;
  color:currentColor!important;
}
#sidebarPrincipal .menu-icon svg{
  width:20px!important;
  height:20px!important;
  display:block!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  vector-effect:non-scaling-stroke;
}
#sidebarPrincipal .side-menu .menu-item.active .menu-icon svg{stroke:#fff!important;}
@media (min-width:901px){
  #sidebarPrincipal .side-menu{grid-template-rows:repeat(8,minmax(31px,auto))!important;}
}
body.sidebar-collapsed #sidebarPrincipal .menu-icon svg{
  width:22px!important;
  height:22px!important;
}

.report-os-stack{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:2px!important;
  min-width:0!important;
  line-height:1.05!important;
}
.report-os-number{
  display:block!important;
  color:#111!important;
  font-weight:950!important;
  line-height:1.05!important;
}
.report-os-status{
  display:block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  outline:0!important;
  font-size:10px!important;
  line-height:1.08!important;
  font-weight:950!important;
  text-transform:uppercase!important;
  white-space:normal!important;
}
.report-os-status.red{color:#c5161d!important;}
.report-os-status.orange,.report-os-status.produtivo,.report-os-status.com-os-prod{color:#b45b00!important;}
.report-os-status.green{color:#11713d!important;}
.report-os-status.yellow,.report-os-status.amber,.report-os-status.opportunity{color:#9a6500!important;}
.report-os-status.blue{color:#2456b5!important;}
.report-os-status.teal{color:#08708c!important;}
.report-os-status.purple{color:#6b3aa8!important;}
.report-os-status.gray,.report-os-status.grey{color:#5f6b66!important;}

/* MASTER P16 — Determinar oficina individual / em lote */
.det-oficina-modal-p16 .modal{max-width:min(1180px,calc(100vw - 28px))!important;}
.det-oficina-modal-p16 .modal-body{padding-top:14px!important;}
.det-oficina-modal-p16 .det-oficina-mode-switch-p16{
  display:inline-flex!important;
  align-items:center!important;
  gap:4px!important;
  padding:4px!important;
  margin:0 0 14px!important;
  border:1px solid #d3e2da!important;
  border-radius:13px!important;
  background:#f3f8f5!important;
}
.det-oficina-modal-p16 .det-oficina-mode-switch-p16 button{
  min-height:36px!important;
  padding:0 16px!important;
  border:0!important;
  border-radius:9px!important;
  background:transparent!important;
  color:#49675b!important;
  font-weight:1000!important;
  cursor:pointer!important;
}
.det-oficina-modal-p16 .det-oficina-mode-switch-p16 button.active{
  background:#174f3d!important;
  color:#fff!important;
  box-shadow:0 6px 15px rgba(23,79,61,.18)!important;
}
.det-oficina-pane-p16.hidden{display:none!important;}
.det-oficina-lote-top-p16{
  display:grid!important;
  grid-template-columns:minmax(260px,1fr) minmax(260px,1fr)!important;
  gap:12px!important;
  align-items:end!important;
}
.det-oficina-lote-toolbar-p16{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  margin:12px 0 9px!important;
}
.det-oficina-lote-toolbar-p16 strong{
  margin-left:auto!important;
  color:#174f3d!important;
  font-size:12px!important;
  font-weight:1000!important;
}
.det-oficina-lote-lista-p16{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
  max-height:330px!important;
  overflow:auto!important;
  padding:3px!important;
  scrollbar-gutter:stable!important;
}
.det-oficina-lote-item-p16{
  display:grid!important;
  grid-template-columns:auto minmax(92px,.45fr) minmax(0,1fr)!important;
  gap:10px!important;
  align-items:center!important;
  min-width:0!important;
  padding:10px 11px!important;
  border:1px solid #d9e6df!important;
  border-radius:12px!important;
  background:#fff!important;
  cursor:pointer!important;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease!important;
}
.det-oficina-lote-item-p16:has(input:checked){
  border-color:#2e8a62!important;
  background:#f0faf5!important;
  box-shadow:0 0 0 2px rgba(46,138,98,.1)!important;
}
.det-oficina-lote-item-p16 input{
  width:17px!important;
  height:17px!important;
  accent-color:#174f3d!important;
}
.det-oficina-lote-item-p16 span{display:grid!important;gap:2px!important;min-width:0!important;}
.det-oficina-lote-item-p16 strong,
.det-oficina-lote-item-p16 b{
  color:#163e31!important;
  font-size:12px!important;
  font-weight:1000!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.det-oficina-lote-item-p16 small{
  color:#6c7e76!important;
  font-size:10px!important;
  font-weight:800!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.det-oficina-lote-frota-p16 strong{font-size:14px!important;}
.det-oficina-lote-nota-p16{
  margin-top:10px!important;
  padding:9px 11px!important;
  border:1px solid #dae7e0!important;
  border-radius:11px!important;
  background:#f7faf8!important;
  color:#536d61!important;
  font-size:11px!important;
  font-weight:850!important;
}
@media(max-width:760px){
  .det-oficina-lote-top-p16{grid-template-columns:1fr!important;}
  .det-oficina-lote-lista-p16{grid-template-columns:1fr!important;max-height:45vh!important;}
  .det-oficina-lote-toolbar-p16 strong{width:100%!important;margin-left:0!important;}
}
.modal.det-oficina-modal-p16{max-width:min(1180px,calc(100vw - 28px))!important;}


/* ===== assistente-pims.css ===== */
:root{--ai-green:#0b3d2e;--ai-green2:#146044;--ai-green3:#1f7654;--ai-gold:#d7ad45;--ai-bg:#f3f6f4;--ai-line:#d8e2dc;--ai-text:#153129;--ai-muted:#6b7c75;--ai-soft:#edf5f0}
.ai-launcher{position:fixed;right:22px;bottom:22px;z-index:9000;width:64px;height:64px;border:0;border-radius:21px;background:linear-gradient(145deg,var(--ai-green2),var(--ai-green));color:#fff;box-shadow:0 16px 38px rgba(7,46,33,.28);cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:18px;transition:.18s}
.ai-launcher:hover{transform:translateY(-2px) scale(1.02)}.ai-launcher::after{content:"IA";width:35px;height:35px;border:2px solid rgba(255,255,255,.75);border-radius:11px;display:grid;place-items:center}.ai-launcher-badge{position:absolute;right:-10px;top:-7px;background:var(--ai-gold);color:#173528;font-size:8px;padding:5px 7px;border-radius:999px;border:2px solid #fff;letter-spacing:.3px}
.ai-drawer{position:fixed;right:18px;top:18px;bottom:18px;width:min(540px,calc(100vw - 36px));z-index:9100;background:#fff;border:1px solid var(--ai-line);border-radius:24px;box-shadow:0 24px 70px rgba(8,40,29,.32);display:flex;flex-direction:column;overflow:hidden;transform:translateX(calc(100% + 48px));opacity:0;pointer-events:none;transition:.24s ease}.ai-drawer.open{transform:translateX(0);opacity:1;pointer-events:auto}
.ai-head{background:linear-gradient(135deg,var(--ai-green),var(--ai-green2));color:#fff;padding:16px 17px;display:flex;gap:11px;align-items:center}.ai-avatar{width:44px;height:44px;border-radius:15px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);display:grid;place-items:center;font-weight:900}.ai-head-copy{min-width:0;flex:1}.ai-head-copy strong{display:block;font-size:15px}.ai-head-copy span{display:block;font-size:10px;opacity:.83;margin-top:3px}.ai-close,.ai-head-action{border:0;background:rgba(255,255,255,.13);color:#fff;width:34px;height:34px;border-radius:10px;cursor:pointer;font-size:17px}.ai-head-action{font-size:15px}
.ai-demo-strip{padding:8px 14px;background:#fff9e8;border-bottom:1px solid #eadcae;color:#66501c;font-size:9px;display:flex;justify-content:space-between;gap:8px}.ai-demo-strip b{white-space:nowrap}.ai-context-strip{display:flex;align-items:center;gap:7px;padding:8px 12px;background:#f8fbf9;border-bottom:1px solid var(--ai-line);overflow-x:auto}.ai-context-label{font-size:8px;font-weight:900;color:var(--ai-muted);text-transform:uppercase;letter-spacing:.5px}.ai-context-strip button{border:1px solid #cbdad2;background:#fff;color:#20523c;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:800;white-space:nowrap;cursor:pointer}.ai-context-strip button:last-child{background:#eaf4ee}
.ai-tabs{display:grid;grid-template-columns:repeat(3,1fr);padding:7px 10px 0;background:#fff;border-bottom:1px solid var(--ai-line)}.ai-tabs button{border:0;background:transparent;color:var(--ai-muted);padding:10px 8px;border-radius:10px 10px 0 0;font-size:10px;font-weight:800;cursor:pointer;border-bottom:3px solid transparent}.ai-tabs button.active{color:var(--ai-green2);border-bottom-color:var(--ai-green2);background:#f6faf7}
.ai-panels{flex:1;min-height:0;background:var(--ai-bg);position:relative}.ai-panel{display:none;height:100%;min-height:0}.ai-panel.active{display:flex;flex-direction:column}
.ai-messages{flex:1;min-height:0;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:12px}.ai-message{max-width:94%;border-radius:16px;padding:12px 13px;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;box-shadow:0 4px 14px rgba(15,56,42,.06)}.ai-message.user{align-self:flex-end;background:var(--ai-green2);color:#fff;border-bottom-right-radius:5px}.ai-message.assistant{align-self:flex-start;background:#fff;color:var(--ai-text);border:1px solid var(--ai-line);border-bottom-left-radius:5px}.ai-message.assistant b{font-weight:900;color:#0b4934}.ai-bullet{display:block;margin:2px 0}.ai-meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px;padding-top:8px;border-top:1px solid #e6ede9}.ai-tool{font-size:8px;text-transform:uppercase;letter-spacing:.35px;background:#edf5f0;color:#24583f;border-radius:999px;padding:4px 6px;font-weight:800}.ai-empty-title{font-size:15px;font-weight:900;color:#154632;margin-bottom:5px}.ai-empty-sub{font-size:11px;color:var(--ai-muted)}
.ai-context-notice{align-self:center;background:#183f31;color:#fff;border-radius:999px;padding:7px 11px;font-size:9px;box-shadow:0 5px 14px rgba(10,49,36,.18)}
.ai-suggestion-block{border-top:1px solid var(--ai-line);background:#fff;padding:10px 12px 12px}.ai-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.ai-section-head strong{font-size:10px;color:#254d3b}.ai-section-head button{border:0;background:transparent;color:var(--ai-green2);font-size:9px;font-weight:900;cursor:pointer}.ai-suggestions{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:164px;overflow:auto}.ai-suggestion-card{border:1px solid #cfddd5;background:#f8fbf9;color:#244c3a;border-radius:11px;padding:9px;text-align:left;cursor:pointer;display:flex;gap:7px;align-items:flex-start;min-height:45px}.ai-suggestion-card:hover{border-color:#67a083;background:#eef7f1}.ai-suggestion-card span{color:var(--ai-green3);font-size:10px;margin-top:1px}.ai-suggestion-card strong{font-size:9px;line-height:1.3;font-weight:800}
.ai-catalog-toolbar{padding:11px 12px 8px;background:#fff;border-bottom:1px solid var(--ai-line)}.ai-catalog-toolbar input{width:100%;border:1px solid #cbd9d1;border-radius:12px;padding:10px 11px;font-size:10px;outline:none}.ai-catalog-toolbar input:focus{border-color:#3b8564;box-shadow:0 0 0 3px rgba(59,133,100,.1)}.ai-catalog-menu-filter{display:flex;gap:6px;overflow-x:auto;padding-top:8px}.ai-catalog-menu-filter button{flex:0 0 auto;border:1px solid #d2dfd8;background:#fff;color:#567066;border-radius:999px;padding:6px 9px;font-size:8px;font-weight:800;cursor:pointer}.ai-catalog-menu-filter button.active{background:var(--ai-green2);border-color:var(--ai-green2);color:#fff}.ai-catalog{padding:12px;overflow:auto;display:flex;flex-direction:column;gap:10px}.ai-catalog-group{background:#fff;border:1px solid var(--ai-line);border-radius:15px;overflow:hidden}.ai-catalog-group-head{padding:11px 12px;border-bottom:1px solid #e5ece8;display:flex;align-items:center;justify-content:space-between}.ai-catalog-group-head small{display:block;font-size:7px;color:var(--ai-muted);text-transform:uppercase;letter-spacing:.5px}.ai-catalog-group-head strong{display:block;font-size:11px;color:#1b4936;margin-top:2px}.ai-catalog-group-head>span{background:var(--ai-soft);color:var(--ai-green2);min-width:25px;height:25px;border-radius:999px;display:grid;place-items:center;font-size:8px;font-weight:900}.ai-catalog-list{display:flex;flex-direction:column}.ai-catalog-list button{border:0;border-bottom:1px solid #edf1ef;background:#fff;text-align:left;padding:10px 11px;display:grid;grid-template-columns:22px 1fr 14px;gap:8px;align-items:center;cursor:pointer;color:var(--ai-text)}.ai-catalog-list button:last-child{border-bottom:0}.ai-catalog-list button:hover{background:#f4f9f6}.ai-catalog-list button span{width:22px;height:22px;border-radius:8px;background:#eaf4ee;color:var(--ai-green2);display:grid;place-items:center;font-size:9px;font-weight:900}.ai-catalog-list button b{font-size:9px;line-height:1.35}.ai-catalog-list button i{font-style:normal;color:#7f9389}.ai-catalog-empty{padding:25px;text-align:center;color:var(--ai-muted);font-size:10px;background:#fff;border:1px dashed #cbd8d1;border-radius:14px}
.ai-context-content{padding:14px;overflow:auto}.ai-context-hero{background:linear-gradient(135deg,#0f4d38,#1f7654);color:#fff;border-radius:17px;padding:17px;box-shadow:0 10px 24px rgba(10,58,41,.16)}.ai-context-hero small{font-size:8px;letter-spacing:.6px;opacity:.75}.ai-context-hero strong{display:block;font-size:17px;margin-top:4px}.ai-context-hero p{font-size:10px;line-height:1.45;opacity:.85;margin:7px 0 0}.ai-context-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}.ai-context-grid>div{background:#fff;border:1px solid var(--ai-line);border-radius:12px;padding:11px}.ai-context-grid span{display:block;color:var(--ai-muted);font-size:8px;text-transform:uppercase}.ai-context-grid strong{display:block;font-size:11px;margin-top:4px;color:#1d4936}.ai-context-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}.ai-context-actions button{border:1px solid #cbdad2;background:#fff;color:#214e3a;border-radius:12px;padding:10px;font-size:9px;font-weight:800;cursor:pointer}.ai-context-actions button:hover{background:#edf6f0}.ai-context-note{margin-top:11px;border:1px solid #eadcae;background:#fff9e8;border-radius:13px;padding:12px;color:#62501e}.ai-context-note b{font-size:10px}.ai-context-note p{font-size:9px;line-height:1.45;margin:5px 0 0}
.ai-composer{padding:11px;background:#fff;border-top:1px solid var(--ai-line);display:flex;gap:8px;align-items:flex-end}.ai-input{flex:1;min-height:44px;max-height:120px;resize:none;border:1px solid #cbd9d1;border-radius:13px;padding:11px 12px;color:var(--ai-text);outline:none;font-size:11px}.ai-input:focus{border-color:#3b8564;box-shadow:0 0 0 3px rgba(59,133,100,.12)}.ai-send,.ai-catalog-shortcut{width:44px;height:44px;border:0;border-radius:13px;background:var(--ai-green2);color:#fff;font-size:18px;cursor:pointer}.ai-catalog-shortcut{background:#edf5f0;color:var(--ai-green2);border:1px solid #cbdad2;font-size:15px}.ai-send:disabled{opacity:.45;cursor:wait}.ai-typing{align-self:flex-start;background:#fff;border:1px solid var(--ai-line);border-radius:14px;padding:10px 12px;color:var(--ai-muted);font-size:10px}.ai-typing i{display:inline-block;width:5px;height:5px;background:#729281;border-radius:50%;margin:0 2px;animation:aiblink 1s infinite}.ai-typing i:nth-child(2){animation-delay:.15s}.ai-typing i:nth-child(3){animation-delay:.3s}@keyframes aiblink{0%,60%,100%{opacity:.25}30%{opacity:1}}
.ai-backdrop{position:fixed;inset:0;background:rgba(7,35,25,.2);z-index:9050;opacity:0;pointer-events:none;transition:.2s}.ai-backdrop.open{opacity:1;pointer-events:auto}
@media(max-width:700px){.ai-launcher{right:14px;bottom:78px;width:56px;height:56px;border-radius:18px}.ai-drawer{inset:0;width:100%;height:100%;max-width:none;border-radius:0}.ai-message{max-width:96%}.ai-demo-strip{font-size:8px}.ai-suggestions{grid-template-columns:1fr}.ai-context-actions{grid-template-columns:1fr}.ai-head-copy span{display:none}}


/* V172 R13 — assistente responsivo sem rolagem lateral */
.ai-drawer, .ai-drawer * { box-sizing: border-box; min-width: 0; }
.ai-drawer, .ai-panels, .ai-panel, .ai-messages, .ai-catalog,
.ai-context-content, .ai-suggestion-block, .ai-composer { max-width: 100%; overflow-x: hidden; }
.ai-context-strip, .ai-catalog-menu-filter {
  flex-wrap: wrap;
  overflow-x: hidden;
  white-space: normal;
}
.ai-context-strip button, .ai-catalog-menu-filter button {
  flex: 0 1 auto;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}
.ai-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ai-tabs button, .ai-suggestion-card, .ai-catalog-list button,
.ai-context-grid > div, .ai-context-actions button { min-width: 0; max-width: 100%; }
.ai-message, .ai-suggestion-card strong, .ai-catalog-list button b,
.ai-context-hero p, .ai-context-note p { overflow-wrap: anywhere; word-break: break-word; }
@media(max-width:420px){
  .ai-head { padding: 13px 12px; gap: 8px; }
  .ai-avatar { width: 38px; height: 38px; }
  .ai-tabs button { padding: 9px 4px; font-size: 9px; }
  .ai-context-grid { grid-template-columns: 1fr; }
  .ai-composer { padding: 9px; }
}

/* PATCH_R42_LIMPAR_BUSCA_CATALOGO_START */
.ai-catalog-summary-r31{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
  min-width:0;
  margin-top:9px;
  padding:8px 10px;
  border:1px solid #d8e2dc;
  border-radius:12px;
  background:#f7faf8;
}
.ai-catalog-summary-r31 span{
  min-width:0;
  color:#526d61;
  font-size:9px;
  font-weight:800;
  line-height:1.3;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ai-catalog-summary-r31 button{
  flex:0 0 auto;
  min-height:30px;
  padding:0 12px;
  border:1px solid #cbdad2;
  border-radius:999px;
  background:#fff;
  color:#1d5b42;
  font-size:9px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(15,61,46,.06);
  transition:background .15s ease,border-color .15s ease,transform .15s ease;
}
.ai-catalog-summary-r31 button:hover{
  background:#edf5f0;
  border-color:#8db5a2;
  transform:translateY(-1px);
}
.ai-catalog-summary-r31 button:active{
  transform:translateY(0);
}
.ai-catalog-summary-r31 button:focus-visible{
  outline:3px solid rgba(59,133,100,.18);
  outline-offset:2px;
}
@media(max-width:420px){
  .ai-catalog-summary-r31{
    align-items:stretch;
    flex-direction:column;
  }
  .ai-catalog-summary-r31 span{
    white-space:normal;
  }
  .ai-catalog-summary-r31 button{
    width:100%;
  }
}
/* PATCH_R42_LIMPAR_BUSCA_CATALOGO_END */

/* PATCH_R46_OCULTAR_ASSISTENTE_EM_RELATORIO_START */
body.ai-report-active #aiLauncher,
body.ai-report-active #aiDrawer,
body.ai-report-active #aiBackdrop{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

#modalRoot:not(.hidden):has(.report-modal-shell) ~ #aiLauncher,
#modalRoot:not(.hidden):has(.report-modal-shell) ~ #aiDrawer,
#modalRoot:not(.hidden):has(.report-modal-shell) ~ #aiBackdrop{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
/* PATCH_R46_OCULTAR_ASSISTENTE_EM_RELATORIO_END */


/* ===== r31-responsive-shell.css ===== */
/* R35 — camada segura: sem alterar altura, rolagem ou escala global dos menus. */
.brand-network-trigger{
  position:relative;
  cursor:pointer!important;
  outline:none;
  transform:none!important;
  filter:none!important;
  box-shadow:none!important;
}
.brand-network-trigger::before,
.brand-network-trigger::after{display:none!important;content:none!important}
.brand-network-trigger:hover,
.brand-network-trigger:focus,
.brand-network-trigger:focus-visible{
  transform:none!important;
  filter:none!important;
  box-shadow:none!important;
}
.brand-network-trigger:focus-visible{
  outline:2px solid rgba(208,255,229,.78)!important;
  outline-offset:2px!important;
}

/* Catálogo responsivo e isolado do restante do sistema. */
.ai-drawer{width:min(430px,calc(100vw - 18px))!important;max-width:100%!important;overflow:hidden!important}
.ai-catalog-toolbar{position:sticky;top:0;z-index:4;padding:12px!important;background:rgba(255,255,255,.98)!important;backdrop-filter:blur(10px)}
.ai-catalog-toolbar input{width:100%!important;min-width:0!important;height:40px!important}
.ai-catalog-menu-filter{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px!important;max-height:128px;overflow-y:auto!important;overflow-x:hidden!important;padding:8px 1px 1px!important}
.ai-catalog-menu-filter button{width:100%!important;min-width:0!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;padding:7px 8px!important;text-align:center}
.ai-catalog{min-width:0!important;max-width:100%!important;overflow-x:hidden!important;padding:10px 12px 14px!important}
.ai-catalog-group-head{align-items:flex-start!important;gap:10px}
.ai-catalog-group-head small{max-width:270px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-catalog-list button{grid-template-columns:24px minmax(0,1fr) 14px!important}
.ai-catalog-list button b{min-width:0;overflow-wrap:anywhere}
@media(max-width:430px){.ai-drawer{width:100%!important}.ai-catalog-menu-filter{grid-template-columns:1fr 1fr}}


/* ===== r35-visual-stability.css ===== */
/* PATCH_R34_R35_ESTABILIDADE_VISUAL_FILTROS_GPS_START */
/*
 * R35 restaura o fluxo normal dos menus. Nenhuma regra global aplica zoom,
 * transform, altura fixa ou overflow oculto. Somente Disponibilidade e o
 * Painel Apontamentos possuem viewport próprio, conforme aprovado.
 */
html,body{
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
  min-height:100%!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
#appView.app-shell:not(.hidden){
  height:auto!important;
  min-height:100vh!important;
  max-height:none!important;
  overflow:visible!important;
}
#appView .app.main,
#appView .main{
  height:auto!important;
  min-height:100vh!important;
  max-height:none!important;
  overflow:visible!important;
}
#menuHost.menu-host,
#menuHost>.menu-fragment{
  min-width:0!important;
  max-width:100%!important;
  contain:none!important;
  transform:none!important;
  zoom:1!important;
}

/* Os menus normais voltam a crescer e rolar naturalmente. */
body:is(
  [data-current-menu="consultas-gerais"],
  [data-current-menu="aderencia"],
  [data-current-menu="determinar-frente"],
  [data-current-menu="materiais"],
  [data-current-menu="sistema"],
  [data-current-menu="visuais-salvos"]
) #menuHost,
body:is(
  [data-current-menu="consultas-gerais"],
  [data-current-menu="aderencia"],
  [data-current-menu="determinar-frente"],
  [data-current-menu="materiais"],
  [data-current-menu="sistema"],
  [data-current-menu="visuais-salvos"]
) #menuHost>.menu-fragment{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}

/* Recuperação explícita dos painéis e tabelas que estavam sendo cortados. */
.aderencia-page,
.sistema-page,
.status-v166,
.materiais-page,
.consultas-page,
.det-page,
.visuais-page{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  visibility:visible!important;
  opacity:1!important;
}
.aderencia-table-panel,
.mat-table-panel,
.system-section,
.status-workspace-v166,
.consultas-table-shell,
.materiais-table-shell,
.aderencia-table-wrap,
.table-shell,
.allocation-grid{
  min-width:0!important;
  max-width:100%!important;
  visibility:visible!important;
  opacity:1!important;
}
.aderencia-table-wrap,
.materiais-table-shell,
.consultas-table-shell,
.system-table-wrap,
.table-shell{
  overflow:auto!important;
  scrollbar-gutter:stable;
}
#tabelaAderencia,
#tabelaMateriais,
#tabelaConsultas,
#tabelaDisponibilidade,
.data-table{
  visibility:visible!important;
  opacity:1!important;
}

/* Garante que cards e grids nunca ultrapassem a área útil. */
.aderencia-cards,
.aderencia-insights-grid,
.status-workspace-v166,
.system-grid,
.materiais-dashboard,
.materiais-kpis,
.consultas-page,
.det-page,
.allocation-board{
  min-width:0!important;
  max-width:100%!important;
}
.aderencia-cards>*,
.aderencia-insights-grid>*,
.status-workspace-v166>*,
.system-grid>*,
.materiais-dashboard>*,
.materiais-kpis>*,
.det-page>*{
  min-width:0!important;
}

/* Disponibilidade: sem rolagem externa; somente a tabela pode rolar. */
body[data-current-menu="disponibilidade"] #menuHost{
  height:var(--r35-disponibilidade-altura,calc(100dvh - 150px))!important;
  min-height:360px!important;
  max-height:var(--r35-disponibilidade-altura,calc(100dvh - 150px))!important;
  overflow:hidden!important;
}
body[data-current-menu="disponibilidade"] #menuHost>.menu-fragment{
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  overflow:hidden!important;
}
body[data-current-menu="disponibilidade"] .disponibilidade-page{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  overflow:hidden!important;
}
body[data-current-menu="disponibilidade"] .disp-filters,
body[data-current-menu="disponibilidade"] .disp-drill-info{flex:0 0 auto!important}
body[data-current-menu="disponibilidade"] .disp-table-shell{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
  margin:0!important;
}

/* Painel Apontamentos: viewport isolado; zoom interno continua até 150%. */
body[data-current-menu="painel-apontamentos"] #menuHost{
  height:var(--r35-painel-altura,calc(100dvh - 150px))!important;
  min-height:520px!important;
  max-height:var(--r35-painel-altura,calc(100dvh - 150px))!important;
  overflow:hidden!important;
}
body[data-current-menu="painel-apontamentos"] #menuHost>.menu-fragment,
body[data-current-menu="painel-apontamentos"] .painel-apontamentos-menu{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  overflow:hidden!important;
}

/* Filtros múltiplos: visual estável, pesquisa instantânea e painel dentro da tela. */
.ms-filter{
  position:relative!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:visible!important;
}
.ms-filter-label{
  display:block!important;
  min-width:0!important;
  max-width:100%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.ms-filter-button{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:44px!important;
  border:1px solid #d1dfd8!important;
  border-radius:13px!important;
  background:#fff!important;
  color:#173c2f!important;
  padding:0 12px!important;
  box-shadow:0 5px 14px rgba(15,61,46,.045)!important;
}
.ms-filter-button span{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.ms-filter.open .ms-filter-button{
  border-color:#4d9577!important;
  box-shadow:0 0 0 4px rgba(38,128,92,.10)!important;
}
.ms-filter-panel{
  position:fixed!important;
  inset:auto!important;
  z-index:22000!important;
  display:none!important;
  width:min(410px,calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  max-height:min(430px,calc(100dvh - 24px))!important;
  overflow:hidden!important;
  border:1px solid #d5e3dc!important;
  border-radius:18px!important;
  background:#fff!important;
  padding:10px!important;
  box-shadow:0 24px 65px rgba(15,61,46,.24)!important;
}
.ms-filter.open .ms-filter-panel{
  display:flex!important;
  flex-direction:column!important;
}
.ms-filter-search-row{
  position:static!important;
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:8px!important;
  align-items:center!important;
  padding:0 0 8px!important;
  background:#fff!important;
}
.ms-filter-search{
  width:100%!important;
  min-width:0!important;
  height:40px!important;
  border:1px solid #cdded5!important;
  border-radius:12px!important;
  background:#f8fbf9!important;
  padding:0 12px!important;
  color:#153d2f!important;
  font-size:12px!important;
  font-weight:850!important;
  outline:none!important;
}
.ms-filter-search:focus{
  border-color:#4d9577!important;
  background:#fff!important;
  box-shadow:0 0 0 4px rgba(38,128,92,.10)!important;
}
.ms-filter-search-count{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:46px!important;
  height:30px!important;
  padding:0 8px!important;
  border-radius:999px!important;
  background:#eaf4ef!important;
  color:#2d6851!important;
  font-size:9px!important;
  font-weight:1000!important;
}
.ms-filter-tools{
  position:static!important;
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  margin:0 0 8px!important;
  padding:0 0 8px!important;
  border-bottom:1px solid #edf3f0!important;
  background:#fff!important;
}
.ms-filter-tools button{
  min-width:0!important;
  min-height:36px!important;
  border:1px solid #d7e4de!important;
  border-radius:11px!important;
  background:#f6faf8!important;
  color:#17513b!important;
  font-size:11px!important;
  font-weight:900!important;
}
.ms-filter-list{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:4px!important;
  padding-right:2px!important;
}
.ms-option{
  display:grid!important;
  grid-template-columns:20px minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
  min-height:36px!important;
  padding:7px 8px!important;
  border:1px solid transparent!important;
  border-radius:11px!important;
}
.ms-option:hover{background:#f2f8f5!important;border-color:#d8e8e0!important}
.ms-option input{width:16px!important;height:16px!important;margin:0!important;accent-color:#176b4b!important}
.ms-option span{min-width:0!important;white-space:normal!important;overflow-wrap:anywhere!important;font-size:12px!important;font-weight:850!important;color:#21372f!important}
.ms-search-empty{display:block!important;padding:12px!important;text-align:center!important;color:#73857c!important;font-weight:850!important}
.ms-search-empty[hidden]{display:none!important}

/* Grades de filtros respeitam os limites do site. */
.consultas-filters,
.materiais-filters,
.materiais-filters-enxutos,
.det-filters,
.disp-filters{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:visible!important;
  align-items:end!important;
}
.consultas-filters>*,
.materiais-filters>*,
.materiais-filters-enxutos>*,
.det-filters>*,
.disp-filters>*{min-width:0!important;max-width:100%!important}
.consultas-filter-actions,
.materiais-filter-actions,
.det-filter-actions,
.disp-filter-actions{
  min-width:0!important;
  max-width:100%!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
}

@media(max-width:1100px){
  .materiais-filters,
  .materiais-filters-enxutos,
  .consultas-filters,
  .det-filters,
  .disp-filters{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:700px){
  .materiais-filters,
  .materiais-filters-enxutos,
  .consultas-filters,
  .det-filters,
  .disp-filters{
    grid-template-columns:1fr!important;
  }
  .ms-filter-panel{
    left:12px!important;
    right:12px!important;
    width:auto!important;
    max-width:none!important;
    max-height:min(62dvh,520px)!important;
  }
  body[data-current-menu="painel-apontamentos"] #menuHost{min-height:480px!important}
}
/* PATCH_R34_R35_ESTABILIDADE_VISUAL_FILTROS_GPS_END */


/* ===== r37-filtros-seguros.css ===== */
/* PATCH_R37_FILTROS_SEGUROS_START
   Somente o componente de filtro. Não altera grids, cards, tabelas ou rolagem dos menus. */
.ms-filter{
  position:relative!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
.ms-filter *{box-sizing:border-box!important}
.ms-filter-label{
  display:block!important;
  max-width:100%!important;
  margin:0 0 7px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.ms-filter-button{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:46px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  overflow:hidden!important;
}
.ms-filter-button span{
  min-width:0!important;
  flex:1 1 auto!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  text-align:left!important;
}
.ms-filter-button small{flex:0 0 auto!important}
.ms-filter-panel{
  position:fixed!important;
  inset:auto!important;
  right:auto!important;
  bottom:auto!important;
  z-index:1800!important;
  display:none!important;
  flex-direction:column!important;
  min-width:0!important;
  max-width:calc(100vw - 16px)!important;
  max-height:calc(100dvh - 16px)!important;
  overflow:hidden!important;
  border:1px solid #cfddd6!important;
  border-radius:16px!important;
  background:#fff!important;
  padding:10px!important;
  box-shadow:0 22px 55px rgba(15,61,46,.22)!important;
}
.ms-filter.open .ms-filter-panel{display:flex!important}
.ms-filter-panel[aria-hidden="true"]{display:none!important}
.ms-filter-search-row{
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  margin:0 0 8px!important;
}
.ms-filter-search{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:40px!important;
  margin:0!important;
  border:1px solid #cbdcd3!important;
  border-radius:11px!important;
  background:#f8fbf9!important;
  color:#173c2f!important;
  padding:0 11px!important;
  outline:none!important;
}
.ms-filter-search:focus{
  border-color:#4b9274!important;
  background:#fff!important;
  box-shadow:0 0 0 3px rgba(38,128,92,.10)!important;
}
.ms-filter-search-count{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:48px!important;
  height:30px!important;
  padding:0 8px!important;
  border-radius:999px!important;
  background:#e8f3ed!important;
  color:#2c674f!important;
  font-size:10px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}
.ms-filter-tools{
  position:static!important;
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
  min-width:0!important;
  margin:0 0 8px!important;
  padding:0 0 8px!important;
  border-bottom:1px solid #edf3f0!important;
  background:#fff!important;
}
.ms-filter-tools button{
  width:100%!important;
  min-width:0!important;
  min-height:35px!important;
  white-space:normal!important;
  line-height:1.15!important;
}
.ms-filter-list{
  flex:1 1 auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  align-content:start!important;
  gap:4px!important;
  padding:0 3px 0 0!important;
}
.ms-option{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  display:grid!important;
  grid-template-columns:20px minmax(0,1fr)!important;
  align-items:start!important;
  gap:8px!important;
  min-height:34px!important;
  padding:7px 8px!important;
  overflow:hidden!important;
}
.ms-option[hidden],.ms-search-empty[hidden]{display:none!important}
.ms-option input[type="checkbox"]{
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  margin:1px 0 0!important;
  padding:0!important;
}
.ms-option span{
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
.ms-empty{display:block!important;padding:10px!important;color:#66786e!important;text-align:center!important}
@media(max-width:700px){
  .ms-filter-panel{border-radius:14px!important;padding:9px!important}
  .ms-filter-tools{grid-template-columns:1fr!important}
}
/* PATCH_R37_FILTROS_SEGUROS_END */


/* ===== r80-redefinir-tipo.css ===== */
/* PATCH_R80_REDEFINIR_TIPO_AVANCADO */
#r80-open-redefinir-tipo{white-space:nowrap}


/* ===== r89-ajustes-finais.css ===== */
/* R89 — Ajustes finais por menu: Alocação, print, zoom painel, limpeza Redefinir Tipo */
body:not([data-current-menu="determinar-frente"]) #r80-open-redefinir-tipo,
body:not([data-current-menu="determinar-frente"]) .r80-type-btn,
body:not([data-current-menu="determinar-frente"]) #r79-open-redefinir-tipo,
body:not([data-current-menu="determinar-frente"]) .r79-type-btn,
body:not([data-current-menu="determinar-frente"]) #r77-open-redefinir-tipo,
body:not([data-current-menu="determinar-frente"]) .r77-type-btn{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Alocação — melhor aproveitamento dos cards/frotas em tela e print */
body[data-current-menu="determinar-frente"] .front-grid{
  grid-template-columns:repeat(auto-fit,minmax(355px,1fr))!important;
  gap:14px!important;
  align-items:start!important;
}
body[data-current-menu="determinar-frente"] .front-card{
  min-width:0!important;
  max-width:100%!important;
}
body[data-current-menu="determinar-frente"] .type-row{
  margin-bottom:10px!important;
}
body[data-current-menu="determinar-frente"] .fleet-list{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:flex-start!important;
  gap:7px!important;
}
body[data-current-menu="determinar-frente"] .fleet-card{
  min-width:74px!important;
  min-height:52px!important;
  padding:0 9px!important;
  border-radius:9px!important;
  font-size:17px!important;
  line-height:1!important;
  font-weight:1000!important;
  letter-spacing:.01em!important;
}

/* Relatório da Alocação — imagem limpa para WhatsApp/print */
#modalRoot .report-view.relatorio-alocacao-total-frente .report-head h2{
  font-size:26px!important;
  color:#0f3d2e!important;
}
#modalRoot .report-view.relatorio-alocacao-total-frente .report-legend-bar,
#modalRoot .report-view.relatorio-alocacao-total-frente .report-legend{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:7px!important;
  align-items:center!important;
  padding:8px 10px!important;
  margin:8px 0 10px!important;
  border:1px solid #dfe8e3!important;
  border-radius:12px!important;
  background:#f8fcfa!important;
}
#modalRoot .report-view.relatorio-alocacao-total-frente .report-legend-item,
#modalRoot .report-view.relatorio-alocacao-total-frente .legend-item{
  min-height:26px!important;
  padding:4px 8px!important;
  border-radius:999px!important;
  border:1px solid #dfe8e3!important;
  background:#fff!important;
  font-weight:950!important;
  font-size:11px!important;
  color:#123f31!important;
}
#modalRoot .report-view.relatorio-alocacao-total-frente .rel-aloc-grid{
  grid-template-columns:repeat(auto-fit,minmax(430px,1fr))!important;
  gap:12px!important;
}
#modalRoot .report-view.relatorio-alocacao-total-frente .rel-aloc-front-card{
  break-inside:avoid!important;
  page-break-inside:avoid!important;
}
#modalRoot .report-view.relatorio-alocacao-total-frente .rel-aloc-type-row{
  grid-template-columns:175px minmax(0,1fr)!important;
}
#modalRoot .report-view.relatorio-alocacao-total-frente .rel-aloc-type-name{
  font-size:10px!important;
  line-height:1.08!important;
}
#modalRoot .report-view.relatorio-alocacao-total-frente .rel-aloc-fleet-list{
  gap:5px!important;
  align-items:center!important;
}
#modalRoot .report-view.relatorio-alocacao-total-frente .rel-aloc-fleet{
  min-width:52px!important;
  min-height:26px!important;
  font-size:12px!important;
}
.report-print-root .report-header-tools,
.report-print-root .modal-close,
.report-print-root .rel-aloc-title-actions,
.report-print-root .rel-aloc-eye-btn,
.report-print-root .rel-aloc-inv-btn,
.report-print-root [data-rel-aloc-toggle-tools],
.report-print-root [data-rel-aloc-inventario]{
  display:none!important;
}

/* Fallback visual do Print */
.print-fallback-r89{
  position:fixed!important;
  inset:0!important;
  z-index:99999!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  background:rgba(4,27,19,.72)!important;
}
.print-fallback-r89-card{
  width:min(1180px,calc(100vw - 24px))!important;
  height:min(880px,calc(100dvh - 24px))!important;
  display:flex!important;
  flex-direction:column!important;
  border-radius:18px!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 24px 70px rgba(0,0,0,.34)!important;
}
.print-fallback-r89-card header{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:12px 16px!important;
  background:#0f3d2e!important;
  color:#fff!important;
}
.print-fallback-r89-card header strong{font-size:18px!important;display:block!important;}
.print-fallback-r89-card header small{font-size:12px!important;color:#dceee6!important;display:block!important;margin-top:2px!important;}
.print-fallback-r89-card button,
.print-fallback-r89-card a{
  min-height:38px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 13px!important;
  border:0!important;
  border-radius:10px!important;
  background:#e9f4ef!important;
  color:#0f3d2e!important;
  font-weight:1000!important;
  text-decoration:none!important;
  cursor:pointer!important;
}
.print-fallback-r89-actions{display:flex!important;gap:8px!important;flex-wrap:wrap!important;padding:10px 14px!important;background:#f4faf7!important;border-bottom:1px solid #dfe8e3!important;}
.print-fallback-r89-preview{flex:1 1 auto!important;overflow:auto!important;padding:12px!important;background:#eef4f0!important;}
.print-fallback-r89-preview img{display:block!important;max-width:100%!important;height:auto!important;margin:auto!important;background:#fff!important;box-shadow:0 10px 30px rgba(15,61,46,.16)!important;}

/* Modo TV hover */
.det-tv-tooltip-r89{
  position:fixed!important;
  z-index:99998!important;
  min-width:280px!important;
  max-width:min(460px,calc(100vw - 24px))!important;
  padding:12px 14px!important;
  border:1px solid rgba(15,61,46,.2)!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#123f31!important;
  box-shadow:0 18px 44px rgba(15,61,46,.24)!important;
  pointer-events:none!important;
  font-size:12px!important;
  line-height:1.35!important;
  white-space:pre-line!important;
  font-weight:800!important;
}
.det-tv-tooltip-r89 b{display:block!important;font-size:15px!important;color:#0f3d2e!important;margin-bottom:4px!important;}

/* Painel de Apontamentos — iframe ocupa área sem barra horizontal global */
body[data-current-menu="painel-apontamentos"] #menuHost,
body[data-current-menu="painel-apontamentos"] .painel-apontamentos-menu{
  overflow:hidden!important;
}

/* R91 — Print manual responsivo, filtro Origem centralizado e relatórios leves */
#modalRoot .rel-origem-filter-wrap-r91{
  min-width:154px!important;
  height:46px!important;
  padding:0 10px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:14px!important;
  background:#fff!important;
  border:1px solid #c9d8d1!important;
}
#modalRoot .rel-origem-filter-wrap-r91 .rel-origem-filter{
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  padding:0 24px 0 8px!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:#0f3d2e!important;
  font-size:13px!important;
  font-weight:1000!important;
  line-height:1!important;
  text-align:center!important;
  text-align-last:center!important;
  cursor:pointer!important;
}
body.report-capture-open-r91{overflow:hidden!important;}
.report-capture-overlay-r91{
  position:fixed!important;
  inset:0!important;
  z-index:120000!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  background:#e8f0ec!important;
  color:#17372a!important;
}
.report-capture-toolbar-r91{
  position:sticky!important;
  top:0!important;
  z-index:5!important;
  min-height:72px!important;
  padding:10px 14px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  background:#0f3d2e!important;
  color:#fff!important;
  box-shadow:0 5px 18px rgba(5,36,25,.22)!important;
}
.report-capture-toolbar-r91>div:first-child{min-width:0!important;}
.report-capture-toolbar-r91 strong{display:block!important;font-size:18px!important;line-height:1.1!important;}
.report-capture-toolbar-r91 small{display:block!important;margin-top:4px!important;color:#d7ebe1!important;font-size:11px!important;line-height:1.25!important;}
.report-capture-actions-r91{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;justify-content:flex-end!important;}
.report-capture-actions-r91 button,
.report-capture-restore-r91{
  min-height:40px!important;
  padding:0 13px!important;
  border:1px solid rgba(255,255,255,.25)!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#0f3d2e!important;
  font-size:12px!important;
  font-weight:1000!important;
  cursor:pointer!important;
}
.report-capture-stage-r91{
  width:min(1500px,100%)!important;
  margin:0 auto!important;
  padding:14px!important;
}
.report-capture-content-r91{
  width:100%!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
  padding:14px!important;
  border-radius:16px!important;
  background:#fff!important;
  box-shadow:0 12px 38px rgba(15,61,46,.13)!important;
}
.report-capture-content-r91 .report-head{margin:0 0 10px!important;padding:0 0 8px!important;border-bottom:3px solid #0f3d2e!important;}
.report-capture-content-r91 .report-head h2{margin:0!important;color:#0f3d2e!important;font-size:clamp(21px,3vw,30px)!important;}
.report-capture-content-r91 .report-section{margin:12px 0 16px!important;}
.report-capture-content-r91 .report-section h3{margin:0 0 8px!important;color:#0f3d2e!important;font-size:clamp(15px,2vw,19px)!important;}
.report-capture-content-r91.relatorio-alocacao-total-frente .rel-aloc-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(330px,1fr))!important;
  gap:10px!important;
}
.report-capture-content-r91.relatorio-alocacao-total-frente .rel-aloc-front-card{
  min-width:0!important;
  break-inside:avoid!important;
  border-radius:13px!important;
  overflow:hidden!important;
}
.report-capture-content-r91.relatorio-alocacao-total-frente .rel-aloc-type-row{grid-template-columns:minmax(120px,32%) minmax(0,1fr)!important;}
.report-capture-content-r91.relatorio-alocacao-total-frente .rel-aloc-type-name{font-size:10px!important;padding:7px 8px!important;overflow-wrap:anywhere!important;}
.report-capture-content-r91.relatorio-alocacao-total-frente .rel-aloc-fleet-list{gap:5px!important;padding:6px 7px!important;}
.report-capture-content-r91.relatorio-alocacao-total-frente .rel-aloc-fleet{min-width:52px!important;min-height:27px!important;font-size:12px!important;padding:4px 6px!important;}
.disp-report-blocks-r91{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;}
.disp-report-block-r91{min-width:0!important;padding:8px!important;border:1px solid #d8e4de!important;border-radius:12px!important;background:#fff!important;overflow:hidden!important;}
.disp-report-block-title-r91{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;margin:0 0 7px!important;padding:7px 9px!important;border-radius:9px!important;background:#edf6f1!important;color:#0f3d2e!important;}
.disp-report-block-title-r91 strong{font-size:12px!important;}
.disp-report-block-title-r91 span{font-size:11px!important;font-weight:850!important;}
.report-capture-content-r91 .disp-report-split-table-r91{width:100%!important;min-width:0!important;table-layout:fixed!important;border-collapse:collapse!important;}
.report-capture-content-r91 .disp-report-split-table-r91 th,
.report-capture-content-r91 .disp-report-split-table-r91 td{min-width:0!important;max-width:none!important;padding:7px 5px!important;font-size:11px!important;text-align:center!important;overflow-wrap:anywhere!important;}
.report-capture-content-r91 .disp-report-split-table-r91 .disp-col-item,
.report-capture-content-r91 .disp-report-split-table-r91 .disp-report-item-cell{width:34%!important;text-align:left!important;}
.report-capture-content-r91 .disp-report-split-table-r91 .disp-col-total,
.report-capture-content-r91 .disp-report-split-table-r91 td:last-child{width:12%!important;}
.report-capture-restore-r91{display:none!important;position:fixed!important;top:4px!important;right:8px!important;z-index:7!important;min-height:28px!important;padding:0 8px!important;opacity:.22!important;font-size:9px!important;}
.report-capture-clean-r91 .report-capture-toolbar-r91{display:none!important;}
.report-capture-clean-r91 .report-capture-restore-r91{display:inline-flex!important;align-items:center!important;justify-content:center!important;}
.report-capture-clean-r91 .report-capture-stage-r91{padding-top:6px!important;}

@media(max-width:900px){
  #modalRoot .report-modal-header{grid-template-columns:1fr!important;gap:8px!important;}
  #modalRoot .report-header-tools{width:100%!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;}
  #modalRoot .report-header-meta{grid-column:1/-1!important;max-width:none!important;min-width:0!important;text-align:left!important;}
  #modalRoot .report-header-tools .btn,#modalRoot .report-header-tools .modal-close,#modalRoot .rel-origem-filter-wrap-r91{width:100%!important;min-width:0!important;height:42px!important;}
  .report-capture-toolbar-r91{position:relative!important;align-items:flex-start!important;flex-direction:column!important;}
  .report-capture-actions-r91{width:100%!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .report-capture-stage-r91{padding:8px!important;}
  .report-capture-content-r91{padding:10px!important;border-radius:12px!important;}
  .report-capture-content-r91.relatorio-alocacao-total-frente .rel-aloc-grid{grid-template-columns:1fr!important;}
}

@media(max-width:620px){
  #modalRoot .report-header-tools{grid-template-columns:1fr!important;}
  #modalRoot .report-header-meta{display:none!important;}
  .report-capture-toolbar-r91 strong{font-size:16px!important;}
  .report-capture-toolbar-r91 small{font-size:10px!important;}
  .report-capture-actions-r91{grid-template-columns:1fr 1fr!important;}
  .report-capture-actions-r91 button:first-child{grid-column:1/-1!important;}
  .report-capture-stage-r91{padding:5px!important;}
  .report-capture-content-r91{padding:8px!important;border-radius:9px!important;box-shadow:none!important;}
  .report-capture-content-r91 .report-legend-bar{gap:4px!important;padding:6px!important;}
  .report-capture-content-r91 .report-legend-item{font-size:9px!important;padding:3px 5px!important;}
  .report-capture-content-r91.relatorio-alocacao-total-frente .rel-aloc-type-row{grid-template-columns:1fr!important;}
  .report-capture-content-r91.relatorio-alocacao-total-frente .rel-aloc-type-name{justify-content:center!important;text-align:center!important;font-size:10px!important;}
  .report-capture-content-r91.relatorio-alocacao-total-frente .rel-aloc-fleet{min-width:49px!important;font-size:11px!important;}
  .report-capture-content-r91 .report-mobile-table-r91:not(.disp-report-split-table-r91),
  .report-capture-content-r91 .report-mobile-table-r91:not(.disp-report-split-table-r91) tbody,
  .report-capture-content-r91 .report-mobile-table-r91:not(.disp-report-split-table-r91) tr,
  .report-capture-content-r91 .report-mobile-table-r91:not(.disp-report-split-table-r91) td{display:block!important;width:100%!important;}
  .report-capture-content-r91 .report-mobile-table-r91:not(.disp-report-split-table-r91) thead{display:none!important;}
  .report-capture-content-r91 .report-mobile-table-r91:not(.disp-report-split-table-r91) tr{margin:0 0 8px!important;padding:7px!important;border:1px solid #dce6e1!important;border-radius:10px!important;background:#fff!important;}
  .report-capture-content-r91 .report-mobile-table-r91:not(.disp-report-split-table-r91) td{display:grid!important;grid-template-columns:39% minmax(0,1fr)!important;gap:7px!important;padding:5px 3px!important;border:0!important;border-bottom:1px solid #edf2ef!important;font-size:10px!important;overflow-wrap:anywhere!important;}
  .report-capture-content-r91 .report-mobile-table-r91:not(.disp-report-split-table-r91) td:last-child{border-bottom:0!important;}
  .report-capture-content-r91 .report-mobile-table-r91:not(.disp-report-split-table-r91) td::before{content:attr(data-report-label);color:#61736a;font-size:8px;font-weight:1000;text-transform:uppercase;}
  .report-capture-content-r91 .disp-report-split-table-r91 th,
  .report-capture-content-r91 .disp-report-split-table-r91 td{padding:6px 3px!important;font-size:9px!important;}
  .report-capture-content-r91 .disp-report-split-table-r91 .disp-col-item,
  .report-capture-content-r91 .disp-report-split-table-r91 .disp-report-item-cell{width:42%!important;}
  .report-capture-content-r91 .disp-report-split-table-r91 .disp-col-total,
  .report-capture-content-r91 .disp-report-split-table-r91 td:last-child{width:13%!important;}
}


/* ===== r91f-fluidez-global.css ===== */
/* R91F — ajustes conservadores de fluidez sem alterar regras operacionais. */
html,body,*{scroll-behavior:auto!important;}

body.pims-menu-switching #menuHost{
  pointer-events:none;
}

body.pims-menu-switching #menuHost *{
  animation-play-state:paused!important;
  transition-duration:0s!important;
}

#sidebarPrincipal .sidebar-user,
.ai-catalog-toolbar,
.status-modal-v166,
.det-tv-overlay{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

.menu-item,
.btn,
button,
input,
select,
textarea{
  -webkit-tap-highlight-color:transparent;
}

.menu-host,
.menu-fragment,
.report-view,
.report-modal,
.table-wrap,
.table-scroll,
.cards-grid{
  min-width:0;
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}


/* ===== r97-relatorio-implemento-integral.css ===== */
/* R97 — relatório de alocação: frota/implemento e descrições integrais. */
.report-view.relatorio-alocacao-total-frente .report-table-obs-apont{
  width:100%!important;
  table-layout:fixed!important;
}

.report-view.relatorio-alocacao-total-frente .report-table-obs-apont tbody tr{
  height:auto!important;
  break-inside:avoid-page!important;
  page-break-inside:avoid!important;
}

.report-view.relatorio-alocacao-total-frente .report-table-obs-apont td{
  height:auto!important;
  vertical-align:top!important;
}

.report-view.relatorio-alocacao-total-frente .report-table-obs-apont .report-text-clamp,
.report-view.relatorio-alocacao-total-frente .report-table-obs-apont .compact-obs{
  display:block!important;
  max-width:100%!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  hyphens:auto!important;
  line-height:1.22!important;
  -webkit-line-clamp:unset!important;
  -webkit-box-orient:initial!important;
}

.report-view.relatorio-alocacao-total-frente .report-table-obs-apont .linha-implemento-os-associada td{
  /* O status continua roxo no selo; a linha permanece branca como as demais. */
  background:#fff!important;
}

.report-view.relatorio-alocacao-total-frente .report-table-obs-apont .linha-implemento-os-associada .col-equip b,
.report-view.relatorio-alocacao-total-frente .report-table-obs-apont .linha-implemento-os-associada td:nth-child(2) b,
.report-view.relatorio-alocacao-total-frente .report-table-obs-apont .linha-implemento-os-associada td:nth-child(3) b{
  white-space:nowrap!important;
  color:#13251d!important;
}

@media print{
  .report-view.relatorio-alocacao-total-frente .report-table-obs-apont .report-text-clamp,
  .report-view.relatorio-alocacao-total-frente .report-table-obs-apont .compact-obs{
    overflow:visible!important;
    max-height:none!important;
  }
}


/* ===== r98-3-apontamentos-pendentes.css ===== */
/* R98.3 — opção Apontamentos Pendentes exclusiva do modal da Alocação. */
.det-modal-setorizado .det-modal-hub-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}

.det-modal-setorizado .det-apontamentos-panel{
  min-width:0!important;
  padding:16px!important;
  border:1px solid rgba(15,61,46,.14)!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 12px 28px rgba(15,61,46,.06)!important;
  overflow:hidden!important;
}
.det-modal-setorizado .det-apontamentos-host{
  min-width:0!important;
  margin-top:14px!important;
}
.det-modal-setorizado .det-apontamentos-summary{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  margin-bottom:12px!important;
}
.det-modal-setorizado .det-apontamentos-summary>div{
  min-width:0!important;
  padding:12px 14px!important;
  border:1px solid rgba(15,61,46,.12)!important;
  border-radius:14px!important;
  background:#eef7f2!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
}
.det-modal-setorizado .det-apontamentos-summary span{
  color:#62736c!important;
  font-size:10px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-modal-setorizado .det-apontamentos-summary strong{
  color:#0f3d2e!important;
  font-size:22px!important;
  font-weight:1000!important;
}
.det-modal-setorizado .det-apontamentos-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important;
  gap:12px!important;
  min-width:0!important;
}
.det-modal-setorizado .det-apontamentos-card{
  min-width:0!important;
  padding:14px!important;
  border:1px solid rgba(15,61,46,.16)!important;
  border-radius:17px!important;
  background:linear-gradient(180deg,#fff 0%,#f6faf8 100%)!important;
  box-shadow:0 10px 24px rgba(15,61,46,.06)!important;
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
}
.det-modal-setorizado .det-apontamentos-card>header{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
}
.det-modal-setorizado .det-apontamentos-card>header>div:first-child span,
.det-modal-setorizado .det-apontamentos-lista span{
  display:block!important;
  margin-bottom:4px!important;
  color:#687a72!important;
  font-size:9px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-modal-setorizado .det-apontamentos-card>header>div:first-child strong{
  color:#0f2f26!important;
  font-size:21px!important;
  font-weight:1000!important;
}
.det-modal-setorizado .det-apontamentos-count{
  min-width:72px!important;
  padding:8px 10px!important;
  border-radius:13px!important;
  background:#0f3d2e!important;
  color:#fff!important;
  display:flex!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:5px!important;
}
.det-modal-setorizado .det-apontamentos-count b{font-size:18px!important;font-weight:1000!important;}
.det-modal-setorizado .det-apontamentos-count small{font-size:9px!important;font-weight:900!important;color:#e2f2ea!important;}
.det-modal-setorizado .det-apontamentos-lista{
  min-width:0!important;
  padding:12px!important;
  border:1px solid #dce8e2!important;
  border-radius:13px!important;
  background:#fff!important;
}
.det-modal-setorizado .det-apontamentos-lista strong{
  display:block!important;
  color:#13251d!important;
  font-size:15px!important;
  font-weight:1000!important;
  line-height:1.45!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.det-modal-setorizado .det-apontamentos-copy{
  width:100%!important;
  min-height:40px!important;
  margin-top:auto!important;
}
.det-modal-setorizado .det-apontamentos-copy.is-copied{
  background:#0f3d2e!important;
  border-color:#0f3d2e!important;
  color:#fff!important;
}
.det-modal-setorizado .det-apontamentos-state{
  min-height:190px!important;
  padding:24px!important;
  border:1px dashed rgba(15,61,46,.24)!important;
  border-radius:17px!important;
  background:#f8fbf9!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  text-align:center!important;
}
.det-modal-setorizado .det-apontamentos-state-icon{
  width:46px!important;
  height:46px!important;
  border-radius:15px!important;
  background:#0f3d2e!important;
  color:#fff!important;
  display:grid!important;
  place-items:center!important;
  font-size:12px!important;
  font-weight:1000!important;
}
.det-modal-setorizado .det-apontamentos-state strong{
  color:#0f3d2e!important;
  font-size:16px!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
.det-modal-setorizado .det-apontamentos-state p{
  max-width:620px!important;
  margin:0!important;
  color:#62736c!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.45!important;
}
.det-modal-setorizado .det-apontamentos-state.is-error .det-apontamentos-state-icon{background:#a62d2d!important;}
.det-modal-setorizado .det-apontamentos-spinner{
  width:42px!important;
  height:42px!important;
  border:4px solid #d8e8e0!important;
  border-top-color:#0f3d2e!important;
  border-radius:50%!important;
  animation:detApontamentosSpinR983 .75s linear infinite!important;
}
@keyframes detApontamentosSpinR983{to{transform:rotate(360deg)}}

@media(max-width:1050px){
  .det-modal-setorizado .det-modal-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:620px){
  .det-modal-setorizado .det-modal-hub-grid,
  .det-modal-setorizado .det-apontamentos-summary,
  .det-modal-setorizado .det-apontamentos-grid{grid-template-columns:1fr!important;}
  .det-modal-setorizado .det-apontamentos-panel{padding:12px!important;}
  .det-modal-setorizado .det-apontamentos-summary>div{align-items:flex-start!important;flex-direction:column!important;}
}

@media(prefers-reduced-motion:reduce){
  .det-modal-setorizado .det-apontamentos-spinner{animation-duration:1.6s!important;}
}


/* ===== r98-4-tooltip-preventiva.css ===== */
/* R98.5 — padrão visual único dos tooltips dos cards da Alocação.
   O conteúdo estendido continua exclusivo de Preventiva + Com O.S./Prod. */
.det-preventiva-prod-tooltip-r984{
  position:fixed!important;
  z-index:99999!important;
  display:grid!important;
  gap:4px!important;
  width:max-content!important;
  min-width:0!important;
  max-width:min(390px,calc(100vw - 20px))!important;
  padding:8px 10px!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:5px!important;
  background:#171a1f!important;
  color:#fff!important;
  box-shadow:0 9px 24px rgba(0,0,0,.3)!important;
  pointer-events:none!important;
  font-size:12px!important;
  line-height:1.3!important;
  text-align:left!important;
  white-space:normal!important;
}

.det-preventiva-prod-tooltip-r984[hidden]{
  display:none!important;
}

.det-preventiva-prod-tooltip-r984 strong{
  display:block!important;
  color:#fff!important;
  font-size:12px!important;
  font-weight:900!important;
}

.det-preventiva-prod-tooltip-r984 span{
  display:block!important;
  color:#f5d28a!important;
  font-size:11px!important;
  font-weight:850!important;
}

.det-preventiva-prod-tooltip-r984 b{
  display:block!important;
  overflow-wrap:anywhere!important;
  color:#fff!important;
  font-size:13px!important;
  font-weight:1000!important;
}


/* ===== r98-6-5-p1-engrenagem-modal-definitivo.css ===== */
/*
 * R98.6.5-P1 — correção visual definitiva da engrenagem de ordem dos tipos.
 *
 * Este arquivo é carregado globalmente porque o menu de Alocação preserva o
 * CSS visual V164 e, por projeto, não injeta determinar.css. Todos os seletores
 * ficam restritos ao botão de ordenação e ao modal correspondente para não
 * alterar o restante do painel.
 */

#allocationGrid .process-head .det-process-head-actions,
.det-page .process-head .det-process-head-actions {
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 7px !important;
  min-width: 0 !important;
  flex: 0 0 auto !important;
}

#allocationGrid .process-head .det-process-order-button,
.det-page .process-head .det-process-order-button,
#allocationGrid [data-det-order-process] {
  box-sizing: border-box !important;
  width: 28px !important;
  min-width: 28px !important;
  max-width: 28px !important;
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  display: inline-grid !important;
  place-items: center !important;
  flex: 0 0 28px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #b9cec4 !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #164a38 !important;
  box-shadow: 0 2px 6px rgba(15, 61, 46, .10) !important;
  overflow: hidden !important;
  line-height: 1 !important;
  font-size: 0 !important;
  cursor: pointer !important;
  transform: none !important;
  appearance: none !important;
}

#allocationGrid .process-head .det-process-order-button:hover,
.det-page .process-head .det-process-order-button:hover,
#allocationGrid [data-det-order-process]:hover {
  background: #edf7f2 !important;
  border-color: #3e8769 !important;
  color: #0f3d2e !important;
  box-shadow: 0 3px 8px rgba(15, 61, 46, .16) !important;
  transform: none !important;
}

#allocationGrid [data-det-order-process]:focus-visible {
  outline: 3px solid rgba(45, 138, 96, .23) !important;
  outline-offset: 2px !important;
}

#allocationGrid [data-det-order-process] > svg.det-process-order-svg {
  box-sizing: border-box !important;
  display: block !important;
  width: 14px !important;
  min-width: 14px !important;
  max-width: 14px !important;
  height: 14px !important;
  min-height: 14px !important;
  max-height: 14px !important;
  flex: 0 0 14px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  pointer-events: none !important;
  transition: transform .22s ease !important;
}

#allocationGrid [data-det-order-process]:hover > svg.det-process-order-svg {
  transform: rotate(24deg) !important;
}

#allocationGrid [data-det-order-process] .det-process-order-label {
  display: none !important;
}

body #modalRoot.modal-root .modal.det-order-types-dialog-r9865 {
  box-sizing: border-box !important;
  width: min(720px, calc(100vw - 28px)) !important;
  min-width: 0 !important;
  max-width: 720px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: min(84dvh, 720px) !important;
  margin: auto !important;
  border: 1px solid #c9dbd3 !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 24px 70px rgba(4, 30, 21, .30) !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

body #modalRoot .det-order-types-dialog-r9865 > .modal-header {
  position: relative !important;
  inset: auto !important;
  flex: 0 0 auto !important;
  min-height: 64px !important;
  padding: 13px 16px !important;
  border-radius: 0 !important;
  background: linear-gradient(135deg, #103e30, #165a43) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
}

body #modalRoot .det-order-types-dialog-r9865 > .modal-header > div {
  min-width: 0 !important;
}

body #modalRoot .det-order-types-dialog-r9865 > .modal-header h3 {
  margin: 0 !important;
  color: #fff !important;
  font-size: 17px !important;
  line-height: 1.2 !important;
  overflow-wrap: anywhere !important;
}

body #modalRoot .det-order-types-dialog-r9865 > .modal-header p {
  max-width: 560px !important;
  margin: 3px 0 0 !important;
  color: #d8eee5 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
}

body #modalRoot .det-order-types-dialog-r9865 > .modal-header .modal-close {
  flex: 0 0 auto !important;
  min-height: 34px !important;
  margin: 0 !important;
  padding: 7px 11px !important;
  border: 1px solid rgba(255, 255, 255, .45) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #0f3d2e !important;
  font-size: 11px !important;
  font-weight: 950 !important;
  cursor: pointer !important;
}

body #modalRoot .det-order-types-dialog-r9865 > .modal-body {
  box-sizing: border-box !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 12px 14px !important;
  overflow: hidden !important;
  background: #f8fbf9 !important;
}

body #modalRoot .det-order-types-dialog-r9865 > .modal-actions {
  position: relative !important;
  inset: auto !important;
  flex: 0 0 auto !important;
  min-height: 56px !important;
  margin: 0 !important;
  padding: 10px 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 7px !important;
  border-top: 1px solid #dbe7e2 !important;
  background: #fff !important;
}

body #modalRoot .det-order-types-dialog-r9865 > .modal-actions .btn {
  width: auto !important;
  min-width: 0 !important;
  min-height: 34px !important;
  margin: 0 !important;
  padding: 7px 12px !important;
  border-radius: 9px !important;
  font-size: 11px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-modal {
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-intro {
  box-sizing: border-box !important;
  min-height: 58px !important;
  padding: 9px 11px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  border: 1px solid #d4e2dc !important;
  border-radius: 12px !important;
  background: #eef7f3 !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-intro > div {
  min-width: 0 !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-intro strong {
  display: block !important;
  margin: 0 !important;
  color: #123e30 !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-intro p {
  margin: 3px 0 0 !important;
  color: #60766c !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  line-height: 1.3 !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-gear {
  box-sizing: border-box !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  display: grid !important;
  place-items: center !important;
  flex: 0 0 34px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 10px !important;
  background: #0f3d2e !important;
  color: #fff !important;
  box-shadow: 0 5px 12px rgba(15, 61, 46, .15) !important;
  overflow: hidden !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-gear > svg.det-process-order-svg {
  box-sizing: border-box !important;
  display: block !important;
  width: 17px !important;
  min-width: 17px !important;
  max-width: 17px !important;
  height: 17px !important;
  min-height: 17px !important;
  max-height: 17px !important;
  flex: 0 0 17px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-list {
  box-sizing: border-box !important;
  display: grid !important;
  grid-auto-rows: min-content !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: min(48dvh, 410px) !important;
  margin: 0 !important;
  padding: 1px 4px 1px 1px !important;
  gap: 6px !important;
  list-style: none !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-item {
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: 18px 28px minmax(0, 1fr) auto 68px !important;
  align-items: center !important;
  gap: 8px !important;
  min-width: 0 !important;
  min-height: 46px !important;
  margin: 0 !important;
  padding: 6px 8px !important;
  border: 1px solid #d4e1dc !important;
  border-radius: 11px !important;
  background: #fff !important;
  box-shadow: 0 2px 7px rgba(15, 61, 46, .05) !important;
  cursor: grab !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-item:hover {
  border-color: #86b39f !important;
  box-shadow: 0 5px 14px rgba(15, 61, 46, .09) !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-item.is-dragging {
  opacity: .48 !important;
  border-style: dashed !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-handle {
  color: #789187 !important;
  font-size: 17px !important;
  font-weight: 1000 !important;
  letter-spacing: -4px !important;
  line-height: 1 !important;
  user-select: none !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-position {
  box-sizing: border-box !important;
  width: 26px !important;
  min-width: 26px !important;
  height: 26px !important;
  min-height: 26px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 8px !important;
  background: #eaf4ef !important;
  color: #0f3d2e !important;
  font-size: 11px !important;
  font-weight: 1000 !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-name {
  min-width: 0 !important;
  color: #183c30 !important;
  font-size: 12px !important;
  font-weight: 1000 !important;
  line-height: 1.25 !important;
  overflow-wrap: anywhere !important;
  text-transform: uppercase !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-count {
  padding: 4px 7px !important;
  border-radius: 999px !important;
  background: #f1f5f3 !important;
  color: #5a7167 !important;
  font-size: 9px !important;
  font-weight: 950 !important;
  white-space: nowrap !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 4px !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-actions button {
  box-sizing: border-box !important;
  width: 30px !important;
  min-width: 30px !important;
  max-width: 30px !important;
  height: 30px !important;
  min-height: 30px !important;
  max-height: 30px !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #cbdad4 !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #0f3d2e !important;
  font-size: 15px !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
  cursor: pointer !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-actions button:hover:not(:disabled) {
  background: #0f3d2e !important;
  color: #fff !important;
  border-color: #0f3d2e !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-actions button:disabled {
  opacity: .28 !important;
  cursor: not-allowed !important;
}

body #modalRoot .det-order-types-dialog-r9865 .det-order-types-status {
  min-height: 16px !important;
  margin: 0 !important;
  color: #41695a !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  line-height: 1.3 !important;
}

@media (max-width: 640px) {
  body #modalRoot.modal-root {
    padding: 8px !important;
    align-items: center !important;
  }

  body #modalRoot.modal-root .modal.det-order-types-dialog-r9865 {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
    border-radius: 15px !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 > .modal-header {
    min-height: 54px !important;
    padding: 10px 11px !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 > .modal-header h3 {
    font-size: 14px !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 > .modal-header p {
    display: none !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 > .modal-header .modal-close {
    min-height: 31px !important;
    padding: 6px 9px !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 > .modal-body {
    padding: 9px !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 > .modal-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    padding: 8px 9px !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 > .modal-actions [data-det-order-reset] {
    grid-column: 1 / -1 !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 > .modal-actions .btn {
    width: 100% !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 .det-order-types-intro {
    min-height: 50px !important;
    padding: 7px 8px !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 .det-order-types-gear {
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    flex-basis: 30px !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 .det-order-types-list {
    max-height: 46dvh !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 .det-order-types-item {
    grid-template-columns: 16px 26px minmax(0, 1fr) 66px !important;
    gap: 6px !important;
    padding: 6px !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 .det-order-types-count {
    grid-column: 3 !important;
    grid-row: 2 !important;
    justify-self: start !important;
  }

  body #modalRoot .det-order-types-dialog-r9865 .det-order-types-actions {
    grid-column: 4 !important;
    grid-row: 1 / span 2 !important;
  }
}


/* ===== r98-6-5-p4-carregando-menu.css ===== */
/* R98.6.5-P4 — feedback visual seguro durante trocas de menu demoradas. */
#menuLoadingOverlay[hidden] {
  display: none !important;
}

#menuLoadingOverlay {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(7, 30, 23, .20);
  -webkit-backdrop-filter: blur(8px) saturate(.88);
  backdrop-filter: blur(8px) saturate(.88);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .16s ease, visibility .16s ease;
}

#menuLoadingOverlay.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.menu-loading-dialog-r9865-p4 {
  display: flex;
  align-items: center;
  gap: 14px;
  width: min(360px, calc(100vw - 32px));
  min-height: 78px;
  padding: 18px 22px;
  border: 1px solid rgba(22, 83, 62, .18);
  border-radius: 18px;
  background: rgba(255, 255, 255, .97);
  color: #123d30;
  box-shadow: 0 24px 70px rgba(3, 26, 19, .28);
}

.menu-loading-spinner-r9865-p4 {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border: 3px solid rgba(18, 79, 59, .18);
  border-top-color: #176747;
  border-right-color: #2d9169;
  border-radius: 50%;
  animation: menu-loading-spin-r9865-p4 .72s linear infinite;
}

.menu-loading-copy-r9865-p4 {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.menu-loading-copy-r9865-p4 strong {
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: .01em;
}

.menu-loading-copy-r9865-p4 small {
  overflow: hidden;
  color: #5d746b;
  font-size: 12px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.pims-menu-loading-r9865-p4 {
  overflow: hidden;
}

@keyframes menu-loading-spin-r9865-p4 {
  to { transform: rotate(360deg); }
}

@media (max-width: 480px) {
  .menu-loading-dialog-r9865-p4 {
    width: min(320px, calc(100vw - 24px));
    min-height: 72px;
    padding: 16px 18px;
    border-radius: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #menuLoadingOverlay { transition-duration: .01ms; }
  .menu-loading-spinner-r9865-p4 { animation-duration: 1.35s; }
}


/* ===== r98-6-5-p6-icones-tipos-alocacao.css ===== */
/*
 * R98.6.5-P6 — ícones minimalistas dos tipos na Alocação.
 * Escopo estrito: somente o título do tipo dentro de #allocationGrid.
 */

#allocationGrid .det-type-title-with-icon-r9865-p6 {
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 6px !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

#allocationGrid .det-type-equipment-icon-r9865-p6 {
  box-sizing: border-box !important;
  display: block !important;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;
  flex: 0 0 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  color: #164a38 !important;
  pointer-events: none !important;
}

#allocationGrid .det-type-title-with-icon-r9865-p6 .det-type-title-name {
  display: block !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  line-height: 1.2 !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

@media (max-width: 620px) {
  #allocationGrid .det-type-title-with-icon-r9865-p6 {
    align-items: flex-start !important;
    gap: 5px !important;
  }

  #allocationGrid .det-type-title-with-icon-r9865-p6 .det-type-title-name {
    flex: 1 1 auto !important;
  }
}

@media print {
  #allocationGrid .det-type-equipment-icon-r9865-p6 {
    color: #111 !important;
  }
}


/* ===== r98-6-5-p7-4-botoes-relatorio.css ===== */
/* R98.6.5 MASTER — controles do relatório sem quebrar o botão Fechar. */
#modalRoot .rel-tools-hidden .report-header-tools {
  display:flex !important;
}
#modalRoot .rel-tools-hidden .report-header-tools .report-print-btn,
#modalRoot .rel-tools-hidden .report-header-tools .report-copy-btn,
#modalRoot .rel-tools-hidden .report-header-tools [data-rel-origem-filter] {
  display:none !important;
}
#modalRoot .rel-tools-hidden .report-header-tools .modal-close {
  display:inline-flex !important;
}


/* ===== r98-6-5-master-p19-status-moagem.css ===== */
/* ============================================================
   MASTER P19 — STATUS PIMS + ROTAÇÃO DA MOAGEM
   Layout aprovado, compacto e integrado diretamente ao sistema.
============================================================ */

/* O único indicador de carregamento permitido é o modal central. */
#loadingBar,
.status-card.loading{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

#sidebarPrincipal .pims-status-moagem-p19{
  flex:0 0 152px!important;
  height:152px!important;
  min-height:152px!important;
  max-height:152px!important;
  padding:8px!important;
  gap:4px!important;
  overflow:hidden!important;
  border:1px solid rgba(200,255,227,.22)!important;
  border-radius:15px!important;
  background:
    radial-gradient(circle at 100% 0,rgba(77,218,117,.10),transparent 40%),
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;
}

#sidebarPrincipal .pims-status-moagem-p19 .status-head{
  flex:0 0 18px!important;
  height:18px!important;
  min-height:18px!important;
  max-height:18px!important;
  margin:0!important;
}

#sidebarPrincipal .pims-status-moagem-p19 .status-head small{
  color:#eafff2!important;
  font-size:8px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.03em!important;
  text-transform:uppercase!important;
}

#sidebarPrincipal .pims-status-moagem-p19 .status-pill{
  height:17px!important;
  min-height:17px!important;
  padding:2px 7px!important;
  font-size:7.5px!important;
  line-height:1!important;
  border-radius:999px!important;
}

#sidebarPrincipal .status-lines-p19{
  flex:0 0 14px!important;
  height:14px!important;
  min-height:14px!important;
  max-height:14px!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:6px!important;
}

#sidebarPrincipal .status-lines-p19 > *{
  margin:0!important;
  color:#d8f6e6!important;
  font-size:8px!important;
  line-height:1!important;
  font-weight:850!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

#sidebarPrincipal .status-lines-p19 #sessionInstancia{
  color:#fff!important;
  font-weight:950!important;
}

#sidebarPrincipal .status-lines-p19 #statusPimsAtualizado{
  grid-column:auto!important;
  text-align:right!important;
}

#sidebarPrincipal .status-moagem-card-p19{
  flex:1 1 auto!important;
  min-height:0!important;
  width:100%!important;
  margin:0!important;
  padding:6px!important;
  display:grid!important;
  grid-template-columns:22px minmax(58px,.78fr) minmax(0,1.22fr)!important;
  align-items:center!important;
  gap:6px!important;
  overflow:hidden!important;
  border:1px solid rgba(89,236,108,.62)!important;
  border-radius:11px!important;
  background:linear-gradient(135deg,rgba(18,105,55,.32),rgba(3,48,34,.38))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 0 12px rgba(73,230,98,.05)!important;
}

#sidebarPrincipal .status-moagem-card-p19.is-stale{
  border-color:rgba(246,190,76,.70)!important;
}

#sidebarPrincipal .status-moagem-card-p19.is-error{
  border-color:rgba(255,119,119,.58)!important;
}

#sidebarPrincipal .status-moagem-card-p19.is-loading{
  opacity:.72!important;
}

#sidebarPrincipal .status-moagem-icon-p19{
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:7px!important;
  color:#8df49c!important;
  border:1px solid rgba(110,242,131,.24)!important;
  background:rgba(9,76,45,.68)!important;
}

#sidebarPrincipal .status-moagem-icon-p19 svg{
  width:15px!important;
  height:15px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

#sidebarPrincipal .status-moagem-kpi-p19{
  min-width:0!important;
  overflow:hidden!important;
}

#sidebarPrincipal .status-moagem-kpi-p19 small{
  display:block!important;
  margin:0 0 2px!important;
  color:#9cf0aa!important;
  font-size:6.3px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.015em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

#sidebarPrincipal .status-moagem-kpi-p19 strong{
  display:flex!important;
  align-items:baseline!important;
  gap:2px!important;
  margin:0!important;
  color:#8cf29a!important;
  font-size:25px!important;
  line-height:.92!important;
  font-weight:1000!important;
  letter-spacing:-.055em!important;
  white-space:nowrap!important;
}

#sidebarPrincipal .status-moagem-kpi-p19 strong em{
  color:#8cf29a!important;
  font-size:9px!important;
  line-height:1!important;
  font-weight:950!important;
  font-style:normal!important;
  letter-spacing:0!important;
}

#sidebarPrincipal .status-moagem-info-p19{
  min-width:0!important;
  height:100%!important;
  padding-left:6px!important;
  display:grid!important;
  grid-template-rows:repeat(4,minmax(0,1fr))!important;
  align-content:center!important;
  gap:1px!important;
  overflow:hidden!important;
  border-left:1px solid rgba(179,245,193,.17)!important;
}

#sidebarPrincipal .status-moagem-info-p19 small{
  min-width:0!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:37px minmax(0,1fr)!important;
  align-items:center!important;
  gap:3px!important;
  color:#eaf9ef!important;
  font-size:6.4px!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}

#sidebarPrincipal .status-moagem-info-p19 small i{
  color:rgba(231,249,236,.58)!important;
  font-size:5.8px!important;
  font-weight:900!important;
  font-style:normal!important;
  letter-spacing:.01em!important;
  text-transform:uppercase!important;
}

#sidebarPrincipal .status-moagem-info-p19 small span,
#sidebarPrincipal .status-moagem-info-p19 small b{
  min-width:0!important;
  margin:0!important;
  color:#fff!important;
  font-size:6.5px!important;
  line-height:1.05!important;
  font-weight:850!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

#sidebarPrincipal .status-moagem-info-p19 .status-moagem-status-line-p19 b{
  color:#79ed8a!important;
  font-size:7.2px!important;
  font-weight:1000!important;
}

#sidebarPrincipal .status-moagem-info-p19 .status-moagem-meta-p19{
  display:flex!important;
  align-items:center!important;
  gap:3px!important;
  color:rgba(227,248,235,.70)!important;
}

#sidebarPrincipal .status-moagem-info-p19 .status-moagem-meta-p19 span{
  flex:0 0 auto!important;
  color:inherit!important;
  font-size:5.8px!important;
  font-weight:800!important;
  overflow:visible!important;
}

#sidebarPrincipal .pims-status-moagem-p19 .sidebar-refresh-btn{
  flex:0 0 24px!important;
  height:24px!important;
  min-height:24px!important;
  max-height:24px!important;
  margin:0!important;
  border-radius:9px!important;
  font-size:9px!important;
  line-height:1!important;
}

/* Entrada e previsão permanecem na mesma linha em tela, impressão e PDF. */
.report-entry-prev-p19,
.cell-entry-prev-p19{
  min-width:190px!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
}

@media print{
  .report-entry-prev-p19,
  .cell-entry-prev-p19{
    min-width:178px!important;
    white-space:nowrap!important;
    font-size:7px!important;
  }
}

/* Notebook com altura reduzida: mantém todas as informações sem rolagem. */
@media (min-width:901px) and (max-height:820px){
  #sidebarPrincipal .pims-status-moagem-p19{
    flex-basis:132px!important;
    height:132px!important;
    min-height:132px!important;
    max-height:132px!important;
    padding:6px!important;
    gap:3px!important;
  }
  #sidebarPrincipal .pims-status-moagem-p19 .status-head{height:16px!important;min-height:16px!important;max-height:16px!important;}
  #sidebarPrincipal .status-lines-p19{height:12px!important;min-height:12px!important;max-height:12px!important;}
  #sidebarPrincipal .status-moagem-card-p19{padding:4px!important;gap:4px!important;grid-template-columns:19px minmax(52px,.72fr) minmax(0,1.28fr)!important;}
  #sidebarPrincipal .status-moagem-icon-p19{width:19px!important;height:19px!important;min-width:19px!important;}
  #sidebarPrincipal .status-moagem-icon-p19 svg{width:13px!important;height:13px!important;}
  #sidebarPrincipal .status-moagem-kpi-p19 strong{font-size:21px!important;}
  #sidebarPrincipal .status-moagem-kpi-p19 small{font-size:5.6px!important;}
  #sidebarPrincipal .status-moagem-info-p19{padding-left:4px!important;}
  #sidebarPrincipal .status-moagem-info-p19 small{grid-template-columns:31px minmax(0,1fr)!important;font-size:5.6px!important;}
  #sidebarPrincipal .status-moagem-info-p19 small i{font-size:5.1px!important;}
  #sidebarPrincipal .status-moagem-info-p19 small span,
  #sidebarPrincipal .status-moagem-info-p19 small b{font-size:5.8px!important;}
  #sidebarPrincipal .pims-status-moagem-p19 .sidebar-refresh-btn{height:21px!important;min-height:21px!important;max-height:21px!important;font-size:8px!important;}
}

@media (min-width:901px) and (max-height:680px){
  #sidebarPrincipal .pims-status-moagem-p19{
    flex-basis:112px!important;
    height:112px!important;
    min-height:112px!important;
    max-height:112px!important;
    padding:5px!important;
    gap:2px!important;
  }
  #sidebarPrincipal .pims-status-moagem-p19 .status-head{height:14px!important;min-height:14px!important;max-height:14px!important;}
  #sidebarPrincipal .status-lines-p19{height:10px!important;min-height:10px!important;max-height:10px!important;}
  #sidebarPrincipal .status-lines-p19>*{font-size:6.6px!important;}
  #sidebarPrincipal .status-moagem-card-p19{padding:3px!important;gap:3px!important;grid-template-columns:17px minmax(45px,.66fr) minmax(0,1.34fr)!important;}
  #sidebarPrincipal .status-moagem-icon-p19{width:17px!important;height:17px!important;min-width:17px!important;}
  #sidebarPrincipal .status-moagem-icon-p19 svg{width:11px!important;height:11px!important;}
  #sidebarPrincipal .status-moagem-kpi-p19 strong{font-size:18px!important;}
  #sidebarPrincipal .status-moagem-kpi-p19 strong em{font-size:7px!important;}
  #sidebarPrincipal .status-moagem-kpi-p19 small{font-size:5px!important;}
  #sidebarPrincipal .status-moagem-info-p19{padding-left:3px!important;gap:0!important;}
  #sidebarPrincipal .status-moagem-info-p19 small{grid-template-columns:28px minmax(0,1fr)!important;}
  #sidebarPrincipal .status-moagem-info-p19 small i{font-size:4.5px!important;}
  #sidebarPrincipal .status-moagem-info-p19 small span,
  #sidebarPrincipal .status-moagem-info-p19 small b{font-size:5px!important;}
  #sidebarPrincipal .status-moagem-info-p19 .status-moagem-meta-p19 span{font-size:4.8px!important;}
  #sidebarPrincipal .pims-status-moagem-p19 .sidebar-refresh-btn{height:18px!important;min-height:18px!important;max-height:18px!important;font-size:7px!important;}
}

/* Em dispositivos muito estreitos, a tabela pode quebrar sem sobreposição. */
@media(max-width:520px){
  .report-entry-prev-p19,
  .cell-entry-prev-p19{
    min-width:150px!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}


/* ===== r98-6-5-master-p20-menu-reimaginado.css ===== */
/* ============================================================
   MASTER P20 — MENU LATERAL REIMAGINADO + MODO RECOLHIDO
   Modelo aprovado em 22/07/2026.
   Mantém o tema institucional, melhora hierarquia, leitura e uso compacto.
============================================================ */

:root{
  --p20-sidebar-open:334px;
  --p20-sidebar-closed:82px;
  --p20-green-1:#75ee8a;
  --p20-green-2:#37cf70;
  --p20-green-3:#16824f;
  --p20-panel:rgba(255,255,255,.055);
  --p20-line:rgba(180,248,211,.21);
}

@media (min-width:901px){
  :root{--sidebar-width:var(--p20-sidebar-open)!important;}

  body:not(.sidebar-collapsed) #sidebarPrincipal{
    width:var(--p20-sidebar-open)!important;
    min-width:var(--p20-sidebar-open)!important;
    max-width:var(--p20-sidebar-open)!important;
  }

  body:not(.sidebar-collapsed) .app,
  body:not(.sidebar-collapsed) .main{
    margin-left:var(--p20-sidebar-open)!important;
  }

  body.sidebar-collapsed #sidebarPrincipal{
    width:var(--p20-sidebar-closed)!important;
    min-width:var(--p20-sidebar-closed)!important;
    max-width:var(--p20-sidebar-closed)!important;
    transform:none!important;
    pointer-events:auto!important;
  }

  body.sidebar-collapsed .app,
  body.sidebar-collapsed .main{
    margin-left:var(--p20-sidebar-closed)!important;
  }
}

#sidebarPrincipal{
  position:fixed!important;
  inset:0 auto 0 0!important;
  height:100dvh!important;
  padding:14px 15px!important;
  gap:9px!important;
  overflow:hidden!important;
  border-right:1px solid rgba(165,239,199,.18)!important;
  background:
    radial-gradient(circle at 10% 0,rgba(53,218,120,.10),transparent 29%),
    radial-gradient(circle at 100% 62%,rgba(23,133,82,.10),transparent 38%),
    linear-gradient(180deg,#021f19 0%,#063426 52%,#05291f 100%)!important;
  box-shadow:18px 0 50px rgba(0,31,23,.18)!important;
}

#sidebarPrincipal::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,.018),transparent 32%,rgba(0,0,0,.035));
}

#sidebarPrincipal .sidebar-toggle{
  top:17px!important;
  right:15px!important;
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  border:1px solid rgba(141,238,181,.34)!important;
  border-radius:15px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035))!important;
  color:#f3fff8!important;
  font-size:22px!important;
  line-height:1!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 10px 24px rgba(0,0,0,.12)!important;
}

#sidebarPrincipal .sidebar-toggle:hover{
  border-color:rgba(101,235,157,.72)!important;
  background:rgba(35,139,89,.30)!important;
}

#sidebarPrincipal .brand{
  flex:0 0 64px!important;
  min-height:64px!important;
  width:100%!important;
  margin:0!important;
  padding:2px 54px 2px 0!important;
  gap:11px!important;
  align-items:center!important;
}

#sidebarPrincipal .brand-logo{
  width:54px!important;
  height:54px!important;
  min-width:54px!important;
  flex:0 0 54px!important;
  border-radius:17px!important;
  background:#f7fbf8!important;
  box-shadow:0 10px 26px rgba(0,0,0,.16),inset 0 0 0 1px rgba(13,70,49,.08)!important;
}

#sidebarPrincipal .brand-logo img{
  width:43px!important;
  max-width:43px!important;
  max-height:43px!important;
}

#sidebarPrincipal .brand strong{
  display:block!important;
  color:#fff!important;
  font-size:18px!important;
  line-height:1.05!important;
  font-weight:950!important;
  letter-spacing:-.025em!important;
  white-space:nowrap!important;
}

#sidebarPrincipal .brand span{
  display:block!important;
  margin-top:3px!important;
  color:#6ee98c!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:850!important;
  white-space:nowrap!important;
}

#sidebarPrincipal .side-menu{
  flex:0 0 auto!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:3px!important;
  overflow:visible!important;
}

#sidebarPrincipal .side-menu .menu-item{
  position:relative!important;
  width:100%!important;
  min-height:40px!important;
  height:40px!important;
  margin:0!important;
  padding:0 35px 0 11px!important;
  display:grid!important;
  grid-template-columns:30px minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
  overflow:hidden!important;
  border:1px solid transparent!important;
  border-radius:13px!important;
  background:transparent!important;
  color:#f1fff7!important;
  text-align:left!important;
  font-size:12px!important;
  font-weight:750!important;
  box-shadow:none!important;
  transition:background .15s ease,border-color .15s ease,transform .15s ease!important;
}

#sidebarPrincipal .side-menu .menu-item::after{
  content:"›";
  position:absolute;
  right:13px;
  top:50%;
  transform:translateY(-52%);
  color:rgba(226,250,237,.75);
  font-size:24px;
  line-height:1;
  font-weight:400;
}

#sidebarPrincipal .side-menu .menu-item:hover{
  transform:translateX(1px)!important;
  border-color:rgba(118,233,166,.20)!important;
  background:rgba(255,255,255,.055)!important;
}

#sidebarPrincipal .side-menu .menu-item.active{
  border-color:rgba(83,224,139,.36)!important;
  background:linear-gradient(90deg,rgba(28,136,82,.58),rgba(24,111,73,.38))!important;
  color:#fff!important;
  box-shadow:inset 4px 0 0 #58e58b,0 8px 22px rgba(0,55,35,.15)!important;
}

#sidebarPrincipal .side-menu .menu-item.active::after{
  color:#8bf3aa!important;
}

#sidebarPrincipal .side-menu .menu-icon{
  width:30px!important;
  height:30px!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:9px!important;
  color:#eafff2!important;
  background:transparent!important;
}

#sidebarPrincipal .side-menu .menu-item.active .menu-icon{
  color:#8df3ad!important;
  background:rgba(20,111,67,.36)!important;
  box-shadow:inset 0 0 0 1px rgba(128,245,174,.12)!important;
}

#sidebarPrincipal .side-menu .menu-icon svg{
  width:19px!important;
  height:19px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.75!important;
}

#sidebarPrincipal .side-menu .menu-label{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* STATUS PIMS — mantém os dados reais e segue o layout aprovado. */
#sidebarPrincipal .pims-status-moagem-p19{
  flex:0 0 164px!important;
  height:164px!important;
  min-height:164px!important;
  max-height:164px!important;
  padding:10px!important;
  gap:5px!important;
  border:1px solid var(--p20-line)!important;
  border-radius:15px!important;
  background:
    radial-gradient(circle at 100% 0,rgba(86,229,133,.10),transparent 40%),
    linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.026))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 24px rgba(0,0,0,.08)!important;
}

#sidebarPrincipal .pims-status-moagem-p19 .status-head small{
  color:#78ea97!important;
  font-size:9px!important;
  font-weight:950!important;
}

#sidebarPrincipal .pims-status-moagem-p19 .status-pill{
  height:19px!important;
  min-height:19px!important;
  padding:3px 8px!important;
  border:1px solid rgba(88,225,139,.34)!important;
  color:#178148!important;
  background:#d9ffe3!important;
  font-size:8px!important;
  box-shadow:0 0 13px rgba(88,228,133,.10)!important;
}

#sidebarPrincipal .status-lines-p19{
  height:18px!important;
  min-height:18px!important;
  max-height:18px!important;
}

#sidebarPrincipal .status-lines-p19 > *{
  font-size:8.5px!important;
}

#sidebarPrincipal .status-moagem-card-p19{
  padding:7px!important;
  grid-template-columns:34px minmax(74px,.82fr) minmax(0,1.18fr)!important;
  gap:7px!important;
  border-color:rgba(89,236,108,.62)!important;
  border-radius:11px!important;
  background:linear-gradient(135deg,rgba(25,112,62,.28),rgba(3,50,35,.42))!important;
}

#sidebarPrincipal .status-moagem-icon-p19{
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  border-radius:10px!important;
}

#sidebarPrincipal .status-moagem-icon-p19 svg{
  width:20px!important;
  height:20px!important;
}

#sidebarPrincipal .status-moagem-kpi-p19 small{
  color:#93eda5!important;
  font-size:6.4px!important;
}

#sidebarPrincipal .status-moagem-kpi-p19 strong{
  color:#86ef98!important;
  font-size:25px!important;
}

#sidebarPrincipal .status-moagem-info-p19 small{
  grid-template-columns:42px minmax(0,1fr)!important;
  font-size:6.5px!important;
}

#sidebarPrincipal .status-moagem-info-p19 small i{
  font-size:5.8px!important;
}

#sidebarPrincipal .status-moagem-info-p19 small span,
#sidebarPrincipal .status-moagem-info-p19 small b{
  font-size:6.7px!important;
}

#sidebarPrincipal .pims-status-moagem-p19 .sidebar-refresh-btn{
  height:28px!important;
  min-height:28px!important;
  max-height:28px!important;
  border:0!important;
  border-radius:10px!important;
  color:#0b492f!important;
  background:#f4faf6!important;
  font-size:9.5px!important;
  font-weight:950!important;
  box-shadow:0 4px 13px rgba(0,0,0,.10)!important;
}

#sidebarPrincipal .pims-status-moagem-p19 .sidebar-refresh-btn::before{
  content:"↻";
  margin-right:7px;
  color:#16854d;
  font-size:16px;
  vertical-align:-1px;
}

/* Semáforo com linhas limpas e leitura executiva. */
#sidebarPrincipal #sidebarSemaforo{
  flex:1 1 auto!important;
  min-height:246px!important;
  max-height:none!important;
  margin:0!important;
  padding:10px!important;
  gap:7px!important;
  overflow:hidden!important;
  border:1px solid var(--p20-line)!important;
  border-radius:15px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.052),rgba(255,255,255,.022))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055)!important;
}

#sidebarPrincipal .semaforo-sidebar-head small{
  color:#7bed98!important;
  font-size:10px!important;
  font-weight:950!important;
}

#sidebarPrincipal .semaforo-sidebar-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:5px!important;
}

#sidebarPrincipal .semaforo-sidebar-card{
  min-height:36px!important;
  height:36px!important;
  padding:0 9px!important;
  grid-template-columns:13px minmax(0,1fr) 28px!important;
  gap:7px!important;
  border-radius:10px!important;
  border-width:1px!important;
  box-shadow:0 3px 10px rgba(0,0,0,.08)!important;
  font-size:10px!important;
  font-weight:950!important;
}

#sidebarPrincipal .semaforo-sidebar-card i{
  width:10px!important;
  height:10px!important;
}

#sidebarPrincipal .semaforo-sidebar-card b{
  width:27px!important;
  height:27px!important;
  min-width:27px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:999px!important;
  color:#fff!important;
  font-size:11px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24)!important;
}

#sidebarPrincipal .semaforo-sidebar-card.yellow b{background:#d7a900!important;}
#sidebarPrincipal .semaforo-sidebar-card.orange b{background:#e57e13!important;}
#sidebarPrincipal .semaforo-sidebar-card.amber b{background:#d35a43!important;}
#sidebarPrincipal .semaforo-sidebar-card.purple b{background:#7541dc!important;}
#sidebarPrincipal .semaforo-sidebar-card.gray b{background:#72817e!important;}
#sidebarPrincipal .semaforo-sidebar-card.teal b{background:#298fc1!important;}

/* Usuário, Storage e saída. */
#sidebarPrincipal .sidebar-user{
  position:relative!important;
  flex:0 0 96px!important;
  min-height:96px!important;
  max-height:96px!important;
  margin:0!important;
  padding:10px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 112px!important;
  grid-template-rows:48px 30px!important;
  gap:6px 8px!important;
  overflow:hidden!important;
  border:1px solid var(--p20-line)!important;
  border-radius:15px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.052),rgba(255,255,255,.022))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055)!important;
}

#sidebarPrincipal .sidebar-user-identity{
  min-width:0!important;
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr)!important;
  align-items:center!important;
  gap:9px!important;
}

#sidebarPrincipal .sidebar-user-avatar{
  width:42px!important;
  height:42px!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(91,229,142,.36)!important;
  border-radius:50%!important;
  background:linear-gradient(145deg,rgba(38,156,93,.46),rgba(14,89,57,.38))!important;
  color:#b5fac7!important;
  font-size:14px!important;
  font-weight:950!important;
  letter-spacing:.02em!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;
}

#sidebarPrincipal .sidebar-user-copy{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:3px!important;
}

#sidebarPrincipal .sidebar-user #usuarioLogado{
  display:block!important;
  min-width:0!important;
  color:#fff!important;
  font-size:12px!important;
  line-height:1.05!important;
  font-weight:950!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

#sidebarPrincipal .sidebar-user #usuarioUnidade{
  display:block!important;
  min-width:0!important;
  margin:0!important;
  color:#d6f6e3!important;
  font-size:9px!important;
  line-height:1!important;
  font-weight:750!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

#sidebarPrincipal #localStorageMeter{
  --storage-pct:0%;
  position:relative!important;
  align-self:center!important;
  justify-self:stretch!important;
  width:112px!important;
  min-width:112px!important;
  max-width:112px!important;
  height:43px!important;
  min-height:43px!important;
  max-height:43px!important;
  padding:7px 9px 12px!important;
  display:grid!important;
  grid-template-columns:1fr auto!important;
  align-items:start!important;
  gap:5px!important;
  overflow:hidden!important;
  border:1px solid rgba(149,239,185,.17)!important;
  border-radius:11px!important;
  background:rgba(17,85,57,.34)!important;
  color:#eafff2!important;
}

#sidebarPrincipal #localStorageMeter > span{
  display:block!important;
  color:#8ceda3!important;
  font-size:7.5px!important;
  font-weight:950!important;
  text-transform:uppercase!important;
}

#sidebarPrincipal #localStorageMeter > b{
  display:block!important;
  color:#fff!important;
  font-size:11px!important;
  font-weight:950!important;
}

#sidebarPrincipal #localStorageMeter::before{
  content:""!important;
  position:absolute!important;
  left:9px!important;
  right:9px!important;
  bottom:6px!important;
  height:5px!important;
  border-radius:999px!important;
  background:rgba(205,245,222,.18)!important;
  mask:none!important;
  -webkit-mask:none!important;
}

#sidebarPrincipal #localStorageMeter::after{
  content:""!important;
  position:absolute!important;
  left:9px!important;
  bottom:6px!important;
  width:calc((100% - 18px) * var(--storage-number,0) / 100)!important;
  max-width:calc(100% - 18px)!important;
  height:5px!important;
  display:block!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,#49dc7b,#88f2a5)!important;
  box-shadow:0 0 8px rgba(73,220,123,.25)!important;
  mask:none!important;
  -webkit-mask:none!important;
}

#sidebarPrincipal #btnSair{
  grid-column:1 / -1!important;
  grid-row:2!important;
  width:100%!important;
  min-width:0!important;
  height:30px!important;
  min-height:30px!important;
  margin:0!important;
  border:1px solid rgba(178,240,207,.18)!important;
  border-radius:10px!important;
  background:rgba(255,255,255,.035)!important;
  color:#effff6!important;
  font-size:10px!important;
  font-weight:850!important;
}

#sidebarPrincipal #btnSair::before{
  content:"↪";
  margin-right:7px;
  color:#7ae99a;
  font-size:16px;
  vertical-align:-1px;
}

/* ============================================================
   MODO RECOLHIDO — barra útil, sem texto cortado e sem perder funções.
============================================================ */
@media (min-width:901px){
  body.sidebar-collapsed #sidebarPrincipal{
    padding:10px 9px!important;
    gap:7px!important;
    align-items:center!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-toggle{
    position:relative!important;
    inset:auto!important;
    order:0!important;
    width:48px!important;
    height:36px!important;
    min-width:48px!important;
    min-height:36px!important;
    margin:0 auto!important;
    transform:none!important;
    border-radius:12px!important;
    font-size:18px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand{
    order:1!important;
    flex:0 0 50px!important;
    min-height:50px!important;
    width:100%!important;
    padding:0!important;
    justify-content:center!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand-logo{
    width:50px!important;
    height:50px!important;
    min-width:50px!important;
    flex-basis:50px!important;
    border-radius:15px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand-logo img{
    width:39px!important;
    max-width:39px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand > div:not(.brand-logo){display:none!important;}

  body.sidebar-collapsed #sidebarPrincipal .side-menu{
    order:2!important;
    flex:0 0 auto!important;
    gap:4px!important;
    margin:0!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item{
    width:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    place-items:center!important;
    border-radius:13px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item::after,
  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-label{display:none!important;}

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-icon{
    width:100%!important;
    height:100%!important;
    border-radius:12px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item.active{
    background:linear-gradient(145deg,rgba(42,166,98,.66),rgba(20,110,70,.58))!important;
    box-shadow:inset 0 0 0 1px rgba(121,241,171,.19),0 8px 18px rgba(0,47,29,.20)!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19{
    order:3!important;
    display:flex!important;
    flex:0 0 116px!important;
    width:62px!important;
    height:116px!important;
    min-height:116px!important;
    max-height:116px!important;
    padding:7px 5px!important;
    gap:5px!important;
    align-items:center!important;
    overflow:hidden!important;
    border-radius:14px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .status-head{
    flex:0 0 auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:4px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .status-head small{
    width:100%!important;
    display:block!important;
    color:#86efa0!important;
    font-size:7px!important;
    line-height:1.05!important;
    text-align:center!important;
    white-space:normal!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .status-pill{
    height:15px!important;
    min-height:15px!important;
    padding:2px 5px!important;
    font-size:5.8px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-lines-p19,
  body.sidebar-collapsed #sidebarPrincipal .status-moagem-info-p19,
  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .sidebar-refresh-btn{
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-card-p19{
    flex:1 1 auto!important;
    width:48px!important;
    min-width:48px!important;
    min-height:0!important;
    padding:5px 3px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    border-radius:11px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-icon-p19{
    width:25px!important;
    height:25px!important;
    min-width:25px!important;
    border-radius:8px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-icon-p19 svg{
    width:16px!important;
    height:16px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19{
    width:100%!important;
    text-align:center!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19 small{display:none!important;}

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19 strong{
    width:100%!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:0!important;
    color:#8df4a1!important;
    font-size:17px!important;
    line-height:.95!important;
    letter-spacing:-.04em!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19 strong em{
    font-size:7px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo{
    order:4!important;
    flex:1 1 auto!important;
    width:62px!important;
    min-height:178px!important;
    max-height:none!important;
    padding:7px 3px!important;
    gap:4px!important;
    border-radius:14px!important;
    overflow:hidden!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-head{display:none!important;}

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-grid{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:4px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card{
    width:48px!important;
    min-width:48px!important;
    max-width:48px!important;
    height:27px!important;
    min-height:27px!important;
    padding:0 5px!important;
    display:grid!important;
    grid-template-columns:9px 1fr!important;
    gap:4px!important;
    border-radius:9px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card span{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card i{
    width:8px!important;
    height:8px!important;
    min-width:8px!important;
    box-shadow:none!important;
  }
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card b{
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    color:#173128!important;
    background:transparent!important;
    box-shadow:none!important;
    font-size:9px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user{
    order:5!important;
    flex:0 0 94px!important;
    width:62px!important;
    min-height:94px!important;
    max-height:94px!important;
    padding:7px 4px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    border-radius:14px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-identity{display:none!important;}

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter{
    --storage-pct:0%;
    position:relative!important;
    width:48px!important;
    min-width:48px!important;
    max-width:48px!important;
    height:50px!important;
    min-height:50px!important;
    max-height:50px!important;
    margin:0!important;
    padding:29px 3px 8px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
    border-radius:11px!important;
    background:rgba(15,80,53,.42)!important;
    font-size:0!important;
    line-height:0!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > span{display:none!important;}

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > b{
    display:block!important;
    position:static!important;
    width:auto!important;
    height:auto!important;
    max-width:none!important;
    color:#fff!important;
    font-size:8px!important;
    line-height:1!important;
    font-weight:950!important;
    visibility:visible!important;
    opacity:1!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before{
    content:""!important;
    position:absolute!important;
    top:7px!important;
    left:50%!important;
    right:auto!important;
    bottom:auto!important;
    width:23px!important;
    height:23px!important;
    transform:translateX(-50%)!important;
    display:block!important;
    border-radius:0!important;
    background:#83eda0!important;
    -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cellipse%20cx='12'%20cy='5'%20rx='8.5'%20ry='3'/%3E%3Cpath%20d='M3.5%205v7c0%201.66%203.81%203%208.5%203s8.5-1.34%208.5-3V5'/%3E%3Cpath%20d='M3.5%2012v7c0%201.66%203.81%203%208.5%203s8.5-1.34%208.5-3v-7'/%3E%3C/svg%3E") center/contain no-repeat!important;
    mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cellipse%20cx='12'%20cy='5'%20rx='8.5'%20ry='3'/%3E%3Cpath%20d='M3.5%205v7c0%201.66%203.81%203%208.5%203s8.5-1.34%208.5-3V5'/%3E%3Cpath%20d='M3.5%2012v7c0%201.66%203.81%203%208.5%203s8.5-1.34%208.5-3v-7'/%3E%3C/svg%3E") center/contain no-repeat!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after{
    content:""!important;
    position:absolute!important;
    left:7px!important;
    bottom:5px!important;
    width:calc(34px * var(--storage-number,0) / 100)!important;
    max-width:34px!important;
    height:3px!important;
    display:block!important;
    border-radius:999px!important;
    background:#65e98c!important;
    mask:none!important;
    -webkit-mask:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair{
    width:48px!important;
    min-width:48px!important;
    max-width:48px!important;
    height:30px!important;
    min-height:30px!important;
    padding:0!important;
    margin:0!important;
    font-size:0!important;
    border-radius:10px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair::before{
    content:"↪"!important;
    margin:0!important;
    color:#eafff2!important;
    font-size:18px!important;
  }

  body.sidebar-collapsed #btnSidebarHandle{display:none!important;}
}

/* Alturas menores: preserva todos os recursos sem rolagem. */
@media (min-width:901px) and (max-height:850px){
  #sidebarPrincipal{padding-top:9px!important;padding-bottom:9px!important;gap:6px!important;}
  #sidebarPrincipal .brand{flex-basis:56px!important;min-height:56px!important;}
  #sidebarPrincipal .brand-logo{width:48px!important;height:48px!important;min-width:48px!important;flex-basis:48px!important;}
  #sidebarPrincipal .brand-logo img{width:38px!important;}
  #sidebarPrincipal .side-menu{gap:2px!important;}
  #sidebarPrincipal .side-menu .menu-item{height:35px!important;min-height:35px!important;font-size:10.5px!important;}
  #sidebarPrincipal .pims-status-moagem-p19{height:145px!important;min-height:145px!important;max-height:145px!important;flex-basis:145px!important;padding:7px!important;}
  #sidebarPrincipal #sidebarSemaforo{min-height:218px!important;padding:7px!important;}
  #sidebarPrincipal .semaforo-sidebar-card{height:31px!important;min-height:31px!important;}
  #sidebarPrincipal .sidebar-user{height:85px!important;min-height:85px!important;max-height:85px!important;flex-basis:85px!important;padding:7px!important;grid-template-rows:42px 27px!important;}
  #sidebarPrincipal .sidebar-user-avatar{width:36px!important;height:36px!important;}

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item{height:36px!important;min-height:36px!important;}
  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19{height:103px!important;min-height:103px!important;max-height:103px!important;flex-basis:103px!important;}
  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo{min-height:154px!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card{height:24px!important;min-height:24px!important;}
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user{height:84px!important;min-height:84px!important;max-height:84px!important;flex-basis:84px!important;}
}

/* Mobile: mantém o mesmo desenho, mas como painel off-canvas. */
@media (max-width:900px){
  #sidebarPrincipal{
    width:min(360px,calc(100vw - 18px))!important;
    min-width:0!important;
    max-width:min(360px,calc(100vw - 18px))!important;
    padding:13px!important;
    overflow:auto!important;
  }

  body.sidebar-collapsed #sidebarPrincipal{
    transform:translateX(-112%)!important;
  }

  #sidebarPrincipal .brand strong{font-size:17px!important;}
  #sidebarPrincipal .side-menu .menu-item{height:41px!important;min-height:41px!important;}
  #sidebarPrincipal .pims-status-moagem-p19{height:auto!important;min-height:154px!important;max-height:none!important;flex-basis:auto!important;}
  #sidebarPrincipal #sidebarSemaforo{min-height:270px!important;}
  #sidebarPrincipal .sidebar-user{height:auto!important;min-height:94px!important;max-height:none!important;}
}


/* ===== r98-6-5-master-p21-sidebar-respiro-relatorio.css ===== */
/* ============================================================
   MASTER P21 — SIDEBAR FIEL + RESPIRO GLOBAL + RELATÓRIO COERENTE
   Escopo visual: menu lateral e separação entre navegação/conteúdo.
   Escopo do relatório: somente Relatório — Alocação por frente.
============================================================ */

:root{
  --p21-sidebar-open:360px;
  --p21-sidebar-closed:82px;
  --p21-content-gap:18px;
}

@media (min-width:901px){
  :root{--sidebar-width:var(--p21-sidebar-open)!important;}

  body:not(.sidebar-collapsed) #sidebarPrincipal{
    width:var(--p21-sidebar-open)!important;
    min-width:var(--p21-sidebar-open)!important;
    max-width:var(--p21-sidebar-open)!important;
  }

  body:not(.sidebar-collapsed) .app,
  body:not(.sidebar-collapsed) .main{
    margin-left:calc(var(--p21-sidebar-open) + var(--p21-content-gap))!important;
  }

  body.sidebar-collapsed #sidebarPrincipal{
    width:var(--p21-sidebar-closed)!important;
    min-width:var(--p21-sidebar-closed)!important;
    max-width:var(--p21-sidebar-closed)!important;
  }

  body.sidebar-collapsed .app,
  body.sidebar-collapsed .main{
    margin-left:calc(var(--p21-sidebar-closed) + var(--p21-content-gap))!important;
  }

  /* O vão pertence ao shell e vale para todos os menus carregados. */
  #appView.app-shell{
    background:linear-gradient(90deg,#edf3f0 0 var(--p21-content-gap),transparent var(--p21-content-gap))!important;
  }
}

#sidebarPrincipal{
  padding:16px 17px!important;
  gap:10px!important;
  border-right:1px solid rgba(147,231,184,.24)!important;
  background:
    radial-gradient(circle at 6% 0,rgba(39,190,102,.14),transparent 29%),
    radial-gradient(circle at 100% 58%,rgba(25,133,83,.13),transparent 42%),
    linear-gradient(180deg,#011d17 0%,#063428 52%,#03271e 100%)!important;
  box-shadow:12px 0 34px rgba(0,40,28,.16)!important;
}

#sidebarPrincipal .brand{
  flex:0 0 68px!important;
  min-height:68px!important;
  padding:2px 58px 2px 1px!important;
  gap:13px!important;
}

#sidebarPrincipal .brand-logo{
  width:58px!important;
  height:58px!important;
  min-width:58px!important;
  flex-basis:58px!important;
  border-radius:18px!important;
}

#sidebarPrincipal .brand-logo img{
  width:46px!important;
  max-width:46px!important;
  max-height:46px!important;
}

#sidebarPrincipal .brand strong{
  font-size:20px!important;
  line-height:1.05!important;
}

#sidebarPrincipal .brand span{
  margin-top:5px!important;
  font-size:13px!important;
}

#sidebarPrincipal .sidebar-toggle{
  top:19px!important;
  right:17px!important;
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  min-height:48px!important;
  border-radius:15px!important;
  font-size:24px!important;
}

#sidebarPrincipal .side-menu{
  gap:4px!important;
}

#sidebarPrincipal .side-menu .menu-item{
  height:46px!important;
  min-height:46px!important;
  padding:0 39px 0 8px!important;
  grid-template-columns:42px minmax(0,1fr)!important;
  gap:10px!important;
  border-radius:14px!important;
  font-size:14px!important;
  font-weight:820!important;
}

#sidebarPrincipal .side-menu .menu-item::after{
  right:15px!important;
  font-size:25px!important;
}

#sidebarPrincipal .side-menu .menu-icon{
  width:42px!important;
  height:42px!important;
  border-radius:12px!important;
}

#sidebarPrincipal .side-menu .menu-icon svg{
  width:23px!important;
  height:23px!important;
  stroke-width:1.85!important;
}

#sidebarPrincipal .side-menu .menu-item.active{
  border-color:rgba(102,238,158,.34)!important;
  background:linear-gradient(90deg,rgba(33,143,86,.92),rgba(20,108,71,.72))!important;
  box-shadow:0 9px 24px rgba(0,52,34,.20),inset 0 1px 0 rgba(255,255,255,.08)!important;
}

#sidebarPrincipal .side-menu .menu-item.active .menu-icon{
  margin-left:-8px!important;
  width:50px!important;
  height:46px!important;
  border-radius:14px!important;
  color:#f3fff7!important;
  background:linear-gradient(145deg,rgba(68,191,111,.68),rgba(39,145,88,.62))!important;
  box-shadow:inset -1px 0 0 rgba(150,247,188,.14)!important;
}

#sidebarPrincipal .pims-status-moagem-p19{
  flex-basis:174px!important;
  height:174px!important;
  min-height:174px!important;
  max-height:174px!important;
  padding:11px!important;
  border-radius:17px!important;
}

#sidebarPrincipal .pims-status-moagem-p19 .status-head small{
  font-size:10.5px!important;
}

#sidebarPrincipal .status-lines-p19 > *{
  font-size:9.5px!important;
}

#sidebarPrincipal .status-moagem-card-p19{
  padding:8px!important;
  grid-template-columns:38px minmax(82px,.82fr) minmax(0,1.18fr)!important;
  gap:8px!important;
  border-radius:12px!important;
}

#sidebarPrincipal .status-moagem-icon-p19{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
}

#sidebarPrincipal .status-moagem-kpi-p19 strong{font-size:27px!important;}
#sidebarPrincipal .status-moagem-kpi-p19 small{font-size:7px!important;}
#sidebarPrincipal .status-moagem-info-p19 small{grid-template-columns:46px minmax(0,1fr)!important;}
#sidebarPrincipal .status-moagem-info-p19 small i{font-size:6.2px!important;}
#sidebarPrincipal .status-moagem-info-p19 small span,
#sidebarPrincipal .status-moagem-info-p19 small b{font-size:7.2px!important;}

#sidebarPrincipal #sidebarSemaforo{
  min-height:250px!important;
  padding:11px!important;
  gap:8px!important;
  border-radius:17px!important;
}

#sidebarPrincipal .semaforo-sidebar-head small{font-size:11px!important;}
#sidebarPrincipal .semaforo-sidebar-grid{gap:6px!important;}

#sidebarPrincipal .semaforo-sidebar-card{
  height:38px!important;
  min-height:38px!important;
  padding:0 10px!important;
  grid-template-columns:14px minmax(0,1fr) 30px!important;
  gap:8px!important;
  border-radius:11px!important;
  font-size:11.5px!important;
}

#sidebarPrincipal .semaforo-sidebar-card i{
  width:11px!important;
  height:11px!important;
}

#sidebarPrincipal .semaforo-sidebar-card b{
  width:29px!important;
  height:29px!important;
  min-width:29px!important;
  font-size:12px!important;
}

#sidebarPrincipal .sidebar-user{
  flex-basis:110px!important;
  min-height:110px!important;
  max-height:110px!important;
  padding:11px!important;
  grid-template-columns:minmax(0,1fr) 116px!important;
  grid-template-rows:51px 32px!important;
  gap:7px 9px!important;
  border-radius:17px!important;
}

#sidebarPrincipal .sidebar-user-identity{
  grid-template-columns:44px minmax(0,1fr)!important;
  gap:10px!important;
}

#sidebarPrincipal .sidebar-user-avatar{
  width:44px!important;
  height:44px!important;
}

#sidebarPrincipal .sidebar-user #usuarioLogado{font-size:13px!important;}
#sidebarPrincipal .sidebar-user #usuarioUnidade{font-size:9.5px!important;}

#sidebarPrincipal #localStorageMeter{
  width:116px!important;
  min-width:116px!important;
  max-width:116px!important;
  height:46px!important;
  min-height:46px!important;
  max-height:46px!important;
}

#sidebarPrincipal #btnSair{
  height:32px!important;
  min-height:32px!important;
  font-size:11px!important;
}

/* Compacto fiel ao modelo: logo no topo e clique sobre ele reabre o menu. */
@media (min-width:901px){
  body.sidebar-collapsed #sidebarPrincipal{
    padding:11px 9px!important;
    gap:7px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-toggle{
    position:absolute!important;
    inset:11px auto auto 12px!important;
    z-index:8!important;
    order:0!important;
    width:58px!important;
    height:58px!important;
    min-width:58px!important;
    min-height:58px!important;
    margin:0!important;
    opacity:0!important;
    cursor:pointer!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand{
    order:0!important;
    flex:0 0 58px!important;
    min-height:58px!important;
    padding:0!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand-logo{
    width:58px!important;
    height:58px!important;
    min-width:58px!important;
    flex-basis:58px!important;
    border-radius:17px!important;
    pointer-events:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu{order:1!important;gap:5px!important;}
  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item{
    width:54px!important;
    min-width:54px!important;
    max-width:54px!important;
    height:48px!important;
    min-height:48px!important;
    border-radius:14px!important;
  }
  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item.active .menu-icon{
    margin:0!important;
    width:100%!important;
    height:100%!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19{
    order:2!important;
    flex-basis:126px!important;
    width:64px!important;
    height:126px!important;
    min-height:126px!important;
    max-height:126px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo{
    order:3!important;
    width:64px!important;
    min-height:205px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card{
    width:50px!important;
    min-width:50px!important;
    max-width:50px!important;
    height:31px!important;
    min-height:31px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user{
    order:4!important;
    flex-basis:142px!important;
    width:64px!important;
    min-height:142px!important;
    max-height:142px!important;
    padding:8px 5px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter{
    width:50px!important;
    min-width:50px!important;
    max-width:50px!important;
    height:76px!important;
    min-height:76px!important;
    max-height:76px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair{
    width:50px!important;
    min-width:50px!important;
    max-width:50px!important;
    height:42px!important;
    min-height:42px!important;
  }
}

/* Mantém leitura digna em notebook, sem reduzir as fontes a 5–8 px. */
@media (min-width:901px) and (max-height:1100px){
  #sidebarPrincipal{padding-top:10px!important;padding-bottom:10px!important;gap:7px!important;}
  #sidebarPrincipal .brand{flex-basis:58px!important;min-height:58px!important;}
  #sidebarPrincipal .brand-logo{width:50px!important;height:50px!important;min-width:50px!important;flex-basis:50px!important;}
  #sidebarPrincipal .brand-logo img{width:40px!important;}
  #sidebarPrincipal .brand strong{font-size:17px!important;}
  #sidebarPrincipal .brand span{font-size:11.5px!important;}
  #sidebarPrincipal .side-menu{gap:2px!important;}
  #sidebarPrincipal .side-menu .menu-item{height:40px!important;min-height:40px!important;font-size:12.5px!important;}
  #sidebarPrincipal .side-menu .menu-icon{height:38px!important;}
  #sidebarPrincipal .side-menu .menu-item.active .menu-icon{height:40px!important;}
  #sidebarPrincipal .pims-status-moagem-p19{height:148px!important;min-height:148px!important;max-height:148px!important;flex-basis:148px!important;padding:8px!important;}
  #sidebarPrincipal #sidebarSemaforo{min-height:218px!important;padding:8px!important;gap:5px!important;}
  #sidebarPrincipal .semaforo-sidebar-grid{gap:4px!important;}
  #sidebarPrincipal .semaforo-sidebar-card{height:32px!important;min-height:32px!important;font-size:10.5px!important;}
  #sidebarPrincipal .sidebar-user{height:88px!important;min-height:88px!important;max-height:88px!important;flex-basis:88px!important;padding:7px!important;grid-template-rows:40px 27px!important;}

  body.sidebar-collapsed #sidebarPrincipal .brand{flex-basis:52px!important;min-height:52px!important;}
  body.sidebar-collapsed #sidebarPrincipal .brand-logo{width:52px!important;height:52px!important;min-width:52px!important;flex-basis:52px!important;}
  body.sidebar-collapsed #sidebarPrincipal .sidebar-toggle{inset:10px auto auto 15px!important;width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;}
  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item{height:40px!important;min-height:40px!important;}
  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19{height:108px!important;min-height:108px!important;max-height:108px!important;flex-basis:108px!important;}
  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo{min-height:181px!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card{height:27px!important;min-height:27px!important;}
  body.sidebar-collapsed #sidebarPrincipal .sidebar-user{height:120px!important;min-height:120px!important;max-height:120px!important;flex-basis:120px!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter{height:64px!important;min-height:64px!important;max-height:64px!important;}
}

@media (max-width:900px){
  #sidebarPrincipal{
    width:min(370px,calc(100vw - 18px))!important;
    max-width:min(370px,calc(100vw - 18px))!important;
    padding:14px!important;
    overflow:auto!important;
  }
  .app,.main,
  body:not(.sidebar-collapsed) .app,
  body.sidebar-collapsed .app{margin-left:0!important;}
}

/* Relatório de Alocação: aspecto técnico, sem cápsulas na legenda/status. */
#modalRoot .relatorio-alocacao-total-frente .report-os-number{
  color:#101915!important;
  font-weight:950!important;
}

#modalRoot .relatorio-alocacao-total-frente .report-os-status{
  display:block!important;
  margin-top:2px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

#modalRoot .relatorio-alocacao-total-frente .report-legend-bar{
  gap:13px!important;
  padding:8px 0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

#modalRoot .relatorio-alocacao-total-frente .report-legend-item{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-weight:950!important;
}

#modalRoot .relatorio-alocacao-total-frente .report-legend-dot{display:none!important;}
#modalRoot .relatorio-alocacao-total-frente .report-legend-item.legend-green{color:#11713d!important;}
#modalRoot .relatorio-alocacao-total-frente .report-legend-item.legend-red{color:#c5161d!important;}
#modalRoot .relatorio-alocacao-total-frente .report-legend-item.legend-orange{color:#b45b00!important;}
#modalRoot .relatorio-alocacao-total-frente .report-legend-item.legend-blue{color:#2456b5!important;}
#modalRoot .relatorio-alocacao-total-frente .report-legend-item.legend-opportunity{color:#9a6500!important;}
#modalRoot .relatorio-alocacao-total-frente .report-legend-item.legend-purple{color:#6b3aa8!important;}
#modalRoot .relatorio-alocacao-total-frente .report-legend-item.legend-yellow{color:#9a7700!important;}
#modalRoot .relatorio-alocacao-total-frente .report-legend-item.legend-gray{color:#5f6b66!important;}
#modalRoot .relatorio-alocacao-total-frente .report-legend-item.legend-teal{color:#08708c!important;}

@media print{
  .report-print-root.relatorio-alocacao-total-frente .report-legend-dot{display:none!important;}
  .report-print-root.relatorio-alocacao-total-frente .report-legend-item{
    padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;
  }
}


/* ===== r98-6-5-master-p22-sidebar-fiel-final.css ===== */
/* ============================================================
   MASTER P22 — SIDEBAR FIEL AO MODELO APROVADO
   - mesma composicao nos modos aberto e recolhido;
   - notebook/janela dividida permanece com menu ancorado;
   - separacao real entre navegacao e todos os menus carregados.
============================================================ */

:root{
  --p22-sidebar-open:356px;
  --p22-sidebar-closed:78px;
  --p22-content-gap:22px;
  --p22-line:rgba(159,235,193,.22);
  --p22-panel:rgba(255,255,255,.047);
}

#sidebarPrincipal{
  position:fixed!important;
  inset:0 auto 0 0!important;
  height:100dvh!important;
  max-height:100dvh!important;
  padding:11px 14px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
  overflow:hidden!important;
  border:0!important;
  border-right:1px solid rgba(127,218,169,.28)!important;
  background:
    radial-gradient(circle at 8% 0,rgba(39,190,102,.12),transparent 27%),
    radial-gradient(circle at 100% 55%,rgba(16,126,76,.11),transparent 42%),
    linear-gradient(180deg,#001d17 0%,#043328 54%,#02251d 100%)!important;
  box-shadow:
    inset 0 0 0 1px rgba(151,229,187,.12),
    22px 0 0 #edf3f0,
    30px 0 46px rgba(0,42,29,.14)!important;
  isolation:isolate!important;
}

#sidebarPrincipal .brand{
  flex:0 0 58px!important;
  min-height:58px!important;
  width:100%!important;
  margin:0!important;
  padding:0 55px 0 7px!important;
  display:flex!important;
  align-items:center!important;
  gap:11px!important;
}

#sidebarPrincipal .brand-logo{
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  flex:0 0 52px!important;
  border-radius:16px!important;
  background:#f8fbf9!important;
  box-shadow:0 10px 24px rgba(0,0,0,.16),inset 0 0 0 1px rgba(8,65,44,.08)!important;
}

#sidebarPrincipal .brand-logo img{
  width:42px!important;
  max-width:42px!important;
  max-height:42px!important;
}

#sidebarPrincipal .brand strong{
  display:block!important;
  color:#fff!important;
  font-size:18px!important;
  line-height:1.04!important;
  font-weight:950!important;
  letter-spacing:-.025em!important;
  white-space:nowrap!important;
}

#sidebarPrincipal .brand span{
  display:block!important;
  margin-top:4px!important;
  color:#72eb8d!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:850!important;
  white-space:nowrap!important;
}

#sidebarPrincipal .sidebar-toggle{
  position:absolute!important;
  top:16px!important;
  right:16px!important;
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  min-height:46px!important;
  border:1px solid rgba(130,229,171,.32)!important;
  border-radius:15px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.085),rgba(255,255,255,.025))!important;
  color:#f5fff9!important;
  font-size:23px!important;
  line-height:1!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 10px 22px rgba(0,0,0,.11)!important;
}

#sidebarPrincipal .side-menu{
  flex:0 0 auto!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:2px!important;
  overflow:visible!important;
}

#sidebarPrincipal .side-menu .menu-item{
  position:relative!important;
  width:100%!important;
  height:40px!important;
  min-height:40px!important;
  margin:0!important;
  padding:0 36px 0 8px!important;
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr)!important;
  align-items:center!important;
  gap:9px!important;
  overflow:hidden!important;
  border:1px solid transparent!important;
  border-radius:13px!important;
  background:transparent!important;
  color:#f2fff7!important;
  text-align:left!important;
  font-size:12.5px!important;
  font-weight:780!important;
  box-shadow:none!important;
}

#sidebarPrincipal .side-menu .menu-item::after{
  content:"›"!important;
  position:absolute!important;
  top:50%!important;
  right:14px!important;
  transform:translateY(-53%)!important;
  color:rgba(231,252,240,.82)!important;
  font-size:24px!important;
  line-height:1!important;
  font-weight:400!important;
}

#sidebarPrincipal .side-menu .menu-icon{
  width:38px!important;
  height:38px!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:12px!important;
  color:#f3fff8!important;
  background:transparent!important;
}

#sidebarPrincipal .side-menu .menu-icon svg{
  width:21px!important;
  height:21px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
}

#sidebarPrincipal .side-menu .menu-item.active{
  border-color:rgba(86,164,127,.28)!important;
  background:linear-gradient(90deg,rgba(16,91,62,.86),rgba(10,68,50,.76))!important;
  color:#fff!important;
  box-shadow:0 8px 20px rgba(0,35,25,.15),inset 0 1px 0 rgba(255,255,255,.045)!important;
}

#sidebarPrincipal .side-menu .menu-item.active .menu-icon{
  margin-left:-8px!important;
  width:46px!important;
  height:40px!important;
  color:#f5fff8!important;
  background:linear-gradient(145deg,rgba(37,139,86,.76),rgba(20,99,67,.72))!important;
  box-shadow:inset -1px 0 0 rgba(150,247,188,.13),0 5px 14px rgba(0,48,29,.12)!important;
}

#sidebarPrincipal .pims-status-moagem-p19{
  position:relative!important;
  flex:0 0 154px!important;
  width:100%!important;
  height:154px!important;
  min-height:154px!important;
  max-height:154px!important;
  margin:0!important;
  padding:9px!important;
  gap:5px!important;
  border:1px solid var(--p22-line)!important;
  border-radius:16px!important;
  background:radial-gradient(circle at 100% 0,rgba(88,224,136,.09),transparent 40%),linear-gradient(145deg,rgba(255,255,255,.058),rgba(255,255,255,.022))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important;
}

#sidebarPrincipal .pims-status-moagem-p19 .status-head small,
#sidebarPrincipal .semaforo-sidebar-head small{
  color:#78eb96!important;
  font-size:10px!important;
  font-weight:950!important;
  letter-spacing:.01em!important;
  text-transform:uppercase!important;
}

#sidebarPrincipal .status-lines-p19 > *{font-size:8.6px!important;}

#sidebarPrincipal .status-moagem-card-p19{
  padding:7px!important;
  grid-template-columns:34px minmax(74px,.82fr) minmax(0,1.18fr)!important;
  gap:7px!important;
  border-radius:11px!important;
}

#sidebarPrincipal .status-moagem-icon-p19{
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
}

#sidebarPrincipal .status-moagem-kpi-p19 strong{font-size:24px!important;}
#sidebarPrincipal .status-moagem-kpi-p19 small{font-size:6.4px!important;}
#sidebarPrincipal .status-moagem-info-p19 small{grid-template-columns:42px minmax(0,1fr)!important;}
#sidebarPrincipal .status-moagem-info-p19 small i{font-size:5.8px!important;}
#sidebarPrincipal .status-moagem-info-p19 small span,
#sidebarPrincipal .status-moagem-info-p19 small b{font-size:6.8px!important;}

#sidebarPrincipal #sidebarSemaforo{
  flex:1 1 auto!important;
  width:100%!important;
  min-height:216px!important;
  max-height:none!important;
  margin:0!important;
  padding:9px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
  overflow:hidden!important;
  border:1px solid var(--p22-line)!important;
  border-radius:16px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.052),rgba(255,255,255,.02))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important;
}

#sidebarPrincipal .semaforo-sidebar-grid{
  flex:1 1 auto!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  gap:4px!important;
}

#sidebarPrincipal .semaforo-sidebar-card{
  flex:0 0 auto!important;
  width:100%!important;
  height:34px!important;
  min-height:34px!important;
  padding:0 9px!important;
  display:grid!important;
  grid-template-columns:13px minmax(0,1fr) 28px!important;
  gap:7px!important;
  border-radius:10px!important;
  font-size:10.5px!important;
  font-weight:950!important;
  box-shadow:0 3px 9px rgba(0,0,0,.075)!important;
}

#sidebarPrincipal .semaforo-sidebar-card i{width:10px!important;height:10px!important;}
#sidebarPrincipal .semaforo-sidebar-card b{width:27px!important;height:27px!important;min-width:27px!important;font-size:11px!important;}

#sidebarPrincipal .sidebar-user{
  flex:0 0 91px!important;
  width:100%!important;
  min-height:91px!important;
  max-height:91px!important;
  margin:0!important;
  padding:8px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 106px!important;
  grid-template-rows:41px 27px!important;
  gap:6px 8px!important;
  overflow:hidden!important;
  border:1px solid var(--p22-line)!important;
  border-radius:16px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.052),rgba(255,255,255,.02))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important;
}

#sidebarPrincipal .sidebar-user-identity{grid-template-columns:38px minmax(0,1fr)!important;gap:8px!important;}
#sidebarPrincipal .sidebar-user-avatar{width:38px!important;height:38px!important;font-size:12px!important;}
#sidebarPrincipal .sidebar-user #usuarioLogado{font-size:11.5px!important;}
#sidebarPrincipal .sidebar-user #usuarioUnidade{font-size:8.5px!important;}

#sidebarPrincipal #localStorageMeter{
  width:106px!important;
  min-width:106px!important;
  max-width:106px!important;
  height:39px!important;
  min-height:39px!important;
  max-height:39px!important;
  padding:6px 8px 12px!important;
  display:grid!important;
  grid-template-columns:1fr auto!important;
  align-items:start!important;
  gap:4px!important;
  background:rgba(9,66,47,.58)!important;
  overflow:hidden!important;
}

#sidebarPrincipal .storage-meter-icon{display:none!important;}

#sidebarPrincipal #localStorageMeter > span,
#sidebarPrincipal #localStorageMeter > b{
  position:relative!important;
  z-index:3!important;
  display:block!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  line-height:1!important;
  color:#f4fff8!important;
  text-shadow:0 1px 2px rgba(0,28,20,.42)!important;
}

#sidebarPrincipal #localStorageMeter > span{
  color:#8edca8!important;
  font-size:7px!important;
  letter-spacing:.01em!important;
}

#sidebarPrincipal #localStorageMeter > b{font-size:10px!important;}

#sidebarPrincipal #localStorageMeter::before{
  content:""!important;
  position:absolute!important;
  left:8px!important;
  right:8px!important;
  bottom:5px!important;
  z-index:1!important;
  width:auto!important;
  height:4px!important;
  display:block!important;
  border-radius:999px!important;
  background:rgba(192,231,207,.17)!important;
}

#sidebarPrincipal #localStorageMeter::after{
  content:""!important;
  position:absolute!important;
  left:8px!important;
  bottom:5px!important;
  z-index:2!important;
  width:calc((100% - 16px) * var(--storage-number,0) / 100)!important;
  max-width:calc(100% - 16px)!important;
  height:4px!important;
  display:block!important;
  border-radius:999px!important;
  background:#3a9d68!important;
  box-shadow:none!important;
  opacity:.78!important;
}

#sidebarPrincipal #btnSair{
  height:27px!important;
  min-height:27px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  font-size:10px!important;
}

#sidebarPrincipal #btnSair::before,
#sidebarPrincipal #btnSair::after{content:none!important;display:none!important;}

#sidebarPrincipal .sidebar-exit-icon{
  width:16px!important;
  height:16px!important;
  fill:none!important;
  stroke:#7ae99a!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

/* Notebook, monitor e janela dividida: o menu fica ancorado e nunca cobre a tela. */
@media (min-width:641px){
  :root{--sidebar-width:var(--p22-sidebar-open)!important;}

  body:not(.sidebar-collapsed) #sidebarPrincipal{
    width:var(--p22-sidebar-open)!important;
    min-width:var(--p22-sidebar-open)!important;
    max-width:var(--p22-sidebar-open)!important;
    transform:none!important;
    pointer-events:auto!important;
  }

  body:not(.sidebar-collapsed) .app,
  body:not(.sidebar-collapsed) .main{
    margin-left:calc(var(--p22-sidebar-open) + var(--p22-content-gap))!important;
  }

  body.sidebar-collapsed #sidebarPrincipal{
    width:var(--p22-sidebar-closed)!important;
    min-width:var(--p22-sidebar-closed)!important;
    max-width:var(--p22-sidebar-closed)!important;
    transform:none!important;
    pointer-events:auto!important;
  }

  body.sidebar-collapsed .app,
  body.sidebar-collapsed .main{
    margin-left:calc(var(--p22-sidebar-closed) + var(--p22-content-gap))!important;
  }

  body.sidebar-collapsed .sidebar-handle{display:none!important;}

  /* Modo recolhido igual ao painel estreito da referencia. */
  body.sidebar-collapsed #sidebarPrincipal{
    padding:9px 8px!important;
    gap:5px!important;
    align-items:center!important;
    box-shadow:inset 0 0 0 1px rgba(151,229,187,.12),22px 0 0 #edf3f0,28px 0 38px rgba(0,42,29,.13)!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-toggle{
    position:absolute!important;
    inset:9px auto auto 13px!important;
    z-index:8!important;
    order:0!important;
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    min-height:52px!important;
    margin:0!important;
    opacity:0!important;
    cursor:pointer!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand{
    order:0!important;
    flex:0 0 52px!important;
    min-height:52px!important;
    width:100%!important;
    padding:0!important;
    justify-content:center!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand > div:not(.brand-logo){display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal .brand-logo{
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    flex-basis:52px!important;
    border-radius:16px!important;
    pointer-events:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu{
    order:1!important;
    flex:0 0 auto!important;
    width:100%!important;
    gap:2px!important;
    align-items:center!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item{
    width:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    height:40px!important;
    min-height:40px!important;
    padding:0!important;
    grid-template-columns:1fr!important;
    place-items:center!important;
    border-radius:12px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item::after,
  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-label{display:none!important;}

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-icon{
    width:100%!important;
    height:100%!important;
    border-radius:12px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item.active{
    border-color:rgba(139,192,255,.46)!important;
    background:linear-gradient(145deg,#477cc2,#315f9f)!important;
    box-shadow:inset 0 0 0 1px rgba(205,228,255,.14),0 8px 18px rgba(0,31,67,.24)!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item.active .menu-icon{
    width:100%!important;
    height:100%!important;
    margin:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19{
    order:2!important;
    flex:0 0 118px!important;
    width:62px!important;
    height:118px!important;
    min-height:118px!important;
    max-height:118px!important;
    padding:8px 5px 24px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:5px!important;
    overflow:hidden!important;
    border-radius:14px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .status-head{
    flex:0 0 auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    display:block!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .status-head small{
    display:block!important;
    width:100%!important;
    color:#80eca0!important;
    font-size:8px!important;
    line-height:1.05!important;
    text-align:center!important;
    white-space:normal!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .status-pill{
    position:absolute!important;
    left:50%!important;
    bottom:7px!important;
    transform:translateX(-50%)!important;
    height:16px!important;
    min-height:16px!important;
    padding:2px 6px!important;
    display:block!important;
    font-size:6px!important;
    line-height:11px!important;
    white-space:nowrap!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-lines-p19,
  body.sidebar-collapsed #sidebarPrincipal .status-moagem-info-p19,
  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .sidebar-refresh-btn{display:none!important;}

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-card-p19{
    flex:1 1 auto!important;
    width:50px!important;
    min-width:50px!important;
    min-height:0!important;
    padding:4px 3px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    border-radius:11px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-icon-p19{
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-icon-p19 svg{width:15px!important;height:15px!important;}
  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19{width:100%!important;text-align:center!important;}
  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19 small{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19 strong{
    width:100%!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    color:#87eda0!important;
    font-size:16px!important;
    line-height:.92!important;
  }
  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19 strong em{font-size:7px!important;}

  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo{
    order:3!important;
    flex:1 1 auto!important;
    width:62px!important;
    min-height:204px!important;
    max-height:none!important;
    padding:7px 5px!important;
    gap:0!important;
    border-radius:14px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-head{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-grid{
    width:100%!important;
    height:100%!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:4px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card{
    width:50px!important;
    min-width:50px!important;
    max-width:50px!important;
    height:29px!important;
    min-height:29px!important;
    padding:0 6px!important;
    display:grid!important;
    grid-template-columns:9px minmax(0,1fr)!important;
    gap:5px!important;
    border-radius:9px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card span{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card i{width:8px!important;height:8px!important;min-width:8px!important;}
  body.sidebar-collapsed #sidebarPrincipal .semaforo-sidebar-card b{
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    display:block!important;
    color:#173128!important;
    background:transparent!important;
    box-shadow:none!important;
    font-size:9px!important;
    text-align:center!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user{
    order:4!important;
    flex:0 0 106px!important;
    width:62px!important;
    height:106px!important;
    min-height:106px!important;
    max-height:106px!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:7px!important;
    overflow:visible!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user-identity{display:none!important;}

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter{
    position:relative!important;
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;
    height:58px!important;
    min-height:58px!important;
    max-height:58px!important;
    margin:0!important;
    padding:7px 4px 5px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:2px!important;
    border:1px solid rgba(159,235,193,.20)!important;
    border-radius:14px!important;
    background:linear-gradient(145deg,rgba(255,255,255,.052),rgba(255,255,255,.02))!important;
    color:#fff!important;
    font-size:0!important;
    overflow:hidden!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after{content:none!important;display:none!important;}

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > *{position:static!important;margin:0!important;padding:0!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter .storage-meter-icon{
    width:23px!important;
    height:23px!important;
    display:block!important;
    fill:none!important;
    stroke:#79e99a!important;
    stroke-width:1.8!important;
  }
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > span{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > b{
    display:block!important;
    width:auto!important;
    height:auto!important;
    color:#fff!important;
    font-size:10px!important;
    line-height:1!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair{
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;
    height:41px!important;
    min-height:41px!important;
    margin:0!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    border:1px solid rgba(159,235,193,.20)!important;
    border-radius:13px!important;
    background:rgba(255,255,255,.035)!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #btnSair .sidebar-exit-icon{
    width:23px!important;
    height:23px!important;
    stroke:#f2fff7!important;
  }
  body.sidebar-collapsed #sidebarPrincipal #btnSair .sidebar-exit-label{display:none!important;}
}

/* Celular: drawer sobreposto, mas mantendo o mesmo desenho visual. */
@media (max-width:640px){
  #sidebarPrincipal{
    width:min(var(--p22-sidebar-open),calc(100vw - 14px))!important;
    max-width:min(var(--p22-sidebar-open),calc(100vw - 14px))!important;
    box-shadow:18px 0 50px rgba(0,31,23,.28)!important;
  }

  .app,.main,
  body:not(.sidebar-collapsed) .app,
  body.sidebar-collapsed .app,
  body:not(.sidebar-collapsed) .main,
  body.sidebar-collapsed .main{margin-left:0!important;}

  body.sidebar-collapsed #sidebarPrincipal{
    transform:translateX(-110%)!important;
    pointer-events:none!important;
  }
}

/* Alturas realmente baixas podem rolar; nenhuma informacao e eliminada. */
@media (max-height:760px){
  #sidebarPrincipal{overflow-y:auto!important;overflow-x:hidden!important;}
  #sidebarPrincipal #sidebarSemaforo{flex:0 0 216px!important;}
}


/* ===== r98-6-5-master-p23-sidebar-sem-cortes-definitivo.css ===== */
/* ============================================================
   MASTER P23 — SIDEBAR SEM CORTES (CORRECAO ESTRUTURAL)
   - sidebar sempre ancorada em left:0;
   - area principal usa a largura REAL restante;
   - nenhum menu, titulo, filtro ou relatorio fica sob a sidebar;
   - verde institucional escuro no modo aberto;
   - azul preservado apenas no modo recolhido;
   - usuario/unidade alinhados e Storage no canto direito.
============================================================ */

:root{
  --p23-sidebar-open:356px;
  --p23-sidebar-closed:78px;
  --p23-sidebar-actual:var(--p23-sidebar-open);
  --p23-content-gap:22px;
  --p23-green-active-1:#155f45;
  --p23-green-active-2:#0d4937;
  --p23-green-active-border:rgba(111,184,145,.34);
  --p23-blue-active-1:#477cc2;
  --p23-blue-active-2:#315f9f;
}

html,body{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  overflow-x:hidden!important;
}

#appView.app-shell:not(.hidden){
  position:relative!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  transform:none!important;
  overflow:visible!important;
}

/* A barra nunca pode herdar deslocamentos ou transformacoes antigos. */
#appView #sidebarPrincipal{
  position:fixed!important;
  inset:0 auto 0 0!important;
  left:0!important;
  right:auto!important;
  top:0!important;
  bottom:0!important;
  margin:0!important;
  transform:translate3d(0,0,0)!important;
  transform-origin:left top!important;
  box-sizing:border-box!important;
  overflow-x:hidden!important;
  visibility:visible!important;
  opacity:1!important;
}

/* Todos os componentes internos comecam dentro da propria barra. */
#sidebarPrincipal .brand,
#sidebarPrincipal .side-menu,
#sidebarPrincipal .pims-status-moagem-p19,
#sidebarPrincipal #sidebarSemaforo,
#sidebarPrincipal .sidebar-user{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
  transform:none!important;
  box-sizing:border-box!important;
}

#sidebarPrincipal .brand-logo,
#sidebarPrincipal .side-menu .menu-item,
#sidebarPrincipal .side-menu .menu-icon,
#sidebarPrincipal .pims-status-moagem-p19 > *,
#sidebarPrincipal #sidebarSemaforo > *,
#sidebarPrincipal .sidebar-user > *{
  transform:none!important;
}

/* Icones e textos do menu aberto nunca podem desaparecer ou sair pela esquerda. */
body:not(.sidebar-collapsed) #sidebarPrincipal .side-menu .menu-item{
  padding-left:8px!important;
  grid-template-columns:40px minmax(0,1fr)!important;
  column-gap:9px!important;
}

body:not(.sidebar-collapsed) #sidebarPrincipal .side-menu .menu-icon{
  position:static!important;
  display:grid!important;
  width:40px!important;
  min-width:40px!important;
  height:38px!important;
  margin:0!important;
  place-items:center!important;
  visibility:visible!important;
  opacity:1!important;
}

body:not(.sidebar-collapsed) #sidebarPrincipal .side-menu .menu-label{
  position:static!important;
  display:block!important;
  min-width:0!important;
  margin:0!important;
  color:inherit!important;
  visibility:visible!important;
  opacity:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* Verde escuro, sem neon, coerente com o restante do sistema. */
body:not(.sidebar-collapsed) #sidebarPrincipal .side-menu .menu-item.active{
  border-color:var(--p23-green-active-border)!important;
  background:linear-gradient(90deg,var(--p23-green-active-1),var(--p23-green-active-2))!important;
  color:#f7fff9!important;
  box-shadow:inset 3px 0 0 rgba(105,187,145,.42),0 7px 18px rgba(0,32,23,.16)!important;
}

body:not(.sidebar-collapsed) #sidebarPrincipal .side-menu .menu-item.active .menu-icon{
  color:#eefaf3!important;
  background:rgba(255,255,255,.045)!important;
  box-shadow:none!important;
}

body:not(.sidebar-collapsed) #sidebarPrincipal .side-menu .menu-item.active::after{
  color:#b9dcca!important;
}

/* Rodape: usuario/unidade no mesmo eixo; Storage ancorado no canto direito. */
body:not(.sidebar-collapsed) #sidebarPrincipal .sidebar-user{
  grid-template-columns:minmax(0,1fr) 106px!important;
  align-items:center!important;
  column-gap:8px!important;
  padding-left:8px!important;
  padding-right:8px!important;
}

body:not(.sidebar-collapsed) #sidebarPrincipal .sidebar-user-identity{
  min-width:0!important;
  width:100%!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
}

body:not(.sidebar-collapsed) #sidebarPrincipal .sidebar-user-copy{
  min-width:0!important;
  margin:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:3px!important;
  text-align:left!important;
}

body:not(.sidebar-collapsed) #sidebarPrincipal #usuarioLogado,
body:not(.sidebar-collapsed) #sidebarPrincipal #usuarioUnidade{
  position:static!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  transform:none!important;
}

body:not(.sidebar-collapsed) #sidebarPrincipal #usuarioLogado{line-height:1.05!important;}
body:not(.sidebar-collapsed) #sidebarPrincipal #usuarioUnidade{line-height:1.05!important;}

body:not(.sidebar-collapsed) #sidebarPrincipal #localStorageMeter{
  justify-self:end!important;
  align-self:center!important;
  margin:0 0 0 auto!important;
  transform:none!important;
}

/* Desktop, notebook e janela dividida: largura e margem formam uma unica conta. */
@media (min-width:641px){
  body:not(.sidebar-collapsed){--p23-sidebar-actual:var(--p23-sidebar-open);}
  body.sidebar-collapsed{--p23-sidebar-actual:var(--p23-sidebar-closed);}

  body:not(.sidebar-collapsed) #sidebarPrincipal{
    width:var(--p23-sidebar-open)!important;
    min-width:var(--p23-sidebar-open)!important;
    max-width:var(--p23-sidebar-open)!important;
    pointer-events:auto!important;
  }

  body.sidebar-collapsed #sidebarPrincipal{
    width:var(--p23-sidebar-closed)!important;
    min-width:var(--p23-sidebar-closed)!important;
    max-width:var(--p23-sidebar-closed)!important;
    pointer-events:auto!important;
  }

  #appView .app.main,
  #appView .main{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    margin-top:0!important;
    margin-right:0!important;
    margin-bottom:0!important;
    margin-left:calc(var(--p23-sidebar-actual) + var(--p23-content-gap))!important;
    width:calc(100dvw - var(--p23-sidebar-actual) - var(--p23-content-gap))!important;
    min-width:0!important;
    max-width:calc(100dvw - var(--p23-sidebar-actual) - var(--p23-content-gap))!important;
    transform:none!important;
    box-sizing:border-box!important;
    overflow:visible!important;
    container-type:inline-size!important;
    container-name:p23-main!important;
  }

  #appView .topbar,
  #appView #menuHost,
  #appView #menuHost > .menu-fragment{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    transform:none!important;
    box-sizing:border-box!important;
  }

  /* O item ativo recolhido continua azul, como aprovado. */
  body.sidebar-collapsed #sidebarPrincipal .side-menu .menu-item.active{
    border-color:rgba(139,192,255,.46)!important;
    background:linear-gradient(145deg,var(--p23-blue-active-1),var(--p23-blue-active-2))!important;
    box-shadow:inset 0 0 0 1px rgba(205,228,255,.14),0 8px 18px rgba(0,31,67,.24)!important;
  }

  /* Ordem do menu recolhido: controle, marca, menus, moagem, semaforo e rodape. */
  body.sidebar-collapsed #sidebarPrincipal{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scrollbar-width:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal::-webkit-scrollbar{display:none!important;}

  body.sidebar-collapsed #sidebarPrincipal .sidebar-toggle{
    position:static!important;
    inset:auto!important;
    order:0!important;
    flex:0 0 40px!important;
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;
    height:40px!important;
    min-height:40px!important;
    margin:0 auto 1px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    border:1px solid rgba(159,235,193,.24)!important;
    border-radius:13px!important;
    background:rgba(255,255,255,.055)!important;
    color:#f5fff8!important;
    font-size:22px!important;
    line-height:1!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    cursor:pointer!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .brand{order:1!important;}
  body.sidebar-collapsed #sidebarPrincipal .side-menu{order:2!important;}

  /* Rotacao da moagem compacta, com valor e unidade legiveis. */
  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19{
    order:3!important;
    flex:0 0 104px!important;
    display:flex!important;
    width:62px!important;
    min-width:62px!important;
    max-width:62px!important;
    height:104px!important;
    min-height:104px!important;
    max-height:104px!important;
    margin:1px 0 0!important;
    padding:7px 5px!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:5px!important;
    overflow:hidden!important;
    border:1px solid rgba(159,235,193,.20)!important;
    border-radius:14px!important;
    background:linear-gradient(145deg,rgba(255,255,255,.052),rgba(255,255,255,.02))!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .status-head{
    position:static!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    display:block!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .status-head small{
    display:block!important;
    width:100%!important;
    color:#83dca0!important;
    font-size:7px!important;
    line-height:1.05!important;
    text-align:center!important;
    white-space:normal!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .status-pill,
  body.sidebar-collapsed #sidebarPrincipal .status-lines-p19,
  body.sidebar-collapsed #sidebarPrincipal .status-moagem-info-p19,
  body.sidebar-collapsed #sidebarPrincipal .pims-status-moagem-p19 .sidebar-refresh-btn{
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-card-p19{
    position:static!important;
    flex:1 1 auto!important;
    width:50px!important;
    min-width:50px!important;
    max-width:50px!important;
    min-height:0!important;
    margin:0!important;
    padding:4px 3px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    border-radius:10px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-icon-p19{
    display:grid!important;
    width:23px!important;
    min-width:23px!important;
    height:23px!important;
    place-items:center!important;
    visibility:visible!important;
    opacity:1!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-icon-p19 svg{
    display:block!important;
    width:14px!important;
    height:14px!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19{
    width:100%!important;
    margin:0!important;
    text-align:center!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19 small{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19 strong{
    display:flex!important;
    width:100%!important;
    margin:0!important;
    flex-direction:column!important;
    align-items:center!important;
    color:#96e5aa!important;
    font-size:14px!important;
    line-height:.92!important;
    letter-spacing:-.035em!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .status-moagem-kpi-p19 strong em{
    display:block!important;
    margin-top:2px!important;
    color:#a9d9b9!important;
    font-size:6.5px!important;
    line-height:1!important;
  }

  /* Semaforo compacto: sem espacos esticados entre os seis estados. */
  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo{
    order:4!important;
    flex:0 0 216px!important;
    width:62px!important;
    min-width:62px!important;
    max-width:62px!important;
    height:216px!important;
    min-height:216px!important;
    max-height:216px!important;
    margin:1px 0 0!important;
    padding:7px 5px!important;
    display:block!important;
    overflow:hidden!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo .semaforo-sidebar-head{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo .semaforo-sidebar-grid{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:5px!important;
    overflow:visible!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo .semaforo-sidebar-card{
    flex:0 0 29px!important;
    width:50px!important;
    min-width:50px!important;
    max-width:50px!important;
    height:29px!important;
    min-height:29px!important;
    max-height:29px!important;
    margin:0!important;
  }

  body.sidebar-collapsed #sidebarPrincipal .sidebar-user{order:5!important;}

  /* Storage recolhido: icone de banco de dados + percentual, ambos visiveis. */
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter{
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;
    height:50px!important;
    min-height:50px!important;
    max-height:50px!important;
    margin:0!important;
    padding:5px 4px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    overflow:hidden!important;
    font-size:0!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::before,
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter::after{
    content:none!important;
    display:none!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter .storage-meter-icon{
    position:static!important;
    display:block!important;
    width:19px!important;
    min-width:19px!important;
    max-width:19px!important;
    height:19px!important;
    min-height:19px!important;
    max-height:19px!important;
    margin:0!important;
    fill:none!important;
    stroke:#86d9a2!important;
    stroke-width:1.75!important;
    visibility:visible!important;
    opacity:1!important;
  }

  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > span{display:none!important;}
  body.sidebar-collapsed #sidebarPrincipal #localStorageMeter > b{
    position:static!important;
    display:block!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    color:#fff!important;
    font-size:9px!important;
    line-height:1!important;
    visibility:visible!important;
    opacity:1!important;
  }
}

/* A responsividade considera a area LIVRE, nao a largura total do monitor. */
@container p23-main (max-width:760px){
  #appView .topbar.topbar-premium-vfinal{
    grid-template-columns:1fr!important;
    padding:18px!important;
  }

  #appView .topbar .top-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    justify-content:stretch!important;
  }

  #appView .topbar .top-actions .btn{width:100%!important;}

  #appView :is(.filters,.filters-panel,.consultas-filters,.disp-filters,.det-filters,.gos-filters,.materiais-filters,.materiais-filters-enxutos){
    grid-template-columns:minmax(0,1fr)!important;
  }

  #appView :is(.consultas-filter-actions,.disp-filter-actions,.det-filter-actions,.gos-filter-actions){
    grid-column:1 / -1!important;
    width:100%!important;
    justify-content:stretch!important;
  }
}

@container p23-main (min-width:761px) and (max-width:1100px){
  #appView .topbar.topbar-premium-vfinal{grid-template-columns:1fr!important;}
  #appView .topbar .top-actions{justify-content:flex-start!important;}

  #appView :is(.filters,.filters-panel,.consultas-filters,.disp-filters,.det-filters,.gos-filters,.materiais-filters,.materiais-filters-enxutos){
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  #appView :is(.consultas-filter-actions,.disp-filter-actions,.det-filter-actions,.gos-filter-actions){
    grid-column:1 / -1!important;
    justify-content:flex-start!important;
  }
}

/* Tabelas podem rolar internamente; nunca ficam escondidas pela sidebar. */
#appView .table-shell,
#appView .table-wrap,
#appView .data-table-wrap,
#appView .grid-scroll,
#appView .report-table-wrap{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  transform:none!important;
  overflow-x:auto!important;
  overscroll-behavior-x:contain!important;
  scrollbar-gutter:stable!important;
}

/* Celular continua como drawer, sem reservar largura vazia. */
@media (max-width:640px){
  :root{--p23-content-gap:0px;}

  #appView .app.main,
  #appView .main,
  body:not(.sidebar-collapsed) #appView .main,
  body.sidebar-collapsed #appView .main{
    margin-left:0!important;
    width:100%!important;
    max-width:100%!important;
  }

  body:not(.sidebar-collapsed) #sidebarPrincipal{
    left:0!important;
    transform:translate3d(0,0,0)!important;
  }

  body.sidebar-collapsed #sidebarPrincipal{
    transform:translate3d(-110%,0,0)!important;
    pointer-events:none!important;
  }
}

@media print{
  #sidebarPrincipal{display:none!important;}
  #appView .app.main,#appView .main{
    margin:0!important;
    width:100%!important;
    max-width:100%!important;
    padding:0!important;
  }
}


/* ===== r98-6-5-master-p24-localhost-rede-sincronizados.css ===== */
/* ============================================================
   MASTER P24 — ACABAMENTO RESPONSIVO E APROVEITAMENTO DE AREA
   Ultima camada visual. Remove a faixa clara da P22, reserva somente
   8 px entre a sidebar e a tela, compacta o semaforo e alinha o rodape.
============================================================ */

:root{
  --p23-content-gap:8px;
  --p24-content-gap:8px;
  --p24-sidebar-line:rgba(132,211,167,.25);
  --p24-control-line:rgba(159,235,193,.22);
}

/* Sem a faixa branca artificial. O respiro passa a ser a area real de 8 px. */
#appView #sidebarPrincipal{
  border-right:1px solid var(--p24-sidebar-line)!important;
  box-shadow:inset 0 0 0 1px rgba(151,229,187,.10),8px 0 22px rgba(0,42,29,.12)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-width:thin!important;
  scrollbar-color:rgba(130,220,170,.24) transparent!important;
}

#appView #sidebarPrincipal::-webkit-scrollbar{width:4px!important;}
#appView #sidebarPrincipal::-webkit-scrollbar-track{background:transparent!important;}
#appView #sidebarPrincipal::-webkit-scrollbar-thumb{
  border-radius:999px!important;
  background:rgba(130,220,170,.24)!important;
}

/* Semaforo aberto: seis linhas consecutivas, sem distribuicao vertical. */
body:not(.sidebar-collapsed) #sidebarPrincipal #sidebarSemaforo{
  flex:0 0 263px!important;
  height:263px!important;
  min-height:263px!important;
  max-height:263px!important;
  padding:9px!important;
  gap:5px!important;
}

body:not(.sidebar-collapsed) #sidebarPrincipal #sidebarSemaforo .semaforo-sidebar-grid{
  flex:0 0 auto!important;
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:stretch!important;
  gap:3px!important;
}

body:not(.sidebar-collapsed) #sidebarPrincipal #sidebarSemaforo .semaforo-sidebar-card{
  flex:0 0 34px!important;
  height:34px!important;
  min-height:34px!important;
  max-height:34px!important;
  margin:0!important;
}

/* No recolhido a divisao e minima e uniforme. */
body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo{
  flex:0 0 211px!important;
  height:211px!important;
  min-height:211px!important;
  max-height:211px!important;
}

body.sidebar-collapsed #sidebarPrincipal #sidebarSemaforo .semaforo-sidebar-grid{
  height:auto!important;
  justify-content:flex-start!important;
  gap:4px!important;
}

/* Storage e Sair compartilham exatamente o mesmo eixo, borda e raio. */
body.sidebar-collapsed #sidebarPrincipal .sidebar-user{
  width:62px!important;
  min-width:62px!important;
  max-width:62px!important;
  align-items:center!important;
  gap:7px!important;
}

body.sidebar-collapsed #sidebarPrincipal #localStorageMeter,
body.sidebar-collapsed #sidebarPrincipal #btnSair{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  justify-self:center!important;
  align-self:center!important;
  width:58px!important;
  min-width:58px!important;
  max-width:58px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
  border:1px solid var(--p24-control-line)!important;
  border-radius:13px!important;
  transform:none!important;
}

/* Desktop/notebook: calculo fechado; o conteudo termina no viewport. */
@media (min-width:641px){
  #appView .app.main,
  #appView .main{
    margin-left:calc(var(--p23-sidebar-actual) + var(--p24-content-gap))!important;
    width:calc(100dvw - var(--p23-sidebar-actual) - var(--p24-content-gap))!important;
    min-width:0!important;
    max-width:calc(100dvw - var(--p23-sidebar-actual) - var(--p24-content-gap))!important;
  }

  body.sidebar-collapsed #sidebarPrincipal{
    box-shadow:inset 0 0 0 1px rgba(151,229,187,.10),8px 0 20px rgba(0,42,29,.11)!important;
  }
}

/* Alturas de notebook: compacta proporcionalmente, mas preserva todos os itens. */
@media (min-width:641px) and (max-height:900px){
  body:not(.sidebar-collapsed) #sidebarPrincipal{gap:4px!important;padding-top:7px!important;padding-bottom:7px!important;}
  body:not(.sidebar-collapsed) #sidebarPrincipal .brand{flex-basis:50px!important;min-height:50px!important;}
  body:not(.sidebar-collapsed) #sidebarPrincipal .side-menu{gap:1px!important;}
  body:not(.sidebar-collapsed) #sidebarPrincipal .side-menu .menu-item{height:34px!important;min-height:34px!important;}
  body:not(.sidebar-collapsed) #sidebarPrincipal .side-menu .menu-icon{height:32px!important;}
  body:not(.sidebar-collapsed) #sidebarPrincipal .pims-status-moagem-p19{height:130px!important;min-height:130px!important;max-height:130px!important;flex-basis:130px!important;}
  body:not(.sidebar-collapsed) #sidebarPrincipal #sidebarSemaforo{height:225px!important;min-height:225px!important;max-height:225px!important;flex-basis:225px!important;padding:7px!important;gap:3px!important;}
  body:not(.sidebar-collapsed) #sidebarPrincipal #sidebarSemaforo .semaforo-sidebar-grid{gap:2px!important;}
  body:not(.sidebar-collapsed) #sidebarPrincipal #sidebarSemaforo .semaforo-sidebar-card{height:29px!important;min-height:29px!important;max-height:29px!important;flex-basis:29px!important;}
  body:not(.sidebar-collapsed) #sidebarPrincipal .sidebar-user{height:84px!important;min-height:84px!important;max-height:84px!important;flex-basis:84px!important;}
}

/* Tabelas largas rolam dentro da propria tela e sempre partem da primeira coluna. */
#appView :is(.table-shell,.table-wrap,.data-table-wrap,.grid-scroll,.report-table-wrap,.materiais-table-shell){
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overscroll-behavior-x:contain!important;
}

/* Celular: drawer; nenhuma largura fica reservada quando fechado. */
@media (max-width:640px){
  :root{--p24-content-gap:0px;}

  #appView #sidebarPrincipal{
    width:min(356px,calc(100dvw - 12px))!important;
    min-width:min(356px,calc(100dvw - 12px))!important;
    max-width:min(356px,calc(100dvw - 12px))!important;
    box-shadow:16px 0 42px rgba(0,31,23,.28)!important;
  }

  #appView .app.main,
  #appView .main{
    margin-left:0!important;
    width:100dvw!important;
    min-width:0!important;
    max-width:100dvw!important;
  }

  #appView .topbar,
  #appView #menuHost,
  #appView #menuHost > .menu-fragment{
    min-width:0!important;
    max-width:100%!important;
  }
}

@media print{
  #appView .app.main,#appView .main{
    margin-left:0!important;
    width:100%!important;
    max-width:100%!important;
  }
}


/* ===== r53-filtros-painel.css ===== */
/* R53 — padrão único de filtros inspirado no Painel de Apontamentos. */
:root{
  --r53-filter-height:46px;
  --r53-filter-radius:12px;
  --r53-filter-border:#cbd9d2;
  --r53-filter-border-hover:#96b8a8;
  --r53-filter-focus:#2f7f5d;
  --r53-filter-text:#173c2f;
  --r53-filter-muted:#557066;
  --r53-filter-bg:#fff;
  --r53-filter-disabled:#f2f5f3;
}

/* Mantém o grid específico de cada menu e padroniza apenas a apresentação. */
.filters,
.consultas-filters,
.det-filters,
.disp-filters,
.materiais-filters,
.status-filter-grid,
.filter-grid{
  align-items:end!important;
  gap:10px!important;
}

.filters > label,
.filters > .field,
.filters > .ms-filter,
.consultas-filters > label,
.det-filters > label,
.disp-filters > label,
.materiais-date-filter,
.modal .field,
.modal label.field,
.modal .form-field,
.modal .filter-field{
  min-width:0!important;
  margin:0!important;
}

.filters > label > span:first-child,
.filters > label.field > span:first-child,
.filters > label:not(.switch):not(.toggle) > span:first-child,
.ms-filter-label,
.materiais-date-filter > label,
.modal .field > span:first-child,
.modal label.field > span:first-child,
.modal .form-field > span:first-child,
.modal .filter-field > span:first-child{
  display:block!important;
  margin:0 0 6px!important;
  color:var(--r53-filter-muted)!important;
  font-size:8px!important;
  line-height:1.05!important;
  font-weight:950!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* Aderência usa texto direto dentro do label. */
.aderencia-filters > label,
.aderencia-filter-grid > label,
.aderencia-filter-panel .filters > label{
  color:var(--r53-filter-muted)!important;
  font-size:8px!important;
  line-height:1.05!important;
  font-weight:950!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
}

.filters input:not([type="checkbox"]):not([type="radio"]),
.filters select,
.filters textarea,
.ms-filter-button,
.aderencia-filter-panel input:not([type="checkbox"]):not([type="radio"]),
.aderencia-filter-panel select,
.modal .field input:not([type="checkbox"]):not([type="radio"]),
.modal .field select,
.modal .field textarea,
.modal .form-field input:not([type="checkbox"]):not([type="radio"]),
.modal .form-field select,
.modal .filter-field input:not([type="checkbox"]):not([type="radio"]),
.modal .filter-field select,
.login-card input,
.login-card select{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:var(--r53-filter-height)!important;
  height:var(--r53-filter-height)!important;
  margin:0!important;
  border:1px solid var(--r53-filter-border)!important;
  border-radius:var(--r53-filter-radius)!important;
  outline:0!important;
  background:var(--r53-filter-bg)!important;
  color:var(--r53-filter-text)!important;
  padding:0 13px!important;
  font:800 11px/1.2 Inter,Segoe UI,Arial,sans-serif!important;
  box-shadow:0 1px 1px rgba(15,61,46,.02)!important;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease!important;
}

.filters textarea,
.modal .field textarea,
.modal .form-field textarea{
  height:auto!important;
  min-height:86px!important;
  padding:11px 13px!important;
  resize:vertical!important;
}

.filters select,
.aderencia-filter-panel select,
.modal .field select,
.modal .form-field select,
.login-card select{
  appearance:none!important;
  -webkit-appearance:none!important;
  padding-right:34px!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23285f49' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='m1 1 5 5 5-5'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 12px center!important;
  background-size:10px 7px!important;
}

.filters input::placeholder,
.modal .field input::placeholder,
.modal .field textarea::placeholder,
.login-card input::placeholder{
  color:#8b9b94!important;
  font-weight:650!important;
}

.filters input:not([type="checkbox"]):not([type="radio"]):hover,
.filters select:hover,
.ms-filter-button:hover,
.aderencia-filter-panel input:not([type="checkbox"]):not([type="radio"]):hover,
.aderencia-filter-panel select:hover,
.modal .field input:not([type="checkbox"]):not([type="radio"]):hover,
.modal .field select:hover,
.modal .field textarea:hover,
.login-card input:hover,
.login-card select:hover{
  border-color:var(--r53-filter-border-hover)!important;
}

.filters input:not([type="checkbox"]):not([type="radio"]):focus,
.filters select:focus,
.filters textarea:focus,
.ms-filter.open .ms-filter-button,
.ms-filter-button:focus-visible,
.aderencia-filter-panel input:not([type="checkbox"]):not([type="radio"]):focus,
.aderencia-filter-panel select:focus,
.modal .field input:not([type="checkbox"]):not([type="radio"]):focus,
.modal .field select:focus,
.modal .field textarea:focus,
.login-card input:focus,
.login-card select:focus{
  border-color:var(--r53-filter-focus)!important;
  box-shadow:0 0 0 3px rgba(47,127,93,.12)!important;
  background:#fff!important;
}

.filters input:disabled,
.filters select:disabled,
.ms-filter-button:disabled,
.modal .field input:disabled,
.modal .field select:disabled{
  cursor:not-allowed!important;
  color:#8b9993!important;
  border-color:#dde5e1!important;
  background:var(--r53-filter-disabled)!important;
  box-shadow:none!important;
}

.ms-filter-button{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  text-align:left!important;
  cursor:pointer!important;
}

.ms-filter-button small{
  color:#285f49!important;
  font-size:10px!important;
}
.ms-filter-panel{
  border:1px solid #cbd9d2!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 20px 48px rgba(15,61,46,.22)!important;
}
.ms-filter-search{
  height:40px!important;
  min-height:40px!important;
  border-radius:10px!important;
  background:#f8fbf9!important;
}
.ms-option{
  border-radius:9px!important;
  color:#26483a!important;
  font-size:11px!important;
  font-weight:750!important;
}
.ms-option:hover{background:#eef6f2!important;}
.ms-option:has(input:checked){background:#e3f2ea!important;color:#0f5337!important;}

/* Datas do menu Materiais formam um único grupo, mas mantêm dois controles. */
.materiais-date-row{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
}

/* Ações acompanham a altura dos filtros. */
.consultas-filter-actions,
.det-filter-actions,
.disp-filter-actions{
  align-self:end!important;
  min-height:var(--r53-filter-height)!important;
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  flex-wrap:wrap!important;
}

@media(max-width:900px){
  .filters,
  .consultas-filters,
  .det-filters,
  .disp-filters,
  .materiais-filters{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .consultas-filter-actions,
  .det-filter-actions,
  .disp-filter-actions{
    grid-column:1/-1!important;
  }
}

@media(max-width:620px){
  .filters,
  .consultas-filters,
  .det-filters,
  .disp-filters,
  .materiais-filters{
    grid-template-columns:1fr!important;
  }
  .materiais-date-row{grid-template-columns:1fr!important;}
}

/* R53 — Observação e Apontamento em colunas próprias sem alargar o relatório. */
.report-table-obs-apont{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
}
.report-table-obs-apont th,
.report-table-obs-apont td{
  min-width:0!important;
  max-width:none!important;
  padding:5px 6px!important;
  font-size:9px!important;
  line-height:1.15!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  white-space:normal!important;
}
.report-table-obs-apont .col-local{width:13%!important;}
.report-table-obs-apont .col-origem{width:7%!important;}
.report-table-obs-apont .col-equip{width:10%!important;}
.report-table-obs-apont .col-classe{width:12%!important;}
.report-table-obs-apont .col-os{width:10%!important;}
.report-table-obs-apont .col-observacao{width:14%!important;}
.report-table-obs-apont .col-apontamento{width:13%!important;}
.report-table-obs-apont .col-prev{width:13%!important;}
.report-table-obs-apont .col-horas{width:8%!important;}
.report-text-clamp,
.compact-print-table .compact-obs{
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:3!important;
  overflow:hidden!important;
  white-space:normal!important;
}
.compact-print-table.report-table-obs-apont .col-local{width:11%!important;}
.compact-print-table.report-table-obs-apont .col-equip{width:7%!important;}
.compact-print-table.report-table-obs-apont .col-origem{width:7%!important;}
.compact-print-table.report-table-obs-apont .col-tipo{width:9%!important;}
.compact-print-table.report-table-obs-apont .col-classe{width:9%!important;}
.compact-print-table.report-table-obs-apont .col-motivo{width:8%!important;}
.compact-print-table.report-table-obs-apont .col-os{width:8%!important;}
.compact-print-table.report-table-obs-apont .col-observacao{width:13%!important;}
.compact-print-table.report-table-obs-apont .col-apontamento{width:12%!important;}
.compact-print-table.report-table-obs-apont .col-prev{width:11%!important;}
.compact-print-table.report-table-obs-apont .col-horas{width:5%!important;}

/* Consultas: nove colunas dentro da área útil, sem criar rolagem lateral nova. */
.consultas-page .table-shell,
.consultas-table-shell{overflow-x:hidden!important;}
#tabelaConsultas{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
}
#tabelaConsultas th,#tabelaConsultas td{
  min-width:0!important;
  max-width:none!important;
  padding:7px 6px!important;
  font-size:10px!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}

/* DTF: Sem O.S. deixa de receber fundo amarelo; demais estados permanecem intactos. */
.report-view.relatorio-alocacao-total-frente .rel-aloc-fleet.yellow,
.report-view.relatorio-alocacao-total-frente .rel-aloc-fleet.neutral-sem-os{
  background:#f7f9f8!important;
  color:#35473f!important;
  border-color:#cfd9d4!important;
  box-shadow:none!important;
}
.report-view.relatorio-alocacao-total-frente .linha-sem-os-relatorio td{
  background:#fff!important;
}
.report-view.relatorio-alocacao-total-frente .linha-sem-os-relatorio .badge.yellow{
  background:#f2f5f3!important;
  color:#4d5e56!important;
  border:1px solid #d4ddd8!important;
}

/* Disponibilidade de 30 dias: usa toda a largura e nunca depende de scroll. */
.relatorio-disponibilidade-compacta .disp-report-compact-shell{
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-hours{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-hours th,
.relatorio-disponibilidade-compacta .disp-report-compact-hours td{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  height:46px!important;
  padding:5px 2px!important;
  font-size:clamp(7px,.62vw,10px)!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-hours th.disp-col-item,
.relatorio-disponibilidade-compacta .disp-report-compact-hours td.disp-report-item-cell{
  width:12%!important;
  min-width:0!important;
  max-width:none!important;
  padding-left:6px!important;
  white-space:normal!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-hours th.disp-col-total,
.relatorio-disponibilidade-compacta .disp-report-compact-hours td:last-child{
  width:4.5%!important;
  min-width:0!important;
  max-width:none!important;
}
.relatorio-disponibilidade-compacta .disp-periodo-longo .disp-report-item-cell b{font-size:9px!important;}
.relatorio-disponibilidade-compacta .disp-periodo-longo .disp-report-item-cell small{font-size:6.5px!important;}
.relatorio-disponibilidade-compacta .disp-periodo-longo .disp-report-compact-hours th,
.relatorio-disponibilidade-compacta .disp-periodo-longo .disp-report-compact-hours td{
  padding-left:1px!important;
  padding-right:1px!important;
}

/* Toolbar da aplicação clássica também segue o componente visual oficial. */
.card.toolbar label{
  min-width:0!important;
  color:var(--r53-filter-muted)!important;
  font-size:8px!important;
  font-weight:950!important;
  text-transform:uppercase!important;
}
.card.toolbar .filter-control{
  width:100%!important;
  height:46px!important;
  min-height:46px!important;
  border:1px solid var(--r53-filter-border)!important;
  border-radius:12px!important;
  background:#fff!important;
  color:var(--r53-filter-text)!important;
}


/* R53 — cobertura dos filtros em painéis e barras que não usam a classe .filters. */
#menuHost :is(.filter-panel,.filter-toolbar,.toolbar-filters,.status-toolbar-v166,.aderencia-filtros,.materiais-date-row) label,
#modalRoot :is(.filter-panel,.filter-toolbar,.toolbar-filters,.status-toolbar-v166) label{
  min-width:0!important;
  color:var(--r53-filter-muted)!important;
  font-size:8px!important;
  line-height:1.05!important;
  font-weight:950!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
}
#menuHost :is(.filter-panel,.filter-toolbar,.toolbar-filters,.status-toolbar-v166,.aderencia-filtros,.materiais-date-row) :is(input[type="text"],input[type="search"],input[type="date"],input[type="datetime-local"],input[type="number"],select),
#modalRoot :is(.filter-panel,.filter-toolbar,.toolbar-filters,.status-toolbar-v166) :is(input[type="text"],input[type="search"],input[type="date"],input[type="datetime-local"],input[type="number"],select),
.rel-origem-filter-wrap select{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:var(--r53-filter-height)!important;
  min-height:var(--r53-filter-height)!important;
  border:1px solid var(--r53-filter-border)!important;
  border-radius:var(--r53-filter-radius)!important;
  outline:0!important;
  background-color:#fff!important;
  color:var(--r53-filter-text)!important;
  padding:0 13px!important;
  font:800 11px/1.2 Inter,Segoe UI,Arial,sans-serif!important;
}
#menuHost :is(.filter-panel,.filter-toolbar,.toolbar-filters,.status-toolbar-v166,.aderencia-filtros,.materiais-date-row) select,
#modalRoot :is(.filter-panel,.filter-toolbar,.toolbar-filters,.status-toolbar-v166) select,
.rel-origem-filter-wrap select{
  appearance:none!important;
  -webkit-appearance:none!important;
  padding-right:34px!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23285f49' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='m1 1 5 5 5-5'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 12px center!important;
  background-size:10px 7px!important;
}
#menuHost :is(.filter-panel,.filter-toolbar,.toolbar-filters,.status-toolbar-v166,.aderencia-filtros,.materiais-date-row) :is(input,select):focus,
#modalRoot :is(.filter-panel,.filter-toolbar,.toolbar-filters,.status-toolbar-v166) :is(input,select):focus,
.rel-origem-filter-wrap select:focus{
  border-color:var(--r53-filter-focus)!important;
  box-shadow:0 0 0 3px rgba(47,127,93,.12)!important;
}
.rel-origem-filter-wrap>span{
  display:block!important;
  margin:0 0 6px!important;
  color:var(--r53-filter-muted)!important;
  font-size:8px!important;
  font-weight:950!important;
  text-transform:uppercase!important;
}

/* Tabelas com Observação e Apontamento separados permanecem dentro da área útil. */
#tabelaConsultas,
#tabelaParadasFiltro,
.modal-os-table{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
}
#tabelaConsultas th,#tabelaConsultas td,
#tabelaParadasFiltro th,#tabelaParadasFiltro td,
.modal-os-table th,.modal-os-table td{
  min-width:0!important;
  overflow-wrap:anywhere!important;
  white-space:normal!important;
}
#tabelaConsultas .cell-clamp,
#tabelaParadasFiltro .cell-clamp{
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:3!important;
  overflow:hidden!important;
}
.consultas-table-shell,
.det-paradas-table-shell,
.modal-os-shell{overflow-x:hidden!important;}

/* DTF: Sem O.S. neutro somente no relatório; demais estados preservam suas cores. */
.report-view.relatorio-alocacao-total-frente .rel-aloc-fleet.yellow{
  background:#f7f9f8!important;
  color:#35473f!important;
  border-color:#cfd9d4!important;
}
.report-view.relatorio-alocacao-total-frente .linha-sem-os-relatorio td{background:#fff!important;}


/* Disponibilidade longa: a tabela usa 100% da largura, sem barra lateral. */
.report-view.relatorio-disponibilidade-compacta,
.report-view.relatorio-disponibilidade-compacta .disp-report-compact-shell{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:hidden!important;
}
.report-view .disp-report-compact-hours{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
}
.report-view .disp-report-compact-hours th,
.report-view .disp-report-compact-hours td{
  min-width:0!important;
  max-width:none!important;
  width:auto!important;
  padding:4px 2px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
.report-view .disp-report-compact-hours .disp-col-item,
.report-view .disp-report-compact-hours .disp-report-item-cell{
  width:clamp(118px,14%,210px)!important;
  white-space:normal!important;
}
.report-view .disp-report-compact-hours .disp-col-total,
.report-view .disp-report-compact-hours td:last-child{width:48px!important;}
.report-view .disp-periodo-longo .disp-report-compact-hours th,
.report-view .disp-periodo-longo .disp-report-compact-hours td{
  padding:3px 1px!important;
  font-size:clamp(6.5px,.48vw,8px)!important;
}
.report-view .disp-periodo-longo .disp-report-item-cell b{font-size:8px!important;}
.report-view .disp-periodo-longo .disp-report-item-cell small{font-size:6.5px!important;}

@media print{
  .report-view .disp-report-compact-shell{overflow:visible!important;}
  .report-view .disp-periodo-longo .disp-report-compact-hours th,
  .report-view .disp-periodo-longo .disp-report-compact-hours td{font-size:6.2px!important;padding:2px 1px!important;}
}


/* ===== r54-corretivo.css ===== */
/* R54 CORRETIVO — filtros premium, Sem O.S. amarelo e proteção responsiva. */
:root{
  --r54-filter-height:40px;
  --r54-filter-radius:10px;
  --r54-filter-border:#c8d8d0;
  --r54-filter-border-active:#2f7f5d;
  --r54-filter-bg:#fff;
  --r54-filter-soft:#f7faf8;
  --r54-filter-text:#183d30;
  --r54-filter-muted:#60766c;
}

/* Campo fechado: mesmo desenho do Painel de Apontamentos. */
.ms-filter{
  position:relative!important;
  min-width:0!important;
}
.ms-filter-label{
  display:block!important;
  margin:0 0 5px!important;
  color:var(--r54-filter-muted)!important;
  font:950 8px/1 Inter,"Segoe UI",Arial,sans-serif!important;
  letter-spacing:.025em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.ms-filter-button{
  width:100%!important;
  min-width:0!important;
  height:var(--r54-filter-height)!important;
  min-height:var(--r54-filter-height)!important;
  padding:0 10px 0 12px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto auto!important;
  align-items:center!important;
  gap:7px!important;
  border:1px solid var(--r54-filter-border)!important;
  border-radius:var(--r54-filter-radius)!important;
  outline:0!important;
  color:var(--r54-filter-text)!important;
  background:var(--r54-filter-bg)!important;
  box-shadow:0 1px 2px rgba(15,61,46,.035)!important;
  text-align:left!important;
  cursor:pointer!important;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease!important;
}
.ms-filter-button:hover{
  border-color:#8fb9a7!important;
  background:#fff!important;
}
.ms-filter.open .ms-filter-button,
.ms-filter-button:focus-visible{
  border-color:var(--r54-filter-border-active)!important;
  box-shadow:0 0 0 3px rgba(47,127,93,.12)!important;
  background:#fff!important;
}
.ms-filter-button span{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:var(--r54-filter-text)!important;
  font:850 10px/1.15 Inter,"Segoe UI",Arial,sans-serif!important;
  text-transform:uppercase!important;
}
.ms-filter-button small{
  width:auto!important;
  height:auto!important;
  padding:0!important;
  display:block!important;
  border:0!important;
  border-radius:0!important;
  color:#497064!important;
  background:transparent!important;
  font:900 12px/1 Arial,sans-serif!important;
  transition:transform .15s ease!important;
}
.ms-filter.open .ms-filter-button small{transform:rotate(180deg)!important;}
.ms-filter-selected-count{
  min-width:19px!important;
  height:19px!important;
  padding:0 5px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:999px!important;
  color:#fff!important;
  background:#2f8f5b!important;
  font:950 7px/1 Inter,"Segoe UI",Arial,sans-serif!important;
}
.ms-filter-selected-count[hidden]{display:none!important;}

/* Popover exatamente no padrão premium do painel. */
.ms-filter-panel{
  display:none!important;
  flex-direction:column!important;
  gap:7px!important;
  width:max(100%,250px)!important;
  min-width:250px!important;
  max-width:min(360px,calc(100vw - 24px))!important;
  padding:9px!important;
  overflow:hidden!important;
  border:1px solid #cbdad3!important;
  border-radius:12px!important;
  color:#233c33!important;
  background:rgba(255,255,255,.99)!important;
  box-shadow:0 18px 45px rgba(9,48,34,.22)!important;
  backdrop-filter:blur(12px)!important;
}
.ms-filter.open .ms-filter-panel{display:flex!important;}
.ms-filter-popover-head{
  min-height:24px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
}
.ms-filter-popover-head strong{
  min-width:0!important;
  color:#526a61!important;
  font:950 7px/1 Inter,"Segoe UI",Arial,sans-serif!important;
  letter-spacing:.025em!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.ms-filter-all-button{
  flex:0 0 auto!important;
  height:24px!important;
  min-height:24px!important;
  padding:0 8px!important;
  border:1px solid #bddfcd!important;
  border-radius:7px!important;
  color:#1e6a4c!important;
  background:#e9f6ef!important;
  font:950 7px/1 Inter,"Segoe UI",Arial,sans-serif!important;
  cursor:pointer!important;
}
.ms-filter-all-button:hover{background:#daf0e4!important;}
.ms-filter-tools{display:none!important;}
.ms-filter-search-row{
  position:relative!important;
  top:auto!important;
  display:block!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
}
.ms-filter-search{
  width:100%!important;
  height:32px!important;
  min-height:32px!important;
  margin:0!important;
  padding:0 9px!important;
  border:1px solid #d6e0dc!important;
  border-radius:8px!important;
  outline:0!important;
  color:#263d35!important;
  background:#f6f9f8!important;
  box-shadow:none!important;
  font:700 8px/1 Inter,"Segoe UI",Arial,sans-serif!important;
}
.ms-filter-search::placeholder{color:#87978f!important;font-weight:650!important;}
.ms-filter-search:focus{
  border-color:#3c9270!important;
  background:#fff!important;
  box-shadow:0 0 0 3px rgba(47,143,91,.10)!important;
}
/* O contador 8/8 da versão anterior não pertence ao visual de referência. */
.ms-filter-search-count{display:none!important;}
.ms-filter-list{
  min-height:0!important;
  max-height:245px!important;
  padding:0 3px 0 0!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:4px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  scrollbar-width:thin!important;
  scrollbar-color:#8bbca6 #eef4f1!important;
}
.ms-filter-list::-webkit-scrollbar{width:7px!important;}
.ms-filter-list::-webkit-scrollbar-track{background:#eef4f1!important;border-radius:999px!important;}
.ms-filter-list::-webkit-scrollbar-thumb{background:#8bbca6!important;border-radius:999px!important;}
.ms-option{
  width:100%!important;
  min-height:32px!important;
  margin:0!important;
  padding:5px 7px!important;
  display:grid!important;
  grid-template-columns:21px minmax(0,1fr)!important;
  align-items:center!important;
  gap:7px!important;
  border:1px solid #e0e8e4!important;
  border-radius:8px!important;
  color:#2c4139!important;
  background:#fff!important;
  cursor:pointer!important;
  transition:border-color .13s ease,background .13s ease,color .13s ease!important;
}
.ms-option:hover{border-color:#a9d1bd!important;background:#f0f8f4!important;}
.ms-option:has(input:checked),
.ms-option[aria-selected="true"]{
  border-color:#72b995!important;
  color:#174f39!important;
  background:#e7f5ed!important;
}
.ms-option input[type="checkbox"]{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}
.ms-option i{
  width:21px!important;
  height:21px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:6px!important;
  color:#fff!important;
  background:#e6ece9!important;
}
.ms-option i::before{content:"";}
.ms-option:has(input:checked) i,
.ms-option[aria-selected="true"] i{background:#2f8f5b!important;}
.ms-option:has(input:checked) i::before,
.ms-option[aria-selected="true"] i::before{
  content:"✓";
  font:950 10px/1 Arial,sans-serif!important;
}
.ms-option span{
  min-width:0!important;
  color:inherit!important;
  font:850 8px/1.25 Inter,"Segoe UI",Arial,sans-serif!important;
  text-transform:uppercase!important;
  overflow-wrap:anywhere!important;
}
.ms-search-empty{padding:12px!important;text-align:center!important;color:#73857c!important;font-size:9px!important;font-weight:800!important;}

/* Campos simples seguem a mesma linguagem visual do componente premium. */
#menuHost :is(.filters,.consultas-filters,.det-filters,.disp-filters,.materiais-filters,.filter-grid,.status-filter-grid)
:is(input:not([type="checkbox"]):not([type="radio"]),select,textarea),
.modal :is(.field,.form-field,.filter-field) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  min-height:var(--r54-filter-height)!important;
  height:var(--r54-filter-height)!important;
  border:1px solid var(--r54-filter-border)!important;
  border-radius:var(--r54-filter-radius)!important;
  color:var(--r54-filter-text)!important;
  background-color:#fff!important;
  font-size:10px!important;
  font-weight:800!important;
}
#menuHost :is(.filters,.consultas-filters,.det-filters,.disp-filters,.materiais-filters,.filter-grid,.status-filter-grid)
:is(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus,
.modal :is(.field,.form-field,.filter-field) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus{
  border-color:var(--r54-filter-border-active)!important;
  box-shadow:0 0 0 3px rgba(47,127,93,.12)!important;
}

/* DTF: a linha permanece neutra, mas a classificação SEM O.S. continua amarela. */

.report-view.relatorio-alocacao-total-frente .linha-sem-os-relatorio .badge.yellow,
.report-view.relatorio-alocacao-total-frente .rel-aloc-fleet.yellow{
  background:#fff8d8!important;
  color:#806000!important;
  border-color:#ead77b!important;
}

@media(max-width:700px){
  .ms-filter-panel{
    position:fixed!important;
    left:8px!important;
    right:8px!important;
    top:auto!important;
    bottom:8px!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    max-height:min(62vh,480px)!important;
    border-radius:14px!important;
  }
  .ms-filter-list{max-height:calc(min(62vh,480px) - 82px)!important;}
}


/* ===== r98-6-5-master-p25-definitiva.css ===== */
/* MASTER P25 — direção visual aprovada e ajustes funcionais finais. */
:root{
  --p25-green-950:#062e23;
  --p25-green-900:#0b3f30;
  --p25-green-800:#145d46;
  --p25-green-700:#18805b;
  --p25-ink:#132c23;
  --p25-muted:#667970;
  --p25-line:#d9e5df;
  --p25-soft:#f3f7f5;
  --p25-shadow:0 16px 40px rgba(8,54,40,.11);
}

/* Consultas Gerais — cabeçalho executivo aprovado, tabela preservada. */
body[data-current-menu="consultas-gerais"] .topbar{
  min-height:92px!important;
  padding:18px 22px!important;
  border:0!important;
  border-radius:20px!important;
  background:linear-gradient(120deg,var(--p25-green-950),var(--p25-green-800))!important;
  box-shadow:var(--p25-shadow)!important;
}
body[data-current-menu="consultas-gerais"] .topbar h1,
body[data-current-menu="consultas-gerais"] .topbar p{color:#fff!important}
body[data-current-menu="consultas-gerais"] .topbar p{opacity:.75}
body[data-current-menu="consultas-gerais"] .topbar .btn{
  border-color:rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.10)!important;
  color:#fff!important;
}
body[data-current-menu="consultas-gerais"] .topbar .btn.primary{background:#fff!important;color:var(--p25-green-900)!important}
body[data-current-menu="consultas-gerais"] .consultas-filters{
  padding:15px!important;border:1px solid var(--p25-line)!important;border-radius:18px!important;
  background:#fff!important;box-shadow:0 10px 26px rgba(8,54,40,.065)!important;
}

/* Alocação — Modelo 1 · Comando Executivo. */
body[data-current-menu="determinar-frente"] .topbar{
  min-height:96px!important;
  padding:18px 22px!important;
  border:0!important;border-radius:20px!important;
  background:
    radial-gradient(circle at 80% 0,rgba(255,255,255,.13),transparent 30%),
    linear-gradient(120deg,#082f24,#155e47)!important;
  box-shadow:var(--p25-shadow)!important;
}
body[data-current-menu="determinar-frente"] .topbar h1,
body[data-current-menu="determinar-frente"] .topbar p{color:#fff!important}
body[data-current-menu="determinar-frente"] .topbar p{opacity:.76}
body[data-current-menu="determinar-frente"] .topbar .btn{
  border-color:rgba(255,255,255,.28)!important;background:rgba(255,255,255,.1)!important;color:#fff!important;
}
body[data-current-menu="determinar-frente"] .topbar .btn.primary{background:#fff!important;color:#0b3f30!important}
body[data-current-menu="determinar-frente"] .det-page{display:grid!important;gap:12px!important}
body[data-current-menu="determinar-frente"] .det-toolbar{
  padding:12px 14px!important;border:1px solid var(--p25-line)!important;border-radius:18px!important;
  background:#fff!important;box-shadow:0 8px 22px rgba(8,54,40,.06)!important;
}
body[data-current-menu="determinar-frente"] .det-status-legend{
  padding:5px!important;border-radius:13px!important;background:#f3f7f5!important;
}
body[data-current-menu="determinar-frente"] .det-status-filter{
  border-color:transparent!important;background:transparent!important;border-radius:10px!important;
}
body[data-current-menu="determinar-frente"] .det-status-filter:hover,
body[data-current-menu="determinar-frente"] .det-status-filter[aria-pressed="true"]{
  background:#fff!important;box-shadow:0 4px 13px rgba(8,54,40,.10)!important;
}
body[data-current-menu="determinar-frente"] .det-filters{
  padding:12px 14px!important;border:1px solid var(--p25-line)!important;border-radius:18px!important;
  background:#fff!important;box-shadow:0 8px 22px rgba(8,54,40,.055)!important;
}
body[data-current-menu="determinar-frente"] .allocation-grid{
  padding:14px!important;border:1px solid var(--p25-line)!important;border-radius:20px!important;
  background:linear-gradient(180deg,#f7faf8,#eef4f1)!important;
  box-shadow:inset 0 1px #fff!important;
}

/* Disponibilidade — estrutura original, cabeçalho integral e cores fortes. */
body[data-current-menu="disponibilidade"] .topbar{
  min-height:96px!important;
  padding:18px 22px!important;
  border:0!important;border-radius:20px!important;
  background:
    linear-gradient(120deg,rgba(255,255,255,.04),transparent 45%),
    linear-gradient(120deg,#073727,#146247)!important;
  box-shadow:var(--p25-shadow)!important;
}
body[data-current-menu="disponibilidade"] .topbar h1,
body[data-current-menu="disponibilidade"] .topbar p{color:#fff!important}
body[data-current-menu="disponibilidade"] .topbar p{opacity:.78}
body[data-current-menu="disponibilidade"] .topbar .btn{
  border-color:rgba(255,255,255,.30)!important;background:rgba(255,255,255,.10)!important;color:#fff!important;
}
body[data-current-menu="disponibilidade"] .topbar .btn.primary{background:#fff!important;color:#0b4937!important}
body[data-current-menu="disponibilidade"] .disp-filters{
  padding:13px 14px!important;border:1px solid var(--p25-line)!important;
  border-radius:18px!important;background:#fff!important;box-shadow:0 9px 25px rgba(8,54,40,.065)!important;
}
body[data-current-menu="disponibilidade"] #tabelaDisponibilidade td.ok,
body[data-current-menu="disponibilidade"] #tabelaDisponibilidade td.excelente{
  background:#079447!important;color:#fff!important;
  box-shadow:inset 0 0 0 1px rgba(0,83,39,.34)!important;
}
body[data-current-menu="disponibilidade"] #tabelaDisponibilidade td.bad,
body[data-current-menu="disponibilidade"] #tabelaDisponibilidade td.warn{
  background:#ba2831!important;color:#fff!important;
  box-shadow:inset 0 0 0 1px rgba(112,5,12,.3)!important;
}
body[data-current-menu="disponibilidade"] #tabelaDisponibilidade th{
  background:#173e32!important;color:#fff!important;border-color:#31584d!important;
}
body[data-current-menu="disponibilidade"] #tabelaDisponibilidade th:first-child{
  background:#0b3f30!important;letter-spacing:.04em!important;
}
.disp-item-cell b{display:flex!important;align-items:center!important;gap:7px!important}
.disp-process-icon-p25{
  display:inline-grid;place-items:center;flex:0 0 25px;width:25px;height:25px;
  border-radius:7px;background:#e8f3ed;color:#0a6544;
}
.disp-process-icon-p25.canavieiros{background:#e2f0e9;color:#07563b}
.disp-process-icon-p25 svg{width:20px;height:14px;fill:currentColor;stroke:currentColor;stroke-width:1}

/* Materiais — fluxo aprovado + consulta sem alterar a tabela existente. */
.mat-view-switcher{
  display:flex;gap:8px;padding:6px;border:1px solid var(--mat-line,#d9e5df);
  border-radius:18px;background:#edf4f0;box-shadow:0 7px 20px rgba(8,54,40,.055);
}
.mat-view-tab{
  display:flex;align-items:center;gap:10px;min-width:230px;padding:10px 14px;border:0;border-radius:13px;
  background:transparent;color:#52675e;text-align:left;cursor:pointer;font:inherit;
}
.mat-view-tab.active{background:#fff;color:#123d2f;box-shadow:0 6px 17px rgba(8,54,40,.11)}
.mat-view-tab-icon{
  display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#dcebe4;color:#0b5b40;
  font-size:20px;font-weight:1000;
}
.mat-view-tab.active .mat-view-tab-icon{background:#0f5d42;color:#fff}
.mat-view-tab span:last-child{display:grid;gap:2px}.mat-view-tab strong{font-size:12px}.mat-view-tab small{font-size:10px;color:#708078;font-weight:700}
[data-mat-view][hidden]{display:none!important}
.mat-consulta-page{display:grid;gap:16px}
.mat-consulta-hero{
  display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:150px;padding:25px 28px;
  border-radius:25px;color:#fff;background:
    radial-gradient(circle at 88% 10%,rgba(255,255,255,.15),transparent 28%),
    linear-gradient(125deg,#092f25,#17684d);
  box-shadow:0 18px 42px rgba(8,54,40,.17);
}
.mat-consulta-hero h2{margin:4px 0 6px;color:#fff;font-size:30px}.mat-consulta-hero p{margin:0;color:#d7ebe2;font-weight:700}
.mat-consulta-base-status{
  display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid rgba(255,255,255,.2);
  border-radius:999px;background:rgba(255,255,255,.09);font-size:10px;font-weight:900;
}
.mat-consulta-base-status::before{content:"";width:8px;height:8px;border-radius:50%;background:#65dd9f;box-shadow:0 0 0 4px rgba(101,221,159,.14)}
.mat-consulta-search{
  display:grid;gap:8px;padding:20px;border:1px solid var(--p25-line);border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(8,54,40,.07)
}
.mat-consulta-search label>span{display:block;margin-bottom:8px;color:#173d30;font-size:11px;font-weight:1000;text-transform:uppercase;letter-spacing:.07em}
.mat-consulta-search-row{display:flex;align-items:center;gap:8px;position:relative}
.mat-consulta-search-row input{
  flex:1;min-width:0;height:48px;padding:0 15px 0 43px!important;border:1px solid #cddcd5!important;border-radius:14px!important;
  background:#f8faf9!important;font-size:14px!important;font-weight:750!important;
}
.mat-consulta-search-icon{position:absolute;left:15px;z-index:1;color:#0e6949;font-size:21px;font-weight:1000}
.mat-consulta-search p{margin:0;color:#6c7d75;font-size:11px;font-weight:700}
.mat-consulta-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 4px}
.mat-consulta-summary strong{display:block;margin-top:5px;color:#1b3b30;font-size:13px}
.mat-consulta-legend{display:flex;gap:12px;color:#667970;font-size:10px;font-weight:900}
.mat-consulta-legend span{display:flex;align-items:center;gap:5px}.mat-consulta-legend i{width:8px;height:8px;border-radius:50%}
.mat-consulta-legend .oracle{background:#157e59}.mat-consulta-legend .depara{background:#3c6fc8}
.mat-consulta-results{min-height:280px;border:1px solid var(--p25-line);border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 10px 28px rgba(8,54,40,.065)}
.mat-consulta-empty,.mat-consulta-loading{display:grid;place-items:center;align-content:center;gap:7px;min-height:280px;padding:35px;text-align:center;color:#6d7e76}
.mat-consulta-empty>span{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:#e8f2ed;color:#0f6849;font-size:30px}
.mat-consulta-empty strong{color:#193b30;font-size:16px}.mat-consulta-empty p{margin:0;font-size:12px;font-weight:700}
.mat-consulta-loading span{width:28px;height:28px;border:3px solid #d9e8e1;border-top-color:#0e6547;border-radius:50%;animation:p25Spin .8s linear infinite}
@keyframes p25Spin{to{transform:rotate(360deg)}}
.mat-consulta-table-wrap{max-width:100%;overflow:auto}.mat-consulta-table{min-width:1120px}
.mat-consulta-table th{background:#113f32!important;color:#fff!important;position:sticky;top:0;z-index:1}
.mat-consulta-table td{vertical-align:middle}.mat-code{color:#0c6848;font-size:13px}
.mat-source-badge{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:1000;white-space:nowrap}
.mat-source-badge.oracle{background:#dcf2e7;color:#09623f}.mat-source-badge.depara{background:#e4ecfb;color:#2d59ad}
.mat-copy-code{white-space:nowrap!important}

/* Gestão de O.S. — Modelo 3 · Linha do Tempo. */
.gos-overview-split-p25{display:grid;grid-template-columns:minmax(330px,.72fr) minmax(520px,1.28fr);gap:14px;min-width:0}
.gos-timeline-card-p25{min-width:0}
.gos-timeline-p25{display:grid;padding:5px 20px 22px}
.gos-timeline-step-p25{display:grid;grid-template-columns:44px 1fr;gap:12px;position:relative;min-height:70px}
.gos-timeline-step-p25:not(:last-child)::before{content:"";position:absolute;left:21px;top:35px;bottom:-5px;width:2px;background:#d5e4dd}
.gos-timeline-marker-p25{position:relative;z-index:1;display:grid;place-items:start center}
.gos-timeline-marker-p25 span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#e7f2ed;color:#0d6346;font-size:12px;font-weight:1000;box-shadow:0 0 0 6px #fff}
.gos-timeline-step-p25.fechamento .gos-timeline-marker-p25 span{background:#155e46;color:#fff}
.gos-timeline-step-p25.pendencia .gos-timeline-marker-p25 span{background:#fff0d6;color:#9a5e08}
.gos-timeline-copy-p25{display:grid;grid-template-columns:1fr auto;align-items:start;gap:2px 10px;padding:2px 0 15px;border-bottom:1px solid #edf2ef}
.gos-timeline-copy-p25 small{color:#65776f;font-size:10px;font-weight:1000;text-transform:uppercase;letter-spacing:.06em}
.gos-timeline-copy-p25 strong{grid-row:1/3;grid-column:2;color:#123d2f;font-size:22px}
.gos-timeline-copy-p25 p{margin:0;color:#75867e;font-size:10px;font-weight:700}

/* Status do Sistema — Modelo 3 · Console de Diagnóstico. */
.status-console-layout-p25{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(430px,1.25fr) minmax(270px,.72fr);gap:14px;align-items:start}
.status-console-layout-p25>aside,.status-console-components-p25{
  min-width:0;padding:17px;border:1px solid var(--sv-line);border-radius:19px;background:#fff;box-shadow:0 10px 27px rgba(7,54,39,.07)
}
.status-console-kicker-p25{display:block;margin-bottom:6px;color:#1a7255;font-size:9px;font-weight:1000;letter-spacing:.13em}
.status-console-health-p25{display:grid;gap:14px}
.status-console-score-p25{display:grid;place-items:center;align-content:center;aspect-ratio:1;max-width:160px;margin:auto;border:13px solid #d8eee4;border-radius:50%;background:#f8fcfa;box-shadow:inset 0 0 0 1px #cfe3da}
.status-console-score-p25[data-state="attention"]{border-color:#f3d5a5}.status-console-score-p25 strong{color:#0d553f;font-size:34px}.status-console-score-p25 span{color:#65776f;font-size:10px;font-weight:1000;text-transform:uppercase}
.status-console-metrics-p25{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.status-console-metrics-p25 div{padding:9px;border-radius:11px;background:#f2f7f4}.status-console-metrics-p25 span{display:block;color:#718078;font-size:8px;font-weight:900}.status-console-metrics-p25 strong{display:block;margin-top:2px;color:#173a2f;font-size:13px}
.status-console-components-p25>header,.status-console-priorities-p25>header{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:13px}
.status-console-components-p25 h3,.status-console-priorities-p25 h3{margin:0;color:#173a2f;font-size:15px}.status-console-components-p25>header b{color:#14704f;font-size:10px}
.status-console-services-p25{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
.status-console-services-p25 .status-service-card-v166{padding:12px!important;border-radius:14px!important;box-shadow:none!important}
.status-console-services-p25 .status-service-card-v166 p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.status-console-priorities-p25 .status-issues-v166{display:grid;gap:8px}.status-console-priorities-p25 .status-issue-v166{grid-template-columns:30px 1fr!important;padding:11px!important}
.status-console-priorities-p25 .status-issue-v166 button{grid-column:1/-1;width:100%}
.status-console-ok-p25{display:grid;place-items:center;gap:7px;padding:28px 14px;border:1px dashed #bcd7ca;border-radius:15px;background:#f4faf7;text-align:center}
.status-console-ok-p25>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#dff1e7;color:#16704f}
.status-console-ok-p25 strong{color:#15543f;font-size:13px}.status-console-ok-p25 p{margin:0;color:#6b7c74;font-size:10px;font-weight:700}

/* Storage — modal funcional e protegido. */
.storage-manager-modal-p25{width:min(1040px,calc(100vw - 30px))!important;max-height:min(860px,calc(100vh - 24px))!important;overflow:hidden!important}
.storage-manager-modal-p25 .modal-header{padding:18px 21px!important;background:linear-gradient(120deg,#082f24,#155f47)!important;color:#fff!important}
.storage-manager-modal-p25 .modal-header h3,.storage-manager-modal-p25 .modal-header p{color:#fff!important}.storage-manager-modal-p25 .modal-header p{opacity:.75}
.storage-manager-modal-p25 .modal-close{border-color:rgba(255,255,255,.28)!important;color:#fff!important;background:rgba(255,255,255,.09)!important}
.storage-manager-modal-p25 .modal-body{padding:0!important;overflow:auto!important;background:#f2f6f4!important}
.storage-modal-p25{display:grid;gap:14px;padding:17px}
.storage-toolbar-p25{display:flex;align-items:center;justify-content:space-between;gap:12px}.storage-toolbar-p25>div{display:grid;gap:3px}
.storage-toolbar-p25 span{color:#187054;font-size:9px;font-weight:1000;letter-spacing:.12em}.storage-toolbar-p25 strong{color:#1d3d32;font-size:12px}
.storage-modal-summary-v2{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;margin:0!important}
.storage-summary-card-p25{position:relative;display:grid!important;gap:6px!important;overflow:hidden;padding:15px!important;border:1px solid var(--p25-line)!important;border-radius:16px!important;background:#fff!important;box-shadow:0 7px 20px rgba(8,54,40,.06)}
.storage-summary-card-p25>span{color:#65776f!important;font-size:9px!important;font-weight:1000!important;text-transform:uppercase}.storage-summary-card-p25>strong{color:#123d2f!important;font-size:24px!important}.storage-summary-card-p25>small{color:#72837b!important;font-size:10px!important;font-weight:700!important}
.storage-summary-card-p25>i{display:block!important;height:4px!important;margin-top:3px!important;border-radius:999px!important;background:linear-gradient(90deg,#15805a var(--storage-fill),#e2ebe6 var(--storage-fill))!important}
.storage-section-p25{overflow:hidden;border:1px solid var(--p25-line);border-radius:16px;background:#fff}
.storage-section-head-p25{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e5ece8;background:#f8faf9}
.storage-section-head-p25 span{color:#1a7355;font-size:8px;font-weight:1000;letter-spacing:.12em}.storage-section-head-p25 h4{margin:3px 0 0;color:#193b30;font-size:13px}.storage-section-head-p25>small{color:#74857d;font-size:9px;font-weight:800}
.storage-table-wrap-p25{max-height:205px;overflow:auto}.storage-modal-p25 .storage-table{width:100%;margin:0!important;border:0!important}
.storage-modal-p25 .storage-table th{position:sticky;top:0;z-index:1;background:#123f32!important;color:#fff!important}
.storage-modal-p25 .storage-table td strong{display:block;color:#1a3b30}.storage-location-p25{display:block;margin-top:2px;color:#7a8a83;font-size:8px;font-weight:800}
.storage-protection-p25{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:1000;white-space:nowrap}
.storage-protection-p25.protected{background:#e3f1e9;color:#0e6547}.storage-protection-p25.cleanable{background:#fff1d9;color:#905909}
.storage-modal-p25 .storage-warning{margin:0!important;padding:11px 13px!important;border:1px solid #d7e5de!important;border-radius:13px!important;background:#eef6f2!important;color:#365b4d!important;font-size:10px!important}
.storage-manager-modal-p25 .modal-actions{position:sticky;bottom:0;gap:8px!important;padding:13px 17px!important;background:#fff!important;border-top:1px solid var(--p25-line)!important}

@media(max-width:1180px){
  .gos-overview-split-p25{grid-template-columns:1fr}
  .status-console-layout-p25{grid-template-columns:minmax(220px,.58fr) minmax(420px,1.42fr)}
  .status-console-priorities-p25{grid-column:1/-1}
}
@media(max-width:760px){
  body[data-current-menu="consultas-gerais"] .topbar,
  body[data-current-menu="determinar-frente"] .topbar,
  body[data-current-menu="disponibilidade"] .topbar{border-radius:15px!important;padding:14px!important}
  .mat-view-switcher{display:grid}.mat-view-tab{min-width:0;width:100%}
  .mat-consulta-hero{display:grid;padding:20px}.mat-consulta-search-row{display:grid;grid-template-columns:1fr 1fr}.mat-consulta-search-row input{grid-column:1/-1;padding-left:43px!important}.mat-consulta-search-icon{top:13px}
  .mat-consulta-summary{display:grid}.mat-consulta-legend{flex-wrap:wrap}
  .status-console-layout-p25{grid-template-columns:1fr}.status-console-priorities-p25{grid-column:auto}.status-console-services-p25{grid-template-columns:1fr!important}
  .storage-modal-summary-v2{grid-template-columns:1fr!important}.storage-toolbar-p25,.storage-section-head-p25{align-items:flex-start;flex-direction:column}
  .storage-manager-modal-p25 .modal-actions{display:grid!important;grid-template-columns:1fr 1fr}.storage-manager-modal-p25 .modal-actions .btn{width:100%}
}

/* MASTER P25.1 — fidelidade dos modelos aprovados.
   Esta folha é promovida para depois de R53/R54 quando cada menu abre. */
body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal,
body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal,
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal{
  isolation:isolate!important;
  min-height:132px!important;
  margin:0 0 16px!important;
  padding:23px 34px!important;
  border:0!important;
  border-radius:22px!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  background:
    repeating-radial-gradient(ellipse at 103% 115%,rgba(255,255,255,.055) 0 1px,transparent 1px 13px),
    linear-gradient(112deg,#073a2b 0%,#0a5038 58%,#0b5b40 100%)!important;
  box-shadow:0 18px 42px rgba(5,57,40,.18)!important;
}
body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal::before,
body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal::before,
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal::before{
  content:""!important;
  position:absolute!important;
  inset:auto 0 0!important;
  width:auto!important;
  height:4px!important;
  border-radius:0!important;
  background:linear-gradient(90deg,#16b46b,#39d98a)!important;
  pointer-events:none!important;
}
body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal::after,
body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal::after,
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal::after{
  content:""!important;
  position:absolute!important;
  inset:0 0 0 auto!important;
  width:39%!important;
  height:auto!important;
  border:0!important;
  border-radius:0!important;
  background:linear-gradient(90deg,transparent,rgba(2,30,21,.12))!important;
  pointer-events:none!important;
}
body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal .topbar-title-text::before,
body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal .topbar-title-text::before,
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal .topbar-title-text::before{
  margin:0 0 7px!important;
  color:#cceadd!important;
  font-size:11px!important;
  line-height:1!important;
  letter-spacing:.18em!important;
}
body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal h1,
body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal h1,
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal h1{
  margin:0!important;
  color:#fff!important;
  font-size:clamp(32px,3.2vw,48px)!important;
  line-height:.98!important;
  letter-spacing:-.045em!important;
}
body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal p,
body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal p,
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal p{
  margin:9px 0 0!important;
  color:#d8ebe2!important;
  opacity:.86!important;
  font-size:13px!important;
  font-weight:720!important;
}
.topbar-operational-meta-p251{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  margin-top:15px!important;
  color:#effaf5!important;
  font-size:11px!important;
  font-weight:900!important;
}
.topbar-operational-meta-p251 span{display:inline-flex!important;align-items:center!important;gap:7px!important}
.topbar-operational-meta-p251 span:first-child::before{content:"▣";font-size:13px;color:#bfe5d4}
.topbar-operational-meta-p251 span:last-child::before{content:"◷";font-size:16px;color:#bfe5d4}
.topbar-operational-meta-p251 i{display:block;width:1px;height:15px;background:rgba(255,255,255,.36)}
body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal .top-actions,
body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal .top-actions,
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal .top-actions{
  position:relative!important;
  z-index:2!important;
  gap:12px!important;
  flex-wrap:nowrap!important;
}
body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal .top-actions .btn,
body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal .top-actions .btn,
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal .top-actions .btn{
  min-width:132px!important;
  min-height:50px!important;
  padding:0 18px!important;
  border:1px solid rgba(255,255,255,.24)!important;
  border-radius:13px!important;
  background:#fff!important;
  color:#0d4433!important;
  box-shadow:0 10px 24px rgba(0,0,0,.14)!important;
  font-size:12px!important;
}
body[data-current-menu="consultas-gerais"] #btnAtualizar::before,
body[data-current-menu="determinar-frente"] #btnAtualizar::before{content:"↻";margin-right:9px;font-size:20px;font-weight:500}
body[data-current-menu="disponibilidade"] #btnAtualizar::before{content:"×";margin-right:9px;font-size:17px}
body[data-current-menu="consultas-gerais"] #btnAbrirRelatorio::before,
body[data-current-menu="determinar-frente"] #btnAbrirRelatorio::before,
body[data-current-menu="disponibilidade"] #btnAbrirRelatorio::before{content:"▤";margin-right:9px;font-size:15px}
body[data-current-menu="consultas-gerais"] #btnGerarPDF::before,
body[data-current-menu="determinar-frente"] #btnGerarPDF::before,
body[data-current-menu="disponibilidade"] #btnGerarPDF::before{content:"⇩";margin-right:9px;font-size:17px}
body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal #btnGerarPDF,
body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal #btnGerarPDF{
  background:#0a4534!important;
  color:#fff!important;
}
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal #btnGerarPDF{
  background:#0eb86a!important;
  color:#fff!important;
  border-color:#0eb86a!important;
}

/* Filtros com a mesma densidade visual dos modelos. */
body[data-current-menu="consultas-gerais"] #menuHost .consultas-filters{
  display:grid!important;
  grid-template-columns:minmax(280px,2.1fr) repeat(6,minmax(132px,1fr)) auto!important;
  align-items:end!important;
  gap:10px!important;
  margin-bottom:14px!important;
  padding:15px 17px!important;
  border:1px solid #d9e4df!important;
  border-radius:17px!important;
  background:#fff!important;
  box-shadow:0 8px 22px rgba(8,54,40,.06)!important;
}
body[data-current-menu="disponibilidade"] #menuHost .disp-filters{
  display:grid!important;
  grid-template-columns:minmax(145px,.72fr) minmax(145px,.72fr) minmax(250px,1.55fr) repeat(3,minmax(170px,1fr)) auto!important;
  align-items:end!important;
  gap:9px!important;
  padding:14px 16px!important;
  border:1px solid #d9e4df!important;
  border-radius:17px!important;
  background:#fff!important;
  box-shadow:0 8px 22px rgba(8,54,40,.06)!important;
}
body[data-current-menu="determinar-frente"] #menuHost .det-toolbar,
body[data-current-menu="determinar-frente"] #menuHost .det-filters{
  border:1px solid #d9e4df!important;
  border-radius:17px!important;
  background:#fff!important;
  box-shadow:0 8px 22px rgba(8,54,40,.06)!important;
}
body[data-current-menu="determinar-frente"] #menuHost .det-toolbar{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  padding:12px 15px!important;
}
body[data-current-menu="determinar-frente"] #menuHost .det-status-legend{
  display:flex!important;
  flex:1 1 auto!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  padding:0!important;
  background:transparent!important;
}
body[data-current-menu="determinar-frente"] #menuHost .det-status-filter{
  min-height:38px!important;
  padding:0 11px!important;
  border:1px solid #d9e4df!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:0 3px 9px rgba(8,54,40,.05)!important;
}
body[data-current-menu="determinar-frente"] #menuHost .det-filters{
  display:grid!important;
  grid-template-columns:minmax(300px,1.7fr) repeat(3,minmax(200px,1fr)) auto!important;
  align-items:end!important;
  gap:12px!important;
  padding:14px 16px!important;
}
body[data-current-menu="consultas-gerais"] #menuHost :is(input,select,.ms-filter-button),
body[data-current-menu="disponibilidade"] #menuHost :is(input,select,.ms-filter-button),
body[data-current-menu="determinar-frente"] #menuHost :is(input,select,.ms-filter-button){
  min-height:45px!important;
  border-radius:11px!important;
  border-color:#cedbd5!important;
  background:#fff!important;
}

/* Disponibilidade: tabela original compacta à esquerda, crescendo somente
   quando novos horários fechados aparecem. */
body[data-current-menu="disponibilidade"] #menuHost .disp-table-shell{
  min-height:540px!important;
  overflow:auto!important;
  border:1px solid #d9e4df!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 9px 25px rgba(8,54,40,.055)!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade.matrix{
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  table-layout:fixed!important;
  margin:0!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade th:first-child,
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade td:first-child{
  width:238px!important;
  min-width:238px!important;
  max-width:238px!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade th:not(:first-child),
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade td:not(:first-child){
  width:96px!important;
  min-width:96px!important;
  max-width:96px!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade th{
  height:44px!important;
  padding:9px 12px!important;
  background:#073f2e!important;
  color:#fff!important;
  border-color:#2b6653!important;
  font-size:11px!important;
  font-weight:1000!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade td{
  height:72px!important;
  padding:8px 10px!important;
  border-color:#d9e7e0!important;
  font-size:13px!important;
  font-weight:1000!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade td.ok,
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade td.excelente{
  background:#079447!important;
  color:#fff!important;
  box-shadow:inset 0 0 0 1px rgba(0,79,36,.30)!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade td.bad,
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade td.warn{
  background:#c82e38!important;
  color:#fff!important;
  box-shadow:inset 0 0 0 1px rgba(106,2,10,.28)!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade .disp-item-cell{
  padding:8px!important;
  background:#fff!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade .disp-item-cell b{
  color:#132f25!important;
  font-size:12px!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade .disp-item-cell em{
  background:#dcefe5!important;
  color:#0b563c!important;
  border-color:#badbc9!important;
}

/* Relatório de Disponibilidade = mesma identidade e mesmas cores do menu. */
.relatorio-disponibilidade-compacta .disp-report-hero-p251{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
  min-height:110px!important;
  margin:0 0 10px!important;
  padding:20px 24px!important;
  border-radius:18px!important;
  background:
    repeating-radial-gradient(ellipse at 103% 115%,rgba(255,255,255,.055) 0 1px,transparent 1px 13px),
    linear-gradient(112deg,#073a2b,#0b5b40)!important;
  color:#fff!important;
  box-shadow:0 14px 32px rgba(5,57,40,.16)!important;
}
.relatorio-disponibilidade-compacta .disp-report-hero-p251>div:first-child>span{
  color:#cceadd!important;font-size:10px!important;font-weight:1000!important;letter-spacing:.16em!important;
}
.relatorio-disponibilidade-compacta .disp-report-hero-p251 h2{
  margin:6px 0 4px!important;color:#fff!important;font-size:32px!important;line-height:1!important;
}
.relatorio-disponibilidade-compacta .disp-report-hero-p251 p{
  margin:0!important;color:#d8ebe2!important;font-size:11px!important;font-weight:750!important;
}
.relatorio-disponibilidade-compacta .disp-report-hero-meta-p251{
  display:grid!important;gap:5px!important;justify-items:end!important;text-align:right!important;
}
.relatorio-disponibilidade-compacta .disp-report-hero-meta-p251 b{
  padding:7px 10px!important;border:1px solid rgba(255,255,255,.22)!important;border-radius:999px!important;
  background:rgba(255,255,255,.09)!important;color:#fff!important;font-size:10px!important;
}
.relatorio-disponibilidade-compacta .disp-report-hero-meta-p251 small{color:#d8ebe2!important;font-size:9px!important}
.relatorio-disponibilidade-compacta .disp-report-context-p251{
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;
  margin:0 0 8px!important;padding:9px 12px!important;border:1px solid #d9e5df!important;border-radius:11px!important;
  background:#f6faf8!important;color:#567067!important;font-size:10px!important;font-weight:800!important;
}
.relatorio-disponibilidade-compacta .disp-report-context-p251 b{color:#0d4d38!important}
.relatorio-disponibilidade-compacta .disp-report-compact-shell{
  border-radius:14px!important;
  border-color:#cbded4!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-hours th{
  background:#073f2e!important;
  color:#fff!important;
  border-color:#2b6653!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-hours td.disp-ok{
  background:#079447!important;
  color:#fff!important;
  border-color:#078341!important;
}
.relatorio-disponibilidade-compacta .disp-report-compact-hours td.disp-bad{
  background:#c82e38!important;
  color:#fff!important;
  border-color:#b4252f!important;
}
.relatorio-disponibilidade-compacta .disp-report-item-cell b{
  display:flex!important;align-items:center!important;gap:7px!important;
}
.relatorio-disponibilidade-compacta .disp-report-item-cell .disp-process-icon-p25{
  flex:0 0 24px!important;width:24px!important;height:24px!important;
}

@media print{
  .disp-report-hero-p251{
    min-height:62px!important;
    margin-bottom:5px!important;
    padding:10px 12px!important;
    border-radius:8px!important;
    background:#073f2e!important;
    color:#fff!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .disp-report-hero-p251 h2{font-size:19px!important;color:#fff!important}
  .disp-report-hero-p251 p{font-size:8px!important;color:#d8ebe2!important}
  .disp-report-context-p251{padding:5px 7px!important;margin-bottom:4px!important;font-size:7px!important}
  .relatorio-disponibilidade-compacta .disp-report-compact-hours td.disp-ok{
    background:#079447!important;color:#fff!important;
    -webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;
  }
  .relatorio-disponibilidade-compacta .disp-report-compact-hours td.disp-bad{
    background:#c82e38!important;color:#fff!important;
    -webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;
  }
}

@media(max-width:1180px){
  body[data-current-menu="consultas-gerais"] #menuHost .consultas-filters{grid-template-columns:repeat(4,minmax(150px,1fr))!important}
  body[data-current-menu="consultas-gerais"] #menuHost .consultas-filters .busca-field{grid-column:span 2!important}
  body[data-current-menu="disponibilidade"] #menuHost .disp-filters{grid-template-columns:repeat(4,minmax(150px,1fr))!important}
  body[data-current-menu="determinar-frente"] #menuHost .det-filters{grid-template-columns:repeat(4,minmax(160px,1fr))!important}
}
@media(max-width:760px){
  body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal,
  body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal,
  body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal{
    min-height:0!important;padding:18px!important;grid-template-columns:1fr!important;
  }
  body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal .top-actions,
  body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal .top-actions,
  body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal .top-actions{
    display:grid!important;grid-template-columns:repeat(3,1fr)!important;width:100%!important;
  }
  body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal .top-actions .btn,
  body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal .top-actions .btn,
  body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal .top-actions .btn{
    min-width:0!important;padding:0 9px!important;font-size:10px!important;
  }
  .topbar-operational-meta-p251{align-items:flex-start!important;flex-direction:column!important;gap:5px!important}
  .topbar-operational-meta-p251 i{display:none!important}
  body[data-current-menu="consultas-gerais"] #menuHost .consultas-filters,
  body[data-current-menu="disponibilidade"] #menuHost .disp-filters,
  body[data-current-menu="determinar-frente"] #menuHost .det-filters{grid-template-columns:1fr!important}
  body[data-current-menu="consultas-gerais"] #menuHost .consultas-filters .busca-field{grid-column:auto!important}
  body[data-current-menu="determinar-frente"] #menuHost .det-toolbar{align-items:stretch!important;flex-direction:column!important}
  .relatorio-disponibilidade-compacta .disp-report-hero-p251,
  .relatorio-disponibilidade-compacta .disp-report-context-p251{align-items:flex-start!important;flex-direction:column!important}
  .relatorio-disponibilidade-compacta .disp-report-hero-meta-p251{justify-items:start!important;text-align:left!important}
}


/* ===== r98-6-5-master-p26-oficial.css ===== */
/* MASTER P26 OFICIAL — camada final dos visuais aprovados. */
:root{
  --p26-green-950:#062f23;
  --p26-green-900:#0a4834;
  --p26-green-800:#0f6045;
  --p26-green-700:#16815b;
  --p26-green-200:#a8d1bd;
  --p26-green-100:#dceee5;
  --p26-green-50:#f2f8f5;
  --p26-ink:#10281f;
  --p26-muted:#62756c;
  --p26-line:#d7e4de;
  --p26-shadow:0 14px 34px rgba(7,52,38,.09);
}

/* A atualização passiva nunca cobre ou bloqueia o menu. */
body.pims-silent-refresh-v126 #menuLoadingOverlay,
body.pims-silent-refresh-v126 #menuLoadingOverlay.is-visible{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
body.pims-silent-refresh-v126,
body.pims-silent-refresh-v126 #appView,
body.pims-silent-refresh-v126 #menuHost{
  filter:none!important;
  backdrop-filter:none!important;
  pointer-events:auto!important;
  cursor:auto!important;
}
body.pims-silent-refresh-v126 #menuHost *,
body.pims-silent-refresh-v126 .sidebar *{
  animation:none!important;
  transition:none!important;
}

/* Correção incorporada: filtros selecionados da Alocação sempre legíveis. */
body[data-current-menu="determinar-frente"] #menuHost
  .det-status-legend.has-active-filter .det-status-filter.active,
body[data-current-menu="determinar-frente"] #menuHost
  .det-status-legend .det-status-filter[aria-pressed="true"]{
  color:#173f31!important;
  -webkit-text-fill-color:#173f31!important;
  background:#fff!important;
  border-color:#9fbeb0!important;
  opacity:1!important;
  text-shadow:none!important;
  box-shadow:0 0 0 3px rgba(15,61,46,.10),0 6px 14px rgba(15,61,46,.12)!important;
}
body[data-current-menu="determinar-frente"] #menuHost
  .det-status-legend .det-status-filter[aria-pressed="true"] .dot,
body[data-current-menu="determinar-frente"] #menuHost
  .det-status-legend.has-active-filter .det-status-filter.active .dot{
  opacity:1!important;
  visibility:visible!important;
  flex:0 0 auto!important;
}
body[data-current-menu="determinar-frente"] #menuHost
  .det-status-legend.has-active-filter .det-status-filter.active::after{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:#0f3d2e!important;
  opacity:1!important;
  visibility:visible!important;
}

/* Disponibilidade — família oficial Modelo 3 · Duotone Corporativo. */
.disp-process-icon-p25.disp-process-icon-p26{
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 38px!important;
  width:38px!important;
  height:30px!important;
  margin-right:2px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--p26-green-900)!important;
  box-shadow:none!important;
}
.disp-process-icon-p26 svg{
  width:38px!important;
  height:27px!important;
  overflow:visible!important;
  fill:none!important;
  stroke:none!important;
}
.disp-process-icon-p26 .p26-primary{fill:#0a4a35!important;stroke:none!important}
.disp-process-icon-p26 .p26-secondary{fill:#a8d1bd!important;stroke:none!important}
.disp-process-icon-p26 .p26-cut{fill:#f7fbf9!important;stroke:none!important}
.disp-process-icon-p26 .p26-stroke{
  fill:none!important;
  stroke:#0a4a35!important;
  stroke-width:2.1!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade .disp-item-cell b{
  min-height:32px!important;
  gap:7px!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade .disp-item-cell{
  padding:8px 10px!important;
}
.relatorio-disponibilidade-compacta .disp-process-icon-p26,
.disp-process-icon-p26.disp-process-icon-report-p26{
  flex-basis:27px!important;
  width:27px!important;
  height:22px!important;
}
.relatorio-disponibilidade-compacta .disp-process-icon-p26 svg,
.disp-process-icon-p26.disp-process-icon-report-p26 svg{
  width:27px!important;
  height:19px!important;
}

/* Disponibilidade — acabamento aprovado, tabela original preservada. */
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal{
  min-height:128px!important;
  padding:23px 30px!important;
  border-radius:18px!important;
  background:
    radial-gradient(circle at 88% 18%,rgba(255,255,255,.11),transparent 28%),
    linear-gradient(112deg,#063526,#0b5a40)!important;
  box-shadow:0 16px 34px rgba(5,57,40,.17)!important;
}
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal::before{
  height:5px!important;
  background:#19b86a!important;
}
body[data-current-menu="disponibilidade"] #menuHost .disp-filters{
  margin-bottom:12px!important;
  border-radius:15px!important;
  box-shadow:0 7px 18px rgba(8,54,40,.055)!important;
}
body[data-current-menu="disponibilidade"] #menuHost .disp-table-shell{
  border-radius:15px!important;
  box-shadow:0 7px 18px rgba(8,54,40,.05)!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade th{
  background:#083f2e!important;
  border-color:#28634f!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade td.ok,
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade td.excelente{
  background:#078e43!important;
  color:#fff!important;
}
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade td.bad,
body[data-current-menu="disponibilidade"] #menuHost #tabelaDisponibilidade td.warn{
  background:#bd2b34!important;
  color:#fff!important;
}

/* Materiais — Central corporativa, leve e sem cabeçalho duplicado. */
body[data-current-menu="materiais"] #menuHost{padding-top:0!important}
.materiais-page.materiais-premium-page{
  gap:14px!important;
  padding:0 0 18px!important;
}
.mat-command-hero-p26{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,340px);
  align-items:center;
  gap:26px;
  min-height:154px;
  overflow:hidden;
  padding:25px 30px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:20px;
  background:
    radial-gradient(circle at 90% 14%,rgba(86,211,151,.20),transparent 27%),
    linear-gradient(118deg,#062f23 0%,#0a4a35 56%,#0d6044 100%);
  box-shadow:0 18px 40px rgba(5,54,39,.18);
  color:#fff;
}
.mat-command-hero-p26::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  z-index:-1;
  height:5px;
  background:linear-gradient(90deg,#16b76a,#54d99a);
}
.mat-command-copy-p26{min-width:0}
.mat-command-eyebrow-p26{
  display:flex;
  align-items:center;
  gap:8px;
  color:#bfe8d5;
  font-size:10px;
  font-weight:1000;
  letter-spacing:.16em;
}
.mat-command-eyebrow-p26 i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#54d99a;
  box-shadow:0 0 0 5px rgba(84,217,154,.12);
}
.mat-command-copy-p26 h2{
  margin:7px 0 6px;
  color:#fff;
  font-size:clamp(30px,3.2vw,46px);
  line-height:1;
  letter-spacing:-.045em;
}
.mat-command-copy-p26 p{
  max-width:720px;
  margin:0;
  color:#d7ebe2;
  font-size:13px;
  font-weight:720;
}
.mat-command-meta-p26{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:16px;
}
.mat-command-meta-p26 span{
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#effaf5;
  font-size:9px;
  font-weight:900;
}
.mat-command-summary-p26{
  display:grid;
  gap:5px;
  padding:17px 19px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:17px;
  background:rgba(3,38,27,.27);
  backdrop-filter:blur(8px);
}
.mat-command-status-p26{
  display:flex;
  align-items:center;
  gap:7px;
  color:#bfe8d5;
  font-size:9px;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.mat-command-status-p26 i{width:8px;height:8px;border-radius:50%;background:#5de09f}
.mat-command-summary-p26 strong{color:#fff;font-size:20px}
.mat-command-summary-p26 small{color:#cbe3d8;font-size:10px;font-weight:700;line-height:1.4}

.materiais-page .mat-view-switcher{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:7px!important;
  padding:6px!important;
  border:1px solid var(--p26-line)!important;
  border-radius:15px!important;
  background:#eaf2ee!important;
  box-shadow:0 6px 16px rgba(8,54,40,.05)!important;
}
.materiais-page .mat-view-tab{
  min-width:0!important;
  min-height:62px!important;
  padding:9px 13px!important;
  border-radius:11px!important;
}
.materiais-page .mat-view-tab.active{
  box-shadow:0 5px 13px rgba(8,54,40,.10)!important;
}
.materiais-page .mat-view-tab-icon{
  width:38px!important;
  height:38px!important;
  border-radius:11px!important;
}
.materiais-page .mat-view-tab-icon svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.materiais-page [data-mat-view="fluxo"]{
  display:grid;
  gap:14px;
}
.materiais-page .mat-executive-panel{
  min-height:124px!important;
  padding:20px 22px!important;
  border:1px solid var(--p26-line)!important;
  border-radius:17px!important;
  background:#fff!important;
  color:var(--p26-ink)!important;
  box-shadow:var(--p26-shadow)!important;
}
.materiais-page .mat-executive-panel::before{display:none!important}
.materiais-page .mat-executive-copy h2{color:var(--p26-ink)!important;font-size:25px!important}
.materiais-page .mat-executive-copy p{margin-top:7px!important;color:var(--p26-muted)!important;font-size:11px!important}
.materiais-page .mat-executive-copy .mat-eyebrow{color:var(--p26-green-700)!important}
.materiais-page .mat-meta-chip{
  min-height:27px!important;
  border-color:#cfe0d8!important;
  background:#eff6f2!important;
  color:#205a46!important;
  font-size:9px!important;
}
.materiais-page .mat-executive-meta{margin-top:11px!important}
.materiais-page .mat-health-card{
  min-width:285px!important;
  padding:11px 14px!important;
  border-color:#cfe1d8!important;
  border-radius:15px!important;
  background:#eff7f3!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
.materiais-page .mat-health-ring{width:76px!important;height:76px!important;flex-basis:76px!important;background:conic-gradient(#16815b calc(var(--mat-progress)*1%),#dbe9e2 0)!important}
.materiais-page .mat-health-ring::after{inset:7px!important;background:#fff!important}
.materiais-page .mat-health-ring strong{color:#0b4b36!important;font-size:20px!important}
.materiais-page .mat-health-ring span{color:#638074!important}
.materiais-page .mat-health-label{color:#277457!important}
.materiais-page .mat-health-copy strong{color:#123a2d!important;font-size:16px!important}
.materiais-page .mat-health-copy small{color:#657b71!important}
.materiais-page .materiais-kpis{gap:10px!important}
.materiais-page .mat-kpi-card{
  min-height:112px!important;
  padding:14px!important;
  border-radius:16px!important;
  box-shadow:0 7px 18px rgba(8,54,40,.055)!important;
}
.materiais-page .materiais-chart-card,
.materiais-page .mat-filter-panel,
.materiais-page .mat-table-panel{
  border-radius:17px!important;
  box-shadow:0 8px 21px rgba(8,54,40,.06)!important;
}
.materiais-page .mat-card-header,
.materiais-page .mat-panel-header{padding:15px 17px 13px!important}
.materiais-page .mat-consulta-page{gap:12px!important}
.materiais-page .mat-consulta-hero{
  min-height:96px!important;
  padding:18px 21px!important;
  border:1px solid var(--p26-line)!important;
  border-radius:17px!important;
  background:#fff!important;
  color:var(--p26-ink)!important;
  box-shadow:0 8px 21px rgba(8,54,40,.06)!important;
}
.materiais-page .mat-consulta-hero h2{margin:3px 0 4px!important;color:var(--p26-ink)!important;font-size:24px!important}
.materiais-page .mat-consulta-hero p{color:var(--p26-muted)!important;font-size:11px!important}
.materiais-page .mat-consulta-hero .mat-eyebrow{color:var(--p26-green-700)!important}
.materiais-page .mat-consulta-base-status{
  border-color:#cde0d6!important;
  background:#edf7f2!important;
  color:#176044!important;
}
.materiais-page .mat-consulta-search{
  padding:16px!important;
  border-radius:16px!important;
  box-shadow:0 7px 18px rgba(8,54,40,.055)!important;
}
.materiais-page .mat-consulta-search-row input{height:51px!important;background:#fbfdfc!important}
.materiais-page .mat-consulta-results{
  min-height:320px!important;
  border-radius:16px!important;
  box-shadow:0 7px 18px rgba(8,54,40,.055)!important;
}
.materiais-page .mat-consulta-table th{
  background:#093f2e!important;
  border-color:#28634f!important;
}

/* Status do Sistema — fidelidade ao Console de Diagnóstico aprovado. */
body[data-current-menu="sistema"] #menuHost{padding-top:0!important}
.status-v166{
  gap:0!important;
  padding:0!important;
  border:1px solid #cfe0d8!important;
  border-radius:16px!important;
  background:#fff!important;
  box-shadow:0 13px 34px rgba(7,54,39,.09)!important;
  overflow:hidden!important;
}
.status-v166 .status-hero-v166{
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"copy actions"!important;
  align-items:center!important;
  gap:20px!important;
  min-height:142px!important;
  padding:22px 24px!important;
  border:0!important;
  border-radius:0!important;
  background:
    radial-gradient(circle at 92% 4%,rgba(85,218,156,.15),transparent 28%),
    linear-gradient(116deg,#052e22,#07523a)!important;
  box-shadow:none!important;
}
.status-v166 .status-health-v166{display:none!important}
.status-v166 .status-actions-v166{
  grid-area:actions!important;
  display:grid!important;
  grid-template-columns:repeat(3,max-content)!important;
  gap:9px!important;
  padding:0!important;
  border:0!important;
}
.status-v166 .status-actions-v166 .btn{
  min-height:44px!important;
  padding:0 13px!important;
  border-color:#fff!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#0b4433!important;
  box-shadow:0 7px 16px rgba(0,0,0,.13)!important;
  font-size:10px!important;
}
.status-v166 .status-actions-v166 .btn.primary{background:#fff!important;color:#0b4433!important}
.status-v166 .status-context-v166{margin-top:13px!important}
.status-v166 .status-context-v166 span{
  min-height:27px!important;
  padding:5px 8px!important;
  border-radius:7px!important;
  font-size:9px!important;
}
.status-v166 .status-copyright-v67{display:none!important}
.status-v166 .status-kpis-v166{display:none!important}
.status-v166 .status-tabs-v166{
  gap:5px!important;
  padding:9px 14px!important;
  border:0!important;
  border-bottom:1px solid var(--p26-line)!important;
  border-radius:0!important;
  background:#fff!important;
  box-shadow:none!important;
}
.status-v166 .status-tabs-v166 button{
  min-height:38px!important;
  padding:7px 12px!important;
  border-radius:9px!important;
  font-size:10px!important;
}
.status-v166 .status-content-v166{padding:14px!important;background:#fbfdfc!important}
.status-v166 .status-console-layout-p25{
  grid-template-columns:minmax(220px,.63fr) minmax(470px,1.55fr) minmax(280px,.82fr)!important;
  gap:12px!important;
}
.status-v166 .status-console-layout-p25>aside,
.status-v166 .status-console-components-p25{
  padding:15px!important;
  border:1px solid var(--p26-line)!important;
  border-radius:13px!important;
  box-shadow:none!important;
}
.status-v166 .status-console-health-p25{gap:11px!important}
.status-v166 .status-console-score-p25{
  --p26-health:0%;
  position:relative!important;
  isolation:isolate!important;
  width:150px!important;
  max-width:150px!important;
  aspect-ratio:1!important;
  border:0!important;
  border-radius:50%!important;
  background:conic-gradient(#137353 var(--p26-health),#ff686d 0)!important;
  box-shadow:none!important;
}
.status-v166 .status-console-score-p25::before{
  content:"";
  position:absolute;
  inset:11px;
  z-index:-1;
  border-radius:50%;
  background:#fff;
  box-shadow:inset 0 0 0 1px #e1ebe6;
}
.status-v166 .status-console-score-p25 strong{font-size:32px!important;color:#0c4a36!important}
.status-v166 .status-console-score-p25 span{max-width:110px;text-align:center;color:#5e746a!important}
.status-v166 .status-console-health-state-p26{
  display:grid;
  gap:3px;
  text-align:center;
}
.status-v166 .status-console-health-state-p26 strong{font-size:17px}
.status-v166 .status-console-health-state-p26[data-state="critical"] strong{color:#d6242f}
.status-v166 .status-console-health-state-p26[data-state="attention"] strong{color:#a86208}
.status-v166 .status-console-health-state-p26[data-state="normal"] strong{color:#116447}
.status-v166 .status-console-health-state-p26 p{margin:0;color:#60736a;font-size:9px;font-weight:750;line-height:1.4}
.status-v166 .status-console-metrics-p25{
  grid-template-columns:1fr!important;
  gap:7px!important;
}
.status-v166 .status-console-metrics-p25 div{
  display:grid!important;
  grid-template-columns:32px 1fr auto!important;
  align-items:center!important;
  gap:8px!important;
  min-height:52px!important;
  padding:8px 9px!important;
  border:1px solid #e0eae5!important;
  border-radius:10px!important;
  background:#fff!important;
}
.status-v166 .status-console-metrics-p25 i{
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  border-radius:9px;
  background:#eaf4ef;
  color:#0d5d42;
  font-style:normal;
  font-size:15px;
}
.status-v166 .status-console-metrics-p25 i svg{
  width:17px!important;
  height:17px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
}
.status-v166 .status-console-metrics-p25 span{font-size:7px!important;text-transform:uppercase;letter-spacing:.05em}
.status-v166 .status-console-metrics-p25 strong{margin:0!important;font-size:13px!important;text-align:right}
.status-v166 .status-console-services-p25{gap:9px!important}
.status-v166 .status-console-services-p25 .status-service-card-v166{
  min-height:155px!important;
  padding:12px 12px 10px 15px!important;
  border-radius:11px!important;
}
.status-v166 .status-console-priorities-p25 .status-issue-v166{
  border-left:4px solid #e58b10!important;
  border-radius:11px!important;
  background:#fffaf1!important;
}
.status-v166 .status-console-priorities-p25 .status-issue-v166[data-severity="erro"]{
  border-left-color:#dc2934!important;
  background:#fff7f7!important;
}
.status-v166 .status-console-critical-p26{
  display:grid;
  gap:7px;
  margin-top:10px;
  padding:13px;
  border:1px solid #f0c5c7;
  border-radius:11px;
  background:#fff8f8;
}
.status-v166 .status-console-critical-p26 strong{color:#bd1e29;font-size:10px;text-transform:uppercase}
.status-v166 .status-console-critical-p26 p{margin:0;color:#5f7068;font-size:9px;font-weight:750;line-height:1.45}
.status-v166 .status-console-critical-p26 small{color:#76887f;font-size:8px;font-weight:800}
.status-v166 .status-console-components-p25>header,
.status-v166 .status-console-priorities-p25>header{margin-bottom:10px!important}
.status-v166 .status-console-components-p25 h3,
.status-v166 .status-console-priorities-p25 h3{font-size:13px!important}

/* Cabeçalhos já aprovados — prioridade final, sem regressão por CSS de menus. */
body[data-current-menu="consultas-gerais"] .topbar.topbar-premium-vfinal,
body[data-current-menu="determinar-frente"] .topbar.topbar-premium-vfinal{
  border-radius:18px!important;
  box-shadow:0 16px 34px rgba(5,57,40,.16)!important;
}

/* Performance P26 — menos DOM, pintura e efeitos pesados. */
.consultas-pagination-p26,
.materiais-pagination-p26{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:58px;
  padding:10px 14px;
  border:1px solid var(--p26-line);
  border-top:0;
  border-radius:0 0 14px 14px;
  background:#fff;
  color:#536a60;
  font-size:11px;
  font-weight:800;
}
.consultas-pagination-p26>div,
.materiais-pagination-p26>div{display:flex;align-items:center;gap:10px}
.consultas-pagination-p26 b,
.materiais-pagination-p26 b{color:#173f31}
.consultas-pagination-p26 button:disabled,
.materiais-pagination-p26 button:disabled{opacity:.42;cursor:not-allowed}
body[data-current-menu="consultas-gerais"] .consultas-table-shell{
  margin-bottom:0!important;
  border-radius:14px 14px 0 0!important;
}
.materiais-page .materiais-table-shell{
  margin-bottom:0!important;
  border-radius:14px 14px 0 0!important;
}
.status-v166 .status-service-card-v166,
.materiais-page .mat-chart-card,
.materiais-page .mat-card{
  content-visibility:auto;
  contain-intrinsic-size:auto 180px;
}

/* ===== ESPELHO PIMS OFICIAL 1.01 — Alocação sempre renderizada ===== */
body[data-current-menu="determinar-frente"] #allocationGrid .process-block,
body[data-current-menu="determinar-frente"] #allocationGrid .board-front-card{
  content-visibility:visible!important;
  contain:none!important;
  contain-intrinsic-size:none!important;
}
.mat-command-hero-p26,
.status-v166,
body[data-current-menu="disponibilidade"] .topbar.topbar-premium-vfinal{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

@media(max-width:1260px){
  .status-v166 .status-hero-v166{grid-template-columns:1fr!important;grid-template-areas:"copy" "actions"!important}
  .status-v166 .status-actions-v166{grid-template-columns:repeat(5,minmax(0,1fr))!important}
  .status-v166 .status-actions-v166 .btn{white-space:nowrap!important}
  .status-v166 .status-console-layout-p25{grid-template-columns:minmax(220px,.65fr) minmax(470px,1.35fr)!important}
  .status-v166 .status-console-priorities-p25{grid-column:1/-1!important}
}
@media(max-width:900px){
  .mat-command-hero-p26{grid-template-columns:1fr!important;padding:21px!important}
  .mat-command-summary-p26{display:none!important}
  .materiais-page .mat-executive-panel{grid-template-columns:1fr!important}
  .materiais-page .mat-health-card{min-width:0!important}
  .status-v166 .status-actions-v166{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .status-v166 .status-actions-v166 .btn{min-width:0!important}
  .status-v166 .status-console-layout-p25{grid-template-columns:1fr!important}
  .status-v166 .status-console-priorities-p25{grid-column:auto!important}
}
@media(max-width:640px){
  .mat-command-hero-p26{min-height:0!important;padding:18px!important;border-radius:15px!important}
  .mat-command-copy-p26 h2{font-size:31px!important}
  .mat-command-meta-p26{display:none!important}
  .materiais-page .mat-view-switcher{grid-template-columns:1fr!important}
  .materiais-page .mat-view-tab{min-height:55px!important}
  .materiais-page .mat-consulta-hero{align-items:flex-start!important;flex-direction:column!important}
  .status-v166 .status-hero-v166{min-height:0!important;padding:18px!important}
  .status-v166 .status-actions-v166{grid-template-columns:1fr!important}
  .status-v166 .status-tabs-v166{padding:7px!important}
  .status-v166 .status-content-v166{padding:8px!important}
  .status-v166 .status-console-services-p25{grid-template-columns:1fr!important}
  .consultas-pagination-p26,
  .materiais-pagination-p26{align-items:stretch;flex-direction:column}
  .consultas-pagination-p26>div,
  .materiais-pagination-p26>div{justify-content:space-between}
}

@media print{
  .disp-process-icon-p26 .p26-primary{fill:#0a4a35!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .disp-process-icon-p26 .p26-secondary{fill:#a8d1bd!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}


/* ===== p27-save-feedback.css ===== */
/* MASTER P27 — modal único de sucesso/erro. */
.pims-save-feedback-p27{position:fixed;inset:0;z-index:2147482000;display:grid;place-items:center;padding:20px;background:rgba(13,31,24,.22);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.16s ease}
.pims-save-feedback-p27.show{opacity:1;visibility:visible}
.pims-save-feedback-card-p27{width:min(390px,calc(100vw - 32px));display:grid;justify-items:center;gap:9px;padding:26px 24px 20px;border:1px solid #dbe8e0;border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(18,54,39,.23);text-align:center;transform:translateY(8px) scale(.985);transition:.16s ease}
.pims-save-feedback-p27.show .pims-save-feedback-card-p27{transform:none}
.pims-save-feedback-icon-p27{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#e8f8ef;color:#118649;font-size:31px;font-weight:900}
.pims-save-feedback-card-p27.erro .pims-save-feedback-icon-p27{background:#feeceb;color:#c43832}
.pims-save-feedback-card-p27 strong{font-size:20px;color:#173d2d}.pims-save-feedback-card-p27 span{max-width:310px;color:#5d7168;line-height:1.45}
.pims-save-feedback-card-p27 button{margin-top:5px;min-width:112px;height:38px;border:0;border-radius:10px;background:#173d2d;color:#fff;font-weight:800;cursor:pointer}



/* MASTER P27 — gerenciador de perfis no Status do Sistema. */
.p27-access-manager{display:grid;gap:14px}.p27-access-manager>label{display:grid;gap:7px;font-weight:800;color:#173d32}.p27-access-manager input[type=search]{min-height:42px;padding:0 12px;border:1px solid #c9d8d2;border-radius:10px;background:#fff}.p27-access-table{display:grid;gap:8px;max-height:58vh;overflow:auto;padding-right:4px}.p27-access-row{display:grid;grid-template-columns:minmax(220px,1fr) 160px 90px auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #dce7e2;border-radius:12px;background:#fff}.p27-access-row>div{display:grid;gap:2px}.p27-access-row small{color:#667a73}.p27-access-row select{min-height:38px;border:1px solid #c9d8d2;border-radius:9px;background:#fff;padding:0 9px}.p27-access-active{display:flex;align-items:center;gap:6px;font-weight:750}.p27-access-count{color:#667a73}@media(max-width:780px){.p27-access-row{grid-template-columns:1fr 1fr}.p27-access-row>div{grid-column:1/-1}}

/* MASTER P28 — cores canônicas da Alocação. Classes legadas jamais ficam brancas. */
#allocationGrid .fleet-card.stopped,
#allocationGrid .fleet-card.danger,
#allocationGrid .fleet-card.maintenance,
#allocationGrid .fleet-card.manutencao,
#allocationGrid .fleet-card.parado { background:var(--v139-red,#d84b42)!important; border-color:#bf332d!important; color:#fff!important; }
#allocationGrid .fleet-card.sem-os,
#allocationGrid .fleet-card.sem_os { background:var(--v139-yellow,#d9ad19)!important; border-color:#b8910e!important; color:#342900!important; }
#allocationGrid .fleet-card.stopped *,
#allocationGrid .fleet-card.danger *,
#allocationGrid .fleet-card.maintenance *,
#allocationGrid .fleet-card.manutencao *,
#allocationGrid .fleet-card.parado *,
#allocationGrid .fleet-card.sem-os *,
#allocationGrid .fleet-card.sem_os * { color:inherit!important; }

/* ===== ESPELHO PIMS OFICIAL 1.02 — coerência e posicionamento final ===== */
body[data-current-menu="determinar-frente"] #allocationGrid.allocation-board{
  grid-template-columns:minmax(0,1fr)!important;
  align-items:start!important;
}
body[data-current-menu="determinar-frente"] #allocationGrid>.process-block{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
#allocationGrid .fleet-card.red,
#allocationGrid .fleet-card.stopped,
#allocationGrid .fleet-card.sem-os,
#allocationGrid .fleet-card.sem_os{
  background:var(--v139-red,#d9423a)!important;
  border-color:#bd302a!important;
  color:#fff!important;
}
#allocationGrid .fleet-card.green{background:var(--v139-green,#18a05e)!important;color:#fff!important}
#allocationGrid .fleet-card.orange{background:var(--v139-orange,#ef8b24)!important;color:#fff!important}
#allocationGrid .fleet-card.blue{background:var(--v139-blue,#2f79c5)!important;color:#fff!important}
#allocationGrid .fleet-card.opportunity{background:var(--v139-opportunity,#e6ad20)!important;color:#2f2500!important}
#allocationGrid .fleet-card.purple{background:var(--v139-purple,#8053b6)!important;color:#fff!important}
#allocationGrid .fleet-card.gray{background:var(--v139-gray,#77837e)!important;color:#fff!important}
#allocationGrid .fleet-card.teal{background:var(--v139-teal,#168b88)!important;color:#fff!important}

body[data-current-menu="consultas-gerais"] .consultas-pagination-p26{
  box-sizing:border-box!important;
  padding-right:96px!important;
}
body[data-current-menu="consultas-gerais"] .consultas-pagination-p26>div{
  flex:0 0 auto!important;
  gap:5px!important;
  white-space:nowrap!important;
}
body[data-current-menu="consultas-gerais"] .consultas-pagination-p26 button{
  min-width:0!important;
  padding-left:9px!important;
  padding-right:9px!important;
  font-size:10px!important;
}
body[data-current-menu="consultas-gerais"] .consultas-pagination-p26 b{
  font-size:10px!important;
  white-space:nowrap!important;
}
@media(max-width:900px){
  body[data-current-menu="consultas-gerais"] .consultas-pagination-p26{
    display:flex!important;
    align-items:center!important;
    flex-direction:row!important;
    justify-content:center!important;
    padding:9px 94px 9px 8px!important;
  }
  body[data-current-menu="consultas-gerais"] .consultas-pagination-p26>span{display:none!important}
  body[data-current-menu="consultas-gerais"] .consultas-pagination-p26>div{
    width:100%!important;
    justify-content:center!important;
  }
}

.mat-command-copy-p26 .mat-report-button-v102{
  min-height:37px;
  margin-top:14px;
  padding:0 17px;
  border:1px solid rgba(255,255,255,.42);
  border-radius:10px;
  background:#fff;
  color:#0f5139;
  font-size:11px;
  font-weight:950;
  cursor:pointer;
  box-shadow:0 9px 22px rgba(0,0,0,.12);
}
.mat-command-copy-p26 .mat-report-button-v102:hover{background:#e9f7f0}
/* V102 — frota completa no modal Adicionar / alocar.
   O identificador tem prioridade de largura e nunca recebe reticências. */
.alocar-hard-list,
.alocar-hard-list-v2{
  grid-template-columns:repeat(auto-fill,minmax(330px,1fr))!important;
}
.alocar-hard-item,
.alocar-hard-item-v2{
  grid-template-columns:20px minmax(66px,max-content) minmax(68px,.8fr) minmax(82px,1fr) minmax(60px,auto)!important;
  gap:6px!important;
  padding:9px!important;
  align-items:center!important;
}
.alocar-hard-frota-block{
  width:max-content!important;
  min-width:max-content!important;
  max-width:none!important;
}
.alocar-hard-frota-block strong{
  display:block!important;
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  font-size:16px!important;
}
.alocar-hard-tipo-block small,
.alocar-hard-origem-block small,
.alocar-hard-origem-block em{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  text-overflow:clip!important;
}
@media(max-width:760px){
  .alocar-hard-item,
  .alocar-hard-item-v2{
    grid-template-columns:24px minmax(0,1fr)!important;
  }
  .alocar-hard-frota-block{
    width:auto!important;
    min-width:0!important;
  }
}


/* =========================================================
   ESPELHO PIMS OFICIAL 1.02.1 — correção funcional final P30
   Login fiel à referência e troca de menus sem conteúdo vazando ao fundo.
========================================================= */
#loginView.login-screen{
  grid-template-columns:minmax(0,1.03fr) minmax(480px,.97fr)!important;
  background:#fff!important;
  isolation:isolate!important;
}
#loginView.login-screen::before{
  background:linear-gradient(112deg,#071f18 0%,#123d30 49.8%,#fff 50%,#fff 100%)!important;
}
#loginView.login-screen::after{
  left:32%!important;top:-18%!important;width:34%!important;height:140%!important;
  background:
    linear-gradient(164deg,transparent 0 22%,rgba(255,255,255,.085) 22.2% 42%,transparent 42.2% 58%,rgba(255,255,255,.055) 58.2% 76%,transparent 76.2%)!important;
  transform:skewX(-9deg)!important;
}
#loginView .login-hero{padding:clamp(44px,5vw,78px)!important;min-width:0!important;}
#loginView .brand-login{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;border-radius:0!important;}
#loginView .brand-login .brand-logo{width:72px!important;height:72px!important;border-radius:18px!important;background:#fff!important;padding:7px!important;box-shadow:0 12px 28px rgba(0,0,0,.18)!important;}
#loginView .brand-login strong{font-size:clamp(20px,2vw,31px)!important;line-height:1.08!important;color:#fff!important;}
#loginView .brand-login span{font-size:clamp(13px,1.1vw,18px)!important;color:#d5e7df!important;font-weight:800!important;}
#loginView .login-copy{margin-top:auto!important;margin-bottom:auto!important;max-width:760px!important;}
#loginView .login-copy h1{font-size:clamp(48px,5.1vw,78px)!important;line-height:.98!important;letter-spacing:-.055em!important;color:#fff!important;margin-bottom:28px!important;}
#loginView .login-copy p{font-size:clamp(18px,1.45vw,24px)!important;max-width:690px!important;color:#e1eee8!important;}
#loginView .login-footer-brand{text-transform:uppercase!important;letter-spacing:.06em!important;font-size:12px!important;font-weight:950!important;margin-top:46px!important;}
#loginView .login-panel{display:grid!important;place-items:center!important;padding:clamp(28px,5vw,76px)!important;}
#loginView .login-card{width:min(510px,100%)!important;border-radius:30px!important;padding:clamp(30px,3vw,46px)!important;border:1px solid #dfe8e3!important;background:#fff!important;box-shadow:0 28px 72px rgba(12,48,37,.18)!important;}
#loginView .login-logo{width:96px!important;height:96px!important;margin:0 auto 16px!important;display:grid!important;place-items:center!important;}
#loginView .login-logo img{max-width:100%!important;max-height:100%!important;object-fit:contain!important;}
#loginView .login-card h2{text-align:center!important;font-size:clamp(29px,2.3vw,39px)!important;color:#103d30!important;margin:0 0 28px!important;}
#loginView .login-card label{display:block!important;margin:15px 0 7px!important;color:#263b33!important;font-size:13px!important;font-weight:950!important;}
#loginView .login-card input,#loginView .login-card select{height:50px!important;border-radius:10px!important;padding:0 15px!important;font-size:14px!important;font-weight:750!important;background:#fff!important;}
#loginView .password-wrap input{padding-right:50px!important;}
#loginView #btnLogin{height:50px!important;margin-top:22px!important;border-radius:9px!important;background:#0b4a35!important;font-size:15px!important;box-shadow:0 12px 26px rgba(11,74,53,.22)!important;}
#loginView .login-security-note{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;margin:17px 0 0!important;color:#61736b!important;font-size:11px!important;font-weight:750!important;text-align:center!important;}
#loginView .login-security-note span{color:#0b6b4a!important;font-size:16px!important;}

#menuLoadingOverlay{
  background:rgba(242,247,244,.985)!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
body.pims-menu-loading-r9865-p4 #menuHost{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
body.pims-menu-loading-r9865-p4 .main{
  background:#f2f7f4!important;
}
.menu-loading-dialog-r9865-p4{
  border-color:#d9e7df!important;
  background:#fff!important;
  box-shadow:0 24px 58px rgba(13,55,42,.16)!important;
}
.mat-view-switcher{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
@media(max-width:900px){
  #loginView.login-screen{grid-template-columns:1fr!important;background:linear-gradient(180deg,#0b3025 0 30%,#fff 30% 100%)!important;overflow:auto!important;}
  #loginView.login-screen::before,#loginView.login-screen::after{display:none!important;}
  #loginView .login-hero{display:flex!important;min-height:250px!important;padding:28px 24px!important;}
  #loginView .login-copy{display:none!important;}
  #loginView .login-panel{padding:18px!important;align-items:start!important;}
  #loginView .login-card{margin-top:-54px!important;position:relative!important;z-index:2!important;}
  .mat-view-switcher{grid-template-columns:1fr!important;}
}


/* ============================================================
   ESPELHO PIMS OFICIAL 1.02.2 P31.2
   TELA DE LOGIN EXATA — parâmetros visuais da versão R56
   Aplicação limitada ao #loginView; nenhum menu interno alterado.
   ============================================================ */
html:has(#loginView.login-screen:not(.hidden)),
body:has(#loginView.login-screen:not(.hidden)){
  width:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  margin:0!important;
  overflow:hidden!important;
}
#loginView.login-screen.hidden{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#loginView.login-screen:not(.hidden){
  position:fixed!important;
  inset:0!important;
  z-index:99999!important;
  display:grid!important;
  grid-template-columns:58% 42%!important;
  width:100vw!important;
  height:100dvh!important;
  min-height:100dvh!important;
  padding:0!important;
  overflow:hidden!important;
  color:#10271e!important;
  background:
    radial-gradient(circle at 20% 18%,rgba(40,176,111,.18),transparent 30%),
    radial-gradient(circle at 76% 48%,rgba(255,255,255,.08),transparent 34%),
    linear-gradient(135deg,#061e18 0%,#0b3328 48%,#15543f 100%)!important;
}
#loginView.login-screen:not(.hidden)::before,
#loginView.login-screen:not(.hidden)::after{
  display:none!important;
  content:none!important;
}
#loginView .login-hero{
  position:relative!important;
  z-index:1!important;
  min-width:0!important;
  min-height:100dvh!important;
  padding:clamp(42px,3.7vw,66px)!important;
  display:grid!important;
  grid-template-rows:auto 1fr!important;
  align-items:stretch!important;
  justify-items:start!important;
  background:transparent!important;
  clip-path:none!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
#loginView .login-hero::before{
  content:""!important;
  position:absolute!important;
  inset:-14% 8% -16% 42%!important;
  z-index:0!important;
  background:
    linear-gradient(105deg,transparent 0 26%,rgba(255,255,255,.045) 26% 48%,transparent 48% 100%),
    linear-gradient(105deg,transparent 0 58%,rgba(255,255,255,.095) 58% 58.7%,transparent 58.7% 100%)!important;
  transform:skewX(-8deg)!important;
  pointer-events:none!important;
}
#loginView .login-hero::after{
  content:""!important;
  position:absolute!important;
  left:-9%!important;
  bottom:-9%!important;
  width:22%!important;
  height:49%!important;
  z-index:0!important;
  border-radius:28px!important;
  background:rgba(255,255,255,.045)!important;
  border:1px solid rgba(255,255,255,.055)!important;
  transform:rotate(12deg)!important;
  pointer-events:none!important;
}
#loginView .brand-login{
  position:relative!important;
  z-index:3!important;
  top:auto!important;
  left:auto!important;
  width:max-content!important;
  max-width:min(360px,82%)!important;
  margin:0!important;
  padding:12px 18px!important;
  border-radius:22px!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  background:rgba(255,255,255,.105)!important;
  border:1px solid rgba(255,255,255,.28)!important;
  box-shadow:0 18px 48px rgba(0,0,0,.16)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
}
#loginView .brand-login .brand-logo{
  width:58px!important;
  height:58px!important;
  flex:0 0 58px!important;
  border-radius:16px!important;
  background:#fff!important;
  box-shadow:none!important;
}
#loginView .brand-login .brand-logo img{
  width:50px!important;
  max-height:50px!important;
  object-fit:contain!important;
}
#loginView .brand-login strong{
  color:#fff!important;
  font-size:18px!important;
  line-height:1.08!important;
  font-weight:1000!important;
  letter-spacing:.01em!important;
  text-shadow:0 8px 24px rgba(0,0,0,.16)!important;
}
#loginView .brand-login span{
  display:block!important;
  margin-top:4px!important;
  color:#d9f3e9!important;
  font-size:12.5px!important;
  font-weight:900!important;
}
#loginView .login-copy{
  position:relative!important;
  z-index:3!important;
  align-self:center!important;
  width:min(690px,82%)!important;
  margin:clamp(42px,7vh,78px) 0 0 clamp(20px,1.2vw,30px)!important;
  padding:0!important;
  transform:none!important;
}
#loginView .login-copy h1{
  max-width:690px!important;
  margin:0!important;
  color:#fff!important;
  font-size:clamp(54px,4.15vw,74px)!important;
  line-height:.96!important;
  letter-spacing:-.055em!important;
  font-weight:1000!important;
  text-align:left!important;
  text-shadow:0 16px 46px rgba(0,0,0,.28)!important;
}
#loginView .login-copy h1::after{
  content:""!important;
  display:block!important;
  width:72px!important;
  height:5px!important;
  margin-top:24px!important;
  border-radius:999px!important;
  background:#35c274!important;
  box-shadow:none!important;
}
#loginView .login-copy p{
  max-width:680px!important;
  margin:25px 0 0!important;
  color:#fff!important;
  font-size:clamp(18px,1.33vw,24px)!important;
  line-height:1.4!important;
  font-weight:850!important;
  text-align:left!important;
  text-shadow:0 12px 34px rgba(0,0,0,.22)!important;
}
#loginView .login-footer-brand{
  display:block!important;
  margin:78px 0 0!important;
  color:#d7eee5!important;
  text-align:left!important;
  font-size:12px!important;
  line-height:1!important;
  letter-spacing:.02em!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
}
#loginView .login-panel{
  position:relative!important;
  z-index:2!important;
  min-width:0!important;
  min-height:100dvh!important;
  display:grid!important;
  place-items:center!important;
  padding:clamp(42px,5.5vh,68px) clamp(54px,6vw,118px) clamp(42px,5.5vh,68px) clamp(10px,1.8vw,34px)!important;
  margin:0!important;
  background:transparent!important;
  overflow:visible!important;
}
#loginView .login-panel::before,
#loginView .login-panel::after{
  display:none!important;
  content:none!important;
}
#loginView .login-card{
  position:relative!important;
  z-index:3!important;
  width:min(482px,100%)!important;
  min-height:650px!important;
  padding:45px 48px 34px!important;
  border-radius:30px!important;
  background:rgba(255,255,255,.985)!important;
  border:1px solid rgba(223,234,229,.95)!important;
  box-shadow:0 34px 90px rgba(0,0,0,.24),0 0 0 1px rgba(255,255,255,.38) inset!important;
  pointer-events:auto!important;
}
#loginView .login-logo{
  width:76px!important;
  height:76px!important;
  margin:0 auto 17px!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  display:grid!important;
  place-items:center!important;
}
#loginView .login-logo img{
  width:64px!important;
  max-height:64px!important;
  object-fit:contain!important;
}
#loginView .login-card h2{
  margin:0 0 24px!important;
  color:#0b3328!important;
  font-size:clamp(36px,2.15vw,40px)!important;
  line-height:1.05!important;
  text-align:center!important;
  font-weight:1000!important;
  letter-spacing:-.035em!important;
  white-space:normal!important;
}
#loginView .login-msg{
  margin:0 0 12px!important;
}
#loginView .login-card label{
  display:block!important;
  margin:15px 0 8px!important;
  color:#133d30!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:1000!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
#loginView .required{color:#e2555b!important;}
#loginView .password-wrap{
  position:relative!important;
  display:block!important;
  width:100%!important;
}
#loginView .login-card input,
#loginView .login-card select{
  width:100%!important;
  height:56px!important;
  border-radius:14px!important;
  border:1px solid #d7e5df!important;
  background:#fff!important;
  color:#10271e!important;
  font-size:15px!important;
  font-weight:850!important;
  padding:0 16px!important;
  outline:none!important;
  box-shadow:none!important;
  pointer-events:auto!important;
}
#loginView .login-card input::placeholder{
  color:#75857e!important;
  opacity:1!important;
  font-weight:800!important;
}
#loginView .login-card input:focus,
#loginView .login-card select:focus{
  border-color:#1d6b4d!important;
  box-shadow:0 0 0 4px rgba(29,107,77,.11)!important;
}
#loginView .login-card select{
  appearance:none!important;
  -webkit-appearance:none!important;
  -moz-appearance:none!important;
  background-image:none!important;
  padding-right:16px!important;
}
#loginView .password-wrap input{padding-right:58px!important;}
#loginView .btn-toggle-senha{
  position:absolute!important;
  right:14px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:30px!important;
  height:30px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  color:#687771!important;
  box-shadow:none!important;
}
#loginView .btn-toggle-senha svg{
  width:22px!important;
  height:22px!important;
  fill:currentColor!important;
}
#loginView #btnLogin{
  width:100%!important;
  height:60px!important;
  margin-top:28px!important;
  border:0!important;
  border-radius:14px!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:1000!important;
  background:linear-gradient(90deg,#0f3d2e 0%,#2f7f55 100%)!important;
  box-shadow:0 16px 30px rgba(15,61,46,.18)!important;
  cursor:pointer!important;
  pointer-events:auto!important;
}
#loginView #btnLogin:hover{
  filter:brightness(1.03)!important;
  transform:translateY(-1px)!important;
}
#loginView #btnLogin:disabled{
  opacity:.78!important;
  cursor:wait!important;
  transform:none!important;
}
#loginView .login-secure{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  margin:29px 0 0!important;
  color:#42554e!important;
  font-size:12px!important;
  font-weight:900!important;
  line-height:1.3!important;
  text-align:center!important;
}
#loginView .login-secure svg{
  width:22px!important;
  height:22px!important;
  flex:0 0 22px!important;
  fill:#35c274!important;
}
#loginView .pwa-install-btn,
#loginView .pwa-install-hint{
  margin-top:12px!important;
}
@media(max-width:1220px){
  #loginView.login-screen:not(.hidden){grid-template-columns:56% 44%!important;}
  #loginView .login-hero{padding:38px!important;}
  #loginView .login-copy{width:min(590px,82%)!important;margin-left:12px!important;}
  #loginView .login-copy h1{font-size:clamp(48px,4.3vw,60px)!important;}
  #loginView .login-copy p{font-size:17px!important;}
  #loginView .login-card{width:min(450px,100%)!important;min-height:620px!important;padding:40px 38px 32px!important;}
  #loginView .login-panel{padding-left:12px!important;padding-right:48px!important;}
}
@media(max-width:940px){
  html:has(#loginView.login-screen:not(.hidden)),
  body:has(#loginView.login-screen:not(.hidden)){overflow:auto!important;}
  #loginView.login-screen:not(.hidden){
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:100dvh!important;
    height:auto!important;
    padding:18px!important;
    overflow:auto!important;
    background:
      radial-gradient(circle at 50% 0%,rgba(40,176,111,.18),transparent 34%),
      linear-gradient(160deg,#061e18 0%,#0f3d2e 58%,#15543f 100%)!important;
  }
  #loginView .login-hero,
  #loginView .login-hero::before,
  #loginView .login-hero::after,
  #loginView .brand-login,
  #loginView .login-copy,
  #loginView .login-footer-brand{
    display:none!important;
  }
  #loginView .login-panel{
    width:100%!important;
    min-height:auto!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    overflow:visible!important;
  }
  #loginView .login-card{
    width:min(460px,100%)!important;
    min-height:0!important;
    padding:36px 28px 30px!important;
    border-radius:28px!important;
  }
  #loginView .login-card h2{font-size:34px!important;}
}
@media(max-height:760px) and (min-width:941px){
  #loginView .login-hero{padding:30px 46px!important;}
  #loginView .brand-login{transform:scale(.9)!important;transform-origin:left top!important;}
  #loginView .login-copy{margin-top:22px!important;}
  #loginView .login-copy h1{font-size:52px!important;}
  #loginView .login-copy p{font-size:17px!important;margin-top:18px!important;}
  #loginView .login-footer-brand{margin-top:38px!important;}
  #loginView .login-panel{padding-top:18px!important;padding-bottom:18px!important;}
  #loginView .login-card{min-height:0!important;padding:24px 42px!important;}
  #loginView .login-logo{height:58px!important;margin-bottom:8px!important;}
  #loginView .login-logo img{width:54px!important;max-height:54px!important;}
  #loginView .login-card h2{font-size:32px!important;margin-bottom:14px!important;}
  #loginView .login-card label{margin-top:10px!important;}
  #loginView .login-card input,#loginView .login-card select{height:48px!important;}
  #loginView #btnLogin{height:52px!important;margin-top:18px!important;}
  #loginView .login-secure{margin-top:18px!important;}
}
/* MURAL_OPERACIONAL_TV_V1633 — exclusivo do Modo TV da Alocacao. */
.det-tv-mural-board{display:block!important;padding:8px 10px!important;overflow:hidden!important;background:#edf3ef!important}.det-tv-mural-page{display:none;height:100%;min-height:0}.det-tv-mural-page.is-active{display:block;animation:detTvMuralEnter .32s ease-out}.det-tv-mural-columns{display:grid;grid-template-columns:repeat(var(--det-tv-columns,3),minmax(0,1fr));gap:9px;height:100%;align-items:start}.det-tv-mural-column{display:flex;flex-direction:column;gap:9px;min-width:0}.det-tv-mural-process{min-width:0;overflow:hidden;border:1px solid #cddbd4;border-radius:12px;background:#fff;box-shadow:0 5px 16px rgba(10,54,39,.07)}
.det-tv-mural-process>header{min-height:34px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:6px 9px;color:#fff;background:linear-gradient(135deg,#103f30,#176247)}.det-tv-mural-process>header h3{min-width:0;margin:0;color:#fff;font-size:clamp(11px,.78vw,14px);line-height:1.15;font-weight:1000;overflow-wrap:anywhere}.det-tv-mural-process>header span{display:grid;place-items:center;min-width:25px;height:23px;padding:0 6px;border-radius:999px;background:#fff;color:#104532;font-size:12px;font-weight:1000}.det-tv-mural-process>header small{font-size:8px;font-weight:900;color:#d8eee5;text-transform:uppercase;white-space:nowrap}.det-tv-mural-list{display:flex;flex-direction:column}
.det-tv-mural-row{position:relative;width:100%;min-height:41px!important;display:grid!important;grid-template-columns:5px minmax(88px,.72fr) minmax(120px,1fr) minmax(78px,.58fr) minmax(58px,.42fr);align-items:center;gap:6px;padding:4px 7px 4px 0!important;border:0!important;border-bottom:1px solid #e4ece8!important;border-radius:0!important;background:#fff!important;color:#17372c;text-align:left!important;cursor:pointer}.det-tv-mural-row:last-child{border-bottom:0!important}.det-tv-mural-row:hover{z-index:1;background:#f3f8f5!important;box-shadow:inset 0 0 0 2px rgba(23,98,71,.18)}.det-tv-mural-signal{align-self:stretch;width:5px;border-radius:0 4px 4px 0;background:#75867f}
.det-tv-mural-row.has-operational-alert{box-shadow:inset 0 0 0 1px rgba(190,62,43,.22)}.det-tv-mural-row.has-operational-alert .det-tv-mural-location small{color:#9a3829!important;font-weight:900!important}
.det-tv-mural-row.red .det-tv-mural-signal{background:#d83a31}.det-tv-mural-row.green .det-tv-mural-signal{background:#27a765}.det-tv-mural-row.orange .det-tv-mural-signal{background:#e79219}.det-tv-mural-row.yellow .det-tv-mural-signal{background:#d9ae16}.det-tv-mural-row.purple .det-tv-mural-signal{background:#8057cb}.det-tv-mural-row.gray .det-tv-mural-signal{background:#7b8a84}.det-tv-mural-row.teal .det-tv-mural-signal{background:#268da9}.det-tv-mural-row.opportunity .det-tv-mural-signal{background:#ce6843}.det-tv-mural-row.blue .det-tv-mural-signal{background:#347dcc}
.det-tv-mural-id,.det-tv-mural-location{display:flex;flex-direction:column;min-width:0;gap:1px}.det-tv-mural-id b{font-size:clamp(13px,.9vw,17px)!important;line-height:1!important;color:#102f25!important;font-weight:1000!important}.det-tv-mural-id small,.det-tv-mural-location small{display:block!important;margin:0!important;color:#64766e!important;font-size:clamp(7.5px,.48vw,9px)!important;line-height:1.12!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere}.det-tv-mural-location b{font-size:clamp(8px,.58vw,10px)!important;line-height:1.1;color:#22483a!important;overflow-wrap:anywhere}
.det-tv-mural-state{justify-self:stretch;border-radius:999px;padding:4px 5px;font-size:clamp(7px,.46vw,9px);line-height:1.05;font-weight:1000;text-align:center;text-transform:uppercase;overflow-wrap:anywhere;background:#edf2ef;color:#43564e}.det-tv-mural-state.red{background:#fde3e1;color:#a62520}.det-tv-mural-state.green{background:#ddf5e8;color:#176d42}.det-tv-mural-state.orange{background:#fff0d8;color:#92580b}.det-tv-mural-state.yellow{background:#fff5be;color:#725800}.det-tv-mural-state.purple{background:#eee4ff;color:#6035a7}.det-tv-mural-state.gray{background:#e7ecea;color:#52615b}.det-tv-mural-state.teal{background:#dff4fa;color:#176c82}.det-tv-mural-state.opportunity{background:#ffe8df;color:#934326}.det-tv-mural-state.blue{background:#e2efff;color:#245e9e}
.det-tv-mural-os{display:flex;flex-direction:column;align-items:flex-end;min-width:0;text-align:right}.det-tv-mural-os small{display:block!important;margin:0!important;font-size:7px!important;line-height:1!important;color:#73827c!important;font-weight:900;text-transform:uppercase}.det-tv-mural-os b{font-size:clamp(8px,.6vw,11px)!important;line-height:1.05!important;color:#17392d!important;overflow-wrap:anywhere}.det-tv-kpi{justify-content:flex-start!important}.det-tv-kpi i{width:8px;height:8px;border-radius:50%;background:#7a8a83;box-shadow:0 0 0 3px rgba(122,138,131,.13)}.det-tv-kpi b{overflow:visible!important;text-overflow:clip!important;white-space:normal!important;line-height:1.05}.det-tv-kpi span{margin-left:auto}.det-tv-kpi.red i{background:#d83a31}.det-tv-kpi.green i{background:#27a765}.det-tv-kpi.orange i{background:#e79219}.det-tv-kpi.yellow i{background:#d9ae16}.det-tv-kpi.purple i{background:#8057cb}.det-tv-kpi.gray i{background:#7b8a84}.det-tv-kpi.teal i{background:#268da9}.det-tv-kpi.opportunity i{background:#ce6843}.det-tv-kpi.blue i{background:#347dcc}
.det-tv-mural-footer{min-height:35px;display:flex;align-items:center;justify-content:center;gap:10px;padding:4px 10px;border-top:1px solid #cfddd5;background:#f7faf8;color:#315144;font-size:10px;font-weight:900}.det-tv-mural-footer button{border:1px solid #c2d5cb;border-radius:8px;background:#fff;color:#164b38;min-height:26px;padding:4px 9px;font-size:11px;font-weight:1000;cursor:pointer}.det-tv-mural-footer button:first-child,.det-tv-mural-footer button:last-child{font-size:20px;line-height:16px;min-width:31px}.det-tv-mural-dots{display:flex;gap:4px;align-items:center}.det-tv-mural-dots i{width:6px;height:6px;border-radius:50%;background:#c3d1ca}.det-tv-mural-dots i.is-active{width:17px;border-radius:99px;background:#176247}.det-tv-tooltip-r89{max-width:min(430px,calc(100vw - 28px))!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important}@keyframes detTvMuralEnter{from{opacity:.25;transform:translateY(3px)}to{opacity:1;transform:none}}@media(max-width:819px){.det-tv-mural-columns{grid-template-columns:1fr!important}.det-tv-mural-row{grid-template-columns:5px minmax(76px,.7fr) minmax(100px,1fr) minmax(70px,.6fr) minmax(52px,.4fr)}.det-tv-mural-process>header small{display:none}.det-tv-mural-process>header{grid-template-columns:minmax(0,1fr) auto}}@media(prefers-reduced-motion:reduce){.det-tv-mural-page.is-active{animation:none}}
.det-tv-header p{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere}
