@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Sora:wght@500;600;700&display=swap');
:root{
  --font-heading:'Sora','Inter','Segoe UI',system-ui,sans-serif;
  /* tema ESCURO (padrão) */
  --bg:#0a0c11; --surface:#10131a; --surface2:#161a23; --elevated:#171b24;
  --border:#242a36; --border2:#2f3645;
  --text:#e8eaf0; --muted:#9098a8; --faint:#5a6273;
  --accent:#5b8cff; --accent2:#22d3ee;
  --green:#34d399; --amber:#fbbf24; --red:#f87171; --info:#60a5fa; --purple:#a78bfa;
  --radius:14px; --radius-sm:10px;
  --shadow:0 1px 2px rgba(0,0,0,.4); --shadow-lg:0 12px 40px rgba(0,0,0,.45);
  --font:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;
}
:root[data-theme="light"]{
  /* tema CLARO — a cor de destaque (--accent) vem da paleta do cliente nos dois temas */
  --bg:#f5f7fb; --surface:#ffffff; --surface2:#eef1f7; --elevated:#ffffff;
  --border:#e5e8f0; --border2:#d7dce8;
  --text:#1a1e29; --muted:#5d6675; --faint:#98a0b0;
  --green:#16a34a; --amber:#d97706; --red:#dc2626; --info:#2563eb; --purple:#7c3aed;
  --shadow:0 1px 2px rgba(16,24,40,.06); --shadow-lg:0 14px 44px rgba(16,24,40,.14);
}
*{box-sizing:border-box;margin:0;padding:0}
.ico{display:inline-block;vertical-align:-3px;flex-shrink:0}
.btn .ico,.adm-tab .ico{vertical-align:-3px;margin-right:5px}
.btn.icon-only{display:inline-flex;align-items:center;justify-content:center}
.btn.icon-only .ico{margin:0}
body{background:var(--bg);color:var(--text);font-family:var(--font);height:100vh;display:flex;flex-direction:column;overflow:hidden;-webkit-font-smoothing:antialiased;font-size:14px}
button{font-family:inherit;cursor:pointer}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:6px;border:2px solid var(--bg)}
::-webkit-scrollbar-track{background:transparent}

/* ---------- topbar ---------- */
#topbar{height:56px;display:flex;align-items:center;gap:18px;padding:0 22px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;z-index:10}
.brand{font-weight:700;font-size:16px;letter-spacing:.3px;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.crumbs{color:var(--muted);font-size:13px}
.crumbs b{color:var(--text);font-weight:600}

#app{flex:1;display:flex;min-height:0}

/* ---------- sidebar ---------- */
#sidebar{width:268px;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0;padding:16px 12px;display:flex;flex-direction:column;gap:6px}
.panel{margin-bottom:10px}
.panel-head{display:flex;justify-content:space-between;align-items:center;font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--faint);margin:6px 6px 8px;font-weight:600}
.add{background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:8px;width:24px;height:24px;font-size:15px;line-height:1;transition:.15s}
.add:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.list{list-style:none;display:flex;flex-direction:column;gap:2px}
.list li{padding:9px 11px;border-radius:10px;font-size:13.5px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--muted);transition:.12s;border:1px solid transparent}
.list li:hover{background:var(--surface2);color:var(--text)}
.list li.active{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--text);border-color:color-mix(in srgb,var(--accent) 35%,transparent);font-weight:500}
.list li .meta{font-size:11px;color:var(--faint)}
.list li.active .meta{color:var(--accent)}

/* ---------- main ---------- */
#main{flex:1;overflow-y:auto;padding:28px 32px}
.empty{color:var(--muted);text-align:center;margin-top:90px;font-size:14px}

/* ---------- headers ---------- */
.gv-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:14px;margin-bottom:22px}
.gv-title,.brand,.kpi-big,.top-title{font-family:var(--font-heading)}
.card h3{font-family:var(--font-heading)}
.gv-title{font-size:23px;font-weight:700;letter-spacing:-.3px;font-family:var(--font-heading)}
.gv-sub{color:var(--muted);font-size:13px;margin-top:5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.gv-actions{display:flex;gap:9px;align-items:center}

/* ---------- buttons (limpos, sólidos — estilo Trivium) ---------- */
.btn{background:var(--accent);border:1px solid var(--accent);color:#fff;border-radius:10px;padding:9px 15px;font-size:13px;font-weight:600;transition:.14s;display:inline-flex;align-items:center;gap:7px;line-height:1;white-space:nowrap}
.btn:hover{background:color-mix(in srgb,var(--accent) 88%,#000);border-color:color-mix(in srgb,var(--accent) 88%,#000)}
.btn:active{transform:translateY(.5px)}
.btn .ico{margin-right:0}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border2)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.btn:disabled{opacity:.5;cursor:not-allowed;background:var(--surface2);border-color:var(--border2);color:var(--muted)}

.alert{background:color-mix(in srgb,var(--amber) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--amber) 40%,transparent);color:#fde68a;border-radius:12px;padding:11px 15px;margin-bottom:18px;font-size:13px}

/* ---------- run progress ---------- */
.runbar{background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:20px;box-shadow:var(--shadow)}
.runbar-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:10px;color:var(--muted)}
.runbar-top b{color:var(--text)}
.bar{height:10px;background:var(--surface2);border-radius:6px;overflow:hidden}
.bar>div{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .5s;border-radius:6px}
.stage-row{display:flex;gap:16px;margin-top:11px;flex-wrap:wrap;font-size:11.5px;color:var(--faint)}
.stage-row b{color:var(--muted)}

/* ---------- eras ---------- */
.era-chip{cursor:pointer;border-radius:22px;padding:6px 13px;font-size:12px;border:1px solid var(--border2);background:var(--surface2);color:var(--muted);transition:.15s;display:inline-flex;align-items:center;gap:6px}
.era-chip:hover{border-color:var(--accent)}
.era-chip.sel{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:var(--accent);color:var(--text)}

/* ---------- filters ---------- */
.filters{display:flex;gap:10px;align-items:center;margin-bottom:20px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px}
.filters input,.filters select{background:var(--surface2);border:1px solid var(--border2);color:var(--text);border-radius:9px;padding:7px 11px;font-size:13px;color-scheme:dark}

/* ---------- seletor de período (presets) ---------- */
.period-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:9px 14px}
.pb-ico{color:var(--muted);display:inline-flex}
.pb-lbl{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.pb-chips{display:inline-flex;gap:5px;background:var(--surface2);border:1px solid var(--border2);border-radius:10px;padding:3px}
.pb-chip{background:none;border:none;color:var(--muted);border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:.14s}
.pb-chip:hover{color:var(--text)}
.pb-chip.on{background:var(--accent);color:#fff;box-shadow:var(--shadow)}
.pb-custom{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}
.pb-custom input{background:var(--surface2);border:1px solid var(--border2);color:var(--text);border-radius:9px;padding:6px 10px;font-size:12.5px}
:root[data-theme="dark"] .pb-custom input{color-scheme:dark}
.pb-range{margin-left:auto;font-size:12px;color:var(--muted);font-weight:500}
.pb-range.pb-all{color:var(--faint)}

/* ---------- cards / grid ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px}
.card{background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius);padding:18px;overflow:hidden;box-shadow:var(--shadow);transition:.15s}
.card:hover{border-color:var(--border2)}
.card.wide{grid-column:1/-1}
.card h3{font-size:13.5px;font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:8px;color:var(--text)}
.card h3 .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}

/* ---------- KPI tiles ---------- */
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.kpi-mini{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:13px 15px}
.kpi-mini b{display:block;font-size:24px;font-weight:700;letter-spacing:-.5px;line-height:1.1;background:linear-gradient(90deg,var(--text),var(--muted));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.kpi-mini span{font-size:11.5px;color:var(--muted);display:block;margin-top:5px;text-transform:capitalize}
.kpi-big{font-size:38px;font-weight:800;letter-spacing:-1px}
.kpi-sub{color:var(--muted);font-size:12.5px;margin-top:4px}

/* ---------- tables ---------- */
table{width:100%;border-collapse:collapse;font-size:12.5px}
th{color:var(--faint);text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);font-weight:600;text-transform:uppercase;font-size:10.5px;letter-spacing:.5px}
td{padding:8px 10px;border-bottom:1px solid var(--surface2);vertical-align:top}
tr:hover td{background:var(--surface2)}

/* ---------- charts ---------- */
.bar-row{display:flex;align-items:center;gap:10px;margin:7px 0;font-size:12px}
.bar-label{width:150px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}
.bar-track{flex:1;background:var(--surface2);border-radius:6px;height:22px;overflow:hidden}
.bar-fill{height:100%;border-radius:6px;display:flex;align-items:center;padding-left:8px;font-size:10.5px;font-weight:700;color:#06210f;min-width:fit-content;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.cols{display:flex;align-items:flex-end;gap:6px;height:170px;padding-top:10px}
.col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:0}
.col-fill{width:100%;border-radius:5px 5px 0 0;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 55%,transparent));min-height:2px;transition:.3s}
.col-v{font-size:10px;font-weight:700;margin-bottom:4px;color:var(--text)}
.col-l{font-size:9.5px;color:var(--faint);margin-top:6px;text-align:center;word-break:break-word;line-height:1.2}

.insight{background:var(--surface2);border-left:3px solid var(--accent);border-radius:0 9px 9px 0;padding:10px 13px;font-size:12.5px;margin-top:9px;color:var(--text);line-height:1.5}
.evidence{color:var(--faint);font-size:10.5px;margin-top:5px;font-family:var(--font)}
.open-item{display:flex;gap:11px;padding:10px 4px;border-bottom:1px solid var(--surface2);font-size:12.5px;align-items:flex-start}
.open-item:last-child{border-bottom:none}
.badge{background:var(--surface2);border:1px solid var(--border2);border-radius:7px;padding:3px 9px;font-size:10.5px;color:var(--amber);white-space:nowrap;flex-shrink:0;font-weight:600}
.gauge-v{font-size:34px;font-weight:800;letter-spacing:-1px}
.gauge-v span{font-size:15px;font-weight:500;color:var(--muted)}

/* ---------- timeline ---------- */
.tl-item{display:flex;gap:12px;padding:9px 4px;border-bottom:1px solid var(--surface2);font-size:12.5px;align-items:center}
.tl-item:last-child{border-bottom:none}
.tl-date{color:var(--faint);width:100px;flex-shrink:0;font-size:11.5px}
.sev-critica{color:var(--red)} .sev-alta{color:var(--amber)} .sev-media{color:var(--info)} .sev-baixa{color:var(--muted)}
.pill{border-radius:6px;padding:2px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.pill.aberto{background:color-mix(in srgb,var(--amber) 18%,transparent);color:var(--amber)}
.pill.resolvido{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}
.pill.observacao{background:color-mix(in srgb,var(--info) 16%,transparent);color:var(--info)}
.pill.em_andamento{background:color-mix(in srgb,#3b82f6 18%,transparent);color:#3b82f6}
/* Datas em destaque (formato único DD/MM/AAAA) — aplicado por decorateDates() */
.zdate{font-weight:700;color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent);padding:0 5px;border-radius:5px;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.2px}
.zdate-empty{color:var(--faint);background:none;font-weight:500}
.ztime{color:var(--muted);font-variant-numeric:tabular-nums}
.gv-note{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);background:color-mix(in srgb,var(--accent) 7%,transparent);border:1px solid color-mix(in srgb,var(--accent) 16%,transparent);border-radius:8px;padding:7px 11px;margin:2px 0 10px}

/* ---- widget flutuante de sincronização (2º plano) ---- */
.zsync{position:fixed;right:22px;bottom:94px;width:330px;max-width:calc(100vw - 32px);z-index:60;
  background:var(--surface);border:1px solid var(--border,#e6e8ee);border-radius:16px;
  box-shadow:0 18px 50px -12px rgba(20,30,60,.35),0 4px 14px rgba(20,30,60,.12);
  padding:13px 14px;overflow:hidden}
.zsync::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent2,var(--accent)),var(--accent3,var(--accent)))}
.zsync-in{animation:zsyncIn .42s cubic-bezier(.2,.9,.25,1)}
@keyframes zsyncIn{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
.zsync-head{display:flex;align-items:center;gap:9px}
.zsync-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;
  color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}
.zsync-ic.spin svg{animation:zspin 1.1s linear infinite}
.zsync-ic.ok{color:var(--green);background:color-mix(in srgb,var(--green) 16%,transparent)}
.zsync-ic.err{color:var(--red,#e5484d);background:color-mix(in srgb,var(--red,#e5484d) 16%,transparent)}
@keyframes zspin{to{transform:rotate(360deg)}}
.zsync-ttl{flex:1;min-width:0;line-height:1.25}
.zsync-ttl b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zsync-ttl span{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zsync-btn{flex:0 0 auto;background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:7px;display:grid;place-items:center}
.zsync-btn:hover{background:color-mix(in srgb,var(--muted) 14%,transparent);color:var(--text)}
.zsync-bar{position:relative;height:9px;border-radius:6px;margin:11px 0 7px;overflow:hidden;
  background:color-mix(in srgb,var(--muted) 16%,transparent)}
.zsync-fill{height:100%;border-radius:6px;transition:width .5s cubic-bezier(.3,.9,.3,1);
  background:linear-gradient(90deg,var(--accent),var(--accent2,var(--accent)),var(--accent3,var(--accent)),var(--accent));
  background-size:220% 100%;animation:zshimmer 1.6s linear infinite}
@keyframes zshimmer{to{background-position:-220% 0}}
.zsync-fill.ok{background:var(--green);animation:none}
.zsync-fill.err{background:var(--red,#e5484d);animation:none}
.zsync-row{display:flex;align-items:baseline;gap:8px}
.zsync-pct{font-weight:800;font-size:14px;color:var(--accent);font-variant-numeric:tabular-nums}
.zsync-narr{font-size:11.5px;color:var(--muted);flex:1;min-width:0;animation:zfade .5s ease}
@keyframes zfade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.zsync-hint{margin-top:8px;font-size:10.5px;color:var(--faint);display:flex;align-items:center;gap:5px}
.zsync-hint svg{color:var(--green)}
/* minimizado → bolha com anel de progresso */
.zsync.min{width:auto;padding:0;background:none;border:none;box-shadow:none;right:24px;bottom:96px}
.zsync.min::before{display:none}
.zsync-bubble{position:relative;width:58px;height:58px;border-radius:50%;border:none;cursor:pointer;
  background:var(--surface);box-shadow:0 10px 26px -6px rgba(20,30,60,.4);display:grid;place-items:center;
  animation:zsyncIn .35s ease}
.zsync-ring{position:absolute;inset:0;width:58px;height:58px;transform:rotate(-90deg)}
.zsync-ring circle{fill:none;stroke-width:3}
.zsync-ring-bg{stroke:color-mix(in srgb,var(--muted) 18%,transparent)}
.zsync-ring-fg{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:97.4;transition:stroke-dashoffset .5s ease}
.zsync-bubble.ok .zsync-ring-fg{stroke:var(--green)}
.zsync-bubble.err .zsync-ring-fg{stroke:var(--red,#e5484d)}
.zsync-bubble-txt{font-size:13px;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}
.zsync-bubble.ok .zsync-bubble-txt{color:var(--green)}
.zsync-bubble.err .zsync-bubble-txt{color:var(--red,#e5484d)}

/* ---- modal de confirmação da análise ---- */
.rm-info{font-size:13.5px;margin-bottom:12px}
.rm-opt{display:flex;align-items:baseline;gap:8px;padding:9px 11px;border:1px solid var(--border,#e6e8ee);border-radius:10px;margin-bottom:8px;cursor:pointer;font-size:13px}
.rm-opt:hover{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.rm-opt input{margin:0}
.rm-opt b{flex:0 0 auto}
.rm-opt span{color:var(--muted);font-size:11.5px}
.rm-re{margin-top:4px}
.rm-line{font-size:13px;margin:4px 0 10px}
.rm-mut{color:var(--muted);font-size:11.5px}
.rm-dates,.rm-fimline{display:flex;gap:12px;align-items:center;margin:2px 0 10px;flex-wrap:wrap}
.rm-dates label,.rm-fimline{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center}
.rm-dates input,.rm-fimline input{font:inherit;padding:5px 8px;border:1px solid var(--border,#e6e8ee);border-radius:8px;background:var(--surface);color:var(--text)}
#rm-redates{padding:6px 0 0 14px;border-left:2px solid color-mix(in srgb,var(--accent) 25%,transparent);margin-left:4px}
.rm-est{margin-top:14px;border-top:1px solid var(--border,#e6e8ee);padding-top:12px;transition:opacity .15s}
.rm-est.rm-loading{opacity:.45}
.rm-est-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rm-est-grid>div{display:flex;flex-direction:column;background:color-mix(in srgb,var(--accent) 7%,transparent);border-radius:10px;padding:9px 11px;font-size:11px;color:var(--muted)}
.rm-est-grid>div span{font-size:16px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.3}
.rm-warn{margin-top:10px;font-size:11.5px;color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,transparent);border-radius:8px;padding:7px 10px;display:flex;align-items:center;gap:6px}
.rm-disc{margin-top:9px}

/* ---- Revisão IA (admin) ---- */
.rv-pick{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.rv-pick select{font:inherit;padding:8px 10px;border:1px solid var(--border,#e6e8ee);border-radius:9px;background:var(--surface);color:var(--text);min-width:200px}
.rv-ctx{font-size:13px;color:var(--muted);margin-bottom:8px}
.rv-ctx b{color:var(--text)}
.rv-items{margin-bottom:14px;font-size:12px}
.rv-items summary{cursor:pointer;color:var(--accent);font-size:12px;margin-bottom:6px}
.rv-inc{list-style:none;margin:0;padding:0;max-height:220px;overflow:auto;border:1px solid var(--border,#e6e8ee);border-radius:10px}
.rv-inc li{padding:6px 10px;border-bottom:1px solid color-mix(in srgb,var(--border,#e6e8ee) 60%,transparent);font-size:12px;display:flex;gap:7px;align-items:center}
.rv-inc li:last-child{border-bottom:none}
.rv-inc em{margin-left:auto;color:var(--muted);font-style:normal;font-size:10.5px;text-transform:uppercase;letter-spacing:.3px}
.rv-form{display:flex;flex-direction:column;gap:9px;margin-bottom:18px}
.rv-form textarea{font:inherit;padding:10px 12px;border:1px solid var(--border,#e6e8ee);border-radius:10px;background:var(--surface);color:var(--text);resize:vertical;line-height:1.4}
.rv-form .btn{align-self:flex-start}
.rv-ok{font-size:12.5px;background:color-mix(in srgb,var(--green) 12%,transparent);border-radius:10px;padding:10px 12px;color:var(--text)}
.rv-ok ul{margin:6px 0 0;padding-left:18px;color:var(--muted);font-size:11.5px}
.rv-corr-h{font-size:12px;color:var(--muted);font-weight:600;margin-bottom:8px;text-transform:uppercase;letter-spacing:.3px}
.rv-c{display:flex;gap:12px;align-items:flex-start;padding:11px 13px;border:1px solid var(--border,#e6e8ee);border-radius:11px;margin-bottom:8px;transition:opacity .15s}
.rv-c.off{opacity:.45}
.rv-c-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rv-c-txt b{font-size:13px}
.rv-c-txt span{font-size:11.5px;color:var(--muted)}
.rv-c-ops{font-family:ui-monospace,monospace;font-size:10.5px;color:var(--accent)}
.rv-c-act{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.rv-sw{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px;cursor:pointer}
.rv-del{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:7px;display:grid;place-items:center}
.rv-del:hover{background:color-mix(in srgb,var(--red,#e5484d) 14%,transparent);color:var(--red,#e5484d)}

/* ---- dividir em partes (modal) + portão de aprovação ---- */
.rm-chunk{flex-wrap:wrap}
.rm-gran{font:inherit;padding:4px 8px;border:1px solid var(--border,#e6e8ee);border-radius:8px;background:var(--surface);color:var(--text);font-size:12px}
.rm-chunk-cfg{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 10px 26px;padding:9px 11px;border-left:2px solid color-mix(in srgb,var(--accent) 25%,transparent);font-size:12px;color:var(--muted)}
.rm-cmode{display:flex;align-items:center;gap:5px;cursor:pointer}
.rm-cmode span{font-size:10.5px}
.rm-num{font:inherit;width:64px;padding:3px 6px;border:1px solid var(--border,#e6e8ee);border-radius:7px;background:var(--surface);color:var(--text);text-align:right}
.rm-cprev{flex-basis:100%;font-size:12px;color:var(--text)}
.rm-cprev b{color:var(--accent)}
.chunk-gate{background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:12px;padding:12px 14px;margin:4px 0 14px}
.cg-head{font-size:13px;display:flex;align-items:center;gap:7px;margin-bottom:9px}
.cg-head.cg-err{color:var(--red,#e5484d)}
.cg-bar{display:flex;gap:4px;margin-bottom:10px}
.cg-seg{flex:1;height:8px;border-radius:4px;background:color-mix(in srgb,var(--muted) 22%,transparent)}
.cg-seg.done{background:var(--green)}
.cg-seg.run{background:linear-gradient(90deg,var(--accent),var(--accent2,var(--accent)),var(--accent3,var(--accent)));background-size:200% 100%;animation:zshimmer 1.6s linear infinite}
.cg-seg.err{background:var(--red,#e5484d)}
.cg-act{display:flex;gap:8px;flex-wrap:wrap}

/* ---- login: continuar conectado ---- */
.login-remember{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);margin:2px 0 14px;cursor:pointer}
.login-remember input{margin:0;cursor:pointer}

/* ---- banner de atualização programada (todos os usuários) ---- */
.upd-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:12.5px;
  background:color-mix(in srgb,var(--amber) 22%,var(--surface));
  border-bottom:2px solid var(--amber);color:var(--text)}
.upd-txt b{color:var(--text)}
.upd-ic{color:var(--amber);display:grid;place-items:center;flex:0 0 auto}
.upd-txt{flex:1;line-height:1.35}
.upd-x{flex:0 0 auto;background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:7px;display:grid;place-items:center}
.upd-x:hover{background:color-mix(in srgb,var(--muted) 18%,transparent);color:var(--text)}

/* ---- versão da plataforma (Alpha) ---- */
.login-ver{display:block;margin-top:6px;font-size:10.5px;color:var(--faint);letter-spacing:.2px}
.sb-version{margin-top:10px;padding:8px 6px 2px;text-align:center;font-size:10.5px;color:var(--faint);letter-spacing:.2px;border-top:1px solid color-mix(in srgb,var(--border,#e6e8ee) 60%,transparent)}
.sb-collapsed .sb-version{font-size:0;padding:8px 0 2px}
.sb-collapsed .sb-version::after{content:"α";font-size:13px}

/* ---------- gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:9px}
.gallery .ph{background:var(--surface2);border:1px solid var(--border);border-radius:9px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--faint);text-align:center;padding:6px;overflow:hidden;word-break:break-word}
.gallery .gitem{display:block;aspect-ratio:1;border-radius:9px;overflow:hidden;border:1px solid var(--border);background:var(--surface2);position:relative}
.gallery .gitem img{width:100%;height:100%;object-fit:cover;display:block;transition:.25s}
.gallery .gitem:hover img{transform:scale(1.1)}

pre{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px;font-size:11px;overflow:auto;max-height:240px;color:var(--muted);font-family:'SF Mono',Consolas,monospace}
details summary{cursor:pointer;color:var(--faint);font-size:11.5px;padding:4px 0;user-select:none}
details summary:hover{color:var(--muted)}

/* ---------- overview (home do cliente) ---------- */
.ov-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:26px}
.ov-tile{background:linear-gradient(160deg,var(--elevated),var(--surface));border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}
.ov-tile .v{font-size:32px;font-weight:800;letter-spacing:-1px}
.ov-tile .l{font-size:12px;color:var(--muted);margin-top:6px;display:flex;align-items:center;gap:6px}
.ov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.gcard{background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius);padding:18px;cursor:pointer;transition:.18s;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px}
.gcard:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.gcard-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.gcard-name{font-size:15px;font-weight:600;letter-spacing:-.2px}
.gcard-site{font-size:11.5px;color:var(--faint);margin-top:2px}
.gcard-spark{display:flex;align-items:flex-end;gap:3px;height:44px}
.gcard-spark i{flex:1;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 40%,transparent));border-radius:3px 3px 0 0;min-height:3px}
.gcard-stats{display:flex;gap:18px}
.gcard-stat{display:flex;flex-direction:column}
.gcard-stat b{font-size:18px;font-weight:700}
.gcard-stat span{font-size:10.5px;color:var(--faint);margin-top:2px}
.status-badge{font-size:10.5px;font-weight:600;padding:4px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.status-badge .d{width:6px;height:6px;border-radius:50%}
.st-pronto{background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green)}
.st-pronto .d{background:var(--green)}
.st-analisando{background:color-mix(in srgb,var(--info) 15%,transparent);color:var(--info)}
.st-analisando .d{background:var(--info);animation:pulse 1.2s infinite}
.st-novo{background:var(--surface2);color:var(--muted)}
.st-novo .d{background:var(--faint)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.fresh-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.fresh-ok{background:var(--green)} .fresh-warn{background:var(--amber)} .fresh-old{background:var(--red)}

/* ---------- modal ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(4,6,10,.7);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50}
.modal-bg[hidden]{display:none}
.modal{background:var(--elevated);border:1px solid var(--border2);border-radius:16px;padding:24px;width:min(460px,92vw);box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto}
.modal-title{font-size:17px;font-weight:700;margin-bottom:16px}
.modal label{display:block;font-size:12px;color:var(--muted);margin:12px 0 5px;font-weight:500}
.modal input,.modal textarea{width:100%;background:var(--surface2);border:1px solid var(--border2);color:var(--text);border-radius:10px;padding:10px 12px;font-size:13.5px;color-scheme:dark}
.modal input:focus,.modal textarea:focus{outline:none;border-color:var(--accent)}
.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}
.swatches{display:flex;gap:8px;margin-top:7px}
.swatch{width:30px;height:30px;border-radius:9px;cursor:pointer;border:2px solid transparent;transition:.15s}
.swatch:hover{transform:scale(1.1)}
.swatch.sel{border-color:#fff;box-shadow:0 0 0 2px var(--bg)}
.dropdown{position:relative;display:inline-block}
.dropdown-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--elevated);border:1px solid var(--border2);border-radius:11px;min-width:180px;z-index:20;overflow:hidden;box-shadow:var(--shadow-lg)}
.dropdown-menu[hidden]{display:none}
.dropdown-menu a{display:block;padding:10px 15px;font-size:13px;color:var(--text);cursor:pointer}
.dropdown-menu a:hover{background:var(--surface2);color:var(--accent)}

/* ---------- identidade visual (logo na topbar + editor) ---------- */
/* margem branca isola o logo do tema (claro/escuro/header colorido) — não some */
.brand-logo{height:24px;width:auto;max-width:150px;object-fit:contain;display:inline-block;vertical-align:middle;background:#fff;padding:3px 7px;border-radius:7px;box-shadow:0 0 0 1px rgba(0,0,0,.07)}
.brand-name{font-family:var(--font-heading);font-weight:700;font-size:15px;letter-spacing:.2px;color:var(--text);margin-left:9px;vertical-align:middle}
/* card do logotipo do cliente no topo do menu (estilo Trivium HUB) — logo grande em fundo branco */
.sb-logo-card{background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:12px;margin:4px 12px 16px;padding:14px 14px;display:flex;align-items:center;justify-content:center;min-height:78px;box-shadow:0 1px 4px rgba(20,30,60,.07)}
.sb-logo{max-width:100%;max-height:84px;width:auto;height:auto;object-fit:contain;display:block}
.sb-logo-card.sb-logo-text{min-height:auto}
.sb-logo-name{font-family:var(--font-heading);font-weight:700;font-size:17px;letter-spacing:.3px;color:#16233f;text-align:center;line-height:1.2}
.sb-collapsed .sb-logo-card{margin:6px 7px 10px;padding:7px 5px;min-height:auto}
.sb-collapsed .sb-logo{max-height:30px}
.sb-collapsed .sb-logo-text{display:none}
.brand-edit .be-row{display:flex;gap:12px;align-items:flex-end;margin-top:6px}
.brand-edit .be-col{flex:1;display:block}
.brand-edit input[type=color]{width:100%;height:42px;padding:3px;border-radius:10px;background:var(--surface2);border:1px solid var(--border2);cursor:pointer}
.be-lbl{display:block;font-size:12px;color:var(--muted);margin:14px 0 5px;font-weight:600}
.be-lbl span{font-weight:400;color:var(--faint);font-size:11px;margin-left:6px}
.brand-edit select{width:100%;background:var(--surface2);border:1px solid var(--border2);color:var(--text);border-radius:10px;padding:10px 12px;font-size:13.5px;font-family:inherit}
.be-preview{margin-top:18px;border:1px solid var(--border2);border-radius:12px;padding:14px;background:var(--surface)}
.be-pv-top{font-size:10px;font-weight:700;letter-spacing:1px;color:var(--faint);margin-bottom:10px}
.be-pv-bar{display:flex;align-items:center;min-height:30px}
.be-pv-row{display:flex;align-items:center;gap:12px;margin-top:14px}
.be-pv-btn{background:var(--accent);color:#fff;border:none;border-radius:9px;padding:8px 16px;font-size:13px;font-weight:600;cursor:default}
.be-pv-chip{background:color-mix(in srgb, var(--accent2) 18%, transparent);color:var(--accent2);border:1px solid color-mix(in srgb, var(--accent2) 35%, transparent);border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}

/* ---------- vínculo / sincronização WhatsApp ---------- */
.field-label{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}
.radio-row{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:13.5px;color:var(--text);cursor:pointer}
.radio-row input[type=radio]{width:auto;margin:0;accent-color:var(--accent)}
.radio-row input[type=date]{width:auto;padding:5px 8px;font-size:12.5px}
.wpp-card{background:linear-gradient(180deg,var(--surface),var(--surface2));border:1px solid var(--border2);border-radius:14px;padding:16px 18px;margin:14px 0}
.wpp-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.wpp-title{font-size:14.5px;font-weight:700}
.wpp-meta{font-size:12px;color:var(--muted);margin-top:3px}
.wpp-actions{display:flex;align-items:center;gap:14px;margin-top:14px;flex-wrap:wrap}
.wpp-until{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
.wpp-until input[type=date]{background:var(--surface2);border:1px solid var(--border2);color:var(--text);border-radius:8px;padding:6px 9px;font-size:12.5px;color-scheme:dark}
.wpp-result{font-size:12.5px;color:var(--green);margin-top:12px;min-height:16px}
.wpp-result.err{color:var(--red)}
.switch{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);cursor:pointer;user-select:none}
.switch input{accent-color:var(--green);width:16px;height:16px}

/* ---------- scan de grupos do WhatsApp ---------- */
.scan-list .scan-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;cursor:pointer}
.scan-item:hover{background:var(--surface2)}
.scan-item.empty{opacity:.55}
.scan-main{min-width:0}
.scan-name{font-size:13.5px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px}
.scan-id{font-family:ui-monospace,monospace;font-size:10.5px;color:var(--faint);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scan-range{font-size:11.5px;color:var(--muted);margin-top:3px}
.scan-count{flex-shrink:0;text-align:right;font-size:15px;font-weight:700;color:var(--accent)}
.scan-count span{display:block;font-size:9.5px;font-weight:500;color:var(--faint);text-transform:uppercase;letter-spacing:.5px}
.scan-badge{font-size:10px;font-weight:600;color:var(--green);background:rgba(52,211,153,.13);padding:2px 7px;border-radius:6px}
.wpp-id{font-family:ui-monospace,monospace;font-size:10.5px;color:var(--faint);margin-top:2px}

/* ---------- multi-seleção do scan + painel de fontes ---------- */
.scan-list .scan-item{display:flex;align-items:center;gap:10px}
.scan-item .scan-check{flex-shrink:0;width:16px;height:16px;accent-color:var(--accent);margin:0}
.scan-item.sel{background:rgba(91,140,255,.10);outline:1px solid var(--accent)}
.scan-item.bound{opacity:.5}
.src-head{display:flex;align-items:center;justify-content:space-between;margin:14px 0 8px;font-size:12.5px;font-weight:600;color:var(--muted)}
.src-empty{background:var(--surface2);border:1px dashed var(--border2);border-radius:12px;padding:18px;margin:14px 0;font-size:13px;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:14px}
.wpp-card .src-del{font-size:11.5px;color:var(--red)}

/* ---------- abas por fonte + KPIs por fonte ---------- */
.src-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 14px;border-bottom:1px solid var(--border);padding-bottom:10px}
.src-tab{background:var(--surface2);border:1px solid var(--border2);color:var(--muted);border-radius:9px;padding:7px 12px;font-size:12.5px;cursor:pointer;font-weight:500}
.src-tab:hover{color:var(--text)}
.src-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}
.src-tab span{opacity:.8;font-size:11px;margin-left:4px}
.src-pane-head{font-size:15px;font-weight:700;margin-bottom:12px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.src-pane-head .src-id{font-family:ui-monospace,monospace;font-size:10.5px;color:var(--faint);font-weight:400}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.kpi{background:linear-gradient(180deg,var(--surface),var(--surface2));border:1px solid var(--border2);border-radius:12px;padding:14px 16px}
.kpi-n{font-size:20px;font-weight:700;color:var(--accent)}
.kpi-l{font-size:11.5px;color:var(--muted);margin-top:3px}
.src-chart-label{font-size:12px;font-weight:600;color:var(--muted);margin:20px 0 8px;text-transform:uppercase;letter-spacing:.4px}
.src-chart{display:flex;align-items:flex-end;gap:4px;height:120px;padding:8px;background:var(--surface);border:1px solid var(--border2);border-radius:12px;overflow-x:auto}
.src-bar-wrap{flex:1;min-width:22px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.src-bar{width:60%;background:linear-gradient(180deg,var(--accent),var(--accent2));border-radius:4px 4px 0 0;min-height:4px}
.src-bar-x{font-size:9px;color:var(--faint);margin-top:5px;white-space:nowrap}
.src-authors{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.src-authors li{display:flex;justify-content:space-between;background:var(--surface2);border-radius:8px;padding:8px 12px;font-size:12.5px}
.src-authors b{color:var(--accent)}
.src-note{font-size:11.5px;color:var(--faint);margin-top:18px;padding:10px 12px;background:var(--surface2);border-radius:9px;border-left:2px solid var(--accent)}

/* ---------- mapa de calor temporal ---------- */
.hm-title{font-size:11.5px;font-weight:600;color:var(--muted);margin:12px 0 7px;text-transform:uppercase;letter-spacing:.4px}
.hm-title:first-child{margin-top:0}
.hm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(54px,1fr));gap:5px}
.hm-cell{border-radius:8px;padding:9px 4px;text-align:center;display:flex;flex-direction:column;gap:3px;border:1px solid var(--border2);min-height:48px;justify-content:center}
.hm-k{font-size:10.5px;color:var(--text);opacity:.85;white-space:nowrap}
.hm-v{font-size:15px;font-weight:700;color:#fff}
/* mapa de calor 2D (matriz dia × hora) */
.hm2-wrap{overflow-x:auto}
.hm2{border-collapse:separate;border-spacing:3px;font-size:11px}
.hm2 th{font-size:9.5px;color:var(--faint);font-weight:600;padding:2px;text-align:center}
.hm2-rowlbl{font-size:10.5px;color:var(--muted);font-weight:600;padding-right:8px;text-align:right;white-space:nowrap}
.hm2-cell{width:30px;height:26px;border-radius:5px;text-align:center;font-weight:600;font-size:10.5px;border:1px solid var(--border);transition:.12s;cursor:default}
.hm2-cell:hover{outline:2px solid var(--accent);outline-offset:1px}
.hm2-legend{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:10px;border-top:1px solid var(--border);font-size:11px;color:var(--faint)}
.hm2-legbar{display:inline-flex;gap:2px}
.hm2-leg{width:14px;height:14px;border-radius:3px;border:1px solid var(--border)}
/* navegação por seções do dashboard (organização dinâmica) */
.dash-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 18px;border-bottom:1px solid var(--border)}
.dash-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:9px 13px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:7px}
.dash-tab:hover{color:var(--text)}
.dash-tab.active{color:var(--text);border-bottom-color:var(--accent)}
.dash-tab-n{background:var(--surface2);color:var(--muted);border-radius:20px;font-size:10.5px;font-weight:700;padding:1px 7px}
.dash-tab.active .dash-tab-n{background:var(--accent);color:#fff}
.dash-ai{margin-left:auto;align-self:center;display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:var(--faint);padding-bottom:9px}
.dash-ai .ico{color:var(--accent)}

/* ---------- seção em 2 colunas: gráficos | insights ---------- */
.sec-split{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}
.sec-charts{min-width:0}
.sec-insights{background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius);padding:16px 16px 18px;box-shadow:var(--shadow);position:sticky;top:0}
.sec-ins-head{font-family:var(--font-heading);font-size:13px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:11px;border-bottom:1px solid var(--border)}
.sec-ins-head .ico{color:var(--accent)}
.insight2{padding:11px 0;border-bottom:1px solid var(--surface2)}
.insight2:last-child{border-bottom:none;padding-bottom:0}
.insight2-src{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--accent);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.insight2-txt{font-size:12.5px;line-height:1.55;color:var(--text)}
/* insights agrupados por categoria (título uma vez) */
.insight-grp{padding:12px 0;border-bottom:1px solid var(--border)}
.insight-grp:last-child{border-bottom:none;padding-bottom:0}
.insight-grp-n{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);border-radius:20px;font-size:9.5px;font-weight:700;padding:1px 7px;letter-spacing:0}
.insight2-item{padding:7px 0 7px 11px;border-left:2px solid var(--border2);margin:7px 0}
.insight2-item:first-of-type{margin-top:0}
.insight2-item .insight2-txt{font-size:12.5px;line-height:1.5}
@media (max-width:1080px){.sec-split{grid-template-columns:1fr}.sec-insights{position:static}}

/* ---------- lista de incidentes filtrável ---------- */
.inc-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.inc-scroll{max-height:440px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.inc-scroll::-webkit-scrollbar{width:9px}
.inc-chips{display:inline-flex;gap:5px;flex-wrap:wrap;background:var(--surface2);border:1px solid var(--border2);border-radius:10px;padding:3px}
.inc-chip{background:none;border:none;color:var(--muted);border-radius:8px;padding:6px 11px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;text-transform:capitalize;transition:.14s;display:inline-flex;align-items:center;gap:6px}
.inc-chip span{background:var(--bg);color:var(--muted);border-radius:20px;font-size:10px;font-weight:700;padding:0 6px}
.inc-chip:hover{color:var(--text)}
.inc-chip.on{background:var(--accent);color:#fff}
.inc-chip.on span{background:rgba(255,255,255,.25);color:#fff}
.inc-searchwrap{display:inline-flex;align-items:center;gap:7px;background:var(--surface2);border:1px solid var(--border2);border-radius:10px;padding:0 11px;margin-left:auto;color:var(--muted)}
.inc-search{background:none;border:none;color:var(--text);padding:8px 0;font-size:12.5px;font-family:inherit;outline:none;width:180px}
.inc-table{width:100%;border-collapse:collapse;font-size:12.5px}
.inc-table th{text-align:left;color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:9px 10px;position:sticky;top:0;background:var(--elevated);z-index:1;box-shadow:inset 0 -1px 0 var(--border2)}
.inc-table td{padding:9px 10px;border-bottom:1px solid var(--surface2);vertical-align:top}
.inc-table tr:last-child td{border-bottom:none}
.inc-table tbody tr:hover td{background:var(--surface2)}
.inc-date{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.inc-sev{white-space:nowrap;text-transform:capitalize;color:var(--muted)}
.inc-foot{color:var(--faint);font-size:11px;margin-top:10px;text-align:right}

/* ---------- prestação de contas (custos) ---------- */
.cost-h{font-size:13px;font-weight:700;color:var(--text);margin:22px 0 8px}
.cost-t{width:100%;border-collapse:collapse;font-size:12.5px;margin-bottom:6px}
.cost-t th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px;padding:6px 10px;border-bottom:1px solid var(--border2)}
.cost-t td{padding:7px 10px;border-bottom:1px solid var(--surface2)}
.cost-t tr:hover td{background:var(--surface2)}
.cost-tok{color:var(--faint);font-size:10.5px}

/* ---------- shell fase 1: seletores no header + sidebar dinâmico ---------- */
#topbar-center{display:flex;align-items:center;gap:10px;min-width:0}
#topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}
.user-email{font-size:12px;color:var(--muted);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-title{font-size:15px;font-weight:700;color:var(--text)}
.top-sel-wrap{display:inline-flex;align-items:center;gap:6px;background:var(--surface2);border:1px solid var(--border2);border-radius:10px;padding:5px 10px;color:var(--muted)}
.top-sel{background:none;border:none;color:var(--text);font-size:13px;font-weight:600;font-family:inherit;outline:none;max-width:220px}
.top-sel option{background:var(--elevated);color:var(--text)}
.sb-section{display:flex;flex-direction:column;gap:3px}
.sb-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--faint);padding:6px 10px 8px}
.sb-headadd{background:none;border:none;color:var(--muted);border-radius:6px;padding:2px;display:inline-flex;cursor:pointer}
.sb-headadd:hover{color:var(--accent);background:var(--surface2)}
.sb-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;color:var(--muted);font-size:13.5px;font-weight:500;padding:9px 11px;border-radius:10px;font-family:inherit;cursor:pointer}
.sb-item:hover{background:var(--surface2);color:var(--text)}
.sb-item.active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:600}
.sb-gname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-grouplist{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.sb-subs{display:flex;flex-direction:column;gap:1px;margin:1px 0 4px 30px}
.sb-sub{text-align:left;background:none;border:none;color:var(--faint);font-size:12px;padding:5px 10px;border-radius:8px;font-family:inherit;cursor:pointer}
.sb-sub:hover{color:var(--text);background:var(--surface2)}
.sb-sub.active{color:var(--accent);font-weight:600}
.sb-add{display:flex;align-items:center;gap:8px;margin-top:10px;background:none;border:1px dashed var(--border2);color:var(--muted);border-radius:10px;padding:8px 11px;font-size:12.5px;font-weight:500;font-family:inherit;cursor:pointer}
.sb-add:hover{border-color:var(--accent);color:var(--accent)}
#sidebar-scrim{display:none}
@media(max-width:880px){
  #sidebar-toggle{display:inline-flex!important}
  .user-email{display:none}
  .top-sel{max-width:130px}
  #sidebar{position:fixed;top:56px;bottom:0;left:0;z-index:40;transform:translateX(-100%);transition:transform .2s ease}
  #app.sb-open #sidebar{transform:translateX(0)}
  #app.sb-open #sidebar-scrim{display:block;position:fixed;inset:56px 0 0 0;background:rgba(0,0,0,.45);z-index:35}
}

/* ---------- sidebar recolhível (collapse/expand) ---------- */
#sidebar{transition:width .22s ease}
.sb-collapse{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:auto;background:none;border:none;border-top:1px solid var(--border);color:var(--muted);padding:12px;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer}
.sb-collapse:hover{color:var(--accent)}
#app.sb-collapsed #sidebar{width:66px;padding:16px 8px}
#app.sb-collapsed .sb-head,#app.sb-collapsed .sb-gname,#app.sb-collapsed .sb-subs,#app.sb-collapsed .sb-item span,#app.sb-collapsed .sb-add span,#app.sb-collapsed .sb-collapse span,#app.sb-collapsed .sb-headadd{display:none}
#app.sb-collapsed .sb-item,#app.sb-collapsed .sb-add{justify-content:center;padding:10px 0}
#app.sb-collapsed .sb-item{position:relative}
/* tooltip no modo recolhido */
#app.sb-collapsed .sb-item:hover::after{content:attr(data-tip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--elevated);border:1px solid var(--border2);color:var(--text);padding:5px 10px;border-radius:8px;font-size:12px;white-space:nowrap;box-shadow:var(--shadow-lg);z-index:60}

/* ============================ UX overhaul ============================ */
/* --- header --- */
#topbar{gap:14px;padding:0 18px}
#sidebar-toggle{display:inline-flex}
.brand{font-size:15.5px}
.top-sel-wrap{transition:.15s}
.top-sel-wrap:focus-within{border-color:var(--accent);color:var(--accent)}
/* botões do header (admin/tema/sino/usuário) — estilo unificado */
.hbtn{display:inline-flex;align-items:center;gap:7px;background:transparent;border:1px solid transparent;color:var(--muted);border-radius:10px;padding:8px 11px;font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;transition:.14s;line-height:1}
.hbtn:hover{color:var(--text);background:var(--surface2)}
.hbtn.icon-only{padding:8px;border-radius:9px}
.hbtn-pill{border-color:var(--border2);color:var(--text)}
.hbtn-pill:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.hbtn-badge{position:absolute;top:-5px;right:-5px;background:var(--red);color:#fff;border-radius:10px;font-size:9.5px;font-weight:700;padding:1px 5px;line-height:1.4}
#bell-btn{position:relative}
.hbtn-user{background:none;border:none;cursor:pointer;padding:2px;display:inline-flex}
.avatar{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:var(--shadow);transition:.15s}
.hbtn-user:hover .avatar{transform:scale(1.06)}
.user-menu-head{padding:11px 14px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:2px}
.user-menu-head b{font-size:12.5px;color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis}
.user-menu-head span{font-size:11px;color:var(--muted)}
.dropdown-menu a .ico{margin-right:6px;vertical-align:-3px}

/* --- tiles da visão geral (ícone + tom de cor) --- */
.ov-tiles{grid-template-columns:repeat(auto-fit,minmax(195px,1fr))}
.ov-tile{display:flex;align-items:center;gap:14px;position:relative;overflow:hidden;transition:.18s}
.ov-tile:hover{border-color:var(--border2);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.ov-tile::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tone,var(--accent))}
.ov-tile-ic{width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--tone,var(--accent)) 16%,transparent);color:var(--tone,var(--accent));flex-shrink:0}
.ov-tile .v{font-size:26px}
.ov-tile.tone-accent{--tone:var(--accent)} .ov-tile.tone-info{--tone:var(--info)} .ov-tile.tone-green{--tone:var(--green)} .ov-tile.tone-amber{--tone:var(--amber)} .ov-tile.tone-red{--tone:var(--red)}

/* --- cards de grupo: sparkline com fundo + frescor --- */
.gcard-spark{height:54px;background:var(--surface2);border-radius:10px;padding:8px 10px;gap:4px}
.gcard-spark i{background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 35%,transparent));border-radius:3px 3px 0 0;transition:height .4s cubic-bezier(.2,.8,.2,1)}
.gcard-nospark{color:var(--faint);font-size:11px;margin:auto}
.gcard-site{display:flex;align-items:center;gap:5px}
.gcard-fresh{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:5px;justify-content:flex-end}
.stat-warn{color:var(--amber)!important}

/* --- indicadores (kpi mini) mais vivos --- */
.kpi-mini{background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 9%,var(--surface2)),var(--surface2));border-color:var(--border2);position:relative;overflow:hidden;transition:.15s}
.kpi-mini:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border2))}
.kpi-mini::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);opacity:.75}
.kpi-mini b{background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* --- barras / colunas com brilho + animação de entrada --- */
.bar-fill{box-shadow:0 0 12px -3px color-mix(in srgb,var(--accent) 55%,transparent);animation:growW .55s cubic-bezier(.2,.8,.2,1)}
@keyframes growW{from{width:0}}
.bar-row:hover .bar-fill{filter:brightness(1.1)}
.col-fill{box-shadow:0 -4px 14px -5px color-mix(in srgb,var(--accent) 55%,transparent);animation:growH .55s cubic-bezier(.2,.8,.2,1)}
@keyframes growH{from{height:0}}
.col:hover .col-fill{filter:brightness(1.12)}

/* --- heatmap denso (24 colunas) --- */
.hm2-cell{width:23px;height:22px;font-size:9px}
.hm2 th{font-size:9px;color:var(--faint);font-weight:600;padding:0 0 4px}
.hm2-rowlbl{font-size:10.5px;color:var(--muted);padding-right:8px;font-weight:600;white-space:nowrap}

/* --- incidentes: colunas extras --- */
.inc-sevsel{background:var(--surface2);border:1px solid var(--border2);color:var(--text);border-radius:10px;padding:7px 10px;font-size:12px;font-family:inherit;cursor:pointer;text-transform:capitalize}
.inc-kind{color:var(--muted);text-transform:capitalize;font-size:11.5px}
.inc-title{font-weight:500}
.inc-ev{color:var(--muted);white-space:nowrap}
.sev-tag{display:inline-block;padding:2px 9px;border-radius:20px;font-size:10.5px;font-weight:700;text-transform:capitalize}
.sev-bg-critica{background:color-mix(in srgb,var(--red) 18%,transparent);color:var(--red)}
.sev-bg-alta{background:color-mix(in srgb,var(--amber) 18%,transparent);color:var(--amber)}
.sev-bg-media{background:color-mix(in srgb,var(--info) 16%,transparent);color:var(--info)}
.sev-bg-baixa{background:var(--surface2);color:var(--muted)}

/* nota no cabeçalho do card */
.card-note{margin-left:auto;font-size:11px;font-weight:500;color:var(--faint)}

/* ===================== incidente clicável + overlays ===================== */
.inc-row{cursor:pointer}
.inc-loc{display:block;font-size:11px;color:var(--faint);margin-top:2px}
.inc-go{color:var(--faint);margin-left:6px;opacity:0;transition:.12s;vertical-align:-2px}
.inc-row:hover .inc-go{opacity:1;color:var(--accent)}
.kpi-mini.kpi-hi{background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 22%,var(--surface2)),var(--surface2));border-color:color-mix(in srgb,var(--accent) 50%,var(--border2))}
.kpi-mini.kpi-hi::before{opacity:1;width:4px}
.gallery .gitem{padding:0;cursor:pointer;font-family:inherit}

/* overlay genérico */
.zsheet{position:fixed;inset:0;background:rgba(4,6,10,.74);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:200;padding:30px;animation:zfade .15s ease}
@keyframes zfade{from{opacity:0}}
.zsheet-panel{background:var(--elevated);border:1px solid var(--border2);border-radius:16px;box-shadow:var(--shadow-lg);width:min(780px,96vw);max-height:90vh;overflow-y:auto;padding:22px}
.zsheet-x{background:var(--surface2);border:1px solid var(--border2);color:var(--muted);border-radius:9px;padding:6px;cursor:pointer;display:inline-flex;flex-shrink:0}
.zsheet-x:hover{color:var(--accent);border-color:var(--accent)}

/* modal de incidente */
.inc-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}
.inc-modal-title{font-family:var(--font-heading);font-size:18px;font-weight:700;line-height:1.25}
.inc-modal-sub{font-size:12px;color:var(--muted);margin-top:4px;text-transform:capitalize}
.inc-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px;margin-bottom:16px}
.inc-fact{background:var(--surface2);border:1px solid var(--border);border-radius:11px;padding:10px 12px}
.inc-fact span{display:block;font-size:10px;color:var(--faint);text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px}
.inc-fact b{font-size:14px;font-weight:600}
.inc-desc{background:var(--surface2);border-left:3px solid var(--accent);border-radius:0 9px 9px 0;padding:11px 13px;font-size:13px;line-height:1.5;margin-bottom:16px}
.inc-people>span{font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.4px}
.inc-people-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.inc-person{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);border-radius:20px;padding:4px 11px;font-size:12px;font-weight:600}
.inc-sec-h{font-family:var(--font-heading);font-size:13px;font-weight:700;margin:18px 0 10px;display:flex;align-items:center;gap:7px}
.inc-sec-h .ico{color:var(--accent)}
.inc-thread{display:flex;flex-direction:column;gap:8px}
.inc-msg{background:var(--surface2);border:1px solid var(--border);border-radius:11px;padding:10px 13px}
.inc-msg-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:4px}
.inc-msg-top b{font-size:12.5px;color:var(--accent);font-weight:600}
.inc-msg-top span{font-size:11px;color:var(--faint);white-space:nowrap}
.inc-msg-text{font-size:13px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.inc-note{background:var(--surface2);border:1px dashed var(--border2);border-radius:11px;padding:13px;font-size:12.5px;color:var(--muted);line-height:1.5;display:flex;gap:8px;align-items:flex-start}
.inc-note .ico{color:var(--amber);flex-shrink:0;margin-top:1px}

/* lightbox */
.lb-sheet .zsheet-panel{background:none;border:none;box-shadow:none;width:auto;max-width:96vw;padding:0;overflow:visible}
.lb{position:relative;display:flex;align-items:center;justify-content:center}
#lb-img{max-width:90vw;max-height:84vh;border-radius:12px;box-shadow:var(--shadow-lg);background:var(--surface)}
.lb .zsheet-x{position:absolute;top:-14px;right:-14px;background:var(--elevated);z-index:2}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:50%;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.lb-nav:hover{background:rgba(0,0,0,.78)}
.lb-prev{left:-22px}.lb-next{right:-22px}
.lb-prev .ico{transform:rotate(180deg)}
.lb-cap{position:absolute;bottom:-30px;left:0;right:0;text-align:center;color:#cfd4df;font-size:12px}
@media(max-width:880px){.lb-prev{left:6px}.lb-next{right:6px}.lb .zsheet-x{top:6px;right:6px}}

/* ===================== header pintado por cliente (estilo Trivium) ===================== */
#topbar.branded-header{background:var(--header-bg);color:var(--header-fg);border-bottom-color:color-mix(in srgb,var(--header-fg) 14%,transparent)}
#topbar.branded-header .brand{background:none;-webkit-text-fill-color:var(--header-fg);color:var(--header-fg)}
#topbar.branded-header .top-title{color:var(--header-fg)}
#topbar.branded-header .top-sel-wrap{background:color-mix(in srgb,var(--header-fg) 14%,transparent);border-color:color-mix(in srgb,var(--header-fg) 24%,transparent);color:var(--header-fg)}
#topbar.branded-header .top-sel{color:var(--header-fg)}
#topbar.branded-header .hbtn{background:color-mix(in srgb,var(--header-fg) 14%,transparent);border-color:color-mix(in srgb,var(--header-fg) 24%,transparent);color:var(--header-fg)}
#topbar.branded-header .hbtn:hover{background:color-mix(in srgb,var(--header-fg) 28%,transparent);color:var(--header-fg)}
#topbar.branded-header #sidebar-toggle{color:var(--header-fg)}
/* editor: checkbox + preview do header */
.be-check{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);white-space:nowrap;font-weight:500}
.be-check input{width:auto;accent-color:var(--accent);cursor:pointer}
.be-pv-bar.be-pv-bar-hdr{margin:-4px -6px 10px;padding:9px 11px;border-radius:9px}

/* ===================== assistente de IA (chat por site) ===================== */
.chat-fab{position:fixed;right:24px;bottom:24px;z-index:150;width:54px;height:54px;border-radius:50%;border:none;cursor:pointer;background:linear-gradient(135deg,var(--accent),var(--accent2),var(--accent3));color:#fff;box-shadow:var(--shadow-lg);display:inline-flex;align-items:center;justify-content:center;transition:.18s}
.chat-fab:hover{transform:translateY(-2px) scale(1.04)}
.chat-fab.on{transform:scale(.9)}
.chat-panel{position:fixed;right:24px;bottom:88px;z-index:151;width:min(384px,calc(100vw - 32px));height:min(560px,calc(100vh - 130px));background:var(--elevated);border:1px solid var(--border2);border-radius:16px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:zfade .15s ease}
.chat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);font-family:var(--font-heading);font-weight:700;font-size:13px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent)}
.chat-head span{display:inline-flex;align-items:center;gap:7px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-head .ico{color:var(--accent);flex-shrink:0}
.chat-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.chat-msg{max-width:86%;padding:9px 12px;border-radius:13px;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.chat-user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}
.chat-assistant{align-self:flex-start;background:var(--surface2);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}
.chat-empty{margin:auto;text-align:center;color:var(--muted);padding:10px}
.chat-empty .ico{color:var(--accent);margin-bottom:8px}
.chat-empty p{font-size:13px;line-height:1.5;margin-bottom:14px}
.chat-sugg{display:flex;flex-direction:column;gap:7px}
.chat-sugg button{background:var(--surface2);border:1px solid var(--border2);color:var(--text);border-radius:10px;padding:8px 11px;font-size:12.5px;cursor:pointer;font-family:inherit;text-align:left;transition:.14s}
.chat-sugg button:hover{border-color:var(--accent);color:var(--accent)}
.chat-typing{display:inline-flex;gap:4px;padding:3px 0}
.chat-typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:chatblink 1.2s infinite}
.chat-typing i:nth-child(2){animation-delay:.2s}
.chat-typing i:nth-child(3){animation-delay:.4s}
@keyframes chatblink{0%,60%,100%{opacity:.25}30%{opacity:1}}
.chat-input{display:flex;gap:8px;padding:11px;border-top:1px solid var(--border)}
.chat-input input{flex:1;background:var(--surface2);border:1px solid var(--border2);color:var(--text);border-radius:10px;padding:10px 12px;font-size:13px;font-family:inherit;outline:none}
.chat-input input:focus{border-color:var(--accent)}
.chat-input button{background:var(--accent);border:none;color:#fff;border-radius:10px;width:42px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.chat-input button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:880px){.chat-panel{right:12px;left:12px;bottom:80px;width:auto}.chat-fab{right:16px;bottom:16px}}

/* meta do grupo (última análise + fontes) + select de agendamento (admin) */
.gv-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;color:var(--muted);margin:-6px 0 16px}
.gv-meta:empty{display:none}
.gv-meta b{color:var(--text);font-weight:600}
.gv-meta .ico{color:var(--accent);vertical-align:-2px;margin-right:3px}
.gv-meta-sep{color:var(--faint)}
.adm-sched{background:var(--surface2);border:1px solid var(--border2);color:var(--text);border-radius:8px;padding:5px 8px;font-size:12px;font-family:inherit;cursor:pointer}

/* ===================== custos (período + gráfico) ===================== */
.cost-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.cost-chart{display:flex;align-items:flex-end;gap:4px;height:150px;padding-top:6px;overflow-x:auto}
.cc-col{flex:1;min-width:13px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.cc-fill{width:100%;border-radius:4px 4px 0 0;min-height:3px;transition:.3s}
.cc-col:hover .cc-fill{filter:brightness(1.14)}
.cc-x{font-size:8.5px;color:var(--faint);margin-top:5px;white-space:nowrap}

/* ===================== monitoramento (admin) ===================== */
.mon-insts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.mon-inst{display:flex;align-items:center;gap:10px;background:var(--surface2);border:1px solid var(--border);border-radius:11px;padding:10px 12px}
.mon-sub{font-size:11px;color:var(--faint);margin-top:2px}
.mon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(430px,1fr));gap:18px}
.mon-card{display:flex;flex-direction:column}
.mon-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px}
.mon-head b{font-size:14px}
.mon-kpis{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:11px;color:var(--muted);white-space:nowrap}
.mon-kpis b{color:var(--text);font-size:13px}
.mon-flow-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:14px 0 8px;display:flex;align-items:center;gap:6px}
.mon-flow-h .ico{color:var(--accent)}
.mon-flow{display:flex;align-items:flex-end;gap:3px;height:72px}
.mf-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.mf-fill{width:100%;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 40%,transparent));min-height:3px}
.mf-x{font-size:8px;color:var(--faint);margin-top:3px}

/* ===================== tela de login ===================== */
.login-wrap{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:18px;background:radial-gradient(900px 480px at 50% -8%, color-mix(in srgb,var(--accent) 13%,transparent), transparent), var(--bg)}
.login-theme{position:absolute;top:18px;right:18px;background:var(--surface2);border:1px solid var(--border2);color:var(--muted);border-radius:10px;padding:8px;cursor:pointer;display:inline-flex}
.login-theme:hover{color:var(--accent);border-color:var(--accent)}
.login-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:34px;width:min(380px,92vw);box-shadow:var(--shadow-lg)}
.login-logo{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.login-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}
.login-name{font-family:var(--font-heading);font-size:23px;font-weight:700;letter-spacing:.5px}
.login-sub{color:var(--muted);font-size:13px;margin-bottom:22px}
.login-lbl{display:block;font-size:12px;color:var(--muted);margin:0 0 6px;font-weight:500}
.login-in{width:100%;background:var(--surface2);border:1px solid var(--border2);color:var(--text);border-radius:10px;padding:11px 13px;font-size:14px;margin-bottom:15px;font-family:inherit;outline:none;transition:.14s}
.login-in:focus{border-color:var(--accent)}
.login-btn{width:100%;justify-content:center;padding:12px;font-size:14px;margin-top:4px}
.login-foot{font-size:12px;color:var(--faint)}
.login-foot b{color:var(--muted);font-weight:700}

/* ===================== "izinho" (ⓘ) + label de gráfico ===================== */
.infodot{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--surface2);border:1px solid var(--border2);color:var(--muted);font-size:10px;font-weight:700;font-style:italic;cursor:help;position:relative;vertical-align:middle;margin-left:4px;font-family:Georgia,'Times New Roman',serif}
.infodot:hover{color:var(--accent);border-color:var(--accent)}
.infodot:hover::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);width:250px;background:var(--elevated);border:1px solid var(--border2);color:var(--text);padding:10px 12px;border-radius:10px;font-size:11.5px;font-weight:400;font-style:normal;line-height:1.45;text-align:left;box-shadow:var(--shadow-lg);z-index:80;white-space:normal;text-transform:none;letter-spacing:0}
.gcard-sparklabel{font-size:10px;color:var(--faint);display:flex;align-items:center;gap:4px;margin-bottom:-4px;text-transform:uppercase;letter-spacing:.3px;font-weight:600}

/* ===================== balão de valor (hover) em gráficos ===================== */
.ztip{position:fixed;z-index:300;background:var(--elevated);border:1px solid var(--border2);color:var(--text);padding:6px 10px;border-radius:9px;font-size:12px;font-weight:600;box-shadow:var(--shadow-lg);pointer-events:none;white-space:nowrap;max-width:300px}
.ztip[hidden]{display:none}
.gcard-sparkx{display:flex;justify-content:space-between;font-size:9px;color:var(--faint);margin-top:5px;font-weight:600}
.gcard-spark i{cursor:pointer;transition:.14s}
.gcard-spark i:hover{filter:brightness(1.22)}
.cc-col,.mf-col,.bar-row,.col{cursor:pointer}
.mf-col:hover .mf-fill{filter:brightness(1.18)}

/* abas de fonte (explicações) + fluxo de e-mail */
.src-desc{font-size:12px;color:var(--muted);background:var(--surface2);border-radius:9px;padding:9px 12px;margin-bottom:14px;line-height:1.45}
.src-bar-wrap{cursor:pointer}
.src-note{display:flex;align-items:flex-start;gap:7px}
.src-note .ico{color:var(--accent);flex-shrink:0;margin-top:1px}
.mail-tabs{display:flex;gap:5px;background:var(--surface2);border:1px solid var(--border2);border-radius:10px;padding:3px;margin:12px 0 8px}
.mail-tab{flex:1;background:none;border:none;color:var(--muted);border-radius:8px;padding:7px 10px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.14s}
.mail-tab span{background:var(--bg);color:var(--muted);border-radius:20px;font-size:10px;font-weight:700;padding:0 6px}
.mail-tab.active{background:var(--accent);color:#fff}
.mail-tab.active span{background:rgba(255,255,255,.25);color:#fff}
.mail-help{font-size:11.5px;color:var(--muted);line-height:1.45;margin-bottom:8px}
.mail-att{font-size:10.5px;color:var(--accent);font-weight:600;display:inline-flex;align-items:center;gap:2px;margin-left:4px}
.mail-memdot{color:var(--accent);display:inline-flex;flex-shrink:0}

/* "o que foi capturado" da fonte */
.si-help{font-size:12.5px;color:var(--muted);margin-bottom:10px;line-height:1.4}
.si-list{list-style:none;max-height:380px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.si-list li{background:var(--surface2);border:1px solid var(--border);border-radius:11px;padding:10px 12px}
.si-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.si-top b{font-size:13px;color:var(--text)}
.si-top span{font-size:11px;color:var(--faint);white-space:nowrap}
.si-sub{font-size:12px;color:var(--muted);margin-top:3px;display:flex;align-items:center;gap:5px}
.si-sub .ico{color:var(--accent)}
.si-att{font-size:11.5px;color:var(--accent);margin-top:5px;display:flex;align-items:center;gap:5px;font-weight:500}
.si-att.si-noatt{color:var(--faint);font-weight:400}
.adm-src-pane{margin-top:12px}
.adm-src-pane .wpp-card{margin-bottom:10px}

/* ===================== loading narrado (chat de bot da análise) ===================== */
.run-chat{max-width:660px;margin:8px auto;background:var(--elevated);border:1px solid var(--border2);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden}
.run-chat-head{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 15%,transparent),transparent);border-bottom:1px solid var(--border)}
.run-avatar{position:relative;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2),var(--accent3));color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.run-pulse{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:var(--green);border:2px solid var(--elevated);animation:runpulse 1.5s infinite}
@keyframes runpulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--green) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.run-head-txt{flex:1;min-width:0}
.run-bot{font-family:var(--font-heading);font-weight:700;font-size:14px}
.run-status{font-size:12px;color:var(--green);font-weight:500}
.run-eta{font-size:11.5px;color:var(--muted);white-space:nowrap;text-align:right}
.run-msgs{padding:16px;display:flex;flex-direction:column;gap:10px;max-height:440px;overflow-y:auto}
.run-bubble{display:flex;align-items:center;gap:10px;background:var(--surface2);border:1px solid var(--border);border-radius:14px;border-bottom-left-radius:4px;padding:10px 13px;max-width:92%;align-self:flex-start;animation:runin .34s cubic-bezier(.2,.9,.3,1)}
@keyframes runin{from{opacity:0;transform:translateY(9px) scale(.97)}}
.run-bubble.done{opacity:.78}
.run-bubble.err{border-color:var(--red);background:color-mix(in srgb,var(--red) 10%,var(--surface2))}
.run-bic{width:27px;height:27px;border-radius:8px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.run-btxt{flex:1;display:flex;align-items:center;gap:8px;font-size:13px;line-height:1.35}
.run-blabel{flex:1}
.run-check{color:var(--green);display:inline-flex;flex-shrink:0}
.run-time{font-size:10px;color:var(--faint);align-self:flex-end;flex-shrink:0}
.run-typing{display:inline-flex;gap:3px;flex-shrink:0}
.run-typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:chatblink 1.2s infinite}
.run-typing i:nth-child(2){animation-delay:.2s}
.run-typing i:nth-child(3){animation-delay:.4s}
.run-progress{height:4px;background:var(--surface2)}
.run-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2),var(--accent3));transition:width .6s ease}
.run-eta .run-pct{color:var(--accent);font-size:13px;font-weight:700}
/* banda do robozinho (entretenimento durante a análise) */
.run-banter{display:flex;align-items:center;gap:9px;padding:10px 16px;background:color-mix(in srgb,var(--accent2) 10%,transparent);border-bottom:1px solid var(--border)}
.run-banter-ic{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--accent2),var(--accent3));color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.run-banter-txt{font-size:12.5px;color:var(--text);font-style:italic;transition:opacity .25s;line-height:1.4}
/* insight clicável + popup de data */
.insight2-item{cursor:pointer;border-radius:8px;transition:.13s}
.insight2-item:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);padding-left:13px}
.ins-date{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);background:var(--surface2);border-radius:10px;padding:10px 12px}
.ins-date .ico{color:var(--accent)}
