/* ============================================================================
   VENDOR LAYER — Bootstrap, demoted below the FullHunt layers.

   THE PROBLEM THIS SOLVES. Unlayered CSS beats layered CSS, always, regardless
   of specificity. Console loads Bootstrap 5.3.3, whose Reboot sets `body`, the
   heading elements, `a`, `button`, form controls and the whole `.btn` / `.card`
   / `.badge` families unlayered -- so a layered `fh-*` rule could never win an
   honest fight against it. That is not a theoretical concern: it is why
   style.css carries 156 `!important` declarations. Every one of them is a rule
   that lost to Bootstrap and had to shout.

   Pulling Bootstrap into a `vendor` layer that sorts BELOW reset/base/layout/
   components inverts that. A plain `.fh-btn { }` now outranks `.btn-primary`
   without a single `!important`, which is what makes those 156 removable as the
   surfaces they prop up get migrated.

   WHY @import AND NOT <link>. There is no way to assign a layer to a linked
   stylesheet -- `@import ... layer()` inside a CSS file is the only mechanism
   the platform offers. The cost of the extra hop is paid back by self-hosting:
   the file sits in this app's own static directory, so the import resolves
   locally instead of opening a second connection to a CDN.

   SUPPLY CHAIN, incidentally fixed. The CDN copy this replaces was loaded with
   no `integrity` and no `crossorigin` -- as is every other third-party asset
   this app loads. Vendoring the bytes removes that trust dependency for the
   largest of them. The remaining CDN assets (Bootstrap Icons, Line Awesome,
   Alpine, axios, ApexCharts, amCharts) are unchanged by this migration and are
   still unpinned or unhashed; that is filed, not fixed here.

   ORDERING. This file must be the FIRST stylesheet in the document, because a
   layer's position is fixed by the first @layer statement the parser sees.
   ========================================================================= */

@layer vendor, legacy, reset, base, layout, components, patterns, utilities, page;

/* ROOT-ABSOLUTE, not relative. Per spec a relative @import resolves against the
   importing STYLESHEET, and it does -- Bootstrap loads and applies correctly
   either way (verified: `--bs-blue` computes to #0d6efd). But the browser's
   preload scanner also speculatively resolves it against the DOCUMENT, which
   produced a second, failing request for `<page-path>/vendor/bootstrap-...css`
   on every page load: harmless, invisible in the UI, and pure 404/500 noise in
   the server log. An absolute path has one interpretation, so both resolutions
   agree. Console mounts static at the Flask default `/static`. */
@import url("/static/css/vendor/bootstrap-5.3.3.min.css") layer(vendor);
