/* =============================================================================
   Portalens utility-lager
   =============================================================================

   ERSÄTTER cdn.tailwindcss.com. Det kompilerade CSS i webbläsaren vid varje
   sidladdning — gjort för prototyper, med tre kostnader: klasserna fanns inte
   förrän JavaScript hunnit köra, ingenting var versionslåst, och varje besökare
   gjorde ett tredjepartsanrop i renderingsvägen.

   Alternativet var ett npm-bygge. Den kedjan vill vi inte ha i det här repot, så
   det här lagret är handskrivet och statiskt.

   ---------------------------------------------------------------------------
   LÄS DET HÄR INNAN DU SKRIVER EN NY KLASS I MARKUPEN

   Det finns ingen kompilator som hittar på klasser åt dig längre. Skriver du
   mt-9 och den inte står här nedan händer INGENTING — ingen varning, ingen
   röd markering, bara ett element som inte flyttar sig.

   Två vägar när du behöver något nytt:

     1. Hör det till en komponents utseende? Lägg det i en pp-klass i
        partner-buttons.css eller partner-forms.css. Det är den väg vi helst
        går: namngivna klasser säger VAD något är, inte hur det ser ut.

     2. Är det verkligen en generell utility? Lägg till den här, i rätt
        avdelning, och håll skalan hel — hoppa inte över steg.

   Skalorna följer Tailwinds egna värden, så markup som redan står i repot
   fortsätter betyda samma sak. 1 = 0.25rem.

   ---------------------------------------------------------------------------
   ORDNING

   Filen länkas SIST i head, precis där CDN:et la sin <style>. Utilities ska
   kunna vinna över komponent-CSS på lika specificitet, och Preflight måste köra
   efter MudBlazors normalisering — se App.razor.
   ============================================================================= */

/* -----------------------------------------------------------------------------
   1. Preflight — den normalisering allt annat är ritat ovanpå
   -------------------------------------------------------------------------- */

*, ::before, ::after {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
    border-color: currentColor;
}

html {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--pp-font-sans);
}

body {
    margin: 0;
    line-height: inherit;
}

hr { height: 0; color: inherit; border-top-width: 1px; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; margin: 0; }
p, figure, blockquote, dl, dd { margin: 0; }
ol, ul, menu { list-style: none; margin: 0; padding: 0; }
a { color: inherit; text-decoration: inherit; }
b, strong { font-weight: bolder; }
small { font-size: 80%; }
img, svg, video, canvas, audio, iframe, embed, object { display: block; vertical-align: middle; }
img, video { max-width: 100%; height: auto; }

button, input, optgroup, select, textarea {
    font-family: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
}

button, [type='button'], [type='submit'] {
    -webkit-appearance: button;
    background-color: transparent;
    background-image: none;
    cursor: pointer;
}

button:disabled, [type='button']:disabled, [type='submit']:disabled { cursor: default; }
textarea { resize: vertical; }
::placeholder { opacity: 1; color: #9ca3af; }
table { text-indent: 0; border-color: inherit; border-collapse: collapse; }
[hidden] { display: none; }

/* Typsnittsstacken bor här så preflight kan nå den utan att känna till Tailwind. */
:root {
    --pp-font-sans: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

/* -----------------------------------------------------------------------------
   2. Layout — display, flöde, position
   -------------------------------------------------------------------------- */

.block { display: block; }
.inline-block { display: inline-block; }
.inline { display: inline; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.grid { display: grid; }
.contents { display: contents; }
.hidden { display: none; }

.flex-row { flex-direction: row; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.flex-1 { flex: 1 1 0%; }
.flex-auto { flex: 1 1 auto; }
.flex-grow, .grow { flex-grow: 1; }
.shrink-0 { flex-shrink: 0; }

.items-start { align-items: flex-start; }
.items-center { align-items: center; }
.items-end { align-items: flex-end; }
.items-stretch { align-items: stretch; }
.self-end { align-self: flex-end; }

.justify-start { justify-content: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-end { justify-content: flex-end; }

.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.col-span-2 { grid-column: span 2 / span 2; }

.static { position: static; }
.relative { position: relative; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.sticky { position: sticky; }

.inset-0 { inset: 0; }
.inset-x-0 { left: 0; right: 0; }
.top-0 { top: 0; }
.top-1\/2 { top: 50%; }
.top-2 { top: 0.5rem; }
.top-3 { top: 0.75rem; }
.top-4 { top: 1rem; }
.top-full { top: 100%; }
.bottom-0 { bottom: 0; }
.bottom-4 { bottom: 1rem; }
.bottom-6 { bottom: 1.5rem; }
.bottom-8 { bottom: 2rem; }
.left-0 { left: 0; }
.left-1\/2 { left: 50%; }
.left-4 { left: 1rem; }
.right-2 { right: 0.5rem; }
.right-3 { right: 0.75rem; }
.right-4 { right: 1rem; }
.right-5 { right: 1.25rem; }
.right-6 { right: 1.5rem; }
.right-8 { right: 2rem; }
.-top-1 { top: -0.25rem; }
.-top-4 { top: -1rem; }
.-top-10 { top: -2.5rem; }
.-bottom-3 { bottom: -0.75rem; }
.-bottom-10 { bottom: -2.5rem; }
.-left-10 { left: -2.5rem; }
.-right-2 { right: -0.5rem; }
.-right-10 { right: -2.5rem; }
.-mr-6 { margin-right: -1.5rem; }
.-ml-40 { margin-left: -10rem; }
.-mr-40 { margin-right: -10rem; }
.-mt-40 { margin-top: -10rem; }
.-mb-40 { margin-bottom: -10rem; }
.-mt-4 { margin-top: -1rem; }
.-mx-4 { margin-left: -1rem; margin-right: -1rem; }

.z-0 { z-index: 0; }
.z-10 { z-index: 10; }
.z-20 { z-index: 20; }
.z-50 { z-index: 50; }
.z-\[60\] { z-index: 60; }
.z-\[90\] { z-index: 90; }
.z-\[95\] { z-index: 95; }
.z-\[100\] { z-index: 100; }
.z-\[99999\] { z-index: 99999; }

.overflow-hidden { overflow: hidden; }
.overflow-visible { overflow: visible; }
.overflow-y-auto { overflow-y: auto; }
.overflow-x-auto { overflow-x: auto; }

/* -----------------------------------------------------------------------------
   3. Avstånd — margin, padding, gap, space

   Tailwinds skala: 1 = 0.25rem. Hela steget 0–24 finns, inte bara de vi råkar
   använda i dag, så nästa justering inte kräver en tur hit.
   -------------------------------------------------------------------------- */

.m-0 { margin: 0; } .mx-0 { margin-left: 0; margin-right: 0; } .my-0 { margin-top: 0; margin-bottom: 0; }
.mt-0 { margin-top: 0; } .mb-0 { margin-bottom: 0; } .ml-0 { margin-left: 0; } .mr-0 { margin-right: 0; }
.p-0 { padding: 0; } .px-0 { padding-left: 0; padding-right: 0; } .py-0 { padding-top: 0; padding-bottom: 0; }
.pt-0 { padding-top: 0; } .pb-0 { padding-bottom: 0; } .pl-0 { padding-left: 0; } .pr-0 { padding-right: 0; }
.gap-0 { gap: 0; } .gap-x-0 { column-gap: 0; } .gap-y-0 { row-gap: 0; }
.space-y-0 > * + * { margin-top: 0; } .space-x-0 > * + * { margin-left: 0; }
.m-0.5 { margin: 0.125rem; } .mx-0.5 { margin-left: 0.125rem; margin-right: 0.125rem; } .my-0.5 { margin-top: 0.125rem; margin-bottom: 0.125rem; }
.mt-0.5 { margin-top: 0.125rem; } .mb-0.5 { margin-bottom: 0.125rem; } .ml-0.5 { margin-left: 0.125rem; } .mr-0.5 { margin-right: 0.125rem; }
.p-0.5 { padding: 0.125rem; } .px-0.5 { padding-left: 0.125rem; padding-right: 0.125rem; } .py-0.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; }
.pt-0.5 { padding-top: 0.125rem; } .pb-0.5 { padding-bottom: 0.125rem; } .pl-0.5 { padding-left: 0.125rem; } .pr-0.5 { padding-right: 0.125rem; }
.gap-0.5 { gap: 0.125rem; } .gap-x-0.5 { column-gap: 0.125rem; } .gap-y-0.5 { row-gap: 0.125rem; }
.space-y-0.5 > * + * { margin-top: 0.125rem; } .space-x-0.5 > * + * { margin-left: 0.125rem; }
.m-1 { margin: 0.25rem; } .mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; } .my-1 { margin-top: 0.25rem; margin-bottom: 0.25rem; }
.mt-1 { margin-top: 0.25rem; } .mb-1 { margin-bottom: 0.25rem; } .ml-1 { margin-left: 0.25rem; } .mr-1 { margin-right: 0.25rem; }
.p-1 { padding: 0.25rem; } .px-1 { padding-left: 0.25rem; padding-right: 0.25rem; } .py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.pt-1 { padding-top: 0.25rem; } .pb-1 { padding-bottom: 0.25rem; } .pl-1 { padding-left: 0.25rem; } .pr-1 { padding-right: 0.25rem; }
.gap-1 { gap: 0.25rem; } .gap-x-1 { column-gap: 0.25rem; } .gap-y-1 { row-gap: 0.25rem; }
.space-y-1 > * + * { margin-top: 0.25rem; } .space-x-1 > * + * { margin-left: 0.25rem; }
.m-1.5 { margin: 0.375rem; } .mx-1.5 { margin-left: 0.375rem; margin-right: 0.375rem; } .my-1.5 { margin-top: 0.375rem; margin-bottom: 0.375rem; }
.mt-1.5 { margin-top: 0.375rem; } .mb-1.5 { margin-bottom: 0.375rem; } .ml-1.5 { margin-left: 0.375rem; } .mr-1.5 { margin-right: 0.375rem; }
.p-1.5 { padding: 0.375rem; } .px-1.5 { padding-left: 0.375rem; padding-right: 0.375rem; } .py-1.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.pt-1.5 { padding-top: 0.375rem; } .pb-1.5 { padding-bottom: 0.375rem; } .pl-1.5 { padding-left: 0.375rem; } .pr-1.5 { padding-right: 0.375rem; }
.gap-1.5 { gap: 0.375rem; } .gap-x-1.5 { column-gap: 0.375rem; } .gap-y-1.5 { row-gap: 0.375rem; }
.space-y-1.5 > * + * { margin-top: 0.375rem; } .space-x-1.5 > * + * { margin-left: 0.375rem; }
.m-2 { margin: 0.5rem; } .mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; } .my-2 { margin-top: 0.5rem; margin-bottom: 0.5rem; }
.mt-2 { margin-top: 0.5rem; } .mb-2 { margin-bottom: 0.5rem; } .ml-2 { margin-left: 0.5rem; } .mr-2 { margin-right: 0.5rem; }
.p-2 { padding: 0.5rem; } .px-2 { padding-left: 0.5rem; padding-right: 0.5rem; } .py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.pt-2 { padding-top: 0.5rem; } .pb-2 { padding-bottom: 0.5rem; } .pl-2 { padding-left: 0.5rem; } .pr-2 { padding-right: 0.5rem; }
.gap-2 { gap: 0.5rem; } .gap-x-2 { column-gap: 0.5rem; } .gap-y-2 { row-gap: 0.5rem; }
.space-y-2 > * + * { margin-top: 0.5rem; } .space-x-2 > * + * { margin-left: 0.5rem; }
.m-2.5 { margin: 0.625rem; } .mx-2.5 { margin-left: 0.625rem; margin-right: 0.625rem; } .my-2.5 { margin-top: 0.625rem; margin-bottom: 0.625rem; }
.mt-2.5 { margin-top: 0.625rem; } .mb-2.5 { margin-bottom: 0.625rem; } .ml-2.5 { margin-left: 0.625rem; } .mr-2.5 { margin-right: 0.625rem; }
.p-2.5 { padding: 0.625rem; } .px-2.5 { padding-left: 0.625rem; padding-right: 0.625rem; } .py-2.5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
.pt-2.5 { padding-top: 0.625rem; } .pb-2.5 { padding-bottom: 0.625rem; } .pl-2.5 { padding-left: 0.625rem; } .pr-2.5 { padding-right: 0.625rem; }
.gap-2.5 { gap: 0.625rem; } .gap-x-2.5 { column-gap: 0.625rem; } .gap-y-2.5 { row-gap: 0.625rem; }
.space-y-2.5 > * + * { margin-top: 0.625rem; } .space-x-2.5 > * + * { margin-left: 0.625rem; }
.m-3 { margin: 0.75rem; } .mx-3 { margin-left: 0.75rem; margin-right: 0.75rem; } .my-3 { margin-top: 0.75rem; margin-bottom: 0.75rem; }
.mt-3 { margin-top: 0.75rem; } .mb-3 { margin-bottom: 0.75rem; } .ml-3 { margin-left: 0.75rem; } .mr-3 { margin-right: 0.75rem; }
.p-3 { padding: 0.75rem; } .px-3 { padding-left: 0.75rem; padding-right: 0.75rem; } .py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.pt-3 { padding-top: 0.75rem; } .pb-3 { padding-bottom: 0.75rem; } .pl-3 { padding-left: 0.75rem; } .pr-3 { padding-right: 0.75rem; }
.gap-3 { gap: 0.75rem; } .gap-x-3 { column-gap: 0.75rem; } .gap-y-3 { row-gap: 0.75rem; }
.space-y-3 > * + * { margin-top: 0.75rem; } .space-x-3 > * + * { margin-left: 0.75rem; }
.m-3.5 { margin: 0.875rem; } .mx-3.5 { margin-left: 0.875rem; margin-right: 0.875rem; } .my-3.5 { margin-top: 0.875rem; margin-bottom: 0.875rem; }
.mt-3.5 { margin-top: 0.875rem; } .mb-3.5 { margin-bottom: 0.875rem; } .ml-3.5 { margin-left: 0.875rem; } .mr-3.5 { margin-right: 0.875rem; }
.p-3.5 { padding: 0.875rem; } .px-3.5 { padding-left: 0.875rem; padding-right: 0.875rem; } .py-3.5 { padding-top: 0.875rem; padding-bottom: 0.875rem; }
.pt-3.5 { padding-top: 0.875rem; } .pb-3.5 { padding-bottom: 0.875rem; } .pl-3.5 { padding-left: 0.875rem; } .pr-3.5 { padding-right: 0.875rem; }
.gap-3.5 { gap: 0.875rem; } .gap-x-3.5 { column-gap: 0.875rem; } .gap-y-3.5 { row-gap: 0.875rem; }
.space-y-3.5 > * + * { margin-top: 0.875rem; } .space-x-3.5 > * + * { margin-left: 0.875rem; }
.m-4 { margin: 1rem; } .mx-4 { margin-left: 1rem; margin-right: 1rem; } .my-4 { margin-top: 1rem; margin-bottom: 1rem; }
.mt-4 { margin-top: 1rem; } .mb-4 { margin-bottom: 1rem; } .ml-4 { margin-left: 1rem; } .mr-4 { margin-right: 1rem; }
.p-4 { padding: 1rem; } .px-4 { padding-left: 1rem; padding-right: 1rem; } .py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.pt-4 { padding-top: 1rem; } .pb-4 { padding-bottom: 1rem; } .pl-4 { padding-left: 1rem; } .pr-4 { padding-right: 1rem; }
.gap-4 { gap: 1rem; } .gap-x-4 { column-gap: 1rem; } .gap-y-4 { row-gap: 1rem; }
.space-y-4 > * + * { margin-top: 1rem; } .space-x-4 > * + * { margin-left: 1rem; }
.m-5 { margin: 1.25rem; } .mx-5 { margin-left: 1.25rem; margin-right: 1.25rem; } .my-5 { margin-top: 1.25rem; margin-bottom: 1.25rem; }
.mt-5 { margin-top: 1.25rem; } .mb-5 { margin-bottom: 1.25rem; } .ml-5 { margin-left: 1.25rem; } .mr-5 { margin-right: 1.25rem; }
.p-5 { padding: 1.25rem; } .px-5 { padding-left: 1.25rem; padding-right: 1.25rem; } .py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.pt-5 { padding-top: 1.25rem; } .pb-5 { padding-bottom: 1.25rem; } .pl-5 { padding-left: 1.25rem; } .pr-5 { padding-right: 1.25rem; }
.gap-5 { gap: 1.25rem; } .gap-x-5 { column-gap: 1.25rem; } .gap-y-5 { row-gap: 1.25rem; }
.space-y-5 > * + * { margin-top: 1.25rem; } .space-x-5 > * + * { margin-left: 1.25rem; }
.m-6 { margin: 1.5rem; } .mx-6 { margin-left: 1.5rem; margin-right: 1.5rem; } .my-6 { margin-top: 1.5rem; margin-bottom: 1.5rem; }
.mt-6 { margin-top: 1.5rem; } .mb-6 { margin-bottom: 1.5rem; } .ml-6 { margin-left: 1.5rem; } .mr-6 { margin-right: 1.5rem; }
.p-6 { padding: 1.5rem; } .px-6 { padding-left: 1.5rem; padding-right: 1.5rem; } .py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.pt-6 { padding-top: 1.5rem; } .pb-6 { padding-bottom: 1.5rem; } .pl-6 { padding-left: 1.5rem; } .pr-6 { padding-right: 1.5rem; }
.gap-6 { gap: 1.5rem; } .gap-x-6 { column-gap: 1.5rem; } .gap-y-6 { row-gap: 1.5rem; }
.space-y-6 > * + * { margin-top: 1.5rem; } .space-x-6 > * + * { margin-left: 1.5rem; }
.m-7 { margin: 1.75rem; } .mx-7 { margin-left: 1.75rem; margin-right: 1.75rem; } .my-7 { margin-top: 1.75rem; margin-bottom: 1.75rem; }
.mt-7 { margin-top: 1.75rem; } .mb-7 { margin-bottom: 1.75rem; } .ml-7 { margin-left: 1.75rem; } .mr-7 { margin-right: 1.75rem; }
.p-7 { padding: 1.75rem; } .px-7 { padding-left: 1.75rem; padding-right: 1.75rem; } .py-7 { padding-top: 1.75rem; padding-bottom: 1.75rem; }
.pt-7 { padding-top: 1.75rem; } .pb-7 { padding-bottom: 1.75rem; } .pl-7 { padding-left: 1.75rem; } .pr-7 { padding-right: 1.75rem; }
.gap-7 { gap: 1.75rem; } .gap-x-7 { column-gap: 1.75rem; } .gap-y-7 { row-gap: 1.75rem; }
.space-y-7 > * + * { margin-top: 1.75rem; } .space-x-7 > * + * { margin-left: 1.75rem; }
.m-8 { margin: 2rem; } .mx-8 { margin-left: 2rem; margin-right: 2rem; } .my-8 { margin-top: 2rem; margin-bottom: 2rem; }
.mt-8 { margin-top: 2rem; } .mb-8 { margin-bottom: 2rem; } .ml-8 { margin-left: 2rem; } .mr-8 { margin-right: 2rem; }
.p-8 { padding: 2rem; } .px-8 { padding-left: 2rem; padding-right: 2rem; } .py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.pt-8 { padding-top: 2rem; } .pb-8 { padding-bottom: 2rem; } .pl-8 { padding-left: 2rem; } .pr-8 { padding-right: 2rem; }
.gap-8 { gap: 2rem; } .gap-x-8 { column-gap: 2rem; } .gap-y-8 { row-gap: 2rem; }
.space-y-8 > * + * { margin-top: 2rem; } .space-x-8 > * + * { margin-left: 2rem; }
.m-9 { margin: 2.25rem; } .mx-9 { margin-left: 2.25rem; margin-right: 2.25rem; } .my-9 { margin-top: 2.25rem; margin-bottom: 2.25rem; }
.mt-9 { margin-top: 2.25rem; } .mb-9 { margin-bottom: 2.25rem; } .ml-9 { margin-left: 2.25rem; } .mr-9 { margin-right: 2.25rem; }
.p-9 { padding: 2.25rem; } .px-9 { padding-left: 2.25rem; padding-right: 2.25rem; } .py-9 { padding-top: 2.25rem; padding-bottom: 2.25rem; }
.pt-9 { padding-top: 2.25rem; } .pb-9 { padding-bottom: 2.25rem; } .pl-9 { padding-left: 2.25rem; } .pr-9 { padding-right: 2.25rem; }
.gap-9 { gap: 2.25rem; } .gap-x-9 { column-gap: 2.25rem; } .gap-y-9 { row-gap: 2.25rem; }
.space-y-9 > * + * { margin-top: 2.25rem; } .space-x-9 > * + * { margin-left: 2.25rem; }
.m-10 { margin: 2.5rem; } .mx-10 { margin-left: 2.5rem; margin-right: 2.5rem; } .my-10 { margin-top: 2.5rem; margin-bottom: 2.5rem; }
.mt-10 { margin-top: 2.5rem; } .mb-10 { margin-bottom: 2.5rem; } .ml-10 { margin-left: 2.5rem; } .mr-10 { margin-right: 2.5rem; }
.p-10 { padding: 2.5rem; } .px-10 { padding-left: 2.5rem; padding-right: 2.5rem; } .py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.pt-10 { padding-top: 2.5rem; } .pb-10 { padding-bottom: 2.5rem; } .pl-10 { padding-left: 2.5rem; } .pr-10 { padding-right: 2.5rem; }
.gap-10 { gap: 2.5rem; } .gap-x-10 { column-gap: 2.5rem; } .gap-y-10 { row-gap: 2.5rem; }
.space-y-10 > * + * { margin-top: 2.5rem; } .space-x-10 > * + * { margin-left: 2.5rem; }
.m-11 { margin: 2.75rem; } .mx-11 { margin-left: 2.75rem; margin-right: 2.75rem; } .my-11 { margin-top: 2.75rem; margin-bottom: 2.75rem; }
.mt-11 { margin-top: 2.75rem; } .mb-11 { margin-bottom: 2.75rem; } .ml-11 { margin-left: 2.75rem; } .mr-11 { margin-right: 2.75rem; }
.p-11 { padding: 2.75rem; } .px-11 { padding-left: 2.75rem; padding-right: 2.75rem; } .py-11 { padding-top: 2.75rem; padding-bottom: 2.75rem; }
.pt-11 { padding-top: 2.75rem; } .pb-11 { padding-bottom: 2.75rem; } .pl-11 { padding-left: 2.75rem; } .pr-11 { padding-right: 2.75rem; }
.gap-11 { gap: 2.75rem; } .gap-x-11 { column-gap: 2.75rem; } .gap-y-11 { row-gap: 2.75rem; }
.space-y-11 > * + * { margin-top: 2.75rem; } .space-x-11 > * + * { margin-left: 2.75rem; }
.m-12 { margin: 3rem; } .mx-12 { margin-left: 3rem; margin-right: 3rem; } .my-12 { margin-top: 3rem; margin-bottom: 3rem; }
.mt-12 { margin-top: 3rem; } .mb-12 { margin-bottom: 3rem; } .ml-12 { margin-left: 3rem; } .mr-12 { margin-right: 3rem; }
.p-12 { padding: 3rem; } .px-12 { padding-left: 3rem; padding-right: 3rem; } .py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.pt-12 { padding-top: 3rem; } .pb-12 { padding-bottom: 3rem; } .pl-12 { padding-left: 3rem; } .pr-12 { padding-right: 3rem; }
.gap-12 { gap: 3rem; } .gap-x-12 { column-gap: 3rem; } .gap-y-12 { row-gap: 3rem; }
.space-y-12 > * + * { margin-top: 3rem; } .space-x-12 > * + * { margin-left: 3rem; }
.m-14 { margin: 3.5rem; } .mx-14 { margin-left: 3.5rem; margin-right: 3.5rem; } .my-14 { margin-top: 3.5rem; margin-bottom: 3.5rem; }
.mt-14 { margin-top: 3.5rem; } .mb-14 { margin-bottom: 3.5rem; } .ml-14 { margin-left: 3.5rem; } .mr-14 { margin-right: 3.5rem; }
.p-14 { padding: 3.5rem; } .px-14 { padding-left: 3.5rem; padding-right: 3.5rem; } .py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.pt-14 { padding-top: 3.5rem; } .pb-14 { padding-bottom: 3.5rem; } .pl-14 { padding-left: 3.5rem; } .pr-14 { padding-right: 3.5rem; }
.gap-14 { gap: 3.5rem; } .gap-x-14 { column-gap: 3.5rem; } .gap-y-14 { row-gap: 3.5rem; }
.space-y-14 > * + * { margin-top: 3.5rem; } .space-x-14 > * + * { margin-left: 3.5rem; }
.m-16 { margin: 4rem; } .mx-16 { margin-left: 4rem; margin-right: 4rem; } .my-16 { margin-top: 4rem; margin-bottom: 4rem; }
.mt-16 { margin-top: 4rem; } .mb-16 { margin-bottom: 4rem; } .ml-16 { margin-left: 4rem; } .mr-16 { margin-right: 4rem; }
.p-16 { padding: 4rem; } .px-16 { padding-left: 4rem; padding-right: 4rem; } .py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.pt-16 { padding-top: 4rem; } .pb-16 { padding-bottom: 4rem; } .pl-16 { padding-left: 4rem; } .pr-16 { padding-right: 4rem; }
.gap-16 { gap: 4rem; } .gap-x-16 { column-gap: 4rem; } .gap-y-16 { row-gap: 4rem; }
.space-y-16 > * + * { margin-top: 4rem; } .space-x-16 > * + * { margin-left: 4rem; }
.m-20 { margin: 5rem; } .mx-20 { margin-left: 5rem; margin-right: 5rem; } .my-20 { margin-top: 5rem; margin-bottom: 5rem; }
.mt-20 { margin-top: 5rem; } .mb-20 { margin-bottom: 5rem; } .ml-20 { margin-left: 5rem; } .mr-20 { margin-right: 5rem; }
.p-20 { padding: 5rem; } .px-20 { padding-left: 5rem; padding-right: 5rem; } .py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.pt-20 { padding-top: 5rem; } .pb-20 { padding-bottom: 5rem; } .pl-20 { padding-left: 5rem; } .pr-20 { padding-right: 5rem; }
.gap-20 { gap: 5rem; } .gap-x-20 { column-gap: 5rem; } .gap-y-20 { row-gap: 5rem; }
.space-y-20 > * + * { margin-top: 5rem; } .space-x-20 > * + * { margin-left: 5rem; }
.m-24 { margin: 6rem; } .mx-24 { margin-left: 6rem; margin-right: 6rem; } .my-24 { margin-top: 6rem; margin-bottom: 6rem; }
.mt-24 { margin-top: 6rem; } .mb-24 { margin-bottom: 6rem; } .ml-24 { margin-left: 6rem; } .mr-24 { margin-right: 6rem; }
.p-24 { padding: 6rem; } .px-24 { padding-left: 6rem; padding-right: 6rem; } .py-24 { padding-top: 6rem; padding-bottom: 6rem; }
.pt-24 { padding-top: 6rem; } .pb-24 { padding-bottom: 6rem; } .pl-24 { padding-left: 6rem; } .pr-24 { padding-right: 6rem; }
.gap-24 { gap: 6rem; } .gap-x-24 { column-gap: 6rem; } .gap-y-24 { row-gap: 6rem; }
.space-y-24 > * + * { margin-top: 6rem; } .space-x-24 > * + * { margin-left: 6rem; }
.mx-auto { margin-left: auto; margin-right: auto; }
.ml-auto { margin-left: auto; }
.mr-auto { margin-right: auto; }
/* Trycker ner sista raden i en flex-kolumn. Det är så två kort med olika lång text
   får sina åtgärdsrader på samma höjd — utan den ligger raden direkt under texten
   och korten ser ojämna ut fast de är exakt lika höga. */
.mt-auto { margin-top: auto; }

/* -----------------------------------------------------------------------------
   4. Storlek — bredd, höjd, max/min
   -------------------------------------------------------------------------- */

.w-3 { width: 0.75rem; } .h-3 { height: 0.75rem; }
.w-3.5 { width: 0.875rem; } .h-3.5 { height: 0.875rem; }
.w-4 { width: 1rem; } .h-4 { height: 1rem; }
.w-6 { width: 1.5rem; } .h-6 { height: 1.5rem; }
.w-7 { width: 1.75rem; } .h-7 { height: 1.75rem; }
.w-8 { width: 2rem; } .h-8 { height: 2rem; }
.w-10 { width: 2.5rem; } .h-10 { height: 2.5rem; }
.w-12 { width: 3rem; } .h-12 { height: 3rem; }
.w-14 { width: 3.5rem; } .h-14 { height: 3.5rem; }
.w-16 { width: 4rem; } .h-16 { height: 4rem; }
.w-20 { width: 5rem; } .h-20 { height: 5rem; }
.w-24 { width: 6rem; } .h-24 { height: 6rem; }
.w-40 { width: 10rem; } .h-40 { height: 10rem; }
.w-56 { width: 14rem; } .h-56 { height: 14rem; }
.w-80 { width: 20rem; } .h-80 { height: 20rem; }
.h-1\.5 { height: 0.375rem; }
.w-full { width: 100%; }
.h-full { height: 100%; }
.w-auto { width: auto; }
.w-px { width: 1px; }
.h-px { height: 1px; }
.h-screen { height: 100vh; }
.min-h-screen { min-height: 100vh; }
.w-\[25\%\] { width: 25%; }
.h-\[40\%\] { height: 40%; }
.h-\[56px\] { height: 56px; }
.h-\[104px\] { height: 104px; }
.w-\[calc\(100\%-2rem\)\] { width: calc(100% - 2rem); }
.h-\[calc\(100\%-10rem\)\] { height: calc(100% - 10rem); }
.min-h-\[20px\] { min-height: 20px; }
.min-h-\[120px\] { min-height: 120px; }
.min-h-\[60vh\] { min-height: 60vh; }
.max-h-\[90vh\] { max-height: 90vh; }
.aspect-video { aspect-ratio: 16 / 9; }
.aspect-panoramic { aspect-ratio: 2.56 / 1; }

.max-w-none { max-width: none; }
.max-w-xs { max-width: 20rem; }
.max-w-sm { max-width: 24rem; }
.max-w-md { max-width: 28rem; }
.max-w-lg { max-width: 32rem; }
.max-w-xl { max-width: 36rem; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-5xl { max-width: 64rem; }
.max-w-6xl { max-width: 72rem; }
.max-w-7xl { max-width: 80rem; }

/* -----------------------------------------------------------------------------
   5. Typografi
   -------------------------------------------------------------------------- */

.text-\[10px\] { font-size: 10px; }
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-base { font-size: 1rem; line-height: 1.5rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.text-5xl { font-size: 3rem; line-height: 1; }

.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.font-extrabold { font-weight: 800; }
.font-black { font-weight: 900; }
.font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.font-sans { font-family: var(--pp-font-sans); }

.leading-none { line-height: 1; }
.leading-tight { line-height: 1.25; }
.leading-snug { line-height: 1.375; }
.leading-relaxed { line-height: 1.625; }

/* Spärrningen följer designsystemet — se letterSpacing i den gamla Tailwind-configen. */
.tracking-tighter { letter-spacing: -0.05em; }
.tracking-tight { letter-spacing: -0.025em; }
.tracking-wider { letter-spacing: 0.05em; }
.tracking-widest { letter-spacing: 0.1em; }
.tracking-pp-display { letter-spacing: -3px; }
.tracking-pp-name { letter-spacing: -1px; }
.tracking-pp-eyebrow { letter-spacing: 0.1em; }
.tracking-pp-promo { letter-spacing: 0.3em; }
.tracking-\[0\.18em\] { letter-spacing: 0.18em; }

.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.uppercase { text-transform: uppercase; }
.italic { font-style: italic; }
.underline { text-decoration-line: underline; }
.no-underline { text-decoration-line: none; }
.underline-offset-2 { text-underline-offset: 2px; }
.underline-offset-4 { text-underline-offset: 4px; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.whitespace-nowrap { white-space: nowrap; }
.list-disc { list-style-type: disc; }
.list-decimal { list-style-type: decimal; }

/* -----------------------------------------------------------------------------
   6. Färg

   De semantiska pekar på tokens i partner-tokens.css. Ändras en färg sker det
   där, inte här — det var hela poängen med kanalformatet.
   -------------------------------------------------------------------------- */

.text-action { color: rgb(var(--pp-action)); } .bg-action { background-color: rgb(var(--pp-action)); } .border-action { border-color: rgb(var(--pp-action)); }
.text-accent { color: rgb(var(--pp-accent)); } .bg-accent { background-color: rgb(var(--pp-accent)); } .border-accent { border-color: rgb(var(--pp-accent)); }
.text-accent-ink { color: rgb(var(--pp-accent-ink)); } .bg-accent-ink { background-color: rgb(var(--pp-accent-ink)); } .border-accent-ink { border-color: rgb(var(--pp-accent-ink)); }
.text-valid { color: rgb(var(--pp-valid)); } .bg-valid { background-color: rgb(var(--pp-valid)); } .border-valid { border-color: rgb(var(--pp-valid)); }
.text-valid-ink { color: rgb(var(--pp-valid-ink)); } .bg-valid-ink { background-color: rgb(var(--pp-valid-ink)); } .border-valid-ink { border-color: rgb(var(--pp-valid-ink)); }
.text-panel { color: rgb(var(--pp-panel)); } .bg-panel { background-color: rgb(var(--pp-panel)); } .border-panel { border-color: rgb(var(--pp-panel)); }
.text-panel-ink { color: rgb(var(--pp-panel-ink)); } .bg-panel-ink { background-color: rgb(var(--pp-panel-ink)); } .border-panel-ink { border-color: rgb(var(--pp-panel-ink)); }
.text-panel-ink-muted { color: rgb(var(--pp-panel-ink-muted)); } .bg-panel-ink-muted { background-color: rgb(var(--pp-panel-ink-muted)); } .border-panel-ink-muted { border-color: rgb(var(--pp-panel-ink-muted)); }
.text-surface { color: rgb(var(--pp-surface)); } .bg-surface { background-color: rgb(var(--pp-surface)); } .border-surface { border-color: rgb(var(--pp-surface)); }
.text-surface-sunken { color: rgb(var(--pp-surface-sunken)); } .bg-surface-sunken { background-color: rgb(var(--pp-surface-sunken)); } .border-surface-sunken { border-color: rgb(var(--pp-surface-sunken)); }
.text-chrome-header { color: rgb(var(--pp-chrome-header)); } .bg-chrome-header { background-color: rgb(var(--pp-chrome-header)); } .border-chrome-header { border-color: rgb(var(--pp-chrome-header)); }
.text-chrome-raised { color: rgb(var(--pp-chrome-raised)); } .bg-chrome-raised { background-color: rgb(var(--pp-chrome-raised)); } .border-chrome-raised { border-color: rgb(var(--pp-chrome-raised)); }
.text-chrome-footer { color: rgb(var(--pp-chrome-footer)); } .bg-chrome-footer { background-color: rgb(var(--pp-chrome-footer)); } .border-chrome-footer { border-color: rgb(var(--pp-chrome-footer)); }
.text-chrome-line { color: rgb(var(--pp-chrome-line)); } .bg-chrome-line { background-color: rgb(var(--pp-chrome-line)); } .border-chrome-line { border-color: rgb(var(--pp-chrome-line)); }
.text-domain-accent { color: rgb(var(--pp-domain-accent)); } .bg-domain-accent { background-color: rgb(var(--pp-domain-accent)); } .border-domain-accent { border-color: rgb(var(--pp-domain-accent)); }
.text-domain-accent-ink { color: rgb(var(--pp-domain-accent-ink)); } .bg-domain-accent-ink { background-color: rgb(var(--pp-domain-accent-ink)); } .border-domain-accent-ink { border-color: rgb(var(--pp-domain-accent-ink)); }
.text-glass { color: var(--pp-glass); } .bg-glass { background-color: var(--pp-glass); } .border-glass { border-color: var(--pp-glass); }
.text-glass-strong { color: var(--pp-glass-strong); } .bg-glass-strong { background-color: var(--pp-glass-strong); } .border-glass-strong { border-color: var(--pp-glass-strong); }
.text-glass-hover { color: var(--pp-glass-hover); } .bg-glass-hover { background-color: var(--pp-glass-hover); } .border-glass-hover { border-color: var(--pp-glass-hover); }
.text-line-soft { color: var(--pp-line-soft); } .bg-line-soft { background-color: var(--pp-line-soft); } .border-line-soft { border-color: var(--pp-line-soft); }
.text-line-strong { color: var(--pp-line-strong); } .bg-line-strong { background-color: var(--pp-line-strong); } .border-line-strong { border-color: var(--pp-line-strong); }
.text-fg { color: var(--pp-fg); } .bg-fg { background-color: var(--pp-fg); } .border-fg { border-color: var(--pp-fg); }
.text-fg-muted { color: var(--pp-fg-muted); } .bg-fg-muted { background-color: var(--pp-fg-muted); } .border-fg-muted { border-color: var(--pp-fg-muted); }
.text-fg-faint { color: var(--pp-fg-faint); } .bg-fg-faint { background-color: var(--pp-fg-faint); } .border-fg-faint { border-color: var(--pp-fg-faint); }
.text-domain-bg { color: var(--pp-domain-bg); } .bg-domain-bg { background-color: var(--pp-domain-bg); } .border-domain-bg { border-color: var(--pp-domain-bg); }
.text-domain-soft { color: var(--pp-domain-soft); } .bg-domain-soft { background-color: var(--pp-domain-soft); } .border-domain-soft { border-color: var(--pp-domain-soft); }
.text-domain-border { color: var(--pp-domain-border); } .bg-domain-border { background-color: var(--pp-domain-border); } .border-domain-border { border-color: var(--pp-domain-border); }
.text-domain-ink { color: var(--pp-domain-ink); } .bg-domain-ink { background-color: var(--pp-domain-ink); } .border-domain-ink { border-color: var(--pp-domain-ink); }
.text-brand-100 { color: rgb(var(--pp-brand-100)); } .bg-brand-100 { background-color: rgb(var(--pp-brand-100)); } .border-brand-100 { border-color: rgb(var(--pp-brand-100)); }
.text-brand-200 { color: rgb(var(--pp-brand-200)); } .bg-brand-200 { background-color: rgb(var(--pp-brand-200)); } .border-brand-200 { border-color: rgb(var(--pp-brand-200)); }
.text-brand-600 { color: rgb(var(--pp-brand-600)); } .bg-brand-600 { background-color: rgb(var(--pp-brand-600)); } .border-brand-600 { border-color: rgb(var(--pp-brand-600)); }
.text-brand-700 { color: rgb(var(--pp-brand-700)); } .bg-brand-700 { background-color: rgb(var(--pp-brand-700)); } .border-brand-700 { border-color: rgb(var(--pp-brand-700)); }
.text-brand-900 { color: rgb(var(--pp-brand-900)); } .bg-brand-900 { background-color: rgb(var(--pp-brand-900)); } .border-brand-900 { border-color: rgb(var(--pp-brand-900)); }
.text-ink-50 { color: rgb(var(--pp-ink-50)); } .bg-ink-50 { background-color: rgb(var(--pp-ink-50)); } .border-ink-50 { border-color: rgb(var(--pp-ink-50)); }
.text-ink-400 { color: rgb(var(--pp-ink-400)); } .bg-ink-400 { background-color: rgb(var(--pp-ink-400)); } .border-ink-400 { border-color: rgb(var(--pp-ink-400)); }
.text-ink-500 { color: rgb(var(--pp-ink-500)); } .bg-ink-500 { background-color: rgb(var(--pp-ink-500)); } .border-ink-500 { border-color: rgb(var(--pp-ink-500)); }
.text-ink-800 { color: rgb(var(--pp-ink-800)); } .bg-ink-800 { background-color: rgb(var(--pp-ink-800)); } .border-ink-800 { border-color: rgb(var(--pp-ink-800)); }
.text-danger-50 { color: rgb(var(--pp-danger-50)); } .bg-danger-50 { background-color: rgb(var(--pp-danger-50)); } .border-danger-50 { border-color: rgb(var(--pp-danger-50)); }
.text-danger-200 { color: rgb(var(--pp-danger-200)); } .bg-danger-200 { background-color: rgb(var(--pp-danger-200)); } .border-danger-200 { border-color: rgb(var(--pp-danger-200)); }
.text-danger-500 { color: rgb(var(--pp-danger-500)); } .bg-danger-500 { background-color: rgb(var(--pp-danger-500)); } .border-danger-500 { border-color: rgb(var(--pp-danger-500)); }
.text-danger-700 { color: rgb(var(--pp-danger-700)); } .bg-danger-700 { background-color: rgb(var(--pp-danger-700)); } .border-danger-700 { border-color: rgb(var(--pp-danger-700)); }
.text-warning-50 { color: rgb(var(--pp-warning-50)); } .bg-warning-50 { background-color: rgb(var(--pp-warning-50)); } .border-warning-50 { border-color: rgb(var(--pp-warning-50)); }
.text-warning-200 { color: rgb(var(--pp-warning-200)); } .bg-warning-200 { background-color: rgb(var(--pp-warning-200)); } .border-warning-200 { border-color: rgb(var(--pp-warning-200)); }
.text-warning-800 { color: rgb(var(--pp-warning-800)); } .bg-warning-800 { background-color: rgb(var(--pp-warning-800)); } .border-warning-800 { border-color: rgb(var(--pp-warning-800)); }
.text-danger { color: rgb(var(--pp-danger-500)); }

/* Felrutan i bilduppladdaren. Den står på duken, inte på papper, så bottnen är en
   svag tonad yta i stället för danger-50 — en ljus platta hade lyst som en lampa
   mitt i ett mörkt formulär. */
.bg-danger-500\/15 { background-color: rgb(var(--pp-danger-500) / 0.15); }
.border-danger-500\/40 { border-color: rgb(var(--pp-danger-500) / 0.4); }

/* Knappraden över den valda bilden. Måste vara ogenomskinlig nog att bära text
   oavsett vad bilden under råkar innehålla. */
.bg-black\/60 { background-color: rgba(0, 0, 0, 0.6); }

/* Alfavarianter som faktiskt står i markupen. */
.bg-accent\/10 { background-color: rgb(var(--pp-accent) / 0.1); }
.bg-accent\/20 { background-color: rgb(var(--pp-accent) / 0.2); }
.bg-action\/20 { background-color: rgb(var(--pp-action) / 0.2); }
.bg-brand-400\/\[0\.20\] { background-color: rgb(var(--pp-brand-400) / 0.2); }
.bg-brand-500\/20 { background-color: rgb(var(--pp-brand-500) / 0.2); }
.bg-chrome-header\/80 { background-color: rgb(var(--pp-chrome-header) / 0.8); }
.bg-surface-sunken\/40 { background-color: rgb(var(--pp-surface-sunken) / 0.4); }
.bg-surface-sunken\/50 { background-color: rgb(var(--pp-surface-sunken) / 0.5); }
.bg-surface-sunken\/60 { background-color: rgb(var(--pp-surface-sunken) / 0.6); }
.border-accent\/40 { border-color: rgb(var(--pp-accent) / 0.4); }
.text-domain-accent-ink\/90 { color: rgb(var(--pp-domain-accent-ink) / 0.9); }
.ring-accent\/40 { --pp-ring-color: rgb(var(--pp-accent) / 0.4); }
.bg-glass\/60 { background-color: rgba(255, 255, 255, 0.03); }

/* Vitt med alfa. Kvar i filer som ännu inte gått över till glass/line/fg-tokens —
   se kommentaren i partner-tokens.css om varför de sexton stegen blev fem. */
.bg-white\/\[0\.07\] { background-color: rgba(255, 255, 255, 0.07); }
.bg-white\/\[0\.10\] { background-color: rgba(255, 255, 255, 0.10); }
.border-white { border-color: #fff; }
.border-white\/10 { border-color: rgba(255, 255, 255, 0.10); }
.border-white\/15 { border-color: rgba(255, 255, 255, 0.15); }
.border-white\/18 { border-color: rgba(255, 255, 255, 0.18); }
.border-white\/60 { border-color: rgba(255, 255, 255, 0.60); }
.text-white { color: #fff; }
.text-white\/50 { color: rgba(255, 255, 255, 0.5); }
.text-white\/60 { color: rgba(255, 255, 255, 0.6); }
.text-white\/70 { color: rgba(255, 255, 255, 0.7); }
.text-white\/90 { color: rgba(255, 255, 255, 0.9); }
.border-transparent { border-color: transparent; }

/* Rollkortens accentfärger på karriärsidan. Utanför portalens två kanaler med flit:
   de färgkodar tre roller, inte handling eller tillhörighet. */
.bg-amber-500\/20 { background-color: rgba(245, 158, 11, 0.2); }
.bg-amber-950\/80 { background-color: rgba(69, 26, 3, 0.8); }
.border-amber-400\/40 { border-color: rgba(251, 191, 36, 0.4); }
.border-amber-500\/20 { border-color: rgba(245, 158, 11, 0.2); }
.border-amber-500\/30 { border-color: rgba(245, 158, 11, 0.3); }
.text-amber-200 { color: #fde68a; }
.text-amber-300 { color: #fcd34d; }
.bg-emerald-500\/20 { background-color: rgba(16, 185, 129, 0.2); }
.border-emerald-500\/30 { border-color: rgba(16, 185, 129, 0.3); }
.text-emerald-300 { color: #6ee7b7; }
.bg-purple-500\/20 { background-color: rgba(168, 85, 247, 0.2); }
.bg-purple-950\/80 { background-color: rgba(59, 7, 100, 0.8); }
.border-purple-400\/40 { border-color: rgba(192, 132, 252, 0.4); }
.border-purple-500\/30 { border-color: rgba(168, 85, 247, 0.3); }
.text-purple-200 { color: #e9d5ff; }
.text-purple-300 { color: #d8b4fe; }
.bg-rose-500\/20 { background-color: rgba(244, 63, 94, 0.2); }
.border-rose-500\/30 { border-color: rgba(244, 63, 94, 0.3); }
.text-rose-300 { color: #fda4af; }
.bg-sky-500\/20 { background-color: rgba(14, 165, 233, 0.2); }
.border-sky-500\/30 { border-color: rgba(14, 165, 233, 0.3); }
.text-sky-300 { color: #7dd3fc; }

/* Samma fyra familjer, resten av stegen. De används av kortrutnäten som färgkodar
   kategorier — 15 % som vilande botten, 25 % vid markering, 30 % på ramen.

   Skrivna för hand med literala rgba-värden, precis som raderna ovanför. Att härleda
   dem ur tokens vore snyggare men fel: de HÖR inte till portalens palett, och en
   token hade inbjudit till att använda dem som om de gjorde det. */
.bg-amber-500\/15 { background-color: rgba(245, 158, 11, 0.15); }
.bg-amber-500\/25 { background-color: rgba(245, 158, 11, 0.25); }
.bg-amber-500\/30 { background-color: rgba(245, 158, 11, 0.3); }
.border-amber-400 { border-color: #fbbf24; }
.text-amber-300\/70 { color: rgba(252, 211, 77, 0.7); }
.shadow-amber-500\/20 { box-shadow: 0 10px 25px rgba(245, 158, 11, 0.2); }

.bg-emerald-500\/15 { background-color: rgba(16, 185, 129, 0.15); }
.bg-emerald-500\/25 { background-color: rgba(16, 185, 129, 0.25); }
.bg-emerald-500\/30 { background-color: rgba(16, 185, 129, 0.3); }
.border-emerald-400 { border-color: #34d399; }
.border-emerald-400\/40 { border-color: rgba(52, 211, 153, 0.4); }
.text-emerald-300\/70 { color: rgba(110, 231, 183, 0.7); }
.shadow-emerald-500\/20 { box-shadow: 0 10px 25px rgba(16, 185, 129, 0.2); }

.bg-purple-500\/15 { background-color: rgba(168, 85, 247, 0.15); }
.bg-purple-500\/25 { background-color: rgba(168, 85, 247, 0.25); }
.bg-purple-500\/30 { background-color: rgba(168, 85, 247, 0.3); }
.border-purple-400 { border-color: #c084fc; }
.text-purple-300\/70 { color: rgba(216, 180, 254, 0.7); }
.shadow-purple-500\/20 { box-shadow: 0 10px 25px rgba(168, 85, 247, 0.2); }

.bg-sky-500\/15 { background-color: rgba(14, 165, 233, 0.15); }
.bg-sky-500\/25 { background-color: rgba(14, 165, 233, 0.25); }
.bg-sky-500\/30 { background-color: rgba(14, 165, 233, 0.3); }
.border-sky-400 { border-color: #38bdf8; }
.border-sky-400\/40 { border-color: rgba(56, 189, 248, 0.4); }
.text-sky-300\/70 { color: rgba(125, 211, 252, 0.7); }
.shadow-sky-500\/20 { box-shadow: 0 10px 25px rgba(14, 165, 233, 0.2); }

/* Indigo och fuchsia bär bara ett kort var och behöver därför inte hela stegen. */
.bg-indigo-500\/20 { background-color: rgba(99, 102, 241, 0.2); }
.border-indigo-500\/30 { border-color: rgba(99, 102, 241, 0.3); }
.text-indigo-300 { color: #a5b4fc; }
.bg-fuchsia-500\/20 { background-color: rgba(217, 70, 239, 0.2); }
.border-fuchsia-500\/30 { border-color: rgba(217, 70, 239, 0.3); }
.text-fuchsia-300 { color: #f0abfc; }

/* Toningar */
.bg-gradient-to-b { background-image: linear-gradient(to bottom, var(--pp-grad-from, transparent), var(--pp-grad-via, transparent), var(--pp-grad-to, transparent)); }
.bg-gradient-to-r { background-image: linear-gradient(to right, var(--pp-grad-from, transparent), var(--pp-grad-to, transparent)); }
.bg-gradient-to-t { background-image: linear-gradient(to top, var(--pp-grad-from, transparent), var(--pp-grad-via, transparent), var(--pp-grad-to, transparent)); }
.from-black\/85 { --pp-grad-from: rgba(0, 0, 0, 0.85); }
.from-brand-900\/40 { --pp-grad-from: rgb(var(--pp-brand-900) / 0.4); }
.from-white\/10 { --pp-grad-from: rgba(255, 255, 255, 0.1); }
.to-black\/60 { --pp-grad-to: rgba(0, 0, 0, 0.6); }
.to-brand-900\/40 { --pp-grad-to: rgb(var(--pp-brand-900) / 0.4); }
.to-transparent { --pp-grad-to: transparent; }

/* -----------------------------------------------------------------------------
   7. Ram, rundning, skugga, ring, opacitet, filter
   -------------------------------------------------------------------------- */

.border { border-width: 1px; }
.border-0 { border-width: 0; }
.border-2 { border-width: 2px; }
.border-4 { border-width: 4px; }
.border-t { border-top-width: 1px; }
.border-b { border-bottom-width: 1px; }
.border-l { border-left-width: 1px; }
.border-r { border-right-width: 1px; }
.border-y { border-top-width: 1px; border-bottom-width: 1px; }
.border-t-2 { border-top-width: 2px; }
.border-t-4 { border-top-width: 4px; }
.border-t-\[5px\] { border-top-width: 5px; }
.border-b-2 { border-bottom-width: 2px; }
.border-b-4 { border-bottom-width: 4px; }
.border-l-2 { border-left-width: 2px; }
.border-l-4 { border-left-width: 4px; }
.border-r-\[2px\] { border-right-width: 2px; }
.border-dashed { border-style: dashed; }
.border-solid { border-style: solid; }

.rounded-none { border-radius: 0; }
.rounded-md { border-radius: 0.375rem; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-full { border-radius: 9999px; }
.rounded-pp-sm { border-radius: var(--pp-radius-sm); }
.rounded-pp { border-radius: var(--pp-radius); }
.rounded-pp-lg { border-radius: var(--pp-radius-lg); }
.rounded-pp-xl { border-radius: var(--pp-radius-xl); }
.rounded-b-pp { border-bottom-left-radius: var(--pp-radius); border-bottom-right-radius: var(--pp-radius); }

.shadow-pp-sm { box-shadow: var(--pp-shadow-sm); }
.shadow-pp { box-shadow: var(--pp-shadow); }
.shadow-pp-lg { box-shadow: var(--pp-shadow-lg); }
.shadow-pp-lift { box-shadow: var(--pp-shadow-lift); }
.shadow-pp-accent { box-shadow: var(--pp-shadow-accent); }
.shadow-none { box-shadow: none; }
.shadow-\[-10px_0_40px_rgba\(0\,0\,0\,0\.5\)\] { box-shadow: -10px 0 40px rgba(0, 0, 0, 0.5); }

/* Ringen ritas som en andra box-shadow, precis som Tailwind gör det. Färgen sätts av
   ring-*-klasserna via --pp-ring-color. */
.ring-0 { box-shadow: none; }
.ring-4 { box-shadow: 0 0 0 4px var(--pp-ring-color, rgba(255, 255, 255, 0.4)); }

.opacity-0 { opacity: 0; }
.opacity-10 { opacity: 0.1; }
.opacity-20 { opacity: 0.2; }
.opacity-50 { opacity: 0.5; }
.opacity-60 { opacity: 0.6; }
.opacity-70 { opacity: 0.7; }
.opacity-75 { opacity: 0.75; }
.opacity-100 { opacity: 1; }

.blur-3xl { filter: blur(64px); }
.blur-\[100px\] { filter: blur(100px); }
.blur-\[0\.5px\] { filter: blur(0.5px); }
.backdrop-blur-sm { backdrop-filter: blur(4px); }
.grayscale { filter: grayscale(1); }
.drop-shadow-md { filter: drop-shadow(0 4px 3px rgba(0, 0, 0, 0.07)); }
.drop-shadow-\[0_1px_1px_rgba\(0\,0\,0\,0\.2\)\] { filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.2)); }

.pointer-events-none { pointer-events: none; }
.pointer-events-auto { pointer-events: auto; }
.cursor-pointer { cursor: pointer; }
.cursor-default { cursor: default; }
.cursor-not-allowed { cursor: not-allowed; }
.select-none { user-select: none; }
.object-cover { object-fit: cover; }

/* -----------------------------------------------------------------------------
   8. Rörelse
   -------------------------------------------------------------------------- */

.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-colors { transition-property: color, background-color, border-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }

.duration-200 { transition-duration: 200ms; }
.duration-300 { transition-duration: 300ms; }
.duration-500 { transition-duration: 500ms; }
.duration-700 { transition-duration: 700ms; }

.ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
.ease-pp-lift { transition-timing-function: var(--pp-ease-lift); }
.ease-pp-panel { transition-timing-function: var(--pp-ease-panel); }
.ease-pp-field { transition-timing-function: var(--pp-ease-field); }

/* Transformerna sätts direkt i stället för genom Tailwinds variabelkedja. Vi använder
   en i taget per element, så kedjan hade bara varit fler variabler att hålla reda på. */
.transform { transform: translate(0, 0); }
.-translate-x-1\/2 { transform: translateX(-50%); }
.-translate-y-1\/2 { transform: translateY(-50%); }
.translate-y-3 { transform: translateY(0.75rem); }
.-translate-y-1 { transform: translateY(-0.25rem); }
.rotate-90 { transform: rotate(90deg); }
.-rotate-90 { transform: rotate(-90deg); }
.rotate-12 { transform: rotate(12deg); }
.-rotate-3 { transform: rotate(-3deg); }
.scale-105 { transform: scale(1.05); }
.scale-\[0\.80\] { transform: scale(0.8); }
.origin-left { transform-origin: left; }

.animate-spin { animation: ppSpin 1s linear infinite; }
.animate-pulse { animation: ppPulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }

@keyframes ppSpin { to { transform: rotate(360deg); } }
@keyframes ppPulse { 50% { opacity: 0.5; } }

/* -----------------------------------------------------------------------------
   9. Varianter

   Bara de kombinationer markupen faktiskt använder. En generator hade kunnat
   korsa alla utilities med alla varianter, men det ger tiotusen regler för de
   hundra vi behöver — och den här filen läses av människor.
   -------------------------------------------------------------------------- */

/* --- hover --- */
.hover\:bg-action-hover:hover { background-color: rgb(var(--pp-action-hover)); }
.hover\:bg-glass:hover { background-color: var(--pp-glass); }
.hover\:bg-glass-strong:hover { background-color: var(--pp-glass-strong); }
.hover\:bg-glass-hover:hover { background-color: var(--pp-glass-hover); }
.hover\:bg-chrome-raised:hover { background-color: rgb(var(--pp-chrome-raised)); }
.hover\:bg-brand-200:hover { background-color: rgb(var(--pp-brand-200)); }
.hover\:bg-gray-200:hover { background-color: #e5e7eb; }
.hover\:text-accent:hover { color: rgb(var(--pp-accent)); }
.hover\:text-fg:hover { color: var(--pp-fg); }
.hover\:text-white:hover { color: #fff; }
.hover\:text-white\/75:hover { color: rgba(255, 255, 255, 0.75); }
.hover\:text-brand-200:hover { color: rgb(var(--pp-brand-200)); }
.hover\:text-brand-700:hover { color: rgb(var(--pp-brand-700)); }
.hover\:text-brand-900:hover { color: rgb(var(--pp-brand-900)); }
.hover\:text-amber-300:hover { color: #fcd34d; }
.hover\:border-accent:hover { border-color: rgb(var(--pp-accent)); }
.hover\:border-accent\/40:hover { border-color: rgb(var(--pp-accent) / 0.4); }
.hover\:border-domain-accent:hover { border-color: rgb(var(--pp-domain-accent)); }
.hover\:border-amber-400:hover { border-color: #fbbf24; }
.hover\:border-purple-400:hover { border-color: #c084fc; }
.hover\:shadow-lg:hover { box-shadow: var(--pp-shadow-lg); }
.hover\:shadow-pp-lift:hover { box-shadow: var(--pp-shadow-lift); }
.hover\:shadow-pp-accent:hover { box-shadow: var(--pp-shadow-accent); }
.hover\:ring-4:hover { box-shadow: 0 0 0 4px var(--pp-ring-color, rgba(255, 255, 255, 0.4)); }
.hover\:ring-accent\/40:hover { --pp-ring-color: rgb(var(--pp-accent) / 0.4); }
.hover\:underline:hover { text-decoration-line: underline; }
.hover\:-translate-y-0\.5:hover { transform: translateY(-0.125rem); }
.hover\:-translate-y-1:hover { transform: translateY(-0.25rem); }
.hover\:-translate-y-1\.5:hover { transform: translateY(-0.375rem); }
.hover\:scale-105:hover { transform: scale(1.05); }
.hover\:scale-110:hover { transform: scale(1.1); }
.hover\:scale-\[1\.02\]:hover { transform: scale(1.02); }

/* --- group-hover: föräldern bär .group --- */
.group:hover .group-hover\:bg-action\/10 { background-color: rgb(var(--pp-action) / 0.1); }
.group:hover .group-hover\:bg-domain-accent { background-color: rgb(var(--pp-domain-accent)); }
.group:hover .group-hover\:border-accent { border-color: rgb(var(--pp-accent)); }
.group:hover .group-hover\:border-white\/80 { border-color: rgba(255, 255, 255, 0.8); }
.group:hover .group-hover\:scale-105 { transform: scale(1.05); }
.group:hover .group-hover\:text-domain-accent-ink { color: rgb(var(--pp-domain-accent-ink)); }
.group:hover .group-hover\:text-accent { color: rgb(var(--pp-accent)); }
.group:hover .group-hover\:translate-x-1 { transform: translateX(0.25rem); }

/* --- first / last --- */
.first\:border-t-0:first-child { border-top-width: 0; }
.first\:pt-0:first-child { padding-top: 0; }
.last\:border-0:last-child { border-width: 0; }

/* --- Brytpunkter. Tailwinds värden: sm 640, md 768, lg 1024. --- */

@media (min-width: 640px) {
    .sm\:block { display: block; }
    .sm\:flex { display: flex; }
    .sm\:inline { display: inline; }
    .sm\:inline-flex { display: inline-flex; }
    .sm\:w-\[17rem\] { width: 17rem; }
    .sm\:pr-12 { padding-right: 3rem; }
    .sm\:min-h-\[520px\] { min-height: 520px; }
    .sm\:hidden { display: none; }
    .sm\:flex-row { flex-direction: row; }
    .sm\:flex-col { flex-direction: column; }
    .sm\:items-start { align-items: flex-start; }
    .sm\:items-center { align-items: center; }
    .sm\:items-end { align-items: flex-end; }
    .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sm\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .sm\:col-span-2 { grid-column: span 2 / span 2; }
    .sm\:gap-2 { gap: 0.5rem; }
    .sm\:gap-3 { gap: 0.75rem; }
    .sm\:gap-4 { gap: 1rem; }
    .sm\:gap-8 { gap: 2rem; }
    .sm\:space-y-4 > * + * { margin-top: 1rem; }
    .sm\:mx-auto { margin-left: auto; margin-right: auto; }
    .sm\:mb-0 { margin-bottom: 0; }
    .sm\:mb-8 { margin-bottom: 2rem; }
    .sm\:mb-10 { margin-bottom: 2.5rem; }
    .sm\:mb-12 { margin-bottom: 3rem; }
    .sm\:mb-16 { margin-bottom: 4rem; }
    .sm\:ml-6 { margin-left: 1.5rem; }
    .sm\:mr-0 { margin-right: 0; }
    .sm\:mt-0 { margin-top: 0; }
    .sm\:mt-12 { margin-top: 3rem; }
    .sm\:p-6 { padding: 1.5rem; }
    .sm\:p-8 { padding: 2rem; }
    .sm\:p-10 { padding: 2.5rem; }
    .sm\:p-12 { padding: 3rem; }
    .sm\:p-16 { padding: 4rem; }
    .sm\:pt-2 { padding-top: 0.5rem; }
    .sm\:px-0 { padding-left: 0; padding-right: 0; }
    .sm\:px-4 { padding-left: 1rem; padding-right: 1rem; }
    .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
    .sm\:px-12 { padding-left: 3rem; padding-right: 3rem; }
    .sm\:px-14 { padding-left: 3.5rem; padding-right: 3.5rem; }
    .sm\:py-2\.5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
    .sm\:py-4 { padding-top: 1rem; padding-bottom: 1rem; }
    .sm\:py-7 { padding-top: 1.75rem; padding-bottom: 1.75rem; }
    .sm\:py-12 { padding-top: 3rem; padding-bottom: 3rem; }
    .sm\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
    .sm\:text-base { font-size: 1rem; line-height: 1.5rem; }
    .sm\:text-lg { font-size: 1.125rem; line-height: 1.75rem; }
    .sm\:text-xl { font-size: 1.25rem; line-height: 1.75rem; }
    .sm\:text-2xl { font-size: 1.5rem; line-height: 2rem; }
    .sm\:text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
    .sm\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
    .sm\:border-2 { border-width: 2px; }
    .sm\:rounded-pp-xl { border-radius: var(--pp-radius-xl); }
    .sm\:bottom-8 { bottom: 2rem; }
    .sm\:left-4 { left: 1rem; }
    .sm\:right-4 { right: 1rem; }
    .sm\:top-1\/2 { top: 50%; }
    .sm\:top-4 { top: 1rem; }
    .sm\:-translate-y-1\/2 { transform: translateY(-50%); }
    .sm\:scale-100 { transform: scale(1); }
    .sm\:scale-105 { transform: scale(1.05); }
    .sm\:h-11 { height: 2.75rem; }
    .sm\:h-14 { height: 3.5rem; }
    .sm\:h-16 { height: 4rem; }
    .sm\:h-64 { height: 16rem; }
    .sm\:w-11 { width: 2.75rem; }
    .sm\:w-44 { width: 11rem; }
    .sm\:w-48 { width: 12rem; }
    .sm\:w-96 { width: 24rem; }
    .sm\:w-auto { width: auto; }
}

@media (min-width: 768px) {
    .md\:block { display: block; }
    .md\:flex { display: flex; }
    .md\:hidden { display: none; }
    .md\:flex-row { flex-direction: row; }
    .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .md\:p-8 { padding: 2rem; }

    /* Hjältebildens höjd på större skärmar. Godtyckliga värden, som i markupen —
       de hör till en enda bild och förtjänar ingen plats i höjdskalan. */
    .md\:h-\[400px\] { height: 400px; }
    .md\:min-h-\[580px\] { min-height: 580px; }

    .md\:px-20 { padding-left: 5rem; padding-right: 5rem; }
    .md\:text-xl { font-size: 1.25rem; line-height: 1.75rem; }
    .md\:text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
    .md\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
    .md\:text-5xl { font-size: 3rem; line-height: 1; }
}

@media (min-width: 1024px) {
    .lg\:block { display: block; }
    .lg\:flex { display: flex; }
    .lg\:hidden { display: none; }
    .lg\:col-span-1 { grid-column: span 1 / span 1; }
    .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .lg\:gap-4 { gap: 1rem; }
    .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; }
    .lg\:text-5xl { font-size: 3rem; line-height: 1; }
}

/* -----------------------------------------------------------------------------
   10. Efterskörd

   Klasser som redan stod i markupen när lagret skrevs, men som inte hörde till
   någon av skalorna ovan. De ligger samlat här i stället för utspritt, så nästa
   genomgång ser vad som är udda.
   -------------------------------------------------------------------------- */

.grow { flex-grow: 1; }
.shadow-sm { box-shadow: var(--pp-shadow-sm); }
.shadow-md { box-shadow: var(--pp-shadow); }
.shadow-lg { box-shadow: var(--pp-shadow-lg); }
.drop-shadow { filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1)); }
.backdrop-blur-md { backdrop-filter: blur(12px); }
.ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }

.inset-y-0 { top: 0; bottom: 0; }
.right-0 { right: 0; }
.left-3 { left: 0.75rem; }
.top-5 { top: 1.25rem; }
.-right-1 { right: -0.25rem; }
.top-\[10\%\] { top: 10%; }
.right-\[6\%\] { right: 6%; }
.mb-\[26px\] { margin-bottom: 26px; }
.my-auto { margin-top: auto; margin-bottom: auto; }

.object-contain { object-fit: contain; }
.object-center { object-position: center; }

.rotate-\[15deg\] { transform: rotate(15deg); }
.active\:scale-95:active { transform: scale(0.95); }
.active\:scale-\[0\.98\]:active { transform: scale(0.98); }

/* Toningens mittstopp. Används av hjältebilder som tonar ner mot texten. */
.via-black\/40 { --pp-grad-via: rgba(0, 0, 0, 0.4); }
.via-glass { --pp-grad-via: var(--pp-glass); }

/* Scroll-margin så ankarhopp inte hamnar under det klistrade sidhuvudet. */
.scroll-mt-12 { scroll-margin-top: 3rem; }

/* Skrivet med ! i markupen för att slå MudBlazor. Kvar tills de sista raderna
   som behöver det är omskrivna. */
.\!overflow-visible { overflow: visible !important; }

/* Blazor sätter dessa på fält inuti EditForm. Utan reglerna ser ett underkänt
   fält likadant ut som ett godkänt. */
.modified { }
.valid { }
.invalid { }

/* Godtycklig variant ur markupen: barnen ska ta emot klick fast föräldern släpper
   igenom dem. Används av bildkarusellens överlägg. */
.\[\&\>\*\]\:pointer-events-auto > * { pointer-events: auto; }

/* -----------------------------------------------------------------------------
   11. Efterskörd nummer två

   Hittade när CDN:et faktiskt togs bort och hela markupen svepdes en gång till.
   De satt i klassattribut men fanns ingenstans i lagret — alltså rader som såg
   ut att göra något och inte gjorde det.

   Att de undgick första svepet var ett mätfel, inte otur: kontrollen läste bara
   det första klassattributet per rad och tappade det som stod i @-uttryck och i
   attribut skrivna med versalt Class. Kör om svepet mot BÅDA formerna nästa gång
   markupen ändras, annars är den här listan bara den delmängd som råkade synas.
   -------------------------------------------------------------------------- */

/* Handlingsfärgen som mjuk botten. Förslagslistan i adressökaren markerar sin
   rad med den, både med mus och med tangentbord — utan den syns inte var man är. */
.bg-action-soft { background-color: rgb(var(--pp-action-soft)); }
.hover\:bg-action-soft:hover { background-color: rgb(var(--pp-action-soft)); }
.bg-action\/25 { background-color: rgb(var(--pp-action) / 0.25); }
.bg-action\/30 { background-color: rgb(var(--pp-action) / 0.3); }
.hover\:bg-action\/40:hover { background-color: rgb(var(--pp-action) / 0.4); }

.bg-brand-50 { background-color: rgb(var(--pp-brand-50)); }
.bg-gray-400 { background-color: #9ca3af; }
.bg-white\/40 { background-color: rgba(255, 255, 255, 0.4); }
.hover\:bg-white\/80:hover { background-color: rgba(255, 255, 255, 0.8); }
.hover\:bg-accent\/60:hover { background-color: rgb(var(--pp-accent) / 0.6); }

/* Domänramen på hover. Värdet kommer från .pp-domain-* på en förälder, så samma
   klass ger gult i grannspåret och lila i matställespåret. */
.hover\:border-domain-border:hover { border-color: var(--pp-domain-border); }

/* Toningsstopp. Sätter bara variabeln — riktningen väljs av bg-gradient-to-*. */
.from-black\/40 { --pp-grad-from: rgba(0, 0, 0, 0.4); }
.from-black\/60 { --pp-grad-from: rgba(0, 0, 0, 0.6); }
.to-black\/20 { --pp-grad-to: rgba(0, 0, 0, 0.2); }
.to-black\/45 { --pp-grad-to: rgba(0, 0, 0, 0.45); }
.via-black\/35 { --pp-grad-via: rgba(0, 0, 0, 0.35); }
.via-transparent { --pp-grad-via: transparent; }

/* Låter en flex-kolumn krympa under sitt innehålls naturliga bredd. Utan den spränger
   ett långt felmeddelande meddelanderutan i stället för att radbrytas i den. */
.min-w-0 { min-width: 0; }

/* Öppettidsraderna. Tidsfälten är smala, och "Stängt" tar samma bredd som de två
   fälten plus tankstrecket — annars hoppar dagsnamnen i sidled mellan raderna. */
.w-32 { width: 8rem; }

/* Pluppar: stegindikatorn och karusellens punkter. */
.h-2 { height: 0.5rem; } .w-2 { width: 0.5rem; }
.h-2\.5 { height: 0.625rem; } .w-2\.5 { width: 0.625rem; }
.h-3\.5 { height: 0.875rem; } .w-3\.5 { width: 0.875rem; }

/* HALVSTEGEN

   Avståndsskalan genererades i hela steg och tappade därför .5-raderna, trots att de
   används på tjugotalet ställen: ikonen som ska ligga två pixlar under textens
   baslinje (mt-0.5), knappen som är en aning lägre än py-4 (py-3.5), chippet som
   andas mindre än gap-2 (gap-1.5). Alla stod i markupen och gjorde ingenting.

   Samma steg som resten av skalan, alltså 0.125rem per halvsteg. */
.mt-0\.5 { margin-top: 0.125rem; }
.mb-0\.5 { margin-bottom: 0.125rem; }
.p-1\.5 { padding: 0.375rem; }
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.py-2\.5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
.py-3\.5 { padding-top: 0.875rem; padding-bottom: 0.875rem; }
.gap-0\.5 { gap: 0.125rem; }
.gap-1\.5 { gap: 0.375rem; }

/* Här stod en anteckning om att sidfotens logotyprad lånade .align-center ur
   MudBlazors CSS. Den gör den inte längre: MudBlazor laddas bara av admin nu, och
   raden skrevs om till items-center. Den publika sajten lånar ingenting. */
