/* Opt-in project identities. Geometry, typography, containers and behavior stay intact. */
body[data-project] {
  --project-standard-primary:#4fd6ac; --project-communities-primary:#6aaeff; --project-ace-primary:#ad97f7;
  --brand-primary:#bcc9c2; --brand-secondary:#84988c; --brand-subtle:#151e19;
  --brand-hover:color-mix(in srgb,var(--brand-primary) 90%,white);
  --surface-primary:#050706; --surface-secondary:#0a0e0c; --surface-elevated:#111813;
  --border-subtle:#26342c; --border-strong:#43584b;
  --text-primary:#f0f5f1; --text-muted:#afbeb4; --text-quiet:#96a69b;
  --status-success:#4fc99d; --status-danger:#e57979; --status-warning:#d8bd82; --status-info:#94afc2;
  --bg:var(--surface-primary); --surface:var(--surface-secondary); --surface-raised:var(--surface-elevated);
  --surface-soft:var(--surface-secondary); --line:var(--border-strong); --line-soft:var(--border-subtle);
  --text:var(--text-primary); --muted:var(--text-muted); --quiet:var(--text-quiet);
  --accent:var(--brand-primary); --accent-strong:var(--brand-hover); --accent-soft:var(--brand-subtle);
  --warning:var(--status-warning); --negative:var(--status-danger);
  background:var(--surface-primary); color:var(--text-primary); color-scheme:dark;
}
body[data-project="standard"] {
  --brand-primary:#4fd6ac; --brand-secondary:#2d937a; --brand-subtle:#10251e;
}
body[data-project="communities"] {
  --brand-primary:#6aaeff; --brand-secondary:#477bd8; --brand-subtle:#111c32;
  --surface-primary:#050608; --surface-secondary:#090d12; --surface-elevated:#101822;
  --border-subtle:#273342; --border-strong:#455b73; --text-primary:#f0f3f7; --text-muted:#afbbc9;
}
body[data-project="ace"] {
  --brand-primary:#ad97f7; --brand-secondary:#7865d2; --brand-subtle:#1b172c;
  --surface-primary:#060508; --surface-secondary:#0c0a10; --surface-elevated:#15111d;
  --border-subtle:#332d41; --border-strong:#554b6a; --text-primary:#f3f0f8; --text-muted:#bdb5cb;
}
body[data-project="portfolio"] { --brand-primary:#c4cbd3; --brand-secondary:#8896a1; --brand-subtle:#171c22; }
body[data-project] :focus-visible { outline-color:var(--brand-primary); }
body[data-project] ::selection { color:var(--surface-primary); background:var(--brand-primary); }
body[data-project] :is(.panel,.contract-panel,.c-module,.cc-panel,.cx-panel) {
  border-color:var(--border-strong); background:var(--surface-secondary);
}
body[data-project] :is(.panel-head,.panel-header,.cc-panel-head,.cx-panel-heading,.cx-result-heading) {
  background:var(--surface-elevated); border-color:var(--border-subtle);
}
body[data-project] :is(.positive,.cc-positive,.cx-positive,.cx-commerce-positive,.tag-success) { color:var(--status-success)!important; }
body[data-project] :is(.negative,.cc-negative,.cx-negative,.cx-commerce-coral,.tag-error) { color:var(--status-danger)!important; }
body[data-project] :is(.cc-warning,.cs-warning,.cs-activation:not([data-active="true"]),.community-warning) { color:var(--status-warning); }
body[data-project="standard"] #presentation .hero-opening .hero-title > span { color:var(--brand-primary); }
body[data-project="standard"] :is(.button-secondary,.button-ghost):hover { border-color:var(--border-strong); background:var(--surface-elevated); }
body[data-project="standard"] .contract-panel .panel-head { background:var(--surface-elevated); }
body[data-project="standard"] :is(.amount-options button[aria-pressed="true"],.segment[aria-selected="true"]) { border-color:var(--brand-secondary); background:var(--brand-subtle); }
body[data-project="communities"].communities-page {
  --c-bg:var(--surface-primary); --c-surface:var(--surface-secondary); --c-line:var(--border-strong);
  --c-text:var(--text-primary); --c-muted:var(--text-muted); --c-quiet:var(--text-quiet); --c-mint:var(--brand-primary);
}
body[data-project="communities"] .creator-studio {
  --cs-bg:var(--surface-secondary); --cs-line:var(--border-strong); --cs-soft-line:var(--border-subtle);
  --cs-text:var(--text-primary); --cs-muted:var(--text-muted); --cs-quiet:var(--text-quiet); --cs-mint:var(--brand-primary);
}
body[data-project="communities"].cc-page {
  --cc-bg:var(--surface-primary); --cc-surface:var(--surface-secondary); --cc-line:var(--border-subtle);
  --cc-control:var(--border-strong); --cc-text:var(--text-primary); --cc-muted:var(--text-muted);
  --cc-quiet:var(--text-quiet); --cc-mint:var(--brand-primary); --cc-amber:var(--status-warning); --cc-red:var(--status-danger);
}
/* The creator's inline --community-accent remains independent of the project theme. */
body[data-project="communities"] :is(.c-button-mint,.cc-btn-primary) { color:var(--surface-primary); }
body[data-project="communities"] :is(.c-button-mint,.cc-btn-primary):hover { background:var(--brand-hover); border-color:var(--brand-hover); color:var(--surface-primary); }
body[data-project="communities"] :is(.cs-rule-tag,.c-segment button[aria-selected="true"],.c-segment button[aria-pressed="true"],.cc-segment button[aria-pressed="true"],.cc-nav>a[aria-current="page"],.cc-nav>a.is-active) {
  color:var(--brand-primary); border-color:var(--brand-secondary); background:var(--brand-subtle);
}
body[data-project="communities"] :is(.cs-presets>button[aria-pressed="true"],.cc-preview-controls button[aria-pressed="true"]) { border-color:var(--brand-secondary); background:var(--brand-subtle); }
body[data-project="communities"] :is(.cs-main-rule,.cc-public-card,.cc-registration-form,.cc-preview-frame) { border-color:var(--border-strong); background:var(--surface-secondary); }
body[data-project="communities"] :is(.cc-table th,.cc-kpi) { background:var(--surface-secondary); }
body[data-project="communities"] :is(.cc-table tbody tr:hover,.cs-presets>button:hover) { background:var(--surface-elevated); }
body[data-project="communities"] :is(.cs-activation[data-active="true"],.cs-published-mark,.cc-status-active,.cc-status-completed,.cc-badge[data-tone="mint"],.cc-status[data-tone="mint"]) { color:var(--status-success); }
body[data-project="communities"] :is(.cs-error,.cs-global-errors,.cc-error,.cc-alert) { color:var(--status-danger); }
body[data-project="ace"].ace-app {
  --ace-bg:var(--surface-primary); --ace-surface:var(--surface-secondary); --ace-panel:var(--surface-elevated);
  --ace-border:var(--border-strong); --ace-text:var(--text-primary); --ace-muted:var(--text-muted);
  --ace-mint:var(--brand-primary); --ace-coral:var(--status-danger);
}
body[data-project="ace"].cx-app {
  --cx-bg:var(--surface-primary); --cx-surface:var(--surface-secondary); --cx-border:var(--border-subtle);
  --cx-text:var(--text-primary); --cx-muted:var(--text-muted); --cx-mint:var(--brand-primary);
  --cx-coral:var(--status-danger); --cx-blue:var(--status-info); --cx-amber:var(--status-warning);
}
body[data-project="ace"] :is(.ace-button-primary,.cx-button.cx-primary) { color:var(--surface-primary)!important; }
body[data-project="ace"] :is(.ace-button-primary,.cx-button.cx-primary):hover { background:var(--brand-hover); border-color:var(--brand-hover); }
body[data-project="ace"] :is(.cx-tabs button[aria-selected="true"],.cx-app tbody tr:hover) { background:var(--brand-subtle); }
body[data-project="ace"] .cx-switch[aria-checked="true"]::after { background:var(--brand-subtle); }
body[data-project="ace"] .cx-commerce { color:var(--text-primary); }
body[data-project="ace"] .cx-commerce :is(h3,.cx-commerce-set-heading strong,.cx-commerce-solution strong,.cx-commerce-package summary) { color:var(--text-primary); }
body[data-project="ace"] .cx-commerce :is(.cx-commerce-muted,.cx-commerce-note,.cx-commerce-set-meta,.cx-commerce-set-heading span,.cx-commerce-progress-number) { color:var(--text-muted); }
body[data-project="ace"] .cx-commerce :is(.cx-commerce-section,.cx-commerce-selected-item,.cx-commerce-table-scroll) { border-color:var(--border-subtle); }
body[data-project="ace"] .cx-commerce :is(.cx-commerce-select,.cx-commerce-button,.cx-commerce-table th) { background:var(--surface-secondary); border-color:var(--border-strong); color:var(--text-primary); }
body[data-project="ace"] .cx-commerce :is(.cx-commerce-table td,.cx-commerce-table th) { border-color:var(--border-subtle); }
body[data-project="ace"] .cx-commerce :is(.cx-commerce-footer,.cx-commerce-table td:last-child) { background:var(--surface-secondary); border-color:var(--border-strong); }
body[data-project="ace"] .cx-commerce :is(.cx-commerce-table tbody tr:hover,.cx-commerce-button:hover:not(:disabled)) { background:var(--surface-elevated); }
body[data-project="ace"] .cx-commerce .cx-commerce-button:hover:not(:disabled) { border-color:var(--brand-primary); color:var(--brand-primary); }
body[data-project="ace"] .cx-commerce .cx-commerce-primary { background:var(--brand-primary); border-color:var(--brand-primary); color:var(--surface-primary); }
body[data-project="ace"] .cx-commerce .cx-commerce-primary:hover:not(:disabled) { background:var(--brand-hover); border-color:var(--brand-hover); color:var(--surface-primary); }
body[data-project="ace"] .cx-commerce :is(.cx-commerce-count,.cx-commerce-table th>button:hover) { color:var(--brand-primary); }
body[data-project="ace"] .cx-commerce .cx-commerce-progress-track span { background:var(--brand-primary); }
body[data-project="ace"] .cx-commerce :is(button,select,summary,[tabindex]):focus-visible { outline-color:var(--brand-primary); }
body[data-project="ace"] .cv-chart :is(button,select):focus-visible { outline-color:var(--brand-primary); }
body[data-project="ace"] .cv-chart :is(button,select) { border-color:var(--border-subtle); background:var(--surface-secondary); color:var(--text-primary); }
body[data-project="ace"] .cv-chart :is(button,select):hover { border-color:var(--brand-secondary); background:var(--surface-elevated); }
body[data-project="ace"] .cv-chart-legend button { background:transparent; border-color:transparent; }
body[data-project="ace"] .cv-chart input { accent-color:var(--brand-primary); }
body[data-project="ace"] .cv-chart [data-chart-path="balance"] { stroke:var(--status-success); }
body[data-project="ace"] .cv-chart-swatch { background:var(--status-success); }
body[data-project="ace"] .cv-chart-swatch-equity { background:var(--status-info); }
body[data-project="ace"] .cv-chart [data-chart-path="equity"] { stroke:var(--status-info); }
body[data-project="ace"] .cv-chart-tooltip { background:var(--surface-elevated); border-color:var(--border-strong); }
body[data-project="ace"] .cv-chart-tooltip-row[data-tooltip-series="balance"] strong { color:var(--status-success); }
body[data-project="ace"] .cv-chart-tooltip-row[data-tooltip-series="equity"] strong { color:var(--status-info); }
body[data-project="ace"] .ace-evaluation-preview { border-color:var(--border-strong); background:var(--surface-secondary); color:var(--text-primary); }
body[data-project="ace"] .ace-evaluation-preview :is(.ace-preview-titlebar,.ace-preview-panel-heading) { background:var(--surface-elevated); border-color:var(--border-subtle); }
body[data-project="ace"] .ace-evaluation-preview :is(.ace-preview-link,.ace-preview-link:hover) { color:var(--brand-primary); }
body[data-project="ace"] .ace-evaluation-preview .ace-preview-open { background:var(--brand-primary); border-color:var(--brand-primary); color:var(--surface-primary); }
body[data-project="ace"] .ace-evaluation-preview .ace-preview-open:hover { background:var(--brand-hover); }
body[data-project="ace"] .ace-evaluation-preview .ace-preview-positive { color:var(--status-success); }
body[data-project="ace"] .ace-evaluation-preview .ace-preview-risk { color:var(--status-danger); }
/* Cancelling a dialog, optimizer or package selection remains a neutral action. */
body[data-project="ace"] #reset-environment, body[data-project="communities"] [data-cc-action="reset-demo"] { color:var(--status-danger)!important; }
body[data-project] .sidebar-scroll>.side-nav::-webkit-scrollbar-thumb { background:var(--border-strong); }
body[data-project] .sidebar-scroll>.side-nav:hover::-webkit-scrollbar-thumb { background:var(--text-quiet); }
@media (max-width:900px) {
  body[data-project="standard"] .section-heading, body[data-project="communities"] .section-heading { background:var(--surface-elevated); border-color:var(--border-strong); color:var(--text-primary); }
}

/* Final visual polish: opt-in presentation tokens; existing brand and surface values are preserved. */
body[data-project] {
  --polish-gap-sm:8px;
  --polish-gap-md:12px;
  --polish-gap-lg:20px;
  --polish-gap-xl:28px;
  --polish-radius-card:8px;
  --polish-duration:150ms;
  --polish-ease:ease;
}
