/* Shared portal surfaces. Keep fixed dialogs outside any new blur contexts. */
:root[data-ft-theme] .portal-v2 {
  --portal-glass:color-mix(in srgb,var(--ft-surface) 38%,transparent);
  --portal-pane:color-mix(in srgb,var(--ft-surface) 65%,transparent);
  --pv-surface:var(--portal-pane);
  --dash-bg2:var(--portal-pane);
}
:root[data-ft-theme="light"] .portal-v2 {
  --portal-glass:color-mix(in srgb,var(--ft-surface) 55%,transparent);
  --portal-pane:color-mix(in srgb,var(--ft-surface) 80%,transparent);
}
:root[data-ft-theme] .portal-v2 :is(.dash-hero,.dash-card,.docs-welcome-card) {
  background:var(--ft-surface-glow,none),var(--portal-pane);
  border-color:var(--ft-border);
}
:root[data-ft-theme] .portal-v2.docs-root .docs-layout {
  background:var(--portal-glass);
  border-color:var(--ft-border);
}
:root[data-ft-theme] .portal-v2.docs-root :is(.docs-sidebar,.docs-toc) {
  background:var(--portal-pane);
  border-color:var(--ft-border);
}
:root[data-ft-theme] .portal-v2.docs-root .docs-main { background:transparent; }
:root[data-ft-theme] .portal-v2 :is(.home-next-card,.dash-metric,.dash-stats-hub,.stats-chart-panel,.stats-panel-block,.dash-table-wrap,.tg-history-item,.tg-ocean-item) {
  background:var(--portal-glass);
  border-color:var(--ft-border);
}
:root[data-ft-theme] .portal-v2 .portal-legal-footer :is(h2,h3,a) { color:var(--ft-text); }
:root[data-ft-theme] .portal-v2 .portal-nav-link.active { color:var(--ft-text); }
:root[data-ft-theme] .portal-v2 .home-next-card:hover {
  background:linear-gradient(150deg,rgba(var(--ft-accent-rgb),.14),transparent),var(--portal-pane);
}
:root[data-ft-theme] .portal-v2 .portal-legal-footer {
  background:var(--portal-glass);
  border-color:var(--ft-border);
}
/* Controls and sticky table headings retain a readable surface. */
:root[data-ft-theme] .portal-v2 :is(.tg-select,.tg-search,.tg-ocean-nick input,.tg-entry-field input) {
  background:var(--ft-surface-2);
  color:var(--ft-text);
  border-color:var(--ft-border);
}
:root[data-ft-theme] .portal-v2 .tg-table thead th {
  background:var(--ft-surface);
  color:var(--ft-muted);
}
:root[data-ft-theme] .portal-v2 .disp-scroll {
  background:var(--portal-pane);
  border-color:var(--ft-border);
}
:root[data-ft-theme] .portal-v2 .disp-table thead th,
:root[data-ft-theme] .portal-v2 .disp-table :is(th,td):first-child {
  background:var(--ft-surface);
  color:var(--ft-text);
  border-color:var(--ft-border);
}
