@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --fd:'Sora',sans-serif; --ft:'Inter',sans-serif; --fm:'Inter',sans-serif;
  --ink:#0A0F1E; --ink2:#141B2E; --muted:#5A6478; --faint:#8A94A8;
  --brand:#4C5BFF; --brandh:#3244D6; --brandd:#26349E; --brandl:#EEF0FF;
  --brandm:rgba(76,91,255,.34); --onbrand:#FFFFFF;
  --tint:rgba(76,91,255,.075); --tinth:rgba(76,91,255,.145);
  --glow:rgba(76,91,255,.45); --glowa:rgba(0,209,178,.48);
  --accent:#00D1B2; --accentd:#007A66; --blue:#2E6BE6; --green:#1FA971;
  --amber:#C98A0B; --amberd:#8A5A05; --red:#E5484D; --violet:#6B5BD2;
  --canvas:#F2F4F9; --surface:#FFFFFF; --card:#F7F8FF; --line:#E1E6F4; --line2:#ECEFF8;
  --grad:linear-gradient(135deg,#4C5BFF 0%,#00D1B2 100%);
  --ch1:#26349E; --ch2:#4C5BFF; --ch3:#8A93FF; --ch4:#B9BFFF; --ch5:#DEE1FF;
  --shadow:0 8px 24px rgba(10,15,30,.08);
}
/* paletas alternativas · Configuracoes -> Aparencia */
:root[data-pal="signal"]{--brand:#00D1B2;--brandh:#00B49A;--brandd:#007A66;--brandl:#E6FBF7;--brandm:rgba(0,209,178,.34);--onbrand:#0A0F1E;--tint:rgba(0,209,178,.085);--tinth:rgba(0,209,178,.17);--glow:rgba(0,209,178,.45);--glowa:rgba(76,91,255,.42);--accent:#4C5BFF;--accentd:#3244D6;--grad:linear-gradient(135deg,#00D1B2,#4C5BFF);--ch1:#007A66;--ch2:#00B49A;--ch3:#4CDCC8;--ch4:#8FEBDD;--ch5:#D2F6F0}
:root[data-pal="classico"]{--brand:#0E7C6B;--brandh:#0A5B4F;--brandd:#0A5B4F;--brandl:#E3F4F0;--brandm:rgba(14,124,107,.34);--onbrand:#FFFFFF;--tint:rgba(14,124,107,.08);--tinth:rgba(14,124,107,.16);--glow:rgba(14,124,107,.42);--accent:#DE7A3D;--accentd:#A85A25;--canvas:#F5F7F8;--line:#E2E8EB;--line2:#EDF1F3;--ink:#0B1620;--ink2:#24343F;--muted:#5B6B76;--faint:#8CA0AC;--grad:linear-gradient(135deg,#0E7C6B,#2E6BE6);--ch1:#0A5B4F;--ch2:#0E7C6B;--ch3:#4BA594;--ch4:#8CC9BC;--ch5:#CFE8E2}
:root[data-pal="grafite"]{--brand:#26334D;--brandh:#141B2E;--brandd:#0A0F1E;--brandl:#EDF1F7;--brandm:rgba(38,51,77,.30);--onbrand:#FFFFFF;--tint:rgba(38,51,77,.075);--tinth:rgba(38,51,77,.15);--glow:rgba(38,51,77,.40);--accent:#00D1B2;--accentd:#007A66;--grad:linear-gradient(135deg,#26334D,#4C5BFF);--ch1:#0A0F1E;--ch2:#26334D;--ch3:#4C5BFF;--ch4:#8A93FF;--ch5:#DEE1FF}
:root[data-pal="solar"]{--brand:#FF6B4A;--brandh:#E8552F;--brandd:#B93C21;--brandl:#FFEDE7;--brandm:rgba(255,107,74,.32);--onbrand:#0A0F1E;--tint:rgba(255,107,74,.085);--tinth:rgba(255,107,74,.17);--glow:rgba(255,107,74,.42);--accent:#4C5BFF;--accentd:#26349E;--grad:linear-gradient(135deg,#FF6B4A,#4C5BFF);--ch1:#B93C21;--ch2:#FF6B4A;--ch3:#FF9578;--ch4:#FFBFA9;--ch5:#FFE3D9}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--ft);color:var(--ink);background:var(--canvas);font-size:14px;line-height:1.45}
h1,h2,h3,.fd{font-family:var(--fd)}
a{color:var(--brand);text-decoration:none}
button{font-family:var(--ft);cursor:pointer}
input,select,textarea{font-family:var(--ft);font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);width:100%}
input:focus,select:focus{outline:2px solid var(--brandm);border-color:var(--brand)}
label{font-size:12px;font-weight:600;color:var(--ink2);display:block;margin:10px 0 4px}

.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);
  padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;transition:.15s}
.btn:hover{border-color:var(--brand);color:var(--brand)}
.btn.pri{background:var(--brand);border-color:var(--brand);color:var(--onbrand)}
.btn.pri:hover{background:var(--brandh);color:var(--onbrand)}
.btn.danger{color:var(--red)}.btn.danger:hover{border-color:var(--red)}
.btn.sm{padding:5px 10px;font-size:12px;border-radius:7px}
.btn:disabled{opacity:.45;cursor:not-allowed}

.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 9px;border-radius:99px;border:1px solid transparent}
.chip.pendente{background:#FDF3E3;color:var(--amber);border-color:#F0DDB8}
.chip.aceito{background:#E6F5EE;color:var(--green);border-color:#BEE5CF}
.chip.recusado{background:#FBEAEA;color:var(--red);border-color:#F0CACA}
.chip.expirado{background:#EEF1F3;color:var(--muted);border-color:var(--line)}
.chip.role{background:var(--brandl);color:var(--brandd)}
.chip.ver{background:#EEF2FF;color:var(--violet)}

/* ---------- layout app ---------- */
.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh;align-items:start}
.side{background:var(--surface);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:4px;height:100vh;position:sticky;top:0;overflow-y:auto;min-height:0;scrollbar-width:thin}
.brand{display:flex;align-items:center;gap:9px;padding:4px 6px 16px;border-bottom:1px solid var(--line2);margin-bottom:12px}
.brand .mk{width:30px;height:30px;border-radius:8px;background:var(--brand);color:#fff;display:grid;place-items:center;font-family:var(--fd);font-weight:700;font-size:13px}
.brand .nm{font-family:var(--fd);font-weight:700;font-size:15px}
.brand .nm em{font-style:normal;color:var(--brand)}
.navit{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;color:var(--ink2);font-weight:500;font-size:13px;cursor:pointer}
.navit:hover{background:var(--brandl);color:var(--brandd)}
.navit.on{background:var(--brandl);color:var(--brandd);font-weight:600}
.side .foot{margin-top:auto;font-size:11px;color:var(--faint);padding-top:12px;border-top:1px solid var(--line2)}
.main{padding:26px 30px;max-width:1180px}
.topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}
.topline h1{font-size:22px;letter-spacing:-.015em}
.muted{color:var(--muted)}.small{font-size:12px}

.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.grid{display:grid;gap:14px}
.grid.flows{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.fcard{cursor:pointer;transition:.15s}
.fcard:hover{border-color:var(--brand);box-shadow:var(--shadow)}
.fcard .code{font-family:var(--fd);font-weight:700;color:var(--brand);font-size:12px;letter-spacing:.4px}
.fcard h3{font-size:15px;margin:4px 0 8px}
.fcard .meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

.secttl{font-family:var(--fd);font-size:14px;font-weight:600;margin:26px 0 10px;display:flex;align-items:center;gap:8px}
.secttl::after{content:'';flex:1;height:1px;background:var(--line)}

/* ---------- login / convite ---------- */
.centerpg{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--brandl),var(--canvas) 55%)}
.authcard{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:34px 34px 28px;width:400px;max-width:92vw;box-shadow:0 10px 34px rgba(11,22,32,.08)}
.authcard .brand{justify-content:center;border:0;margin-bottom:6px;padding-bottom:8px}
.authcard h1{font-size:18px;text-align:center;margin-bottom:2px}
.authcard .sub{text-align:center;color:var(--muted);font-size:12.5px;margin-bottom:16px}
.err{background:#FBEAEA;color:var(--red);border:1px solid #F0CACA;border-radius:8px;padding:8px 12px;font-size:12.5px;margin:10px 0;display:none}
.hint{margin-top:16px;background:var(--canvas);border:1px dashed var(--line);border-radius:8px;padding:10px 12px;font-size:11.5px;color:var(--muted)}
.hint b{color:var(--ink2)}
.invrow{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:10px;flex-wrap:wrap}
.invrow .who{flex:1;min-width:180px}

/* ---------- construtor ---------- */
.bwrap{display:grid;grid-template-rows:auto 1fr;height:100vh;overflow:hidden}
.btop{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap}
.btop .tt{font-family:var(--fd);font-weight:700;font-size:15px}
.btop .code{color:var(--brand);font-weight:700;font-size:12px}
.btop .sp{flex:1}
.bmain{display:grid;grid-template-columns:180px 1fr auto;min-height:0}
.pal{background:var(--surface);border-right:1px solid var(--line);padding:14px 12px;overflow:auto}
.pal h4{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--faint);margin:10px 0 8px}
.palit{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;margin-bottom:8px;cursor:grab;background:var(--surface);font-size:12.5px;font-weight:600;user-select:none;touch-action:none}
.palit:hover{border-color:var(--brand);box-shadow:var(--shadow)}
.palit .dot{width:10px;height:10px;border-radius:3px}
.pal .tip{font-size:11px;color:var(--muted);background:var(--canvas);border:1px dashed var(--line);border-radius:8px;padding:8px 10px;margin-top:12px;line-height:1.5}
.cwrap{position:relative;overflow:auto;background:
  radial-gradient(circle,var(--line) 1px,transparent 1px) 0 0/22px 22px, var(--canvas)}
#canvas{position:relative;width:2200px;height:1300px}
#edges{position:absolute;inset:0;width:2200px;height:1300px;pointer-events:none}
#edges path.e{pointer-events:stroke;cursor:pointer}
.node{position:absolute;width:120px;min-height:56px;background:var(--surface);border:1.6px solid var(--line);border-radius:10px;
  padding:8px 10px;font-size:12px;font-weight:600;cursor:grab;user-select:none;touch-action:none;
  box-shadow:0 1px 3px rgba(11,22,32,.08);display:flex;flex-direction:column;gap:3px;justify-content:center}
.node .stripe{position:absolute;left:0;top:0;bottom:0;width:5px;border-radius:10px 0 0 10px}
.node .rl{font-size:10px;font-weight:600;color:var(--muted)}
.node.sel{outline:2.5px solid var(--brand);outline-offset:1px}
.node.snap{outline:3px solid var(--green);outline-offset:2px;box-shadow:0 0 0 6px rgba(30,158,90,.18)}
.node.readonly{cursor:default}
.port{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2.5px solid var(--brand);opacity:0;transition:.12s;z-index:5}
.node:hover .port,.node.sel .port{opacity:1}
.port:hover{background:var(--brand);transform:scale(1.25)}
.port.t{top:-7px;left:calc(50% - 6px)}.port.b{bottom:-7px;left:calc(50% - 6px)}
.port.l{left:-7px;top:calc(50% - 6px)}.port.r{right:-7px;top:calc(50% - 6px)}
.port{cursor:crosshair}
.ghost{position:fixed;z-index:99;pointer-events:none;opacity:.85;border:2px dashed var(--brand);border-radius:10px;
  background:var(--surface);padding:10px 14px;font-size:12px;font-weight:600;box-shadow:0 6px 18px rgba(11,22,32,.18)}
.elbl{font-size:10.5px;font-weight:600;paint-order:stroke;stroke:var(--canvas);stroke-width:3px}
.ehandle{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--surface);border:2.5px solid var(--accent);z-index:6;cursor:crosshair;transform:translate(-50%,-50%)}

.panel{width:280px;background:var(--surface);border-left:1px solid var(--line);padding:16px;overflow:auto}
.panel h3{font-size:13px;margin-bottom:4px}
.panel .hint2{font-size:11.5px;color:var(--muted)}
.panel .row{display:flex;gap:8px;margin-top:14px}
.panel .row .btn{flex:1;justify-content:center}
.drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:94vw;background:var(--surface);border-left:1px solid var(--line);
  box-shadow:-8px 0 30px rgba(11,22,32,.12);z-index:60;padding:20px;overflow:auto;transform:translateX(105%);transition:.22s}
.drawer.open{transform:none}
.drawer h2{font-size:16px;margin-bottom:2px}
.modal{position:fixed;inset:0;background:rgba(11,22,32,.38);display:flex;align-items:center;justify-content:center;padding:22px 16px;z-index:70;overflow:auto}
.modal .box{background:var(--surface);border-radius:14px;padding:24px;width:420px;max-width:92vw;max-height:100%;overflow:auto;margin:auto;box-shadow:0 16px 44px rgba(11,22,32,.25)}
.modal h3{font-size:15px;margin-bottom:6px}
/* ---------- popup novo fluxo (redesenho) ---------- */
.modal .box.pnew{width:560px;max-width:94vw;padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:86vh}
.pn-head{display:flex;align-items:center;gap:12px;padding:18px 22px 14px;border-bottom:1px solid var(--line2)}
.pn-ic{width:38px;height:38px;border-radius:10px;background:var(--brandl);color:var(--brand);display:grid;place-items:center;flex:0 0 auto}
.pn-ic svg{width:20px;height:20px}
.pn-head h3{font-size:16px;line-height:1.2}
.pn-head .sub{font-size:12px;color:var(--muted);margin-top:2px}
.pn-x{margin-left:auto;width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:15px;display:grid;place-items:center;flex:0 0 auto}
.pn-x:hover{border-color:var(--red);color:var(--red)}
.pn-tools{display:flex;align-items:center;gap:10px;padding:12px 22px 10px}
.pn-search{position:relative;flex:1}
.pn-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--faint)}
.pn-search input{padding-left:34px;border-radius:99px;background:var(--canvas);border-color:transparent}
.pn-search input:focus{background:var(--surface);border-color:var(--brand)}
.pn-count{font-size:11.5px;color:var(--faint);white-space:nowrap;font-weight:600}
.pn-list{flex:1;overflow-y:auto;padding:2px 22px 14px;min-height:120px}
.pn-sec{font-size:10.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--faint);margin:12px 2px 7px;display:flex;align-items:center;gap:8px}
.pn-sec::after{content:'';flex:1;height:1px;background:var(--line2)}
.pitem{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:7px;cursor:pointer;background:var(--surface);transition:.12s}
.pitem:hover:not(.dis){border-color:var(--brand);box-shadow:0 2px 8px var(--tint)}
.pitem.sel{border-color:var(--brand);background:var(--brandl);box-shadow:0 0 0 2px var(--brandm) inset}
.pitem.dis{opacity:.55;cursor:not-allowed;background:var(--canvas)}
.pitem .badge{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-family:var(--fd);font-weight:700;font-size:11px;flex:0 0 auto}
.pitem .badge.cli{background:var(--brandl);color:var(--brandd)}
.pitem .badge.int{background:#EEF2FF;color:var(--violet)}
.pitem .tx{flex:1;min-width:0}
.pitem .pc{font-family:var(--fd);font-weight:700;font-size:11px;letter-spacing:.4px}
.pitem.cli .pc{color:var(--brand)}
.pitem.int .pc{color:var(--violet)}
.pitem .pn2{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pitem .st{font-size:11px;font-weight:600;padding:3px 9px;border-radius:99px;flex:0 0 auto}
.pitem .st.has{background:#EEF1F3;color:var(--muted)}
.pitem .st.avail{background:#E6F5EE;color:var(--green)}
.pitem .st.open{background:var(--brand);color:var(--onbrand)}
.pitem .st.lock{background:#FBEAEA;color:var(--red)}
.pitem.hasflow{border-color:var(--brandm);background:var(--card)}
.pitem.hasflow::before{background:var(--brandm)}
.pitem.hasflow .go{width:16px;height:16px;flex:0 0 auto;color:var(--brand)}
.pitem.hasflow:hover{border-color:var(--brand);background:var(--surface)}
.pitem.sel .st.avail{background:var(--brand);color:var(--onbrand)}
.pnew2{display:flex;align-items:center;gap:11px;padding:11px 12px;border:1.6px dashed var(--brand);border-radius:10px;margin-top:4px;cursor:pointer;color:var(--brandd);font-weight:600;font-size:13px;background:var(--brandl);transition:.12s}
.pnew2:hover{box-shadow:0 2px 8px var(--tinth)}
.pnew2.sel{border-style:solid;background:var(--brand);color:var(--onbrand);box-shadow:0 0 0 2px var(--brandm)}
.pnew2 .badge{width:34px;height:34px;border-radius:9px;background:var(--surface);color:var(--brand);display:grid;place-items:center;font-size:17px;font-weight:700;flex:0 0 auto}
.pn-intform{margin:10px 0 2px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--canvas)}
.pn-intform label{margin-top:0}
.pn-foot{display:flex;gap:10px;padding:14px 22px;border-top:1px solid var(--line2);background:var(--canvas)}
.pn-foot .btn{flex:1;justify-content:center;padding:10px 14px}
.pn-empty{padding:26px 10px;text-align:center;color:var(--muted);font-size:12.5px}

/* ---------- popup Novo fluxo · v2.1 (enquadramento + layout) ---------- */
.modal .box.pnew{width:600px;max-width:94vw;padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:100%;border-radius:16px;box-shadow:0 26px 70px rgba(11,22,32,.30)}
.pn-head{display:flex;align-items:center;gap:14px;padding:18px 24px 15px;border-bottom:1px solid var(--line2);background:var(--card);flex:0 0 auto}
.pn-ic{width:42px;height:42px;border-radius:12px;background:var(--brand);color:var(--onbrand);display:grid;place-items:center;flex:0 0 auto;box-shadow:0 4px 12px var(--glow)}
.pn-ic svg{display:block;width:22px;height:22px;max-width:22px;max-height:22px}
.pn-tt{flex:1;min-width:0}
.pn-eyebrow{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--brandm)}
.pn-tt h3{font-size:17px;line-height:1.25;margin-top:1px}
.pn-tt .sub{font-size:12.5px;color:var(--muted);margin-top:3px}
.pn-x{width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:14px;display:grid;place-items:center;flex:0 0 auto;transition:.12s}
.pn-x:hover{border-color:var(--red);color:var(--red);background:#FBEAEA}
/* miolo rolavel: lista + formulario interno */
.pn-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.pn-tools{display:flex;align-items:center;gap:10px;padding:14px 24px 8px}
.pn-search{position:relative;flex:1}
.pn-search>svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--faint);pointer-events:none}
.pn-search input{padding:9px 12px 9px 36px;border-radius:99px;background:var(--canvas);border:1px solid transparent;font-size:13px}
.pn-search input:focus{background:var(--surface);border-color:var(--brand);outline:none;box-shadow:0 0 0 3px var(--brandl)}
.pn-count{font-size:11.5px;color:var(--faint);white-space:nowrap;font-weight:600}
.pn-list{padding:4px 24px 10px}
.pn-sec{font-size:10.5px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;color:var(--faint);margin:14px 2px 8px;display:flex;align-items:center;gap:8px}
.pn-sec::after{content:"";flex:1;height:1px;background:var(--line2)}
.pitem{position:relative;display:flex;align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;margin-bottom:8px;cursor:pointer;background:var(--surface);transition:.13s}
.pitem::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:3px;background:transparent;transition:.13s}
.pitem:hover:not(.dis){border-color:var(--brand);box-shadow:var(--shadow)}
.pitem:hover:not(.dis)::before{background:var(--brandm)}
.pitem.sel{border-color:var(--brand);background:var(--brandl)}
.pitem.sel::before{background:var(--brand)}
.pitem.dis{opacity:.6;cursor:not-allowed;background:var(--canvas)}
.pitem.dis::before{display:none}
.pitem .badge{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-family:var(--fd);font-weight:700;font-size:11px;flex:0 0 auto}
.pitem .badge.cli{background:var(--brandl);color:var(--brandd)}
.pitem .badge.int{background:#EEF2FF;color:var(--violet)}
.pitem .tx{flex:1;min-width:0}
.pitem .pc{display:block;font-family:var(--fd);font-weight:700;font-size:11px;letter-spacing:.5px}
.pitem.cli .pc{color:var(--brand)}
.pitem.int .pc{color:var(--violet)}
.pitem .pn2{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.pitem .st{font-size:11px;font-weight:600;padding:4px 10px;border-radius:99px;flex:0 0 auto;white-space:nowrap}
.pitem .st.has{background:#EEF1F3;color:var(--muted)}
.pitem .st.avail{background:#E6F5EE;color:var(--green)}
.pitem.sel .st.avail{background:var(--brand);color:var(--onbrand)}
.pitem .chk{width:18px;height:18px;flex:0 0 auto;color:var(--brand);display:none}
.pitem.sel .chk{display:block}
.pnew2{display:flex;align-items:center;gap:12px;padding:13px;border:1.6px dashed var(--brand);border-radius:11px;margin-top:6px;cursor:pointer;color:var(--brandd);font-weight:600;font-size:13.5px;background:var(--brandl);transition:.13s}
.pnew2:hover{box-shadow:var(--shadow)}
.pnew2.sel{border-style:solid;background:var(--brand);color:var(--onbrand);border-color:var(--brand)}
.pnew2 .badge{width:36px;height:36px;border-radius:10px;background:var(--surface);color:var(--brand);display:grid;place-items:center;font-size:18px;font-weight:700;flex:0 0 auto}
.pnew2 .tx{flex:1;min-width:0}
.pnew2 .pn2{display:block;font-size:13.5px;font-weight:600}
.pnew2 .sub2{display:block;font-weight:500;font-size:11.5px;opacity:.8;margin-top:1px}
.pn-intwrap{padding:2px 24px 18px}
.pn-intform{margin:6px 0 0;padding:15px;border:1px solid var(--brandm);border-radius:11px;background:var(--surface)}
.pn-intform label{margin-top:0}
.pn-foot{display:flex;align-items:center;gap:10px;padding:14px 24px;border-top:1px solid var(--line2);background:var(--canvas);flex:0 0 auto}
.pn-foot .hint3{font-size:11.5px;color:var(--muted);flex:1}
.pn-foot .btn{min-width:130px;justify-content:center;padding:10px 16px}
.pn-empty{padding:30px 10px;text-align:center;color:var(--muted);font-size:12.5px}
.hidden{display:none!important}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#141B2E;color:#fff;border:1px solid rgba(255,255,255,.08);
  padding:10px 18px;border-radius:99px;font-size:13px;font-weight:600;z-index:90;box-shadow:0 6px 20px rgba(11,22,32,.3)}
.kbd{font-family:ui-monospace,monospace;background:var(--canvas);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:11px}
.vbanner{background:#FDF3E3;border-bottom:1px solid #F0DDB8;color:var(--amber);font-size:12px;font-weight:600;padding:6px 16px}

/* ---------- fase 2 · execucao ---------- */
.tabs{display:flex;gap:8px;margin:16px 0 10px;flex-wrap:wrap}
.tab{padding:6px 13px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;font-weight:600;cursor:pointer;color:var(--ink2)}
.tab:hover{border-color:var(--brand);color:var(--brand)}
.tab.on{background:var(--brand);border-color:var(--brand);color:var(--onbrand)}
.tab b{font-weight:700;opacity:.85}
.grid.tasks{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.tcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:9px;box-shadow:0 1px 3px rgba(10,15,30,.05);transition:box-shadow .16s,border-color .16s}
.tcard.late{border-color:#F0CACA;box-shadow:0 2px 10px rgba(214,69,69,.10)}
.tcard h3{font-size:15px;line-height:1.3}
.th{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.tmeta{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.tact{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:2px}
.tact input{flex:1;min-width:130px;padding:8px 11px;font-size:12.5px}
.chip.late{background:#FBEAEA;color:var(--red);border-color:#F0CACA}
.nbadge{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-weight:700;border-radius:99px;padding:1px 6px;display:none}
.nbadge.on{display:inline-block}
.npanel{position:fixed;left:236px;bottom:18px;width:340px;max-height:62vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:0 20px 55px rgba(11,22,32,.24);padding:8px;z-index:80}
.nitem{padding:9px 10px;border-radius:9px;font-size:12.5px;cursor:pointer}
.nitem:hover{background:var(--canvas)}
.nitem b{display:block;font-size:12.5px}
.nitem .d{color:var(--faint);font-size:11px;margin-top:2px}
.nitem.unread{background:var(--brandl)}
.runbar{display:flex;align-items:center;gap:10px;background:var(--brandl);border-bottom:1px solid var(--brandm);padding:7px 16px;font-size:12.5px;font-weight:600;color:var(--brandd)}
.runbar.off{background:var(--canvas);border-color:var(--line);color:var(--muted)}
.runbar .rb{flex:0 0 180px;height:7px;background:var(--surface);border-radius:99px;overflow:hidden;border:1px solid var(--brandm)}
.runbar .rb i{display:block;height:100%;background:var(--brand)}
.node.run-pend,.node.run-doing{box-shadow:0 0 0 3px rgba(201,138,11,.45)}
.node.run-done{box-shadow:0 0 0 3px rgba(30,158,90,.45)}
.node.run-bad{box-shadow:0 0 0 3px rgba(214,69,69,.45)}
.runline{display:flex;align-items:center;gap:8px;margin-top:9px}
.runline .rbar{flex:1;height:6px;background:var(--line2);border-radius:99px;overflow:hidden}
.runline .rbar i{display:block;height:100%;background:var(--brand)}

/* ---------- fase 2 · execucao clara + comentarios ---------- */
.runbar .rbhint{font-weight:500;color:var(--muted);font-size:11.5px}
.nbadge.on{display:inline-block}
.tact input{flex:1;min-width:150px;padding:9px 12px}
.tact .btn{padding:8px 14px;font-size:12.5px}
.cmt{margin-top:12px;border-top:1px solid var(--line2);padding-top:11px}
.cmt .cbtn{font-size:12px;font-weight:600;color:var(--brand);cursor:pointer;user-select:none}
.cmt .clist{margin-top:9px;display:flex;flex-direction:column;gap:8px}
.cm{background:var(--canvas);border:1px solid var(--line2);border-radius:10px;padding:9px 11px}
.cm .ch{font-size:11.5px;font-weight:700;color:var(--brandd)}
.cm .cb{font-size:12.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word;margin-top:3px}
.cm .cd{font-size:10.5px;color:var(--faint);margin-top:4px}
.cform{margin-top:9px;display:flex;flex-direction:column;gap:7px}
.cform textarea{width:100%;min-height:70px;resize:vertical;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font-family:inherit;font-size:12.5px;line-height:1.45}
.cform textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brandl)}
.cform .cfoot{display:flex;align-items:center;gap:10px}
.cform .cc{font-size:11px;color:var(--faint);margin-left:auto}
.cform .cc.over{color:var(--red);font-weight:700}
.tchip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;background:#EEF2FF;color:var(--violet)}
.ro{font-size:12px;color:var(--muted);background:var(--canvas);border:1px dashed var(--line);border-radius:9px;padding:8px 11px}
.olist{margin:0;padding-left:18px;font-size:12.5px;color:var(--ink2);line-height:1.6}

/* ---------- fase 2 · travada + linha do tempo ---------- */
.rbstuck{background:#FDF3E7;border:1px solid #F2D9B8;color:#8A5A12;border-radius:99px;padding:2px 11px;font-weight:600}
.rbstuck b{color:#6E4609}
.runbar .rbstuck b{color:#6E4609}
.rlate{color:var(--red)!important}
.stuckline{margin-top:9px;background:#FDF3E7;border:1px solid #F2D9B8;color:#8A5A12;border-radius:10px;padding:8px 11px;font-size:12px;font-weight:600;line-height:1.35}
.stuckline b{color:#6E4609}
.stuckline.late{background:#FBEAEA;border-color:#F0CACA;color:#9B2E2E}
.stuckline.late b{color:#7E1F1F}
.stuckline.done{background:#E6F5EC;border-color:#BFE3C9;color:#176B3F}
.stuckline.done b{color:#0F5830}
.tlbox{width:640px;max-width:calc(100vw - 28px);max-height:100%;display:flex;flex-direction:column;padding:0;overflow:hidden}
.tlhead{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--line2);flex:0 0 auto}
.tlhead h3{font-size:17px;margin:2px 0 0}
.tlhead .sub{color:var(--muted);font-size:11.5px;margin-top:4px}
.tlhead .pn-x{margin-left:auto}
.tlbody{padding:15px 20px;overflow:auto;flex:1 1 auto}
.tlstuck{background:#FBEAEA;border:1px solid #F0CACA;color:#9B2E2E;border-radius:11px;padding:11px 13px;font-size:12.5px;margin-bottom:15px;line-height:1.4}
.tlstuck b{color:#7E1F1F}
.tlev{display:flex;gap:11px;padding-bottom:14px;position:relative}
.tlev::before{content:"";position:absolute;left:13px;top:27px;bottom:0;width:2px;background:var(--line2)}
.tlev:last-child::before{display:none}
.tlic{flex:0 0 27px;height:27px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;background:var(--canvas);border:1px solid var(--line);position:relative;z-index:1}
.tli-start{background:var(--brandl);border-color:var(--brandm);color:var(--brandd)}
.tli-created{background:#EEF2FF;border-color:#D6E0FB;color:var(--blue)}
.tli-done{background:#E6F5EC;border-color:#BFE3C9;color:var(--green)}
.tli-decision{background:#E8EEFF;border-color:#C9D6FB;color:var(--blue)}
.tli-cancel{background:#FBEAEA;border-color:#F0CACA;color:var(--red)}
.tli-end{background:#E8EEFF;border-color:#C9D6FB;color:var(--blue)}
.tli-comment{background:#F1EEFB;border-color:#D9D2F5;color:var(--violet)}
.tltx{flex:1;min-width:0}
.tlt{font-size:12.5px;color:var(--ink2);display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.tlt b{color:var(--ink)}
.tlby{font-size:11px;font-weight:700;color:var(--brandd);background:var(--brandl);border-radius:99px;padding:1px 8px}
.tlat{font-size:10.5px;color:var(--faint)}
.tlbd{font-size:12.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--ink2);background:var(--canvas);border:1px solid var(--line2);border-radius:9px;padding:8px 10px;margin-top:6px}
.tlfoot{display:flex;align-items:center;gap:10px;padding:13px 20px;border-top:1px solid var(--line2);flex:0 0 auto}
.tlfoot .btn{margin-left:auto}

/* ---------- fase final · painel de execucoes, equipe, timeline ---------- */
.tlfoot a.btn{margin-left:auto;text-decoration:none;display:inline-flex;align-items:center}
.tlfoot .muted{margin-right:12px}
.grid.runs{grid-template-columns:repeat(auto-fill,minmax(390px,1fr))}
.rcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:9px;box-shadow:0 1px 3px rgba(10,15,30,.05);transition:box-shadow .16s,border-color .16s}
.rcard.stuck{border-color:#F2D9B8}
.rh{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.rmeta{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.ract{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.ract a.btn{text-decoration:none;display:inline-flex;align-items:center}
.rprog{display:flex;align-items:center;gap:9px}
.rprog .rbar{flex:1;height:7px;background:var(--line2);border-radius:99px;overflow:hidden}
.rprog .rbar i{display:block;height:100%;background:var(--brand)}
.gcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:15px;display:flex;flex-direction:column;gap:10px;box-shadow:0 1px 3px rgba(10,15,30,.05)}
.gcard .gh{display:flex;align-items:baseline;gap:8px}
.gcard .gh b{font-size:14.5px}
.mchips{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.mchip{display:inline-flex;align-items:center;gap:6px;background:var(--brandl);color:var(--brandd);border:1px solid var(--brandm);border-radius:99px;padding:4px 6px 4px 11px;font-size:12px;font-weight:600}
.mchip i{cursor:pointer;font-style:normal;font-weight:700;opacity:.55;padding:0 4px}
.mchip i:hover{opacity:1;color:var(--red)}
.addm{display:flex;gap:8px;align-items:center}
.addm select{flex:1;width:auto}
.card.frm{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;max-width:820px}
.frm .frow{display:flex;flex-direction:column;gap:5px;flex:1;min-width:165px}
.frm label{font-size:11.5px;font-weight:700;color:var(--muted)}
.frm input,.frm select{padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-family:inherit;font-size:12.5px;width:100%}
.frm input:focus,.frm select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brandl)}
table.tb{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:13px}
table.tb th{text-align:left;padding:10px 13px;background:var(--brandl);color:var(--brandd);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--brandm);font-weight:700}
table.tb td{padding:10px 13px;border-bottom:1px solid var(--line2)}
table.tb tr:last-child td{border-bottom:0}

/* ==================== onda 1: Carteira de projetos ==================== */
.stats4{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:12px;margin:14px 0 18px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.stat .lb{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.stat b.vl{display:block;font-family:var(--fd);font-size:24px;font-weight:700;margin:3px 0 1px;letter-spacing:-.01em}
.stat .sn{font-size:11px;color:var(--faint)}
.stat.warn b.vl{color:var(--amber)}
.stat.bad b.vl{color:var(--red)}

.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.toolbar .tabs{margin:0}
.toolbar .sp{flex:1}
.toolbar input,.toolbar select{width:auto;min-width:140px}

.pjgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.pjcard{display:flex;flex-direction:column;gap:8px;transition:.15s}
.pjcard:hover{border-color:var(--brand);box-shadow:var(--shadow)}
.pjcard .pjhead{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pjcard .code{font-family:var(--fd);font-weight:700;color:var(--brand);font-size:12px;letter-spacing:.4px}
.pjcard h3{font-size:15px}
.pjcard .scope{font-size:12px;color:var(--muted)}
.pbar{height:6px;border-radius:99px;background:var(--line2);overflow:hidden}
.pbar i{display:block;height:100%;background:var(--brand);border-radius:99px}
.pbar.warn i{background:var(--amber)}
.pbar.late i{background:var(--red)}
.pjmeta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--ink2)}
.pjmeta .k{color:var(--faint);font-weight:600}
.pjfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line2);padding-top:9px;margin-top:2px}
.av{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brandl);color:var(--brandd);font-size:10px;font-weight:700;vertical-align:middle}
.owner{display:inline-flex;align-items:center;gap:6px}

/* cronograma (gantt simples) */
.gchart{border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden}
.gmonths{display:grid;border-bottom:1px solid var(--line);font-size:11px;color:var(--faint);background:var(--canvas)}
.gmonths span{padding:7px 4px;text-align:center;border-left:1px solid var(--line2)}
.gmonths span:first-child{border-left:0}
.grow2{display:grid;grid-template-columns:210px 1fr;align-items:center;border-top:1px solid var(--line2)}
.grow2:first-of-type{border-top:0}
.grow2 .gl{padding:8px 12px;font-size:12px;line-height:1.3}
.gtrack{position:relative;height:26px;margin:4px 8px 4px 0}
.gbar{position:absolute;top:4px;height:18px;border-radius:6px;background:var(--brand);opacity:.9;display:flex;align-items:center;padding:0 8px;color:var(--onbrand);font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden}
.gbar.warn{background:var(--amber)}
.gbar.late{background:var(--red)}
.gbar.off{background:var(--faint)}
.gtoday{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--accent)}
.gempty{padding:18px;font-size:12px;color:var(--muted)}

/* ==================== onda 1: wizard Novo projeto ==================== */
.crumbs{font-size:12px;color:var(--faint);margin-bottom:4px}
.steps{display:flex;gap:8px;margin:14px 0 18px;flex-wrap:wrap}
.stp{flex:1;min-width:120px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:11.5px;color:var(--muted)}
.stp b{display:block;font-family:var(--fd);font-size:13px;color:inherit}
.stp.on{border-color:var(--brand);background:var(--brandl);color:var(--brandd)}
.stp.done{border-color:#BEE5CF;color:var(--green)}
.tchoices{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:6px 0 4px}
.tchoice{border:1px solid var(--line);border-radius:12px;padding:14px 16px;cursor:pointer;background:var(--surface);transition:.15s}
.tchoice:hover{border-color:var(--brand)}
.tchoice.on{border-color:var(--brand);background:var(--brandl);box-shadow:0 0 0 1px var(--brand)}
.tchoice b{font-family:var(--fd)}
.tchoice p{font-size:12px;color:var(--muted);margin-top:3px}
.flagbox{border:1px dashed var(--line);border-radius:10px;padding:12px 14px;margin-top:12px;background:var(--canvas)}
.flagbox .chk2{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;margin:8px 0;color:var(--ink2)}
.flagbox input{width:auto}
.impact{border-left:3px solid var(--brand);background:var(--brandl);border-radius:0 10px 10px 0;padding:12px 16px;font-size:12.5px;margin-top:14px}
.impact ul{margin:6px 0 0 16px}
.impact li{margin:3px 0}
.wiznav{display:flex;justify-content:space-between;gap:10px;margin-top:18px}
.wizsum{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 18px;font-size:12.5px}
.wizsum .k{color:var(--faint);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}

/* ==================== onda 2: CRM ==================== */
.subnav{display:flex;gap:6px;margin:2px 0 16px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:10px}
.subnav a{padding:6px 12px;border-radius:8px;font-size:12.5px;font-weight:600;color:var(--ink2);text-decoration:none;cursor:pointer}
.subnav a.on{background:var(--brandl);color:var(--brandd)}
.subnav a:hover{background:var(--canvas);color:var(--brandd)}

.pills{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pill{padding:5px 11px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-size:12px;font-weight:600;cursor:pointer;color:var(--ink2)}
.pill:hover{border-color:var(--brand);color:var(--brand)}
.pill.on{background:var(--brand);border-color:var(--brand);color:var(--onbrand)}
.viewchip{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:5px 12px;font-size:12px;cursor:pointer}
.viewchip:hover{border-color:var(--brand)}
.viewchip b{color:var(--brandd)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}
.dot.ativo{background:var(--green)} .dot.em_negociacao{background:var(--amber)}
.dot.reativar{background:var(--accent)} .dot.inativo{background:var(--faint)}

/* funil (kanban) */
.funnel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(238px,1fr);gap:12px;overflow-x:auto;padding-bottom:10px}
.fcol{background:var(--card);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;min-height:220px;max-height:calc(100vh - 330px)}
.fcolh{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.fcolh b{font-family:var(--fd);font-size:13px}
.fcolh .fnum{font-size:10.5px;color:var(--muted)}
.fcolh .fsum{margin-left:auto;font-size:11px;font-weight:700;color:var(--brandd);background:var(--brandl);border-radius:99px;padding:1px 8px}
.fcol.closed{background:var(--card)}
.fbody{padding:9px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}
.opp{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 11px;cursor:pointer;transition:.13s}
.opp:hover{border-color:var(--brand);box-shadow:var(--shadow)}
.opp .t{font-weight:600;font-size:12.5px}
.opp .v{font-family:var(--fd);font-weight:700;color:var(--brandd);font-size:12.5px;margin-top:3px}
.opp .m{font-size:11px;color:var(--faint);margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.opp .stall{color:var(--red);font-weight:600}

/* ficha do contato */
.ficha{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;align-items:start}
@media(max-width:900px){.ficha{grid-template-columns:1fr}}
.kcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.kcard h3{font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:10px}
.kv{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line2);font-size:12.5px}
.kv:last-child{border-bottom:0}
.kv .k{color:var(--faint);font-weight:600;flex:0 0 auto}
.kv .v{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:62%}
.lnk{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line2)}
.lnk:last-child{border-bottom:0}
.lnk .ic{width:26px;height:26px;border-radius:7px;background:var(--brandl);color:var(--brandd);display:grid;place-items:center;font-size:12px;flex:0 0 auto}
.fctimeline{margin-top:4px}
.fcev{display:flex;gap:11px;padding-bottom:14px;position:relative}
.fcev::before{content:"";position:absolute;left:13px;top:28px;bottom:0;width:2px;background:var(--line2)}
.fcev:last-child::before{display:none}
.fcic{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:12px;background:var(--brandl);border:1px solid var(--brandm);color:var(--brandd);position:relative;z-index:1}
.tlt b{color:var(--ink)}

/* ---------- onda 3 · financeiro ---------- */
.defbox{background:var(--brandl);border:1px solid var(--brandm);color:var(--brandd);border-radius:11px;padding:11px 14px;font-size:12.5px;line-height:1.55;margin:0 0 16px}
.defbox b{color:var(--brandd)}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-bottom:14px}
.modcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column}
.modcard h3{display:flex;align-items:center;gap:7px;font-size:13.5px;margin:0 0 2px}
.modcard .sub{font-size:11.5px;color:var(--faint);margin-bottom:10px}
.mviews{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.mv{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--ink2);background:var(--canvas);border:1px solid var(--line);border-radius:8px;padding:4px 9px}
.mv b{font-family:var(--fd);color:var(--brandd);background:var(--surface);border-radius:5px;padding:0 5px;font-size:10.5px}
.modcard .btnrow{margin-top:auto;display:flex;align-items:center;gap:10px}
.modcard .mini{font-size:11px;color:var(--faint)}
.journey{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px;padding:4px 0 8px}
.jstep{flex:1 1 118px;min-width:112px;max-width:230px;background:var(--canvas);border:1px solid var(--line);border-radius:11px;padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.jstep.sub{background:var(--surface);border-color:var(--brandm)}
.jstep.tot{background:var(--brandl);border-color:var(--brandm)}
.jstep .jl{font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.jstep .jv{font-family:var(--fd);font-size:15px}
.jstep .jv.neg{color:var(--red)}
.jstep .jv.pos{color:var(--green)}
.jar{align-self:center;color:var(--faint);font-weight:700;font-size:14px}
.mtbl{width:100%;border-collapse:collapse;font-size:12px}
.mtbl th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px}
.mtbl td{padding:6px 8px;border-bottom:1px solid var(--line2)}
.mtbl tr:last-child td{border-bottom:0}
.mtbl td.num,.mtbl th.num{text-align:right}
.stat.good b.vl{color:var(--green)}

/* ---------- onda 4 · orçamento ---------- */
.row2{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap}
.row2 .kcard{margin-bottom:0;min-width:0;display:flex;flex-direction:column}
.grow2{flex:1 1 420px;min-width:0}
.origgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2px 18px}
.stats3{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:14px 0 16px}
.vstrip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--canvas);border:1px solid var(--line);border-radius:11px;padding:8px 12px}
.vnow{font-size:12.5px;font-weight:700;color:var(--brandd);display:inline-flex;align-items:center;gap:5px}
.vmeta{font-size:11px;color:var(--faint)}
.vchip{font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);cursor:pointer}
.vchip:hover{border-color:var(--brand);color:var(--brand)}
.vchip.on{background:var(--brandl);color:var(--brandd);border-color:var(--brandm)}
.mtx{width:100%;border-collapse:collapse;font-size:11.5px;white-space:nowrap}
.mtx th{position:sticky;top:0;background:var(--brandl);text-align:right;font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px;z-index:2}
.mtx th.ln{text-align:left;left:0;z-index:3}
.mtx td{padding:5px 8px;border-bottom:1px solid var(--line2)}
.mtx td.ln{text-align:left;font-weight:600;color:var(--ink2);position:sticky;left:0;background:var(--surface);z-index:1;max-width:190px;overflow:hidden;text-overflow:ellipsis}
.mtx td.num{text-align:right;font-variant-numeric:tabular-nums}
.mtx td.clk{cursor:pointer;border-radius:5px}
.mtx td.clk:hover{background:var(--brandl);color:var(--brandd)}
.mtx td.ro{color:var(--faint)}
.mtx tr.cat td{background:var(--canvas);font-weight:700;color:var(--ink2)}
.mtx tr.tot td{background:var(--brandl);font-weight:700;color:var(--brandd)}
.mtx tr.tot td.ln{background:var(--brandl)}
.orow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid var(--line2);font-size:12px}
.orow:last-child{border-bottom:0}
.orow b{font-weight:600}
.flag{display:flex;align-items:flex-start;gap:9px;padding:8px 2px;border-bottom:1px solid var(--line2);font-size:12.5px;cursor:pointer}
.flag:last-of-type{border-bottom:0}
.flag input[type=checkbox]{flex:0 0 16px;width:16px;height:16px;margin:2px 0 0;padding:0;border-radius:4px;accent-color:var(--brand);cursor:pointer}
.flag span{flex:1;min-width:0;line-height:1.35}
.flag span em{display:block;font-style:normal;color:var(--muted);font-size:11px;margin-top:1px}
.flag span .fcode{color:var(--brandd)}
.flag:hover span b{color:var(--brandd)}
.clkrow{cursor:pointer}
.clkrow:hover td{background:var(--brandl)}
table.tb tr.cat td{background:var(--canvas);font-weight:700}
table.tb tr.tot td{background:var(--brandl);font-weight:700;color:var(--brandd)}
.bars{display:flex;align-items:flex-end;gap:10px;height:170px;padding:8px 2px 0}
.bcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}
.bcol span{font-size:10px;color:var(--muted)}
.bpair{display:flex;align-items:flex-end;gap:2px;height:100%;width:100%;justify-content:center}
.bpair i{display:block;width:13px;border-radius:4px 4px 0 0;min-height:2px;transition:opacity .12s}
.bb{background:var(--ch4)}.br{background:var(--ch2)}.bcol:hover .bpair i{opacity:.82}
.legend{display:flex;gap:14px;font-size:11px;color:var(--muted);margin-top:8px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px}
.projrow{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pcell{background:var(--canvas);border:1px solid var(--line);border-radius:10px;padding:10px 12px;text-align:center}
.pcell .pl{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase}
.pcell b{display:block;font-family:var(--fd);font-size:16px;margin:3px 0 6px}
.pbar2{height:6px;border-radius:99px;background:var(--line2);overflow:hidden}
.pbar2 i{display:block;height:100%;background:var(--brand);border-radius:99px}
.pbar2 i.low{background:var(--red)}
.fld{margin-bottom:10px}
.fld label{display:block}
.bx2{background:var(--canvas);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:12.5px}

/* ---------- onda 4 · ajustes de layout (v2) ---------- */
.khead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.khead h3{margin:0}
.vstrip .vsel{width:auto;min-width:190px;max-width:340px;padding:6px 10px;font-size:12.5px;font-weight:600;color:var(--ink2)}
.vstrip .vsel:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brandl)}
.tb th.pick,.tb td.pick{width:40px;text-align:center;padding-left:13px;padding-right:4px}
.pchk{width:16px;height:16px;padding:0;margin:0;border-radius:4px;accent-color:var(--brand);cursor:pointer}
.pin{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;background:var(--brandl);color:var(--brandd);font-size:11px;font-weight:700}
.modal .box.wedit{width:min(1120px,96vw);padding:0;display:flex;flex-direction:column;max-height:86vh;overflow:hidden;border-radius:14px}
.wedit .mhead{padding:18px 22px 12px;border-bottom:1px solid var(--line)}
.wedit .mhead h3{margin:0 0 3px}
.wedit .ebody{overflow:auto;padding:2px 22px 6px}
.wedit .mfoot{display:flex;align-items:center;gap:8px;padding:13px 22px;border-top:1px solid var(--line);background:var(--canvas)}
table.etab{width:100%;border-collapse:collapse;font-size:12.5px}
table.etab th{position:sticky;top:0;background:var(--brandl);text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:9px 8px;border-bottom:1px solid var(--line);z-index:1}
table.etab td{padding:5px 8px;border-bottom:1px solid var(--line2)}
table.etab tr.egrp td{background:var(--canvas);font-weight:700;color:var(--ink2);padding:8px;border-top:1px solid var(--line)}
table.etab td.elbl{color:var(--muted);width:130px;text-transform:capitalize}
table.etab td.eval input{width:100%;text-align:right;padding:7px 10px;font-variant-numeric:tabular-nums}
table.etab td.eval input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brandl)}

/* ---------- onda 4 · ajustes de layout (v3) ---------- */
.mtx tr.cat{cursor:pointer}
.mtx tr.cat:hover td{background:var(--brandl)}
.mtx tr.cat .car{display:inline-block;width:15px;color:var(--brand);font-weight:700}
.mtx td.ln.lv2{padding-left:24px}
.wedit .mhrow{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.ysel{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ink2);white-space:nowrap}
.ysel select{width:auto;min-width:96px;padding:6px 9px;font-size:12.5px;font-weight:600;color:var(--ink2)}
.ysel select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brandl)}
table.etab th.num,table.etab td.num{text-align:right}
table.etab td.lname{min-width:150px;font-weight:600;color:var(--ink2)}
table.etab td.lname .mutchip{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--canvas);color:var(--muted);font-size:10px;font-weight:600}
table.etab td.eval input{width:58px;padding:5px 6px;font-size:11.5px}
table.etab th,table.etab td{padding-left:6px;padding-right:6px}
table.etab td.ro{color:var(--muted)}

/* ---------- onda 5 · DRE ---------- */
.jflow{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.jstep{flex:1;min-width:118px;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:9px 11px}
.jstep.sub{background:var(--brandl);border-color:transparent}
.jstep.total{background:var(--ch1);color:#fff}
.jstep .jl{display:block;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px}
.jstep.sub .jl{color:var(--brandd)}
.jstep.total .jl{color:rgba(255,255,255,.72)}
.jstep b{display:block;font:700 14px var(--fd)}
.mrow{display:flex;align-items:center;gap:10px;padding:5px 0}
.mrow .mlbl{flex:0 0 150px;font-size:12.5px;font-weight:600;color:var(--ink2)}
.mbarwrap{flex:1;height:9px;background:var(--canvas);border-radius:6px;overflow:hidden}
.mbarwrap i{display:block;height:100%;background:var(--brand);border-radius:6px}
tr.ccdet td{background:var(--canvas);padding:8px 14px}

/* ---------- onda 5 · refinos de layout (v2) ---------- */
#geTab td.ln{white-space:normal;overflow:visible;text-overflow:clip;min-width:212px}
#geTab td:last-child,#geTab th:last-child{white-space:normal;width:160px;color:var(--muted)}
.mrow{display:grid;grid-template-columns:150px 1fr 64px;align-items:center;gap:10px}
.mrow .mlbl{white-space:normal;line-height:1.25}
.mbarwrap{min-width:0}

/* ---------- onda 5 · margens do painel (v3) ---------- */
.mblock{position:relative;padding:7px 0;border-bottom:1px solid var(--line2)}
.mblock:last-of-type{border-bottom:0}
.mblock .mlbl{font-size:12px;font-weight:600;color:var(--ink2)}
.mblock .mval{float:right;font:700 12.5px var(--fd);color:var(--ink)}
.mblock .mbarwrap{display:block;clear:both;margin-top:6px;height:8px;background:var(--canvas);border-radius:6px;overflow:hidden}
.mblock .mbarwrap i{display:block;height:100%;background:var(--ch2);border-radius:6px}

/* onda 6 · fluxo de caixa */
.vstrip{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--brandl);border:1px solid var(--brandm);border-radius:12px;padding:10px 12px}
.vstrip .vsel{width:auto}
.vstrip .vnow{font-weight:600}
.vstrip .vmeta{color:var(--faint);font-size:12px}

/* onda 6 · gráfico do saldo projetado (v2) */
.cxchart{position:relative;display:flex;align-items:flex-end;gap:8px;padding:0 6px 0 52px;border-bottom:1px solid var(--line2);margin:6px 0 26px}
.cxchart .cxcol{flex:1;min-width:0;height:100%;position:relative}
.cxb{position:absolute;width:13px;border-radius:4px 4px 0 0}
.cxb.base{background:var(--ch2);left:calc(50% - 16px)}
.cxb.estr{background:var(--accent);left:calc(50% + 2px)}
.cxlb{position:absolute;left:0;right:0;bottom:-19px;text-align:center;font-size:10.5px;font-weight:600;color:var(--muted)}
.cxzero{position:absolute;left:52px;right:6px;height:1px;background:var(--line)}
.cxcap{position:absolute;left:4px;font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums}
.cxcap.top{top:-3px}
.cxcap.mid{color:var(--muted)}
.cxcap.bot{bottom:-4px}
.cxsw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px}
.cxsw.base{background:var(--brand)}
.cxsw.estr{background:var(--accent)}

/* ===== Exys · marca na sidebar ===== */
.brand img{height:26px;width:auto;display:block}
.brand .sub{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:600;line-height:1.2}
.navit .ni{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.navit .nbadge{margin-left:auto}

/* ===== Exys · login ===== */
.authwrap{min-height:100vh;display:grid;grid-template-columns:1.02fr .98fr}
.authart{position:relative;background:#0A0F1E;color:#fff;padding:44px 52px;display:flex;flex-direction:column;gap:20px;overflow:hidden}
.authart .glow{position:absolute;inset:0;background:radial-gradient(58% 62% at 22% 96%,rgba(0,209,178,.40),transparent 68%),radial-gradient(52% 58% at 88% 12%,rgba(76,91,255,.36),transparent 70%);pointer-events:none}
.authart .lg{height:32px;width:auto;position:relative;z-index:1}
.authart .pill{display:inline-flex;gap:8px;align-items:center;position:relative;z-index:1;font-size:10.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:#00D1B2;border:1px solid rgba(0,209,178,.34);background:rgba(0,209,178,.09);padding:5px 12px;border-radius:99px;width:max-content}
.authart h2{font-family:var(--fd);font-size:33px;line-height:1.14;font-weight:700;letter-spacing:-.022em;position:relative;z-index:1;margin-top:auto;max-width:16ch}
.authart p{color:#A9B4C7;font-size:14px;line-height:1.62;position:relative;z-index:1;max-width:44ch}
.authart .ft{position:relative;z-index:1;font-size:12px;color:#6B7A93;letter-spacing:.03em;margin-top:6px}
.authside{display:grid;place-items:center;padding:40px 24px;background:var(--canvas)}
.authcard2{width:100%;max-width:396px}
.authcard2 h1{font-size:22px;letter-spacing:-.02em}
.authcard2 .sub{color:var(--muted);font-size:13px;margin-top:5px;margin-bottom:6px}
.authcard2 .hint{margin-top:18px;font-size:12px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;line-height:1.75}
.authcard2 .hint code{font-family:var(--fm);font-size:11.5px;background:var(--brandl);color:var(--brandd);padding:1px 5px;border-radius:5px}
.authmob{display:none}
@media(max-width:880px){.authwrap{grid-template-columns:1fr}.authart{display:none}.authmob{display:flex;justify-content:center;padding:30px 24px 0}.authside{padding:22px 24px 40px}}

/* ===== Exys · seletor de paleta (Configuracoes -> Aparencia) ===== */
.palgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.palcard{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:.15s}
.palcard:hover{border-color:var(--brand);box-shadow:var(--shadow)}
.palcard.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brandl) inset}
.palsw{display:flex;gap:6px}
.palsw i{width:22px;height:22px;border-radius:7px;display:block;border:1px solid rgba(10,15,30,.08)}
.palcard b{font-size:13px}

/* ===== melhorias leves sobre o modelo validado ===== */
.grid.flows{align-items:stretch}
.fcard{display:flex;flex-direction:column;min-height:148px}
.fcard .meta{margin-top:auto;padding-top:10px}
.btn.pri{box-shadow:0 1px 2px rgba(10,15,30,.10),0 6px 16px -8px var(--glow)}
.btn svg{width:15px;height:15px;flex:0 0 auto}
table.tb td.num,table.tb th.num{text-align:right;font-variant-numeric:tabular-nums}
table.tb tr.cxsec td{background:var(--canvas);color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:7px 13px}
table.tb tr.cxsub td{background:var(--canvas);font-weight:600;color:var(--ink2)}
table.tb tr.cxgrp td{font-weight:600}
.chip.pendente{color:var(--amberd)}
@media(max-width:900px){.shell{grid-template-columns:1fr;align-items:stretch}.side{position:static;height:auto;overflow:visible}}

/* ===== onda 7.4 · modernizacao do layout ===== */
/* menu lateral com secoes organizadas */
.navsec{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:16px 10px 5px;display:flex;align-items:center;gap:8px}
.navsec::after{content:"";flex:1;height:1px;background:var(--line2)}
.navsec:first-of-type{padding-top:10px}
.navit{border-radius:9px;padding:7px 10px}
.navit.on{box-shadow:inset 2.5px 0 0 var(--brand)}
/* hover consistente em todo card/chart: uma sombra neutra, sem cor */
.card,.kcard,.modcard,.stat,.gcard{transition:box-shadow .16s,border-color .16s}
.card:hover,.kcard:hover,.modcard:hover,.stat:hover,.gcard:hover{box-shadow:var(--shadow)}
.tcard:hover,.rcard:hover{border-color:var(--brandm);box-shadow:var(--shadow)}
/* barras de progresso mais finas e elegantes */
.rprog .rbar,.runline .rbar{height:6px}
.pbar,.pbar2{background:var(--line2)}
/* funil: cabecalho de coluna em cartao e visao Projecao em grade harmonizada */
.fcolh{background:var(--surface);border-bottom:1px solid var(--line);border-radius:12px 12px 0 0}
.fcol.closed .fcolh{background:transparent}
#v-fore #fore{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;align-items:stretch}
#v-fore #fore .kcard{margin-bottom:0!important;display:flex;flex-direction:column}
#v-fore #fore .kcard:last-child{grid-column:1/-1}
#v-fore .pbar{height:8px;margin-top:auto}
/* legendas dos graficos */
.legend i{border-radius:3px}
/* login: destaques do produto */
.authfeats{position:relative;z-index:1;display:flex;flex-direction:column;gap:11px;margin-top:8px}
.authfeats .af{display:flex;align-items:center;gap:11px;font-size:13.5px;color:#C9D2E2}
.authfeats .af svg{width:17px;height:17px;flex:0 0 auto;color:#00D1B2;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.authfeats .af b{color:#fff;font-weight:600}

/* ===================== onda 7.5 · fundacao visual ===================== */
/* cards em azul-claro harmonico + hover unico */
.tcard,.rcard,.gcard{background:var(--card)}
.fcol{background:var(--card)}
.opp{background:var(--surface)}
.card,.kcard,.modcard,.tcard,.rcard,.gcard,.opp,.pjcard{transition:box-shadow .18s,border-color .18s,transform .18s}
.card:hover,.kcard:hover,.modcard:hover,.tcard:hover,.rcard:hover,.gcard:hover,.opp:hover{box-shadow:var(--shadow);border-color:var(--brandm)}
.fcard:hover,.pjcard:hover,.opp:hover{transform:translateY(-1px)}

/* textos que nao quebram */
.btn,.tab,.pill,.chip,.vchip,.mv,.fsum{white-space:nowrap}
.brand{flex-direction:column;align-items:flex-start;gap:6px}
.brand .sub{white-space:nowrap;font-size:9.5px}
.fcolh{flex-wrap:nowrap}
.fcolh b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fcolh .fnum{white-space:nowrap}

/* cards proporcionais ao conteudo */
.grid.flows{align-items:start}
.fcard{min-height:0}
.funnel{align-items:start;grid-auto-columns:minmax(205px,1fr)}
.fcol{min-height:0}

/* iconografia unica (mesma familia do menu) */
.i{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.btn .i,.tab .i{vertical-align:0}
.btn.sm .i{width:14px;height:14px}
.tab{display:inline-flex;align-items:center;gap:6px}
.modcard h3 .i,.kcard h3 .i{width:17px;height:17px;color:var(--brand)}
.car .i{width:13px;height:13px}
.jar .i{width:14px;height:14px}
.pn-x .i{width:15px;height:15px}
.mchip i .i{width:11px;height:11px;vertical-align:-1px}
.fcic .i,.lnk .ic .i,.tlic .i{width:14px;height:14px}
.stall .i{width:12px;height:12px;vertical-align:-2px}
.pnew2 .badge .i{width:18px;height:18px}

/* KPIs de topo com cor (escala tonal) + mini-graficos */
.stat{position:relative;overflow:hidden;border:0;color:#fff;background:linear-gradient(135deg,var(--ch1),var(--brandh));box-shadow:0 1px 2px rgba(10,15,30,.08);transition:transform .18s,box-shadow .18s}
.stat::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-55px;top:-70px;background:rgba(255,255,255,.07);pointer-events:none}
.stat:nth-child(4n+2){background:linear-gradient(135deg,var(--brandh),var(--ch2))}
.stat:nth-child(4n+3){background:linear-gradient(135deg,var(--ch2),var(--ch3))}
.stat:nth-child(4n+4){background:linear-gradient(135deg,#141B2E,#2A3656)}
.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.stat .lb{color:rgba(255,255,255,.8)}
.stat b.vl,.stat.warn b.vl,.stat.bad b.vl,.stat.good b.vl{color:#fff}
.stat .sn{color:rgba(255,255,255,.76)}
.stat.bad{background:linear-gradient(135deg,#B4232A,#E5484D)!important}
.stat.warn{background:linear-gradient(135deg,#9A5C05,#D68A12)!important}
.stat.viz{padding-right:88px}
.stat .kviz{position:absolute;right:16px;top:50%;transform:translateY(-50%);z-index:1}
.kring circle{fill:none;stroke-width:6}
.kring .tr{stroke:rgba(255,255,255,.22)}
.kring .ar{stroke:#fff;stroke-linecap:round;transition:stroke-dashoffset .6s}
.kviz text{fill:#fff;font:700 12px var(--fd);text-anchor:middle}
.kgauge path{fill:none;stroke-width:7;stroke-linecap:round}
.kgauge .tr{stroke:rgba(255,255,255,.22)}
.kgauge .ar{stroke:#fff}

/* chips internos sem cor chumbada */
.stuckline.ok{background:#E6F5EC;border-color:#BFE3C9;color:#176B3F}
.tchip.grp{background:var(--canvas);color:var(--muted)}
.infobar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--brandl);border-color:var(--brandm)}
.infobar>.i{width:22px;height:22px;color:var(--brand)}

/* alternador de tema na sidebar */
.thtgl{display:flex;align-items:center;gap:8px;width:100%;margin:8px 0 6px;padding:7px 10px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);font-size:12px;font-weight:600}
.thtgl:hover{border-color:var(--brand);color:var(--brand)}
.lg-dark{display:none!important}

/* ===================== MODO ESCURO ===================== */
:root[data-theme="dark"]{color-scheme:dark;
  --canvas:#0A0F1C; --surface:#111829; --card:#151D33; --line:#243051; --line2:#1B2440;
  --ink:#E9EDF7; --ink2:#C9D1E3; --muted:#97A3BE; --faint:#6F7B98;
  --brandl:#1B2350; --brandd:#B4BBFF; --brandm:#3A4590;
  --tint:rgba(110,124,255,.10); --tinth:rgba(110,124,255,.20);
  --ch4:#3A45A8; --ch5:#262F72;
  --shadow:0 10px 30px rgba(0,0,0,.5)}
[data-theme="dark"] .lg-light{display:none!important}
[data-theme="dark"] .lg-dark{display:block!important}
[data-theme="dark"] .chip.pendente,[data-theme="dark"] .vbanner,[data-theme="dark"] .rbstuck{background:rgba(245,166,35,.14);color:#F5B94A;border-color:rgba(245,166,35,.32)}
[data-theme="dark"] .chip.aceito{background:rgba(31,169,113,.15);color:#4CD39A;border-color:rgba(31,169,113,.32)}
[data-theme="dark"] .chip.recusado,[data-theme="dark"] .chip.late,[data-theme="dark"] .err{background:rgba(229,72,77,.15);color:#FF8589;border-color:rgba(229,72,77,.34)}
[data-theme="dark"] .chip.expirado{background:rgba(151,163,190,.12);color:var(--muted)}
[data-theme="dark"] .chip.ver,[data-theme="dark"] .tchip,[data-theme="dark"] .pitem .badge.int{background:rgba(107,91,210,.22);color:#BDB3F7}
[data-theme="dark"] .stuckline{background:rgba(245,166,35,.12);border-color:rgba(245,166,35,.3);color:#F5C066}
[data-theme="dark"] .stuckline b{color:#FFD58A}
[data-theme="dark"] .stuckline.late,[data-theme="dark"] .tlstuck{background:rgba(229,72,77,.13);border-color:rgba(229,72,77,.32);color:#FF9A9D}
[data-theme="dark"] .stuckline.late b,[data-theme="dark"] .tlstuck b{color:#FFC1C3}
[data-theme="dark"] .stuckline.done,[data-theme="dark"] .stuckline.ok{background:rgba(31,169,113,.13);border-color:rgba(31,169,113,.3);color:#6FDDAE}
[data-theme="dark"] .stuckline.done b{color:#9BEBC8}
[data-theme="dark"] .pitem .st.has{background:var(--line2);color:var(--muted)}
[data-theme="dark"] .pitem .st.avail{background:rgba(31,169,113,.15);color:#4CD39A}
[data-theme="dark"] .pitem .st.lock{background:rgba(229,72,77,.15);color:#FF8589}
[data-theme="dark"] .tli-created,[data-theme="dark"] .tli-decision,[data-theme="dark"] .tli-end{background:rgba(46,107,230,.18);border-color:rgba(46,107,230,.38);color:#8FB4FF}
[data-theme="dark"] .tli-done{background:rgba(31,169,113,.15);border-color:rgba(31,169,113,.34);color:#4CD39A}
[data-theme="dark"] .tli-cancel{background:rgba(229,72,77,.15);border-color:rgba(229,72,77,.34);color:#FF8589}
[data-theme="dark"] .tli-comment{background:rgba(107,91,210,.2);border-color:rgba(107,91,210,.4);color:#BDB3F7}
[data-theme="dark"] .modal{background:rgba(0,0,0,.6)}
[data-theme="dark"] .stat:nth-child(4n+4){background:linear-gradient(135deg,#1E2846,#33416A)}
[data-theme="dark"] .authside{background:var(--canvas)}
[data-theme="dark"] input::placeholder,[data-theme="dark"] textarea::placeholder{color:var(--faint)}
[data-theme="dark"] .cxboard .cxsub>td{background:var(--canvas)!important}

/* ===== Workspace · Hoje ===== */
.wsgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px;align-items:start}
.khead h3{display:flex;align-items:center;gap:8px}
.wsrow{display:flex;align-items:center;gap:11px;padding:9px 4px;border-bottom:1px solid var(--line2);color:var(--ink2);font-size:13px;border-radius:8px}
.wsrow:last-child{border-bottom:0}
a.wsrow:hover{background:var(--surface)}
.wsrow>.i{width:17px;height:17px;color:var(--brand);flex:0 0 auto}
.wsrow .tx{flex:1;min-width:0;line-height:1.35}
.wsrow .tx b{color:var(--ink);font-weight:600}
.wsrow .mt{font-size:11.5px;color:var(--faint);white-space:nowrap}
.wsbar{display:block;height:5px;background:var(--line2);border-radius:99px;overflow:hidden;margin-top:6px;max-width:260px}
.wsbar i{display:block;height:100%;background:var(--ch2);border-radius:99px}
.wsempty{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12.5px;padding:14px 4px}
.wsempty .i{color:var(--green);width:18px;height:18px}
.wsmods{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.wsmod{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:12.5px;font-weight:600;color:var(--ink2);cursor:pointer;white-space:nowrap}
.wsmod .i{color:var(--brand);width:16px;height:16px}
a.wsmod:hover,.wsmod:not(.off):hover{border-color:var(--brand);color:var(--brand)}
.wsmod.off{opacity:.6;cursor:default}
.wsmod em{margin-left:auto;font-style:normal;font-size:10px;color:var(--faint);font-weight:600}
/* funil: nome da etapa em linha propria, meta abaixo (sem corte) */
.fcolh{display:grid;grid-template-columns:1fr auto;grid-template-areas:"nm pc" "mt mt";row-gap:2px;align-items:center}
.fcolh b{grid-area:nm;white-space:normal;overflow:visible}
.fcolh .fnum{grid-area:mt}
.fcolh .fsum{grid-area:pc;margin-left:0}
/* workspace: chips de submenu sem sobreposicao */
.wsmods{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.wsmod{white-space:normal;line-height:1.25;min-height:40px}
.wsmod em{flex:0 0 auto;white-space:nowrap}

/* picker em lista pesquisavel (onda 11) */
.slbox{border:1px solid var(--line);border-radius:11px;background:var(--surface);overflow:hidden}
.slsearch{display:flex;align-items:center;gap:8px;padding:8px 11px;border-bottom:1px solid var(--line)}
.slsearch svg{width:15px;height:15px;stroke:var(--faint);flex:none}
.slsearch input{border:0;outline:0;background:transparent;color:inherit;flex:1;font:inherit;padding:2px 0;min-width:0}
.sllist{max-height:176px;overflow:auto}
.slrow{display:flex;align-items:center;gap:9px;padding:8px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid var(--line2)}
.slrow:last-child{border-bottom:0}
.slrow:hover{background:var(--brandl)}
.slrow .slname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slrow .slsub{font-size:11px;color:var(--faint)}
.slrow .slck{width:18px;height:18px;border:1.5px solid var(--line);border-radius:6px;display:flex;align-items:center;justify-content:center;flex:none;color:transparent}
.slrow .slck svg{width:12px;height:12px;stroke:currentColor}
.slrow.on{background:var(--brandl)}
.slrow.on .slck{background:var(--brand);border-color:var(--brand);color:#fff}

/* ondas 14-17: espaco pessoal, fluxo livre, produtividade, gerencial */
.ffsteps{display:flex;flex-direction:column;gap:8px}
.ffstep{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.ffstep.on{opacity:.62}
.ffstep.on .fflb{text-decoration:line-through}
.ffstep .n{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);font:700 11px var(--fd);flex:0 0 auto}
.ffstep.on .n{background:var(--brand);color:var(--onbrand);border-color:var(--brand)}
.fflb{flex:1;min-width:0;font-size:13px;font-weight:600}
.ffacts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.cardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.minicard{display:block;border:1px solid var(--line);border-radius:12px;padding:14px 14px 12px;background:var(--surface);position:relative;color:var(--ink2)}
a.minicard:hover{border-color:var(--brand);color:var(--ink)}
.minicard .i{width:20px;height:20px;color:var(--brand);margin-bottom:10px}
.metric{font:700 26px/1 var(--fd);letter-spacing:-.02em;color:var(--ink)}
.mdrop{position:absolute;top:8px;right:8px;color:var(--faint);cursor:pointer;line-height:0}
.mdrop:hover{color:var(--red)}
.barchart{display:flex;align-items:flex-end;gap:12px;height:186px;padding:10px 4px 0;border-bottom:1px solid var(--line)}
.barcol{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px}
.barcol .bs{width:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;flex:1;max-width:46px;margin:0 auto}
.barcol .b{border-radius:4px 4px 0 0;min-height:2px}
.barcol .b.real{background:var(--brand)}
.barcol .b.pipe{background:var(--brandm,#7FD9C7)}
.barcol .bl{font-size:10px;color:var(--faint);white-space:nowrap}
.leg{display:flex;gap:14px;font-size:11px;color:var(--muted);margin-top:8px}
.leg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}

/* botao discreto (acoes secundarias em cartoes) */
.btn.ghost{background:transparent;border-color:transparent;color:var(--brand)}
.btn.ghost:hover{background:var(--brandl);border-color:var(--brandm);color:var(--brandh)}

/* rodape do cartao de projeto: evita colisao entre nome do cliente e botoes */
.pjfoot{flex-wrap:wrap}
.pjfoot>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pjfoot>span:last-child{flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}

/* rodape do cartao: apenas acoes, alinhadas a direita e com quebra */
.pjfoot{flex-wrap:wrap;justify-content:flex-end}
.pjfoot .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}
.btn.ghost{background:transparent;border-color:var(--brandm);color:var(--brand)}
.btn.ghost:hover{background:var(--brandl);border-color:var(--brand);color:var(--brandh)}
.pjfoot .acts .btn{flex:0 0 auto}

/* ---- Coletas de campo (Onda 19) ---- */
.grid.col{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}
.cit{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 15px;display:flex;flex-direction:column;gap:9px;box-shadow:0 1px 3px rgba(10,15,30,.05);transition:box-shadow .16s,border-color .16s}
.cit.late{border-color:#F0CACA;box-shadow:0 2px 10px rgba(214,69,69,.10)}
.cit:hover{border-color:var(--brandm);box-shadow:var(--shadow)}
.cit .ch2{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.cit h3{font-size:15px;margin:0;line-height:1.3}
.cit .addr{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px}
.cit .addr svg{width:13px;height:13px;flex:0 0 auto}
.cit .fotos{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cit .fotos img{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:pointer}
.cit .fchip,.fwrap{position:relative;display:inline-flex}
.fchip{font-size:11px;font-weight:700;padding:7px 10px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--brandd);text-decoration:none}
.fwrap img{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.fwrap b,.fchip b{position:absolute;top:-6px;right:-6px;width:17px;height:17px;border-radius:50%;background:var(--red);color:#fff;font-size:11px;display:grid;place-items:center;cursor:pointer;line-height:1}
.cform2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cform2 label,.modal .box label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:10px 0 4px}
.modal .box select,.modal .box input{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-family:inherit;font-size:12.5px;background:var(--surface);color:var(--ink)}
@media(max-width:560px){.cform2{grid-template-columns:1fr}}

/* ---------- Território · modal de marcação (correção Onda 19b) ---------- */
.modal{z-index:3000}
.modal .box{max-height:calc(100vh - 44px)}
.mktypes{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.mktype{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--line);
  border-radius:99px;background:var(--surface);color:var(--ink);font-family:inherit;font-size:12px;cursor:pointer;line-height:1}
.mktype:hover{border-color:var(--brandm);background:var(--brandl)}
.mktype.on{border-color:var(--brand);background:var(--brandl);color:var(--brand);font-weight:600}
.mktype .sw{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 auto}

/* ---------- Formulários de campo (Onda 20) ---------- */
.fforms{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.fcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px}
.fcard h3{font-size:14px;margin:2px 0 0}
.fcard .ftop{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.fcard .fmeta{font-size:11.5px;color:var(--muted)}
.fcard .tact{margin-top:auto;display:flex;gap:6px;flex-wrap:wrap;padding-top:8px}
.modal .box.wbuild{width:min(900px,97vw);padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:92vh}
.wbuild .wb-body{padding:16px 22px 8px;overflow:auto}
.wbuild .wb-foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 22px;border-top:1px solid var(--line2);background:var(--surface)}
.qrow{border:1px solid var(--line2);border-radius:10px;padding:10px;background:var(--card);margin-bottom:8px;display:grid;grid-template-columns:170px 1fr auto;gap:8px;align-items:end}
.qrow .qspan{grid-column:1/4}
.qrow .qacts{display:flex;gap:4px}
.qbox{border:1px dashed var(--line);border-radius:10px;padding:12px;margin-top:8px;background:var(--card)}
.qel{margin-bottom:10px}
.qel label{font-weight:600}
.qel .req{color:var(--red)}
.qmedia{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.qmedia .fwrap img{width:56px;height:56px}

/* ===== App de campo (Onda 21) ===== */
.csec{display:block}
.netbar{display:flex;gap:9px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);margin:2px 0 12px;font-size:12.5px;color:var(--muted)}
.netbar .dot{width:9px;height:9px;border-radius:50%;background:#22B07D;flex:0 0 auto}
.netbar.off{border-color:#F2C9A0;background:#FFF6EC}
.netbar.off .dot{background:#E8892B}
.packrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.pitem{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:11px 12px}
.pitem b{display:block;font-size:13px;margin-bottom:2px}
.pitem .pv{font-size:11px;color:var(--muted)}
.qitem{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 12px;margin-bottom:8px}
.qitem .qi{width:34px;height:34px;border-radius:9px;background:var(--brandl);color:var(--brand);display:grid;place-items:center;flex:0 0 auto}
.qitem .qt{flex:1;min-width:0}
.qitem .qt b{font-size:13px}
.qitem .qt .d{font-size:11.5px;color:var(--muted)}
.qitem.err{border-color:#F3B0B0;background:#FFF6F6}
.qchip{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.qchip.ok{color:#1E8E5A;border-color:#B7E3CB;background:#F1FBF6}
.qchip.pend{color:#8A6D1F;border-color:#EEDFA6;background:#FFFAE8}
#campoMap{height:330px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--canvas)}
.areabox{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
.fform{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px}
.newbadge{font-size:10.5px;padding:2px 7px;border-radius:999px;background:var(--accent);color:#04302A;font-weight:600}

/* ===== Relatórios (Onda 22) ===== */
.rsec{display:block}
.rcard{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px}
.rcard.pinned{border-color:var(--brandm);background:var(--brandl)}
.rcard .pv{font-size:11.5px;color:var(--muted);margin-top:3px}
.rbox{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px}
.rtot{display:flex;align-items:baseline;gap:10px;margin:8px 0 12px;padding-bottom:10px;border-bottom:1px solid var(--line2)}
.rtot .rl{font-size:12px;color:var(--muted)}
.rtot b{font-size:24px;font-family:Sora,sans-serif}
.bars{display:flex;flex-direction:column;gap:8px}
.bar{display:grid;grid-template-columns:150px 1fr 110px;gap:10px;align-items:center;font-size:12.5px}
.bar .bl{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar .bt{height:9px;border-radius:6px;background:var(--line2);overflow:hidden}
.bar .bt i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--accent));border-radius:6px}
.bar .bv{text-align:right;font-variant-numeric:tabular-nums}
.prevbox{margin-top:12px;border:1px dashed var(--line);border-radius:12px;padding:12px;background:var(--card)}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl th{text-align:left;color:var(--muted);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--line)}
.tbl td{padding:8px 10px;border-bottom:1px solid var(--line2)}
.ebox{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px 14px;margin-bottom:10px}
.ebox.req{border-left:3px solid var(--brand)}
.elist{margin-top:8px;display:grid;gap:5px}
.el{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;padding:3px 0;border-bottom:1px dashed var(--line2)}
.el span{color:var(--muted)}
/* ===== Governança / auditoria (Onda 23) ===== */
.fbar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card);margin-bottom:12px}
.fbar>div{display:flex;flex-direction:column;gap:3px}
.fbar label{font-size:11px;color:var(--muted)}
.fbar input,.fbar select{padding:7px 9px;border:1px solid var(--line);border-radius:9px;font-family:inherit;font-size:12.5px}
.tbl.autbl td.nowrap{white-space:nowrap;color:var(--muted)}
@media print{.side,.topline,.tabs,.fbar,.btn{display:none!important}.main{padding:0}}

/* ===== Configuracoes avancadas (Onda 24) ===== */
.cfgmap{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.cfgcard{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px;cursor:pointer;transition:border-color .16s,box-shadow .16s}
.cfgcard:hover{border-color:var(--brandm);box-shadow:var(--shadow)}
.cfgcard .ci{display:block;width:14px;height:14px;border-radius:4px;background:linear-gradient(135deg,var(--brand),var(--accent));margin-bottom:9px}
.cfgcard b{display:block;font-size:13.5px}
.cfgcard .cd{font-size:11.5px;color:var(--muted);margin-top:2px}
.cfgcard .cn{font-size:11px;color:var(--faint);margin-top:9px}
.modrow{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px 14px;margin-bottom:10px}
.modrow .mh{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.modsw{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600}
.feat{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line2)}
.feat label{display:inline-flex;align-items:center;gap:6px;font-size:12px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px 10px}

/* Onda 26 — integrações/API, download e privacidade, faróis */
.apimethod{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;font-weight:700;border-radius:6px;padding:2px 7px;background:var(--brandl);color:var(--brand);margin-right:9px}
.apimethod.get{background:rgba(0,209,178,.16);color:#0E7C6B}
.apipath{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.farstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin:4px 0 14px}
.farstat{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px}
.farstat b{display:block;font-size:22px;letter-spacing:-.02em;line-height:1.12}
.farstat span{font-size:11.5px;color:var(--muted)}
.farstat i{font-style:normal;font-size:11px;color:var(--muted);opacity:.82;display:block;margin-top:5px}


/* Onda 27 — importação por API/Excel, inclusão manual e e-mails */
.impsteps{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:8px 0 12px}
.impstep{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px 14px}
.impstep .n{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff;font-size:12px;font-weight:700;align-items:center;justify-content:center}
.impstep b{display:block;font-size:13px;margin:7px 0 2px}
.impstep span{font-size:11.5px;color:var(--muted)}
.locked{display:flex;gap:20px;align-items:center;flex-wrap:wrap;border:1px dashed var(--brandm);background:var(--brandl);border-radius:12px;padding:12px 16px;margin:6px 0 14px}
.locked .small,.locked span{font-size:11px;color:var(--muted);display:block}
.locked b,.lockedb{font-weight:600}

/* ===== Onda 28 — Estúdio de personalização (tela 71) ===== */
.stcols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media(max-width:900px){.stcols{grid-template-columns:1fr}}
.stbox{background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:12px 14px}
.stbox>b{display:block;font-family:Sora;font-weight:600;font-size:13px}
.stbox>.sub{display:block;margin:2px 0 8px;font-size:11.5px;color:var(--muted)}
.stgrid{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.stlink{display:flex;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px;cursor:pointer;min-width:190px;transition:border-color .15s}
.stlink:hover{border-color:var(--brand)}
.stlink b{font-family:Sora;font-weight:600;font-size:13px;color:var(--ink)}
.stlink span{font-size:11px;color:var(--muted)}
.stflow{display:flex;align-items:center;gap:8px}
.starr{color:var(--brand);font-weight:700}

/* ===== Onda 30 — revisão de layout ===== */
/* checkbox/radio nunca herdam width:100% do input genérico */
input[type=checkbox],input[type=radio]{width:auto;flex:0 0 auto;padding:0;margin:0;accent-color:var(--brand);cursor:pointer}
input[type=checkbox]{width:16px;height:16px}
input[type=radio]{width:15px;height:15px}
/* pílulas de opções (Módulos, E-mails): texto em uma linha, quebra entre pílulas */
.feat label{white-space:nowrap;max-width:100%}
.feat label.txt{background:transparent;border-style:dashed;color:var(--muted)}
.modsw{white-space:nowrap}
/* botões, chips e abas: rótulo nunca quebra no meio */
.btn,.chip,.tab,.mutchip{white-space:nowrap}
.btn{flex-shrink:0}
/* a coluna principal pode encolher (grid 1fr) — evita rolagem horizontal da página */
.main{min-width:0}
.shell>main{min-width:0}
.tabs{flex-wrap:wrap}
/* .kv: valor não corta (era max-width:62%) */
.kv .v{max-width:none;flex:1 1 auto;min-width:0}
/* Orçamento — por projeto / centro: realizado e % discretos */
.pjtb .car,.tb .car{display:inline-flex;width:16px;margin-right:4px;vertical-align:-3px;color:var(--muted)}
.pjsub{display:block;font-size:11px;color:var(--faint);font-weight:500}
.pjbar{display:block;height:3px;border-radius:3px;background:var(--line2);margin:5px 0 0 auto;width:64px;overflow:hidden}
.pjbar i{display:block;height:100%;background:var(--accent);border-radius:3px}
.pjbar.warn i{background:var(--amber)}
.pjbar.over i{background:var(--red)}
.pjmini{margin-left:6px;font-style:normal;font-weight:600;color:var(--ink2)}
.pjdet>td{background:var(--card);padding:6px 10px 10px 30px!important}
.pjlines{width:100%;border-collapse:collapse;font-size:12px}
.pjlines th{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-weight:700;padding:6px 8px;border-bottom:1px solid var(--line);text-align:left}
.pjlines th.num,.pjlines td.num{text-align:right}
.pjlines td{padding:6px 8px;border-bottom:1px solid var(--line2)}
.pjlines tr:last-child td{border-bottom:0}
.pjlines td.neg{color:var(--red)}
.pjlines td.pos{color:var(--green)}
/* Meu espaço / Hoje / Super: ícones dedicados no menu (sem conflito visual) */

.emcard .mh{margin-bottom:10px}
.emgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}
.emrule{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);cursor:pointer}
.emrule:hover{border-color:var(--brand)}
.emtx{display:flex;flex-direction:column;gap:2px;min-width:0}
.emtx b{font-size:12.5px}
.emsw{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:var(--muted)}

a.stat.lnk{text-decoration:none;display:block;cursor:pointer}
/* KPI com anel/medidor: o texto não passa por baixo do gráfico */
.stat .lb,.stat .sn{overflow-wrap:anywhere}

.stbox{min-width:0}
.stbox .tb{table-layout:auto;width:100%}
.stbox .tb td,.stbox .tb th{overflow-wrap:anywhere}
@media(max-width:1180px){.stcols{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* cartões lado a lado em .row2 podem encolher sem empurrar o conteúdo */
.row2>.kcard{min-width:0}
.row2 .row2>.kcard{flex:1 1 220px}
.kv{flex-wrap:wrap}


/* ===== Onda 31 — revisão de layout ===== */
/* 1) Modais: tamanho uniforme, rodapé visível, rolagem discreta */
.modal{overflow:hidden}
.modal .box{width:min(600px,92vw);max-height:min(90vh,780px);display:flex;flex-direction:column;overflow:hidden}
.modal .box .mbody{flex:1;min-height:0;overflow:auto;padding-right:2px}
.modal .box .mfoot{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px;border-top:1px solid var(--line);padding-top:13px}
.modal .box input[type=checkbox],.modal .box input[type=radio]{width:auto;flex:none}
.modal .box::-webkit-scrollbar,.modal .box .mbody::-webkit-scrollbar{width:8px;height:8px}
.modal .box::-webkit-scrollbar-thumb,.modal .box .mbody::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.modal .box::-webkit-scrollbar-track,.modal .box .mbody::-webkit-scrollbar-track{background:transparent}
.chkrow{display:flex;align-items:center;gap:8px;margin-top:8px}
.chkrow input[type=checkbox]{width:18px;height:18px;flex:none;accent-color:var(--brand);margin:0}
.chkrow label{margin:0;font-weight:500;color:var(--muted);font-size:12.5px}

/* 2) Avisos (sino): popover centralizado, com fechar e clique fora */
.npanel{left:50%;right:auto;transform:translateX(-50%);bottom:auto;top:74px;width:min(430px,94vw);max-height:72vh;overflow:hidden;padding:0;display:flex;flex-direction:column}
.npanel .nphead{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);font-family:var(--fd);font-weight:600;font-size:13.5px}
.npanel .nphead .npx{margin-left:auto;border:0;background:transparent;color:var(--ink2);cursor:pointer;line-height:0}
.npanel .npbody{overflow:auto;padding:8px}
.npanel .npbody::-webkit-scrollbar{width:8px}
.npanel .npbody::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}

/* 3) Funil: rolagem invisível, setas elegantes e fineline de fundo */
.funnelwrap{position:relative}
.funnel{scrollbar-width:none;-ms-overflow-style:none}
.funnel::-webkit-scrollbar{display:none}
.funnelwrap::before{content:'';position:absolute;left:8px;right:8px;top:34px;height:2px;background:linear-gradient(90deg,transparent,var(--line) 5%,var(--line) 95%,transparent);border-radius:2px;pointer-events:none;z-index:0}
.fcol{position:relative;z-index:1}
.fcolh{position:relative}
.fcolh::before{content:'';position:absolute;left:14px;top:-7px;width:9px;height:9px;border-radius:99px;background:var(--brand);box-shadow:0 0 0 3px var(--brandl)}
.fcol.closed .fcolh::before{background:var(--faint);box-shadow:0 0 0 3px var(--line2)}
.farrow{position:absolute;top:44%;transform:translateY(-50%);z-index:3;border:1px solid var(--line);background:var(--surface);color:var(--ink2);border-radius:99px;width:34px;height:34px;display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow);opacity:.92;transition:.16s}
.farrow:hover{opacity:1;border-color:var(--brand);color:var(--brand)}
.farrow.r{right:-4px}
.farrow.l{left:-4px}
.farrow[hidden]{display:none}

/* 4) Equipe do projeto */
.eqrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line2)}
.eqrow:last-child{border-bottom:0}
.eqrow .av{width:32px;height:32px;border-radius:99px;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px;flex:none}
.eqrow .eqi{flex:1;min-width:0}
.eqrow .eqn{font-weight:600;font-size:13px}
.eqrow .eqc{font-size:11.5px;color:var(--faint)}
.eqrow .eqb{display:flex;gap:4px;flex-wrap:wrap}

/* 5) Automações (regras) — painel e fluxo de pontos */
.flowline{display:flex;flex-direction:column;gap:0}
.flnode{border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:10px 12px;position:relative}
.flnode .flk{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.flnode .flv{font-weight:600;font-size:13px;margin-top:2px}
.flnode .fls{font-size:11.5px;color:var(--ink2);margin-top:2px}
.flconn{width:2px;height:16px;background:var(--line);margin-left:22px}
.flnode.hi{border-color:var(--brand);box-shadow:0 0 0 3px var(--brandl)}
.rulecard{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:14px 16px;margin-bottom:12px}
.rulecard .rh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.rulecard .rn{font-weight:600;flex:1;min-width:0}

/* ajuste fino Onda 31 */
.fcolh{padding-left:26px}
.fcolh::before{top:50%;left:12px;transform:translateY(-50%)}
.modal .box .mbody{min-height:120px}


/* ===== Onda 32 — construtor gráfico de automações + alçadas ===== */
.fbuildwrap{margin-bottom:16px}
.fbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}
.fbar b{font-size:13px}
.fname{margin:6px 0 10px}.fname label{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.fname input{width:min(560px,100%);padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--fg)}
.fbuild{position:relative;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;overflow:auto;min-height:330px;background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:22px 22px}
.fcanvas{position:relative;min-width:1080px;min-height:320px}
.fsvg{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.fsvg .fedge{fill:none;stroke:var(--brand);stroke-width:2.4;marker-end:url(#ahl);opacity:.8}
.gnode{position:absolute;z-index:2;width:188px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:12px;padding:9px 12px;cursor:grab;box-shadow:var(--shadow);user-select:none}
.gnode.dragging{cursor:grabbing;box-shadow:0 12px 28px rgba(10,15,30,.3)}
.gnode.sel{outline:2px solid var(--brand);outline-offset:2px}
.gnode.gtrig{border-left-color:var(--brand)}.gnode.gcond{border-left-color:var(--amber)}.gnode.gappr{border-left-color:var(--green)}.gnode.gact{border-left-color:var(--accent)}.gnode.gend{border-left-color:var(--muted)}
.gnode .gk{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.gnode .gv{font-size:12.5px;font-weight:600;margin-top:2px;overflow-wrap:anywhere}
.gnode .gport{position:absolute;right:-8px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:var(--brand);border:2px solid var(--card);cursor:crosshair}
.gnode .gdel{position:absolute;right:6px;top:4px;cursor:pointer;color:var(--faint);font-weight:800;font-size:13px;line-height:1}
.gnode .gdel:hover{color:var(--red)}
.fchain{display:flex;align-items:center;gap:0;flex-wrap:wrap;margin-top:8px}
.fchain .flnode{margin:4px 6px}
.achip{font-size:11px;font-weight:700;padding:2px 9px;border-radius:990px;background:rgba(76,91,255,.13);color:var(--brand)}
.lvlchip{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:50%;background:var(--brand);color:#fff;font-size:11px;font-weight:800}
.mxrow{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;background:var(--card)}
.mxrow .mxr{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}
.tag{font-size:11px;padding:1px 8px;border-radius:6px;background:rgba(120,130,160,.16);color:var(--muted)}


/* ===== Onda 33 — painel de configuração em cards + estúdio da matriz ===== */
.cfgsub{display:flex;align-items:center;gap:14px;margin:4px 0 16px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);position:sticky;top:8px;z-index:6}
.cfgsub .cfgcrumb{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}
.cfgsub .cfgcrumb i{opacity:.4;font-style:normal}
.cfgsub .cfgcrumb b{color:var(--fg)}
.cfghome{animation:cfgIn .26s ease}
@keyframes cfgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cfggrp{margin-bottom:28px}
.cfggrph{display:flex;gap:12px;align-items:center;margin-bottom:13px}
.cfggrph .gic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(76,91,255,.16),rgba(0,209,178,.18));color:var(--brand);flex:0 0 auto}
.cfggrph .gic svg{width:20px;height:20px}
.cfggrph b{font-size:15px;display:block}
.cfggrph .muted{display:block;margin-top:1px}
.cfgcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:14px}
.cfgcard2{position:relative;display:flex;flex-direction:column;gap:9px;padding:18px 18px 16px;border:1px solid var(--line);border-radius:16px;background:var(--card);cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s;overflow:hidden}
.cfgcard2::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(76,91,255,.07),transparent 55%);opacity:0;transition:opacity .16s;pointer-events:none}
.cfgcard2:hover{transform:translateY(-3px);border-color:var(--brand);box-shadow:0 16px 36px rgba(10,15,30,.14)}
.cfgcard2:hover::after{opacity:1}
.cfgcard2 .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(76,91,255,.12);color:var(--brand)}
.cfgcard2 .ic svg{width:20px;height:20px}
.cfgcard2 b{font-size:14.5px}
.cfgcard2 .cd{font-size:12.5px;line-height:1.5;color:var(--muted)}
.cfgcard2 .go{margin-top:auto;font-size:11.5px;font-weight:700;color:var(--brand);letter-spacing:.02em}
html[data-theme="dark"] .cfgcard2::after{background:linear-gradient(135deg,rgba(76,91,255,.17),transparent 55%)}

.mxstudio{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;align-items:start;margin-bottom:18px}
@media(max-width:1080px){.mxstudio{grid-template-columns:1fr}}
.mxcard{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:16px 16px 14px}
.mxh{display:flex;gap:11px;align-items:center;margin-bottom:12px}
.mxh .ic{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(76,91,255,.16),rgba(0,209,178,.18));color:var(--brand);flex:0 0 auto}
.mxh .ic svg{width:18px;height:18px}
.mxh b{display:block;font-size:14.5px}.mxh .muted{display:block;margin-top:1px}
.mxf .frow{margin-bottom:10px}
.mxf .frow label{margin-bottom:5px;display:block}
.inl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inl select,.inl input{flex:1;min-width:120px}
.mxmin{display:flex;align-items:center;gap:6px;flex:1}
.mxmin span{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase}
.mxmin input{width:auto;flex:1;min-width:80px}
.who{display:flex;gap:8px;margin-bottom:8px}
.whoradio{display:flex;align-items:center;gap:6px;font-size:12.5px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;cursor:pointer;white-space:nowrap}
.mxa{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.mxprev{margin-top:12px;display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:rgba(31,169,113,.12);border:1px solid rgba(31,169,113,.3)}
.mxprev svg{width:18px;height:18px;color:var(--green);flex:0 0 auto}
.mxprev.pvno{background:rgba(201,138,11,.12);border-color:rgba(201,138,11,.32)}
.mxprev.pvno svg{color:var(--amber)}
.kindlist{max-height:320px;overflow:auto}
.kindrow{display:flex;align-items:center;gap:9px;padding:8px 4px;border-bottom:1px solid var(--line)}
.kindrow:last-child{border-bottom:0}
.kidot{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:rgba(76,91,255,.12);color:var(--brand);flex:0 0 auto}
.kidot svg{width:14px;height:14px}
.kindrow b{font-size:13px}
.kindrow .kacts{margin-left:auto;display:flex;gap:6px}
.mxgrp{margin-bottom:14px}
.mxgt{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:7px;display:flex;gap:8px;align-items:center}
.mxacts{display:flex;gap:8px;align-items:center}
.swt{display:flex;align-items:center}
.achip svg{width:12px;height:12px;margin-right:4px;vertical-align:-1px}


/* ===== Onda 34 — Estudio de fontes de dados ===== */
.dsstudio{display:block}
.dsbar{display:flex;align-items:center;gap:12px;margin:6px 0 12px}
.dsbar>div{display:flex;flex-direction:column;gap:2px}
.dsgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.dscard{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--card);cursor:pointer;transition:.15s;display:flex;flex-direction:column;gap:6px}
.dscard:hover{border-color:var(--brand);transform:translateY(-1px)}
.dscard.on{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 22%,transparent)}
.dscard .dsh{display:flex;align-items:center;gap:8px}
.dscard .dsh b{font-size:14px}
.dscard .dsmeta{display:flex;gap:12px;font-size:12px;color:var(--muted)}
.dscard .dsmeta span{display:flex;align-items:center;gap:5px}
.dsdetail{margin-top:16px}
.dseditor{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:16px}
.dsedH{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.dsedH>div{display:flex;flex-direction:column}
.dsedH b{font-size:15px}
.dssec{border-top:1px solid var(--line);padding:14px 0 6px}
.dssec:first-of-type{border-top:0}
.dssecT{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.dssecT b{font-size:13px}
.dsform{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.dsacts{display:flex;gap:8px;align-items:center;grid-column:1/-1;margin-top:4px}
.dsadd{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.dsadd input,.dsadd select{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--fg);font-size:13px}
.dsmapt select{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:6px 8px;color:var(--fg);font-size:12px;width:100%}
.dsarw{color:var(--brand);font-weight:700}
.dsres{display:flex;gap:16px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.dsres span b{font-size:16px}
.dsres .ok b{color:var(--green)}
.dsres .bad b{color:var(--red)}
.dserrbox{margin-top:8px;border-left:3px solid var(--red);padding-left:10px}
.dshist{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dshH{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.dsline{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--line);font-size:12px;flex-wrap:wrap}
.dsline.dsok{border-left:3px solid var(--green);padding-left:8px}
.dsline.dserr{border-left:3px solid var(--red);padding-left:8px}
tr.dsru{background:color-mix(in srgb,var(--red) 8%,transparent)}
.cfgcrumb a.crc{color:var(--brand);text-decoration:none;cursor:pointer}
.cfgcrumb a.crc:hover{text-decoration:underline}
@media(max-width:900px){.dshist{grid-template-columns:1fr}}


/* ===== Onda 35 — empresas (SaaS) e importacao com abas/linha/coluna ===== */
.dsstudio .dsform .frow input[type=number] { max-width: 130px; }
.dsstudio .dsform .frow select#dsSheet { max-width: 320px; }
#coBar .card { margin-bottom: 12px; }
#audTable table td:first-child { min-width: 190px; }

/* ===== ONDA 45 — a pilha de camadas do sistema =====
   A lista de pessoas e as demais janelas sobrepostas vivem em app.css
   (carregado por TODAS as telas) porque antes elas moravam num CSS que
   so 4 telas carregavam. E sem '!important': quem decide a camada e o
   JavaScript (htTopZ), que da a cada janela nova um nivel ACIMA da
   anterior — e o que impede a lista de nascer atras da janela. */
.pkmodal{z-index:3400}
.pkmodal .box{max-height:92vh;overflow:auto}
.pkmodal .pkhead{display:flex;align-items:center;gap:9px}
.pkmodal .pkhead h3{margin:0;font-family:var(--fd);font-size:15px}
.pkmodal .pkhead svg{width:18px;height:18px;color:var(--brandd)}
.pkmodal .pkx{margin-left:auto;background:transparent;border:0;color:var(--faint);cursor:pointer;line-height:0}
.pkmodal .pkx svg{width:16px;height:16px;color:inherit}


/* =====================================================================
   ONDA 47 — quadros de análise e gráficos (padrão único de BI)
   Cabeçalho, corpo e rodapé com mais hierarquia; cores vindas dos tokens,
   logo o modo escuro vale para todos os gráficos de uma vez.
   ===================================================================== */
.kcard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 17px;box-shadow:0 1px 2px rgba(10,15,30,.04)}
.kcard h3{font-family:var(--fd);font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:12px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.khead{padding-bottom:11px;border-bottom:1px solid var(--line2);margin-bottom:13px}
.khead h3{margin-bottom:0}
.bichip{font:700 10.5px var(--ft);letter-spacing:.05em;text-transform:uppercase;color:var(--brandd);background:var(--tint);border:1px solid var(--brandm);border-radius:999px;padding:3px 10px;white-space:nowrap}
.biwrap{position:relative;min-width:0;width:100%;overflow:hidden}
.biwrap .apexcharts-canvas{margin:0 auto}
.bihint{margin-left:auto;font-size:11.5px;color:var(--muted)}
.bikpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(186px,1fr));gap:12px;margin:0 0 16px}
.bikpi{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:13px 15px;overflow:hidden}
.bikpi::after{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand);opacity:.85}
.bikpi .lb{display:block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.bikpi b{display:block;font-family:var(--fd);font-size:clamp(19px,1.5vw,24px);font-weight:700;letter-spacing:-.02em;color:var(--ink);margin:7px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bikpi .sn{display:block;font-size:11.5px;color:var(--muted)}
.bikpi.ok::after{background:var(--green)}
.bikpi.at::after{background:var(--amber)}
.bikpi.ruim::after{background:var(--red)}
.bikpi.ruim b{color:var(--red)}
.bifbar{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:12px 14px;margin:0 0 14px}
.bifbar label{display:flex;flex-direction:column;gap:4px;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);min-width:170px}
.bifbar select,.bifbar input{background:var(--canvas);border:1px solid var(--line);border-radius:9px;padding:8px 10px;color:var(--ink);font:600 12.5px var(--ft);min-width:0}
.bicc{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.bicchead,.biccrow{display:grid;grid-template-columns:minmax(0,1fr) 112px 112px 78px 92px 24px;gap:10px;align-items:center;padding:11px 14px}
.bicchead{background:var(--canvas);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.biccrow{border-top:1px solid var(--line2);cursor:pointer;transition:background .14s}
.biccrow:hover{background:var(--tint)}
.biccrow .nm{display:flex;flex-direction:column;gap:5px;min-width:0}
.biccrow .nm b{font-size:13px;color:var(--ink)}
.biccrow .nm em{font-style:normal;font-size:11px;color:var(--muted)}
.biccrow .nm em.warn{color:var(--amber)}
.biccrow .num{text-align:right;font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--ink2)}
.biccrow .carx{color:var(--faint);display:flex;justify-content:flex-end;transition:transform .18s}
.biccrow.on .carx{transform:rotate(180deg)}
.biccdet{border-top:1px dashed var(--line);background:var(--canvas);padding:6px 14px 12px}
.biin{background:transparent}
.biin th{font-size:11px}
.bibar{display:block;height:6px;border-radius:99px;background:var(--line2);overflow:hidden;max-width:320px}
.bibar i{display:block;height:100%;border-radius:99px;background:var(--green)}
.bibar i.amber{background:var(--amber)}
.bibar i.red{background:var(--red)}
.bidev{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:9px 0;border-bottom:1px solid var(--line2)}
.bidev .n{flex:1 1 auto;font-size:12.5px;font-weight:600;color:var(--ink2);min-width:120px}
.bidev b{font-family:var(--fd);font-weight:700;font-size:12.5px}
.bidev.neg b{color:var(--red)}
.bidev.pos b{color:var(--green)}
.bidev i{flex:1 0 100%;font-style:normal;font-size:11px;color:var(--muted)}
.biacao{margin-top:14px;border:1px solid var(--line);border-radius:13px;padding:13px 15px;background:var(--canvas)}
.biacao.critica{border-color:var(--red);background:rgba(229,72,77,.06)}
.biacao.moderada{border-color:var(--amber);background:rgba(201,138,11,.06)}
.biacaohead{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.biacaohead b{font-family:var(--fd);font-size:13.5px;color:var(--ink)}
.biacaoitem{padding:7px 0;border-top:1px solid var(--line2);font-size:12.5px;color:var(--ink2);line-height:1.55}
.biacaoitem b{color:var(--ink);margin-right:5px}
.bicen{border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin-bottom:9px;background:var(--surface)}
.bicen .n{display:block;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.bicen b{display:block;font-family:var(--fd);font-size:16px;font-weight:700;color:var(--ink);margin:4px 0 2px}
.bicen i{font-style:normal;font-size:11px;color:var(--muted)}
.bicen.ruim b{color:var(--red)}
.bicen .bibar{margin-top:7px;max-width:none}
.bihb2row{display:grid;grid-template-columns:minmax(0,1fr) 84px 92px;gap:10px;align-items:center;padding:6px 0}
.bihb2row .l{font-size:12px;color:var(--ink2);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bihb2row .t{height:7px;border-radius:99px;background:var(--line2);overflow:hidden}
.bihb2row .t i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand),var(--accent))}
.bihb2row b{text-align:right;font-family:var(--fd);font-size:12px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.bifun{display:flex;flex-direction:column;align-items:center;padding:2px 0}
.bifrow{width:100%;display:flex;justify-content:center}
.bifgap{display:flex;justify-content:center;padding:2px 0;height:18px}
.bifgap .drop{font:700 10.5px var(--ft);color:var(--red);background:rgba(229,72,77,.1);border-radius:999px;padding:1px 8px}
.bifgap .drop.pos{color:var(--green);background:rgba(31,169,113,.1)}
.bifstep{display:flex;align-items:center;gap:10px;padding:11px 16px;border-radius:11px;background:var(--tint);border:1px solid var(--brandm);min-width:220px;transition:transform .18s}
.bifstep:hover{transform:translateY(-1px)}
.bifstep .l{flex:1 1 auto;font-size:12px;font-weight:600;color:var(--ink2)}
.bifstep b{font-family:var(--fd);font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap}
.bifstep i{font-style:normal;font-size:10.5px;color:var(--muted);white-space:nowrap}
.bifstep.sub{background:var(--brandl);border-color:transparent}
.bifstep.sub .l,.bifstep.sub b{color:var(--brandd)}
.bifstep.tot{background:linear-gradient(135deg,var(--ch1),var(--brandh));border-color:transparent}
.bifstep.tot .l,.bifstep.tot b{color:#fff}
.bifstep.tot i{color:rgba(255,255,255,.78)}
.bibars{display:flex;align-items:flex-end;gap:8px;height:170px}
.bibcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}
.bibcol span{font-size:10px;color:var(--muted)}
.bibpair{display:flex;align-items:flex-end;gap:2px;height:100%;width:100%;justify-content:center}
.bibpair i{display:block;width:12px;border-radius:4px 4px 0 0;min-height:2px}
.bibpair i.bb{background:var(--ch4)}
.bibpair i.br{background:var(--brand)}
.bileg{display:flex;gap:14px;font-size:11px;color:var(--muted);margin-top:8px}
.bileg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px}
.bileg i.bb{background:var(--ch4)}
.bileg i.br{background:var(--brand)}
[data-theme="dark"] .bikpi{background:var(--card)}
[data-theme="dark"] .bifstep.tot{background:linear-gradient(135deg,#25307A,#141B3A)}
[data-theme="dark"] .biacao{background:var(--card)}
[data-theme="dark"] .biccdet{background:var(--surface)}
[data-theme="dark"] .bicchead{background:var(--card)}
[data-theme="dark"] .bicen{background:var(--card)}
[data-theme="dark"] .bifbar{background:var(--card)}
[data-theme="dark"] .bidev.neg b{color:#FF8589}
[data-theme="dark"] .bidev.pos b{color:#4CD39A}
@media (max-width:820px){
  .bicchead,.biccrow{grid-template-columns:minmax(0,1fr) 96px 96px 24px}
  .bicchead span:nth-child(4),.biccrow>span:nth-child(4),
  .bicchead span:nth-child(5),.biccrow>span:nth-child(5){display:none}
  .bifstep{min-width:0;width:100%!important;flex-wrap:wrap}
  .biacaoitem{font-size:12px}
}


/* ===================== ONDA 48 — relatorios nativos por categoria ===================== */
.nchips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.nchip{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font-size:12.5px;font-weight:600;cursor:pointer;user-select:none}
.nchip:hover{border-color:var(--brand)}
.nchip.on{background:var(--brandl);border-color:var(--brand);color:var(--brand)}
.nchip b{font-size:11px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:1px 7px}
.nchip.on b{background:var(--brand);color:#fff;border-color:var(--brand)}
.ncards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:12px}
.ncard{border:1px solid var(--line);border-radius:13px;background:var(--card);padding:13px 14px;display:flex;flex-direction:column}
.ncard-h{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.ncard-h b{font-size:13.5px;color:var(--ink)}
.ncard-h .chip{margin-left:auto}
@media(max-width:640px){.ncards{grid-template-columns:1fr}}

/* ================= ONDA 49 — leitura no tema escuro =================
   Revisao por captura de tela das areas principais (painel, projetos, CRM, orcamento, DRE,
   relatorios, coletas, auditoria, console). O que apareceu repetido foi texto secundario com
   contraste baixo (rotulos, metadados, instrucoes). O ajuste e no token: */
:root[data-theme="dark"]{--muted:#A9B4CD;--faint:#818CA8}


/* ===== Onda 51 - corpo e itens de verificacao no card (fino e limpo) ===== */
.w51{margin:7px 0 3px;display:flex;flex-direction:column;gap:2px}
.w51 .w51c{font-size:12.5px;line-height:1.55;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;max-width:64ch}
.w51 .w51c.clip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.w51 .w51m{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--brand);cursor:pointer;opacity:.9}
.w51 .w51m:hover{opacity:1;text-decoration:underline}
.w51 .w51it{margin-top:6px;padding:2px 0 2px 10px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:4px}
.w51 .w51h{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.w51 .w51h b{color:var(--ink)}
.w51 .w51r{display:flex;align-items:center;gap:7px;font-size:12.5px;line-height:1.35;color:var(--ink)}
.w51 .w51x{flex:0 0 auto;width:13px;height:13px;border:1.5px solid var(--line);border-radius:4px;position:relative}
.w51 .w51x.on{background:var(--green);border-color:var(--green)}
.w51 .w51x.on:after{content:"";position:absolute;left:3px;top:0;width:3px;height:6px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.w51 .w51r.done span{color:var(--muted);text-decoration:line-through}
.w51 .w51r em{margin-left:auto;font-style:normal;font-size:10px;color:var(--muted);white-space:nowrap}
@media (max-width:560px){.w51 .w51r em{display:none}}


/* ===== Onda 51 — ajuste de contraste no tema escuro ===== */
:root[data-theme="dark"] .w51 .w51c{color:#B3BEDA}
:root[data-theme="dark"] .w51 .w51h{color:#AAB6D6}
:root[data-theme="dark"] .w51 .w51r em{color:#AAB6D6}
:root[data-theme="dark"] .w51 .w51x{border-color:#46578A}
:root[data-theme="dark"] .w51 .w51m{color:#93A4FF}


/* ===== Onda 51 — polimento de contraste (claro + escuro) ===== */
.w51 .w51x{border-color:#AEB9D0;background:#fff}
.w51 .w51h{color:#67718C}
.w51 .w51r em{color:#5B6683}
:root[data-theme="dark"] .w51 .w51x{border-color:#5A6DA6;background:transparent}
:root[data-theme="dark"] .w51 .w51h{color:#C3CDE6}
:root[data-theme="dark"] .w51 .w51r em{color:#C3CDE6}


/* ONDA 52 — item de verificacao clicavel no card (reflete na nota do diario) */
.w51 .w51h{display:flex;align-items:center;gap:8px}
.w51 .w51h .w51d{margin-left:auto;font-weight:700;letter-spacing:.03em;text-transform:none;color:var(--brand);opacity:.85;white-space:nowrap}
.w51 .w51r.clk{cursor:pointer;border-radius:6px;margin-left:-5px;padding:2px 6px 2px 5px;transition:background .12s ease}
.w51 .w51r.clk:hover{background:rgba(76,91,255,.08)}
.w51 .w51r.clk:hover .w51x{border-color:var(--brand)}
.w51 .w51r.busy{opacity:.45}
:root[data-theme="dark"] .w51 .w51r.clk:hover{background:rgba(147,164,255,.13)}
:root[data-theme="dark"] .w51 .w51r.clk:hover .w51x{border-color:#93A4FF}
:root[data-theme="dark"] .w51 .w51h .w51d{color:#93A4FF}
@media (max-width:560px){.w51 .w51h .w51d{display:none}}

/* ONDA 52b — polimento: cabecalho sem colisao e microtextos legiveis nos dois temas */
.w51 .w51h{flex-wrap:wrap;color:#4A5470}
.w51 .w51h .w51d{flex:0 0 auto;font-size:10px;font-weight:800;letter-spacing:.05em}
.w51 .w51r em{color:#4A5470}
.w51 .w51d{color:#3B49D6}
:root[data-theme="dark"] .w51 .w51h{color:#DCE3F5}
:root[data-theme="dark"] .w51 .w51h b{color:#FFFFFF}
:root[data-theme="dark"] .w51 .w51r em{color:#CBD5EA}
:root[data-theme="dark"] .w51 .w51x{border-color:#7A8BC4}
:root[data-theme="dark"] .w51 .w51d{color:#B4C2FF}


/* ==========================================================================
   ONDA 53 — Meu diário: notas estreitas + coluna de retornos de quem executa
   ========================================================================== */
.d53{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
@media (max-width:1180px){.d53{grid-template-columns:minmax(0,1fr)}.d53rail{position:static}}
.d53col{min-width:0;max-width:680px}
.d53rail{position:sticky;top:16px;min-width:0}

.d53k{display:flex;border:1px solid var(--line2);border-radius:14px;background:var(--card);margin-bottom:13px;overflow:hidden}
.d53k>div{flex:1;min-width:0;padding:10px 13px;border-right:1px solid var(--line2)}
.d53k>div:last-child{border-right:0}
.d53k b{display:block;font-family:var(--fd);font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.15}
.d53k span{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:2px}
@media (max-width:560px){.d53k{flex-wrap:wrap}.d53k>div{flex:1 0 33%;border-right:0;border-bottom:1px solid var(--line2)}}

/* ---- cartão da nota: fino, claro, sem ruído ---- */
.nt53{position:relative;border:1px solid var(--line2);border-radius:14px;background:var(--card);
  padding:15px 17px 11px;margin-bottom:11px;transition:border-color .16s ease,box-shadow .18s ease}
.nt53:hover{border-color:#D5DAEE;box-shadow:0 12px 28px rgba(10,15,30,.055)}
.nt53.foco{border-color:var(--brand);box-shadow:0 0 0 3px rgba(76,91,255,.13)}
:root[data-theme="dark"] .nt53:hover{border-color:#2C3A61;box-shadow:0 12px 28px rgba(0,0,0,.35)}
.nt53h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nt53t{margin:0;flex:1;min-width:0;font-family:var(--fd);font-size:14.5px;font-weight:600;letter-spacing:-.01em}
.nt53m{margin-top:5px;font-size:11px;color:var(--muted);letter-spacing:.01em}
.nt53b{margin:9px 0 0;font-size:12.8px;line-height:1.62;color:var(--ink2);white-space:pre-wrap;overflow-wrap:anywhere;max-width:62ch}

.b53{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  padding:3px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.b53 i{width:11px;height:11px}
.b53.ret{color:#3B49D6;border-color:#C7CFFF;background:#F3F5FF}
.b53.novo,.b53.par{color:#8A5A00;border-color:#F0D9A8;background:#FFF8E8}
.b53.ok{color:#0E7A50;border-color:#B4E3CE;background:#F0FAF5}
:root[data-theme="dark"] .b53.ret{color:#B4C2FF;border-color:#39456E;background:#1A2140}
:root[data-theme="dark"] .b53.novo,:root[data-theme="dark"] .b53.par{color:#F2CC7E;border-color:#5C4A22;background:#2A2313}
:root[data-theme="dark"] .b53.ok{color:#7FE0B4;border-color:#28563F;background:#12261D}

.ck53{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column}
.ck53 li{margin:0}
.ck53 label{display:flex;align-items:center;gap:9px;padding:5px 7px;border-radius:8px;font-size:12.5px;color:var(--ink);cursor:pointer;transition:background .12s ease}
.ck53 label:hover{background:rgba(76,91,255,.07)}
.ck53 input{width:14px;height:14px;flex:0 0 auto;accent-color:var(--green);cursor:pointer}
.ck53 li.on label span{color:var(--muted);text-decoration:line-through}
:root[data-theme="dark"] .ck53 label:hover{background:rgba(147,164,255,.12)}

.rt53mini{display:flex;align-items:center;gap:6px;margin-top:9px;padding:6px 10px;border-radius:9px;
  background:rgba(76,91,255,.055);font-size:11.5px;color:var(--ink2);flex-wrap:wrap}
:root[data-theme="dark"] .rt53mini{background:rgba(147,164,255,.1)}

.a53{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:11px;padding-top:10px;border-top:1px solid var(--line2)}
.sp53{flex:1}
.bt53{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:transparent;color:var(--ink2);
  font:inherit;font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:8px;cursor:pointer;text-decoration:none;
  transition:border-color .14s ease,color .14s ease,background .14s ease}
.bt53 i{width:13px;height:13px}
.bt53:hover{border-color:var(--brand);color:var(--brand)}
.bt53.on{background:var(--brand);border-color:var(--brand);color:#fff}
.bt53.on:hover{color:#fff}
.bt53.x{padding:5px 8px;color:var(--muted)}
.bt53.x:hover{border-color:var(--red);color:var(--red)}

/* ---- coluna de retornos ---- */
.rl53{border:1px solid var(--line2);border-radius:14px;background:var(--card);padding:14px 16px 16px}
.rl53h{display:flex;align-items:center;gap:8px}
.rl53h h3{margin:0;flex:1;font-family:var(--fd);font-size:13px;font-weight:600;letter-spacing:-.005em;display:flex;align-items:center;gap:7px}
.rl53h h3 i{width:15px;height:15px;color:var(--brand)}
.rl53s{margin:7px 0 11px;font-size:11px;line-height:1.55;color:var(--muted)}
.rl53f{display:flex;gap:6px;margin-bottom:12px}
.rl53vazio{margin:0;font-size:11.5px;line-height:1.6;color:var(--muted)}

.rt53{position:relative;border-left:1px solid var(--line);padding:0 0 14px 14px}
.rt53:last-child{padding-bottom:2px}
.rt53 .dot53{position:absolute;left:-4px;top:3px;width:7px;height:7px;border-radius:50%;background:#BFC7DF;box-shadow:0 0 0 3px var(--card)}
.rt53 .dot53.ok{background:var(--green)}
.rt53.nv .dot53{background:var(--brand)}
.rt53h{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.rt53h b{font-size:12.5px;font-weight:700}
.rt53m{margin-top:3px;font-size:11px;color:var(--ink2)}
.rt53m .mut,.rt53n .mut{color:var(--muted)}
.rt53n{margin-top:3px;font-size:10.5px;color:var(--muted);line-height:1.5}
.it53{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}
.it53 li{display:flex;gap:7px;align-items:flex-start;font-size:11.5px;line-height:1.4;color:var(--muted)}
.it53 li.on{color:var(--ink)}
.it53 .x53{flex:0 0 auto;width:12px;height:12px;margin-top:2px;border:1.5px solid var(--line);border-radius:4px;display:flex;align-items:center;justify-content:center}
.it53 .x53 i{width:9px;height:9px;color:#fff}
.it53 li.on .x53{background:var(--green);border-color:var(--green)}
.rt53a{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}


/* ==========================================================================
   ONDA 54 — CARD CONTÍNUO: a nota (origem da demanda) à esquerda e os retornos
   de quem executa à direita, no MESMO cartão, costurados por uma linha degradê
   da identidade. Altura padronizada: até 3 retornos + corpo em 5 linhas.
   ========================================================================== */
.d54{max-width:1128px}
.d54col{min-width:0}

.d54f{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 12px}
.d54f .lbl54{font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.d54f .hint54{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:var(--faint);letter-spacing:.01em}
.d54f .hint54 i{width:12px;height:12px;color:var(--brand);opacity:.8}
@media (max-width:880px){.d54f .hint54{display:none}}

/* ---- o cartão: dois lados, uma peça só ---- */
.nt54{position:relative;display:grid;grid-template-columns:minmax(0,1.62fr) 1px minmax(0,1fr);
  border:1px solid var(--line2);border-radius:16px;background:var(--card);margin-bottom:12px;overflow:hidden;
  transition:border-color .16s ease,box-shadow .2s ease}
.nt54::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;z-index:3;
  background:linear-gradient(90deg,var(--brand) 0%,#7A6BFF 42%,var(--accent) 100%);opacity:.62;transition:opacity .2s ease}
.nt54:hover{border-color:#D5DAEE;box-shadow:0 14px 34px rgba(10,15,30,.06)}
.nt54:hover::before{opacity:1}
.nt54.nv{border-color:#CDD4FF}
.nt54.foco{border-color:var(--brand);box-shadow:0 0 0 3px rgba(76,91,255,.14)}
:root[data-theme="dark"] .nt54:hover{border-color:#2C3A61;box-shadow:0 14px 34px rgba(0,0,0,.36)}
:root[data-theme="dark"] .nt54.nv{border-color:#2F3C68}
:root[data-theme="dark"] .nt54::before{opacity:.8}

/* a costura degradê entre os dois lados */
.nt54sp{display:block;background:linear-gradient(180deg,transparent 0%,var(--brand) 10%,#7A6BFF 46%,var(--accent) 84%,transparent 100%);opacity:.5}
.nt54:hover .nt54sp{opacity:.92}

/* ---- esquerda: a nota que originou a demanda ---- */
.nt54l{min-width:0;padding:17px 20px 12px}
.nt54h{display:flex;align-items:flex-start;gap:9px;flex-wrap:wrap}
.nt54t{margin:0;flex:1;min-width:0;font-family:var(--fd);font-size:15px;font-weight:600;letter-spacing:-.012em;line-height:1.35}
.nt54m{margin-top:6px;font-size:10.5px;letter-spacing:.02em;color:var(--muted)}
.nt54b{margin:10px 0 0;font-size:12.6px;line-height:1.66;color:var(--ink2);white-space:pre-wrap;overflow-wrap:anywhere;max-width:64ch;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,#000 60%,transparent 100%);mask-image:linear-gradient(180deg,#000 60%,transparent 100%)}
.nt54b.ab{display:block;-webkit-line-clamp:unset;-webkit-mask-image:none;mask-image:none}
.bt53.lk54{padding:4px 9px;font-size:10.5px;margin-top:8px;color:var(--muted)}

/* ---- direita: o que voltou de quem executa ---- */
.nt54r{min-width:0;display:flex;flex-direction:column;padding:15px 16px 13px;
  background:linear-gradient(180deg,rgba(76,91,255,.04) 0%,rgba(0,209,178,.032) 100%)}
:root[data-theme="dark"] .nt54r{background:linear-gradient(180deg,rgba(147,164,255,.065) 0%,rgba(0,209,178,.055) 100%)}
.nt54rh{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-bottom:10px;
  border-bottom:1px solid var(--line2);box-shadow:0 1px 0 rgba(76,91,255,.08)}
.nt54rt{display:inline-flex;align-items:center;gap:6px;font-family:var(--fd);font-size:10.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.nt54rt i{width:13px;height:13px;color:var(--brand)}
.c54{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.nt54rc{flex:1;min-height:0;max-height:272px;overflow:auto;padding:10px 5px 2px 0;scrollbar-width:thin;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 86%,transparent 100%);mask-image:linear-gradient(180deg,#000 0,#000 86%,transparent 100%)}
.nt54rc::-webkit-scrollbar{width:6px}
.nt54rc::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}
.bt53.mais54{margin-top:10px;justify-content:center;border-style:dashed;font-size:10.5px;padding:5px 9px;color:var(--muted)}

/* ---- cada retorno dentro do lado direito ---- */
.rt54{position:relative;padding:9px 11px 10px;border:1px solid var(--line2);border-radius:12px;background:var(--surface);margin-bottom:8px}
.rt54:last-child{margin-bottom:0}
.rt54::after{content:'';position:absolute;left:11px;right:11px;bottom:-5px;height:1px;
  background:linear-gradient(90deg,transparent,var(--brandm) 45%,transparent)}
.rt54:last-child::after{display:none}
.rt54.nv{border-color:#C7CFFF;box-shadow:0 0 0 3px rgba(76,91,255,.07)}
.rt54.nv::before{content:'';position:absolute;left:0;top:9px;bottom:9px;width:2px;border-radius:0 2px 2px 0;
  background:linear-gradient(180deg,var(--brand),var(--accent))}
:root[data-theme="dark"] .rt54{background:rgba(21,29,51,.72)}
:root[data-theme="dark"] .rt54.nv{border-color:#39456E;box-shadow:0 0 0 3px rgba(147,164,255,.09)}
.rt54h{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.av54{flex:0 0 auto;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--fd);font-size:10px;font-weight:700;color:#fff;background:var(--grad);letter-spacing:0}
.rt54h b{font-size:12px;font-weight:700}
.rt54m{margin-top:4px;font-size:11px;color:var(--ink2)}
.rt54m .hr54{font-variant-numeric:tabular-nums;color:var(--muted)}
.rt54m .mut,.rt54n .mut{color:var(--muted)}
.rt54n{margin-top:4px;font-size:10px;color:var(--muted);overflow-wrap:anywhere;line-height:1.5}
.it54{list-style:none;margin:8px 0 0;padding:8px 0 0;display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line2)}
.it54 li{display:flex;gap:7px;align-items:flex-start;font-size:11px;line-height:1.42;color:var(--muted)}
.it54 li.on{color:var(--ink)}
.it54 .x54{flex:0 0 auto;width:12px;height:12px;margin-top:1px;border:1.5px solid var(--line);border-radius:4px;
  display:flex;align-items:center;justify-content:center}
.it54 .x54 i{width:9px;height:9px;color:#fff}
.it54 li.on .x54{background:var(--green);border-color:var(--green)}
.it54 .mi54{font-size:10px;color:var(--faint)}
.rt54a{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.rt54z{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:14px 13px;border:1px dashed var(--line);border-radius:12px}
.rt54z .ico54 i{width:15px;height:15px;color:var(--brand);opacity:.75}
.rt54z p{margin:0;font-size:11px;line-height:1.6;color:var(--muted)}
.rt54z .p54{font-size:9.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--amber)}

/* ---- telas estreitas: a costura vira horizontal e os lados empilham ---- */
@media (max-width:1020px){
  .nt54{grid-template-columns:minmax(0,1fr)}
  .nt54sp{width:auto;height:1px;
    background:linear-gradient(90deg,transparent,var(--brand) 12%,#7A6BFF 50%,var(--accent) 88%,transparent)}
  .nt54r{background:linear-gradient(180deg,rgba(76,91,255,.032),rgba(0,209,178,.03))}
  .nt54rc{max-height:none;overflow:visible;-webkit-mask-image:none;mask-image:none}
}

/* ONDA 54b — no escuro a costura precisa de mais presença para ser lida */
:root[data-theme="dark"] .nt54sp{opacity:.85}
:root[data-theme="dark"] .nt54::before{opacity:.95}
:root[data-theme="dark"] .rt54::after{background:linear-gradient(90deg,transparent,rgba(147,164,255,.5) 45%,transparent)}

/* ONDA 54c — no escuro a costura degradê ganha brilho próprio para ser lida */
:root[data-theme="dark"] .nt54::before{height:3px;opacity:1;box-shadow:0 0 14px rgba(76,91,255,.6)}
:root[data-theme="dark"] .nt54sp{opacity:1;box-shadow:0 0 10px rgba(0,209,178,.35)}
:root[data-theme="dark"] .nt54:hover .nt54sp{box-shadow:0 0 14px rgba(0,209,178,.55)}

/* ==========================================================================
   ONDA 55 — os cards de cima voltam ao PADRÃO do sistema (.stats4 + kpi()):
   mesmas molduras, raios, gradientes e aro de progresso dos demais painéis.
   ========================================================================== */
.d54 .stats4{margin:0 0 14px}
.d54 .stats4 .stat{padding:12px 15px}
.d54 .stats4 .stat b.vl{font-size:22px}
.d54 .stats4 .stat .sn{font-size:10.5px}
.d54 .stats4 .stat .lb{font-size:10px;letter-spacing:.05em}
.d53k{display:none}

/* a barra de filtros também é um card do sistema, não uma faixa solta */
.d54f{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 12px;
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:11px 15px;
  box-shadow:0 1px 2px rgba(10,15,30,.04)}
:root[data-theme="dark"] .d54f{box-shadow:none}
@media (max-width:560px){.d54 .stats4 .stat b.vl{font-size:20px}}
