/* ============================================================
   Tema: Moderne (2026) — valgfritt tema for NordicM Buss
   Aktiveres med klassen "tema-moderne" på <html> (Bytt tema-knappen).
   Inspirert av Linear / Stripe / Vercel: lys flate, én primærfarge,
   diskrete gråtoner, konsekvent radius/skygge/høyder, WCAG AA.
   Standarddesignet ligger urørt i app.css — dette er kun overstyringer.
   ============================================================ */

/* UI-184: --mod-font begynner med 'Inter', og uten denne blokka fantes ingen
   @font-face med det navnet — alle uten Inter installert fikk systemfonten.
   Bevisst uten local('Inter'): en lokal variabel Inter kan gi falsk fet 600,
   og alle skal se samme skrift. Bare vekt 400 og 600 (500 faller til 400, 700 til 600). */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('fonter/inter-latin-400-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('fonter/inter-latin-600-normal.woff2') format('woff2');
}

html.tema-moderne {
    /* Designtokens */
    --mod-font: 'Inter', -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --mod-bg: #f8f9fb;
    /* UI-132: bakgrunnen på de offentlige sidene (.tom-layout). */
    --mod-bg-offentlig: #f4f5f8;
    /* UI-132: plattformens faste farge, uavhengig av firmaets merkevare (samme verdi som PlattformFarge i MainLayout.razor). */
    --mod-plattform: #c2410c;
    --mod-flate: #ffffff;
    --mod-tekst: #18181b;
    /* UI-52: #6b7280 ga 4,40–4,55 på appens tonede flater (#f4f4f5 bryterspor
       og nøkkelkort, #f4f5f8 sidebakgrunn, #fff7ed tint) — under WCAG 1.4.3
       sitt 4,5 : 1. #5f6673 er den laveste grå som består på alle fire:
       5,78 / 5,26 / 5,30 / 5,44. Samme verdi står som plattformstandardens
       «tekstDus» i Nordic.Felles/Services/Merkevare.cs, slik UI-44 forutsetter. */
    --mod-tekst-dus: #5f6673;
    --mod-kant: #e5e7eb;
    --mod-kant-sterk: #d1d5db;
    --mod-primar: #c2410c;
    --mod-primar-mork: #9a3412;
    --mod-primar-tint: #fff7ed;
    /* UI-63: grafisk markør i firmafargen på hvitt (fanestreken) — ≥ 3 : 1 (WCAG 1.4.11). MainLayout overstyrer for egen farge. */
    --mod-primar-markor: #c2410c;
    /* UI-63: primærknappens flate ved hover/fokus — ≥ 4,5 : 1 mot --merkevarefarge-tekst. --mod-primar-mork er tekst-/strek-tokenet. */
    --mod-primar-hover: #9a3412;
    --mod-fokus: rgba(194, 65, 12, 0.35);
    --mod-radius: 0.625rem;
    --mod-radius-liten: 0.5rem;
    --mod-skygge: 0 1px 2px rgba(16, 24, 40, 0.06), 0 1px 3px rgba(16, 24, 40, 0.08);
    --mod-skygge-hover: 0 4px 12px rgba(16, 24, 40, 0.10);
    --mod-fart: 180ms;

    /* Statusfarger (tekst på lys tint = AA-kontrast) */
    --mod-gul-bg: #fef3c7;    --mod-gul-tekst: #92400e;    --mod-gul: #f59e0b;    --mod-gul-kant: #fde68a;
    --mod-bla-bg: #dbeafe;    --mod-bla-tekst: #1e40af;    --mod-bla: #3b82f6;
    --mod-gronn-bg: #dcfce7;  --mod-gronn-tekst: #166534;  --mod-gronn: #22c55e;  --mod-gronn-kant: #bbf7d0;
    --mod-brun-bg: #f3e8db;   --mod-brun-tekst: #6b4423;   --mod-brun: #a16207;
    --mod-teal-bg: #ccfbf1;   --mod-teal-tekst: #115e59;   --mod-teal: #14b8a6;
    --mod-rod-bg: #fee2e2;    --mod-rod-tekst: #991b1b;  --mod-rod-kant: #fecaca;
    --mod-rod: #dc2626;

    /* Vurderingsskala 1–5 i Undersøkelse — ikke status, bruk dem ikke andre steder */
    --skala-1: #f87171; --skala-2: #fb923c; --skala-3: #facc15; --skala-4: #a3e635; --skala-5: #4ade80;
    --skala-stjerne: #f59e0b; --skala-stjerne-kant: #d97706;

    /* Typografi (UI-76, tokens.css): hjelpetekst og kontrolltekst */
    --tekst-hjelp: 0.875rem;
    --tekst-kontroll: 0.9375rem;

    /* UI-136: Mørk flate — fullskjerm kamera (Skanner). Ikke mørk modus; bruk dem ikke andre steder uten designtråden. */
    --mork-bg: #0f172a;
    --mork-flate: #1e293b;
    --mork-flate-hover: #334155;
    --mork-kant: #475569;
    --mork-tekst: #f8fafc;
    --mork-tekst-dus: #e2e8f0;
}

/* ---------- Grunnflate og typografi ---------- */

html.tema-moderne body {
    font-family: var(--mod-font);
    background-color: var(--mod-bg);
    color: var(--mod-tekst);
    -webkit-font-smoothing: antialiased;
}

html.tema-moderne h1 {
    font-size: 1.55rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--mod-tekst);
    margin-bottom: 1.5rem;
}

html.tema-moderne .content {
    padding-top: 1.75rem;
    padding-bottom: 3rem;
}

/* UI-112: tekst i firmafargen → --mod-primar-mork, streker/kanter → --mod-primar-markor
   (samme regel som øverst i app.css). Rå --mod-primar bare som flate. */
html.tema-moderne a {
    color: var(--mod-primar-mork);
    transition: color var(--mod-fart) ease;
}

/* ---------- Sidemeny ---------- */

html.tema-moderne .sidebar {
    background-image: none;
    background-color: var(--mod-flate);
    border-right: 1px solid var(--mod-kant);
}

html.tema-moderne .sidebar .top-row {
    background-color: var(--mod-flate);
    border-bottom: 1px solid var(--mod-kant);
}

html.tema-moderne .sidebar .navbar-brand {
    color: var(--mod-tekst);
    font-weight: 700;
    letter-spacing: -0.01em;
}

html.tema-moderne .sidebar .nav-item .nav-link {
    color: #3f3f46;
    font-weight: 500;
    border-radius: var(--mod-radius-liten);
    transition: background-color var(--mod-fart) ease, color var(--mod-fart) ease;
}

html.tema-moderne .sidebar .nav-item .nav-link:hover {
    background-color: #f4f4f5;
    color: var(--mod-tekst);
}

html.tema-moderne .sidebar .nav-item a.active {
    background-color: var(--mod-primar-tint);
    /* UI-63: den mørke varianten, ikke den rå fargen — den holder 4,5 : 1 mot tinten for enhver selskapsfarge. */
    color: var(--mod-primar-mork);
    font-weight: 600;
}

/* UI-194: driftsknappene (Innboks, Ordre, Kjøreplan, Til regnskap) på egen grå flate. Kanten står 4 px
   utenfor lenkenes hover-flate; aktivt punkt (a.active) er uendret. */
html.tema-moderne .sidebar .nav-gruppe {
    background: var(--mod-bg);
    border: 1px solid var(--mod-kant);
    border-radius: var(--mod-radius);
    margin: var(--sp-2) calc(1rem - 4px);
    padding: var(--sp-2) 3px 0;
}

html.tema-moderne .sidebar .nav-gruppe .nav-item {
    padding: 0 0 var(--sp-1) !important; /* px-3 er !important; kanten skal stå 4 px utenfor hover-flata */
}

html.tema-moderne .sidebar .nav-gruppe .nav-item:last-of-type {
    padding-bottom: var(--sp-2) !important;
}

html.tema-moderne .sidebar .nav-gruppe-tittel {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--mod-tekst-dus);
    margin: 0 0 var(--sp-1);
    padding: 0 1rem; /* i flukt med ikonets venstrekant (lenkens indre luft) */
}

html.tema-moderne .sidebar .nav-gruppe .nav-item .nav-link:hover {
    background-color: var(--mod-flate);
}

html.tema-moderne .sidebar .bi-house-door-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%233f3f46' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

html.tema-moderne .sidebar .navbar-toggler {
    border: 1px solid var(--mod-kant);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2863, 63, 70, 0.8%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem var(--mod-flate);
    border-radius: var(--mod-radius-liten);
}

html.tema-moderne .sidebar .navbar-toggler:checked {
    background-color: var(--mod-primar-tint);
}

/* ---------- Knapper ---------- */

html.tema-moderne .btn-ny,
html.tema-moderne .btn-avbryt,
html.tema-moderne .btn-beregn-rute {
    transition: background-color var(--mod-fart) ease, border-color var(--mod-fart) ease,
                color var(--mod-fart) ease, box-shadow var(--mod-fart) ease;
}

html.tema-moderne .btn-ny {
    background-color: var(--mod-primar);
    color: var(--merkevarefarge-tekst, white);
    border-radius: var(--mod-radius-liten);
    font-weight: 600;
    box-shadow: var(--mod-skygge);
}

/* UI-118: :not(:disabled) — en sperret knapp skifter ikke farge ved hover. */
html.tema-moderne .btn-ny:hover:not(:disabled),
html.tema-moderne .btn-ny:focus:not(:disabled) {
    /* UI-63: eget hover-token — mork er mørknet mot tinten og kan tape mot mørk knappetekst. */
    background-color: var(--mod-primar-hover);
}

/* UI-118: sperret hovedknapp ser sperret ut — samme mønster som .btn-tilbud:disabled
   og .btn-tekst:disabled: dus og not-allowed. Ingen farge her: knappen beholder den
   den ellers har (merkevarens på kundesidene, merkevare.css). At hover ikke endrer
   den, sørger :not(:disabled) på hover-reglene for (app.css, over, merkevare.css). */
html.tema-moderne .btn-ny:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Når .btn-ny brukes på en lenke må teksten følge merkevarefargen (temaets a-regel gir ellers indigo tekst). */
html.tema-moderne a.btn-ny {
    color: var(--merkevarefarge-tekst, white);
    text-decoration: none;
}

html.tema-moderne .btn-avbryt {
    color: var(--mod-tekst);
    background-color: var(--mod-flate);
    border: 1px solid var(--mod-kant-sterk);
    border-radius: var(--mod-radius-liten);
    box-shadow: var(--mod-skygge);
}

html.tema-moderne .btn-avbryt:hover:not(:disabled),
html.tema-moderne .btn-avbryt:focus:not(:disabled) {
    background-color: #f4f4f5;
}

/* UI-100: samme mønster som UI-118 — sperret vanlig knapp er dus med not-allowed,
   uten egen farge og uten hover. */
html.tema-moderne .btn-avbryt:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Det destruktive uttrykket (Remi 20.09.2026, DESIGNSYSTEM.md 6.1): hvit boks,
   grå kant, rød tekst. Bare teksten er rød — bakgrunnen blir svakt rød først
   ved hover. Regelen står HER og ikke i app.css fordi
   html.tema-moderne .btn-avbryt setter color med vekt (0,2,1); en .btn-slett i
   app.css (0,1,0) taper og er død kode (UI-70). Den må dessuten stå ETTER
   .btn-avbryt-blokkene: lik vekt avgjøres av rekkefølgen. */
html.tema-moderne .btn-slett {
    color: #b91c1c;
}

html.tema-moderne .btn-slett:hover:not(:disabled),
html.tema-moderne .btn-slett:focus:not(:disabled) {
    color: #991b1b;
    background-color: #fef2f2;
}

html.tema-moderne .btn-tilbud {
    color: var(--mod-primar-mork);
    border: 1px solid var(--mod-primar-markor);
    border-radius: var(--mod-radius-liten);
}

html.tema-moderne .btn-tilbud:hover:not(:disabled),
html.tema-moderne .btn-tilbud:focus:not(:disabled) {
    background-color: var(--mod-primar-tint);
}

html.tema-moderne .btn-beregn-rute {
    color: var(--mod-primar-mork);
    background-color: var(--mod-primar-tint);
    border: 1px dashed var(--mod-primar-markor);
    border-radius: var(--mod-radius-liten);
}

html.tema-moderne .btn-beregn-rute:hover:not(:disabled),
html.tema-moderne .btn-beregn-rute:focus:not(:disabled) {
    /* UI-57: #c2410c på #ffedd5 er 4,52 — designtråden: tekst på tint er den mørke. */
    color: var(--mod-primar-mork);
    background-color: #ffedd5;
}

/* Synlige fokusmarkeringer (WCAG) */
html.tema-moderne button:focus-visible,
html.tema-moderne a:focus-visible,
html.tema-moderne input:focus-visible,
html.tema-moderne select:focus-visible,
html.tema-moderne textarea:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--mod-fokus);
}

/* UI-72 — nøkkelkortet er en <div role="button">, så den generelle fokusregelen
   over treffer den ikke. Ringen må dessuten gjenta kortskyggen:
   box-shadow er ikke additiv, og en ring alene ville slettet den. */
html.tema-moderne .nokkel-kort.nokkel-klikkbar:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--mod-fokus), var(--mod-skygge);
}

html.tema-moderne .nokkel-kort.nokkel-klikkbar.aktiv:focus-visible {
    box-shadow: 0 0 0 3px var(--mod-fokus), var(--mod-skygge);
}

/* ---------- Skjema og inndata ---------- */

/* UI-62 — avkrysningsbokser, radioknapper, glidebrytere og fremdriftslinjer følger
   markørfargen (UI-115: ikke den rå merkevarefargen, som kan falle under 3:1 mot
   hvitt) i stedet for nettleserens blå. Haken tegnes av nettleseren i kontrastfarge,
   også på lyse merkevarefarger. */
html.tema-moderne input[type=checkbox],
html.tema-moderne input[type=radio],
html.tema-moderne input[type=range],
html.tema-moderne progress {
    accent-color: var(--mod-primar-markor);
}

/* UI-67 — skriften. Skjemafelt arver IKKE font fra <body>; uten font-family her
   tegnet nettleseren tekstfelt og nedtrekk i Arial og tekstomrade og datofelt i
   monospace, malt i appens egne stilark 20.09.2026.

   «:where(html.tema-moderne)» teller null, sa hele blokka star pa (0,1,0) — samme
   vekt som app.css sin «.search-input», og den vinner fordi temaet lastes sist.
   Det gjor temaet til en STANDARD og ikke en overstyring: det treffer alle 443
   felt, og taper for hvert eneste lokale unntak — scopet CSS (0,2,1) og klassepar
   som «.firma-velger .search-input» (0,2,0). Begge formene fantes fra for og var
   bevisste: paameldingens lim-inn-felt skal sta i ui-monospace fordi brukeren
   limer inn kolonner (FanePaameldinger.razor.css), og sidemenyens velgere skal
   sta pa 0,9rem (app.css). Med full vekt (0,2,1) slo temaet begge — malt av
   kontrolloren 20.09.2026, og det er grunnen til at :where() star her.

   font-size settes bevisst IKKE: app.css «.search-input» har alt 1rem, og en
   gjentakelse her kjoper ingenting og koster to unntak. Nar typografitokenene
   rulles ut samlet, er dette stedet de skal inn. */
:where(html.tema-moderne) .search-input {
    border: 1px solid var(--mod-kant-sterk);
    border-radius: var(--mod-radius-liten);
    background-color: var(--mod-flate);
    color: var(--mod-tekst);
    font-family: var(--mod-font);
    transition: border-color var(--mod-fart) ease, box-shadow var(--mod-fart) ease;
}

html.tema-moderne .search-input:focus {
    border-color: var(--mod-primar-markor);
    box-shadow: 0 0 0 3px var(--mod-fokus);
}

/* UI-47 — feltkanten på de offentlige sidene uten merkevare skal synes (WCAG 1.4.11).
   --mod-kant-sterk (#d1d5db, regelen over) er kontorpanelets kant: 1,47 : 1 mot
   feltet (#ffffff) og 1,35 : 1 mot siden (#f4f5f8) — under kravet på 3 : 1 for
   komponentgrenser. Kontorpanelet er urørt (MainLayout.razor sitt <main> har
   ingen klasse); bare de offentlige sidene skjerpes.

   Selektoren «main.tom-layout» (ikke bare «.tom-layout») er en bevisst
   spesifisitetsjustering, ikke en tilfeldighet: den treffer nøyaktig TomLayout.razor
   sitt <main class="tom-layout"> og INGEN andre <main>. Spesifisiteten blir dermed
   (0,2,1). Den sto opprinnelig nøyaktig lik regelen over og vant på rekkefølge;
   etter UI-67 er den regelen «:where(html.tema-moderne) .search-input» (0,1,0), så
   denne vinner nå på vekt. Utfallet er det samme, og den står fortsatt SENERE. Den er lavere enn merkevare.css sin
   «.merkevare-side.merkevare-aktiv .search-input» (0,3,0), som derfor alltid vinner
   der den treffer — merkevaresider er uendret, uten en eneste :not(). Fokusringen
   over (0,3,1) og feilkanten «.invalid» (lenger ned i denne fila, samme spesifisitet
   men enda senere) er begge urørt og vinner fortsatt over denne raden.

   #6b7280 (samme gråtone som --mod-tekst-dus): 4,83 : 1 mot #ffffff og 4,44 : 1 mot
   #f4f5f8 (egen instans, 15.09.2026) — begge over kravet med god margin. */
main.tom-layout .search-input {
    border-color: #6b7280;
}

/* UI-67 — de ovrige felttypene. Designsystemet dekket tekstfeltet og
   avkryssingen; nedtrekk, tall, tekstomrade, dato og tid hadde ingen regler i
   det hele tatt. Alle fem bruker husets ene feltklasse (.search-input, 443
   steder), sa de arver kanten, radiusen, skriften og fokusringen over — det som
   star her er bare det hver type trenger utover det. */

/* Nedtrekket far var egen chevron, ellers tegner Chrome, Safari og Android hver
   sin pil. appearance: none fjerner nettleserens pil, sa bildet MA vises —
   kontrollert i nettleser, ikke bare i regelen.

   UI-79: en data-URI kan ikke lese CSS-variabler, sa fargen ma bakes inn i selve
   bildet. Derfor sender Merkevare.CssVariabler() hele url()-verdien som
   --mv-chevron, ferdig farget med tekst-dus-tokenet (4,5 : 1 mot bade flate og
   felt). Uten merkevare finnes ikke variabelen, fallbacken treffer, og de 51
   nedtrekkene i kontorpanelet er uendret. En variabel — ikke en ny regel pa
   merkevaresida: denne selektoren er (0,2,1), og en overstyring matte hatt (0,3,0).
   Variabelen har ingen vekt; den leses der regelen star.

   Fallbacken er --mod-tekst-dus skrevet som %235f6673. UI-52 flyttet tokenet pa
   linje 20 fra #6b7280 til #5f6673, men denne URI-en ble staende — bade fargen og
   kommentaren som pastod at den fulgte tokenet var feil fra 20.09.2026 til na.
   Endrer du tokenet, ma du endre dette tallet i samme slengen: %235f6673 er en
   streng, ingen var(). Og fallbacken er ikke valgfri — en var() som peker pa noe
   udefinert resolverer stille til ingenting, bygget blir gront, testene gronne,
   og pila er borte. */
html.tema-moderne select.search-input {
    appearance: none;
    padding-right: var(--sp-6);
    background-image: var(--mv-chevron, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235f6673' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"));
    background-repeat: no-repeat;
    background-position: right var(--sp-3) center;
}

/* Tall hoyrestilles med like brede siffer, sa kolonner med belop og antall kan
   sammenliknes loddrett. Trinnpilene fjernes: de er 10 px hoye, umulige a treffe
   pa mobil, og stjeler plassen sifrene trenger. */
html.tema-moderne .search-input[type=number] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

html.tema-moderne .search-input[type=number]::-webkit-inner-spin-button {
    appearance: none;
    margin: 0;
}

html.tema-moderne textarea.search-input {
    min-height: 96px;
    resize: vertical;
    line-height: 1.5;
}

/* Breddetaket for tall, dato og tid star bevisst med :where() rundt
   temaprefikset. Uten den ville selektoren bli (0,3,1) og SLA de lokale
   reglene som allerede eier bredden i tette rader — «.kjoreplan-dato
   input[type=date]» (0,2,1, 11rem) er den som biter: UI-16 satte den etter at
   datoraden malte 490 px pa en 375 px-skjerm, og 200 px her ville gitt de to
   feltene 48 px tilbake. :where() teller null, sa regelen lander pa (0,2,0) —
   den gjelder de ~100 feltene som ikke har noen lokal bredde, og taper for hver
   eneste som har en (.kjoreplan-dato, .prissats-rad, .stopp-tider,
   .avbestilling-rad, .minifelt). Det er nettopp rangeringen UI-67 ba om. */
:where(html.tema-moderne) .search-input[type=number] { max-width: 160px; }
:where(html.tema-moderne) .search-input[type=date] { max-width: 200px; }
:where(html.tema-moderne) .search-input[type=time] { max-width: 140px; }

html.tema-moderne .form-felt label {
    font-size: 0.875rem;
    font-weight: 600;
    color: #3f3f46;
}

/* UI-92: fargen bor i app.css, sa lokale regler kan nulle streken */

html.tema-moderne .feilmelding,
html.tema-moderne .validation-message {
    color: var(--mod-rod);
    font-size: 0.875rem;
}

html.tema-moderne .valid.modified:not([type=checkbox]) {
    outline: none;
    border-color: var(--mod-gronn);
}

html.tema-moderne .invalid {
    outline: none;
    border-color: var(--mod-rod);
}

/* ORD-165: en feltfeil skjemaet setter selv («invalid» på et felt Blazor kaller
   «valid modified» — samme buss to ganger på turen) skal ha rød kant. Uten raden
   vant den grønne over (0,4,1 mot 0,2,1) og feltet så riktig ut over en rød linje. */
html.tema-moderne .valid.modified.invalid:not([type=checkbox]) {
    border-color: var(--mod-rod);
}

html.tema-moderne .kunde-kontaktinfo {
    color: var(--mod-tekst-dus);
    font-size: 0.875rem;
}

html.tema-moderne .ordre-tidsrom {
    color: var(--mod-primar-mork);
    font-size: 0.875rem;
}

/* ---------- Kort og lister ---------- */

html.tema-moderne .kunde-liste li,
html.tema-moderne .buss-dag-kort,
html.tema-moderne .prislinje-rad {
    background-color: var(--mod-flate);
    border: 1px solid var(--mod-kant);
    border-radius: var(--mod-radius);
    box-shadow: var(--mod-skygge);
    padding: 1rem;
    transition: box-shadow var(--mod-fart) ease, border-color var(--mod-fart) ease;
}

html.tema-moderne .kunde-liste li:hover,
html.tema-moderne .buss-dag-kort:hover {
    box-shadow: var(--mod-skygge-hover);
    border-color: var(--mod-kant-sterk);
}

/* Utleggsraden (PRI-3). Regelen over setter `border` på alle fire sidene og
   ville ellers spist den venstre aksenten som skiller et utlegg fra firmaets
   eget salg. Bompanelet arver samme kant og radius som resten av temaet. */
html.tema-moderne .prislinje-rad.prislinje-utlegg {
    border-left: 4px solid #8a6d3b;
    background-color: #fdf9f0;
}

html.tema-moderne .bompanel {
    border-radius: var(--mod-radius);
    border-color: var(--mod-kant);
    border-left: 4px solid #8a6d3b;
    box-shadow: var(--mod-skygge);
}

html.tema-moderne .prislinje-totaler {
    background-color: var(--mod-bg);
    border: 1px solid var(--mod-kant);
    border-radius: var(--mod-radius-liten);
    font-size: 0.9rem;
}

html.tema-moderne .buss-dag-status {
    background-color: var(--mod-bg);
    border: 1px solid var(--mod-kant);
    color: var(--mod-tekst-dus);
}

html.tema-moderne .oppdrag-tid {
    color: var(--mod-primar-mork);
}

html.tema-moderne .ledig-tekst {
    color: var(--mod-gronn-tekst);
}

/* ---------- Statusfilter (piller) ---------- */

html.tema-moderne .status-pille {
    background-color: var(--mod-flate);
    border: 1px solid var(--mod-kant);
    color: var(--mod-tekst);
    font-weight: 500;
    box-shadow: var(--mod-skygge);
    transition: background-color var(--mod-fart) ease, border-color var(--mod-fart) ease,
                color var(--mod-fart) ease;
}

html.tema-moderne .status-pille:hover:not(.aktiv) {
    border-color: var(--mod-kant-sterk);
    background-color: #fcfcfd;
}

html.tema-moderne .status-knapp {
    width: 0.9rem;
    height: 0.9rem;
    margin-right: 0.35rem;
}

html.tema-moderne .status-alle .status-knapp { background-color: var(--mod-gronn); }
html.tema-moderne .status-foresporsel .status-knapp { background-color: var(--mod-gul); }
html.tema-moderne .status-tilbudledigbuss .status-knapp { background-color: var(--mod-bla); }
html.tema-moderne .status-bekreftetavkunde .status-knapp { background-color: var(--mod-gronn); }
html.tema-moderne .status-bekreftetavsjafor .status-knapp { background-color: var(--mod-brun); }
html.tema-moderne .status-fullfort .status-knapp { background-color: var(--mod-teal); }
html.tema-moderne .status-busskansellert .status-knapp { background-color: var(--mod-rod); }

html.tema-moderne .status-pille.aktiv { color: white; font-weight: 600; }
html.tema-moderne .status-alle.aktiv { background-color: var(--mod-gronn-tekst); border-color: var(--mod-gronn-tekst); }
html.tema-moderne .status-foresporsel.aktiv { background-color: var(--mod-gul-tekst); border-color: var(--mod-gul-tekst); }
html.tema-moderne .status-tilbudledigbuss.aktiv { background-color: var(--mod-bla-tekst); border-color: var(--mod-bla-tekst); }
html.tema-moderne .status-bekreftetavkunde.aktiv { background-color: var(--mod-gronn-tekst); border-color: var(--mod-gronn-tekst); }
html.tema-moderne .status-bekreftetavsjafor.aktiv { background-color: var(--mod-brun-tekst); border-color: var(--mod-brun-tekst); }
html.tema-moderne .status-fullfort.aktiv { background-color: var(--mod-teal-tekst); border-color: var(--mod-teal-tekst); }
html.tema-moderne .status-busskansellert.aktiv { background-color: var(--mod-rod-tekst); border-color: var(--mod-rod-tekst); }

html.tema-moderne .status-pille.aktiv .status-knapp { background-color: rgba(255, 255, 255, 0.9); }

/* ---------- Statusmerker på kort ---------- */

html.tema-moderne .status-merke {
    font-weight: 600;
    border: 1px solid transparent;
}

html.tema-moderne .status-merke.status-foresporsel { background-color: var(--mod-gul-bg); color: var(--mod-gul-tekst); }
html.tema-moderne .status-merke.status-tilbudledigbuss { background-color: var(--mod-bla-bg); color: var(--mod-bla-tekst); }
html.tema-moderne .status-merke.status-bekreftetavkunde { background-color: var(--mod-gronn-bg); color: var(--mod-gronn-tekst); }
html.tema-moderne .status-merke.status-bekreftetavsjafor { background-color: var(--mod-brun-bg); color: var(--mod-brun-tekst); }
html.tema-moderne .status-merke.status-fullfort { background-color: var(--mod-teal-bg); color: var(--mod-teal-tekst); }
html.tema-moderne .status-merke.status-busskansellert { background-color: var(--mod-rod-bg); color: var(--mod-rod-tekst); }

/* UI-129: generelle tilstander for merker som ikke er ordrestatus — fire av
   statusparene i DESIGNSYSTEM.md 3.3. Før disse fantes, lånte sidene
   prisskjermens produktmerker (.produkt-merke .merke-aktiv/-kommer/-tillegg/-fare,
   egne hex og merkevaretint). Navnene er valgt så de ikke kolliderer med
   .merke-aktiv/.merke-tillegg/.merke-fare i app.css. Kategori («Buss», «Partner»,
   rollen) er .merke-kategori i UI-59-blokka under. */
html.tema-moderne .status-merke.merke-ok { background-color: var(--mod-gronn-bg); color: var(--mod-gronn-tekst); }
html.tema-moderne .status-merke.merke-venter { background-color: var(--mod-gul-bg); color: var(--mod-gul-tekst); }
html.tema-moderne .status-merke.merke-feil { background-color: var(--mod-rod-bg); color: var(--mod-rod-tekst); }
html.tema-moderne .status-merke.merke-info { background-color: var(--mod-bla-bg); color: var(--mod-bla-tekst); }

/* UI-59: kategori, ikke tilstand. «Fast rute» og bestillingstaggen sier hva
   ordren ER, ikke hvor den står — et fargelagt merke er forbeholdt statusparene
   over (DESIGNSYSTEM.md 6.2). Står her og ikke i app.css: vekten 0,3,1 må slå
   html.tema-moderne .status-merke (0,2,1), ellers vinner den gjennomsiktige
   kanten. «fra produkt» (.prislinje-produktmerke) har samme drakt i Ordre.razor.css. */
html.tema-moderne .status-merke.serie-merke,
html.tema-moderne .status-merke.bestilling-merke,
html.tema-moderne .status-merke.merke-kategori {
    background-color: var(--mod-flate);
    color: var(--mod-tekst-dus);
    border: 1px solid var(--mod-kant);
}

/* ---------- Faneindikatorer (✓/!) ---------- */

html.tema-moderne .fane-status {
    font-size: 0.7rem;
}

html.tema-moderne .fane-status.utfylt { background-color: var(--mod-gronn); }
html.tema-moderne .fane-status.mangler { background-color: var(--mod-gul); }

/* ---------- Hjem-siden ---------- */

html.tema-moderne .menu-button {
    color: var(--mod-tekst);
    background-color: var(--mod-flate);
    border: 1px solid var(--mod-kant);
    border-radius: var(--mod-radius);
    box-shadow: var(--mod-skygge);
    font-weight: 600;
    transition: box-shadow var(--mod-fart) ease, border-color var(--mod-fart) ease,
                color var(--mod-fart) ease;
}

html.tema-moderne .menu-button:hover,
html.tema-moderne .menu-button:focus {
    background-color: var(--mod-flate);
    color: var(--mod-primar-mork);
    border-color: var(--mod-primar-markor);
    box-shadow: var(--mod-skygge-hover);
}

/* ---------- Temabytter-knappen ---------- */

html.tema-moderne .tema-knapp {
    color: var(--mod-tekst-dus);
}

/* ---------- Mobil ---------- */

@media (max-width: 640.98px) {
    html.tema-moderne .content {
        padding-top: 1.1rem;
    }

    html.tema-moderne h1 {
        font-size: 1.35rem;
    }
}
