
/* ── BaseButton styles ── */
.bp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
  border: 1px solid transparent;
  white-space: nowrap;
  text-decoration: none;
}
.bp-btn:disabled { opacity: 0.6; cursor: not-allowed;
}

/* Sizes */
.bp-btn--sm { padding: 6px 14px; font-size: 12px;
}
.bp-btn--md { padding: 9px 20px;
}
.bp-btn--lg { padding: 12px 28px; font-size: 14px;
}

/* Variants */
.bp-btn--primary { background: #da2128; color: #fff; border-color: #da2128;
}
.bp-btn--primary:hover:not(:disabled) { background: #c41e24; border-color: #c41e24;
}
.bp-btn--outline { background: #fff; color: #4e5a82; border-color: #d1d5e8;
}
.bp-btn--outline:hover:not(:disabled) { background: #f8f9fc;
}
.bp-btn--text { background: transparent; color: #6b7db8; border-color: transparent; padding-left: 4px; padding-right: 4px;
}
.bp-btn--text:hover:not(:disabled) { color: #1a1d35;
}
.bp-btn--danger { background: #fee2e2; color: #b91c1c; border-color: #fecaca;
}
.bp-btn--danger:hover:not(:disabled) { background: #fecaca;
}
.bp-btn--navy { background: #1a1d35; color: #fff; border-color: #1a1d35;
}
.bp-btn--navy:hover:not(:disabled) { background: #2d3154; border-color: #2d3154;
}

/* Loading spinner */
.bp-btn-spinner {
  width: 14px;
  height: 14px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: bp-spin 0.6s linear infinite;
  flex-shrink: 0;
}
@keyframes bp-spin {
to { transform: rotate(360deg);
}
}

/* ── bp- form primitives (global, prefixed to avoid conflicts) ── */
.bp-form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bp-form-group--full { grid-column: 1 / -1;
}
.bp-label {
  font-size: 12px;
  font-weight: 600;
  color: #000;
  letter-spacing: 0.4px;
}
.bp-required { color: #da2128;
}
.bp-input {
  /* Fixed 34px height (border-box) — kept in lockstep with BaseSelect
     and BaseSearchSelect so mixed form rows align on the baseline. */
  height: 34px;
  padding: 0 12px;
  border: 1px solid #c0c1cb;
  border-radius: 8px;
  font-size: 13.5px;
  color: #1a1d35;
  outline: none;
  transition: border-color 0.15s;
  font-family: inherit;
  width: 100%;
  box-sizing: border-box;
}
.bp-input:focus {
  border-color: #da2128;
  box-shadow: 0 0 0 3px rgba(218, 33, 40, 0.12);
}
.bp-input--error    { border-color: #b91c1c !important;
}
.bp-input--disabled { background: #f8f9fc; color: #9098b0; cursor: not-allowed;
}
.bp-input--readonly { background: #f8f9fc; color: #1a1d35; cursor: default; border-color: #c0c1cb;
}
.bp-field-error  { font-size: 11px; color: #b91c1c;
}
.bp-field-helper { font-size: 11px; color: #9098b0;
}

/* ── BaseSelect component styles ── */
.bp-select-wrap { width: 100%;
}
.bp-select { width: 100%;
}
.bp-select.p-select {
  /* Fixed 34px height (border-box) — locks in a consistent form-row
     height across BaseInput / BaseSelect / BaseSearchSelect. */
  height: 34px;
  box-sizing: border-box;
  width: 100%;
  border: 1px solid #c0c1cb;
  border-radius: 8px;
  box-shadow: none;
  transition: border-color 0.15s;
}
.bp-select.p-select:hover:not(.p-disabled) { border-color: #a0a1ab;
}
.bp-select.p-select.p-focus {
  border-color: #da2128;
  box-shadow: 0 0 0 3px rgba(218, 33, 40, 0.12);
  outline: none;
}
.bp-select-wrap--open .bp-select.p-select {
  border-color: #da2128;
  box-shadow: 0 0 0 3px rgba(218, 33, 40, 0.12);
  outline: none;
}
.bp-select .p-select-label {
  /* Flex-center so the label text vertically centres inside the
     fixed-height 34px trigger (parent border-box). */
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 12px;
  font-size: 13.5px;
  color: #1a1d35;
  font-family: inherit;
}
.bp-select .p-select-label.p-placeholder { color: #9098b0;
}
.bp-select .p-select-dropdown {
  width: 36px;
  color: #6b7db8;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bp-select .p-select-dropdown svg { width: 14px; height: 14px;
}
.bp-select--error.p-select  { border-color: #b91c1c !important;
}
.bp-select.p-disabled { background: #f8f9fc;
}
.bp-select.p-disabled .p-select-label { color: #9098b0;
}

/* ── PrimeVue Select overlay — teleported to body, must be global ── */
.p-select-overlay,
.p-select-overlay.p-component {
  z-index: 9999 !important;
  background-color: #ffffff !important;
  border: 1px solid #c0c1cb !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(25, 26, 55, 0.14) !important;
  font-family: inherit;
  font-size: 13.5px;
  overflow: hidden;
}
.p-select-overlay .p-select-list-container,
.p-select-overlay .p-select-list {
  background-color: #ffffff !important;
}
.p-select-overlay .p-select-filter-container {
  padding: 8px 12px;
  border-bottom: 1px solid #e4e7f0;
  background-color: #ffffff !important;
}
.p-select-overlay .p-select-filter {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid #c0c1cb;
  border-radius: 6px;
  font-size: 13px;
  font-family: inherit;
  outline: none;
  background-color: #fff !important;
}
.p-select-overlay .p-select-filter:focus { border-color: #5b6af0;
}
.p-select-overlay .p-select-list {
  /* No max-height or overflow here — PrimeVue sets max-height on the parent
     .p-select-list-container via its scrollHeight prop. Competing here causes
     nested scroll containers that collapse item padding on long lists. */
  padding: 6px 0;
}
.p-select-overlay .p-select-option,
.p-select-overlay .p-select-option-container {
  padding: 11px 14px !important;
  line-height: 1.4 !important;
  font-size: 13.5px !important;
  color: #1a1d35 !important;
  cursor: pointer !important;
  background-color: #ffffff !important;
}
.p-select-overlay .p-select-option:hover,
.p-select-overlay .p-select-option-container:hover      { background-color: #f5f6fb !important;
}
.p-select-overlay .p-select-option.p-focus,
.p-select-overlay .p-select-option-container.p-focus    { background-color: #f5f6fb !important;
}
.p-select-overlay .p-select-option.p-selected,
.p-select-overlay .p-select-option-container.p-selected { background-color: #eef0fd !important; color: #3d4db0 !important; font-weight: 600 !important;
}
.p-select-overlay .p-select-empty-message               { padding: 12px 14px !important; font-size: 13px !important; color: #9098b0 !important; background-color: #ffffff !important;
}

/* ── BaseMultiSelect component styles ── */
.bp-mselect-wrap { width: 100%;
}
.bp-mselect { width: 100%;
}
.bp-mselect.p-multiselect {
  width: 100%;
  /* Fixed 34px trigger height to match BaseInput / BaseSelect / BaseSearchSelect
     (v1.1.46). border-box keeps the outer edge exactly 34px including the
     1px border, so mixed form rows stay baseline-aligned. Vertical padding
     is zero — the label element centres its text via `display:flex;
     align-items:center; height:100%` (same recipe as BaseSelect).
     Caveat: `display='chip'` + `tagsPosition='inside'` with many picks
     will clip stacked chips at this height; that combo should use
     `tagsPosition='below'` for a compact single-row trigger + chips
     rendered outside. */
  height: 34px;
  box-sizing: border-box;
  border: 1px solid #c0c1cb;
  border-radius: 8px;
  box-shadow: none;
  transition: border-color 0.15s;
}
.bp-mselect.p-multiselect:hover:not(.p-disabled) { border-color: #a0a1ab;
}
.bp-mselect.p-multiselect.p-focus {
  border-color: #da2128;
  box-shadow: 0 0 0 3px rgba(218, 33, 40, 0.12);
  outline: none;
}
.bp-mselect-wrap--open .bp-mselect.p-multiselect {
  border-color: #da2128;
  box-shadow: 0 0 0 3px rgba(218, 33, 40, 0.12);
  outline: none;
}
.bp-mselect .p-multiselect-label {
  /* Vertical padding at 0 — label element centres via flex on the 34px
     trigger. Horizontal padding matches BaseInput's `padding: 0 12px`. */
  padding: 0 12px;
  height: 100%;
  display: flex;
  align-items: center;
  font-size: 13.5px;
  color: #1a1d35;
  font-family: inherit;
  /* Prevent long comma-joined labels from pushing the trigger taller — the
     chevron column has its own fixed 36px width, so this label span owns
     everything to its left. */
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.bp-mselect .p-multiselect-label.p-placeholder { color: #9098b0;
}
.bp-mselect .p-multiselect-dropdown {
  width: 36px;
  color: #6b7db8;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bp-mselect .p-multiselect-dropdown svg { width: 14px; height: 14px;
}
.bp-mselect--error.p-multiselect { border-color: #b91c1c !important;
}
.bp-mselect.p-disabled { background: #f8f9fc;
}
.bp-mselect.p-disabled .p-multiselect-label { color: #9098b0;
}

/* chip display mode */
.bp-mselect .p-multiselect-chip {
  background: rgba(218, 33, 40, 0.08);
  color: #da2128;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  padding: 2px 7px;
  margin: 2px 3px 2px 0;
}
.bp-mselect .p-multiselect-chip-icon {
  font-size: 10px;
  margin-left: 4px;
  cursor: pointer;
  opacity: 0.7;
}
.bp-mselect .p-multiselect-chip-icon:hover { opacity: 1;
}

/* ── PrimeVue MultiSelect overlay — teleported to body, must be global ── */
.p-multiselect-overlay,
.p-multiselect-overlay.p-component {
  z-index: 9999 !important;
  background-color: #ffffff !important;
  border: 1px solid #c0c1cb !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(25, 26, 55, 0.14) !important;
  font-family: inherit;
  font-size: 13.5px;
  overflow: hidden;
}
.p-multiselect-overlay .p-multiselect-header {
  padding: 8px 12px;
  border-bottom: 1px solid #e4e7f0;
  background-color: #ffffff !important;
  display: flex;
  align-items: center;
  gap: 8px;
}
.p-multiselect-overlay .p-multiselect-filter-container {
  flex: 1;
}
.p-multiselect-overlay .p-multiselect-filter {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid #c0c1cb;
  border-radius: 6px;
  font-size: 13px;
  font-family: inherit;
  outline: none;
  background-color: #fff !important;
}
.p-multiselect-overlay .p-multiselect-filter:focus { border-color: #da2128;
}
.p-multiselect-overlay .p-multiselect-list-container,
.p-multiselect-overlay .p-multiselect-list {
  background-color: #ffffff !important;
}
.p-multiselect-overlay .p-multiselect-list { padding: 6px 0;
}
.p-multiselect-overlay .p-multiselect-option,
.p-multiselect-overlay .p-multiselect-option-container {
  padding: 11px 14px !important;
  line-height: 1.4 !important;
  font-size: 13.5px !important;
  color: #1a1d35 !important;
  cursor: pointer !important;
  background-color: #ffffff !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}
.p-multiselect-overlay .p-multiselect-option:hover,
.p-multiselect-overlay .p-multiselect-option-container:hover    { background-color: #f5f6fb !important;
}
.p-multiselect-overlay .p-multiselect-option.p-focus,
.p-multiselect-overlay .p-multiselect-option-container.p-focus  { background-color: #f5f6fb !important;
}
.p-multiselect-overlay .p-multiselect-option.p-selected,
.p-multiselect-overlay .p-multiselect-option-container.p-selected {
  background-color: #fff3f3 !important;
  color: #da2128 !important;
  font-weight: 600 !important;
}

/* checkbox inside each option */
.p-multiselect-overlay .p-checkbox {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.p-multiselect-overlay .p-checkbox-box {
  width: 16px;
  height: 16px;
  border: 1.5px solid #c0c1cb;
  border-radius: 4px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.15s, background 0.15s;
}
.p-multiselect-overlay .p-checkbox-box.p-checked {
  background: #da2128 !important;
  border-color: #da2128 !important;
}
.p-multiselect-overlay .p-checkbox-box.p-checked svg { color: #fff !important;
}
.p-multiselect-overlay .p-multiselect-empty-message {
  padding: 12px 14px !important;
  font-size: 13px !important;
  color: #9098b0 !important;
  background-color: #ffffff !important;
}

/* ── tagsPosition='below' — selected items render as removable tags BELOW the input ── */
.bp-mselect-trigger-placeholder {
  color: #9098b0;
}
.bp-mselect-trigger-count {
  color: #1a1d35;
  font-weight: 600;
}
.bp-mselect-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
  max-height: 120px;
  overflow-y: auto;
}
.bp-mselect-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 4px 4px 10px;
  background: rgba(218, 33, 40, 0.08);
  color: #da2128;
  border-radius: 14px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
}
.bp-mselect-tag-remove {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: #da2128;
  cursor: pointer;
  padding: 0;
  transition: background 0.15s, color 0.15s;
}
.bp-mselect-tag-remove:hover {
  background: #da2128;
  color: #fff;
}

/* ── BaseTreeMultiSelect — mirrors BaseMultiSelect's trigger geometry so
   mixed form rows stay baseline-aligned. */
.bp-treesel-wrap { width: 100%;
}
.bp-treesel { width: 100%;
}
.bp-treesel.p-treeselect {
  width: 100%;
  height: 34px;
  box-sizing: border-box;
  border: 1px solid #c0c1cb;
  border-radius: 8px;
  box-shadow: none;
  transition: border-color 0.15s;
}
.bp-treesel.p-treeselect:hover:not(.p-disabled) { border-color: #a0a1ab;
}
.bp-treesel.p-treeselect.p-focus,
.bp-treesel-wrap--open .bp-treesel.p-treeselect {
  border-color: #da2128;
  box-shadow: 0 0 0 3px rgba(218, 33, 40, 0.12);
  outline: none;
}
.bp-treesel .p-treeselect-label {
  padding: 0 12px;
  height: 100%;
  display: flex;
  align-items: center;
  font-size: 13.5px;
  color: #1a1d35;
  font-family: inherit;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.bp-treesel .p-treeselect-label.p-placeholder { color: #9098b0;
}
.bp-treesel .p-treeselect-dropdown {
  width: 36px;
  color: #6b7db8;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bp-treesel .p-treeselect-dropdown svg { width: 14px; height: 14px;
}
.bp-treesel--error.p-treeselect { border-color: #b91c1c !important;
}
.bp-treesel.p-disabled { background: #f8f9fc;
}
.bp-treesel.p-disabled .p-treeselect-label { color: #9098b0;
}

/* ── Overlay — teleported to body, must be global ── */
.p-treeselect-overlay,
.p-treeselect-overlay.p-component {
  z-index: 9999 !important;
  background-color: #ffffff !important;
  border: 1px solid #c0c1cb !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(25, 26, 55, 0.14) !important;
  font-family: inherit;
  font-size: 13.5px;
  overflow: hidden;
  min-width: 260px;
}
/* Filter row — PrimeVue 4 renders this via the inner Tree component as
   an IconField, which also carries the `.p-iconfield` class on the
   same wrapper. We target both so a theme-level rename doesn't break
   the styling. Likewise the input carries BOTH `.p-tree-filter-input`
   AND `.p-inputtext`; the latter is what Aura's base theme sets its
   default font-size / padding on, which was winning on specificity
   and leaving the input looking unstyled (giant placeholder text).
   The combined selector `input.p-tree-filter-input` out-specifies the
   theme's `.p-inputtext` rule, and the `!important` on sizing props
   guards against any future Aura preset that reasserts them. */
.p-treeselect-overlay .p-tree-filter,
.p-treeselect-overlay .p-iconfield {
  padding: 8px 12px !important;
  background-color: #ffffff !important;
  border-bottom: 1px solid #e4e7f0 !important;
  width: 100%;
  box-sizing: border-box;
}
.p-treeselect-overlay input.p-tree-filter-input,
.p-treeselect-overlay .p-iconfield > input.p-inputtext {
  width: 100% !important;
  height: 34px !important;
  padding: 7px 32px 7px 10px !important;
  border: 1px solid #c0c1cb !important;
  border-radius: 6px !important;
  font-size: 13px !important;
  font-family: inherit !important;
  line-height: 1.3 !important;
  color: #1a1d35 !important;
  outline: none !important;
  background-color: #fff !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}
.p-treeselect-overlay input.p-tree-filter-input:focus,
.p-treeselect-overlay .p-iconfield > input.p-inputtext:focus {
  border-color: #da2128 !important;
  box-shadow: 0 0 0 3px rgba(218, 33, 40, 0.12) !important;
}
.p-treeselect-overlay input.p-tree-filter-input::-moz-placeholder, .p-treeselect-overlay .p-iconfield > input.p-inputtext::-moz-placeholder {
  color: #9098b0 !important;
  font-size: 13px !important;
  font-family: inherit !important;
  opacity: 1;
}
.p-treeselect-overlay input.p-tree-filter-input::placeholder,
.p-treeselect-overlay .p-iconfield > input.p-inputtext::placeholder {
  color: #9098b0 !important;
  font-size: 13px !important;
  font-family: inherit !important;
  opacity: 1;
}
/* IconField wrapper must be position:relative for the absolutely-
   positioned SearchIcon to anchor against the input. PrimeVue sets
   this on the base .p-iconfield rule but if our padding on .p-tree-
   filter wins the cascade without this, the icon can escape its
   intended slot. Belt-and-braces. */
.p-treeselect-overlay .p-tree-filter,
.p-treeselect-overlay .p-iconfield {
  position: relative !important;
}

/* SearchIcon — anchored to the input's right edge, vertically centred.
   The IconField usually handles this but our overrides to the parent's
   padding occasionally desync the default anchor. Pinning it here
   keeps the glyph aligned regardless of theme tweaks.
   `line-height: 0` + explicit flex centering + sized child SVG together
   guarantee vertical centre — without them the span's intrinsic line-
   box height pushes the icon off-centre (that's why it previously
   rendered near the top of the input). */
.p-treeselect-overlay .p-tree-filter .p-inputicon,
.p-treeselect-overlay .p-iconfield .p-inputicon {
  position: absolute !important;
  right: 22px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #6b7db8 !important;
  width: 14px !important;
  height: 14px !important;
  line-height: 0 !important;
  font-size: 14px !important;
  pointer-events: none;
}
.p-treeselect-overlay .p-tree-filter .p-inputicon > svg,
.p-treeselect-overlay .p-iconfield .p-inputicon > svg {
  width: 14px !important;
  height: 14px !important;
  display: block !important;
}
.p-treeselect-overlay .p-tree {
  background: #ffffff !important;
  border: none !important;
  padding: 4px 0 !important;
  max-height: 300px;
  overflow-y: auto;
}
.p-treeselect-overlay .p-tree-node-content {
  display: flex !important;
  align-items: center !important;
  /* 10px gap matches BaseMultiSelect's option spacing — gives the
     checkbox room to breathe from the label text. */
  gap: 10px !important;
  padding: 7px 10px !important;
  line-height: 1.4 !important;
  font-size: 13.5px !important;
  color: #1a1d35 !important;
  cursor: pointer !important;
  border-radius: 4px;
  margin: 1px 4px;
}
.p-treeselect-overlay .p-tree-node-content:hover,
.p-treeselect-overlay .p-tree-node-content.p-focus { background-color: #f5f6fb !important;
}

/* Group (parent) rows — slightly heavier so tree hierarchy reads at a glance. */
.p-treeselect-overlay .p-tree-node-children .p-tree-node-content { padding-left: 20px !important;
}
.p-treeselect-overlay > .p-tree > .p-tree-root > .p-tree-node > .p-tree-node-content {
  font-weight: 600;
  color: #1a1d35 !important;
}

/* Checkbox styling — matches BaseMultiSelect. */
.p-treeselect-overlay .p-checkbox {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.p-treeselect-overlay .p-checkbox-box {
  width: 16px;
  height: 16px;
  border: 1.5px solid #c0c1cb;
  border-radius: 4px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.15s, background 0.15s;
}
/* PrimeVue 4 puts the state modifier on the ROOT .p-checkbox wrapper
   (`.p-checkbox-checked` / `.p-checkbox-indeterminate`), NOT on the
   `.p-checkbox-box` child — this was why the box stayed white even
   when ticked. Target the wrapper, then style the nested box. Keep
   both patterns (wrapper-driven + box-adjacent) in case a future
   PrimeVue release migrates the modifier back onto the box. */
.p-treeselect-overlay .p-checkbox.p-checkbox-checked > .p-checkbox-box,
.p-treeselect-overlay .p-checkbox.p-checkbox-indeterminate > .p-checkbox-box,
.p-treeselect-overlay .p-checkbox-box.p-checked,
.p-treeselect-overlay .p-checkbox-box.p-indeterminate,
.p-treeselect-overlay .p-checkbox-box.p-highlight {
  background: #da2128 !important;
  border-color: #da2128 !important;
}
.p-treeselect-overlay .p-checkbox.p-checkbox-checked > .p-checkbox-box svg,
.p-treeselect-overlay .p-checkbox.p-checkbox-indeterminate > .p-checkbox-box svg,
.p-treeselect-overlay .p-checkbox-box.p-checked svg,
.p-treeselect-overlay .p-checkbox-box.p-indeterminate svg,
.p-treeselect-overlay .p-checkbox-box.p-highlight svg {
  color: #fff !important;
}
/* The CheckboxIcon in PrimeVue 4 is sometimes rendered via a CSS mask
   whose colour follows the icon's `color`, and sometimes as an inline
   SVG whose stroke follows `currentColor`. Covering both so the tick
   mark reads as white against the red fill in every build. */
.p-treeselect-overlay .p-checkbox.p-checkbox-checked > .p-checkbox-box .p-checkbox-icon,
.p-treeselect-overlay .p-checkbox.p-checkbox-indeterminate > .p-checkbox-box .p-checkbox-icon {
  color: #ffffff !important;
  fill: #ffffff !important;
}
.p-treeselect-overlay .p-treeselect-empty-message {
  padding: 12px 14px !important;
  font-size: 13px !important;
  color: #9098b0 !important;
  background-color: #ffffff !important;
}

/* ── tagsPosition='below' — matches BaseMultiSelect's recipe ── */
.bp-treesel-trigger-placeholder { color: #9098b0;
}
.bp-treesel-trigger-count       { color: #1a1d35; font-weight: 600;
}
.bp-treesel-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
  max-height: 120px;
  overflow-y: auto;
}
.bp-treesel-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 4px 4px 10px;
  background: rgba(218, 33, 40, 0.08);
  color: #da2128;
  border-radius: 14px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
}
.bp-treesel-tag-remove {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: #da2128;
  cursor: pointer;
  padding: 0;
  transition: background 0.15s, color 0.15s;
}
.bp-treesel-tag-remove:hover {
  background: #da2128;
  color: #fff;
}

.bp-textarea {
  padding: 9px 12px;
  border: 1px solid #c0c1cb;
  border-radius: 8px;
  font-size: 13.5px;
  color: #1a1d35;
  outline: none;
  transition: border-color 0.15s;
  font-family: inherit;
  width: 100%;
  box-sizing: border-box;
  min-height: 80px;
}
.bp-textarea:focus {
  border-color: #da2128;
  box-shadow: 0 0 0 3px rgba(218, 33, 40, 0.12);
}
.bp-textarea--error    { border-color: #b91c1c !important;
}
.bp-textarea--disabled { background: #f8f9fc; color: #9098b0; cursor: not-allowed;
}

/* ── Wrapper ── */
.bp-tbl-wrap { display: flex; flex-direction: column;
}
.bp-tbl-scroll { overflow-x: auto; border-radius: 10px; border: 1px solid #e4e7f0;
}

/* ── Table base ── */
.bp-tbl {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 12px;
  font-weight: 600;
  color: #1a1d35;
  background: #fff;
  min-width: 820px;
}

/* ── Header: sort row ── */
.bp-tbl-thead-sort { background: #191a37;
}
.bp-tbl-th {
  padding: 0;
  border-bottom: 2px solid #2d2f52;
  white-space: nowrap;
  font-weight: 700;
  font-size: 11px;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  vertical-align: middle;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.bp-tbl-th--sortable { cursor: pointer;
}
.bp-tbl-th--sortable:hover { background: #23254a;
}
.bp-tbl-th--left   { text-align: left;
}
.bp-tbl-th--right  { text-align: right;
}
.bp-tbl-th--center { text-align: center;
}
.bp-tbl-th-inner {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 11px 14px;
}
.bp-tbl-th--right  .bp-tbl-th-inner { justify-content: flex-end;
}
.bp-tbl-th--center .bp-tbl-th-inner { justify-content: center;
}
.bp-tbl-th-label { flex: 1;
}
.bp-tbl-sort-icon { color: #da2128; flex-shrink: 0; display: flex;
}
.bp-tbl-sort-icon--idle { color: #4e5a82;
}

/* ── Header: search row ── */
.bp-tbl-thead-search { background: #f9fafc;
}
.bp-tbl-th-search {
  padding: 6px 8px;
  border-bottom: 1px solid #e4e7f0;
  vertical-align: middle;
}
.bp-tbl-search-wrap {
  display: flex;
  align-items: center;
  gap: 5px;
  background: #fff;
  border: 1px solid #d1d5e8;
  border-radius: 6px;
  padding: 0 7px;
  height: 28px;
  transition: border-color 0.15s;
}
.bp-tbl-search-wrap:focus-within {
  border-color: #da2128;
  box-shadow: 0 0 0 2px rgba(218, 33, 40, 0.08);
}
.bp-tbl-search-icon { color: #9098b0; flex-shrink: 0;
}
.bp-tbl-search-input {
  border: none;
  outline: none;
  font-size: 11.5px;
  color: #1a1d35;
  background: transparent;
  width: 100%;
  min-width: 0;
  font-family: inherit;
}
.bp-tbl-search-input::-moz-placeholder { color: #c4c9de;
}
.bp-tbl-search-input::placeholder { color: #c4c9de;
}
.bp-tbl-search-clear {
  background: none;
  border: none;
  cursor: pointer;
  color: #9098b0;
  font-size: 14px;
  line-height: 1;
  padding: 0;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
}
.bp-tbl-search-clear:hover { color: #da2128;
}

/* ── Body rows ── */
.bp-tbl-row { transition: background 0.12s;
}
.bp-tbl-row--clickable { cursor: pointer;
}
.bp-tbl-row:nth-child(odd)  { background: #fff;
}
.bp-tbl-row:nth-child(even) { background: #f4f4f7;
}
.bp-tbl-row:hover { background: #fdf5f5;
}
.bp-tbl-td {
  padding: 11px 14px;
  vertical-align: middle;
}
.bp-tbl-td--clip   { overflow: hidden;
}
.bp-tbl-td--right  { text-align: right;
}
.bp-tbl-td--center { text-align: center;
}
.bp-tbl-cell-text {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Status badge ── */
.bp-tbl-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  white-space: nowrap;
}
.bp-tbl-status-dot { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0;
}
.bp-tbl-status--draft      { background: rgba(250,204,21,0.15); color: #b45309;
}
.bp-tbl-status--draft      .bp-tbl-status-dot { background: #f59e0b;
}
.bp-tbl-status--active     { background: rgba(34,197,94,0.12);  color: #15803d;
}
.bp-tbl-status--active     .bp-tbl-status-dot { background: #22c55e;
}
.bp-tbl-status--closed     { background: rgba(107,114,128,0.12); color: #374151;
}
.bp-tbl-status--closed     .bp-tbl-status-dot { background: #9ca3af;
}
.bp-tbl-status--approved   { background: rgba(34,197,94,0.12);  color: #15803d;
}
.bp-tbl-status--approved   .bp-tbl-status-dot { background: #22c55e;
}
.bp-tbl-status--completed  { background: rgba(59,130,246,0.12); color: #1d4ed8;
}
.bp-tbl-status--completed  .bp-tbl-status-dot { background: #3b82f6;
}

/* ── Loading skeleton ── */
.bp-tbl-row--skeleton { pointer-events: none;
}
.bp-tbl-skeleton {
  height: 14px;
  border-radius: 6px;
  background: linear-gradient(90deg, #f0f1f5 25%, #e8eaf2 50%, #f0f1f5 75%);
  background-size: 200% 100%;
  animation: bp-tbl-shimmer 1.4s infinite;
}
@keyframes bp-tbl-shimmer {
0%   { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}

/* ── Empty state ── */
.bp-tbl-td-empty { text-align: center; padding: 48px 20px;
}
.bp-tbl-empty { display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.bp-tbl-empty-icon { color: #c4c9de;
}
.bp-tbl-empty p { font-size: 13px; color: #9098b0; margin: 0;
}

/* ── Footer ── */
.bp-tbl-footer { display: flex; justify-content: flex-end; padding: 8px 4px 0;
}
.bp-tbl-count { font-size: 11.5px; color: #9098b0;
}

/* ── Cell alignment ── */
.bp-tbl-td--center { text-align: center;
}
.bp-tbl-td--right  { text-align: right;
}

/* ── Text truncation with ellipsis for default-rendered cells ── */
.bp-tbl-td--clip .bp-tbl-cell-text {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

/* ── Expandable parent row ── */
.bp-tbl-row--expandable { cursor: pointer;
}

/* ── Expand column cell wrapper ── */
.bp-tbl-expand-cell {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
}

/* ── Expand chevron button ── */
.bp-tbl-expand-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1.5px solid #d1d5e8;
  background: #fff;
  color: #6b7db8;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
  flex-shrink: 0;
}
.bp-tbl-expand-btn svg {
  transition: transform 0.2s ease;
}
.bp-tbl-expand-btn:hover {
  background: #f5f6fb;
  border-color: #b0b7d8;
  color: #1a1d35;
}
.bp-tbl-expand-btn--open {
  background: #1a1d35;
  border-color: #1a1d35;
  color: #fff;
}
.bp-tbl-expand-btn--open:hover {
  background: #2d3152;
  border-color: #2d3152;
}
.bp-tbl-expand-btn--open svg {
  transform: rotate(90deg);
}

/* ── Version count badge ── */
.bp-tbl-expand-count {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 15px;
  height: 15px;
  padding: 0 3px;
  border-radius: 99px;
  background: #da2128;
  color: #fff;
  font-size: 8.5px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  pointer-events: none;
}

/* ── Child rows — same appearance as parent ── */
.bp-tbl-row--child { background: inherit;
}
.bp-tbl-cell-text--muted { color: #c4c9de !important;
}

.bp-tabbar {
  border-bottom: 1px solid #e4e7f0;
  background: #fff;
  overflow-x: hidden;
}
.bp-tabbar-row {
  display: flex;
  gap: 2px;
  padding: 0 4px;
}
.bp-tabbar-btn {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 14px 14px 11px;
  border: none;
  border-bottom: 3px solid transparent;
  background: transparent;
  cursor: pointer;
  border-radius: 8px 8px 0 0;
  white-space: nowrap;
  font-family: inherit;
  transition: background 0.15s;
  flex-shrink: 0;
}
.bp-tabbar-btn:hover { background: #f8f9fc;
}
.bp-tabbar-btn--active {
  border-bottom-color: #da2128;
  background: #fff5f5;
}
.bp-tabbar-btn--disabled {
  opacity: 0.38;
  cursor: not-allowed;
  pointer-events: none;
}
.bp-tabbar-icon {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f0f1f5;
  color: #6b7db8;
  flex-shrink: 0;
  transition: background 0.15s, color 0.15s;
}
.bp-tabbar-btn--active .bp-tabbar-icon {
  background: #fee2e2;
  color: #da2128;
}
.bp-tabbar-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
}
.bp-tabbar-code {
  font-size: 11px;
  font-weight: 700;
  color: #4e5a82;
  letter-spacing: 0.3px;
}
.bp-tabbar-btn--active .bp-tabbar-code { color: #da2128;
}
.bp-tabbar-name {
  font-size: 9.5px;
  color: #9098b0;
}
.bp-tabbar-name--solo {
  font-size: 12px;
  font-weight: 600;
  color: #4e5a82;
}
.bp-tabbar-btn--active .bp-tabbar-name { color: #da2128;
}
.bp-tabbar-count {
  position: absolute;
  top: 5px;
  right: 5px;
  min-width: 18px;
  height: 20px;
  border-radius: 9px;
  background: #e4e7f0;
  color: #1a1d35;
  font-size: 10px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px 10px;
  line-height: 1;
  pointer-events: none;
}
.bp-tabbar-btn--active .bp-tabbar-count {
  background: #da2128;
  color: #fff;
}

.bp-rs-box {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 34px;
  border: 1px solid #c0c1cb;
  border-radius: 8px;
  padding: 0 12px;
  box-sizing: border-box;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.bp-rs-val {
  font-size: 11.5px;
  font-weight: 700;
  color: #da2128;
  white-space: nowrap;
  flex-shrink: 0;
}
.bp-rs-track-wrap {
  position: relative;
  flex: 1;
  height: 24px;
  display: flex;
  align-items: center;
  cursor: pointer;
  min-width: 0;
  touch-action: none;
}
.bp-rs-track {
  position: absolute;
  left: 0;
  right: 0;
  height: 4px;
  border-radius: 99px;
  background: #e4e7f0;
}
.bp-rs-fill {
  position: absolute;
  height: 4px;
  border-radius: 99px;
  background: #da2128;
  pointer-events: none;
}
.bp-rs-handle {
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #da2128;
  border: 2px solid #fff;
  box-shadow: 0 1px 5px rgba(218, 33, 40, 0.35);
  transform: translateX(-50%);
  top: 50%;
  margin-top: -9px;
  cursor: grab;
  pointer-events: none;
}
.bp-rs-track-wrap:active .bp-rs-handle { cursor: grabbing;
}
.bp-rs-box--active {
  border-color: #da2128;
  box-shadow: 0 0 0 3px rgba(218, 33, 40, 0.12);
}

.bp-filter-card {
  background: #fff;
  border: 1px solid #e4e7f0;
  border-radius: 10px;
}
.bp-filter-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 18px;
}
.bp-filter-bar-left {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}
.bp-filter-icon { color: #da2128; flex-shrink: 0;
}
.bp-filter-title {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #4e5a82;
  white-space: nowrap;
  flex-shrink: 0;
}
.bp-filter-badge {
  display: inline-flex;
  align-items: center;
  background: #da2128;
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  border-radius: 99px;
  padding: 2px 8px;
  white-space: nowrap;
  flex-shrink: 0;
}
.bp-filter-clear {
  background: none;
  border: 1px solid #d1d5e8;
  border-radius: 6px;
  padding: 3px 10px;
  font-size: 11.5px;
  font-weight: 600;
  color: #4e5a82;
  cursor: pointer;
  font-family: inherit;
  transition: border-color 0.15s, color 0.15s;
  white-space: nowrap;
  flex-shrink: 0;
}
.bp-filter-clear:hover { border-color: #da2128; color: #da2128;
}
.bp-filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: 1px solid #d1d5e8;
  border-radius: 6px;
  padding: 4px 12px;
  font-size: 12px;
  font-weight: 600;
  color: #4e5a82;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  transition: border-color 0.15s, color 0.15s;
  flex-shrink: 0;
}
.bp-filter-toggle:hover { border-color: #da2128; color: #da2128;
}
.bp-filter-body {
  border-top: 1px solid #e4e7f0;
  padding: 16px 18px 14px;
}
.bp-filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px 16px;
  align-items: end;
}

/* ── Active filter chips row (holds both groups + flat singles) ── */
.bp-filter-chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  flex: 1;
  min-width: 0;
  padding-bottom: 0;
}

/* ── Grouped chips (one bordered container per filter kind) ── */
.bp-filter-group {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  padding: 3px 6px 3px 3px;
  background: #ffffff;
  border: 1px solid #e4e7f0;
  border-radius: 16px;
  box-shadow: 0 1px 1px rgba(16, 24, 40, 0.03);
  max-width: 100%;
}
.bp-filter-group-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 8px 2px 7px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  white-space: nowrap;
}
.bp-filter-group-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
}
.bp-filter-group-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 2px 1px 9px;
  border-radius: 99px;
  font-size: 11.5px;
  font-weight: 600;
  white-space: nowrap;
  max-width: 180px;
}
.bp-filter-group-pill-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bp-filter-group-pill-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 0;
  background: rgba(255, 255, 255, 0.65);
  color: inherit;
  cursor: pointer;
  font-size: 13px;
  line-height: 1;
  padding: 0;
  font-family: inherit;
  opacity: 0.75;
  transition: background 0.12s, opacity 0.12s, color 0.12s;
}
.bp-filter-group-pill-remove:hover {
  background: rgba(218, 33, 40, 0.9);
  color: #ffffff;
  opacity: 1;
}

/* Palette — mirrors forecast's compliance-report chip colour vocabulary.
   Each colour has three variants: badge (bg + text), dot (bg), pill (bg + text).
   Add new colours by extending COLOR_WHITELIST in the script AND defining
   the three selectors below for the same colour name. */
.bp-filter-group-badge--sky     { background: #e0f2fe; color: #075985;
}
.bp-filter-group-dot--sky       { background: #0ea5e9;
}
.bp-filter-group-pill--sky      { background: #f0f9ff; color: #075985; box-shadow: inset 0 0 0 1px rgba(14, 165, 233, 0.25);
}
.bp-filter-group-badge--violet  { background: #ede9fe; color: #5b21b6;
}
.bp-filter-group-dot--violet    { background: #8b5cf6;
}
.bp-filter-group-pill--violet   { background: #f5f3ff; color: #5b21b6; box-shadow: inset 0 0 0 1px rgba(139, 92, 246, 0.25);
}
.bp-filter-group-badge--teal    { background: #ccfbf1; color: #115e59;
}
.bp-filter-group-dot--teal      { background: #14b8a6;
}
.bp-filter-group-pill--teal     { background: #f0fdfa; color: #115e59; box-shadow: inset 0 0 0 1px rgba(20, 184, 166, 0.25);
}
.bp-filter-group-badge--amber   { background: #fef3c7; color: #92400e;
}
.bp-filter-group-dot--amber     { background: #f59e0b;
}
.bp-filter-group-pill--amber    { background: #fffbeb; color: #92400e; box-shadow: inset 0 0 0 1px rgba(245, 158, 11, 0.25);
}
.bp-filter-group-badge--emerald { background: #d1fae5; color: #065f46;
}
.bp-filter-group-dot--emerald   { background: #10b981;
}
.bp-filter-group-pill--emerald  { background: #ecfdf5; color: #065f46; box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.25);
}
.bp-filter-group-badge--fuchsia { background: #fae8ff; color: #86198f;
}
.bp-filter-group-dot--fuchsia   { background: #d946ef;
}
.bp-filter-group-pill--fuchsia  { background: #fdf4ff; color: #86198f; box-shadow: inset 0 0 0 1px rgba(217, 70, 239, 0.25);
}
.bp-filter-group-badge--red     { background: #fee2e2; color: #991b1b;
}
.bp-filter-group-dot--red       { background: #ef4444;
}
.bp-filter-group-pill--red      { background: #fef2f2; color: #991b1b; box-shadow: inset 0 0 0 1px rgba(239, 68, 68, 0.25);
}
.bp-filter-group-badge--slate   { background: #e2e8f0; color: #334155;
}
.bp-filter-group-dot--slate     { background: #64748b;
}
.bp-filter-group-pill--slate    { background: #f1f5f9; color: #334155; box-shadow: inset 0 0 0 1px rgba(100, 116, 139, 0.25);
}

/* ── Flat single-value chips (back-compat with pre-groups consumers) ── */
.bp-filter-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 4px 2px 8px;
  border-radius: 99px;
  background: rgba(218, 33, 40, 0.07);
  border: 1px solid rgba(218, 33, 40, 0.2);
  white-space: nowrap;
  flex-shrink: 0;
}
.bp-filter-tag-label {
  font-size: 10.5px;
  font-weight: 700;
  color: #da2128;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.bp-filter-tag-value {
  font-size: 11px;
  font-weight: 600;
  color: #1a1d35;
}
.bp-filter-tag-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: none;
  background: none;
  cursor: pointer;
  font-size: 13px;
  line-height: 1;
  color: #9098b0;
  padding: 0;
  font-family: inherit;
  transition: background 0.12s, color 0.12s;
}
.bp-filter-tag-remove:hover { background: rgba(218, 33, 40, 0.12); color: #da2128;
}

.bp-alert-overlay {
  position: fixed;
  inset: 0;
  /* Topmost interactive layer — alerts must render above every modal,
     popup, picker, etc. Matches BaseToast (9999) so notifications and
     alerts share the same "always on top" tier. */
  z-index: 9999;
  background: rgba(0, 0, 0, 0.45);
}
.bp-alert {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10000;
  width: 480px;
  min-width: 360px;
  max-width: 95vw;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
}

/* ── Header ── */
.bp-alert-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: #1a1d35;
  cursor: grab;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  gap: 12px;
  flex-shrink: 0;
  height: 40px;
}
.bp-alert-header:active { cursor: grabbing;
}
.bp-alert-header-left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1;
}
.bp-alert-header-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
}
.bp-alert-title {
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bp-alert-close {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border: none;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
}
.bp-alert-close:hover { background: rgba(255, 255, 255, 0.22);
}

/* ── Content ── */
.bp-alert-content {
  display: flex;
  flex-direction: row;
  min-height: 135px;
  flex: 1;
}
.bp-alert-type-panel {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 68px;
  padding-top: 20px;
  flex-shrink: 0;
}
.bp-alert-body {
  flex: 1;
  padding: 20px;
  font-size: 13.5px;
  color: #1a1d35;
  line-height: 1.65;
  word-break: break-word;
  overflow-y: auto;
}

/* ── Footer ── */
.bp-alert-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  padding: 10px 20px;
  border-top: 1px solid #e4e7f0;
  background: #f8f9fc;
  flex-shrink: 0;
}

/* ── Responsive ── */
@media (max-width: 480px) {
.bp-alert { width: 95vw; min-width: 0;
}
.bp-alert-footer { flex-direction: column-reverse; align-items: stretch;
}
.bp-alert-footer .bp-btn { width: 100%; justify-content: center;
}
}

.bp-toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 9999;
  width: 340px;
  max-width: calc(100vw - 40px);
  pointer-events: none;
}
.bp-toast-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
}
.bp-toast {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 12px 14px 14px;
  background: #fff;
  border-radius: 10px;
  border-left: 4px solid;
  box-shadow: 0 4px 20px rgba(25, 26, 55, 0.13);
  pointer-events: all;
  min-height: 52px;
  width: 100%;
  box-sizing: border-box;
}
.bp-toast-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 20px;
}
.bp-toast-message {
  flex: 1;
  font-size: 13.5px;
  color: #1a1d35;
  line-height: 1.5;
  margin: 0;
  word-break: break-word;
}
.bp-toast-close {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border: none;
  background: rgba(0, 0, 0, 0.06);
  color: #6b7280;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s, color 0.15s;
  padding: 0;
}
.bp-toast-close:hover {
  background: rgba(0, 0, 0, 0.12);
  color: #1a1d35;
}

/* ── Transition animations ── */
.bp-toast-enter-active {
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.bp-toast-leave-active {
  transition: all 0.25s ease-in;
  position: absolute;
  right: 0;
  left: 0;
}
.bp-toast-enter-from {
  opacity: 0;
  transform: translateX(110%);
}
.bp-toast-leave-to {
  opacity: 0;
  transform: translateX(110%);
}
.bp-toast-move {
  transition: transform 0.22s ease;
}

/* ── Responsive ── */
@media (max-width: 480px) {
.bp-toast-container {
    top: 12px;
    right: 12px;
    left: 12px;
    width: auto;
    max-width: 100%;
}
}

/* ── BaseLoader overlay ── */
/* Full-viewport dimmer that blocks all interaction while any load is
   active. z-index sits above BaseToast (9999) so a loader triggered
   from within a toast-heavy screen still lands on top. */
.bp-loader-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 17, 40, 0.42);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
.bp-loader-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 26px 34px;
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(15, 17, 40, 0.22);
  min-width: 200px;
  max-width: min(80vw, 420px);
}

/* Ring spinner — same `bp-spin` keyframe used by BaseButton so the
   whole app shares a single spin animation. Colour is the brand red
   (#da2128) to stay on-tone with primary actions and the required-
   field indicator. */
.bp-loader-spinner {
  width: 44px;
  height: 44px;
  border: 4px solid rgba(218, 33, 40, 0.18);
  border-top-color: #da2128;
  border-radius: 50%;
  animation: bp-spin 0.8s linear infinite;
  flex-shrink: 0;
}
.bp-loader-text {
  margin: 0;
  font-size: 13.5px;
  font-weight: 600;
  color: #1a1d35;
  text-align: center;
  line-height: 1.5;
  word-break: break-word;
  min-height: 20px;
}

/* Enter/leave — quick fade so the overlay never feels heavy. Card
   also scales in slightly to give a subtle "arriving" cue. */
.bp-loader-enter-active,
.bp-loader-leave-active {
  transition: opacity 0.18s ease;
}
.bp-loader-enter-active .bp-loader-card,
.bp-loader-leave-active .bp-loader-card {
  transition: transform 0.18s ease, opacity 0.18s ease;
}
.bp-loader-enter-from,
.bp-loader-leave-to {
  opacity: 0;
}
.bp-loader-enter-from .bp-loader-card,
.bp-loader-leave-to .bp-loader-card {
  opacity: 0;
  transform: scale(0.94);
}

/* Mobile — tighten the card so it fits comfortably on narrow screens. */
@media (max-width: 480px) {
.bp-loader-card {
    padding: 20px 24px;
    min-width: 160px;
    max-width: calc(100vw - 32px);
}
.bp-loader-spinner {
    width: 38px;
    height: 38px;
    border-width: 3px;
}
}

/* ── Overlay ── */
.bp-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 17, 40, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1100;
  padding: 16px;
}

/* ── Dialog ── */
.bp-popup-dialog {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 16px 48px rgba(15, 17, 40, 0.22);
  width: 100%;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
}

/* ── Header ── */
.bp-popup-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px 15px;
  border-bottom: 1px solid #d0d4e4;
  gap: 12px;
}
.bp-popup-title {
  font-size: 20px;
  font-weight: 600;
  color: #1a1d35;
  line-height: 1.3;
}
.bp-popup-close {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 5px;
  border-radius: 6px;
  color: #4e5a82;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.15s, color 0.15s;
}
.bp-popup-close:hover {
  background: #eeeef5;
  color: #1a1d35;
}

/* ── Body ── */
.bp-popup-body {
  padding: 20px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

/* ── Transition ── */
.bp-popup-fade-enter-active,
.bp-popup-fade-leave-active {
  transition: opacity 0.2s ease;
}
.bp-popup-fade-enter-active .bp-popup-dialog,
.bp-popup-fade-leave-active .bp-popup-dialog {
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.bp-popup-fade-enter-from,
.bp-popup-fade-leave-to {
  opacity: 0;
}
.bp-popup-fade-enter-from .bp-popup-dialog,
.bp-popup-fade-leave-to .bp-popup-dialog {
  transform: scale(0.96) translateY(-8px);
  opacity: 0;
}

/* ── Mobile ── */
@media (max-width: 480px) {
.bp-popup-dialog { border-radius: 10px;
}
.bp-popup-body   { padding: 16px;
}
}

/* ── Container (multi-mode) ── */
.bp-search-multi.p-autocomplete {
  display: block;
  width: 100%;
}
.bp-search-multi-wrap {
  position: relative;
  width: 100%;
}
.bp-search-multi-icon {
  position: absolute;
  right: 12px;
  top: 14px;
  color: #6b7db8;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 1;
}
.bp-search-multi .p-autocomplete-input-multiple {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 8px 36px 8px 12px;
  border: 1px solid #d1d5e8;
  border-radius: 8px;
  background: #fff;
  min-height: 44px;
  /* Cap chip-area height so the popup doesn't grow indefinitely when many users are added */
  max-height: 120px;
  overflow-y: auto;
  width: 100%;
  cursor: text;
  list-style: none;
  margin: 0;
  transition: border-color 0.15s, box-shadow 0.15s;
}

/* When tagsPosition='below', suppress chips inside the input — they render in the list below */
.bp-search-multi--tags-below .p-autocomplete-chip-item {
  display: none !important;
}
.bp-search-multi--error .p-autocomplete-input-multiple {
  border-color: #b91c1c;
}
.bp-search-multi .p-autocomplete-input-multiple:focus-within {
  border-color: #5b6af0;
  box-shadow: 0 0 0 3px rgba(91, 106, 240, 0.12);
  outline: none;
}

/* ── Input slot (the typing area) ── */
/* flex-basis 100% forces the input onto its own row so "Add more" sits below the chips */
.bp-search-multi .p-autocomplete-input-chip {
  flex: 1 1 100%;
  min-width: 100%;
  padding: 0;
  list-style: none;
}
.bp-search-multi .p-autocomplete-input-chip input,
.bp-search-multi .p-autocomplete-input-multiple input {
  border: none;
  outline: none;
  background: transparent;
  font-size: 13.5px;
  color: #1a1d35;
  width: 100%;
  padding: 4px 2px;
}
.bp-search-multi .p-autocomplete-input-chip input::-moz-placeholder, .bp-search-multi .p-autocomplete-input-multiple input::-moz-placeholder {
  color: #6b7db8;
}
.bp-search-multi .p-autocomplete-input-chip input::placeholder,
.bp-search-multi .p-autocomplete-input-multiple input::placeholder {
  color: #6b7db8;
}

/* ── Chips (PrimeVue chip token) ── */
.bp-search-multi .p-autocomplete-chip {
  background: #eef2ff !important;
  border: 1px solid #d1d9f3 !important;
  border-radius: 999px !important;
  padding: 2px 4px 2px 2px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  font-size: 13px !important;
  color: #1a1d35 !important;
  list-style: none !important;
}
.bp-search-multi .p-autocomplete-chip:hover {
  background: #e0e7ff !important;
  border-color: #b8c4ee !important;
}

/* Hide PrimeVue's default × icon when using our custom slot button */
.bp-search-multi .p-autocomplete-chip-icon { display: none !important;
}

/* ── Chip content (custom slot) ── */
.bp-search-multi-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.bp-search-multi-chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: #4e5a82;
  cursor: pointer;
  padding: 0;
  margin-left: 2px;
  transition: background 0.15s, color 0.15s;
}
.bp-search-multi-chip-remove:hover {
  background: #da2128;
  color: #fff;
}
.bp-search-multi-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  font-size: 10.5px;
  font-weight: 600;
  color: #fff;
  flex-shrink: 0;
  letter-spacing: 0.2px;
}
.bp-search-multi-chip-label {
  font-size: 13px;
  color: #1a1d35;
  line-height: 1.2;
}

/* ── Loader ──
   Push OUT of the input on the right (mirrors BaseSearchSelect's loader
   placement in `.bp-search-single .p-autocomplete-loader`). PrimeVue's
   default for multi-mode drops the loader inside the input on the LEFT
   where it overlaps typed text; the negative `right` moves it to the
   gap between this field and the next form control, 2px clearance from
   the input's right border. `top: 50%` + `margin-top: -9px` centres it
   vertically regardless of chip-row growth. `!important` overrides
   PrimeVue's own logical-property positioning (inset-inline-start).
   Colour: brand red matches BaseLoader / BaseButton spinners for a
   coherent "work-in-progress" indicator across the app. */
.bp-search-multi .p-autocomplete-loader {
  left: auto !important;
  right: -19px !important;
  inset-inline-start: auto !important;
  inset-inline-end: -19px !important;
  top: 50% !important;
  width: 18px;
  height: 18px;
  margin-top: -9px;
  color: #da2128;
}

/* ── Overlay panel ── */
.p-autocomplete-overlay {
  /* PrimeVue 4 theme variables don't resolve consistently — force opaque surface */
  background: #fff !important;
  border: 1px solid #d1d5e8 !important;
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(15, 17, 40, 0.12) !important;
  margin-top: 4px;
  padding: 8px 4px;
  max-height: 280px;
  overflow-y: auto;
  /* PrimeVue applies z-index inline (default ~1000); override to sit above BasePopup at 1100 */
  z-index: 1300 !important;
}
.p-autocomplete-list {
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}
.p-autocomplete-option {
  padding: 8px 10px !important;
  border-radius: 6px !important;
  cursor: pointer;
  font-size: 13.5px;
  color: #1a1d35 !important;
  list-style: none;
}
.p-autocomplete-option:hover,
.p-autocomplete-option.p-autocomplete-option-focus,
.p-autocomplete-option.p-focus {
  background: #eef2ff !important;
  color: #1a1d35 !important;
}
.bp-search-multi-option {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.bp-search-multi-opt-text { min-width: 0;
}
.bp-search-multi-opt-name {
  font-size: 13.5px;
  color: #1a1d35;
  font-weight: 500;
  line-height: 1.25;
}
.bp-search-multi-opt-sub {
  font-size: 11.5px;
  color: #6b7db8;
  line-height: 1.25;
  margin-top: 1px;
}
.bp-search-multi-empty {
  padding: 12px;
  font-size: 13px;
  color: #6b7db8;
  text-align: center;
}

/* ── Below-mode pill chips (tagsPosition='below') ── */
.bp-search-multi-below {
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 6px;
  max-height: 120px;
  overflow-y: auto;
  padding: 2px;
}
.bp-search-multi-below-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #eef2ff;
  border: 1px solid #d1d9f3;
  border-radius: 999px;
  padding: 4px 4px 4px 12px;
  font-size: 13px;
  color: #1a1d35;
  line-height: 1.2;
  transition: background 0.15s, border-color 0.15s;
}
.bp-search-multi-below-chip:hover {
  background: #e0e7ff;
  border-color: #b8c4ee;
}
.bp-search-multi-below-label {
  white-space: nowrap;
}
.bp-search-multi-below-remove {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: #4e5a82;
  cursor: pointer;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.15s, color 0.15s;
}
.bp-search-multi-below-remove:hover {
  background: #da2128;
  color: #fff;
}

.bp-search-single-wrap {
  position: relative;
  width: 100%;
}
.bp-search-single.p-autocomplete {
  display: block;
  width: 100%;
}
.bp-search-single .p-autocomplete-input {
  /* Fixed 34px height (border-box) — kept in lockstep with BaseInput
     and BaseSelect so mixed form rows align on the baseline. Right
     padding (32px) preserves clearance for the clear-× / search-icon
     that render absolutely-positioned inside .bp-search-single-wrap. */
  height: 34px;
  box-sizing: border-box;
  width: 100%;
  padding: 0 32px 0 12px;
  font-size: 13.5px;
  color: #1a1d35;
  border: 1px solid #d1d5e8;
  border-radius: 8px;
  background: #fff;
  transition: border-color 0.15s, box-shadow 0.15s;
  outline: none;
}
.bp-search-single .p-autocomplete-input::-moz-placeholder {
  color: #6b7db8;
}
.bp-search-single .p-autocomplete-input::placeholder {
  color: #6b7db8;
}
.bp-search-single .p-autocomplete-input:focus {
  border-color: #5b6af0;
  box-shadow: 0 0 0 3px rgba(91, 106, 240, 0.12);
}
.bp-search-single--error .p-autocomplete-input {
  border-color: #b91c1c;
}
.bp-search-single-clear {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: #4e5a82;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background 0.15s, color 0.15s;
}
.bp-search-single-clear:hover {
  background: #da2128;
  color: #fff;
}
.bp-search-single-icon {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: #6b7db8;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.bp-search-single-create {
  padding: 6px 4px;
}
.bp-search-single-create-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: none;
  padding: 6px 10px;
  font-size: 12.5px;
  font-weight: 600;
  color: #5b6af0;
  cursor: pointer;
  border-radius: 6px;
  transition: background 0.15s, color 0.15s;
}
.bp-search-single-create-link:hover {
  background: #eef0ff;
  color: #3b48d0;
}

/* PrimeVue AutoComplete's built-in loader (SpinnerIcon rendered when
   the :loading prop is true).

   Position: PrimeVue's default (`inset-inline-end:
   dt('autocomplete.padding.x')`) places the loader inside the input,
   where it overlaps the custom Q search icon we render at right: 10px.
   A negative `right` pushes the loader OUT of the input entirely so it
   sits in the gap between this field and the next form control, with a
   2px clearance from the input's right border. Width 18px + right -20px
   → loader left edge at (container_right + 2px).

   Size: the SpinnerIcon SVG is a filled ring path, so its visible stroke
   thickness scales with icon size. `.p-icon`'s default (`dt('icon.size')`)
   can render the arc quite thin — pinning to 18px keeps it visually
   consistent with the rest of the app's loading indicators.

   Colour: SpinnerIcon fills its path with `fill="currentColor"`, so
   setting `color` on the loader element switches it to brand red
   (#da2128) — the same shade used by BaseLoader's page-level ring and
   BaseButton's :loading spinner. Keeps every "work-in-progress"
   indicator on one colour. */
.bp-search-single .p-autocomplete-loader {
  right: -19px;
  inset-inline-end: -19px;
  width: 18px;
  height: 18px;
  margin-top: -9px;
  color: #da2128;
}

.bp-skills-picker { position: relative; width: 100%;
}

/* ── Trigger button ────────────────────────────────────────────────────── */
.bp-skills-picker-trigger {
  width: 100%;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 8px 0 10px;
  font-size: 13.5px;
  font-family: inherit;
  background: #fff;
  border: 1px solid #c0c1cb;
  border-radius: 8px;
  outline: none;
  cursor: pointer;
  transition: border-color 0.15s;
}
.bp-skills-picker-trigger:hover                  { border-color: #a0a1ab;
}
.bp-skills-picker-trigger--open                  { border-color: #a0a1ab;
}
.bp-skills-picker-trigger-inner {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.bp-skills-picker-trigger-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: #6b7db8;
}
.bp-skills-picker-trigger-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #9098b0;
}
.bp-skills-picker-trigger-label--filled { color: #1a1d35; font-weight: 600;
}
.bp-skills-picker-clear {
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: #9098b0;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  padding: 0;
}
.bp-skills-picker-clear:hover { color: #da2128;
}

/* ── tagsPosition='below' chips ─────────────────────────────────────────── */
.bp-skills-picker-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
  max-height: 120px;
  overflow-y: auto;
}
.bp-skills-picker-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 4px 4px 10px;
  background: rgba(218, 33, 40, 0.08);
  color: #da2128;
  border-radius: 14px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
}
.bp-skills-picker-tag-remove {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  border-radius: 50%;
  color: #da2128;
  cursor: pointer;
  padding: 0;
  transition: background 0.15s, color 0.15s;
}
.bp-skills-picker-tag-remove:hover {
  background: #da2128;
  color: #fff;
}

/* ── Modal overlay ─────────────────────────────────────────────────────── */
.bp-skills-picker-overlay {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.bp-skills-picker-modal {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(15, 17, 40, 0.25);
  width: 100%;
  max-width: 800px;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  font-family: inherit;
}

/* ── Header ────────────────────────────────────────────────────────────── */
.bp-skills-picker-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid #f1f1f6;
}
.bp-skills-picker-modal-eyebrow {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: #9098b0;
}
.bp-skills-picker-modal-title {
  font-size: 14px;
  font-weight: 600;
  color: #1a1d35;
  margin-top: 2px;
}
.bp-skills-picker-modal-close {
  width: 28px;
  height: 28px;
  background: transparent;
  border: none;
  border-radius: 6px;
  color: #9098b0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bp-skills-picker-modal-close:hover { background: #f5f6fb; color: #1a1d35;
}

/* ── Proficiency note ──────────────────────────────────────────────────── */
.bp-skills-picker-modal-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 9px 20px;
  background: #fffbeb;
  border-bottom: 1px solid #fde68a;
  color: #92400e;
  font-size: 11px;
  line-height: 1.4;
}
.bp-skills-picker-modal-note svg { flex-shrink: 0; margin-top: 1px; color: #f59e0b;
}
.bp-skills-picker-modal-note p { margin: 0;
}

/* ── Body ──────────────────────────────────────────────────────────────── */
.bp-skills-picker-modal-body {
  display: grid;
  grid-template-columns: 1fr 280px;
  flex: 1;
  overflow: hidden;
}
.bp-skills-picker-pane { display: flex; flex-direction: column; overflow: hidden;
}
.bp-skills-picker-pane--left  { border-right: 1px solid #f1f1f6;
}
.bp-skills-picker-pane--right { padding: 12px; background: #fafafd; overflow-y: auto;
}
@media (max-width: 640px) {
.bp-skills-picker-modal-body { grid-template-columns: 1fr;
}
.bp-skills-picker-pane--left { border-right: none; border-bottom: 1px solid #f1f1f6; max-height: 50%;
}
}

/* Search row */
.bp-skills-picker-search-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 12px 8px;
  border-bottom: 1px solid #f1f1f6;
}
.bp-skills-picker-search-row svg { color: #9098b0; flex-shrink: 0;
}
.bp-skills-picker-search-input {
  flex: 1;
  height: 28px;
  font-size: 12.5px;
  color: #1a1d35;
  background: transparent;
  border: 0;
  outline: none;
  font-family: inherit;
}
.bp-skills-picker-search-input::-moz-placeholder { color: #9098b0;
}
.bp-skills-picker-search-input::placeholder { color: #9098b0;
}
.bp-skills-picker-search-clear {
  font-size: 11px;
  color: #9098b0;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.bp-skills-picker-search-clear:hover { color: #1a1d35;
}

/* Tree */
.bp-skills-picker-tree {
  flex: 1;
  overflow-y: auto;
  padding: 4px 0;
  font-size: 12.5px;
}
.bp-skills-picker-empty {
  padding: 24px 12px;
  text-align: center;
  font-size: 11.5px;
  color: #9098b0;
}
.bp-skills-picker-row {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.bp-skills-picker-row--domain   { cursor: pointer;
}
.bp-skills-picker-row--category { cursor: pointer; padding-left: 28px;
}
.bp-skills-picker-row--group    { padding-left: 48px; padding-top: 2px; padding-bottom: 2px;
}
.bp-skills-picker-row--skill    { cursor: pointer; padding-left: 84px; padding-top: 2px; padding-bottom: 2px;
}
.bp-skills-picker-row:hover     { background: #fafafd;
}
.bp-skills-picker-caret {
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9098b0;
  flex-shrink: 0;
}
.bp-skills-picker-caret-btn { background: transparent; border: 0; cursor: pointer; padding: 0;
}
.bp-skills-picker-caret-svg { width: 10px; height: 10px; transition: transform 0.15s;
}
.bp-skills-picker-caret-svg--open { transform: rotate(90deg);
}
.bp-skills-picker-domain-label   { font-weight: 600; color: #1a1d35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bp-skills-picker-category-label { font-weight: 500; color: #4e5a82; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bp-skills-picker-group-inner {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
  cursor: pointer;
}
.bp-skills-picker-group-label { font-weight: 600; color: #4e5a82; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bp-skills-picker-skill-label { color: #4e5a82; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bp-skills-picker-checkbox {
  width: 14px;
  height: 14px;
  border: 1px solid #c0c1cb;
  border-radius: 3px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #fff;
}
.bp-skills-picker-checkbox--all     { background: #da2128; border-color: #da2128;
}
.bp-skills-picker-checkbox--partial { background: #f0a0a3; border-color: #f0a0a3;
}

/* Right pane — selected list */
.bp-skills-picker-pane-title {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: #4e5a82;
  margin-bottom: 8px;
}
.bp-skills-picker-pane-empty {
  font-size: 11.5px;
  color: #9098b0;
  font-style: italic;
  text-align: center;
  padding: 16px 0;
}
.bp-skills-picker-selected-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px;
}
.bp-skills-picker-selected-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px;
  background: #fff;
  border: 1px solid #e4e7f0;
  border-radius: 6px;
  font-size: 12px;
}
.bp-skills-picker-selected-text { flex: 1; min-width: 0;
}
.bp-skills-picker-selected-name {
  color: #1a1d35;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bp-skills-picker-selected-meta {
  color: #9098b0;
  font-size: 10.5px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bp-skills-picker-selected-remove {
  width: 20px;
  height: 20px;
  background: transparent;
  border: 0;
  color: #9098b0;
  cursor: pointer;
  flex-shrink: 0;
}
.bp-skills-picker-selected-remove:hover { color: #da2128;
}

/* ── Footer ────────────────────────────────────────────────────────────── */
.bp-skills-picker-modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 20px;
  border-top: 1px solid #f1f1f6;
  background: #fafafd;
}
.bp-skills-picker-footer-clear {
  font-size: 12px;
  color: #9098b0;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.bp-skills-picker-footer-clear:hover { color: #da2128;
}
.bp-skills-picker-footer-cancel {
  height: 30px;
  padding: 0 12px;
  font-size: 12px;
  font-family: inherit;
  font-weight: 500;
  color: #4e5a82;
  background: #fff;
  border: 1px solid #e4e7f0;
  border-radius: 6px;
  cursor: pointer;
}
.bp-skills-picker-footer-cancel:hover { background: #fafafd;
}
.bp-skills-picker-footer-apply {
  height: 30px;
  padding: 0 12px;
  font-size: 12px;
  font-family: inherit;
  font-weight: 600;
  color: #fff;
  background: #0d1526;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
}
.bp-skills-picker-footer-apply:hover { background: #1e2d45;
}

/* Transition */
.bp-skills-picker-fade-enter-active,
.bp-skills-picker-fade-leave-active { transition: opacity 0.15s ease;
}
.bp-skills-picker-fade-enter-from,
.bp-skills-picker-fade-leave-to     { opacity: 0;
}

.fade-enter-active[data-v-476d3c35],
.fade-leave-active[data-v-476d3c35] {
  transition: opacity 0.15s ease;
}
.fade-enter-from[data-v-476d3c35],
.fade-leave-to[data-v-476d3c35] {
  opacity: 0;
}

.ss-fadeup-enter-active[data-v-bd07afd6], .ss-fadeup-leave-active[data-v-bd07afd6] { transition: all 180ms ease;
}
.ss-fadeup-enter-from[data-v-bd07afd6]   { opacity: 0; transform: translateY(-6px);
}
.ss-fadeup-leave-to[data-v-bd07afd6]     { opacity: 0; transform: translateY(-6px);
}

/* Indeterminate progress bar for the Resource View refetch. A sliding
   segment rather than a percentage: the fetch gives no progress events, and
   a fake percentage that stalls at 90% is worse than an honest "working". */
.cf-progress[data-v-f0220ad5] {
  animation: cf-progress-slide-f0220ad5 1.1s ease-in-out infinite;
  will-change: transform;
}
@keyframes cf-progress-slide-f0220ad5 {
0%   { transform: translateX(-100%);
}
100% { transform: translateX(400%);
}
}
/* Respect the OS setting — the bar still shows, it just stops moving. */
@media (prefers-reduced-motion: reduce) {
.cf-progress[data-v-f0220ad5] { animation: none; width: 100%; opacity: 0.55;
}
}
.fade-enter-active[data-v-f0220ad5], .fade-leave-active[data-v-f0220ad5] { transition: opacity 0.18s ease;
}
.fade-enter-from[data-v-f0220ad5], .fade-leave-to[data-v-f0220ad5] { opacity: 0;
}
.cf-toast-enter-active[data-v-f0220ad5], .cf-toast-leave-active[data-v-f0220ad5] { transition: opacity 0.2s ease, transform 0.2s ease
}
.cf-toast-enter-from[data-v-f0220ad5], .cf-toast-leave-to[data-v-f0220ad5]       { opacity: 0; transform: translateY(-8px)
}

/* Hide the native number-input spinner inside the inline-edit cells. */
input[type="number"][data-v-f0220ad5]::-webkit-inner-spin-button,
input[type="number"][data-v-f0220ad5]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}
input[type="number"][data-v-f0220ad5] {
  -moz-appearance: textfield;
  -webkit-appearance: textfield;
          appearance: textfield;
}

/* Matrix scroll container — both axes scroll natively INSIDE the matrix card.
   Sticky thead + sticky group-header rows keep the date row and section labels
   pinned to the top of the scroll container as the user scrolls down to enter
   values on a bottom row. Min-height shows ~10 rows by default; max-height
   lets tall screens use the full available room. Styling matches MyForecast
   for visual consistency. */
.fc-grid-scroll[data-v-f0220ad5] {
  overflow-x: auto;
  overflow-y: auto;
  /* min-height sized to show the date header + DAY TOTAL row + a handful of
     data rows without leaving a giant dead area on empty projects (PM's
     Corner drilldown often lands here). Reduced from 600px on 2026-07-22 —
     the previous value showed ~15 data rows by default which crowded the
     viewport once the ribbon + FILTERS card stacked above it. */
  min-height: 260px;
  max-height: calc(100vh - 200px);
  scrollbar-width: thin;
  scrollbar-color: rgba(100, 116, 139, 0.55) transparent;
}
/* DAY TOTAL row placement — two layered mechanisms so the row always
   ends up at the container's bottom edge, regardless of data-row count:
   1. `.fc-grid-scroll table { height: 100% }` stretches the table to
      fill the scroll container. The `.fc-spacer-row` above DAY TOTAL
      has `height: 100%`, absorbing all extra vertical space so DAY
      TOTAL renders at the container's true bottom in the empty /
      short-content case.
   2. `position: sticky; bottom: 0` on the DAY TOTAL cells keeps the row
      pinned when the middle rows are taller than the container and the
      user scrolls — the row would otherwise scroll off the bottom edge.
   Cells must be individually sticky because a `<tr>` can't be sticky in
   the table rendering model. z-index tiers: middle day cells 20 (above
   body rows), left/right sticky corners 25 (above middle sticky), still
   below sticky thead (30). */
.fc-grid-scroll table[data-v-f0220ad5] {
  height: 100%;
}
.fc-grid-scroll tr.fc-spacer-row[data-v-f0220ad5] {
  height: 100%;
}
.fc-grid-scroll tr.fc-spacer-row > td[data-v-f0220ad5] {
  padding: 0;
  border: 0;
}
.fc-grid-scroll tr.fc-day-total-row > td[data-v-f0220ad5] {
  position: sticky;
  bottom: 0;
  z-index: 20;
}
.fc-grid-scroll tr.fc-day-total-row > td.sticky.left-0[data-v-f0220ad5]  { z-index: 25;
}
.fc-grid-scroll tr.fc-day-total-row > td.sticky.right-0[data-v-f0220ad5] { z-index: 25;
}
.fc-grid-scroll[data-v-f0220ad5]::-webkit-scrollbar          { width: 8px; height: 8px;
}
.fc-grid-scroll[data-v-f0220ad5]::-webkit-scrollbar-track    { background: transparent;
}
.fc-grid-scroll[data-v-f0220ad5]::-webkit-scrollbar-thumb    { background: rgba(100, 116, 139, 0.55); border-radius: 4px;
}
.fc-grid-scroll[data-v-f0220ad5]::-webkit-scrollbar-thumb:hover { background: rgba(71, 85, 105, 0.8);
}
.fc-grid-scroll[data-v-f0220ad5]::-webkit-scrollbar-corner   { background: transparent;
}

/* Sticky date header — pin the whole thead instead of each <th>, because
   applying position:sticky to every header cell triggers a Firefox bug
   where the cell renders but its inner content (day labels, day numbers)
   is hidden inside table layouts. Sticky thead with border-separate works
   in Chrome + Firefox. */
.fc-grid-scroll thead[data-v-f0220ad5] { position: sticky; top: 0; z-index: 30;
}
/* Header corners — also sticky-horizontally via existing `sticky left-0` /
   `sticky right-0` Tailwind classes. Bump z-index so the corner cells sit
   above body cells crossing them on either axis. */
.fc-grid-scroll thead th.left-0[data-v-f0220ad5],
.fc-grid-scroll thead th.right-0[data-v-f0220ad5] { z-index: 40;
}

/* Sticky GROUP HEADER rows (NP / Client+Acq / Resources) — pin just below the
   date header so the user always knows which group they're entering against.
   `top` value matches the rendered thead row height (≈40px for the 2-line
   day-of-week + day-number layout). */
/* `--fc-thead-h` is set in JS by measureGridWidth() from the real thead
   `offsetHeight`, so the group header pins exactly below the date header
   (no gap, no overlap) across browsers + content variations. Fallback 64 px
   covers the first paint before measurement runs. */
.fc-grid-scroll tr.fc-group-header > td[data-v-f0220ad5]        { position: sticky; top: var(--fc-thead-h, 64px); z-index: 25;
}
.fc-grid-scroll tr.fc-group-header > td.left-0[data-v-f0220ad5],
.fc-grid-scroll tr.fc-group-header > td.right-0[data-v-f0220ad5] { z-index: 35;
}

/* Firefox `position: sticky` + `border-collapse: collapse` bug — sticky
   cells render but hide their inner content. Switch to border-separate +
   border-spacing: 0 (visually identical) and recreate `<tr>` borders via
   cell-level rules below. */
.fc-grid-scroll table[data-v-f0220ad5] { border-collapse: separate; border-spacing: 0;
}
/* Row separator under every project / resource row (excluding group headers
   which set their own border below). */
.fc-grid-scroll tbody > tr > td[data-v-f0220ad5] { border-bottom: 1px solid #f1f5f9;
}
/* Group-header coloured borders. */
.fc-grid-scroll tbody > tr.fc-group-header > td[data-v-f0220ad5]       { border-bottom-color: #bbf7d0;
}
.fc-grid-scroll tbody > tr.fc-group-header-blue > td[data-v-f0220ad5]  { border-bottom-color: #bfdbfe;
}
.fc-grid-scroll tbody > tr.fc-group-header-amber > td[data-v-f0220ad5] { border-bottom-color: #fde68a;
}

/* Stage-locked matrix cells — amber diagonal hatch + tiny lock icon in the
   top-right corner. Mirrors MyForecastView's `.fc-cell-stage-locked` so both
   surfaces communicate the lock state identically. The input on top is
   transparent so the hatch shows through; the icon is amber-700 to match
   the pill + input border. pointer-events:none so clicks pass through to
   the underlying (disabled) input. */
.fc-cell-stage-locked[data-v-f0220ad5] {
  position: relative;
  background-image: repeating-linear-gradient(
    45deg,
    rgba(254, 243, 199, 0.6),
    rgba(254, 243, 199, 0.6) 4px,
    rgba(252, 211, 77, 0.18) 4px,
    rgba(252, 211, 77, 0.18) 5px
  );
}

/* Nearing-end cell tint — solid soft yellow on the runway between today
   and the project's `actualEndDate` when the project is within 30 days
   of ending. Distinct from the stage-lock hatch so a glance tells
   "warning runway" apart from "already locked". Mirrors
   `.fc-cell-nearing-end` in MyForecastView. */
.fc-cell-nearing-end[data-v-f0220ad5] {
  background-color: #fefce8;
}

/* Department multi-select — custom group header + polished child rows.
   Uses :deep because the picker teleports into PrimeVue's overlay
   (.p-multiselect-overlay), which sits outside this component's
   scoped-CSS boundary.

   Layout:
     ─────────────────────────────────
     [☐]  Client facing        (4)
     ─────────────────────────────────
       ☐  Regional Resources
       ☐  CS Pyramid FSE (Market)
       ...
     ─────────────────────────────────
     [☐]  Non-Client facing   (15)

   Children get 32px left padding + a subtle left border so they sit
   visibly UNDER the group header instead of blending with it. */


/* Reset PrimeVue's group-wrapper padding — our custom slot manages its own. */
.fc-dept-overlay .p-multiselect-option-group {
  padding: 0 !important;
  background: transparent !important;
}

/* Group header — bold, tinted, clearly clickable. */
.fc-dept-overlay .fc-dept-group-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  cursor: pointer;
  background: #f1f5fb;
  border-top: 1px solid #dfe4ee;
  border-bottom: 1px solid #dfe4ee;
  font-weight: 700;
  color: #0f172a;
  font-size: 12.5px;
  letter-spacing: 0.01em;
  line-height: 1.2;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: background 0.12s, border-color 0.12s;
}
.fc-dept-overlay .p-multiselect-option-group:first-child .fc-dept-group-header {
  border-top: 0;
}
.fc-dept-overlay .fc-dept-group-header:hover {
  background: #e7edf7;
}
.fc-dept-overlay .fc-dept-group-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border: 1.5px solid #94a3b8;
  border-radius: 4px;
  background: #fff;
  transition: background 0.12s, border-color 0.12s;
  flex-shrink: 0;
}
.fc-dept-overlay .fc-dept-group-check.is-checked,
.fc-dept-overlay .fc-dept-group-check.is-partial {
  background: #da2128;
  border-color: #da2128;
  color: #fff;
}
.fc-dept-overlay .fc-dept-group-dash {
  width: 8px;
  height: 2px;
  background: #fff;
  border-radius: 1px;
}
.fc-dept-overlay .fc-dept-group-label {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fc-dept-overlay .fc-dept-group-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 18px;
  padding: 0 8px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #475569;
  font-size: 10.5px;
  font-weight: 700;
  flex-shrink: 0;
}

/* Child option rows — indented so they read as children of the group
   above. Left padding lands the child checkbox visually under the group
   label. Overrides the `padding: 11px 14px !important` from the shared
   BaseMultiSelect global CSS in @dssplus/bizplus-fe-ui. */
.fc-dept-overlay .p-multiselect-option {
  padding: 8px 14px 8px 40px !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
  border-left: 3px solid transparent;
  gap: 10px !important;
}

/* Overlay dimensions — explicit min/max stops PrimeVue's JS-computed
   panel height from racing on first open and collapsing to a few
   pixels tall (the "sometimes the UI collapses" bug — panel becomes so
   short the matrix content underneath bleeds visually). Baseline used
   by every filter dropdown on the page:
     • min-width 280px  — matches the trigger's `min-w-[220px]` plus
                          margin for the search input + group check.
     • min-height 200px — at least "Client facing" header + a couple
                          rows always visible on open.
     • max-height 420px — bounded so long department lists don't push
                          the panel below the viewport bottom.
   `.p-multiselect-items-wrapper` gets its own scroll cap since PrimeVue
   sets that node's height inline via JS; hard-capping keeps the
   scrollbar predictable regardless of when the JS runs. */
.fc-dept-overlay {
  min-width:  280px;
  min-height: 200px;
  max-height: 420px;
}
.fc-dept-overlay .p-multiselect-items-wrapper {
  max-height: 340px !important;
  overflow-y: auto !important;
}
.fc-dept-overlay .p-multiselect-option:hover {
  border-left-color: #da2128;
}
.fc-dept-overlay .p-multiselect-option.p-selected {
  border-left-color: #da2128;
  background-color: #fff3f3 !important;
}

/* Swap BaseAlert's hardcoded bell-notification header icon for a trash icon
   while the Remove confirmation is open — a destructive action shouldn't read
   as a "notification". Keyed off body[data-fc-remove-dialog], set/unset by the
   removeResDialogOpen watcher (+ onBeforeUnmount cleanup) so it never bleeds
   into other BaseAlert usages.

   MyForecastView.vue defines an identical rule for its own remove dialog.
   Duplicated here deliberately rather than shared: the rules are byte-identical
   and idempotent, and this keeps ForecastView self-sufficient instead of
   depending on MyForecastView's stylesheet also being in the bundle. */
body[data-fc-remove-dialog] .bp-alert-header-icon { width: 18px; height: 18px;
}
body[data-fc-remove-dialog] .bp-alert-header-icon > svg { display: none;
}
body[data-fc-remove-dialog] .bp-alert-header-icon::after {
  content: '';
  display: block;
  width: 18px;
  height: 18px;
  background-color: #fff;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='3 6 5 6 21 6'/><path d='M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/><line x1='10' y1='11' x2='10' y2='17'/><line x1='14' y1='11' x2='14' y2='17'/></svg>");
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='3 6 5 6 21 6'/><path d='M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/><line x1='10' y1='11' x2='10' y2='17'/><line x1='14' y1='11' x2='14' y2='17'/></svg>");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
}


/* Matrix scroll container — both axes scroll natively INSIDE the matrix card
   (the parent has `clip-path: inset(0 round 1rem)` so the bars stay clipped to
   the rounded shape). Custom overlays were dropped because they were fragile
   against sticky thead/footer + the rounded card and produced stray lines
   against the navy DAY TOTAL band. */
.matrix-scroll[data-v-dc3fcbfa] {
  overflow-x: auto;
  overflow-y: auto;
  /* No min-height — the grid sizes to its content. Earlier we used
     `min-height: 444px` to force ~10 rows of vertical space, but users with
     just 2–3 projects saw an empty band below the Day Total row before the
     horizontal scrollbar. max-height still caps tall lists so long matrices
     scroll inside the card.
     The 100px subtractor (was 200px) reserves just enough vertical room for
     the matrix card's surrounding context — page padding + sticky in-card
     header rows. The previous 200px was conservative; ~100px more matrix
     height means ~3 additional rows visible by default in both Week and
     Month views, which is what users with many projects expect. The page
     itself still scrolls if total content exceeds the viewport. */
  max-height: calc(100vh - 100px);
  /* Firefox scrollbar — `thin` is the same width as Chrome's 8 px webkit
     scrollbar, but Firefox doesn't support hover styling on `scrollbar-color`
     so we set the thumb darker (slate-600 @ 80%) and the track a soft slate
     so the bar reads as clearly as Chrome's webkit one against the white
     matrix card. */
  scrollbar-width: thin;
  scrollbar-color: rgba(71, 85, 105, 0.8) #e2e8f0;
}
/* Firefox has a long-standing bug where `position: sticky` cells inside a
   `border-collapse: collapse` table render the cell but hide their inner
   content (z-index/stacking-context corruption inside the table). Switching
   to `border-collapse: separate; border-spacing: 0` sidesteps it without
   visually changing anything — except that `<tr>` borders stop rendering in
   separate mode, so the row separators below recreate them at the cell level. */
.matrix-scroll table[data-v-dc3fcbfa] { border-collapse: separate; border-spacing: 0;
}
/* Row separator: 1 px slate-100 line under every project/activity row.
   Excludes the Day Total row (which paints its own top border) and the very
   last row (no trailing line). The group-header rows below override with
   their own coloured border. */
.matrix-scroll tbody > tr:not(.fc-day-total-row) > td[data-v-dc3fcbfa] {
  border-bottom: 1px solid #f1f5f9; /* slate-100 */
}
/* Group-header row borders: amber for TIME OFF, green for NP, blue for
   Client + Acq. Match the tr-level `border-b border-{amber|green|blue}-200`
   that border-collapse used to render. */
.matrix-scroll tbody > tr.fc-group-header > td[data-v-dc3fcbfa]        { border-bottom-color: #c7d2fe;
}
.matrix-scroll tbody > tr.fc-group-header-amber > td[data-v-dc3fcbfa]  { border-bottom-color: #fde68a;
}
.matrix-scroll tbody > tr.fc-group-header-green > td[data-v-dc3fcbfa]  { border-bottom-color: #bbf7d0;
}
.matrix-scroll tbody > tr.fc-group-header-blue > td[data-v-dc3fcbfa]   { border-bottom-color: #bfdbfe;
}
/* While the project search is active, drop the 10-row min-height so the grid
   shrinks to fit just the matched rows + sticky headers + Day Total. The
   max-height still caps tall result sets. */
.matrix-scroll--auto[data-v-dc3fcbfa] { min-height: 0;
}
/* Week view used to set `max-height: none` so the grid grew to content height
   (no internal scrollbar), but users expected the same Week/Month behaviour —
   sticky Day Total pinned to the bottom of a fixed-height card with a vertical
   scrollbar when the row count overflows. The base `.matrix-scroll` rules now
   apply uniformly in both modes. */
/* WebKit (Chrome/Edge/Safari) — :deep() so the pseudo-element rules pierce
   Vue's scoped-CSS attribute selector and actually style the native bar. */
[data-v-dc3fcbfa] .matrix-scroll::-webkit-scrollbar          { width: 8px; height: 8px;
}
[data-v-dc3fcbfa] .matrix-scroll::-webkit-scrollbar-track    { background: transparent;
}
[data-v-dc3fcbfa] .matrix-scroll::-webkit-scrollbar-thumb    { background: rgba(100, 116, 139, 0.55); border-radius: 4px;
}
[data-v-dc3fcbfa] .matrix-scroll::-webkit-scrollbar-thumb:hover { background: rgba(71, 85, 105, 0.8);
}
[data-v-dc3fcbfa] .matrix-scroll::-webkit-scrollbar-corner   { background: transparent;
}

/* Sticky date header — pin the date row to the top of `.matrix-scroll` as
   the user scrolls vertically. We sticky the WHOLE thead instead of each
   <th> individually because applying position:sticky to every header cell
   triggers a Firefox bug where the cell box renders but its inner content
   (day labels, day numbers) is hidden inside `border-collapse` tables —
   even after switching to border-separate the issue persisted. Modern Chrome
   + Firefox both support sticky <thead> when border-collapse is `separate`
   (now set on .matrix-scroll table), so this is the simplest solution that
   works everywhere. */
.matrix-scroll thead[data-v-dc3fcbfa] { position: sticky; top: 0; z-index: 30;
}
/* Header corners (sticky-left + sticky-top simultaneously) need higher
   z-index so they sit above sticky body cells crossing them. The sticky-left
   and sticky-right Tailwind classes already pin the project + total <th>s
   horizontally — we only bump z-index here. */
.matrix-scroll thead th.left-0[data-v-dc3fcbfa],
.matrix-scroll thead th.right-0[data-v-dc3fcbfa] { z-index: 40;
}

/* Sticky GROUP HEADER rows (Time Off / Non-Project / Client+Acq) — pin
   EXACTLY below the date header. `--fc-thead-h` is set in JS by
   measureStickyWidths() from the real thead `offsetHeight` so we get a
   per-browser/per-content correct value (past-day lock icons + cross-browser
   line-height drift made a fixed pixel value brittle — too low → overlap on
   the day numbers, too high → visible gap). Fallback 64 px covers the first
   paint before measurement runs. */
.matrix-scroll tr.fc-group-header > td[data-v-dc3fcbfa]        { position: sticky; top: var(--fc-thead-h, 64px); z-index: 25;
}
.matrix-scroll tr.fc-group-header > td.left-0[data-v-dc3fcbfa],
.matrix-scroll tr.fc-group-header > td.right-0[data-v-dc3fcbfa] { z-index: 35;
}

/* Sticky DAY TOTAL row — pins to the BOTTOM of `.matrix-scroll` so the
   summary stays visible while entering hours on any project row above.
   `box-shadow: 0 -1px 0 #1e2d45` paints a 1px navy line along the TOP edge
   of every cell. Without it, the slate-100 `border-b` from the project row
   above bleeds through as a bright horizontal line against the navy band. */
.matrix-scroll tr.fc-day-total-row > td[data-v-dc3fcbfa] {
  position: sticky;
  bottom: 0;
  z-index: 28;
  box-shadow: 0 -1px 0 0 #1e2d45;
}
.matrix-scroll tr.fc-day-total-row > td.left-0[data-v-dc3fcbfa],
.matrix-scroll tr.fc-day-total-row > td.right-0[data-v-dc3fcbfa] { z-index: 38;
}

/* Stage-locked cell — applied to day cells whose project has moved out of
   `InProcess` in F&O AND whose date is beyond the current calendar month.
   Diagonal amber hatch reads as "disabled with reason" without using a
   bright error background — the muted treatment signals "not your fault,
   the project closed upstream" rather than "your input is invalid". The
   input element inside is :disabled (read-only) and styled with amber
   borders to match. See `isStageFutureLocked` in script + the cell's class
   binding. The backend `projectStageService.assertSavable` enforces the
   same rule on the write path. */
.fc-cell-stage-locked[data-v-dc3fcbfa] {
  position: relative;
  background-image: repeating-linear-gradient(
    45deg,
    rgba(254, 243, 199, 0.6),
    rgba(254, 243, 199, 0.6) 4px,
    rgba(252, 211, 77, 0.18) 4px,
    rgba(252, 211, 77, 0.18) 5px
  );
}

/* Nearing-end cell tint — solid soft yellow (yellow-50) covering the
   runway between today and the project's `actualEndDate`. Distinct from
   the stage-lock hatch so a glance tells "warning runway" apart from
   "already locked". The row pill ("NEARING END {date}") carries the
   text-level context. */
.fc-cell-nearing-end[data-v-dc3fcbfa] {
  background-color: #fefce8;
}


body[data-fc-remove-dialog] .bp-alert-header-icon { width: 18px; height: 18px;
}
body[data-fc-remove-dialog] .bp-alert-header-icon > svg { display: none;
}
body[data-fc-remove-dialog] .bp-alert-header-icon::after {
  content: '';
  display: block;
  width: 18px;
  height: 18px;
  background-color: #fff;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='3 6 5 6 21 6'/><path d='M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/><line x1='10' y1='11' x2='10' y2='17'/><line x1='14' y1='11' x2='14' y2='17'/></svg>");
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='3 6 5 6 21 6'/><path d='M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/><line x1='10' y1='11' x2='10' y2='17'/><line x1='14' y1='11' x2='14' y2='17'/></svg>");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
}
*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
.container {
  width: 100%;
}
@media (min-width: 640px) {

  .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {

  .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {

  .container {
    max-width: 1024px;
  }
}
@media (min-width: 1280px) {

  .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {

  .container {
    max-width: 1536px;
  }
}
:where([data-mfe="forecastApp"]) .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
:where([data-mfe="forecastApp"]) .pointer-events-none {
  pointer-events: none;
}
:where([data-mfe="forecastApp"]) .visible {
  visibility: visible;
}
:where([data-mfe="forecastApp"]) .invisible {
  visibility: hidden;
}
:where([data-mfe="forecastApp"]) .collapse {
  visibility: collapse;
}
:where([data-mfe="forecastApp"]) .static {
  position: static;
}
:where([data-mfe="forecastApp"]) .fixed {
  position: fixed;
}
:where([data-mfe="forecastApp"]) .absolute {
  position: absolute;
}
:where([data-mfe="forecastApp"]) .relative {
  position: relative;
}
:where([data-mfe="forecastApp"]) .sticky {
  position: sticky;
}
:where([data-mfe="forecastApp"]) .inset-0 {
  inset: 0px;
}
:where([data-mfe="forecastApp"]) .inset-x-0 {
  left: 0px;
  right: 0px;
}
:where([data-mfe="forecastApp"]) .bottom-0 {
  bottom: 0px;
}
:where([data-mfe="forecastApp"]) .bottom-6 {
  bottom: 1.5rem;
}
:where([data-mfe="forecastApp"]) .left-0 {
  left: 0px;
}
:where([data-mfe="forecastApp"]) .left-0\.5 {
  left: 0.125rem;
}
:where([data-mfe="forecastApp"]) .left-1\.5 {
  left: 0.375rem;
}
:where([data-mfe="forecastApp"]) .left-1\/2 {
  left: 50%;
}
:where([data-mfe="forecastApp"]) .left-2 {
  left: 0.5rem;
}
:where([data-mfe="forecastApp"]) .left-2\.5 {
  left: 0.625rem;
}
:where([data-mfe="forecastApp"]) .left-3 {
  left: 0.75rem;
}
:where([data-mfe="forecastApp"]) .left-3\.5 {
  left: 0.875rem;
}
:where([data-mfe="forecastApp"]) .left-4 {
  left: 1rem;
}
:where([data-mfe="forecastApp"]) .left-\[18px\] {
  left: 18px;
}
:where([data-mfe="forecastApp"]) .left-\[28px\] {
  left: 28px;
}
:where([data-mfe="forecastApp"]) .left-\[34px\] {
  left: 34px;
}
:where([data-mfe="forecastApp"]) .right-0 {
  right: 0px;
}
:where([data-mfe="forecastApp"]) .right-0\.5 {
  right: 0.125rem;
}
:where([data-mfe="forecastApp"]) .right-1\.5 {
  right: 0.375rem;
}
:where([data-mfe="forecastApp"]) .right-2 {
  right: 0.5rem;
}
:where([data-mfe="forecastApp"]) .right-4 {
  right: 1rem;
}
:where([data-mfe="forecastApp"]) .right-6 {
  right: 1.5rem;
}
:where([data-mfe="forecastApp"]) .top-0 {
  top: 0px;
}
:where([data-mfe="forecastApp"]) .top-0\.5 {
  top: 0.125rem;
}
:where([data-mfe="forecastApp"]) .top-1 {
  top: 0.25rem;
}
:where([data-mfe="forecastApp"]) .top-1\/2 {
  top: 50%;
}
:where([data-mfe="forecastApp"]) .top-2 {
  top: 0.5rem;
}
:where([data-mfe="forecastApp"]) .top-20 {
  top: 5rem;
}
:where([data-mfe="forecastApp"]) .top-4 {
  top: 1rem;
}
:where([data-mfe="forecastApp"]) .top-6 {
  top: 1.5rem;
}
:where([data-mfe="forecastApp"]) .top-9 {
  top: 2.25rem;
}
:where([data-mfe="forecastApp"]) .top-\[60px\] {
  top: 60px;
}
:where([data-mfe="forecastApp"]) .top-\[86px\] {
  top: 86px;
}
:where([data-mfe="forecastApp"]) .top-full {
  top: 100%;
}
:where([data-mfe="forecastApp"]) .-z-10 {
  z-index: -10;
}
:where([data-mfe="forecastApp"]) .z-10 {
  z-index: 10;
}
:where([data-mfe="forecastApp"]) .z-20 {
  z-index: 20;
}
:where([data-mfe="forecastApp"]) .z-30 {
  z-index: 30;
}
:where([data-mfe="forecastApp"]) .z-40 {
  z-index: 40;
}
:where([data-mfe="forecastApp"]) .z-50 {
  z-index: 50;
}
:where([data-mfe="forecastApp"]) .z-\[10000\] {
  z-index: 10000;
}
:where([data-mfe="forecastApp"]) .z-\[10001\] {
  z-index: 10001;
}
:where([data-mfe="forecastApp"]) .z-\[1000\] {
  z-index: 1000;
}
:where([data-mfe="forecastApp"]) .z-\[15\] {
  z-index: 15;
}
:where([data-mfe="forecastApp"]) .z-\[1\] {
  z-index: 1;
}
:where([data-mfe="forecastApp"]) .z-\[2\] {
  z-index: 2;
}
:where([data-mfe="forecastApp"]) .z-\[4\] {
  z-index: 4;
}
:where([data-mfe="forecastApp"]) .z-\[60\] {
  z-index: 60;
}
:where([data-mfe="forecastApp"]) .z-\[9997\] {
  z-index: 9997;
}
:where([data-mfe="forecastApp"]) .z-\[9998\] {
  z-index: 9998;
}
:where([data-mfe="forecastApp"]) .z-\[9999\] {
  z-index: 9999;
}
:where([data-mfe="forecastApp"]) .col-span-2 {
  grid-column: span 2 / span 2;
}
:where([data-mfe="forecastApp"]) .-m-1 {
  margin: -0.25rem;
}
:where([data-mfe="forecastApp"]) .m-2 {
  margin: 0.5rem;
}
:where([data-mfe="forecastApp"]) .m-3 {
  margin: 0.75rem;
}
:where([data-mfe="forecastApp"]) .m-4 {
  margin: 1rem;
}
:where([data-mfe="forecastApp"]) .m-5 {
  margin: 1.25rem;
}
:where([data-mfe="forecastApp"]) .-mx-1 {
  margin-left: -0.25rem;
  margin-right: -0.25rem;
}
:where([data-mfe="forecastApp"]) .-mx-1\.5 {
  margin-left: -0.375rem;
  margin-right: -0.375rem;
}
:where([data-mfe="forecastApp"]) .-mx-2 {
  margin-left: -0.5rem;
  margin-right: -0.5rem;
}
:where([data-mfe="forecastApp"]) .mx-0\.5 {
  margin-left: 0.125rem;
  margin-right: 0.125rem;
}
:where([data-mfe="forecastApp"]) .mx-1 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
:where([data-mfe="forecastApp"]) .mx-4 {
  margin-left: 1rem;
  margin-right: 1rem;
}
:where([data-mfe="forecastApp"]) .mx-5 {
  margin-left: 1.25rem;
  margin-right: 1.25rem;
}
:where([data-mfe="forecastApp"]) .mx-auto {
  margin-left: auto;
  margin-right: auto;
}
:where([data-mfe="forecastApp"]) .my-4 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
:where([data-mfe="forecastApp"]) .-mb-px {
  margin-bottom: -1px;
}
:where([data-mfe="forecastApp"]) .-mr-1 {
  margin-right: -0.25rem;
}
:where([data-mfe="forecastApp"]) .mb-0\.5 {
  margin-bottom: 0.125rem;
}
:where([data-mfe="forecastApp"]) .mb-1 {
  margin-bottom: 0.25rem;
}
:where([data-mfe="forecastApp"]) .mb-1\.5 {
  margin-bottom: 0.375rem;
}
:where([data-mfe="forecastApp"]) .mb-2 {
  margin-bottom: 0.5rem;
}
:where([data-mfe="forecastApp"]) .mb-3 {
  margin-bottom: 0.75rem;
}
:where([data-mfe="forecastApp"]) .mb-4 {
  margin-bottom: 1rem;
}
:where([data-mfe="forecastApp"]) .mb-5 {
  margin-bottom: 1.25rem;
}
:where([data-mfe="forecastApp"]) .mb-6 {
  margin-bottom: 1.5rem;
}
:where([data-mfe="forecastApp"]) .ml-0\.5 {
  margin-left: 0.125rem;
}
:where([data-mfe="forecastApp"]) .ml-1 {
  margin-left: 0.25rem;
}
:where([data-mfe="forecastApp"]) .ml-1\.5 {
  margin-left: 0.375rem;
}
:where([data-mfe="forecastApp"]) .ml-2 {
  margin-left: 0.5rem;
}
:where([data-mfe="forecastApp"]) .ml-auto {
  margin-left: auto;
}
:where([data-mfe="forecastApp"]) .mr-1 {
  margin-right: 0.25rem;
}
:where([data-mfe="forecastApp"]) .mr-2 {
  margin-right: 0.5rem;
}
:where([data-mfe="forecastApp"]) .mt-0\.5 {
  margin-top: 0.125rem;
}
:where([data-mfe="forecastApp"]) .mt-1 {
  margin-top: 0.25rem;
}
:where([data-mfe="forecastApp"]) .mt-1\.5 {
  margin-top: 0.375rem;
}
:where([data-mfe="forecastApp"]) .mt-2 {
  margin-top: 0.5rem;
}
:where([data-mfe="forecastApp"]) .mt-2\.5 {
  margin-top: 0.625rem;
}
:where([data-mfe="forecastApp"]) .mt-3 {
  margin-top: 0.75rem;
}
:where([data-mfe="forecastApp"]) .mt-4 {
  margin-top: 1rem;
}
:where([data-mfe="forecastApp"]) .mt-px {
  margin-top: 1px;
}
:where([data-mfe="forecastApp"]) .line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
:where([data-mfe="forecastApp"]) .block {
  display: block;
}
:where([data-mfe="forecastApp"]) .inline-block {
  display: inline-block;
}
:where([data-mfe="forecastApp"]) .inline {
  display: inline;
}
:where([data-mfe="forecastApp"]) .flex {
  display: flex;
}
:where([data-mfe="forecastApp"]) .inline-flex {
  display: inline-flex;
}
:where([data-mfe="forecastApp"]) .table {
  display: table;
}
:where([data-mfe="forecastApp"]) .grid {
  display: grid;
}
:where([data-mfe="forecastApp"]) .contents {
  display: contents;
}
:where([data-mfe="forecastApp"]) .hidden {
  display: none;
}
:where([data-mfe="forecastApp"]) .h-1 {
  height: 0.25rem;
}
:where([data-mfe="forecastApp"]) .h-1\.5 {
  height: 0.375rem;
}
:where([data-mfe="forecastApp"]) .h-10 {
  height: 2.5rem;
}
:where([data-mfe="forecastApp"]) .h-12 {
  height: 3rem;
}
:where([data-mfe="forecastApp"]) .h-14 {
  height: 3.5rem;
}
:where([data-mfe="forecastApp"]) .h-2 {
  height: 0.5rem;
}
:where([data-mfe="forecastApp"]) .h-2\.5 {
  height: 0.625rem;
}
:where([data-mfe="forecastApp"]) .h-3 {
  height: 0.75rem;
}
:where([data-mfe="forecastApp"]) .h-3\.5 {
  height: 0.875rem;
}
:where([data-mfe="forecastApp"]) .h-36 {
  height: 9rem;
}
:where([data-mfe="forecastApp"]) .h-4 {
  height: 1rem;
}
:where([data-mfe="forecastApp"]) .h-48 {
  height: 12rem;
}
:where([data-mfe="forecastApp"]) .h-5 {
  height: 1.25rem;
}
:where([data-mfe="forecastApp"]) .h-6 {
  height: 1.5rem;
}
:where([data-mfe="forecastApp"]) .h-7 {
  height: 1.75rem;
}
:where([data-mfe="forecastApp"]) .h-8 {
  height: 2rem;
}
:where([data-mfe="forecastApp"]) .h-9 {
  height: 2.25rem;
}
:where([data-mfe="forecastApp"]) .h-\[100px\] {
  height: 100px;
}
:where([data-mfe="forecastApp"]) .h-\[15px\] {
  height: 15px;
}
:where([data-mfe="forecastApp"]) .h-\[18px\] {
  height: 18px;
}
:where([data-mfe="forecastApp"]) .h-\[20px\] {
  height: 20px;
}
:where([data-mfe="forecastApp"]) .h-\[30px\] {
  height: 30px;
}
:where([data-mfe="forecastApp"]) .h-\[34px\] {
  height: 34px;
}
:where([data-mfe="forecastApp"]) .h-\[360px\] {
  height: 360px;
}
:where([data-mfe="forecastApp"]) .h-\[36px\] {
  height: 36px;
}
:where([data-mfe="forecastApp"]) .h-\[38px\] {
  height: 38px;
}
:where([data-mfe="forecastApp"]) .h-\[3px\] {
  height: 3px;
}
:where([data-mfe="forecastApp"]) .h-\[calc\(100vh-60px\)\] {
  height: calc(100vh - 60px);
}
:where([data-mfe="forecastApp"]) .h-full {
  height: 100%;
}
:where([data-mfe="forecastApp"]) .max-h-48 {
  max-height: 12rem;
}
:where([data-mfe="forecastApp"]) .max-h-56 {
  max-height: 14rem;
}
:where([data-mfe="forecastApp"]) .max-h-64 {
  max-height: 16rem;
}
:where([data-mfe="forecastApp"]) .max-h-72 {
  max-height: 18rem;
}
:where([data-mfe="forecastApp"]) .max-h-\[60vh\] {
  max-height: 60vh;
}
:where([data-mfe="forecastApp"]) .max-h-\[80vh\] {
  max-height: 80vh;
}
:where([data-mfe="forecastApp"]) .max-h-\[85vh\] {
  max-height: 85vh;
}
:where([data-mfe="forecastApp"]) .max-h-\[88vh\] {
  max-height: 88vh;
}
:where([data-mfe="forecastApp"]) .max-h-\[90vh\] {
  max-height: 90vh;
}
:where([data-mfe="forecastApp"]) .max-h-\[92vh\] {
  max-height: 92vh;
}
:where([data-mfe="forecastApp"]) .max-h-full {
  max-height: 100%;
}
:where([data-mfe="forecastApp"]) .min-h-0 {
  min-height: 0px;
}
:where([data-mfe="forecastApp"]) .min-h-\[480px\] {
  min-height: 480px;
}
:where([data-mfe="forecastApp"]) .min-h-\[560px\] {
  min-height: 560px;
}
:where([data-mfe="forecastApp"]) .min-h-\[64px\] {
  min-height: 64px;
}
:where([data-mfe="forecastApp"]) .min-h-screen {
  min-height: 100vh;
}
:where([data-mfe="forecastApp"]) .w-0\.5 {
  width: 0.125rem;
}
:where([data-mfe="forecastApp"]) .w-1 {
  width: 0.25rem;
}
:where([data-mfe="forecastApp"]) .w-1\.5 {
  width: 0.375rem;
}
:where([data-mfe="forecastApp"]) .w-1\/3 {
  width: 33.333333%;
}
:where([data-mfe="forecastApp"]) .w-10 {
  width: 2.5rem;
}
:where([data-mfe="forecastApp"]) .w-12 {
  width: 3rem;
}
:where([data-mfe="forecastApp"]) .w-14 {
  width: 3.5rem;
}
:where([data-mfe="forecastApp"]) .w-2 {
  width: 0.5rem;
}
:where([data-mfe="forecastApp"]) .w-2\.5 {
  width: 0.625rem;
}
:where([data-mfe="forecastApp"]) .w-20 {
  width: 5rem;
}
:where([data-mfe="forecastApp"]) .w-24 {
  width: 6rem;
}
:where([data-mfe="forecastApp"]) .w-28 {
  width: 7rem;
}
:where([data-mfe="forecastApp"]) .w-3 {
  width: 0.75rem;
}
:where([data-mfe="forecastApp"]) .w-3\.5 {
  width: 0.875rem;
}
:where([data-mfe="forecastApp"]) .w-32 {
  width: 8rem;
}
:where([data-mfe="forecastApp"]) .w-4 {
  width: 1rem;
}
:where([data-mfe="forecastApp"]) .w-40 {
  width: 10rem;
}
:where([data-mfe="forecastApp"]) .w-44 {
  width: 11rem;
}
:where([data-mfe="forecastApp"]) .w-5 {
  width: 1.25rem;
}
:where([data-mfe="forecastApp"]) .w-56 {
  width: 14rem;
}
:where([data-mfe="forecastApp"]) .w-6 {
  width: 1.5rem;
}
:where([data-mfe="forecastApp"]) .w-64 {
  width: 16rem;
}
:where([data-mfe="forecastApp"]) .w-7 {
  width: 1.75rem;
}
:where([data-mfe="forecastApp"]) .w-72 {
  width: 18rem;
}
:where([data-mfe="forecastApp"]) .w-8 {
  width: 2rem;
}
:where([data-mfe="forecastApp"]) .w-80 {
  width: 20rem;
}
:where([data-mfe="forecastApp"]) .w-9 {
  width: 2.25rem;
}
:where([data-mfe="forecastApp"]) .w-96 {
  width: 24rem;
}
:where([data-mfe="forecastApp"]) .w-\[100px\] {
  width: 100px;
}
:where([data-mfe="forecastApp"]) .w-\[140px\] {
  width: 140px;
}
:where([data-mfe="forecastApp"]) .w-\[15px\] {
  width: 15px;
}
:where([data-mfe="forecastApp"]) .w-\[24px\] {
  width: 24px;
}
:where([data-mfe="forecastApp"]) .w-\[260px\] {
  width: 260px;
}
:where([data-mfe="forecastApp"]) .w-\[26px\] {
  width: 26px;
}
:where([data-mfe="forecastApp"]) .w-\[54px\] {
  width: 54px;
}
:where([data-mfe="forecastApp"]) .w-\[60px\] {
  width: 60px;
}
:where([data-mfe="forecastApp"]) .w-\[72px\] {
  width: 72px;
}
:where([data-mfe="forecastApp"]) .w-\[74px\] {
  width: 74px;
}
:where([data-mfe="forecastApp"]) .w-full {
  width: 100%;
}
:where([data-mfe="forecastApp"]) .w-max {
  width: -moz-max-content;
  width: max-content;
}
:where([data-mfe="forecastApp"]) .w-px {
  width: 1px;
}
:where([data-mfe="forecastApp"]) .min-w-0 {
  min-width: 0px;
}
:where([data-mfe="forecastApp"]) .min-w-\[120px\] {
  min-width: 120px;
}
:where([data-mfe="forecastApp"]) .min-w-\[130px\] {
  min-width: 130px;
}
:where([data-mfe="forecastApp"]) .min-w-\[140px\] {
  min-width: 140px;
}
:where([data-mfe="forecastApp"]) .min-w-\[150px\] {
  min-width: 150px;
}
:where([data-mfe="forecastApp"]) .min-w-\[160px\] {
  min-width: 160px;
}
:where([data-mfe="forecastApp"]) .min-w-\[170px\] {
  min-width: 170px;
}
:where([data-mfe="forecastApp"]) .min-w-\[180px\] {
  min-width: 180px;
}
:where([data-mfe="forecastApp"]) .min-w-\[18px\] {
  min-width: 18px;
}
:where([data-mfe="forecastApp"]) .min-w-\[200px\] {
  min-width: 200px;
}
:where([data-mfe="forecastApp"]) .min-w-\[20px\] {
  min-width: 20px;
}
:where([data-mfe="forecastApp"]) .min-w-\[220px\] {
  min-width: 220px;
}
:where([data-mfe="forecastApp"]) .min-w-\[240px\] {
  min-width: 240px;
}
:where([data-mfe="forecastApp"]) .min-w-\[26px\] {
  min-width: 26px;
}
:where([data-mfe="forecastApp"]) .min-w-\[280px\] {
  min-width: 280px;
}
:where([data-mfe="forecastApp"]) .min-w-\[480px\] {
  min-width: 480px;
}
:where([data-mfe="forecastApp"]) .min-w-\[54px\] {
  min-width: 54px;
}
:where([data-mfe="forecastApp"]) .min-w-\[60px\] {
  min-width: 60px;
}
:where([data-mfe="forecastApp"]) .min-w-\[64px\] {
  min-width: 64px;
}
:where([data-mfe="forecastApp"]) .min-w-\[72px\] {
  min-width: 72px;
}
:where([data-mfe="forecastApp"]) .min-w-\[74px\] {
  min-width: 74px;
}
:where([data-mfe="forecastApp"]) .min-w-\[80px\] {
  min-width: 80px;
}
:where([data-mfe="forecastApp"]) .min-w-\[96px\] {
  min-width: 96px;
}
:where([data-mfe="forecastApp"]) .min-w-max {
  min-width: -moz-max-content;
  min-width: max-content;
}
:where([data-mfe="forecastApp"]) .max-w-2xl {
  max-width: 42rem;
}
:where([data-mfe="forecastApp"]) .max-w-3xl {
  max-width: 48rem;
}
:where([data-mfe="forecastApp"]) .max-w-6xl {
  max-width: 72rem;
}
:where([data-mfe="forecastApp"]) .max-w-\[140px\] {
  max-width: 140px;
}
:where([data-mfe="forecastApp"]) .max-w-\[180px\] {
  max-width: 180px;
}
:where([data-mfe="forecastApp"]) .max-w-\[200px\] {
  max-width: 200px;
}
:where([data-mfe="forecastApp"]) .max-w-\[220px\] {
  max-width: 220px;
}
:where([data-mfe="forecastApp"]) .max-w-\[240px\] {
  max-width: 240px;
}
:where([data-mfe="forecastApp"]) .max-w-\[280px\] {
  max-width: 280px;
}
:where([data-mfe="forecastApp"]) .max-w-\[340px\] {
  max-width: 340px;
}
:where([data-mfe="forecastApp"]) .max-w-\[420px\] {
  max-width: 420px;
}
:where([data-mfe="forecastApp"]) .max-w-\[600px\] {
  max-width: 600px;
}
:where([data-mfe="forecastApp"]) .max-w-\[calc\(100vw-2rem\)\] {
  max-width: calc(100vw - 2rem);
}
:where([data-mfe="forecastApp"]) .max-w-full {
  max-width: 100%;
}
:where([data-mfe="forecastApp"]) .max-w-lg {
  max-width: 32rem;
}
:where([data-mfe="forecastApp"]) .max-w-md {
  max-width: 28rem;
}
:where([data-mfe="forecastApp"]) .max-w-sm {
  max-width: 24rem;
}
:where([data-mfe="forecastApp"]) .max-w-xl {
  max-width: 36rem;
}
:where([data-mfe="forecastApp"]) .flex-1 {
  flex: 1 1 0%;
}
:where([data-mfe="forecastApp"]) .flex-shrink {
  flex-shrink: 1;
}
:where([data-mfe="forecastApp"]) .flex-shrink-0 {
  flex-shrink: 0;
}
:where([data-mfe="forecastApp"]) .shrink {
  flex-shrink: 1;
}
:where([data-mfe="forecastApp"]) .shrink-0 {
  flex-shrink: 0;
}
:where([data-mfe="forecastApp"]) .grow {
  flex-grow: 1;
}
:where([data-mfe="forecastApp"]) .border-collapse {
  border-collapse: collapse;
}
:where([data-mfe="forecastApp"]) .border-separate {
  border-collapse: separate;
}
:where([data-mfe="forecastApp"]) .-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
:where([data-mfe="forecastApp"]) .-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
:where([data-mfe="forecastApp"]) .rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
:where([data-mfe="forecastApp"]) .rotate-90 {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
:where([data-mfe="forecastApp"]) .transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes pulse {

  50% {
    opacity: .5;
  }
}
:where([data-mfe="forecastApp"]) .animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin {

  to {
    transform: rotate(360deg);
  }
}
:where([data-mfe="forecastApp"]) .animate-spin {
  animation: spin 1s linear infinite;
}
:where([data-mfe="forecastApp"]) .cursor-default {
  cursor: default;
}
:where([data-mfe="forecastApp"]) .cursor-grab {
  cursor: grab;
}
:where([data-mfe="forecastApp"]) .cursor-help {
  cursor: help;
}
:where([data-mfe="forecastApp"]) .cursor-move {
  cursor: move;
}
:where([data-mfe="forecastApp"]) .cursor-not-allowed {
  cursor: not-allowed;
}
:where([data-mfe="forecastApp"]) .cursor-pointer {
  cursor: pointer;
}
:where([data-mfe="forecastApp"]) .touch-none {
  touch-action: none;
}
:where([data-mfe="forecastApp"]) .select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
:where([data-mfe="forecastApp"]) .select-all {
  -webkit-user-select: all;
     -moz-user-select: all;
          user-select: all;
}
:where([data-mfe="forecastApp"]) .resize-none {
  resize: none;
}
:where([data-mfe="forecastApp"]) .resize-y {
  resize: vertical;
}
:where([data-mfe="forecastApp"]) .resize {
  resize: both;
}
:where([data-mfe="forecastApp"]) .list-disc {
  list-style-type: disc;
}
:where([data-mfe="forecastApp"]) .grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
:where([data-mfe="forecastApp"]) .grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
:where([data-mfe="forecastApp"]) .grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
:where([data-mfe="forecastApp"]) .grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
:where([data-mfe="forecastApp"]) .grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
:where([data-mfe="forecastApp"]) .flex-row {
  flex-direction: row;
}
:where([data-mfe="forecastApp"]) .flex-col {
  flex-direction: column;
}
:where([data-mfe="forecastApp"]) .flex-col-reverse {
  flex-direction: column-reverse;
}
:where([data-mfe="forecastApp"]) .flex-wrap {
  flex-wrap: wrap;
}
:where([data-mfe="forecastApp"]) .flex-nowrap {
  flex-wrap: nowrap;
}
:where([data-mfe="forecastApp"]) .items-start {
  align-items: flex-start;
}
:where([data-mfe="forecastApp"]) .items-end {
  align-items: flex-end;
}
:where([data-mfe="forecastApp"]) .items-center {
  align-items: center;
}
:where([data-mfe="forecastApp"]) .items-baseline {
  align-items: baseline;
}
:where([data-mfe="forecastApp"]) .items-stretch {
  align-items: stretch;
}
:where([data-mfe="forecastApp"]) .justify-start {
  justify-content: flex-start;
}
:where([data-mfe="forecastApp"]) .justify-end {
  justify-content: flex-end;
}
:where([data-mfe="forecastApp"]) .justify-center {
  justify-content: center;
}
:where([data-mfe="forecastApp"]) .justify-between {
  justify-content: space-between;
}
:where([data-mfe="forecastApp"]) .justify-around {
  justify-content: space-around;
}
:where([data-mfe="forecastApp"]) .gap-0\.5 {
  gap: 0.125rem;
}
:where([data-mfe="forecastApp"]) .gap-1 {
  gap: 0.25rem;
}
:where([data-mfe="forecastApp"]) .gap-1\.5 {
  gap: 0.375rem;
}
:where([data-mfe="forecastApp"]) .gap-2 {
  gap: 0.5rem;
}
:where([data-mfe="forecastApp"]) .gap-2\.5 {
  gap: 0.625rem;
}
:where([data-mfe="forecastApp"]) .gap-3 {
  gap: 0.75rem;
}
:where([data-mfe="forecastApp"]) .gap-3\.5 {
  gap: 0.875rem;
}
:where([data-mfe="forecastApp"]) .gap-4 {
  gap: 1rem;
}
:where([data-mfe="forecastApp"]) .gap-5 {
  gap: 1.25rem;
}
:where([data-mfe="forecastApp"]) .gap-6 {
  gap: 1.5rem;
}
:where([data-mfe="forecastApp"]) .gap-x-1 {
  -moz-column-gap: 0.25rem;
       column-gap: 0.25rem;
}
:where([data-mfe="forecastApp"]) .gap-x-1\.5 {
  -moz-column-gap: 0.375rem;
       column-gap: 0.375rem;
}
:where([data-mfe="forecastApp"]) .gap-x-2 {
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}
:where([data-mfe="forecastApp"]) .gap-x-3 {
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
:where([data-mfe="forecastApp"]) .gap-x-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
:where([data-mfe="forecastApp"]) .gap-x-5 {
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
:where([data-mfe="forecastApp"]) .gap-y-0\.5 {
  row-gap: 0.125rem;
}
:where([data-mfe="forecastApp"]) .gap-y-1 {
  row-gap: 0.25rem;
}
:where([data-mfe="forecastApp"]) .gap-y-3 {
  row-gap: 0.75rem;
}
:where([data-mfe="forecastApp"]) :is(.space-y-0\.5 > :not([hidden]) ~ :not([hidden])) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
}
:where([data-mfe="forecastApp"]) :is(.space-y-1 > :not([hidden]) ~ :not([hidden])) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
:where([data-mfe="forecastApp"]) :is(.space-y-1\.5 > :not([hidden]) ~ :not([hidden])) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}
:where([data-mfe="forecastApp"]) :is(.space-y-2 > :not([hidden]) ~ :not([hidden])) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
:where([data-mfe="forecastApp"]) :is(.space-y-2\.5 > :not([hidden]) ~ :not([hidden])) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}
:where([data-mfe="forecastApp"]) :is(.space-y-3 > :not([hidden]) ~ :not([hidden])) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
:where([data-mfe="forecastApp"]) :is(.space-y-4 > :not([hidden]) ~ :not([hidden])) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
:where([data-mfe="forecastApp"]) :is(.space-y-5 > :not([hidden]) ~ :not([hidden])) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}
:where([data-mfe="forecastApp"]) :is(.space-y-6 > :not([hidden]) ~ :not([hidden])) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
:where([data-mfe="forecastApp"]) :is(.divide-x > :not([hidden]) ~ :not([hidden])) {
  --tw-divide-x-reverse: 0;
  border-right-width: calc(1px * var(--tw-divide-x-reverse));
  border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
}
:where([data-mfe="forecastApp"]) :is(.divide-y > :not([hidden]) ~ :not([hidden])) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
:where([data-mfe="forecastApp"]) :is(.divide-gray-100 > :not([hidden]) ~ :not([hidden])) {
  --tw-divide-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-divide-opacity, 1));
}
:where([data-mfe="forecastApp"]) :is(.divide-slate-100 > :not([hidden]) ~ :not([hidden])) {
  --tw-divide-opacity: 1;
  border-color: rgb(241 245 249 / var(--tw-divide-opacity, 1));
}
:where([data-mfe="forecastApp"]) :is(.divide-slate-200 > :not([hidden]) ~ :not([hidden])) {
  --tw-divide-opacity: 1;
  border-color: rgb(226 232 240 / var(--tw-divide-opacity, 1));
}
:where([data-mfe="forecastApp"]) :is(.divide-slate-700 > :not([hidden]) ~ :not([hidden])) {
  --tw-divide-opacity: 1;
  border-color: rgb(51 65 85 / var(--tw-divide-opacity, 1));
}
:where([data-mfe="forecastApp"]) :is(.divide-yellow-100 > :not([hidden]) ~ :not([hidden])) {
  --tw-divide-opacity: 1;
  border-color: rgb(254 249 195 / var(--tw-divide-opacity, 1));
}
:where([data-mfe="forecastApp"]) .self-start {
  align-self: flex-start;
}
:where([data-mfe="forecastApp"]) .self-end {
  align-self: flex-end;
}
:where([data-mfe="forecastApp"]) .self-center {
  align-self: center;
}
:where([data-mfe="forecastApp"]) .self-stretch {
  align-self: stretch;
}
:where([data-mfe="forecastApp"]) .justify-self-start {
  justify-self: start;
}
:where([data-mfe="forecastApp"]) .overflow-auto {
  overflow: auto;
}
:where([data-mfe="forecastApp"]) .overflow-hidden {
  overflow: hidden;
}
:where([data-mfe="forecastApp"]) .overflow-x-auto {
  overflow-x: auto;
}
:where([data-mfe="forecastApp"]) .overflow-y-auto {
  overflow-y: auto;
}
:where([data-mfe="forecastApp"]) .truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
:where([data-mfe="forecastApp"]) .text-ellipsis {
  text-overflow: ellipsis;
}
:where([data-mfe="forecastApp"]) .whitespace-nowrap {
  white-space: nowrap;
}
:where([data-mfe="forecastApp"]) .whitespace-pre-wrap {
  white-space: pre-wrap;
}
:where([data-mfe="forecastApp"]) .text-pretty {
  text-wrap: pretty;
}
:where([data-mfe="forecastApp"]) .break-words {
  overflow-wrap: break-word;
}
:where([data-mfe="forecastApp"]) .rounded {
  border-radius: 0.25rem;
}
:where([data-mfe="forecastApp"]) .rounded-2xl {
  border-radius: 1rem;
}
:where([data-mfe="forecastApp"]) .rounded-\[1px\] {
  border-radius: 1px;
}
:where([data-mfe="forecastApp"]) .rounded-full {
  border-radius: 9999px;
}
:where([data-mfe="forecastApp"]) .rounded-lg {
  border-radius: 0.5rem;
}
:where([data-mfe="forecastApp"]) .rounded-md {
  border-radius: 0.375rem;
}
:where([data-mfe="forecastApp"]) .rounded-sm {
  border-radius: 0.125rem;
}
:where([data-mfe="forecastApp"]) .rounded-xl {
  border-radius: 0.75rem;
}
:where([data-mfe="forecastApp"]) .rounded-b-2xl {
  border-bottom-right-radius: 1rem;
  border-bottom-left-radius: 1rem;
}
:where([data-mfe="forecastApp"]) .rounded-l-lg {
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}
:where([data-mfe="forecastApp"]) .rounded-l-md {
  border-top-left-radius: 0.375rem;
  border-bottom-left-radius: 0.375rem;
}
:where([data-mfe="forecastApp"]) .rounded-r-lg {
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}
:where([data-mfe="forecastApp"]) .rounded-r-md {
  border-top-right-radius: 0.375rem;
  border-bottom-right-radius: 0.375rem;
}
:where([data-mfe="forecastApp"]) .rounded-t-2xl {
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}
:where([data-mfe="forecastApp"]) .border {
  border-width: 1px;
}
:where([data-mfe="forecastApp"]) .border-0 {
  border-width: 0px;
}
:where([data-mfe="forecastApp"]) .border-2 {
  border-width: 2px;
}
:where([data-mfe="forecastApp"]) .border-y {
  border-top-width: 1px;
  border-bottom-width: 1px;
}
:where([data-mfe="forecastApp"]) .border-b {
  border-bottom-width: 1px;
}
:where([data-mfe="forecastApp"]) .border-b-2 {
  border-bottom-width: 2px;
}
:where([data-mfe="forecastApp"]) .border-l {
  border-left-width: 1px;
}
:where([data-mfe="forecastApp"]) .border-l-2 {
  border-left-width: 2px;
}
:where([data-mfe="forecastApp"]) .border-l-4 {
  border-left-width: 4px;
}
:where([data-mfe="forecastApp"]) .border-l-\[3px\] {
  border-left-width: 3px;
}
:where([data-mfe="forecastApp"]) .border-r {
  border-right-width: 1px;
}
:where([data-mfe="forecastApp"]) .border-t {
  border-top-width: 1px;
}
:where([data-mfe="forecastApp"]) .border-t-2 {
  border-top-width: 2px;
}
:where([data-mfe="forecastApp"]) .border-dashed {
  border-style: dashed;
}
:where([data-mfe="forecastApp"]) .border-\[\#0d1526\] {
  --tw-border-opacity: 1;
  border-color: rgb(13 21 38 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-\[\#1e2d45\] {
  --tw-border-opacity: 1;
  border-color: rgb(30 45 69 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-\[\#5A7EB0\] {
  --tw-border-opacity: 1;
  border-color: rgb(90 126 176 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-\[\#5A9A50\] {
  --tw-border-opacity: 1;
  border-color: rgb(90 154 80 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-\[\#C49840\] {
  --tw-border-opacity: 1;
  border-color: rgb(196 152 64 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-\[\#da2128\] {
  --tw-border-opacity: 1;
  border-color: rgb(218 33 40 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-amber-100 {
  --tw-border-opacity: 1;
  border-color: rgb(254 243 199 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-amber-200 {
  --tw-border-opacity: 1;
  border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-amber-300 {
  --tw-border-opacity: 1;
  border-color: rgb(252 211 77 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-blue-200 {
  --tw-border-opacity: 1;
  border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-blue-300 {
  --tw-border-opacity: 1;
  border-color: rgb(147 197 253 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-emerald-100 {
  --tw-border-opacity: 1;
  border-color: rgb(209 250 229 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-emerald-200 {
  --tw-border-opacity: 1;
  border-color: rgb(167 243 208 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-emerald-300 {
  --tw-border-opacity: 1;
  border-color: rgb(110 231 183 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-fuchsia-400 {
  --tw-border-opacity: 1;
  border-color: rgb(232 121 249 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-gray-200 {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-gray-300 {
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-green-200 {
  --tw-border-opacity: 1;
  border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-indigo-100 {
  --tw-border-opacity: 1;
  border-color: rgb(224 231 255 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-indigo-200 {
  --tw-border-opacity: 1;
  border-color: rgb(199 210 254 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-purple-200 {
  --tw-border-opacity: 1;
  border-color: rgb(233 213 255 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-red-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-red-300 {
  --tw-border-opacity: 1;
  border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-red-400 {
  --tw-border-opacity: 1;
  border-color: rgb(248 113 113 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-red-500 {
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-red-600 {
  --tw-border-opacity: 1;
  border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-red-900 {
  --tw-border-opacity: 1;
  border-color: rgb(127 29 29 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-rose-400 {
  --tw-border-opacity: 1;
  border-color: rgb(251 113 133 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-sky-200 {
  --tw-border-opacity: 1;
  border-color: rgb(186 230 253 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-slate-100 {
  --tw-border-opacity: 1;
  border-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-slate-200 {
  --tw-border-opacity: 1;
  border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-slate-200\/70 {
  border-color: rgb(226 232 240 / 0.7);
}
:where([data-mfe="forecastApp"]) .border-slate-300 {
  --tw-border-opacity: 1;
  border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-slate-400 {
  --tw-border-opacity: 1;
  border-color: rgb(148 163 184 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-slate-50 {
  --tw-border-opacity: 1;
  border-color: rgb(248 250 252 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-slate-500 {
  --tw-border-opacity: 1;
  border-color: rgb(100 116 139 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-slate-600 {
  --tw-border-opacity: 1;
  border-color: rgb(71 85 105 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-transparent {
  border-color: transparent;
}
:where([data-mfe="forecastApp"]) .border-violet-200 {
  --tw-border-opacity: 1;
  border-color: rgb(221 214 254 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-white {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-white\/10 {
  border-color: rgb(255 255 255 / 0.1);
}
:where([data-mfe="forecastApp"]) .border-white\/15 {
  border-color: rgb(255 255 255 / 0.15);
}
:where([data-mfe="forecastApp"]) .border-white\/20 {
  border-color: rgb(255 255 255 / 0.2);
}
:where([data-mfe="forecastApp"]) .border-white\/35 {
  border-color: rgb(255 255 255 / 0.35);
}
:where([data-mfe="forecastApp"]) .border-white\/40 {
  border-color: rgb(255 255 255 / 0.4);
}
:where([data-mfe="forecastApp"]) .border-white\/5 {
  border-color: rgb(255 255 255 / 0.05);
}
:where([data-mfe="forecastApp"]) .border-yellow-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 240 138 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-yellow-300 {
  --tw-border-opacity: 1;
  border-color: rgb(253 224 71 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-b-slate-100 {
  --tw-border-opacity: 1;
  border-bottom-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-l-amber-400 {
  --tw-border-opacity: 1;
  border-left-color: rgb(251 191 36 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-l-indigo-500 {
  --tw-border-opacity: 1;
  border-left-color: rgb(99 102 241 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-l-red-600 {
  --tw-border-opacity: 1;
  border-left-color: rgb(220 38 38 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-l-slate-500 {
  --tw-border-opacity: 1;
  border-left-color: rgb(100 116 139 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-r-slate-100 {
  --tw-border-opacity: 1;
  border-right-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .border-t-slate-100 {
  --tw-border-opacity: 1;
  border-top-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#0a1020\] {
  --tw-bg-opacity: 1;
  background-color: rgb(10 16 32 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#0d1526\] {
  --tw-bg-opacity: 1;
  background-color: rgb(13 21 38 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#0d1526\]\/15 {
  background-color: rgb(13 21 38 / 0.15);
}
:where([data-mfe="forecastApp"]) .bg-\[\#191a37\] {
  --tw-bg-opacity: 1;
  background-color: rgb(25 26 55 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#1e3a5f\] {
  --tw-bg-opacity: 1;
  background-color: rgb(30 58 95 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#6888B8\] {
  --tw-bg-opacity: 1;
  background-color: rgb(104 136 184 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#7AAD5A\] {
  --tw-bg-opacity: 1;
  background-color: rgb(122 173 90 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#C49840\] {
  --tw-bg-opacity: 1;
  background-color: rgb(196 152 64 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#D6E0EE\] {
  --tw-bg-opacity: 1;
  background-color: rgb(214 224 238 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#DCE8D4\] {
  --tw-bg-opacity: 1;
  background-color: rgb(220 232 212 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#F8E5C7\] {
  --tw-bg-opacity: 1;
  background-color: rgb(248 229 199 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#da2128\] {
  --tw-bg-opacity: 1;
  background-color: rgb(218 33 40 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#f4f6ff\] {
  --tw-bg-opacity: 1;
  background-color: rgb(244 246 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#fbe9eb\] {
  --tw-bg-opacity: 1;
  background-color: rgb(251 233 235 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-\[\#fff5f5\] {
  --tw-bg-opacity: 1;
  background-color: rgb(255 245 245 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-amber-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-amber-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 230 138 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-amber-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 191 36 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-amber-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-amber-50\/40 {
  background-color: rgb(255 251 235 / 0.4);
}
:where([data-mfe="forecastApp"]) .bg-amber-50\/60 {
  background-color: rgb(255 251 235 / 0.6);
}
:where([data-mfe="forecastApp"]) .bg-amber-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-amber-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-black\/30 {
  background-color: rgb(0 0 0 / 0.3);
}
:where([data-mfe="forecastApp"]) .bg-black\/50 {
  background-color: rgb(0 0 0 / 0.5);
}
:where([data-mfe="forecastApp"]) .bg-blue-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-blue-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(147 197 253 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-blue-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(96 165 250 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-blue-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-blue-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-current {
  background-color: currentColor;
}
:where([data-mfe="forecastApp"]) .bg-cyan-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-cyan-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 254 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-cyan-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(6 182 212 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-emerald-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-emerald-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(52 211 153 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-emerald-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-emerald-50\/60 {
  background-color: rgb(236 253 245 / 0.6);
}
:where([data-mfe="forecastApp"]) .bg-emerald-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-fuchsia-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 232 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-fuchsia-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 244 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-fuchsia-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(217 70 239 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-gray-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-green-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-green-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-indigo-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-indigo-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(238 242 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-indigo-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(99 102 241 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-lime-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 252 203 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-lime-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(247 254 231 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-lime-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(132 204 22 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-orange-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-orange-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-orange-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-purple-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-purple-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(216 180 254 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-purple-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(192 132 252 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-purple-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 245 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-red-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-red-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(252 165 165 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-red-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(248 113 113 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-red-50\/40 {
  background-color: rgb(254 242 242 / 0.4);
}
:where([data-mfe="forecastApp"]) .bg-red-50\/60 {
  background-color: rgb(254 242 242 / 0.6);
}
:where([data-mfe="forecastApp"]) .bg-red-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-red-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-red-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-red-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(127 29 29 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-rose-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-rose-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 113 133 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-rose-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-rose-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(244 63 94 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-sky-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(224 242 254 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-sky-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 249 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-sky-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(14 165 233 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-slate-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-slate-100\/40 {
  background-color: rgb(241 245 249 / 0.4);
}
:where([data-mfe="forecastApp"]) .bg-slate-100\/60 {
  background-color: rgb(241 245 249 / 0.6);
}
:where([data-mfe="forecastApp"]) .bg-slate-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-slate-200\/60 {
  background-color: rgb(226 232 240 / 0.6);
}
:where([data-mfe="forecastApp"]) .bg-slate-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-slate-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(148 163 184 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-slate-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-slate-50\/40 {
  background-color: rgb(248 250 252 / 0.4);
}
:where([data-mfe="forecastApp"]) .bg-slate-50\/50 {
  background-color: rgb(248 250 252 / 0.5);
}
:where([data-mfe="forecastApp"]) .bg-slate-50\/60 {
  background-color: rgb(248 250 252 / 0.6);
}
:where([data-mfe="forecastApp"]) .bg-slate-50\/70 {
  background-color: rgb(248 250 252 / 0.7);
}
:where([data-mfe="forecastApp"]) .bg-slate-50\/80 {
  background-color: rgb(248 250 252 / 0.8);
}
:where([data-mfe="forecastApp"]) .bg-slate-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(100 116 139 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-slate-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(71 85 105 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-slate-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(51 65 85 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-slate-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-slate-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-slate-900\/40 {
  background-color: rgb(15 23 42 / 0.4);
}
:where([data-mfe="forecastApp"]) .bg-slate-900\/60 {
  background-color: rgb(15 23 42 / 0.6);
}
:where([data-mfe="forecastApp"]) .bg-slate-900\/95 {
  background-color: rgb(15 23 42 / 0.95);
}
:where([data-mfe="forecastApp"]) .bg-teal-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(204 251 241 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-teal-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 250 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-teal-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(20 184 166 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-transparent {
  background-color: transparent;
}
:where([data-mfe="forecastApp"]) .bg-violet-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(237 233 254 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-violet-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 243 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-violet-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-white\/10 {
  background-color: rgb(255 255 255 / 0.1);
}
:where([data-mfe="forecastApp"]) .bg-white\/15 {
  background-color: rgb(255 255 255 / 0.15);
}
:where([data-mfe="forecastApp"]) .bg-white\/30 {
  background-color: rgb(255 255 255 / 0.3);
}
:where([data-mfe="forecastApp"]) .bg-white\/60 {
  background-color: rgb(255 255 255 / 0.6);
}
:where([data-mfe="forecastApp"]) .bg-white\/65 {
  background-color: rgb(255 255 255 / 0.65);
}
:where([data-mfe="forecastApp"]) .bg-white\/70 {
  background-color: rgb(255 255 255 / 0.7);
}
:where([data-mfe="forecastApp"]) .bg-yellow-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-yellow-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
:where([data-mfe="forecastApp"]) .from-indigo-50\/60 {
  --tw-gradient-from: rgb(238 242 255 / 0.6) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(238 242 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
:where([data-mfe="forecastApp"]) .via-white {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to);
}
:where([data-mfe="forecastApp"]) .to-white {
  --tw-gradient-to: #fff var(--tw-gradient-to-position);
}
:where([data-mfe="forecastApp"]) .p-0 {
  padding: 0px;
}
:where([data-mfe="forecastApp"]) .p-0\.5 {
  padding: 0.125rem;
}
:where([data-mfe="forecastApp"]) .p-1 {
  padding: 0.25rem;
}
:where([data-mfe="forecastApp"]) .p-1\.5 {
  padding: 0.375rem;
}
:where([data-mfe="forecastApp"]) .p-10 {
  padding: 2.5rem;
}
:where([data-mfe="forecastApp"]) .p-2 {
  padding: 0.5rem;
}
:where([data-mfe="forecastApp"]) .p-3 {
  padding: 0.75rem;
}
:where([data-mfe="forecastApp"]) .p-4 {
  padding: 1rem;
}
:where([data-mfe="forecastApp"]) .p-5 {
  padding: 1.25rem;
}
:where([data-mfe="forecastApp"]) .p-6 {
  padding: 1.5rem;
}
:where([data-mfe="forecastApp"]) .p-8 {
  padding: 2rem;
}
:where([data-mfe="forecastApp"]) .\!px-0 {
  padding-left: 0px !important;
  padding-right: 0px !important;
}
:where([data-mfe="forecastApp"]) .\!py-0 {
  padding-top: 0px !important;
  padding-bottom: 0px !important;
}
:where([data-mfe="forecastApp"]) .px-0\.5 {
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}
:where([data-mfe="forecastApp"]) .px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
:where([data-mfe="forecastApp"]) .px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}
:where([data-mfe="forecastApp"]) .px-12 {
  padding-left: 3rem;
  padding-right: 3rem;
}
:where([data-mfe="forecastApp"]) .px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
:where([data-mfe="forecastApp"]) .px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
:where([data-mfe="forecastApp"]) .px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
:where([data-mfe="forecastApp"]) .px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}
:where([data-mfe="forecastApp"]) .px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
:where([data-mfe="forecastApp"]) .px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
:where([data-mfe="forecastApp"]) .px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
:where([data-mfe="forecastApp"]) .py-0 {
  padding-top: 0px;
  padding-bottom: 0px;
}
:where([data-mfe="forecastApp"]) .py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
:where([data-mfe="forecastApp"]) .py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
:where([data-mfe="forecastApp"]) .py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
:where([data-mfe="forecastApp"]) .py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
:where([data-mfe="forecastApp"]) .py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
:where([data-mfe="forecastApp"]) .py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
:where([data-mfe="forecastApp"]) .py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
:where([data-mfe="forecastApp"]) .py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
:where([data-mfe="forecastApp"]) .py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
:where([data-mfe="forecastApp"]) .py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
:where([data-mfe="forecastApp"]) .py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
:where([data-mfe="forecastApp"]) .py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
:where([data-mfe="forecastApp"]) .py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
:where([data-mfe="forecastApp"]) .py-px {
  padding-top: 1px;
  padding-bottom: 1px;
}
:where([data-mfe="forecastApp"]) .pb-0\.5 {
  padding-bottom: 0.125rem;
}
:where([data-mfe="forecastApp"]) .pb-1 {
  padding-bottom: 0.25rem;
}
:where([data-mfe="forecastApp"]) .pb-1\.5 {
  padding-bottom: 0.375rem;
}
:where([data-mfe="forecastApp"]) .pb-2 {
  padding-bottom: 0.5rem;
}
:where([data-mfe="forecastApp"]) .pb-3 {
  padding-bottom: 0.75rem;
}
:where([data-mfe="forecastApp"]) .pb-4 {
  padding-bottom: 1rem;
}
:where([data-mfe="forecastApp"]) .pl-0\.5 {
  padding-left: 0.125rem;
}
:where([data-mfe="forecastApp"]) .pl-1 {
  padding-left: 0.25rem;
}
:where([data-mfe="forecastApp"]) .pl-10 {
  padding-left: 2.5rem;
}
:where([data-mfe="forecastApp"]) .pl-12 {
  padding-left: 3rem;
}
:where([data-mfe="forecastApp"]) .pl-2 {
  padding-left: 0.5rem;
}
:where([data-mfe="forecastApp"]) .pl-2\.5 {
  padding-left: 0.625rem;
}
:where([data-mfe="forecastApp"]) .pl-3 {
  padding-left: 0.75rem;
}
:where([data-mfe="forecastApp"]) .pl-4 {
  padding-left: 1rem;
}
:where([data-mfe="forecastApp"]) .pl-5 {
  padding-left: 1.25rem;
}
:where([data-mfe="forecastApp"]) .pl-6 {
  padding-left: 1.5rem;
}
:where([data-mfe="forecastApp"]) .pl-7 {
  padding-left: 1.75rem;
}
:where([data-mfe="forecastApp"]) .pl-8 {
  padding-left: 2rem;
}
:where([data-mfe="forecastApp"]) .pl-9 {
  padding-left: 2.25rem;
}
:where([data-mfe="forecastApp"]) .pl-\[84px\] {
  padding-left: 84px;
}
:where([data-mfe="forecastApp"]) .pr-0\.5 {
  padding-right: 0.125rem;
}
:where([data-mfe="forecastApp"]) .pr-1 {
  padding-right: 0.25rem;
}
:where([data-mfe="forecastApp"]) .pr-1\.5 {
  padding-right: 0.375rem;
}
:where([data-mfe="forecastApp"]) .pr-2 {
  padding-right: 0.5rem;
}
:where([data-mfe="forecastApp"]) .pr-2\.5 {
  padding-right: 0.625rem;
}
:where([data-mfe="forecastApp"]) .pr-3 {
  padding-right: 0.75rem;
}
:where([data-mfe="forecastApp"]) .pr-4 {
  padding-right: 1rem;
}
:where([data-mfe="forecastApp"]) .pr-6 {
  padding-right: 1.5rem;
}
:where([data-mfe="forecastApp"]) .pr-7 {
  padding-right: 1.75rem;
}
:where([data-mfe="forecastApp"]) .pr-8 {
  padding-right: 2rem;
}
:where([data-mfe="forecastApp"]) .pt-1 {
  padding-top: 0.25rem;
}
:where([data-mfe="forecastApp"]) .pt-16 {
  padding-top: 4rem;
}
:where([data-mfe="forecastApp"]) .pt-2 {
  padding-top: 0.5rem;
}
:where([data-mfe="forecastApp"]) .pt-3 {
  padding-top: 0.75rem;
}
:where([data-mfe="forecastApp"]) .pt-3\.5 {
  padding-top: 0.875rem;
}
:where([data-mfe="forecastApp"]) .pt-4 {
  padding-top: 1rem;
}
:where([data-mfe="forecastApp"]) .text-left {
  text-align: left;
}
:where([data-mfe="forecastApp"]) .text-center {
  text-align: center;
}
:where([data-mfe="forecastApp"]) .text-right {
  text-align: right;
}
:where([data-mfe="forecastApp"]) .align-baseline {
  vertical-align: baseline;
}
:where([data-mfe="forecastApp"]) .align-top {
  vertical-align: top;
}
:where([data-mfe="forecastApp"]) .align-middle {
  vertical-align: middle;
}
:where([data-mfe="forecastApp"]) .font-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
:where([data-mfe="forecastApp"]) .\!text-\[11px\] {
  font-size: 11px !important;
}
:where([data-mfe="forecastApp"]) .text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
:where([data-mfe="forecastApp"]) .text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
:where([data-mfe="forecastApp"]) .text-\[10\.5px\] {
  font-size: 10.5px;
}
:where([data-mfe="forecastApp"]) .text-\[10px\] {
  font-size: 10px;
}
:where([data-mfe="forecastApp"]) .text-\[11\.5px\] {
  font-size: 11.5px;
}
:where([data-mfe="forecastApp"]) .text-\[11px\] {
  font-size: 11px;
}
:where([data-mfe="forecastApp"]) .text-\[12\.5px\] {
  font-size: 12.5px;
}
:where([data-mfe="forecastApp"]) .text-\[12px\] {
  font-size: 12px;
}
:where([data-mfe="forecastApp"]) .text-\[13\.5px\] {
  font-size: 13.5px;
}
:where([data-mfe="forecastApp"]) .text-\[13px\] {
  font-size: 13px;
}
:where([data-mfe="forecastApp"]) .text-\[14px\] {
  font-size: 14px;
}
:where([data-mfe="forecastApp"]) .text-\[15px\] {
  font-size: 15px;
}
:where([data-mfe="forecastApp"]) .text-\[18px\] {
  font-size: 18px;
}
:where([data-mfe="forecastApp"]) .text-\[20px\] {
  font-size: 20px;
}
:where([data-mfe="forecastApp"]) .text-\[22px\] {
  font-size: 22px;
}
:where([data-mfe="forecastApp"]) .text-\[8\.5px\] {
  font-size: 8.5px;
}
:where([data-mfe="forecastApp"]) .text-\[8px\] {
  font-size: 8px;
}
:where([data-mfe="forecastApp"]) .text-\[9\.5px\] {
  font-size: 9.5px;
}
:where([data-mfe="forecastApp"]) .text-\[9px\] {
  font-size: 9px;
}
:where([data-mfe="forecastApp"]) .text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
:where([data-mfe="forecastApp"]) .text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
:where([data-mfe="forecastApp"]) .text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
:where([data-mfe="forecastApp"]) .text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
:where([data-mfe="forecastApp"]) .text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
:where([data-mfe="forecastApp"]) .font-bold {
  font-weight: 700;
}
:where([data-mfe="forecastApp"]) .font-medium {
  font-weight: 500;
}
:where([data-mfe="forecastApp"]) .font-normal {
  font-weight: 400;
}
:where([data-mfe="forecastApp"]) .font-semibold {
  font-weight: 600;
}
:where([data-mfe="forecastApp"]) .uppercase {
  text-transform: uppercase;
}
:where([data-mfe="forecastApp"]) .lowercase {
  text-transform: lowercase;
}
:where([data-mfe="forecastApp"]) .normal-case {
  text-transform: none;
}
:where([data-mfe="forecastApp"]) .italic {
  font-style: italic;
}
:where([data-mfe="forecastApp"]) .not-italic {
  font-style: normal;
}
:where([data-mfe="forecastApp"]) .tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
:where([data-mfe="forecastApp"]) .leading-\[15px\] {
  line-height: 15px;
}
:where([data-mfe="forecastApp"]) .leading-none {
  line-height: 1;
}
:where([data-mfe="forecastApp"]) .leading-relaxed {
  line-height: 1.625;
}
:where([data-mfe="forecastApp"]) .leading-snug {
  line-height: 1.375;
}
:where([data-mfe="forecastApp"]) .leading-tight {
  line-height: 1.25;
}
:where([data-mfe="forecastApp"]) .tracking-\[0\.12em\] {
  letter-spacing: 0.12em;
}
:where([data-mfe="forecastApp"]) .tracking-\[0\.14em\] {
  letter-spacing: 0.14em;
}
:where([data-mfe="forecastApp"]) .tracking-\[0\.18em\] {
  letter-spacing: 0.18em;
}
:where([data-mfe="forecastApp"]) .tracking-normal {
  letter-spacing: 0em;
}
:where([data-mfe="forecastApp"]) .tracking-tight {
  letter-spacing: -0.025em;
}
:where([data-mfe="forecastApp"]) .tracking-wide {
  letter-spacing: 0.025em;
}
:where([data-mfe="forecastApp"]) .tracking-wider {
  letter-spacing: 0.05em;
}
:where([data-mfe="forecastApp"]) .tracking-widest {
  letter-spacing: 0.1em;
}
:where([data-mfe="forecastApp"]) .\!text-slate-400 {
  --tw-text-opacity: 1 !important;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1)) !important;
}
:where([data-mfe="forecastApp"]) .text-\[\#0d1526\] {
  --tw-text-opacity: 1;
  color: rgb(13 21 38 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-\[\#5b6af0\] {
  --tw-text-opacity: 1;
  color: rgb(91 106 240 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-amber-300 {
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-amber-500 {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-amber-600 {
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-amber-700 {
  --tw-text-opacity: 1;
  color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-amber-700\/80 {
  color: rgb(180 83 9 / 0.8);
}
:where([data-mfe="forecastApp"]) .text-amber-800 {
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-amber-800\/80 {
  color: rgb(146 64 14 / 0.8);
}
:where([data-mfe="forecastApp"]) .text-amber-900 {
  --tw-text-opacity: 1;
  color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-black {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-blue-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-blue-700 {
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-current {
  color: currentColor;
}
:where([data-mfe="forecastApp"]) .text-cyan-800 {
  --tw-text-opacity: 1;
  color: rgb(21 94 117 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-cyan-900 {
  --tw-text-opacity: 1;
  color: rgb(22 78 99 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-emerald-500 {
  --tw-text-opacity: 1;
  color: rgb(16 185 129 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-emerald-600 {
  --tw-text-opacity: 1;
  color: rgb(5 150 105 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-emerald-700 {
  --tw-text-opacity: 1;
  color: rgb(4 120 87 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-emerald-800 {
  --tw-text-opacity: 1;
  color: rgb(6 95 70 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-emerald-900 {
  --tw-text-opacity: 1;
  color: rgb(6 78 59 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-fuchsia-800 {
  --tw-text-opacity: 1;
  color: rgb(134 25 143 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-fuchsia-900 {
  --tw-text-opacity: 1;
  color: rgb(112 26 117 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-gray-700 {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-gray-800 {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-gray-900 {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-green-700 {
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-green-800 {
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-indigo-400 {
  --tw-text-opacity: 1;
  color: rgb(129 140 248 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-indigo-500 {
  --tw-text-opacity: 1;
  color: rgb(99 102 241 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-indigo-600 {
  --tw-text-opacity: 1;
  color: rgb(79 70 229 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-indigo-700 {
  --tw-text-opacity: 1;
  color: rgb(67 56 202 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-indigo-800 {
  --tw-text-opacity: 1;
  color: rgb(55 48 163 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-indigo-900 {
  --tw-text-opacity: 1;
  color: rgb(49 46 129 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-lime-800 {
  --tw-text-opacity: 1;
  color: rgb(63 98 18 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-lime-900 {
  --tw-text-opacity: 1;
  color: rgb(54 83 20 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-orange-800 {
  --tw-text-opacity: 1;
  color: rgb(154 52 18 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-orange-900 {
  --tw-text-opacity: 1;
  color: rgb(124 45 18 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-purple-700 {
  --tw-text-opacity: 1;
  color: rgb(126 34 206 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-red-700 {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-red-800 {
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-red-900 {
  --tw-text-opacity: 1;
  color: rgb(127 29 29 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-rose-800 {
  --tw-text-opacity: 1;
  color: rgb(159 18 57 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-rose-900 {
  --tw-text-opacity: 1;
  color: rgb(136 19 55 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-sky-700 {
  --tw-text-opacity: 1;
  color: rgb(3 105 161 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-sky-800 {
  --tw-text-opacity: 1;
  color: rgb(7 89 133 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-sky-900 {
  --tw-text-opacity: 1;
  color: rgb(12 74 110 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-slate-100 {
  --tw-text-opacity: 1;
  color: rgb(241 245 249 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-slate-200 {
  --tw-text-opacity: 1;
  color: rgb(226 232 240 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-slate-300 {
  --tw-text-opacity: 1;
  color: rgb(203 213 225 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-slate-400 {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-slate-500 {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-slate-600 {
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-slate-700 {
  --tw-text-opacity: 1;
  color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-slate-800 {
  --tw-text-opacity: 1;
  color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-slate-900 {
  --tw-text-opacity: 1;
  color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-teal-800 {
  --tw-text-opacity: 1;
  color: rgb(17 94 89 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-teal-900 {
  --tw-text-opacity: 1;
  color: rgb(19 78 74 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-transparent {
  color: transparent;
}
:where([data-mfe="forecastApp"]) .text-violet-600 {
  --tw-text-opacity: 1;
  color: rgb(124 58 237 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-violet-700 {
  --tw-text-opacity: 1;
  color: rgb(109 40 217 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-violet-800 {
  --tw-text-opacity: 1;
  color: rgb(91 33 182 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-violet-900 {
  --tw-text-opacity: 1;
  color: rgb(76 29 149 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-white\/20 {
  color: rgb(255 255 255 / 0.2);
}
:where([data-mfe="forecastApp"]) .text-white\/25 {
  color: rgb(255 255 255 / 0.25);
}
:where([data-mfe="forecastApp"]) .text-white\/40 {
  color: rgb(255 255 255 / 0.4);
}
:where([data-mfe="forecastApp"]) .text-white\/45 {
  color: rgb(255 255 255 / 0.45);
}
:where([data-mfe="forecastApp"]) .text-white\/50 {
  color: rgb(255 255 255 / 0.5);
}
:where([data-mfe="forecastApp"]) .text-white\/55 {
  color: rgb(255 255 255 / 0.55);
}
:where([data-mfe="forecastApp"]) .text-white\/60 {
  color: rgb(255 255 255 / 0.6);
}
:where([data-mfe="forecastApp"]) .text-white\/70 {
  color: rgb(255 255 255 / 0.7);
}
:where([data-mfe="forecastApp"]) .text-white\/80 {
  color: rgb(255 255 255 / 0.8);
}
:where([data-mfe="forecastApp"]) .text-white\/85 {
  color: rgb(255 255 255 / 0.85);
}
:where([data-mfe="forecastApp"]) .text-white\/90 {
  color: rgb(255 255 255 / 0.9);
}
:where([data-mfe="forecastApp"]) .text-yellow-700 {
  --tw-text-opacity: 1;
  color: rgb(161 98 7 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .text-yellow-800 {
  --tw-text-opacity: 1;
  color: rgb(133 77 14 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .underline {
  text-decoration-line: underline;
}
:where([data-mfe="forecastApp"]) .line-through {
  text-decoration-line: line-through;
}
:where([data-mfe="forecastApp"]) .underline-offset-2 {
  text-underline-offset: 2px;
}
:where([data-mfe="forecastApp"]) .placeholder-slate-400::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(148 163 184 / var(--tw-placeholder-opacity, 1));
}
:where([data-mfe="forecastApp"]) .placeholder-slate-400::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(148 163 184 / var(--tw-placeholder-opacity, 1));
}
:where([data-mfe="forecastApp"]) .accent-\[\#0d1526\] {
  accent-color: #0d1526;
}
:where([data-mfe="forecastApp"]) .accent-red-500 {
  accent-color: #ef4444;
}
:where([data-mfe="forecastApp"]) .accent-red-600 {
  accent-color: #dc2626;
}
:where([data-mfe="forecastApp"]) .opacity-0 {
  opacity: 0;
}
:where([data-mfe="forecastApp"]) .opacity-25 {
  opacity: 0.25;
}
:where([data-mfe="forecastApp"]) .opacity-40 {
  opacity: 0.4;
}
:where([data-mfe="forecastApp"]) .opacity-50 {
  opacity: 0.5;
}
:where([data-mfe="forecastApp"]) .opacity-60 {
  opacity: 0.6;
}
:where([data-mfe="forecastApp"]) .opacity-70 {
  opacity: 0.7;
}
:where([data-mfe="forecastApp"]) .opacity-75 {
  opacity: 0.75;
}
:where([data-mfe="forecastApp"]) .opacity-80 {
  opacity: 0.8;
}
:where([data-mfe="forecastApp"]) .opacity-90 {
  opacity: 0.9;
}
:where([data-mfe="forecastApp"]) .shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
:where([data-mfe="forecastApp"]) .shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
:where([data-mfe="forecastApp"]) .shadow-\[0_0_0_3px_\#ffe9e9\] {
  --tw-shadow: 0 0 0 3px #ffe9e9;
  --tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
:where([data-mfe="forecastApp"]) .shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
:where([data-mfe="forecastApp"]) .shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
:where([data-mfe="forecastApp"]) .shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
:where([data-mfe="forecastApp"]) .outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
:where([data-mfe="forecastApp"]) .outline {
  outline-style: solid;
}
:where([data-mfe="forecastApp"]) .ring {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
:where([data-mfe="forecastApp"]) .ring-1 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
:where([data-mfe="forecastApp"]) .ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
:where([data-mfe="forecastApp"]) .ring-4 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
:where([data-mfe="forecastApp"]) .ring-inset {
  --tw-ring-inset: inset;
}
:where([data-mfe="forecastApp"]) .ring-amber-200\/60 {
  --tw-ring-color: rgb(253 230 138 / 0.6);
}
:where([data-mfe="forecastApp"]) .ring-amber-200\/70 {
  --tw-ring-color: rgb(253 230 138 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-amber-300 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity, 1));
}
:where([data-mfe="forecastApp"]) .ring-amber-400 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(251 191 36 / var(--tw-ring-opacity, 1));
}
:where([data-mfe="forecastApp"]) .ring-blue-200 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1));
}
:where([data-mfe="forecastApp"]) .ring-blue-300 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity, 1));
}
:where([data-mfe="forecastApp"]) .ring-cyan-200\/70 {
  --tw-ring-color: rgb(165 243 252 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-emerald-200\/70 {
  --tw-ring-color: rgb(167 243 208 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-fuchsia-200\/70 {
  --tw-ring-color: rgb(245 208 254 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-indigo-200\/70 {
  --tw-ring-color: rgb(199 210 254 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-lime-200\/70 {
  --tw-ring-color: rgb(217 249 157 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-orange-200\/70 {
  --tw-ring-color: rgb(254 215 170 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-red-200\/70 {
  --tw-ring-color: rgb(254 202 202 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-red-300\/30 {
  --tw-ring-color: rgb(252 165 165 / 0.3);
}
:where([data-mfe="forecastApp"]) .ring-rose-200\/70 {
  --tw-ring-color: rgb(254 205 211 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-sky-200\/70 {
  --tw-ring-color: rgb(186 230 253 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-slate-200 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity, 1));
}
:where([data-mfe="forecastApp"]) .ring-slate-200\/70 {
  --tw-ring-color: rgb(226 232 240 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-slate-300\/70 {
  --tw-ring-color: rgb(203 213 225 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-teal-200\/70 {
  --tw-ring-color: rgb(153 246 228 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-violet-200\/70 {
  --tw-ring-color: rgb(221 214 254 / 0.7);
}
:where([data-mfe="forecastApp"]) .ring-white {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1));
}
:where([data-mfe="forecastApp"]) .ring-white\/40 {
  --tw-ring-color: rgb(255 255 255 / 0.4);
}
:where([data-mfe="forecastApp"]) .blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
:where([data-mfe="forecastApp"]) .filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
:where([data-mfe="forecastApp"]) .backdrop-blur-\[1px\] {
  --tw-backdrop-blur: blur(1px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
:where([data-mfe="forecastApp"]) .backdrop-filter {
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
:where([data-mfe="forecastApp"]) .transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
:where([data-mfe="forecastApp"]) .transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
:where([data-mfe="forecastApp"]) .transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
:where([data-mfe="forecastApp"]) .transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
:where([data-mfe="forecastApp"]) .transition-shadow {
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
:where([data-mfe="forecastApp"]) .transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
:where([data-mfe="forecastApp"]) .duration-200 {
  transition-duration: 200ms;
}
:where([data-mfe="forecastApp"]) .duration-500 {
  transition-duration: 500ms;
}
:where([data-mfe="forecastApp"]) .ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
:where([data-mfe="forecastApp"]) .\[appearance\:textfield\] {
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield;
}
:where([data-mfe="forecastApp"]) .\[clip-path\:inset\(0_round_1rem\)\] {
  clip-path: inset(0 round 1rem);
}
:where([data-mfe="forecastApp"]) .\[scrollbar-gutter\:stable\] {
  scrollbar-gutter: stable;
}
:where([data-mfe="forecastApp"]) .\[writing-mode\:horizontal-tb\] {
  writing-mode: horizontal-tb;
}

/* Opt-out of OS dark-mode auto-inversion of native form controls.
   Without this, when Windows / macOS is set to dark theme, browsers
   render <input type="checkbox"> as black on black and <input type="text">
   with white text on the app's white background — see AddProjectsModal
   pipeline tab report (checkboxes invisible, typed search text unreadable). */
:root {
  color-scheme: light;
}

/* ── Column-resize drag handle for shared BaseTable ──
   Attached by useColumnResize composable as a DOM child of each <th>.
   A 6px hot-zone pinned to the right edge; light red on hover so users
   can find it. Drag updates the consuming view's reactive widths map. */
.bp-col-resize-handle {
  position: absolute;
  top: 0;
  right: 0;
  width: 6px;
  height: 100%;
  cursor: col-resize;
  z-index: 5;
  background: transparent;
  transition: background 0.12s;
}
.bp-col-resize-handle:hover,
.bp-col-resize-handle:active {
  background: rgba(218, 33, 40, 0.55);
}

/* ── Table density modes for shared BaseTable ──
   Class is applied to the wrapper element containing <BaseTable>. We override
   the shared `bp-tbl-*` cell paddings rather than modifying the shared
   package. `comfortable` is BaseTable's native default, so it has no rule. */
.table-density-compact .bp-tbl-th,
.table-density-compact .bp-tbl-td {
  padding-top: 4px;
  padding-bottom: 4px;
}
.table-density-spacious .bp-tbl-th,
.table-density-spacious .bp-tbl-td {
  padding-top: 14px;
  padding-bottom: 14px;
}

/* ── Hide browser-native clear ("×") button on <input type="search"> ──
   We render a custom × clear button alongside each user-search input
   (Compliance, User Overview, Central Function). Without these rules, both
   the native and our custom buttons would render → double-X UX bug.
   Covers WebKit (Chrome / Safari / Edge) and legacy IE/Edge.            */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}
input[type="search"]::-ms-clear,
input[type="search"]::-ms-reveal {
  display: none;
  width: 0;
  height: 0;
}
:where([data-mfe="forecastApp"]) .file\:mr-3::file-selector-button {
  margin-right: 0.75rem;
}
:where([data-mfe="forecastApp"]) .file\:cursor-pointer::file-selector-button {
  cursor: pointer;
}
:where([data-mfe="forecastApp"]) .file\:rounded::file-selector-button {
  border-radius: 0.25rem;
}
:where([data-mfe="forecastApp"]) .file\:border-0::file-selector-button {
  border-width: 0px;
}
:where([data-mfe="forecastApp"]) .file\:bg-gray-100::file-selector-button {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .file\:px-3::file-selector-button {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
:where([data-mfe="forecastApp"]) .file\:py-2::file-selector-button {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
:where([data-mfe="forecastApp"]) .file\:text-gray-700::file-selector-button {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .placeholder\:text-slate-300::-moz-placeholder {
  --tw-text-opacity: 1;
  color: rgb(203 213 225 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .placeholder\:text-slate-300::placeholder {
  --tw-text-opacity: 1;
  color: rgb(203 213 225 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .placeholder\:text-slate-400::-moz-placeholder {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .placeholder\:text-slate-400::placeholder {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .placeholder\:text-white\/45::-moz-placeholder {
  color: rgb(255 255 255 / 0.45);
}
:where([data-mfe="forecastApp"]) .placeholder\:text-white\/45::placeholder {
  color: rgb(255 255 255 / 0.45);
}
:where([data-mfe="forecastApp"]) .first\:pl-0:first-child {
  padding-left: 0px;
}
:where([data-mfe="forecastApp"]) .first\:pt-0:first-child {
  padding-top: 0px;
}
:where([data-mfe="forecastApp"]) .last\:mb-0:last-child {
  margin-bottom: 0px;
}
:where([data-mfe="forecastApp"]) .last\:mb-1:last-child {
  margin-bottom: 0.25rem;
}
:where([data-mfe="forecastApp"]) .last\:border-0:last-child {
  border-width: 0px;
}
:where([data-mfe="forecastApp"]) .last\:border-b-0:last-child {
  border-bottom-width: 0px;
}
:where([data-mfe="forecastApp"]) .last\:border-r-0:last-child {
  border-right-width: 0px;
}
:where([data-mfe="forecastApp"]) .last\:pb-0:last-child {
  padding-bottom: 0px;
}
:where([data-mfe="forecastApp"]) .focus-within\:border-\[\#5b6af0\]:focus-within {
  --tw-border-opacity: 1;
  border-color: rgb(91 106 240 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus-within\:ring-2:focus-within {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
:where([data-mfe="forecastApp"]) .focus-within\:ring-\[\#5b6af0\]\/15:focus-within {
  --tw-ring-color: rgb(91 106 240 / 0.15);
}
:where([data-mfe="forecastApp"]) .hover\:border-indigo-200:hover {
  --tw-border-opacity: 1;
  border-color: rgb(199 210 254 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:border-red-200:hover {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:border-red-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:border-red-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(248 113 113 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:border-rose-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(253 164 175 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:border-slate-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:border-slate-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(148 163 184 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-\[\#1e2d45\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(30 45 69 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-\[\#c41e24\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(196 30 36 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-amber-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-amber-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-amber-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(180 83 9 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-blue-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-blue-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-cyan-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-emerald-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-emerald-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(167 243 208 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-emerald-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-fuchsia-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(250 232 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-gray-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-gray-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-indigo-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-indigo-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(238 242 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-indigo-50\/60:hover {
  background-color: rgb(238 242 255 / 0.6);
}
:where([data-mfe="forecastApp"]) .hover\:bg-lime-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(236 252 203 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-orange-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-red-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-red-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-red-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-red-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-red-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-red-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(153 27 27 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-rose-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-rose-50\/40:hover {
  background-color: rgb(255 241 242 / 0.4);
}
:where([data-mfe="forecastApp"]) .hover\:bg-sky-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(224 242 254 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-slate-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-slate-100\/60:hover {
  background-color: rgb(241 245 249 / 0.6);
}
:where([data-mfe="forecastApp"]) .hover\:bg-slate-100\/70:hover {
  background-color: rgb(241 245 249 / 0.7);
}
:where([data-mfe="forecastApp"]) .hover\:bg-slate-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-slate-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-slate-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-slate-50\/60:hover {
  background-color: rgb(248 250 252 / 0.6);
}
:where([data-mfe="forecastApp"]) .hover\:bg-slate-50\/70:hover {
  background-color: rgb(248 250 252 / 0.7);
}
:where([data-mfe="forecastApp"]) .hover\:bg-teal-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(204 251 241 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-violet-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(237 233 254 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-white:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:bg-white\/10:hover {
  background-color: rgb(255 255 255 / 0.1);
}
:where([data-mfe="forecastApp"]) .hover\:bg-white\/15:hover {
  background-color: rgb(255 255 255 / 0.15);
}
:where([data-mfe="forecastApp"]) .hover\:bg-white\/20:hover {
  background-color: rgb(255 255 255 / 0.2);
}
:where([data-mfe="forecastApp"]) .hover\:\!text-\[\#0d1526\]:hover {
  --tw-text-opacity: 1 !important;
  color: rgb(13 21 38 / var(--tw-text-opacity, 1)) !important;
}
:where([data-mfe="forecastApp"]) .hover\:text-\[\#0d1526\]:hover {
  --tw-text-opacity: 1;
  color: rgb(13 21 38 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-\[\#4553d3\]:hover {
  --tw-text-opacity: 1;
  color: rgb(69 83 211 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-amber-600:hover {
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-blue-600:hover {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-blue-700:hover {
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-gray-600:hover {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-gray-700:hover {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-indigo-600:hover {
  --tw-text-opacity: 1;
  color: rgb(79 70 229 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-indigo-800:hover {
  --tw-text-opacity: 1;
  color: rgb(55 48 163 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-red-500:hover {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-red-600:hover {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-red-700:hover {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-slate-500:hover {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-slate-600:hover {
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-slate-700:hover {
  --tw-text-opacity: 1;
  color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-slate-800:hover {
  --tw-text-opacity: 1;
  color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .hover\:underline:hover {
  text-decoration-line: underline;
}
:where([data-mfe="forecastApp"]) .hover\:opacity-70:hover {
  opacity: 0.7;
}
:where([data-mfe="forecastApp"]) .hover\:shadow-sm:hover {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
:where([data-mfe="forecastApp"]) .hover\:file\:bg-gray-200::file-selector-button:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:border-\[\#0d1526\]:focus {
  --tw-border-opacity: 1;
  border-color: rgb(13 21 38 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:border-\[\#5b6af0\]:focus {
  --tw-border-opacity: 1;
  border-color: rgb(91 106 240 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:border-amber-500:focus {
  --tw-border-opacity: 1;
  border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:border-indigo-500:focus {
  --tw-border-opacity: 1;
  border-color: rgb(99 102 241 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:border-red-400:focus {
  --tw-border-opacity: 1;
  border-color: rgb(248 113 113 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:border-red-500:focus {
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:border-slate-400:focus {
  --tw-border-opacity: 1;
  border-color: rgb(148 163 184 / var(--tw-border-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:border-transparent:focus {
  border-color: transparent;
}
:where([data-mfe="forecastApp"]) .focus\:bg-white\/15:focus {
  background-color: rgb(255 255 255 / 0.15);
}
:where([data-mfe="forecastApp"]) .focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
:where([data-mfe="forecastApp"]) .focus\:ring-0:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
:where([data-mfe="forecastApp"]) .focus\:ring-1:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
:where([data-mfe="forecastApp"]) .focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
:where([data-mfe="forecastApp"]) .focus\:ring-\[\#0d1526\]\/10:focus {
  --tw-ring-color: rgb(13 21 38 / 0.1);
}
:where([data-mfe="forecastApp"]) .focus\:ring-\[\#5b6af0\]\/15:focus {
  --tw-ring-color: rgb(91 106 240 / 0.15);
}
:where([data-mfe="forecastApp"]) .focus\:ring-\[\#5b6af0\]\/25:focus {
  --tw-ring-color: rgb(91 106 240 / 0.25);
}
:where([data-mfe="forecastApp"]) .focus\:ring-amber-500\/25:focus {
  --tw-ring-color: rgb(245 158 11 / 0.25);
}
:where([data-mfe="forecastApp"]) .focus\:ring-blue-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:ring-indigo-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:ring-indigo-500\/25:focus {
  --tw-ring-color: rgb(99 102 241 / 0.25);
}
:where([data-mfe="forecastApp"]) .focus\:ring-red-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:ring-red-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:ring-red-300\/30:focus {
  --tw-ring-color: rgb(252 165 165 / 0.3);
}
:where([data-mfe="forecastApp"]) .focus\:ring-red-500\/25:focus {
  --tw-ring-color: rgb(239 68 68 / 0.25);
}
:where([data-mfe="forecastApp"]) .focus\:ring-slate-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity, 1));
}
:where([data-mfe="forecastApp"]) .focus\:ring-slate-500\/25:focus {
  --tw-ring-color: rgb(100 116 139 / 0.25);
}
:where([data-mfe="forecastApp"]) .focus\:ring-offset-0:focus {
  --tw-ring-offset-width: 0px;
}
:where([data-mfe="forecastApp"]) .active\:cursor-grabbing:active {
  cursor: grabbing;
}
:where([data-mfe="forecastApp"]) .disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}
:where([data-mfe="forecastApp"]) .disabled\:cursor-wait:disabled {
  cursor: wait;
}
:where([data-mfe="forecastApp"]) .disabled\:bg-slate-50:disabled {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) .disabled\:text-slate-400:disabled {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .disabled\:text-slate-500:disabled {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
:where([data-mfe="forecastApp"]) .disabled\:opacity-30:disabled {
  opacity: 0.3;
}
:where([data-mfe="forecastApp"]) .disabled\:opacity-40:disabled {
  opacity: 0.4;
}
:where([data-mfe="forecastApp"]) .disabled\:opacity-50:disabled {
  opacity: 0.5;
}
:where([data-mfe="forecastApp"]) .disabled\:opacity-60:disabled {
  opacity: 0.6;
}
:where([data-mfe="forecastApp"]) .disabled\:hover\:bg-white:hover:disabled {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) :is(.group:hover .group-hover\:block) {
  display: block;
}
:where([data-mfe="forecastApp"]) :is(.group\/proj:hover .group-hover\/proj\:bg-slate-50) {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) :is(.group\/user:hover .group-hover\/user\:bg-slate-50) {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) :is(.group:hover .group-hover\:bg-\[\#fafbfd\]) {
  --tw-bg-opacity: 1;
  background-color: rgb(250 251 253 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) :is(.group:hover .group-hover\:bg-slate-50) {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) :is(.group:hover .group-hover\:bg-slate-500) {
  --tw-bg-opacity: 1;
  background-color: rgb(100 116 139 / var(--tw-bg-opacity, 1));
}
:where([data-mfe="forecastApp"]) :is(.group\/chip:hover .group-hover\/chip\:opacity-100) {
  opacity: 1;
}
:where([data-mfe="forecastApp"]) :is(.group\/info:hover .group-hover\/info\:opacity-100) {
  opacity: 1;
}
:where([data-mfe="forecastApp"]) :is(.group\/pill:hover .group-hover\/pill\:opacity-100) {
  opacity: 1;
}
:where([data-mfe="forecastApp"]) :is(.group\/user:hover .group-hover\/user\:opacity-100) {
  opacity: 1;
}
:where([data-mfe="forecastApp"]) :is(.group:hover .group-hover\:opacity-100) {
  opacity: 1;
}
:where([data-mfe="forecastApp"]) :is(.group:focus .group-focus\:opacity-100) {
  opacity: 1;
}
:where([data-mfe="forecastApp"]) :is(.peer:checked ~ .peer-checked\:translate-x-4) {
  --tw-translate-x: 1rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@media (min-width: 640px) {

  :where([data-mfe="forecastApp"]) .sm\:col-span-1 {
    grid-column: span 1 / span 1;
  }

  :where([data-mfe="forecastApp"]) .sm\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  :where([data-mfe="forecastApp"]) .sm\:col-start-2 {
    grid-column-start: 2;
  }

  :where([data-mfe="forecastApp"]) .sm\:row-start-1 {
    grid-row-start: 1;
  }

  :where([data-mfe="forecastApp"]) .sm\:row-start-2 {
    grid-row-start: 2;
  }

  :where([data-mfe="forecastApp"]) .sm\:inline-flex {
    display: inline-flex;
  }

  :where([data-mfe="forecastApp"]) .sm\:grid {
    display: grid;
  }

  :where([data-mfe="forecastApp"]) .sm\:min-h-\[100px\] {
    min-height: 100px;
  }

  :where([data-mfe="forecastApp"]) .sm\:w-48 {
    width: 12rem;
  }

  :where([data-mfe="forecastApp"]) .sm\:w-\[260px\] {
    width: 260px;
  }

  :where([data-mfe="forecastApp"]) .sm\:w-auto {
    width: auto;
  }

  :where([data-mfe="forecastApp"]) .sm\:min-w-\[260px\] {
    min-width: 260px;
  }

  :where([data-mfe="forecastApp"]) .sm\:max-w-\[260px\] {
    max-width: 260px;
  }

  :where([data-mfe="forecastApp"]) .sm\:max-w-md {
    max-width: 28rem;
  }

  :where([data-mfe="forecastApp"]) .sm\:flex-shrink-0 {
    flex-shrink: 0;
  }

  :where([data-mfe="forecastApp"]) .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  :where([data-mfe="forecastApp"]) .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  :where([data-mfe="forecastApp"]) .sm\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  :where([data-mfe="forecastApp"]) .sm\:grid-cols-\[1fr_280px\] {
    grid-template-columns: 1fr 280px;
  }

  :where([data-mfe="forecastApp"]) .sm\:grid-cols-\[auto_1fr\] {
    grid-template-columns: auto 1fr;
  }

  :where([data-mfe="forecastApp"]) .sm\:flex-row {
    flex-direction: row;
  }

  :where([data-mfe="forecastApp"]) .sm\:items-center {
    align-items: center;
  }

  :where([data-mfe="forecastApp"]) .sm\:justify-start {
    justify-content: flex-start;
  }

  :where([data-mfe="forecastApp"]) .sm\:justify-end {
    justify-content: flex-end;
  }

  :where([data-mfe="forecastApp"]) .sm\:justify-between {
    justify-content: space-between;
  }

  :where([data-mfe="forecastApp"]) .sm\:gap-8 {
    gap: 2rem;
  }

  :where([data-mfe="forecastApp"]) .sm\:gap-x-3 {
    -moz-column-gap: 0.75rem;
         column-gap: 0.75rem;
  }

  :where([data-mfe="forecastApp"]) .sm\:gap-y-2\.5 {
    row-gap: 0.625rem;
  }

  :where([data-mfe="forecastApp"]) .sm\:self-auto {
    align-self: auto;
  }

  :where([data-mfe="forecastApp"]) .sm\:justify-self-end {
    justify-self: end;
  }

  :where([data-mfe="forecastApp"]) .sm\:p-1\.5 {
    padding: 0.375rem;
  }

  :where([data-mfe="forecastApp"]) .sm\:px-5 {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  :where([data-mfe="forecastApp"]) .sm\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}
@media (min-width: 768px) {

  :where([data-mfe="forecastApp"]) .md\:top-6 {
    top: 1.5rem;
  }

  :where([data-mfe="forecastApp"]) .md\:inline {
    display: inline;
  }

  :where([data-mfe="forecastApp"]) .md\:flex {
    display: flex;
  }

  :where([data-mfe="forecastApp"]) .md\:h-\[300px\] {
    height: 300px;
  }

  :where([data-mfe="forecastApp"]) .md\:w-9 {
    width: 2.25rem;
  }

  :where([data-mfe="forecastApp"]) .md\:w-\[240px\] {
    width: 240px;
  }

  :where([data-mfe="forecastApp"]) .md\:w-\[300px\] {
    width: 300px;
  }

  :where([data-mfe="forecastApp"]) .md\:min-w-0 {
    min-width: 0px;
  }

  :where([data-mfe="forecastApp"]) .md\:max-w-none {
    max-width: none;
  }

  :where([data-mfe="forecastApp"]) .md\:flex-\[2\] {
    flex: 2;
  }

  :where([data-mfe="forecastApp"]) .md\:flex-shrink-0 {
    flex-shrink: 0;
  }

  :where([data-mfe="forecastApp"]) .md\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  :where([data-mfe="forecastApp"]) .md\:grid-cols-\[minmax\(0\2c 1fr\)_100px_160px_auto\] {
    grid-template-columns: minmax(0,1fr) 100px 160px auto;
  }

  :where([data-mfe="forecastApp"]) .md\:grid-cols-\[minmax\(0\2c 1fr\)_120px_auto\] {
    grid-template-columns: minmax(0,1fr) 120px auto;
  }

  :where([data-mfe="forecastApp"]) .md\:grid-cols-\[minmax\(0\2c 220px\)_auto\] {
    grid-template-columns: minmax(0,220px) auto;
  }

  :where([data-mfe="forecastApp"]) .md\:flex-row {
    flex-direction: row;
  }

  :where([data-mfe="forecastApp"]) .md\:flex-col {
    flex-direction: column;
  }

  :where([data-mfe="forecastApp"]) .md\:items-stretch {
    align-items: stretch;
  }

  :where([data-mfe="forecastApp"]) .md\:self-stretch {
    align-self: stretch;
  }

  :where([data-mfe="forecastApp"]) .md\:p-6 {
    padding: 1.5rem;
  }

  :where([data-mfe="forecastApp"]) .md\:px-0 {
    padding-left: 0px;
    padding-right: 0px;
  }

  :where([data-mfe="forecastApp"]) .md\:\[writing-mode\:vertical-rl\] {
    writing-mode: vertical-rl;
  }
}
@media (min-width: 1024px) {

  :where([data-mfe="forecastApp"]) .lg\:w-9 {
    width: 2.25rem;
  }

  :where([data-mfe="forecastApp"]) .lg\:flex-1 {
    flex: 1 1 0%;
  }

  :where([data-mfe="forecastApp"]) .lg\:flex-shrink-0 {
    flex-shrink: 0;
  }

  :where([data-mfe="forecastApp"]) .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  :where([data-mfe="forecastApp"]) .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  :where([data-mfe="forecastApp"]) .lg\:grid-cols-\[1fr_36px\] {
    grid-template-columns: 1fr 36px;
  }

  :where([data-mfe="forecastApp"]) .lg\:grid-cols-\[1fr_420px\] {
    grid-template-columns: 1fr 420px;
  }

  :where([data-mfe="forecastApp"]) .lg\:grid-cols-\[minmax\(0\2c 1fr\)_auto\] {
    grid-template-columns: minmax(0,1fr) auto;
  }

  :where([data-mfe="forecastApp"]) .lg\:flex-row {
    flex-direction: row;
  }

  :where([data-mfe="forecastApp"]) .lg\:flex-col {
    flex-direction: column;
  }

  :where([data-mfe="forecastApp"]) .lg\:self-stretch {
    align-self: stretch;
  }

  :where([data-mfe="forecastApp"]) .lg\:border-l {
    border-left-width: 1px;
  }

  :where([data-mfe="forecastApp"]) .lg\:border-slate-200 {
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
  }

  :where([data-mfe="forecastApp"]) .lg\:px-0 {
    padding-left: 0px;
    padding-right: 0px;
  }

  :where([data-mfe="forecastApp"]) .lg\:py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }

  :where([data-mfe="forecastApp"]) .lg\:pl-5 {
    padding-left: 1.25rem;
  }

  :where([data-mfe="forecastApp"]) .lg\:text-\[10\.5px\] {
    font-size: 10.5px;
  }

  :where([data-mfe="forecastApp"]) .lg\:\[writing-mode\:vertical-rl\] {
    writing-mode: vertical-rl;
  }
}
:where([data-mfe="forecastApp"]) .\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button {
  -webkit-appearance: none;
          appearance: none;
}
:where([data-mfe="forecastApp"]) .\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button {
  -webkit-appearance: none;
          appearance: none;
}

.fade-enter-active[data-v-168284eb], .fade-leave-active[data-v-168284eb]   { transition: opacity 0.2s ease
}
.fade-enter-from[data-v-168284eb], .fade-leave-to[data-v-168284eb]         { opacity: 0
}
.slide-enter-active[data-v-168284eb], .slide-leave-active[data-v-168284eb] { transition: transform 0.25s ease
}
.slide-enter-from[data-v-168284eb], .slide-leave-to[data-v-168284eb]       { transform: translateX(100%)
}
.toast-enter-active[data-v-168284eb], .toast-leave-active[data-v-168284eb] { transition: opacity 0.2s ease, transform 0.2s ease
}
.toast-enter-from[data-v-168284eb], .toast-leave-to[data-v-168284eb]       { opacity: 0; transform: translateY(-8px)
}

/* Select-all header checkbox overlay — BaseTable has no `#header-<field>`
   slot so we overlay a native checkbox on top of the first `<th>` in the
   sort-header row. `left`/`top`/`width`/`height` are set at runtime via
   inline style from `measureSelectAllTh()` — this stays correct even when
   BaseTable's `table-layout:fixed` + `width:100%` stretches `_select`
   proportionally on wide viewports. */
.bp-compliance-tbl[data-v-168284eb] { position: relative;
}
.bp-compliance-tbl__selectall[data-v-168284eb] {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  padding: 0;
  margin: 0;
}
.bp-compliance-tbl__selectall input[data-v-168284eb] {
  margin: 0;
  padding: 0;
}

/* Project-column width for the daily matrix sticky-left cells — mirrors
   UserForecastOverviewView's `.fc-proj-col`. The CSS var `--fc-proj-col-w`
   is set inline on the matrix scroll container. max-width is critical:
   without it a long project name forces the cell wider than the var,
   expanding the whole table past the container and forcing a horizontal
   scrollbar even when computed widths sum to less than available space. */
.fc-proj-col[data-v-168284eb] {
  width: var(--fc-proj-col-w, 240px);
  min-width: var(--fc-proj-col-w, 240px);
  max-width: var(--fc-proj-col-w, 240px);
}

/* Matrix scroll container — mirrors MyForecastView's `.matrix-scroll`.
   The container owns BOTH axes of scroll so the panel body itself doesn't
   scroll (preventing the doubled-scrollbar look). Thin slate-600 thumb
   on a transparent track matches MyForecast's webkit + Firefox styling. */
.matrix-scroll[data-v-168284eb] {
  overflow-x: auto;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(71, 85, 105, 0.8) #e2e8f0;
}
[data-v-168284eb] .matrix-scroll::-webkit-scrollbar             { width: 8px; height: 8px;
}
[data-v-168284eb] .matrix-scroll::-webkit-scrollbar-track       { background: transparent;
}
[data-v-168284eb] .matrix-scroll::-webkit-scrollbar-thumb       { background: rgba(100, 116, 139, 0.55); border-radius: 4px;
}
[data-v-168284eb] .matrix-scroll::-webkit-scrollbar-thumb:hover { background: rgba(71, 85, 105, 0.8);
}
[data-v-168284eb] .matrix-scroll::-webkit-scrollbar-corner      { background: transparent;
}

/* Row dividers — re-added at the cell level since border-separate
   doesn't render <tr> borders. Colour matches MyForecast's pattern. */
.matrix-scroll tbody > tr:not(.fc-day-total-row) > td[data-v-168284eb] {
  border-bottom: 1px solid #f1f5f9; /* slate-100 */
}
.matrix-scroll tbody > tr.fc-group-header-amber > td[data-v-168284eb]  { border-bottom-color: #fde68a;
}
.matrix-scroll tbody > tr.fc-group-header-green > td[data-v-168284eb]  { border-bottom-color: #bbf7d0;
}
.matrix-scroll tbody > tr.fc-group-header-blue > td[data-v-168284eb]   { border-bottom-color: #bfdbfe;
}

/* Sticky THEAD — pins the Project / Activity strip to the top of the
   scroll container so the day-header and Total label stay visible while
   scrolling through long project lists. Corners (sticky-left thead th +
   sticky-right thead th) need a higher z so they sit above the sticky
   body cells that cross them. */
.matrix-scroll thead[data-v-168284eb] { position: sticky; top: 0; z-index: 30;
}
.matrix-scroll thead th.left-0[data-v-168284eb],
.matrix-scroll thead th.right-0[data-v-168284eb] { z-index: 40;
}

/* Sticky DAY TOTAL row — pins to the BOTTOM of the scroll container.
   `box-shadow: 0 -1px 0 #1e2d45` paints a navy line on the top edge of
   each cell — without it, the slate-100 border-bottom from the project
   row above would bleed through as a bright line against the navy band. */
.matrix-scroll tr.fc-day-total-row > td[data-v-168284eb] {
  position: sticky;
  bottom: 0;
  z-index: 28;
  box-shadow: 0 -1px 0 0 #1e2d45;
}
.matrix-scroll tr.fc-day-total-row > td.left-0[data-v-168284eb],
.matrix-scroll tr.fc-day-total-row > td.right-0[data-v-168284eb] { z-index: 38;
}

/* Reset PrimeVue's group-wrapper padding — our custom slot manages its own. */
.fc-dept-overlay .p-multiselect-option-group {
  padding: 0 !important;
  background: transparent !important;
}

/* Group header — bold, tinted, clearly clickable. */
.fc-dept-overlay .fc-dept-group-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  cursor: pointer;
  background: #f1f5fb;
  border-top: 1px solid #dfe4ee;
  border-bottom: 1px solid #dfe4ee;
  font-weight: 700;
  color: #0f172a;
  font-size: 12.5px;
  letter-spacing: 0.01em;
  line-height: 1.2;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: background 0.12s, border-color 0.12s;
}
.fc-dept-overlay .p-multiselect-option-group:first-child .fc-dept-group-header {
  border-top: 0;
}
.fc-dept-overlay .fc-dept-group-header:hover {
  background: #e7edf7;
}
.fc-dept-overlay .fc-dept-group-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border: 1.5px solid #94a3b8;
  border-radius: 4px;
  background: #fff;
  transition: background 0.12s, border-color 0.12s;
  flex-shrink: 0;
}
.fc-dept-overlay .fc-dept-group-check.is-checked,
.fc-dept-overlay .fc-dept-group-check.is-partial {
  background: #da2128;
  border-color: #da2128;
  color: #fff;
}
.fc-dept-overlay .fc-dept-group-dash {
  width: 8px;
  height: 2px;
  background: #fff;
  border-radius: 1px;
}
.fc-dept-overlay .fc-dept-group-label {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fc-dept-overlay .fc-dept-group-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 18px;
  padding: 0 8px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #475569;
  font-size: 10.5px;
  font-weight: 700;
  flex-shrink: 0;
}

/* Child option rows — indented so they read as children of the group
   above. Overrides the `padding: 11px 14px !important` from the shared
   BaseMultiSelect global CSS in @dssplus/bizplus-fe-ui. */
.fc-dept-overlay .p-multiselect-option {
  padding: 8px 14px 8px 40px !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
  border-left: 3px solid transparent;
  gap: 10px !important;
}

/* Overlay dimensions — explicit min/max stops PrimeVue's JS-computed
   panel height from racing on first open and collapsing to a few
   pixels tall. */
.fc-dept-overlay {
  min-width:  280px;
  min-height: 200px;
  max-height: 420px;
}
.fc-dept-overlay .p-multiselect-items-wrapper {
  max-height: 340px !important;
  overflow-y: auto !important;
}
.fc-dept-overlay .p-multiselect-option:hover {
  border-left-color: #da2128;
}
.fc-dept-overlay .p-multiselect-option.p-selected {
  border-left-color: #da2128;
  background-color: #fff3f3 !important;
}

/* ── Grid sizing override (BaseTable) ──────────────────────────────────────
   BaseTable ships `width:100%; table-layout:fixed; min-width:820px`. Because
   the layout is fixed, once the column widths total more than the container
   the browser treats them as proportions and SHRINKS every column — and
   `.bp-tbl-th` is nowrap with no clipping, so headers overflow into the next
   column instead of truncating.

   Raising min-width to the real total makes `.bp-tbl-scroll` (already
   `overflow-x:auto` in the component) do its job: columns keep their width
   and the grid scrolls sideways instead. `--fc-grid-min` is set inline from
   the visible columns, so it tracks Table Settings. */
.fc-grid-fit .bp-tbl { min-width: var(--fc-grid-min, 820px);
}

/* Let a multi-word header use two lines rather than demanding the width on
   one: "Sep 2026 Est. Charge" needs ~160px on a single line, ~124px wrapped.

   Breaks at SPACES ONLY. An earlier version set `overflow-wrap: anywhere`,
   which let the browser break inside a word — single-word headers came out as
   "COUNT / RY" and "L / E". Every column below is sized to fit its longest
   WORD, so nothing needs to break mid-word. */
.fc-grid-fit .bp-tbl-th { white-space: normal;
}
.fc-grid-fit .bp-tbl-th-inner { align-items: flex-start; line-height: 1.25;
}

/* Project-column width for the daily matrix and yearly summary sticky-left
   cells. The CSS var `--fc-proj-col-w` is set on the daily matrix's scroll
   container (see `dailyMatrixStyle` in script) so cells expand to absorb
   leftover container width. The yearly summary table's parent doesn't set
   the var, so its cells fall back to the literal 220px default. */
.fc-proj-col[data-v-8f5605a2] {
  width: var(--fc-proj-col-w, 220px);
  min-width: var(--fc-proj-col-w, 220px);
  /* max-width is critical — without it, a long project name forces the cell
     to grow beyond `--fc-proj-col-w`, expanding the whole table past the
     container width and triggering a horizontal scrollbar even when our
     computed widths sum to less than the available space. Same fix applied
     to MyForecast .matrix-scroll project column. */
  max-width: var(--fc-proj-col-w, 220px);
}

/* Reset PrimeVue's group-wrapper padding — our custom slot manages its own. */
.fc-dept-overlay .p-multiselect-option-group {
  padding: 0 !important;
  background: transparent !important;
}

/* Group header — bold, tinted, clearly clickable. */
.fc-dept-overlay .fc-dept-group-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  cursor: pointer;
  background: #f1f5fb;
  border-top: 1px solid #dfe4ee;
  border-bottom: 1px solid #dfe4ee;
  font-weight: 700;
  color: #0f172a;
  font-size: 12.5px;
  letter-spacing: 0.01em;
  line-height: 1.2;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: background 0.12s, border-color 0.12s;
}
.fc-dept-overlay .p-multiselect-option-group:first-child .fc-dept-group-header {
  border-top: 0;
}
.fc-dept-overlay .fc-dept-group-header:hover {
  background: #e7edf7;
}
.fc-dept-overlay .fc-dept-group-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border: 1.5px solid #94a3b8;
  border-radius: 4px;
  background: #fff;
  transition: background 0.12s, border-color 0.12s;
  flex-shrink: 0;
}
.fc-dept-overlay .fc-dept-group-check.is-checked,
.fc-dept-overlay .fc-dept-group-check.is-partial {
  background: #da2128;
  border-color: #da2128;
  color: #fff;
}
.fc-dept-overlay .fc-dept-group-dash {
  width: 8px;
  height: 2px;
  background: #fff;
  border-radius: 1px;
}
.fc-dept-overlay .fc-dept-group-label {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fc-dept-overlay .fc-dept-group-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 18px;
  padding: 0 8px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #475569;
  font-size: 10.5px;
  font-weight: 700;
  flex-shrink: 0;
}

/* Child option rows — indented so they read as children of the group
   above. Overrides the `padding: 11px 14px !important` from the shared
   BaseMultiSelect global CSS in @dssplus/bizplus-fe-ui. */
.fc-dept-overlay .p-multiselect-option {
  padding: 8px 14px 8px 40px !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
  border-left: 3px solid transparent;
  gap: 10px !important;
}

/* Overlay dimensions — explicit min/max stops PrimeVue's JS-computed
   panel height from racing on first open and collapsing to a few
   pixels tall. */
.fc-dept-overlay {
  min-width:  280px;
  min-height: 200px;
  max-height: 420px;
}
.fc-dept-overlay .p-multiselect-items-wrapper {
  max-height: 340px !important;
  overflow-y: auto !important;
}
.fc-dept-overlay .p-multiselect-option:hover {
  border-left-color: #da2128;
}
.fc-dept-overlay .p-multiselect-option.p-selected {
  border-left-color: #da2128;
  background-color: #fff3f3 !important;
}

/* ── Grid sizing override (BaseTable) ──────────────────────────────────────
   BaseTable ships `width:100%; table-layout:fixed; min-width:820px`. Because
   the layout is fixed, once the column widths total more than the container
   the browser treats them as proportions and SHRINKS every column — and
   `.bp-tbl-th` is nowrap with no clipping, so headers overflow into the next
   column instead of truncating. That is the "overlapping headers" bug.

   Raising min-width to the real total makes `.bp-tbl-scroll` (already
   `overflow-x:auto` in the component) do its job: columns keep their width
   and the grid scrolls sideways instead. `--fc-grid-min` is set inline from
   the visible columns, so it tracks Table Settings. */
.fc-grid-fit .bp-tbl { min-width: var(--fc-grid-min, 820px);
}

/* Let a multi-word header use two lines rather than demanding the width on
   one: "Sep 2026 Est. Charge" needs ~160px on a single line, ~124px wrapped.

   Breaks at SPACES ONLY. An earlier version set `overflow-wrap: anywhere`,
   which let the browser break inside a word — single-word headers came out as
   "COUNT / RY" and "L / E". Every column below is sized to fit its longest
   WORD, so nothing needs to break mid-word. */
.fc-grid-fit .bp-tbl-th { white-space: normal;
}
.fc-grid-fit .bp-tbl-th-inner { align-items: flex-start; line-height: 1.25;
}

/* ── Two-pane shell — matches the scheduler admintasks feel ───────── */
.admintasks-shell[data-v-ffc792d7] {
  display: grid;
  grid-template-columns: 240px 1fr;
  min-height: calc(100vh - 64px);
  background: #f7f8fc;
}
@media (max-width: 767px) {
.admintasks-shell[data-v-ffc792d7] {
    /* Stack on narrow viewports; the sidebar becomes a compact horizontal
       chip row above the main pane rather than a fixed left column. */
    grid-template-columns: 1fr;
}
}
.admintasks-sidebar[data-v-ffc792d7] {
  background: #ffffff;
  border-right: 1px solid #e2e8f0;
  padding: 1.25rem 1rem;
  overflow-y: auto;
}
.sidebar-heading[data-v-ffc792d7] {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #64748b;
  margin-bottom: 0.5rem;
}
.sidebar-heading-second[data-v-ffc792d7] {
  /* Spacing separator between the TABLES + VIEWS sections. */
  margin-top: 1.25rem;
}
.sidebar-items[data-v-ffc792d7] {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.sidebar-item[data-v-ffc792d7] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 13px;
  color: #334155;
  cursor: pointer;
  transition: background 120ms;
}
.sidebar-item[data-v-ffc792d7]:hover { background: #f1f5f9;
}
.sidebar-item.active[data-v-ffc792d7] {
  background: #0d1526;
  color: #ffffff;
}
.sidebar-item.active .sidebar-icon[data-v-ffc792d7] { color: #ffffff;
}
.sidebar-icon[data-v-ffc792d7] {
  flex-shrink: 0;
  color: #64748b;
}
.entity-label[data-v-ffc792d7] {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12.5px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admintasks-main[data-v-ffc792d7] {
  padding: 1.5rem;
  overflow-y: auto;
}
@media (max-width: 767px) {
.admintasks-main[data-v-ffc792d7] { padding: 1rem;
}
}
.fadeup-enter-active[data-v-ffc792d7], .fadeup-leave-active[data-v-ffc792d7] { transition: all 180ms ease;
}
.fadeup-enter-from[data-v-ffc792d7]   { opacity: 0; transform: translateY(-6px);
}
.fadeup-leave-to[data-v-ffc792d7]     { opacity: 0; transform: translateY(-6px);
}
