/* Portal components use the exact palette from the shared Helios theme. */
html[data-theme="helios"] {
  --white:var(--card-bg);
  --blue:var(--lav-500); --blue-hover:var(--lav-600);
  --blue-light:var(--lav-100); --blue-bg:var(--lav-50);
  --dark:var(--card-bg); --dark-nav:var(--card-bg);
  --text-secondary:var(--muted-txt);
  --text-muted:var(--muted-txt);
  --border:color-mix(in srgb, var(--text) 16%, var(--card-bg));
  --green-bg:color-mix(in srgb, var(--green) 14%, var(--card-bg));
  --orange:var(--amber); --orange-bg:color-mix(in srgb, var(--amber) 14%, var(--card-bg));
  --surface-glow:color-mix(in srgb, var(--lav-500) 13%, transparent);
  --surface-active:color-mix(in srgb, var(--lav-500) 24%, var(--card-bg));
  --table-head-surface:color-mix(in srgb, var(--lav-500) 9%, var(--card-bg));
  --button-primary-text:var(--card-bg);
  --button-surface-hover:var(--surface-active);
  --helios-green:var(--green); --helios-red:var(--red);
  --radius:18px; --radius-sm:12px;
  --shadow-sm:0 3px 12px rgba(0,0,0,.07), inset 0 1px 0 color-mix(in srgb, var(--text) 4%, transparent);
  --shadow-md:0 4px 18px rgba(0,0,0,.25);
  --shadow-lg:0 8px 24px rgba(0,0,0,.35);
}
/* Legacy pricing pages use this neutral scale. */
html[data-theme="helios"], html[data-theme="helios"] :is(.promos-page,.promo-home) {
  --c50:var(--lav-50); --c100:var(--lav-100); --c200:var(--lav-200); --c300:var(--lav-300);
  --c400:var(--muted-txt); --c500:var(--muted-txt); --c600:var(--lav-400);
  --c700:var(--lav-600); --c800:var(--lav-700); --c900:var(--text);
  --g:var(--green); --gl:var(--green-bg); --r:var(--red);
  --rl:color-mix(in srgb, var(--red) 14%, var(--card-bg));
  --o:var(--amber); --ol:var(--orange-bg);
}
html[data-theme="helios"] :is(.card,.seller-card,.campaign-card,.login-card,.sd-info-block,.stat-item,.stat-card,.promo-card) {
  background:radial-gradient(ellipse at 75% 0, var(--surface-glow), transparent 75%), var(--card-bg);
  color:var(--text); border:1px solid var(--border); border-radius:18px;
  box-shadow:var(--shadow-sm);
}
html[data-theme="helios"] :is(.btn,.sd-period-btn,.sd-step,.camp-chip,.campaign-refresh) {
  border-radius:999px;
}
html[data-theme="helios"] .btn-primary {
  background:linear-gradient(110deg, var(--surface-active), var(--card-bg));
  color:var(--text); border:1px solid var(--lav-500);
}
html[data-theme="helios"] .btn-primary:hover { background:var(--surface-active); box-shadow:none; }
html[data-theme="helios"] :is(input,select,textarea) {
  background:var(--input-bg); color:var(--text); border-color:var(--border);
}
html[data-theme="helios"] input::placeholder { color:var(--muted-txt); opacity:1; }
html[data-theme="helios"] th, html[data-theme="helios"] #sd-products thead th { background:var(--table-head-surface); color:var(--text); }
html[data-theme="helios"] tbody tr:hover, html[data-theme="helios"] #sd-products tbody tr:hover { background:var(--row-hover); }
html[data-theme="helios"] :is(button,a,select):focus-visible { outline:2px solid var(--lav-600); outline-offset:3px; }
html[data-theme="helios"] :is(.toolbar,.p-bar,.p-tab,.p-tbl-wrap,.tbl-wrap,.promo-header,.btn-ghost,.btn-icon,.p-inp,.num-inp,.modal,.srch input,.pg table,.promo-home) {
  background:var(--card-bg) !important; color:var(--text); border-color:var(--border);
}
html[data-theme="helios"] table.pt tbody tr:hover td { background:var(--row-hover); }
html[data-theme="helios"] .apl-bar { background:var(--card-bg); border-top-color:var(--border); }
html[data-theme="helios"] :is(input[type="checkbox"],input[type="radio"]) { accent-color:var(--lav-500); }
html[data-theme="helios"] .s-warn { background:var(--orange-bg); color:var(--amber); }
html[data-theme="helios"] table.t tbody tr.r-warn td { background:var(--orange-bg) !important; }

/* Match Meeting3's compact cards, labels and table surfaces. */
html[data-theme="helios"] :is(.card,.seller-card,.campaign-card) h3 { color:var(--lav-700); }
html[data-theme="helios"] .stat-value { font-size:20px; font-weight:800; line-height:1.15; letter-spacing:-.025em; }
html[data-theme="helios"] .stat-label { color:var(--lav-400); font-size:10px; font-weight:600; }
html[data-theme="helios"] .ad-chart-kpis { align-self:start; gap:8px; }
html[data-theme="helios"] .ad-chart-kpi {
  background:var(--lav-50); border:1px solid var(--border); border-radius:12px;
  padding:10px 12px; gap:10px; flex:0 0 auto;
}
html[data-theme="helios"] .ad-chart-kpi .ad-kpi-value { font-size:20px !important; font-weight:800 !important; line-height:1.15 !important; letter-spacing:-.025em; }
html[data-theme="helios"] .ad-chart-plot .chart-box { height:240px; }
html[data-theme="helios"] .campaign-refresh, html[data-theme="helios"] .camp-chip.is-active {
  background:linear-gradient(110deg,var(--surface-active),var(--card-bg)) !important; color:var(--text) !important;
  border:1px solid var(--lav-500) !important; box-shadow:none;
}
html[data-theme="helios"] .campaign-refresh:hover { background:var(--surface-active) !important; border-color:var(--lav-500) !important; }
html[data-theme="helios"] th {
  text-transform:none; letter-spacing:.01em; font-weight:600;
}
html[data-theme="helios"] :is(.table-scroll,.table-wrap) {
  border:1px solid var(--border); border-radius:18px; background:var(--card-bg);
}
html[data-theme="helios"] :is(.badge-success,.sd-status.active,.sd-promo--yes) {
  background:var(--green-bg); color:var(--green);
}
html[data-theme="helios"] :is(.badge-warning,.msg.warning) { background:var(--orange-bg); color:var(--amber); }
html[data-theme="helios"] :is(.msg.success,.log-ok,.nr-ok) { color:var(--green); }
html[data-theme="helios"] :is(.msg.error,.nr-badge,.spp-pill.lo) {
  background:color-mix(in srgb,var(--red) 14%,var(--card-bg)); color:var(--red);
}
html[data-theme="helios"] .log-fail-block {
  background:color-mix(in srgb,var(--red) 14%,var(--card-bg)); color:var(--text); border-color:var(--red);
}
html[data-theme="helios"] .fbs-page :is(.balance,.panel,.kpis article,.stock-kpis article,.stock-tree details,.stock-detail-row>td) {
  background:var(--card-bg); color:var(--text); border-color:var(--border);
}
html[data-theme="helios"] .fbs-page .equation .result { background:var(--surface-active); }
html[data-theme="helios"] .fbs-page :is(.kpis article.warning,.tariff-warning) { background:var(--orange-bg); color:var(--amber); }
html[data-theme="helios"] .fbs-page .tariff-warning a { color:var(--amber); }
html[data-theme="helios"] .fbs-page .alert { background:color-mix(in srgb,var(--red) 14%,var(--card-bg)); color:var(--red); }
html[data-theme="helios"] :is(button,a):is(.active,.on),
html[data-theme="helios"] :is(.bip-btn.active,.pbmkt-btn.active,.pbm-br-step.on,.chip.on,.rc-btn-primary,.sel-btn,.primary) {
  background:linear-gradient(110deg,var(--surface-active),var(--card-bg)) !important;
  color:var(--text) !important; border:1px solid var(--lav-500); border-radius:999px;
}
html[data-theme="helios"] .ea { --green:var(--helios-green); --red:var(--helios-red); --yellow:var(--amber); }
html[data-theme="helios"] .ea :is(.ea-controls,.ea-seg,.ea-seg button,.ea-btn) {
  background:var(--card-bg); color:var(--text); border-color:var(--border);
}
html[data-theme="helios"] .ea .ea-field input { background:var(--input-bg); color:var(--text); border-color:var(--border); }
html[data-theme="helios"] .ea .ea-seg button.on { box-shadow:none; }
html[data-theme="helios"] .ea :is(.ea-status.red,.ea-table tr.red td,.ea-pill.red) {
  background:color-mix(in srgb,var(--red) 14%,var(--card-bg)); border-color:var(--red);
}
html[data-theme="helios"] .ea :is(.ea-status.yellow,.ea-table tr.yellow td,.ea-pill.yellow) {
  background:var(--orange-bg); border-color:var(--amber);
}
html[data-theme="helios"] .ea :is(.ea-status.green,.ea-pill.green) { background:var(--green-bg); border-color:var(--green); }
html[data-theme="helios"] .ea .ea-pill.red { color:var(--red); }
html[data-theme="helios"] .ea .ea-pill.yellow { color:var(--amber); }
html[data-theme="helios"] .ea .ea-pill.green { color:var(--green); }
html[data-theme="helios"] .ea .ea-bar { background:var(--amber); }
html[data-theme="helios"] .ea .ea-bar:hover { background:var(--lav-500); }
html[data-theme="helios"] .ea .ea-bar.red { background:var(--red); }
html[data-theme="helios"] :is(.fbt-alert,.fbt-badge.missing) { background:var(--orange-bg); color:var(--amber); border-color:var(--amber); }
html[data-theme="helios"] .fbt-alert.bad { background:color-mix(in srgb,var(--red) 14%,var(--card-bg)); color:var(--red); border-color:var(--red); }
html[data-theme="helios"] .fbt-badge.ok { background:var(--green-bg); color:var(--green); }
html[data-theme="helios"] .fbt-save { background:var(--surface-active); color:var(--text); border:1px solid var(--lav-500); border-radius:999px; }
/* Totals are inserted after loading, including the four legal-plan tables. */
html[data-theme="helios"] table.bip-tbl :is(tr.bip-total>td,td.bip-total) { background:var(--surface-active); }
html[data-theme="helios"] .pbg-notice { background:var(--orange-bg); color:var(--amber); border-color:var(--amber); }
html[data-theme="helios"] .bip-pos { color:var(--green); }
html[data-theme="helios"] .bip-neg { color:var(--red); }
html[data-theme="helios"] table.t tbody tr:nth-child(even) td { background:var(--lav-50); }
html[data-theme="helios"] table.t tbody tr:hover td { background:var(--row-hover) !important; }
html[data-theme="helios"] table.t tbody tr.r-ok:hover td { background:var(--green-bg) !important; }
html[data-theme="helios"] table.t tbody tr.r-err:hover td { background:color-mix(in srgb,var(--red) 14%,var(--card-bg)) !important; }
html[data-theme="helios"] :is(.sel-drop:focus,.sel-drop.loaded,.srch input:focus) { background-color:var(--input-bg) !important; color:var(--text) !important; }
html[data-theme="helios"] select option { background:var(--input-bg); color:var(--text); }
html[data-theme="helios"] :is(.plan-chk,.plan-chk:hover,.m-pill.m-plan) { background:var(--blue-bg); color:var(--lav-600); border-color:var(--lav-500); }
html[data-theme="helios"] :is(.pidx.yellow,.m-pill.m-warn,.btn-warn,.btn-warn:hover,.p-inp.dirty) { background:var(--orange-bg); color:var(--amber); border-color:var(--amber); }
html[data-theme="helios"] .pidx.super { background:var(--green-bg); color:var(--green); border-color:var(--green); }
html[data-theme="helios"] .p-go { background:var(--surface-active); color:var(--text); border:1px solid var(--lav-500); }
html[data-theme="helios"] .toast { background:var(--card-bg); color:var(--text); border:1px solid var(--border); }
html[data-theme="helios"] .toast.ok { background:var(--green-bg); }
html[data-theme="helios"] .toast.err { background:color-mix(in srgb,var(--red) 14%,var(--card-bg)); }
html[data-theme="helios"] .toast.warn { background:var(--orange-bg); }
html[data-theme="helios"] :is(.defaults,.formula,.rp-bar) { background:var(--card-bg); color:var(--text); border-color:var(--border); }
html[data-theme="helios"] .pba-note.caveat { background:var(--orange-bg); color:var(--amber); border-color:var(--amber); }
/* Theme must also override fixed backgrounds from older cached page templates. */
html[data-theme="helios"] #pbg-oc {
  background:var(--card-bg) !important; color:var(--text); border-color:var(--border);
}
html[data-theme="helios"] #pbg-oc :is(input,select) { background:var(--input-bg) !important; color:var(--text); }
html[data-theme="helios"] table.pbg-dyn tfoot tr.pbg-dyn-grand>td {
  background:var(--card-bg) !important; color:var(--text);
}
html[data-theme="helios"] table.pbg-dyn tfoot tr.pbg-dyn-grandhead>td {
  background:var(--lav-50) !important; color:var(--text);
}
html[data-theme="helios"] table.pbg-dyn tfoot tr.pbg-dyn-highlight>td { background:var(--orange-bg) !important; }
html[data-theme="helios"] table.pbg-dyn tfoot tr>td.pbg-dyn-neg {
  background:color-mix(in srgb,var(--red) 18%,var(--card-bg)) !important; color:var(--red);
}
html[data-theme="helios"] table.pbg-dyn tfoot tr>td.pbg-dyn-pos {
  background:color-mix(in srgb,var(--green) 18%,var(--card-bg)) !important; color:var(--green);
}
html[data-theme="helios"] .ozf-step.done { background:var(--green-bg); border-color:var(--green); color:var(--text); }
html[data-theme="helios"] .ozf-wh-option:has(input:checked) { background:var(--surface-active); border-color:var(--lav-500); }
html[data-theme="helios"] .ozf-busy { background:var(--blue-bg); color:var(--lav-600); border-color:var(--lav-500); }
html[data-theme="helios"] .ozf-workspace { border-color:var(--lav-500); }
html[data-theme="helios"] .ozf-act.alert { background:color-mix(in srgb,var(--red) 14%,var(--card-bg)); border-color:var(--red); }
html[data-theme="helios"] .ozf-confirmation.agreed { background:var(--green-bg); color:var(--green); }
html[data-theme="helios"] .ozf-confirmation.pending { background:var(--orange-bg); color:var(--amber); }
html[data-theme="helios"] :is(.ozf-good,.ozf-manual-id,.ozf-plus) { color:var(--green); }
html[data-theme="helios"] .ozf-warn { color:var(--amber); }
html[data-theme="helios"] :is(.ozf-bad,.ozf-cabinet-mismatch,.ozf-extra-id,.ozf-minus) { color:var(--red); }
