/* Final presentation layer, only on explicitly mounted TBLS workspaces.
   The existing operating layouts and access rules remain owned by the core. */
:root[data-workspace-brand="tbls"] {
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: var(--sans);
  --tbls-bg: #f4f4f1;
  --tbls-surface: #ffffff;
  --tbls-surface-1: #e9e9e4;
  --tbls-surface-2: #deded7;
  --tbls-surface-3: #edf4cf;
  --tbls-text: #070708;
  --tbls-muted: #5b5b56;
  --tbls-line: #c8c8c0;
  --tbls-accent: #556800;
  --tbls-accent-ink: #ffffff;
  --bg: var(--tbls-bg);
  --surface: var(--tbls-surface);
  --surface-1: var(--tbls-surface-1);
  --surface-2: var(--tbls-surface-2);
  --surface-3: var(--tbls-surface-3);
  --line: var(--tbls-line);
  --text: var(--tbls-text);
  --muted: var(--tbls-muted);
  --subtle: var(--tbls-muted);
  --accent: var(--tbls-accent);
  --accent-strong: var(--tbls-accent);
  --accent-ink: var(--tbls-accent-ink);
  --gold: #756124;
  --green: #32724c;
  --red: #aa353c;
  --blue: #326688;
  --pink: #9f4080;
  --header-surface: var(--tbls-bg);
  --header-border: var(--tbls-line);
  --button-primary-bg: var(--tbls-accent);
  --button-primary-ink: var(--tbls-accent-ink);
  --button-secondary-bg: var(--tbls-surface);
  --button-secondary-border: var(--tbls-line);
  --button-secondary-ink: var(--tbls-text);
  --button-active-bg: var(--tbls-surface-3);
  --shadow: 0 18px 50px #07070812;
  --grain: none;
  color-scheme: light;
  font-family: var(--sans);
}
:root[data-workspace-brand="tbls"][data-app-theme="dark"] {
  --tbls-bg: #070708;
  --tbls-surface: #101012;
  --tbls-surface-1: #19191c;
  --tbls-surface-2: #222226;
  --tbls-surface-3: #292f17;
  --tbls-text: #f4f4f1;
  --tbls-muted: #a5a5a0;
  --tbls-line: #3c3c40;
  --tbls-accent: #dbff45;
  --tbls-accent-ink: #070708;
  --gold: #dbff45;
  --green: #91d3a8;
  --red: #f7a0a7;
  --blue: #9dcbe9;
  --pink: #f0a4d8;
  color-scheme: dark;
}
:root[data-workspace-brand="tbls"] :is(.tbls-staging-workspace, .tbls-staging-auth) {
  /* Keep the legacy local tokens on the selected light or dark palette. */
  --tbls-muted: inherit;
  --accent: var(--tbls-accent);
  --accent-strong: var(--tbls-accent);
  --accent-ink: var(--tbls-accent-ink);
  --surface: var(--tbls-surface);
  --surface-1: var(--tbls-surface-1);
  --surface-2: var(--tbls-surface-2);
  --surface-3: var(--tbls-surface-3);
  --line: var(--tbls-line);
  --text: var(--tbls-text);
  --muted: var(--tbls-muted);
  --tbls-ink: var(--tbls-text);
  --tbls-paper: var(--tbls-bg);
  --tbls-card: var(--tbls-surface);
}
:root[data-workspace-brand="tbls"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
}
:root[data-workspace-brand="tbls"] :is(body, .app-shell, .main)::before { display: none; }
:root[data-workspace-brand="tbls"] :is(h1, .topbar h2, .hub-hero h3, .panel h3, .event-library-header h1, .auth-card h2) {
  font-family: "Helvetica Neue", Arial, var(--sans);
  font-weight: 600;
  letter-spacing: -.045em;
  text-transform: none;
}
:root[data-workspace-brand="tbls"] .panel h3 { font-size: 21px; line-height: 1.2; }
:root[data-workspace-brand="tbls"] :is(.primary-button, .ghost-button, .text-button, .nav-button, .sidebar-new-event, .import-event-button) {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  border-radius: 9px;
}
:root[data-workspace-brand="tbls"] :is(.primary-button, .sidebar-new-event) {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-ink);
}
:root[data-workspace-brand="tbls"] :is(.primary-button, .sidebar-new-event):hover {
  background: color-mix(in srgb, var(--accent) 85%, var(--text));
}
:root[data-workspace-brand="tbls"] :is(input, textarea, select) {
  background: var(--surface);
  border-color: var(--line);
  color: var(--text);
  border-radius: 8px;
  font-family: var(--sans);
}
:root[data-workspace-brand="tbls"] :is(button, a, input, textarea, select, summary):focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}
:root[data-workspace-brand="tbls"] :is(.panel, .hub-module-card, .tbls-partner-card, .event-library-card) {
  border-color: var(--line);
  border-radius: 14px;
  background: var(--surface);
}
:root[data-workspace-brand="tbls"] .sidebar {
  --surface: #070708;
  --surface-1: #101012;
  --surface-2: #19191c;
  --surface-3: #292f17;
  --text: #f4f4f1;
  --muted: #a5a5a0;
  --line: #3c3c40;
  --accent: #dbff45;
  --accent-strong: #dbff45;
  --accent-ink: #070708;
  background: #070708;
  color: #f4f4f1;
}
:root[data-workspace-brand="tbls"] .sidebar .nav-button {
  border-left: 0;
  color: var(--muted);
}
:root[data-workspace-brand="tbls"] .sidebar .nav-button.active {
  background: #dbff45;
  color: #070708;
}
:root[data-workspace-brand="tbls"] .sidebar .promoter-brand-kicker { color: #dbff45; }
:root[data-workspace-brand="tbls"] :is(.tbls-workspace-mark, .tbls-entry-mark) {
  background: #dbff45;
  color: #070708;
  border: 0;
  border-radius: 10px;
  font: 600 10px/1 var(--sans);
  letter-spacing: -.03em;
  box-shadow: none;
}
:root[data-workspace-brand="tbls"] .auth-shell {
  background: radial-gradient(ellipse at 8% 5%, #dbff4509, transparent 40%), var(--bg);
  color: var(--text);
}
:root[data-workspace-brand="tbls"] .auth-shell::before,
:root[data-workspace-brand="tbls"] .auth-shell::after { display: none; }
:root[data-workspace-brand="tbls"] .auth-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 24px;
  color: var(--text);
  box-shadow: var(--shadow);
}
:root[data-workspace-brand="tbls"] .auth-card h1 {
  max-width: 12ch;
  color: var(--text);
  font: 600 clamp(36px, 7vw, 52px)/1.02 "Helvetica Neue", Arial, sans-serif;
  letter-spacing: -.035em;
  text-transform: none;
}
:root[data-workspace-brand="tbls"] :is(.auth-primary, .auth-fallback) {
  background: var(--surface-1);
  border-color: var(--line);
  color: var(--text);
}
:root[data-workspace-brand="tbls"] :is(.tbls-entry-lede, .tbls-entry-sponsor, .tbls-entry-footer, .tbls-entry-guidance, .auth-card .muted) { color: var(--muted); }
:root[data-workspace-brand="tbls"] .auth-card .ops-label { color: var(--accent); }
:root[data-workspace-brand="tbls"] .app-theme-control {
  background: var(--surface-1);
  border-color: var(--line);
  border-radius: 999px;
}
:root[data-workspace-brand="tbls"] .app-theme-control button { font-family: var(--sans); text-transform: none; }
:root[data-workspace-brand="tbls"] .app-theme-control button[aria-pressed="true"] { background: var(--accent); color: var(--accent-ink); }
:root[data-workspace-brand="tbls"] .badge.gold {
  background: var(--surface-3);
  border-color: var(--line);
  color: var(--accent);
}
:root[data-workspace-brand="tbls"] .badge.green {
  background: color-mix(in srgb, var(--green) 12%, var(--surface));
  color: var(--green);
}
:root[data-workspace-brand="tbls"] .badge.red {
  background: color-mix(in srgb, var(--red) 12%, var(--surface));
  color: var(--red);
}
@media (max-width: 700px) {
  :root[data-workspace-brand="tbls"] .sidebar .nav-button { font-size: 10px; }
  :root[data-workspace-brand="tbls"] .auth-card { padding: 24px; }
}

/* Keep linked workspaces clear of the main header controls. */
:root[data-workspace-brand="tbls"] #business-workspace-nav {
  top: auto !important;
  bottom: 16px;
  right: 84px !important;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}
@media (max-width: 700px) {
  :root[data-workspace-brand="tbls"] #business-workspace-nav {
    right: 12px !important;
    bottom: 84px;
    gap: 12px !important;
    font-size: 11px !important;
    max-width: calc(100vw - 24px);
  }
}

:root[data-workspace-brand="tbls"][data-workspace-page="private"] {
  --ink: var(--tbls-text);
  --paper: var(--tbls-bg);
  --card: var(--tbls-surface);
  --page: var(--tbls-bg);
  --surface2: var(--tbls-surface-1);
  --surface-raised: var(--tbls-surface-1);
  --line-strong: var(--tbls-line);
  --warm: var(--tbls-surface-3);
  --danger: var(--red);
  --success: var(--green);
  --warning: var(--accent);
  background: var(--bg);
  color: var(--text);
}
@media screen {
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(button, input, textarea, select, .eyebrow, .status, .preview-toolbar, .brand) {
    font-family: var(--sans);
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] .app-header {
    min-height: 70px;
    height: auto;
    background: var(--bg);
    border-color: var(--line);
    flex-wrap: wrap;
    gap: 12px;
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] .app-header > div {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] .brand-mark {
    width: 40px;
    border-radius: 9px;
    background: var(--accent);
    color: var(--accent-ink);
    font: 600 10px/1 var(--sans);
    letter-spacing: -.03em;
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.button, .btn) {
    background: var(--surface);
    color: var(--text);
    border-color: var(--line);
    border-radius: 9px;
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.button.primary, .btn-primary, .primary-button) {
    background: var(--accent);
    color: var(--accent-ink);
    border-color: var(--accent);
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.button.quiet, .secondary-button, .icon-button) {
    background: transparent;
    color: var(--text);
    border-color: var(--line);
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.tabs, .closeout-table-wrap, .scenario-form, .quote-card, .provider-card, .mode-card, .preview-card) {
    background: var(--surface);
    color: var(--text);
    border-color: var(--line);
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.tab.active, .tag, .status-pill.quoted) {
    background: var(--surface-3);
    color: var(--accent);
    border-color: var(--line);
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.scenario-metric, .status-pill, .closeout-note, .closeout-table th) {
    background: var(--surface-1);
    color: var(--text);
    border-color: var(--line);
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.empty, .provider-head, .money-row.total, .caveats, .closeout-table td, .input-prefix, .empty-mark) { border-color: var(--line); }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.economics-hero > p:last-child, .section-heading p:not(.eyebrow), .form-note, .muted, .provider-model, .provider-notes, .mode-card > p, .money-row span, .quote-card > p, .quote-hint, .scenario-metric span, .caveats, .input-prefix i) { color: var(--muted); }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.scenario-grid, .quote-fields) label { color: var(--text); }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.field input, .field select, .field textarea, .closeout-controls select, .scenario-grid input, .scenario-grid select, .quote-fields input, .quote-fields select) {
    background: var(--surface);
    color: var(--text);
    border-color: var(--line);
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.alert.error, .error-message) {
    background: color-mix(in srgb, var(--red) 12%, var(--surface));
    color: var(--red);
    border-color: var(--red);
  }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] .empty-state { background: var(--surface); }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] .empty-mark { color: var(--accent); }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] :is(.intake-row:hover, .intake-row.is-selected, .secondary-button:hover, .icon-button:hover) { background: var(--surface-1); border-color: var(--accent); }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] .term-citation { background: var(--surface-1); color: var(--text); border-color: var(--line); }
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] .field-overlay { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 15%, transparent); }
}
@media print {
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] body { background: white; color: #111; }
}
@media (max-width: 620px) {
  :root[data-workspace-brand="tbls"][data-workspace-page="private"] .mode-grid {
    grid-template-columns: 1fr;
  }
}

/* Anonymous TBLS sign-in guidance remains readable in the light surface. */
:root:not([data-app-theme="dark"])[data-workspace-brand="tbls"] .tbls-staging-auth .tbls-entry-guidance { color: #4b5d4f; }
[data-app-theme="dark"][data-workspace-brand="tbls"] .tbls-staging-auth .tbls-entry-guidance { color: #abb5ad; }

/* The separately injected entry skin must retain readable interactive states. */
:root[data-workspace-brand="tbls"] .tbls-entry-designed .auth-fallback summary,
:root[data-workspace-brand="tbls"] .tbls-entry-designed .auth-fallback summary:hover,
:root[data-workspace-brand="tbls"] .tbls-entry-designed .auth-fallback summary:focus-visible,
:root[data-workspace-brand="tbls"] .tbls-entry-designed .auth-fallback[open] summary {
  color: var(--entry-text);
}
:root[data-workspace-brand="tbls"] .tbls-entry-designed .auth-fallback summary::after,
:root[data-workspace-brand="tbls"] .tbls-entry-designed .auth-fallback[open] summary::after {
  color: var(--entry-text);
}
:root[data-workspace-brand="tbls"] .tbls-entry-designed .auth-fallback summary:focus-visible {
  outline-color: var(--entry-text);
}

/* The assistant is a sibling of the auth/workspace surface, so scope it at root. */
:root[data-workspace-brand="tbls"] .gravity-aide-panel .primary-button,
:root[data-workspace-brand="tbls"] .gravity-aide-panel .gravity-aide-report-types .copy-button.active {
  background: var(--tbls-accent) !important;
  border-color: var(--tbls-accent) !important;
  color: var(--tbls-accent-ink) !important;
}
:root[data-workspace-brand="tbls"] .gravity-aide-panel :is(button, input):focus-visible {
  outline: 2px solid var(--tbls-accent) !important;
  outline-offset: 2px;
}

/* Override the opaque legacy assistant palette in both selected TBLS themes. */
:root[data-workspace-brand="tbls"] .gravity-aide-panel {
  background: var(--tbls-surface) !important;
  color: var(--tbls-text) !important;
  border-color: var(--tbls-line) !important;
}
:root[data-workspace-brand="tbls"] .gravity-aide-panel :is(header, header strong, .ops-label,
.gravity-aide-message, .gravity-aide-message p, .gravity-aide-message small,
.gravity-aide-report-mode, .gravity-aide-report-mode strong, .gravity-aide-form input) {
  color: var(--tbls-text) !important;
}
:root[data-workspace-brand="tbls"] .gravity-aide-panel :is(.gravity-aide-minimize,
.gravity-aide-message, .gravity-aide-report-mode, .gravity-aide-form input, .copy-button) {
  background: var(--tbls-surface-1) !important;
  color: var(--tbls-text) !important;
  border-color: var(--tbls-line) !important;
}
:root[data-workspace-brand="tbls"] .gravity-aide-panel .gravity-aide-form input::placeholder {
  color: var(--tbls-muted) !important;
}

/* Keep the event and shared-page entry points as compact as their editor. */
:root[data-workspace-brand="tbls"] #app .tbls-partner-hero {
  padding: 20px;
  border-radius: 10px;
  background: var(--tbls-surface);
}
:root[data-workspace-brand="tbls"] #app .tbls-partner-hero h2 {
  margin: 8px 0;
  font-size: 28px;
  line-height: 1.2;
  letter-spacing: -.025em;
}
:root[data-workspace-brand="tbls"] #app .tbls-partner-hero p,
:root[data-workspace-brand="tbls"] #app .tbls-partner-boundary {
  font-size: 13px;
  line-height: 1.5;
}
:root[data-workspace-brand="tbls"] #app .tbls-partner-actions :is(a,button) {
  min-height: 44px;
}
:root[data-workspace-brand="tbls"] #app .tbls-owner-backend-map:not(.tbls-owner-empty-directory) {
  padding-top: 24px;
}
:root[data-workspace-brand="tbls"] #app .tbls-owner-backend-heading h2 {
  max-width: none;
  margin: 10px 0 12px;
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1.15;
  letter-spacing: -.025em;
}
