/* ==========================================================================
   CodingWithEase.UI.Components — single entry stylesheet (P2-C).
   The host links ONLY this (plus the Themes cwe-ui.css). Every component family's
   CSS is @imported here in cascade order, so adding a new family is a one-line edit
   HERE — never a host edit. (@import paths resolve relative to this file's
   _content/CodingWithEase.UI.Components/ location.)
   End-state note: an MSBuild concat into one asset can replace these @imports later
   with zero host-contract change.

   WHY THE IMPORTS CARRY NO FINGERPRINT, AND MUST NOT BE GIVEN IMMUTABLE CACHING.
   This file is served fingerprinted (cwe-components.all.<hash>.css) while every URL
   below is a plain, stable name — which looks like a stale-cache bug waiting to
   happen: the entry file cache-busts on every build, the 35 sheets holding
   essentially all of the CSS do not, so a browser could render new markup against
   old rules after an upgrade. It cannot, and the reason is a header rather than the
   URL. app.MapStaticAssets() serves a NON-fingerprinted asset as
   `Cache-Control: no-cache` with an ETag, and no-cache means "revalidate before
   every use" — so each sheet is re-asked on every load and answers 304 when
   unchanged. Measured 15-Aug-2026: all three of the entry file, cwe-layout.css and
   cwe-fields.css returned `no-cache` with an ETag.

   So the safety lives in MapStaticAssets, not here. If these imports are ever
   replaced by a concat, or given fingerprinted names, or served by anything other
   than MapStaticAssets (a CDN, a reverse proxy rewriting Cache-Control, a plain
   UseStaticFiles with a max-age), re-check this before shipping. Immutable caching
   on an unfingerprinted URL is what would turn this design into the bug it merely
   resembles — and the symptom is silent: no error, just a page styled by the
   previous version.
   ========================================================================== */

/* Cross-family utilities FIRST: every sheet below may use .cwe-visually-hidden, and none of them
   owns it. A single class selector, so its position here costs no family any specificity. */
@import url('cwe-utilities.css');

/* Base layout/scaffold/menu/icon rules first (others build on the tokens/resets here). */
@import url('cwe-components.css');
@import url('cwe-dropdown.css');

/* Field editors + their form layout + their filters + the data grid. */
@import url('cwe-fields.css');
@import url('cwe-imagebox.css');
@import url('cwe-filepicker.css');
@import url('cwe-htmleditor.css');
@import url('cwe-forms.css');
@import url('cwe-filters.css');
@import url('cwe-grid.css');
@import url('cwe-matrix.css');
@import url('cwe-kanban.css');
@import url('cwe-calendar.css');

/* Overlays (dialogs/popovers) + transient/inline notification surfaces. */
@import url('cwe-overlays.css');
@import url('cwe-snackbars.css');
@import url('cwe-alert.css');

/* Actions + display primitives. */
@import url('cwe-buttons.css');
@import url('cwe-badges.css');
@import url('cwe-page.css');
@import url('cwe-launcher.css');
@import url('cwe-tabs.css');
@import url('cwe-wizard.css');
@import url('cwe-cards.css');
@import url('cwe-layout.css');
@import url('cwe-states.css');
@import url('cwe-focus.css');
@import url('cwe-progress.css');
@import url('cwe-display.css');
@import url('cwe-timeline.css');
@import url('cwe-list.css');
@import url('cwe-thread.css');
@import url('cwe-scoretable.css');
@import url('cwe-split.css');
@import url('cwe-tooltip.css');
@import url('cwe-expansion.css');
@import url('cwe-breadcrumbs.css');

/* App-platform chrome (UserMenu / LanguageSwitcher / NotificationBell). Last so its
   single-class rules win over the dropdown/popup defaults by source order. */
@import url('cwe-app.css');
