/* ============================================================
   Veyris application brand system

   Shared visual identity for every authenticated legacy surface.
   Layout, density, and interaction behavior remain owned by each
   page stylesheet; this file owns color, type, material, and state.
   ============================================================ */

@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("https://fonts.gstatic.com/s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K6z9mXg.woff2") format("woff2");
}

@font-face {
  font-family: "Libre Baskerville";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("https://fonts.gstatic.com/s/librebaskerville/v24/kmKnZrc3Hgbbcjq75U4uslyuy4kn0qNZaxMaC82U.woff2") format("woff2");
}

@font-face {
  font-family: "Libre Baskerville";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("https://fonts.gstatic.com/s/librebaskerville/v24/kmKWZrc3Hgbbcjq75U4uslyuy4kn0qNccR04_RUJeby2OU36SjNNlufweKgfqIc.woff2") format("woff2");
}

:root {
  color-scheme: dark;

  /* Deep ink surfaces — the same material family as the public site. */
  --bg-0: #09131d;
  --bg-1: #0d151f;
  --bg-2: #121d29;
  --bg-3: #182431;
  --bg-4: #1f2d3b;
  --bg-5: #283846;

  /* Veyris blue is reserved for focus, selection, links, and live work. */
  --sw: #016bab;
  --sw-dark: #015487;
  --sw-light: #56a9d6;
  --sw-pale: #8fc7e5;
  --sw-dim: rgba(1, 107, 171, 0.22);
  --sw-glow: rgba(1, 107, 171, 0.1);
  --sw-line: rgba(86, 169, 214, 0.34);

  /* Brass carries primary decisions and editorial hierarchy. */
  --gold: #b9852d;
  --gold-deep: #8f621c;
  --gold-light: #d4a64b;
  --gold-pale: #e7c780;
  --gold-dim: rgba(185, 133, 45, 0.18);
  --gold-glow: rgba(185, 133, 45, 0.09);
  --gold-line: rgba(212, 166, 75, 0.36);

  --text-0: #fffdf8;
  --text-1: #e7e0d4;
  --text-2: #b6afa3;
  --text-3: #948d82;

  --green: #70b47d;
  --red: #dc8174;
  --blue: #56a9d6;
  --amber: #d4a64b;

  --border-0: rgba(255, 253, 248, 0.055);
  --border-1: rgba(255, 253, 248, 0.1);
  --border-2: rgba(255, 253, 248, 0.17);

  --font-serif: "Libre Baskerville", Georgia, "Times New Roman", serif;
  --font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-ui: var(--font-body);

  /* Compatibility aliases used by a few older app states. */
  --accent: var(--red);
  --accent-1: var(--gold-light);
  --border: var(--border-1);
  --surface-2: var(--bg-2);

  --shadow-card: 0 1px 0 rgba(255, 253, 248, 0.025);
  --shadow-overlay: 0 24px 64px rgba(0, 0, 0, 0.38);
  --overlay-backdrop: rgba(4, 10, 16, 0.72);

  /* Canvas/SVG chart tokens are mirrored by the JS chart theme helpers. */
  --chart-text: #d8d1c5;
  --chart-muted: #9d9588;
  --chart-grid: rgba(255, 253, 248, 0.08);
  --chart-border: rgba(255, 253, 248, 0.12);
  --chart-tooltip-bg: rgba(13, 21, 31, 0.97);
  --chart-tooltip-title: #fffdf8;
  --chart-tooltip-body: #d8d1c5;
  --chart-primary: #d4a64b;
  --chart-series-1: #56a9d6;
  --chart-series-2: #70b47d;
  --chart-series-3: #d4a64b;
  --chart-series-4: #b88ac4;
  --chart-series-5: #dc8174;
  --chart-series-6: #73b8ae;
}

[data-theme="light"] {
  color-scheme: light;

  /* Warm paper surfaces from the Veyris public identity. */
  --bg-0: #ebe2d2;
  --bg-1: #f4efe5;
  --bg-2: #fbf8f1;
  --bg-3: #f0e8db;
  --bg-4: #e8dcc9;
  --bg-5: #decdb3;

  --sw: #016bab;
  --sw-dark: #015487;
  --sw-light: #01669f;
  --sw-pale: #075d89;
  --sw-dim: rgba(1, 107, 171, 0.11);
  --sw-glow: rgba(1, 107, 171, 0.055);
  --sw-line: rgba(1, 107, 171, 0.24);

  --gold: #a77625;
  --gold-deep: #765519;
  --gold-light: #b8842e;
  --gold-pale: #765519;
  --gold-dim: rgba(167, 118, 37, 0.12);
  --gold-glow: rgba(167, 118, 37, 0.065);
  --gold-line: rgba(167, 118, 37, 0.3);

  --text-0: #18202a;
  --text-1: #3f4650;
  --text-2: #5f5b52;
  --text-3: #6b6458;

  --green: #2e713d;
  --red: #a34438;
  --blue: #016bab;
  --amber: #765519;

  --border-0: rgba(24, 32, 42, 0.075);
  --border-1: rgba(24, 32, 42, 0.14);
  --border-2: rgba(24, 32, 42, 0.24);

  --shadow-card: 0 1px 0 rgba(24, 32, 42, 0.035);
  --shadow-overlay: 0 24px 64px rgba(24, 32, 42, 0.18);
  --overlay-backdrop: rgba(13, 21, 31, 0.52);

  --chart-text: #3f4650;
  --chart-muted: #6b6458;
  --chart-grid: rgba(24, 32, 42, 0.09);
  --chart-border: rgba(24, 32, 42, 0.14);
  --chart-tooltip-bg: rgba(13, 21, 31, 0.97);
  --chart-tooltip-title: #fffdf8;
  --chart-tooltip-body: #e7e0d4;
  --chart-primary: #a77625;
  --chart-series-1: #016bab;
  --chart-series-2: #2e713d;
  --chart-series-3: #a77625;
  --chart-series-4: #775581;
  --chart-series-5: #a34438;
  --chart-series-6: #357f77;
}

html,
body {
  text-rendering: optimizeLegibility;
}

::selection {
  color: #0d151f;
  background: var(--gold-light);
}

/* Keep keyboard focus unmistakable even on legacy controls that suppress the
   browser outline in their feature stylesheet. */
:where(button, a[href], input, textarea, select, [role="button"], [tabindex]):focus-visible {
  outline: 2px solid var(--sw-light);
  outline-offset: 2px;
}

/* Quiet, material background detail instead of the former cyan grid. */
.bg-grid,
[data-theme="light"] .bg-grid {
  background-image:
    linear-gradient(color-mix(in srgb, var(--gold) 4%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--gold) 4%, transparent) 1px, transparent 1px);
  background-size: 52px 52px;
}

/* The public identity renders the wordmark in ink on paper. */
[data-theme="light"] .brand-logo-img,
[data-theme="light"] .docs-brand-logo {
  filter: brightness(0) saturate(100%);
}

/* Editorial labels use brass; controls and selection continue to use blue. */
.section-label,
.portfolio-section-label,
.docs-eyebrow,
.docs-section-kicker,
.investor-run-state-eyebrow,
.investor-run-state-review-label,
.investor-run-state-group-title,
.reg-section-label {
  color: var(--gold-light);
}

[data-theme="light"] .section-label,
[data-theme="light"] .portfolio-section-label,
[data-theme="light"] .docs-eyebrow,
[data-theme="light"] .docs-section-kicker,
[data-theme="light"] .investor-run-state-eyebrow,
[data-theme="light"] .investor-run-state-review-label,
[data-theme="light"] .investor-run-state-group-title,
[data-theme="light"] .reg-section-label {
  color: var(--gold-deep);
}

/* Sharper, flatter work surfaces echo the website's decision-pack material. */
.portfolio-header-card,
.portfolio-panel,
.portfolio-empty-state,
.portfolio-summary-card,
.portfolio-sidebar-card,
.reg-card,
.docs-status,
.docs-empty,
.admin-panel,
.acct-modal {
  box-shadow: var(--shadow-card);
}

.portfolio-header-card,
.portfolio-panel,
.portfolio-empty-state,
.portfolio-summary-card,
.reg-card,
.docs-status,
.docs-empty {
  border-radius: 6px;
}

.input-wrapper,
.auth-input,
.portfolio-input,
.portfolio-textarea,
.reg-search {
  border-radius: 5px;
}

/* Primary decisions use brass, matching the public site's primary CTA. */
.btn-run[data-state="ready"],
.auth-submit,
.portfolio-btn-primary,
.admin-btn-add {
  color: #0d151f;
  border-color: var(--gold);
  background: var(--gold);
  box-shadow: 0 2px 8px var(--gold-glow);
}

.btn-run[data-state="ready"]:hover,
.auth-submit:hover,
.portfolio-btn-primary:hover,
.admin-btn-add:hover {
  color: #0d151f;
  border-color: var(--gold-light);
  background: var(--gold-light);
  box-shadow: 0 5px 16px var(--gold-dim);
}

/* Portfolio "Ask AI Analyst" — the flagship AI action, promoted from a quiet
   secondary to a hero primary: a richer brass gradient, a sparkle mark, a soft
   glow, and a hover lift so it reads as the most inviting call to action and is
   clearly distinct from the flat brass primaries next to it. No position/overflow
   here — the button keeps its data-tooltip pseudo-elements intact. */
.portfolio-ask-analyst-btn {
  gap: 7px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #0d151f;
  border-color: var(--gold-light);
  background: linear-gradient(135deg, var(--gold-light) 0%, var(--gold) 52%, var(--gold-deep) 100%);
  box-shadow: 0 3px 14px var(--gold-glow), inset 0 1px 0 rgba(255, 255, 255, 0.28);
}
.portfolio-ask-analyst-btn .ask-analyst-icon {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.18));
}
.portfolio-ask-analyst-btn:hover {
  color: #0d151f;
  border-color: var(--gold-light);
  background: linear-gradient(135deg, var(--gold-light) 0%, var(--gold-light) 45%, var(--gold) 100%);
  box-shadow: 0 6px 20px var(--gold-dim), inset 0 1px 0 rgba(255, 255, 255, 0.34);
  transform: translateY(-1px);
}
@media (prefers-reduced-motion: reduce) {
  .portfolio-ask-analyst-btn:hover { transform: none; }
}

/* Keep navigation quiet; blue indicates the current workspace. */
.registry-link.is-active,
.registry-link[aria-current="page"] {
  border-color: var(--sw-line);
  background: var(--sw-dim);
  box-shadow: inset 0 -1px 0 var(--sw);
}

/* Small operational labels must remain legible on both ink and paper. */
.history-filter-chip.is-active,
.history-meta-tag,
.history-meta-skills,
.history-meta-asset-class,
.reg-card-tag--tool,
.reg-type-badge--tool,
.docs-workspace-pill {
  color: var(--sw-pale);
  border-color: var(--sw-line);
  background: var(--sw-glow);
}

.history-meta-followups,
.history-meta-model,
.history-meta-forum {
  color: var(--green);
  border-color: color-mix(in srgb, var(--green) 32%, transparent);
  background: color-mix(in srgb, var(--green) 10%, transparent);
}

.history-meta-shared,
.history-meta-design,
.history-meta-deep,
.history-meta-warning {
  color: var(--gold-pale);
  border-color: var(--gold-line);
  background: var(--gold-glow);
}

.history-meta-danger {
  color: var(--red);
  border-color: color-mix(in srgb, var(--red) 34%, transparent);
  background: color-mix(in srgb, var(--red) 10%, transparent);
}

.history-meta-person,
.history-meta-live,
.history-meta-quick {
  color: var(--sw-pale);
  border-color: var(--sw-line);
  background: var(--sw-glow);
}

.history-meta-person {
  font-weight: 500;
}

.history-meta-running {
  animation: pulse 1.5s ease-in-out infinite;
}

.history-meta-neutral,
.history-meta-shared-owner {
  color: var(--text-2);
  border-color: var(--border-1);
  background: var(--bg-3);
}

[data-theme="light"] .history-filter-chip.is-active,
[data-theme="light"] .history-meta-tag,
[data-theme="light"] .history-meta-skills,
[data-theme="light"] .history-meta-asset-class,
[data-theme="light"] .history-meta-person,
[data-theme="light"] .history-meta-live,
[data-theme="light"] .history-meta-quick,
[data-theme="light"] .reg-card-tag--tool,
[data-theme="light"] .reg-type-badge--tool,
[data-theme="light"] .docs-workspace-pill {
  color: var(--sw-dark);
}

[data-theme="light"] .history-meta-followups,
[data-theme="light"] .history-meta-model,
[data-theme="light"] .history-meta-forum {
  color: var(--green);
}

[data-theme="light"] .history-meta-shared,
[data-theme="light"] .history-meta-design,
[data-theme="light"] .history-meta-deep,
[data-theme="light"] .history-meta-warning {
  color: var(--gold-deep);
}

[data-theme="light"] .history-meta-danger {
  color: var(--red);
}

[data-theme="light"] .history-meta-neutral,
[data-theme="light"] .history-meta-shared-owner {
  color: var(--text-2);
}

/* Older feature styles used fixed dark-theme status colors. */
.portfolio-monitor-status[data-state="active"],
.portfolio-monitor-status[data-state="running"] {
  color: var(--green);
  border-color: color-mix(in srgb, var(--green) 38%, transparent);
}

.portfolio-monitor-status[data-state="paused"],
.portfolio-cashflow-cell--missing .portfolio-value-primary,
.portfolio-cashflow-guide {
  color: var(--gold-pale);
}

.portfolio-monitor-status[data-state="paused"],
.portfolio-cashflow-cell--missing,
.portfolio-cashflow-guide {
  border-color: var(--gold-line);
}

.portfolio-cashflow-cell--missing,
.portfolio-cashflow-guide {
  background: var(--gold-glow);
}

.portfolio-monitor-status[data-state="mixed"] {
  color: var(--sw-pale);
  border-color: var(--sw-line);
}

.topbar-status[data-state="running"] .status-label {
  color: var(--sw-light);
}

[data-theme="light"] .portfolio-monitor-status[data-state="paused"],
[data-theme="light"] .portfolio-cashflow-cell--missing .portfolio-value-primary,
[data-theme="light"] .portfolio-cashflow-guide {
  color: var(--gold-deep);
}

[data-theme="light"] .portfolio-monitor-status[data-state="mixed"] {
  color: var(--sw-dark);
}

[data-theme="light"] .topbar-status[data-state="running"] .status-label {
  color: var(--sw-dark);
}

.reg-card-tag--file {
  color: var(--text-2);
  background: var(--bg-3);
}

button.investor-linkish {
  appearance: none;
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

/* Make raw translucent dark-mode fills equally legible on paper. */
[data-theme="light"] .monitors-sidebar-card,
[data-theme="light"] .monitor-detail-info-section,
[data-theme="light"] .monitor-run-card,
[data-theme="light"] .monitor-compare-card,
[data-theme="light"] .investor-run-state-card,
[data-theme="light"] .investor-notebook-card,
[data-theme="light"] .investor-decision-card,
[data-theme="light"] .investor-order-card,
[data-theme="light"] .portfolio-asset-entry,
[data-theme="light"] .portfolio-review-card,
[data-theme="light"] .portfolio-class-card {
  background: rgba(24, 32, 42, 0.018);
}

[data-theme="light"] .monitors-sidebar-card:hover,
[data-theme="light"] .portfolio-asset-entry:hover,
[data-theme="light"] .portfolio-review-card:hover,
[data-theme="light"] .portfolio-class-card:hover {
  background: rgba(24, 32, 42, 0.04);
}

/* Reports should read like investment documents, not terminal output. */
.analysis-body h1,
.analysis-body h2,
.forum-panel h1,
.forum-panel h2,
.chat-ai-body h2,
.chat-ai-body h3,
.portfolio-page-title,
.portfolio-panel-title,
.docs-page-title,
.docs-reference-shell .docs-topbar h1,
.docs-content h1,
.docs-content h2 {
  font-family: var(--font-serif);
}

/* Follow-up and review work belongs to the same blue evidence system. */
.chat-panel {
  border-color: var(--sw-line);
  box-shadow: 0 0 0 1px var(--sw-glow), 0 4px 20px rgba(0, 0, 0, 0.2);
}

.chat-panel-header {
  color: var(--sw-pale);
  border-bottom-color: var(--sw-line);
  background: var(--sw-dim);
}

.chat-model-label {
  color: var(--sw-pale);
  border-color: var(--sw-line);
  background: var(--sw-dim);
}

.chat-hints {
  border-bottom-color: var(--sw-line);
}

.chat-hint-btn,
.btn-action--review {
  color: var(--sw-pale);
  border-color: var(--sw-line);
  background: var(--sw-dim);
}

.chat-hint-btn:hover,
.btn-action--review:hover {
  color: var(--text-0);
  border-color: var(--sw-light);
  background: color-mix(in srgb, var(--sw) 28%, transparent);
}

.chat-compose {
  border-top-color: var(--sw-line);
  background: var(--sw-glow);
}

.chat-textarea {
  border-color: var(--sw-line);
}

.chat-textarea:focus {
  box-shadow: 0 0 0 3px var(--sw-dim);
}

.chat-send-btn:hover {
  box-shadow: 0 2px 8px var(--sw-dim);
}

.followup-jump-btn {
  border-color: var(--sw-line);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.28), 0 0 0 1px var(--sw-glow);
}

.followup-jump-btn:hover {
  border-color: var(--sw-light);
}

.followup-jump-icon {
  color: var(--sw-pale);
  background: var(--sw-dim);
}

.review-thinking-panel {
  background: var(--sw-glow);
}

.review-thinking-toggle {
  color: var(--sw-pale);
}

.review-thinking-toggle:hover {
  background: var(--sw-dim);
}

.review-thinking-dot {
  background: var(--sw-light);
}

.analysis-body h1 {
  border-bottom-color: var(--gold-line);
}

.analysis-body h3,
.analysis-body li::marker,
.report-addendum::before {
  color: var(--gold-light);
}

[data-theme="light"] .analysis-body h3,
[data-theme="light"] .analysis-body li::marker,
[data-theme="light"] .report-addendum::before {
  color: var(--gold-deep);
}

.analysis-body blockquote {
  border-left-color: var(--gold-line);
}

.analysis-body tr:nth-child(even) td,
.chat-ai-body tr:nth-child(even) td {
  background: color-mix(in srgb, var(--text-0) 2.5%, transparent);
}

[data-theme="light"] .analysis-search-input,
[data-theme="light"] .toast {
  background: var(--bg-2);
}

.portfolio-header-card,
.portfolio-panel,
.portfolio-empty-state,
.portfolio-summary-card {
  box-shadow: var(--shadow-card);
}

.admin-overlay,
.portfolio-modal-overlay,
.detail-overlay,
.acct-overlay {
  background: var(--overlay-backdrop);
}

.admin-panel,
.portfolio-modal,
.detail-panel,
.acct-modal,
.action-overflow-menu,
.user-menu-dropdown,
.toast {
  box-shadow: var(--shadow-overlay);
}

/* Portfolio and strategy SVG charts inherit the same chart palette. */
.portfolio-chart-grid line {
  stroke: var(--chart-grid);
}

.portfolio-chart-grid text,
.portfolio-chart-date,
.portfolio-chart-label,
.portfolio-chart-legend {
  fill: var(--chart-muted);
  color: var(--chart-muted);
}

.portfolio-chart-line--portfolio {
  stroke: var(--chart-primary);
}

.portfolio-chart-dot,
.portfolio-chart-legend-item--portfolio .portfolio-chart-legend-swatch {
  fill: var(--chart-primary);
  background: var(--chart-primary);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
  }
}
