/* ==========================================================================
   SIALF V6.29 · Camada visual "Premium"
   Carregada por último: refina o sistema inteiro (menu, cards, botões, formulários,
   tabelas, modais, login) e define o novo Painel de Controle (.dx-*).
   Tema escuro e claro, responsivo, acessível (foco visível, reduced-motion).
   ========================================================================== */
:root{
  --font-ui:'Plus Jakarta Sans','Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --font-num:'Space Grotesk','Plus Jakarta Sans',system-ui,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --dx-cyan:#38bdf8;--dx-violet:#a78bfa;--dx-green:#34d399;--dx-red:#fb7185;--dx-amber:#fbbf24;
  --dx-glass:color-mix(in srgb,var(--panel) 82%,transparent);
  --dx-edge:color-mix(in srgb,#fff 7%,transparent);
  --dx-shadow-sm:0 1px 0 var(--dx-edge) inset,0 10px 30px rgba(0,0,0,.22);
  --dx-shadow-lg:0 1px 0 var(--dx-edge) inset,0 24px 60px rgba(0,0,0,.38);
  --dx-ring:0 0 0 3px color-mix(in srgb,var(--accent) 28%,transparent);
  --side-w:272px;
}
body.light{
  --dx-cyan:#0284c7;--dx-violet:#7c3aed;--dx-green:#059669;--dx-red:#e11d48;--dx-amber:#d97706;
  --dx-glass:color-mix(in srgb,#fff 86%,transparent);
  --dx-edge:rgba(255,255,255,.9);
  --dx-shadow-sm:0 1px 0 var(--dx-edge) inset,0 1px 2px rgba(15,23,42,.05),0 10px 28px rgba(15,23,42,.07);
  --dx-shadow-lg:0 1px 0 var(--dx-edge) inset,0 24px 60px rgba(15,23,42,.16);
}

/* ---------- base ---------- */
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font-ui)!important;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:'cv11','ss01'}
body{background:
  radial-gradient(900px 520px at 85% -10%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 62%),
  radial-gradient(700px 480px at -5% 105%,color-mix(in srgb,var(--dx-cyan) 9%,transparent),transparent 60%),
  var(--bg)!important}
::selection{background:color-mix(in srgb,var(--accent) 38%,transparent);color:inherit}
:focus{outline:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 38%,transparent);border-radius:10px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:var(--accent);background-clip:content-box}
.main{animation:none}
body.nx-enter .main>*{animation:nx-rise .55s var(--ease) both}
body.nx-enter .main>*:nth-child(2){animation-delay:.04s}
body.nx-enter .main>*:nth-child(3){animation-delay:.08s}
body.nx-enter .main>*:nth-child(4){animation-delay:.12s}
@keyframes nx-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- menu lateral ---------- */
.side{width:var(--side-w)!important;overflow-x:hidden!important;padding:20px 14px!important;background:linear-gradient(180deg,color-mix(in srgb,var(--bg2) 94%,transparent),color-mix(in srgb,var(--bg) 96%,transparent))!important;backdrop-filter:blur(22px) saturate(1.2);border-right:1px solid var(--line)!important;transition:width .3s var(--ease),transform .3s var(--ease)}
.main{margin-left:var(--side-w)!important;transition:margin-left .3s var(--ease)}
.brand{display:flex;align-items:center;gap:11px;padding:2px 6px!important;font-family:var(--font-num);font-size:21px!important;letter-spacing:-.04em!important}
.brand b{display:none}
.nx-logo{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;color:#1a1200;background:linear-gradient(140deg,var(--accent2),var(--accent) 55%,var(--accent3));box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 38%,transparent),0 1px 0 rgba(255,255,255,.5) inset}
.nx-logo svg{width:21px;height:21px}
.nx-brandtxt{display:flex;flex-direction:column;line-height:1.05}
.nx-brandtxt small{font-family:var(--font-ui);font-size:9px;font-weight:700;letter-spacing:.16em;color:var(--muted);margin-top:4px;text-transform:uppercase}
.tag{display:none}
.nx-collapse{margin-left:auto;width:28px;height:28px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--muted);display:grid;place-items:center;transition:.2s}
.nx-collapse:hover{color:var(--text);border-color:var(--line2);background:var(--panel2)}
.nx-collapse svg{width:15px;height:15px;transition:transform .3s var(--ease)}
.nav{margin-top:22px;gap:3px!important}
.nav button{position:relative;display:flex!important;align-items:center;gap:12px;padding:11px 12px!important;border-radius:12px!important;font-size:13.5px!important;font-weight:600!important;color:var(--muted)!important;border:1px solid transparent!important;background:transparent!important;border-left:1px solid transparent!important;box-shadow:none!important;transition:background .2s,color .2s,transform .2s var(--ease)!important}
.nav button:hover{background:color-mix(in srgb,var(--text) 6%,transparent)!important;color:var(--text)!important;transform:translateX(2px)!important}
.nav button.active{color:var(--text)!important;font-weight:750!important;background:linear-gradient(95deg,color-mix(in srgb,var(--accent) 20%,transparent),color-mix(in srgb,var(--accent) 3%,transparent) 85%)!important;border-color:color-mix(in srgb,var(--accent) 24%,transparent)!important;border-left:1px solid color-mix(in srgb,var(--accent) 24%,transparent)!important}
.nav button.active::before{content:"";position:absolute;left:-14px;top:22%;bottom:22%;width:4px;border-radius:0 4px 4px 0;background:var(--accent);box-shadow:0 0 14px var(--accent)}
.nx-ico{width:19px;height:19px;flex:0 0 auto;display:grid;place-items:center;color:inherit;transition:transform .25s var(--ease),color .2s}
.nx-ico svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav button:hover .nx-ico{transform:scale(1.12)}
.nav button.active .nx-ico{color:var(--accent)}
.nav button span{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.nx-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:20px;background:var(--accent);color:#1a1200;font-size:10.5px;font-weight:800;display:grid;place-items:center;font-family:var(--font-num)}
.nav-sub button{padding:9px 12px 9px 36px!important;font-size:12px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:block!important}
.nav-arrow{margin-left:auto}
.side-footer{border-top:1px solid var(--line)!important}
.developer-contact{border-radius:12px!important}

body.side-collapsed{--side-w:82px}
body.side-collapsed .nx-brandtxt,body.side-collapsed .nav button span,body.side-collapsed .nx-badge,body.side-collapsed .nav-arrow,body.side-collapsed .side-footer,body.side-collapsed .nav-sub{display:none!important}
body.side-collapsed .nav button{justify-content:center;padding:12px 0!important}
body.side-collapsed .nav button.active::before{left:-14px}
body.side-collapsed .nx-collapse{margin:0 auto}
body.side-collapsed .nx-collapse svg{transform:rotate(180deg)}
body.side-collapsed .brand{flex-direction:column;gap:10px}
.nx-mobilebar{display:none}
.nx-scrim{display:none}

/* ---------- cabeçalhos e títulos ---------- */
.top{margin-bottom:24px!important}
.title h1{font-family:var(--font-num);font-size:32px!important;font-weight:700!important;letter-spacing:-.035em!important}
.title h1:after{width:38px!important;height:4px!important;background:linear-gradient(90deg,var(--accent),var(--accent2))!important;box-shadow:0 0 18px color-mix(in srgb,var(--accent) 45%,transparent)!important}
.section-kicker{font-weight:800!important;letter-spacing:.16em!important;font-size:10px!important}
.section-title,h2{font-weight:750;letter-spacing:-.02em}
.muted{color:var(--muted)}

/* ---------- cards ---------- */
.card,.report,.service,.quote-list-card,.diary-card,.development-card{background:linear-gradient(160deg,color-mix(in srgb,var(--panel) 94%,transparent),color-mix(in srgb,var(--panel2) 88%,transparent))!important;border:1px solid var(--line)!important;border-radius:20px!important;box-shadow:var(--dx-shadow-sm)!important;transition:border-color .3s,box-shadow .3s,transform .3s var(--ease)!important}
.card:hover{border-color:color-mix(in srgb,var(--accent) 34%,var(--line))!important;box-shadow:var(--dx-shadow-lg)!important}
.kpi{border-radius:20px!important}
.kpi strong{font-family:var(--font-num);font-weight:700!important;letter-spacing:-.035em!important}
.metric{border-radius:14px!important;transition:border-color .2s,transform .2s var(--ease)}
.metric:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))!important;transform:translateY(-1px)}
.metric b{font-family:var(--font-num);letter-spacing:-.02em}
.empty-state{padding:34px 16px;border:1px dashed var(--line2);border-radius:16px;color:var(--muted);text-align:center;background:color-mix(in srgb,var(--panel2) 55%,transparent)}

/* ---------- botões ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-ui)!important;font-weight:650!important;font-size:13px!important;border-radius:12px!important;padding:10px 16px!important;border:1px solid var(--line2)!important;background:color-mix(in srgb,var(--panel2) 92%,transparent)!important;color:var(--text)!important;box-shadow:0 1px 0 var(--dx-edge) inset!important;transition:transform .2s var(--ease),box-shadow .25s,border-color .2s,background .2s,filter .2s!important}
.btn:hover{transform:translateY(-2px)!important;border-color:color-mix(in srgb,var(--accent) 45%,var(--line2))!important;box-shadow:0 10px 24px rgba(0,0,0,.18)!important}
.btn:active{transform:translateY(0) scale(.97)!important}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none!important}
.btn.primary{overflow:hidden;color:#1a1200!important;font-weight:800!important;border:1px solid color-mix(in srgb,var(--accent) 70%,#fff 10%)!important;background:linear-gradient(135deg,var(--accent2),var(--accent) 55%,var(--accent3))!important;box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 10px 26px color-mix(in srgb,var(--accent) 34%,transparent)!important}
.btn.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease)}
.btn.primary:hover::after{transform:translateX(120%)}
.btn.primary:hover{filter:brightness(1.06);box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 16px 34px color-mix(in srgb,var(--accent) 46%,transparent)!important}
.btn.danger{color:var(--dx-red)!important;border-color:color-mix(in srgb,var(--dx-red) 35%,var(--line2))!important;background:color-mix(in srgb,var(--dx-red) 8%,transparent)!important}
.btn.danger:hover{background:color-mix(in srgb,var(--dx-red) 16%,transparent)!important;border-color:var(--dx-red)!important}
.mini-btn{padding:6px 11px!important;font-size:11.5px!important;border-radius:10px!important}
.approve-btn{color:var(--dx-green)!important;border-color:color-mix(in srgb,var(--dx-green) 38%,var(--line2))!important;background:color-mix(in srgb,var(--dx-green) 9%,transparent)!important}
.icon-btn{border-radius:10px!important}
.new-quote-top{margin-top:0!important}

/* ---------- formulários ---------- */
.field label,.collaborator-label{font-weight:700!important;letter-spacing:.06em!important;font-size:10.5px!important}
.field input,.field select,.field textarea,.service-input,.vehicle-input,.fin-form textarea,.fin-report-select select,.fin-table select{background:color-mix(in srgb,var(--bg2) 88%,transparent)!important;border:1px solid var(--line)!important;border-radius:12px!important;color:var(--text)!important;padding:12px 14px!important;font-family:var(--font-ui);transition:border-color .2s,box-shadow .2s,background .2s!important}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--line2)!important}
.field input:focus,.field select:focus,.field textarea:focus,.service-input:focus,.vehicle-input:focus{border-color:var(--accent)!important;box-shadow:var(--dx-ring)!important;background:var(--bg2)!important}
::placeholder{color:color-mix(in srgb,var(--muted) 75%,transparent)}
body.light .field input,body.light .field select,body.light .field textarea{background:#fff!important}

/* ---------- abas ---------- */
.tabs{display:inline-flex!important;gap:4px!important;padding:5px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--panel2) 70%,transparent);backdrop-filter:blur(10px);max-width:100%;overflow-x:auto}
.tab{border:1px solid transparent!important;background:transparent!important;border-radius:11px!important;padding:9px 16px!important;font-weight:650!important;font-size:13px!important;color:var(--muted)!important;white-space:nowrap;transition:color .2s,background .2s,box-shadow .2s!important}
.tab:hover{color:var(--text)!important;background:color-mix(in srgb,var(--text) 6%,transparent)!important}
.tab.on{color:var(--text)!important;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 22%,var(--panel)),color-mix(in srgb,var(--accent) 12%,var(--panel)))!important;border-color:color-mix(in srgb,var(--accent) 45%,transparent)!important;box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 16%,transparent)!important}

/* ---------- tabelas e listas ---------- */
.order-table{overflow-x:auto}
.order-row,.quote-row{transition:background .2s}
.order-row:hover,.quote-row:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.status-pill{display:inline-flex!important;align-items:center;justify-content:center;gap:6px;width:max-content;padding:5px 11px!important;border-radius:999px!important;font-size:10.5px!important;font-weight:750;letter-spacing:.02em;border:1px solid var(--line2);background:color-mix(in srgb,var(--panel2) 80%,transparent)}
.status-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.status-pill.good{color:var(--dx-green);border-color:color-mix(in srgb,var(--dx-green) 40%,transparent);background:color-mix(in srgb,var(--dx-green) 10%,transparent)}
.status-pill.bad{color:var(--dx-red);border-color:color-mix(in srgb,var(--dx-red) 40%,transparent);background:color-mix(in srgb,var(--dx-red) 10%,transparent)}
.status-pill.wait{color:var(--dx-amber);border-color:color-mix(in srgb,var(--dx-amber) 40%,transparent);background:color-mix(in srgb,var(--dx-amber) 10%,transparent)}
.table th{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.table tbody tr{transition:background .2s}
.table tbody tr:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}

/* ---------- modais ---------- */
.modal,.overlay-fixed{background:rgba(3,6,10,.62)!important;backdrop-filter:blur(10px) saturate(1.1)!important;animation:nx-fade .25s ease both}
body.light .modal,body.light .overlay-fixed{background:rgba(30,41,59,.38)!important}
.modalbox{border-radius:24px!important;border:1px solid var(--line2)!important;background:linear-gradient(160deg,var(--panel),var(--panel2))!important;box-shadow:var(--dx-shadow-lg)!important;animation:nx-pop .35s var(--ease) both}
.modalhead h2{font-family:var(--font-num);letter-spacing:-.03em}
@keyframes nx-fade{from{opacity:0}to{opacity:1}}
@keyframes nx-pop{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}

/* ---------- avatar e tema (dock flutuante) ---------- */
.utility-controls-fixed .user-avatar-fixed{border-radius:14px!important;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 24%,var(--panel)),var(--panel))!important;box-shadow:0 8px 22px rgba(0,0,0,.25)!important;font-family:var(--font-num);font-weight:700;transition:transform .25s var(--ease),box-shadow .25s!important}
.utility-controls-fixed .user-avatar-fixed:hover{transform:translateY(-2px) scale(1.05)}
.theme-toggle{backdrop-filter:blur(12px);background:var(--dx-glass)!important;transition:transform .3s var(--ease),box-shadow .3s!important}
.theme-toggle:hover{transform:translateY(-3px) rotate(18deg)}

/* ---------- login ---------- */
.login-shell{position:relative;overflow:hidden;background:
  radial-gradient(800px 500px at 50% -10%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 65%),
  radial-gradient(600px 420px at 100% 100%,color-mix(in srgb,var(--dx-cyan) 12%,transparent),transparent 65%),
  var(--bg)!important}
.login-shell::before{content:"";position:absolute;inset:0;background-image:linear-gradient(color-mix(in srgb,var(--text) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--text) 4%,transparent) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse at center,#000 20%,transparent 75%);pointer-events:none}
.login-card{border-radius:26px!important;background:var(--dx-glass)!important;backdrop-filter:blur(24px) saturate(1.3);border:1px solid var(--line2)!important;box-shadow:var(--dx-shadow-lg)!important;animation:nx-pop .7s var(--ease) both}
.login-logo-mark{border-radius:13px!important;box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 35%,transparent)!important}

/* ==========================================================================
   NOVO PAINEL DE CONTROLE (.dx-*)
   ========================================================================== */
.dx{display:flex;flex-direction:column;gap:18px;font-family:var(--font-ui)}
.dx-hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:6px 64px 2px 2px}
.dx-hello small{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.dx-hello small i{width:7px;height:7px;border-radius:50%;background:var(--dx-green);box-shadow:0 0 0 0 color-mix(in srgb,var(--dx-green) 60%,transparent);animation:dx-ping 2.2s infinite}
@keyframes dx-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--dx-green) 55%,transparent)}70%,100%{box-shadow:0 0 0 9px transparent}}
.dx-hello h1{margin:8px 0 6px;font-family:var(--font-num);font-size:clamp(26px,3.4vw,38px);font-weight:700;letter-spacing:-.04em;line-height:1.05}
.dx-hello h1 em{font-style:normal;background:linear-gradient(100deg,var(--accent2),var(--accent) 60%,var(--accent3));-webkit-background-clip:text;background-clip:text;color:transparent}
.dx-hello p{margin:0;color:var(--muted);font-size:14px;max-width:62ch}
.dx-hello p b{color:var(--text);font-weight:700}
.dx-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.dx-kbd{display:inline-flex;gap:3px;margin-left:4px}
.dx-kbd kbd{font-family:var(--font-num);font-size:10.5px;padding:2px 6px;border-radius:6px;border:1px solid var(--line2);background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--muted)}

.dx-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dx-seg{display:inline-flex;padding:4px;gap:2px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--panel2) 75%,transparent);backdrop-filter:blur(8px)}
.dx-seg button{position:relative;border:0;background:transparent;color:var(--muted);font-weight:700;font-size:12.5px;padding:8px 14px;border-radius:10px;transition:color .2s,background .2s,box-shadow .2s}
.dx-seg button:hover{color:var(--text)}
.dx-seg button.on{color:var(--text);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 24%,var(--panel)),color-mix(in srgb,var(--accent) 12%,var(--panel)));box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 18%,transparent),0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent) inset}
.dx-sync{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}

/* KPIs */
.dx-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.dx-kpi{position:relative;overflow:hidden;text-align:left;border:1px solid var(--line);border-radius:20px;padding:18px 18px 14px;background:linear-gradient(160deg,color-mix(in srgb,var(--panel) 94%,transparent),color-mix(in srgb,var(--panel2) 86%,transparent));box-shadow:var(--dx-shadow-sm);color:var(--text);transition:transform .3s var(--ease),border-color .3s,box-shadow .3s;isolation:isolate;min-width:0}
.dx-kpi::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(240px 120px at 100% 0,color-mix(in srgb,var(--k,var(--accent)) 20%,transparent),transparent 70%);opacity:.9;transition:opacity .3s}
.dx-kpi:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--k,var(--accent)) 55%,var(--line));box-shadow:0 1px 0 var(--dx-edge) inset,0 22px 44px color-mix(in srgb,var(--k,var(--accent)) 14%,rgba(0,0,0,.28))}
.dx-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dx-kpi-ico{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:var(--k,var(--accent));background:color-mix(in srgb,var(--k,var(--accent)) 14%,transparent);border:1px solid color-mix(in srgb,var(--k,var(--accent)) 28%,transparent)}
.dx-kpi-ico svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dx-delta{font-family:var(--font-num);font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.dx-delta.up{color:var(--dx-green);background:color-mix(in srgb,var(--dx-green) 12%,transparent)}
.dx-delta.down{color:var(--dx-red);background:color-mix(in srgb,var(--dx-red) 12%,transparent)}
.dx-delta.flat{color:var(--muted);background:color-mix(in srgb,var(--text) 7%,transparent)}
.dx-kpi-label{margin-top:14px;font-size:11px;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.dx-kpi-value{margin-top:4px;font-family:var(--font-num);font-size:clamp(19px,1.6vw,24px);font-weight:700;letter-spacing:-.04em;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dx-kpi-sub{margin-top:3px;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dx-spark{display:block;width:100%;height:34px;margin-top:10px}
.dx-spark path.l{fill:none;stroke:var(--k,var(--accent));stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100;animation:dx-draw 1.2s .15s var(--ease) forwards}
@keyframes dx-draw{to{stroke-dashoffset:0}}

/* grade principal */
.dx-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px}
.dx-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.dx-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.dx-card{position:relative;border:1px solid var(--line);border-radius:22px;padding:20px 22px;background:linear-gradient(160deg,color-mix(in srgb,var(--panel) 94%,transparent),color-mix(in srgb,var(--panel2) 86%,transparent));box-shadow:var(--dx-shadow-sm);min-width:0;transition:border-color .3s,box-shadow .3s}
.dx-card:hover{border-color:color-mix(in srgb,var(--accent) 26%,var(--line))}
.dx-card-h{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.dx-card-h h2{margin:0;font-family:var(--font-num);font-size:17px;font-weight:700;letter-spacing:-.025em}
.dx-card-h p{margin:3px 0 0;font-size:12px;color:var(--muted)}
.dx-kicker{display:block;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:5px}

/* gráfico principal (SVG interativo) */
.dx-chart{position:relative;width:100%}
.dx-chart svg{display:block;width:100%;height:auto;overflow:visible}
.dx-grid-line{stroke:color-mix(in srgb,var(--text) 9%,transparent);stroke-dasharray:3 5}
.dx-axis{fill:var(--muted);font-size:11px;font-family:var(--font-ui);font-weight:600}
.dx-bar{fill:url(#dxBar);transition:opacity .2s,filter .2s;cursor:pointer;transform-origin:bottom;transform-box:fill-box;animation:dx-grow .9s var(--ease) both}
.dx-bar.dim{opacity:.35}
.dx-bar.on{filter:drop-shadow(0 0 12px color-mix(in srgb,var(--accent) 60%,transparent))}
@keyframes dx-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.dx-line{fill:none;stroke:var(--dx-cyan);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100;animation:dx-draw 1.5s .2s var(--ease) forwards}
.dx-dot{fill:var(--bg);stroke:var(--dx-cyan);stroke-width:2.4;transition:r .2s}
.dx-cross{stroke:color-mix(in srgb,var(--text) 28%,transparent);stroke-dasharray:4 4;opacity:0;transition:opacity .15s;pointer-events:none}
.dx-hit{fill:transparent;cursor:pointer}
.dx-tip{position:absolute;pointer-events:none;z-index:5;min-width:170px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--panel3) 94%,transparent);backdrop-filter:blur(14px);border:1px solid var(--line2);box-shadow:0 18px 40px rgba(0,0,0,.35);font-size:12px;opacity:0;transform:translateY(6px);transition:opacity .15s,transform .2s var(--ease)}
.dx-tip.on{opacity:1;transform:none}
.dx-tip b{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.dx-tip div{display:flex;justify-content:space-between;gap:14px;margin-top:4px}
.dx-tip div span{display:flex;align-items:center;gap:7px;color:var(--muted)}
.dx-tip div span i{width:8px;height:8px;border-radius:3px}
.dx-tip div strong{font-family:var(--font-num);font-weight:700}
.dx-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px;font-size:11.5px;color:var(--muted)}
.dx-legend span{display:inline-flex;align-items:center;gap:7px}
.dx-legend i{width:10px;height:10px;border-radius:3px}
.dx-empty{display:grid;place-items:center;gap:8px;text-align:center;padding:42px 14px;color:var(--muted);font-size:13px}
.dx-empty svg{width:42px;height:42px;stroke:var(--line2);fill:none;stroke-width:1.5}

/* donut */
.dx-donut-wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.dx-donut{position:relative;width:176px;height:176px;flex:0 0 auto}
.dx-donut svg{width:100%;height:100%;transform:rotate(-90deg)}
.dx-donut circle.bg{fill:none;stroke:color-mix(in srgb,var(--text) 8%,transparent);stroke-width:15}
.dx-seg-arc{fill:none;stroke-width:15;stroke-linecap:round;cursor:pointer;transition:stroke-width .25s var(--ease),opacity .2s,filter .2s;animation:dx-arc 1.1s var(--ease) both}
.dx-seg-arc:hover,.dx-seg-arc.on{stroke-width:20;filter:drop-shadow(0 0 10px currentColor)}
.dx-seg-arc.dim{opacity:.3}
@keyframes dx-arc{from{stroke-dasharray:0 999}}
.dx-donut-c{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.dx-donut-c b{font-family:var(--font-num);font-size:34px;font-weight:700;letter-spacing:-.05em;line-height:1}
.dx-donut-c small{display:block;margin-top:5px;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.dx-donut-legend{flex:1;min-width:150px;display:grid;gap:8px}
.dx-lg{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 11px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--text);transition:background .2s,border-color .2s}
.dx-lg:hover,.dx-lg.on{background:color-mix(in srgb,var(--c) 10%,transparent);border-color:color-mix(in srgb,var(--c) 35%,transparent)}
.dx-lg i{width:10px;height:10px;border-radius:4px;background:var(--c);box-shadow:0 0 10px var(--c)}
.dx-lg span{flex:1;font-size:13px;font-weight:600}
.dx-lg strong{font-family:var(--font-num);font-weight:700}
.dx-lg small{color:var(--muted);font-size:11px;min-width:34px;text-align:right}

/* atenção */
.dx-alerts{display:grid;gap:10px}
.dx-alert{display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--c) 28%,var(--line));background:linear-gradient(95deg,color-mix(in srgb,var(--c) 11%,transparent),transparent 70%);transition:transform .25s var(--ease),border-color .2s}
.dx-alert:hover{transform:translateX(4px);border-color:var(--c)}
.dx-alert-ico{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;color:var(--c);background:color-mix(in srgb,var(--c) 16%,transparent)}
.dx-alert-ico svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dx-alert div{flex:1;min-width:0}
.dx-alert b{display:block;font-size:13.5px;font-weight:700}
.dx-alert small{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
.dx-alert .btn{flex:0 0 auto}
.dx-ok{display:flex;align-items:center;gap:12px;padding:18px;border-radius:16px;border:1px dashed color-mix(in srgb,var(--dx-green) 40%,var(--line));background:color-mix(in srgb,var(--dx-green) 7%,transparent);color:var(--text);font-size:13.5px}
.dx-ok svg{width:22px;height:22px;stroke:var(--dx-green);fill:none;stroke-width:2;flex:0 0 auto}

/* Open Finance no painel */
.dx-bank{position:relative;overflow:hidden}
.dx-bank::before{content:"";position:absolute;inset:0;background:radial-gradient(420px 220px at 0 0,color-mix(in srgb,var(--dx-cyan) 15%,transparent),transparent 70%);pointer-events:none}
.dx-bank-bal{font-family:var(--font-num);font-size:34px;font-weight:700;letter-spacing:-.045em;margin:4px 0 2px}
.dx-bank-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}
.dx-bank-row div{padding:11px 12px;border-radius:14px;border:1px solid var(--line);background:color-mix(in srgb,var(--bg2) 60%,transparent)}
.dx-bank-row small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dx-bank-row b{font-family:var(--font-num);font-size:16px;letter-spacing:-.02em}
.dx-in{color:var(--dx-green)}.dx-out{color:var(--dx-red)}
.dx-cta{display:grid;gap:12px;justify-items:start}
.dx-cta p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.dx-skel{height:14px;border-radius:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--text) 6%,transparent),color-mix(in srgb,var(--text) 14%,transparent),color-mix(in srgb,var(--text) 6%,transparent));background-size:200% 100%;animation:dx-sk 1.3s linear infinite}
@keyframes dx-sk{to{background-position:-200% 0}}

/* tabela de propostas */
.dx-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.dx-search{position:relative;flex:1 1 220px;min-width:180px}
.dx-search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:var(--muted);fill:none;stroke-width:2;pointer-events:none}
.dx-search input{width:100%;padding:11px 14px 11px 38px;border-radius:13px;border:1px solid var(--line);background:color-mix(in srgb,var(--bg2) 85%,transparent);color:var(--text);transition:border-color .2s,box-shadow .2s}
.dx-search input:focus{border-color:var(--accent);box-shadow:var(--dx-ring)}
.dx-chips{display:flex;gap:6px;flex-wrap:wrap}
.dx-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);font-weight:700;font-size:12px;transition:.2s}
.dx-chip:hover{color:var(--text);border-color:var(--line2)}
.dx-chip.on{color:var(--text);border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent)}
.dx-chip b{font-family:var(--font-num);font-size:11px;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--text) 10%,transparent)}
.dx-table{margin-top:14px;display:grid;gap:8px}
.dx-th,.dx-tr{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(170px,1.5fr) minmax(110px,.8fr) minmax(140px,1fr) minmax(120px,.9fr) minmax(230px,1.3fr);gap:14px;align-items:center}
.dx-th{padding:0 16px;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.dx-th button{border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;padding:0;display:inline-flex;gap:5px;align-items:center}
.dx-th button:hover{color:var(--text)}
.dx-tr{padding:13px 16px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--panel2) 55%,transparent);transition:transform .25s var(--ease),border-color .2s,background .2s,box-shadow .25s;animation:nx-rise .5s var(--ease) both;animation-delay:calc(var(--i,0)*35ms)}
.dx-tr:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 38%,var(--line));background:color-mix(in srgb,var(--accent) 5%,var(--panel2));box-shadow:0 14px 30px rgba(0,0,0,.18)}
.dx-tr[hidden]{display:none}
.dx-doc b{display:block;font-family:var(--font-num);font-weight:700;font-size:14px;letter-spacing:-.01em}
.dx-doc small{display:block;margin-top:2px;font-size:11px;color:var(--muted)}
.dx-client{display:flex;align-items:center;gap:11px;min-width:0}
.dx-av{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;font-family:var(--font-num);font-size:12px;font-weight:700;color:#fff;background:linear-gradient(140deg,var(--h1),var(--h2));box-shadow:0 6px 14px color-mix(in srgb,var(--h1) 30%,transparent)}
.dx-client span{min-width:0;font-weight:650;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dx-client span small{display:block;font-weight:500;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.dx-val{font-family:var(--font-num);font-weight:700;font-size:14.5px;letter-spacing:-.02em}
.dx-val small{display:block;font-family:var(--font-ui);font-size:11px;font-weight:600;color:var(--dx-green);letter-spacing:0}
.dx-act{display:flex;gap:6px;justify-content:flex-end;flex-wrap:nowrap;align-items:center}
.dx-act .btn{margin:0!important;width:auto!important;white-space:nowrap;flex:0 0 auto}
.dx-more{display:flex;justify-content:center;margin-top:14px}
.dx-none{padding:34px 12px;text-align:center;color:var(--muted);border:1px dashed var(--line2);border-radius:16px;font-size:13.5px}
.dx-prog{display:flex;flex-direction:column;gap:6px}
.dx-prog-bar{height:7px;border-radius:99px;background:color-mix(in srgb,var(--text) 9%,transparent);overflow:hidden}
.dx-prog-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent2));width:var(--w,0%);transition:width 1s var(--ease)}
.dx-prog small{font-size:11px;color:var(--muted)}

/* diário / operação / saúde */
.dx-list{display:grid;gap:10px}
.dx-job{display:grid;gap:7px;padding:12px 14px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--panel2) 55%,transparent);text-align:left;color:var(--text);transition:transform .25s var(--ease),border-color .2s}
.dx-job:hover{transform:translateX(4px);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.dx-job-top{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.dx-job-top b{font-weight:700}.dx-job-top span{color:var(--muted);font-family:var(--font-num);font-weight:700}
.dx-job small{color:var(--muted);font-size:11.5px}
.dx-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.dx-stat{padding:14px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--bg2) 55%,transparent);text-align:left;color:var(--text);transition:transform .25s var(--ease),border-color .2s}
button.dx-stat:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.dx-stat b{display:block;font-family:var(--font-num);font-size:26px;font-weight:700;letter-spacing:-.04em}
.dx-stat small{display:block;margin-top:3px;font-size:11px;color:var(--muted);font-weight:600}
.dx-gauge{display:grid;place-items:center;margin:4px 0 6px}
.dx-gauge svg{width:190px;height:auto;overflow:visible}
.dx-gauge .t{fill:none;stroke:color-mix(in srgb,var(--text) 9%,transparent);stroke-width:14;stroke-linecap:round}
.dx-gauge .v{fill:none;stroke:url(#dxGauge);stroke-width:14;stroke-linecap:round;stroke-dasharray:var(--len) 999;animation:dx-gauge 1.4s var(--ease) both}
@keyframes dx-gauge{from{stroke-dasharray:0 999}}
.dx-gauge-c{margin-top:-34px;text-align:center}
.dx-gauge-c b{font-family:var(--font-num);font-size:30px;font-weight:700;letter-spacing:-.05em}
.dx-gauge-c small{display:block;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.dx-minis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
.dx-minis div{padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--bg2) 55%,transparent)}
.dx-minis small{display:block;font-size:10.5px;color:var(--muted);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.dx-minis b{font-family:var(--font-num);font-size:15px;letter-spacing:-.02em}

/* ---------- paleta de comandos e toasts ---------- */
.nx-cmd{position:fixed;inset:0;z-index:100000;display:none;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;background:rgba(3,6,10,.55);backdrop-filter:blur(8px)}
body.light .nx-cmd{background:rgba(30,41,59,.35)}
.nx-cmd.open{display:flex;animation:nx-fade .2s both}
.nx-cmd-box{width:min(620px,100%);border:1px solid var(--line2);border-radius:22px;background:linear-gradient(160deg,var(--panel),var(--panel2));box-shadow:var(--dx-shadow-lg);overflow:hidden;animation:nx-pop .3s var(--ease) both}
.nx-cmd-in{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.nx-cmd-in svg{width:19px;height:19px;stroke:var(--muted);fill:none;stroke-width:2}
.nx-cmd-in input{flex:1;background:transparent;border:0;outline:none;color:var(--text);font-size:15.5px;font-family:var(--font-ui)}
.nx-cmd-in kbd{font-size:10.5px;padding:3px 7px;border-radius:7px;border:1px solid var(--line2);color:var(--muted);font-family:var(--font-num)}
.nx-cmd-list{max-height:min(52vh,420px);overflow:auto;padding:8px}
.nx-cmd-sec{padding:10px 12px 5px;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nx-cmd-it{width:100%;display:flex;align-items:center;gap:13px;padding:11px 12px;border:0;border-radius:12px;background:transparent;color:var(--text);text-align:left;font-size:14px;font-weight:600}
.nx-cmd-it.sel{background:color-mix(in srgb,var(--accent) 16%,transparent)}
.nx-cmd-it .nx-ico{color:var(--muted)}.nx-cmd-it.sel .nx-ico{color:var(--accent)}
.nx-cmd-it small{margin-left:auto;color:var(--muted);font-size:11.5px;font-weight:500}
.nx-cmd-empty{padding:30px;text-align:center;color:var(--muted);font-size:13.5px}
.nx-toasts{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:100001;display:grid;gap:10px;justify-items:center;pointer-events:none}
.nx-toast{display:flex;align-items:center;gap:11px;padding:13px 18px;border-radius:16px;border:1px solid var(--line2);background:color-mix(in srgb,var(--panel3) 94%,transparent);backdrop-filter:blur(16px);box-shadow:var(--dx-shadow-lg);font-size:13.5px;font-weight:600;animation:nx-toast .45s var(--ease) both;pointer-events:auto;max-width:min(92vw,520px)}
.nx-toast i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:12px;font-weight:800;color:#06130c;background:var(--dx-green);flex:0 0 auto}
.nx-toast.err i{background:var(--dx-red);color:#fff}.nx-toast.info i{background:var(--dx-cyan);color:#021018}
.nx-toast.out{animation:nx-toast-out .3s ease both}
@keyframes nx-toast{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:none}}
@keyframes nx-toast-out{to{opacity:0;transform:translateY(10px) scale(.97)}}

/* ---------- Gestão Financeira (Open Finance) ---------- */
.fin-kpis{gap:14px!important}
.fin-alert{border-radius:16px!important;padding:14px 16px!important;backdrop-filter:blur(8px)}
.fin-alert.good{border-color:color-mix(in srgb,var(--dx-green) 45%,transparent);background:color-mix(in srgb,var(--dx-green) 9%,transparent)}
.fin-alert.wait{border-color:color-mix(in srgb,var(--dx-amber) 45%,transparent)!important;background:color-mix(in srgb,var(--dx-amber) 9%,transparent)!important}
.fin-alert.bad{border-color:color-mix(in srgb,var(--dx-red) 45%,transparent)!important;background:color-mix(in srgb,var(--dx-red) 9%,transparent)!important}
.fin-bartrack i{border-radius:8px 8px 3px 3px!important;transition:filter .2s,transform .25s var(--ease);transform-origin:bottom}
.fin-bargroup:hover .fin-bartrack i{filter:brightness(1.15) drop-shadow(0 0 10px currentColor);transform:scaleY(1.03)}
.fin-bartrack i.in,.fin-legend i.in{background:linear-gradient(180deg,#6ee7b7,#10b981)!important}
.fin-bartrack i.out,.fin-legend i.out{background:linear-gradient(180deg,#fda4af,#f43f5e)!important}
.fin-hbar-track{height:10px!important}
.fin-hbar-track i{background:linear-gradient(90deg,var(--accent2),var(--accent))!important}
.fin-conn{padding:14px 4px!important;transition:background .2s;border-radius:12px}
.fin-conn:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.fin-badge{font-family:var(--font-num)}
.fin-hero{position:relative;overflow:hidden;padding:48px 24px!important}
.fin-hero>*{position:relative}
.fin-hero .actions{justify-content:center;display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.fin-hero .actions .btn{margin-top:0}
.fin-hero-art{position:absolute!important;inset:0;pointer-events:none;overflow:hidden}
.fin-hero-art span{position:absolute;border-radius:50%;filter:blur(50px);opacity:.5}
.fin-hero-art span:nth-child(1){width:260px;height:260px;left:-60px;top:-80px;background:color-mix(in srgb,var(--accent) 38%,transparent)}
.fin-hero-art span:nth-child(2){width:300px;height:300px;right:-80px;bottom:-120px;background:color-mix(in srgb,var(--dx-cyan) 30%,transparent)}
.fin-hero-art span:nth-child(3){width:160px;height:160px;left:45%;top:-60px;background:color-mix(in srgb,var(--dx-violet) 24%,transparent)}
.fin-activate{border-color:color-mix(in srgb,var(--accent) 38%,var(--line))!important;background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 7%,var(--panel)),var(--panel2))!important}
.fin-activate.is-real{border-color:color-mix(in srgb,var(--dx-green) 35%,var(--line))!important;background:linear-gradient(150deg,color-mix(in srgb,var(--dx-green) 6%,var(--panel)),var(--panel2))!important}
.fin-checks{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}
.fin-check{display:flex;gap:12px;align-items:flex-start;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--bg2) 55%,transparent)}
.fin-check i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:12px;flex:0 0 auto;margin-top:1px}
.fin-check.ok i{background:color-mix(in srgb,var(--dx-green) 20%,transparent);color:var(--dx-green)}
.fin-check.todo i{background:color-mix(in srgb,var(--dx-amber) 22%,transparent);color:var(--dx-amber)}
.fin-check.opt i{background:color-mix(in srgb,var(--text) 10%,transparent);color:var(--muted)}
.fin-check b{display:block;font-size:13.5px}.fin-check small{display:block;margin-top:2px;color:var(--muted);font-size:12px;line-height:1.45}
.fin-steps{counter-reset:s;list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.fin-steps li{counter-increment:s;position:relative;padding:14px 14px 14px 56px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--bg2) 55%,transparent)}
.fin-steps li::before{content:counter(s);position:absolute;left:14px;top:13px;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-family:var(--font-num);font-weight:700;color:#1a1200;background:linear-gradient(140deg,var(--accent2),var(--accent))}
.fin-steps b{display:block;font-size:14px}.fin-steps small{display:block;margin-top:4px;color:var(--muted);font-size:12.5px;line-height:1.55}
.fin-steps code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11.5px;padding:2px 7px;border-radius:7px;background:color-mix(in srgb,var(--text) 9%,transparent);color:var(--text)}
.fin-steps a{color:var(--accent)}
.fin-manual{margin-top:14px;border:1px dashed var(--line2);border-radius:14px;padding:11px 14px}
.fin-manual summary{cursor:pointer;font-weight:650;font-size:13px;color:var(--muted)}
.fin-manual[open] summary{color:var(--text);margin-bottom:10px}
.fin-manual-row{display:flex;gap:10px;flex-wrap:wrap}
.fin-manual-row input{flex:1 1 260px;padding:11px 13px;border-radius:12px;border:1px solid var(--line);background:var(--bg2);color:var(--text)}

/* ---------- responsivo ---------- */
@media(max-width:1380px){.dx-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1180px){
  .dx-grid,.dx-grid.three{grid-template-columns:minmax(0,1fr)}
  .dx-grid.two{grid-template-columns:minmax(0,1fr)}
  .dx-th{display:none}
  .dx-tr{grid-template-columns:1fr 1fr;gap:10px 14px}
  .dx-tr .dx-act{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}
}
@media(max-width:900px){
  .side{position:fixed!important;inset:0 auto 0 0!important;height:100vh!important;overflow-y:auto;z-index:20!important;transform:translateX(-105%);width:min(82vw,300px)!important;box-shadow:var(--dx-shadow-lg)}
  .app{display:block!important}
  body.nx-menu-open .side{transform:none}
  body.side-collapsed{--side-w:0px}
  body.side-collapsed .nx-brandtxt,body.side-collapsed .nav button span,body.side-collapsed .side-footer{display:revert!important}
  .main{margin-left:0!important;padding:16px!important;padding-top:74px!important}
  .nx-collapse{display:none}
  .nx-mobilebar{display:flex;position:fixed;left:0;right:0;top:0;z-index:30;align-items:center;gap:12px;padding:12px 16px;background:var(--dx-glass);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
  .nx-mobilebar button{width:40px;height:40px;border-radius:12px;border:1px solid var(--line2);background:var(--panel2);color:var(--text);display:grid;place-items:center}
  .nx-mobilebar button svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
  .nx-mobilebar b{font-family:var(--font-num);font-size:18px;letter-spacing:-.03em}
  body.nx-menu-open .nx-scrim{display:block;position:fixed;inset:0;z-index:9;background:rgba(3,6,10,.55);backdrop-filter:blur(4px)}
  .top{padding-right:56px!important}
  .dx-hero{padding-right:56px}
  .dx-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tabs{display:flex!important}
}
@media(max-width:560px){
  .dx-kpis{grid-template-columns:minmax(0,1fr)}
  .dx-tr{grid-template-columns:1fr}
  .dx-donut-wrap{justify-content:center}
  .dx-stat-row{grid-template-columns:1fr}
}

/* ---------- acessibilidade e impressão ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .dx-spark path.l,.dx-line{stroke-dashoffset:0!important}
}
@media print{
  .nx-mobilebar,.nx-scrim,.nx-cmd,.nx-toasts,.nx-collapse{display:none!important}
  body{background:#fff!important}
}

/* espaçamento entre cartões empilhados nos módulos antigos */
.main>.card+.card,.main>.card+.fin-alert,.main>.fin-alert+.card{margin-top:16px}
.fin-tabs{margin-bottom:16px!important}

/* V6.32 — logo recolhe/expande o menu */
button.nx-logo{border:0;cursor:pointer;padding:0;transition:transform .2s var(--ease),box-shadow .2s}
button.nx-logo:hover{transform:translateY(-1px) scale(1.06)}
button.nx-logo:active{transform:scale(.96)}
button.nx-logo:focus-visible{outline:2px solid var(--accent2);outline-offset:3px}
@media(max-width:900px){button.nx-logo{cursor:default;pointer-events:none}}

/* V6.32 — cartões do painel alinhados */
.dx-kpi{display:flex!important;flex-direction:column;justify-content:flex-start!important;align-items:stretch;min-height:178px}
.dx-kpi-top{min-height:34px}
.dx-kpi-label{min-height:2.7em;display:flex;align-items:flex-end;line-height:1.3}
.dx-kpi-sub{min-height:16px}
.dx-kpi svg.spark,.dx-kpi .dx-spark{margin-top:auto}

/* ==========================================================================
   V6.35 · Painel de Controle personalizável
   Só afeta o Painel (.dx-fit, .dxc-*). Cada cartão é um "container": o conteúdo
   se adapta ao espaço disponível (quanto mais itens na tela, mais enxuto).
   ========================================================================== */
.dx-custom svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.dx-custom{display:inline-flex;align-items:center;gap:8px}

/* ---------- modo "ajustar à tela" ---------- */
.dx-fit{height:calc(100vh - 56px);height:calc(100dvh - 56px);min-height:calc(112px + var(--rows,2)*150px);gap:14px}
.dx-fit .dx-hero{align-items:center;gap:12px 18px;padding-top:0;padding-bottom:0;flex:0 0 auto}
.dx-fit .dx-hello{margin-right:auto}
.dx-fit .dx-hello h1{margin:5px 0 0;font-size:clamp(22px,2.1vw,30px)}
.dxc-stage{flex:1;min-height:0;display:flex;flex-direction:column;gap:14px}
.dxc-row{display:flex;gap:14px;min-height:0;min-width:0}
.dxc-tile{position:relative;container:dxt/size;min-width:0;min-height:0}
.dxc-tile>.dx-card,.dxc-tile>.dx-kpi{position:absolute!important;inset:0;width:auto;height:auto;margin:0;min-height:0!important;box-sizing:border-box;overflow:hidden;display:flex!important;flex-direction:column}
.dxc-tile>.dx-card{padding:clamp(10px,4cqmin,20px) clamp(12px,5cqmin,22px);border-radius:clamp(13px,5cqmin,22px)}
.dxc-tile>.dx-kpi{padding:clamp(9px,4cqmin,18px) clamp(12px,5cqmin,20px);border-radius:clamp(13px,5cqmin,20px)}
.dx-fit.dxc-anim .dxc-tile>*{animation:dxc-in .45s var(--ease) both}
@keyframes dxc-in{from{opacity:0;transform:scale(.965)}to{opacity:1;transform:none}}

/* cabeçalhos dos cartões */
.dx-fit .dx-card-h{flex:0 0 auto;flex-wrap:nowrap;margin-bottom:clamp(6px,2.2cqmin,14px);gap:10px}
.dx-fit .dx-card-h>div:first-child{min-width:0}
.dx-fit .dx-card-h h2{font-size:clamp(13px,4.6cqmin,19px);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dx-fit .dx-kicker{font-size:clamp(8.5px,2.6cqmin,10px);margin-bottom:3px}
.dx-fit .dx-card-h .dx-seg button{padding:clamp(5px,1.4cqmin,8px) clamp(9px,2.4cqmin,14px)}

/* indicadores (KPI) */
.dx-fit .dx-kpi-top{min-height:0}
.dx-fit .dx-kpi-label{min-height:0;margin-top:auto;padding-top:clamp(4px,1.6cqh,12px);font-size:clamp(9.5px,3cqmin,11.5px)}
.dx-fit .dx-kpi-value{margin-top:clamp(2px,.8cqh,6px);font-size:clamp(18px,min(13cqw,20cqh),104px)}
.dx-fit .dx-kpi-sub{min-height:0;font-size:clamp(10px,2.8cqmin,12px)}
.dx-fit .dx-kpi .dx-spark{flex:0 0 auto;height:clamp(18px,20cqh,56px);margin-top:clamp(6px,2cqh,14px)}
.dx-fit .dx-kpi-ico{width:clamp(24px,7cqmin,36px);height:clamp(24px,7cqmin,36px)}
@container dxt (max-height:150px){.dx-kpi .dx-spark{display:none}}
@container dxt (max-height:128px){
  .dx-kpi-ico{position:absolute;right:12px;top:11px;width:26px;height:26px;border-radius:9px}
  .dx-kpi-ico svg{width:14px;height:14px}
  .dx-delta{display:none}
  .dx-kpi-top{height:0}
  .dx-kpi-label{padding-top:0}
}
@container dxt (max-height:92px){.dx-kpi-sub,.dx-kpi-ico{display:none}}
@container dxt (max-width:150px){.dx-delta{display:none}}

/* esconde botões do cabeçalho quando o cartão é pequeno */
@container dxt (max-height:230px){.dx-card-h p{display:none}}
@container dxt (max-height:150px){.dx-card-h .dx-kicker,.dx-card-h .btn,.dx-card-h .dx-seg{display:none}}
@container dxt (max-width:400px){.dx-card-h .btn,.dx-card-h .dx-seg{display:none}}

/* gráfico */
.dx-fit #dxMain{flex:1;min-height:0;display:flex;flex-direction:column}
.dx-fit .dx-chart{flex:1;min-height:0;position:relative}
.dx-fit .dx-chart svg{position:absolute;inset:0;width:100%;height:100%}
.dx-fit .dx-legend{flex:0 0 auto;margin-top:4px}
.dx-fit .dx-empty{flex:1;padding:0}
.dx-still .dx-bar,.dx-still .dx-dot{animation:none!important}
.dx-still .dx-line{animation:none!important;stroke-dashoffset:0!important}
@container dxt (max-height:210px){.dx-legend{display:none}}
@container dxt (max-width:520px){.dx-legend span:last-child{display:none}}

/* funil (rosca) */
.dx-fit .dx-card>.dx-donut-wrap{flex:1;min-height:0;flex-wrap:nowrap;justify-content:center;gap:clamp(10px,4cqmin,22px)}
.dx-fit .dx-donut{--d:clamp(64px,min(42cqw,calc(100cqh - 112px)),250px);width:var(--d);height:var(--d)}
.dx-fit .dx-donut-c b{font-size:calc(var(--d)*.2)}
.dx-fit .dx-donut-c small{font-size:clamp(8px,calc(var(--d)*.058),11px);margin-top:2px}
.dx-fit .dx-donut-legend{min-width:0;gap:clamp(3px,1.2cqmin,8px)}
.dx-fit .dx-lg{padding:clamp(4px,1.5cqmin,9px) 10px}
@container dxt (max-width:330px){
  .dx-donut-wrap{flex-direction:column}
  .dx-donut{--d:clamp(64px,min(58cqw,calc(100cqh - 240px)),200px)}
  .dx-donut-legend{width:100%;flex:none}
  .dx-lg small{display:none}
}
@container dxt (max-width:330px) and (max-height:310px){.dx-donut-legend{display:none}.dx-donut{--d:clamp(64px,min(58cqw,calc(100cqh - 112px)),200px)}}
@container dxt (max-height:200px){.dx-lg small{display:none}}

/* alertas */
.dx-fit #dxAlerts{flex:1;min-height:0;overflow:hidden}
.dx-fit .dx-alerts{gap:clamp(5px,1.6cqmin,10px);grid-auto-rows:max-content}
.dx-fit .dx-alert{padding:clamp(7px,2cqmin,13px) clamp(9px,2.6cqmin,14px);gap:clamp(8px,2.4cqmin,13px)}
.dx-fit .dx-alert-ico{width:clamp(26px,7cqmin,38px);height:clamp(26px,7cqmin,38px)}
.dx-fit .dx-alert b{font-size:clamp(11.5px,3.4cqmin,13.5px)}
.dx-fit .dx-ok{padding:clamp(10px,3cqmin,18px)}
@container dxt (max-height:250px){.dx-alert small{display:none}}
@container dxt (max-height:175px){.dx-alert .btn,.dx-ok .muted{display:none}}
@container dxt (max-width:380px){.dx-alert .btn{display:none}}

/* caixa do banco */
.dx-fit .dx-bank-bal{font-size:clamp(22px,min(12cqw,17cqh),68px);margin:2px 0}
.dx-fit .dx-bank-row{margin-top:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(6px,2cqmin,10px)}
.dx-fit .dx-bank-row div{padding:clamp(6px,2cqmin,11px) 12px}
.dx-fit .dx-cta p{font-size:clamp(11px,3.2cqmin,13px)}
@container dxt (max-height:300px){.dx-bank-row div:nth-child(n+3){display:none}}
@container dxt (max-height:215px){.dx-bank-row{display:none}}
@container dxt (max-height:190px){.dx-cta p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}
@container dxt (max-height:150px){.dx-cta p{display:none}}

/* tabela de orçamentos */
.dx-fit .dx-table{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:clamp(6px,2cqmin,12px);gap:6px}
.dx-fit #dxRows{flex:1;min-height:0;overflow:auto;align-content:start;grid-auto-rows:max-content;gap:6px!important;padding-right:2px}
.dx-fit .dx-tools{flex:0 0 auto}
.dx-fit .dx-search input{padding:8px 12px 8px 36px}
.dx-fit .dx-chip{padding:6px 11px}
.dx-fit .dx-th,.dx-fit .dx-tr{display:grid;grid-template-columns:minmax(110px,1.1fr) minmax(130px,1.5fr) minmax(90px,.8fr) minmax(120px,1fr) minmax(100px,.9fr) minmax(190px,1.3fr);gap:12px}
.dx-fit .dx-th{padding:0 14px;flex:0 0 auto}
.dx-fit .dx-tr{padding:clamp(7px,1.4cqh,13px) 14px;border-radius:13px;animation:none;cursor:pointer}
@container dxt (max-height:300px){.dx-tools{display:none}}
@container dxt (max-height:200px){.dx-th{display:none}}
@container dxt (max-width:900px){
  .dx-fit .dx-th,.dx-fit .dx-tr{grid-template-columns:minmax(100px,1fr) minmax(120px,1.4fr) minmax(86px,.8fr) minmax(110px,1fr)}
  .dx-th>:nth-child(n+5),.dx-tr>:nth-child(n+5){display:none}
}
@container dxt (max-width:560px){
  .dx-fit .dx-th,.dx-fit .dx-tr{grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr) minmax(0,1fr)}
  .dx-th>:nth-child(1),.dx-tr>:nth-child(1){display:none}
}

/* obras em execução */
.dx-fit .dx-list{flex:1;min-height:0;overflow:hidden;align-content:start;grid-auto-rows:max-content;gap:clamp(5px,1.6cqmin,10px)}
.dx-fit .dx-job{padding:clamp(7px,2cqmin,12px) 14px;gap:5px}
.dx-fit .dx-none{flex:1;display:grid;place-items:center;padding:12px;font-size:clamp(11px,3cqmin,13.5px)}
@container dxt (max-height:230px){.dx-job small{display:none}}

/* margem e custos */
.dxc-tile[data-w="health"]>.dx-card{--gw:clamp(90px,min(64cqw,calc((100cqh - 190px)*1.7)),250px)}
.dx-fit .dx-gauge{flex:0 0 auto;margin:0}
.dx-fit .dx-gauge svg{width:var(--gw)}
.dx-fit .dx-gauge-c{margin-top:calc(var(--gw)*-.18)}
.dx-fit .dx-gauge-c b{font-size:clamp(18px,calc(var(--gw)*.16),34px)}
.dx-fit .dx-gauge-c small{font-size:clamp(8.5px,2.6cqmin,10.5px)}
.dx-fit .dx-minis{margin-top:auto;gap:clamp(6px,2cqmin,10px)}
.dx-fit .dx-minis div{padding:clamp(6px,2cqmin,10px) 12px}
@container dxt (max-height:420px){.dx-minis div:nth-child(n+3){display:none}}
@container dxt (max-height:250px){.dx-minis{display:none}}

/* ---------- janela "Personalizar" ---------- */
.dxc{position:fixed;inset:0 0 0 auto;width:min(404px,100vw);z-index:1000;pointer-events:none}
.dxc-panel{position:absolute;inset:0;display:flex;flex-direction:column;gap:14px;padding:22px 20px 18px;border-left:1px solid var(--line2);background:linear-gradient(170deg,var(--panel),var(--panel2));box-shadow:-24px 0 60px rgba(0,0,0,.34);transform:translateX(104%);transition:transform .38s var(--ease);pointer-events:auto}
.dxc.open .dxc-panel{transform:none}
body.dxc-open .main{margin-right:404px;transition:margin-left .3s var(--ease),margin-right .38s var(--ease)}
.dxc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.dxc-head h2{margin:0;font-family:var(--font-num);font-size:20px;font-weight:700;letter-spacing:-.03em}
.dxc-head p{margin:6px 0 0;font-size:12.5px;line-height:1.5;color:var(--muted);max-width:32ch}
.dxc-x{flex:0 0 auto;width:36px;height:36px;border-radius:11px;border:1px solid var(--line2);background:var(--panel2);color:var(--text);display:grid;place-items:center;transition:.2s}
.dxc-x:hover{border-color:var(--accent);color:var(--accent)}
.dxc-x svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.dxc-mode{display:flex;width:100%}
.dxc-mode button{flex:1}
.dxc-prev{display:grid;gap:8px;justify-items:center}
.dxc-prev-box{width:100%;padding:10px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--bg2) 70%,transparent)}
.dxc-screen{display:flex;flex-direction:column;gap:5px;width:100%;max-height:176px;margin:0 auto}
.dxc-prow{display:flex;gap:5px;min-height:0}
.dxc-ptile{container-type:size;flex:1;min-width:0;border-radius:7px;display:grid;place-items:center;color:var(--k);border:1px solid color-mix(in srgb,var(--k) 42%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--k) 26%,transparent),color-mix(in srgb,var(--k) 8%,transparent));transition:flex .3s var(--ease)}
.dxc-ptile svg{width:clamp(8px,52cqmin,18px);height:clamp(8px,52cqmin,18px);stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@container (max-height:15px){.dxc-ptile svg{display:none}}
.dxc-full{padding:22px 10px;text-align:center;font-size:12.5px;line-height:1.55;color:var(--muted)}
.dxc-prev small{font-size:11.5px;color:var(--muted)}
.dxc-presets{display:flex;flex-wrap:wrap;gap:6px}
.dxc-presets .dx-chip{padding:7px 12px}
.dxc-scroll{flex:1;min-height:0;overflow:auto;display:grid;gap:16px;align-content:start;margin-right:-8px;padding-right:8px}
.dxc-gh{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}
.dxc-gh h3{margin:0;font-family:var(--font-num);font-size:13.5px;font-weight:700;letter-spacing:-.01em}
.dxc-cnt{font-size:11.5px;color:var(--muted)}
.dxc-link{margin-left:auto;border:0;background:transparent;color:var(--accent);font-size:12px;font-weight:700;padding:2px 0}
.dxc-link:hover{text-decoration:underline}
.dxc-list{display:grid;gap:7px}
.dxc-it{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 12px;border-radius:15px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel2) 55%,transparent);color:var(--text);transition:border-color .2s,background .2s,transform .2s var(--ease)}
.dxc-it:hover{border-color:color-mix(in srgb,var(--k) 45%,var(--line));transform:translateX(2px)}
.dxc-it.on{border-color:color-mix(in srgb,var(--k) 50%,var(--line));background:linear-gradient(95deg,color-mix(in srgb,var(--k) 13%,transparent),color-mix(in srgb,var(--k) 3%,transparent))}
.dxc-ico{flex:0 0 auto;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:var(--k);background:color-mix(in srgb,var(--k) 15%,transparent);opacity:.7;transition:opacity .2s}
.dxc-it.on .dxc-ico{opacity:1}
.dxc-ico svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dxc-txt{flex:1;min-width:0;display:grid;gap:2px}
.dxc-txt b{font-size:13.5px;font-weight:700}
.dxc-txt small{font-size:11.5px;color:var(--muted);line-height:1.35}
.dxc-sw{flex:0 0 auto;width:38px;height:22px;border-radius:99px;background:color-mix(in srgb,var(--text) 14%,transparent);position:relative;transition:background .25s}
.dxc-sw i{position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.35);transition:transform .25s var(--ease)}
.dxc-it.on .dxc-sw{background:var(--k)}
.dxc-it.on .dxc-sw i{transform:translateX(16px)}
.dxc-foot{display:flex;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid var(--line)}
.dxc-foot .btn{margin:0}

/* telas pequenas: o painel ajustado vira lista com rolagem; a janela ocupa a tela */
@media(max-width:900px){
  .dx-fit{height:auto;min-height:0}
  .dxc-stage{flex:none}
  .dxc-row{flex-direction:column;flex:none!important}
  .dxc-tile{flex:none!important;height:300px}
  .dxc-tile[data-w="table"]{height:440px}
  .dxc-row[data-kind="k"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .dxc-row[data-kind="k"] .dxc-tile{height:150px}
  body.dxc-open .main{margin-right:0!important}
  .dxc{width:100vw}
}
@media print{.dxc{display:none!important}}

/* ajustes finos da janela Personalizar */
body.dxc-open .utility-controls-fixed{opacity:0;pointer-events:none;transition:opacity .2s}
.dxc-panel{gap:12px;padding:20px 18px 16px}
.dxc-head p{margin-top:4px;font-size:12px;max-width:none}
.dxc-screen{max-height:128px}
.dxc-prev-box{padding:8px}
.dxc-prev{gap:6px}
.dxc-full{padding:12px 8px;font-size:12px}
.dxc-presets{gap:5px}
.dxc-presets .dx-chip{padding:5px 11px;font-size:11.5px}
.dxc-it{padding:8px 11px}
.dxc-ico{width:32px;height:32px}
.dx-fit .dx-hero{padding-right:96px}
body.dxc-open .dx-fit .dx-hero{padding-right:0}
@container dxt (max-width:640px){.dx-legend span:last-child{display:none}}
@media(max-width:900px){.dx-fit .dx-hero{padding-right:56px}}

/* correções de densidade (telas pequenas) */
.dx-fit .dx-cta{min-width:0;grid-template-columns:minmax(0,1fr)}
.dx-fit .dx-cta .btn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@container dxt (max-height:300px){.dx-donut-c small{display:none}}
@media(max-width:1500px) and (min-width:901px){
  .dx-fit .dx-hero{justify-content:space-between}
  .dx-fit .dx-hero .dx-actions{order:2}
  .dx-fit .dx-hero>.dx-seg{order:3}
  .dx-fit .dx-hello small{display:none}
  .dx-fit .dx-kbd{display:none}
  .dx-fit{gap:10px}
}
.dx-fit .dx-cta .btn{white-space:normal;text-align:center;line-height:1.25;width:auto}
@container dxt (max-width:340px){.dx-cta .btn{width:100%}}
.dx-fit .dx-cta .btn{white-space:normal!important;min-width:0!important;max-width:100%!important}
/* alinhamento entre indicadores com e sem gráfico/linha de apoio */
.dx-fit .dx-kpi-sub{min-height:1.35em}
.dx-fit .dx-kpi:not(:has(.dx-spark))::after{content:"";flex:0 0 auto;height:clamp(18px,20cqh,56px);margin-top:clamp(6px,2cqh,14px)}
@container dxt (max-height:150px){.dx-kpi::after{display:none}.dx-kpi-sub{min-height:0}}
@media(max-width:900px){.dxc-row[data-kind="k"] .dxc-tile:last-child:nth-child(odd){grid-column:1/-1}}
