/* panel.css — Netseg · Ducati Lisboa Leads
   Direção: cockpit/instrumento. Temas dark/light (alternador). Animações de arranque encadeadas.
   CSP-safe: zero inline; tudo aqui. */

/* ---------- fontes ---------- */
@font-face{font-family:"Barlow Condensed";src:url("/assets/fonts/BarlowCondensed-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("/assets/fonts/BarlowCondensed-SemiBold.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("/assets/fonts/BarlowCondensed-Bold.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("/assets/fonts/JetBrainsMono-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("/assets/fonts/JetBrainsMono-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("/assets/fonts/JetBrainsMono-Bold.woff2") format("woff2");font-weight:700;font-display:swap}

/* ---------- temas ---------- */
:root{               /* DARK (base / cockpit) */
  --red:#CC0000; --red-2:#FF2B2B; --red-d:#8E0000; --ok:#27C26B;
  --bg:#0A0C0F; --bg2:#0E1116; --card:#13171D; --line:#222A33;
  --ink:#EAEEF3; --muted:#828C9A;
  --grid:rgba(255,255,255,.05); --hair:rgba(255,255,255,.08);
  --glow:rgba(255,43,43,.55); --shadow:0 26px 64px rgba(0,0,0,.6);
  --disp:"Barlow Condensed",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
}
[data-theme="light"]{
  --bg:#E7EAEE; --bg2:#F2F4F7; --card:#FFFFFF; --line:#D7DDE4;
  --ink:#13171C; --muted:#5A626D; --ok:#0a7a32;
  --grid:rgba(0,0,0,.05); --hair:rgba(0,0,0,.08);
  --shadow:0 18px 44px rgba(20,30,48,.14);
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased}

/* ================= TOPO (HUD telemetria) ================= */
.hud{position:relative;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:11px 20px;background:linear-gradient(180deg,var(--bg2),var(--bg));
  border-bottom:1px solid var(--line)}
.hud-l{display:flex;align-items:center;gap:10px;min-width:0}
.rpm{width:9px;height:9px;border-radius:50%;background:var(--red);
  box-shadow:0 0 0 0 var(--glow);animation:rpm 2.4s ease-out infinite}
.hud-brand{font-family:var(--disp);font-weight:700;font-size:18px;letter-spacing:.5px}
.hud-sep{color:var(--muted)}
.hud-sub{font-family:var(--mono);font-size:11px;letter-spacing:2px;color:var(--red-2)}
.hud-n{display:flex;align-items:center;gap:16px;font-family:var(--mono);font-size:11px;
  letter-spacing:1.5px;text-transform:uppercase}
.hud-n a{color:var(--muted);text-decoration:none;position:relative;padding:4px 0;transition:color .15s}
.hud-n a:hover{color:var(--ink)}
.hud-n a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;
  background:var(--red);transition:right .2s}
.hud-n a:hover::after{right:0}
.hud-user{font-family:var(--mono);font-size:11px;color:var(--muted);
  padding-left:8px;border-left:1px solid var(--line)}
.hud-out{color:var(--red-2)!important}
.hud-scan{position:absolute;left:0;bottom:0;height:1px;width:34%;
  background:linear-gradient(90deg,transparent,var(--red),transparent);
  animation:scan 5.5s linear infinite}

/* alternador de tema */
.tg{display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  font-family:var(--mono);font-size:10px;letter-spacing:1.5px;
  background:transparent;color:var(--muted);border:1px solid var(--line);
  border-radius:999px;padding:5px 10px;transition:border-color .15s,color .15s}
.tg:hover{color:var(--ink);border-color:var(--red)}
.tg .tg-l{display:none}
.tg .tg-d{display:inline}
[data-theme="light"] .tg .tg-l{display:inline}
[data-theme="light"] .tg .tg-d{display:none}

main{max-width:1080px;margin:26px auto;padding:0 20px}
h1{font-family:var(--disp);font-weight:600;font-size:30px;letter-spacing:.3px;margin:0 0 16px}
h2{font-family:var(--disp);font-weight:600;font-size:18px;margin:20px 0 10px}

/* ================= tabelas / leads ================= */
.grid{width:100%;border-collapse:collapse;background:var(--card);
  border:1px solid var(--line);border-radius:12px;overflow:hidden}
.grid th,.grid td{padding:11px 13px;text-align:left;border-bottom:1px solid var(--line)}
.grid thead th{background:var(--bg2);font-family:var(--mono);font-size:10px;
  text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.grid tbody tr:last-child td{border-bottom:0}
.grid tbody tr:hover{background:var(--bg2)}
.view{color:var(--red-2);text-decoration:none;font-weight:600}
.back{display:inline-block;margin-bottom:10px;color:var(--muted);text-decoration:none}

.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;
  font-family:var(--mono);letter-spacing:.5px;border:1px solid var(--line)}
.s-pending{background:rgba(255,184,0,.12);color:#e0a106;border-color:rgba(255,184,0,.3)}
.s-fetched{background:rgba(59,76,202,.16);color:#8aa0ff;border-color:rgba(120,140,255,.35)}
.s-contacted{background:rgba(6,104,168,.16);color:#5cc4ff;border-color:rgba(80,180,255,.3)}
.s-converted{background:rgba(39,194,107,.15);color:var(--ok);border-color:rgba(39,194,107,.35)}
.s-rejected{background:rgba(204,0,0,.14);color:#ff6a6a;border-color:rgba(204,0,0,.35)}
.s-error{background:rgba(204,0,0,.14);color:#ff6a6a;border-color:rgba(204,0,0,.35)}

.meta-row{display:flex;gap:20px;flex-wrap:wrap;color:var(--muted);margin:8px 0 16px;font-family:var(--mono);font-size:12px}
.actions{margin-top:18px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
select,button,input{font:inherit}
select,input{padding:9px 11px;border:1px solid var(--line);border-radius:8px;
  background:var(--card);color:var(--ink)}
button{padding:9px 16px;border:0;border-radius:8px;background:var(--red);color:#fff;
  font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s}
button:hover{background:var(--red-d);box-shadow:0 0 18px -4px var(--glow)}
button.danger{background:transparent;color:#ff6a6a;border:1px solid rgba(204,0,0,.4)}
button.danger:hover{background:rgba(204,0,0,.12);box-shadow:none}
button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
button.ghost:hover{background:var(--bg2);box-shadow:none}

/* ================= Fluxo Vivo ================= */
.live-head{display:flex;align-items:center;gap:10px}
.live-dot{width:10px;height:10px;border-radius:50%;background:var(--muted)}
.live-dot.on{background:var(--ok);box-shadow:0 0 0 3px rgba(39,194,107,.2)}
.live-dot.off{background:#c0392b}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:8px 0 4px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px;position:relative;overflow:hidden}
.stat::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--line)}
.stat.good::before{background:var(--ok)}
.stat-n{font-family:var(--mono);font-size:26px;font-weight:500;line-height:1;font-variant-numeric:tabular-nums}
.stat-l{color:var(--muted);font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;margin-top:7px}
.stat.good .stat-n{color:var(--ok)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.feed{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);
  border-radius:12px;max-height:430px;overflow:auto}
.feed li{padding:9px 12px;border-bottom:1px solid var(--line);font-size:13px}
.feed li:last-child{border-bottom:0}
.feed .feed-t{color:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums;margin-right:8px;font-size:12px}
.feed-item{animation:slideIn .35s ease both}
.feed-item.new{border-left:3px solid var(--red)}
.feed-item.ok{border-left:3px solid var(--ok)}
.feed-item.bad{border-left:3px solid #c0392b}

/* gestão de utilizadores */
.add-user{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:16px}
.add-user input,.add-user select{padding:9px 11px}
.urow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
.urow input,.urow select{padding:7px 10px}
details summary{cursor:pointer}
details[open] summary{margin-bottom:8px}
.muted{color:var(--muted);font-size:12px}
.alert{background:rgba(204,0,0,.12);border:1px solid rgba(204,0,0,.4);color:#ff7a7a;
  padding:10px 12px;border-radius:8px;margin-bottom:4px;font-size:13px}
.alert.ok{background:rgba(39,194,107,.12);border-color:rgba(39,194,107,.4);color:var(--ok)}

/* ===================================================================
   LOGIN — cockpit / cluster de instrumentos
   =================================================================== */
.cockpit{position:relative;min-height:100vh;display:grid;place-items:center;
  padding:24px;overflow:hidden;background:radial-gradient(120% 90% at 50% -10%,var(--bg2),var(--bg) 60%)}
.cockpit-bg{position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:46px 46px;-webkit-mask-image:radial-gradient(circle at 50% 38%,#000,transparent 72%);
          mask-image:radial-gradient(circle at 50% 38%,#000,transparent 72%);
  opacity:0;animation:gridIn 1.1s ease .05s forwards}
.cockpit-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 40%,var(--glow) 50%,transparent 60%);
  opacity:.12;mix-blend-mode:screen;
  transform:translateX(-30%);animation:sheen 7s ease-in-out 1.4s infinite}

.tg-fixed{position:absolute;top:18px;right:20px;z-index:5}

.cluster{position:relative;width:360px;max-width:92vw;background:var(--card);
  border:1px solid var(--line);border-radius:18px;padding:26px 26px 20px;
  box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px}
.cluster::before{content:"";position:absolute;inset:-1px;border-radius:18px;padding:1px;
  background:linear-gradient(160deg,var(--red),transparent 40%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
          mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:.6;pointer-events:none}

.maker{font-family:var(--mono);font-size:10px;letter-spacing:3px;color:var(--muted);
  text-transform:uppercase;display:flex;align-items:center;gap:7px;
  opacity:0;animation:up .5s ease .2s both}
.maker b{color:var(--ink)}
.hex{color:var(--red)}

/* mostrador (gauge) */
.gauge{display:block;margin:2px auto 0;width:200px;height:112px;
  opacity:0;animation:up .6s ease .32s both}
.gauge .arc{fill:none;stroke:var(--line);stroke-width:6;stroke-linecap:round}
.gauge .arc-hot{fill:none;stroke:var(--red);stroke-width:6;stroke-linecap:round;
  stroke-dasharray:240;stroke-dashoffset:240;filter:drop-shadow(0 0 5px var(--glow));
  animation:arc 1.1s ease .55s forwards}
.gauge .tick{stroke:var(--muted);stroke-width:2;opacity:.5}
.gauge .needle{transform-box:view-box;transform-origin:120px 104px;
  animation:sweep 1.5s cubic-bezier(.2,.7,.2,1) .5s both}
.gauge .needle line{stroke:var(--red-2);stroke-width:3;stroke-linecap:round;
  filter:drop-shadow(0 0 4px var(--glow))}
.gauge .pivot{fill:var(--ink)}
.gauge .rdy{font-family:var(--mono);font-size:9px;letter-spacing:2px;fill:var(--red-2);
  opacity:0;animation:up .4s ease 1.5s both}

.cluster-title{font-family:var(--disp);font-weight:700;font-size:30px;line-height:.95;
  letter-spacing:.5px;text-align:center;opacity:0;animation:up .5s ease .55s both}
.cluster-title span{display:block;font-size:13px;font-weight:600;letter-spacing:6px;
  color:var(--red-2);margin-top:3px}

.cl-alert{opacity:0;animation:up .4s ease .6s both}

.fld{display:flex;flex-direction:column;gap:6px;opacity:0;animation:up .5s ease both}
.fld:nth-of-type(1){animation-delay:.72s}
.fld:nth-of-type(2){animation-delay:.84s}
.fld-l{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}
.fld input{padding:11px 13px;border:1px solid var(--line);border-radius:10px;
  background:var(--bg2);color:var(--ink);font-family:var(--mono);font-size:14px;letter-spacing:1px;
  transition:border-color .15s,box-shadow .15s}
.fld input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(204,0,0,.18)}

.ign{margin-top:6px;display:flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--disp);font-weight:600;font-size:17px;letter-spacing:1px;
  padding:12px;border-radius:11px;opacity:0;animation:up .5s ease .96s both}
.ign:hover{box-shadow:0 0 24px -4px var(--glow)}
.ign-i{width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.25)}

.sig{text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:1px;
  color:var(--muted);margin-top:2px;opacity:0;animation:up .5s ease 1.1s both}
.sig b{color:var(--red-2);letter-spacing:2px}
.cluster a{color:var(--red-2);text-decoration:none}

/* ---------- animações ---------- */
@keyframes rpm{0%{box-shadow:0 0 0 0 var(--glow)}70%,100%{box-shadow:0 0 0 7px transparent}}
@keyframes scan{0%{left:-34%}100%{left:100%}}
@keyframes slideIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes gridIn{to{opacity:1}}
@keyframes sheen{0%,100%{transform:translateX(-30%)}50%{transform:translateX(30%)}}
@keyframes up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes arc{to{stroke-dashoffset:96}}
@keyframes sweep{
  0%{transform:rotate(-90deg)}
  45%{transform:rotate(86deg)}
  68%{transform:rotate(22deg)}
  100%{transform:rotate(40deg)}}

@media (prefers-reduced-motion: reduce){
  *{animation:none!important}
  .cockpit-bg{opacity:1}
  .maker,.gauge,.cluster-title,.fld,.ign,.sig,.cl-alert{opacity:1}
  .gauge .arc-hot{stroke-dashoffset:96}
  .gauge .needle{transform:rotate(40deg)}
}

/* ---------- compat: /setup e formulários "card" simples (tema-aware) ---------- */
body.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:26px;box-shadow:var(--shadow)}
.login-card{width:360px;max-width:92vw;display:flex;flex-direction:column;gap:14px;margin:0 auto}
.card .brand,.login-card .brand{font-family:var(--disp);font-weight:700;font-size:21px;
  letter-spacing:.4px;display:flex;align-items:center;gap:9px;color:var(--ink)}
.card .dot,.login-card .dot{width:11px;height:11px;border-radius:50%;background:var(--red);
  box-shadow:0 0 0 3px rgba(204,0,0,.25)}
.login-card label{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);
  font-size:10px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}
.login-card input{padding:11px 12px;border:1px solid var(--line);border-radius:10px;
  background:var(--bg2);color:var(--ink);font-family:var(--mono);font-size:14px}
.login-card input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(204,0,0,.18)}
.login-card button{margin-top:4px}

.nav-burger{display:none}


/* ============================================================
   CRM_CONTACT_CSS_V1 · Vista de detalhe do contacto + filtro
   Movido de <style> inline para ficheiro (CSP style-src 'self')
   ============================================================ */
.contact{max-width:680px;margin:0 auto;padding:12px}
.contact .back{display:inline-block;margin-bottom:10px;color:#888;text-decoration:none}
.contact .c-head h1{margin:0 0 4px}
.contact .c-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.contact .c-actions .act{flex:1;min-width:120px;text-align:center;padding:14px 10px;
  border-radius:12px;text-decoration:none;font-weight:700;color:#fff}
.contact .act.tel{background:#CC0000}
.contact .act.wa{background:#25D366}
.contact .act.mail{background:#444}
.contact .c-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.contact .c-grid .field label{display:block;font-size:.72rem;color:#999;
  text-transform:uppercase;letter-spacing:.04em}
.contact .c-grid .field div{font-size:.98rem}
.contact .c-form{margin:16px 0;padding:12px;background:#1c1c1e;border-radius:12px}
.contact .c-form label{display:block;font-size:.8rem;color:#bbb;margin-bottom:6px}
.contact .c-form .row{display:flex;gap:8px}
.contact .c-form select,.contact .c-form textarea{width:100%;padding:10px;border-radius:8px;
  border:1px solid #333;background:#111;color:#eee;font:inherit}
.contact .c-form button{margin-top:8px;padding:11px 18px;border:0;border-radius:10px;
  background:#CC0000;color:#fff;font-weight:700}
.contact .tl{list-style:none;padding:0;margin:0}
.contact .tl-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #2a2a2c}
.contact .tl-ico{font-size:1.2rem}
.contact .tl-head{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap;font-size:.85rem}
.contact .tl-text{margin-top:4px;white-space:pre-wrap}
.contact .muted{color:#888;font-size:.8rem}
@media(max-width:480px){.contact .c-grid{grid-template-columns:1fr}}

/* Lista /crm: link da celula # (substitui onclick inline) e filtro activo */
table.grid a.crm-open{display:inline-block;font-weight:700;color:#CC0000;text-decoration:none;
  padding:2px 8px;border:1px solid #CC0000;border-radius:6px}
table.grid a.crm-open:hover{background:#CC0000;color:#fff}
.meta-row a.view.on{font-weight:700;text-decoration:underline}

/* Tema claro: cartoes de formulario legiveis */
body.light .contact .c-form{background:#f4f4f6}
body.light .contact .c-form select,body.light .contact .c-form textarea{
  background:#fff;color:#222;border-color:#ccc}
body.light .contact .tl-item{border-bottom-color:#e3e3e6}

/* CRM_PIPELINE_CSS_V1 · barra de etapas na vista de detalhe */
.contact .c-pipe{margin:16px 0;padding:12px;background:#161618;border:1px solid #2a2a2c;border-radius:12px}
.contact .pipe-now{font-size:.95rem;margin-bottom:10px}
.contact .pipe-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.contact .st-form{margin:0}
.contact .st-chip{padding:8px 12px;border:1px solid #444;border-radius:999px;background:#111;color:#ccc;font-weight:600;font-size:.85rem;cursor:pointer}
.contact .st-chip:hover{border-color:#CC0000;color:#fff}
.contact .st-chip.st-on{background:#CC0000;border-color:#CC0000;color:#fff}
.contact .pipe-edit .row{display:flex;gap:8px}
.contact .pipe-edit input{width:100%;padding:10px;border-radius:8px;border:1px solid #333;background:#111;color:#eee;font:inherit;margin-top:6px}
.contact .pipe-edit button{margin-top:8px;padding:11px 18px;border:0;border-radius:10px;background:#CC0000;color:#fff;font-weight:700}
body.light .contact .c-pipe{background:#f7f7f9;border-color:#e3e3e6}
body.light .contact .st-chip{background:#fff;color:#333;border-color:#ccc}
body.light .contact .pipe-edit input{background:#fff;color:#222;border-color:#ccc}

/* CRM_POLISH_CSS_V2 · botao validar lead */
.contact .st-form.validate{display:inline-block;margin-left:6px}
.contact .st-validate{padding:7px 14px;border:0;border-radius:999px;background:#0a7d2c;
  color:#fff;font-weight:700;font-size:.85rem;cursor:pointer}
.contact .st-validate:hover{background:#0c9434}

/* CRM_VALIDATE_CSS_V1 · botao validar lead */
.contact .st-form.validate{display:inline-block;margin-left:6px}
.contact .st-validate{padding:7px 14px;border:0;border-radius:999px;background:#0a7d2c;
  color:#fff;font-weight:700;font-size:.85rem;cursor:pointer}
.contact .st-validate:hover{background:#0c9434}


/* === triagem-admin.css (anexado) === */  /* TCFG_CSS_V2 */
/* ============================================================================
   triagem-admin.css · Painel de 2ª Triagem — redesenho limpo Ducati
   Herda os tokens do panel.css (--bg/--card/--line/--ink/--muted/--mono).
   Funciona em dark e light via [data-theme]. Vermelho (#CC0000) só em acentos.
   ============================================================================ */
.tcfg{max-width:880px;margin:0 auto;padding:8px 16px 80px}
.tcfg h1{margin:0 0 4px;font-weight:600;letter-spacing:-.01em}
.tcfg > .muted{margin:0 0 28px;font-size:13px}

.tcfg-sec{margin:0 0 32px}
.tcfg-sec-h{font-family:var(--mono,monospace);font-size:11px;text-transform:uppercase;
  letter-spacing:.14em;color:var(--muted);margin:0 0 14px;padding-bottom:10px;
  border-bottom:1px solid var(--line)}

.tcfg-field{display:grid;grid-template-columns:200px 1fr;gap:14px;align-items:center;margin:0 0 12px}
.tcfg-field > label{font-size:12px;color:var(--muted)}
.tcfg-field input,.tcfg-field select,.tcfg-field textarea{width:100%;padding:9px 11px;
  border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);
  font:inherit;font-size:13px;transition:border-color .15s}
.tcfg-field input:focus,.tcfg-field select:focus,.tcfg-field textarea:focus{outline:none;border-color:#CC0000}
.tcfg-field textarea{resize:vertical;min-height:42px}
.tcfg-check{display:flex;align-items:center;gap:9px;margin:12px 0 0;cursor:pointer;font-size:13px;color:var(--ink)}
.tcfg-check input{width:16px;height:16px;accent-color:#CC0000}
@media(max-width:560px){.tcfg-field{grid-template-columns:1fr;gap:5px}}

.tcfg-qlist{display:flex;flex-direction:column;gap:16px}
.tcfg-q{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 18px 16px}
.tcfg-qhead{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.tcfg-qn{font-family:var(--mono,monospace);font-size:12px;color:#CC0000;font-weight:600;letter-spacing:.05em;margin-right:auto}
.tcfg-mini{width:28px;height:28px;border:1px solid transparent;background:transparent;
  color:var(--muted);border-radius:7px;cursor:pointer;font-size:13px;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;transition:all .15s}
.tcfg-mini:hover{color:var(--ink);background:var(--bg2)}
.tcfg-del:hover{color:#fff;background:#CC0000}
.tcfg-q .tcfg-field{grid-template-columns:130px 1fr}
.tcfg-q .tcfg-check{margin-top:4px}

.tcfg-opts{margin:16px 0 0;padding:16px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.tcfg-opt{border:1px solid var(--line);border-radius:9px;background:var(--bg2);padding:10px 12px}
.tcfg-opttop{display:flex;gap:10px;align-items:center}
.tcfg-opttop input{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:7px;
  background:var(--card);color:var(--ink);font:inherit;font-size:13px}
.tcfg-opttop input:focus{outline:none;border-color:#CC0000}

.tcfg-rtsum{display:flex;align-items:center;gap:8px;margin-top:9px;cursor:pointer;font-size:12px;color:var(--muted);user-select:none}
.tcfg-rtsum:hover{color:var(--ink)}
.tcfg-rtsum .chev{transition:transform .15s;font-size:10px;display:inline-block}
.tcfg-rtsum.open .chev{transform:rotate(90deg)}
.tcfg-rtsum b{color:#CC0000;font-weight:600}
.tcfg-rtsum .none{font-style:italic;opacity:.7}

.tcfg-routing{display:none;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:8px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.tcfg-routing.open{display:grid}
.tcfg-rt{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}
.tcfg-w{width:52px;padding:6px 7px;border:1px solid var(--line);border-radius:6px;
  background:var(--card);color:var(--ink);font:inherit;text-align:center;font-size:12px}
.tcfg-w:focus{outline:none;border-color:#CC0000}
.tcfg-w.set{border-color:#CC0000;color:#CC0000;font-weight:600}

.tcfg-add{background:transparent;border:1px dashed var(--line);color:var(--muted);
  border-radius:9px;padding:11px 16px;cursor:pointer;font:inherit;font-size:13px;width:100%;transition:all .15s;margin-top:14px}
.tcfg-add:hover{border-color:#CC0000;color:#CC0000}
.tcfg-add.sm{width:auto;padding:8px 14px;font-size:12px;margin-top:12px}

.tcfg-rgpd{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.tcfg-rgpd .lock{color:#CC0000;font-size:12px;font-family:var(--mono,monospace);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.tcfg-rgpd p{margin:0;font-size:12px;color:var(--muted);line-height:1.5}

.tcfg-bar{position:sticky;bottom:0;display:flex;align-items:center;gap:16px;padding:16px 0 8px;margin-top:8px;background:linear-gradient(transparent,var(--bg) 40%)}
.tcfg-save{background:#CC0000;border:0;border-radius:9px;color:#fff;font-weight:600;font-size:13px;padding:12px 26px;cursor:pointer;transition:background .15s}
.tcfg-save:hover{background:#A30000}
.tcfg-save:disabled{opacity:.5;cursor:not-allowed}
.tcfg-status{font-size:12px;color:var(--muted)}
.tcfg-status.ok{color:var(--ok,#0a7a32)}
.tcfg-status.err{color:#e0392b}




/* === firewall.css · detalhe de leitura harmonizado (FIREWALL_CSS_V2) === */
.fw-detail .back{display:inline-block;margin-bottom:6px;color:var(--muted);text-decoration:none;font-size:13px}
.fw-detail .back:hover{color:var(--ink)}
.fw-detail h1{margin:6px 0 22px;font-weight:600}

.fw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-bottom:14px}
.fw-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.fw-card h2{margin:0 0 12px;font-size:11px;font-family:var(--mono,monospace);text-transform:uppercase;
  letter-spacing:.12em;color:var(--muted);padding-bottom:10px;border-bottom:1px solid var(--line)}

/* ficha tecnica: label largura fixa + valor alinhado a esquerda */
.fw-row{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:6px 0;font-size:13px;align-items:baseline}
.fw-k{color:var(--muted);font-size:12px}
.fw-v{color:var(--ink);word-break:break-word;font-family:var(--mono,monospace);font-size:12.5px}
.fw-sub{margin:14px 0 8px;font-size:10px;font-family:var(--mono,monospace);text-transform:uppercase;
  letter-spacing:.1em;color:var(--muted);padding-top:10px;border-top:1px solid var(--line)}
.fw-mid{color:var(--muted);opacity:.65;font-size:11px}

.fw-timeline{margin-top:0}
.fw-tl{display:grid;grid-template-columns:80px 1fr auto;gap:12px;align-items:baseline;
  padding:8px 0;border-bottom:1px solid var(--line);font-size:12px}
.fw-tl:last-child{border-bottom:0}
.fw-tl-t{font-family:var(--mono,monospace);color:var(--muted);text-transform:uppercase;font-size:10px;letter-spacing:.05em}
.fw-tl-b{color:var(--ink)}
.fw-tl-d{color:var(--muted);font-size:11px;font-family:var(--mono,monospace);white-space:nowrap}
@media(max-width:560px){.fw-tl{grid-template-columns:1fr;gap:2px}.fw-tl-d{text-align:left}.fw-row{grid-template-columns:110px 1fr}}

/* lista: ID discreto + botao Info */
.fw-id{font-family:var(--mono,monospace);font-size:12px;color:var(--muted)}
.fw-actcell{text-align:right;white-space:nowrap}
.fw-info{display:inline-block;padding:5px 14px;border:1px solid var(--line);border-radius:7px;
  color:var(--muted);text-decoration:none;font-size:11px;font-family:var(--mono,monospace);
  text-transform:uppercase;letter-spacing:.06em;transition:all .15s}
.fw-info:hover{border-color:#CC0000;color:#CC0000}

/* FIREWALL_TEXT_SIZE: lista mais compacta (-2px) */
.fw-listrow td{font-size:12px}
.fw-listrow .fw-info{font-size:10px}

/* === TCFG_ROUTE1: encaminhamento simples (1 dropdown por opção) === */
.tcfg-route1{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.tcfg-route1-l{font-size:12px;color:var(--muted);white-space:nowrap}
.tcfg-route1-sel{flex:1;max-width:240px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--ink);font:inherit;font-size:13px;cursor:pointer}
.tcfg-route1-sel:focus{outline:none;border-color:#CC0000}


/* === ducati-crm.css · aba Ducati CRM (DCRM_CSS_V1) === */
.dcrm{max-width:980px;margin:0 auto;padding:8px 16px 80px}
.dcrm h1{margin:0 0 4px}
.dcrm>.muted{margin:0 0 16px;font-size:13px}
.dcrm-info{display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:12px 16px;margin-bottom:20px;font-size:13px}
.dcrm-link{color:#CC0000;text-decoration:none;font-size:12px;margin-left:auto}
.dcrm-link:hover{text-decoration:underline}
.dcrm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:14px}
.dcrm-box{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.dcrm-box.active{border-color:rgba(204,0,0,.4)}
.dcrm-box-head{display:flex;align-items:center;gap:10px;padding:12px 14px;
  border-bottom:1px solid var(--line);background:var(--bg2)}
.dcrm-slot{font-family:var(--mono,monospace);font-size:11px;color:#CC0000;font-weight:700;
  min-width:24px}
.dcrm-name{flex:1;padding:6px 10px;border:1px solid var(--line);border-radius:7px;
  background:var(--card);color:var(--ink);font:inherit;font-size:13px}
.dcrm-name:focus{outline:none;border-color:#CC0000}
.dcrm-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);
  cursor:pointer;white-space:nowrap}
.dcrm-toggle input{accent-color:#CC0000;width:14px;height:14px}
.dcrm-box-body{padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.dcrm-row label{display:block;font-size:11px;color:var(--muted);margin-bottom:4px;
  font-family:var(--mono,monospace);text-transform:uppercase;letter-spacing:.06em}
.dcrm-row input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:7px;
  background:var(--bg2);color:var(--ink);font:inherit;font-size:12px}
.dcrm-row input:focus{outline:none;border-color:#CC0000}
.dcrm-link-row input{font-size:11px;color:#3b82f6}
.dcrm-short{max-width:90px!important}
.dcrm-row-inline{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dcrm-box-foot{display:flex;align-items:center;gap:12px;padding:10px 14px;
  border-top:1px solid var(--line);background:var(--bg2)}
.dcrm-save{background:#CC0000;border:0;border-radius:8px;color:#fff;font-weight:600;
  font-size:12px;padding:8px 18px;cursor:pointer;transition:background .15s}
.dcrm-save:hover{background:#A30000}
.dcrm-save:disabled{opacity:.5;cursor:not-allowed}
.dcrm-status{font-size:12px;color:var(--muted)}
.dcrm-status.ok{color:var(--ok,#22c55e)}
.dcrm-status.err{color:#ef4444}
@media(max-width:500px){.dcrm-grid{grid-template-columns:1fr}.dcrm-row-inline{grid-template-columns:1fr}}

/* AGENT_RO_UI_V1 — agente = observador puro: esconder controlos de escrita */
.agent-ro form[action="/crm/contact"]{display:none !important}
.agent-ro .c-assign,
.agent-ro .c-note,
.agent-ro .pipe-edit,
.agent-ro .st-form{display:none !important}
.agent-ro .c-pipeline::after{content:"Apenas leitura";display:inline-block;
  font:500 11px/1 var(--mono,monospace);letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted,#888);border:1px solid var(--line,#ddd);border-radius:20px;padding:6px 12px;margin-top:8px}

/* GLOBAL_FOOTER_V1 */
.app-foot{text-align:center;padding:24px 12px;margin-top:32px;font-size:11px;color:#9aa0a8;
  border-top:1px solid rgba(128,128,128,.18)}
