/* Cashify Market — Obsidian dark mode and Porcelain light mode. */
:root,
:root[data-theme="obsidian"] {
  color-scheme: dark;
  --cx-bg: #090b10;
  --cx-surface: #11141c;
  --cx-raised: #1a1e29;
  --cx-rail: #0d1016;
  --cx-line: #2a3040;
  --cx-line-strong: #414c64;
  --cx-text: #f1f3fa;
  --cx-body: #c4cbdb;
  --cx-muted: #a0abc0;
  --cx-accent: #8da5ff;
  --cx-accent-strong: #6b8aff;
  --cx-accent-rgb: 107, 138, 255;
  --cx-on-accent: #080f26;
  --cx-soft: #1a2547;
  --cx-success: #74dfb5;
  --cx-success-bg: #102e25;
  --cx-warning: #f3c27e;
  --cx-warning-bg: #342818;
  --cx-danger: #ffaaa9;
  --cx-danger-bg: #381f26;
  --cx-shadow: 0 16px 38px #00000035;
  --cx-core-top: #95adff;
  --cx-core-side: #3755b4;
  --cx-code-bg: #080b13;
  --cx-code-text: #c3d0ff;
  --cx-tone-0-bg: #1d294b;
  --cx-tone-0: #a3b8ff;
  --cx-tone-1-bg: #133344;
  --cx-tone-1: #8cd6ed;
  --cx-tone-2-bg: #30264a;
  --cx-tone-2: #c9acff;
  --cx-tone-3-bg: #3c2922;
  --cx-tone-3: #f6b48f;
  --cx-tone-4-bg: #15362e;
  --cx-tone-4: #8bdfbd;
  --cx-tone-5-bg: #3a321d;
  --cx-tone-5: #e6cb82;
}

:root[data-theme="porcelain"] {
  color-scheme: light;
  --cx-bg: #f5f7fc;
  --cx-surface: #ffffff;
  --cx-raised: #edf1f8;
  --cx-rail: #edf1f8;
  --cx-line: #d9dfeb;
  --cx-line-strong: #a9b5cd;
  --cx-text: #141d35;
  --cx-body: #3c4963;
  --cx-muted: #586780;
  --cx-accent: #304fc2;
  --cx-accent-strong: #3559db;
  --cx-accent-rgb: 53, 89, 219;
  --cx-on-accent: #ffffff;
  --cx-soft: #e6ecff;
  --cx-success: #176648;
  --cx-success-bg: #e3f4ec;
  --cx-warning: #85530f;
  --cx-warning-bg: #fff1d7;
  --cx-danger: #ac3240;
  --cx-danger-bg: #ffebed;
  --cx-shadow: 0 16px 38px #1727540e;
  --cx-core-top: #7b96ff;
  --cx-core-side: #233c99;
  --cx-code-bg: #141c32;
  --cx-code-text: #d2ddff;
  --cx-tone-0-bg: #e5ecff;
  --cx-tone-0: #3557b4;
  --cx-tone-1-bg: #def2fa;
  --cx-tone-1: #196481;
  --cx-tone-2-bg: #eee7fb;
  --cx-tone-2: #7050a2;
  --cx-tone-3-bg: #fae9df;
  --cx-tone-3: #96552b;
  --cx-tone-4-bg: #dff2e9;
  --cx-tone-4: #296a50;
  --cx-tone-5-bg: #f6edcf;
  --cx-tone-5: #7b6223;
}

:root {
  --paper: var(--cx-bg);
  --surface: var(--cx-surface);
  --ink: var(--cx-text);
  --body: var(--cx-body);
  --muted: var(--cx-muted);
  --line: var(--cx-line);
  --teal: var(--cx-accent);
  --mint: var(--cx-soft);
  --mint-deep: var(--cx-accent-strong);
  --sand: var(--cx-raised);
  --orange: var(--cx-warning);
  --bad: var(--cx-danger);
  --ok: var(--cx-success);
  --shadow: var(--cx-shadow);
  background: var(--cx-bg);
  color: var(--cx-text);
}

body { background: var(--cx-bg); color: var(--cx-text); }
::selection { background: var(--cx-accent-strong); color: var(--cx-on-accent); }
:focus-visible { outline: 2px solid var(--cx-accent); outline-offset: 4px; }
input, select, textarea { accent-color: var(--cx-accent-strong); }
input::placeholder, textarea::placeholder { color: var(--cx-muted); opacity: 1; }
button:disabled, a[aria-disabled="true"] { opacity: .45; }

/* Navigation has its own quieter surface; selected destinations are unmistakable. */
.sidebar { background: var(--cx-rail); border-color: var(--cx-line); }
.workspace-header { background: var(--cx-bg); border-color: var(--cx-line); }
.brand { color: var(--cx-text); }
.brand-mark { background: var(--cx-accent-strong); color: var(--cx-on-accent); box-shadow: inset 0 1px 0 #ffffff26; }
.brand-sub, .rail-caption, .sidebar nav .rail-caption,
.sidebar nav>a, .rail-docs, .local-status,
.rail-callout>span:not(.rail-callout-icon), .workspace-path>span,
.command-search, .command-search kbd { color: var(--cx-muted); }
.nav-symbol, .nav-mini { color: var(--cx-muted); }
.sidebar nav>a:hover { background: var(--cx-raised); color: var(--cx-text); }
.sidebar nav>a[aria-current="page"] { background: var(--cx-soft); border-color: rgba(var(--cx-accent-rgb), .22); color: var(--cx-accent); box-shadow: none; }
.sidebar nav>a[aria-current="page"] .nav-symbol,
.sidebar nav>a[aria-current="page"] .nav-mini { color: var(--cx-accent); }
.nav-divider, .local-status { border-color: var(--cx-line); }
.local-status>span, .connect-dot, .status-dot-dark { background: var(--cx-success); }
.rail-callout { background: var(--cx-surface); border-color: var(--cx-line); box-shadow: none; }
.rail-callout strong { color: var(--cx-text); }
.rail-callout-icon { background: var(--cx-soft); color: var(--cx-accent); }
.rail-callout b { color: var(--cx-accent); }
.rail-callout:hover { border-color: var(--cx-line-strong); }
.workspace-path strong { color: var(--cx-body); }
.command-search kbd, .directory-search kbd { background: var(--cx-raised); border-color: var(--cx-line); color: var(--cx-muted); }
.connect-header { background: var(--cx-surface); color: var(--cx-text); border-color: var(--cx-line); box-shadow: none; }
.connect-header:hover { border-color: var(--cx-line-strong); background: var(--cx-raised); }
.connect-header>span:last-child { color: var(--cx-muted); }
.environment { background: var(--cx-raised); color: var(--cx-body); }

/* Dark and light mode stay within reach and expose their selected state. */
.appearance-control { display: inline-flex; align-items: center; gap: 3px; padding: 3px; border: 1px solid var(--cx-line); border-radius: 8px; background: var(--cx-surface); flex: none; }
.palette-option { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 28px; padding: 5px 8px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--cx-muted); font-size: 10px; line-height: 1; font-weight: 500; cursor: pointer; white-space: nowrap; }
.palette-option::before { content: ""; width: 8px; height: 8px; border-radius: 50%; flex: none; background: #6b8aff; box-shadow: 0 0 0 1px #ffffff25; }
.palette-option[data-theme-choice="porcelain"]::before { background: #e9efff; box-shadow: 0 0 0 1px #8191b5; }
.palette-option:hover { color: var(--cx-text); background: var(--cx-raised); }
.palette-option[aria-pressed="true"] { background: var(--cx-soft); color: var(--cx-accent); border-color: rgba(var(--cx-accent-rgb), .22); }
.motion-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 32px; min-height: 34px; border: 1px solid var(--cx-line); border-radius: 8px; color: var(--cx-muted); background: var(--cx-surface); padding: 7px 9px; font-size: 10px; line-height: 1; white-space: nowrap; cursor: pointer; flex: none; }
.motion-toggle:hover { color: var(--cx-text); border-color: var(--cx-line-strong); }
.motion-toggle[aria-pressed="true"] { color: var(--cx-accent); background: var(--cx-soft); }

/* Strong primary actions and legible, quiet supporting controls. */
.button, .icon-button { background: var(--cx-surface); color: var(--cx-text); border-color: var(--cx-line); box-shadow: none; }
.button:hover, .icon-button:hover { background: var(--cx-raised); border-color: var(--cx-line-strong); }
.button-dark, .button-mint { background: var(--cx-accent-strong); color: var(--cx-on-accent); border-color: var(--cx-accent-strong); box-shadow: inset 0 1px 0 #ffffff20; }
.button-dark:hover, .button-mint:hover { background: var(--cx-accent); color: var(--cx-on-accent); border-color: var(--cx-accent); }
.button-quiet { background: transparent; color: var(--cx-body); }
.button-quiet:hover { background: var(--cx-raised); color: var(--cx-text); }
.button-danger { background: var(--cx-danger-bg); color: var(--cx-danger); border-color: var(--cx-danger); }
.skip-link { background: var(--cx-accent-strong); color: var(--cx-on-accent); }
.site-header nav a:hover, .site-header nav a[aria-current="page"] { background: var(--cx-soft); color: var(--cx-accent); }

/* Editorial canvas and the agent network illustration. */
.edition-label, .editorial-copy>p, .hero-text-link,
.art-corner, .art-caption, .art-number { color: var(--cx-muted); }
.tiny-star, .editorial-copy h1>span, .hero h1 em,
.sources-intro h1>span { color: var(--cx-accent); }
.hero-text-link:hover { color: var(--cx-accent); }
.network-art { background: transparent; border-color: var(--cx-line); }
.art-caption .status-dot { background: var(--cx-accent); }
.orbit-grid { fill: var(--cx-line); stroke: var(--cx-line); opacity: .5; }
.orbit-track { fill: none; stroke: var(--cx-line-strong); opacity: .55; }
.orbit-path { fill: none; stroke: var(--cx-accent); opacity: .7; }
.core-face { fill: var(--cx-accent-strong); stroke: var(--cx-accent); }
.core-top { fill: var(--cx-core-top); stroke: var(--cx-core-top); }
.core-side { fill: var(--cx-core-side); stroke: var(--cx-core-side); }
.core-label { fill: var(--cx-on-accent); color: var(--cx-on-accent); }
.satellite-surface { fill: var(--cx-raised); stroke: var(--cx-line-strong); }
.satellite-icon { fill: var(--cx-accent); stroke: none; }
.network-caption { fill: var(--cx-muted); color: var(--cx-muted); }
.packet { fill: var(--cx-accent); stroke: var(--cx-bg); }

/* Discovery, search, filters, list and grid views. */
.index-heading { border-color: var(--cx-line); }
.index-tab, .source-note { color: var(--cx-muted); }
.index-tab.selected { color: var(--cx-text); border-color: var(--cx-accent-strong); }
.index-tab span { background: var(--cx-raised); border-color: var(--cx-line); color: var(--cx-muted); }
.hollow-dot { border-color: var(--cx-accent); }
.directory-search { background: var(--cx-surface); border-color: var(--cx-line); box-shadow: none; }
.directory-search>span { color: var(--cx-muted); }
.directory-search input { color: var(--cx-text); }
.directory-search input::placeholder { color: var(--cx-muted); }
.directory-search:focus-within { outline: 2px solid var(--cx-accent); outline-offset: 2px; }
.catalog-selects select, .category-select select { background: var(--cx-surface); color: var(--cx-body); border-color: var(--cx-line); }
.view-toggle { background: var(--cx-rail); border-color: var(--cx-line); }
.view-toggle button { color: var(--cx-muted); }
.view-toggle button[aria-pressed="true"] { color: var(--cx-accent); background: var(--cx-soft); border-color: rgba(var(--cx-accent-rgb), .18); box-shadow: none; }
.quick-filters button { color: var(--cx-muted); background: var(--cx-surface); border-color: var(--cx-line); box-shadow: none; }
.quick-filters button:hover { border-color: var(--cx-line-strong); color: var(--cx-text); }
.quick-filters button[aria-pressed="true"] { background: var(--cx-accent-strong); color: var(--cx-on-accent); border-color: var(--cx-accent-strong); box-shadow: none; }
.filter[aria-pressed="true"] { background: var(--cx-soft); color: var(--cx-accent); border-color: rgba(var(--cx-accent-rgb), .3); }
.result-heading>span, .result-controls, .result-controls #result-summary,
.result-controls select, .pagination { color: var(--cx-muted); }
.result-controls select { background: var(--cx-bg); }
.pagination button { color: var(--cx-body); }
.resource-card { background: var(--cx-surface); border-color: var(--cx-line); box-shadow: none; }
.resource-card:hover { border-color: rgba(var(--cx-accent-rgb), .65); box-shadow: var(--cx-shadow); }
.resource-copy h3 { color: var(--cx-text); }
.resource-copy p, .resource-provider, .resource-category,
.resource-footer, .resource-footer>span:last-child,
.resource-price small, .resource-list .resource-price small { color: var(--cx-muted); }
.resource-arrow { color: var(--cx-muted); }
.resource-card:hover .resource-arrow { color: var(--cx-accent); }
.resource-footer { background: var(--cx-rail); border-color: var(--cx-line); }
.resource-price { color: var(--cx-text); }
.resource-symbol { box-shadow: inset 0 1px 0 #ffffff0d; border-color: #ffffff0b; }
.tone-0 { background: var(--cx-tone-0-bg); color: var(--cx-tone-0); border-color: transparent; }
.tone-1 { background: var(--cx-tone-1-bg); color: var(--cx-tone-1); border-color: transparent; }
.tone-2 { background: var(--cx-tone-2-bg); color: var(--cx-tone-2); border-color: transparent; }
.tone-3 { background: var(--cx-tone-3-bg); color: var(--cx-tone-3); border-color: transparent; }
.tone-4 { background: var(--cx-tone-4-bg); color: var(--cx-tone-4); border-color: transparent; }
.tone-5 { background: var(--cx-tone-5-bg); color: var(--cx-tone-5); border-color: transparent; }
.network-tag { background: var(--cx-raised); border-color: var(--cx-line); color: var(--cx-muted); }
.network-tag i { background: var(--cx-accent); }
.index-footnote { border-color: var(--cx-line); }
.index-footnote p, .footnote-symbol { color: var(--cx-muted); }
.index-footnote>a { color: var(--cx-accent); }
.developer-band { background: var(--cx-soft); border-color: rgba(var(--cx-accent-rgb), .23); }
.developer-band p { color: var(--cx-body); }
.band-art { color: var(--cx-accent); opacity: .12; }
.skeleton-grid>div { border-color: var(--cx-line); background: linear-gradient(100deg, var(--cx-surface), var(--cx-raised), var(--cx-surface)); background-size: 200%; }

/* Catalog detail, sources, agent workspace and developer documentation. */
.panel, .agent-card, .wallet-option, .source-card,
.catalog, .activity-table, .small-panel { background: var(--cx-surface); border-color: var(--cx-line); box-shadow: none; }
.panel p, .external-description, .external-facts small, .source-link small,
.sources-intro>p, .coverage-totals span, .source-card>p,
.source-card-count span, .source-number, .source-card>p.source-license,
.source-card>p.source-attribution, .detail-verification p { color: var(--cx-muted); }
.external-facts strong { color: var(--cx-text); }
.source-card>a, .record-download { color: var(--cx-accent); }
.endpoint-display { background: var(--cx-raised); border-color: var(--cx-line); }
.endpoint-display>span { color: var(--cx-muted); }
.endpoint-display code, .endpoint-list code { color: var(--cx-accent); }
.endpoint-display button { color: var(--cx-muted); background: transparent; }
.endpoint-display button:hover { color: var(--cx-text); }
.endpoint-list span { color: var(--cx-muted); }
.endpoint-list>div, .detail-verification { border-color: var(--cx-line); }
.source-link { border-color: var(--cx-line); }
.catalog-head, .catalog-bottom, .activity-table th, .small-panel-dark { background: var(--cx-raised); color: var(--cx-muted); }
.service-row:hover, .activity-table tbody tr:hover { background: var(--cx-raised); }
.service-icon { background: var(--cx-tone-0-bg); color: var(--cx-tone-0); border-color: transparent; }
.service-icon[data-category="Data"] { background: var(--cx-tone-1-bg); color: var(--cx-tone-1); border-color: transparent; }
.service-icon[data-category="Location"] { background: var(--cx-tone-3-bg); color: var(--cx-tone-3); border-color: transparent; }
.row-arrow { color: var(--cx-muted); }
.empty { background: var(--cx-surface); border-color: var(--cx-line-strong); }
.empty-symbol { color: var(--cx-accent); }
.agent-avatar { background: var(--cx-soft); color: var(--cx-accent); }
.meter { background: var(--cx-raised); accent-color: var(--cx-accent-strong); }
.meter span, .meter::-webkit-progress-value { background: var(--cx-accent-strong); }
.meter::-webkit-progress-bar { background: var(--cx-raised); }
.meter::-moz-progress-bar { background: var(--cx-accent-strong); }
.docs-nav a:hover, .doc-link:hover { background: var(--cx-soft); color: var(--cx-accent); }
.step-list li::before { background: var(--cx-soft); color: var(--cx-accent); border-color: var(--cx-line); }
.code-block { background: var(--cx-code-bg); color: var(--cx-code-text); border: 1px solid var(--cx-line); }
.code-light { background: var(--cx-raised); color: var(--cx-body); }
.endpoint-label { background: var(--cx-raised); color: var(--cx-accent); }
.terminal { background: var(--cx-code-bg); color: var(--cx-code-text); border-color: var(--cx-line); }
.terminal-head { border-color: var(--cx-line); color: #a0abc0; }
.terminal-head i { background: #6b7892; }
.terminal-head .terminal-tag, .terminal-body .prompt,
.terminal-body .terminal-result { color: #b0c3ff; }
.terminal-body .comment { color: #a0abc0; }
.terminal-body .terminal-result { border-color: var(--cx-line); }

/* Semantic states retain their meaning in every palette. */
.pill { background: var(--cx-soft); border-color: rgba(var(--cx-accent-rgb), .25); color: var(--cx-accent); }
.pill-neutral { background: var(--cx-raised); color: var(--cx-muted); border-color: var(--cx-line); }
.pill-warn { background: var(--cx-warning-bg); color: var(--cx-warning); border-color: var(--cx-warning-bg); }
.pill-bad { background: var(--cx-danger-bg); color: var(--cx-danger); border-color: var(--cx-danger-bg); }
.pill-ok { background: var(--cx-success-bg); color: var(--cx-success); border-color: var(--cx-success-bg); }
.notice { background: var(--cx-soft); border-color: rgba(var(--cx-accent-rgb), .24); color: var(--cx-body); }
.notice.warning { background: var(--cx-warning-bg); border-color: var(--cx-warning-bg); color: var(--cx-warning); }
.notice.error { background: var(--cx-danger-bg); border-color: var(--cx-danger-bg); color: var(--cx-danger); }
.check-symbol, .success-mark { background: var(--cx-success-bg); color: var(--cx-success); }
.check-symbol.failed { background: var(--cx-danger-bg); color: var(--cx-danger); }
.timeline .event-dot { border-color: var(--cx-soft); background: var(--cx-accent-strong); }
.progress-strip span { background: var(--cx-line); }
.progress-strip span.active { background: var(--cx-accent-strong); }
.loader { border-color: var(--cx-line); border-top-color: var(--cx-accent); }

/* Publishing, connection forms, dialogs and receipts share the same material. */
.field input, .field select, .field textarea,
.form-field input, .form-field select, .form-field textarea { background: var(--cx-bg); border-color: var(--cx-line-strong); color: var(--cx-text); }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--cx-accent); }
.field input:disabled, .field select:disabled, .field textarea:disabled { background: var(--cx-raised); color: var(--cx-muted); }
.check-item { background: var(--cx-raised); color: var(--cx-body); }
.check-item input { accent-color: var(--cx-accent-strong); }
dialog { background: var(--cx-surface); border-color: var(--cx-line-strong); color: var(--cx-text); box-shadow: 0 28px 100px #00000060; }
dialog::backdrop { background: #030612a8; backdrop-filter: blur(7px); }
.modal-head, .modal-foot { border-color: var(--cx-line); }
.modal-foot { background: var(--cx-rail); }
.wallet-option:hover { border-color: var(--cx-accent); background: var(--cx-raised); }
.receipt-grid small, .modal-head p { color: var(--cx-muted); }
.receipt-grid strong { color: var(--cx-text); }
#toast { background: var(--cx-raised); color: var(--cx-text); border-color: var(--cx-line-strong); box-shadow: var(--cx-shadow); }
footer { color: var(--cx-muted); border-color: var(--cx-line); }
.footer-brand { color: var(--cx-text); }
.footer-brand span { color: var(--cx-muted); }

@media (max-width: 1200px) {
  .workspace-header { gap: 12px; }
  .command-search { min-width: 140px; }
  .palette-option { padding-inline: 6px; font-size: 9px; }
}

@media (max-width: 1200px) {
  .workspace-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; height: auto; min-height: 98px; padding-block: 12px; gap: 10px; }
  .workspace-path { grid-column: 1; grid-row: 1; }
  .command-search { min-width: 0; }
  .command-search { grid-column: 2; grid-row: 1; }
  .connect-header { grid-column: 3; grid-row: 1; }
  .command-search>span:nth-child(2), .command-search kbd { display: none; }
  .appearance-control { grid-column: 1 / 3; grid-row: 2; justify-self: start; }
  .motion-toggle { grid-column: 3; grid-row: 2; justify-self: end; }
}

@media (max-width: 600px) {
  .sidebar { background: var(--cx-rail); }
  .workspace-header { min-height: 98px; }
  .palette-option { min-height: 30px; padding-inline: 10px; font-size: 10px; }
  .network-art { background: var(--cx-surface); border-color: var(--cx-line); }
  .connect-header { padding-inline: 9px; }
}

.detail-verification { color: var(--cx-muted); }
@media (max-width: 390px) {
  .motion-label { display: none; }
  .palette-option { padding-inline: 8px; }
}

/* Public catalog capabilities never render local administrative entry points. */
body[data-runtime="public-catalog"] [data-nav="tools"],
body[data-runtime="public-catalog"] [data-nav="agents"],
body[data-runtime="public-catalog"] [data-nav="activity"],
body[data-runtime="public-catalog"] .index-tab[href="#tools"],
body[data-runtime="public-catalog"] nav > .rail-caption { display:none; }

.source-freshness {font-size:11px;margin:20px 0;color:var(--cx-muted);}
.source-freshness>div {display:flex;gap:15px;justify-content:space-between;margin-top:9px;}
.source-freshness dd {margin:0;color:var(--cx-body);text-align:right;}

@media (max-width: 360px) {
  body[data-runtime="public-catalog"] .sidebar nav { gap: 1px; }
  body[data-runtime="public-catalog"] .sidebar nav > a { gap: 4px; padding-inline: 7px; font-size: 9px; }
}
