@import url('https://fonts.googleapis.com/css2?family=Work+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root{
  --accent:#FD6C48;
  --accent-dark:#e2532f;
  --secondary:#61748B;
  --bg:#FFFFFF;
  --ink:#25313d;
  --line:#e7eaee;
  --panel:#f8f9fb;
  --good:#2f8a5b;
  --bad:#c0392b;
  --warn:#b8860b;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Work Sans',sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,#fff 0%,#fdf3f0 260px,#fff 560px);
  min-height:100vh;
}
h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;margin:0;}
a{color:var(--accent-dark);}
.wrap{max-width:1120px;margin:0 auto;padding:24px 20px 70px;}
.wrap-narrow{max-width:440px;margin:0 auto;padding:40px 20px;}

/* topbar/mainnav antigos foram substituídos pela sidebar (.sidebar/.side-nav) usada
   tanto no portal do parceiro quanto no painel administrativo. */

/* ---------- sidebar (portal do parceiro) ---------- */
.app-shell{display:flex;align-items:stretch;min-height:100vh;}
.sidebar{width:230px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;align-self:flex-start;height:100vh;overflow-y:auto;}
.side-brand{display:flex;align-items:center;gap:10px;padding:0 6px 18px;margin-bottom:14px;border-bottom:1px solid var(--line);}
.side-brand .mark{width:36px;height:36px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.side-brand h1{font-size:13.5px;font-weight:700;}
.side-brand p{margin:1px 0 0;font-size:10px;color:var(--secondary);}
.side-nav{flex:1;}
.side-group{margin-bottom:16px;}
.side-group-label{font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--secondary);font-weight:700;margin:0 0 6px 10px;}
.side-link{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;font-size:12.5px;font-weight:600;color:var(--ink);text-decoration:none;margin-bottom:2px;transition:.15s;}
.side-link:hover{background:var(--panel);}
.side-link.active{background:#fff5f2;color:var(--accent-dark);}
.side-link .side-icon{display:flex;align-items:center;justify-content:center;width:17px;height:17px;flex-shrink:0;}
.side-link .side-icon svg{width:16px;height:16px;}
.side-link.logout{color:var(--secondary);}
.side-foot{border-top:1px solid var(--line);padding-top:12px;margin-top:6px;}
.side-foot .side-who{font-size:11px;font-weight:600;color:var(--secondary);padding:0 10px;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.app-main{flex:1;min-width:0;}
.app-content{max-width:1040px;margin:0 auto;padding:26px 30px 60px;}
@media (max-width:900px){
  .app-shell{flex-direction:column;}
  .sidebar{width:100%;height:auto;position:static;flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px 16px;gap:8px 16px;}
  .side-brand{border-bottom:none;padding:0;margin:0 auto 0 0;}
  .side-nav{flex:none;display:flex;flex-wrap:wrap;gap:2px 8px;width:100%;order:3;}
  .side-group{display:flex;align-items:center;gap:4px;margin-bottom:0;}
  .side-group-label{display:none;}
  .side-foot{border-top:none;padding-top:0;margin-top:0;display:flex;align-items:center;gap:10px;order:2;margin-left:auto;}
  .side-foot .side-who{margin-bottom:0;max-width:120px;}
  .app-content{padding:18px 16px 50px;}
}

/* ---------- cards / painéis ---------- */
.card-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:20px;}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:20px;box-shadow:0 2px 10px rgba(37,49,61,.04);}
.card:last-child{margin-bottom:0;}
h2.section-title{font-size:16px;font-weight:600;margin:0 0 14px;display:flex;align-items:center;gap:10px;}
h2.section-title .sub{font-size:11px;font-weight:400;color:var(--secondary);margin-left:auto;font-family:'Work Sans',sans-serif;}

/* ---------- login ---------- */
.login-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:0 10px 30px rgba(37,49,61,.06);}
.login-card .mark{width:64px;height:64px;border-radius:15px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
.login-card .mark img{width:100%;height:100%;object-fit:contain;}
.login-card h1{font-size:18px;text-align:center;margin-bottom:4px;}
.login-card p.lead{font-size:12.5px;color:var(--secondary);text-align:center;margin:0 0 24px;}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.field label{font-size:12px;color:var(--secondary);font-weight:600;}
.field input[type=text],.field input[type=password],.field input[type=email],.field input[type=number],.field input[type=tel],.field select,.field textarea{
  padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;font-size:13.5px;font-family:'Work Sans',sans-serif;background:#fff;width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);}
.field-note{font-size:10.5px;color:var(--secondary);}
.field-row{display:flex;gap:12px;flex-wrap:wrap;}
.field-row .field{flex:1;min-width:180px;}
.check-line{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;margin-bottom:10px;cursor:pointer;}
.check-line input{accent-color:var(--accent);width:16px;height:16px;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:none;border-radius:10px;padding:11px 20px;font-size:13.5px;font-weight:700;
  cursor:pointer;font-family:'Work Sans',sans-serif;text-decoration:none;
  background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);color:#fff;
  box-shadow:0 4px 14px rgba(253,108,72,.25);transition:.15s;
}
.btn:hover{transform:translateY(-1px);}
.btn.btn-block{width:100%;}
.btn.btn-secondary{background:#fff;color:var(--ink);border:1.5px solid var(--line);box-shadow:none;}
.btn.btn-secondary:hover{border-color:var(--secondary);}
.btn.btn-sm{padding:7px 13px;font-size:12px;}
.btn.btn-danger{background:linear-gradient(135deg,#d9584a 0%,#b8382b 100%);box-shadow:0 4px 14px rgba(217,88,74,.25);}

.alert{border-radius:10px;padding:12px 14px;font-size:13px;margin-bottom:16px;line-height:1.5;}
.alert-error{background:#fdecea;color:var(--bad);border:1px solid #f6c4bd;}
.alert-success{background:#eaf6ef;color:var(--good);border:1px solid #bfe3cd;}
.alert-info{background:#eef4fb;color:#2d5f8a;border:1px solid #cfe0f2;}

/* ---------- tabelas ---------- */
table.tbl{width:100%;border-collapse:collapse;font-size:13px;}
table.tbl th,table.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;}
table.tbl th{font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:var(--secondary);font-weight:700;}
table.tbl tr:hover td{background:#fafbfc;}
.badge{display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;padding:4px 10px;border-radius:20px;}
.badge-pendente{background:#fdf3e3;color:var(--warn);}
.badge-aguardando{background:#fdf3e3;color:var(--warn);}
.badge-aprovada{background:#e7f0fb;color:#2d5f8a;}
.badge-paga{background:#eaf6ef;color:var(--good);}
.badge-cancelada{background:#f3f3f4;color:var(--secondary);}
.badge-cancelado{background:#f3f3f4;color:var(--secondary);}
.badge-ativo{background:#eaf6ef;color:var(--good);}
.badge-ativa{background:#eaf6ef;color:var(--good);}
.badge-inativo{background:#f3f3f4;color:var(--secondary);}
.badge-atrasada{background:#fdecea;color:var(--bad);}
.badge-cliente_pendencia{background:#fdecea;color:var(--bad);}
.badge-projetado{background:#e7f0fb;color:#2d5f8a;}
.badge-perdido{background:#fdecea;color:var(--bad);}
.badge-sem_data_fechamento{background:#fdf3e3;color:var(--warn);}
.badge-fechamento_futuro{background:#f3f3f4;color:var(--secondary);}
.badge-parcial{background:#e7f0fb;color:#2d5f8a;}
.badge-quitada{background:#eaf6ef;color:var(--good);}

/* ---------- ações em tabela (botões alinhados) ---------- */
.table-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.table-actions-form{display:inline-flex;margin:0;}
.reset-pass-form{display:none;gap:6px;margin-top:8px;flex-wrap:wrap;align-items:center;}
.reset-pass-form.show{display:flex;}

/* ---------- selects de status coloridos (painel admin) ---------- */
.status-select{padding:6px 8px;border-radius:7px;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:.1s;}
.status-select.st-aguardando,.status-select.st-pendente,.status-select.st-sem_data_fechamento{background:#fdf3e3;color:var(--warn);border:1.5px solid #f0d78c;}
.status-select.st-ativo,.status-select.st-paga,.status-select.st-quitada{background:#eaf6ef;color:var(--good);border:1.5px solid #a9dbc0;}
.status-select.st-perdido,.status-select.st-cliente_pendencia{background:#fdecea;color:var(--bad);border:1.5px solid #f3b7ac;}
.status-select.st-cancelado,.status-select.st-fechamento_futuro,.status-select.st-inativo{background:#f3f3f4;color:var(--secondary);border:1.5px solid #dfe2e6;}
.status-select.st-projetado,.status-select.st-parcial{background:#e7f0fb;color:#2d5f8a;border:1.5px solid #bcd6ef;}

/* ---------- stats ---------- */
/* ---------- dashboard: hero stats, gráfico, atividade ---------- */
.hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;}
.hero-stat{background:linear-gradient(135deg,#fff 0%,#fff5f2 100%);border:1.5px solid var(--line);border-radius:16px;padding:20px 22px;}
.hero-stat-label{font-size:11.5px;color:var(--secondary);font-weight:700;text-transform:uppercase;letter-spacing:.02em;margin-bottom:8px;}
.hero-stat-value{font-size:30px;font-weight:700;font-family:'Space Grotesk',sans-serif;color:var(--accent-dark);}
.two-col{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;margin-top:20px;}
@media (max-width:760px){.two-col{grid-template-columns:1fr;}}
.chart-summary{font-size:11.5px;color:var(--secondary);margin:0 0 8px;}
.chart-summary b{color:var(--ink);font-weight:700;}
.chart-legend{display:flex;gap:16px;margin-bottom:12px;flex-wrap:wrap;}
.chart-legend-item{font-size:10.5px;color:var(--secondary);display:inline-flex;align-items:center;gap:6px;}
.chart-legend-dot{width:9px;height:9px;border-radius:3px;display:inline-block;flex-shrink:0;}
.chart-legend-dot.rec{background:linear-gradient(180deg,var(--accent) 0%,var(--accent-dark) 100%);}
.chart-legend-dot.uni{background:linear-gradient(180deg,var(--secondary) 0%,#48566a 100%);}
/* O valor (+ a legenda de tipo) fica "grudado" no topo de cada barra —
   .chart-bar-wrap tem a altura percentual da barra e é o elemento
   posicionado (position:absolute) dentro de .chart-bar-track; o rótulo
   (.chart-bar-label) fica posicionado a partir do topo desse wrap
   (bottom:100%), então ele sobe e desce junto com a barra em vez de ficar
   numa faixa fixa igual pra todas as colunas. A altura da barra é limitada
   a no máximo 78% da faixa (veja $maxBarPct em chart_evolucao.php) pra
   sempre sobrar espaço por cima pro rótulo, mesmo na barra mais alta.
   .chart-label (mês, embaixo) continua com min-height fixo — isso é o que
   garante que a área da barra (.chart-bar-track, flex:1) tem a mesma altura
   disponível em todas as colunas, resolvendo o desalinhamento entre o mês
   atual (que ganha uma segunda linha "ATUAL") e os demais. */
.chart-bars{position:relative;height:210px;padding-top:8px;}
.chart-grid{position:absolute;left:0;right:0;top:8px;bottom:36px;z-index:0;pointer-events:none;}
.chart-grid-line{position:absolute;left:0;right:0;border-top:1px dashed var(--line);}
.chart-grid-line-base{border-top-style:solid;}
.chart-cols{position:relative;z-index:1;display:flex;align-items:flex-end;gap:10px;height:100%;}
.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;cursor:default;}
.chart-bar-track{flex:1;width:100%;max-width:44px;position:relative;}
.chart-bar-wrap{position:absolute;left:0;right:0;bottom:0;height:4%;display:flex;flex-direction:column;align-items:center;}
.chart-bar-wrap-empty{height:2px;}
.chart-bar-label{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);margin-bottom:4px;white-space:nowrap;text-align:center;}
.chart-value{font-size:10.5px;font-weight:700;color:var(--ink);line-height:1.2;}
.chart-value.zero{color:var(--secondary);font-weight:600;opacity:.75;}
.chart-comp{font-size:8.5px;color:var(--secondary);text-transform:uppercase;letter-spacing:.02em;font-weight:600;margin-top:1px;}
.chart-bar-stack{width:100%;flex:1;display:flex;flex-direction:column;border-radius:6px 6px 2px 2px;overflow:hidden;min-height:4px;transition:height .3s;}
.chart-bar-seg{width:100%;}
.chart-bar-seg.seg-unica{background:linear-gradient(180deg,var(--secondary) 0%,#48566a 100%);}
.chart-bar-seg.seg-recorrente{background:linear-gradient(180deg,var(--accent) 0%,var(--accent-dark) 100%);}
.chart-bar-empty{width:100%;height:2px;border-radius:2px;background-image:repeating-linear-gradient(90deg,var(--line) 0 5px,transparent 5px 10px);}
.chart-label{font-size:10.5px;color:var(--secondary);margin-top:8px;text-transform:capitalize;text-align:center;line-height:1.3;min-height:28px;}
.chart-col.is-current .chart-label{color:var(--accent-dark);font-weight:700;}
.chart-current-tag{display:block;font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--accent);margin-top:1px;}
.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
.activity-list li{display:flex;gap:10px;align-items:flex-start;}
.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:5px;}
.activity-text{font-size:12.5px;color:var(--ink);line-height:1.5;}
.activity-text b{color:var(--accent-dark);}
.activity-time{font-size:10.5px;color:var(--secondary);margin-top:2px;}
.quick-actions{display:flex;flex-direction:column;gap:10px;}
.quick-actions .btn{justify-content:flex-start;}
.empty-state{text-align:center;padding:26px 16px;}
.empty-state p{color:var(--secondary);font-size:12.5px;margin:0 0 14px;}
.rank-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.rank-list li{display:flex;align-items:center;gap:12px;}
.rank-num{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--panel);color:var(--secondary);font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.rank-list li:first-child .rank-num{background:#fff0ec;color:var(--accent-dark);}
.rank-info{flex:1;min-width:0;}
.rank-name{font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rank-sub{font-size:10.5px;color:var(--secondary);margin-top:1px;}
.rank-value{font-size:13px;font-weight:700;color:var(--accent-dark);font-family:'Space Grotesk',sans-serif;white-space:nowrap;text-align:right;}
.rank-value span{font-size:10px;font-weight:500;color:var(--secondary);font-family:'Work Sans',sans-serif;}
.status-breakdown{display:flex;flex-direction:column;gap:12px;}
.sb-row{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px dashed var(--line);}
.sb-row:last-child{border-bottom:none;padding-bottom:0;}
.sb-count{font-size:16px;font-weight:700;font-family:'Space Grotesk',sans-serif;color:var(--ink);}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:22px;}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;}
.stat-card .stat-label{font-size:11px;color:var(--secondary);text-transform:uppercase;letter-spacing:.02em;font-weight:700;margin-bottom:6px;}
.stat-card .stat-value{font-size:22px;font-weight:700;font-family:'Space Grotesk',sans-serif;color:var(--ink);}
.stat-card .stat-value.accent{color:var(--accent-dark);}
.stat-card .stat-value.good{color:var(--good);}

/* ---------- simulador ---------- */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:6px;}
.product-btn{border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:13px 12px;cursor:pointer;text-align:left;font-family:'Work Sans',sans-serif;transition:.15s;}
.product-btn:hover{border-color:var(--accent);}
.product-btn:hover .picon{background:var(--accent);color:#fff;}
.product-btn.active{border-color:var(--accent);background:#fff5f2;box-shadow:0 0 0 1px var(--accent) inset;}
.product-btn.active .picon{background:var(--accent);color:#fff;}
.product-btn .picon{color:var(--accent-dark);background:#fff0ec;margin-bottom:9px;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:.15s;}
.product-btn .picon svg{width:19px;height:19px;display:block;}
.product-btn .pname{font-weight:600;font-size:13px;display:block;}
.product-btn .ptag{font-size:10.5px;color:var(--secondary);}

.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:6px;}
.plan-card{border:1.5px solid var(--line);border-radius:13px;padding:14px;cursor:pointer;background:#fff;}
.plan-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:#fff5f2;}
.plan-card .pname{font-weight:600;font-size:13px;margin-bottom:5px;}
.plan-card .pprice{font-size:17px;font-weight:700;color:var(--accent-dark);font-family:'Space Grotesk',sans-serif;}
.plan-card .pprice small{font-size:10.5px;font-weight:500;color:var(--secondary);}

.addon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;}
.addon-row{display:flex;flex-direction:column;gap:6px;border:1.5px solid var(--line);border-radius:10px;padding:9px 11px;background:#fff;cursor:pointer;transition:.15s;}
.addon-row:hover{border-color:var(--accent);}
.addon-row.checked{border-color:var(--accent);background:#fff8f6;}
.addon-row .top-line{display:flex;align-items:flex-start;gap:8px;}
.addon-row input[type=checkbox]{margin-top:3px;accent-color:var(--accent);flex-shrink:0;pointer-events:none;}
.addon-row .qty-inline{cursor:default;}
.addon-row .aname{font-size:12px;font-weight:500;}
.addon-row .aunit{font-size:10px;color:var(--secondary);display:block;}
.addon-row .aprice{font-size:12px;font-weight:600;color:var(--accent-dark);margin-left:auto;white-space:nowrap;}
.addon-row .qty-inline{display:flex;align-items:center;gap:6px;margin-left:22px;}
.addon-row .qty-inline input{width:56px;padding:4px 6px;border:1.5px solid var(--line);border-radius:6px;font-size:11.5px;}

.commission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:4px;}
.commission-card{border:1.5px solid var(--line);border-radius:13px;padding:15px;cursor:pointer;background:#fff;}
.commission-card.active{border-color:var(--accent);background:#fff5f2;box-shadow:0 0 0 1px var(--accent) inset;}
.commission-card .ctag{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--secondary);margin-bottom:8px;}
.commission-card.active .ctag{color:var(--accent-dark);}
.commission-card .ctitle{font-weight:700;font-size:13.5px;margin-bottom:10px;font-family:'Space Grotesk',sans-serif;}
.commission-card .crow{display:flex;justify-content:space-between;font-size:12px;padding:4px 0;border-bottom:1px dashed var(--line);}
.commission-card .crow:last-child{border-bottom:none;}
.commission-card .crow .v{font-weight:700;}
.commission-card .crow .v.hl{color:var(--accent-dark);}
.onetime-note{background:#fff8f6;border:1px dashed #ffd9cd;border-radius:12px;padding:14px 16px;font-size:12.5px;line-height:1.6;}
.onetime-note .crow{display:flex;justify-content:space-between;font-size:12.5px;padding:4px 0;border-bottom:1px dashed #ffd9cd;}
.onetime-note .crow .v{font-weight:700;}
.onetime-note .crow .v.hl{color:var(--accent-dark);}

/* ---------- resumo da simulação ---------- */
.summary-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;}
#summaryHead .stag{display:inline-flex;align-items:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--accent-dark);background:#fff0ec;border-radius:20px;padding:4px 12px;margin-bottom:10px;}
#summaryHead .stitle{font-size:16.5px;font-weight:700;font-family:'Space Grotesk',sans-serif;margin-bottom:2px;}
#summaryHead .ssub{font-size:12px;color:var(--secondary);margin-bottom:14px;}
#summaryArea .line{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px;}
#summaryArea .line:last-child{border-bottom:none;}
#summaryArea .line > span:first-child{color:var(--secondary);}
#summaryArea .line .v{font-weight:600;text-align:right;}
#summaryArea .line .v.good{color:var(--good);}
#summaryArea hr{border:none;border-top:1px solid var(--line);margin:12px 0;}
.summary-total{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff5f2;border:1px solid #ffd9cd;border-radius:12px;padding:14px 16px;margin-top:14px;}
.summary-total .stlabel{font-size:12.5px;font-weight:700;color:var(--ink);}
.summary-total .stvalue{font-size:19px;font-weight:700;font-family:'Space Grotesk',sans-serif;color:var(--accent-dark);white-space:nowrap;}
.summary-total.secondary{background:var(--panel);border-color:var(--line);margin-top:8px;}
.summary-total.secondary .stlabel{font-weight:600;font-size:12px;}
.summary-total.secondary .stvalue{color:var(--ink);font-size:14.5px;}

/* ---------- resumo para o cliente ---------- */
.client-card{background:#f6f8fa;border:1px solid #dfe4ea;border-radius:14px;padding:20px 22px;margin-top:22px;}
.client-card .stag{display:inline-flex;align-items:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--secondary);background:#eaeef2;border-radius:20px;padding:4px 12px;margin-bottom:10px;}
.client-card h3{font-size:14.5px;margin-bottom:3px;}
.client-card p.field-note{margin:2px 0 12px;font-size:11.5px;}
.client-card textarea{width:100%;padding:14px;border:1.5px solid #d7dce2;border-radius:10px;font-size:13px;line-height:1.7;font-family:inherit;background:#fff;resize:vertical;color:var(--ink);}
.client-card textarea:focus{outline:none;border-color:var(--accent);}
.client-card .btn{margin-top:12px;}
.client-card .btn .copy-icon{display:inline-flex;width:15px;height:15px;flex-shrink:0;}
.client-card .btn .copy-icon svg{width:100%;height:100%;}

.qty-inline label{font-size:11px;color:var(--secondary);}
.qty-inline input{width:70px;padding:6px 8px;border:1.5px solid var(--line);border-radius:7px;font-size:12.5px;}

/* ---------- comparativo de funcionalidades ---------- */
details.compare{margin-top:16px;}
details.compare summary{
  cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:9px;
  font-size:12.5px;font-weight:700;color:var(--accent-dark);
  background:#fff0ec;border:1.5px solid #ffd9cd;border-radius:10px;
  padding:10px 16px;user-select:none;transition:.15s;
}
details.compare summary::-webkit-details-marker{display:none;}
details.compare summary::after{
  content:'';width:7px;height:7px;border-right:2px solid var(--accent-dark);border-bottom:2px solid var(--accent-dark);
  transform:rotate(45deg);transition:.2s;flex-shrink:0;margin-left:2px;
}
details.compare[open] summary::after{transform:rotate(-135deg);margin-top:4px;}
details.compare summary:hover{background:#ffe4dc;border-color:var(--accent);}
table.cmp{width:100%;border-collapse:collapse;margin-top:12px;font-size:12px;}
table.cmp th,table.cmp td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:center;}
table.cmp th:first-child,table.cmp td:first-child{text-align:left;}
table.cmp th{color:var(--secondary);font-weight:600;font-size:11px;}
table.cmp td.yes{color:var(--good);font-weight:700;}
table.cmp td.no{color:#c7ccd2;}
table.cmp th.hl{background:var(--ink);color:#fff;border-radius:8px 8px 0 0;padding-top:8px;}
table.cmp th.hl .badge-sel{display:block;font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#ffcabb;margin-top:3px;}
table.cmp td.hlcol{background:#fff5f2;}
table.cmp td.hlcol.yes{color:var(--accent-dark);}
table.cmp tr:last-child td.hlcol{border-radius:0 0 8px 8px;}
.doclist{margin:10px 0 0;padding-left:18px;font-size:12.5px;line-height:1.9;}

/* ---------- materiais: regras + tabela de preços ---------- */
.rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:14px;}
.rule-card{border:1.5px solid var(--line);border-radius:14px;padding:16px 17px;background:#fff;transition:.15s;}
.rule-card:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(253,108,72,.08);}
.rule-card .rc-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;}
.rule-card .rc-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:38px;height:38px;border-radius:11px;background:#fff0ec;color:var(--accent-dark);}
.rule-card .rc-icon svg{width:19px;height:19px;}
.rule-card .rc-pct{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--accent-dark);background:#fff0ec;border-radius:20px;padding:5px 11px;white-space:nowrap;}
.rule-card .rc-title{font-size:13.5px;font-weight:700;color:var(--ink);margin:0 0 6px;}
.rule-card .rc-desc{font-size:12px;line-height:1.65;color:var(--secondary);margin:0;}
.rule-card .rc-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px;}
.rule-card .rc-chip{font-size:10.5px;color:var(--secondary);background:var(--panel);border-radius:8px;padding:5px 9px;white-space:nowrap;}
.rule-card .rc-chip b{color:var(--ink);font-weight:700;}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:12px;}
.contact-card{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;transition:.15s;text-decoration:none;}
.contact-card:hover{border-color:var(--accent);}
a.contact-card:hover{box-shadow:0 2px 10px rgba(37,49,61,.06);}
.contact-card .cc-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:10px;background:var(--panel);color:var(--secondary);}
.contact-card .cc-icon svg{width:16px;height:16px;}
.contact-card .cc-label{font-size:11.5px;font-weight:700;color:var(--ink);margin-bottom:2px;}
.contact-card .cc-value{font-size:11px;color:var(--secondary);line-height:1.5;}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.chip-row-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--secondary);margin-right:2px;}
.chip{font-size:11.5px;font-weight:600;color:var(--ink);background:var(--panel);border-radius:20px;padding:5px 13px;white-space:nowrap;}
.product-price-block{margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid var(--line);}
.product-price-block:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.product-price-block h3{font-size:14.5px;margin-bottom:2px;}
.plan-card.static{cursor:default;}
.plan-card.static:hover{border-color:var(--line);}

/* ---------- painel de pagamentos do mês ---------- */
.month-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px;}
.month-nav .mtitle{font-size:16px;font-weight:700;font-family:'Space Grotesk',sans-serif;text-transform:capitalize;}
.month-nav .mlink{font-size:12.5px;font-weight:600;color:var(--accent-dark);text-decoration:none;padding:7px 12px;border-radius:8px;border:1.5px solid var(--line);}
.month-nav .mlink:hover{border-color:var(--accent);background:#fff5f2;}
.month-nav form{display:flex;gap:8px;align-items:center;margin-left:auto;}
.month-nav input[type=month]{padding:8px 10px;border:1.5px solid var(--line);border-radius:8px;font-size:13px;font-family:'Work Sans',sans-serif;}

/* ---------- carteira por status (barra segmentada + legenda) ---------- */
.wallet-status{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:20px;}
.wallet-bar{display:flex;width:100%;height:10px;border-radius:6px;overflow:hidden;background:var(--panel);margin-bottom:16px;}
.wallet-bar .seg{height:100%;transition:.2s;}
.wallet-bar .seg.ativo{background:var(--good);}
.wallet-bar .seg.aguardando{background:var(--warn);}
.wallet-bar .seg.cancelado{background:#c7ccd2;}
.wallet-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;}
.wallet-legend .wl-item{display:flex;align-items:flex-start;gap:10px;}
.wallet-legend .wl-dot{width:11px;height:11px;border-radius:50%;margin-top:3px;flex-shrink:0;}
.wallet-legend .wl-dot.ativo{background:var(--good);}
.wallet-legend .wl-dot.aguardando{background:var(--warn);}
.wallet-legend .wl-dot.cancelado{background:#c7ccd2;}
.wallet-legend .wl-label{font-size:12.5px;font-weight:700;color:var(--ink);}
.wallet-legend .wl-sub{font-size:11.5px;color:var(--secondary);margin-top:1px;}

/* ---------- barra de filtros ---------- */
.filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;}
.filter-bar input[type=text],.filter-bar select{padding:9px 12px;border:1.5px solid var(--line);border-radius:9px;font-size:13px;font-family:'Work Sans',sans-serif;background:#fff;}
.filter-bar input[type=text]{flex:1;min-width:200px;}
.filter-bar label.fb-label{font-size:11.5px;color:var(--secondary);font-weight:600;white-space:nowrap;}

/* ---------- colunas ordenáveis ---------- */
th.sortable-th{cursor:pointer;user-select:none;position:relative;padding-right:18px;}
th.sortable-th:hover{color:var(--accent-dark);}
th.sortable-th::after{content:'\2195';position:absolute;right:4px;opacity:.35;font-size:10px;}
th.sortable-th.sort-asc::after{content:'\2191';opacity:1;color:var(--accent-dark);}
th.sortable-th.sort-desc::after{content:'\2193';opacity:1;color:var(--accent-dark);}

/* ---------- cartão por parceiro ---------- */
.partner-pay-card{background:#fff;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:14px;transition:.15s;}
.partner-pay-card.has-value{border-left-color:var(--accent);}
.partner-pay-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.partner-pay-head .ppname{font-size:15px;font-weight:700;font-family:'Space Grotesk',sans-serif;}
.partner-pay-head .ppcount{font-size:11.5px;color:var(--secondary);margin-top:2px;}
.partner-pay-head .pppix{font-size:10.5px;color:var(--secondary);margin-top:2px;}
.partner-pay-head .pppix b{color:var(--ink);}
.partner-pay-head .ppbreakdown{margin-left:auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.partner-pay-head .ppb-chip{font-size:11.5px;color:var(--secondary);background:var(--panel);border-radius:20px;padding:5px 12px;white-space:nowrap;}
.partner-pay-head .ppb-chip b{color:var(--ink);}
.partner-pay-head .pptotal{text-align:right;}
.partner-pay-head .pptotal .ppt-label{font-size:10px;color:var(--secondary);text-transform:uppercase;letter-spacing:.02em;font-weight:700;}
.partner-pay-head .pptotal .ppt-value{font-size:20px;font-weight:700;font-family:'Space Grotesk',sans-serif;color:var(--accent-dark);white-space:nowrap;}
.partner-pay-card details.compare{margin-top:14px;}
.partner-pay-card .empty-note{margin-top:10px;font-size:12px;color:var(--secondary);}

.pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);}
.pagination-info{font-size:11.5px;color:var(--secondary);}
.pagination-nav{display:flex;gap:8px;}
.pagination-nav .btn.disabled{opacity:.45;pointer-events:none;}

footer.pfooter{margin-top:40px;padding-top:18px;border-top:1px solid var(--line);font-size:11px;color:var(--secondary);text-align:center;}

