:root{
  --navy-950:#050f24;
  --navy-900:#081c3d;
  --navy-800:#0d2a56;
  --navy-700:#123a72;
  --blue-600:#0067e0;
  --blue-500:#1b84f2;
  --cyan-400:#00cefd;
  --cyan-300:#5fe3ff;
  --bg:#f2f5fa;
  --surface:#ffffff;
  --border:#e3e8f1;
  --text-900:#0e1726;
  --text-600:#4b5871;
  --text-400:#8996ab;
  --success:#17a463;
  --success-bg:#e7f8ef;
  --warning:#dd8b0a;
  --warning-bg:#fdf1dc;
  --danger:#e0433a;
  --danger-bg:#fce8e6;
  --radius-cut:14px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;}
body{
  font-family:'Inter',sans-serif;
  background:var(--bg);
  color:var(--text-900);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.brand-word{font-family:'Manrope',sans-serif;}

.app-shell{display:none;min-height:100vh;}
.app-shell.active{display:flex;}

/* ---------- corner-cut shape used across surfaces, echoing the logo's facets ---------- */
.cut{
  clip-path: polygon(0 0, calc(100% - var(--radius-cut)) 0, 100% var(--radius-cut), 100% 100%, var(--radius-cut) 100%, 0 calc(100% - var(--radius-cut)));
}
.cut-sm{
  --radius-cut:9px;
}

/* ================= LOGIN ================= */
.login-screen{
  min-height:100vh;
  display:grid;
  grid-template-columns:1.05fr 1fr;
  background:var(--surface);
}
.login-brand{
  position:relative;
  background:#050f24;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:48px 56px;
  color:#dce6f7;
}
.login-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  display:block;
  pointer-events:none;
}
.login-brand::before{ display:none; }
.login-brand .facet{
  position:absolute;
  opacity:.5;
}
.login-brand .facet-1{
  top:-120px;right:-140px;width:420px;height:420px;
  background:conic-gradient(from 210deg, var(--blue-600), var(--cyan-400), transparent 60%);
  clip-path:polygon(30% 0,100% 0,100% 70%,55% 100%,0 55%);
  filter:blur(1px);
  opacity:.35;
}
.login-brand .facet-2{
  bottom:-160px;left:-100px;width:360px;height:360px;
  background:radial-gradient(circle, rgba(0,206,253,.28), transparent 70%);
  border-radius:50%;
}
.login-brand-top{position:relative;z-index:1;display:flex;align-items:center;gap:12px;}
.login-brand-top img{height:34px;filter:brightness(0) invert(1);}
.login-brand-top .n{font-size:16px;font-weight:800;color:#fff;}
.login-brand-mid{position:relative;z-index:1;max-width:420px;margin-top:auto;margin-bottom:auto;padding:60px 0;}
.login-brand-mid h1{font-size:30px;line-height:1.28;font-weight:800;color:#fff;letter-spacing:-.3px;}
.login-brand-mid p{margin-top:14px;font-size:14px;line-height:1.65;color:#9fb2d4;}
.login-stats{position:relative;z-index:1;display:flex;gap:34px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);}
.login-stats div b{display:block;font-size:20px;font-weight:800;color:#fff;font-family:'Manrope',sans-serif;}
.login-stats div span{font-size:11px;color:#8296bc;font-weight:600;}

.login-panel{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 32px;
}
.login-form{width:100%;max-width:360px;}
.login-form .mobile-brand{display:none;align-items:center;gap:10px;margin-bottom:34px;}
.login-form .mobile-brand img{height:28px;}
.login-form .mobile-brand b{font-size:14.5px;font-weight:800;color:var(--navy-900);}
.login-form h2{font-size:22px;font-weight:800;letter-spacing:-.3px;margin-bottom:6px;}
.login-form .sub-txt{font-size:13px;color:var(--text-600);margin-bottom:30px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:12.5px;font-weight:700;color:var(--text-900);margin-bottom:7px;}
.field-input{
  display:flex;align-items:center;gap:10px;
  border:1.5px solid var(--border);border-radius:9px;
  padding:11px 13px;background:var(--surface);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.field-input:focus-within{border-color:var(--blue-600);box-shadow:0 0 0 3px rgba(0,103,224,.12);}
.field-input svg{width:16px;height:16px;color:var(--text-400);flex-shrink:0;}
.field-input input{border:none;outline:none;font-family:inherit;font-size:13.5px;width:100%;color:var(--text-900);background:none;}
.field-input button{background:none;border:none;cursor:pointer;color:var(--text-400);display:flex;padding:0;}
.field-input button svg{width:16px;height:16px;}
.field-row{display:flex;align-items:center;justify-content:space-between;margin:4px 0 22px;}
.remember{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-600);font-weight:600;cursor:pointer;user-select:none;}
.remember input{accent-color:var(--blue-600);width:15px;height:15px;cursor:pointer;}
.forgot-link{font-size:12.5px;font-weight:700;color:var(--blue-600);text-decoration:none;cursor:pointer;background:none;border:none;font-family:inherit;}
.btn-login{
  width:100%;padding:12.5px;border:none;border-radius:9px;cursor:pointer;
  background:linear-gradient(90deg,var(--blue-600),#1478e6);
  color:#fff;font-family:inherit;font-size:13.5px;font-weight:700;
  display:flex;align-items:center;justify-content:center;gap:8px;
  box-shadow:0 8px 20px -8px rgba(0,103,224,.55);
  transition:filter .15s ease, transform .1s ease;
}
.btn-login:hover{filter:brightness(1.06);}
.btn-login:active{transform:translateY(1px);}
.btn-login svg{width:15px;height:15px;}
.login-error{
  display:none;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--danger);
  background:var(--danger-bg);border-radius:8px;padding:10px 12px;margin-bottom:16px;
}
.login-error.show{display:flex;}
.login-error svg{width:15px;height:15px;flex-shrink:0;}
.login-foot{margin-top:26px;padding-top:18px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text-400);text-align:center;}
.demo-hint{
  margin-top:18px;font-size:11.5px;color:var(--text-600);background:var(--bg);
  border:1px dashed var(--border);border-radius:8px;padding:10px 12px;line-height:1.5;
}
.demo-hint b{color:var(--navy-900);}

@media (max-width:920px){
  .login-screen{grid-template-columns:1fr;}
  .login-brand{display:none;}
  .login-form .mobile-brand{display:flex;}
  .login-panel{padding:32px 24px;}
}

/* ================= SIDEBAR ================= */
.sidebar-backdrop{display:none;}

.sidebar{
  width:264px;
  flex-shrink:0;
  background:linear-gradient(190deg,var(--navy-900) 0%, var(--navy-950) 100%);
  color:#cdd8ec;
  display:flex;
  flex-direction:column;
  position:sticky;
  top:0;
  height:100vh;
  transition:transform .25s ease;
  z-index:60;
}
.sidebar-close{display:none;}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  padding:26px 22px 22px;
}
.brand img{height:30px;width:auto;display:block;filter:brightness(0) invert(1);}
.brand-word{font-size:15px;letter-spacing:.2px;color:#fff;font-weight:800;}
.brand-tag{font-size:10.5px;color:var(--cyan-300);font-weight:600;letter-spacing:.4px;margin-top:1px;}

.nav-scroll{flex:1;overflow-y:auto;padding:6px 14px 20px;}
.nav-group-label{
  font-size:11px;
  color:#5c7096;
  font-weight:700;
  letter-spacing:.5px;
  padding:16px 12px 6px;
}
.nav-item{
  display:flex;
  align-items:center;
  gap:11px;
  padding:10px 12px;
  border:none;
  border-radius:0;
  color:#a9b8d4;
  font-size:13.5px;
  font-weight:500;
  cursor:pointer;
  position:relative;
  transition:background .15s ease, color .15s ease;
  margin-bottom:2px;
  text-decoration:none;
}
.nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:.85;}
.nav-item:hover{background:rgba(255,255,255,.05);color:#fff;}
.nav-item.active{
  background:linear-gradient(90deg, rgba(0,103,224,.35), rgba(0,206,253,.06));
  color:#fff;
}
.nav-item.active::before{ display:none; }
.nav-item .count{
  margin-left:auto;
  font-size:10.5px;
  font-weight:700;
  background:rgba(255,255,255,.08);
  color:#c9d6ec;
  padding:1px 7px;
  border-radius:20px;
}
.nav-item.active .count{background:rgba(255,255,255,.18);color:#fff;}

.sidebar-foot{
  padding:16px 22px 22px;
  border-top:1px solid rgba(255,255,255,.06);
  font-size:11px;
  color:#54648a;
}
.sidebar-foot b{color:#8fb6ff;}

/* ================= MAIN ================= */
.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.hamburger{
  display:none;width:36px;height:36px;border-radius:9px;border:1px solid var(--border);
  align-items:center;justify-content:center;color:var(--text-600);cursor:pointer;flex-shrink:0;background:var(--surface);
}
.hamburger svg{width:18px;height:18px;}
.topbar{
  height:70px;
  background:var(--surface);
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  gap:18px;
  padding:0 28px;
  position:sticky;
  top:0;
  z-index:5;
}
.page-title{font-size:18px;font-weight:800;letter-spacing:-.2px;}
.search-box{
  flex:1;
  max-width:380px;
  margin-left:22px;
  display:flex;
  align-items:center;
  gap:9px;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:9px;
  padding:9px 13px;
  color:var(--text-400);
  font-size:13px;
}
.search-box svg{width:15px;height:15px;flex-shrink:0;}
.search-box input{border:none;background:none;outline:none;font-family:inherit;font-size:13px;width:100%;color:var(--text-900);}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:18px;flex-shrink:0;}
.icon-btn{
  width:36px;height:36px;border-radius:9px;border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;color:var(--text-600);
  position:relative;cursor:pointer;background:var(--surface);
}
.icon-btn svg{width:16px;height:16px;}
.icon-btn .dot{position:absolute;top:7px;right:7px;width:6px;height:6px;border-radius:50%;background:var(--danger);}
.who{display:flex;align-items:center;gap:10px;padding-left:16px;border-left:1px solid var(--border);cursor:pointer;position:relative;}
.avatar{
  width:36px;height:36px;border-radius:9px;
  background:linear-gradient(135deg,var(--blue-600),var(--cyan-400));
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;flex-shrink:0;
}
.who-name{font-size:13px;font-weight:700;line-height:1.25;}
.who-role{font-size:11px;color:var(--text-400);}
.who-menu{
  position:absolute;top:calc(100% + 10px);right:0;background:var(--surface);border:1px solid var(--border);
  border-radius:10px;box-shadow:0 12px 28px -10px rgba(10,25,55,.22);min-width:170px;padding:6px;display:none;z-index:20;
}
.who-menu.open{display:block;}
.who-menu button{
  width:100%;text-align:left;background:none;border:none;font-family:inherit;font-size:12.5px;font-weight:600;
  color:var(--text-600);padding:9px 10px;border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:9px;
}
.who-menu button:hover{background:var(--bg);color:var(--text-900);}
.who-menu button.danger{color:var(--danger);}
.who-menu svg{width:15px;height:15px;}

/* ================= NOTIFICAÇÕES ================= */
.notif-wrap{ position:relative; }
.notif-menu{
  position:absolute; top:calc(100% + 10px); right:0;
  background:var(--surface); border:1px solid var(--border);
  border-radius:10px; box-shadow:0 12px 28px -10px rgba(10,25,55,.22);
  min-width:360px; max-width:380px; display:none; z-index:30; overflow:hidden;
}
.notif-menu.open{ display:block; animation:scaleIn .16s ease both; }
.notif-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px; border-bottom:1px solid var(--border);
}
.notif-head h4{ font-size:13.5px; font-weight:800; }
.notif-head .mark-read{ font-size:11.5px; font-weight:700; color:var(--blue-600); background:none; border:none; cursor:pointer; font-family:inherit; }
.notif-list{ max-height:340px; overflow-y:auto; }
.notif-item{
  display:flex; gap:12px; padding:13px 16px; border-bottom:1px solid var(--border);
  transition:background .15s ease; cursor:pointer;
}
.notif-item:last-child{ border-bottom:none; }
.notif-item:hover{ background:#fafbfe; }
.notif-item.unread{ background:#f3f8ff; }
.notif-icon{
  width:34px; height:34px; border-radius:8px; display:flex; align-items:center; justify-content:center;
  flex-shrink:0; color:#fff;
}
.notif-icon.blue{ background:linear-gradient(135deg,var(--blue-600),var(--cyan-400)); }
.notif-icon.amber{ background:var(--warning); }
.notif-icon.green{ background:var(--success); }
.notif-icon.red{ background:var(--danger); }
.notif-icon svg{ width:16px; height:16px; }
.notif-body{ flex:1; min-width:0; }
.notif-title{ font-size:12.5px; font-weight:700; color:var(--text-900); line-height:1.35; }
.notif-desc{ font-size:11.5px; color:var(--text-600); margin-top:3px; line-height:1.45; }
.notif-time{ font-size:11px; color:var(--text-400); margin-top:4px; }
.notif-foot{
  padding:10px 16px; text-align:center; border-top:1px solid var(--border); background:var(--bg);
}
.notif-foot button{
  background:none; border:none; font-family:inherit; font-size:12px; font-weight:700; color:var(--blue-600); cursor:pointer;
}
.notif-empty{ padding:28px 16px; text-align:center; color:var(--text-400); font-size:12px; }

.content{padding:26px 28px 60px;}
.view{display:none;}
.view.active{display:block;}

/* ---- KPI cards ---- */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px;}
.kpi{
  background:var(--surface);
  border:1px solid var(--border);
  padding:20px 20px 18px;
  position:relative;
  overflow:hidden;
}
.kpi::after{
  content:"";position:absolute;right:-18px;top:-18px;width:80px;height:80px;border-radius:50%;
  background:radial-gradient(circle, var(--accent,var(--blue-600)) 0%, transparent 72%);
  opacity:.14;
}
.kpi-label{font-size:12px;color:var(--text-600);font-weight:600;margin-bottom:10px;}
.kpi-value{font-size:27px;font-weight:800;letter-spacing:-.5px;font-family:'Manrope',sans-serif;}
.kpi-delta{display:flex;align-items:center;gap:5px;margin-top:9px;font-size:12px;font-weight:700;}
.kpi-delta.up{color:var(--success);}
.kpi-delta.down{color:var(--danger);}
.kpi-delta span.ctx{color:var(--text-400);font-weight:500;}

/* ---- grid layout for dashboard ---- */
.grid-2{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin-bottom:18px;align-items:stretch;}
.grid-2b{display:grid;grid-template-columns:1fr 1fr;gap:18px;}

.panel{
  background:var(--surface);
  border:1px solid var(--border);
  padding:20px 22px 22px;
}
.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.panel-head h3{font-size:14.5px;font-weight:800;}
.panel-head .sub{font-size:11.5px;color:var(--text-400);font-weight:500;margin-top:2px;}
.link-btn{font-size:12px;font-weight:700;color:var(--blue-600);cursor:pointer;background:none;border:none;font-family:inherit;}
.btn{
  font-family:inherit;font-size:12.5px;font-weight:700;border:none;cursor:pointer;
  padding:9px 16px;border-radius:8px;display:inline-flex;align-items:center;gap:7px;
}
.btn-primary{background:var(--blue-600);color:#fff;}
.btn-primary:hover{background:#0058c2;}
.btn-outline{background:var(--surface);border:1px solid var(--border);color:var(--text-600);}

/* ---- chart ---- */
.chart-legend{display:flex;gap:16px;font-size:11.5px;color:var(--text-600);font-weight:600;margin-bottom:2px;}
.chart-legend span{display:inline-flex;align-items:center;gap:6px;}
.chart-legend i{width:8px;height:8px;border-radius:2px;display:inline-block;}

/* ---- donut ---- */
.donut-wrap{display:flex;align-items:center;gap:20px;}
.donut-list{flex:1;display:flex;flex-direction:column;gap:11px;}
.donut-row{display:flex;align-items:center;gap:9px;font-size:12.5px;}
.donut-row i{width:9px;height:9px;border-radius:2px;flex-shrink:0;}
.donut-row b{margin-left:auto;font-weight:700;}
.donut-row .lbl{color:var(--text-600);font-weight:600;}

/* ---- tables ---- */
table{width:100%;border-collapse:collapse;}
th{
  text-align:left;font-size:11px;font-weight:700;color:var(--text-400);
  padding:0 12px 10px;border-bottom:1px solid var(--border);letter-spacing:.2px;
}
td{padding:13px 12px;font-size:13px;border-bottom:1px solid var(--border);color:var(--text-900);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:#fafbfe;}
.cell-main{font-weight:700;}
.cell-sub{font-size:11.5px;color:var(--text-400);margin-top:2px;}
.badge{
  display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;
  padding:4px 10px;border-radius:20px;white-space:nowrap;
}
.badge.green{background:var(--success-bg);color:var(--success);}
.badge.amber{background:var(--warning-bg);color:var(--warning);}
.badge.red{background:var(--danger-bg);color:var(--danger);}
.badge.blue{background:#e7f0fe;color:var(--blue-600);}
.badge.grey{background:#eef1f6;color:var(--text-600);}
.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;}
.progress-mini{width:70px;height:5px;border-radius:6px;background:#e9edf5;overflow:hidden;}
.progress-mini i{display:block;height:100%;background:linear-gradient(90deg,var(--blue-600),var(--cyan-400));}
.mini-avatar{
  width:30px;height:30px;border-radius:8px;background:var(--navy-800);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;
}
.row-flex{display:flex;align-items:center;gap:10px;}
.urg-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.urg-Alta{background:var(--danger);}
.urg-Média{background:var(--warning);}
.urg-Baixa{background:var(--text-400);}

/* ---- section toolbar (for list views) ---- */
.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap;}
.toolbar .search-box{margin-left:0;max-width:300px;}
.chip{
  font-size:12px;font-weight:600;color:var(--text-600);background:var(--surface);
  border:1px solid var(--border);padding:8px 14px;border-radius:8px;cursor:pointer;
}
.chip.active{background:var(--navy-900);color:#fff;border-color:var(--navy-900);}
.toolbar-spacer{flex:1;}
.table-panel{background:var(--surface);border:1px solid var(--border);overflow:hidden;}
.table-panel-head{padding:18px 20px 4px;display:flex;align-items:center;justify-content:space-between;}
.table-scroll{padding:6px 20px 16px;overflow-x:auto;}
.pagination{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--border);font-size:12px;color:var(--text-400);}
.pagination .pages{display:flex;gap:6px;}
.pagination .pages span{
  width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--border);color:var(--text-600);font-weight:600;cursor:pointer;
}
.pagination .pages span.on{background:var(--navy-900);color:#fff;border-color:var(--navy-900);}

/* ---- module/service cards ---- */
.mod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.mod-card{background:var(--surface);border:1px solid var(--border);padding:20px;}
.mod-icon{
  width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--blue-600),var(--cyan-400));color:#fff;margin-bottom:14px;
}
.mod-icon svg{width:19px;height:19px;}
.mod-card h4{font-size:14px;font-weight:800;margin-bottom:5px;}
.mod-card p{font-size:12px;color:var(--text-600);line-height:1.5;margin-bottom:14px;}
.mod-foot{display:flex;align-items:center;justify-content:space-between;font-size:12px;padding-top:12px;border-top:1px solid var(--border);}
.mod-foot .price{font-weight:800;color:var(--navy-900);}
.mod-foot .n{color:var(--text-400);}

/* ---- API pública ---- */
.lookup-form{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;}
.lookup-form .field-input{flex:1;min-width:220px;}
.lookup-hint{font-size:11.5px;color:var(--text-400);margin-top:10px;}
.lookup-hint b{color:var(--text-600);font-family:'Courier New',monospace;font-weight:700;}
.lookup-result{margin-top:20px;padding-top:18px;border-top:1px dashed var(--border);}
.lookup-status-line{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.lookup-status-line .lookup-num{font-family:'Courier New',monospace;font-weight:800;font-size:14.5px;color:var(--navy-900);letter-spacing:.2px;}
.lookup-result-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--border);font-size:12.5px;}
.lookup-result-row:last-child{border-bottom:none;}
.lookup-result-row .lbl{color:var(--text-600);font-weight:600;}
.lookup-result-row .val{font-weight:700;color:var(--text-900);}
.lookup-empty{text-align:center;padding:20px 10px;color:var(--text-400);font-size:12px;line-height:1.6;}
.mono{font-family:'Courier New',monospace;font-size:12px;color:var(--text-600);}
.api-endpoint{border:1px solid var(--border);padding:16px 18px;margin-bottom:14px;}
.api-endpoint:last-child{margin-bottom:0;}
.api-endpoint-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap;}
.method-tag{font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:5px;letter-spacing:.3px;flex-shrink:0;}
.method-tag.get{background:#e7f0fe;color:var(--blue-600);}
.method-tag.post{background:var(--success-bg);color:var(--success);}
.api-endpoint-head .path{font-family:'Courier New',monospace;font-size:13px;font-weight:700;color:var(--navy-900);}
.api-endpoint p{font-size:12.5px;color:var(--text-600);line-height:1.55;margin-bottom:12px;}
.code-block{
  background:var(--navy-950);color:#cde3ff;font-family:'Courier New',monospace;
  font-size:12px;line-height:1.65;padding:14px 16px;border-radius:8px;overflow-x:auto;white-space:pre;
}
.code-block .c-key{color:#5fe3ff;}
.code-block .c-str{color:#8fe6a8;}
.code-block .c-com{color:#6f83a8;}
.api-kv{display:flex;flex-wrap:wrap;gap:10px 28px;font-size:12.5px;}
.api-kv div{display:flex;flex-direction:column;gap:3px;}
.api-kv .lbl{color:var(--text-400);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.3px;}
.api-kv .val{font-weight:700;color:var(--text-900);}

@media (max-width:1080px){
  .grid-2,.grid-2b{grid-template-columns:1fr;}
  .kpi-row{grid-template-columns:repeat(2,1fr);}
  .mod-grid{grid-template-columns:repeat(2,1fr);}
}

/* ================= RESPONSIVE: off-canvas sidebar ================= */
@media (max-width:880px){
  .hamburger{display:flex;}
  .sidebar{
    position:fixed;left:0;top:0;bottom:0;
    transform:translateX(-100%);
    box-shadow:0 0 0 rgba(0,0,0,0);
  }
  .sidebar.open{transform:translateX(0);box-shadow:24px 0 48px -20px rgba(5,15,36,.35);}
  .sidebar-backdrop{
    display:none;position:fixed;inset:0;background:rgba(5,15,36,.45);z-index:55;
  }
  .sidebar-backdrop.open{display:block;}
  .search-box{display:none;}
  .who-name,.who-role{display:none;}
  .who{padding-left:10px;border-left:none;}
  .content{padding:18px 16px 48px;}
  .topbar{padding:0 16px;gap:12px;}
}

@media (max-width:640px){
  .kpi-row{grid-template-columns:1fr 1fr;gap:12px;}
  .kpi-value{font-size:22px;}
  .mod-grid{grid-template-columns:1fr;}
  .page-title{font-size:15.5px;}
  .toolbar{gap:8px;}
  .table-panel-head,.panel-head{flex-wrap:wrap;gap:8px;}
}

@media (max-width:420px){
  .kpi-row{grid-template-columns:1fr;}
}

/* ================= ANIMAÇÕES GERAIS ================= */
@keyframes fadeInUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes scaleIn{from{opacity:0;transform:translateY(14px) scale(.97);}to{opacity:1;transform:none;}}
@keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(221,139,10,.45);}70%{box-shadow:0 0 0 6px rgba(221,139,10,0);}100%{box-shadow:0 0 0 0 rgba(221,139,10,0);}}
@keyframes shimmer{0%{background-position:-200px 0;}100%{background-position:200px 0;}}
@keyframes toastIn{from{opacity:0;transform:translateY(10px) translateX(0);}to{opacity:1;transform:translateY(0);}}
@keyframes barGrow{from{width:0 !important;}}
@keyframes spin{to{transform:rotate(360deg);}}

.view.active{animation:fadeInUp .38s ease both;}
.kpi{animation:fadeInUp .4s ease both;}
.kpi:nth-child(1){animation-delay:.02s;} .kpi:nth-child(2){animation-delay:.08s;}
.kpi:nth-child(3){animation-delay:.14s;} .kpi:nth-child(4){animation-delay:.2s;}
.panel,.table-panel{animation:fadeInUp .42s ease both;}
tbody tr{animation:fadeInUp .32s ease both;}
.badge.amber::before{animation:pulseDot 1.8s infinite;}
.mini-avatar,.avatar{transition:transform .18s ease;}
tbody tr:hover .mini-avatar{transform:scale(1.06);}
.progress-mini i{transition:width 1s cubic-bezier(.22,.9,.3,1.2);}

/* ================= TOOLBAR EXTRAS ================= */
.chip{transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease;user-select:none;}
.chip:hover{border-color:var(--blue-600);color:var(--blue-600);}
.chip.active:hover{color:#fff;}
.chip:active{transform:scale(.96);}
.btn{transition:filter .15s ease,transform .1s ease,box-shadow .15s ease;}
.btn:active{transform:scale(.96);}
.btn-outline:hover{border-color:var(--blue-600);color:var(--blue-600);background:#f3f8ff;}
.btn-ghost{background:none;border:1px solid transparent;color:var(--text-600);}
.btn-ghost:hover{background:var(--bg);}
.btn-filter{
  background:var(--surface);border:1px solid var(--border);color:var(--text-900);
  position:relative;
}
.btn-filter:hover{border-color:var(--blue-600);color:var(--blue-600);}
.btn-filter .filter-count{
  position:absolute;top:-7px;right:-7px;background:var(--blue-600);color:#fff;
  font-size:9.5px;font-weight:800;width:16px;height:16px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.export-wrap{position:relative;display:inline-block;}
.export-menu{
  position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);
  border:1px solid var(--border);border-radius:10px;box-shadow:0 14px 32px -12px rgba(10,25,55,.24);
  min-width:200px;padding:6px;display:none;z-index:30;animation:scaleIn .16s ease both;
}
.export-menu.open{display:block;}
.export-menu button{
  width:100%;text-align:left;background:none;border:none;font-family:inherit;font-size:12.5px;font-weight:600;
  color:var(--text-600);padding:10px 11px;border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:10px;
}
.export-menu button:hover{background:var(--bg);color:var(--text-900);}
.export-menu button svg{width:15px;height:15px;color:var(--blue-600);flex-shrink:0;}
.export-menu .divider{height:1px;background:var(--border);margin:5px 2px;}
.export-menu .menu-hint{font-size:10.5px;color:var(--text-400);padding:4px 11px 6px;line-height:1.5;}

.active-filters{display:flex;flex-wrap:wrap;gap:8px;margin:-6px 0 16px;}
.filter-tag{
  display:inline-flex;align-items:center;gap:7px;background:#e7f0fe;color:var(--blue-600);
  font-size:11.5px;font-weight:700;padding:5px 8px 5px 12px;border-radius:20px;animation:scaleIn .18s ease both;
}
.filter-tag button{background:rgba(0,103,224,.14);border:none;color:var(--blue-600);width:16px;height:16px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.filter-tag button svg{width:9px;height:9px;}
.filter-tag.clear-all{background:var(--bg);color:var(--text-600);cursor:pointer;border:1px dashed var(--border);}

/* ================= MODAIS ================= */
.modal-backdrop{
  display:none;position:fixed;inset:0;background:rgba(5,15,36,.55);backdrop-filter:blur(2px);
  z-index:200;align-items:center;justify-content:center;padding:24px;animation:fadeIn .18s ease both;
}
.modal-backdrop.open{display:flex;}
.modal{
  background:var(--surface);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;
  border-radius:16px;box-shadow:0 32px 64px -20px rgba(5,15,36,.4);animation:scaleIn .24s cubic-bezier(.22,.9,.3,1.2) both;
}
.modal.modal-lg{max-width:760px;}
.modal.modal-sm{max-width:420px;}
.modal-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding:22px 24px 18px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:2;
}
.modal-head h3{font-size:17px;font-weight:800;letter-spacing:-.2px;}
.modal-head .sub{font-size:12px;color:var(--text-400);font-weight:500;margin-top:3px;}
.modal-close{
  width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--surface);
  color:var(--text-600);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;
}
.modal-close:hover{background:var(--danger-bg);color:var(--danger);border-color:transparent;}
.modal-close svg{width:15px;height:15px;}
.modal-body{padding:22px 24px;}
.modal-foot{
  display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 24px 22px;
  border-top:1px solid var(--border);position:sticky;bottom:0;background:var(--surface);
}
.modal-foot .foot-left{margin-right:auto;font-size:11.5px;color:var(--text-400);}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;}
.form-grid .span-2{grid-column:1/-1;}
.f-field label{display:block;font-size:12px;font-weight:700;color:var(--text-900);margin-bottom:7px;}
.f-field select,.f-field input[type=text],.f-field input[type=date],.f-field input[type=email],.f-field input[type=tel],.f-field input[type=password],.f-field input[type=number],.f-field input[type=url],.f-field textarea{
  width:100%;border:1.5px solid var(--border);border-radius:9px;padding:10px 12px;font-family:inherit;
  font-size:13px;color:var(--text-900);background:var(--surface);outline:none;transition:border-color .15s ease,box-shadow .15s ease;
}
.f-field select:focus,.f-field input:focus,.f-field textarea:focus{border-color:var(--blue-600);box-shadow:0 0 0 3px rgba(0,103,224,.12);}
.f-field input:disabled{ background:var(--bg); color:var(--text-600); cursor:not-allowed; opacity:0.9; }
.f-field .hint{font-size:11px;color:var(--text-400);margin-top:5px;}
.f-field textarea{resize:vertical;min-height:70px;}

.seg-group{display:flex;flex-wrap:wrap;gap:8px;}
.seg-btn{
  font-size:12px;font-weight:700;padding:8px 14px;border-radius:8px;border:1.5px solid var(--border);
  background:var(--surface);color:var(--text-600);cursor:pointer;transition:all .15s ease;
}
.seg-btn:hover{border-color:var(--blue-600);}
.seg-btn.active{background:var(--blue-600);border-color:var(--blue-600);color:#fff;}

.chk-grid{display:flex;flex-wrap:wrap;gap:10px;}
.chk-pill{
  display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--text-700,var(--text-900));
  border:1.5px solid var(--border);padding:8px 12px;border-radius:9px;cursor:pointer;transition:all .15s ease;
}
.chk-pill:hover{border-color:var(--blue-600);}
.chk-pill input{accent-color:var(--blue-600);width:14px;height:14px;cursor:pointer;}
.chk-pill.checked{background:#eef6ff;border-color:var(--blue-600);color:var(--blue-600);}

/* ---- licença: selector visual de módulos do pacote ---- */
.nl-modules-label-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;}
.nl-modules-label-row label{margin-bottom:0;}
.nl-modules-count{font-size:11px;font-weight:700;color:var(--blue-600);background:#eef6ff;border:1px solid #cfe2ff;border-radius:999px;padding:4px 9px;white-space:nowrap;}
.nl-modules-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:2px;}
.nl-module-option{position:relative;display:flex;align-items:center;gap:10px;min-height:66px;padding:11px 12px;border:1.5px solid var(--border);border-radius:11px;background:var(--surface);cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .1s ease;}
.nl-module-option:hover{border-color:var(--blue-600);box-shadow:0 5px 14px -10px rgba(0,103,224,.55);transform:translateY(-1px);}
.nl-module-option.selected{border-color:var(--blue-600);background:#f2f7ff;box-shadow:0 0 0 3px rgba(0,103,224,.08);}
.nl-module-option.locked{cursor:default;}
.nl-module-option.locked:hover{transform:none;}
.nl-module-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.nl-module-glyph{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:var(--bg);color:var(--text-400);flex-shrink:0;transition:background .15s ease,color .15s ease;}
.nl-module-glyph svg{width:17px;height:17px;}
.nl-module-option.selected .nl-module-glyph{background:linear-gradient(135deg,var(--blue-600),var(--cyan-400));color:#fff;}
.nl-module-copy{display:flex;flex-direction:column;gap:3px;min-width:0;}
.nl-module-code{font-family:'Courier New',monospace;font-size:10px;font-weight:800;letter-spacing:.35px;color:var(--text-400);text-transform:uppercase;}
.nl-module-name{font-size:12.5px;font-weight:750;color:var(--text-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nl-module-check{display:flex;align-items:center;justify-content:center;width:21px;height:21px;margin-left:auto;border:1.5px solid var(--border);border-radius:6px;color:transparent;flex-shrink:0;transition:all .15s ease;}
.nl-module-check svg{width:13px;height:13px;}
.nl-module-option.selected .nl-module-check{border-color:var(--blue-600);background:var(--blue-600);color:#fff;}
.nl-modules-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:24px;}
.nl-modules-footer .hint{margin-top:5px;}
.nl-modules-lock{display:inline-flex;align-items:center;gap:5px;color:var(--text-400);font-size:10.5px;font-weight:700;white-space:nowrap;}
.nl-modules-lock svg{width:13px;height:13px;}

@media (max-width:560px){
  .nl-modules-picker{grid-template-columns:1fr;}
  .nl-modules-footer{align-items:flex-start;flex-direction:column;gap:2px;}
}

.date-range-row{display:flex;align-items:center;gap:10px;}
.date-range-row span{color:var(--text-400);font-size:12px;font-weight:600;}

/* ---- modal: detalhe de licença ---- */
.detail-hero{
  display:flex;align-items:center;gap:16px;padding:18px;border-radius:12px;
  background:linear-gradient(120deg,var(--navy-900),var(--navy-950));color:#fff;margin-bottom:20px;position:relative;overflow:hidden;
}
.detail-hero::after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,206,253,.35),transparent 70%);}
.detail-hero .dh-icon{
  width:52px;height:52px;border-radius:12px;background:rgba(255,255,255,.12);display:flex;align-items:center;
  justify-content:center;flex-shrink:0;position:relative;z-index:1;
}
.detail-hero .dh-icon svg{width:24px;height:24px;}
.detail-hero .dh-info{position:relative;z-index:1;flex:1;min-width:0;}
.detail-hero .dh-num{font-family:'Courier New',monospace;font-size:16px;font-weight:800;letter-spacing:.3px;}
.detail-hero .dh-sub{font-size:12px;color:#9fb2d4;margin-top:3px;}

.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;}
.detail-item{background:var(--bg);border-radius:10px;padding:12px 14px;}
.detail-item .di-lbl{font-size:10.5px;color:var(--text-400);font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px;}
.detail-item .di-val{font-size:14px;font-weight:700;color:var(--text-900);}

.usage-block{margin-bottom:18px;}
.usage-block-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:12.5px;font-weight:700;}
.usage-bar-lg{height:9px;border-radius:6px;background:#e9edf5;overflow:hidden;}
.usage-bar-lg i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--blue-600),var(--cyan-400));width:0;transition:width 1.1s cubic-bezier(.22,.9,.3,1.2);}

.timeline-row{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
.timeline-row .t-pt{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;}
.timeline-row .t-dot{width:12px;height:12px;border-radius:50%;background:var(--blue-600);border:3px solid #e7f0fe;}
.timeline-row .t-dot.end{background:var(--text-400);border-color:var(--border);}
.timeline-row .t-line{flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--border) 0 6px,transparent 6px 11px);}
.timeline-row .t-lbl{font-size:11px;color:var(--text-400);font-weight:600;white-space:nowrap;}
.timeline-row .t-date{font-size:12.5px;font-weight:700;color:var(--text-900);white-space:nowrap;}

.detail-actions{display:flex;flex-wrap:wrap;gap:9px;}

/* ---- modal: detalhe de cliente ---- */
.client-hero{display:flex;align-items:center;gap:16px;margin-bottom:20px;}
.client-hero .avatar-lg{
  width:60px;height:60px;border-radius:14px;background:linear-gradient(135deg,var(--blue-600),var(--cyan-400));
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:800;flex-shrink:0;
}
.client-hero h4{font-size:17px;font-weight:800;letter-spacing:-.2px;}
.client-hero .ch-sub{font-size:12px;color:var(--text-400);margin-top:3px;}
.client-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;}
.client-stat{background:var(--bg);border-radius:10px;padding:12px 14px;text-align:center;}
.client-stat b{display:block;font-size:19px;font-weight:800;font-family:'Manrope',sans-serif;color:var(--navy-900);}
.client-stat span{font-size:10.5px;color:var(--text-400);font-weight:700;text-transform:uppercase;letter-spacing:.3px;}
.client-contact{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;}
.contact-row{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--text-600);}
.contact-row svg{width:15px;height:15px;color:var(--blue-600);flex-shrink:0;}
.contact-row b{color:var(--text-900);}
.mini-lic-list{display:flex;flex-direction:column;gap:8px;}
.mini-lic-item{
  display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;
  transition:border-color .15s ease,background .15s ease;
}
.mini-lic-item:hover{border-color:var(--blue-600);background:#f7fafe;}
.mini-lic-item .mli-icon{
  width:34px;height:34px;border-radius:8px;background:var(--navy-800);color:#fff;display:flex;align-items:center;
  justify-content:center;flex-shrink:0;
}
.mini-lic-item .mli-icon svg{width:16px;height:16px;}
.mini-lic-item .mli-body{flex:1;min-width:0;}
.mini-lic-item .mli-title{font-size:12.5px;font-weight:700;}
.mini-lic-item .mli-sub{font-size:11px;color:var(--text-400);margin-top:2px;}

/* ---- linha clicável / acções por linha ---- */
tr.row-clickable{cursor:pointer;}
.row-actions{display:flex;gap:6px;}
.icon-mini-btn{
  width:28px;height:28px;border-radius:7px;border:1px solid var(--border);background:var(--surface);
  color:var(--text-600);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;
  transition:all .15s ease;
}
.icon-mini-btn:hover{border-color:var(--blue-600);color:var(--blue-600);background:#f3f8ff;}
.icon-mini-btn svg{width:14px;height:14px;}

.empty-state{text-align:center;padding:46px 20px;color:var(--text-400);}
.empty-state svg{width:40px;height:40px;color:var(--border);margin-bottom:12px;}
.empty-state .es-title{font-size:13.5px;font-weight:700;color:var(--text-600);margin-bottom:4px;}
.empty-state .es-sub{font-size:12px;line-height:1.6;}

/* ---- toasts ---- */
.toast-stack{position:fixed;bottom:22px;right:22px;display:flex;flex-direction:column;gap:10px;z-index:400;}
.toast{
  display:flex;align-items:center;gap:11px;background:var(--navy-950);color:#fff;padding:13px 16px;
  border-radius:11px;font-size:12.5px;font-weight:600;box-shadow:0 16px 34px -12px rgba(5,15,36,.5);
  min-width:260px;max-width:340px;animation:toastIn .28s cubic-bezier(.22,.9,.3,1.2) both;
}
.toast .t-icon{
  width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.toast.success .t-icon{background:rgba(23,164,99,.2);color:#4ee29a;}
.toast.info .t-icon{background:rgba(0,103,224,.25);color:#5fbdff;}
.toast .t-icon svg{width:14px;height:14px;}
.toast .t-msg{flex:1;line-height:1.4;}
.toast .t-close{background:none;border:none;color:#7f92b8;cursor:pointer;flex-shrink:0;padding:2px;}
.toast .t-close svg{width:13px;height:13px;}
.toast.leaving{animation:fadeIn .2s ease reverse both;}

.spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .6s linear infinite;flex-shrink:0;}

/* ================= DASHBOARD: FILTROS ================= */
.dash-select-wrap{position:relative;display:inline-block;}
.dash-dd-btn{display:inline-flex;align-items:center;gap:7px;}
.dd-count{background:var(--blue-600);color:#fff;font-size:9.5px;font-weight:800;border-radius:20px;padding:1px 7px;margin-left:2px;}
.dash-dd-menu{
  position:absolute;top:calc(100% + 8px);left:0;background:var(--surface);border:1px solid var(--border);
  border-radius:10px;box-shadow:0 14px 32px -12px rgba(10,25,55,.24);min-width:220px;max-height:280px;
  overflow-y:auto;padding:8px;display:none;z-index:30;animation:scaleIn .16s ease both;
}
.dash-dd-menu.open{display:block;}
.dash-dd-menu .dd-item{
  display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;color:var(--text-600);
  padding:8px 9px;border-radius:7px;cursor:pointer;
}
.dash-dd-menu .dd-item:hover{background:var(--bg);}
.dash-dd-menu .dd-item input{accent-color:var(--blue-600);width:14px;height:14px;cursor:pointer;}
.dash-dd-menu .dd-item b{margin-left:auto;color:var(--text-400);font-weight:700;}
.dash-dd-menu .dd-foot{display:flex;justify-content:space-between;padding:8px 9px 2px;border-top:1px solid var(--border);margin-top:6px;}
.dash-dd-menu .dd-foot button{background:none;border:none;font-family:inherit;font-size:11.5px;font-weight:700;color:var(--blue-600);cursor:pointer;}

/* ================= PAINEL DE RESULTADOS: gráficos ================= */
.province-bars{display:flex;flex-direction:column;gap:11px;}
.prov-row{display:flex;align-items:center;gap:12px;}
.prov-row .prov-label{width:78px;font-size:12px;font-weight:700;color:var(--text-900);text-align:right;flex-shrink:0;}
.prov-row .prov-track{flex:1;height:15px;background:#eef1f8;border-radius:5px;overflow:hidden;}
.prov-row .prov-fill{height:100%;background:linear-gradient(90deg,var(--blue-600),var(--cyan-400));border-radius:5px;width:0;transition:width 1.1s cubic-bezier(.22,.9,.3,1.2);}
.prov-row .prov-val{width:30px;font-size:12.5px;font-weight:800;color:var(--navy-900);flex-shrink:0;}
.prov-row.dim{opacity:.32;}

.seg-chart{display:flex;align-items:flex-end;gap:14px;height:210px;}
.seg-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0;}
.seg-col.dim{opacity:.3;}
.seg-frame{
  border:1.5px solid var(--navy-900);border-radius:5px;padding:2px 7px;font-size:11.5px;font-weight:800;
  color:var(--navy-900);background:#fff;white-space:nowrap;margin-bottom:6px;
}
.seg-bar{width:56%;background:linear-gradient(180deg,var(--blue-500),var(--blue-600));border-radius:5px 5px 0 0;height:0;transition:height 1.1s cubic-bezier(.22,.9,.3,1.2);}
.seg-lbl{font-size:10.5px;color:var(--text-600);font-weight:700;margin-top:9px;text-align:center;line-height:1.3;}

.continuidade-chart{display:flex;align-items:flex-end;justify-content:space-around;gap:18px;height:190px;padding-top:10px;}
.cont-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;}
.cont-val{font-size:20px;font-weight:800;font-family:'Manrope',sans-serif;color:#fff;margin-bottom:8px;}
.cont-bar{
  width:64px;border-radius:6px 6px 0 0;height:0;transition:height 1.1s cubic-bezier(.22,.9,.3,1.2);
  background:rgba(255,255,255,.85);
  background-image:repeating-linear-gradient(45deg, rgba(5,15,36,.14) 0 6px, transparent 6px 13px);
}
.cont-lbl{font-size:12.5px;font-weight:700;color:#bcd0ee;margin-top:10px;}

.month-chart{display:flex;align-items:flex-end;gap:5px;height:190px;border-bottom:1px solid var(--border);}
.month-group{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:2.5px;height:100%;}
.month-bar{width:7px;border-radius:3px 3px 0 0;height:0;transition:height .9s cubic-bezier(.22,.9,.3,1.2);position:relative;}
.month-labels{display:flex;gap:5px;margin-top:7px;}
.month-labels span{flex:1;text-align:center;font-size:9.5px;color:var(--text-400);font-weight:700;}
#mensalTable{border-collapse:collapse;}
#mensalTable th,#mensalTable td{padding:6px 7px;text-align:center;border-bottom:1px solid var(--border);white-space:nowrap;}
#mensalTable th:first-child,#mensalTable td:first-child{text-align:left;position:sticky;left:0;background:var(--surface);}
#mensalTable td.yr-dot{display:flex;align-items:center;gap:6px;font-weight:700;}
#mensalTable td.yr-dot i{width:8px;height:8px;border-radius:2px;display:inline-block;}

@media (max-width:640px){
  .form-grid{grid-template-columns:1fr;}
  .detail-grid{grid-template-columns:1fr;}
  .client-stats{grid-template-columns:1fr 1fr;}
  .modal-body{padding:18px;}
  .modal-head{padding:18px 18px 14px;}
  .seg-chart{height:170px;}
  .seg-frame{font-size:10px;padding:1px 5px;}
}

/* ================= RESPONSIVIDADE V2 — SETOR A SETOR (2026-09-07) ================= */
/* --- GLOBAL: suaviza scroll horizontal em todas as tabelas --- */
.table-scroll{ -webkit-overflow-scrolling:touch; }

/* --- TOPBAR + SIDEBAR: garante hamburger sempre visível em <=880 e search adaptativo --- */
@media (max-width:880px){
  .hamburger{ display:flex !important; }
  .topbar .search-box{ display:none !important; }
  .topbar{ gap:12px; padding:0 14px; }
  .topbar-right{ gap:10px; }
  .page-title{ font-size:15px; flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .who-name,.who-role{ display:none; }
  .who{ padding-left:8px; border-left:none; }
}

/* --- TOOLBAR: sector Gestão de Contas + Licenciamento + Suporte --- */
@media (max-width:768px){
  .toolbar{ gap:8px; align-items:stretch; }
  .toolbar .search-box{ flex:1 1 100%; max-width:none !important; order:10; margin-top:4px; }
  .toolbar .toolbar-spacer{ display:none; }
  .chip{ padding:7px 10px; font-size:11.5px; white-space:nowrap; }
  .active-filters{ gap:6px; margin:-4px 0 12px; }
  .filter-tag{ font-size:11px; padding:4px 8px 4px 10px; }
}
@media (max-width:480px){
  .toolbar{ flex-direction:column; align-items:stretch; }
  .toolbar .chip{ flex:0 0 auto; }
  .toolbar .btn,.toolbar .btn-filter,.toolbar .export-wrap{ width:100%; justify-content:center; }
  .toolbar .export-wrap .btn{ width:100%; }
}

/* --- TABELAS: garante scroll horizontal visível e padding reduzido em mobile --- */
@media (max-width:768px){
  .table-panel-head{ flex-direction:column; align-items:flex-start; gap:6px; padding:14px 16px 6px; }
  .table-panel-head h3{ font-size:14px; }
  .table-scroll{ padding:6px 12px 12px; margin:0 -12px; padding-left:12px; padding-right:12px; }
  .table-scroll table{ min-width:720px; }
  th{ font-size:10.5px; padding:0 8px 8px; }
  td{ padding:10px 8px; font-size:12px; }
  .cell-main{ font-size:12.5px; }
  .row-flex{ gap:8px; }
  .mini-avatar{ width:28px; height:28px; font-size:11px; }
  .pagination{ flex-direction:column; align-items:stretch; gap:10px; padding:12px 16px; }
  .pagination .pages{ justify-content:center; flex-wrap:wrap; }
}
@media (max-width:480px){
  .table-scroll table{ min-width:640px; }
}

/* --- KPI ROW: 4 → 2 → 1 --- */
@media (max-width:768px){
  .kpi-row{ grid-template-columns:repeat(2,1fr); gap:12px; }
  .kpi{ padding:16px 16px 14px; }
  .kpi-value{ font-size:22px; }
}
@media (max-width:480px){
  .kpi-row{ grid-template-columns:1fr; }
}

/* --- GRID-2 / GRID-2B / MOD-GRID: já existem, reforça espaçamento e padding --- */
@media (max-width:768px){
  .grid-2,.grid-2b{ gap:14px; }
  .panel{ padding:16px 16px 18px; }
  .panel-head{ margin-bottom:12px; }
  .mod-grid{ gap:12px; }
  .mod-card{ padding:16px; }
}

/* --- DASHBOARD: gráficos e painel de resultados --- */
@media (max-width:768px){
  .province-bars{ gap:8px; }
  .prov-row .prov-label{ width:64px; font-size:11px; }
  .seg-chart{ height:160px; gap:8px; }
  .seg-bar{ width:70%; }
  .continuidade-chart{ height:160px; gap:12px; }
  .cont-bar{ width:48px; }
  .month-chart{ height:140px; gap:3px; }
  .month-bar{ width:5px; }
  .month-labels span{ font-size:8.5px; }
  .donut-wrap{ flex-direction:column; align-items:center; gap:16px; }
  .chart-legend{ flex-wrap:wrap; gap:10px; }
}
@media (max-width:480px){
  .province-bars{ gap:6px; }
  .seg-chart{ height:140px; }
  .continuidade-chart{ height:140px; }
  .month-chart{ height:120px; }
}

/* --- CONFIGURAÇÕES: tabs wrap + scroll horizontal em mobile --- */
@media (max-width:768px){
  #view-configuracoes .toolbar{ overflow-x:auto; flex-wrap:nowrap; padding-bottom:8px; -webkit-overflow-scrolling:touch; }
  #view-configuracoes .toolbar .chip{ flex:0 0 auto; }
  #view-configuracoes .grid-2b{ grid-template-columns:1fr; }
  .cfg-tab .table-panel .table-scroll table{ min-width:600px; }
}
@media (max-width:480px){
  #view-configuracoes .form-grid{ grid-template-columns:1fr; }
}

/* --- MODAIS: garante margem e altura em mobile --- */
@media (max-width:640px){
  .modal-backdrop{ padding:12px; align-items:flex-start; padding-top:20px; }
  .modal{ max-width:100%; width:100%; max-height:92vh; border-radius:14px; }
  .modal.modal-lg{ max-width:100%; }
  .modal.modal-sm{ max-width:100%; }
  .modal-head h3{ font-size:15px; }
  .modal-foot{ flex-wrap:wrap; gap:8px; }
  .modal-foot .btn{ flex:1; justify-content:center; min-width:120px; }
}
@media (max-width:375px){
  .modal-body{ padding:16px 14px; }
  .modal-head{ padding:16px 14px 12px; }
  .f-field input,.f-field select,.f-field textarea{ font-size:13px; padding:9px 10px; }
}

/* --- DROPDOWNS: notif, export, dash-dd, who-menu — evita overflow em mobile --- */
@media (max-width:480px){
  .notif-menu{ min-width:calc(100vw - 24px); max-width:calc(100vw - 24px); right:-8px; }
  .export-menu{ min-width:180px; right:0; left:auto; }
  .dash-dd-menu{ min-width:200px; max-width:calc(100vw - 32px); }
  .who-menu{ min-width:160px; right:0; }
}

/* --- LOGIN + ERROS: garante centralização em mobile --- */
@media (max-width:480px){
  .error-card{ margin:12px; max-width:calc(100vw - 24px); }
  .login-panel{ padding:24px 16px; }
}

/* ================= DASHBOARD FIX 2026-09-07 — overflow horizontal em mobile ================= */
.grid-2, .grid-2b, .kpi-row, .content, .main, .panel, .table-scroll { min-width:0; }
.grid-2 > *, .grid-2b > *, .kpi-row > * { min-width:0; max-width:100%; }
.panel { max-width:100%; overflow:hidden; }
.table-scroll { width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; box-sizing:border-box; }
.table-scroll table { max-width:none; width:100%; }
/* dashboard toolbar: mantém chips inline, não estica em coluna */
@media (max-width:480px){
  #dashFilterToolbar { flex-direction:row !important; flex-wrap:wrap !important; align-items:center !important; }
  #dashFilterToolbar .chip { width:auto !important; flex:0 0 auto; }
  #dashFilterToolbar .dash-select-wrap,
  #dashFilterToolbar .export-wrap,
  #dashFilterToolbar .btn-filter,
  #dashFilterToolbar #dashAdvFilterBtn,
  #dashFilterToolbar #dashExportBtn { width:auto !important; }
  #dashFilterToolbar .toolbar-spacer { display:none !important; }
}
@media (max-width:768px){
  .panel .table-scroll { padding:6px 12px 12px; margin:0 -12px; padding-left:12px; padding-right:12px; width:calc(100% + 24px); max-width:calc(100% + 24px); }
  .panel .table-scroll table { min-width:520px; }
}
@media (min-width:769px){
  .panel .table-scroll table { min-width:0; }
}

/* ================= SCROLLBAR BOSS UNIFICADA — todas as páginas (2026-09-07) ================= */
/* Firefox — global thin */
*{
  scrollbar-width:thin;
  scrollbar-color:#c2ccdf transparent;
}
html{
  scrollbar-width:thin;
  scrollbar-color:#b9c6de #eef2f8;
}
/* WebKit — global boss */
*::-webkit-scrollbar{
  width:8px;
  height:8px;
}
*::-webkit-scrollbar-track{
  background:transparent;
}
*::-webkit-scrollbar-thumb{
  background:#c2ccdf;
  border-radius:999px;
  border:2px solid transparent;
  background-clip:content-box;
}
*::-webkit-scrollbar-thumb:hover{
  background:#9fb3d1;
  background-clip:content-box;
}
*::-webkit-scrollbar-corner{
  background:transparent;
}
/* Tabelas e listas horizontais — 6px mais discreto */
.table-scroll::-webkit-scrollbar,
.notif-list::-webkit-scrollbar,
.dash-dd-menu::-webkit-scrollbar{
  width:6px;
  height:6px;
}
.table-scroll,
.notif-list,
.dash-dd-menu,
.modal{
  scrollbar-width:thin;
  scrollbar-color:#c2ccdf transparent;
}
/* Modal vertical — mesma paleta clara */
.modal::-webkit-scrollbar{ width:6px; }
.modal::-webkit-scrollbar-thumb{ background:#c8d3e6; border:2px solid transparent; background-clip:content-box; }
.modal::-webkit-scrollbar-thumb:hover{ background:#9fb3d1; }
/* Sidebar dark — track transparente, thumb translúcido */
.nav-scroll,
.sidebar{
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.16) transparent;
}
.nav-scroll::-webkit-scrollbar,
.sidebar::-webkit-scrollbar{
  width:5px;
  height:5px;
}
.nav-scroll::-webkit-scrollbar-track,
.sidebar::-webkit-scrollbar-track{
  background:transparent;
}
.nav-scroll::-webkit-scrollbar-thumb,
.sidebar::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.14);
  border-radius:999px;
  border:1px solid transparent;
  background-clip:content-box;
}
.nav-scroll::-webkit-scrollbar-thumb:hover,
.sidebar::-webkit-scrollbar-thumb:hover{
  background:rgba(95,227,255,.46);
  background-clip:content-box;
}
.nav-scroll::-webkit-scrollbar-corner,
.sidebar::-webkit-scrollbar-corner{
  background:transparent;
}
/* Evita scrollbar dupla no app-shell flex */
.app-shell, .main, .content{ scrollbar-width:thin; }

/* ================= GESTAO CONTAS FIX 2026-09-07 — toolbar search + chips mobile ================= */
#view-clientes .toolbar .search-box,
#view-parceiros .toolbar .search-box,
#view-utilizadores .toolbar .search-box{
  display:flex !important;
}
#cliSearchForm, #parcSearchForm, #userSearchForm, #licSearchForm, #subSearchForm, #ticketSearchForm, #ouvSearchForm, #actSearchForm{
  flex:0 1 auto;
  min-width:0;
}
#cliSearchForm .search-box, #parcSearchForm .search-box, #userSearchForm .search-box, #licSearchForm .search-box, #subSearchForm .search-box, #ticketSearchForm .search-box, #ouvSearchForm .search-box, #actSearchForm .search-box{
  flex:1;
  width:100%;
  display:flex !important;
}
@media (max-width:768px){
  #cliSearchForm, #parcSearchForm, #userSearchForm, #licSearchForm, #subSearchForm, #ticketSearchForm, #ouvSearchForm, #actSearchForm{
    flex:1 1 100%;
    order:10;
    width:100%;
  }
  #cliSearchForm .search-box, #parcSearchForm .search-box, #userSearchForm .search-box, #licSearchForm .search-box, #subSearchForm .search-box, #ticketSearchForm .search-box, #ouvSearchForm .search-box, #actSearchForm .search-box{
    max-width:none !important;
    width:100%;
  }
}
@media (max-width:480px){
  #view-configuracoes .toolbar{
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    align-items:center !important;
    padding-bottom:8px;
  }
  #view-configuracoes .toolbar .chip{ flex:0 0 auto !important; width:auto !important; }
  #view-clientes .toolbar, #view-parceiros .toolbar, #view-utilizadores .toolbar,
  #view-licencas .toolbar, #view-subscricoes .toolbar, #view-modulos .toolbar,
  #view-tickets .toolbar, #view-ouvidorias .toolbar, #view-actualizacoes .toolbar{
    flex-direction:row !important;
    flex-wrap:wrap !important;
    align-items:center !important;
  }
  #view-clientes .toolbar .chip, #view-parceiros .toolbar .chip, #view-utilizadores .toolbar .chip,
  #view-licencas .toolbar .chip, #view-subscricoes .toolbar .chip, #view-modulos .toolbar .chip,
  #view-tickets .toolbar .chip, #view-ouvidorias .toolbar .chip, #view-actualizacoes .toolbar .chip{
    width:auto !important;
    flex:0 0 auto;
  }
  #view-clientes .toolbar .btn, #view-parceiros .toolbar .btn, #view-utilizadores .toolbar .btn,
  #view-clientes .toolbar .btn-filter, #view-parceiros .toolbar .btn-filter, #view-utilizadores .toolbar .btn-filter,
  #view-clientes .toolbar .export-wrap, #view-parceiros .toolbar .export-wrap, #view-utilizadores .toolbar .export-wrap,
  #view-licencas .toolbar .btn, #view-subscricoes .toolbar .btn, #view-modulos .toolbar .btn,
  #view-licencas .toolbar .btn-filter, #view-subscricoes .toolbar .btn-filter,
  #view-licencas .toolbar .export-wrap, #view-subscricoes .toolbar .export-wrap,
  #view-tickets .toolbar .btn, #view-ouvidorias .toolbar .btn, #view-actualizacoes .toolbar .btn,
  #view-tickets .toolbar .btn-filter, #view-ouvidorias .toolbar .btn-filter, #view-actualizacoes .toolbar .btn-filter,
  #view-tickets .toolbar .export-wrap, #view-ouvidorias .toolbar .export-wrap, #view-actualizacoes .toolbar .export-wrap{
    width:auto !important;
    flex:0 0 auto;
  }
  #view-clientes .toolbar .toolbar-spacer, #view-parceiros .toolbar .toolbar-spacer, #view-utilizadores .toolbar .toolbar-spacer,
  #view-licencas .toolbar .toolbar-spacer, #view-subscricoes .toolbar .toolbar-spacer,
  #view-tickets .toolbar .toolbar-spacer, #view-ouvidorias .toolbar .toolbar-spacer, #view-actualizacoes .toolbar .toolbar-spacer{
    display:none !important;
  }
}

/* PATCH 2026-09-08 — controlos de filtro (tecnico/logs, tecnico/versoes) no design system */
a.btn{text-decoration:none !important;}
.form-control{
  font-family:inherit;font-size:13px;color:var(--text-900);background:var(--surface);
  border:1.5px solid var(--border);border-radius:8px;padding:8px 10px;max-width:100%;
}
.form-control:focus{outline:none;border-color:var(--blue-600);box-shadow:0 0 0 3px rgba(0,103,224,.12);}
.toolbar form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
#view-logs .toolbar .btn, #view-versoes .toolbar .btn{flex:0 0 auto;width:auto !important;}

/* ================= PATCH 2026-11-01 - Actualizacoes & Controlo de Versoes ================= */
.version-pill{
  display:inline-flex;align-items:center;gap:4px;white-space:nowrap;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:11.5px;font-weight:700;color:var(--navy-800);
  background:#eef4ff;border:1px solid #dbe7fb;border-radius:6px;padding:3px 8px;
}
.version-pill.is-published{background:var(--success-bg);border-color:#c9eeda;color:#0f7a4a;}
.version-empty{font-size:12px;color:var(--text-400);font-weight:500;}
.module-tag{
  display:inline-flex;align-items:center;white-space:nowrap;
  font-size:10.5px;font-weight:800;letter-spacing:.35px;text-transform:uppercase;
  color:var(--text-600);background:#eef1f6;border-radius:6px;padding:3px 8px;
}
.file-type{font-size:12.5px;font-weight:600;color:var(--text-600);}
.cell-date{white-space:nowrap;font-size:12.5px;color:var(--text-600);}
.cell-date .cell-sub{font-size:11px;color:var(--text-400);margin-top:2px;}

/* ---- Actualizacoes: KPIs de estado ---- */
#view-actualizacoes .act-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;}
#view-actualizacoes .act-kpi{
  position:relative;display:flex;flex-direction:column;gap:4px;overflow:hidden;
  background:var(--surface);border:1px solid var(--border);padding:15px 17px 14px;
  text-decoration:none;color:inherit;
  transition:border-color .15s ease,box-shadow .15s ease,transform .1s ease;
}
#view-actualizacoes .act-kpi::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent,var(--blue-600));opacity:.9;
}
#view-actualizacoes .act-kpi::after{
  content:"";position:absolute;right:-26px;top:-26px;width:88px;height:88px;border-radius:50%;
  background:radial-gradient(circle,var(--accent,var(--blue-600)) 0%,transparent 70%);opacity:.13;
}
#view-actualizacoes .act-kpi:hover{border-color:var(--accent,var(--blue-600));box-shadow:0 6px 18px rgba(8,28,61,.07);}
#view-actualizacoes .act-kpi:active{transform:scale(.99);}
#view-actualizacoes .act-kpi.is-active{border-color:var(--accent,var(--blue-600));box-shadow:0 0 0 3px rgba(0,103,224,.08);}
#view-actualizacoes .act-kpi-label{font-size:10.5px;font-weight:800;letter-spacing:.45px;text-transform:uppercase;color:var(--text-400);}
#view-actualizacoes .act-kpi-value{font-family:'Manrope',sans-serif;font-size:25px;font-weight:800;line-height:1.15;letter-spacing:-.4px;color:var(--text-900);}
#view-actualizacoes .act-kpi-ctx{font-size:11.5px;font-weight:500;color:var(--text-400);}
#view-actualizacoes #actSearchForm{flex:1 1 300px;max-width:430px;}
#view-actualizacoes #actSearchForm .search-box{width:100%;max-width:none;}
#view-actualizacoes .act-toolbar-info{font-size:12.5px;color:var(--text-600);font-weight:500;}
#view-actualizacoes .act-toolbar-info b{font-size:14px;color:var(--text-900);}
#view-actualizacoes .act-toolbar-info .sep{margin:0 5px;color:var(--text-400);}
#view-actualizacoes .act-table th:first-child{min-width:190px;}
#view-actualizacoes .act-table th:nth-child(2){min-width:165px;}
#view-actualizacoes .act-table th:nth-child(3){min-width:105px;}
#view-actualizacoes .act-chevron{width:32px;text-align:right;color:var(--text-400);}
#view-actualizacoes .act-chevron svg{width:15px;height:15px;transition:transform .15s ease,color .15s ease;}
#view-actualizacoes .act-row:hover .act-chevron{color:var(--blue-600);}
#view-actualizacoes .act-row:hover .act-chevron svg{transform:translateX(2px);}
#view-actualizacoes .act-row:focus-visible{outline:2px solid var(--blue-600);outline-offset:-2px;}
#view-actualizacoes .act-controlo{margin-top:18px;}
#view-actualizacoes .act-controlo .table-panel-head{margin-bottom:6px;}
#view-actualizacoes .act-controlo .table-panel-head .link-btn{white-space:nowrap;}
#view-actualizacoes .act-controlo-table th:first-child{min-width:220px;}

/* ---- Actualizacoes: modal de detalhe ---- */
.act-detail{display:flex;flex-direction:column;gap:16px;}
.act-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.act-detail-item{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;min-width:0;}
.act-detail-label{display:block;font-size:10px;font-weight:800;letter-spacing:.45px;text-transform:uppercase;color:var(--text-400);margin-bottom:4px;}
.act-detail-value{font-size:13px;font-weight:700;color:var(--text-900);word-break:break-word;}
.act-detail-block{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;}
.act-detail-block h4{font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--text-600);margin-bottom:6px;}
.act-detail-block .act-detail-text{white-space:pre-wrap;font-size:13px;line-height:1.55;color:var(--text-900);}
.act-detail-block.is-warning{background:var(--warning-bg);border-color:#f3d9a4;}
.act-detail-block.is-warning h4{color:#92400e;}
.act-detail-url{display:flex;flex-direction:column;gap:4px;min-width:0;}
.act-detail-url a{font-size:12.5px;font-weight:600;color:var(--blue-600);word-break:break-all;text-decoration:none;}
.act-detail-url a:hover{text-decoration:underline;}

/* ---- Controlo de versoes ---- */
#view-versoes .vs-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px;}
#view-versoes .vs-toolbar{
  display:block;padding:14px 16px;margin-bottom:14px;
  background:var(--surface);border:1px solid var(--border);
}
#view-versoes .vs-filters{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;width:100%;}
#view-versoes .vs-field{display:flex;flex-direction:column;gap:6px;flex:1 1 190px;max-width:280px;min-width:0;}
#view-versoes .vs-label{font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--text-400);}
#view-versoes .vs-field .form-control{width:100%;padding:9px 11px;background:var(--surface);}
#view-versoes .vs-actions{display:flex;align-items:center;gap:8px;padding-bottom:1px;}
#view-versoes .vs-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--text-600);margin:-2px 0 14px;}
#view-versoes .vs-summary b{color:var(--text-900);}
#view-versoes .vs-chip{font-size:11.5px;font-weight:600;color:var(--text-600);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:4px 10px;}
#view-versoes .vs-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
#view-versoes .vs-table th:first-child{min-width:210px;}
#view-versoes .vs-table th:nth-child(2){min-width:120px;}
#view-versoes .vs-table th:nth-child(3){min-width:140px;}
#view-versoes .vs-table .cell-sub{white-space:nowrap;}
#view-versoes .vs-table tr.is-outdated{background:rgba(224,67,58,.055);}
#view-versoes .vs-table tr.is-outdated:hover{background:rgba(224,67,58,.09);}
#view-versoes .vs-table tr.is-outdated td:first-child{box-shadow:inset 3px 0 0 var(--danger);}
.days-pill{
  display:inline-flex;align-items:center;white-space:nowrap;
  font-size:11.5px;font-weight:800;color:var(--navy-800);
  background:#eef1f6;border-radius:6px;padding:3px 8px;
}

@media (max-width:1000px){
  #view-actualizacoes .act-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:720px) and (min-width:481px){
  #view-versoes .vs-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  #view-versoes .vs-kpis .kpi:nth-child(3){grid-column:1/-1;}
}
@media (max-width:720px){
  .act-detail-grid{grid-template-columns:1fr;}
  #view-actualizacoes .act-toolbar-info{flex:1 1 100%;}
  #view-versoes .vs-field{max-width:none;}
  #view-versoes .vs-actions{width:100%;}
}
@media (max-width:480px){
  #view-actualizacoes .act-kpis,
  #view-versoes .vs-kpis{grid-template-columns:1fr;}
  #view-versoes .vs-legend{display:none;}
}

/* Responsividade fina - abas de ambito e dica de scroll em tabelas */
.table-scroll-hint{display:none;align-items:center;gap:6px;font-size:10.5px;font-weight:600;color:var(--text-400);padding:0 16px 6px;}
.table-scroll-hint svg{width:12px;height:12px;flex-shrink:0;}
.table-scroll-hint.is-visible{display:flex;}
@media (max-width:480px){
  #view-versoes .toolbar[data-abas-ambito],
  #view-logs .toolbar[data-abas-ambito]{
    flex-direction:row !important;
    flex-wrap:wrap !important;
    align-items:center !important;
  }
  #view-versoes .toolbar[data-abas-ambito] .chip,
  #view-logs .toolbar[data-abas-ambito] .chip{
    width:auto !important;
    flex:0 0 auto;
  }
}
