/* =========================================================
   Tema claro (default) – mais "clean" e corporativo
   ========================================================= */
:root{
  /* Base */
  --bg:#f8fafc;
  --bg2:#f8fafc;
  --panel:#FFFFFF;
  --card:#FFFFFF;
  --card2:#FFFFFF;

  --text:#0f172a;
  --muted:#64748b;
  --line:#e2e8f0;

  /* Identidade */
  --blue:#2563EB;
  --blue2:#1D4ED8;
  --teal:#0E7490;

  /* Tons suaves */
  --blue-soft:#eff6ff;
  --teal-soft:#E7F6FA;
  --good-soft:#f0fdf4;
  --warn-soft:#fffbeb;
  --bad-soft:#fef2f2;

  /* Status */
  --good:#16a34a;
  --warn:#d97706;
  --bad:#dc2626;

  /* Sombras sutis */
  --shadow: 0 1px 3px rgba(15,23,42,.08), 0 1px 2px rgba(15,23,42,.04);
  --shadow-sm: 0 1px 2px rgba(15,23,42,.05);
  --radius:12px;
  --radius-lg:16px;
  --radius2:8px;
  --font: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New";
}

/* Acessibilidade / utilitários */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* Botões com ícone (CRUD) */
.btn-icon{display:inline-flex;align-items:center;gap:6px;}
.btn-icon .icon{width:16px;height:16px;}
*{box-sizing:border-box; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale}
html{font-size:14px}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font);
  font-weight:400;
  line-height:1.45;
  letter-spacing:-0.005em;
  background:var(--bg);
  color:var(--text);
  overflow:hidden;
}
a{color:inherit; text-decoration:none}

/* Shell */
.app-frame{padding:0; min-height:100vh; height:100vh; overflow:hidden}
.app-shell{
  display:grid;
  grid-template-columns:280px 1fr;
  min-height:100vh;
  height:100vh;
  background:#fff;
  border:none;
  border-radius:0;
  box-shadow:none;
  overflow:hidden;
}

/* ===== MASTER (controle) ===== */
/* sidebar própria via master_sidebar.php — usa o mesmo grid 280px do app */
.app-main{min-width:0; height:100%; overflow:auto; position:relative; z-index:1}
.app-content{overflow:visible; padding:18px 22px 40px}

/* Helpers */
.stack{display:flex;flex-direction:column;gap:14px}
.row{display:flex;gap:12px;align-items:center}
.grow{flex:1;min-width:0}

/* Sidebar — Opção B */
.sidebar{
  position:sticky; top:0; height:100vh;
  padding:16px 12px;
  background:#f1f5f9;
  border-right:1px solid #e2e8f0;
  display:flex;
  flex-direction:column;
}
/* Brand */
.sb-brand{display:flex;align-items:center;gap:10px;padding:6px 6px 12px}
.sb-logo{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#60a5fa);color:#fff;font-weight:800;font-size:15px;flex:0 0 36px}
.sb-brand-text{min-width:0}
.sb-brand-title{font-size:14px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-brand-sub{font-size:11px;color:#94a3b8;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Novo button */
.sb-novo-wrap{position:relative;margin-bottom:10px}
.sb-novo-wrap .dropdown-menu{left:0;right:auto;top:calc(100% + 6px);min-width:100%}
.sb-novo-btn{width:100%;display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.sb-novo-btn:hover{background:#1d4ed8}
.sb-novo-plus{font-size:18px;line-height:1;font-weight:300}
.sb-novo-label{flex:1;text-align:left}
.sb-novo-chev{display:flex;align-items:center}
.sb-novo-chev svg{display:block}
/* Nav */
.sb-nav{display:flex;flex-direction:column;flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:8px;gap:2px}
.nav-group{margin-top:6px}
.nav-group-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;padding:6px 8px 4px}
.nav-item{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:8px;
  border:1px solid transparent;
  color:#475569;text-decoration:none;
  font-size:13px;font-weight:500;
  transition:all .1s;width:100%;
  background:transparent;cursor:pointer;
}
.nav-item:hover{background:#fff;border-color:#e2e8f0;color:#1e293b;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.nav-item.active{background:#fff;border-color:#dbeafe;color:#1d4ed8;font-weight:600;box-shadow:0 1px 3px rgba(15,23,42,.06)}
.nav-ic{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px;color:#94a3b8}
.nav-ic svg{display:block}
.nav-item.active .nav-ic{color:#2563eb}
.nav-item:hover .nav-ic{color:#475569}
.nav-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-group-items{display:flex;flex-direction:column;gap:2px;margin-top:2px}
.nav-group-items[hidden]{display:none !important}
.nav-item.is-hidden{display:none}
.nav-group.is-hidden{display:none}
/* Sidebar search (compat, hidden in Opção B) */
.sidebar-search{display:none}
.input-search{height:34px;border-radius:8px;background:#fff;border:1px solid #e2e8f0;width:100%}
.input-search:focus{background:#fff;border-color:rgba(37,99,235,.35);box-shadow:0 0 0 3px rgba(37,99,235,.10)}
/* Footer */
.sb-footer{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:6px}
.sb-divider{height:1px;background:#e2e8f0;margin:2px 0 4px}
.sb-collapse-btn{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;font-family:inherit;font-size:13px;color:#64748b}
.sb-collapse-btn:hover{background:#fff;border-color:#e2e8f0}
.sb-collapse-btn .mini-ic{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px}
.sb-collapse-btn .mini-ic svg{display:block}
.sb-collapse-btn .mini-ic-right{display:none}
.mini-text{font-size:13px;font-weight:500;color:#64748b}
.sb-user-row{display:flex;align-items:center;gap:6px}
.sb-user-link{display:flex;align-items:center;gap:8px;flex:1;text-decoration:none;color:inherit;min-width:0;padding:6px 6px;border-radius:8px;transition:.1s}
.sb-user-link:hover{background:#fff}
.sb-user-info{min-width:0;flex:1}
.sb-avatar{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#eff6ff;border:1px solid #bfdbfe;color:#2563eb;font-weight:700;font-size:13px;flex:0 0 30px}
.sb-avatar-img{width:30px;height:30px;border-radius:8px;object-fit:cover;flex:0 0 30px}
.sb-user-name{font-size:12px;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-version{font-size:10px;color:#94a3b8;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-sair-btn{height:28px;padding:0 10px;background:transparent;border:1px solid #e2e8f0;border-radius:7px;cursor:pointer;font-size:12px;font-weight:500;color:#64748b;font-family:inherit;white-space:nowrap;flex-shrink:0}
.sb-sair-btn:hover{background:#fff;border-color:#d1d5db;color:#0f172a}
/* Sidebar mini */
body.sidebar-mini .app-shell{grid-template-columns:56px 1fr}
body.sidebar-mini .sidebar{padding:12px 8px}
body.sidebar-mini .sb-brand-text{display:none}
body.sidebar-mini .sb-novo-label{display:none}
body.sidebar-mini .sb-novo-chev{display:none}
body.sidebar-mini .sb-novo-btn{padding:0;justify-content:center;gap:0}
body.sidebar-mini .nav-text{display:none}
body.sidebar-mini .nav-group-title{display:none}
body.sidebar-mini .nav-chevron{display:none}
body.sidebar-mini .nav-item{justify-content:center;padding:8px;gap:0}
body.sidebar-mini .nav-ic{width:22px;height:22px}
body.sidebar-mini .sb-collapse-btn .mini-ic-left{display:none}
body.sidebar-mini .sb-collapse-btn .mini-ic-right{display:grid}
body.sidebar-mini .sb-collapse-btn .mini-text{display:none}
body.sidebar-mini .sb-collapse-btn{justify-content:center;padding:8px}
body.sidebar-mini .sb-user-info{display:none}
body.sidebar-mini .sb-user-row{flex-direction:column;align-items:center}
body.sidebar-mini .sb-sair-btn{width:100%;padding:0 4px;font-size:11px}
/* No mini, grupos fechados ainda mostram os ícones */
body.sidebar-mini .nav-group-items[hidden]{display:flex !important}
/* Compat: old classes still referenced in legacy templates */
.sidebar-brand{display:flex;gap:10px;align-items:center;padding:6px 6px 12px}
.logo{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#60a5fa);color:#fff;font-weight:700;font-size:15px}
.brand-text{line-height:1.1}
.brand-title{font-size:14px;font-weight:700;color:#0f172a}
.brand-sub{font-size:11px;color:#94a3b8;margin-top:2px}
.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.user-chip{display:flex;gap:8px;align-items:center;padding:8px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;text-decoration:none;color:inherit}
.avatar{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#eff6ff;border:1px solid #bfdbfe;color:#2563eb;font-weight:700}
.user-name{font-size:12px;font-weight:600;color:#1e293b}
.user-small{font-size:10px;color:#94a3b8;margin-top:1px}
.sidebar-mini-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer}
.sidebar-mini-toggle:hover{background:#fff;border-color:#e2e8f0}
.sidebar-mini-toggle .mini-ic{width:20px;height:20px;display:grid;place-items:center}
.sidebar-mini-toggle .mini-ic-right{display:none}
body.sidebar-mini .sidebar-mini-toggle .mini-ic-left{display:none}
body.sidebar-mini .sidebar-mini-toggle .mini-ic-right{display:grid}
body.sidebar-mini .sidebar-mini-toggle .mini-text{display:none}
body.sidebar-mini .sidebar-mini-toggle{justify-content:center}

/* Topbar (mais clean) */
.topbar{display:flex; align-items:center; justify-content:space-between; padding:16px 22px; border-bottom:1px solid var(--line); background:#fff; box-shadow:0 8px 24px rgba(15,23,42,.06); position:sticky; top:0; z-index:1200; overflow:visible;}

.page-title{margin:0; font-size:17px; font-weight:600; color:var(--text)}
.topbar-right{display:flex; gap:12px; align-items:center}
.topbar-actions{display:flex; gap:10px; align-items:center}

/* Cabeçalho de página */
.page-head{display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin:6px 0 14px}
.page-head h1{margin:0; font-size:26px; line-height:1.15; letter-spacing:-.02em; color:#0b1220}
.page-head p{margin:6px 0 0; color:var(--muted); max-width:68ch}
.page-actions{display:flex; gap:10px; align-items:center; justify-content:flex-end}

/* Dropdown */
.dropdown{position:relative}
.dropdown-menu{position:absolute; right:0; top:calc(100% + 8px); min-width:210px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 16px 40px rgba(15,23,42,.14); padding:8px; display:none; z-index:9999}
.dropdown.open .dropdown-menu{display:block}
.dropdown-item{display:flex; align-items:center; gap:10px; padding:10px 10px; border-radius:10px; color:#0b1220; text-decoration:none; font-weight:600; font-size:13px}
.dropdown-item:hover{background:#f1f5ff}
.topbar-actions .btn{display:inline-flex; align-items:center; gap:8px}
.topbar-actions .btn svg{display:block}
.topbar-empresa{font-size:12.5px; color:var(--muted); padding:6px 10px; border-radius:999px; background:rgba(37,99,235,.08); border:1px solid rgba(37,99,235,.14)}
.topbar-user-name{color:var(--muted); font-size:13px}

/* Cards */
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow: var(--shadow-sm)}
.card-head{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:16px 16px 0}
.card-title{font-weight:600; font-size:15px}
.card-sub{margin-top:6px; color:var(--muted); font-size:12.5px}
.card-actions{display:flex; gap:8px; align-items:center}
.card-body{padding:16px}
.card-mini-head{padding:14px 14px 0}
.card-mini-body{padding:14px}

/* Grid */
.grid{display:grid; gap:14px}
.two-cols{grid-template-columns:1fr 1fr}
.three-cols{grid-template-columns:1fr 1fr 1fr}
.kpi-grid{grid-template-columns:repeat(6, minmax(140px, 1fr))}
@media(max-width:1100px){
  .kpi-grid{grid-template-columns:repeat(3,1fr)}
  .two-cols{grid-template-columns:1fr}
  .three-cols{grid-template-columns:1fr}
}

/* KPI (SaaS) */
.kpi{
  position:relative;
  padding:16px 16px 14px 18px;
  border-radius:14px;
  border:1px solid var(--line);
  background:var(--panel);
  box-shadow: var(--shadow);
  overflow:hidden;
  --kpi-color: var(--blue);
}
.kpi::before{
  content:'';
  position:absolute;
  left:0;
  top:12px;
  bottom:12px;
  width:4px;
  border-radius:999px;
  background: var(--kpi-color);
  opacity:.9;
}
.kpi-label{
  font-size:12px;
  color:var(--muted);
  font-weight:600;
}
.kpi-value{
  font-size:22px;
  font-weight:700;
  margin-top:6px;
  letter-spacing:-0.02em;
}
.kpi-warn{ --kpi-color: var(--warn); }
.kpi-bad{ --kpi-color: var(--bad); }
.kpi-good{ --kpi-color: var(--good); }
/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; height:40px; padding:0 14px; border-radius:14px; border:1px solid transparent; cursor:pointer; font-weight:600;}
.btn-sm{height:34px; padding:0 12px; border-radius:12px; font-weight:600;}
.btn-primary{background:var(--blue); color:#fff; box-shadow: var(--shadow); border-color:rgba(15,48,87,.28)}
.btn-ghost:hover{border-color:rgba(47,124,255,.35)}
.w-100{width:100%}

/* Forms */
.form{display:flex; flex-direction:column; gap:12px}
.field label{display:block; font-size:12px; color:var(--muted); margin-bottom:6px}
.field input, .field select, .field textarea{
  width:100%;
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  border-radius:14px;
  padding:10px 12px;
  outline:none;
}
.field textarea{resize:vertical; min-height:96px}
.field input:focus, .field select:focus, .field textarea:focus{border-color:rgba(30,58,95,.55); box-shadow: var(--shadow); color:var(--muted); font-size:12px}

/* Compat: telas que usam .label/.input (ex.: modais do fluxo) */
.label{display:block; font-size:12px; color:var(--muted); margin-bottom:6px}
.input{
  width:100%;
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  border-radius:14px;
  padding:10px 12px;
  outline:none;
}
.input:focus{border-color:rgba(30,58,95,.55); box-shadow: var(--shadow)}
.input.file{padding:9px 10px}
.filters{display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:12px}
.field.inline{min-width:210px}
.field.inline.grow{flex:1; min-width:260px}
.actions{display:flex; gap:10px; flex-wrap:wrap}

/* ===== Novo chamado (obra search) ===== */
.grid.newch{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}
@media (max-width: 980px){.grid.newch{grid-template-columns:1fr}}
.input-row{display:flex;gap:10px;align-items:center}
.hint{margin-top:6px;color:var(--muted);font-size:12.5px}

.autocomplete{position:relative}
.ac-list{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(15,23,42,.12);overflow:hidden;display:none;z-index:50}
.ac-item{display:block;width:100%;text-align:left;padding:10px 12px;border:0;background:transparent;cursor:pointer}
.ac-item:hover{background:rgba(15,23,42,.04)}
.ac-title{font-weight:700;color:var(--text)}
.ac-sub{margin-top:2px;color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* =========================
   Dashboard (PowerBI style)
========================= */
.dash-tabs{display:flex; gap:8px; flex-wrap:wrap}
.dash-tab{height:38px; padding:0 14px; border-radius:999px; border:1px solid var(--line); background:var(--panel); color:var(--text); font-weight:700; cursor:pointer}
.dash-tab:hover{border-color:rgba(30,58,95,.35)}
.dash-tab.is-active{background:rgba(30,58,95,.10); border-color:rgba(30,58,95,.35)}
.dash-pane{display:none}
.dash-pane.is-active{display:block}

/* Padronização de tamanho dos quadros (cards de gráficos) */
.dash-card{height:300px}
.dash-card--sm{height:260px}
.dash-card--md{height:300px}
.dash-card--lg{height:420px}
.dash-card--auto{height:auto}
.dash-card .card-body{height:100%; display:flex; flex-direction:column}
.dash-card .chart-box{flex:1; min-height:0; position:relative}
.dash-card .chart-box canvas{position:absolute; inset:0; width:100% !important; height:100% !important}
.dash-card .bars{flex:1; overflow:auto; padding-right:4px}

/* KPI no SLA com linha de apoio */
.kpi-sub{margin-top:6px; font-size:12px; color:var(--muted)}

.kanban{display:grid; gap:12px; grid-template-columns:repeat(7, minmax(240px, 1fr)); overflow:auto; padding-bottom:6px}
.kan-col{background:var(--panel); border:1px solid var(--line); border-radius:16px; min-height:320px; display:flex; flex-direction:column}
.kan-head{display:flex; align-items:center; justify-content:space-between; padding:12px 12px 10px; border-bottom:1px solid var(--line)}
.kan-title{font-weight:800; font-size:13px}
.kan-count{min-width:28px; height:22px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); font-weight:800; font-size:12px; color:var(--muted); background:var(--card)}
.kan-body{padding:10px; display:flex; flex-direction:column; gap:10px; overflow:auto}
.kan-card{display:block; padding:10px 10px 9px; border-radius:14px; border:1px solid var(--line); background:var(--card); box-shadow: var(--shadow); color:inherit; text-decoration:none}
.kan-card:hover{border-color:rgba(30,58,95,.35)}
.kan-card-top{display:flex; align-items:flex-start; justify-content:space-between; gap:10px}
.kan-card-mid{margin-top:8px}
.kan-obra{font-weight:800}
.kan-desc{margin-top:8px; color:var(--muted); font-size:12.5px; line-height:1.35}
.kan-foot{margin-top:10px; display:flex; gap:8px; flex-wrap:wrap}
.tag{display:inline-flex; align-items:center; height:22px; padding:0 9px; border-radius:999px; border:1px solid var(--line); font-weight:800; font-size:11px; color:var(--muted); background:rgba(15,23,42,.02)}
.tag-warn{border-color:rgba(245,158,11,.35); color:rgba(161,98,7,1); background:rgba(245,158,11,.12)}
.tag-bad{border-color:rgba(239,68,68,.35); color:rgba(153,27,27,1); background:rgba(239,68,68,.10)}

@media(max-width:1100px){
  .kanban{grid-template-columns:repeat(3, minmax(240px, 1fr));}
}
@media(max-width:700px){
  .kanban{grid-template-columns:repeat(1, minmax(240px, 1fr));}
}
.ac-empty{padding:10px 12px;color:var(--muted);font-size:13px}

.kvs{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.kv{display:flex;gap:10px;align-items:flex-start}
.kv-k{width:90px;color:var(--muted);font-size:12.5px}
.kv-v{flex:1;font-weight:600}

/* KV vertical (melhor hierarquia em telas de chamado) */
.kv-vert .kv{flex-direction:column;gap:4px}
.kv-vert .kv-k{width:auto;font-size:12px;letter-spacing:.01em}
.kv-vert .kv-v{font-weight:600}
.hr{height:1px;background:var(--line);margin:14px 0}
.bullets{margin:8px 0 0 18px;color:var(--text)}
.bullets li{margin:6px 0;color:var(--muted)}

.alert{border:1px solid var(--line);background:rgba(15,23,42,.03);padding:10px 12px;border-radius:14px;font-size:13px}
.alert-danger{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08);color:#7f1d1d}
.alert-warn{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.10);color:#7c2d12}

/* Table */
.table-wrap{overflow:auto; border:1px solid var(--line); border-radius:14px}
.table{width:100%; border-collapse:separate; border-spacing:0; min-width:920px}
.table.resizable{table-layout:fixed}
.table thead th{position:sticky; top:0; background:#fff; border-bottom:1px solid var(--line); padding:12px 12px; font-size:12px; color:var(--muted); text-align:left}
.table tbody td{padding:12px 12px; border-bottom:1px solid rgba(31,41,55,.08)}
.table tr:hover td{background:rgba(30,58,95,.04)}

/* v39: tabela do modal não deve criar scroll horizontal */
.table-wrap-nox{overflow-x:hidden}
.table.table-modal{min-width:0;table-layout:fixed}
.table.table-modal th,.table.table-modal td{word-break:break-word}
.table.table-modal th:first-child,.table.table-modal td:first-child{width:88px}
.table.table-modal th:last-child,.table.table-modal td:last-child{width:120px}

/* Colunas específicas */
.col-codigo{white-space:nowrap}
.col-status{white-space:nowrap}
.code{display:inline-block; font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-weight:600; ; color:var(--text)}

/* Segmented control (prioridade) */
.segmented{display:flex;gap:6px;flex-wrap:wrap;align-items:center;width:100%}
.segmented .seg{border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 10px;cursor:pointer;font-weight:700;font-size:12px;line-height:1}
.btn-check{position:absolute;clip:rect(0,0,0,0)}
.btn-check:checked + .seg{border-color:rgba(0,0,0,.12);box-shadow:0 0 0 3px rgba(30,58,95,.08)}
.seg-muted{color:#334155}
.seg-warn{color:var(--warn)}
.seg-danger{color:var(--bad)}
.btn-check:checked + .seg-warn{background:rgba(245,158,11,.12)}
.btn-check:checked + .seg-danger{background:rgba(220,38,38,.12)}
.btn-check:checked + .seg-muted{background:rgba(30,58,95,.06)}

/* Utilitários do modal (cadastro rápido) */
.label-row{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px}
.btn-mini{padding:6px 10px; border-radius:999px; font-size:12px; line-height:1; border:1px solid var(--line); background:#fff; color:var(--text)}
.btn-mini:hover{background:rgba(2,6,23,.03)}

.modal-divider{height:1px; background:rgba(31,41,55,.08); margin-top:14px}

.priority-box{border:1px solid rgba(31,41,55,.10); border-radius:14px; padding:12px 14px; background:rgba(15,23,42,.03)}
.priority-head{display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:8px}
.priority-seg .seg{padding:10px 12px; border-radius:14px}

.modal-sm{max-width:520px}

/* Redimensionamento de colunas */
.th-resizer{position:absolute; right:0; top:0; width:8px; height:100%; cursor:col-resize; user-select:none}
.th-resizer:after{content:""; position:absolute; right:3px; top:20%; bottom:20%; width:1px; background:rgba(31,41,55,.10)}

/* Paginação */
.table-footer{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:10px; flex-wrap:wrap}
.pager{display:flex; align-items:center; gap:10px}
.pager .pages{display:flex; align-items:center; gap:6px}
.pager .page{display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:32px; padding:0 10px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--text); text-decoration:none; font-weight:600; font-size:13px}
.pager .page.active{border-color:rgba(30,58,95,.35); box-shadow:0 6px 16px rgba(2,6,23,.06)}
.pager .dots{color:var(--muted); padding:0 4px}
.btn.disabled{opacity:.45; pointer-events:none}
.right{text-align:right}
.mono{font-family:var(--mono)}

.link-soft{ color: inherit; text-decoration: none; }
.link-soft:hover{ text-decoration: underline; }

.kpi-mini{ min-width: 160px; padding: 10px 12px; border:1px solid var(--line); border-radius: 12px; background:#fff; }
.kpi-mini__value{ font-size: 20px; font-weight: 700; color: var(--text); line-height: 1.1; }
.kpi-mini__label{ font-size: 12px; color: var(--muted); margin-top: 4px; }

/* Pills & tags */
.pill{display:inline-flex; align-items:center; height:26px; padding:0 10px; border-radius:999px; border:1px solid var(--line); background:rgba(255,255,255,.03); font-size:12px; font-weight:600}
.pill-ok{border-color:rgba(34,197,94,.28); background:rgba(34,197,94,.10)}
.pill-warn{border-color:rgba(245,158,11,.28); background:rgba(245,158,11,.10)}
.pill-bad{border-color:rgba(239,68,68,.28); background:rgba(239,68,68,.10)}
.tag{display:inline-flex; align-items:center; height:26px; padding:0 10px; border-radius:10px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); font-size:12px; font-weight:600}
.tag-ok{border-color:rgba(34,197,94,.25); background:rgba(34,197,94,.10)}
.tag-warn{border-color:rgba(245,158,11,.25); background:rgba(245,158,11,.10)}
.tag-bad{border-color:rgba(239,68,68,.25); background:rgba(239,68,68,.10)}
.tag-muted{opacity:.65}

/* Badges (status) */
.badge{display:inline-flex;align-items:center;justify-content:center;height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid transparent}
.badge-blue{background:var(--blue-soft); color:var(--blue); border-color:rgba(30,58,95,.14)}
.badge-green{background:var(--good-soft); color:var(--good); border-color:rgba(46,125,50,.18)}
.badge-amber{background:var(--warn-soft); color:var(--warn); border-color:rgba(245,158,11,.22)}
.badge-red{background:var(--bad-soft); color:var(--bad); border-color:rgba(198,40,40,.20)}

/* Lists */
.list{display:flex; flex-direction:column; gap:8px}
.list-row{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 12px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.02)}
.list-row.link{cursor:pointer}
.list-row.link:hover{border-color:rgba(47,124,255,.35); background:rgba(47,124,255,.08)}
.list-main{min-width:0}
.list-title{font-weight:600}
.list-sub{margin-top:4px; color:var(--muted); font-size:12.5px}
.list-side{display:flex; align-items:center; gap:8px}

/* Bars */
.bar-row{margin-bottom:12px}
.bar-label{display:flex; justify-content:space-between; gap:10px; font-size:12.5px; margin-bottom:8px}
.bar{height:10px; border-radius:999px; border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.03); overflow:hidden}
.bar-fill{height:100%; border-radius:999px; background:linear-gradient(90deg, var(--blue), var(--teal))}

/* Info blocks */
.info-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px}
@media(max-width:900px){.info-grid{grid-template-columns:1fr}}
.info{padding:12px 12px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.02)}
.info-label{font-size:12px;color:var(--muted)}
.info-value{margin-top:6px; font-weight:600}

.divider{height:1px; background:var(--line); margin:14px 0}
.text-block{margin-top:8px; line-height:1.45}
.muted{color:var(--muted)}

/* Toast */
.toast{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 14px; border-radius:14px; border:1px solid var(--line); background:rgba(255,255,255,.04); margin-bottom:14px}
.toast-success{border-color:rgba(34,197,94,.25); background:rgba(34,197,94,.10)}
.toast-error{border-color:rgba(239,68,68,.25); background:rgba(239,68,68,.10)}
.toast-warning{border-color:rgba(245,158,11,.25); background:rgba(245,158,11,.10)}
.toast-close{background:transparent; border:0; color:var(--text); font-size:18px; cursor:pointer; opacity:.75}
.toast-close:hover{opacity:1}

/* Toast: mais discreto e "de sistema" */
.toast{box-shadow:0 10px 30px rgba(0,0,0,.10)}
.toast .toast-title{font-weight:700}

/* Botão ícone (ações) */
.btn-icon{
  width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:12px; border:1px solid var(--line); background:#fff;
  cursor:pointer; text-decoration:none; color:var(--text);
}
.btn-icon svg{width:18px; height:18px; display:block}
.btn-icon:hover{background:rgba(16,24,40,.04)}
.btn-icon.danger{color:#b42318; border-color:rgba(180,35,24,.25); background:rgba(180,35,24,.06)}
.btn-icon.danger:hover{background:rgba(180,35,24,.10)}

/* Switch (mostrar encerrados/cancelados) */
.switch{display:inline-flex; align-items:center; gap:8px; user-select:none; cursor:pointer}
.switch input{display:none}
.switch .switch-label{font-size:13px; color:var(--muted)}
.switch .slider{position:relative; width:44px; height:26px; border-radius:999px; background:rgba(15,23,42,.12); border:1px solid var(--line); transition:.2s}
.switch .slider:after{content:''; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:999px; background:#fff; box-shadow:0 6px 18px rgba(0,0,0,.12); transition:.2s}
.switch input:checked + .slider{background:rgba(30,58,95,.25); border-color:rgba(30,58,95,.35)}
.switch input:checked + .slider:after{left:21px}

/* Confirmação bonita */
.confirm-modal{position:fixed; inset:0; display:none; z-index:1000}
.confirm-modal.is-open{display:block}
.confirm-backdrop{position:absolute; inset:0; background:rgba(2,6,23,.55)}
.confirm-card{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(520px, calc(100vw - 24px));
  background:#fff; border-radius:18px; border:1px solid var(--line);
  box-shadow:0 18px 60px rgba(0,0,0,.22);
  padding:16px 16px 14px;
}
.confirm-title{font-weight:800; font-size:16px; margin-bottom:8px}
.confirm-msg{color:var(--muted); font-size:14px; line-height:1.35}
.confirm-actions{display:flex; justify-content:flex-end; gap:10px; margin-top:14px}
.btn.danger{background:#b42318; border-color:#b42318; color:#fff}
.btn.danger:hover{filter:brightness(.96)}

/* Empty */
.empty{padding:14px; border:1px dashed rgba(255,255,255,.18); border-radius:16px; background:rgba(255,255,255,.02)}
.empty-title{font-weight:700}
.empty-sub{margin-top:6px; color:var(--muted)}
.empty-actions{margin-top:12px}
.empty-mini{color:var(--muted); padding:8px 0}

/* Auth */
.auth-shell{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px}
.auth-container{max-width:520px}
.auth-card{width:min(520px, 100%); background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02)); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); padding:18px}
.auth-brand{display:flex; gap:12px; align-items:center; padding:8px 6px 14px}
.auth-title{font-weight:700; font-size:16px}
.auth-sub{color:var(--muted); font-size:12.5px; margin-top:4px}
.auth-foot{margin-top:14px; text-align:center}

/* ==========================
   Dashboard (estilo EVOP)
   ========================== */
.dash-filters .filters-grid{display:grid;grid-template-columns:repeat(4, minmax(180px, 1fr));gap:14px}
.dash-filters label{display:block;font-size:12px;color:var(--muted);margin:0 0 6px 2px}
.dash-filters input,.dash-filters select{width:100%;padding:10px 10px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--text)}
.dash-filters .filters-actions{display:flex;gap:12px;justify-content:flex-end;align-items:center}
.dash-filters .filters-actions .btn.danger{background:transparent;border:0;color:var(--muted);padding:8px 10px}
.dash-filters .filters-actions .btn.danger:hover{background:rgba(15,48,87,.06);color:var(--text)}

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

/* Dashboard layout */
.dash-layout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:14px}

/* TOPs (2 colunas abaixo dos KPIs) */
.dash-tops{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* Seções abaixo dos KPIs (4 cards) */
/* 4 colunas (uma única faixa) em telas largas; quebra para 2 e depois 1 em telas menores */
.dash-panels{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:14px}
.chart-wrap{border:1px solid var(--line);border-radius:14px;padding:10px;background:rgba(31,41,55,.02)}
.chart-wrap canvas{width:100%;display:block}

/* Status agregado */
.qstatus{display:flex;flex-direction:column;gap:12px}
.qrow{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.qname{font-weight:600}
.qmeta{font-family:var(--mono);font-size:12px;color:var(--muted)}
.qbar{grid-column:1 / -1;height:10px;border-radius:999px;background:rgba(31,41,55,.06);border:1px solid rgba(31,41,55,.08);overflow:hidden}
.qfill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--teal))}
.qfill.ok{background:linear-gradient(90deg,var(--good),var(--teal))}
.qfill.danger{background:linear-gradient(90deg,var(--bad),var(--warn))}

/* Modal (leve, sem framework) */
.modal{position:fixed;inset:0;display:none;z-index:1000}
.modal.is-open{display:block}
.modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.45)}
.modal-card{position:relative;max-width:820px;margin:8vh auto 0; background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 80px rgba(15,23,42,.25);overflow:hidden}
.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:16px 16px 12px;border-bottom:1px solid var(--line)}
.modal-title{font-weight:700}
.modal-sub{margin-top:6px;color:var(--muted);font-size:12.5px}
.modal-x{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:22px;line-height:1;color:var(--text);opacity:.8}
.modal-x:hover{opacity:1}
.modal-body{padding:16px;max-height:60vh;overflow-y:auto;overflow-x:hidden}
.modal-body .table{width:100%}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid var(--line)}
@media (max-width:1200px){
  .dash-layout{grid-template-columns:1fr}
  .dash-tops{grid-template-columns:1fr}
  .dash-panels{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .dash-filters .filters-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
  .dash-filters .filters-grid{grid-template-columns:1fr}
  .dash-panels{grid-template-columns:1fr}
}

.subtle{color:var(--muted)}
.section-title{font-weight:700;}

/* KPI (refino visual) */
.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px 16px;position:relative;min-height:90px}
.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;border-radius:16px 0 0 16px;background:var(--teal)}
.kpi .num{font-size:26px;font-weight:700;line-height:1}
.kpi .label{margin-top:8px;color:var(--muted);font-size:13px}
.kpi .icon{position:absolute;right:14px;top:14px;font-size:18px;opacity:.32}
.kpi.b1:before{background:rgba(30,58,95,.85)}
.kpi.b2:before{background:rgba(245,158,11,.95)}
.kpi.b3:before{background:rgba(14,116,144,.95)}
.kpi.b4:before{background:rgba(46,125,50,.95)}
.kpi.b5:before{background:rgba(15,48,87,.75)}
.kpi.b6:before{background:rgba(198,40,40,.95)}

/* Table toolbar */
.table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.table-toolbar .title{font-weight:700;}

/* Buttons used in dashboard */
.btn.small{height:34px;padding:0 12px;border-radius:12px;font-size:13px}
.btn.green{background:var(--good);border-color:rgba(46,125,50,.28);color:#fff}
.btn.blue{background:var(--blue);border-color:rgba(30,58,95,.28);color:#fff}
.btn.gray{background:#6B7280;border-color:rgba(107,114,128,.28);color:#fff}
.btn.danger{background:transparent;border-color:transparent;color:var(--text);opacity:.8}
.btn.danger:hover{opacity:1;text-decoration:underline}

/* Simple bar list for Top cards */
.top-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.top-item{display:flex;flex-direction:column;gap:6px}
.top-line{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.top-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-value{font-family:var(--mono);font-size:12px;color:var(--muted)}
.mini-bar{height:10px;border-radius:999px;background:rgba(31,41,55,.06);border:1px solid rgba(31,41,55,.08);overflow:hidden}
.mini-bar > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--teal))}

@media (max-width:1200px){
  .kpis{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:780px){
  .kpis{grid-template-columns:repeat(2,1fr)}
}

/* ===== Fluxo de Chamado (v22) ===== */
.flow-top{margin-bottom:12px}
.flow-title{margin-bottom:10px}
.flow-h1{font-size:18px;font-weight:700;color:#1f2d3d}
.flow-sub{font-size:12px;color:#6b7c93}

.flow-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-bottom:8px}
@media (max-width: 980px){.flow-actions{justify-content:flex-start}}

.flow-stepper{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:center;padding:10px 0}
.flow-stepper .step{display:flex;align-items:center;gap:8px;text-decoration:none;border:1px solid #e3e8ee;background:#fff;border-radius:12px;padding:8px 10px;min-width:140px}
.flow-stepper .step .dot{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;border:1px solid #cbd5e1;color:#475569;font-size:12px;font-weight:700}
.flow-stepper .step .label{font-size:12px;color:#334155;font-weight:600}
.flow-stepper .step.active{border-color:#1b74e4;box-shadow:0 0 0 2px rgba(27,116,228,.12)}
.flow-stepper .step.active .dot{border-color:#1b74e4;color:#1b74e4}
.flow-stepper .step.done .dot{background:#e8f5e9;border-color:#66bb6a;color:#2e7d32}
.flow-stepper .step.skip .dot{background:#fff7ed;border-color:#fb923c;color:#c2410c}
.flow-stepper .step[aria-disabled="true"]{opacity:.45;pointer-events:none}

.flow-skip{margin-top:8px;border:1px dashed #d7dee7;border-radius:12px;padding:10px;background:#fbfcfe}
.flow-skip summary{cursor:pointer;font-weight:600;color:#334155}
.flow-skip-form{display:flex;gap:10px;align-items:flex-end;margin-top:10px}
.flow-skip-form .field{flex:1}

.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width: 980px){.grid-2{grid-template-columns:1fr}}

.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width: 1100px){.grid-3{grid-template-columns:1fr}}

.timeline-journey{position:relative;padding:6px 0 6px 0}
.timeline-journey::before{content:"";position:absolute;left:50%;top:8px;bottom:8px;width:2px;background:#d6e4ff;transform:translateX(-50%)}
.timeline-journey__item{position:relative;display:grid;grid-template-columns:1fr 40px 1fr;gap:14px;align-items:center;margin:0 0 16px}
.timeline-journey__item:nth-child(even) .timeline-journey__card{grid-column:3}
.timeline-journey__item:nth-child(odd) .timeline-journey__card{grid-column:1}
.timeline-journey__dot{grid-column:2;justify-self:center;width:14px;height:14px;border-radius:999px;border:3px solid #fff;background:#60a5fa;box-shadow:0 0 0 3px #dbeafe}
.timeline-journey__card{background:#fff;border:1px solid #dbeafe;border-radius:16px;padding:12px 14px;box-shadow:0 8px 22px rgba(30,58,95,.08);position:relative}
.timeline-journey__card:after{content:"";position:absolute;top:18px;width:12px;height:12px;background:#fff;border-top:1px solid #dbeafe;border-right:1px solid #dbeafe;transform:rotate(45deg)}
.timeline-journey__item:nth-child(odd) .timeline-journey__card:after{right:-7px}
.timeline-journey__item:nth-child(even) .timeline-journey__card:after{left:-7px;transform:rotate(225deg)}
.timeline-journey__meta{font-size:12px;color:var(--muted);margin-top:4px}
.timeline-journey__desc{margin-top:8px;color:var(--text)}

.timeline-flow{position:relative;padding-left:14px}
.timeline-flow::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:#e2e8f0}
.timeline-flow__item{position:relative;padding-left:24px;padding-bottom:16px}
.timeline-flow__item:last-child{padding-bottom:0}
.timeline-flow__dot{position:absolute;left:0;top:5px;width:14px;height:14px;border-radius:999px;border:2px solid #bfdbfe;background:#fff}
.timeline-flow__dot.done{background:#86efac;border-color:#4ade80}
.timeline-flow__title{font-weight:700;color:var(--text)}
.timeline-flow__meta{font-size:13px;color:var(--muted);margin-top:3px}

.switches-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.kpi-h .metric-num{display:flex;align-items:center;gap:8px;flex-wrap:wrap}


.form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.form-grid .field{grid-column:span 6}
.form-grid .col-12{grid-column:span 12}

.table{border:1px solid #e6edf5;border-radius:12px;overflow:hidden}
.table .tr{display:grid;grid-template-columns:1fr 90px 70px 120px;gap:10px;padding:10px 12px;border-top:1px solid #eef2f7;align-items:center}
.table .tr.th{background:#f8fafc;border-top:none;font-size:12px;font-weight:700;color:#475569}
.table .right{text-align:right}

.empty.small{padding:16px}

/* =========================================================
   Ajustes de UX: botões e galeria de anexos (Abertura)
   Cole este bloco no FINAL do app.css
   ========================================================= */

/* Botão cinza usado no modal ("Concluir") */
.btn-gray{background:#6B7280;border-color:rgba(107,114,128,.28);color:#fff}

/* ===== Galeria de anexos (thumbs) ===== */
.gallery{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));
  gap:12px;
  margin-top:12px;
}

.gallery-item{
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  box-shadow:var(--shadow);
  display:block;
}

.gallery-thumb{
  width:100%;
  height:120px;
  object-fit:cover;
  display:block;
  background:rgba(31,41,55,.04);
}

.gallery-meta{
  padding:8px 10px;
  border-top:1px solid rgba(31,41,55,.06);
}

.gallery-name{
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.gallery-file{
  height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:8px;
  background:rgba(31,41,55,.02);
}

.gallery-file-icon{font-size:22px}
.gallery-file-name{
  font-size:12px;
  color:var(--muted);
  max-width:90%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Vídeos na galeria sem controls e sem estourar layout */
.gallery-thumb video{display:block}

/* v38: melhorias UI/UX (abertura + modais) */
.modal-section{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.priority-section{margin-top:14px;padding:14px 14px 12px;border:1px solid rgba(31,41,55,.10);border-radius:16px;background:rgba(15,23,42,.02)}
.priority-section__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.priority-seg--lg .seg{padding:10px 14px;border-radius:14px;font-weight:700}
.priority-seg--lg .seg + .seg{margin-left:8px}
.priority-seg--lg{display:flex;flex-wrap:wrap;gap:8px}

.flow-actions .btn{height:38px}
.flow-actions .btn-ghost{background:rgba(15,23,42,.03)}
.flow-actions .btn-ghost:hover{background:rgba(15,23,42,.06)}

.modal-actions{display:flex;justify-content:flex-end;gap:10px}

/* ------------------------------
   Utilitários
   Alguns templates usam classes rápidas.
-------------------------------- */
.ml-auto{margin-left:auto}
.mr-auto{margin-right:auto}
.w-100{width:100%}

.flex{display:flex}
.items-center{align-items:center}
.justify-between{justify-content:space-between}
.justify-end{justify-content:flex-end}

.mt-6{margin-top:6px}
.mt-8{margin-top:8px}
.mt-10{margin-top:10px}
.mt-12{margin-top:12px}
.mt-14{margin-top:14px}
.mt-16{margin-top:16px}
.mb-10{margin-bottom:10px}
.mb-12{margin-bottom:12px}
.mb-16{margin-bottom:16px}

.gap-6{gap:6px}
.gap-8{gap:8px}
.gap-10{gap:10px}
.gap-12{gap:12px}
.gap-14{gap:14px}
.gap-16{gap:16px}

/* Sidebar: garantir itens em coluna sem quebrar o layout (ícone + texto na mesma linha) */
.sidebar .nav-item{display:flex !important;width:100% !important}
.sidebar .nav-group .nav-item{display:flex !important;width:100% !important}

/* Tabs (Chamado) */
.tabs{display:flex; gap:8px; flex-wrap:wrap}
.tab{display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:999px; border:1px solid rgba(15,48,87,.12); background:#fff; color:#334155; text-decoration:none; font-weight:600; font-size:13px}
.tab:hover{background:rgba(15,48,87,.05)}
.tab.active{background:rgba(11,61,145,.10); border-color:rgba(11,61,145,.22); color:var(--blue)}

/* Botão outline */
.btn-outline{background:#fff; color:var(--blue); border-color:rgba(15,48,87,.22)}
.btn-outline:hover{background:rgba(15,48,87,.06)}

/* Urgente (badge discreto) */
.u-urgent{display:inline-flex; align-items:center; justify-content:center; margin-left:8px;
  width:18px; height:18px; border-radius:999px; font-weight:800; font-size:12px;
  color:#b42318; background:rgba(180,35,24,.08); border:1px solid rgba(180,35,24,.20);
}

/* Tabela: coluna obra mais larga (lista de chamados) */
.col-obra{min-width:360px}

/* Switches: clique confortável */
.switch{display:inline-flex; align-items:center; gap:8px}
.switch input{width:44px; height:24px}

.truncate{display:inline-block; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; vertical-align:bottom}
.col-desc{max-width:200px}


/* --- Menu moderno (submenus colapsáveis) --- */
.nav-group-collapsible{margin-top:12px}
.nav-group-btn{
  width:100%;
  display:flex;align-items:center;justify-content:space-between;
  background:transparent;border:0;cursor:pointer;
  padding:10px 12px 6px;border-radius:12px;
}
.nav-group-btn:hover{background:rgba(15,23,42,.03)}
.nav-group-btn:focus{outline:2px solid rgba(59,130,246,.35);outline-offset:2px}
.nav-chevron{
  width:10px;height:10px;display:inline-block;
  border-right:2px solid rgba(15,23,42,.35);
  border-bottom:2px solid rgba(15,23,42,.35);
  transform:rotate(45deg);
  transition:transform .15s ease;
  margin-right:2px;
}
.nav-group-btn[aria-expanded="true"] .nav-chevron{transform:rotate(225deg)}
.nav-group-items{display:flex;flex-direction:column;gap:8px;margin-top:2px}
.nav-group-items[hidden]{display:none !important;}

.nav-item.is-hidden{display:none}
.nav-group.is-hidden{display:none}

/* Lightbox (visualizador de anexos) */
.po-lightbox{position:fixed;inset:0;display:none;z-index:9999}
.po-lightbox.is-open{display:block}
.po-lightbox__backdrop{position:absolute;inset:0;background:rgba(2,6,23,.55)}
.po-lightbox__panel{position:relative;max-width:min(960px, calc(100vw - 32px));max-height:calc(100vh - 32px);margin:16px auto;background:rgba(255,255,255,.96);border:1px solid rgba(15,23,42,.12);border-radius:18px;box-shadow:0 24px 70px rgba(2,6,23,.25);overflow:hidden}
.po-lightbox__close{position:absolute;top:10px;right:12px;width:36px;height:36px;border-radius:12px;border:1px solid rgba(15,23,42,.12);background:rgba(255,255,255,.9);font-size:22px;line-height:1;cursor:pointer}
.po-lightbox__content{padding:14px;display:flex;align-items:center;justify-content:center}
.po-lightbox__content img,.po-lightbox__content video{max-width:100%;max-height:calc(100vh - 90px);border-radius:14px}

.topbar-right,.topbar-actions,.dropdown{overflow:visible;}


.topbar{z-index:5000 !important}
.dropdown-menu{z-index:6000 !important}
.btn.is-disabled,.btn.disabled{pointer-events:none;opacity:.72}
.chamado-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.has-tooltip{position:relative}
.has-tooltip:hover::after{content:attr(data-tip);position:absolute;left:24px;top:-8px;transform:translateY(-100%);background:#0f172a;color:#fff;padding:10px 12px;border-radius:10px;box-shadow:0 16px 40px rgba(15,23,42,.25);font-size:12px;line-height:1.45;white-space:pre-line;max-width:320px;z-index:40}
.has-tooltip:hover::before{content:'';position:absolute;left:28px;top:-10px;border:6px solid transparent;border-top-color:#0f172a;z-index:41}
.metric-num{font-size:26px;font-weight:700;line-height:1.15;color:#0f172a;margin-top:6px}
.btn .btn-ic{display:inline-flex;align-items:center}
.btn .btn-ic svg{width:16px;height:16px;display:block}


/* SLA + evidências */
.sla-dot{display:inline-block;width:12px;height:12px;border-radius:999px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.65), 0 0 0 1px rgba(15,23,42,.08)}
.sla-ok{background:#22c55e}
.sla-warn{background:#f59e0b}
.sla-bad{background:#ef4444}
.mini-count{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:3px 8px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0;color:#334155;font-size:12px;font-weight:700}
.timeline .timeline-content .muted a{color:inherit}


/* 1.68 Prime-like refinements */
.switch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.switch input{position:absolute;opacity:0;pointer-events:none}
.switch .slider{width:38px;height:22px;border-radius:999px;background:#CBD5E1;border:0;transition:all .2s ease}
.switch .slider:after{width:16px;height:16px;top:3px;left:3px;background:#fff;box-shadow:0 2px 6px rgba(15,23,42,.2)}
.switch input:checked + .slider,.switch[data-checked="1"] .slider{background:#10B981}
.switch input:checked + .slider:after,.switch[data-checked="1"] .slider:after{left:19px}
.switch .switch-label{font-size:14px;color:#64748B}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}
.table thead th{font-size:13px;color:#475569;background:#fff;position:sticky;top:0;z-index:1}
.table tbody td{vertical-align:middle}
.btn-icon{width:40px;height:40px;border-radius:999px;border:1px solid #D7E3F4;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#10B981}
.btn-icon.danger{color:#EF4444;border-color:#F7C6C6}
.btn-icon:hover{background:#F8FAFC}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#f8fbff 0%,#eef4ff 100%)}
.auth-split{width:min(980px,96vw);display:grid;grid-template-columns:1.1fr .9fr;background:#fff;border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}
.auth-side{background:linear-gradient(160deg,#2563EB 0%,#60A5FA 100%);color:#fff;min-height:560px;display:flex;align-items:flex-end}
.auth-side-inner{padding:44px}
.auth-side h1{font-size:34px;line-height:1.05;margin:0 0 12px}
.auth-side p{max-width:34ch;color:rgba(255,255,255,.88)}
.auth-kicker{letter-spacing:.18em;text-transform:uppercase;font-size:11px;font-weight:700;opacity:.9;margin-bottom:14px}
.auth-card-modern{border:0;box-shadow:none;border-radius:0;max-width:none;padding:48px 42px}
@media(max-width:900px){.auth-split{grid-template-columns:1fr}.auth-side{display:none}}
.timeline-journey--blue{position:relative;padding:12px 0 12px 0}
.timeline-journey--blue:before{content:"";position:absolute;left:50%;top:16px;bottom:16px;width:2px;background:#dbeafe;transform:translateX(-50%)}
.timeline-journey--blue .timeline-journey__item{grid-template-columns:1fr 54px 1fr;margin-bottom:22px}
.timeline-journey__card--blue{background:#fff;border:1px solid #bfdbfe;box-shadow:0 16px 40px rgba(37,99,235,.10);border-radius:18px;padding:14px 16px}
.timeline-journey__card--blue .timeline-flow__title a{color:#0f172a;text-decoration:none}
.timeline-journey__dot{width:18px;height:18px;border:4px solid #fff;background:#60a5fa;box-shadow:0 0 0 4px #dbeafe}
.cards-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:980px){.cards-3{grid-template-columns:1fr}}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media(max-width:980px){.grid-2{grid-template-columns:1fr}}
.show-history-grid .card{min-height:100%}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}
.gallery-item{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.gallery-item img{display:block;width:100%;height:100px;object-fit:cover}
.gallery-item .meta{padding:8px 10px;font-size:12px;color:var(--muted)}
.skeleton{position:relative;overflow:hidden;background:#E2E8F0;border-radius:14px}
.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.55) 50%,rgba(255,255,255,0) 100%);animation:po-skel 1.2s infinite}
@keyframes po-skel{100%{transform:translateX(100%)}}


/* 1.69 advanced uploads + freya-like details */
.upload-advanced{border:1px solid var(--line);border-radius:16px;background:#fff;padding:16px}
.upload-advanced--compact{padding:12px}
.upload-advanced__toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.upload-advanced__input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.upload-advanced__hint{font-size:12px;color:var(--muted);margin:6px 0 10px}
.upload-advanced__list{display:flex;flex-direction:column;gap:8px}
.upload-file-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#fafcff}
.upload-file-meta{display:flex;flex-direction:column;gap:2px;font-size:13px;color:#334155}
.upload-file-size{font-size:12px;color:#64748b}
.gallery-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:12px}
.gallery-tile{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
.gallery-tile img,.gallery-tile video{display:block;width:100%;height:120px;object-fit:cover;background:#eef2ff}
.gallery-tile .gallery-meta{padding:10px 12px;font-size:12px;color:#64748b}
.form-shell{display:grid;grid-template-columns:280px 1fr;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.form-shell__aside{border-right:1px solid var(--line);padding:22px}
.form-shell__content{padding:26px 28px}
.form-menu{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.form-menu a{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;color:#475569;text-decoration:none}
.form-menu a.active{background:#10b981;color:#fff}
.btn-success{background:#10b981;color:#fff;border-color:#10b981}
.btn-success:hover{filter:brightness(.96)}
.btn-icon svg{width:18px;height:18px}
.confirm-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:center;justify-content:center;z-index:7000;padding:20px}
.confirm-overlay.is-open{display:flex}
.confirm-card{width:min(430px,96vw);background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 70px rgba(15,23,42,.22);padding:22px}
.confirm-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.confirm-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:18px}
.switch .slider{background:#cbd5e1}
.switch input:checked + .slider,.switch[data-checked='1'] .slider{background:#10b981}
.rating-stars{display:flex;gap:6px;flex-wrap:wrap}
.rating-star{font-size:22px;color:#cbd5e1;cursor:pointer}
.rating-star.active{color:#10b981}
.table .actions-cell .btn-icon{margin-left:6px}

.upload-file-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:#fff;margin-top:10px}
.upload-file-preview{width:64px;height:64px;border-radius:12px;overflow:hidden;background:#f8fafc;border:1px solid rgba(148,163,184,.22);display:flex;align-items:center;justify-content:center;flex:0 0 64px}
.upload-file-thumb{width:100%;height:100%;object-fit:cover;display:block}
.upload-file-fallback{font-size:22px;opacity:.7}
.upload-file-meta{min-width:0;display:flex;flex-direction:column;gap:4px;flex:1}
.upload-file-meta strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upload-file-size{font-size:12px;color:var(--muted)}
.alert.alert-warn{background:#fff7ed;border:1px solid #fdba74;color:#9a3412;border-radius:12px;padding:12px 14px}

.modal-card{max-width:min(980px,calc(100vw - 32px));}
.modal-body{overflow-x:hidden}
.table-wrap-nox{overflow-x:visible}
.upload-advanced__list .upload-file-row{margin-top:10px}


/* Hotfix UX 1.75.x */
.dropdown{position:relative}.dropdown-menu{z-index:1200}
.modal-card{max-width:min(980px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:auto}
.item-switcher{display:flex;flex-direction:column;gap:10px}.item-switcher__chips{display:flex;gap:10px;overflow:auto;padding-bottom:2px}.item-chip{border:1px solid var(--line,#d7e3f5);background:#fff;border-radius:999px;padding:10px 14px;color:var(--text,#1f2a3d);white-space:nowrap;cursor:pointer}.item-chip.active{border-color:#8ab4ff;background:#eef4ff;color:#2463eb;font-weight:700}.item-switcher__select{display:none}.copy-box-wide{min-width:100%;width:100%}.upload-file{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line,#d7e3f5);border-radius:14px;background:#fff;margin-top:10px}.upload-file__thumb{width:58px;height:58px;object-fit:cover;border-radius:12px;border:1px solid var(--line,#d7e3f5)}.upload-file__meta{flex:1;min-width:0}.upload-file__name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-file__size{font-size:12px;color:#6b7280;margin-top:4px}.upload-advanced__list{margin-top:10px}.show-history-grid{align-items:start}.timeline-journey{position:relative;padding:8px 0 8px 0}.timeline-journey:before{content:'';position:absolute;left:50%;top:8px;bottom:8px;width:2px;background:#cfe0ff}.timeline-journey__item{position:relative;display:flex;justify-content:flex-start;min-height:98px}.timeline-journey__item:nth-child(even){justify-content:flex-end}.timeline-journey__dot{position:absolute;left:50%;top:14px;transform:translateX(-50%);width:18px;height:18px;border-radius:50%;background:#fff;border:5px solid #7fb0ff;box-shadow:0 0 0 4px #edf4ff}.timeline-journey__card{width:42%;border:1px solid #bcd4ff;border-radius:22px;padding:16px 18px;background:#fff;position:relative;box-shadow:0 6px 18px rgba(20,40,80,.05)}.timeline-journey__item:nth-child(odd) .timeline-journey__card:after{content:'';position:absolute;right:-8px;top:18px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid #bcd4ff}.timeline-journey__item:nth-child(even) .timeline-journey__card:after{content:'';position:absolute;left:-8px;top:18px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid #bcd4ff}.timeline-journey__meta{color:#6b7280;margin-top:6px}.timeline-journey__desc{margin-top:8px;line-height:1.45}@media (max-width: 900px){.item-switcher__select{display:block}.item-switcher__chips{display:none}.timeline-journey:before{left:10px}.timeline-journey__item,.timeline-journey__item:nth-child(even){justify-content:flex-start;padding-left:28px}.timeline-journey__dot{left:10px}.timeline-journey__card{width:100%}.timeline-journey__item:nth-child(odd) .timeline-journey__card:after,.timeline-journey__item:nth-child(even) .timeline-journey__card:after{left:-8px;right:auto;border-left:0;border-right:8px solid #bcd4ff}}

/* ===== Freya deeper pass (v1.75.x) ===== */
:root{
  --f-panel:#ffffff;
  --f-border:#dbe4f0;
  --f-soft:#f8fbff;
  --f-soft-2:#f3f7fd;
  --f-title:#243046;
}

.card,.table-wrap,.upload-advanced,.modal-card{background:var(--f-panel)}
.card{border-color:var(--f-border); box-shadow:0 14px 34px rgba(15,23,42,.06)}
.page-head h1,.card-title,.section-title,.modal-title{color:var(--f-title)}

.modal-card{max-width:min(1120px, calc(100vw - 40px)); border-radius:24px; box-shadow:0 30px 80px rgba(15,23,42,.20)}
.modal-head{padding:20px 22px 16px; background:linear-gradient(180deg,#fff,#fbfdff); position:sticky; top:0; z-index:2}
.modal-body{padding:18px 22px 18px; max-height:min(72vh, 860px)}
.modal-foot{padding:16px 22px; background:#fff; position:sticky; bottom:0; z-index:2}
.modal-card.modal-sm{max-width:min(680px, calc(100vw - 40px))}
.modal-card .field,.modal-card .field label,.modal-card .label{min-width:0}
.modal-card .input,.modal-card textarea,.modal-card select{min-width:0; width:100%}

.upload-advanced{border-radius:20px; padding:18px; background:linear-gradient(180deg,#fff,#fbfdff)}
.upload-advanced__toolbar .btn{height:40px; border-radius:14px}
.upload-advanced__list{gap:10px}
.upload-file{border-radius:16px; padding:12px 14px; align-items:center}
.upload-file__thumb{width:64px; height:64px; border-radius:14px}
.upload-file__name{font-size:14px}
.upload-file__size{font-size:12px}
.upload-file video.upload-file__thumb{object-fit:cover}

.message-warn-freya,.alert.alert-warn{
  border:1px solid rgba(245,158,11,.38);
  background:#fff8eb;
  color:#a05609;
  border-radius:16px;
  padding:14px 16px;
}
.message-success-freya,.alert.alert-success{border:1px solid rgba(34,197,94,.28);background:#eefbf2;color:#177346;border-radius:16px;padding:14px 16px}
.message-info-freya,.alert.alert-info{border:1px solid rgba(59,130,246,.26);background:#eef5ff;color:#2563eb;border-radius:16px;padding:14px 16px}
.message-error-freya,.alert.alert-error{border:1px solid rgba(239,68,68,.26);background:#fff2f2;color:#b42318;border-radius:16px;padding:14px 16px}

.gallery-stage-stack{display:flex; flex-direction:column; gap:18px}
.gallery-stage-card{border:1px solid var(--f-border); border-radius:22px; padding:16px; background:linear-gradient(180deg,#fff,#fcfdff)}
.gallery-stage-head{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:12px}
.gallery-stage-title{font-size:15px; font-weight:700; color:var(--f-title)}
.gallery-stage-sub{font-size:12px; color:var(--muted); margin-top:4px}
.gallery-rich-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px}
.gallery-rich-item{display:flex; flex-direction:column; border:1px solid var(--f-border); border-radius:18px; overflow:hidden; background:#fff; box-shadow:0 10px 24px rgba(15,23,42,.05)}
.gallery-rich-preview{position:relative; height:180px; background:#eef4fb; display:flex; align-items:center; justify-content:center}
.gallery-rich-preview img,.gallery-rich-preview video{width:100%; height:100%; object-fit:cover; display:block}
.gallery-rich-file{font-size:40px; opacity:.55}
.gallery-rich-chip{position:absolute; right:10px; top:10px; padding:6px 10px; border-radius:999px; background:rgba(15,23,42,.66); color:#fff; font-size:11px; font-weight:700}
.gallery-rich-meta{padding:12px 14px}
.gallery-rich-name{font-weight:700; color:var(--f-title); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.gallery-rich-itemref,.gallery-rich-date{font-size:12px; color:var(--muted); margin-top:6px; line-height:1.4}

.master-shell{display:grid; grid-template-columns:280px 1fr; min-height:calc(100vh - 36px)}
.master-sidebar{background:#fff; border-right:1px solid var(--f-border); padding:20px; display:flex; flex-direction:column; gap:18px}
.master-brand{display:flex; gap:12px; align-items:center; padding:6px 4px 8px}
.brand-mark{width:42px; height:42px; border-radius:14px; display:grid; place-items:center; background:linear-gradient(135deg,var(--blue),#7aa4ff); color:#fff; font-weight:800}
.brand-name{font-weight:800; color:var(--f-title)}
.master-nav{display:flex; flex-direction:column; gap:8px}
.master-nav-item{padding:11px 14px; border:1px solid transparent; border-radius:14px; font-weight:700; color:#42526b}
.master-nav-item:hover{background:#f4f8ff; border-color:#d9e4f7}
.master-nav-item.active{background:#edf4ff; border-color:#cfe0ff; color:#2563eb}
.master-main{min-width:0; overflow:auto}
.master-content{padding:20px 24px 40px}
.master-sidefoot{margin-top:auto; border-top:1px solid var(--f-border); padding-top:14px}
.side-user{margin-top:6px; padding:10px 12px; border:1px solid var(--f-border); border-radius:16px; background:#fafcff}
.side-user-name{font-weight:700}
.side-user-sub,.side-version{font-size:12px; color:var(--muted); margin-top:4px}

.master-topbar{display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 24px; border-bottom:1px solid var(--f-border); background:#fff; position:sticky; top:0; z-index:50}
.master-topbar .page-title{font-size:18px; font-weight:800}

.master-form-shell{display:grid; grid-template-columns:260px 1fr; gap:18px}
.master-form-nav{border:1px solid var(--f-border); border-radius:22px; background:#fff; padding:18px}
.master-form-nav .nav-title{font-weight:800; color:var(--f-title); margin-bottom:10px}
.master-form-nav a{display:flex; padding:10px 12px; border-radius:14px; color:#42526b; font-weight:700}
.master-form-nav a.active,.master-form-nav a:hover{background:#1fb981; color:#fff}
.master-form-card{border:1px solid var(--f-border); border-radius:22px; background:#fff; padding:20px}
.master-form-section{padding:18px 0; border-top:1px dashed #e8eef8}
.master-form-section:first-child{border-top:0; padding-top:0}
.master-form-grid{display:grid; grid-template-columns:280px 1fr; gap:22px; align-items:start}
.master-form-copy h3{margin:0 0 6px; font-size:14px; color:var(--f-title)}
.master-form-copy p{margin:0; color:var(--muted)}
.master-form-actions{display:flex; justify-content:flex-end; gap:10px; margin-top:18px}
@media(max-width:1024px){.master-form-shell{grid-template-columns:1fr}.master-form-grid{grid-template-columns:1fr}.gallery-rich-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}
.smart-stage-grid{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}
.smart-stage-side{border:1px solid var(--f-border);border-radius:20px;background:linear-gradient(180deg,#fff,#fbfdff);padding:16px;position:sticky;top:88px}
.smart-stage-main{min-width:0}
.smart-item-list{display:flex;flex-direction:column;gap:10px}
.smart-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;border:1px solid var(--f-border);background:#fff;text-align:left;color:var(--text);cursor:pointer}
.smart-item:hover{background:#f6faff;border-color:#cfe0ff}
.smart-item.active{background:#eef5ff;border-color:#9ec3ff;color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.10)}
.smart-item__seq{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:30px;border-radius:999px;background:#f2f6fb;border:1px solid var(--f-border);font-weight:800;font-size:12px}
.smart-item.active .smart-item__seq{background:#fff;border-color:#b8d2ff}
.smart-item__text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700}
@media(max-width:980px){.smart-stage-grid{grid-template-columns:1fr}.smart-stage-side{position:static}}


.po-lightbox__stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:60vh}
.po-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:999px;border:1px solid rgba(15,23,42,.12);background:rgba(255,255,255,.92);font-size:24px;line-height:1;cursor:pointer;box-shadow:0 10px 25px rgba(2,6,23,.12)}
.po-lightbox__nav--prev{left:12px}.po-lightbox__nav--next{right:12px}
.po-lightbox__counter{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);padding:6px 10px;border-radius:999px;background:rgba(15,23,42,.72);color:#fff;font-size:12px}
.timeline-journey__card:after{content:none !important}
.timeline-journey__card:before{content:'';position:absolute;top:18px;width:16px;height:16px;background:#fff;border-top:1px solid #bcd4ff;border-right:1px solid #bcd4ff;transform:rotate(45deg)}
.timeline-journey__item:nth-child(odd) .timeline-journey__card:before{right:-9px}
.timeline-journey__item:nth-child(even) .timeline-journey__card:before{left:-9px;transform:rotate(225deg)}
@media (max-width: 900px){.timeline-journey__card:before{left:-9px !important;right:auto !important;transform:rotate(225deg) !important}}
.stage-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap}
.stage-actions__hint{font-size:12px;color:var(--muted)}
@media (max-width: 900px){.smart-stage-grid{grid-template-columns:1fr !important}.grid-2{grid-template-columns:1fr !important}.table-wrap{overflow-x:auto}}
.gallery-rich-itemref{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.35}
.fin-grid-compact{display:grid;grid-template-columns:1fr 110px 90px;gap:12px;align-items:center}
.fin-grid-compact .muted{font-size:12px}

.table.table-fit{min-width:0;table-layout:fixed}
.table.table-fit th,.table.table-fit td{word-break:break-word}
.timeline-journey__card::before,.timeline-journey__card::after{display:none !important}
.stage-actions__switch-inline{margin-left:auto}
@media (max-width: 980px){.stage-actions__switch-inline{margin-left:0}}


/* POSOBRA 1.82 */
.modal{z-index:9000 !important}
.modal-backdrop{z-index:9000 !important}
.modal-card{z-index:9001 !important}
.modal-foot,.modal-actions{display:flex;justify-content:flex-end;gap:12px;align-items:center}
.modal-body--left,.modal-body--left *{text-align:left}
#modalAddItem .modal-body{padding-top:14px}
#modalAddItem .card-mini{border:1px solid #dbe4f0;border-radius:18px;background:linear-gradient(180deg,#ffffff,#fbfdff)}
#modalAddItem .card-mini-body{padding:16px 18px}
#modalAddItem .garantia-hero{display:grid;grid-template-columns:1.1fr 1.4fr .7fr 1.2fr;gap:14px;align-items:start}
#modalAddItem .garantia-hero .muted{font-size:12px}
#modalAddItem .garantia-ref{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid #dbe4f0;font-weight:700;font-size:13px}
#modalAddItem .garantia-ref.is-ok{background:#eefbf2;color:#177346;border-color:#b7e5c4}
#modalAddItem .garantia-ref.is-out{background:#fff1f2;color:#b42318;border-color:#fecdd3}

/* =====================================================================
   MÓDULO ENTREGAS — Painel (ent-*)
   Extraído de app/views/entregas/painel.php — não redefinir inline
   ===================================================================== */
.ent-alert-bar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:10px;font-size:12px;font-weight:600;margin-bottom:12px}
.ent-alert-bar.warn{background:var(--warn-soft);border:1px solid rgba(245,158,11,.35);color:#92400e}
.ent-alert-count{margin-left:auto;background:rgba(0,0,0,.08);border-radius:999px;padding:1px 7px;font-size:11px}

.ent-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:14px}
.ent-kpi{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;transition:all .15s}
.ent-kpi:hover{border-color:#bfdbfe;transform:translateY(-1px)}
.ent-kpi.ent-kpi-active{border-color:var(--blue);background:var(--blue-soft)}
.ent-kpi-val{font-size:24px;font-weight:800;line-height:1;margin-bottom:2px}
.ent-kpi-lbl{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;font-weight:700}
.ent-kpi-bar{height:2px;background:#f1f5f9;border-radius:2px;margin-top:8px;overflow:hidden}
.ent-kpi-bar-fill{height:100%;border-radius:2px;transition:width .4s}

.ent-filters{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.ent-filters select,.ent-filters input{border:1px solid var(--line);border-radius:7px;padding:6px 10px;font-size:12px;color:#374151;background:#fff;height:32px;font-family:var(--font)}
.ent-filters input[type=text]{width:180px}
.ent-view-toggle{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;margin-left:auto}
.ent-view-toggle button{background:#fff;border:none;padding:0 12px;font-size:11px;color:#64748b;cursor:pointer;height:32px;font-family:var(--font)}
.ent-view-toggle button.on{background:#1e3a5f;color:#fff}
.ent-sort-btn{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:7px;padding:0 10px;font-size:11px;color:#374151;background:#fff;cursor:pointer;height:32px;font-family:var(--font)}

.ent-legend{display:flex;align-items:center;gap:14px;padding:7px 16px;background:#fafafa;border-bottom:1px solid #f1f5f9;flex-wrap:wrap}
.ent-legend-item{display:flex;align-items:center;gap:4px;font-size:10px;color:#64748b}
.ent-legend-dot{width:12px;height:8px;border-radius:2px;flex-shrink:0}
.ent-legend-sep{width:1px;height:12px;background:var(--line);margin:0 2px}

.ent-col-hdr{display:grid;grid-template-columns:220px 1fr 100px;padding:5px 16px;background:#f8fafc;border-bottom:1px solid #f1f5f9}
.ent-ch{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#94a3b8}
.ent-ch-steps{display:flex;align-items:center;padding:0 8px;gap:4px}
.ent-ch-step{text-align:center;font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#94a3b8;min-width:28px}
.ent-ch-corr{text-align:center;font-size:8px;color:#cbd5e1;font-weight:600;min-width:24px}

.ent-unit-row{display:grid;grid-template-columns:220px 1fr 100px;border-bottom:1px solid #f8fafc;cursor:pointer;transition:background .1s}
.ent-unit-row:hover{background:#fafafa}
.ent-unit-row.row-open{background:var(--blue-soft);border-bottom:none}
.ent-unit-row:last-child{border-bottom:none}

.unit-info{padding:9px 12px 9px 16px;display:flex;flex-direction:column;justify-content:center;gap:1px;min-width:0}
.u-obra{font-size:9px;color:#94a3b8;font-weight:700;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-name{font-size:12px;font-weight:700;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.u-cli{font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.ent-mini-steps{display:flex;align-items:center;padding:0 8px;gap:4px}
.ent-mini-step{display:flex;align-items:center;justify-content:center;height:22px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.2px;min-width:28px;padding:0 5px;flex-shrink:0}
.ent-mini-step.done{background:var(--good-soft);color:var(--good);border:1px solid #bbf7d0}
.ent-mini-step.active{background:var(--blue-soft);color:var(--blue2);border:1px solid #93c5fd;box-shadow:0 0 0 2px var(--blue-soft)}
.ent-mini-step.pending{background:#f8fafc;color:#cbd5e1;border:1px solid var(--line)}
.ent-mini-step.blocked{background:var(--bad-soft);color:#f87171;border:1px solid #fecaca}

.ent-corr-step{display:flex;align-items:center;justify-content:center;height:14px;border-radius:3px;font-size:7.5px;font-weight:700;padding:0 4px;flex-shrink:0}
.ent-corr-step.done{background:#d1fae5;color:var(--good);border:1px solid #a7f3d0}
.ent-corr-step.active{background:var(--warn-soft);color:var(--warn);border:1px solid #fde68a}
.ent-corr-step.pending{background:#f8fafc;color:var(--line);border:1px solid #f1f5f9}
.ent-corr-step.blocked{background:var(--bad-soft);color:#fca5a5;border:1px solid #fecaca}

.ent-step-cdiv{width:6px;flex-shrink:0}

.unit-actions{display:flex;align-items:center;justify-content:flex-end;padding-right:14px}

.ent-detail-panel{display:none;border-top:1px solid #dbeafe;background:var(--blue-soft);padding:14px 16px}
.ent-detail-panel.open{display:block}
.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
@media(max-width:900px){.detail-grid{grid-template-columns:repeat(2,1fr)}}
.detail-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.detail-card.dc-active{border-color:#93c5fd;background:var(--blue-soft)}
.detail-card.dc-blocked{border-color:#fecaca;background:var(--bad-soft)}
.detail-card.dc-warn{border-color:#fde68a;background:var(--warn-soft)}
.dc-top .dc-title{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:#94a3b8;font-weight:700;margin-bottom:5px}
.detail-card.dc-active .dc-title{color:var(--blue2)}
.detail-card.dc-blocked .dc-title{color:var(--bad)}
.detail-card.dc-warn .dc-title{color:var(--warn)}
.dc-status{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#1e293b;margin-bottom:6px}
.dc-date{font-size:10px;color:#94a3b8;margin-bottom:6px}
.dc-actions{display:flex;gap:4px;flex-wrap:wrap}
.ent-dot-green{width:6px;height:6px;border-radius:50%;background:var(--good);flex-shrink:0}
.ent-dot-blue{width:6px;height:6px;border-radius:50%;background:var(--blue);flex-shrink:0}
.ent-dot-gray{width:6px;height:6px;border-radius:50%;background:#cbd5e1;flex-shrink:0}
.ent-dot-red{width:6px;height:6px;border-radius:50%;background:var(--bad);flex-shrink:0}
.ent-dot-amber{width:6px;height:6px;border-radius:50%;background:var(--warn);flex-shrink:0}

.next-action{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #dbeafe;border-radius:8px;padding:8px 12px}
.na-icon{width:28px;height:28px;background:var(--blue-soft);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.na-label{font-size:9px;color:#64748b;text-transform:uppercase;letter-spacing:.3px;font-weight:700}
.na-desc{font-size:11px;font-weight:700;color:#1e293b;margin-top:1px}

.done-banner{display:flex;align-items:center;gap:8px;background:var(--good-soft);border:1px solid #bbf7d0;border-radius:7px;padding:8px 12px;font-size:11px;font-weight:600;color:var(--good);margin-top:10px}

.timeline-mini{margin-top:10px}
.tl-entry{display:flex;align-items:flex-start;gap:8px;margin-bottom:5px;font-size:10px;color:#374151}
.tl-dot{width:5px;height:5px;border-radius:50%;background:var(--blue);flex-shrink:0;margin-top:5px}
.tl-time{color:#94a3b8;white-space:nowrap;margin-left:auto}

.ent-compact-row{display:grid;grid-template-columns:minmax(140px,200px) 1fr 60px 90px;border-bottom:1px solid #f8fafc;padding:7px 16px;align-items:center;cursor:pointer;transition:background .1s}
.ent-compact-row:hover{background:#fafafa}

.empty-state{text-align:center;padding:40px 16px;color:#94a3b8;font-size:13px}

/* =====================================================================
   MÓDULO OBRAS — show (os-*)
   Extraído de app/views/obras/show.php — não redefinir inline
   ===================================================================== */
.os-back{font-size:12px;color:#64748b;display:inline-flex;align-items:center;gap:4px;margin-bottom:12px;text-decoration:none;transition:color .15s}
.os-back:hover{color:var(--blue)}
.os-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.os-hdr h1{font-size:20px;font-weight:800;color:#0f172a;letter-spacing:-.02em;margin:0}
.os-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.os-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:600;background:#f1f5f9;color:#475569;border:1px solid var(--line)}
.os-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.os-btn-ia{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;border:none;background:linear-gradient(135deg,#1e3a5f 0%,var(--blue2) 100%);color:#fff;font-family:var(--font);transition:opacity .15s}
.os-btn-ia:hover{opacity:.88}
.os-ia-cr{font-size:10px;background:rgba(255,255,255,.2);padding:1px 7px;border-radius:99px;font-weight:700}
.os-data{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:14px 0}
.os-data-head{padding:11px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
.os-data-title{font-size:13px;font-weight:700;color:#1e293b}
.os-data-edit{font-size:11px;color:var(--blue);background:none;border:none;cursor:pointer;font-family:var(--font);font-weight:600;display:inline-flex;align-items:center;gap:4px;text-decoration:none}
.os-data-edit:hover{text-decoration:underline}
.os-data-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.os-data-cell{padding:11px 16px;border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9}
.os-data-cell:nth-child(3n){border-right:none}
.os-data-cell.wide{grid-column:span 3;border-right:none}
.os-data-cell.span2{grid-column:span 2;border-right:none}
.os-data-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;margin-bottom:4px;display:flex;align-items:center;gap:4px}
.os-data-lbl svg{width:11px;height:11px;flex-shrink:0}
.os-data-val{font-size:13px;font-weight:600;color:#1e293b}
.os-data-val a{color:var(--blue);text-decoration:none}
.os-data-val a:hover{text-decoration:underline}
.os-data-val .empty{color:#cbd5e1;font-weight:400;font-style:italic}
.os-data-obs{font-size:12px;color:#475569;line-height:1.5}
.os-uf{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.os-uf-label{font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.os-uf-pills{display:flex;gap:6px;flex-wrap:wrap}
.os-uf-pill{padding:5px 12px;border-radius:8px;font-size:11px;font-weight:600;border:1px solid var(--line);background:#fff;color:#64748b;cursor:pointer;font-family:var(--font);transition:.12s}
.os-uf-pill:hover{border-color:#cbd5e1;color:#334155}
.os-uf-pill.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.os-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:14px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.os-kpi{padding:14px 16px;background:#fff}
.os-kpi+.os-kpi{border-left:1px solid var(--line)}
.os-kpi:first-child{border-left:3px solid var(--blue)}
.os-kpi.os-kpi-a{border-left-color:var(--warn)}
.os-kpi.os-kpi-c{border-left-color:var(--good)}
.os-kpi.os-kpi-r{border-left-color:#8b5cf6}
.os-kpi-val{font-size:24px;font-weight:800;line-height:1;color:#0f172a}
.os-kpi:first-child .os-kpi-val{color:var(--blue)}
.os-kpi.os-kpi-a .os-kpi-val{color:var(--warn)}
.os-kpi.os-kpi-c .os-kpi-val{color:var(--good)}
.os-kpi.os-kpi-r .os-kpi-val{color:#8b5cf6}
.os-kpi-lbl{font-size:10px;font-weight:700;color:#64748b;margin-top:5px;text-transform:uppercase;letter-spacing:.04em}
.os-layout{display:grid;grid-template-columns:1fr 280px;gap:16px;margin-top:16px;align-items:start}
.os-tl{position:relative;padding-left:28px}
.os-tl::before{content:'';position:absolute;left:10px;top:8px;bottom:8px;width:2px;background:var(--line);border-radius:1px}
.os-tl-item{position:relative;margin-bottom:10px}
.os-tl-dot{position:absolute;left:-28px;top:12px;width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 0 0 2px var(--line);background:#fff;z-index:1}
.os-tl-dot.done{background:var(--good);box-shadow:0 0 0 2px #bbf7d0}
.os-tl-dot.open{background:var(--warn);box-shadow:0 0 0 2px #fde68a}
.os-tl-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 14px;cursor:pointer;transition:border-color .1s,box-shadow .1s}
.os-tl-card:hover{border-color:#cbd5e1;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.os-tl-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.os-tl-cod{font-size:12px;font-weight:700;color:#1e293b;font-family:var(--mono)}
.os-tl-badge{display:inline-flex;padding:2px 8px;border-radius:5px;font-size:10px;font-weight:700}
.os-tl-badge-d{background:var(--good-soft);color:var(--good)}
.os-tl-badge-a{background:var(--blue-soft);color:var(--blue2)}
.os-tl-badge-r{background:var(--bad-soft);color:var(--bad)}
.os-tl-unit-tag{background:#f1f5f9;color:#64748b;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:600}
.os-tl-meta{font-size:11px;color:#94a3b8;margin-top:4px}
.os-tl-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.os-tl-chip{display:inline-flex;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:500;background:#f8fafc;color:#475569;border:1px solid #f1f5f9}
.os-tl-chip-w{background:var(--warn-soft);color:#92400e;border-color:#fef08a}
.os-tl-footer{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid #f1f5f9}
.os-tl-cost{font-size:11px;font-weight:700;color:#64748b}
.os-tl-link{font-size:11px;font-weight:600;color:var(--blue)}
.os-empty{padding:32px;text-align:center;color:#94a3b8;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:10px}
.os-sb-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:12px}
.os-sb-head{padding:10px 14px;border-bottom:1px solid #f1f5f9;font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.06em}
.os-sb-row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid #f8fafc;cursor:pointer;transition:background .1s}
.os-sb-row:last-child{border-bottom:none}
.os-sb-row:hover{background:#fafbfe}
.os-sb-av{width:30px;height:30px;border-radius:8px;background:#e0e7ff;color:#3730a3;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.os-sb-name{font-size:12px;font-weight:600;color:#1e293b}
.os-sb-sub{font-size:10px;color:#94a3b8;margin-top:1px}
.os-sb-n{margin-left:auto;font-size:10px;font-weight:700;background:#f1f5f9;padding:2px 7px;border-radius:4px;color:#475569;white-space:nowrap}
.os-cat-row{padding:8px 14px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #f8fafc}
.os-cat-row:last-child{border-bottom:none}
.os-cat-name{font-size:11px;color:#475569;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.os-cat-bar-wrap{width:60px;height:4px;background:#f1f5f9;border-radius:2px;flex-shrink:0}
.os-cat-bar-fill{height:100%;border-radius:2px;background:var(--blue)}
.os-cat-n{font-size:10px;font-weight:700;color:#64748b;width:20px;text-align:right;flex-shrink:0}
.os-gar-row{padding:9px 14px;border-bottom:1px solid #f8fafc;display:flex;align-items:center;gap:8px}
.os-gar-row:last-child{border-bottom:none}
.os-gar-name{font-size:11px;font-weight:600;color:#1e293b;flex:1;min-width:0}
.os-gar-prazo{font-size:10px;color:#94a3b8;margin-top:1px}
.os-gar-pill{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap}
.os-gar-ok{background:var(--good-soft);color:var(--good)}
.os-gar-exp{background:var(--bad-soft);color:var(--bad)}
.os-uni{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:14px 0}
.os-uni-hd{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.os-uni-hd-left{display:flex;align-items:center;gap:8px}
.os-uni-hd-title{font-size:13px;font-weight:700;color:#1e293b}
.os-uni-hd-count{font-size:11px;font-weight:700;background:#f1f5f9;color:#64748b;padding:2px 9px;border-radius:10px}
.os-uni-hd-right{display:flex;align-items:center;gap:8px}
.os-uni-search{height:30px;padding:0 10px 0 30px;border-radius:8px;border:1px solid var(--line);font-size:12px;font-family:var(--font);min-width:170px;outline:none;background:#f8fafc url("data:image/svg+xml,%3Csvg width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat 9px center}
.os-uni-search:focus{border-color:#93c5fd;background-color:#fff}
.os-uni-add-btn{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;border-radius:8px;background:var(--blue);color:#fff;border:none;font-size:11px;font-weight:700;cursor:pointer;font-family:var(--font);white-space:nowrap;transition:opacity .12s}
.os-uni-add-btn:hover{opacity:.88}
.os-uni-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 16px}
.os-uni-grid.scrollable{max-height:520px;overflow-y:auto;padding-right:12px}
.os-ucard{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;transition:box-shadow .15s,border-color .15s;position:relative}
.os-ucard:hover{box-shadow:0 4px 16px rgba(15,23,42,.08);border-color:#cbd5e1}
.os-ucard.clickable{cursor:pointer}
.os-ucard.clickable:hover .os-ucard-ident{color:var(--blue)}
.os-ucard.active{border-color:var(--blue);box-shadow:0 0 0 2px #bfdbfe}
.os-ucard-strip{height:4px;width:100%}
.os-ucard-strip.s-entregue{background:var(--good)}
.os-ucard-strip.s-aberto{background:var(--warn)}
.os-ucard-strip.s-ok{background:var(--blue)}
.os-ucard-strip.s-idle{background:var(--line)}
.os-ucard-body{padding:13px 14px 10px}
.os-ucard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}
.os-ucard-ident{font-size:13px;font-weight:700;color:#0f172a;line-height:1.3;transition:color .12s;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.os-ucard-status{flex-shrink:0}
.os-ucard-cli{font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.os-ucard-cli.empty{color:#cbd5e1;font-style:italic}
.os-ucard-meta{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}
.os-ucard-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:5px;font-size:10px;font-weight:700;white-space:nowrap}
.os-ucard-badge-open{background:var(--warn-soft);color:#92400e;border:1px solid #fde68a}
.os-ucard-badge-ok{background:var(--good-soft);color:var(--good);border:1px solid #bbf7d0}
.os-ucard-badge-muted{color:#94a3b8;font-size:11px;font-weight:400}
.os-ucard-ent{margin:10px 0 4px;padding:0}
.os-ucard-ent-bar-wrap{height:4px;background:#f1f5f9;border-radius:2px;overflow:hidden}
.os-ucard-ent-bar{height:100%;border-radius:2px;transition:width .3s}
.os-ucard-ent-label{display:flex;justify-content:space-between;align-items:center;margin-top:4px}
.os-ucard-ent-txt{font-size:10px;color:#94a3b8;font-weight:600}
.os-ucard-ent-pill{font-size:9px;font-weight:700;padding:1px 6px;border-radius:4px;white-space:nowrap}
.os-ucard-foot{padding:8px 14px;border-top:1px solid #f8fafc;display:flex;justify-content:flex-end;gap:5px}
.os-uni-empty{padding:40px 16px;text-align:center;color:#94a3b8;font-size:13px}
.os-uni-hidden{display:none!important}
.os-uni-ent-foot{padding:9px 16px;border-top:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between;background:#f8fafc}
@media(max-width:900px){.os-layout{grid-template-columns:1fr}}
@media(max-width:1100px){.os-uni-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){
  .os-hdr{flex-direction:column}
  .os-kpis{grid-template-columns:1fr 1fr}
  .os-kpi+.os-kpi{border-left:1px solid var(--line)}
  .os-kpi:first-child,.os-kpi.os-kpi-a,.os-kpi.os-kpi-c,.os-kpi.os-kpi-r{border-left-width:3px}
  .os-data-grid{grid-template-columns:1fr 1fr}
  .os-data-cell:nth-child(3n){border-right:1px solid #f1f5f9}
  .os-data-cell:nth-child(2n){border-right:none}
  .os-data-cell.wide,.os-data-cell.span2{grid-column:span 2;border-right:none}
  .os-uni-grid{grid-template-columns:1fr}
  .os-uni-search{min-width:120px}
}

/* =====================================================================
   UTILITÁRIOS DE URGÊNCIA (urgencia-dot)
   Substitui inline style="background:#cor" em chamados
   ===================================================================== */
.urgencia-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;vertical-align:middle}
.urgencia-dot--high{background:var(--bad)}
.urgencia-dot--medium{background:var(--warn)}
.urgencia-dot--low{background:var(--good)}
#modalAddItem .garantia-ref.is-none{background:#f8fafc;color:#475569;border-color:#cbd5e1}
#modalAddItem .garantia-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
#modalAddItem .garantia-notes{margin-top:12px;color:#64748b;font-size:13px;line-height:1.5}
#modalAddItem .field-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
#modalAddItem .table-modal .item-desc-cell{text-align:left}
#modalAddItem .table-modal td:first-child{font-variant-numeric:tabular-nums}
.switches-vertical{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.switch{display:flex;align-items:center;gap:10px}
.switch .switch-label{margin:0;display:inline-block}
.selectbutton{display:flex;gap:8px;flex-wrap:wrap}
.selectbutton input{position:absolute;opacity:0;pointer-events:none}
.selectbutton .seg{cursor:pointer}
.selectbutton input:checked + .seg{background:#2563eb;color:#fff;border-color:#2563eb;box-shadow:0 8px 20px rgba(37,99,235,.14)}
.table .badge-ref{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid}
.badge-ref--ok{background:#eefbf2;color:#177346;border-color:#b7e5c4}
.badge-ref--out{background:#fff1f2;color:#b42318;border-color:#fecdd3}
.badge-ref--none{background:#f8fafc;color:#475569;border-color:#cbd5e1}
.badge-ref--manual{background:#eef4ff;color:#1d4ed8;border-color:#bfdbfe}
.obra-garantia-box{border:1px solid #dbe4f0;border-radius:18px;background:#fbfdff;padding:16px 18px;margin-top:10px}
.obra-garantia-box .row-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.obra-garantia-box .base-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#eef4ff;color:#1d4ed8;border:1px solid #bfdbfe;font-weight:700}
@media (max-width: 900px){#modalAddItem .garantia-hero,#modalAddItem .garantia-meta{grid-template-columns:1fr}.field-inline{grid-template-columns:1fr}}

/* ── Paginação ──────────────────────────────────────────────── */
.pagination{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.pagination .btn{min-height:36px;padding:0 14px;border-radius:10px;font-size:13px}
.pagination-info{margin-left:auto;font-size:12px;color:var(--muted)}

/* ═══════════════════════════════════════════════════════════
   DESIGN SYSTEM v2 — REGRA DE CONTRIBUIÇÃO
   ───────────────────────────────────────────────────────────
   ✅ NOVAS classes sempre vão AQUI EMBAIXO (neste bloco).
   ✅ Para sobrescrever uma classe antiga, adicione aqui com !important.
   ❌ NÃO adicione regras no meio do arquivo — fica impossível rastrear.
   ❌ Quando substituir uma regra antiga, marque-a com comentário:
      .classe-antiga { ... } /* superseded v2 * /
   ═══════════════════════════════════════════════════════════ */

/* Sidebar — Opção B overrides (v2) */
.sidebar{background:#f1f5f9 !important;padding:16px 12px !important;border-right:1px solid #e2e8f0 !important}
.sb-logo{box-shadow:none !important}
/* Brand mark (compat) */
.brand-mark{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#60a5fa);color:#fff;font-weight:800;font-size:15px;flex:0 0 36px;box-shadow:none}
/* Sidebar CTA (compat) */
.sidebar-cta{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;background:#2563eb;color:#fff;border-radius:8px;font-weight:600;font-size:13px;text-decoration:none;margin:2px 0 8px;transition:background .15s;white-space:nowrap;overflow:hidden}
.sidebar-cta:hover{background:#1d4ed8}
.sidebar-cta svg{width:15px;height:15px;flex:0 0 15px}
body.sidebar-mini .sidebar-cta{padding:0;justify-content:center;gap:0}
body.sidebar-mini .sidebar-cta .sidebar-cta-label{display:none}
/* Nav items (Opção B: white elevated active) */
.nav-item{padding:8px 10px !important;border-radius:8px !important;font-size:13px !important;font-weight:500 !important;background:transparent !important}
.nav-item:hover{background:#fff !important;border-color:#e2e8f0 !important;color:#1e293b !important;box-shadow:0 1px 2px rgba(15,23,42,.04) !important}
.nav-item.active{background:#fff !important;border-color:#dbeafe !important;color:#1d4ed8 !important;font-weight:600 !important;box-shadow:0 1px 3px rgba(15,23,42,.06) !important}
.nav-item.active .nav-ic{color:#2563eb !important}
.nav-item.active .nav-text{color:#1d4ed8 !important;font-weight:600 !important}
.nav-group-title{font-size:10px !important;color:#94a3b8 !important;font-weight:700 !important;letter-spacing:.08em !important;text-transform:uppercase !important;padding:6px 8px 4px !important}
.nav-group-btn{padding:6px 8px 4px !important;border-radius:6px !important}
.nav-chevron{border-right-color:rgba(15,23,42,.25) !important;border-bottom-color:rgba(15,23,42,.25) !important}
.sb-avatar{border-radius:8px !important;background:#eff6ff !important;border-color:#bfdbfe !important;color:#2563eb !important}
.user-chip{border-radius:10px !important;border-color:#e2e8f0 !important;background:#fff !important}
.avatar{border-radius:8px !important;background:#eff6ff !important;border-color:#bfdbfe !important;color:#2563eb !important}

/* Topbar */
.topbar{height:56px !important;padding:0 24px !important;box-shadow:none !important;border-bottom:1px solid #e2e8f0 !important;display:flex !important;align-items:center !important}
.topbar-left{display:flex;flex-direction:column;justify-content:center;gap:1px}
.topbar-greeting{font-size:11px;color:#94a3b8;font-weight:500;line-height:1.1}
.page-title{font-size:18px !important;font-weight:700 !important;color:#0f172a !important;line-height:1.1 !important;margin:0 !important}

/* App content */
.app-content{padding:20px 24px 40px !important}

/* Cards */
.card{border-radius:12px !important;border-color:#e2e8f0 !important;box-shadow:none !important}
.card-head{padding:16px 18px 0 !important}
.card-body{padding:18px !important}

/* Buttons */
.btn{height:36px !important;border-radius:8px !important;font-size:13px !important;font-weight:600 !important}
.btn-sm{height:30px !important;border-radius:6px !important;padding:0 10px !important;font-size:12px !important}
.btn-primary{background:#2563eb !important;border-color:#1d4ed8 !important;box-shadow:none !important}
.btn-primary:hover{background:#1d4ed8 !important}
.btn-outline{border-color:#e2e8f0 !important;color:#374151 !important;background:#fff !important}
.btn-outline:hover{background:#f8fafc !important;border-color:#d1d5db !important}
.btn-ghost{border-color:transparent !important;background:transparent !important;color:#374151 !important}
.btn-ghost:hover{background:#f1f5f9 !important;border-color:#e2e8f0 !important}
.flow-actions .btn{height:36px !important}

/* Form inputs */
.field input,.field select,.field textarea,.input{border-radius:8px !important;border-color:#e2e8f0 !important;font-size:13px !important}
.field input:focus,.field select:focus,.field textarea:focus,.input:focus{border-color:#2563eb !important;box-shadow:0 0 0 3px rgba(37,99,235,.10) !important;color:#0f172a !important}
.label{font-size:12px;color:#64748b;margin-bottom:5px}

/* Badges */
.badge{height:auto !important;padding:3px 9px !important;font-size:11px !important;font-weight:600 !important;border-radius:99px !important}
.badge-blue{background:#eff6ff !important;color:#1d4ed8 !important;border-color:#bfdbfe !important}
.badge-green{background:#f0fdf4 !important;color:#15803d !important;border-color:#bbf7d0 !important}
.badge-amber{background:#fffbeb !important;color:#b45309 !important;border-color:#fde68a !important}
.badge-red{background:#fef2f2 !important;color:#b91c1c !important;border-color:#fecaca !important}

/* Pills */
.pill{height:auto !important;padding:3px 9px !important;font-size:11px !important;border-radius:99px !important}
.pill-ok{background:#f0fdf4 !important;color:#15803d !important;border-color:#bbf7d0 !important}
.pill-warn{background:#fffbeb !important;color:#b45309 !important;border-color:#fde68a !important}
.pill-bad{background:#fef2f2 !important;color:#b91c1c !important;border-color:#fecaca !important}

/* Table */
.table-wrap{border-radius:12px !important;border-color:#e2e8f0 !important}
.table thead th{font-size:11px !important;font-weight:700 !important;color:#94a3b8 !important;letter-spacing:.06em;text-transform:uppercase}
.table tbody td{font-size:13px !important}

/* Dropdown */
.dropdown-menu{border-radius:10px !important;border-color:#e2e8f0 !important;box-shadow:0 4px 6px -1px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.04) !important}
.dropdown-item{border-radius:6px !important;font-size:13px !important}

/* Stepper */
.flow-stepper .step{border-radius:10px !important;border-color:#e2e8f0 !important;background:#fff !important;padding:8px 12px !important;min-width:120px}
.flow-stepper .step .dot{background:#f1f5f9 !important;border-color:#e2e8f0 !important;color:#94a3b8 !important;font-weight:700 !important;font-size:12px !important;width:24px !important;height:24px !important;border-radius:999px !important}
.flow-stepper .step.active{border-color:#bfdbfe !important;box-shadow:0 0 0 3px rgba(37,99,235,.08) !important}
.flow-stepper .step.active .dot{background:#2563eb !important;border-color:#2563eb !important;color:#fff !important}
.flow-stepper .step.done .dot{background:#16a34a !important;border-color:#16a34a !important;color:#fff !important}
.flow-stepper .step.skip .dot{background:#f97316 !important;border-color:#f97316 !important;color:#fff !important}
.flow-stepper .step .label{font-size:12px !important;color:#374151 !important;font-weight:500 !important}
.flow-stepper .step.active .label{color:#1d4ed8 !important;font-weight:600 !important}
.flow-stepper .step.done .label{color:#15803d !important}

/* KPI cards */
.kpi{border-radius:12px !important;box-shadow:none !important;border-color:#e2e8f0 !important}

/* Auth page */
.auth-shell{background:#f8fafc !important}
.auth-card{border-radius:16px !important;box-shadow:none !important;border-color:#e2e8f0 !important}

/* Page head */
.page-head h1{font-size:22px !important;letter-spacing:-.01em}

/* Topbar empresa badge */
.topbar-empresa{font-size:12px;color:#64748b;padding:4px 10px;border-radius:99px;background:#f1f5f9;border:1px solid #e2e8f0}
.topbar-user-name{font-size:13px;color:#64748b}

/* Alerts */
.alert{border-radius:10px !important}

/* Modal */
.modal-card{border-radius:14px !important}
.modal-head{padding:18px 20px 14px !important}
.modal-body{padding:16px 20px !important}
.modal-foot{padding:14px 20px !important}

/* Segmented / select button */
.segmented .seg,.priority-seg--lg .seg{border-radius:8px !important}
.selectbutton input:checked + .seg{background:#2563eb !important;border-color:#1d4ed8 !important;box-shadow:0 0 0 3px rgba(37,99,235,.10) !important}

/* Confirm overlay */
.confirm-card{border-radius:14px !important}

/* Topbar actions button */
.topbar-actions .btn{height:34px !important}

/* ═══════════════════════════════════════════════════════════
   DESIGN SYSTEM v2.1 — componentes novos (redesign completo)
   ═══════════════════════════════════════════════════════════ */

/* CSS custom props adicionais */
:root{
  --color-bg:#f8fafc;
  --color-surface:#ffffff;
  --color-border:#e2e8f0;
  --color-border-light:#f1f5f9;
  --color-text:#0f172a;
  --color-text-secondary:#475569;
  --color-text-muted:#94a3b8;
  --color-primary:#2563eb;
  --color-primary-bg:#eff6ff;
  --radius-card:12px;
  --radius-btn:8px;
}
.app-content{background:var(--color-bg) !important}

/* ── KPI v2 ──────────────────────────────────────────────── */
.kpi{background:#fff !important;border:1px solid #e2e8f0 !important;border-radius:12px !important;padding:14px 16px !important;position:relative;overflow:visible;min-height:auto !important;box-shadow:none !important}
.kpi::before{display:none !important}
.kpi-label{font-size:11px !important;font-weight:600 !important;color:#94a3b8 !important;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;display:block}
.kpi-val{font-size:26px !important;font-weight:700 !important;line-height:1;margin-bottom:4px;display:block}
.kpi-bar{height:3px;border-radius:99px;width:100%;display:block;margin-top:10px;background:#e2e8f0}
.kpi .num{font-size:26px;font-weight:700;line-height:1}
.kpi .label{font-size:11px;color:#94a3b8;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.kpi .icon{display:none}
.kpi-blue .kpi-val,.kpi-blue .num{color:#2563eb !important}
.kpi-blue .kpi-bar{background:#2563eb !important}
.kpi-green .kpi-val,.kpi-green .num{color:#16a34a !important}
.kpi-green .kpi-bar{background:#16a34a !important}
.kpi-amber .kpi-val,.kpi-amber .num{color:#d97706 !important}
.kpi-amber .kpi-bar{background:#d97706 !important}
.kpi-red .kpi-val,.kpi-red .num{color:#dc2626 !important}
.kpi-red .kpi-bar{background:#dc2626 !important}
.kpi-slate .kpi-val,.kpi-slate .num{color:#475569 !important}
.kpi-slate .kpi-bar{background:#94a3b8 !important}
.kpi-purple .kpi-val,.kpi-purple .num{color:#7c3aed !important}
.kpi-purple .kpi-bar{background:#7c3aed !important}
/* Compat KPI antiga (b1-b6) */
.kpi.b1 .num,.kpi.b1 .kpi-val{color:#1e3a8a !important}
.kpi.b2 .num,.kpi.b2 .kpi-val{color:#d97706 !important}
.kpi.b3 .num,.kpi.b3 .kpi-val{color:#0e7490 !important}
.kpi.b4 .num,.kpi.b4 .kpi-val{color:#16a34a !important}
.kpi.b5 .num,.kpi.b5 .kpi-val{color:#475569 !important}
.kpi.b6 .num,.kpi.b6 .kpi-val{color:#dc2626 !important}

/* ── Card head v2 ────────────────────────────────────────── */
.card-head{padding:12px 16px !important;border-bottom:1px solid #f1f5f9 !important;display:flex !important;align-items:center !important;justify-content:space-between !important}
.card-head .card-title{font-size:11px !important;font-weight:700 !important;text-transform:uppercase !important;letter-spacing:.08em !important;color:#64748b !important}
.section-title{font-size:11px !important;font-weight:700 !important;text-transform:uppercase !important;letter-spacing:.08em !important;color:#64748b !important;margin-bottom:8px}

/* ── Dash tabs v2 (underline) ────────────────────────────── */
.dash-tabs{display:flex !important;gap:0 !important;border-bottom:1px solid #e2e8f0 !important;margin-bottom:16px;background:transparent !important;border-radius:0 !important;flex-wrap:nowrap !important;overflow-x:auto}
.dash-tab{padding:10px 16px !important;font-size:13px !important;font-weight:500 !important;color:#64748b !important;cursor:pointer;border:none !important;border-bottom:2px solid transparent !important;margin-bottom:-1px;background:none !important;border-radius:0 !important;font-family:inherit;height:auto !important;white-space:nowrap}
.dash-tab:hover{color:#0f172a !important;background:transparent !important}
.dash-tab.active,.dash-tab.is-active{color:#2563eb !important;border-bottom-color:#2563eb !important;font-weight:600 !important;background:transparent !important}
.dash-panel{display:none;flex-direction:column;gap:14px}
.dash-panel.active{display:flex !important}
.dash-pane{display:none !important;flex-direction:column;gap:14px}
.dash-pane.is-active{display:flex !important}

/* ── Metric big cards (dashboard abas) ───────────────────── */
.metrics-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:980px){.metrics-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.metrics-4{grid-template-columns:1fr}}
.metric-big{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px}
.metric-num{font-size:28px;font-weight:700;color:#0f172a;line-height:1;margin-bottom:4px}
.metric-label{font-size:11px;color:#94a3b8;font-weight:500;text-transform:uppercase;letter-spacing:.06em}
.metric-delta{font-size:11px;font-weight:600;margin-top:4px}
.delta-up{color:#16a34a}
.delta-down{color:#dc2626}
.delta-eq{color:#94a3b8}

/* ── Botão Kanban ────────────────────────────────────────── */
.btn-kanban{background:#0f172a;color:#fff;height:32px;padding:0 14px;border-radius:8px;font-size:12px;font-weight:600;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:inherit}
.btn-kanban:hover{background:#1e293b}

/* ── Heatmap ─────────────────────────────────────────────── */
.hm-table{border-collapse:collapse;font-size:11px;width:100%}
.hm-table th{padding:6px 8px;text-align:left;font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;background:#f8fafc;border-bottom:1px solid #e2e8f0}
.hm-table td{padding:8px 10px;text-align:center;border:1px solid #f1f5f9;font-weight:600;font-size:12px;border-radius:4px}
.hm-cell-0{background:#f8fafc;color:#cbd5e1}
.hm-cell-1{background:#dbeafe;color:#1d4ed8}
.hm-cell-2{background:#bfdbfe;color:#1d4ed8}
.hm-cell-3{background:#93c5fd;color:#1e40af}
.hm-cell-4{background:#3b82f6;color:#fff}
.hm-cell-5{background:#1d4ed8;color:#fff}

/* ── Badges adicionais ───────────────────────────────────── */
.badge-gray,.badge-default{background:#f8fafc !important;color:#475569 !important;border:none !important}
.badge-purple{background:#f5f3ff !important;color:#6d28d9 !important;border:none !important}
.badge-yellow,.badge-warning{background:#fffbeb !important;color:#b45309 !important;border:none !important}
.badge-success{background:#f0fdf4 !important;color:#15803d !important;border:none !important}
.badge-info{background:#eff6ff !important;color:#1d4ed8 !important;border:none !important}
.badge-danger{background:#fef2f2 !important;color:#b91c1c !important;border:none !important}
.badge-blue,.badge-info{background:#eff6ff !important;color:#1d4ed8 !important;border:none !important}

/* ── Form labels uppercase ───────────────────────────────── */
.field label,.field > label,label.field-label{text-transform:uppercase !important;letter-spacing:.05em !important;font-size:11px !important;font-weight:600 !important;color:#475569 !important}

/* ── Filtro colapsável ───────────────────────────────────── */
.filter-wrapper{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;background:#fff;margin-bottom:0}
.filter-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;padding:10px 14px;background:#fff;border:none;width:100%;text-align:left;font-family:inherit}
.filter-toggle:hover{background:#f8fafc}
.filter-toggle-label{font-size:13px;font-weight:600;color:#475569;flex:1}
.filter-chevron{width:14px;height:14px;transition:transform .2s;color:#94a3b8;flex-shrink:0}
.filter-wrapper.is-open .filter-chevron{transform:rotate(180deg)}
.filter-body{display:none;padding:14px 16px;border-top:1px solid #f1f5f9}
.filter-wrapper.is-open .filter-body{display:block}
.filter-icon{width:14px;height:14px;color:#64748b;flex-shrink:0}

/* ── Kanban cards v2 ─────────────────────────────────────── */
.kan-card{border:1px solid #e2e8f0 !important;border-radius:8px !important;box-shadow:none !important}
.kan-card:hover{border-color:#bfdbfe !important;box-shadow:0 0 0 3px rgba(37,99,235,.06) !important}
.kan-col{border:1px solid #e2e8f0 !important;border-radius:10px !important;box-shadow:none !important;background:#f8fafc !important}
.kan-head{border-bottom:1px solid #e2e8f0 !important;background:#fff !important}
.kan-foot .tag{white-space:nowrap;flex-shrink:0;overflow:visible}

/* ── Table v2 ────────────────────────────────────────────── */
.table th{padding:7px 12px !important;font-size:10px !important;font-weight:700 !important;text-transform:uppercase !important;letter-spacing:.07em !important;color:#94a3b8 !important;background:#f8fafc !important;border-bottom:1px solid #e2e8f0 !important}
.table td{padding:8px 12px !important;font-size:13px !important;color:#334155 !important;border-bottom:1px solid #f8fafc !important;vertical-align:middle !important}
.table tbody tr:hover td{background:#f8fafc !important}
.table tbody tr:last-child td{border-bottom:none !important}

/* ── Show tabs (underline) ───────────────────────────────── */
.tabs{display:flex;gap:0;border-bottom:1px solid #e2e8f0;flex-wrap:nowrap;overflow-x:auto}
.tab{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#64748b;text-decoration:none;font-weight:500;font-size:13px;white-space:nowrap;margin-bottom:-1px}
.tab:hover{color:#0f172a}
.tab.active{color:#2563eb !important;border-bottom-color:#2563eb !important;font-weight:600;background:transparent !important;box-shadow:none !important}

/* ── kv labels in show.php ───────────────────────────────── */
.kv .k{font-size:10px;color:#94a3b8;text-transform:uppercase;letter-spacing:.07em;font-weight:700;margin-bottom:3px}
.kv .v{font-size:13px;color:#334155;font-weight:500}

/* ── Page head chamado ───────────────────────────────────── */
.chamado-head h1{font-size:22px !important;font-weight:700 !important;letter-spacing:-.01em}

/* ── Timeline flow v2 ────────────────────────────────────── */
.timeline-flow__dot{width:10px !important;height:10px !important;border-radius:999px !important;border:2px solid #e2e8f0 !important;background:#fff !important}
.timeline-flow__dot.done{background:#16a34a !important;border-color:#16a34a !important}
.timeline-flow__title{font-size:13px !important;font-weight:600 !important;color:#0f172a !important}
.timeline-flow__meta{font-size:12px !important;color:#94a3b8 !important}

/* ── Top list bars ───────────────────────────────────────── */
.mini-bar{height:5px !important;border-radius:99px !important;background:#f1f5f9 !important;border:none !important}
.mini-bar>span{background:#2563eb !important;border-radius:99px}
.top-name{font-size:13px !important;font-weight:500 !important;color:#334155 !important}
.top-value{font-size:12px !important;color:#94a3b8 !important}

/* ── Obra actions ────────────────────────────────────────── */
.btn.btn-ghost.btn-sm{height:28px !important;border-radius:6px !important;padding:0 8px !important;font-size:12px !important}

/* ── qstatus bars v2 ─────────────────────────────────────── */
.qbar{height:6px !important;border-radius:99px !important;background:#f1f5f9 !important;border:none !important}
.qfill{background:#2563eb !important;border-radius:99px}
.qfill.ok{background:#16a34a !important}
.qfill.danger{background:#dc2626 !important}

/* ── Bar chart rows ──────────────────────────────────────── */
.bar{height:6px !important;border-radius:99px !important;background:#f1f5f9 !important;border:none !important}
.bar-fill{border-radius:99px !important;background:#2563eb !important}

/* ── Stack spacing override ──────────────────────────────── */
.app-content .stack{gap:16px}

/* ── Kanban tab badge count ──────────────────────────────── */
.badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:99px;font-size:11px;font-weight:700;line-height:1;background:#e2e8f0;color:#334155;margin-left:4px}
.dash-tab.is-active .badge-count{background:rgba(37,99,235,.15);color:#2563eb}

/* ═══════════════════════════════════════════════════════════════
   DESIGN SYSTEM v2.3 — Etapas, Upload DZ, Análise inline, Aceite
   ═══════════════════════════════════════════════════════════════ */

/* ── Drag & Drop Upload ──────────────────────────────────────── */
.dz-wrap{display:flex;flex-direction:column;gap:8px}
.dz-zone{border:2px dashed #e2e8f0;border-radius:10px;padding:20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.dz-zone:hover,.dz-zone.drag-over{border-color:#2563eb;background:#f8fbff}
.dz-icon{width:40px;height:40px;background:#f1f5f9;border-radius:8px;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;color:#64748b}
.dz-title{font-size:13px;font-weight:600;color:#334155}
.dz-sub{font-size:11px;color:#94a3b8;margin-top:3px}
.dz-types{display:flex;gap:5px;justify-content:center;margin-top:8px;flex-wrap:wrap}
.dz-type{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:#f1f5f9;color:#64748b}
.dz-input{display:none}
.dz-preview{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.dz-thumb{width:64px;height:64px;border-radius:8px;border:1px solid #e2e8f0;overflow:hidden;position:relative;flex-shrink:0;background:#f8fafc;display:flex;align-items:center;justify-content:center}
.dz-thumb img{width:100%;height:100%;object-fit:cover}
.dz-thumb-badge{position:absolute;bottom:2px;left:2px;background:rgba(0,0,0,.55);color:#fff;font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;text-transform:uppercase}
.dz-thumb-remove{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:10px;line-height:1}
.dz-thumb-pdf{background:#fef3c7;font-size:11px;font-weight:700;color:#b45309}
.dz-compact .dz-zone{padding:12px}
.dz-compact .dz-icon{width:28px;height:28px;margin-bottom:6px}
.dz-compact .dz-title{font-size:12px}

/* ── Info row 3 cols (vistoria context) ──────────────────────── */
.info-row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
@media(max-width:700px){.info-row-3{grid-template-columns:1fr}}
.info-card{background:#f8fafc;border:1px solid #f1f5f9;border-radius:8px;padding:10px 12px}
.info-card .k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin-bottom:3px}
.info-card .v{font-size:13px;font-weight:600;color:#334155}

/* ── Vistoria toggle card ─────────────────────────────────────── */
.vistoria-toggle-card{border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;transition:all .2s;margin-bottom:12px}
.vistoria-toggle-card.done{border-color:#bbf7d0;background:#f0fdf4}
.vtc-toggle{width:40px;height:22px;border-radius:99px;background:#e2e8f0;position:relative;flex-shrink:0;transition:background .2s}
.vtc-knob{width:16px;height:16px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:left .2s}
.vistoria-toggle-card.done .vtc-toggle{background:#16a34a}
.vistoria-toggle-card.done .vtc-knob{left:21px}
.vtc-title{font-size:13px;font-weight:600;color:#334155}
.vtc-sub{font-size:11px;color:#64748b;margin-top:2px}
.vtc-badge{margin-left:auto;font-size:11px;font-weight:600;padding:3px 10px;border-radius:99px;background:#f1f5f9;color:#475569;flex-shrink:0}
.vistoria-toggle-card.done .vtc-badge{background:#dcfce7;color:#15803d}

/* ── Análise inline panels ────────────────────────────────────── */
.ia-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ia-row{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;transition:border-color .15s}
.ia-row.pending{border-color:#fde68a}
.ia-row.done{border-color:#bbf7d0}
.ia-head{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background .12s;user-select:none}
.ia-head:hover{background:#f8fafc}
.ia-row.pending .ia-head{background:#fffbeb}
.ia-row.done .ia-head{background:#f0fdf4}
.ia-chevron{transition:transform .2s;color:#94a3b8;flex-shrink:0}
.ia-row.is-open .ia-chevron{transform:rotate(180deg)}
.ia-expand{padding:14px;border-top:1px solid #f1f5f9;background:#fafafa;display:none}
.ia-expand.open{display:flex;flex-direction:column;gap:12px}
.causa-chips{display:flex;gap:6px;flex-wrap:wrap}
.causa-chip{padding:6px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:11px;font-weight:600;color:#475569;cursor:pointer;transition:all .12s}
.causa-chip:hover{border-color:#2563eb;color:#2563eb}
.causa-chip.active{background:#2563eb;color:#fff;border-color:#2563eb}
.resultado-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.resultado-opt{padding:9px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:11px;font-weight:600;color:#475569;cursor:pointer;display:flex;align-items:center;gap:7px;transition:all .12s}
.resultado-opt:hover{border-color:#2563eb}
.resultado-opt.sel-dentro{border-color:#16a34a;color:#15803d;background:#f0fdf4}
.resultado-opt.sel-ref{border-color:#2563eb;color:#1d4ed8;background:#eff6ff}
.resultado-opt.sel-lib{border-color:#7c3aed;color:#6d28d9;background:#f5f3ff}
.resultado-opt.sel-fora{border-color:#ef4444;color:#dc2626;background:#fef2f2}
.r-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

/* ── Two col stage (materiais/serviços) ──────────────────────── */
.two-col-stage{display:grid;grid-template-columns:1fr 300px;gap:14px;align-items:start}
@media(max-width:900px){.two-col-stage{grid-template-columns:1fr}}

/* ── Item tab list ───────────────────────────────────────────── */
.item-tab-list{display:flex;flex-direction:column;gap:4px;align-items:stretch;width:100%}
.item-tab{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:9px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;transition:all .12s;text-decoration:none;color:inherit;width:100%;text-align:left;box-sizing:border-box}
.item-tab:hover{border-color:#2563eb;background:#f8fbff}
.item-tab.active{border-color:#2563eb;background:#eff6ff}
.item-tab.item-tab-done{border-color:#bbf7d0;background:#f0fdf4}
.item-tab.item-tab-done.active{border-color:#16a34a;background:#dcfce7}
.item-tab-seq{width:34px;height:22px;border-radius:5px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#475569;flex-shrink:0}
.item-tab.active .item-tab-seq{background:#2563eb;color:#fff}
.item-tab.item-tab-done .item-tab-seq{background:#f0fdf4;color:#16a34a}
.item-tab.item-tab-done.active .item-tab-seq{background:#16a34a;color:#fff}
.item-tab-name{flex:1;font-size:12px;font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.item-tab-count{font-size:10px;font-weight:600;padding:1px 6px;border-radius:99px;background:#f1f5f9;color:#64748b;flex-shrink:0}
.item-tab.active .item-tab-count{background:#dbeafe;color:#1d4ed8}
.item-tab-check{font-size:11px;font-weight:700;color:#16a34a;flex-shrink:0;width:18px;height:18px;border-radius:50%;background:#dcfce7;display:flex;align-items:center;justify-content:center;line-height:1}
/* Retrabalho: item aprovado (verde forte) */
.item-tab.item-tab-approved{border-color:#bbf7d0;background:#f0fdf4;opacity:.75}
.item-tab.item-tab-approved.active{border-color:#16a34a;background:#dcfce7;opacity:1}
.item-tab.item-tab-approved .item-tab-seq{background:#dcfce7;color:#15803d}
.item-tab.item-tab-approved.active .item-tab-seq{background:#16a34a;color:#fff}
/* Retrabalho: item pendente (âmbar) */
.item-tab.item-tab-retrabalho{border-color:#fde68a;background:#fffbeb}
.item-tab.item-tab-retrabalho.active{border-color:#f59e0b;background:#fef3c7}
.item-tab.item-tab-retrabalho .item-tab-seq{background:#fef3c7;color:#b45309}
.item-tab.item-tab-retrabalho.active .item-tab-seq{background:#f59e0b;color:#fff}

/* ── Sidebar: Em breve badge + disabled items ───────────────── */
.nav-badge-breve{
  display:inline-flex;align-items:center;
  font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:2px 6px;border-radius:99px;
  background:#fef3c7;color:#92400e;border:1px solid #fde68a;
  white-space:nowrap;flex-shrink:0;margin-left:auto;margin-right:4px;
}
.nav-group-btn .nav-badge-breve{margin-right:6px}
.nav-item-disabled{
  display:flex;align-items:center;gap:10px;
  padding:9px 10px;border-radius:10px;
  opacity:.55;cursor:default;pointer-events:none;
  color:#64748b;
}
.nav-item-disabled .nav-ic{color:#94a3b8}
.nav-item-disabled .nav-text{font-size:13px;font-weight:500;color:#94a3b8;flex:1;min-width:0}
.nav-item-disabled .nav-badge-breve{margin-left:auto;margin-right:0}

/* ── Fornecedor typeahead ────────────────────────────────────── */
.forn-typeahead{position:relative}
.forn-typeahead .fta-input{width:100%;min-height:48px;border:1px solid #dbe6f3;border-radius:14px;background:#f8fbff;color:#0f172a;padding:12px 14px;font:inherit;outline:none;transition:border-color .18s,box-shadow .18s,background .18s;box-sizing:border-box}
.forn-typeahead .fta-input:focus{background:#fff;border-color:rgba(37,99,235,.42);box-shadow:0 0 0 4px rgba(37,99,235,.1)}
.fta-dropdown{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 8px 24px rgba(15,23,42,.1);z-index:500;overflow:hidden}
.fta-list{list-style:none;margin:0;padding:4px}
.fta-item{padding:8px 12px;border-radius:8px;font-size:13px;cursor:pointer;color:#334155}
.fta-item:hover{background:#eff6ff;color:#2563eb}
.fta-empty{padding:8px 12px;font-size:13px;color:#94a3b8}
.fta-new{padding:6px 4px;border-top:1px solid #f1f5f9}
.fta-new-btn{width:100%;background:none;border:none;padding:8px 12px;text-align:left;font:inherit;font-size:12px;font-weight:600;color:#2563eb;cursor:pointer;border-radius:8px}
.fta-new-btn:hover{background:#eff6ff}

/* ── Pós-inspeção thumbnails ─────────────────────────────────── */
.posinsp-thumbs{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.p-thumb{width:38px;height:38px;border-radius:6px;border:1px solid #e2e8f0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#f8fafc;flex-shrink:0}
.p-thumb img{width:100%;height:100%;object-fit:cover}
.p-thumb-add{border-style:dashed;cursor:pointer;font-size:16px;color:#94a3b8}
.p-thumb-add:hover{border-color:#2563eb;color:#2563eb;background:#eff6ff}

/* ── Link aceite card ─────────────────────────────────────────── */
.link-aceite-card{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.link-aceite-card.done{border-color:#86efac}
.lac-title{font-size:13px;font-weight:700;color:#15803d}
.lac-sub{font-size:11px;color:#166534}
.lac-url{background:#fff;border:1px solid #bbf7d0;border-radius:7px;padding:8px 12px;font-size:11px;font-family:monospace;color:#15803d;word-break:break-all}
.lac-actions{display:flex;gap:6px;flex-wrap:wrap}
.lac-status{display:flex;align-items:center;gap:8px;font-size:11px;color:#475569}
.lac-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.lac-dot.pend{background:#f59e0b}
.lac-dot.ok{background:#16a34a}
.lac-expires{margin-left:auto;color:#94a3b8}

/* ── Priority seg fix (no blank space) ──────────────────────── */
.priority-seg{display:flex;gap:0;margin:0;padding:0}
.priority-seg .btn-check{position:absolute;opacity:0;pointer-events:none;width:0;height:0;margin:0;padding:0}
.priority-seg .seg{flex:1;height:34px;border:1px solid #e2e8f0;background:#fff;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s;margin:0;border-radius:0}
.priority-seg .seg:first-of-type{border-radius:8px 0 0 8px}
.priority-seg .seg:last-of-type{border-radius:0 8px 8px 0}
.priority-seg .seg+.seg,.priority-seg .btn-check+.btn-check+.seg{border-left:none}
.priority-seg .btn-check:checked+.seg-muted{background:#f1f5f9;color:#475569;border-color:#94a3b8}
.priority-seg .btn-check:checked+.seg-warn{background:#fffbeb;color:#b45309;border-color:#f59e0b}
.priority-seg .btn-check:checked+.seg-danger{background:#fef2f2;color:#dc2626;border-color:#ef4444}
.priority-seg .btn-check:checked+.seg:not(.seg-muted):not(.seg-warn):not(.seg-danger){background:#f0fdf4;color:#15803d;border-color:#22c55e}

/* ── Garantia progress bar ───────────────────────────────────── */
.garantia-progress-wrap{margin-top:8px}
.garantia-progress-wrap .gp-labels{display:flex;justify-content:space-between;font-size:10px;color:#94a3b8;margin-bottom:4px}
.garantia-progress-wrap .gp-track{height:4px;background:#f1f5f9;border-radius:99px;overflow:hidden}
.garantia-progress-wrap .gp-bar{height:100%;border-radius:99px;background:#16a34a;transition:width .3s}

/* ── Gerador de mensagens IA ─────────────────────────────────── */
.msg-gen{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fff;margin-top:16px}

/* Toggle / cabeçalho */
.msg-gen__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:background .12s}
.msg-gen__toggle:hover{background:#f8fafc}
.msg-gen__toggle-left{display:flex;align-items:center;gap:8px}
.msg-gen__icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:linear-gradient(135deg,#eff6ff,#f5f3ff);color:#4f46e5;flex-shrink:0}
.msg-gen__title{font-size:13px;font-weight:600;color:#1e293b}
.msg-gen__badge{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#7c3aed;background:#f5f3ff;border:1px solid #ddd6fe;padding:2px 7px;border-radius:99px}
.msg-gen__chevron{color:#94a3b8;transition:transform .2s;flex-shrink:0}

/* Corpo */
.msg-gen__body{border-top:1px solid #f1f5f9;padding:16px;display:flex;flex-direction:column;gap:14px}
.msg-gen__body[hidden]{display:none}

/* Controles */
.msg-gen__controls{display:flex;gap:16px;flex-wrap:wrap}
.msg-gen__control-group{display:flex;flex-direction:column;gap:6px}
.msg-gen__label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8}

/* Chips de tipo */
.msg-gen__chips{display:flex;gap:4px;flex-wrap:wrap}
.msg-gen__chip{padding:4px 10px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:11px;font-weight:600;color:#64748b;cursor:pointer;font-family:inherit;transition:all .12s;line-height:1.4}
.msg-gen__chip:hover{border-color:#c7d2fe;color:#4f46e5;background:#eef2ff}
.msg-gen__chip.is-active{background:#4f46e5;color:#fff;border-color:#4f46e5}

/* Segmento tom */
.msg-gen__seg{display:flex;border:1px solid #e2e8f0;border-radius:7px;overflow:hidden}
.msg-gen__seg-btn{flex:1;padding:4px 10px;background:#fff;border:none;border-left:1px solid #e2e8f0;font-size:11px;font-weight:600;color:#64748b;cursor:pointer;font-family:inherit;transition:all .12s;white-space:nowrap}
.msg-gen__seg-btn:first-child{border-left:none}
.msg-gen__seg-btn:hover{background:#f8fafc;color:#1e293b}
.msg-gen__seg-btn.is-active{background:#f0fdf4;color:#16a34a;font-weight:700}

/* Linha do botão gerar */
.msg-gen__action-row{display:flex;align-items:center;gap:12px}
.msg-gen__generate-btn{display:inline-flex;align-items:center;gap:6px;padding:0 16px;height:36px;border-radius:8px;border:none;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;transition:opacity .15s;flex-shrink:0}
.msg-gen__generate-btn:hover{opacity:.9}
.msg-gen__generate-btn:disabled{opacity:.55;cursor:not-allowed}

/* Barra de progresso */
.msg-gen__progress{flex:1;height:3px;background:#f1f5f9;border-radius:99px;overflow:hidden;opacity:0;transition:opacity .2s}
.msg-gen__progress.is-active{opacity:1}
.msg-gen__progress-fill{height:100%;width:0%;background:linear-gradient(90deg,#4f46e5,#7c3aed);border-radius:99px;transition:width 2.5s ease}

/* Área de resultado */
.msg-gen__result{display:flex;flex-direction:column;gap:10px}
.msg-gen__result-header{display:flex;align-items:center;justify-content:space-between}
.msg-gen__regerar{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:11px;font-weight:600;color:#64748b;cursor:pointer;font-family:inherit;transition:all .12s}
.msg-gen__regerar:hover{border-color:#c7d2fe;color:#4f46e5;background:#eef2ff}
.msg-gen__textarea{width:100%;min-height:148px;border:1.5px solid #e2e8f0;border-radius:8px;padding:11px 12px;font-size:13px;font-family:inherit;color:#1e293b;line-height:1.65;resize:vertical;outline:none;transition:border-color .15s,box-shadow .15s}
.msg-gen__textarea:focus{border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.08)}

/* Botões de ação (copiar / wa / email) */
.msg-gen__actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.msg-gen__action-btn{display:inline-flex;align-items:center;gap:5px;padding:0 12px;height:30px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:11px;font-weight:600;color:#475569;cursor:pointer;font-family:inherit;text-decoration:none;white-space:nowrap;transition:all .12s;line-height:1}
.msg-gen__action-btn:hover{border-color:#cbd5e1;background:#f8fafc;color:#1e293b}
.msg-gen__action-btn.is-copied{background:#f0fdf4;border-color:#86efac;color:#16a34a}
.msg-gen__action-btn--wa{background:#25d366;border-color:#25d366;color:#fff}
.msg-gen__action-btn--wa:hover{background:#22c55e;border-color:#22c55e;color:#fff}

/* Histórico */
.msg-gen__history{display:flex;flex-direction:column;gap:2px;padding-top:4px;border-top:1px solid #f1f5f9}
.msg-gen__history-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #f8fafc}
.msg-gen__history-row:last-child{border-bottom:none}
.msg-gen__history-tag{flex-shrink:0;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:99px;background:#eff6ff;color:#1d4ed8}
.msg-gen__history-text{flex:1;font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.msg-gen__history-date{flex-shrink:0;font-size:10px;color:#94a3b8}



/* ── Toggle row (cfg-toggle) ─────────────────────────────────── */
.cfg-toggle{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid var(--border,#e2e8f0);border-radius:10px;gap:12px;cursor:pointer}
.cfg-toggle-label{font-size:14px;font-weight:500}
.cfg-toggle-desc{font-size:12px;color:var(--text-secondary,#64748b);margin-top:2px}

/* ── Tooltip [data-tip] ──────────────────────────────────────── */
[data-tip]{position:relative;cursor:help}
[data-tip]::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#1e293b;color:#fff;font-size:12px;font-weight:400;line-height:1.5;white-space:normal;width:230px;padding:7px 10px;border-radius:7px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:300;text-align:left;box-shadow:0 4px 12px rgba(0,0,0,.18)}
[data-tip]:hover::after{opacity:1}
[data-tip]::before{content:'';position:absolute;bottom:calc(100% + 3px);left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#1e293b;pointer-events:none;opacity:0;transition:opacity .15s;z-index:300}
[data-tip]:hover::before{opacity:1}
.topbar-empresa{display:flex;align-items:center;gap:7px}

/* ── Botão WhatsApp ──────────────────────────────────────────── */
.btn-wa{background:#25d366;border-color:#25d366;color:#fff;display:inline-flex;align-items:center;gap:6px}
.btn-wa:hover{background:#22c55e;border-color:#22c55e;color:#fff}
.wa-label{color:#16a34a;display:inline-flex;align-items:center;gap:4px;font-weight:500}

/* ── Botão de replay do tour (topbar) ───────────────────────── */
.tour-help-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid transparent;background:transparent;color:rgba(15,23,42,.38);cursor:pointer;transition:background .15s,color .15s,border-color .15s;flex-shrink:0}
.tour-help-btn:hover{background:rgba(15,23,42,.06);color:rgba(15,23,42,.7);border-color:rgba(15,23,42,.12)}
.tour-help-btn:active{background:rgba(15,23,42,.1)}

/* ── Tour de onboarding (custom, zero-dependency) ────────────── */
.po-tour-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:9000;animation:poTourFadeIn .2s ease}
.po-tour-hl{position:fixed;z-index:9001;border-radius:8px;box-shadow:0 0 0 4000px rgba(15,23,42,.55),0 0 0 3px #2563eb;pointer-events:none;transition:top .2s,left .2s,width .2s,height .2s}
.po-tour-bubble{position:fixed;z-index:9002;width:300px;background:#fff;border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,.18),0 0 0 1px rgba(15,23,42,.08);font-family:inherit;font-size:14px;color:#0f172a;animation:poTourFadeIn .18s ease}
.po-tour-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px;border-bottom:1px solid rgba(15,23,42,.07)}
.po-tour-title{font-size:14px;font-weight:600;color:#0f172a}
.po-tour-count{font-size:11px;font-weight:400;color:rgba(15,23,42,.38);white-space:nowrap}
.po-tour-text{padding:12px 16px;font-size:13px;color:rgba(15,23,42,.68);line-height:1.6}
.po-tour-foot{display:flex;align-items:center;padding:8px 16px 14px;border-top:1px solid rgba(15,23,42,.06)}
.po-tour-nav{display:flex;gap:8px;margin-left:auto}
.po-tour-btn{border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;line-height:1}
.po-tour-btn--pri{background:#2563eb;color:#fff}
.po-tour-btn--pri:hover{background:#1d4ed8}
.po-tour-btn--sec{background:transparent;color:#0f172a;border:1px solid rgba(15,23,42,.20)}
.po-tour-btn--sec:hover{background:#f8fafc}
.po-tour-skip{background:transparent;border:none;color:rgba(15,23,42,.40);font-size:12px;cursor:pointer;padding:6px 4px;font-family:inherit}
.po-tour-skip:hover{color:rgba(15,23,42,.65)}
@keyframes poTourFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

/* ── Skeleton table rows ─────────────────────────────────────── */
.skel-row td{padding:10px 12px !important}
.skel-cell{display:block;height:14px;border-radius:5px;background:#e2e8f0;overflow:hidden;position:relative}
.skel-cell::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.6) 50%,rgba(255,255,255,0) 100%);animation:po-skel 1.4s infinite}

/* ── Upgrade banner ──────────────────────────────────────────── */
.upgrade-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fef3c7;color:#92400e;border-bottom:1px solid #fde68a;padding:10px 20px;font-size:13px;margin-bottom:0}
.upgrade-banner b{font-weight:600}
.upgrade-link{color:#92400e;font-weight:600;text-decoration:underline;margin-left:6px}
.upgrade-close{background:none;border:none;cursor:pointer;font-size:18px;color:#92400e;line-height:1;padding:0 4px;flex-shrink:0}

/* ── Badge de créditos IA ────────────────────────────────────── */
.ia-saldo-badge{display:inline-flex;align-items:center;gap:5px;background:rgba(15,23,42,.05);border:1px solid rgba(15,23,42,.12);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:500;color:#475569;cursor:default;white-space:nowrap}
.ia-saldo-badge.ia-saldo-zero{background:#fef3c7;border-color:#fde68a;color:#92400e}
.ia-recarga-link{color:#92400e;font-weight:600;text-decoration:underline;font-size:11px;margin-left:2px}

/* ── Botões e componentes IA funcionalidades ─────────────────── */
.ia-btn{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#4f46e5;background:#eef2ff;border:1px solid #c7d2fe;border-radius:6px;padding:5px 10px;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}
.ia-btn:hover{background:#e0e7ff;border-color:#a5b4fc}
.ia-btn:disabled{opacity:.5;cursor:not-allowed}
.ia-badge-creditos{font-size:10px;font-weight:600;color:#6366f1;background:#e0e7ff;border-radius:999px;padding:1px 6px;margin-left:2px}
.ia-inline-result{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:14px 16px;font-size:13px;line-height:1.6;color:#1e293b;animation:ia-fadein .25s ease}
.ia-inline-result h4{font-size:13px;font-weight:600;margin:0 0 6px;color:#1e293b}
.ia-inline-result ul{margin:4px 0 4px 16px;padding:0}
.ia-inline-result .ia-apply-btn{margin-top:10px;font-size:12px;font-weight:500;color:#fff;background:#4f46e5;border:none;border-radius:5px;padding:5px 12px;cursor:pointer}
.ia-inline-result .ia-apply-btn:hover{background:#4338ca}
.ia-risco-badge{display:inline-block;font-size:11px;font-weight:700;border-radius:4px;padding:2px 7px;text-transform:uppercase;letter-spacing:.04em}
.ia-risco-alto{background:#fee2e2;color:#b91c1c}
.ia-risco-medio{background:#fef3c7;color:#92400e}
.ia-risco-baixo{background:#dcfce7;color:#15803d}
@keyframes ia-fadein{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

/* ============================================================
   IA Discovery Banner — visual PROMOCIONAL (não é UI do sistema)
   ============================================================ */
/* Wrapper externo: borda tracejada + fundo com tom leve para destacar do sistema */
.ia-disc{background:linear-gradient(135deg,#f0f7ff 0%,#f5f0ff 100%);border:1.5px dashed #a5b4fc;border-radius:14px;overflow:hidden;margin-bottom:16px;box-shadow:0 4px 24px rgba(79,70,229,.13),0 1px 4px rgba(15,23,42,.06)}
/* Barra superior fina com label "Recursos de IA" + botão fechar */
.ia-disc-promo-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;background:rgba(99,102,241,.08);border-bottom:1px solid rgba(99,102,241,.12)}
.ia-disc-promo-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;color:#4f46e5;letter-spacing:.04em;text-transform:uppercase}
.ia-disc-promo-close{background:none;border:none;cursor:pointer;font-size:18px;line-height:1;color:#a5b4fc;padding:0 2px;transition:color .12s}
.ia-disc-promo-close:hover{color:#4f46e5}
/* Header escuro da funcionalidade */
.ia-disc-header{background:#1e3a5f;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.ia-disc-header-left{display:flex;align-items:center;gap:10px}
.ia-disc-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.ia-disc-icon-wrap{width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ia-disc-title{font-size:14px;font-weight:600;color:#fff}
.ia-disc-sub{font-size:11px;color:rgba(255,255,255,.65);margin-top:1px}
.ia-disc-new-badge{background:#6366f1;color:#fff;font-size:10px;font-weight:600;padding:3px 9px;border-radius:999px}
.ia-disc-new-badge--upgrade{background:#f59e0b !important}
/* Body dos cards de funcionalidade */
.ia-disc-body{padding:16px 18px;background:transparent}
.ia-disc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.ia-disc-feat{background:rgba(255,255,255,.75);border:1px solid rgba(165,180,252,.3);border-radius:10px;padding:12px;transition:border-color .12s,background .12s}
.ia-disc-feat:hover{background:#fff;border-color:#6366f1}
.ia-disc-feat-icon{width:28px;height:28px;border-radius:7px;background:#ede9fe;display:flex;align-items:center;justify-content:center;color:#4f46e5}
.ia-disc-feat-title{font-size:12px;font-weight:600;color:#0f172a;margin-bottom:3px}
.ia-disc-feat-desc{font-size:11px;color:#64748b;line-height:1.45}
.ia-disc-feat-meta{display:flex;align-items:center;gap:6px;margin-top:7px;flex-wrap:wrap}
.ia-disc-feat-cost{font-size:10px;font-weight:600;background:#dbeafe;color:#1e40af;padding:2px 7px;border-radius:999px}
.ia-disc-feat-etapa{font-size:10px;color:#94a3b8}
.ia-disc-feat--locked{opacity:.6;background:rgba(255,255,255,.4);border-style:dashed}
.ia-disc-feat--locked:hover{background:rgba(255,255,255,.4);border-color:#cbd5e1}
.ia-disc-feat-icon--locked{background:#f1f5f9 !important;color:#94a3b8 !important}
.ia-disc-feat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.ia-disc-feat-status{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;padding:2px 7px;border-radius:999px}
.ia-disc-feat-status--ok{background:#dcfce7;color:#166534}
.ia-disc-feat-status--lock{background:#fef3c7;color:#92400e}
/* Footer */
.ia-disc-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid rgba(165,180,252,.2);flex-wrap:wrap}
.ia-disc-footer-left{display:flex;flex-direction:column;gap:3px}
.ia-disc-saldo{display:flex;align-items:center;gap:6px;font-size:12px;color:#64748b}
.ia-disc-saldo strong{color:#0f172a;font-weight:700}
.ia-disc-saldo-zero{color:#dc2626 !important}
.ia-disc-plano{font-size:11px;color:#64748b}
.ia-disc-plano strong{color:#0f172a;font-weight:600}
.ia-disc-plano-upgrade{color:#f59e0b;font-weight:600}
.ia-disc-actions{display:flex;align-items:center;gap:10px}
.ia-disc-lembrar{background:none;border:none;cursor:pointer;font-size:11px;color:#94a3b8;text-decoration:underline}
.ia-disc-lembrar:hover{color:#64748b}
.ia-disc-cta{background:#4f46e5;color:#fff;font-size:12px;font-weight:600;padding:8px 16px;border-radius:8px;text-decoration:none;white-space:nowrap;transition:background .12s}
.ia-disc-cta:hover{background:#4338ca}
.ia-disc-cta--urgent{background:#dc2626 !important}
.ia-disc-cta--urgent:hover{background:#b91c1c !important}
.ia-disc-cta--upgrade{background:#f59e0b !important;color:#fff !important}
.ia-disc-cta--upgrade:hover{background:#d97706 !important}
/* Mini banner */
.ia-disc-mini{display:flex;align-items:flex-start;gap:10px;background:#eff6ff;border:.5px solid #bfdbfe;border-radius:10px;padding:12px 14px;margin-bottom:14px}
.ia-disc-mini-icon{width:28px;height:28px;flex-shrink:0;background:#2563eb;border-radius:7px;display:flex;align-items:center;justify-content:center;color:#fff}
.ia-disc-mini-body{flex:1;min-width:0}
.ia-disc-mini-title{font-size:12px;font-weight:600;color:#1e3a5f;margin-bottom:2px}
.ia-disc-mini-desc{font-size:11px;color:#1e40af;line-height:1.45}
.ia-disc-mini-cta{display:inline-block;margin-top:6px;font-size:11px;font-weight:600;color:#2563eb;text-decoration:underline}
.ia-disc-mini-saldo{display:inline-block;margin-top:6px;font-size:11px;font-weight:600;color:#16a34a}
.ia-disc-mini-close{background:none;border:none;cursor:pointer;font-size:16px;color:#93c5fd;line-height:1;flex-shrink:0;padding:2px}
.ia-disc-mini-close:hover{color:#1e40af}
/* Botão flutuante IA */
.ia-fab{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;align-items:center;gap:6px;background:#1e3a5f;color:#fff;border:none;border-radius:999px;padding:10px 16px 10px 12px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px rgba(15,23,42,.18);transition:background .15s,transform .15s}
.ia-fab:hover{background:#4f46e5;transform:translateY(-1px)}
.ia-fab:active{transform:translateY(0)}
.ia-fab-label{font-size:12px;font-weight:700;letter-spacing:.02em}
/* Modal IA Discovery */
.ia-modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.35);z-index:300;backdrop-filter:blur(2px)}
.ia-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:301;width:min(780px,95vw);max-height:90vh;overflow-y:auto;border-radius:16px;box-shadow:0 8px 40px rgba(15,23,42,.18)}
.ia-modal .ia-disc{margin-bottom:0;border-radius:16px}
/* Badge topbar — link direto para créditos */
.ia-saldo-badge:hover{background:#eff6ff !important;border-color:#bfdbfe !important;color:#1e40af !important}
.ia-saldo-badge.ia-saldo-zero:hover{background:#fef9c3 !important;border-color:#fde047 !important}
/* Responsivo */
@media(max-width:900px){.ia-disc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.ia-disc-grid{grid-template-columns:1fr}.ia-disc-footer{flex-direction:column;align-items:flex-start}}
@media(max-width:640px){.ia-fab{padding:12px;border-radius:50%}.ia-fab-label{display:none}}

/* ── Tab nav (Assinatura / Créditos IA) ── */
.tab-nav { display:flex; gap:4px; border-bottom:2px solid var(--line,#e2e8f0); }
.tab-nav-item { display:inline-flex; align-items:center; gap:5px; padding:8px 16px; font-size:13px; font-weight:500; color:var(--muted,#64748b); text-decoration:none; border-bottom:2px solid transparent; margin-bottom:-2px; transition:color .15s, border-color .15s; border-radius:4px 4px 0 0; }
.tab-nav-item:hover { color:var(--text,#0f172a); }
.tab-nav-item.active { color:var(--primary,#2563eb); border-bottom-color:var(--primary,#2563eb); font-weight:600; }

/* ════════════════════════════════════════════════════════════
   RESPONSIVO GLOBAL
   ════════════════════════════════════════════════════════════ */

/* ── Backdrop sidebar mobile ─────────────────────────────── */
.sb-backdrop{display:none;position:fixed;inset:0;z-index:1299;background:rgba(15,23,42,.45)}
body.sb-open .sb-backdrop{display:block}

/* ── Hambúrguer ──────────────────────────────────────────── */
.hamburger-btn{
  display:none;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:8px;
  background:transparent;border:1px solid transparent;
  cursor:pointer;flex-shrink:0;padding:0;
}
.hamburger-btn:hover{background:rgba(15,23,42,.06);border-color:rgba(15,23,42,.12)}

/* ── Tablet ≤ 1024px — sidebar mini automático ───────────── */
@media(max-width:1024px){
  .app-shell{grid-template-columns:56px 1fr}
  body{overflow:hidden}
  /* força mini no CSS sem alterar body.sidebar-mini */
  .sidebar{padding:12px 8px}
  .sidebar .sb-brand-text,
  .sidebar .sb-novo-label,
  .sidebar .sb-novo-chev,
  .sidebar .nav-text,
  .sidebar .nav-group-title,
  .sidebar .nav-chevron,
  .sidebar .sb-user-info,
  .sidebar .sb-collapse-btn .mini-text,
  .sidebar .mini-ic-left{display:none !important}
  .sidebar .mini-ic-right{display:grid !important}
  .sidebar .sb-novo-btn{padding:0;justify-content:center;gap:0;width:100%}
  .sidebar .nav-item{justify-content:center;padding:8px;gap:0}
  .sidebar .nav-ic{width:22px;height:22px}
  .sidebar .sb-collapse-btn,.sidebar .sidebar-mini-toggle{justify-content:center;padding:8px}
  .sidebar .sb-user-row{flex-direction:column;align-items:center}
  .sidebar .sb-sair-btn{width:100%;padding:0 4px;font-size:11px}
  /* grupos fechados ainda mostram ícones no mini */
  .sidebar .nav-group-items[hidden]{display:flex !important}
  /* reseta mini salvo no localStorage para não conflitar */
  body.sidebar-mini .app-shell{grid-template-columns:56px 1fr}
}

/* ── Mobile ≤ 768px — sidebar off-canvas ─────────────────── */
@media(max-width:768px){
  body{overflow:auto}
  .app-frame,.app-shell{height:auto;min-height:100vh;overflow:visible}
  .app-shell{display:block}
  .app-main{height:auto;min-height:100vh;overflow:visible}

  /* sidebar desliza pela esquerda */
  .sidebar{
    position:fixed;left:-290px;top:0;width:280px;height:100vh;
    z-index:1300;transition:left .25s cubic-bezier(.4,0,.2,1);
    padding:16px 12px;overflow-y:auto;
    box-shadow:none;
  }
  /* restaura texto quando aberta (sobrescreve o tablet) */
  .sidebar .sb-brand-text,
  .sidebar .sb-novo-label,
  .sidebar .sb-novo-chev,
  .sidebar .nav-text,
  .sidebar .nav-group-title,
  .sidebar .sb-user-info,
  .sidebar .sb-collapse-btn .mini-text{display:block !important}
  .sidebar .nav-chevron{display:flex !important}
  .sidebar .mini-ic-left{display:grid !important}
  .sidebar .mini-ic-right{display:none !important}
  .sidebar .sb-novo-btn{padding:0 12px;justify-content:flex-start;gap:8px}
  .sidebar .nav-item{justify-content:flex-start;padding:8px 10px;gap:8px}
  .sidebar .nav-ic{width:20px;height:20px}
  .sidebar .sb-collapse-btn,.sidebar .sidebar-mini-toggle{justify-content:flex-start;padding:7px 10px}
  .sidebar .sb-user-row{flex-direction:row;align-items:center}
  .sidebar .sb-sair-btn{width:auto}
  body.sb-open .sidebar{left:0;box-shadow:0 8px 40px rgba(15,23,42,.3)}
  body.sidebar-mini .sidebar{left:-290px}

  /* hambúrguer visível */
  .hamburger-btn{display:inline-flex}

  /* topbar */
  .topbar{padding:10px 14px;gap:8px}
  .topbar-left{min-width:0;flex:1}
  .topbar-greeting{display:none}
  .page-title{font-size:15px}
  .topbar-empresa span{display:none}
  .topbar-empresa{padding:4px 6px}
  .topbar-right{gap:8px}

  /* conteúdo */
  .app-content{padding:12px 14px 32px}

  /* cabeçalho de página */
  .page-head{flex-direction:column;align-items:flex-start;gap:10px;margin:4px 0 12px}
  .page-head h1{font-size:20px}
  .page-actions{width:100%;flex-wrap:wrap}
  .page-actions .btn{flex:1;min-width:120px;justify-content:center}

  /* tabelas — scroll horizontal */
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table{min-width:500px}

  /* KPIs */
  .kpis{grid-template-columns:repeat(2,1fr) !important}

  /* grids gerais */
  .grid.two-cols,.grid.three-cols,
  .kpi-grid,.grid-2,.grid-3,.cards-3,
  .metrics-4,.info-grid,.info-row-3,
  .two-col-stage,.dash-layout,
  .smart-stage-grid,.master-form-grid{grid-template-columns:1fr !important}

  /* layouts de etapas (materiais/serviços) */
  .smart-stage-grid{display:block !important}
  .smart-stage-side{position:static !important;margin-top:14px}

  /* formulários */
  .etapa-form-grid,.form-grid,
  .field-inline,.filters-grid,
  .g-switch-grid{grid-template-columns:1fr !important}
  .input-row{flex-direction:column;align-items:stretch}
  .row.wrap{flex-wrap:wrap}

  /* stepper */
  .flow-stepper{overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;white-space:nowrap}

  /* chamado novo */
  .grid.newch{grid-template-columns:1fr !important}

  /* botões de ação */
  .stage-actions,.flow-actions{flex-wrap:wrap}
  .stage-actions .btn{flex:1;min-width:110px;justify-content:center}

  /* modais */
  .modal-card{max-width:calc(100vw - 24px) !important;max-height:calc(100dvh - 32px)}

  /* auth */
  .auth-split{grid-template-columns:1fr !important}
  .auth-side{display:none !important}
  .auth-card-modern{padding:32px 20px}

  /* card-head não quebra feio */
  .card-head{flex-wrap:wrap;gap:8px}
  .card-actions{flex-wrap:wrap}
}

/* ── Small mobile ≤ 480px ────────────────────────────────── */
@media(max-width:480px){
  .app-content{padding:10px 10px 28px}
  .topbar{padding:8px 12px}
  .page-head h1{font-size:18px}
  .kpis{grid-template-columns:1fr 1fr !important}
  .kpi{padding:12px 12px 10px 14px}
  .card-body{padding:12px}
  .ia-saldo-badge{display:none}
  table{min-width:420px}
}

/* ══════════════════════════════════════════════════
   v1.102 — Ajustes finos de produção
   ══════════════════════════════════════════════════ */

/* ── Loading overlay ── */
.loading-overlay{position:absolute;inset:0;background:rgba(255,255,255,.85);backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-radius:inherit;z-index:10}
.loading-spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{font-size:13px;font-weight:500;color:#64748b}
.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:6px}
@keyframes shimmer{to{background-position:-200% 0}}
.btn.is-loading{pointer-events:none;opacity:.7;position:relative}
.btn.is-loading::after{content:'';display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite;margin-left:6px;vertical-align:middle}

/* ── Itens list — padrão abertura ── */
.item-list{display:flex;flex-direction:column;gap:6px}
.item-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s}
.item-row:hover{border-color:#2563eb}
.item-code{font-family:monospace;font-size:11px;font-weight:700;color:#94a3b8;min-width:56px}
.item-cat{font-size:12px;font-weight:600;color:#334155;flex:1}
.item-desc{font-size:11px;color:#64748b}
.item-photos{display:flex;gap:4px;align-items:center}
.item-photo-count{font-size:10px;font-weight:600;color:#2563eb;background:#eff6ff;padding:2px 7px;border-radius:99px}
.item-photo-count-empty{font-size:10px;color:#94a3b8}
.priority-pill{font-size:10px;font-weight:700;padding:2px 8px;border-radius:99px}
.p-normal{background:#f1f5f9;color:#475569}
.p-alta{background:#fffbeb;color:#b45309}
.p-urgente{background:#fef2f2;color:#dc2626}
.p-baixa{background:#f0fdf4;color:#15803d}
.item-chevron{color:#cbd5e1}

/* ── Priority segmented ── */
.priority-seg{display:flex;gap:0}
.priority-seg button{flex:1;height:34px;border:1px solid #e2e8f0;background:#fff;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .12s,color .12s}
.priority-seg button:first-child{border-radius:8px 0 0 8px}
.priority-seg button:last-child{border-radius:0 8px 8px 0}
.priority-seg button:not(:first-child){border-left:none}
.priority-seg button.active-normal{background:#f1f5f9;color:#475569;border-color:#94a3b8}
.priority-seg button.active-alta{background:#fffbeb;color:#b45309;border-color:#f59e0b}
.priority-seg button.active-urgente{background:#fef2f2;color:#dc2626;border-color:#ef4444}
.priority-seg button.active-baixa{background:#f0fdf4;color:#15803d;border-color:#22c55e}

/* ── Painel IA análise ── */
.ia-painel-analise{border-radius:12px;overflow:hidden;border:1px solid rgba(37,99,235,.25);margin-bottom:16px}
.ia-painel-header{background:linear-gradient(135deg,#1e3a5f,#2563eb);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;gap:10px}
.ia-painel-icon{width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ia-painel-title{font-size:13px;font-weight:700;color:#fff}
.ia-painel-sub{font-size:11px;color:rgba(255,255,255,.65);margin-top:1px}
.ia-painel-body{background:#f8fafc;padding:12px}
.ia-painel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ia-tool-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;text-align:left;cursor:pointer;transition:border-color .12s;width:100%}
.ia-tool-btn:hover{border-color:#2563eb;background:#f8fbff}
.ia-tool-icon{width:32px;height:32px;border-radius:8px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ia-tool-name{font-size:12px;font-weight:600;color:#0f172a}
.ia-tool-desc{font-size:11px;color:#64748b;margin-top:1px}
.ia-tool-cr{margin-left:auto;flex-shrink:0;font-size:10px;font-weight:600;background:#dbeafe;color:#1e40af;padding:2px 7px;border-radius:999px}
.ia-disclaimer-compact{font-size:11px;color:#64748b;margin-top:8px;padding:6px 10px;background:#fef9c3;border-radius:6px;border:1px solid #fde047}
@media(max-width:768px){.ia-painel-grid{grid-template-columns:1fr}}

/* ── Cards de resultado IA ── */
.ia-resultado-card{border:1px solid #bfdbfe;border-radius:10px;overflow:hidden;margin-bottom:10px;background:#fff}
.ia-resultado-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;background:#f0f7ff;border-bottom:1px solid #bfdbfe}
.ia-resultado-header:hover{background:#e0f0ff}
.ia-resultado-titulo{font-size:12px;font-weight:600;color:#1e40af}
.ia-resultado-cr{font-size:10px;font-weight:600;background:#dbeafe;color:#1e40af;padding:1px 6px;border-radius:999px}
.ia-resultado-time{font-size:11px;color:#94a3b8}
.ia-resultado-body{padding:14px}
.ia-resultado-conteudo{font-size:13px;line-height:1.7;color:#334155;white-space:pre-wrap}
.ia-resultado-conteudo .ia-res-heading{font-size:13px;font-weight:700;color:#0f172a;margin:12px 0 4px;padding-bottom:4px;border-bottom:1px solid #f1f5f9}
.ia-resultado-conteudo .ia-res-divider{border:none;border-top:1px solid #f1f5f9;margin:10px 0}
.ia-resultado-acoes{display:flex;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #f1f5f9}

/* ── Garantia card — placeholder e resultado rico ── */
.garantia-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px 16px;color:#94a3b8;font-size:12px;text-align:center;border:1px dashed #cbd5e1;border-radius:10px}
.garantia-placeholder svg{opacity:.55}
.garantia-result-card{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;margin-top:10px}
.garantia-result-top{padding:11px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}
.garantia-result-grid{padding:11px 14px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.garantia-result-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin-bottom:2px}
.garantia-result-val{font-size:12px;font-weight:600;color:#334155}
.garantia-result-notes{font-size:11px;color:#94a3b8;margin-top:6px;font-style:italic}

/* ── Breadcrumb ── */
.po-breadcrumb{display:flex;align-items:center;gap:6px;font-size:12px;color:#94a3b8;margin-bottom:12px;flex-wrap:wrap}
.po-breadcrumb a{color:#64748b;text-decoration:none}
.po-breadcrumb a:hover{color:#2563eb;text-decoration:underline}
.po-breadcrumb span[aria-hidden]{color:#cbd5e1;font-size:10px}

/* ── Copy button ── */
.po-copy-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid #e2e8f0;background:transparent;cursor:pointer;color:#94a3b8;transition:color .12s,border-color .12s,background .12s;vertical-align:middle;padding:0;flex-shrink:0}
.po-copy-btn:hover{color:#2563eb;border-color:#93c5fd;background:#eff6ff}
.po-copy-btn.copied{color:#16a34a;border-color:#86efac;background:#f0fdf4}

/* ── Sort arrow in table headers ── */
.sort-arrow{font-size:10px;color:#94a3b8;margin-left:4px;user-select:none}
th[data-sort]:hover .sort-arrow{color:#2563eb}

/* ── Toast fade-out animation ── */
@keyframes po-toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes po-toast-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}
.toast{animation:po-toast-in .2s ease both}
.toast.is-hiding{animation:po-toast-out .3s ease both}

/* ── Form submit loading ── */
.btn[data-loading]{opacity:.7;pointer-events:none;position:relative}
.btn[data-loading]::after{content:'';display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:po-spin .6s linear infinite;margin-left:8px;vertical-align:middle}
@keyframes po-spin{to{transform:rotate(360deg)}}

/* ======================================================
   SISTEMA LOGIN — .sl-* classes (v2 — completo)
   ====================================================== */

/* auth-shell reset para telas de tela cheia (login, cadastro, legal, etc.) */
.auth-shell:has(.sl-frame),
.auth-shell:has(.cad-frame),
.auth-shell:has(.csuc-wrap),
.auth-shell:has(.cemconf-wrap),
.auth-shell:has(.legal-wrap) {
  display: block;
  padding: 0;
  background: transparent !important;
  min-height: 0;
}

.sl-frame{min-height:100vh;display:flex;align-items:stretch;background:#f8fafc}
.sl-split{display:grid;grid-template-columns:1fr 1fr;width:100%;min-height:100vh}
.sl-left{background:linear-gradient(145deg,#0a1628 0%,#132744 50%,#1a3558 100%);display:flex;align-items:center;justify-content:center;padding:48px 40px;position:relative;overflow:hidden}
.sl-left::before{content:'';position:absolute;top:-80px;right:-80px;width:320px;height:320px;border-radius:50%;border:1.5px solid rgba(255,255,255,.06);pointer-events:none}
.sl-left::after{content:'';position:absolute;bottom:-60px;left:-60px;width:240px;height:240px;border-radius:50%;border:1.5px solid rgba(255,255,255,.04);pointer-events:none}
.sl-left-inner{position:relative;z-index:1;max-width:380px;width:100%}
.sl-logo{display:flex;align-items:center;gap:10px;margin-bottom:32px}
.sl-logo-icon{width:38px;height:38px;background:#2563eb;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff;letter-spacing:-.5px;flex-shrink:0}
.sl-logo-text{font-size:15px;font-weight:700;color:rgba(255,255,255,.9);font-family:'Plus Jakarta Sans',sans-serif}
.sl-headline{font-family:'Outfit',sans-serif;font-size:26px;font-weight:700;color:#fff;line-height:1.25;margin:0 0 12px}
.sl-sub{font-family:'DM Sans',sans-serif;font-size:13px;color:rgba(255,255,255,.55);line-height:1.6;margin:0 0 24px}
.sl-pills{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:32px}
.sl-pill{font-size:11px;font-weight:500;color:rgba(255,255,255,.7);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:4px 12px;font-family:'DM Sans',sans-serif;white-space:nowrap}
.sl-banner{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px 18px}
.sl-banner-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(37,99,235,.85);margin-bottom:6px;font-family:'DM Sans',sans-serif}
.sl-banner-title{font-size:13px;font-weight:500;color:rgba(255,255,255,.9);margin-bottom:5px;font-family:'DM Sans',sans-serif}
.sl-banner-desc{font-size:11px;color:rgba(255,255,255,.4);line-height:1.55;font-family:'DM Sans',sans-serif}
.sl-right{display:flex;align-items:center;justify-content:center;padding:48px 40px;background:#fff}
.sl-right-inner{width:100%;max-width:380px}
.sl-head{margin-bottom:28px}
.sl-title{font-family:'Outfit',sans-serif;font-size:22px;font-weight:700;color:#0f172a;margin:0 0 6px}
.sl-subtitle{font-family:'DM Sans',sans-serif;font-size:13px;color:#64748b;margin:0}
.sl-form{display:flex;flex-direction:column;gap:18px}
.sl-field{display:flex;flex-direction:column;gap:5px}
.sl-field label{font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;color:#475569}
.sl-field input{height:42px;padding:0 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:14px;color:#0f172a;background:#fff;font-family:'DM Sans',sans-serif;transition:border-color .15s,box-shadow .15s;outline:none;width:100%;box-sizing:border-box}
.sl-field input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.sl-pwd-wrap{display:flex;align-items:center;gap:8px}
.sl-pwd-wrap input{flex:1;min-width:0}
.sl-eye{width:42px;height:42px;flex-shrink:0;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;color:#64748b;transition:border-color .15s,color .15s}
.sl-eye:hover{border-color:#cbd5e1;color:#475569}
.sl-eye svg{width:16px;height:16px}
.sl-btn{height:44px;width:100%;background:#2563eb;color:#fff;border:none;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;letter-spacing:.01em;margin-top:4px}
.sl-btn:hover{background:#1d4ed8}
.sl-btn:active{transform:scale(.99)}
.sl-foot{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid #f1f5f9}
.sl-version{font-size:11px;color:#94a3b8;font-family:'DM Sans',sans-serif}
.sl-help{font-size:12px;color:#2563eb;text-decoration:none;font-family:'DM Sans',sans-serif;font-weight:500}
.sl-help:hover{text-decoration:underline}
@media(max-width:640px){
  .sl-split{grid-template-columns:1fr;min-height:unset}
  .sl-left{padding:32px 24px;min-height:unset}
  .sl-left::before,.sl-left::after{display:none}
  .sl-headline{font-size:20px}
  .sl-right{padding:32px 24px}
  .sl-right-inner{max-width:100%}
}

/* ======================================================
   NOTIFICAÇÕES — .notif-bell-* + .notif-dd-* (topbar bell)
   ====================================================== */
.notif-bell-wrap { position:relative; flex-shrink:0; }
.notif-bell-btn {
  position:relative; width:34px; height:34px; border:1px solid #e2e8f0;
  border-radius:8px; background:#fff; display:flex; align-items:center;
  justify-content:center; cursor:pointer; color:#64748b;
  transition:border-color .12s, color .12s;
}
.notif-bell-btn:hover { border-color:#cbd5e1; color:#1e293b; }
.notif-bell-badge {
  position:absolute; top:-5px; right:-5px; min-width:16px; height:16px;
  background:#e24b4a; color:#fff; font-size:9px; font-weight:700;
  border-radius:99px; display:flex; align-items:center; justify-content:center;
  padding:0 3px; border:2px solid #fff; line-height:1;
}
.notif-dropdown {
  position:absolute; top:calc(100% + 8px); right:0; width:340px;
  background:#fff; border:1px solid #e2e8f0; border-radius:12px;
  box-shadow:0 8px 32px rgba(0,0,0,.12); z-index:300; overflow:hidden;
}
.notif-dd-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:11px 14px 10px; border-bottom:1px solid #f1f5f9;
}
.notif-dd-title { font-size:13px; font-weight:700; color:#1e293b; }
.notif-dd-clear {
  font-size:11px; color:#2563eb; background:none; border:none;
  cursor:pointer; padding:0; font-weight:600;
}
.notif-dd-clear:hover { text-decoration:underline; }
.notif-dd-list { max-height:340px; overflow-y:auto; }
.notif-dd-loading { padding:20px 14px; text-align:center; font-size:12px; color:#94a3b8; }
.notif-dd-item {
  display:flex; gap:10px; padding:10px 14px; border-bottom:1px solid #f8fafc;
  cursor:pointer; transition:background .1s; text-decoration:none; color:inherit;
}
.notif-dd-item:hover { background:#f8fafc; }
.notif-dd-item.is-unread { background:#eff6ff; }
.notif-dd-item.is-unread:hover { background:#dbeafe; }
.notif-dd-item.is-alta .notif-dd-dot { background:#e24b4a; }
.notif-dd-dot {
  width:7px; height:7px; border-radius:50%; flex-shrink:0; margin-top:5px;
  background:#3b82f6;
}
.notif-dd-item.is-read .notif-dd-dot { background:#e2e8f0; }
.notif-dd-body { flex:1; min-width:0; }
.notif-dd-titulo { font-size:12px; font-weight:600; color:#1e293b; line-height:1.3; }
.notif-dd-msg { font-size:11px; color:#64748b; margin-top:2px; line-height:1.4; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.notif-dd-tempo { font-size:10px; color:#94a3b8; margin-top:2px; }
.notif-dd-empty { padding:20px 14px; text-align:center; font-size:12px; color:#94a3b8; }

/* ======================================================
   AGENDA CARD — .ag-card-* / .ag-mini-* / .ag-expand-btn
   ====================================================== */
/* Compact card — fits inside .dash-panels (4-column grid) */
.ag-card {
  background:#fff; border:1px solid #e2e8f0; border-radius:12px;
  overflow:hidden; display:flex; flex-direction:column;
}
.ag-card-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 14px 9px; border-bottom:1px solid #f1f5f9; gap:6px;
}
.ag-card-title-row { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.ag-card-title { font-size:11px; font-weight:700; color:#1e293b; text-transform:uppercase; letter-spacing:.05em; }
.ag-pill {
  font-size:10px; font-weight:700; padding:2px 7px; border-radius:99px;
}
.ag-pill-hoje  { background:#dbeafe; color:#1d4ed8; }
.ag-pill-atr   { background:#fee2e2; color:#b91c1c; }
.ag-expand-btn {
  width:26px; height:26px; border:1px solid #e2e8f0; border-radius:6px;
  background:#f8fafc; display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:#64748b; flex-shrink:0; transition:border-color .12s, color .12s;
}
.ag-expand-btn:hover { border-color:#cbd5e1; color:#1e293b; }

.ag-card-body {
  display:flex; flex:1; min-height:0; overflow:hidden;
}

/* Mini calendar */
.ag-mini-cal {
  flex:1; min-width:0; padding:10px 10px 8px; border-right:1px solid #f1f5f9;
}
.ag-mini-nav {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:6px;
}
.ag-mini-prev,.ag-mini-next {
  background:none; border:none; cursor:pointer; color:#94a3b8; font-size:14px;
  line-height:1; padding:1px 4px; border-radius:4px; transition:color .1s;
}
.ag-mini-prev:hover,.ag-mini-next:hover { color:#1e293b; }
.ag-mini-month { font-size:10px; font-weight:700; color:#475569; }
.ag-mini-grid {
  display:grid; grid-template-columns:repeat(7,1fr); gap:1px;
}
.ag-mini-dow {
  text-align:center; font-size:8px; font-weight:700; color:#cbd5e1;
  text-transform:uppercase; padding-bottom:3px;
}
.ag-mini-cell {
  position:relative; display:flex; flex-direction:column; align-items:center;
  justify-content:center; min-height:18px; border-radius:4px;
  font-size:9px; font-weight:500; color:#64748b; cursor:default;
}
.ag-mini-empty { visibility:hidden; }
.ag-mini-hoje { background:#dbeafe; color:#1e40af; font-weight:800; }
.ag-mini-tem-ev { cursor:pointer; }
.ag-mini-tem-ev:hover { background:#f1f5f9; }
.ag-mini-hoje.ag-mini-tem-ev:hover { background:#bfdbfe; }
.ag-mini-dots {
  display:flex; gap:1px; position:absolute; bottom:1px;
  left:50%; transform:translateX(-50%);
}

/* Mini list (right side of compact card) */
.ag-mini-list {
  width:140px; flex-shrink:0; display:flex; flex-direction:column;
  overflow:hidden;
}
.ag-mini-empty { padding:14px 10px; font-size:10px; color:#94a3b8; text-align:center; }
.ag-mini-item {
  display:flex; align-items:stretch; gap:0; border-bottom:1px solid #f8fafc;
  text-decoration:none; color:inherit; transition:background .1s; overflow:hidden;
}
.ag-mini-item:last-child { border-bottom:none; }
.ag-mini-item:hover { background:#f8fafc; }
.ag-mini-item-atr { background:#fff5f5; border-color:#fecaca; }
.ag-mini-item-atr:hover { background:#fee2e2; }
.ag-mini-bar {
  width:3px; flex-shrink:0;
}
.ag-mini-bar-blue  { background:#2563eb; }
.ag-mini-bar-amber { background:#d97706; }
.ag-mini-bar-green { background:#16a34a; }
.ag-mini-bar-red   { background:#e24b4a; }
.ag-mini-item-body { padding:6px 8px; flex:1; min-width:0; }
.ag-mini-item-top  { display:flex; align-items:center; gap:4px; margin-bottom:1px; }
.ag-mini-tipo {
  font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
}
.ag-mini-tipo-blue  { color:#2563eb; }
.ag-mini-tipo-amber { color:#d97706; }
.ag-mini-tipo-green { color:#16a34a; }
.ag-mini-tipo-red   { color:#e24b4a; }
.ag-mini-date { font-size:9px; color:#94a3b8; margin-left:auto; flex-shrink:0; }
.ag-mini-obra { font-size:10px; color:#475569; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Shared dot (used in both mini and modal calendars) */
.ag-mo-dot {
  width:3px; height:3px; border-radius:50%; flex-shrink:0; display:inline-block;
}
.ag-mo-dot-blue  { background:#2563eb; }
.ag-mo-dot-amber { background:#d97706; }
.ag-mo-dot-green { background:#16a34a; }
.ag-mo-dot-red   { background:#e24b4a; }

/* ======================================================
   AGENDA MODAL — .ag-modal-*
   ====================================================== */
.ag-modal-overlay {
  position:fixed; inset:0; background:rgba(15,23,42,.45);
  z-index:400; display:flex; align-items:center; justify-content:center;
  padding:20px;
}
.ag-modal {
  background:#fff; border-radius:14px; width:100%; max-width:780px;
  max-height:90vh; display:flex; flex-direction:column;
  box-shadow:0 24px 64px rgba(0,0,0,.2); overflow:hidden;
}
.ag-modal-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 20px; border-bottom:1px solid #f1f5f9; flex-shrink:0;
}
.ag-modal-title { font-size:15px; font-weight:700; color:#1e293b; }
.ag-modal-close {
  width:32px; height:32px; border:1px solid #e2e8f0; border-radius:7px;
  background:#f8fafc; display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:#64748b; transition:border-color .12s, color .12s;
}
.ag-modal-close:hover { border-color:#cbd5e1; color:#1e293b; }

/* Modal counters */
.ag-modal-counters {
  display:grid; grid-template-columns:repeat(4,1fr); gap:10px;
  padding:14px 20px; border-bottom:1px solid #f1f5f9; flex-shrink:0;
}
.ag-mo-counter {
  background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px;
  padding:10px 12px; text-align:center;
}
.ag-mo-counter-red { border-color:#fecaca; background:#fff5f5; }
.ag-mo-cval { font-size:22px; font-weight:800; color:#0f172a; line-height:1; }
.ag-mo-counter-red .ag-mo-cval { color:#e24b4a; }
.ag-mo-clbl { font-size:10px; color:#64748b; margin-top:3px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; }

/* Modal body */
.ag-modal-body {
  display:grid; grid-template-columns:1fr 1fr; gap:0; flex:1; overflow:hidden;
}
.ag-modal-cal {
  padding:16px 20px; border-right:1px solid #f1f5f9; overflow-y:auto;
}
.ag-modal-cal-nav {
  display:flex; align-items:center; justify-content:space-between; margin-bottom:10px;
}
.ag-modal-month { font-size:13px; font-weight:700; color:#1e293b; }
.ag-cal-nav {
  width:28px; height:28px; border-radius:7px; border:1px solid #e2e8f0;
  background:#fff; display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:#64748b; transition:border-color .12s, color .12s;
}
.ag-cal-nav:hover { border-color:#cbd5e1; color:#1e293b; }
.ag-modal-grid {
  display:grid; grid-template-columns:repeat(7,1fr); gap:3px;
}
.ag-mo-dow {
  text-align:center; font-size:9px; font-weight:700; color:#94a3b8;
  text-transform:uppercase; padding-bottom:5px;
}
.ag-mo-cell {
  position:relative; display:flex; flex-direction:column; align-items:center;
  justify-content:center; height:30px; border-radius:6px;
  font-size:11px; font-weight:500; color:#475569; cursor:default;
}
.ag-mo-cell-empty { visibility:hidden; }
.ag-mo-hoje { background:#dbeafe; color:#1e40af; font-weight:800; }
.ag-mo-tem-ev { cursor:pointer; }
.ag-mo-tem-ev:hover { background:#f1f5f9; }
.ag-mo-hoje.ag-mo-tem-ev:hover { background:#bfdbfe; }
.ag-mo-dots {
  display:flex; gap:2px; position:absolute; bottom:2px;
  left:50%; transform:translateX(-50%);
}
.ag-mo-dot { width:4px; height:4px; border-radius:50%; }
.ag-modal-legend {
  display:flex; gap:10px; margin-top:10px; padding-top:10px;
  border-top:1px solid #f1f5f9; flex-wrap:wrap;
}
.ag-mo-leg { display:flex; align-items:center; gap:4px; font-size:10px; color:#64748b; }

/* Modal list */
.ag-modal-list { padding:14px 16px; overflow-y:auto; }
.ag-mo-list-title {
  font-size:11px; font-weight:700; color:#94a3b8; text-transform:uppercase;
  letter-spacing:.05em; margin-bottom:10px;
}
.ag-mo-item {
  display:flex; gap:10px; padding:10px 0; border-bottom:1px solid #f8fafc;
  text-decoration:none; color:inherit; transition:background .1s;
  align-items:flex-start;
}
.ag-mo-item:last-child { border-bottom:none; }
.ag-mo-item-atr { background:#fff5f5; padding:8px 8px; border-radius:8px; border:1px solid #fecaca; margin-bottom:4px; }
.ag-mo-item:hover { opacity:.85; }
.ag-mo-item-date { flex-shrink:0; width:36px; text-align:center; }
.ag-mo-item-day { font-size:14px; font-weight:800; color:#0f172a; line-height:1; }
.ag-mo-item-atr .ag-mo-item-day { color:#e24b4a; }
.ag-mo-item-hr { font-size:9px; color:#94a3b8; }
.ag-mo-item-body { flex:1; min-width:0; }
.ag-mo-item-row { display:flex; align-items:center; gap:6px; margin-bottom:2px; flex-wrap:wrap; }
.ag-mo-item-tipo {
  font-size:10px; font-weight:700; padding:2px 6px; border-radius:99px;
  text-transform:uppercase;
}
.ag-mo-item-tipo-blue   { background:#eff6ff; color:#2563eb; }
.ag-mo-item-tipo-amber  { background:#fffbeb; color:#d97706; }
.ag-mo-item-tipo-green  { background:#f0fdf4; color:#16a34a; }
.ag-mo-item-tipo-red    { background:#fee2e2; color:#e24b4a; }
.ag-mo-item-prot { font-size:11px; font-weight:700; color:#1e293b; }
.ag-mo-item-info { font-size:11px; color:#64748b; }
.ag-mo-empty { padding:20px; text-align:center; font-size:12px; color:#94a3b8; }
.ag-mo-loading { padding:20px; text-align:center; font-size:12px; color:#94a3b8; }

/* Responsive */
@media(max-width:768px) {
  .ag-card-body { flex-direction:column; }
  .ag-mini-cal { border-right:none; border-bottom:1px solid #f1f5f9; }
  .ag-mini-list { width:100%; flex-direction:row; flex-wrap:wrap; }
  .ag-mini-item { width:50%; }
  .ag-modal-body { grid-template-columns:1fr; }
  .ag-modal-cal { border-right:none; border-bottom:1px solid #f1f5f9; }
  .ag-modal-counters { grid-template-columns:repeat(2,1fr); }
}


/* ── Entrega Stepper ──────────────────────────────────────── */
.ent-ctx{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:6px}
.ent-ctx-title{font-size:13px;font-weight:700;color:#1e293b}
.ent-ctx-sub{font-size:12px;color:var(--muted)}
.ent-ctx .btn{margin-left:auto}
.ent-stepper{display:flex;gap:4px;padding:12px 16px;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:14px;overflow-x:auto}
.ent-step{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:11px;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap;border:1px solid transparent;transition:.12s}
.ent-step:hover{background:#f8fafc;border-color:#f1f5f9}
.ent-step .step-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;border:2px solid #cbd5e1;background:#fff}
.ent-step.done{color:var(--good)}
.ent-step.done .step-dot{background:var(--good);border-color:var(--good)}
.ent-step.current{color:var(--blue);background:var(--blue-soft);border-color:#bfdbfe}
.ent-step.current .step-dot{background:var(--blue);border-color:var(--blue)}
.ent-step.blocked{color:var(--bad)}
.ent-step.blocked .step-dot{background:var(--bad);border-color:var(--bad)}
.ent-step-conn{width:12px;height:2px;background:var(--line);flex-shrink:0;border-radius:1px;align-self:center}
.ent-step-conn.done{background:#86efac}
@media(max-width:768px){.ent-stepper{gap:2px;padding:10px 12px}.ent-step{padding:5px 8px;font-size:10px}}

/* ── Unidade Show (hub de entrega) ──────────────────────── */
.uni-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}
.uni-avatar{width:48px;height:48px;border-radius:12px;background:var(--blue-soft);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0}
.uni-info h2{font-size:18px;font-weight:800;color:#0f172a;margin:0}
.uni-info .meta{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}
.uni-info .meta span{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px}
.uni-progress{display:flex;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:16px;background:#fff}
.uni-prog-item{flex:1;padding:12px 8px;text-align:center;border-right:1px solid #f1f5f9;cursor:pointer;transition:.1s;position:relative}
.uni-prog-item:last-child{border-right:none}
.uni-prog-item:hover{background:#fafbfe}
.uni-prog-item .pi-icon{width:30px;height:30px;border-radius:8px;margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-size:13px}
.uni-prog-item .pi-title{font-size:10px;font-weight:700;color:#1e293b}
.uni-prog-item .pi-status{font-size:9px;font-weight:600;margin-top:2px}
.uni-prog-item.done .pi-icon{background:#dcfce7}
.uni-prog-item.done .pi-status{color:var(--good)}
.uni-prog-item.current .pi-icon{background:#dbeafe}
.uni-prog-item.current .pi-status{color:var(--blue)}
.uni-prog-item.pending .pi-icon{background:#f1f5f9}
.uni-prog-item.pending .pi-status{color:#94a3b8}
.uni-prog-item.blocked .pi-icon{background:#fef2f2}
.uni-prog-item.blocked .pi-status{color:var(--bad)}
.uni-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.uni-detail-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;transition:.1s}
.uni-detail-card:hover{border-color:#cbd5e1}
.uni-dc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.uni-dc-label{font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em}
.uni-dc-status{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600}
.uni-dc-date{font-size:11px;color:var(--muted);margin-top:2px}
.uni-dc-actions{margin-top:8px;display:flex;gap:6px}
.uni-next-action{padding:12px 16px;background:#fff;border:1px solid #dbeafe;border-radius:10px;display:flex;align-items:center;gap:12px;margin-bottom:16px}
.uni-next-action .na-icon{width:36px;height:36px;border-radius:9px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.uni-next-action .na-text{flex:1}
.uni-next-action .na-label{font-size:10px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.06em}
.uni-next-action .na-desc{font-size:13px;color:#475569;margin-top:1px}
.uni-doc-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #f8fafc}
.uni-doc-row:last-child{border-bottom:none}
.uni-doc-info{flex:1}
.uni-doc-name{font-size:12px;font-weight:600;color:#1e293b}
.uni-doc-date{font-size:11px;color:#94a3b8}
.uni-tl-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid #f8fafc}
.uni-tl-item:last-child{border-bottom:none}
.uni-tl-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}
.uni-tl-content{flex:1;font-size:12px;color:#475569}
.uni-tl-content b{color:#1e293b;font-weight:600}
.uni-tl-time{font-size:11px;color:#94a3b8;flex-shrink:0}
@media(max-width:768px){.uni-header{flex-direction:column}.uni-detail-grid{grid-template-columns:1fr}.uni-progress{flex-wrap:wrap}.uni-prog-item{min-width:calc(25% - 1px)}}

/* === ENTREGAS MODULE — migrated from inline view style blocks === */
.ent-pg-narrow{max-width:720px}
.ent-bread{font-size:12px;color:#94a3b8;margin-bottom:4px}
.ent-bread a{color:#2563eb;text-decoration:none}
.ent-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:4px}
.ent-field-hint{font-size:11px;color:#94a3b8;margin-top:3px}
.ent-field-ro{background:#f8fafc !important;color:#475569 !important;cursor:default}
.ent-btn-success{background:#16a34a;color:#fff;border-color:#16a34a}
.ent-btn-success:hover{background:#15803d}
.ent-btn-danger-ghost{border-color:transparent;color:#dc2626;background:transparent}
.ent-btn-danger-ghost:hover{background:#fef2f2}
.ent-info-banner{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;font-size:12px;line-height:1.5;margin-bottom:14px;border:1px solid}
.ent-info-banner.blue{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}
.ent-info-banner.amber{background:#fffbeb;border-color:#fde68a;color:#92400e}
.ent-info-banner.orange{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.ent-info-banner.green{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}
.ent-info-banner svg{flex-shrink:0;margin-top:1px}
/* Aceite / assinatura blocks (reutilizados de aceite_block.php) */
.enc-link-card{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.enc-link-card.pending-aceite{background:#fff;border-color:#e2e8f0}
.enc-link-title{font-size:13px;font-weight:700;color:#15803d}
.enc-link-title.pend{color:#475569}
.enc-link-sub{font-size:11px;color:#64748b;margin-top:2px}
.enc-link-actions{display:flex;gap:6px;flex-wrap:wrap}
.enc-status-row{display:flex;align-items:center;gap:8px}
.enc-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.enc-dot-pend{background:#f59e0b}
.enc-dot-ok{background:#16a34a}
.ent-filters{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.ent-filters select,.ent-filters input{height:32px;padding:0 10px;border-radius:8px;border:1px solid #e2e8f0;font-size:12px;font-family:inherit;background:#fff;color:#0f172a}
.ent-table-wrap{overflow-x:auto}
.ent-list-row{display:grid;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #f1f5f9;transition:.08s}
.ent-list-row:last-child{border-bottom:none}
.ent-list-row:hover{background:#fafbfe}
.ent-list-head{display:grid;align-items:center;gap:10px;font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;padding:8px 16px;border-bottom:1px solid #f1f5f9}
.ent-decl-head,.ent-decl-row{grid-template-columns:160px 1fr 100px 120px;min-width:500px}
.ent-manual-head,.ent-manual-row{grid-template-columns:160px 1fr 110px 90px;min-width:480px}
.ent-r-unit{font-size:13px;font-weight:600;color:#1e293b}
.ent-r-obra{font-size:11px;color:#64748b;margin-top:1px}
.ent-r-cliente{font-size:11px;color:#64748b;margin-top:1px}
.ent-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;font-size:10px;font-weight:700}
.ent-badge-signed{background:#dcfce7;color:#15803d}
.ent-badge-draft{background:#fef9c3;color:#92400e}
.ent-badge-done{background:#dcfce7;color:#15803d}
.ent-badge-progress{background:#dbeafe;color:#1d4ed8}
.ent-badge-none{background:#f1f5f9;color:#64748b}
.ent-empty-state{text-align:center;padding:48px 20px;color:#94a3b8;font-size:13px}
.ent-empty-icon{font-size:32px;margin-bottom:12px}
.ent-empty-title{font-size:14px;font-weight:600;color:#475569;margin-bottom:6px}
.ent-empty-desc{font-size:12px;color:#94a3b8}
.ent-steps-mini{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.ent-sm-step{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;border:1px solid #e2e8f0;color:#64748b}
.ent-sm-step.done{background:#dcfce7;color:#15803d;border-color:#bbf7d0}
.ent-sm-step.current{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}
.ent-sm-step svg{flex-shrink:0}
.ent-status-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;margin-bottom:12px}
.ent-sb-wait{background:#fffbeb;border:1px solid #fde68a}
.ent-sb-done{background:#f0fdf4;border:1px solid #bbf7d0}
.ent-sb-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ent-sb-wait .ent-sb-icon{background:#fef3c7}
.ent-sb-done .ent-sb-icon{background:#dcfce7}
.ent-sb-info{flex:1}
.ent-sb-wait .ent-sb-title{font-size:13px;font-weight:700;color:#92400e}
.ent-sb-wait .ent-sb-desc{font-size:12px;color:#78350f;margin-top:1px}
.ent-sb-done .ent-sb-title{font-size:13px;font-weight:700;color:#15803d}
.ent-sb-done .ent-sb-desc{font-size:12px;color:#166534;margin-top:1px}
.ent-media-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:800;background:#dbeafe;color:#1d4ed8}
.ent-score-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f8fafc}
.ent-score-row:last-child{border-bottom:none}
.ent-score-label{font-size:12px;color:#475569;width:170px;flex-shrink:0}
.ent-score-bar-wrap{flex:1;height:8px;background:#f1f5f9;border-radius:4px;overflow:hidden}
.ent-score-bar{height:100%;border-radius:4px;transition:width .6s}
.ent-score-bar-9,.ent-score-bar-10{background:#16a34a}
.ent-score-bar-7,.ent-score-bar-8{background:#2563eb}
.ent-score-bar-5,.ent-score-bar-6{background:#d97706}
.ent-score-bar-0,.ent-score-bar-1,.ent-score-bar-2,.ent-score-bar-3,.ent-score-bar-4{background:#dc2626}
.ent-score-val{font-size:13px;font-weight:800;width:28px;text-align:right;flex-shrink:0;color:#1e293b}
.ent-score-10{color:#16a34a}.ent-score-9{color:#16a34a}.ent-score-8{color:#2563eb}.ent-score-7{color:#2563eb}
.ent-score-6{color:#d97706}.ent-score-5{color:#d97706}.ent-score-4{color:#dc2626}.ent-score-3{color:#dc2626}
.ent-score-2{color:#dc2626}.ent-score-1{color:#dc2626}.ent-score-0{color:#dc2626}
.ent-ind-sim{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700;background:#dcfce7;color:#15803d}
.ent-ind-talvez{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700;background:#fef9c3;color:#78350f}
.ent-ind-nao{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700;background:#fee2e2;color:#dc2626}
.ent-comment-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;margin-top:10px;font-size:13px;color:#334155;line-height:1.6;white-space:pre-wrap}
.ent-share-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;margin-bottom:12px}
.ent-share-title{font-size:13px;font-weight:700;color:#1e293b;margin-bottom:10px}
.ent-share-url-row{display:flex;gap:8px;margin-bottom:10px}
.ent-share-url-input{flex:1;height:34px;padding:0 10px;border-radius:8px;border:1px solid #e2e8f0;font-size:12px;font-family:inherit;background:#f8fafc;color:#334155}
.ent-share-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ent-share-opt{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:.12s;text-decoration:none}
.ent-share-opt:hover{border-color:#93c5fd;background:#fafbfe}
.ent-so-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ent-so-copy .ent-so-icon{background:#eff6ff;color:#2563eb}
.ent-so-wpp .ent-so-icon{background:#dcfce7;color:#16a34a}
.ent-so-text{flex:1}
.ent-so-title{font-size:12px;font-weight:700;color:#1e293b}
.ent-so-desc{font-size:11px;color:#64748b;margin-top:1px}
.ent-copied-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#1e293b;color:#fff;padding:8px 18px;border-radius:20px;font-size:12px;font-weight:600;opacity:0;transition:opacity .3s;pointer-events:none;z-index:999}
.ent-copied-toast.show{opacity:1}
.ent-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:14px}
.ent-kpi{background:#fff;border-radius:10px;padding:14px 12px;text-align:center;border:1px solid #e2e8f0;cursor:pointer;transition:.15s}
.ent-kpi:hover{border-color:#cbd5e1}
.ent-kpi.ent-kpi-active{border-color:#2563eb;background:#eff6ff}
.ent-kpi-val{font-size:22px;font-weight:800}
.ent-kpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-top:2px}
.ent-kpi-bar{height:3px;border-radius:2px;margin-top:8px;background:#f1f5f9;overflow:hidden}
.ent-kpi-bar-fill{height:100%;border-radius:2px;transition:width .4s ease}
.ent-alert-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:12px;font-weight:600;border:1px solid}
.ent-alert-bar svg{flex-shrink:0}
.ent-alert-bar.warn{background:#fffbeb;border-color:#fde68a;color:#92400e}
.ent-alert-bar.info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}
.ent-alert-count{background:#fff;border-radius:6px;padding:1px 8px;font-size:11px;font-weight:800;margin-left:auto;border:1px solid currentColor}
.ent-view-toggle{display:flex;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;margin-left:auto}
.ent-view-toggle button{padding:6px 12px;font-size:11px;font-weight:600;border:none;background:#fff;color:#64748b;cursor:pointer;font-family:inherit;transition:.1s}
.ent-view-toggle button:not(:last-child){border-right:1px solid #e2e8f0}
.ent-view-toggle button.on{background:#2563eb;color:#fff}
.ent-sort-btn{display:inline-flex;align-items:center;gap:4px;padding:0 10px;height:32px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:11px;font-weight:600;color:#475569;cursor:pointer;font-family:inherit}
.ent-sort-btn:hover{border-color:#cbd5e1}
.ent-unit-row{display:grid;grid-template-columns:minmax(160px,200px) 1fr 100px;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #f1f5f9;transition:.1s;cursor:pointer}
.ent-unit-row:hover{background:#fafbfe}
.ent-unit-row:last-child{border-bottom:none}
.ent-unit-info .name{font-size:13px;font-weight:600;color:#1e293b;display:flex;align-items:center;gap:6px}
.ent-unit-info .client{font-size:11px;color:#64748b;margin-top:1px}
.ent-obra-tag{font-size:9px;font-weight:700;padding:1px 6px;border-radius:4px;background:#f1f5f9;color:#64748b}
.ent-mini-steps{display:flex;gap:2px;align-items:center}
.ent-mini-step{position:relative;flex:1;height:26px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;letter-spacing:.02em;transition:.15s;border:1px solid transparent}
.ent-mini-step.done{background:#dcfce7;color:#15803d;border-color:#bbf7d0}
.ent-mini-step.active{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd;animation:ent-pulse 2s infinite}
@keyframes ent-pulse{0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,0)}50%{box-shadow:0 0 0 3px rgba(37,99,235,.1)}}
.ent-mini-step.pending{background:#f8fafc;color:#cbd5e1;border-color:#f1f5f9}
.ent-mini-step.blocked{background:#fef2f2;color:#dc2626;border-color:#fecaca}
.ent-mini-step.skip{background:#f8fafc;color:#94a3b8;border-color:#e2e8f0;font-style:italic;opacity:.6}
.ent-mini-conn{width:4px;height:2px;background:#e2e8f0;flex-shrink:0;border-radius:1px}
.ent-mini-conn.done{background:#86efac}
.ent-unit-actions{display:flex;gap:4px;justify-content:flex-end;align-items:center}
.ent-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:700;white-space:nowrap}
.ent-pill-done{background:#dcfce7;color:#15803d}
.ent-pill-progress{background:#dbeafe;color:#1d4ed8}
.ent-pill-pending{background:#fef9c3;color:#92400e}
.ent-pill-alert{background:#fef2f2;color:#dc2626}
.ent-pbar{width:48px;height:4px;border-radius:2px;background:#f1f5f9;overflow:hidden;margin-top:4px}
.ent-pbar-fill{height:100%;border-radius:2px}
.ent-detail-panel{overflow:hidden;max-height:0;opacity:0;transition:max-height .3s ease,opacity .2s ease,padding .2s ease;padding:0 16px;background:#f8fafc;border-top:0px solid #e2e8f0}
.ent-detail-panel.open{max-height:600px;opacity:1;padding:16px;border-top-width:1px}
.ent-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ent-detail-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;transition:.1s}
.ent-detail-card:hover{border-color:#cbd5e1}
.ent-dc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.ent-dc-title{font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em}
.ent-dc-status{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600}
.ent-dc-date{font-size:11px;color:#64748b;margin-top:2px}
.ent-dc-actions{margin-top:8px;display:flex;gap:6px}
.ent-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.ent-dot-green{background:#16a34a}.ent-dot-blue{background:#2563eb}.ent-dot-gray{background:#cbd5e1}.ent-dot-red{background:#dc2626}.ent-dot-amber{background:#d97706}
.ent-na{margin-top:12px;padding:10px 14px;background:#fff;border:1px solid #dbeafe;border-radius:10px;display:flex;align-items:center;gap:10px}
.ent-na-icon{width:32px;height:32px;border-radius:8px;background:#eff6ff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ent-na-text{flex:1}
.ent-na-label{font-size:10px;font-weight:700;color:#2563eb;text-transform:uppercase;letter-spacing:.06em}
.ent-na-desc{font-size:12px;color:#475569;margin-top:1px}
.ent-done-banner{margin-top:12px;padding:10px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;font-size:12px;color:#15803d;font-weight:600;display:flex;align-items:center;gap:8px}
.ent-tl-mini{display:flex;flex-direction:column;gap:0;margin-top:12px;padding:10px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:10px}
.ent-tl-entry{display:flex;align-items:flex-start;gap:8px;padding:6px 0}
.ent-tl-entry:not(:last-child){border-bottom:1px solid #f8fafc}
.ent-tl-dot{width:6px;height:6px;border-radius:50%;margin-top:5px;flex-shrink:0}
.ent-tl-content{flex:1;font-size:11px;color:#475569}
.ent-tl-content b{color:#1e293b;font-weight:600}
.ent-tl-time{font-size:10px;color:#94a3b8;flex-shrink:0}
.ent-legend{display:flex;gap:12px;flex-wrap:wrap;padding:6px 16px;font-size:10px;color:#64748b}
.ent-legend-item{display:flex;align-items:center;gap:4px}
.ent-legend-dot{width:8px;height:8px;border-radius:3px;flex-shrink:0}
.ent-summary-bar{display:flex;gap:12px;padding:12px 16px;background:#f8fafc;border-radius:10px;margin-bottom:14px;flex-wrap:wrap;align-items:center}
.ent-sumbar-item{font-size:12px;display:flex;align-items:center;gap:4px}
.ent-sumbar-num{font-weight:800;font-size:14px}
.ent-sumbar-div{width:1px;height:20px;background:#e2e8f0}
.ent-progress-ring{width:42px;height:42px;flex-shrink:0}
.ent-progress-ring circle{fill:none;stroke-width:4;stroke-linecap:round}
.ent-progress-ring .bg{stroke:#f1f5f9}
.ent-progress-ring .fill{stroke:#2563eb;transition:stroke-dashoffset .4s ease}
.ent-pr-center{font-size:10px;font-weight:800;fill:#1e293b}
.ent-section{margin-bottom:0}
.ent-section-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;cursor:pointer;transition:.1s;border-bottom:1px solid #f1f5f9;user-select:none}
.ent-section-head:hover{background:#fafbfe}
.ent-sh-left{display:flex;align-items:center;gap:8px}
.ent-sh-name{font-size:13px;font-weight:700;color:#1e293b}
.ent-sh-count{font-size:11px;color:#64748b}
.ent-sh-badge{padding:2px 8px;border-radius:12px;font-size:10px;font-weight:700}
.ent-sh-badge-ok{background:#dcfce7;color:#15803d}
.ent-sh-badge-nok{background:#fef2f2;color:#dc2626}
.ent-sh-badge-partial{background:#fef9c3;color:#92400e}
.ent-sh-badge-empty{background:#f1f5f9;color:#94a3b8}
.ent-sh-chev{width:16px;height:16px;color:#94a3b8;transition:transform .2s;flex-shrink:0}
.ent-sh-chev.open{transform:rotate(180deg)}
.ent-section-body{display:none;padding:0;border-bottom:1px solid #f1f5f9}
.ent-section-body.open{display:block}
.ent-check-item{display:flex;align-items:flex-start;gap:8px;padding:8px 16px;border-bottom:1px solid #f8fafc;transition:.08s}
.ent-check-item:last-child{border-bottom:none}
.ent-check-item:hover{background:#fcfcfd}
.ent-ci-text{flex:1;font-size:13px;color:#1e293b;padding-top:3px}
.ent-ci-hint{font-size:11px;color:#94a3b8;margin-top:1px}
.ent-ci-btns{display:flex;gap:4px;flex-shrink:0}
.ent-ci-btn{width:32px;height:30px;border-radius:7px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;font-size:11px;font-weight:700;transition:.12s;font-family:inherit;display:flex;align-items:center;justify-content:center}
.ent-ci-btn:hover{border-color:#cbd5e1}
.ent-ci-btn.c{background:#dcfce7;border-color:#86efac;color:#15803d}
.ent-ci-btn.nc{background:#fef2f2;border-color:#fca5a5;color:#dc2626}
.ent-ci-btn.na{background:#f1f5f9;border-color:#e2e8f0;color:#94a3b8}
/* Chips somente-leitura para fichas concluídas */
.ent-ci-btns.ro{min-width:44px}
.ent-ci-chip{display:inline-flex;align-items:center;justify-content:center;width:32px;height:26px;border-radius:6px;font-size:11px;font-weight:700;border:1px solid}
.ent-ci-chip.conf{background:#dcfce7;border-color:#bbf7d0;color:#15803d}
.ent-ci-chip.nc{background:#fef2f2;border-color:#fca5a5;color:#dc2626}
.ent-ci-chip.na{background:#f1f5f9;border-color:#e2e8f0;color:#94a3b8}
.ent-ci-chip.pend{background:#f8fafc;border-color:#e2e8f0;color:#cbd5e1}
.ent-ci-obs-ro{padding:6px 10px;background:#fef2f2;border-radius:6px;font-size:12px;color:#991b1b;font-style:italic;border-left:3px solid #fca5a5}
.ent-ci-obs{margin:4px 16px 8px 40px;display:none}
.ent-ci-obs.show{display:flex;flex-direction:column;gap:6px}
.ent-ci-obs textarea{width:100%;height:32px;padding:6px 8px;border-radius:6px;border:1px solid #e2e8f0;font-size:11px;font-family:inherit;resize:none}
.ent-ci-obs textarea:focus{border-color:rgba(37,99,235,.4);outline:none}
.ent-ci-photo{display:none;margin:2px 16px 8px 40px}
.ent-ci-photo.show{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ent-photo-thumb{width:44px;height:44px;border-radius:6px;background:#f1f5f9;border:1px dashed #cbd5e1;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;color:#94a3b8;transition:.1s}
.ent-photo-thumb:hover{background:#eff6ff;border-color:#93c5fd;color:#2563eb}
.ent-photo-added{border-style:solid !important;background:#eff6ff;border-color:#bfdbfe !important;position:relative;overflow:visible}
.ent-photo-added img{width:100%;height:100%;object-fit:cover;display:block}
.ent-photo-thumb a{display:block;width:100%;height:100%;overflow:hidden;border-radius:5px}
.ent-pa-x{position:absolute;top:-9px;right:-9px;width:22px;height:22px;border-radius:50%;background:#dc2626;color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;border:2px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.28);z-index:10;line-height:1;transition:background .12s,transform .12s}
.ent-pa-x:hover{background:#b91c1c;transform:scale(1.18)}
.ent-bottom-bar{position:sticky;bottom:0;background:#fff;border-top:1px solid #e2e8f0;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:0 0 12px 12px;z-index:10}
.ent-quick-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.ent-qa-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;font-size:12px;font-weight:600;color:#475569;font-family:inherit;transition:.1s}
.ent-qa-btn:hover{background:#f8fafc;border-color:#cbd5e1}
.ent-qa-btn svg{flex-shrink:0}
.ent-q-item{padding:10px 16px;border-bottom:1px solid #f8fafc;transition:.08s}
.ent-q-item:last-child{border-bottom:none}
.ent-q-item:hover{background:#fcfcfd}
.ent-q-top{display:flex;align-items:flex-start;gap:10px}
.ent-q-num{width:24px;height:24px;border-radius:6px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#64748b;flex-shrink:0;margin-top:1px}
.ent-q-num.answered{background:#dcfce7;color:#15803d}
.ent-q-num.problem{background:#fef2f2;color:#dc2626}
.ent-q-text{flex:1;font-size:13px;color:#1e293b}
.ent-q-btns{display:flex;gap:0;flex-shrink:0;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}
.ent-q-btn{width:44px;height:32px;border:none;background:#fff;cursor:pointer;font-size:11px;font-weight:700;font-family:inherit;transition:.12s;color:#94a3b8}
.ent-q-btn:not(:last-child){border-right:1px solid #e2e8f0}
.ent-q-btn:hover{background:#f8fafc}
.ent-q-btn.yes{background:#dcfce7;color:#15803d}
.ent-q-btn.no{background:#fef2f2;color:#dc2626}
.ent-q-detail{margin:6px 0 2px 34px;display:none}
.ent-q-detail.show{display:block}
.ent-q-detail textarea{width:100%;height:36px;padding:6px 10px;border-radius:7px;border:1px solid #e2e8f0;font-size:12px;font-family:inherit;resize:none}
.ent-q-detail textarea:focus{border-color:rgba(37,99,235,.4);outline:none}
.ent-q-photos{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.ent-photo-add{width:40px;height:40px;border-radius:6px;background:#f8fafc;border:1px dashed #cbd5e1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.1s}
.ent-photo-add:hover{background:#eff6ff;border-color:#93c5fd}
.ent-photo-x,.photo-x{position:absolute;top:-9px;right:-9px;width:22px;height:22px;border-radius:50%;background:#dc2626;color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;border:2px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.28);z-index:10;line-height:1;transition:background .12s,transform .12s}
.ent-photo-x:hover,.photo-x:hover{background:#b91c1c;transform:scale(1.18)}
.ent-sig-section{margin-top:16px;margin-bottom:14px}
.ent-sig-title{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.ent-sig-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ent-sig-box{border:2px dashed #e2e8f0;border-radius:10px;padding:16px;text-align:center;cursor:pointer;transition:.15s;min-height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.ent-sig-box:hover{border-color:#93c5fd;background:#fafbfe}
.ent-sig-box.signed{border-style:solid;border-color:#86efac;background:#f0fdf4}
.ent-sig-label{font-size:12px;font-weight:600;color:#64748b}
.ent-sig-hint{font-size:11px;color:#94a3b8}
.ent-sig-box.signed .ent-sig-label{color:#15803d}
.ent-sig-box.signed .ent-sig-hint{color:#15803d}
.ent-sig-img{max-width:160px;max-height:50px}
.ent-result-summary{padding:14px 16px;border-radius:10px;margin-top:14px;border:1px solid;display:none}
.ent-result-summary.show{display:block}
.ent-result-summary.ok{background:#f0fdf4;border-color:#bbf7d0}
.ent-result-summary.issues{background:#fffbeb;border-color:#fde68a}
.ent-rs-title{font-size:14px;font-weight:700;margin-bottom:4px}
.ent-rs-desc{font-size:12px}
.ent-result-summary.ok .ent-rs-title{color:#15803d}
.ent-result-summary.ok .ent-rs-desc{color:#166534}
.ent-result-summary.issues .ent-rs-title{color:#92400e}
.ent-result-summary.issues .ent-rs-desc{color:#78350f}
.ent-sig-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1000;align-items:center;justify-content:center}
.ent-sig-modal-overlay.open{display:flex}
.ent-sig-modal{background:#fff;border-radius:14px;padding:20px;width:min(480px,96vw);box-shadow:0 8px 32px rgba(0,0,0,.18)}
.ent-sig-modal h3{font-size:14px;font-weight:700;margin-bottom:12px;color:#1e293b}
.ent-sig-canvas-wrap{border:2px dashed #e2e8f0;border-radius:10px;background:#fafafa;margin-bottom:10px;touch-action:none}
.ent-sig-canvas-wrap canvas{display:block;width:100%;height:160px;cursor:crosshair}
.ent-tipo-toggle{display:flex;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;margin-bottom:14px}
.ent-tipo-toggle button{flex:1;padding:10px 16px;font-size:13px;font-weight:600;border:none;background:#fff;color:#64748b;cursor:pointer;font-family:inherit;transition:.1s;text-align:center}
.ent-tipo-toggle button:not(:last-child){border-right:1px solid #e2e8f0}
.ent-tipo-toggle button.on{background:#2563eb;color:#fff}
.ent-tipo-toggle button .tt-sub{font-size:10px;font-weight:400;opacity:.7;margin-top:1px;display:block}
.ent-sec-list{display:flex;flex-direction:column;gap:0}
.ent-sec-item{display:flex;align-items:stretch;border-bottom:1px solid #f1f5f9;transition:.08s}
.ent-sec-item:last-child{border-bottom:none}
.ent-sec-item:hover{background:#fafbfe}
.ent-sec-drag{width:28px;display:flex;align-items:center;justify-content:center;color:#cbd5e1;cursor:grab;flex-shrink:0;font-size:16px}
.ent-sec-drag:hover{color:#94a3b8}
.ent-sec-num{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;margin-top:10px}
.ent-sec-num-auto{background:#dcfce7;color:#15803d}
.ent-sec-num-edit{background:#dbeafe;color:#1d4ed8}
.ent-sec-num-upload{background:#fef9c3;color:#92400e}
.ent-sec-body{flex:1;padding:10px 12px;min-width:0}
.ent-sec-title{font-size:13px;font-weight:700;color:#1e293b}
.ent-sec-desc{font-size:11px;color:#64748b;margin-top:1px}
.ent-sec-tag{display:inline-block;font-size:9px;font-weight:700;padding:2px 7px;border-radius:10px;margin-top:4px;text-transform:uppercase;letter-spacing:.04em}
.ent-tag-auto{background:#dcfce7;color:#15803d}
.ent-tag-edit{background:#dbeafe;color:#1d4ed8}
.ent-tag-upload{background:#fef9c3;color:#92400e}
.ent-tag-optional{background:#f1f5f9;color:#94a3b8}
.ent-sec-actions{display:flex;align-items:center;gap:4px;padding:0 10px;flex-shrink:0}
.ent-sec-toggle{position:relative;width:36px;height:20px;border-radius:10px;background:#e2e8f0;cursor:pointer;transition:.2s;border:none;flex-shrink:0}
.ent-sec-toggle.on{background:#2563eb}
.ent-sec-toggle .knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s}
.ent-sec-toggle.on .knob{left:18px}
.ent-gar-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px}
.ent-gar-table th{text-align:left;padding:6px 8px;background:#f1f5f9;font-weight:700;font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e2e8f0}
.ent-gar-table td{padding:7px 8px;border-bottom:1px solid #f8fafc;color:#334155}
.ent-gar-table tr:hover{background:#fafbfe}
.ent-gar-add{display:flex;align-items:center;gap:6px;padding:6px 0;font-size:12px;color:#2563eb;cursor:pointer;font-weight:600}
.ent-gar-add:hover{text-decoration:underline}
.ent-mem-item{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #f8fafc;font-size:12px}
.ent-mem-item:last-child{border-bottom:none}
.ent-mem-item .mi-room{font-weight:700;color:#1e293b;min-width:100px}
.ent-mem-item .mi-desc{color:#475569;flex:1}
.ent-upload-area{border:1.5px dashed #cbd5e1;border-radius:8px;padding:16px;text-align:center;color:#94a3b8;font-size:12px;cursor:pointer;transition:.12s}
.ent-upload-area:hover{border-color:#93c5fd;background:#fafbfe;color:#2563eb}
.ent-preview-mini{margin-top:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}
.ent-pm-head{padding:16px;text-align:center;border-bottom:1px solid #e2e8f0}
.ent-pm-logo{width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,#2563eb,#60a5fa);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px;margin-bottom:6px}
.ent-pm-title{font-size:16px;font-weight:800;color:#1e293b}
.ent-pm-sub{font-size:11px;color:#64748b;margin-top:2px}
.ent-pm-toc{padding:14px 16px}
.ent-pm-toc-title{font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.ent-pm-toc-item{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12px;color:#334155}
.ent-pm-toc-item .toc-num{width:20px;height:20px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;background:#eff6ff;color:#2563eb;flex-shrink:0}
.ent-pm-toc-item .toc-dots{flex:1;border-bottom:1px dotted #cbd5e1;margin:0 4px;min-width:20px;height:8px}
.ent-pm-toc-item .toc-page{font-size:10px;color:#94a3b8;font-weight:600}
.ent-pm-toc-item.disabled{opacity:.4}
.ent-pm-footer{padding:10px 16px;background:#fff;border-top:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#64748b}
.ent-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.ent-stat{background:#f8fafc;border-radius:8px;padding:10px;text-align:center;border:1px solid #f1f5f9}
.ent-stat-val{font-size:18px;font-weight:800}
.ent-stat-lbl{font-size:10px;color:#64748b;margin-top:1px;font-weight:600}
.ent-linked-card{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;border:1px solid;margin-bottom:12px;transition:.1s}
.ent-linked-card:hover{opacity:.9}
.ent-lc-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ent-lc-info{flex:1;min-width:0}
.ent-lc-title{font-size:12px;font-weight:700}
.ent-lc-desc{font-size:11px;margin-top:1px}
.ent-lc-status{padding:2px 8px;border-radius:12px;font-size:10px;font-weight:700;flex-shrink:0}
.ent-lk-green{background:#f0fdf4;border-color:#bbf7d0}
.ent-lk-green .ent-lc-icon{background:#dcfce7}
.ent-lk-green .ent-lc-title{color:#15803d}
.ent-lk-green .ent-lc-desc{color:#166534}
.ent-lk-green .ent-lc-status{background:#dcfce7;color:#15803d}
.ent-lk-amber{background:#fffbeb;border-color:#fde68a}
.ent-lk-amber .ent-lc-icon{background:#fef3c7}
.ent-lk-amber .ent-lc-title{color:#92400e}
.ent-lk-amber .ent-lc-desc{color:#78350f}
.ent-lk-amber .ent-lc-status{background:#fef9c3;color:#92400e}
.ent-doc-check{display:flex;flex-direction:column;gap:0}
.ent-doc-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #f8fafc}
.ent-doc-item:last-child{border-bottom:none}
.ent-doc-cb{width:20px;height:20px;border-radius:6px;border:2px solid #cbd5e1;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s}
.ent-doc-cb.on{background:#2563eb;border-color:#2563eb}
.ent-doc-cb svg{display:none}
.ent-doc-cb.on svg{display:block}
.ent-doc-label{font-size:13px;color:#1e293b;flex:1}
.ent-doc-tag{font-size:10px;padding:2px 7px;border-radius:10px;font-weight:700}
.ent-doc-tag-required{background:#fef2f2;color:#dc2626}
.ent-doc-tag-optional{background:#f1f5f9;color:#94a3b8}
.ent-doc-counter{font-size:11px;color:#64748b;padding:8px 0;display:flex;align-items:center;gap:6px}
.ent-bar{flex:1;height:4px;background:#f1f5f9;border-radius:2px;overflow:hidden}
.ent-bar-fill{height:100%;background:#2563eb;border-radius:2px;transition:width .3s}
.ent-preview-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:20px;margin-bottom:12px}
.ent-pv-header{text-align:center;margin-bottom:16px}
.ent-pv-logo{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#2563eb,#60a5fa);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px;margin-bottom:8px}
.ent-pv-title{font-size:15px;font-weight:800;color:#1e293b}
.ent-pv-sub{font-size:11px;color:#64748b}
.ent-pv-body{font-size:12px;color:#334155;line-height:1.7}
.ent-pv-body b{font-weight:700;color:#0f172a}
.ent-pv-field{display:inline;border-bottom:1px dashed #94a3b8;color:#2563eb;font-weight:600}
.ent-pv-sig-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid #e2e8f0}
.ent-pv-sig{text-align:center}
.ent-pv-sig-line{border-top:1px solid #1e293b;margin:0 auto;width:80%;padding-top:4px}
.ent-pv-sig-name{font-size:11px;font-weight:700;color:#1e293b}
.ent-pv-sig-role{font-size:10px;color:#64748b}
@media(max-width:768px){
  .ent-kpi-row{grid-template-columns:repeat(2,1fr) !important}
  .ent-detail-grid{grid-template-columns:1fr !important}
  .ent-share-grid{grid-template-columns:1fr !important}
  .ent-sig-grid{grid-template-columns:1fr !important}
  .ent-pv-sig-row{grid-template-columns:1fr !important}
  .ent-form-row{grid-template-columns:1fr !important}
  .ent-summary-bar{flex-direction:column;gap:6px}
  .ent-bottom-bar{flex-direction:column;align-items:flex-start}
  .ent-stats-row{grid-template-columns:1fr !important}
}
@media(max-width:480px){
  .ent-kpi-row{grid-template-columns:1fr !important}
  .ent-kpi{padding:10px 12px}
  .ent-kpi-val{font-size:20px}
}

/* ════════════════════════════════════════════════════════════
   MÓDULO DE ENTREGAS — Classes globais v2 (stepper + hub)
   ════════════════════════════════════════════════════════════ */

/* Stepper */
.ent-ctx{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:6px;flex-wrap:wrap}
.ent-ctx-title{font-size:13px;font-weight:700;color:#1e293b}
.ent-ctx-sub{font-size:12px;color:var(--muted)}
.ent-ctx .btn{margin-left:auto}
.ent-stepper{display:flex;gap:4px;padding:12px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius2);margin-bottom:14px;overflow-x:auto}
.ent-step{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:11px;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap;border:1px solid transparent;transition:.12s}
.ent-step:hover{background:#f8fafc;border-color:#f1f5f9}
.ent-step.disabled{opacity:.4;pointer-events:none}
.ent-step .step-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;border:2px solid #cbd5e1;background:#fff}
.ent-step.done{color:var(--good)}
.ent-step.done .step-dot{background:var(--good);border-color:var(--good)}
.ent-step.current{color:var(--blue);background:var(--blue-soft);border-color:#bfdbfe}
.ent-step.current .step-dot{background:var(--blue);border-color:var(--blue)}
.ent-step.blocked{color:var(--bad)}
.ent-step.blocked .step-dot{background:var(--bad);border-color:var(--bad)}
.ent-step-conn{width:12px;height:2px;background:var(--line);flex-shrink:0;border-radius:1px;align-self:center}
.ent-step-conn.done{background:#86efac}

/* Unidade hub */
.uni-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.uni-avatar{width:48px;height:48px;border-radius:12px;background:var(--blue-soft);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0}
.uni-info h2{font-size:18px;font-weight:800;color:#0f172a;margin:0}
.uni-info .meta{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}
.uni-info .meta span{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px}
.uni-progress{display:flex;gap:0;border:1px solid var(--line);border-radius:var(--radius2);overflow:hidden;margin-bottom:16px;background:var(--card)}
.uni-prog-item{flex:1;padding:12px 8px;text-align:center;border-right:1px solid #f1f5f9;cursor:pointer;transition:.1s;position:relative;text-decoration:none;color:inherit}
.uni-prog-item:last-child{border-right:none}
.uni-prog-item:hover{background:#fafbfe}
.uni-prog-item.disabled{opacity:.35;pointer-events:none}
.uni-prog-item .pi-icon{width:30px;height:30px;border-radius:8px;margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-size:13px}
.uni-prog-item .pi-title{font-size:10px;font-weight:700;color:#1e293b}
.uni-prog-item .pi-status{font-size:9px;font-weight:600;margin-top:2px}
.uni-prog-item.done .pi-icon{background:#dcfce7}
.uni-prog-item.done .pi-status{color:var(--good)}
.uni-prog-item.current .pi-icon{background:#dbeafe}
.uni-prog-item.current .pi-status{color:var(--blue)}
.uni-prog-item.pending .pi-icon{background:#f1f5f9}
.uni-prog-item.pending .pi-status{color:#94a3b8}
.uni-prog-item.blocked .pi-icon{background:var(--bad-soft)}
.uni-prog-item.blocked .pi-status{color:var(--bad)}
/* ── Pipeline 4 etapas ──────────────────────────────────── */
.ent-pipeline{display:flex;align-items:stretch;gap:0;margin-bottom:20px;overflow-x:auto}
.ent-pipe-card{flex:1;min-width:160px;background:var(--card);border:1px solid var(--line);border-radius:0;display:flex;flex-direction:column;gap:0;transition:.1s;position:relative;padding:0 0 14px 0}
.ent-pipeline .ent-pipe-card:first-child{border-radius:var(--radius2) 0 0 var(--radius2)}
.ent-pipeline .ent-pipe-card:last-child{border-radius:0 var(--radius2) var(--radius2) 0}
.ent-pipeline .ent-pipe-card + .ent-pipe-card{border-left:none}
.ent-pipe-card.locked{opacity:.55}
.epc-stripe{height:4px;border-radius:0;flex-shrink:0}
.ent-pipeline .ent-pipe-card:first-child .epc-stripe{border-radius:var(--radius2) 0 0 0}
.ent-pipeline .ent-pipe-card:last-child  .epc-stripe{border-radius:0 var(--radius2) 0 0}
.epc-top{display:flex;align-items:center;gap:6px;padding:12px 14px 4px}
.epc-num{font-size:10px;font-weight:800;padding:2px 7px;border-radius:20px;border:1px solid;letter-spacing:.04em;flex-shrink:0}
.epc-label{font-size:13px;font-weight:700;color:#1e293b;padding:2px 14px 2px;line-height:1.3}
.epc-desc{font-size:11px;color:#94a3b8;padding:1px 14px 8px;line-height:1.4}
.epc-status{font-size:11px;font-weight:700;padding:0 14px 8px;text-transform:uppercase;letter-spacing:.04em}
.epc-stats{font-size:12px;color:#475569;padding:0 14px 10px;display:flex;flex-direction:column;gap:2px;flex:1}
.epc-stats-empty{color:#94a3b8 !important;font-style:italic}
.epc-actions{padding:0 14px;display:flex;gap:6px;flex-wrap:wrap}
.epc-locked-lbl{font-size:11px;color:#94a3b8;font-style:italic}
.ent-pipe-arrow{display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;width:0;position:relative;z-index:2}
.ent-pipe-arrow svg{position:absolute;background:var(--card);border:1px solid var(--line);border-radius:50%;padding:3px;width:22px;height:22px}

/* ── NC Rastreio — grupos por vistoria ─────────────────── */
.nc-group{border-top:1px solid #f1f5f9}
.nc-group:first-of-type{border-top:none}
.nc-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:#fafbfe;border-left:3px solid #e2e8f0}
.nc-gh-left{display:flex;align-items:center;gap:7px;flex-wrap:wrap;flex:1;min-width:0}
.nc-gh-date{font-size:12px;color:#475569;font-weight:600}
.nc-gh-resp{font-size:11px;color:#94a3b8}
.nc-items-list{padding:0}
.nc-item-row{display:flex;align-items:flex-start;gap:10px;padding:10px 16px 10px 20px;border-bottom:1px solid #f8fafc;transition:.06s}
.nc-item-row:last-child{border-bottom:none}
.nc-item-row:hover{background:#fafbfe}
.nc-item-icon{flex-shrink:0;width:18px;padding-top:1px}
.nc-item-body{flex:1;min-width:0}
.nc-item-secao{font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.nc-item-text{font-size:13px;font-weight:600;color:#1e293b;line-height:1.35;margin-bottom:3px}
.nc-item-obs{font-size:12px;color:#64748b;font-style:italic;line-height:1.4;padding:4px 8px;background:#f8fafc;border-radius:5px;margin-bottom:4px}
.nc-item-row.open .nc-item-obs{background:#fef2f2}
.nc-item-row.resolved .nc-item-obs{background:#f0fdf4}
.nc-item-resolution{display:flex;align-items:center;gap:5px;font-size:11px;color:#16a34a;font-weight:600;margin-top:2px}
.nc-item-right{flex-shrink:0;padding-top:2px}

/* Compat: manter grid antigo caso usado em outro lugar */
.uni-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.uni-detail-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius2);padding:14px;transition:.1s}
.uni-detail-card:hover{border-color:#cbd5e1}
.uni-detail-card.disabled{opacity:.45;pointer-events:none}
.uni-dc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.uni-dc-label{font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em}
.uni-dc-status{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600}
.uni-dc-date{font-size:11px;color:var(--muted);margin-top:2px}
.uni-dc-actions{margin-top:8px;display:flex;gap:6px}
.uni-next-action{padding:12px 16px;background:var(--card);border:1px solid #dbeafe;border-radius:var(--radius2);display:flex;align-items:center;gap:12px;margin-bottom:16px}
.uni-next-action .na-icon{width:36px;height:36px;border-radius:9px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.uni-next-action .na-text{flex:1}
.uni-next-action .na-label{font-size:10px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.06em}
.uni-next-action .na-desc{font-size:13px;color:#475569;margin-top:1px}
.uni-tl-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid #f8fafc}
.uni-tl-item:last-child{border-bottom:none}
.uni-tl-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}
.uni-tl-content{flex:1;font-size:12px;color:#475569}
.uni-tl-content b{color:#1e293b;font-weight:600}
.uni-tl-time{font-size:11px;color:#94a3b8;flex-shrink:0}

/* Obra show — card entrega */
.os-ent{background:var(--card);border:1px solid var(--line);border-radius:var(--radius2);overflow:hidden;margin-top:14px}
.os-ent-head{padding:12px 16px;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between}
.os-ent-head .title{font-size:13px;font-weight:700;color:#1e293b;display:flex;align-items:center;gap:6px}
.os-ent-row{display:flex;align-items:center;gap:0;padding:8px 16px;border-bottom:1px solid #f8fafc;transition:.08s;cursor:pointer;text-decoration:none;color:inherit}
.os-ent-row:hover{background:#fafbfe}
.os-ent-row:last-child{border-bottom:none}
.os-ent-row .name{min-width:110px;font-size:12px;font-weight:600;color:#1e293b}
.os-ent-row .name .cli{font-size:10px;color:#94a3b8;font-weight:400;margin-top:1px}
.os-ent-row .steps{flex:1;display:flex;gap:3px}
.os-ent-row .stp{flex:1;height:22px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700;border:1px solid transparent}
.os-ent-row .stp.d{background:#dcfce7;color:#15803d;border-color:#bbf7d0}
.os-ent-row .stp.a{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}
.os-ent-row .stp.p{background:#f8fafc;color:#cbd5e1;border-color:#f1f5f9}
.os-ent-row .stp.b{background:var(--bad-soft);color:var(--bad);border-color:#fecaca}

/* Página centralizada do módulo entregas */
.ent-page{max-width:560px;margin:0 auto}

/* ── NC Rastreio — Hub ──────────────────────────────────── */
.nc-track-list{padding:4px 0}
.nc-track-row{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-bottom:1px solid #f1f5f9;transition:.08s}
.nc-track-row:last-child{border-bottom:none}
.nc-track-row:hover{background:#fafbfe}
.nc-track-row.resolved .nc-tr-icon{color:#16a34a}
.nc-track-row.open    .nc-tr-icon{color:#dc2626}
.nc-tr-icon{width:20px;flex-shrink:0;padding-top:1px}
.nc-tr-body{flex:1;min-width:0}
.nc-tr-item{font-size:13px;font-weight:600;color:#1e293b;line-height:1.35;margin-bottom:4px}
.nc-tr-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:11px;color:#64748b;margin-bottom:4px}
.nc-tr-arrow{color:#94a3b8}
.nc-tr-secao{font-size:10px;color:#94a3b8;padding:1px 6px;background:#f1f5f9;border-radius:4px;margin-left:4px}
.nc-tr-obs{font-size:12px;color:#475569;line-height:1.4;padding:6px 10px;background:#fafafa;border-radius:6px;border-left:2px solid #e2e8f0;margin-bottom:6px;white-space:pre-wrap}
.nc-track-row.open   .nc-tr-obs{border-left-color:#fca5a5}
.nc-track-row.resolved .nc-tr-obs{border-left-color:#bbf7d0}
.nc-tr-fotos{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.nc-foto-thumb{display:block;width:56px;height:56px;border-radius:6px;overflow:hidden;border:1px solid #e2e8f0;flex-shrink:0}
.nc-foto-thumb img{width:100%;height:100%;object-fit:cover}
.nc-tr-right{flex-shrink:0;padding-top:2px}

/* Pill tags */
.nc-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;line-height:1.5}
.nc-pill.open{background:#fef2f2;color:#dc2626}
.nc-pill.resolved{background:#f0fdf4;color:#16a34a}

/* Badge de tipo de vistoria */
.nc-badge-tipo{display:inline-block;padding:1px 7px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase}
.nc-badge-tipo.interna{background:#eff6ff;color:#1d4ed8}
.nc-badge-tipo.cliente{background:#faf5ff;color:#7c3aed}
.nc-badge-tipo.resolved{background:#f0fdf4;color:#16a34a}

/* ── NC badge no checklist (vistoria form) ──────────────── */
.nc-prev-badge{display:inline-flex;align-items:baseline;gap:4px;margin-top:5px;padding:3px 8px 3px 7px;background:#fffbeb;border:1px solid #fde68a;border-radius:5px;font-size:11px;color:#92400e;line-height:1.35;white-space:normal}
.nc-prev-badge em{font-style:normal;color:#78350f;font-weight:400}

@media(max-width:768px){
  .ent-stepper{gap:2px;padding:10px 12px}
  .ent-step{padding:5px 8px;font-size:10px}
  .uni-header{flex-direction:column}
  .uni-detail-grid{grid-template-columns:1fr}
  .uni-progress{flex-wrap:wrap}
  .uni-prog-item{min-width:calc(25% - 1px)}
  .ent-page{max-width:100%}
  /* Pipeline mobile: 2 colunas (VI + VC em cima, Manual + Decl embaixo) */
  .ent-pipeline{flex-wrap:wrap}
  .ent-pipe-card{flex:0 0 calc(50% - 1px);min-width:calc(50% - 1px)}
  .ent-pipeline .ent-pipe-card:first-child{border-radius:var(--radius2) 0 0 0}
  .ent-pipeline .ent-pipe-card:nth-child(3){border-radius:0 0 0 var(--radius2);border-top:none;border-left:1px solid var(--line)}
  .ent-pipeline .ent-pipe-card:nth-child(5){border-radius:0 0 var(--radius2) 0;border-top:none}
  .ent-pipe-arrow{display:none}
  .nc-group-head{flex-wrap:wrap;gap:6px}
}

/* ── IA Components ─────────────────────────────────────────────── */
.ia-box{background:#fafafa;border-left:3px solid #7c3aed;border-radius:0 8px 8px 0;padding:12px 16px;margin-top:8px;font-size:13px}
.ia-box-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.ia-label{font-weight:700;color:#7c3aed;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.ia-row{margin-bottom:5px;font-size:13px;line-height:1.5;color:#1e293b}
.ia-muted{font-size:11px;color:#94a3b8}
.ia-err{font-size:12px;color:#dc2626;padding:4px 0}
.ia-disclaimer{font-size:11px;color:#94a3b8;margin-top:8px;font-style:italic}
.ia-custo{font-size:11px;color:#94a3b8;margin-left:4px}
.ia-pill{font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;letter-spacing:.03em}
.ia-pill-danger{background:#fef2f2;color:#dc2626}
.ia-pill-warn{background:#fff7ed;color:#c2410c}
.ia-pill-ok{background:#f0fdf4;color:#16a34a}
.ia-pill-info{background:#eff6ff;color:#1d4ed8}
.btn-ia{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px solid #7c3aed;color:#7c3aed;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:.15s;line-height:1.2}
.btn-ia:hover{background:#f5f3ff}
.btn-ia:disabled{opacity:.5;cursor:not-allowed}
.btn-ia-foto{display:inline-flex;align-items:center;gap:5px;background:#faf5ff;border:1px solid #ddd6fe;color:#7c3aed;border-radius:7px;padding:4px 10px;font-size:11px;font-weight:600;cursor:pointer;transition:.15s}
.btn-ia-foto:hover{background:#f3e8ff}
.btn-ia-foto:disabled{opacity:.5;cursor:not-allowed}
.ent-ci-ia-wrap{padding:5px 10px 8px;border-top:1px dashed #ede9fe}
.ia-action-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ia-hint{font-size:11px;color:#94a3b8}
.ia-memorial-block{border:1px solid #e2e8f0;border-radius:8px;padding:12px 14px;margin-bottom:8px}
.ia-memorial-block-title{font-size:11px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.ia-memorial-block-text{font-size:12px;color:#334155;line-height:1.6}
.ia-relatorio{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:24px;margin-top:10px}
.ia-relatorio-title{font-size:15px;font-weight:700;text-align:center;margin-bottom:20px;letter-spacing:.05em;color:#0f172a}
.ia-relatorio-section{margin-bottom:16px}
.ia-relatorio-section h3{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;margin-bottom:6px}
.ia-relatorio-section p{font-size:13px;line-height:1.8;color:#1e293b}
.ia-relatorio-actions{display:flex;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid #f1f5f9}
@media print{.ia-relatorio-actions{display:none}.ia-relatorio{border:none;padding:0}}

/* ── FVS badges (vistoria) ─────────────────────────────────── */
.fvs-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 7px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.02em}
.status-c{background:#dcfce7;color:#15803d}
.status-nc{background:#fee2e2;color:#dc2626}
.status-na{background:#f1f5f9;color:#64748b}

/* ── chamados/show ─────────────────────────────────────────── */
.chamado-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 20px 16px;border-bottom:1px solid #f1f5f9;background:#fff}
.chamado-header-eyebrow{font-size:11px;color:#94a3b8;margin-bottom:5px;font-weight:500}
.chamado-header-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:5px}
.chamado-protocolo{font-size:22px;font-weight:700;color:#0f172a;font-family:monospace;letter-spacing:-.5px}
.chamado-etapa-label{font-size:12px;color:#64748b;font-weight:500}
.chamado-header-sub{display:flex;align-items:center;gap:6px;font-size:13px}
.chamado-obra-link{color:#2563eb;font-weight:500;text-decoration:none}
.chamado-obra-link:hover{text-decoration:underline}
.chamado-sep{color:#cbd5e1}
.chamado-unidade{color:#64748b}
.chamado-header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.show-cols{display:grid;grid-template-columns:1fr 1fr;gap:0}
.show-col-left{padding:20px;border-right:1px solid #f1f5f9}
.show-col-right{padding:20px}
.show-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;margin-bottom:10px}
.info-grid-2x2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.info-card-field{background:#f8fafc;border:1px solid #f1f5f9;border-radius:8px;padding:10px 12px}
.info-card-field .k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin-bottom:3px}
.info-card-field .v{font-size:13px;font-weight:600;color:#334155}
.info-card-field .v-link{font-size:13px;font-weight:600;color:#2563eb;text-decoration:none}
.info-card-field .v-link:hover{text-decoration:underline}
.unit-tl-section{padding:18px 20px 22px;border-top:1px solid #f1f5f9;background:#fff}
.unit-tl-header{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.unit-tl-count{font-size:11px;color:#94a3b8;font-weight:500}
.unit-tl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.unit-tl{display:flex;align-items:flex-start;padding:20px 4px 4px;min-width:max-content;position:relative}
.unit-tl::before{content:'';position:absolute;top:27px;left:20px;right:20px;height:2px;background:#e2e8f0;z-index:0}
.ut-node{display:flex;flex-direction:column;align-items:center;min-width:148px;max-width:168px;padding:0 10px;position:relative;z-index:1}
.ut-dot{width:14px;height:14px;border-radius:50%;background:#cbd5e1;border:2.5px solid #fff;box-shadow:0 0 0 2px #cbd5e1;margin-bottom:10px;flex-shrink:0;position:relative;z-index:1}
.ut-node--concluido .ut-dot{background:#16a34a;box-shadow:0 0 0 2px #16a34a}
.ut-node--atrasado .ut-dot{background:#ef4444;box-shadow:0 0 0 2px #ef4444}
.ut-node--current .ut-dot{background:#2563eb;box-shadow:0 0 0 4px #bfdbfe}
.ut-card{display:block;text-decoration:none;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;padding:11px 12px 10px;width:100%;transition:border-color .15s,box-shadow .15s,transform .12s}
.ut-card:hover{border-color:#93c5fd;box-shadow:0 2px 10px rgba(37,99,235,.1);transform:translateY(-2px)}
.ut-card--current{border-color:#93c5fd;background:#eff6ff}
.ut-card--current:hover{border-color:#60a5fa}
.ut-date{font-size:10px;color:#94a3b8;font-weight:600;margin-bottom:4px}
.ut-proto{font-size:12px;font-weight:700;font-family:monospace;color:#0f172a;margin-bottom:5px}
.ut-tag{display:inline-flex;padding:2px 7px;border-radius:20px;font-size:10px;font-weight:700;background:#f1f5f9;color:#64748b;margin-bottom:5px}
.ut-tag--ok{background:#f0fdf4;color:#15803d}
.ut-tag--bad{background:#fef2f2;color:#b91c1c}
.ut-tag--current{background:#dbeafe;color:#1d4ed8}
.ut-meta{font-size:10px;color:#94a3b8;margin-top:2px}
.ut-nps{font-size:10px;color:#f59e0b;font-weight:700;margin-top:3px}
.ut-resumo{font-size:10px;color:#64748b;margin-top:5px;line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.galeria-wrap{display:flex;flex-direction:column;gap:20px;padding:18px 20px}
.galeria-grupo-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.galeria-grupo-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.galeria-grupo-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#64748b;white-space:nowrap}
.galeria-grupo-line{flex:1;height:1px;background:#f1f5f9}
.galeria-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.galeria-thumb{width:80px;height:80px;border-radius:8px;overflow:hidden;border:1px solid #e2e8f0;cursor:pointer;position:relative;flex-shrink:0;background:#f8fafc}
.galeria-thumb img,.galeria-thumb video{width:100%;height:100%;object-fit:cover;transition:transform .2s}
.galeria-thumb:hover img,.galeria-thumb:hover video{transform:scale(1.05)}
.galeria-thumb-overlay{position:absolute;inset:0;background:rgba(0,0,0,0);display:flex;align-items:center;justify-content:center;transition:background .2s}
.galeria-thumb:hover .galeria-thumb-overlay{background:rgba(0,0,0,.35)}
.galeria-thumb-chip{position:absolute;bottom:4px;left:4px;background:rgba(0,0,0,.55);color:#fff;font-size:9px;font-weight:700;padding:2px 5px;border-radius:4px}
.et-step-wrap{position:relative}
.et-tip{opacity:0;pointer-events:none;position:absolute;left:42px;top:calc(100% + 6px);background:#1e293b;color:#f8fafc;border-radius:10px;padding:11px 14px;font-size:11px;white-space:nowrap;z-index:200;min-width:200px;box-shadow:0 6px 24px rgba(0,0,0,.22);transition:opacity .15s}
.et-step-wrap:hover .et-tip{opacity:1;pointer-events:auto}
.et-tip::before{content:'';position:absolute;top:-5px;left:10px;width:10px;height:10px;background:#1e293b;transform:rotate(45deg);border-radius:2px}
.et-tip-title{font-size:12px;font-weight:700;color:#fff;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.1)}
.et-tip-row{display:flex;gap:8px;margin-bottom:5px}
.et-tip-row:last-child{margin-bottom:0}
.et-tip-k{color:#94a3b8;font-weight:600;min-width:76px;flex-shrink:0}
.et-tip-v{color:#e2e8f0;font-weight:500}
.et-tip-v--blue{color:#60a5fa}
.vistoria-timeline{display:flex;align-items:center}
.vt-step{display:flex;flex-direction:column;align-items:center;gap:5px;flex-shrink:0}
.vt-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.vt-label{font-size:11px;font-weight:600;white-space:nowrap}
.vt-line{flex:1;height:2px;margin-bottom:20px}
.text-right{text-align:right}
@media(max-width:900px){.show-cols{grid-template-columns:1fr}.show-col-left{border-right:none;border-bottom:1px solid #f1f5f9}.chamado-header{flex-direction:column}.info-grid-2x2{grid-template-columns:1fr}}

/* ── chamados/novo ─────────────────────────────────────────── */
.new-ticket-shell{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.95fr);gap:20px;align-items:start}
.new-ticket-main,.new-ticket-side{min-width:0}
.new-ticket-card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 14px 40px rgba(15,23,42,.06);overflow:hidden}
.new-ticket-card .card-body{padding:0}
.nt-head{padding:28px 28px 20px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);border-bottom:1px solid #eef3fb}
.nt-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.nt-title{margin:14px 0 6px;font-size:30px;line-height:1.05;font-weight:800;letter-spacing:-.03em;color:#0f172a}
.nt-sub{margin:0;color:#64748b;font-size:14px;max-width:62ch}
.nt-body{padding:26px 28px 28px}
.nt-section+.nt-section{margin-top:24px}
.nt-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.nt-section-title{font-size:12px;font-weight:800;letter-spacing:.10em;text-transform:uppercase;color:#94a3b8}
.nt-section-note{font-size:12px;color:#94a3b8}
.nt-grid{display:grid;gap:18px}
.nt-grid-obra{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 110px;align-items:end;gap:12px}
.nt-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.new-ticket-card .nt-field{display:flex;flex-direction:column;min-width:0}
.new-ticket-card .nt-field > label{display:block;margin:0 0 7px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b;white-space:nowrap}
.new-ticket-card .nt-field .hint{margin-top:8px;font-size:12px;color:#94a3b8}
.new-ticket-card .nt-field input[type="text"],.new-ticket-card .nt-field input[type="date"],.new-ticket-card .nt-field input[type="email"],.new-ticket-card .nt-field select,.new-ticket-card .nt-field textarea,.new-ticket-card .nt-field .autocomplete input{display:block !important;width:100% !important;height:46px !important;min-height:0 !important;max-height:none !important;border:1.5px solid #dbe6f3 !important;border-radius:12px !important;background:#f8fbff !important;color:#0f172a !important;padding:0 14px !important;font-family:inherit !important;font-size:14px !important;font-weight:400 !important;line-height:46px !important;box-sizing:border-box !important;box-shadow:none !important;outline:none !important;-webkit-appearance:none !important;appearance:none !important;transition:border-color .15s,box-shadow .15s !important;margin:0 !important}
.new-ticket-card .nt-field textarea{height:auto !important;min-height:120px !important;line-height:1.5 !important;padding:12px 14px !important;resize:vertical}
.new-ticket-card .nt-field input:focus,.new-ticket-card .nt-field select:focus,.new-ticket-card .nt-field textarea:focus,.new-ticket-card .nt-field .autocomplete input:focus{background:#fff !important;border-color:#2563eb !important;box-shadow:0 0 0 3px rgba(37,99,235,.12) !important}
.new-ticket-card .nt-field select:disabled{background:#f1f5f9 !important;color:#94a3b8 !important;cursor:not-allowed}
.nt-search .autocomplete{position:relative;display:block;width:100%}
.nt-search .autocomplete input{padding-left:40px !important}
.nt-search .search-ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);z-index:2;color:#94a3b8;pointer-events:none;display:flex}
.nt-secondary-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;height:46px;border-radius:12px;border:1.5px solid #dbeafe;background:#eff6ff;color:#2563eb;font-weight:700;font-size:12px;cursor:pointer;text-decoration:none;white-space:nowrap}
.nt-secondary-link:hover{background:#dbeafe}
.nt-search .ac-list{top:calc(100% + 6px);border-radius:14px;border:1px solid #dbe6f3;box-shadow:0 16px 40px rgba(15,23,42,.12);overflow:hidden}
.nt-search .ac-item{padding:12px 14px;width:100%;text-align:left;background:#fff;border:none;cursor:pointer;font:inherit}
.nt-search .ac-item:hover{background:#f8fbff}
.nt-vinculo-line{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12px;color:#94a3b8}
.nt-vinculo-dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1;flex-shrink:0;transition:background .2s}
.nt-actions{display:flex;align-items:center;gap:14px;padding-top:20px;margin-top:24px;border-top:1px solid #eef3fb}
.nt-actions .btn{min-height:52px;border-radius:18px;padding:0 24px;font-weight:800}
.nt-actions .btn-primary{box-shadow:0 14px 28px rgba(37,99,235,.18)}
.nt-actions .btn-ghost{background:transparent;border-color:transparent;color:#64748b}
.nt-actions .btn-ghost:hover{background:#f8fafc;color:#0f172a}
.nt-counter{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;font-size:12px;color:#94a3b8}
.nt-counter strong{color:#64748b}
.nt-side-stack{display:flex;flex-direction:column;gap:14px;position:sticky;top:88px}
.nt-side-label{padding:0 6px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#94a3b8}
.nt-side-hint{padding:0 6px;font-size:11px;line-height:1.5;color:#94a3b8;text-align:center}
.nt-summary-card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 14px 40px rgba(15,23,42,.06);overflow:hidden}
.nt-summary-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;min-height:360px;padding:36px 24px;color:#94a3b8}
.nt-summary-empty .empty-ico{width:72px;height:72px;border-radius:24px;display:grid;place-items:center;background:#f8fbff;border:1px dashed #dbe6f3;color:#c0ccdc}
.nt-summary-empty .empty-title{font-size:16px;font-weight:700;color:#64748b}
.nt-summary-empty .empty-sub{max-width:28ch;font-size:13px;line-height:1.55}
.nt-summary-top{position:relative;height:156px;padding:22px;background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 52%,#f8fbff 100%);border-bottom:1px solid #e7eef9;overflow:hidden}
.nt-summary-top::before{content:'';position:absolute;inset:auto -38px -52px auto;width:160px;height:160px;border-radius:999px;background:rgba(255,255,255,.42)}
.nt-summary-top::after{content:'';position:absolute;left:-28px;top:-42px;width:128px;height:128px;border-radius:999px;background:rgba(255,255,255,.22)}
.nt-summary-badge{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.88);color:#2563eb;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.nt-summary-badge .dot{width:8px;height:8px;border-radius:999px;background:#22c55e}
.nt-summary-thumb{position:relative;z-index:1;margin-top:26px;display:flex;align-items:center;gap:14px}
.nt-summary-avatar{width:62px;height:62px;border-radius:20px;background:rgba(255,255,255,.92);display:grid;place-items:center;box-shadow:0 14px 30px rgba(37,99,235,.12);font-size:24px;font-weight:800;color:#1d4ed8}
.nt-summary-meta{min-width:0}
.nt-summary-kicker{font-size:11px;font-weight:800;letter-spacing:.10em;text-transform:uppercase;color:#64748b}
.nt-summary-name{margin-top:6px;font-size:22px;line-height:1.1;font-weight:800;letter-spacing:-.03em;color:#0f172a;word-break:break-word}
.nt-summary-body{padding:22px}
.nt-summary-grid{display:grid;gap:14px}
.nt-summary-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:16px;background:#f8fbff;border:1px solid #edf2fa}
.nt-summary-item .k{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}
.nt-summary-item .v{margin-top:4px;font-size:14px;font-weight:700;line-height:1.4;color:#0f172a;text-align:right;word-break:break-word}
.nt-summary-strip{display:flex;align-items:center;gap:10px;margin-top:16px;padding:14px 16px;border-radius:18px;background:#ecfdf3;border:1px solid #bbf7d0;color:#047857}
.nt-summary-strip .ic{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:#d1fae5;flex:0 0 auto}
.nt-summary-strip strong{display:block;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.nt-summary-strip span{display:block;margin-top:2px;font-size:12px;line-height:1.45;color:#065f46}
@media(max-width:1180px){.new-ticket-shell{grid-template-columns:1fr}.nt-side-stack{position:static}}
@media(max-width:760px){.nt-head,.nt-body{padding-left:18px;padding-right:18px}.nt-grid-obra,.nt-grid-2{grid-template-columns:1fr}.nt-actions{flex-direction:column;align-items:stretch}.nt-actions .btn{width:100%}.nt-summary-empty{min-height:250px}}
