/* One surface, focus treatment and spacing scale for every floating control. */
.dropdown-menu,
.deposit-menu .dropdown-menu,
.investment-actions-menu,
.nv-select-menu,
.flatpickr-calendar {
  --bs-dropdown-bg: var(--surface);
  --bs-dropdown-color: var(--text);
  --bs-dropdown-link-color: var(--text);
  --bs-dropdown-link-hover-bg: var(--bg);
  --bs-dropdown-link-hover-color: var(--text);
  --bs-dropdown-link-active-bg: var(--accent);
  --bs-dropdown-link-active-color: #fff;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow);
}
.dropdown-menu { padding: 6px; max-width: calc(100vw - 24px); }
.dropdown-menu .dropdown-item { min-height: 40px; padding: 9px 12px; border-radius: 8px; white-space: normal; }
.dropdown-menu .dropdown-divider { border-color: var(--border); margin: 6px; }
.nv-select { cursor: pointer; color-scheme: light; }
[data-theme="dark"] .nv-select { color-scheme: dark; }
.nv-select:focus-visible, .nv-date:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.nv-select-menu { position: fixed; z-index: 11000; padding: 6px; overflow-y: auto; overscroll-behavior: contain; }
.nv-select-option { display: block; width: 100%; min-height: 42px; padding: 10px 34px 10px 12px; position: relative; text-align: left; font: inherit; font-size: .875rem; line-height: 1.4; border: 0; border-radius: 8px; background: transparent; color: var(--text); }
.nv-select-option:hover, .nv-select-option:focus-visible { background: var(--bg); outline: 2px solid var(--accent); outline-offset: -2px; }
.nv-select-option[aria-selected="true"] { color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, var(--surface)); font-weight: 600; }
[data-theme="dark"] .nv-select-option[aria-selected="true"] { color: #a5b4fc; }
.nv-select-option[aria-selected="true"]::after { content: '✓'; position: absolute; right: 12px; }
.nv-select-option:disabled { opacity: .45; cursor: not-allowed; }
.nv-select-group { padding: 10px 12px 4px; color: var(--muted); font-size: .75rem; font-weight: 600; }
html[data-theme] body input.nv-date { padding-right: 36px !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%2394a3b8' stroke-width='1.6' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M16 3v4M8 3v4M3 11h18'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; }
.flatpickr-calendar { font-family: inherit; padding: 8px; width: 324px; max-width: calc(100vw - 24px); z-index: 11000; overflow-y: auto; overscroll-behavior: contain; }
.flatpickr-calendar.animate.open { animation: none; }
.nv-date { scroll-margin-top: 90px; }
.flatpickr-calendar::before, .flatpickr-calendar::after { display: none; }
.flatpickr-calendar .flatpickr-months { padding: 4px 0 12px; }
.flatpickr-calendar .flatpickr-month,
.flatpickr-calendar .flatpickr-current-month,
.flatpickr-calendar .flatpickr-weekday { color: var(--text); fill: var(--text); background: transparent; }
.flatpickr-calendar .flatpickr-current-month { font-size: 100%; }
.flatpickr-calendar .flatpickr-prev-month,
.flatpickr-calendar .flatpickr-next-month { top: 8px; padding: 12px; color: var(--text); fill: var(--text); }
.flatpickr-calendar .flatpickr-prev-month { left: 8px; }
.flatpickr-calendar .flatpickr-next-month { right: 8px; }
.flatpickr-calendar .flatpickr-weekday { color: var(--muted); font-size: 11px; font-weight: 500; }
.flatpickr-calendar .flatpickr-days,
.flatpickr-calendar .dayContainer { width: 100%; min-width: 0; max-width: 100%; }
.flatpickr-calendar .flatpickr-innerContainer,
.flatpickr-calendar .flatpickr-rContainer { width: 100%; }
.flatpickr-calendar .flatpickr-day { color: var(--text); border-radius: 9px; height: 40px; line-height: 38px; }
.flatpickr-calendar .flatpickr-day:hover,
.flatpickr-calendar .flatpickr-day:focus,
.flatpickr-calendar .flatpickr-monthSelect-month:hover,
.flatpickr-calendar .flatpickr-monthSelect-month:focus { background: var(--bg); border-color: var(--accent); }
.flatpickr-calendar .flatpickr-day.today { border-color: var(--accent); }
.flatpickr-calendar .flatpickr-day.selected,
.flatpickr-calendar .flatpickr-monthSelect-month.selected { color: #fff; background: var(--accent); border-color: var(--accent); }
.flatpickr-calendar .flatpickr-day.prevMonthDay,
.flatpickr-calendar .flatpickr-day.nextMonthDay { color: var(--muted); opacity: .65; }
.flatpickr-calendar .flatpickr-day.flatpickr-disabled,
.flatpickr-calendar .flatpickr-monthSelect-month.flatpickr-disabled { color: var(--muted); opacity: .35; }
.flatpickr-calendar .flatpickr-monthSelect-month { color: var(--text); border-radius: 8px; min-height: 44px; }
.flatpickr-calendar .flatpickr-monthSelect-months { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.flatpickr-calendar .flatpickr-monthSelect-month { width: auto; }
.flatpickr-calendar .numInputWrapper span.arrowUp::after { border-bottom-color: var(--muted); }
.flatpickr-calendar .numInputWrapper span.arrowDown::after { border-top-color: var(--muted); }
.nv-calendar-footer { border-top: 1px solid var(--border); margin-top: 8px; padding-top: 6px; text-align: right; }
.nv-calendar-footer button { border: 0; border-radius: 8px; padding: 8px 12px; min-height: 40px; font: inherit; font-size: .8rem; background: transparent; color: var(--muted); }
.nv-calendar-footer button:hover { background: var(--bg); color: var(--text); }
.nv-calendar-footer button:focus-visible { outline: 2px solid var(--accent); }
@media (max-width: 575.98px) {
  .flatpickr-calendar .flatpickr-day { height: 42px; line-height: 40px; }
  .nv-select-option, .dropdown-menu .dropdown-item { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .flatpickr-calendar.animate.open { animation: none; }
}
