/* Moved out of the inline <style> in Shared/_OmradeNav.cshtml on 11.09.2026 (queue item 11).
   That partial renders on 49 pages, so these 7.307 bytes were being inlined on very nearly
   every page of the site, not just the address page. It used to sit behind an `_oFoerste`
   guard whose whole job was to stop it being emitted twice on one page; a cached file needs
   no such guard.
   Linked from _Layout right after gv.css, so it now precedes a page's own stylesheet instead
   of following it. The only selector it shares with the address page's CSS is `body`, and the
   two declarations are compatible (`padding:0` already zeroes padding-bottom). */

    .omrnav a, .omrnav .omr-tom { color:var(--muted); text-decoration:none; }
    .omrnav .aktiv { color:var(--accent); font-weight:600; }
    .omrnav svg { flex:none; }
    .omrnav .omr-tekst { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    @media (max-width:840px) {
        /* A FIXED FOUR-COLUMN GRID, and the empty Opslag slot keeps its column. This reverses a
           deliberate choice - it was flex with `flex:1 1 0` so that three items shared the width
           until there was something to go back to - because that choice had a cost nobody had
           measured, and Jonas reported it 28.07.2026: the bar visibly re-laid itself on every
           single page load.

           Traced from before first paint: at 49 ms the bar paints with THREE items (x = 67, 195,
           323) and at 366 ms `omrnav.js` - which is `defer`, so it runs after the first paint -
           replaces the empty slot with a real link and the bar re-divides into quarters
           (x = 51, 147, 243, 339). Søg jumps 16 px, Kort 48 px, Konto 16 px, for 317 ms.
           A fixed grid cannot do that: the columns are the same before and after, so filling the
           slot changes nothing but the slot.

           The cost, stated plainly because it is a real one: a visitor who has not yet opened a
           single lookup page has no `gv_sidst` cookie, and now sees an EMPTY third column instead
           of three items sharing the bar. That lasts until their first address page and the cookie
           is good for a year, whereas the jump was on every load for everyone who had ever looked
           anything up. If the empty column turns out to look worse than the jump did, the fix is a
           fourth real item rather than a return to flex.

           THE SIZES ARE px, NOT rem, AND THAT IS THE FIX for a bug Jonas reported 28.07.2026: on
           /kort the icons sat about one pixel lower than on every other page. `rem` resolves against
           the ROOT font size, and Kort.cshtml is the one page that sets `html { font:15px/1.5 }` -
           gv.css only ever sets `body`, so the root is the browser's 16px everywhere else. Every rem
           here therefore came out 6.25% smaller on that one page: bar 46.03 px against 47.48, icons
           1.16 px lower (measured 390x844 DPR3 against prod). The values below are what 16px gave.
           This bar is shared chrome on 56 pages and must not be movable by a page's own typography,
           which is exactly what a page-scoped root font size makes it. The icons are a fixed 23 px
           already, so the bar never scaled with a user's font size in the first place. */
        .omrnav { position:fixed; left:0; right:0; bottom:0; z-index:90;
            display:grid; grid-template-columns:repeat(4, 1fr);
            background:var(--bg); border-top:1px solid var(--line);
            padding:4.8px 3.2px calc(5.12px + env(safe-area-inset-bottom)); }
        .omrnav a, .omrnav .omr-tom { display:flex; flex-direction:column; align-items:center;
            gap:2.56px; font-size:9.6px; line-height:1.15; min-width:0; }
        .omrnav svg { width:23px; height:23px; }
        .omrnav .omr-tekst { max-width:100%; padding:0 4.8px; }
        /* Nothing looked up yet: the slot is INVISIBLE but keeps its column, so filling it in from
           the cookie moves nothing. `visibility` rather than `display` is the whole mechanism -
           `display:none` takes the element out of grid flow and the other three would spread to
           fill it, which is the jump this is here to stop. It stays out of the accessibility tree
           either way. Desktop still drops it entirely: that row is right-aligned and content-sized,
           so an invisible item there would be a gap rather than a reserved column. */
        .omrnav .omr-tom { visibility:hidden; }
        /* px for the same reason as above: this clears a bar that is now a fixed px height, so a
           rem clearance would drift away from it the moment a page changed the root font size.
           73.6px is 4.6rem at the 16px root, i.e. byte-identical to what it rendered before. */
        body:not(.kortside) { padding-bottom:73.6px; }
        /* full-screen map: lift the MapLibre attribution up above the bar */
        body.kortside .maplibregl-ctrl-bottom-left, body.kortside .maplibregl-ctrl-bottom-right { bottom:calc(3.3rem + env(safe-area-inset-bottom)); }
        /* Keyboard up: hide the bar, or iOS strands it in the middle of the screen (it shrinks the
           visual viewport but leaves the layout viewport alone). The class comes from a MEASUREMENT
           of the viewport in omrnav.js, not from :focus - the comment there records why the focus
           proxy was wrong in both directions. */
        body.gv-tastatur .omrnav { display:none; }
    }
    /* The wordmark (07.08.2026, part of the de-AI-look round). Desktop turns the floating
       link row into a real header: brand left, areas right, a rule underneath. The site had
       no identity anchor at all - the "logo" was the h1 on the front page and nothing
       anywhere else. Serif to match the headings; the roofline mark is drawn in the same
       stroke style as the four area icons beside it. */
    /* a.omr-maerke at 0,1,2: the mobile block's `.omrnav a` (0,1,1) must not win and paint
       the wordmark as a fifth bar item - it did, and the bar-geometry gate caught it. */
    .omrnav a.omr-maerke { display:none; }
    @media (min-width:841px) {
        .omrnav { display:flex; justify-content:flex-end; align-items:center; gap:1.3rem;
            margin:0 0 1.6rem; font-size:.84rem;
            padding:0 0 .75rem; border-bottom:1px solid var(--line); }
        .omrnav a { display:inline-flex; align-items:center; gap:.34rem; }
        .omrnav a:hover { color:var(--fg); }
        .omrnav .aktiv:hover { color:var(--accent); }
        .omrnav svg { width:15px; height:15px; }
        .omrnav .omr-tekst { max-width:11rem; }
        .omrnav .omr-tom { display:none; }
        /* ... and so is the Statistik stand-in that omrnav.js puts in its place on a phone
           (docs/STATISTIK-INDGANGE-PLAN.md item 8). The empty slot exists to hold a column open
           in the 4-column mobile grid; the desktop row has no such column, so the stand-in has
           nothing to stand in for here. */
        .omrnav a.omr-stat { display:none; }
        .omrnav.omr-kortside { display:none; }
        .omrnav a.omr-maerke { display:inline-flex; align-items:center; gap:.42rem; margin-right:auto;
            font-family:"Source Serif 4", Georgia, serif; font-weight:700; font-size:1.18rem;
            letter-spacing:-.01em; color:var(--fg); }
        .omrnav a.omr-maerke:hover { color:var(--fg); }
        /* Stakken carries its own four greens per theme; the stroke is the page background via
           var(--bg), so the gaps between the slabs theme themselves. */
        .omr-maerke svg.gvlogo { width:19px; height:19px; }
        .omr-maerke .gvlogo-moerk { display:none; }
        @media (prefers-color-scheme: dark) {
            .omr-maerke .gvlogo-lys { display:none; }
            .omr-maerke .gvlogo-moerk { display:inline; }
        }
    }
    @media print { .omrnav { display:none; } body { padding-bottom:0; } }
