/* static/css/main.css */
/* Import base styles */
@import url("base/layout.a87824b1ce96.css");
@import url("base/typography.d2261b5bfd94.css");

/* Import component styles */
@import url("components/buttons.8df363b0721c.css");
@import url("components/cards.ae8309acb18d.css");
@import url("components/navbar.3981c0797c55.css");
@import url("components/sidebar.6a3756d15260.css");
@import url("components/forms.c5761b5ecc3f.css");
@import url("components/panels.283854254c74.css");
@import url("components/footer.18b00c2020cf.css");

/* Import theme */
@import url("themes/colors.21e3f1f75062.css");

/* ---------------------------------------------------------------------------
   Badge contrast safety net.
   Bootstrap 5.3 .badge defaults to WHITE text. The "warning" (#ffc107 amber)
   and "info" (#0dcaf0 cyan) backgrounds are LIGHT, so a bare `badge bg-warning`
   or `badge bg-info` renders white-on-light and is effectively unreadable.
   Bootstrap's own .text-bg-warning/.text-bg-info pair these light backgrounds
   with dark text — mirror that here so every status tag stays legible without
   editing each template. !important also overrides stray `text-white` placed
   directly on these badges.
   --------------------------------------------------------------------------- */
.badge.bg-warning { color: #000 !important; }
.badge.bg-info    { color: #000 !important; }

/* The soft-pill badge theme (components/panels.css) restyles bg-success/
   warning/danger/info/secondary but has no rules for bg-primary or bg-dark,
   so those keep their solid dark Bootstrap background while inheriting the
   pill base's dark-gray text — dark-on-dark and unreadable. Pair the dark
   backgrounds with white text. */
.badge.bg-primary { color: #fff !important; }
.badge.bg-dark    { color: #fff !important; }

/* Same failure, third variant: a template supplies its own SOLID DARK fill
   inline (style="background-color: var(--hoa-deep-purple)") and no colour, so
   the pill base in components/panels.css hands it dark-gray text and the label
   disappears into the fill. These selectors match the inline style itself, so
   such a badge stays legible even where the markup hasn't been converted to
   `badge bg-purple`. The trailing ")" matters — without it the selector would
   also match var(--hoa-deep-purple-light), a LIGHT fill that needs dark text. */
.badge[style*="--hoa-deep-purple)"],
.badge[style*="--hoa-purple)"],
.badge[style*="#6F42C2" i],
.badge[style*="#6a11cb" i],
.badge[style*="#8e44ad" i] { color: #fff !important; }

/* The same inline-fill failure with every OTHER solid dark colour templates
   use for notice/event/status types (Bootstrap gray, blue, green, teal, red,
   brown, black) and the theme's dark tokens. Only a BACKGROUND declaration
   counts: many status pills use these same colours as TEXT on a light fill
   (style="background-color: #f0fff4; color: #198754"), and those must keep
   their dark text. Light fills are deliberately not listed. */
.badge[style*="background-color: #6c757d" i],
.badge[style*="background-color:#6c757d" i],
.badge[style*="background: #6c757d" i],
.badge[style*="background:#6c757d" i],
.badge[style*="background-color: #2575fc" i],
.badge[style*="background-color:#2575fc" i],
.badge[style*="background: #2575fc" i],
.badge[style*="background:#2575fc" i],
.badge[style*="background-color: #28a745" i],
.badge[style*="background-color:#28a745" i],
.badge[style*="background: #28a745" i],
.badge[style*="background:#28a745" i],
.badge[style*="background-color: #17a2b8" i],
.badge[style*="background-color:#17a2b8" i],
.badge[style*="background: #17a2b8" i],
.badge[style*="background:#17a2b8" i],
.badge[style*="background-color: #b36b00" i],
.badge[style*="background-color:#b36b00" i],
.badge[style*="background: #b36b00" i],
.badge[style*="background:#b36b00" i],
.badge[style*="background-color: #dc3545" i],
.badge[style*="background-color:#dc3545" i],
.badge[style*="background: #dc3545" i],
.badge[style*="background:#dc3545" i],
.badge[style*="background-color: #0d6efd" i],
.badge[style*="background-color:#0d6efd" i],
.badge[style*="background: #0d6efd" i],
.badge[style*="background:#0d6efd" i],
.badge[style*="background-color: #198754" i],
.badge[style*="background-color:#198754" i],
.badge[style*="background: #198754" i],
.badge[style*="background:#198754" i],
.badge[style*="background-color: #343a40" i],
.badge[style*="background-color:#343a40" i],
.badge[style*="background: #343a40" i],
.badge[style*="background:#343a40" i],
.badge[style*="background-color: #212529" i],
.badge[style*="background-color:#212529" i],
.badge[style*="background: #212529" i],
.badge[style*="background:#212529" i],
.badge[style*="background-color: #495057" i],
.badge[style*="background-color:#495057" i],
.badge[style*="background: #495057" i],
.badge[style*="background:#495057" i],
.badge[style*="background-color: #000" i],
.badge[style*="background-color:#000" i],
.badge[style*="background: #000" i],
.badge[style*="background:#000" i],
.badge[style*="background-color: var(--hoa-slate-blue)"],
.badge[style*="background-color:var(--hoa-slate-blue)"],
.badge[style*="background: var(--hoa-slate-blue)"],
.badge[style*="background:var(--hoa-slate-blue)"],
.badge[style*="background-color: var(--hoa-slate-blue-dark)"],
.badge[style*="background-color:var(--hoa-slate-blue-dark)"],
.badge[style*="background: var(--hoa-slate-blue-dark)"],
.badge[style*="background:var(--hoa-slate-blue-dark)"],
.badge[style*="background-color: var(--hoa-forest-green)"],
.badge[style*="background-color:var(--hoa-forest-green)"],
.badge[style*="background: var(--hoa-forest-green)"],
.badge[style*="background:var(--hoa-forest-green)"],
.badge[style*="background-color: var(--hoa-forest-green-dark)"],
.badge[style*="background-color:var(--hoa-forest-green-dark)"],
.badge[style*="background: var(--hoa-forest-green-dark)"],
.badge[style*="background:var(--hoa-forest-green-dark)"],
.badge[style*="background-color: var(--hoa-terracotta)"],
.badge[style*="background-color:var(--hoa-terracotta)"],
.badge[style*="background: var(--hoa-terracotta)"],
.badge[style*="background:var(--hoa-terracotta)"],
.badge[style*="background-color: var(--hoa-terracotta-dark)"],
.badge[style*="background-color:var(--hoa-terracotta-dark)"],
.badge[style*="background: var(--hoa-terracotta-dark)"],
.badge[style*="background:var(--hoa-terracotta-dark)"],
.badge[style*="background-color: var(--hoa-deep-purple-dark)"],
.badge[style*="background-color:var(--hoa-deep-purple-dark)"],
.badge[style*="background: var(--hoa-deep-purple-dark)"],
.badge[style*="background:var(--hoa-deep-purple-dark)"],
.badge[style*="background-color: var(--hoa-purple-dark)"],
.badge[style*="background-color:var(--hoa-purple-dark)"],
.badge[style*="background: var(--hoa-purple-dark)"],
.badge[style*="background:var(--hoa-purple-dark)"],
.badge[style*="background-color: var(--hoa-green-dark)"],
.badge[style*="background-color:var(--hoa-green-dark)"],
.badge[style*="background: var(--hoa-green-dark)"],
.badge[style*="background:var(--hoa-green-dark)"],
.badge[style*="background-color: var(--gray-700)"],
.badge[style*="background-color:var(--gray-700)"],
.badge[style*="background: var(--gray-700)"],
.badge[style*="background:var(--gray-700)"],
.badge[style*="background-color: var(--gray-900)"],
.badge[style*="background-color:var(--gray-900)"],
.badge[style*="background: var(--gray-900)"],
.badge[style*="background:var(--gray-900)"],
.badge[style*="background-color: var(--charcoal)"],
.badge[style*="background-color:var(--charcoal)"],
.badge[style*="background: var(--charcoal)"],
.badge[style*="background:var(--charcoal)"],
.badge[style*="background-color: var(--danger)"],
.badge[style*="background-color:var(--danger)"],
.badge[style*="background: var(--danger)"],
.badge[style*="background:var(--danger)"],
.badge[style*="background-color: var(--success)"],
.badge[style*="background-color:var(--success)"],
.badge[style*="background: var(--success)"],
.badge[style*="background:var(--success)"],
.badge.bg-black,
.badge.bg-deep-purple,
.badge.bg-slate-blue,
.badge.bg-forest-green,
.badge.bg-terracotta,
.badge.bg-teal { color: #fff !important; }

/* Readable amber for TEXT on white/light backgrounds. Bootstrap's .text-warning
   (#ffc107) is ~1.6:1 on white and fails WCAG; use this darker amber (~5:1) when
   amber-toned text is wanted as a heading/body color rather than a badge fill. */
.text-amber-dark { color: #9a6700 !important; }

/* Note: Page-specific styles should be imported directly in the templates that need them */

/* Required-field markers: django-bootstrap5 adds .required to the wrapper
   of every required field (settings.BOOTSTRAP5.required_css_class) */
.required > label.form-label::after,
label.required::after {
  content: " *";
  color: #b02a37;
  font-weight: 600;
}
