/* =========================================================
   EAM One — Painel & Controle Geral
   Identidade: gradiente #23C7F3 -> #2D8CFF -> #7B61FF
   Títulos: Montserrat | Corpo: Inter
   ========================================================= */

:root {
  --eam-1: #23C7F3;
  --eam-2: #2D8CFF;
  --eam-3: #7B61FF;
  --grad: linear-gradient(135deg, #23C7F3 0%, #2D8CFF 50%, #7B61FF 100%);
  --grad-soft: linear-gradient(135deg, rgba(35,199,243,.12) 0%, rgba(45,140,255,.12) 50%, rgba(123,97,255,.12) 100%);

  --bg: #f4f6fb;
  --bg-elev: #ffffff;
  --card: #ffffff;
  --line: #e6e9f2;
  --text: #0f1830;
  --text-soft: #5a647e;
  --text-mute: #939bb4;
  --shadow: 0 1px 2px rgba(16,24,48,.04), 0 8px 24px rgba(16,24,48,.06);
  --shadow-lg: 0 12px 40px rgba(45,140,255,.18);
  --radius: 16px;
  --radius-sm: 11px;
  --sidebar-w: 268px;

  --green: #16a34a; --green-bg: #e7f7ee;
  --amber: #d97706; --amber-bg: #fdf1de;
  --red:   #dc2626; --red-bg:   #fdeaea;
  --blue:  #2563eb; --blue-bg:  #e8f0fe;
  --violet:#7B61FF; --violet-bg:#efeaff;
}

[data-theme="dark"] {
  --bg: #0b1020;
  --bg-elev: #121a32;
  --card: #141d38;
  --line: #243056;
  --text: #eef2ff;
  --text-soft: #aab4d4;
  --text-mute: #6b769b;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 12px 30px rgba(0,0,0,.35);
  --grad-soft: linear-gradient(135deg, rgba(35,199,243,.16) 0%, rgba(45,140,255,.16) 50%, rgba(123,97,255,.18) 100%);
  --green-bg:#0f2e1f; --amber-bg:#33270f; --red-bg:#3a1717; --blue-bg:#13234a; --violet-bg:#241c4d;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  display: flex;
  transition: background .3s ease, color .3s ease;
}
h1,h2,h3,h4,.brand-text strong { font-family: 'Montserrat','Segoe UI',sans-serif; letter-spacing:-.01em; }
a { color: inherit; text-decoration: none; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--line); border-radius: 10px; border: 2px solid var(--bg); }
::selection { background: rgba(45,140,255,.25); }

/* ===================== Sidebar ===================== */
.sidebar {
  width: var(--sidebar-w);
  flex-shrink: 0;
  height: 100vh;
  position: sticky;
  top: 0;
  background: var(--bg-elev);
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  z-index: 120;
  transition: transform .28s cubic-bezier(.4,0,.2,1);
}
.sidebar__brand {
  display: flex; align-items: center; gap: 12px;
  padding: 20px 18px 18px;
}
.brand-mark {
  width: 40px; height: 40px;
  display: grid; place-items: center;
  flex-shrink: 0;
}
.brand-mark svg { width: 100%; height: 100%; display: block; filter: drop-shadow(0 5px 14px rgba(45,140,255,.35)); }
.brand-text { display: flex; flex-direction: column; line-height: 1.15; }
.brand-text strong { font-size: 16px; font-weight: 800; }
.brand-text span { font-size: 11px; color: var(--text-mute); font-weight: 500; }
.brand-text strong .brand-one, .login-card .brand-one { background: var(--grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.sidebar__close { display: none; margin-left: auto; background: none; border: none; color: var(--text-soft); cursor: pointer; }

.nav { flex: 1; overflow-y: auto; padding: 6px 12px 12px; }
.nav__group { margin-bottom: 2px; }
.nav__item {
  display: flex; align-items: center; gap: 11px;
  padding: 9px 12px; border-radius: var(--radius-sm);
  color: var(--text); font-size: 13px; font-weight: 500;
  cursor: pointer; position: relative; -webkit-user-select: none; user-select: none;
  transition: background .15s, color .15s, transform .08s;
}
.nav__item:hover { background: var(--grad-soft); color: var(--text); }
.nav__item:active { transform: scale(.985); }
.nav__item i { width: 19px; height: 19px; flex-shrink: 0; }
.nav__item .chev { margin-left: 6px; width: 16px; height: 16px; color: var(--text-mute); transition: transform .2s; }
/* selo "IA on-line" ao lado do nome do módulo (ex.: Tributário) */
.nav-ia { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; font-size: 9.5px; font-weight: 800; letter-spacing: .4px;
  color: #2ec76b; background: rgba(46,199,107,.14); border: 1px solid rgba(46,199,107,.34); padding: 1px 6px 1px 5px; border-radius: 999px; }
.nav-ia i { width: 11px !important; height: 11px !important; }
.nav-ia__dot { position: relative; width: 6px; height: 6px; border-radius: 50%; background: #2ec76b; }
.nav-ia__dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 1px solid #2ec76b; animation: naviaPulse 1.8s ease-out infinite; }
@keyframes naviaPulse { 0% { transform: scale(1); opacity: .55; } 70%,100% { transform: scale(2.6); opacity: 0; } }
.nav__item.active .nav-ia { color: #fff; background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.35); }
.nav__item.active .nav-ia__dot { background: #fff; }
.nav__group.open .chev { transform: rotate(90deg); }
.nav__item.active {
  color: #fff;
  background: var(--grad);
  box-shadow: 0 8px 22px rgba(45,140,255,.48);
  transform: translateZ(0);
}
.nav__item.active i { color: #fff; }
/* barra de destaque à esquerda do item selecionado */
.nav__item.active::before, .nav__subitem.active::before {
  content:""; position:absolute; left:-4px; top:50%; transform:translateY(-50%);
  width:5px; height:60%; border-radius:6px; background:#fff; box-shadow:0 0 10px rgba(255,255,255,.9);
}
/* seção (menu-pai) da rota atual fica destacada */
.nav__group.has-active > .nav__item[data-toggle] { color: var(--eam-2); background: var(--grad-soft); }
.nav__group.has-active > .nav__item[data-toggle] i,
.nav__group.has-active > .nav__item[data-toggle] .chev { color: var(--eam-2); }

.nav__sub { overflow: hidden; max-height: 0; transition: max-height .26s ease; }
.nav__group.open .nav__sub { max-height: 1400px; }
.nav__sep { font-size: 9.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--text-mute); padding: 10px 12px 4px 30px; opacity: .8; }
.nav__sep:first-child { padding-top: 4px; }
.nav__subitem {
  display: flex; align-items: center; gap: 9px;
  margin: 1px 0 1px 16px; padding: 7px 12px 7px 14px;
  border-radius: 9px; font-size: 12px; font-weight: 500;
  color: var(--text-soft); cursor: pointer; position: relative;
  border-left: 2px solid var(--line);
  transition: color .15s, background .15s, border-color .15s;
}
.nav__subitem:hover { color: var(--text); background: var(--grad-soft); }
.nav__subitem.active { color: #fff; background: var(--grad); border-color: transparent; font-weight: 600; box-shadow: 0 6px 16px rgba(45,140,255,.42); }
.nav__subitem.active i { color:#fff; }
.nav__subitem i { width: 15px; height: 15px; }

.sidebar__footer { padding: 14px 18px; border-top: 1px solid var(--line); }
.conn { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--text-mute); font-weight: 500; }
.conn .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--amber); box-shadow: 0 0 0 3px var(--amber-bg); }
.conn.live .dot { background: var(--green); box-shadow: 0 0 0 3px var(--green-bg); }

.sidebar-backdrop { display: none; }

/* selo "em breve" no menu + banner na seção */
.nav__subitem .soon { margin-left:auto; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; color:var(--amber); background:var(--amber-bg); padding:2px 6px; border-radius:6px; flex-shrink:0; }
.nav__subitem.active .soon { color:#fff; background:rgba(255,255,255,.25); }
.nav__subitem .ok { margin-left:auto; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; color:var(--green); background:var(--green-bg); padding:2px 6px; border-radius:6px; flex-shrink:0; }
.nav__subitem.active .ok { color:#fff; background:rgba(255,255,255,.25); }
.embreve-banner { display:flex; align-items:center; gap:9px; background:var(--amber-bg); color:var(--amber); border:1px solid rgba(217,119,6,.3); border-radius:12px; padding:11px 15px; font-size:13px; font-weight:600; margin-bottom:18px; }
.embreve-banner i { width:17px; height:17px; flex-shrink:0; }

/* ===================== Main ===================== */
.main { flex: 1; min-width: 0; display: flex; flex-direction: column; min-height: 100vh; }

.topbar {
  position: sticky; top: 0; z-index: 40;
  display: flex; align-items: center; gap: 16px;
  padding: 14px 26px;
  background: color-mix(in srgb, var(--bg-elev) 82%, transparent);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}
.topbar__menu { display: grid; place-items: center; }
/* desktop: menu recolhido vira barra de ícones (rail) e expande no hover, sem mover o conteúdo */
@media (min-width: 901px){
  body.nav-collapsed .sidebar{ position: fixed; top:0; left:0; height:100vh; width:76px; z-index:130; transition: width .2s ease; }
  body.nav-collapsed .main{ margin-left:76px; }
  body.nav-collapsed .sidebar:not(:hover) .brand-text,
  body.nav-collapsed .sidebar:not(:hover) .nav__item span,
  body.nav-collapsed .sidebar:not(:hover) .nav__item .chev,
  body.nav-collapsed .sidebar:not(:hover) .nav__sub,
  body.nav-collapsed .sidebar:not(:hover) .userbox__info,
  body.nav-collapsed .sidebar:not(:hover) #logoutBtn,
  body.nav-collapsed .sidebar:not(:hover) #connLabel{ display:none; }
  body.nav-collapsed .sidebar:not(:hover) .nav__item,
  body.nav-collapsed .sidebar:not(:hover) .sidebar__brand,
  body.nav-collapsed .sidebar:not(:hover) .conn{ justify-content:center; padding-left:0; padding-right:0; }
  body.nav-collapsed .sidebar:hover{ width: var(--sidebar-w); box-shadow: var(--shadow-lg); }
}
.breadcrumbs { display: flex; align-items: center; gap: 7px; font-size: 13px; color: var(--text-mute); font-weight: 500; white-space: nowrap; }
.breadcrumbs b { color: var(--text); font-weight: 700; }
.breadcrumbs .sep { opacity: .5; }

.topbar__search { position: relative; margin-left: auto; width: min(360px, 38vw); }
.topbar__search > i { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); width: 17px; height: 17px; color: var(--text-mute); }
.topbar__search input {
  width: 100%; padding: 10px 14px 10px 38px;
  background: var(--bg); border: 1px solid var(--line); border-radius: 11px;
  color: var(--text); font-size: 13.5px; font-family: inherit; outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.topbar__search input:focus { border-color: var(--eam-2); box-shadow: 0 0 0 3px rgba(45,140,255,.15); }
.search-results {
  display: none; position: absolute; top: calc(100% + 8px); left: 0; right: 0;
  background: var(--bg-elev); border: 1px solid var(--line); border-radius: 12px;
  box-shadow: var(--shadow); max-height: 380px; overflow-y: auto; padding: 6px; z-index: 50;
}
.search-results.show { display: block; }
.search-results .sr-item { padding: 9px 11px; border-radius: 8px; cursor: pointer; display: flex; gap: 10px; align-items: center; }
.search-results .sr-item:hover { background: var(--grad-soft); }
.search-results .sr-item .sr-t { font-size: 13px; font-weight: 600; }
.search-results .sr-item .sr-s { font-size: 11.5px; color: var(--text-mute); }
.search-results .sr-empty { padding: 16px; text-align: center; color: var(--text-mute); font-size: 13px; }

.topbar__actions { display: flex; align-items: center; gap: 8px; }
.icon-btn {
  width: 40px; height: 40px; border-radius: 11px; border: 1px solid var(--line);
  background: var(--bg); color: var(--text-soft); display: grid; place-items: center;
  cursor: pointer; position: relative; transition: background .15s, color .15s, transform .08s, border-color .15s;
}
.icon-btn:hover { color: var(--text); border-color: var(--eam-2); }
.icon-btn:active { transform: scale(.93); }
.icon-btn i { width: 19px; height: 19px; }
.icon-btn.spinning i { animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.badge {
  position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 5px;
  background: var(--red); color: #fff; font-size: 10.5px; font-weight: 700; border-radius: 9px;
  display: grid; place-items: center; border: 2px solid var(--bg-elev);
}
.avatar {
  width: 40px; height: 40px; border-radius: 11px; background: var(--grad); color: #fff;
  font-size: 13px; font-weight: 700; display: grid; place-items: center; cursor: pointer;
  box-shadow: 0 4px 12px rgba(123,97,255,.35);
}

/* ===================== View / layout ===================== */
.view { padding: 26px; max-width: 100%; width: 100%; animation: viewIn .35s ease; }
.view-source { display:flex; align-items:center; gap:8px; justify-content:center; margin-top:24px; padding:12px; font-size:12.5px; color:var(--text-mute); border-top:1px dashed var(--line); }
.view-source i { width:15px; height:15px; }
.view-source b { color:var(--text-soft); font-weight:700; }
@keyframes viewIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.page-head h1 { font-size: 25px; font-weight: 600; letter-spacing: -.01em; }
.page-head p { color: var(--text-soft); font-size: 14px; margin-top: 4px; }
.page-head .pill-ai {
  display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600;
  padding: 5px 11px; border-radius: 20px; background: var(--grad-soft); color: var(--eam-3);
}

/* grids */
.grid { display: grid; gap: 18px; }
.grid.kpi { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.grid.c2 { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }
.grid.c3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.span-2 { grid-column: span 2; }
@media (max-width: 1100px){ .span-2 { grid-column: span 1; } }

/* cards */
.card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 20px; box-shadow: var(--shadow); transition: transform .18s, box-shadow .18s, border-color .18s;
}
.card.hover:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); border-color: rgba(45,140,255,.4); }
.card__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.card__head h3 { font-size: 15px; font-weight: 600; letter-spacing: -.005em; }
.card__head .more { color: var(--text-mute); font-size: 12px; font-weight: 600; cursor: pointer; display:flex; align-items:center; gap:4px; }
.card__head .more:hover { color: var(--eam-2); }

/* KPI */
.kpi-card { position: relative; overflow: hidden; }
.kpi-card .kpi-ico {
  width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center;
  margin-bottom: 14px;
}
.kpi-card .kpi-ico i { width: 22px; height: 22px; }
.kpi-card .kpi-val { font-family: 'Montserrat'; font-size: 28px; font-weight: 600; line-height: 1; letter-spacing: -.02em; }
.kpi-card .kpi-lbl { color: var(--text-soft); font-size: 13px; margin-top: 6px; font-weight: 500; }
.kpi-card .kpi-trend { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; margin-top: 12px; padding: 3px 8px; border-radius: 8px; }
.kpi-trend.up { color: var(--green); background: var(--green-bg); }
.kpi-trend.down { color: var(--red); background: var(--red-bg); }
.kpi-trend.flat { color: var(--text-soft); background: var(--bg); }
.kpi-card .kpi-spark { position:absolute; right:14px; bottom:14px; opacity:.85; }

.ic-blue{background:var(--blue-bg);color:var(--blue);} .ic-green{background:var(--green-bg);color:var(--green);}
.ic-amber{background:var(--amber-bg);color:var(--amber);} .ic-red{background:var(--red-bg);color:var(--red);}
.ic-violet{background:var(--violet-bg);color:var(--violet);} .ic-grad{background:var(--grad);color:#fff;}

/* badges / status */
.tag { display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:600; padding:3px 9px; border-radius:7px; white-space:nowrap; }
.tag.green{color:var(--green);background:var(--green-bg);} .tag.amber{color:var(--amber);background:var(--amber-bg);}
.tag.red{color:var(--red);background:var(--red-bg);} .tag.blue{color:var(--blue);background:var(--blue-bg);}
.tag.violet{color:var(--violet);background:var(--violet-bg);} .tag.gray{color:var(--text-soft);background:var(--bg);}
.tag .dot{width:6px;height:6px;border-radius:50%;background:currentColor;}

/* table */
.table-wrap { overflow-x: auto; margin: -4px; padding: 4px; }
table.data { width: 100%; border-collapse: collapse; font-size: 13.5px; }
table.data th {
  text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em;
  color: var(--text-mute); font-weight: 700; padding: 10px 14px; border-bottom: 1px solid var(--line); white-space: nowrap;
}
table.data td { padding: 13px 14px; border-bottom: 1px solid var(--line); color: var(--text-soft); }
table.data tr:last-child td { border-bottom: none; }
table.data tbody tr { transition: background .12s; }
table.data tbody tr:hover { background: var(--grad-soft); }
table.data td .strong { color: var(--text); font-weight: 600; }
.cli-cell { display: flex; align-items: center; gap: 11px; }
.cli-ava { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700; color: #fff; flex-shrink: 0; }

/* toolbar */
.toolbar { display: flex; gap: 10px; align-items: center; margin-bottom: 16px; flex-wrap: wrap; }
.seg { display: flex; background: var(--bg); border: 1px solid var(--line); border-radius: 10px; padding: 3px; }
.seg button { border: none; background: none; padding: 7px 14px; font-size: 13px; font-weight: 600; color: var(--text-soft); border-radius: 8px; cursor: pointer; font-family: inherit; }
.seg button.on { background: var(--grad); color: #fff; box-shadow: 0 3px 8px rgba(45,140,255,.3); }
.toolbar .inp { display:flex; align-items:center; gap:8px; background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:0 12px; }
.toolbar .inp i { width:16px;height:16px;color:var(--text-mute); }
.toolbar .inp input { border:none;background:none;outline:none;padding:9px 0;font-family:inherit;font-size:13px;color:var(--text);width:200px; }
.flt-sel { padding:9px 12px; border-radius:10px; border:1px solid var(--line); background:var(--bg); color:var(--text); font-family:inherit; font-size:13px; font-weight:600; cursor:pointer; outline:none; max-width:200px; }
.flt-sel:focus { border-color:var(--eam-2); }
.btn { display:inline-flex; align-items:center; gap:7px; padding:9px 16px; border-radius:10px; font-size:13.5px; font-weight:600; font-family:inherit; cursor:pointer; border:1px solid var(--line); background:var(--bg); color:var(--text); transition:transform .08s, box-shadow .15s; }
.btn:active{transform:scale(.97);}
.btn.primary { background: var(--grad); color:#fff; border:none; box-shadow:0 6px 16px rgba(45,140,255,.32); }
.btn.primary:hover{box-shadow:var(--shadow-lg);}
.btn i{width:16px;height:16px;}

/* progress */
.bar { height: 7px; background: var(--bg); border-radius: 20px; overflow: hidden; }
.bar > span { display:block; height:100%; border-radius:20px; background: var(--grad); }

/* list rows (obrigações / tarefas) */
.lrow { display:flex; align-items:center; gap:14px; padding:13px 4px; border-bottom:1px solid var(--line); }
.lrow:last-child{border-bottom:none;}
.lrow .lico { width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex-shrink:0; }
.lrow .lmain{flex:1;min-width:0;}
.lrow .lt{font-size:14px;font-weight:600;color:var(--text);}
.lrow .ls{font-size:12.5px;color:var(--text-mute);margin-top:2px;}
.lrow .lmeta{text-align:right;flex-shrink:0;}

/* kanban */
.kanban { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.kcol { background:var(--bg); border:1px solid var(--line); border-radius:14px; padding:12px; }
.kcol__h { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; margin-bottom:12px; padding:2px 4px; }
.kcol__h .cnt { margin-left:auto; font-size:11.5px; color:var(--text-mute); background:var(--bg-elev); padding:2px 8px; border-radius:8px; }
.kcard { background:var(--card); border:1px solid var(--line); border-radius:11px; padding:13px; margin-bottom:10px; cursor:grab; box-shadow:var(--shadow); transition:transform .12s, box-shadow .12s; }
.kcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);}
.kcard .kt{font-size:13.5px;font-weight:600;color:var(--text);}
.kcard .kc{font-size:12px;color:var(--text-mute);margin:5px 0 9px;}
.kcard .kf{display:flex;align-items:center;justify-content:space-between;}
.kcard .kava{width:24px;height:24px;border-radius:50%;font-size:10px;font-weight:700;color:#fff;display:grid;place-items:center;}

/* automations */
.auto-card { display:flex; align-items:center; gap:14px; padding:16px; }
.auto-card .auto-ico{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;flex-shrink:0;}
.auto-card .auto-main{flex:1;}
.switch { width:42px;height:24px;border-radius:20px;background:var(--line);position:relative;cursor:pointer;transition:background .2s;flex-shrink:0; }
.switch.on{background:var(--eam-2);}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.switch.on::after{transform:translateX(18px);}

/* timeline (novidades) */
.timeline { position:relative; padding-left:26px; }
.timeline::before{content:"";position:absolute;left:8px;top:4px;bottom:4px;width:2px;background:var(--line);}
.tl-item{position:relative;padding-bottom:22px;}
.tl-item::before{content:"";position:absolute;left:-22px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--grad);border:3px solid var(--bg-elev);}
.tl-item .tl-date{font-size:11.5px;color:var(--text-mute);font-weight:600;}
.tl-item .tl-t{font-size:14.5px;font-weight:700;margin:3px 0 4px;}
.tl-item .tl-d{font-size:13px;color:var(--text-soft);}

/* mini cli list */
.mini-cli{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line);}
.mini-cli:last-child{border:none;}

.empty { text-align:center; padding:40px 20px; color:var(--text-mute); }
.empty i{width:40px;height:40px;margin-bottom:10px;opacity:.5;}

/* drawer */
.drawer { position:fixed; top:0; right:0; width:380px; max-width:90vw; height:100vh; background:var(--bg-elev); border-left:1px solid var(--line); z-index:120; transform:translateX(100%); transition:transform .3s cubic-bezier(.4,0,.2,1); display:flex; flex-direction:column; }
.drawer.open{transform:none;}
.drawer__head{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--line);}
.drawer__head h3{font-size:17px;font-weight:700;}
.drawer__body{flex:1;overflow-y:auto;padding:14px;}
.drawer-backdrop, .sidebar-backdrop { position:fixed; inset:0; background:rgba(8,12,28,.5); z-index:110; opacity:0; visibility:hidden; transition:opacity .25s; }
.drawer-backdrop.show, .sidebar-backdrop.show { opacity:1; visibility:visible; }

.alert-item{display:flex;gap:12px;padding:13px;border-radius:12px;margin-bottom:8px;background:var(--bg);border:1px solid var(--line);}
.alert-item .ai-ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;}
.alert-item .ai-t{font-size:13.5px;font-weight:600;}
.alert-item .ai-s{font-size:12px;color:var(--text-mute);margin-top:2px;}

.chart-box{position:relative;height:260px;}
.chart-box.sm{height:200px;}

/* split donut + legenda — minmax(0,1fr) impede o conteúdo de estourar o card */
.donut-split{ display:grid; grid-template-columns:minmax(0,128px) minmax(0,1fr); align-items:center; gap:16px; }
.donut-split .chart-box{ min-width:0; }
.donut-split .donut-legend{ min-width:0; }
@media(max-width:420px){ .donut-split{ grid-template-columns:1fr; } }

.donut-legend{display:flex;flex-direction:column;gap:10px;min-width:0;}
.donut-legend .dl{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text-soft);min-width:0;}
.donut-legend .dl .dl-name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.donut-legend .dl b{margin-left:auto;color:var(--text);font-weight:700;flex-shrink:0;padding-left:6px;}
.donut-legend .sw{width:11px;height:11px;border-radius:4px;flex-shrink:0;}

/* CRM connection card */
.crm-card{ display:flex; align-items:center; gap:18px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:18px 22px; margin-bottom:18px; box-shadow:var(--shadow); position:relative; overflow:hidden; }
.crm-card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--grad); }
.crm-card.live::before{ background:var(--green); }
.crm-logo{ width:52px; height:52px; border-radius:14px; background:var(--grad); color:#fff; display:grid; place-items:center; flex-shrink:0; box-shadow:0 8px 20px rgba(45,140,255,.35); }
.crm-logo i{ width:26px; height:26px; }
.crm-main{ flex:1; min-width:0; }
.crm-title{ font-family:'Montserrat','Segoe UI',sans-serif; font-weight:800; font-size:16px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.crm-state{ display:inline-flex; align-items:center; gap:7px; font-family:'Inter',sans-serif; font-size:11.5px; font-weight:700; color:var(--amber); background:var(--amber-bg); padding:3px 11px; border-radius:20px; }
.crm-card.live .crm-state{ color:var(--green); background:var(--green-bg); }
.crm-state .pulse{ width:8px; height:8px; border-radius:50%; background:currentColor; position:relative; }
.crm-state .pulse::after{ content:""; position:absolute; inset:0; border-radius:50%; background:currentColor; animation:crmpulse 1.8s infinite; }
@keyframes crmpulse{ 0%{ transform:scale(1); opacity:.7; } 70%{ transform:scale(3); opacity:0; } 100%{ opacity:0; } }
.crm-sub{ font-size:13px; color:var(--text-soft); margin-top:4px; }
.crm-stats{ display:flex; align-items:center; gap:22px; flex-shrink:0; }
.crm-stats > div{ text-align:center; }
.crm-stats b{ display:block; font-family:'Montserrat','Segoe UI',sans-serif; font-weight:800; font-size:17px; }
.crm-stats span{ font-size:11px; color:var(--text-mute); }
.crm-icons{ display:flex; gap:8px; }
.crm-icons span{ width:34px; height:34px; border-radius:9px; background:var(--grad-soft); color:var(--eam-2); display:grid; place-items:center; }
.crm-icons i{ width:16px; height:16px; }
@media(max-width:820px){ .crm-stats{ display:none; } }

/* organograma cards */
.org-card{ text-align:center; }
.org-ava{ width:60px; height:60px; border-radius:50%; margin:0 auto 12px; display:grid; place-items:center; color:#fff; font-weight:700; font-size:20px; font-family:'Montserrat','Segoe UI',sans-serif; }
.org-name{ font-size:15px; font-weight:700; }
.org-role{ font-size:12.5px; color:var(--text-soft); margin:3px 0 12px; min-height:34px; }
.org-tags{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }

/* organograma — diretor no topo + cards de área */
.orgchart{ }
.orgtop-card{ width:min(320px,100%); margin:0 auto; text-align:center; border:2px solid var(--eam-2); box-shadow:0 8px 22px rgba(45,140,255,.18); }
.orgtop-card .org-ava i{ width:24px; height:24px; }
.orgtrunk{ width:2px; height:24px; background:var(--line); margin:0 auto; }
.orgareas{ align-items:start; }
.orgarea-card{ padding:14px; }
.orgarea-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; background:var(--grad); color:#fff; font-weight:800; font-size:13px; padding:9px 14px; border-radius:11px; margin-bottom:12px; box-shadow:0 5px 14px rgba(45,140,255,.25); }
.orgarea-head .orgarea-n{ background:rgba(255,255,255,.25); padding:1px 9px; border-radius:8px; font-size:12px; }
.orgrow{ display:flex; align-items:center; gap:11px; padding:9px 4px; border-bottom:1px solid var(--line); }
.orgrow:last-child{ border-bottom:0; }
.orgrow.is-coord{ background:var(--grad-soft); border-radius:10px; padding:9px; border-bottom:0; margin-bottom:2px; }
.orgrow-main{ flex:1; min-width:0; }
.orgrow-n{ font-weight:700; font-size:13px; }
.orgrow-r{ font-size:11.5px; color:var(--text-mute); }

/* círculos de produtividade — medidores separados */
.gauges{ display:grid; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); gap:16px; }
.gauge{ text-align:center; }
.gauge svg{ width:118px; height:118px; }
.gauge-lbl{ font-size:12.5px; color:var(--text-soft); font-weight:600; margin-top:6px; line-height:1.25; }
.gauge-val{ font-family:'Montserrat','Segoe UI',sans-serif; font-weight:800; font-size:16px; margin-top:2px; }

/* Faixa compacta de indicadores (Modelo 3) */
.tf-strip{ display:grid; grid-template-columns:repeat(auto-fit,minmax(122px,1fr)); gap:12px; margin-bottom:14px; }
.tf-mini{ background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:12px 13px; position:relative; overflow:hidden; }
.tf-mini::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--c,#2D8CFF); }
.tf-mini__v{ font-family:'Montserrat','Segoe UI',sans-serif; font-size:23px; font-weight:800; letter-spacing:-.02em; line-height:1; font-variant-numeric:tabular-nums; }
.tf-mini__p{ font-size:12px; font-weight:700; color:var(--c,#2D8CFF); margin-top:2px; }
.tf-mini__l{ font-size:11.5px; color:var(--text-soft); margin-top:5px; line-height:1.25; }
.tf-mini__bar{ height:5px; border-radius:3px; background:var(--card); overflow:hidden; margin-top:8px; border:1px solid var(--line); }
.tf-mini__bar>span{ display:block; height:100%; border-radius:3px; }
/* Ranking de pendências (produtividade dos colaboradores) */
.tf-rank{ display:flex; flex-direction:column; gap:10px; }
.tf-rrow{ display:grid; grid-template-columns:200px 1fr 48px; align-items:center; gap:12px; }
.tf-rname{ display:flex; align-items:center; gap:9px; font-size:13px; font-weight:600; min-width:0; }
.tf-rname span:last-child{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tf-rava{ width:26px; height:26px; border-radius:8px; font-size:10px; font-weight:800; display:flex; align-items:center; justify-content:center; flex:0 0 auto; background:rgba(123,97,255,.16); color:#7B61FF; }
.tf-rbar{ height:12px; border-radius:6px; background:var(--bg); border:1px solid var(--line); overflow:hidden; }
.tf-rbar>span{ display:block; height:100%; border-radius:6px; background:linear-gradient(90deg,#2D8CFF,#7B61FF); }
.tf-rcount{ text-align:right; font-weight:800; font-variant-numeric:tabular-nums; }
.tf-subhead{ font-size:11px; color:var(--text-soft); text-transform:uppercase; letter-spacing:.06em; font-weight:700; margin:0 0 12px; }
@media(max-width:560px){ .tf-rrow{ grid-template-columns:120px 1fr 42px; } }

/* Kanban do pipeline comercial */
.kb-board{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; overflow-x:auto; }
@media(max-width:1000px){ .kb-board{ grid-auto-flow:column; grid-auto-columns:minmax(200px,1fr); grid-template-columns:none; } }
.kb-col{ background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:10px; min-height:120px; transition:background .15s,border-color .15s; }
.kb-col.kb-over{ border-color:#2D8CFF; box-shadow:inset 0 0 0 1px #2D8CFF; }
.kb-col__head{ display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12.5px; font-weight:700; color:var(--text); padding:2px 4px 9px; border-bottom:2px solid var(--c,#2D8CFF); margin-bottom:10px; }
.kb-count{ background:var(--card); border:1px solid var(--line); border-radius:999px; font-size:11px; padding:1px 8px; font-weight:800; color:var(--text-soft); }
.kb-col__body{ display:flex; flex-direction:column; gap:8px; }
.kb-card{ background:var(--card); border:1px solid var(--line); border-radius:10px; padding:10px 11px; cursor:grab; box-shadow:0 1px 2px rgba(20,40,80,.04); transition:box-shadow .15s,transform .08s; }
.kb-card:hover{ box-shadow:0 4px 14px rgba(20,40,80,.10); transform:translateY(-1px); }
.kb-card:active{ cursor:grabbing; }
.kb-card__name{ font-size:13px; font-weight:700; line-height:1.25; }
.kb-card__meta{ font-size:11px; color:var(--text-soft); margin-top:3px; }
.kb-card__val{ font-size:13px; font-weight:800; margin-top:6px; font-variant-numeric:tabular-nums; }
.kb-sug{ font-size:9.5px; font-weight:700; color:#7B61FF; background:rgba(123,97,255,.14); border-radius:5px; padding:1px 5px; vertical-align:1px; }
.kb-pend{ font-size:10px; font-weight:700; color:#d97706; margin-left:4px; }
.kb-empty{ color:var(--text-soft); font-size:12px; text-align:center; padding:14px 0; opacity:.55; }

/* contagem regressiva */
.cd-box{ background:var(--bg); border:1px solid var(--line); border-radius:14px; padding:16px; }
.cd-lbl{ font-size:12.5px; color:var(--text-mute); font-weight:600; margin-bottom:10px; display:flex; align-items:center; gap:7px; }
.cd-lbl b{ color:var(--text-soft); }
.cd-ico{ width:26px; height:26px; border-radius:8px; display:inline-grid; place-items:center; background:var(--grad-soft); color:var(--eam-2); flex-shrink:0; }
.cd-ico i{ width:15px; height:15px; animation:cdico 1.8s ease-in-out infinite; transform-origin:center; }
@keyframes cdico{ 0%,100%{ transform:translateY(0) rotate(0); } 25%{ transform:translateY(-2px) rotate(-6deg); } 75%{ transform:translateY(-2px) rotate(6deg); } }
.cd-box.cd-red .cd-ico{ background:rgba(220,38,38,.14); color:#dc2626; }
.cd-box.cd-amber .cd-ico{ background:rgba(217,119,6,.14); color:#d97706; }
.cd-box.cd-green .cd-ico{ background:rgba(22,163,74,.14); color:#16a34a; }
.cd-box.cd-red .cd-ico i{ animation-duration:.9s; }
.cd-timer{ display:flex; gap:10px; flex-wrap:wrap; }
.cd-seg{ display:flex; flex-direction:column; align-items:center; min-width:50px; background:var(--card); border:1px solid var(--line); border-radius:11px; padding:8px 6px; }
.cd-seg b{ font-family:'Montserrat','Segoe UI',sans-serif; font-weight:800; font-size:24px; line-height:1; color:var(--text); }
.cd-seg i{ font-style:normal; font-size:10px; color:var(--text-mute); margin-top:3px; text-transform:uppercase; letter-spacing:.04em; }
.cd-seg.sec{ animation:cdpulse 1s ease-in-out infinite; }
@keyframes cdpulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.07); } }
/* cores por urgência: verde / amarelo / vermelho */
.cd-box.cd-green{ border-color:#16a34a; }
.cd-box.cd-amber{ border-color:#d97706; }
.cd-box.cd-red{ border-color:#dc2626; animation:cdGlowR 1.2s ease-in-out infinite; }
.cd-box.cd-green .cd-seg b{ color:#16a34a; }
.cd-box.cd-amber .cd-seg b{ color:#d97706; }
.cd-box.cd-red .cd-seg b{ color:#dc2626; }
.cd-box.cd-green .cd-lbl b{ color:#16a34a; }
.cd-box.cd-amber .cd-lbl b{ color:#d97706; }
.cd-box.cd-red .cd-lbl b{ color:#dc2626; }
@keyframes cdGlowR{ 0%,100%{ box-shadow:0 0 0 0 rgba(220,38,38,0); } 50%{ box-shadow:0 0 16px 2px rgba(220,38,38,.30); } }
.cd-meta{ background:var(--grad-soft); }
.cd-timer-lg .cd-seg{ min-width:62px; padding:11px 8px; }
.cd-timer-lg .cd-seg b{ font-size:30px; }
.cd-dot{ display:inline-block; width:10px; height:10px; border-radius:50%; vertical-align:0; margin-right:2px; }
.cd-dot.cd-green{ background:#16a34a; } .cd-dot.cd-amber{ background:#d97706; } .cd-dot.cd-red{ background:#dc2626; }

/* calendário de obrigações */
/* Faixa compacta de produtividade do calendário (substitui os KPIs altos p/ o calendário caber na tela) */
.cal-prod{ display:flex; gap:28px; align-items:center; flex-wrap:wrap; background:var(--bg-elev); border:1px solid var(--line); border-radius:16px; padding:13px 20px; margin-bottom:16px; }
.cal-prodblock{ display:flex; align-items:center; gap:18px; }
.cal-prodblock--sep{ border-left:1px solid var(--line); padding-left:26px; }
.cal-ring{ position:relative; width:62px; height:62px; flex:0 0 auto; }
.cal-ring-lbl{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.05; }
.cal-ring-lbl b{ font-size:15px; font-weight:800; } .cal-ring-lbl span{ font-size:9px; color:var(--text-soft); }
.cal-prodstats{ display:flex; gap:24px; flex-wrap:wrap; }
.cpt{ display:flex; flex-direction:column; gap:3px; }
.cpt b{ font-size:20px; font-weight:800; line-height:1; }
.cpt span{ font-size:11.5px; color:var(--text-soft); display:flex; align-items:center; gap:5px; }
.cpt .cpt-sub{ font-size:11px; font-weight:700; color:var(--text-mute); margin-top:1px; }
.cpt-dot{ width:7px; height:7px; border-radius:50%; display:inline-block; flex:0 0 auto; }
@media(max-width:720px){ .cal-prodblock--sep{ border-left:0; padding-left:0; } }
/* Calendário + card vertical de Destaques e Informativos */
.cal-layout{ display:flex; gap:18px; align-items:stretch; margin-bottom:18px; }
.cal-side{ width:340px; flex:0 0 340px; display:flex; flex-direction:column; margin-bottom:0; }
.cal-side .card__head{ margin-bottom:8px; }
.cald-list{ display:flex; flex-direction:column; gap:10px; flex:1; min-height:0; overflow-y:auto; padding-right:4px; }
.cald-item{ border-left:3px solid var(--c,#5b8def); background:var(--bg-elev); border-radius:0 10px 10px 0; padding:10px 12px; }
.cald-top{ display:flex; align-items:center; gap:7px; margin-bottom:5px; }
.cald-dep{ display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:700; padding:2px 8px; border-radius:20px; }
.cald-tag{ display:inline-flex; align-items:center; gap:4px; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; }
.cald-del{ margin-left:auto; background:transparent; border:0; color:var(--text-soft); cursor:pointer; padding:2px; border-radius:5px; display:flex; }
.cald-del:hover{ color:#e5484d; background:rgba(229,72,77,.12); }
.cald-tt{ font-size:13.5px; font-weight:700; line-height:1.3; }
.cald-tx{ font-size:12px; color:var(--text-soft); line-height:1.45; margin-top:3px; }
.cald-dt{ font-size:10.5px; color:var(--text-mute); display:flex; align-items:center; gap:4px; margin-top:5px; }
@media(max-width:1100px){ .cal-layout{ flex-direction:column; } .cal-side{ width:auto; flex:auto; } .cald-list{ max-height:420px; } }
.cal{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; margin-top:6px; }
.cal-h{ text-align:center; font-size:12px; font-weight:700; color:var(--text-mute); padding:6px 0; }
.cal-d{ min-height:118px; border:1px solid var(--line); border-radius:12px; padding:8px 9px; display:flex; flex-direction:column; gap:6px; transition:box-shadow .15s; }
.cal-d.empty{ border:0; }
.cal-d.has{ background:var(--bg); }
.cal-d.today{ border-color:var(--eam-2); box-shadow:0 0 0 2px var(--grad-soft); }
.cal-d .dnum{ font-size:14px; font-weight:800; display:flex; align-items:center; gap:5px; }
.cal-d .dnum-at{ width:15px; height:15px; }
.cal-d .dnum-at.hoje{ color:var(--amber); } .cal-d .dnum-at.venc{ color:var(--red); }
.cal-tasks{ display:flex; flex-direction:column; gap:4px; overflow:hidden; }
.cal-task{ display:flex; align-items:center; gap:5px; font-size:11px; font-weight:600; line-height:1.2; padding:3px 6px; border-radius:7px; background:color-mix(in srgb, var(--c) 12%, transparent); border-left:3px solid var(--c); color:var(--text); }
.cal-task-nm{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cal-task .cal-dot{ width:7px; height:7px; border-radius:50%; flex:0 0 auto; }
.cal-task .cal-sem{ width:8px; height:8px; border-radius:50%; flex:0 0 auto; box-shadow:0 0 0 2px color-mix(in srgb, var(--c) 14%, transparent); }
.cal-task .cal-at{ width:13px; height:13px; flex:0 0 auto; }
.cal-task .cal-at.hoje{ color:var(--amber); } .cal-task .cal-at.venc{ color:var(--red); }
@media(max-width:820px){ .cal-d{ min-height:96px; } .cal-task-nm{ display:none; } .cal-task{ padding:3px; } }
@media(max-width:560px){ .cal-d{ min-height:60px; padding:5px; } .cal-d .dnum{ font-size:12px; } }

/* stepper de implantação (círculos) */
.stepper{ display:flex; overflow-x:auto; padding:16px 2px 12px; }
.step{ flex:0 0 142px; text-align:center; position:relative; background:none; border:0; cursor:pointer; padding:0 4px; }
.step::before{ content:''; position:absolute; top:24px; right:50%; width:100%; height:3px; background:var(--line); z-index:0; }
.step:first-child::before{ display:none; }
.step-c{ position:relative; z-index:1; width:48px; height:48px; border-radius:50%; margin:0 auto; display:grid; place-items:center; color:#fff; font-weight:800; font-size:17px; font-family:'Montserrat','Segoe UI',sans-serif; border:3px solid var(--bg-elev); box-shadow:0 4px 12px rgba(0,0,0,.12); transition:transform .12s; }
.step:hover .step-c{ transform:scale(1.08); }
.step-t{ font-size:12px; font-weight:600; margin-top:9px; line-height:1.25; color:var(--text); }
.step-s{ font-size:10.5px; font-weight:800; margin-top:5px; text-transform:uppercase; letter-spacing:.03em; }

/* modal / ficha de empresa */
.modal-wrap[hidden]{ display:none; }
.modal-wrap{ position:fixed; inset:0; z-index:150; display:grid; place-items:center; padding:24px; }
.modal-backdrop{ position:absolute; inset:0; background:rgba(8,12,28,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.modal-card{ position:relative; z-index:1; width:min(760px,96vw); max-height:90vh; overflow-y:auto; background:var(--bg-elev); border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow-lg); animation:viewIn .25s ease; }
.modal-head{ display:flex; align-items:center; gap:14px; padding:20px 22px; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--bg-elev); z-index:2; }
.modal-head h2{ font-size:19px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.modal-body{ padding:20px 22px 24px; }
.ficha-sec{ background:var(--bg); border:1px solid var(--line); border-radius:14px; padding:16px; }
.ficha-sec h4{ font-size:13px; font-weight:700; display:flex; align-items:center; gap:8px; margin-bottom:12px; color:var(--text); }
.ficha-sec h4 i{ width:16px; height:16px; color:var(--eam-2); }
.dl-row{ display:flex; justify-content:space-between; gap:14px; padding:7px 0; border-bottom:1px dashed var(--line); font-size:13px; }
.dl-row:last-child{ border-bottom:none; }
.dl-lbl{ color:var(--text-mute); }
.dl-val{ color:var(--text); font-weight:600; text-align:right; }
.senha-block{ margin-top:16px; background:var(--amber-bg); border:1px solid rgba(217,119,6,.3); border-radius:14px; padding:16px; }
.senha-block__h{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700; color:var(--text); }
.senha-block__h i{ width:17px; height:17px; color:var(--amber); }
.senha-row{ display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:1px dashed rgba(217,119,6,.25); }
.senha-row:last-child{ border-bottom:none; }
.senha-lbl{ flex:1; font-size:13px; color:var(--text); font-weight:600; }
.senha-val{ font-family:ui-monospace,monospace; font-size:13px; color:var(--text); background:var(--bg-elev); padding:4px 10px; border-radius:7px; border:1px solid var(--line); min-width:120px; text-align:center; transition:filter .15s; }
.senha-val.masked{ filter:blur(5px); -webkit-user-select:none; user-select:none; }
.edit-row{ margin-bottom:12px; }
.edit-row label{ display:block; font-size:12px; color:var(--text-mute); margin-bottom:5px; font-weight:600; }
.edit-row input{ width:100%; padding:9px 12px; border:1px solid var(--line); border-radius:9px; background:var(--bg); color:var(--text); font-family:inherit; font-size:13.5px; outline:none; }
.edit-row input:focus{ border-color:var(--eam-2); box-shadow:0 0 0 3px rgba(45,140,255,.15); }
.icon-btn.sm{ width:30px; height:30px; }
.icon-btn.sm i{ width:15px; height:15px; }
.raw-dump{ margin-top:14px; border:1px dashed var(--line); border-radius:12px; padding:10px 14px; }
.raw-dump summary{ cursor:pointer; font-size:12.5px; font-weight:700; color:var(--text-soft); display:flex; align-items:center; gap:7px; }
.raw-dump summary i{ width:15px; height:15px; }
.raw-dump .dl-row{ font-size:12px; }
.raw-dump .dl-val{ font-family:ui-monospace,monospace; max-width:55%; overflow-wrap:anywhere; }

/* login */
.login-screen[hidden]{ display:none; }
.login-screen{ position:fixed; inset:0; z-index:200; display:grid; place-items:center;
  background: radial-gradient(1200px 600px at 70% -10%, rgba(123,97,255,.25), transparent 60%),
              radial-gradient(900px 500px at 0% 110%, rgba(35,199,243,.22), transparent 55%), var(--bg); }
.login-card{ background:var(--bg-elev); border:1px solid var(--line); border-radius:24px; padding:42px 38px;
  width:min(400px,90vw); text-align:center; box-shadow:var(--shadow-lg); animation:viewIn .4s ease; }
.login-card .brand-mark{ margin:0 auto 18px; }
.login-card h1{ font-size:26px; font-weight:800; }
.login-card p{ color:var(--text-soft); font-size:14px; margin:6px 0 26px; }
.login-btn{ width:100%; justify-content:center; padding:13px; font-size:14.5px; }
.login-hint{ display:block; margin-top:16px; font-size:12px; color:var(--text-mute); }
/* Botão Google: EAM One (visual) + botão oficial invisível por cima cobrindo toda a área do clique */
#googleBtnWrap{ cursor:pointer; }
#googleBtn{ width:100%; height:100%; }
#googleBtn > div, #googleBtn iframe{ width:100% !important; height:100% !important; min-width:100% !important; }

/* userbox */
.userbox[hidden]{ display:none; }
.userbox{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.presence{ position:absolute; right:-1px; bottom:-1px; width:11px; height:11px; border-radius:50%; background:#16a34a; border:2px solid var(--bg-elev); box-shadow:0 0 0 2px rgba(22,163,74,.25); }
.presence.off{ background:#dc2626; box-shadow:0 0 0 2px rgba(220,38,38,.25); }
.userbox__info{ display:flex; flex-direction:column; line-height:1.2; min-width:0; flex:1; }
.userbox__info strong{ font-size:13px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.userbox__info span{ font-size:11px; color:var(--text-mute); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* responsive */
@media (max-width: 900px){
  .sidebar { position:fixed; transform:translateX(-100%); box-shadow:var(--shadow-lg); }
  .sidebar.open { transform:none; }
  .sidebar__close{display:block;}
  .sidebar-backdrop{display:block;}
  .topbar__menu{display:grid;}
  .topbar__search{width:auto;flex:1;}
  .view{padding:18px;}
  .breadcrumbs{display:none;}
}
@media (max-width:560px){
  .topbar__search input::placeholder{font-size:0;}
  .page-head h1{font-size:22px;}
}

/* ====================== TOUR GUIADO DE TREINAMENTO ====================== */
.tour-fab{ position:fixed; right:18px; bottom:18px; z-index:300; display:inline-flex; align-items:center; gap:8px;
  border:0; cursor:pointer; padding:11px 16px; border-radius:30px; color:#fff; background:var(--grad);
  box-shadow:var(--shadow-lg); font:700 13px Inter,sans-serif; }
.tour-fab i{ width:18px; height:18px; }
.tour-fab:hover{ filter:brightness(1.05); transform:translateY(-1px); }
@media(max-width:640px){ .tour-fab span{ display:none; } .tour-fab{ padding:13px; } }
.tour-ov{ position:fixed; inset:0; z-index:320; background:rgba(8,12,28,.55); }
.tour-spot{ position:absolute; border-radius:12px; box-shadow:0 0 0 9999px rgba(8,12,28,.55); border:2px solid #2D8CFF;
  transition:all .25s ease; pointer-events:none; }
.tour-pop{ position:absolute; width:360px; max-width:calc(100vw - 24px); background:var(--bg-elev); color:var(--text);
  border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-lg); padding:18px 18px 14px; }
.tour-pop.center{ left:50%; top:50%; transform:translate(-50%,-50%); }
.tour-pop h3{ margin:6px 0 8px; font-size:17px; }
.tour-pop p{ margin:0; color:var(--text-soft); font-size:13.5px; line-height:1.55; }
.tour-step{ display:inline-block; font:700 11px Inter,sans-serif; color:#fff; background:var(--grad); padding:3px 10px; border-radius:20px; }
.tour-dots{ display:flex; gap:6px; margin:14px 0 12px; }
.tour-dots span{ width:7px; height:7px; border-radius:50%; background:var(--line); }
.tour-dots span.on{ background:#2D8CFF; width:18px; border-radius:4px; }
.tour-nav{ display:flex; align-items:center; gap:8px; }

/* ====================== Robozinho de IA correndo (KPI) ====================== */
.kpi-anim{ position:relative; overflow:hidden; }
.airunner{ position:absolute; right:10px; bottom:8px; width:64px; height:64px; pointer-events:none; --air-glow:rgba(43,238,116,.9); --air-line:#2BEE74; }
.airunner svg{ width:100%; height:100%; overflow:visible; filter: drop-shadow(0 0 4px var(--air-glow)); }
.airunner *{ transform-box:fill-box; }
.air-spark{ transform-origin:center; animation:airTwinkle 1.6s ease-in-out infinite; }
@keyframes airTwinkle{ 0%,100%{ opacity:.55; transform:scale(.8); } 50%{ opacity:1; transform:scale(1.15); } }
.air-core{ transform-origin:50% 100%; animation:airBob .26s ease-in-out infinite; }
@keyframes airBob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-3px); } }
.air-legF,.air-legB,.air-armF,.air-armB{ transform-origin:50% 0%; }
.air-legF,.air-armB{ animation:airSwingA .26s ease-in-out infinite; }
.air-legB,.air-armF{ animation:airSwingB .26s ease-in-out infinite; }
@keyframes airSwingA{ 0%,100%{ transform:rotate(30deg); } 50%{ transform:rotate(-30deg); } }
@keyframes airSwingB{ 0%,100%{ transform:rotate(-30deg); } 50%{ transform:rotate(30deg); } }
.air-eye{ animation:airBlink 3.2s infinite; }
@keyframes airBlink{ 0%,93%,100%{ opacity:1; } 96%{ opacity:.15; } }
.air-lines line{ stroke:var(--air-line); stroke-width:2; stroke-linecap:round; opacity:0; animation:airDash .26s linear infinite; }
.air-lines line:nth-child(2){ animation-delay:.14s; } .air-lines line:nth-child(3){ animation-delay:.28s; }
@keyframes airDash{ 0%{ opacity:.5; transform:translateX(4px); } 100%{ opacity:0; transform:translateX(-6px); } }
@media (prefers-reduced-motion: reduce){ .air-core,.air-legF,.air-legB,.air-armF,.air-armB,.air-eye,.air-lines line{ animation:none; } }

/* ====================== Relatório Operacional ====================== */
.rel-toolbar{ display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.rel-doc{ background:var(--bg-elev); border:1px solid var(--line); border-radius:16px; padding:0 0 18px; max-width:920px; margin:0 auto; overflow:hidden; box-shadow:var(--shadow); }
.rel-head{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding:22px 26px; background:var(--grad); color:#fff; flex-wrap:wrap; }
.rel-brand{ display:flex; align-items:center; gap:12px; }
.rel-mk{ width:42px; height:42px; border-radius:12px; background:rgba(255,255,255,.2); display:grid; place-items:center; font-weight:800; font-size:22px; }
.rel-bt{ font-weight:800; font-size:20px; } .rel-bt span{ opacity:.9; }
.rel-bs{ font-size:12px; opacity:.9; }
.rel-meta{ text-align:right; font-size:12.5px; line-height:1.5; opacity:.95; }
.rel-resumo{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; padding:18px 26px; border-bottom:1px solid var(--line); }
.rel-rk{ text-align:center; } .rel-rk b{ display:block; font-size:26px; font-weight:800; color:var(--text); } .rel-rk span{ font-size:12px; color:var(--text-soft); }
.rel-area{ padding:18px 26px; border-bottom:1px solid var(--line); }
.rel-h2{ font-size:18px; margin-bottom:12px; color:var(--eam-2); }
.rel-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:12px; }
.rel-k{ background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:10px; text-align:center; }
.rel-k b{ display:block; font-size:18px; font-weight:800; } .rel-k span{ font-size:11px; color:var(--text-soft); }
.rel-extra{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.rel-ind{ flex:1; min-width:150px; background:var(--grad-soft); border:1px solid var(--line); border-radius:10px; padding:10px 12px; }
.rel-ind span{ font-size:11px; color:var(--text-soft); display:block; } .rel-ind b{ font-size:16px; } .rel-ind i{ font-size:11px; color:var(--text-mute); font-style:normal; display:block; }
.rel-cols{ display:grid; grid-template-columns:1fr 1.4fr; gap:18px; }
.rel-h3{ font-size:13px; color:var(--text-soft); text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px; }
.rel-row{ display:flex; justify-content:space-between; padding:5px 0; border-bottom:1px dashed var(--line); font-size:13px; }
.rel-acao{ display:flex; gap:10px; align-items:flex-start; padding:7px 0; border-bottom:1px dashed var(--line); }
.rel-prio{ color:#fff; font-size:9px; font-weight:800; padding:2px 7px; border-radius:6px; flex-shrink:0; margin-top:2px; }
.rel-at{ font-weight:600; font-size:13px; } .rel-ad{ font-size:12px; color:var(--text-soft); }
.rel-foot{ padding:14px 26px 0; font-size:11px; color:var(--text-mute); text-align:center; }
@media print{
  .sidebar,.topbar,.tour-fab,.view-source,.rel-toolbar,#alertsDrawer,#drawerBackdrop,.no-print{ display:none !important; }
  body{ background:#fff !important; display:block; } .main{ margin:0 !important; } .view,.content{ padding:0 !important; max-width:100% !important; }
  .rel-doc{ border:0; box-shadow:none; max-width:100%; } .rel-area,.rel-resumo{ page-break-inside:avoid; }
  .rel-head{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}

/* ===== Barra de carregamento inicial ===== */
#appLoader{ position:fixed; inset:0; z-index:99999; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  background:linear-gradient(135deg,#23C7F3,#2D8CFF 50%,#7B61FF); color:#fff; font-family:'Segoe UI',Inter,Arial,sans-serif; transition:opacity .35s ease; }
#appLoader.hide{ opacity:0; pointer-events:none; }
#appLoader .al-mark{ width:64px; height:64px; background:rgba(255,255,255,.18); border:2px solid rgba(255,255,255,.6); border-radius:18px; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:24px; margin-bottom:16px; }
#appLoader .al-title{ font-size:21px; font-weight:800; letter-spacing:.3px; }
#appLoader .al-title b{ font-weight:500; }
#appLoader .al-msg{ font-size:13px; opacity:.92; margin-top:4px; }
/* Bateria de carregamento com % */
#appLoader .al-batt{ display:flex; align-items:center; gap:9px; margin-top:20px; }
#appLoader .al-batt__body{ position:relative; width:200px; height:30px; border:2.5px solid rgba(255,255,255,.85); border-radius:8px; padding:3px; box-shadow:0 2px 12px rgba(0,0,0,.12); }
#appLoader .al-batt__fill{ height:100%; width:0%; border-radius:4px; background:#fff; box-shadow:0 0 14px rgba(255,255,255,.55); transition:width .35s cubic-bezier(.35,.9,.35,1), background .4s ease; position:relative; overflow:hidden; }
#appLoader .al-batt__fill::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, transparent 20%, rgba(255,255,255,.55) 50%, transparent 80%); transform:translateX(-100%); animation:alShine 1.3s linear infinite; }
#appLoader .al-batt__cap{ width:6px; height:14px; border-radius:0 4px 4px 0; background:rgba(255,255,255,.85); margin-left:-5px; }
#appLoader .al-batt__pct{ font-weight:800; font-size:19px; min-width:52px; text-align:left; font-variant-numeric:tabular-nums; text-shadow:0 1px 6px rgba(0,0,0,.15); }
@keyframes alShine{ to{ transform:translateX(100%); } }

/* ===== Painel Reforma Tributária ===== */
.rt-reveal{ opacity:0; transform:translateY(26px); transition:opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1); }
.rt-reveal.rt-show{ opacity:1; transform:none; }
@keyframes rtGrad{ 0%{background-position:0% 50%} 100%{background-position:200% 50%} }
@keyframes rtFloat{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-9px)} }
@keyframes rtPulse{ 0%{box-shadow:0 0 0 0 rgba(255,255,255,.55)} 70%{box-shadow:0 0 0 16px rgba(255,255,255,0)} 100%{box-shadow:0 0 0 0 rgba(255,255,255,0)} }
@keyframes rtDash{ to{ stroke-dashoffset:0; } }
.rt-hero{ position:relative; overflow:hidden; border-radius:22px; padding:34px 38px; color:#fff;
  background:linear-gradient(120deg,#23C7F3,#2D8CFF 35%,#7B61FF 70%,#2D8CFF 100%); background-size:220% 100%; animation:rtGrad 10s linear infinite; box-shadow:0 18px 46px rgba(45,140,255,.34); }
.rt-hero .rt-badge{ display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.35); border-radius:999px; padding:6px 14px; font-size:12px; font-weight:700; letter-spacing:.5px; }
.rt-hero h1{ font-size:34px; font-weight:800; margin:14px 0 6px; line-height:1.08; }
.rt-hexfloat{ position:absolute; right:34px; top:26px; width:70px; height:70px; background:rgba(255,255,255,.16); border:2px solid rgba(255,255,255,.55); border-radius:20px; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:26px; animation:rtFloat 3.4s ease-in-out infinite; }
.rt-sec{ margin-top:20px; }
.rt-sec-h{ display:flex; align-items:center; gap:10px; margin:0 0 12px; }
.rt-sec-h .n{ width:30px; height:30px; border-radius:9px; background:var(--grad); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:14px; flex:0 0 auto; }
.rt-sec-h h2{ font-size:19px; font-weight:800; color:var(--text); }
.rt-vs{ display:grid; grid-template-columns:1fr 54px 1fr; gap:12px; align-items:stretch; }
.rt-vs .rt-col{ background:var(--card); border:1px solid var(--line); border-radius:16px; padding:16px 18px; }
.rt-vs .rt-col.antes{ border-top:4px solid #94a3b8; }
.rt-vs .rt-col.depois{ border-top:4px solid #2D8CFF; }
.rt-vs .rt-arrow{ display:flex; align-items:center; justify-content:center; color:#2D8CFF; animation:rtFloat 2.6s ease-in-out infinite; }
.rt-chip{ display:inline-block; margin:3px 4px 0 0; padding:4px 11px; border-radius:999px; font-size:12.5px; font-weight:700; }
.rt-num{ font-size:30px; font-weight:800; }
.rt-timeline{ position:relative; display:flex; gap:0; overflow-x:auto; padding:6px 0 4px; }
.rt-tl-step{ flex:1; min-width:150px; text-align:center; position:relative; padding:0 8px; }
.rt-tl-step::before{ content:""; position:absolute; top:16px; left:0; right:0; height:4px; background:var(--line); z-index:0; }
.rt-tl-step.on::before{ background:var(--grad); }
.rt-tl-dot{ position:relative; z-index:1; width:34px; height:34px; border-radius:50%; margin:0 auto 8px; display:flex; align-items:center; justify-content:center; font-weight:800; color:#fff; background:var(--grad); box-shadow:0 4px 12px rgba(45,140,255,.4); }
.rt-tl-yr{ font-weight:800; color:var(--text); font-size:15px; }
.rt-setor{ background:var(--card); border:1px solid var(--line); border-radius:14px; padding:14px 16px; border-left:4px solid var(--c,#2D8CFF); transition:transform .15s; }
.rt-setor:hover{ transform:translateY(-3px); }
.rt-sync-node{ background:var(--card); border:1px solid var(--line); border-radius:14px; padding:12px 14px; text-align:center; font-weight:700; font-size:12.5px; animation:rtFloat 3s ease-in-out infinite; }

/* ============ Mobile / compatibilidade — ajustes finos ============ */
html, body { max-width: 100%; }
body { overflow-x: clip; }   /* evita scroll horizontal sem quebrar position:sticky */
img, svg, canvas, table { max-width: 100%; }
@media (max-width: 820px){
  /* Central de Atendimento: empilha em 1 coluna (desliga o subgrid) */
  .central-grid{ display:block !important; min-width:0 !important; grid-template-columns:1fr !important; grid-template-rows:none !important; }
  .central-grid > div{ grid-row:auto !important; grid-template-rows:none !important; display:block !important; margin-bottom:14px; }
  /* Reforma: Antes × Depois empilha; seta gira */
  .rt-vs{ grid-template-columns:1fr !important; }
  .rt-vs .rt-arrow{ transform:rotate(90deg); height:34px; }
  /* modais ocupam a tela */
  .modal-card{ width:96vw !important; max-height:92vh !important; border-radius:16px !important; }
}
@media (max-width: 600px){
  .rt-hero{ padding:22px 20px !important; }
  .rt-hero h1{ font-size:23px !important; }
  .rt-hexfloat{ display:none !important; }
  .view{ padding:14px !important; }
  .grid{ gap:14px !important; }
  .card{ padding:16px 15px; }
  .cd-timer{ font-size:20px !important; }
  #rtCountdown{ flex-wrap:wrap; gap:8px !important; }
  table.data{ font-size:12.5px; }
  table.data th, table.data td{ padding:10px 11px; }
  .page-head h1{ font-size:20px; }
  .central-grid > div{ box-shadow:none; }
}
/* Fallback: navegadores sem subgrid não quebram a Central (vira cards empilhados) */
@supports not (grid-template-rows: subgrid){
  .central-grid{ display:block !important; min-width:0 !important; }
  .central-grid > div{ grid-row:auto !important; grid-template-rows:none !important; display:block !important; margin-bottom:14px; }
}

/* ---------- CND · Anéis de regularidade (estilo Apple Fitness) ---------- */
.cnd-hero{ display:grid; grid-template-columns:auto 1fr; grid-template-areas:"ring stats" "esf esf"; gap:20px 26px; align-items:center; padding:22px 24px; }
.cnd-hero__ring{ grid-area:ring; }
.cnd-hero__stats{ grid-area:stats; display:flex; flex-direction:column; gap:11px; }
.cnd-hero__esf{ grid-area:esf; display:grid; grid-template-columns:repeat(6,1fr); gap:14px; border-top:1px solid var(--line); padding-top:18px; }
.cnd-ring__wrap{ position:relative; display:inline-flex; align-items:center; justify-content:center; }
.cnd-ring__ctr{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; }
.cnd-ring__ctr b{ font-size:19px; font-weight:800; line-height:1; }
.cnd-ring__ctr .ls{ font-size:11px; }
.cnd-ring{ display:flex; flex-direction:column; align-items:center; gap:5px; text-align:center; }
.cnd-ring__lbl{ font-size:12px; font-weight:600; color:var(--text); }
.cnd-ring__sub{ font-size:10px; color:var(--text-mute); }
.cnd-stat{ display:flex; align-items:center; gap:9px; font-size:14px; color:var(--text-soft); }
.cnd-stat b{ font-size:18px; font-weight:800; color:var(--text); }
.cnd-dot{ width:11px; height:11px; border-radius:50%; flex:0 0 auto; }
.cnd-hero__pills{ display:flex; gap:8px; flex-wrap:wrap; margin-top:4px; }
.cnd-ball{ width:16px; height:16px; border-radius:50%; flex:0 0 auto; display:inline-block; }
/* Célula de status editável (CND) */
.cnd-cell{ border-radius:8px; padding:2px 4px; margin:-2px -4px; transition:background .12s; }
.cnd-cell[onclick]:hover{ background:var(--grad-soft); }
/* Popover de edição do status manual */
.cnd-stpop{ position:fixed; z-index:10000; width:270px; background:var(--card); color:var(--text); border:1px solid var(--line); border-radius:14px; box-shadow:0 20px 60px rgba(0,0,0,.32); padding:12px; }
.cnd-stpop__hd{ font-size:12px; font-weight:700; color:var(--text-soft); margin:0 2px 8px; }
.cnd-stpop__opts{ display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.cnd-stopt{ display:flex; align-items:center; gap:7px; font-size:12.5px; font-weight:600; color:var(--text); background:var(--bg-soft,rgba(148,163,184,.08)); border:1px solid var(--line); border-radius:9px; padding:7px 9px; cursor:pointer; text-align:left; }
.cnd-stopt span{ font-size:14px; line-height:1; }
.cnd-stopt:hover{ border-color:var(--brand,#2D8CFF); }
.cnd-stopt.on{ border-color:var(--brand,#2D8CFF); box-shadow:0 0 0 2px color-mix(in srgb,var(--brand,#2D8CFF) 22%,transparent); }
.cnd-stpop__ft{ display:flex; justify-content:flex-end; gap:8px; margin-top:10px; }
/* Overlay de PDFs */
.cnd-ov{ position:fixed; inset:0; background:rgba(15,23,42,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); z-index:9999; display:flex; align-items:center; justify-content:center; padding:20px; }
.cnd-ov__box{ background:var(--card); color:var(--text); border:1px solid var(--line); border-radius:16px; max-width:520px; width:100%; max-height:80vh; overflow:auto; box-shadow:0 24px 70px rgba(0,0,0,.35); }
.cnd-ov__head{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 18px; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--card); }
.cnd-ov__head button{ background:none; border:none; font-size:18px; cursor:pointer; color:var(--text-soft); }
.cnd-ov__body{ padding:14px 18px; display:flex; flex-direction:column; gap:8px; }
.cnd-ov__doc{ display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; text-decoration:none; color:var(--text); font-size:13px; }
.cnd-ov__doc:hover{ background:var(--grad-soft); }
.cnd-ov__doc i{ width:16px; height:16px; flex:0 0 auto; color:var(--text-mute); }
/* Campos dentro dos modais — dark-safe (o .inp é wrapper e não estiliza input/textarea nativos) */
#caldOv .cnd-ov__body label{ display:flex; flex-direction:column; gap:4px; align-items:stretch; }
#caldOv .cnd-ov__body label > select, #caldOv .cnd-ov__body label > input, #caldOv .cnd-ov__body label > textarea{ margin-top:0 !important; min-width:0; width:100%; }
.cnd-ov__body input.inp, .cnd-ov__body textarea.inp{
  background:var(--bg-elev); color:var(--text); border:1px solid var(--line); border-radius:10px;
  padding:9px 11px; font:inherit; font-size:13px; outline:none; box-sizing:border-box; }
.cnd-ov__body input.inp::placeholder, .cnd-ov__body textarea.inp::placeholder{ color:var(--text-mute); }
.cnd-ov__body input.inp:focus, .cnd-ov__body textarea.inp:focus{ border-color:#2D8CFF; box-shadow:0 0 0 3px rgba(45,140,255,.15); }

/* ---------- Dashboard do cliente (Emissão de NF) ---------- */
.efd-box{ max-width:800px; }
.efd-head{ display:flex; align-items:center; gap:13px; padding:16px 20px; background:var(--grad); color:#fff; position:sticky; top:0; z-index:2; }
.efd-ava{ width:44px; height:44px; border-radius:12px; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.28); display:grid; place-items:center; font-weight:800; font-size:15px; flex:none; }
.efd-hm{ flex:1; min-width:0; }
.efd-hn{ font-size:16px; font-weight:800; letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.efd-hs{ font-size:12px; opacity:.92; margin-top:2px; display:flex; flex-wrap:wrap; gap:4px 12px; }
.efd-sel{ appearance:none; background:rgba(255,255,255,.16); color:#fff; border:1px solid rgba(255,255,255,.34); border-radius:9px; padding:7px 28px 7px 11px; font:inherit; font-size:12.5px; font-weight:700; cursor:pointer; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='white' viewBox='0 0 24 24'><path d='M7 10l5 5 5-5z'/></svg>"); background-repeat:no-repeat; background-position:right 8px center; }
.efd-sel option{ color:#0f1830; }
.efd-x{ width:33px; height:33px; border-radius:9px; border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.12); color:#fff; font-size:16px; cursor:pointer; flex:none; }
.efd-body{ padding:18px 20px 22px; }
.efd-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:11px; margin-bottom:20px; }
.efd-kpi{ background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:12px 13px; }
.efd-kl{ font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--text-soft); display:flex; align-items:center; gap:6px; }
.efd-kl .ic{ width:9px; height:9px; border-radius:2px; flex:none; }
.efd-kv{ font-size:19px; font-weight:800; margin-top:6px; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.efd-kv.grad{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.efd-kd{ font-size:11px; color:var(--text-mute); margin-top:1px; }
.efd-sec{ border-top:1px solid var(--line); padding:16px 0 4px; }
.efd-sec:first-of-type{ border-top:0; padding-top:0; }
.efd-sh{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:13px; flex-wrap:wrap; }
.efd-st{ font-size:13.5px; font-weight:800; letter-spacing:-.01em; display:flex; align-items:center; gap:8px; }
.efd-st .sq{ width:20px; height:20px; border-radius:6px; background:var(--grad); display:grid; place-items:center; color:#fff; font-size:11px; font-weight:900; flex:none; }
.efd-sm{ font-size:11.5px; color:var(--text-soft); font-weight:600; }
.efd-bars{ display:grid; gap:9px; align-items:end; height:142px; }
.efd-bar{ display:flex; flex-direction:column; align-items:center; gap:6px; height:100%; justify-content:flex-end; }
.efd-bcol{ width:66%; max-width:32px; border-radius:6px 6px 3px 3px; background:var(--grad); min-height:4px; }
.efd-bar.on .efd-bcol{ box-shadow:0 0 0 3px rgba(45,140,255,.28); }
.efd-bv{ font-size:10px; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.efd-bm{ font-size:10.5px; color:var(--text-soft); font-weight:600; }
.efd-gpair{ display:flex; gap:3px; align-items:end; height:100%; width:100%; justify-content:center; }
.efd-gb{ width:13px; border-radius:4px 4px 2px 2px; min-height:3px; }
.efd-gb.emit{ background:#2D8CFF; } .efd-gb.receb{ background:#7B61FF; }
.efd-leg{ display:flex; gap:14px; font-size:11px; color:var(--text-soft); font-weight:600; }
.efd-leg i{ width:9px; height:9px; border-radius:3px; display:inline-block; margin-right:5px; vertical-align:-1px; }
.efd-tipos{ display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
.efd-tipo{ background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:11px 12px; }
.efd-tl{ font-size:10.5px; font-weight:700; color:var(--text-soft); text-transform:uppercase; letter-spacing:.03em; }
.efd-tv{ font-size:18px; font-weight:800; margin-top:4px; font-variant-numeric:tabular-nums; }
.efd-tb{ height:5px; border-radius:3px; background:var(--line); margin-top:8px; overflow:hidden; }
.efd-tb i{ display:block; height:100%; border-radius:3px; }
.efd-carga{ display:grid; grid-template-columns:150px 1fr; gap:20px; align-items:center; }
.efd-donut{ position:relative; width:140px; height:140px; margin:0 auto; }
.efd-donut svg{ transform:rotate(-90deg); }
.efd-dc{ position:absolute; inset:0; display:grid; place-content:center; text-align:center; }
.efd-dp{ font-size:24px; font-weight:900; letter-spacing:-.02em; line-height:1; }
.efd-dl{ font-size:10px; color:var(--text-soft); text-transform:uppercase; letter-spacing:.05em; font-weight:700; margin-top:3px; }
.efd-imp{ display:flex; flex-direction:column; gap:8px; }
.efd-ir{ display:grid; grid-template-columns:11px 1fr auto; gap:9px; align-items:center; font-size:12.5px; }
.efd-ir .sw{ width:11px; height:11px; border-radius:3px; }
.efd-in{ color:var(--text-soft); font-weight:600; }
.efd-iv{ font-weight:800; font-variant-numeric:tabular-nums; }
.efd-it{ border-top:1px solid var(--line); margin-top:3px; padding-top:8px; display:flex; justify-content:space-between; font-size:13px; font-weight:800; }
.efd-ftop{ display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:12px 14px; margin-bottom:11px; }
.efd-fl{ font-size:11.5px; color:var(--text-soft); font-weight:600; }
.efd-fv{ font-size:14px; font-weight:800; margin-top:2px; }
.efd-prog{ width:110px; height:8px; border-radius:5px; background:var(--line); overflow:hidden; }
.efd-prog i{ display:block; height:100%; background:var(--grad); border-radius:5px; }
.efd-steps{ display:flex; flex-direction:column; gap:8px; }
.efd-step{ display:flex; align-items:center; gap:11px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--bg); }
.efd-si{ width:26px; height:26px; border-radius:8px; display:grid; place-items:center; font-size:13px; flex:none; }
.efd-sm2{ flex:1; min-width:0; }
.efd-stt{ font-size:13px; font-weight:700; }
.efd-sts{ font-size:11px; color:var(--text-soft); margin-top:1px; }
.efd-note{ font-size:11px; color:var(--text-mute); margin-top:16px; padding-top:13px; border-top:1px dashed var(--line); line-height:1.5; }
.efd-note b{ color:var(--text-soft); }
@media(max-width:600px){ .efd-kpis{ grid-template-columns:repeat(2,1fr); } .efd-carga{ grid-template-columns:1fr; } .efd-tipos{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:820px){
  .cnd-hero{ grid-template-columns:1fr; grid-template-areas:"ring" "stats" "esf"; justify-items:center; text-align:center; }
  .cnd-hero__stats{ align-items:center; }
  .cnd-hero__esf{ grid-template-columns:repeat(3,1fr); width:100%; }
}
@media(max-width:600px){ .cnd-hero__esf{ grid-template-columns:repeat(2,1fr); } }

.parc-tab.on{background:linear-gradient(135deg,#23C7F3,#2D8CFF,#7B61FF);color:#fff;border-color:transparent}
