/* ========================================================================== 
   InfoLib Theme Selector + Terminal palette system v10.1

   IMPORTANT:
   - Default and Night are not restyled by this file.
   - All dashboard skin rules are scoped to html.terminal-ui.
   - Load after the existing dashboard CSS.
   ========================================================================== */

/* Only the new theme-dropdown structure is shared between modes. Existing
   Bootstrap and dashboard styles still control the button in Default/Night. */
.dashboard-theme-dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

.dashboard-theme-toggle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .42rem;
  white-space: nowrap;
}

.dashboard-theme-toggle-icon,
.dashboard-theme-toggle-label {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}

.dashboard-theme-toggle-label {
  font-weight: 700;
  font-size: .88rem;
}

.dashboard-theme-menu {
  min-width: 272px;
  padding: 8px !important;
  background: var(--surface) !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow) !important;
}

.dashboard-theme-menu-title {
  padding: 5px 9px 8px;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.dashboard-theme-option {
  display: grid !important;
  grid-template-columns: 24px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 9px;
  width: 100%;
  padding: 8px 9px !important;
  color: var(--text) !important;
  background: transparent !important;
  border: 0 !important;
}

.dashboard-theme-option:hover,
.dashboard-theme-option:focus,
.dashboard-theme-option.active {
  background: var(--surface2) !important;
  color: var(--text) !important;
}

.dashboard-theme-option-icon {
  text-align: center;
  line-height: 1;
  color: var(--theme-option-color, currentColor);
}

.dashboard-theme-toggle[data-theme-palette] .dashboard-theme-toggle-icon {
  color: var(--theme-current-color, currentColor);
}

.dashboard-theme-menu-divider {
  height: 1px;
  margin: 6px 4px;
  background: var(--border);
}

.dashboard-theme-menu-subtitle {
  padding-top: 4px;
}

.dashboard-theme-option-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.dashboard-theme-option-label {
  font-size: .88rem;
  font-weight: 800;
  line-height: 1.2;
}

.dashboard-theme-option-description {
  margin-top: 2px;
  color: var(--muted);
  font-size: .73rem;
  line-height: 1.25;
}

.dashboard-theme-option-check {
  color: var(--primary);
  font-weight: 900;
  opacity: 0;
}

.dashboard-theme-option.active .dashboard-theme-option-check {
  opacity: 1;
}

/* --------------------------------------------------------------------------
   Terminal palettes — scoped opt-in skins
   -------------------------------------------------------------------------- */
html.terminal-ui {
  --terminal-accent: #ff8b00;
  --terminal-accent-bright: #ffb24a;
  --terminal-accent-border: #70430f;
  --terminal-accent-rgb: 255, 139, 0;
  --terminal-accent-soft: rgba(var(--terminal-accent-rgb), .10);

  --bg: #050505;
  --surface: #090909;
  --surface2: #101010;
  --text: #f2f2ef;
  --muted: #a7a49d;
  --border: #34302a;
  --header: rgba(var(--terminal-accent-rgb), .10);
  --primary: var(--terminal-accent);
  --primary-rgb: var(--terminal-accent-rgb);
  --nav-accent: var(--terminal-accent);
  --nav-accent-border: var(--terminal-accent-border);
  --tabs-blue: var(--terminal-accent);
  --tabs-blue-border: var(--terminal-accent-border);

  --terminal-bg: #050505;
  --terminal-panel: #090909;
  --terminal-panel-raised: #101010;
  --terminal-panel-hover: #151515;
  --terminal-line: #34302a;
  --terminal-line-soft: #24211d;
  --terminal-green: #35d07f;
  --terminal-red: #ff6259;
  --terminal-blue: #5db9ff;
  --terminal-purple: #b58cff;
  --terminal-yellow: #ffd166;

  --shadow: 0 18px 44px rgba(0, 0, 0, .62);
  color-scheme: dark;
}

html.terminal-ui[data-terminal-palette="orange"] {
  --terminal-accent: #ff8b00;
  --terminal-accent-bright: #ffb24a;
  --terminal-accent-border: #70430f;
  --terminal-accent-rgb: 255, 139, 0;
}

html.terminal-ui[data-terminal-palette="green"] {
  --terminal-accent: #29d17d;
  --terminal-accent-bright: #75efad;
  --terminal-accent-border: #246b49;
  --terminal-accent-rgb: 41, 209, 125;
}

html.terminal-ui[data-terminal-palette="blue"] {
  --terminal-accent: #3aa7ff;
  --terminal-accent-bright: #82caff;
  --terminal-accent-border: #265f89;
  --terminal-accent-rgb: 58, 167, 255;
}

html.terminal-ui[data-terminal-palette="purple"] {
  --terminal-accent: #a970ff;
  --terminal-accent-bright: #c9a6ff;
  --terminal-accent-border: #60418c;
  --terminal-accent-rgb: 169, 112, 255;
}

html.terminal-ui[data-terminal-palette="red"] {
  --terminal-accent: #ff5c5c;
  --terminal-accent-bright: #ff9696;
  --terminal-accent-border: #873939;
  --terminal-accent-rgb: 255, 92, 92;
}

html.terminal-ui[data-terminal-palette="cyan"] {
  --terminal-accent: #25c9d8;
  --terminal-accent-bright: #78e8f2;
  --terminal-accent-border: #2a7077;
  --terminal-accent-rgb: 37, 201, 216;
}

html.terminal-ui[data-terminal-palette="yellow"] {
  --terminal-accent: #ffe600;
  --terminal-accent-bright: #fff45c;
  --terminal-accent-border: #8f8200;
  --terminal-accent-rgb: 255, 230, 0;
}

html.terminal-ui[data-terminal-palette="light-purple"] {
  --terminal-accent: #c4a7ff;
  --terminal-accent-bright: #e2d5ff;
  --terminal-accent-border: #6f5b98;
  --terminal-accent-rgb: 196, 167, 255;
}

html.terminal-ui .bucket[data-terminal-palette="orange"] {
  --terminal-accent: #ff8b00;
  --terminal-accent-bright: #ffb24a;
  --terminal-accent-border: #70430f;
  --terminal-accent-rgb: 255, 139, 0;
}

html.terminal-ui .bucket[data-terminal-palette="green"] {
  --terminal-accent: #29d17d;
  --terminal-accent-bright: #75efad;
  --terminal-accent-border: #246b49;
  --terminal-accent-rgb: 41, 209, 125;
}

html.terminal-ui .bucket[data-terminal-palette="blue"] {
  --terminal-accent: #3aa7ff;
  --terminal-accent-bright: #82caff;
  --terminal-accent-border: #265f89;
  --terminal-accent-rgb: 58, 167, 255;
}

html.terminal-ui .bucket[data-terminal-palette="purple"] {
  --terminal-accent: #a970ff;
  --terminal-accent-bright: #c9a6ff;
  --terminal-accent-border: #60418c;
  --terminal-accent-rgb: 169, 112, 255;
}

html.terminal-ui .bucket[data-terminal-palette="red"] {
  --terminal-accent: #ff5c5c;
  --terminal-accent-bright: #ff9696;
  --terminal-accent-border: #873939;
  --terminal-accent-rgb: 255, 92, 92;
}

html.terminal-ui .bucket[data-terminal-palette="cyan"] {
  --terminal-accent: #25c9d8;
  --terminal-accent-bright: #78e8f2;
  --terminal-accent-border: #2a7077;
  --terminal-accent-rgb: 37, 201, 216;
}

html.terminal-ui .bucket[data-terminal-palette="yellow"] {
  --terminal-accent: #ffe600;
  --terminal-accent-bright: #fff45c;
  --terminal-accent-border: #8f8200;
  --terminal-accent-rgb: 255, 230, 0;
}

html.terminal-ui .bucket[data-terminal-palette="light-purple"] {
  --terminal-accent: #c4a7ff;
  --terminal-accent-bright: #e2d5ff;
  --terminal-accent-border: #6f5b98;
  --terminal-accent-rgb: 196, 167, 255;
}

html.terminal-ui body {
  color: var(--text) !important;
  background:
    radial-gradient(circle at 12% -8%, rgba(var(--terminal-accent-rgb), .12), transparent 31%),
    linear-gradient(180deg, color-mix(in srgb, var(--terminal-accent) 3%, #070707) 0%, #030303 100%) !important;
  font-family: Inter, "Helvetica Neue", Arial, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 13px;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Restore icon-font families. A previous universal font override caused blank
   Font Awesome and Material icons in Terminal mode. */
html.terminal-ui :is(.fa, .fas, .fa-solid) {
  font-family: "Font Awesome 6 Free" !important;
  font-style: normal !important;
  font-weight: 900 !important;
}

html.terminal-ui :is(.far, .fa-regular) {
  font-family: "Font Awesome 6 Free" !important;
  font-style: normal !important;
  font-weight: 400 !important;
}

html.terminal-ui :is(.fab, .fa-brands) {
  font-family: "Font Awesome 6 Brands" !important;
  font-style: normal !important;
  font-weight: 400 !important;
}

html.terminal-ui .material-icons {
  font-family: "Material Icons" !important;
  font-weight: normal !important;
  font-style: normal !important;
}

html.terminal-ui .material-icons-round {
  font-family: "Material Icons Round" !important;
  font-weight: normal !important;
  font-style: normal !important;
}

html.terminal-ui .material-symbols-outlined {
  font-family: "Material Symbols Outlined" !important;
  font-weight: normal !important;
  font-style: normal !important;
}

html.terminal-ui .material-symbols-outlined {
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
  font-feature-settings: "liga";
}

html.terminal-ui :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands,
.material-icons, .material-icons-round, .material-symbols-outlined) {
  display: inline-block;
  line-height: 1 !important;
  vertical-align: -.08em;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
}

/* Header and control alignment */
html.terminal-ui .dashboard-top-banner {
  min-height: 52px !important;
  padding: 8px 12px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  background: linear-gradient(180deg, color-mix(in srgb, var(--terminal-accent) 7%, #101010) 0%, #080808 100%) !important;
  border-bottom: 1px solid var(--terminal-accent-border) !important;
  box-shadow: 0 8px 26px rgba(0, 0, 0, .46) !important;
}

html.terminal-ui :is(.dashboard-banner-left, .dashboard-banner-right, .big-controls) {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  min-width: 0;
}

html.terminal-ui .dashboard-banner-right {
  justify-content: flex-end;
}

html.terminal-ui :is(
  .big-controls .btn,
  .dashboard-theme-toggle,
  .nav-dropdown-toggle,
  .tutorials-dropdown-toggle,
  .watchlists-dropdown-toggle,
  .dashboard-setups-dropdown-toggle,
  .site-guide-btn
) {
  min-height: 34px !important;
  height: 34px !important;
  padding: 0 10px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  flex: 0 0 auto;
  border-radius: 2px !important;
  border: 1px solid #3b3731 !important;
  background: #0d0d0d !important;
  color: #e8e5df !important;
  box-shadow: none !important;
  font-family: Inter, "Helvetica Neue", Arial, system-ui, sans-serif !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  letter-spacing: .015em;
  text-transform: none;
  white-space: nowrap;
  vertical-align: middle;
}

html.terminal-ui :is(
  .big-controls .btn,
  .dashboard-theme-toggle,
  .nav-dropdown-toggle,
  .tutorials-dropdown-toggle,
  .watchlists-dropdown-toggle,
  .dashboard-setups-dropdown-toggle,
  .site-guide-btn
) > :is(i, span) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1 !important;
}

html.terminal-ui :is(
  .big-controls .btn,
  .dashboard-theme-toggle,
  .nav-dropdown-toggle,
  .tutorials-dropdown-toggle,
  .watchlists-dropdown-toggle,
  .dashboard-setups-dropdown-toggle,
  .site-guide-btn
):hover,
html.terminal-ui :is(
  .big-controls .btn,
  .dashboard-theme-toggle,
  .nav-dropdown-toggle,
  .tutorials-dropdown-toggle,
  .watchlists-dropdown-toggle,
  .dashboard-setups-dropdown-toggle,
  .site-guide-btn
):focus-visible,
html.terminal-ui :is(
  .dashboard-theme-toggle,
  .nav-dropdown-toggle,
  .tutorials-dropdown-toggle,
  .watchlists-dropdown-toggle,
  .dashboard-setups-dropdown-toggle
).show {
  background: #18140f !important;
  border-color: color-mix(in srgb, var(--terminal-accent) 55%, #27231f) !important;
  color: var(--terminal-accent-bright) !important;
  outline: none !important;
}

html.terminal-ui #addBucketBtn {
  min-width: 34px !important;
  padding: 0 !important;
  background: var(--terminal-accent) !important;
  border-color: var(--terminal-accent) !important;
  color: #080808 !important;
  font-size: 18px !important;
  font-weight: 900 !important;
}

html.terminal-ui :is(.btn-danger, .btn-outline-danger, [class*="delete"], [class*="remove"]) {
  color: #ff8d86 !important;
  border-color: #65332f !important;
  background: #120b0a !important;
}

html.terminal-ui :is(#gridBtn, #tabsModeToggle, .btn-purple) {
  color: var(--terminal-accent) !important;
  border-color: var(--terminal-accent-border) !important;
  background: #0d0d0d !important;
}

/* Theme menu: palette choices without decorative word boxes. */
html.terminal-ui .dashboard-theme-menu {
  min-width: 288px;
  padding: 6px !important;
  border-radius: 2px !important;
  background: #080808 !important;
  color: var(--text) !important;
  border: 1px solid var(--terminal-accent-border) !important;
  box-shadow: 0 24px 54px rgba(0, 0, 0, .72) !important;
}

html.terminal-ui .dashboard-theme-menu-title {
  color: var(--terminal-accent) !important;
  border-bottom: 1px solid var(--terminal-line-soft);
  margin-bottom: 4px;
}

html.terminal-ui .dashboard-theme-option {
  border-radius: 0 !important;
  border: 0 !important;
  border-left: 2px solid transparent !important;
  color: var(--text) !important;
}

html.terminal-ui .dashboard-theme-option:hover,
html.terminal-ui .dashboard-theme-option:focus,
html.terminal-ui .dashboard-theme-option.active {
  background: var(--terminal-accent-soft) !important;
  border-left-color: var(--terminal-accent) !important;
}

html.terminal-ui .dashboard-theme-option-label {
  color: #f1eee9 !important;
}

html.terminal-ui .dashboard-theme-option.active .dashboard-theme-option-label,
html.terminal-ui .dashboard-theme-option-check {
  color: var(--terminal-accent) !important;
}

html.terminal-ui .dashboard-theme-option-description {
  color: var(--muted) !important;
}

/* Buckets/windows */
html.terminal-ui .bucket {
  --primary: var(--terminal-accent);
  --primary-rgb: var(--terminal-accent-rgb);
  --header: rgba(var(--terminal-accent-rgb), .10);
  --terminal-accent-soft: rgba(var(--terminal-accent-rgb), .10);
  overflow: hidden;
  border-radius: 2px !important;
  background: var(--terminal-panel) !important;
  border: 1px solid color-mix(in srgb, var(--terminal-accent) 34%, var(--terminal-line)) !important;
  box-shadow: var(--shadow) !important;
}

html.terminal-ui .bucket .card {
  height: 100%;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

html.terminal-ui .bucket .card-header {
  min-height: 34px;
  padding: 6px 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  border-radius: 0 !important;
  background: linear-gradient(180deg, color-mix(in srgb, var(--terminal-accent) 8%, #111111), #0d0d0d) !important;
  border-bottom: 1px solid var(--terminal-accent-border) !important;
  color: var(--terminal-accent) !important;
  font-family: Inter, "Helvetica Neue", Arial, system-ui, sans-serif !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
  letter-spacing: .025em;
  text-transform: uppercase;
}

html.terminal-ui .bucket .card-header > span:first-child {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.terminal-ui .bucket .card-header > span:first-child::before {
  content: "";
}

html.terminal-ui .bucket .card-body {
  min-height: 0;
  padding: 8px !important;
  background: #070707 !important;
  color: var(--text) !important;
}

html.terminal-ui :is(.bucket-controls, .bucket.show-controls .card-header .bucket-controls) {
  margin-left: auto;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 4px !important;
  flex: 0 0 auto;
}

html.terminal-ui :is(.bucket-controls button, .terminal-icon-btn, .btn-close) {
  width: 24px !important;
  min-width: 24px !important;
  height: 24px !important;
  min-height: 24px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 2px !important;
  border: 1px solid #38332d !important;
  background: #0a0a0a !important;
  color: #bdb8af !important;
  opacity: 1 !important;
  box-shadow: none !important;
  line-height: 1 !important;
}

html.terminal-ui :is(.bucket-controls button, .terminal-icon-btn, .btn-close):hover {
  border-color: color-mix(in srgb, var(--terminal-accent) 55%, #27231f) !important;
  background: #18140f !important;
  color: var(--terminal-accent) !important;
}

html.terminal-ui .bucket-resizer::before {
  opacity: .8 !important;
  background:
    linear-gradient(135deg, transparent 0 50%, color-mix(in srgb, var(--terminal-accent) 62%, #24211d) 50% 56%, transparent 56%),
    linear-gradient(135deg, transparent 0 64%, color-mix(in srgb, var(--terminal-accent) 62%, #24211d) 64% 70%, transparent 70%),
    linear-gradient(135deg, transparent 0 78%, color-mix(in srgb, var(--terminal-accent) 62%, #24211d) 78% 84%, transparent 84%) !important;
}

/* Generated panels/cards. Neutral borders prevent every text block from
   looking like an outlined badge. */
html.terminal-ui .bucket :is(
  .terminal-card,
  .terminal-panel,
  .terminal-panel-frame,
  .metric-card,
  .dashboard-card,
  .news-card,
  .article-card,
  .result-card,
  .form-card,
  .row-card,
  details,
  .empty-state
) {
  border-radius: 2px !important;
  background: var(--terminal-panel-raised) !important;
  border: 1px solid var(--terminal-line) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}

html.terminal-ui .bucket :is(
  .terminal-card,
  .terminal-panel,
  .terminal-panel-frame,
  .metric-card,
  .dashboard-card,
  .news-card,
  .article-card,
  .result-card,
  .form-card,
  .row-card,
  details
):hover {
  border-color: color-mix(in srgb, var(--terminal-accent) 28%, var(--terminal-line)) !important;
}

html.terminal-ui .bucket :is(h1, h2, h3, h4, h5, h6, .section-title, .terminal-section-title) {
  color: var(--terminal-accent) !important;
  font-family: Inter, "Helvetica Neue", Arial, system-ui, sans-serif !important;
  letter-spacing: .015em;
  text-transform: none;
}

html.terminal-ui .bucket :is(h1, h2, h3, .terminal-section-title)::before {
  content: "" !important;
}

/* Buttons: aligned, neutral frames, palette colour only as an accent. */
html.terminal-ui :is(
  .bucket button,
  .bucket .btn,
  .dropdown-menu .btn,
  .terminal-action-btn,
  .action-button,
  .dashboard-picker-tab,
  .dashboard-picker-option,
  .bucket-place-action-btn,
  .watchlist-action-btn,
  .watchlist-terminal-add-btn,
  .watchlist-terminal-delete-selected-btn,
  .journal-shell .btn,
  .journal-portfolio-shell .btn,
  a.terminal-action-btn
) {
  min-height: 30px;
  padding: 5px 9px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  border-radius: 2px !important;
  border: 1px solid #3b3731 !important;
  background: #0c0c0c !important;
  color: #e3dfd8 !important;
  box-shadow: none !important;
  font-family: Inter, "Helvetica Neue", Arial, system-ui, sans-serif !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
  letter-spacing: 0;
  text-transform: none;
  vertical-align: middle;
}

html.terminal-ui :is(
  .bucket button,
  .bucket .btn,
  .terminal-action-btn,
  .dashboard-picker-tab,
  .dashboard-picker-option,
  .bucket-place-action-btn,
  .watchlist-action-btn
):hover {
  background: #18140f !important;
  border-color: color-mix(in srgb, var(--terminal-accent) 55%, #27231f) !important;
  color: var(--terminal-accent-bright) !important;
}

html.terminal-ui :is(
  .btn-primary,
  .terminal-btn-primary,
  .dashboard-picker-tab.active,
  .dashboard-picker-option.active
) {
  background: var(--terminal-accent) !important;
  border-color: var(--terminal-accent) !important;
  color: #080808 !important;
}

/* Text tags and ticker labels: explicitly no decorative boxes. */
html.terminal-ui :is(
  .bucket .badge,
  .bucket .pill,
  .bucket .terminal-token,
  .bucket [class*="pill"],
  .bucket [class*="chip"],
  .bucket [class*="badge"],
  .watchlist-chip,
  .journal-pill,
  .journal-portfolio-pill
) {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--terminal-accent) !important;
  box-shadow: none !important;
  padding: 0 2px !important;
  font-family: Inter, "Helvetica Neue", Arial, system-ui, sans-serif !important;
  font-size: inherit !important;
  font-weight: 750 !important;
  line-height: inherit !important;
  letter-spacing: 0 !important;
}

/* Inputs and inline form alignment */
html.terminal-ui :is(.form-control, .form-select, .input-field, .terminal-input, input, select, textarea) {
  min-height: 32px;
  border-radius: 2px !important;
  background: #080808 !important;
  color: var(--text) !important;
  border: 1px solid #454039 !important;
  box-shadow: none !important;
  font-family: Inter, "Helvetica Neue", Arial, system-ui, sans-serif !important;
  line-height: 1.25 !important;
}

html.terminal-ui :is(.form-control, .form-select, input, select, textarea):focus {
  border-color: var(--terminal-accent) !important;
  outline: 1px solid rgba(var(--terminal-accent-rgb), .30) !important;
  box-shadow: none !important;
}

html.terminal-ui ::placeholder {
  color: #77726a !important;
  opacity: 1;
}

html.terminal-ui :is(.form-inline-group, .watchlist-terminal-toolbar, .dashboard-picker-summary,
.dashboard-picker-summary-left, .bucket-place-panel-actions) {
  align-items: center !important;
}

html.terminal-ui .form-inline-group > label {
  margin: 0 !important;
  line-height: 32px;
}

/* Menus */
html.terminal-ui :is(
  .dropdown-menu,
  .nav-dropdown-menu,
  .bucket-menu,
  .grid-menu,
  .dropdown-list,
  .watchlists-dropdown-menu,
  .dashboard-setups-dropdown-menu,
  .watchlist-ticker-solo-menu,
  .bucket-place-panel,
  .dashboard-picker-panel
) {
  border-radius: 2px !important;
  background: #080808 !important;
  border: 1px solid var(--terminal-accent-border) !important;
  color: var(--text) !important;
  box-shadow: 0 22px 54px rgba(0, 0, 0, .72) !important;
}

html.terminal-ui :is(.dropdown-item, .bucket-menu button, .dropdown-list .dropdown-item) {
  border-radius: 0 !important;
  color: var(--text) !important;
}

html.terminal-ui :is(.dropdown-item, .bucket-menu button, .dropdown-list .dropdown-item):hover,
html.terminal-ui :is(.dropdown-item, .bucket-menu button, .dropdown-list .dropdown-item):focus {
  background: var(--terminal-accent-soft) !important;
  color: var(--terminal-accent-bright) !important;
}

/* Tabs: accent underline rather than outlined word boxes. */
html.terminal-ui .tabs-bar {
  height: 36px !important;
  padding: 4px 6px !important;
  display: none !important;
  align-items: center !important;
  gap: 3px !important;
  background: #080808 !important;
  border-bottom: 1px solid var(--terminal-accent-border) !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .42) !important;
}

html.terminal-ui body.tabs-mode .tabs-bar {
  display: flex !important;
}

html.terminal-ui :is(.tabs-bar .tab-btn, .tab-btn) {
  height: 27px !important;
  padding: 0 9px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--muted) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

html.terminal-ui :is(.tabs-bar .tab-btn, .tab-btn):hover {
  color: #ece8e1 !important;
  background: #111 !important;
}

html.terminal-ui :is(.tabs-bar .tab-btn.active, .tab-btn.active) {
  color: var(--terminal-accent) !important;
  border-bottom-color: var(--terminal-accent) !important;
  background: transparent !important;
}

/* Command bar */
html.terminal-ui .dashboard-command-bar {
  height: 34px !important;
  min-height: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  border-radius: 2px !important;
  border: 1px solid #454039 !important;
  background: #080808 !important;
  box-shadow: none !important;
}

html.terminal-ui .dashboard-command-bar input {
  min-height: 0 !important;
  height: auto !important;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  color: var(--terminal-accent) !important;
}

html.terminal-ui .dashboard-command-bar button {
  min-height: 26px !important;
  height: 26px !important;
  padding: 0 8px !important;
  background: var(--terminal-accent) !important;
  border-color: var(--terminal-accent) !important;
  color: #080808 !important;
  font-weight: 900 !important;
}

html.terminal-ui .dashboard-command-caret {
  color: var(--terminal-accent) !important;
}

/* Data grids */
html.terminal-ui .bucket :is(table, .table, .terminal-table) {
  width: 100%;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  background: #070707 !important;
  color: var(--text) !important;
  font-family: Inter, "Helvetica Neue", Arial, system-ui, sans-serif !important;
  font-size: 12px !important;
  font-variant-numeric: tabular-nums;
}

html.terminal-ui .bucket :is(thead, th, .terminal-table-head) {
  background: #12100d !important;
  color: var(--terminal-accent) !important;
  border-bottom: 1px solid var(--terminal-accent-border) !important;
  font-weight: 800 !important;
  letter-spacing: .02em;
  text-transform: none;
  text-align: left;
}

html.terminal-ui .bucket :is(td, th) {
  padding: 6px 8px !important;
  border-bottom: 1px solid var(--terminal-line-soft) !important;
  vertical-align: middle !important;
}

html.terminal-ui .bucket tbody tr:nth-child(even) td {
  background: rgba(255, 255, 255, .015) !important;
}

html.terminal-ui .bucket tbody tr:hover td {
  background: rgba(var(--terminal-accent-rgb), .055) !important;
}

html.terminal-ui :is(.market-number, .terminal-number, .terminal-metric-value, td, th) {
  font-variant-numeric: tabular-nums;
}

/* Links and semantic market colors */
html.terminal-ui .bucket a:not(.btn):not(.terminal-action-btn) {
  color: var(--terminal-accent-bright) !important;
  text-decoration: none !important;
  border-bottom: 1px dotted rgba(var(--terminal-accent-rgb), .35);
}

html.terminal-ui .bucket a:not(.btn):not(.terminal-action-btn):hover {
  color: color-mix(in srgb, var(--terminal-accent) 58%, white) !important;
  border-bottom-color: var(--terminal-accent);
}

html.terminal-ui :is(.text-success, .profit, .positive, [class*="gain"]) {
  color: var(--terminal-green) !important;
}

html.terminal-ui :is(.text-danger, .loss, .negative, [class*="down"]) {
  color: var(--terminal-red) !important;
}

/* Progress/loaders */
html.terminal-ui :is(.progress, .terminal-track) {
  height: 7px !important;
  border-radius: 0 !important;
  background: #111 !important;
  border: 1px solid var(--terminal-line-soft) !important;
  box-shadow: none !important;
}

html.terminal-ui :is(.progress-bar, .terminal-fill) {
  border-radius: 0 !important;
  background: var(--terminal-accent) !important;
  box-shadow: none !important;
}

html.terminal-ui :is(.spinner-border, .terminal-loader) {
  color: var(--terminal-accent) !important;
  border-color: rgba(var(--terminal-accent-rgb), .22) !important;
  border-right-color: var(--terminal-accent) !important;
}


/* --------------------------------------------------------------------------
   Static text must remain text
   --------------------------------------------------------------------------
   Only real controls (buttons, dropdowns, inputs and selects) receive frames.
   Headings, labels, symbols, tickers, badges and informational words are flat.
*/
html.terminal-ui :is(
  .bucket h1,
  .bucket h2,
  .bucket h3,
  .bucket h4,
  .bucket h5,
  .bucket h6,
  .bucket legend,
  .bucket label,
  .bucket .label,
  .bucket [class*="-label"],
  .bucket [class*="_label"],
  .bucket [class*="-title"],
  .bucket [class*="_title"],
  .bucket [class*="-heading"],
  .bucket [class*="_heading"],
  .bucket [class*="-kicker"],
  .bucket [class*="_kicker"],
  .bucket .section-title,
  .bucket .dashboard-picker-section,
  .bucket .dashboard-picker-subsection,
  .bucket .dashboard-picker-kicker,
  .bucket .dashboard-picker-selected,
  .bucket .uu-label,
  .bucket .cn-label,
  .bucket .term-index,
  .bucket .term-ticker,
  .bucket .watchlists-section-title,
  .bucket .bucket-place-label,
  .bucket .badge,
  .bucket .pill,
  .bucket .terminal-token,
  .bucket [class*="pill"],
  .bucket [class*="chip"],
  .bucket [class*="badge"],
  .bucket [class*="token"],
  .watchlist-chip,
  .journal-pill,
  .journal-portfolio-pill
) {
  border: 0 !important;
  outline: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

/* Keep semantic text readable without turning it into an orange block. */
html.terminal-ui :is(
  .bucket h1,
  .bucket h2,
  .bucket h3,
  .bucket h4,
  .bucket h5,
  .bucket h6,
  .bucket [class*="-title"],
  .bucket [class*="_title"],
  .bucket .section-title,
  .bucket .dashboard-picker-section
) {
  color: var(--terminal-accent) !important;
}

html.terminal-ui :is(
  .bucket label,
  .bucket legend,
  .bucket .label,
  .bucket [class*="-label"],
  .bucket [class*="_label"],
  .bucket .dashboard-picker-subsection,
  .bucket .dashboard-picker-kicker,
  .bucket .term-index
) {
  color: var(--muted) !important;
}

/* Header, picker and form alignment fixes. */
html.terminal-ui .bucket .card-header > * {
  min-width: 0;
}

html.terminal-ui .bucket .card-header > span:first-child {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 24px;
  margin: 0 !important;
  padding: 0 !important;
}

html.terminal-ui .bucket .card-header :is(i, .fa, .fas, .far, .fab, .material-icons,
.material-icons-round, .material-symbols-outlined) {
  flex: 0 0 auto;
}

html.terminal-ui .dashboard-picker-summary {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center !important;
  gap: 10px !important;
}

html.terminal-ui .dashboard-picker-summary-left {
  min-width: 0;
  display: flex !important;
  align-items: center !important;
}

html.terminal-ui .dashboard-picker-selected {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.terminal-ui .form-inline-group {
  display: flex !important;
  align-items: flex-end !important;
  gap: 8px !important;
}

html.terminal-ui .form-inline-group > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

html.terminal-ui :is(button, .btn, .dropdown-toggle) > :is(
  i, .fa, .fas, .far, .fab, .material-icons, .material-icons-round,
  .material-symbols-outlined
) {
  flex: 0 0 auto;
  align-self: center;
}

html.terminal-ui .dropdown-toggle::after {
  align-self: center;
  margin-top: 0 !important;
}

@media (max-width: 560px) {
  html.terminal-ui .dashboard-picker-summary {
    grid-template-columns: 1fr;
    align-items: stretch !important;
  }
}

/* Scrollbars */
html.terminal-ui *::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}

html.terminal-ui *::-webkit-scrollbar-track {
  background: #070707;
}

html.terminal-ui *::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--terminal-accent) 30%, #24211d);
  border: 2px solid #070707;
}

html.terminal-ui *::-webkit-scrollbar-thumb:hover {
  background: color-mix(in srgb, var(--terminal-accent) 55%, #27231f);
}

@media (max-width: 1000px) {
  html.terminal-ui .dashboard-top-banner {
    align-items: flex-start !important;
  }

  html.terminal-ui :is(.dashboard-banner-left, .dashboard-banner-right) {
    align-items: center !important;
  }
}

@media (max-width: 768px) {
  html.terminal-ui .dashboard-theme-toggle-label {
    display: none;
  }

  html.terminal-ui .dashboard-theme-toggle {
    min-width: 36px !important;
    padding-inline: 8px !important;
  }

  html.terminal-ui .dashboard-theme-menu {
    min-width: 250px;
  }
}


/* --------------------------------------------------------------------------
   v9 terminal palette controls and semantic market colouring
   -------------------------------------------------------------------------- */

html:not(.terminal-ui) .bucket-theme-btn,
html:not(.terminal-ui) .bucket-terminal-palette-menu {
  display: none !important;
}

html.terminal-ui .bucket-theme-btn {
  display: inline-flex !important;
}

html.terminal-ui .bucket-theme-btn i {
  color: var(--bucket-palette-preview, var(--terminal-accent)) !important;
}

.bucket-terminal-palette-menu {
  position: fixed;
  z-index: 100500;
  width: 220px;
  padding: 6px;
  border: 1px solid var(--terminal-accent-border);
  border-radius: 2px;
  background: #080808;
  color: var(--text);
  box-shadow: 0 22px 54px rgba(0, 0, 0, .72);
}

.bucket-terminal-palette-title {
  padding: 6px 8px 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--terminal-line-soft);
  margin-bottom: 4px;
}

.bucket-terminal-palette-option {
  width: 100%;
  min-height: 31px;
  padding: 5px 8px;
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 8px;
  border: 0;
  border-left: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #ece8e1;
  text-align: left;
  font: 700 12px/1.2 Inter, "Helvetica Neue", Arial, system-ui, sans-serif;
  cursor: pointer;
}

.bucket-terminal-palette-option:hover,
.bucket-terminal-palette-option:focus,
.bucket-terminal-palette-option.active {
  background: rgba(255, 255, 255, .055);
  border-left-color: var(--palette-swatch);
  outline: 0;
}

.bucket-terminal-palette-swatch {
  width: 9px;
  height: 9px;
  display: block;
  background: var(--palette-swatch);
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .16);
}

.bucket-terminal-palette-check {
  color: var(--palette-swatch);
  font-weight: 900;
  opacity: 0;
}

.bucket-terminal-palette-option.active .bucket-terminal-palette-check {
  opacity: 1;
}

/* Semantic words are colour only—never badges, chips or framed labels. */
html.terminal-ui .terminal-plain-text {
  border: 0 !important;
  outline: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

html.terminal-ui .terminal-semantic {
  font-weight: 800 !important;
  text-shadow: none !important;
}

html.terminal-ui :is(
  .terminal-semantic-call,
  .terminal-semantic-bullish
) {
  color: var(--terminal-green) !important;
}

html.terminal-ui :is(
  .terminal-semantic-put,
  .terminal-semantic-bearish
) {
  color: var(--terminal-red) !important;
}

html.terminal-ui .terminal-semantic-bid {
  color: var(--terminal-yellow) !important;
}

html.terminal-ui .terminal-semantic-ask {
  color: var(--terminal-purple) !important;
}

html.terminal-ui .terminal-semantic-mid {
  color: var(--terminal-blue) !important;
}

html.terminal-ui .terminal-semantic-neutral {
  color: var(--terminal-yellow) !important;
}

/* Catch short status/title/tag elements that carry inline card styling. */
html.terminal-ui .bucket :is(
  .terminal-plain-text,
  [class*="sentiment"],
  [class*="put-call"],
  [class*="put_call"],
  [class*="bid-ask"],
  [class*="bid_ask"],
  [class*="signal"],
  [class*="tag"],
  [class*="status"]
):not(button):not(a):not(input):not(select):not(textarea):not(.dropdown-menu):not(.terminal-panel):not(.terminal-card) {
  border: 0 !important;
  outline: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* Palette-aware focus, rows and headers for bucket overrides. */
html.terminal-ui .bucket :is(.form-control, .form-select, input, select, textarea):focus {
  border-color: var(--terminal-accent) !important;
  outline-color: rgba(var(--terminal-accent-rgb), .30) !important;
}

html.terminal-ui .bucket .card-header,
html.terminal-ui .bucket :is(thead, th, .terminal-table-head) {
  border-color: var(--terminal-accent-border) !important;
}

html.terminal-ui .bucket tbody tr:hover td {
  background: rgba(var(--terminal-accent-rgb), .055) !important;
}

/* Keep header controls vertically and horizontally aligned after adding palette. */
html.terminal-ui .bucket .card-header,
html.terminal-ui .bucket .bucket-controls,
html.terminal-ui .bucket .bucket-controls button {
  align-items: center !important;
}

html.terminal-ui .bucket .bucket-controls button i {
  margin: 0 !important;
  line-height: 1 !important;
}

/* --------------------------------------------------------------------------
   v9.3 — Money Markets compact-list alignment

   Money Markets rows are buttons that intentionally use a four-column grid.
   The general Terminal button rule uses inline-flex/centering, so restore the
   data-row layout here to match Global Indices, Commodities, and other lists.
   -------------------------------------------------------------------------- */
html.terminal-ui .bucket button.mm-compact-row {
  display: grid !important;
  grid-template-columns: minmax(92px, 1fr) 76px 70px 70px !important;
  align-items: center !important;
  justify-content: stretch !important;
  column-gap: 8px !important;
  width: 100% !important;
  min-height: 0 !important;
  padding: .5rem .75rem !important;
  text-align: left !important;
}

html.terminal-ui .bucket .mm-compact-name,
html.terminal-ui .bucket .mm-compact-col:first-child {
  justify-self: start !important;
  text-align: left !important;
}

html.terminal-ui .bucket :is(.mm-compact-value, .mm-compact-change),
html.terminal-ui .bucket .mm-compact-col.right {
  justify-self: end !important;
  text-align: right !important;
}

@media (max-width: 390px) {
  html.terminal-ui .bucket button.mm-compact-row {
    grid-template-columns: minmax(78px, 1fr) 70px 64px 64px !important;
    column-gap: 6px !important;
    padding-left: .65rem !important;
    padding-right: .65rem !important;
  }
}

/* --------------------------------------------------------------------------
   v9.4 — Global Indices typography normalization

   Match the typography used by Commodities and the other compact market lists.
   This is scoped to Terminal themes only and does not alter data or behavior.
   -------------------------------------------------------------------------- */
html.terminal-ui .bucket [id^="worldIndicesRoot-"] {
  font-family: Inter, "Helvetica Neue", Arial, system-ui, sans-serif !important;
  font-size: 13px !important;
  font-style: normal !important;
  letter-spacing: normal !important;
  text-align: left !important;
}

/* Bucket title and sticky region headers: same treatment as Commodities. */
html.terminal-ui .bucket [id^="worldIndicesRoot-"] .text-\[11px\].font-extrabold.uppercase {
  font-family: inherit !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: .08em !important;
  text-align: left !important;
}

html.terminal-ui .bucket [id^="worldIndicesRoot-"] > div > div:first-child .text-\[11px\].font-extrabold.uppercase {
  letter-spacing: .12em !important;
}

/* Primary index names: identical sizing and weight to commodity names. */
html.terminal-ui .bucket [id^="worldIndicesList-"] .truncate.text-\[13px\] {
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
}

/* Country/helper line: standard secondary market-list typography. */
html.terminal-ui .bucket [id^="worldIndicesList-"] .truncate.text-\[11px\]:not(.uppercase) {
  font-family: inherit !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
}

/* Numeric columns: same tabular sizing and right alignment as Commodities. */
html.terminal-ui .bucket [id^="worldIndicesList-"] .text-\[13px\].tabular-nums {
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-align: right !important;
  font-variant-numeric: tabular-nums !important;
}

html.terminal-ui .bucket [id^="worldIndicesList-"] .text-\[12px\].tabular-nums {
  font-family: inherit !important;
  font-size: 12px !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-align: right !important;
  font-variant-numeric: tabular-nums !important;
}

html.terminal-ui .bucket [id^="worldIndicesList-"] .text-\[12px\].font-bold.tabular-nums {
  font-weight: 700 !important;
}

/* Keep the collapsed list aligned and visually identical to the other lists. */
html.terminal-ui .bucket [id^="worldIndicesList-"] .w-full.text-left {
  text-align: left !important;
}

/* --------------------------------------------------------------------------
   v9.5 — Earnings and IPO calendar column-track normalization

   Every date/section is rendered as its own table. Browser auto table layout
   can therefore choose different widths from one card to the next. Terminal
   themes use shared fixed tracks so matching columns remain vertically aligned.
   Default and Night modes are intentionally untouched.
   -------------------------------------------------------------------------- */

/* Earnings Calendar: identical eight-column tracks for every day card. */
html.terminal-ui .bucket [id^="eeWrap-"] table.uu-table {
  width: max(100%, 1060px) !important;
  min-width: 1060px !important;
  table-layout: fixed !important;
}

html.terminal-ui .bucket [id^="eeWrap-"] table.uu-table :is(th, td) {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  vertical-align: middle !important;
}

html.terminal-ui .bucket [id^="eeWrap-"] table.uu-table :is(th, td):nth-child(1) {
  width: 100px !important; /* Ticker */
}

html.terminal-ui .bucket [id^="eeWrap-"] table.uu-table :is(th, td):nth-child(2) {
  width: 245px !important; /* Company */
}

html.terminal-ui .bucket [id^="eeWrap-"] table.uu-table :is(th, td):nth-child(3) {
  width: 115px !important; /* Time */
  text-align: left !important;
}

html.terminal-ui .bucket [id^="eeWrap-"] table.uu-table :is(th, td):nth-child(4),
html.terminal-ui .bucket [id^="eeWrap-"] table.uu-table :is(th, td):nth-child(5) {
  width: 100px !important; /* EPS */
  text-align: right !important;
  font-variant-numeric: tabular-nums !important;
}

html.terminal-ui .bucket [id^="eeWrap-"] table.uu-table :is(th, td):nth-child(6),
html.terminal-ui .bucket [id^="eeWrap-"] table.uu-table :is(th, td):nth-child(7) {
  width: 140px !important; /* Revenue */
  text-align: right !important;
  font-variant-numeric: tabular-nums !important;
}

html.terminal-ui .bucket [id^="eeWrap-"] table.uu-table :is(th, td):nth-child(8) {
  width: 120px !important; /* Market cap */
  text-align: right !important;
  font-variant-numeric: tabular-nums !important;
}

/* Keep all day-card table containers on the exact same horizontal origin. */
html.terminal-ui .bucket [id^="eeWrap-"] :is(.ee-day-card, .uu-table-wrap) {
  width: 100% !important;
}

html.terminal-ui .bucket [id^="eeWrap-"] .uu-table-wrap {
  overflow-x: auto !important;
  scrollbar-gutter: stable !important;
}

/*
 * IPO Calendar: use one canonical eight-track grid for Upcoming, Priced and
 * Filed sections. Missing fields occupy an empty track instead of shifting the
 * columns that follow them.
 *
 * Canonical tracks:
 * 1 Company | 2 Symbol | 3 Exchange | 4 Price/Low | 5 High
 * 6 Shares | 7 Date | 8 Offer
 */
html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap {
  overflow-x: auto !important;
  scrollbar-gutter: stable !important;
}

html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap table {
  display: block !important;
  width: max(100%, 1080px) !important;
  min-width: 1080px !important;
  table-layout: fixed !important;
}

html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap :is(thead, tbody) {
  display: block !important;
  width: 100% !important;
}

html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap tr {
  display: grid !important;
  grid-template-columns:
    minmax(230px, 2.2fr)
    92px
    110px
    100px
    100px
    112px
    125px
    135px !important;
  width: 100% !important;
  align-items: stretch !important;
}

html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap :is(th, td) {
  min-width: 0 !important;
  width: auto !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  display: flex !important;
  align-items: center !important;
  text-align: left !important;
}

html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap :is(th, td):nth-child(n+4) {
  justify-content: flex-end !important;
  text-align: right !important;
  font-variant-numeric: tabular-nums !important;
}

/* Priced IPO table has seven source columns. Preserve the canonical gap for
   the absent High column, then align Shares, Date and Offer with Upcoming. */
html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap table:has(thead th:nth-child(7):last-child) tr > :nth-child(5) {
  grid-column: 6 !important;
}

html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap table:has(thead th:nth-child(7):last-child) tr > :nth-child(6) {
  grid-column: 7 !important;
}

html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap table:has(thead th:nth-child(7):last-child) tr > :nth-child(7) {
  grid-column: 8 !important;
}

/* Filed IPO table has four source columns. Date and Offer occupy the same
   canonical positions used by the other IPO sections. */
html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap table:has(thead th:nth-child(4):last-child) tr > :nth-child(3) {
  grid-column: 7 !important;
}

html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap table:has(thead th:nth-child(4):last-child) tr > :nth-child(4) {
  grid-column: 8 !important;
}

/* In the Filed table, Date and Offer are numeric/date-aligned despite being
   the third and fourth source cells. */
html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap table:has(thead th:nth-child(4):last-child) tr > :nth-child(3),
html.terminal-ui .bucket [id^="ipoWrap-"] .table-wrap table:has(thead th:nth-child(4):last-child) tr > :nth-child(4) {
  justify-content: flex-end !important;
  text-align: right !important;
}

/* ========================================================================== 
   Bucket Snap Layouts v10
   Windows-style edge/corner snap preview and a compact header layout chooser.
   Shared across Default, Night and Terminal themes; visual tokens inherit from
   the active theme and from an individual bucket's terminal palette.
   ========================================================================== */

.bucket-snap-btn i {
  pointer-events: none;
}

body.tabs-mode .bucket-snap-btn {
  display: none !important;
}

@media (max-width: 1000px) {
  .bucket-snap-btn {
    display: none !important;
  }
}

.bucket-snap-preview-root {
  position: absolute;
  inset: 0 auto auto 0;
  width: var(--dashboard-layout-width);
  height: var(--dashboard-layout-height);
  z-index: 69990;
  pointer-events: none;
}

.bucket-snap-preview {
  position: absolute;
  box-sizing: border-box;
  border: 2px solid var(--bucket-snap-accent, var(--primary));
  background: color-mix(
    in srgb,
    var(--bucket-snap-accent, var(--primary)) 16%,
    transparent
  );
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, #fff 34%, transparent),
    0 14px 36px rgba(15, 23, 42, .18);
  border-radius: 10px;
  opacity: .92;
  transition:
    left 90ms ease,
    top 90ms ease,
    width 90ms ease,
    height 90ms ease;
}

html.terminal-ui .bucket-snap-preview {
  border-radius: 2px;
  background: color-mix(
    in srgb,
    var(--bucket-snap-accent, var(--terminal-accent)) 12%,
    rgba(0, 0, 0, .20)
  );
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--bucket-snap-accent, var(--terminal-accent)) 28%, transparent),
    0 0 28px color-mix(in srgb, var(--bucket-snap-accent, var(--terminal-accent)) 14%, transparent);
}

.bucket.bucket-snap-dragging {
  user-select: none;
  will-change: left, top;
}

.bucket-snap-menu {
  position: fixed;
  z-index: 70030;
  width: 304px;
  max-width: calc(100vw - 16px);
  padding: 10px;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow);
}

.bucket-snap-menu-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 2px 9px;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  font-size: .82rem;
  font-weight: 800;
}

.bucket-snap-menu-heading small {
  min-width: 0;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 600;
  text-align: right;
}

.bucket-snap-menu-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  padding-top: 9px;
}

.bucket-snap-menu-option {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  height: 48px;
  padding: 6px;
  color: var(--text);
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  box-shadow: none;
}

.bucket-snap-menu-option:hover,
.bucket-snap-menu-option:focus-visible {
  color: var(--text);
  background: color-mix(in srgb, var(--bucket-snap-accent, var(--primary)) 9%, var(--surface2));
  border-color: color-mix(in srgb, var(--bucket-snap-accent, var(--primary)) 58%, var(--border));
  outline: none;
}

.bucket-snap-mini {
  position: relative;
  display: block;
  width: 42px;
  height: 28px;
  overflow: hidden;
  background: color-mix(in srgb, var(--surface) 88%, var(--border));
  border: 1px solid color-mix(in srgb, var(--border) 82%, var(--text));
  border-radius: 4px;
}

.bucket-snap-mini::before,
.bucket-snap-mini::after {
  content: "";
  position: absolute;
  z-index: 1;
  background: color-mix(in srgb, var(--border) 88%, transparent);
  pointer-events: none;
}

.bucket-snap-mini::before {
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
}

.bucket-snap-mini::after {
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
}

.bucket-snap-mini-active {
  position: absolute;
  z-index: 2;
  box-sizing: border-box;
  background: color-mix(in srgb, var(--bucket-snap-accent, var(--primary)) 32%, transparent);
  border: 1px solid var(--bucket-snap-accent, var(--primary));
}

html.terminal-ui .bucket-snap-menu {
  color: var(--text);
  background: var(--terminal-panel-raised);
  border-color: var(--terminal-line);
  border-radius: 2px;
  box-shadow: 0 18px 44px rgba(0, 0, 0, .52);
}

html.terminal-ui .bucket-snap-menu-heading {
  border-color: var(--terminal-line-soft);
  letter-spacing: .045em;
  text-transform: uppercase;
}

html.terminal-ui .bucket-snap-menu-option {
  background: var(--terminal-panel);
  border-color: var(--terminal-line);
  border-radius: 2px;
}

html.terminal-ui .bucket-snap-menu-option:hover,
html.terminal-ui .bucket-snap-menu-option:focus-visible {
  background: color-mix(in srgb, var(--bucket-snap-accent, var(--terminal-accent)) 8%, var(--terminal-panel));
  border-color: var(--bucket-snap-accent, var(--terminal-accent));
}

html.terminal-ui .bucket-snap-mini {
  background: #080808;
  border-color: var(--terminal-line);
  border-radius: 1px;
}

html.terminal-ui .bucket-snap-mini::before,
html.terminal-ui .bucket-snap-mini::after {
  background: var(--terminal-line-soft);
}

@media (max-width: 420px) {
  .bucket-snap-menu {
    width: calc(100vw - 16px);
  }
}

/* --------------------------------------------------------------------------
   v10.2 — Market Overview terminal compatibility

   Preserve the base component's row/card/treemap geometry while applying the
   active Terminal palette. The general Terminal button skin intentionally
   centers ordinary buttons; these data controls need their original layouts.
   -------------------------------------------------------------------------- */
html.terminal-ui .market-overview-scope {
  --market-positive: var(--terminal-green);
  --market-negative: var(--terminal-red);
  --market-heat-neutral: #56606d;
  color: var(--text) !important;
  font-family: Inter, "Helvetica Neue", Arial, system-ui, sans-serif !important;
  text-align: left !important;
}

html.terminal-ui .market-overview-scope button.market-overview-row-btn {
  display: block !important;
  width: 100% !important;
  justify-content: initial !important;
  align-items: stretch !important;
  text-align: left !important;
}

html.terminal-ui .market-overview-scope button.market-overview-detail-btn {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}

html.terminal-ui .market-overview-scope button.market-stock-btn {
  display: flex !important;
  width: 100% !important;
  align-items: center !important;
  justify-content: space-between !important;
  text-align: left !important;
  border-radius: 0 !important;
  background: transparent !important;
}

html.terminal-ui .market-overview-scope button.market-stock-btn:hover {
  background: rgba(var(--terminal-accent-rgb), .055) !important;
}

html.terminal-ui .market-overview-scope .market-overview-action-btn {
  border-radius: 2px !important;
  border-color: var(--terminal-line) !important;
  background: var(--terminal-panel) !important;
  color: #e8e5df !important;
}

html.terminal-ui .market-overview-scope .market-overview-action-btn[hidden] {
  display: none !important;
}

html.terminal-ui .market-overview-scope .market-overview-action-btn:hover,
html.terminal-ui .market-overview-scope .market-overview-action-btn:focus-visible {
  background: color-mix(in srgb, var(--terminal-accent) 8%, var(--terminal-panel-raised)) !important;
  border-color: var(--terminal-accent) !important;
  color: var(--terminal-accent-bright) !important;
}

html.terminal-ui .market-overview-scope button.market-heat-group,
html.terminal-ui .market-overview-scope button.market-heat-group:hover,
html.terminal-ui .market-overview-scope button.market-heat-group:focus-visible {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  background: var(--market-heat-group-bg, rgba(8, 8, 8, .90)) !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, .34) !important;
  text-align: left !important;
  filter: none !important;
}

html.terminal-ui .market-overview-scope button.market-heat-stock,
html.terminal-ui .market-overview-scope button.market-heat-stock:hover,
html.terminal-ui .market-overview-scope button.market-heat-stock:focus-visible {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--market-heat-bg, var(--market-heat-neutral)) !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, .42) !important;
  text-align: center !important;
  filter: none !important;
}

html.terminal-ui .market-overview-scope [id^="marketHeatmap-"] {
  background: #050505 !important;
}

html.terminal-ui .market-overview-scope [id^="marketHeatmap-"]:fullscreen {
  background: #020202 !important;
}

