/* ─────────────────────────────────────────────────────────────────────────────
   Executive City Travel — the single stylesheet.

   The Razor layout links exactly this one file:

     <link rel="stylesheet" href="~/css/app.css" asp-append-version="true" />
     <link rel="stylesheet" href="~/css/print.css" media="print" asp-append-version="true" />

   asp-append-version adds a content hash, so these can be cached hard and still
   update the moment a file changes.

   ═══ ORDER MATTERS. Do not reshuffle these. ═══════════════════════════════

     1. tokens/colors.css      Values only. No selectors but :root.
     2. tokens/typography.css  The @font-face rules and the type scale.
     3. tokens/spacing.css     The 4→64 scale, containers, breakpoint notes.
     4. tokens/radius.css      6 for controls, 10 for cards.
     5. tokens/elevation.css   The two shadows, focus geometry, motion, z-index.
     6. base.css               Reset and element defaults. Consumes 1–5.
     7. site.css               Layout primitives and the three shells.
     8. components.css         The §4 components. Last, so a component can
                               override an element default from base.css
                               without needing to raise its specificity.

   The five token files must precede everything, or a var() in base.css would
   resolve against an undefined property and silently fall back to nothing.
   Within the tokens, colours come first because typography.css and
   elevation.css both reference colour tokens.

   ═══ WHY @import AND NOT A BUNDLER ════════════════════════════════════════

   §4: "Hand-written CSS custom properties, no build step." There is no npm, no
   webpack, no Sass, and nothing to run before `dotnet run`. An editor opens a
   file and the change is live on refresh.

   The cost is real and worth stating: @import serialises requests — the browser
   must parse app.css before it discovers the eight files inside it. Over HTTP/2
   with the files on the same origin this is a few milliseconds on the first
   load and nothing at all afterwards, on a site of four public pages and a
   handful of private ones. If it ever does show up in a measurement, the fix is
   to concatenate these eight into one file at publish time with an MSBuild
   target — no source file below has to change for that.

   ═══ WHY print.css IS NOT IMPORTED HERE ═══════════════════════════════════

   It is linked separately with media="print" so the browser fetches it at a
   lower priority and it never blocks the first render. Importing it here would
   put it back on the critical path for no benefit. Custom properties still
   reach it: they inherit through the DOM, not through the stylesheet graph.

   ═══ NO EXTERNAL URLs ═════════════════════════════════════════════════════

   Every @import below is a relative path to a file in this repository. There is
   no fonts.googleapis.com, no CDN and no remote @import anywhere in this design
   system — §2.3 and §4 make self-hosting a privacy and CSP requirement, not a
   preference. The only url() in the whole system points at ../../fonts/ from
   tokens/typography.css. If you are about to add an external reference, the
   Content-Security-Policy will block it and it should.

   @import rules must be the first statements in a stylesheet — only @charset
   and @layer may precede them. Comments do not count, which is why this note
   can sit above them.
   ──────────────────────────────────────────────────────────────────────────── */

@import url('tokens/colors.css');
@import url('tokens/typography.css');
@import url('tokens/spacing.css');
@import url('tokens/radius.css');
@import url('tokens/elevation.css');
@import url('base.css');
@import url('site.css');
@import url('components.css');
