/* ============ Design system ORD — painel de Conversão ============ */
:root{
  /* paleta de marca (compartilhada) */
  --raiz-green-900:#0A2918; --raiz-green-800:#0F3D24; --raiz-green-700:#14532D;
  --raiz-green-500:#22C55E; --raiz-green-100:#DCFCE7;

  /* tema claro (default) */
  --bg:#E7EBE2; --card:#FFFFFF; --card-hover:#F3F6EF;
  --text-strong:#0F172A; --text:#334155; --text-muted:#64748B; --text-light:#94A3B8;
  --border:#D7DDD0; --border-soft:#E0E5DA;
  --red:#DC2626; --amber:#D97706;
  --header-from:#0F3D24; --header-to:#0A2918;

  --chart-text:#334155; --chart-grid:#E0E5DA; --chart-border:#FFFFFF; --chart-tooltip-bg:#0F3D24;

  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px;
  --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px;

  --font-sans:'Geist', system-ui, sans-serif;
  --font-mono:'Geist Mono','SF Mono',Menlo,monospace;

  --radius-sm:6px; --radius:10px; --radius-lg:14px;

  --shadow-sm:0 1px 2px rgba(15,23,42,.04);
  --shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
  --shadow-lg:0 10px 25px rgba(15,23,42,.08);
}
:root[data-theme="dark"]{
  --raiz-green-500:#2DD46F; --raiz-green-100:#16382410;
  --bg:#070F0A; --card:#0F2117; --card-hover:#16301F;
  --text-strong:#ECF2EE; --text:#C5D2CB; --text-muted:#8A9A90; --text-light:#5E6E64;
  --border:#214031; --border-soft:#18301F;
  --header-from:#0B1C13; --header-to:#061009;
  --chart-text:#C5D2CB; --chart-grid:#214031; --chart-border:#0F2117; --chart-tooltip-bg:#214031;
}

*{box-sizing:border-box;margin:0;padding:0}
html{transition:background-color .3s}
body{font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
a{color:inherit;text-decoration:none}

/* ============ Header ============ */
.header{position:sticky;top:0;z-index:50;background:linear-gradient(135deg,var(--header-from),var(--header-to));color:#fff;border-bottom:1px solid var(--header-to)}
.header-inner{max-width:1440px;margin:0 auto;padding:16px 24px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:32px}
.brand{display:flex;align-items:center;gap:16px}
.brand-ord-logo{display:block;height:36px;width:36px;object-fit:contain;border-radius:8px;transition:opacity .2s}
.brand-ord-logo:hover{opacity:.85}
.brand-divider{width:1px;height:28px;background:rgba(255,255,255,.2)}
.brand-client-wrap{display:flex;align-items:center;gap:12px;transition:opacity .2s}
.brand-client-wrap:hover{opacity:.9}
.brand-client-logo{height:34px;max-width:120px;object-fit:contain;border-radius:8px;background:#fff;padding:2px}
.brand-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.55)}
.brand-client{font-size:16px;font-weight:600;color:#fff;line-height:1.15}

.header-tabs{display:flex;align-items:center;justify-content:center;gap:6px}
.tab{font-family:var(--font-sans);font-size:13px;font-weight:500;padding:8px 16px;border-radius:var(--radius-sm);border:none;background:transparent;color:rgba(255,255,255,.65);cursor:pointer;transition:background .2s,color .2s}
.tab:hover{color:#fff;background:rgba(255,255,255,.08)}
.tab-active{background:rgba(255,255,255,.14);color:#fff}

.header-period{display:flex;align-items:center;gap:12px;justify-self:end;flex-wrap:wrap;justify-content:flex-end}
.period-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.55)}
.theme-toggle{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.08);border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:background .2s}
.theme-toggle:hover{background:rgba(255,255,255,.16)}
.theme-toggle svg{width:18px;height:18px}
:root[data-theme="dark"] .ico-sun{display:none}
:root:not([data-theme="dark"]) .ico-moon{display:none}
.period-select,.period-custom input{font-family:var(--font-sans);font-size:13px;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);padding:8px 10px;outline:none}
.period-select{cursor:pointer}
.period-select option{color:#0F172A}
.period-select:focus,.period-custom input:focus{border-color:var(--raiz-green-500)}
.period-custom{display:flex;align-items:center;gap:8px}
.period-custom .arrow{color:rgba(255,255,255,.6)}
.period-custom input{color-scheme:dark}

/* ============ Overlays ============ */
.overlay{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--bg);text-align:center;padding:24px}
.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--raiz-green-700);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.overlay p{color:var(--text-muted);font-size:13px}
.overlay-error .err-title{color:var(--red);font-size:16px;font-weight:600}
.overlay-error .err-msg{color:var(--text-muted);font-size:13px;max-width:440px}
.btn{font-family:var(--font-sans);font-size:13px;font-weight:500;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--text-strong);cursor:pointer}
.btn:hover{border-color:var(--raiz-green-500)}

/* ============ Main / layout ============ */
.main{max-width:1440px;margin:0 auto;padding:32px 24px 48px}
.section{margin-bottom:40px}
.section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:16px}
.section-title-muted{color:var(--text-light)}
.section-row{display:grid;grid-template-columns:2fr 1fr;gap:20px}
.charts-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}

/* ============ Filter banner ============ */
.filter-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--raiz-green-100);border:1px solid var(--raiz-green-500);border-radius:var(--radius);padding:12px 16px;margin-bottom:24px}
.filter-banner .fb-text{font-size:13px;color:var(--text-strong)}
.filter-banner .fb-text strong{font-weight:600}
.filter-banner button{background:none;border:none;color:var(--text);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--radius-sm)}
.filter-banner button:hover{background:rgba(0,0,0,.05)}
:root[data-theme="dark"] .filter-banner{background:rgba(45,212,111,.08)}
:root[data-theme="dark"] .filter-banner button:hover{background:rgba(255,255,255,.08)}

/* ============ KPIs ============ */
.kpi-grid{display:grid;gap:12px}
.kpi-grid-primary,.kpi-grid-secondary{grid-template-columns:repeat(4,1fr)}
.kpi{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s}
.kpi:hover{border-color:var(--raiz-green-500);box-shadow:var(--shadow)}
.kpi-secondary{padding:16px}
.kpi-accent::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--raiz-green-500)}
.kpi-label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:8px}
.kpi-value{font-family:var(--font-mono);font-size:26px;font-weight:600;color:var(--text-strong);line-height:1.1;display:flex;align-items:baseline;gap:1px}
.kpi-secondary .kpi-value{font-size:20px}
.kpi-currency,.kpi-suffix{font-size:.65em;color:var(--text-muted);font-weight:500}
.kpi-currency{margin-right:2px}
.kpi-suffix{margin-left:1px}

/* ============ Card ============ */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.card-head{padding:20px 20px 12px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.card-head-left{display:flex;align-items:center;gap:12px;min-width:0}
.card-title{font-size:15px;font-weight:600;color:var(--text-strong)}
.card-meta{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:500}
.card-body{padding:4px 4px 8px}
.table-wrap{overflow-x:auto}

/* ============ Tabela ============ */
.data-table{width:100%;border-collapse:collapse;font-size:13px}
.data-table thead th{text-align:right;padding:12px 16px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:1px solid var(--border-soft);background:var(--card-hover);white-space:nowrap}
.data-table thead th.th-name{text-align:left}
.data-table thead th.th-sortable{cursor:pointer;user-select:none}
.data-table thead th.th-sortable:hover{color:var(--text-strong)}
.data-table thead th .sort-ind{margin-left:4px;color:var(--text-light);font-size:10px}
.data-table thead th.is-sorted .sort-ind{color:var(--raiz-green-500)}
.data-table tbody td{padding:12px 16px;text-align:right;border-bottom:1px solid var(--border-soft);font-family:var(--font-mono);font-weight:500;color:var(--text-strong);white-space:nowrap}
.data-table tbody td.td-name{text-align:left;font-family:var(--font-sans);max-width:320px;overflow:hidden;text-overflow:ellipsis}
.data-table tbody tr:hover{background:var(--card-hover)}
.data-table tfoot td{padding:12px 16px;text-align:right;font-family:var(--font-mono);font-weight:600;border-top:2px solid var(--border);background:var(--card-hover);color:var(--text-strong);white-space:nowrap}
.data-table tfoot td.td-name{text-align:left;font-family:var(--font-sans)}
.td-muted{color:var(--text-light)!important;font-weight:400!important}
tr.row-clickable{cursor:pointer}
tr.row-clickable:focus-visible{outline:2px solid var(--raiz-green-500);outline-offset:-2px}
tr.is-selected{background:var(--raiz-green-100)!important}
tr.is-selected td.td-name{box-shadow:inset 3px 0 0 var(--raiz-green-500)}
:root[data-theme="dark"] tr.is-selected{background:rgba(45,212,111,.10)!important}

/* ============ Funil ============ */
.funnel{padding:12px 20px 20px}
.funnel-step{margin-bottom:14px}
.funnel-step:last-child{margin-bottom:0}
.funnel-meta{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.funnel-meta .fn-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}
.funnel-meta .fn-val{font-family:var(--font-mono);font-size:12px;color:var(--text)}
.funnel-bar-track{background:var(--card-hover);border-radius:var(--radius-sm);overflow:hidden}
.funnel-bar{height:44px;display:flex;align-items:center;padding:0 12px;color:#fff;font-family:var(--font-mono);font-weight:600;font-size:13px;background:linear-gradient(90deg,var(--raiz-green-800),var(--raiz-green-700));border-radius:var(--radius-sm);transition:width .6s cubic-bezier(.16,1,.3,1);white-space:nowrap}

/* ============ Chart wraps ============ */
.chart-wrap{position:relative;height:260px;padding:8px 16px 16px}
.chart-wrap-timeline{height:320px}
.chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text-light);font-size:13px}

/* ============ Chips de métrica ============ */
.metric-toggles{display:flex;gap:8px;flex-wrap:wrap}
.metric-toggle{display:inline-flex;align-items:center;gap:6px;background:var(--card-hover);border:1px solid var(--border);color:var(--text);padding:4px 11px;border-radius:999px;font-size:12px;font-weight:500;cursor:pointer}
.metric-toggle .metric-dot{width:9px;height:9px;border-radius:50%}
.metric-toggle.is-off{opacity:.45;text-decoration:line-through}

/* ============ Criativos ============ */
.creatives-filter{font-family:var(--font-sans);font-size:12px;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;outline:none;max-width:280px}
.creatives-filter:focus{border-color:var(--raiz-green-500)}
.thumb{width:44px;height:44px;border-radius:6px;background:var(--card-hover);background-size:cover;background-position:center;object-fit:cover;display:block;border:1px solid var(--border-soft);color:transparent}
.thumb-empty{background-image:none!important;background:var(--card-hover)}
.td-thumb{width:60px;padding-left:16px;padding-right:0}
.creative-link{font-size:12px;color:var(--raiz-green-700);font-family:var(--font-sans);font-weight:500}
:root[data-theme="dark"] .creative-link{color:var(--raiz-green-500)}
.creative-link:hover{text-decoration:underline}

/* ============ Footer ============ */
.footer{max-width:1440px;margin:0 auto;padding:24px 4px;color:var(--text-light);font-size:12px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.footer .ord-tag{font-family:var(--font-mono);letter-spacing:.1em}

/* ============ Animações ============ */
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.fade-in{animation:fadeIn .4s ease both}

/* ============ Responsivo ============ */
@media (max-width:1100px){
  .section-row{grid-template-columns:1fr}
  .kpi-grid-primary,.kpi-grid-secondary{grid-template-columns:repeat(2,1fr)}
  .charts-row{grid-template-columns:1fr}
}
@media (max-width:720px){
  .header-inner{grid-template-columns:1fr;gap:12px}
  .header-period{justify-self:start}
  .kpi-grid-primary,.kpi-grid-secondary{grid-template-columns:1fr 1fr}
  .main{padding:20px 12px}
}
