/* ============ TOKENS DE DESIGN ============ */
:root{
  --cbm-red:#96000a;
  --cbm-red-dark:#7d1020;
  --cbm-gold:#f0b43c;
  --site-header-height:86px;
  --bg: #eef2f7;
  --surface: #ffffff;
  --surface-2: #f8fafc;
  --border: #e3e8ef;
  --border-strong: #d4dbe5;
  --track: #eef2f7;
  --text: #0f172a;
  --text-muted: #5b6b80;
  --text-soft: #94a3b8;
  --brand-50:#fff1f2; --brand-100:#ffe4e6; --brand-200:#fecdd3; --brand-300:#fda4af; --brand-400:#fb7185;
  --brand-500:#e11d48; --brand-600:#b7192a; --brand-700:#96000a; --brand-900:#5f0b17;
  --ok:#059669; --warn:#d97706; --low:#e11d48;
  --shadow-sm: 0 1px 2px rgba(15,23,42,.05);
  --shadow-md: 0 1px 2px rgba(15,23,42,.05), 0 16px 32px -22px rgba(15,23,42,.32);
  --shadow-lg: 0 24px 48px -20px rgba(15,23,42,.28);
}
 
*{ box-sizing:border-box; }
html,body{ margin:0; }
body{
  font-family:'Inter',sans-serif;
  background-color:var(--bg);
  background-image:
    radial-gradient(900px 500px at 100% -5%, rgba(183,25,42,.10), transparent 60%),
    radial-gradient(800px 480px at -5% 110%, rgba(240,180,60,.10), transparent 60%);
  background-attachment:fixed;
  color:var(--text);
  -webkit-font-smoothing:antialiased;
}
body.is-locked{ overflow:hidden; }
body.has-mobile-nav{ overflow:hidden; }
[id]{ scroll-margin-top:calc(var(--site-header-height) + 18px); }
 
::-webkit-scrollbar{ width:9px; height:9px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{ background:#c2ccda; border-radius:99px; border:2px solid var(--bg); }
::-webkit-scrollbar-thumb:hover{ background:#9aa8bd; }
 
.font-mono{ font-family:'JetBrains Mono',monospace; }

/* ============ INSTITUCIONAL CBMMT ============ */
.site-header{
  position:sticky;
  top:0;
  z-index:80;
  background:var(--cbm-red);
  border-bottom:4px solid #bd1a1a;
  box-shadow:0 10px 26px rgba(32,38,51,.16);
}
.site-nav{
  width:100%;
  min-height:var(--site-header-height);
  margin:0;
  padding:0 24px 0 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.site-brand{
  display:inline-flex;
  align-items:center;
  min-width:190px;
}
.site-brand img{
  display:block;
  width:auto;
  max-width:210px;
  height:70px;
  object-fit:contain;
}
.site-nav-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.site-nav-links a{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:0 12px;
  color:rgba(255,255,255,.78);
  font-weight:800;
  text-decoration:none;
  transition:color 160ms ease;
}
.site-nav-links a:hover,
.site-nav-links a:focus{ color:#fff; }
.site-nav-links a::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:3px;
  height:2px;
  border-radius:999px;
  background:#fff;
  opacity:0;
  transform:scaleX(.5);
  transition:opacity 160ms ease, transform 160ms ease;
}
.site-nav-links a:hover::after,
.site-nav-links a:focus::after{
  opacity:1;
  transform:scaleX(1);
}
.site-nav-toggle{
  display:none;
  position:relative;
  width:42px;
  height:42px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.10);
  color:#fff;
  cursor:pointer;
  place-items:center;
  font-size:18px;
}
.site-nav-toggle:focus-visible{
  outline:3px solid rgba(255,255,255,.45);
  outline-offset:2px;
}
 
/* ============ SUPERFÍCIES ============ */
.panel{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow:var(--shadow-md);
}
 
/* ============ SIDEBAR ============ */
.sidebar{ position:relative; overflow:hidden; }
.sidebar::after{
  content:''; position:absolute; inset:0 0 auto 0; height:4px;
  background:linear-gradient(90deg,var(--brand-400),var(--brand-600),var(--brand-900));
}
.brand-logo{
  position:relative; width:82px; height:82px; border-radius:22px;
  background:linear-gradient(150deg,#5f0b17,#b7192a);
  display:grid; place-items:center; color:#fff; font-size:34px;
  box-shadow:0 14px 26px -10px rgba(183,25,42,.52);
}
.brand-ring{
  position:absolute; inset:-6px; border-radius:26px;
  border:1.5px dashed rgba(183,25,42,.40);
  animation:spin 14s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }
.brand-title{
  font-size:1.2rem; font-weight:800; line-height:1.2; letter-spacing:-.01em;
  color:var(--text); text-transform:uppercase;
}
.brand-title span{ color:var(--brand-600); font-weight:400; display:block; }
.brand-sub{
  margin-top:.5rem; font-size:11px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--text-soft);
}
.summary-card{
  background:var(--surface-2); border:1px solid var(--border);
  border-radius:14px; padding:1rem 1.05rem;
}
.summary-head{
  font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:var(--brand-700); display:flex; align-items:center; gap:.5rem; margin-bottom:.6rem;
}
.summary-card p{
  margin:0; font-size:12.5px; line-height:1.65; color:var(--text-muted);
  text-align:justify;
}
.meta-list{ margin-top:.95rem; display:flex; flex-direction:column; gap:1px;
  border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.meta-list > div{
  display:flex; justify-content:space-between; align-items:center; gap:.6rem;
  padding:.6rem .85rem; background:var(--surface);
}
.meta-list > div + div{ border-top:1px solid var(--border); }
.meta-list span{ font-size:10.5px; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--text-soft); }
.meta-list strong{ font-size:12px; font-weight:700; color:var(--text); text-align:right; }
.fundo-badge{
  margin-top:.95rem; display:flex; align-items:center; justify-content:center; gap:.55rem;
  padding:.8rem; border-radius:12px; font-weight:800; font-size:14.5px;
  color:#047857; background:linear-gradient(135deg,#ecfdf5,#d1fae5);
  border:1px solid #a7f3d0;
}
 
/* ============ TOPBAR ============ */
.topbar{
  position:sticky; top:calc(var(--site-header-height) + .75rem); z-index:40;
  background:rgba(255,255,255,.85);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border:1px solid var(--border); border-radius:16px;
  box-shadow:var(--shadow-sm);
}
.topbar-icon{
  width:48px; height:48px; border-radius:13px; display:grid; place-items:center;
  background:linear-gradient(150deg,var(--brand-600),var(--brand-900));
  color:#fff; font-size:20px; box-shadow:0 10px 18px -8px rgba(183,25,42,.52);
}
.topbar-title{ font-size:17px; font-weight:800; letter-spacing:-.01em; margin:0; }
.topbar-sub{ font-size:12.5px; color:var(--text-soft); font-weight:600; margin:2px 0 0; }
.status-pill{
  display:flex; align-items:center; gap:.45rem; padding:.4rem .8rem;
  background:#ecfdf5; border:1px solid #a7f3d0; border-radius:99px;
  font-size:12px; font-weight:800; color:#047857; text-transform:uppercase;
  letter-spacing:.05em;
}
.status-dot-live{
  width:8px; height:8px; border-radius:99px; background:#10b981;
  box-shadow:0 0 0 0 rgba(16,185,129,.6); animation:pulse 2s infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(16,185,129,.55); }
  70%{ box-shadow:0 0 0 7px rgba(16,185,129,0); }
  100%{ box-shadow:0 0 0 0 rgba(16,185,129,0); }
}
.last-update{
  align-items:center; gap:.45rem; font-size:12.5px; color:var(--text-muted); font-weight:600;
}
.last-update strong{ font-family:'JetBrains Mono',monospace; color:var(--text); }
.refresh-btn{
  width:44px; height:44px; border-radius:13px; display:grid; place-items:center;
  background:var(--surface); border:1px solid var(--border-strong); color:var(--brand-600);
  cursor:pointer; transition:all .18s ease; font-size:16px;
}
.refresh-btn:hover{ background:var(--brand-50); border-color:var(--brand-300);
  transform:translateY(-1px); }
.refresh-btn:active{ transform:translateY(0); }
#btn-refresh.is-loading .spin-icon{ animation:spin 1s linear infinite; }
 
/* ============ RÓTULO DE SEÇÃO ============ */
.sec-label{
  display:flex; align-items:center; gap:.6rem;
  font-size:12.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--text-muted); margin:.2rem .2rem .1rem;
}
.sec-label::before{
  content:''; width:16px; height:3px; border-radius:99px;
  background:linear-gradient(90deg,var(--brand-500),var(--brand-700));
}
.sec-label .line{ flex:1; height:1px; background:var(--border); }
 
/* ============ KPI CARDS ============ */
.kpi-grid{
  display:grid; gap:.75rem;
  grid-template-columns:repeat(2,1fr);
}
@media(min-width:640px){ .kpi-grid{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:1024px){ .kpi-grid{ grid-template-columns:repeat(4,1fr); } }
@media(min-width:1440px){ .kpi-grid{ grid-template-columns:repeat(6,1fr); } }
 
.kpi-card{
  position:relative; display:flex; flex-direction:column; gap:.6rem;
  background:var(--surface); border:1px solid var(--border); border-radius:16px;
  padding:.95rem 1rem; text-align:left; width:100%; cursor:pointer;
  font-family:inherit; color:inherit;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  box-shadow:var(--shadow-sm);
}
.kpi-card > *{ position:relative; z-index:1; }
.kpi-card:hover{
  transform:translateY(-3px); border-color:var(--brand-300);
  box-shadow:0 16px 30px -14px rgba(183,25,42,.34);
}
.kpi-card:focus-visible{ outline:2px solid var(--brand-500); outline-offset:2px; }
.kpi-card.kpi-active{
  border-color:var(--brand-500);
  box-shadow:0 14px 28px -12px rgba(183,25,42,.40);
  background:linear-gradient(180deg,var(--brand-50),var(--surface));
}
.kpi-static{ cursor:default; }
.kpi-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; }
.kpi-icon{
  width:44px; height:44px; border-radius:12px; display:grid; place-items:center;
  background:var(--brand-50); color:var(--brand-600); font-size:18px;
  transition:all .18s ease;
}
.kpi-card:hover .kpi-icon{ background:var(--brand-100); }
.kpi-active .kpi-icon{ background:var(--brand-600); color:#fff; }
.kpi-pct{
  font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:800;
  padding:3px 9px; border-radius:99px; background:var(--track); color:var(--text-muted);
  white-space:nowrap; display:flex; align-items:center; gap:.3rem;
}
.kpi-pct[data-tone="ok"]{ background:rgba(5,150,105,.12); color:#047857; }
.kpi-pct[data-tone="warn"]{ background:rgba(217,119,6,.15); color:#b45309; }
.kpi-pct[data-tone="low"]{ background:rgba(225,29,72,.12); color:#be123c; }
.kpi-label{
  font-size:11.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  color:var(--text-muted); line-height:1.35; min-height:2.7em;
}
.kpi-value{
  font-family:'JetBrains Mono',monospace; font-size:1.95rem; font-weight:800;
  letter-spacing:-.03em; color:var(--text); line-height:1;
}
.kpi-bar{ height:6px; border-radius:99px; background:var(--track); overflow:hidden; }
.kpi-bar-fill{
  height:100%; width:0%; border-radius:99px;
  background:linear-gradient(90deg,var(--brand-400),var(--brand-600));
  transition:width 1.1s cubic-bezier(.22,.61,.36,1);
}
.kpi-bar-fill[data-tone="ok"]{ background:linear-gradient(90deg,#34d399,#059669); }
.kpi-bar-fill[data-tone="warn"]{ background:linear-gradient(90deg,#fbbf24,#d97706); }
.kpi-bar-fill[data-tone="low"]{ background:linear-gradient(90deg,#fb7185,#e11d48); }
.kpi-bar-fill.is-full{ width:100%; }
.kpi-meta{ font-size:10.5px; font-weight:600; color:var(--text-soft);
  text-transform:uppercase; letter-spacing:.04em; }
.kpi-meta .meta-value{ font-family:'JetBrains Mono',monospace; color:var(--text-muted);
  font-weight:700; }
 
/* ---- Card destaque ---- */
.kpi-feature{
  background:linear-gradient(145deg,#5f0b17 0%,#96000a 60%,#b7192a 100%);
  border-color:transparent; color:#fff;
  box-shadow:0 18px 34px -16px rgba(183,25,42,.48);
  isolation:isolate;
  overflow:hidden;
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
}
.kpi-feature::after{
  content:''; position:absolute; right:-30px; top:-30px; width:140px; height:140px;
  border-radius:99px; background:rgba(255,255,255,.07);
}
.kpi-feature:hover{ box-shadow:0 22px 40px -14px rgba(183,25,42,.55); }
.kpi-feature .kpi-icon{ background:rgba(255,255,255,.16); color:#fff; }
.kpi-feature .kpi-label{ color:rgba(255,255,255,.8); }
.kpi-feature .kpi-value{ color:#fff; font-size:3rem; }
.kpi-feature .kpi-bar{ background:rgba(255,255,255,.2); }
.kpi-feature .kpi-bar-fill{ background:linear-gradient(90deg,#fda4af,#ffe4e6); }
.kpi-feature .kpi-meta{ color:rgba(255,255,255,.74); }
.kpi-feature .kpi-meta .meta-value{ color:#fff; }
.kpi-feature .kpi-pct,
.kpi-feature .kpi-pct[data-tone]{ background:rgba(255,255,255,.18); color:#fff; }
.kpi-feature.kpi-active{ background:linear-gradient(145deg,#7d1020,#e11d48); }
 
/* ---- Card destaque verde (BM Efetivo) ---- */
.kpi-feature-green{
  background:linear-gradient(145deg,#064e3b 0%,#047857 60%,#059669 100%);
  box-shadow:0 18px 34px -16px rgba(4,120,87,.7);
}
.kpi-feature-green:hover{ box-shadow:0 22px 40px -14px rgba(4,120,87,.78); }
.kpi-feature-green .kpi-bar-fill{ background:linear-gradient(90deg,#6ee7b7,#d1fae5); }
 
/* ============ INFO CARDS (prazo / valor) ============ */
.info-card{
  background:var(--surface); border:1px solid var(--border); border-radius:16px;
  padding:1.05rem 1.15rem; display:flex; flex-direction:column; box-shadow:var(--shadow-sm);
}
.info-head{
  font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  color:var(--text-muted); display:flex; align-items:center; gap:.5rem;
}
.info-icon{
  width:48px; height:48px; border-radius:13px; display:grid; place-items:center;
  background:var(--brand-50); color:var(--brand-600); font-size:21px;
}
.info-big{ font-family:'JetBrains Mono',monospace; font-size:2.6rem; font-weight:800;
  line-height:1; letter-spacing:-.03em; }
.info-unit{ font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.1em; color:var(--text-soft); display:block; margin-top:4px; }
.info-foot{
  margin-top:auto; padding-top:.75rem; font-size:11px; font-weight:600;
  color:var(--text-soft); text-transform:uppercase; letter-spacing:.04em;
  border-top:1px dashed var(--border-strong);
}
.info-foot strong{ font-family:'JetBrains Mono',monospace; color:var(--text-muted); }
.gauge-wrap{ position:relative; width:158px; height:84px; margin:.4rem auto 0; }
.gauge-center{
  position:absolute; inset:auto 0 2px; text-align:center;
  font-family:'JetBrains Mono',monospace; font-weight:800; font-size:16px;
  color:var(--ok);
}
.gauge-scale{
  display:flex; justify-content:space-between; width:158px; margin:.4rem auto 0;
  font-family:'JetBrains Mono',monospace; font-size:9.5px; font-weight:700;
  color:var(--text-soft);
}
 
/* ============ CHART PANELS ============ */
.panel-head{
  display:flex; align-items:center; justify-content:space-between; gap:.6rem;
  padding:.9rem 1.05rem .3rem;
}
.panel-title{
  font-size:12.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:var(--text); display:flex; align-items:center; gap:.55rem;
}
.panel-title::before{
  content:''; width:5px; height:17px; border-radius:99px;
  background:linear-gradient(180deg,var(--brand-500),var(--brand-700));
}
.icon-btn{
  width:34px; height:34px; border-radius:10px; display:grid; place-items:center;
  background:var(--surface-2); border:1px solid var(--border); color:var(--text-soft);
  cursor:pointer; transition:all .15s ease; font-size:14px;
}
.icon-btn:hover{ color:var(--brand-600); border-color:var(--brand-300);
  background:var(--brand-50); }
 
/* ============ TABLES ============ */
.data-table{ width:100%; border-collapse:collapse; font-size:13px; }
.data-table thead th{
  position:sticky; top:0; z-index:1;
  background:var(--surface-2); color:var(--text-soft);
  font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  padding:.6rem .95rem; text-align:left; border-bottom:1px solid var(--border);
}
.data-table thead th.right{ text-align:right; }
.data-table tbody td{
  padding:.65rem .95rem; border-bottom:1px solid var(--border);
  color:var(--text-muted); font-weight:500;
}
.data-table tbody tr{ transition:background .15s ease; }
.data-table tbody tr:hover{ background:var(--surface-2); }
.data-table tbody tr:last-child td{ border-bottom:none; }
.cell-task{ display:flex; align-items:center; gap:.6rem; min-width:0; }
.cell-task span.txt{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dot{ width:8px; height:8px; border-radius:99px; flex:none; background:#94a3b8; }
.dot.ok{ background:#10b981; } .dot.run{ background:#f59e0b; } .dot.no{ background:#f43f5e; }
.badge{
  display:inline-block; padding:3px 10px; border-radius:99px;
  font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  border:1px solid transparent;
}
.badge.ok{ color:#047857; background:#ecfdf5; border-color:#a7f3d0; }
.badge.run{ color:#b45309; background:#fffbeb; border-color:#fcd34d; }
.badge.no{ color:#be123c; background:#fff1f2; border-color:#fda4af; }
.status-select{
  max-width:132px; padding-right:24px; cursor:pointer; font-family:inherit;
  appearance:none; -webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 13px) 50%,calc(100% - 8px) 50%;
  background-size:5px 5px,5px 5px; background-repeat:no-repeat;
}
.status-select:focus{
  outline:2px solid rgba(183,25,42,.28); outline-offset:2px;
}
.status-select:disabled{
  opacity:.65; cursor:progress;
}
.status-select option{
  color:#0f172a; background:#fff; font-weight:700; text-transform:none;
}
 
/* ============ EVIDÊNCIAS ============ */
.evidence-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:.9rem;
}
.ev-group{
  background:rgba(15,23,42,.55); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.12); border-radius:16px; padding:1.15rem;
  transition:border-color .25s ease, background .25s ease;
}
.ev-group:hover{ border-color:rgba(125,211,252,.4); }
.ev-group-head{
  display:flex; align-items:center; gap:.6rem; padding-bottom:.75rem; margin-bottom:.95rem;
  border-bottom:1px solid rgba(255,255,255,.12);
  font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#fff;
}
.ev-group-head i{ font-size:15px; }
.evidence-card{
  cursor:pointer; border-radius:12px; overflow:hidden; display:flex; flex-direction:column;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.evidence-card:hover{
  transform:translateY(-5px); border-color:#fb7185;
  box-shadow:0 18px 30px -10px rgba(0,0,0,.55);
}
.ev-thumb{ position:relative; height:148px; overflow:hidden; }
.ev-thumb img{ width:100%; height:100%; object-fit:cover; object-position:top;
  transition:transform .4s ease; }
.evidence-card:hover .ev-thumb img{ transform:scale(1.07); }
.ev-overlay{
  position:absolute; inset:0; display:grid; place-items:center;
  background:rgba(8,15,30,.45); opacity:0; transition:opacity .25s ease;
}
.evidence-card:hover .ev-overlay{ opacity:1; }
.ev-overlay i{
  color:#fff; font-size:20px; width:48px; height:48px; display:grid; place-items:center;
  background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.3); border-radius:99px;
}
.ev-foot{
  width:100%; display:flex; align-items:center; justify-content:center; gap:.45rem;
  padding:.6rem; font-size:10.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  color:rgba(255,255,255,.82); background:rgba(255,255,255,.05);
  border:0; border-top:1px solid rgba(255,255,255,.1); cursor:pointer; font-family:inherit;
  transition:all .2s ease;
}
.ev-foot:hover{ color:#fda4af; background:rgba(255,255,255,.12); }
.ev-foot i{ font-size:14px; }
 
/* ============ LOADING ============ */
.loading-screen{
  position:fixed; inset:0; z-index:9999; display:grid; place-items:center;
  background:
    radial-gradient(900px 520px at 50% 28%, rgba(240,180,60,.20), transparent 62%),
    linear-gradient(135deg,#5f0b17 0%,#96000a 48%,#7d1020 100%);
  transition:opacity .6s ease;
  overflow:hidden;
}
.loading-screen::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:url('../../img/helicoptero-loading.png');
  background-repeat:no-repeat;
  background-position:center 43%;
  background-size:min(146vw,1940px) auto;
  opacity:.96;
  filter:drop-shadow(0 30px 42px rgba(0,0,0,.34));
  pointer-events:none;
}
.loading-screen::after{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(95,11,23,.16),rgba(95,11,23,.82)),
    radial-gradient(circle at 50% 22%,rgba(255,255,255,.16),transparent 34rem);
  pointer-events:none;
}
.loading-card{
  position:relative;
  z-index:1;
  text-align:center;
  max-width:430px;
  padding:2rem 2.25rem;
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  background:rgba(95,11,23,.28);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  box-shadow:0 24px 70px rgba(0,0,0,.22);
}
.loading-logo{
  width:84px; height:84px; border-radius:23px; margin:0 auto 1.5rem;
  display:grid; place-items:center; font-size:35px; color:#fff;
  background:linear-gradient(150deg,var(--cbm-red-dark),var(--cbm-red));
  box-shadow:0 18px 34px -12px rgba(0,0,0,.45);
  animation:floaty 2.4s ease-in-out infinite;
}
@keyframes floaty{ 50%{ transform:translateY(-8px); } }
.loading-card h2{
  font-size:15.5px; font-weight:800; letter-spacing:.17em; color:#fff;
  margin:0 0 .55rem;
}
.loading-card p{ font-size:12.5px; color:rgba(255,255,255,.78); margin:0 0 1.35rem; line-height:1.6; }
.loading-orbit{
  width:54px; height:54px; margin:0 auto;
  border-radius:99px;
  border:4px solid rgba(255,255,255,.22);
  border-top-color:#fff;
  border-right-color:var(--cbm-gold);
  animation:loading-spin .85s linear infinite;
}
@keyframes loading-spin{ to{ transform:rotate(360deg); } }
.loading-logo-error{ background:linear-gradient(150deg,#9f1239,#e11d48); }
.error-title{ color:#be123c; }
.empty-state{ text-align:center; color:var(--text-soft); padding:1.4rem; }
.table-status-cell{ text-align:right; }
.retry-btn{
  margin-top:1.2rem; padding:.65rem 1.4rem; border-radius:11px; border:none; cursor:pointer;
  font-family:inherit; font-size:13px; font-weight:700; color:#fff;
  background:linear-gradient(150deg,var(--brand-600),var(--brand-800));
  display:inline-flex; align-items:center; gap:.5rem;
}
.retry-btn:hover{ filter:brightness(1.08); }
 
/* ============ MODAL ============ */
#modal-overlay{ -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
#modal-img{ transition:transform .15s ease-out; transform-origin:center center; }
#modal-pdf{
  width:min(920px,calc(100vw - 32px)); height:calc(100vh - 96px); border:0; border-radius:12px;
  background:#1f1f1f; box-shadow:0 24px 70px rgba(0,0,0,.42);
}
.modal-pdf-hidden{ display:none !important; }
#modal-wrapper{ overflow:hidden; }
.modal-pdf-mode #modal-wrapper{
  align-items:stretch !important; justify-content:center !important;
  padding:76px 16px 16px !important;
}
.modal-pdf-mode #modal-pdf{
  display:block; width:min(920px,100%) !important; height:100% !important;
}
.modal-btn{
  width:42px; height:42px; border-radius:99px; display:grid; place-items:center;
  color:#fff; cursor:pointer; transition:all .15s ease; border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.1); font-size:15px;
}
.modal-btn:hover{ background:rgba(255,255,255,.22); }
.modal-btn.danger{ background:#e11d48; border-color:transparent; }
.modal-btn.danger:hover{ background:#be123c; }
 
/* ============ TOAST ============ */
.toast{
  position:fixed; bottom:22px; left:50%; transform:translateX(-50%) translateY(20px);
  background:#0f172a; color:#fff; padding:.75rem 1.15rem; border-radius:11px;
  font-size:13px; font-weight:600; box-shadow:0 16px 34px rgba(0,0,0,.32);
  opacity:0; transition:all .3s ease; z-index:999999; display:flex; align-items:center; gap:.5rem;
}
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* ============ RODAPÉ CBMMT ============ */
.site-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  flex-wrap:wrap;
  min-height:62px;
  padding:.85rem 1rem;
  color:#fff;
  background:var(--cbm-red);
  box-shadow:0 -10px 26px rgba(32,38,51,.10);
}
.site-footer p{
  margin:0;
  text-align:center;
  font-size:.92rem;
  font-weight:600;
}
.site-footer img{
  display:inline-block;
  width:auto;
  height:3.5rem;
  object-fit:contain;
}
 
/* ============ EXPAND ============ */
.quadrant-expanded{
  position:fixed !important; inset:1.5rem !important;
  width:auto !important; height:auto !important; z-index:99999 !important;
  display:flex !important; flex-direction:column !important;
  background:#fff !important; border-radius:18px;
  box-shadow:0 0 0 1px rgba(183,25,42,.38), 0 30px 60px -15px rgba(0,0,0,.4) !important;
  transform:none !important;
  overflow:hidden !important;
}
.quadrant-expanded > .panel-head{
  padding:1rem 1.2rem .65rem;
  border-bottom:1px solid var(--border);
}
.quadrant-expanded > .flex-1{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:none !important;
}
.quadrant-expanded > .overflow-y-auto{
  max-height:none !important;
}
.quadrant-expanded canvas{
  width:100% !important;
  height:100% !important;
}
body.has-expanded-panel{ overflow:hidden; }
body.has-expanded-panel::before{
  content:''; position:fixed; inset:0; background:rgba(15,23,42,.5);
  z-index:99990; -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px);
}
 
/* ============ REVEAL ============ */
.reveal{ animation:reveal .55s cubic-bezier(.22,.61,.36,1) both; }
.reveal-delay-1{ animation-delay:.04s; }
.reveal-delay-2{ animation-delay:.1s; }
.reveal-delay-3{ animation-delay:.16s; }
.reveal-delay-4{ animation-delay:.22s; }
.reveal-delay-5{ animation-delay:.28s; }
@keyframes reveal{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){
  .reveal,.brand-ring,.loading-logo,.loading-orbit,.status-dot-live{ animation:none !important; }
}

@media (min-width:1024px){
  .sidebar{
    top:calc(var(--site-header-height) + .75rem) !important;
    height:calc(100vh - var(--site-header-height) - 1.5rem) !important;
  }
}

@media (max-width:720px){
  :root{ --site-header-height:74px; }
  .loading-screen::before{
    background-size:210vw auto;
    background-position:center center;
  }
  .site-nav{
    position:relative;
    width:100%;
    min-height:var(--site-header-height);
    padding:0 12px 0 18px;
    gap:12px;
  }
  .site-brand{ min-width:auto; }
  .site-brand img{ height:54px; max-width:160px; }
  .site-nav-toggle{
    display:grid;
    flex:none;
  }
  .site-nav-links{
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:min(82vw,320px);
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:6px;
    padding:calc(var(--site-header-height) + 16px) 16px 20px;
    border-radius:18px 0 0 18px;
    border-left:1px solid rgba(255,255,255,.18);
    background:#7d1020;
    box-shadow:-28px 0 46px -30px rgba(15,23,42,.78);
    transform:translateX(100%);
    transition:transform 220ms ease;
    z-index:120;
    pointer-events:none;
  }
  .site-nav.is-open .site-nav-links{
    transform:translateX(0);
    pointer-events:auto;
  }
  .site-nav::before{
    content:"";
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.52);
    opacity:0;
    pointer-events:none;
    transition:opacity 220ms ease;
    z-index:110;
  }
  .site-nav.is-open::before{
    opacity:1;
    pointer-events:auto;
  }
  .site-nav.is-open .site-nav-toggle{ z-index:130; }
  .site-nav-links a{
    min-height:46px;
    padding:0 14px;
    font-size:.96rem;
    border-radius:12px;
  }
  .site-nav-links a:hover,
  .site-nav-links a:focus{ background:rgba(255,255,255,.10); }
  .site-nav-links a::after{ display:none; }
  .quadrant-expanded{ inset:.65rem !important; border-radius:14px; }
  .quadrant-expanded > .panel-head{ padding:.85rem .9rem .55rem; }
  .site-footer img{ height:3rem; }
}
