@import url("https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=Poppins:wght@500;600;700&display=swap");

:root{
  --brand-from:#1da049;--brand-to:#32d56e;--brand-gradient:linear-gradient(135deg,var(--brand-from),var(--brand-to));
  --background:#f9fbfa;--foreground:#0f1914;--card:#fff;--popover:#fff;--primary:#1da049;--primary-foreground:#fff;
  --secondary:#edf3ef;--muted:#f0f4f2;--muted-foreground:#63746b;--accent:#ebf4ee;--destructive:#e63333;
  --border:#e2e9e4;--input:#d7e0da;--ring:#1da049;--radius:.75rem;
  --sidebar:#f4f8f5;--sidebar-foreground:#313f38;--sidebar-accent:#e4f1e9;--sidebar-border:#dfe7e2;
  --glass-hover:#ffffffa6;--glass-active:linear-gradient(120deg,#1d9f4d29,#34d56f0f);--glass-active-ring:#1d9f4d47;--glass-active-text:#137a35;
  --c-blue:#2a78d6;--c-orange:#eb6834;--c-teal:#1baf7a;--c-amber:#eda100;--c-pink:#e87ba4;--c-violet:#7c5cf0;--c-red:#e63333;--c-cyan:#0ea5b7;
  --warn-bg:#fff6e0;--warn-fg:#8a5a00;--warn-border:#f3d99a;
  --scroll:#b2bdb8;
}
.dark{
  --background:#0a0f0d;--foreground:#f0f4f2;--card:#111714;--popover:#141a17;--primary:#32d56e;--primary-foreground:#09150f;
  --secondary:#1f2824;--muted:#1d2521;--muted-foreground:#96a69d;--accent:#1f2924;--destructive:#e64d4d;
  --border:#222b26;--input:#2b3630;--ring:#32d56e;
  --sidebar:#080c0a;--sidebar-foreground:#dde3df;--sidebar-accent:#1a231f;--sidebar-border:#1b221f;
  --glass-hover:#ffffff0f;--glass-active:linear-gradient(120deg,#34d56f38,#34d56f0d);--glass-active-ring:#34d56f59;--glass-active-text:#5ee38f;
  --c-blue:#3987e5;--c-orange:#d95926;--c-teal:#199e70;--c-amber:#c98500;--c-pink:#d55181;--c-violet:#8b6cf5;--c-red:#e64d4d;--c-cyan:#22b8cc;
  --warn-bg:#2a2108;--warn-fg:#f5c451;--warn-border:#4a3a10;
  --scroll:#3d4842;color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:"Instrument Sans",ui-sans-serif,system-ui,sans-serif;background:var(--background);color:var(--foreground);font-size:14px;-webkit-font-smoothing:antialiased}
h1,h2,h3,.brand,.kpi-value{font-family:Poppins,"Instrument Sans",sans-serif}
a{color:var(--primary);text-decoration:none}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}
.hidden{display:none!important}
.muted{color:var(--muted-foreground)}
svg.i{width:16px;height:16px;flex-shrink:0;vertical-align:-3px}
.tab svg.i{width:18px;height:18px}
.alert svg.i{width:18px;height:18px}
.small{font-size:12px}.xs{font-size:11px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.row{display:flex;gap:12px;align-items:center}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1}
.col{display:flex;flex-direction:column;gap:12px}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.g4,.g3,.g2{grid-template-columns:1fr}}

/* ---------- layout ---------- */
.app{display:flex;min-height:100vh}
.sidebar{width:236px;flex-shrink:0;background:var(--sidebar);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;transition:width .2s}
.sidebar .logo{display:flex;align-items:center;gap:10px;padding:18px 18px 10px}
.logo-mark{width:30px;height:30px;border-radius:9px;background:var(--brand-gradient);display:grid;place-items:center;color:#fff;box-shadow:0 6px 18px #1da04940}
.brand{font-weight:700;font-size:17px;letter-spacing:-.2px}.brand b{color:var(--primary)}
.ws-switch{margin:6px 12px 8px;padding:9px 10px;border:1px solid var(--sidebar-border);border-radius:10px;display:flex;align-items:center;gap:8px;cursor:pointer;background:var(--card);font-weight:600;font-size:13px;position:relative}
.ws-switch:hover{border-color:var(--glass-active-ring)}
.ws-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px #32d56e22}
.nav{flex:1;overflow:auto;padding:4px 10px 10px}
.nav-section{font-size:11px;font-weight:600;color:var(--muted-foreground);padding:14px 10px 6px}
.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;color:var(--sidebar-foreground);font-weight:500;font-size:13.5px;border:1px solid transparent;margin-bottom:2px}
.nav a:hover{background:var(--glass-hover)}
.nav a.active{background:var(--glass-active);border-color:var(--glass-active-ring);color:var(--glass-active-text);font-weight:600}
.nav a svg{width:17px;height:17px;flex-shrink:0;opacity:.9}
.nav .badge{margin-left:auto}
.side-foot{border-top:1px solid var(--sidebar-border);padding:10px 12px;display:flex;align-items:center;gap:9px}
.avatar{width:30px;height:30px;border-radius:9px;background:var(--secondary);display:grid;place-items:center;font-weight:700;font-size:12px}
.collapsed .sidebar{width:68px}
.collapsed .sidebar .brand,.collapsed .sidebar .nav-section,.collapsed .sidebar .nav a span,.collapsed .ws-switch span,.collapsed .side-foot .who,.collapsed .nav .badge{display:none}
.collapsed .nav a{justify-content:center}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:12px 22px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--background) 85%,transparent);backdrop-filter:blur(10px)}
.topbar h1{font-size:17px;margin:0;font-weight:600}
.content{padding:20px 22px 60px;max-width:1500px;width:100%}
.demo-banner{background:var(--warn-bg);color:var(--warn-fg);border-bottom:1px solid var(--warn-border);padding:7px 22px;font-size:12.5px;font-weight:500}

/* ---------- componentes ---------- */
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px}
.card h3{margin:0 0 4px;font-size:14.5px;font-weight:600}
.card .sub{color:var(--muted-foreground);font-size:12.5px;margin-bottom:12px}
.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--foreground);font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;white-space:nowrap}
.btn:hover{border-color:var(--glass-active-ring);background:var(--glass-hover)}
.btn svg{width:15px;height:15px}
.btn.primary{background:var(--brand-gradient);color:#fff;border-color:transparent;box-shadow:0 6px 18px #1da04933}
.btn.primary:hover{filter:brightness(1.05)}
.btn.danger{color:var(--destructive)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.sm{padding:5px 9px;font-size:12px;border-radius:8px}
.btn:disabled{opacity:.55;cursor:not-allowed}
.icon-btn{width:34px;height:34px;padding:0;justify-content:center}
input,select,textarea{font-family:inherit;font-size:13px;background:var(--background);color:var(--foreground);border:1px solid var(--input);border-radius:9px;padding:8px 10px;outline:none;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--ring);box-shadow:0 0 0 3px #32d56e22}
input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}
label.f{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--muted-foreground)}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:16px}
.filters label.f{min-width:150px}
.filters>.grow{min-width:0}
.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:600;background:var(--secondary);white-space:nowrap}
.pill.green{background:#1da04922;color:var(--glass-active-text)}
.pill.red{background:#e6333322;color:var(--c-red)}
.pill.amber{background:#eda10022;color:var(--c-amber)}
.pill.blue{background:#2a78d622;color:var(--c-blue)}
.pill.gray{background:var(--secondary);color:var(--muted-foreground)}
.pill.violet{background:#7c5cf022;color:var(--c-violet)}
.alert{display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:11px;background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-fg);font-size:13px;margin-bottom:14px;flex-wrap:wrap}
.alert.info{background:var(--accent);border-color:var(--glass-active-ring);color:var(--foreground)}
.alert.err{background:#e6333314;border-color:#e6333344;color:var(--c-red)}
.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.tab{flex:1;min-width:140px;display:flex;align-items:center;gap:9px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--card);cursor:pointer;font-weight:600}
.tab.active{background:var(--brand-gradient);color:#fff;border-color:transparent;box-shadow:0 8px 22px #1da04930}
.tab .cnt{margin-left:auto;font-size:11px;opacity:.8}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 15px;position:relative;min-height:112px;display:flex;flex-direction:column}
.kpi .k-head{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;color:var(--muted-foreground)}
.kpi .k-ico{width:28px;height:28px;border-radius:8px;display:grid;place-items:center}
.kpi .k-ico svg{width:15px;height:15px}
.kpi .kpi-value{font-size:22px;font-weight:700;margin-top:auto;padding-top:12px;letter-spacing:-.3px}
.kpi .k-foot{font-size:11.5px;color:var(--muted-foreground);margin-top:3px}
.kpi .k-info{position:absolute;right:12px;top:12px;color:var(--muted-foreground);cursor:help;font-size:11px;border:1px solid var(--border);border-radius:50%;width:17px;height:17px;display:grid;place-items:center}
.kpi.hero{grid-column:span 2;background:var(--brand-gradient);color:#fff;border:none;box-shadow:0 14px 34px #1da04935}
.kpi.hero .k-head,.kpi.hero .k-foot{color:#ffffffd9}.kpi.hero .k-ico{background:#ffffff2e;color:#fff}
.kpi.hero .kpi-value{font-size:34px}
.kpi.hero.loss{background:linear-gradient(135deg,#b82828,#e64d4d);box-shadow:0 14px 34px #e6333335}
.ico-blue{background:#2a78d61f;color:var(--c-blue)}.ico-orange{background:#eb68341f;color:var(--c-orange)}.ico-teal{background:#1baf7a1f;color:var(--c-teal)}
.ico-amber{background:#eda1001f;color:var(--c-amber)}.ico-pink{background:#e87ba41f;color:var(--c-pink)}.ico-violet{background:#7c5cf01f;color:var(--c-violet)}
.ico-red{background:#e633331f;color:var(--c-red)}.ico-green{background:#1da0491f;color:var(--primary)}.ico-cyan{background:#0ea5b71f;color:var(--c-cyan)}

/* tabela */
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--card)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{position:sticky;top:0;background:var(--muted);text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted-foreground);font-weight:600;padding:10px 12px;white-space:nowrap;cursor:pointer;user-select:none;z-index:1}
td{padding:10px 12px;border-top:1px solid var(--border);white-space:nowrap;vertical-align:middle}
tr:hover td{background:var(--glass-hover)}
tfoot td{font-weight:700;background:var(--muted)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.pos{color:var(--primary)}.neg{color:var(--c-red)}
.name-cell{max-width:340px;overflow:hidden;text-overflow:ellipsis}
.thumb{width:34px;height:34px;border-radius:7px;object-fit:cover;background:var(--secondary)}

/* toggle */
.switch{position:relative;width:36px;height:20px;flex-shrink:0;display:inline-block}
.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:var(--input);border-radius:20px;cursor:pointer;transition:.2s}
.switch span:before{content:"";position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.switch input:checked+span{background:var(--primary)}
.switch input:checked+span:before{transform:translateX(16px)}

/* gráficos */
.bars .b-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;margin-bottom:10px}
.bars .b-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bars .b-val{font-size:13px;font-weight:600;text-align:right}
.bars .b-track{grid-column:1/-1;height:7px;background:var(--secondary);border-radius:6px;overflow:hidden}
.bars .b-fill{height:100%;border-radius:6px;background:var(--brand-gradient)}
.chart-legend{display:flex;gap:14px;font-size:12px;color:var(--muted-foreground)}
.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.chart svg text{fill:var(--muted-foreground);font-size:10.5px;font-family:inherit}
.chart .tip{position:absolute;pointer-events:none;background:var(--popover);border:1px solid var(--border);border-radius:9px;padding:8px 10px;font-size:12px;box-shadow:0 10px 30px #0004;z-index:5;white-space:nowrap}
.funnel{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.funnel .f-step{text-align:center;display:flex;flex-direction:column}
.funnel .f-area{height:150px;display:flex;align-items:flex-end}
.funnel .f-bar{background:var(--brand-gradient);border-radius:8px 8px 4px 4px;margin:0 auto;width:78%;min-height:6px;opacity:.9}
.funnel .f-pct{font-weight:700;font-size:14px;margin-top:8px}
.funnel .f-n{font-size:12px;color:var(--muted-foreground)}
.funnel .f-l{font-size:11.5px;font-weight:600;color:var(--muted-foreground);margin-bottom:6px}

/* modal / toast / menu */
.modal-bg{position:fixed;inset:0;background:#0008;backdrop-filter:blur(3px);z-index:100;display:grid;place-items:center;padding:20px}
.modal{background:var(--popover);border:1px solid var(--border);border-radius:16px;width:min(620px,100%);max-height:90vh;overflow:auto;box-shadow:0 30px 80px #0006}
.modal.wide{width:min(900px,100%)}
.modal-h{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}
.modal-h h3{margin:0;font-size:16px}
.modal-b{padding:18px}
.modal-f{padding:14px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}
.toasts{position:fixed;right:18px;bottom:18px;z-index:200;display:flex;flex-direction:column;gap:8px}
.toast{background:var(--popover);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:11px;padding:11px 14px;box-shadow:0 12px 30px #0005;min-width:260px;max-width:380px;font-size:13px;animation:tin .25s}
.toast.err{border-left-color:var(--c-red)}
.toast.sale{border-left-color:var(--primary);background:linear-gradient(120deg,#34d56f22,var(--popover))}
@keyframes tin{from{transform:translateY(10px);opacity:0}}
.menu{position:absolute;z-index:50;background:var(--popover);border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 50px #0005;padding:6px;min-width:230px}
.menu .mi{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13px}
.menu .mi:hover{background:var(--glass-hover)}
.menu .mi.active{color:var(--glass-active-text);font-weight:600}
.menu hr{border:none;border-top:1px solid var(--border);margin:5px 0}

/* integrações */
.plat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.plat{border:1px solid var(--border);border-radius:13px;padding:14px;cursor:pointer;background:var(--card);display:flex;flex-direction:column;gap:8px;transition:.15s}
.plat:hover{border-color:var(--glass-active-ring);transform:translateY(-1px)}
.plat-logo{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:700;font-family:Poppins;font-size:15px}
.copy{display:flex;gap:6px}
.copy input{font-family:ui-monospace,monospace;font-size:12px}
.steps{counter-reset:s;padding:0;margin:0;list-style:none}
.steps li{counter-increment:s;position:relative;padding:0 0 12px 34px;font-size:13.5px;line-height:1.5}
.steps li:before{content:counter(s);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--brand-gradient);color:#fff;font-weight:700;font-size:12px;display:grid;place-items:center}
.live-dot{width:9px;height:9px;border-radius:50%;background:var(--c-amber);display:inline-block;animation:pulse 1.4s infinite}
.live-dot.ok{background:var(--primary)}
@keyframes pulse{50%{opacity:.35}}
pre.code{background:var(--muted);border:1px solid var(--border);border-radius:10px;padding:12px;overflow:auto;font-size:11.5px;max-height:340px;margin:0}

/* login */
.auth{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(900px 500px at 50% -10%,#1da04933,transparent),var(--background)}
.auth-box{width:min(420px,100%)}
.auth-box h1{font-size:26px;margin:28px 0 4px;letter-spacing:-.4px}
.skeleton{background:linear-gradient(90deg,var(--muted),var(--secondary),var(--muted));background-size:200% 100%;animation:sk 1.2s infinite;border-radius:10px;min-height:100px}
@keyframes sk{to{background-position:-200% 0}}
.blur-values .money{filter:blur(7px)}
.empty{text-align:center;padding:40px 20px;color:var(--muted-foreground)}
.empty svg{width:38px;height:38px;opacity:.5;margin-bottom:8px}
.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;background:var(--muted-foreground)}
.status-dot.on{background:var(--primary)}.status-dot.off{background:var(--c-amber)}
.opt-card{border:1px solid var(--border);border-radius:13px;padding:14px;background:var(--card);border-left:4px solid var(--border)}
.opt-card.escalar{border-left-color:var(--primary)}.opt-card.pausar{border-left-color:var(--c-red)}.opt-card.observar{border-left-color:var(--c-amber)}.opt-card.saudavel{border-left-color:var(--c-blue)}
.opt-metrics{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted-foreground);margin-top:10px}
.opt-metrics b{color:var(--foreground)}
.mobile-only{display:none}
@media(max-width:860px){
  .sidebar{position:fixed;left:-260px;z-index:60;transition:left .2s;height:100vh}
  .nav-open .sidebar{left:0}
  .mobile-only{display:inline-flex}
  .content{padding:14px}
  .kpi.hero{grid-column:span 2}
}
@media print{.sidebar,.topbar,.filters,.btn{display:none!important}.content{padding:0}}
