﻿:root {
    color-scheme: light;
    --navy-950: #002346;
    --navy-900: #003755;
    --navy-700: #005f86;
    --cyan-600: #0a5ef0;
    --cyan-100: #e8f1ff;
    --blue-050: #f3f6f8;
    --blue-025: #f6f9fb;
    --line: #d6dee5;
    --border: var(--line);
    --text: #002346;
    --ink: var(--text);
    --muted: #5b6e7f;
    --success: #147a55;
    --success-bg: #e8f6ef;
    --warning: #9b6500;
    --error: #b42318;
    --error-bg: #fff0ef;
    --white: #fff;
    --shadow: 0 1px 3px rgba(0, 35, 70, .1);
    font-family: "Segoe UI", Arial, sans-serif;
    font-size: 15px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); background: var(--blue-050); line-height: 1.4; }
a { color: inherit; }
h1, h2, h3 { color: var(--navy-950); line-height: 1.18; margin: 0; font-weight: 600; }
h1 { font-size: clamp(1.75rem, 2.2vw, 2.35rem); letter-spacing: -.025em; }
h2 { font-size: 1.3rem; }
h3 { font-size: 1rem; }
p { margin: .25rem 0 0; }

.topbar { min-height: 56px; padding: 0 clamp(.75rem, 2.5vw, 2rem); background: white; color: var(--navy-950); border-top: 4px solid var(--cyan-600); border-bottom: 1px solid var(--line); box-shadow: 0 1px 4px rgba(0,35,70,.08); display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.brand { display: inline-flex; align-items: center; gap: .6rem; color: var(--navy-950); font-weight: 650; text-decoration: none; letter-spacing: -.01em; }
.brand-mark { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 2px; color: white; background: var(--navy-950); font-weight: 700; }
.user-menu { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .3rem; font-size: .82rem; }
.user-menu form { margin: 0; }
.page-shell { width: min(1560px, calc(100% - 1.5rem)); margin: 0 auto; padding: 1rem 0 2rem; }
.narrow-page { width: min(760px, 100%); margin: 0 auto; }
.page-heading, .case-header { margin: .45rem 0 .9rem; }
.heading-with-action, .case-header, .section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.case-header-actions { display: flex; justify-content: flex-end; align-items: center; gap: .45rem; flex-wrap: wrap; }
.section-heading { margin-bottom: .65rem; }
.eyebrow { margin: 0 0 .2rem; color: var(--cyan-600); text-transform: uppercase; letter-spacing: .09em; font-size: .68rem; font-weight: 700; }
.muted { color: var(--muted); }
.back-link, .text-link { color: var(--navy-700); font-weight: 700; text-decoration: none; }
.back-link:hover, .text-link:hover { text-decoration: underline; }
/* Tilbage kan vaere en knap, naar det ogsaa rydder en kladde. Den skal se ud som et link. */
button.back-link { padding: 0; border: 0; background: none; font: inherit; cursor: pointer; }

.card, .search-panel, .auth-card { background: var(--white); border: 1px solid var(--line); border-radius: 3px; box-shadow: var(--shadow); }
.card { padding: .85rem 1rem; }
.search-panel { padding: .8rem 1rem; margin-bottom: .8rem; }
.search-panel > label { display: block; font-weight: 750; margin-bottom: .5rem; }
.search-row { display: flex; gap: .4rem; }
.search-row input { flex: 1; }
.auth-card { width: min(440px, 100%); margin: 5vh auto 0; padding: 1.5rem; display: grid; gap: 1.25rem; }

.button { min-height: 36px; padding: .42rem .8rem; display: inline-flex; justify-content: center; align-items: center; gap: .35rem; border: 1px solid transparent; border-radius: 999px; cursor: pointer; font: inherit; font-size: .88rem; font-weight: 650; text-decoration: none; white-space: nowrap; }
.button-primary { background: var(--cyan-600); color: white; }
.button-primary:hover { background: #084bc0; }
.button-secondary { background: white; color: var(--navy-900); border-color: var(--line); }
.button-secondary:hover { border-color: var(--navy-700); background: #f7faff; }
.button-danger { background: var(--error); color: white; }
.button-quiet { min-height: 30px; padding: .3rem .6rem; color: var(--navy-950); border-color: transparent; background: transparent; }
.button-quiet:hover { color: var(--cyan-600); background: var(--cyan-100); }
.button-wide { width: 100%; }
.button-small { min-height: 30px; padding: .28rem .58rem; font-size: .78rem; }
.icon-button { border: 0; background: transparent; font: inherit; font-size: .82rem; cursor: pointer; }
.icon-button.danger { color: var(--error); }

.form-stack { display: grid; gap: .75rem; }
.questionnaire-section { margin: 0; padding-top: .8rem; scroll-margin-top: 1rem; }
.questionnaire-section legend { padding: 0 .5rem; color: var(--ink); font-size: 1.25rem; font-weight: 800; }
.questionnaire-question[hidden] { display: none !important; }
/* Afsnit, et script viser og skjuler efter et valg (sambeskatningens datterfelter, kreds og fordeling): browserens egen [hidden] taber til enhver forfatterregel med display, fx .form-grid. */
[data-visible-when][hidden] { display: none !important; }
/* Samme fælde på revisorerklæringen: .field og .card sætter display: grid, så modifikation og fremhævelse blev stående på skærmen ved en assistanceerklæring, selv om hidden var sat. */
[data-engagement-hidden-for][hidden], [data-engagement-shown-for][hidden] { display: none !important; }
.questionnaire-question small { color: var(--muted); }
.questionnaire-section .section-intro { margin: 0 0 .8rem; padding: .6rem .75rem; max-width: 76ch; color: var(--muted); font-size: .88rem; line-height: 1.45; border-left: 3px solid var(--border); background: var(--blue-025); }
.field-with-action { display: flex; gap: .4rem; align-items: stretch; }
.field-with-action input { flex: 1 1 auto; min-width: 0; }
.field-with-action .button { flex: none; }
.field-hint:empty { display: none; }
.field-hint.is-error { color: var(--error); }
.field-hint.is-warning { color: var(--warning); font-weight: 650; }
.required-marker { color: #b42318; }
.form-grid { display: grid; gap: .65rem; }
.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.span-two { grid-column: span 2; }
.field { display: grid; gap: .22rem; align-content: start; }
.field label { font-size: .8rem; font-weight: 650; color: var(--navy-900); }
input, select, textarea { width: 100%; min-height: 36px; padding: .42rem .55rem; color: var(--text); background: white; border: 1px solid #aebdca; border-radius: 2px; font: inherit; font-size: .9rem; }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(10, 94, 240, .2); outline-offset: 1px; border-color: var(--cyan-600); }
.field-validation-error, .validation-summary { color: var(--error); font-size: .84rem; }
.field-validation-error { display: block; font-weight: 650; }
.field-validation-valid { display: none; }
.input-validation-error { border-color: var(--error); background: #fff8f7; }
.input-validation-error:focus { border-color: var(--error); outline-color: rgba(180, 35, 24, .2); }
.validation-summary { padding: .8rem 1rem; border: 1px solid #f1b5b0; border-radius: 8px; background: var(--error-bg); }
.checkbox-row { display: flex; align-items: center; gap: .6rem; }
.checkbox-row input { width: 18px; min-height: 18px; }
.choice-list { display: grid; gap: .5rem; }
.choice-row { display: flex; align-items: flex-start; gap: .7rem; padding: .75rem .9rem; border: 1px solid var(--line); border-radius: 4px; background: #fff; cursor: pointer; }
.choice-row:hover { border-color: var(--navy-900); background: var(--blue-050); }
.choice-row:has(input:checked) { border-color: var(--navy-900); background: var(--blue-050); box-shadow: inset 3px 0 0 var(--navy-900); }
.choice-row input { width: 18px; min-height: 18px; margin-top: .15rem; flex: none; }
.choice-row span { display: grid; gap: .2rem; }
.choice-row strong { color: var(--navy-950); font-size: .92rem; }
.choice-row small { color: var(--muted); line-height: 1.45; }
.form-actions { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; }
.button-row { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; flex-wrap: wrap; }
.sticky-actions { position: sticky; bottom: .35rem; padding: .55rem; margin: .35rem -.55rem -.55rem; border-radius: 3px; background: rgba(255,255,255,.96); border: 1px solid var(--line); backdrop-filter: blur(10px); }
.autosave-note { color: var(--muted); font-size: .82rem; }
.autosave-status { margin: 0; color: var(--muted); font-size: .82rem; }
.autosave-status.is-error, .autosave-note.is-error { color: var(--error); }
.autosave-status.is-warning, .autosave-note.is-warning { color: var(--warning); }

.table-scroll { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .82rem; }
th, td { padding: .42rem .5rem; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
th { color: var(--navy-900); background: #eef3f7; font-size: .69rem; text-transform: uppercase; letter-spacing: .035em; }
tbody tr:hover { background: #f0f5ff; }
tfoot th { background: var(--cyan-100); color: var(--navy-950); border-bottom: 0; }
.number-table th:nth-child(n+3), .number-table td:nth-child(n+3):not(:last-child) { text-align: right; font-variant-numeric: tabular-nums; }
.align-right { text-align: right; }
.tabular { font-variant-numeric: tabular-nums; }
.status-pill, .count-badge { display: inline-flex; align-items: center; border-radius: 999px; font-size: .76rem; font-weight: 750; }
.status-pill { padding: .2rem .5rem; color: var(--navy-700); background: var(--cyan-100); }
.status-success { color: var(--success); background: var(--success-bg); }
.status-danger { color: var(--error); background: var(--error-bg); }
.status-warning { color: var(--warning); background: #fff4d4; }
.count-badge { padding: .12rem .42rem; margin-left: auto; color: white; }
.count-badge.error { background: var(--error); }
.count-badge.warning { background: var(--warning); }

.alert { margin: 0 0 .7rem; padding: .6rem .8rem; border-radius: 3px; font-weight: 650; }
.alert-success { color: var(--success); background: var(--success-bg); }
.alert-error { color: var(--error); background: var(--error-bg); }
.alert-locked { color: var(--warning); background: #fff4d4; }
/* Systemejerens besøg i en revisorvirksomhed. Linjen skal være rolig og aldrig til at
   overse: den er det eneste, der skiller virksomhedens rigtige kunder fra systemejerens
   eget niveau. Derfor båndet i venstre side og ikke en advarselsfarve. */
.besoegslinje { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .6rem; margin: 0 0 .7rem; padding: .55rem .8rem; color: var(--navy-950); background: var(--cyan-100); border-left: 4px solid var(--navy-700); border-radius: 3px; }
.besoegslinje p { margin: 0; font-size: .84rem; }
.besoegslinje form { margin: 0; }
.empty-state { padding: 2.25rem 1rem; text-align: center; }
.empty-state.compact { padding: 1.25rem 1rem; }
.empty-list { padding: 1rem; color: var(--muted); background: var(--blue-050); border-radius: 9px; }

.case-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); align-items: start; gap: .8rem; }
.case-navigation { position: sticky; top: .5rem; max-height: calc(100vh - 1rem); overflow-y: auto; padding: .6rem; background: var(--navy-950); color: white; border-radius: 2px; box-shadow: var(--shadow); }
.case-navigation-title { margin: 0 0 .4rem; padding: 0 .45rem; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: #b9d4e5; }
/* Menuen foldes af browserens eget details/summary — uden et eneste script, fordi
   Content-Security-Policy'en ikke tillader inline script. På en bred skærm er trekanten
   støj foran overskriften; folden bliver, så en lang menu kan lukkes. */
summary.case-navigation-title { cursor: pointer; list-style: none; }
summary.case-navigation-title::-webkit-details-marker { display: none; }
summary.case-navigation-title:focus-visible { outline: 2px solid #77a7ff; outline-offset: 2px; }
/* Genvejen tilbage til sagen træder i stedet for menuen på en smal skærm (Williams
   beslutning 9/9 2026). Står menuen selv, er genvejen overflødig. */
.case-navigation-genvej { display: none; }
.case-navigation ol { margin: 0; padding: 0; list-style: none; }
.module-item { display: flex; align-items: center; border-radius: 2px; font-size: .78rem; }
.module-item a, .module-disabled { flex: 1; min-width: 0; padding: .36rem .45rem; display: flex; align-items: center; gap: .45rem; color: white; text-decoration: none; }
.module-item a:hover { background: rgba(255,255,255,.1); }
.module-item a.active { background: rgba(10,94,240,.42); box-shadow: inset 3px 0 #77a7ff; }
.module-disabled { color: #91a5b2; }
/* Sagsmenuen har ingen undertekst (Williams ordre 8/9 2026): prikken bærer statussen.
   Farven kan ikke bære den alene — "Udfyldt" og "Med fejl" bliver praktisk talt samme
   farve ved rød-grøn farveblindhed — så FORMEN skiller tilstandene ad, og farven er
   hjælpen oven i. Formen og fyldet kommer fra ModulPrik som data-attributter; ingen to
   tilstande må dele begge dele. Teksten følger med som museover og som skjult etiket. */
.module-indicator { flex: 0 0 auto; width: 10px; height: 10px; box-sizing: border-box; border: 2px solid var(--prikfarve); background-color: transparent; --prikfarve: #ffffff; }
.module-completed .module-indicator { --prikfarve: #34d399; }
.module-inprogress .module-indicator { --prikfarve: #38bdf8; }
.module-haserrors .module-indicator { --prikfarve: #fb7185; }
.module-haswarnings .module-indicator { --prikfarve: #fbbf24; }
.module-notstarted .module-indicator { --prikfarve: #ffffff; }
.module-notapplicable .module-indicator { --prikfarve: #91a5b2; }
/* Formen: cirkel (de fleste), rombe (advarsler) og kvadrat (fejl). */
.module-indicator[data-form="cirkel"] { border-radius: 50%; }
.module-indicator[data-form="kvadrat"] { border-radius: 1px; }
.module-indicator[data-form="rombe"] { width: 9px; height: 9px; border-radius: 1px; transform: rotate(45deg); }
/* Fyldet: tom ring, fuld, halv, kryds (fejl) og skrå streg (ikke relevant). */
.module-indicator[data-fyld="tom"] { background-color: transparent; }
.module-indicator[data-fyld="fuld"] { background-color: var(--prikfarve); }
.module-indicator[data-fyld="halv"] { background-image: linear-gradient(90deg, var(--prikfarve) 50%, transparent 50%); }
.module-indicator[data-fyld="streg"] { background-image: linear-gradient(-45deg, transparent 42%, var(--prikfarve) 42%, var(--prikfarve) 58%, transparent 58%); }
.module-indicator[data-fyld="kryds"] { background-color: var(--prikfarve); background-image: linear-gradient(45deg, transparent 38%, #ffffff 38%, #ffffff 62%, transparent 62%), linear-gradient(-45deg, transparent 38%, #ffffff 38%, #ffffff 62%, transparent 62%); }
/* Sagens dokumenter er en genvej uden tilstand: ingen prik, men samme venstrekant. */
.module-item.menu-genvej a { padding-left: calc(.45rem + 10px + .45rem); }
.module-missing-title { font-weight: 700; }
.module-status { display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; max-width: 24rem; }
.module-status .module-missing { margin: 0; padding: 0; list-style: none; font-size: .78rem; color: var(--navy-700); text-align: right; }
.module-status .module-missing li { margin: .05rem 0; }
.completion-missing { margin-bottom: 1.25rem; }
.completion-missing-list { margin: 0; padding-left: 1.1rem; }
.completion-missing-list > li { margin: .35rem 0; }
.completion-missing-list .module-missing { margin: .15rem 0 0; padding-left: 1.1rem; font-size: .84rem; }
.case-content { min-width: 0; display: grid; gap: .9rem; }
.form-section { scroll-margin-top: 1rem; }
.asset-sections { display: grid; gap: 1rem; }
.asset-section { box-shadow: none; }
.add-row-panel { margin-top: 1rem; border-top: 1px solid var(--line); padding-top: .9rem; }
.add-row-panel summary { width: fit-content; color: var(--navy-700); font-weight: 750; cursor: pointer; }
.inline-row-form { display: grid; grid-template-columns: minmax(180px, 2fr) repeat(5, minmax(105px, 1fr)) auto; gap: .65rem; align-items: end; margin-top: 1rem; padding: 1rem; background: var(--blue-050); border-radius: 10px; }

.import-card, .trial-balance-table-card, .import-history { margin-bottom: 1.25rem; }
.upload-form { display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 1rem; align-items: end; }
.upload-form .validation-summary { grid-column: 1 / -1; }
.format-help { margin-top: 1rem; color: var(--muted); }
.format-help summary { color: var(--navy-700); font-weight: 750; cursor: pointer; }
.metric-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .45rem; margin: 0 0 .75rem; }
.metric-card { min-height: 72px; padding: .65rem .75rem; display: grid; align-content: space-between; background: white; border: 1px solid var(--line); border-radius: 2px; box-shadow: var(--shadow); }
.metric-card span { color: var(--muted); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.metric-card strong { color: var(--navy-950); font-size: clamp(1.05rem, 1.7vw, 1.45rem); font-variant-numeric: tabular-nums; }
a.metric-card { text-decoration: none; }
a.metric-card:hover { border-color: var(--navy-700); }
.metric-ok { border-color: #80c9a9; background: var(--success-bg); }
.metric-warning { border-color: #e8c878; background: #fff9e9; }
.metric-error { border-color: #efaaa4; background: var(--error-bg); }
.segmented-filter { display: inline-flex; padding: .2rem; border: 1px solid var(--line); border-radius: 9px; background: var(--blue-050); }
.segmented-filter a { padding: .4rem .7rem; border-radius: 7px; color: var(--muted); font-size: .82rem; font-weight: 750; text-decoration: none; }
.segmented-filter a.active { color: white; background: var(--navy-900); }
.manual-row-panel { margin: 0 0 1rem; padding: .8rem; border: 1px solid var(--line); border-radius: 10px; background: var(--blue-050); }
.manual-account-form { display: grid; grid-template-columns: minmax(110px, .7fr) minmax(220px, 2fr) repeat(2, minmax(110px, .8fr)) auto; align-items: end; gap: .65rem; margin-top: .9rem; }
.trial-balance-table { min-width: 1080px; }
.trial-balance-table th:nth-child(2), .trial-balance-table td:nth-child(2), .trial-balance-table th:nth-child(6), .trial-balance-table td:nth-child(6) { text-align: left; }
.unmapped-row { background: #fffaf0; }
/* Mapninger automatikken har sat uden at være sikker. Stregen gør bunken synlig
   uden at råbe: de er ikke fejl, de skal bare ses igennem. */
.review-row { box-shadow: inset 3px 0 0 #d9a441; }
/* Afslutningsarket har tolv kolonner. Det maa scrolle vandret i sin egen ramme,
   ikke skubbe siden ud. */
.afslutningsark-table { min-width: 1400px; font-size: .82rem; }
.afslutningsark-table th:nth-child(2), .afslutningsark-table td:nth-child(2),
.afslutningsark-table th:nth-child(3), .afslutningsark-table td:nth-child(3) { text-align: left; }
.ark-afsnit td { font-weight: 700; background: #ececec; }
.ark-gruppe td { font-weight: 600; background: #f7f7f7; }
.ark-lukning td { font-weight: 700; border-top: 1px solid #888; }
.heading-actions { display: flex; align-items: center; gap: .6rem; }
.mapping-review { display: block; color: #8a6a1f; }
.mapping-cell { min-width: 330px; }
/* Ét felt uden Gem-knap: valget gemmes, når feltet forlades. */
.mapping-form { display: grid; grid-template-columns: minmax(180px, 1fr); gap: .4rem; }
.mapping-cell small { display: block; margin-top: .25rem; color: var(--muted); }
/* Den stille markering på rækken: "Gemt" i dæmpet grøn, fejlen i rød. Skjult, når intet er sket. */
.mapping-status:empty { display: none; }
.mapping-status.is-saved { color: var(--success); }
.mapping-status.is-error { color: var(--error); font-weight: 650; }
.mapping-origin { font-style: italic; }
.mapping-suggestion { display: grid; gap: .35rem; margin-top: .35rem; padding: .45rem .6rem; border-left: 3px solid var(--navy-900); background: var(--blue-050); border-radius: 0 6px 6px 0; }
.mapping-suggestion small { margin-top: 0; }
.mapping-suggestion form { justify-self: start; }
.mapping-alternatives { margin-top: .35rem; }
.mapping-alternatives small { margin-top: 0; }
.mapping-alternative-buttons { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .25rem; }
.mapping-alternative-form { display: inline; }
/* Den mappede konto står som "nr - navn - område" under søgefeltet. */
.mapping-mapped { color: var(--navy-900); }

/* ---- Træk-tilstanden: to paneler (Williams ordre 9. september 2026) ----
   Venstre panel er råbalancens umappede konti, højre er sagens egen kontoplan som
   sammenklappelige mapper. Udseendet følger kontomapping-værktøjet, så revisor
   genkender det, men bygger på sidens egne farver. */
.filter-row { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.traek-panel { margin-top: .25rem; }
.traek-kvittering { min-height: 1.2rem; margin: 0 0 .5rem; color: var(--navy-900); font-weight: 650; }
.traek-kvittering:empty { min-height: 0; }
.traek-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.traek-side { display: flex; flex-direction: column; min-height: 0; border: 1px solid var(--line); border-radius: 10px; background: var(--white); overflow: hidden; }
.traek-side-hoved { display: flex; align-items: flex-start; justify-content: space-between; gap: .6rem; flex-wrap: wrap; padding: .65rem .8rem; border-bottom: 1px solid var(--line); background: var(--blue-050); }
.traek-side-hoved h3 { font-size: .95rem; }
.traek-side-hoved p { margin: .15rem 0 0; font-size: .8rem; }
.traek-soegefelt input { min-width: 200px; padding: .3rem .5rem; font-size: .82rem; }
.traek-liste { flex: 1; max-height: 30rem; overflow-y: auto; margin: 0; padding: .35rem; list-style: none; }
.traek-liste li { list-style: none; }
.traek-liste [hidden] { display: none; }

/* Kontoen i venstre panel. Formularen bag den bærer kun skjulte felter — den er
   rækkens egen mapningsformular, og gemmet går gennem sidens ene vej. */
.traek-konto { border-radius: 7px; }
.traek-konto form.mapping-form { display: none; }
.traek-konto .mapping-status { display: block; margin: 0 .55rem .3rem; font-size: .78rem; }
/* user-select: none, fordi Shift-klik nu markerer et spænd af konti (R366). Uden den
   trækker browseren en tekstmarkering hen over rækkerne i samme bevægelse. */
.traek-konto-knap { display: grid; grid-template-columns: 5.5rem 1fr auto; align-items: center; gap: .5rem; width: 100%; padding: .38rem .55rem; border: 1px solid transparent; border-radius: 7px; background: none; color: var(--text); font: inherit; font-size: .84rem; text-align: left; cursor: grab; user-select: none; }
.traek-konto-knap:hover { background: var(--blue-050); }
.traek-konto-knap:focus-visible { outline: 2px solid var(--cyan-600); outline-offset: 1px; }
.traek-konto.is-selected .traek-konto-knap { border-color: var(--navy-700); background: var(--cyan-100); font-weight: 650; }
.traek-konto.is-dragging { opacity: .45; }
.traek-nr { font-variant-numeric: tabular-nums; font-weight: 700; }
.traek-navn { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.traek-belob { font-variant-numeric: tabular-nums; color: var(--muted); font-size: .8rem; }

/* Mapperne i højre panel. Pilen er ren CSS, så markup'en ikke bærer et tegn. */
.traek-mappe { margin-bottom: .15rem; }
.traek-mappe[hidden] { display: none; }
.traek-mappe-hoved { display: flex; align-items: center; gap: .35rem; border-radius: 7px; }
.traek-mappe-hoved.is-drop-target { background: var(--cyan-100); box-shadow: inset 0 0 0 2px var(--cyan-600); }
.traek-mappe-knap { display: flex; align-items: center; gap: .45rem; flex: 1; min-width: 0; padding: .38rem .55rem; border: 1px solid var(--line); border-radius: 7px; background: var(--blue-050); color: var(--navy-950); font: inherit; font-size: .84rem; font-weight: 650; text-align: left; cursor: pointer; }
.traek-mappe-knap::before { content: "\25B8"; width: .7rem; color: var(--muted); }
.traek-mappe-knap[aria-expanded="true"]::before { content: "\25BE"; }
.traek-mappe-knap:hover { border-color: var(--navy-700); }
.traek-mappe-knap:focus-visible { outline: 2px solid var(--cyan-600); outline-offset: 1px; }
.traek-mappe-navn { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.traek-badge { flex: none; padding: .05rem .4rem; border: 1px solid var(--line); border-radius: 99px; background: var(--white); color: var(--muted); font-size: .72rem; font-weight: 700; }
.traek-map-hertil { flex: none; }
.traek-mappe-konti { margin: .1rem 0 .3rem 1.1rem; padding: 0; list-style: none; }
.traek-mappe-konti[hidden] { display: none; }
.traek-maal { display: grid; grid-template-columns: 5.5rem 1fr; align-items: center; gap: .5rem; width: 100%; padding: .3rem .55rem; border: 1px solid transparent; border-radius: 7px; background: none; color: var(--text); font: inherit; font-size: .82rem; text-align: left; cursor: pointer; }
.traek-maal:hover { background: var(--blue-050); }
.traek-maal:focus-visible { outline: 2px solid var(--cyan-600); outline-offset: 1px; }
.traek-maal.is-drop-target { background: var(--cyan-100); border-color: var(--cyan-600); border-style: dashed; }

.traek-tom { padding: 1.5rem .8rem; text-align: center; }
.traek-tom[hidden] { display: none; }
.traek-tom h4 { margin: 0 0 .25rem; color: var(--success); font-size: .95rem; }
.traek-hjaelp { margin-top: .6rem; font-size: .8rem; }
@media (max-width: 1100px) {
    .traek-grid { grid-template-columns: 1fr; }
}
/* Sidens egen kontovælger: grupperne som overskrifter, kontiene under dem. Den
   lægger sig under det felt, der har fokus, og lukker, når feltet forlades. */
.account-picker { position: absolute; z-index: 30; min-width: 380px; max-width: 520px; max-height: 340px; overflow-y: auto; margin-top: .2rem; padding: .25rem 0; background: white; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 24px rgba(10, 30, 60, .14); font-size: .85rem; }
.account-picker[hidden] { display: none; }
.account-picker-group { position: sticky; top: 0; margin: 0; padding: .35rem .7rem .25rem; background: var(--blue-050); color: var(--muted); font-size: .7rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.account-picker-option { display: grid; grid-template-columns: 5.5rem 1fr; gap: .5rem; margin: 0; padding: .3rem .7rem; cursor: pointer; }
.account-picker-option strong { font-variant-numeric: tabular-nums; font-weight: 650; }
.account-picker-option:hover, .account-picker-option.is-active { background: var(--cyan-100); }
.account-picker-empty { margin: 0; padding: .5rem .7rem; color: var(--muted); }
.account-picker-count { margin: 0; padding: .3rem .7rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; }
/* Tilbuddet om at oprette en egen konto, når nummeret ikke findes i planen. */
.account-offer { display: grid; gap: .45rem; margin-top: .5rem; padding: .7rem .8rem; border: 1px solid var(--line); border-left: 3px solid var(--cyan-600); border-radius: 0 8px 8px 0; background: var(--blue-050); }
.account-offer p { margin: 0; }
.account-offer-question { font-weight: 650; color: var(--navy-950); }
.account-offer-form { display: grid; grid-template-columns: minmax(110px, .6fr) minmax(200px, 1.4fr); gap: .5rem .65rem; align-items: end; }
.account-offer-form .field { margin: 0; }
.account-offer-form .field.wide { grid-column: 1 / -1; }
.account-offer-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem; }
/* Næste-knappen nederst: aktiv, når alle konti er mappet. */
.next-step { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.next-step p { margin: 0; }
.button.is-disabled { opacity: .5; pointer-events: none; cursor: default; }
.automap-panel { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 1rem; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: 10px; background: var(--blue-050); }
.automap-panel h3 { margin: 0 0 .25rem; font-size: 1rem; }
.automap-panel p { margin: 0; max-width: 62ch; }
.automap-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; padding-top: 1rem; color: var(--muted); }

.journal-create-card, .journal-list-card, .adjusted-trial-balance-card { margin-bottom: 1.25rem; }
.journal-create-form { display: grid; grid-template-columns: minmax(130px, .65fr) minmax(150px, .7fr) minmax(280px, 2fr) auto; gap: .75rem; align-items: end; }
.journal-create-form .wide { min-width: 0; }
.journal-actions { display: flex; align-items: center; justify-content: flex-end; gap: .6rem; }
.journal-actions form { margin: 0; }
.compact-search-form { width: min(440px, 100%); display: grid; grid-template-columns: 1fr auto; gap: .5rem; }
.adjusted-trial-balance-table { min-width: 960px; }
.adjusted-trial-balance-table th:nth-child(2), .adjusted-trial-balance-table td:nth-child(2), .adjusted-trial-balance-table th:last-child, .adjusted-trial-balance-table td:last-child { text-align: left; }
.adjustment-amount { color: var(--cyan-600); font-weight: 750; }
.amount-ok { color: var(--success); font-weight: 750; }
.amount-error { color: var(--error); font-weight: 750; }
.metric-card small { color: var(--muted); }
.centered-actions { justify-content: center; margin-top: 1rem; }
.journal-lines-table { min-width: 900px; }
.journal-lines-table th:nth-child(2), .journal-lines-table td:nth-child(2), .journal-lines-table th:nth-child(3), .journal-lines-table td:nth-child(3), .journal-lines-table th:nth-child(6), .journal-lines-table td:nth-child(6) { text-align: left; }
.journal-line-panel { margin-top: 1.25rem; padding: 1rem; border: 1px solid var(--line); border-radius: 12px; background: var(--blue-050); }
.journal-line-form { display: grid; grid-template-columns: minmax(110px, .7fr) minmax(200px, 1.4fr) repeat(2, minmax(105px, .65fr)) minmax(240px, 1.5fr) auto; gap: .65rem; align-items: end; margin-top: 1rem; }
.journal-post-guidance { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; padding: .8rem 1rem; color: var(--muted); background: #fff9e9; border: 1px solid #e8c878; border-radius: 9px; font-size: .86rem; }
.journal-post-guidance span { padding: .2rem .55rem; border-radius: 999px; background: white; border: 1px solid var(--line); }
.journal-post-guidance span::before { content: "○ "; }
.journal-post-guidance .check-ok { color: var(--success); border-color: #80c9a9; background: var(--success-bg); }
.journal-post-guidance .check-ok::before { content: "✓ "; }
.journal-post-actions { margin-top: 1rem; }
.journal-posted-note { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: 1rem; color: var(--success); background: var(--success-bg); border: 1px solid #80c9a9; border-radius: 9px; }

/* Efterposteringens kontovalg, kontooversigt og konsekvens. */
.journal-line-form { grid-template-columns: minmax(240px, 2fr) minmax(105px, .65fr) minmax(105px, .65fr) auto; }
.journal-line-form .field small { display: block; margin-top: .25rem; font-size: .78rem; line-height: 1.3; }
.journal-running-total { grid-column: 1 / -1; margin: 0; font-size: .84rem; }
.journal-running-total.is-error { color: var(--error); font-weight: 650; }
.journal-deviation { grid-column: 1 / -1; margin-top: .25rem; padding-top: .6rem; border-top: 1px dashed var(--line); }
.journal-deviation summary { width: fit-content; color: var(--muted); font-size: .84rem; cursor: pointer; }
.journal-deviation .field { margin-top: .6rem; }
.journal-deviation p { margin: .4rem 0 0; font-size: .8rem; }

.kontooversigt { margin-top: 1.25rem; }
.kontooversigt-filter { display: flex; align-items: center; gap: .75rem; margin-top: .75rem; }
.kontooversigt-filter input { flex: 1 1 22rem; max-width: 34rem; }
.kontooversigt > p { margin: .5rem 0 0; font-size: .82rem; }
.kontooversigt-liste { max-height: 26rem; overflow-y: auto; margin-top: .75rem; border: 1px solid var(--line); border-radius: 10px; background: var(--white); }
.kontooversigt-gruppe { padding: .55rem .75rem; border-bottom: 1px solid var(--line); }
.kontooversigt-gruppe:last-child { border-bottom: 0; }
.kontooversigt-gruppe h3 { position: sticky; top: 0; z-index: 1; margin: 0 -.75rem; padding: .35rem .75rem; font-size: .84rem; font-weight: 700; background: var(--blue-025); }
.kontooversigt-gruppe ul { list-style: none; margin: .35rem 0 0; padding: 0; }
.kontooversigt-gruppe li + li { border-top: 1px solid var(--blue-050); }
.konto-vaelg { display: grid; grid-template-columns: 7rem 1fr 9rem; gap: .75rem; width: 100%; padding: .35rem .4rem; text-align: left; font: inherit; color: inherit; background: none; border: 0; border-radius: 6px; cursor: pointer; }
.konto-vaelg:hover, .konto-vaelg:focus-visible { background: var(--cyan-100); }
.konto-nummer { font-variant-numeric: tabular-nums; font-weight: 650; }
.konto-saldo { text-align: right; font-variant-numeric: tabular-nums; color: var(--muted); }
.konto-plan .konto-nummer, .konto-plan .konto-navn { color: var(--muted); }

.journal-effect-card .effect-figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: .75rem; margin-top: 1rem; }
.effect-figure { display: grid; gap: .2rem; padding: .7rem .85rem; border: 1px solid var(--line); border-radius: 10px; background: var(--blue-025); }
.effect-figure.effect-changed { border-color: var(--cyan-600); background: var(--cyan-100); }
.effect-label { font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); }
.effect-tal { font-variant-numeric: tabular-nums; }
.effect-before { color: var(--muted); }
.effect-after { font-weight: 700; }
.effect-arrow { color: var(--muted); }
.effect-delta { font-size: .82rem; font-weight: 650; color: var(--muted); }
.effect-figure.effect-changed .effect-delta { color: var(--cyan-600); }
.effect-table { min-width: 640px; margin-top: 1rem; }
.effect-table td:first-child, .effect-table th:first-child { text-align: left; }
.effect-table .effect-section th { text-align: left; background: var(--blue-025); font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; }
.effect-table .effect-total td { font-weight: 700; }

.statement-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.statement-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; align-items: start; }
.statement-card { display: grid; gap: 1rem; }
.statement-section { border-top: 1px solid var(--line); padding-top: .75rem; }
.statement-section summary { display: flex; justify-content: space-between; gap: 1rem; cursor: pointer; color: var(--navy-900); font-weight: 750; }
.statement-section table { margin-top: .6rem; font-size: .82rem; }
.control-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.control-metrics-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.control-list { display: grid; gap: .75rem; }
.control-result { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 1rem; align-items: center; box-shadow: none; }
.control-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; font-size: 1.3rem; font-weight: 850; }
.control-passed .control-icon { color: var(--success); background: var(--success-bg); }
.control-warning { border-left: 4px solid #e8b13f; }
.control-warning .control-icon { color: var(--warning); background: #fff4d4; }
.control-error { border-left: 4px solid var(--error); }
.control-error .control-icon { color: var(--error); background: var(--error-bg); }
.control-not-evaluated { border-left: 4px solid #66788a; }
.control-not-evaluated .control-icon { color: #425466; background: #e8edf2; }
.note-intro-card { margin-bottom: 1.25rem; }
.note-automatic-notes { margin-bottom: 1.25rem; }
.note-automatic-list { margin: .5rem 0 .75rem; padding-left: 1.15rem; display: grid; gap: .35rem; }
.note-create-form { display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: .75rem; align-items: end; }
.note-sections { display: grid; gap: 1.25rem; }
.note-section { scroll-margin-top: 1rem; }
.note-heading-row { display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 1rem; align-items: end; }
.note-visibility { min-height: 42px; }
.note-table-area { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.note-table { min-width: 620px; }
.note-table th:first-child, .note-table td:first-child { text-align: left; }
.note-row-form { display: grid; grid-template-columns: minmax(220px, 2fr) repeat(2, minmax(120px, .7fr)) auto; gap: .65rem; align-items: end; margin-top: 1rem; padding: 1rem; background: var(--blue-050); border-radius: 10px; }
.note-delete-form { display: flex; justify-content: flex-end; margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.note-complete-actions { margin-top: 1.25rem; padding: 1rem; background: white; border: 1px solid var(--line); border-radius: 12px; }
.policy-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.policy-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
.policy-sections { display: grid; gap: 1rem; }
.policy-section { box-shadow: none; scroll-margin-top: 1rem; }
.policy-included { border-left: 4px solid var(--success); }
.policy-excluded { border-left: 4px solid var(--line); opacity: .82; }
.policy-section-header, .policy-title-line { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; }
.policy-section-header { justify-content: space-between; margin-bottom: 1rem; }
.policy-include-toggle { width: fit-content; padding: .65rem .8rem; color: var(--navy-900); background: var(--blue-050); border-radius: 9px; font-weight: 750; }
.policy-actions { justify-content: space-between; align-items: flex-start; }
.policy-source { max-width: min(680px, 100%); color: var(--muted); font-size: .82rem; }
.policy-source summary { color: var(--navy-700); font-weight: 750; cursor: pointer; }
.policy-source p:last-child { max-height: 180px; overflow: auto; padding: .7rem; background: var(--blue-050); border-radius: 8px; }
.policy-reset-form { display: flex; justify-content: flex-end; margin-top: .8rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.policy-complete-actions { margin-top: 1.25rem; padding: 1rem; background: white; border: 1px solid var(--line); border-radius: 12px; }
.management-report-form { gap: 1rem; }
.report-section { box-shadow: none; }
.report-required { border-left: 4px solid var(--cyan-600); }
.report-choice { width: fit-content; padding: .7rem .85rem; color: var(--navy-900); background: var(--blue-050); border-radius: 9px; font-weight: 750; }
.report-dependent { margin-top: 1rem; }
.outcome-selector { width: min(520px, 100%); margin-bottom: 1rem; }
.report-optional { padding: 0; overflow: hidden; box-shadow: none; }
.report-optional > summary { padding: 1.25rem 1.5rem; cursor: pointer; list-style-position: inside; color: var(--navy-950); }
.report-optional > summary span { display: inline-grid; margin-left: .4rem; }
.report-optional-body { padding: 0 1.5rem 1.5rem; border-top: 1px solid var(--line); padding-top: 1.25rem; }
.report-approval { display: grid; gap: 1.25rem; border-color: #80c9a9; background: var(--success-bg); box-shadow: none; }
.three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.auditor-report-form { gap: 1rem; }
.auditor-selection { border-left: 4px solid var(--navy-900); box-shadow: none; }
.auditor-body-text { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: .86rem; line-height: 1.55; }
.auditor-option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.auditor-option-grid .report-section { display: grid; align-content: start; gap: .9rem; }
.auditor-matters { margin-top: 1.25rem; }
.reporting-matter { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.reporting-matter p { white-space: pre-line; }
.matter-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .7rem; }
.matter-tags span { padding: .2rem .5rem; color: var(--navy-700); background: var(--cyan-100); border-radius: 999px; font-size: .75rem; font-weight: 700; }
.reporting-matter-form { margin-top: 1rem; padding: 1rem; background: var(--blue-050); border-radius: 10px; }
.matter-categories { display: grid; gap: .45rem; padding: 1rem; border: 1px solid var(--line); border-radius: 9px; }
.matter-categories legend { padding: 0 .3rem; color: var(--navy-900); font-weight: 750; }
.tax-metrics { grid-template-columns: repeat(5, minmax(0,1fr)); }
.tax-waterfall, .tax-settings, .tax-list { margin-bottom: 1.25rem; box-shadow: none; }
.tax-waterfall table { width: min(700px,100%); margin: 0 auto; }
.tax-waterfall td:last-child, .tax-waterfall th:last-child { text-align: right; font-variant-numeric: tabular-nums; }

/* Personsagens indkomstopgørelse. Postnavnet flyder, og HVER beløbskolonne har den
   samme faste bredde — derfor står tallene under hinanden uanset hvor mange kolonner
   der er. Kommer SKAT-kolonnen, virksomhedens tal, den korrigerede og ultimo til, er det
   en celle mere pr. række; opstillingen skal ikke laves om, og .table-scroll omkring
   tabellen lader kolonnerne rulle vandret på en smal skærm frem for at klemme
   postnavnet sammen. */
/* Felter, der kun gælder, når revisor har valgt dem til, står i en fold. Valget selv —
   afkrydsningen eller beskatningsformen — står UDEN FOR folden, så en lukket fold aldrig
   kan skjule det, der åbner den. <details> er browserens egen; applikationens
   Content-Security-Policy tillader ikke inline script, og en fold, der skulle have
   JavaScript for at kunne åbnes, kunne ikke åbnes. */
.feltfold { margin: .35rem 0 .1rem; border: 1px solid var(--line); border-radius: 6px; background: var(--blue-025); }
.feltfold > summary { padding: .5rem .7rem; color: var(--navy-900); font-weight: 650; font-size: .86rem; cursor: pointer; }
.feltfold > summary:hover { background: var(--cyan-100); }
.feltfold[open] > summary { border-bottom: 1px solid var(--line); }
.feltfold > .muted { margin: .5rem .7rem 0; font-size: .8rem; }
.feltfold > .form-grid { padding: .55rem .7rem .8rem; }

.tax-waterfall table.opgoerelse { width: 100%; margin: 0; }
.opgoerelse th[scope="row"] { font-weight: 400; text-transform: none; letter-spacing: 0; font-size: .82rem; color: var(--text); background: none; }
.opgoerelse .beloeb { width: 11rem; min-width: 8.5rem; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.opgoerelse thead th { background: var(--blue-050); border-bottom: 1px solid var(--line); }
/* Gruppen er opgørelsens overskrift, ikke en post: den har intet beløb og må derfor
   heller ikke læses som en linje, der kunne lægges sammen. */
.opgoerelse tr.gruppe th { padding-top: .95rem; color: var(--navy-700); background: none; border-bottom: 0; }
.opgoerelse tr.gruppe:hover, .opgoerelse tr.delsum:hover, .opgoerelse tr.total:hover { background: none; }
.opgoerelse tr.delsum th[scope="row"], .opgoerelse tr.delsum .beloeb { font-weight: 700; color: var(--navy-950); border-top: 1px solid var(--line); }
/* Totalen får dobbeltstregen, en opgørelse altid har haft: den er slutlinjen. */
.opgoerelse tr.total th[scope="row"], .opgoerelse tr.total .beloeb { font-weight: 750; font-size: .88rem; color: var(--navy-950); border-top: 2px solid var(--navy-700); border-bottom: 3px double var(--navy-700); }
.opgoerelse tr.total th[scope="row"] { text-transform: none; letter-spacing: 0; background: none; }
/* Linjen om en sats, der er regnet med et tidligere års tal. Den står ved sit eget tal og
   skal kunne læses som en note under posten — ikke løbe videre efter postens navn. */
.satstilbagefald { display: block; margin-top: .15rem; font-size: .75rem; line-height: 1.35; }
/* Arkets egen beskrivelse af posten står under postnavnet — samme opsætning som
   satslinjen, så de to noter ikke kappes om at ligne selve etiketten. */
.arkbeskrivelse { display: block; margin-top: .15rem; font-size: .75rem; line-height: 1.35; }
/* Williams fire kolonner (R372). De tre låste er FELTER, revisor ikke kan taste i — låsen
   sidder i feltet og ikke kun i farven — og de tegnes uden ramme, så opgørelsen stadig
   læses som en opgørelse. Korrektionen er det eneste rigtige indtastningsfelt. Tabellen
   får en mindstebredde, så de fire kolonner ruller vandret i .table-scroll frem for at
   klemme postnavnet sammen. */
.opgoerelse { min-width: 46rem; }
/* Gruppeoverskriften spænder over hele rækken og er derfor også dens SIDSTE celle — og
   .tax-waterfall th:last-child højrestiller. Med én beløbskolonne sås det knap; med fire
   stod overskriften ude i højre kant, langt fra de poster, den samler. */
.opgoerelse tr.gruppe th { text-align: left; }
.opgoerelse .beloeb { width: 8.5rem; min-width: 7rem; }
.opgoerelse .beloeb input { width: 100%; min-width: 0; padding: .2rem .35rem; font-size: .82rem; text-align: right; font-variant-numeric: tabular-nums; }
.opgoerelse .laast-beloeb { border: 0; background: none; color: var(--text); box-shadow: none; cursor: default; }
.opgoerelse .laast-beloeb:focus { outline: none; }
.opgoerelse tr.delsum .laast-beloeb, .opgoerelse tr.total .laast-beloeb { font-weight: inherit; color: inherit; }
/* En række, motoren ikke kan tage en korrektion til, har ingen celle at taste i: tom er
   tydeligere end et felt, der ikke virker. Rækken flytter sig alligevel, fordi ultimo
   regnes. */
.opgoerelse .korrektion-uden-felt { background: var(--blue-025); }
/* Cellen SIGER, at rækken regnes (Williams punkt 7, 15/9 2026): en tom celle lignede en
   fejl på de rækker, motoren selv regner. Ordet er lille og gråt, og titlen forklarer. */
.opgoerelse .korrektion-uden-felt .regnes { display: block; font-size: .72rem; color: var(--muted); text-align: right; cursor: help; }
/* Rubrikken (punkt 3): en smal kolonne mellem postnavnet og beløbene. Den er ikke et beløb
   og bærer hverken data-kolonne eller data-beloeb, så den tælles ikke som en femte kolonne. */
.opgoerelse .rubrik { width: 6.5rem; min-width: 5.5rem; font-size: .78rem; color: var(--navy-700); white-space: nowrap; font-variant-numeric: tabular-nums; }
.opgoerelse .rubrik .mangler { color: var(--muted); font-style: italic; }
.opgoerelse { min-width: 52rem; }
/* Hjælpeteksten (punkt 4) kommer frem, når man peger på en post eller en overskrift. */
.opgoerelse th[scope="row"][title], .opgoerelse tr.gruppe th[title] { cursor: help; }
.opgoerelse thead th .kolonnenote { display: block; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: .7rem; color: var(--muted); white-space: normal; }
/* Én lang, sammenhængende opgørelse ned ad siden (punkt 4): afsnittene stakkes uden hvert
   sit kort, brudt af de små overskrifter. Ingen faner, ingen kort ved siden af hinanden. */
.indkomstopgoerelse { border-top: 1px solid var(--line); }
.indkomstopgoerelse .card { box-shadow: none; border-radius: 0; border-top: 0; margin-bottom: 0; }
.indkomstopgoerelse .skattehentning { padding: .6rem 1rem; border: 1px solid var(--line); border-top: 0; margin: 0; background: var(--white); }
/* Opgørelsens kolonner ruller INDE i .table-scroll, ikke siden. En .table-scroll, der er
   element i et grid (.form-stack), får min-width: auto og kan ikke blive smallere end
   tabellen — så var det hele siden, der rullede vandret (skeptiker C, målt ved 1024 px).
   Det samme gælder hele vejen op: .indkomstopgoerelse er selv element i sagens grid
   (.case-content), og med min-width: auto trak dens indhold sagens kolonne bredere end
   pladsen, så siden stadig rullede 46 px — målt ved 1024 px, 15. september 2026. */
.indkomstopgoerelse { min-width: 0; max-width: 100%; }
.indkomstopgoerelse .table-scroll { min-width: 0; max-width: 100%; }
.indkomstopgoerelse form, .indkomstopgoerelse .card, .indkomstopgoerelse [data-refresh] { min-width: 0; max-width: 100%; }
/* Nøgletallene under hinanden i opgørelsens egen form — ikke som kort ved siden af hinanden. */
.noegletal { display: grid; grid-template-columns: max-content max-content; gap: .15rem 1.25rem; margin: 0 0 .75rem; font-size: .84rem; align-items: baseline; }
.noegletal dt { color: var(--muted); }
.noegletal dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; font-weight: 650; color: var(--navy-950); }
/* SKAT-knappen og korrektionernes statuslinje står mellem kortene. */
.skattehentning { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 0 0 .6rem; }
.skattehentning .muted { font-size: .8rem; }
.korrektionsstatus { margin: -.75rem 0 1.25rem; }
.tax-list h3 { margin: 1.2rem 0 .5rem; }
.tax-rates { display: grid; gap: .35rem; padding: .75rem .9rem; background: var(--blue-050); border-radius: 8px; }
.tax-rates .eyebrow, .tax-rates .muted { margin: 0; }
.tax-rate-list { display: grid; gap: .2rem; margin: 0; padding: 0; list-style: none; color: var(--navy-900); }
.tax-rate-list .is-missing { color: var(--error); }
.tax-rates .button { justify-self: start; }
.tax-row-form { display:grid; grid-template-columns:minmax(220px,2fr) repeat(4,minmax(130px,1fr)) auto; gap:.65rem; align-items:end; margin-top:1rem; padding:1rem; background:var(--blue-050); border-radius:10px; }
.difference-form { grid-template-columns:minmax(240px,2fr) repeat(2,minmax(150px,1fr)) auto; }
.payment-form { grid-template-columns:minmax(150px,1fr) minmax(140px,1fr) minmax(220px,2fr) minmax(130px,1fr) auto; }
.joint-settings, .joint-companies, .joint-allocation { margin-bottom: 1.25rem; box-shadow: none; }
.joint-dependent, .joint-subheading { padding-top: 1rem; border-top: 1px solid var(--line); }
.joint-subheading { margin-top: .5rem; }
.joint-company-card { margin-top: .8rem; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.joint-company-card > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; cursor: pointer; background: var(--blue-050); }
.joint-company-card > summary span:first-child { display: grid; gap: .2rem; }
.joint-company-card > summary small { color: var(--muted); font-weight: 500; }
.joint-company-form { display: grid; gap: 1rem; padding: 1rem; }
.joint-company-section { padding: 1rem; border: 1px solid var(--line); border-radius: 9px; }
.joint-company-section legend { padding: 0 .4rem; color: var(--navy-900); font-weight: 750; }
.joint-value-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.joint-delete-form { display: flex; justify-content: flex-end; padding: 0 1rem 1rem; }
.joint-add-company { margin-top: 1rem; }
.joint-allocation table { width: 100%; }
.joint-allocation td:not(:first-child), .joint-allocation th:not(:first-child) { text-align: right; }
.joint-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; margin-top: 1rem; }
.joint-summary-grid span { display: grid; gap: .25rem; padding: .8rem; background: var(--blue-050); border-radius: 8px; }
.matter-settings, .matter-sections { display: grid; gap: 1.25rem; }
.matter-card, .matter-list { box-shadow: none; }
.matter-period-grid { display: grid; grid-template-columns: minmax(260px,2fr) repeat(2,minmax(130px,1fr)); gap: .65rem; align-items: center; margin-top: 1rem; }
.matter-period-grid > strong:not(:first-child) { text-align: right; }
.matter-toggle-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.matter-dependent { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
/* Opfølgende spørgsmål: vises under det valg, der udløser dem, og skjules ved fravalg. */
[data-revealed-by][hidden] { display: none !important; }
/* Advarslen om gemte rækker under et fravalgt valg — det omvendte af en opfølgning.
   Reglen skal være !important: .follow-up-warning kunne ellers vinde over browserens
   egen [hidden] { display: none }, som en display-regel gjorde det ved fund 37. */
[data-hidden-by][hidden] { display: none !important; }
.follow-up-warning { margin: .25rem 0 0 .35rem; padding: .55rem .8rem; color: var(--warning); background: #fff7e6; border: 1px solid #f0d9a6; border-left: 3px solid var(--warning); border-radius: 0 6px 6px 0; font-size: .86rem; line-height: 1.45; }
.follow-up { display: grid; gap: .65rem; padding: .7rem .9rem; margin: .25rem 0 0 .35rem; border-left: 3px solid var(--cyan-600); background: var(--blue-025); border-radius: 0 6px 6px 0; }
.follow-up.form-grid { display: grid; }
.follow-up-lead { margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.45; }
.follow-up-lead a { font-weight: 650; }
.follow-up-register { margin-top: 1rem; padding: 1rem; border: 1px solid var(--line); border-left: 3px solid var(--cyan-600); border-radius: 0 8px 8px 0; background: #fff; }
.follow-up-register h3 { margin: 0 0 .25rem; font-size: 1rem; }
.follow-up-register .table-scroll { margin-top: .6rem; }
.toggle-with-follow-up { display: grid; gap: .35rem; align-content: start; }
.matter-card .section-heading + .autosave-status { margin-top: -.35rem; }
.matter-approval { border-color: #80c9a9; background: var(--success-bg); }
.matter-list { scroll-margin-top: 1rem; }
.matter-line-form { display: grid; grid-template-columns: minmax(220px,2fr) repeat(6,minmax(110px,1fr)) auto; gap: .65rem; align-items: end; margin-top: 1rem; padding: 1rem; background: var(--blue-050); border-radius: 10px; }
.matter-line-form .details { grid-column: 1 / -2; }
.follow-up-line-form { grid-template-columns: minmax(200px,2fr) repeat(3,minmax(120px,1fr)) auto; }
.table-detail { display: block; max-width: 360px; margin-top: .25rem; color: var(--muted); white-space: pre-line; }
.investment-register { margin-top: 1.25rem; box-shadow: none; }
/* Kapitalandelene står nu som et kort mellem de øvrige på Regnskabsforhold (arkets orden);
   gitteret giver selv afstanden, så den ekstra topmargen skal væk. */
.matter-settings > .investment-register { margin-top: 0; }
.investment-card { margin-top: .8rem; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.investment-card > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; cursor: pointer; background: var(--blue-050); }
.investment-card > summary > span:first-child { display: grid; gap: .2rem; }
.investment-card > summary small { color: var(--muted); font-weight: 500; }
.investment-summary-values { display: flex; gap: 1rem; font-size: .84rem; font-variant-numeric: tabular-nums; }
.investment-form { display: grid; gap: 1rem; padding: 1rem; }
.investment-periods { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.investment-movement { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 9px; }
.investment-movement legend { padding: 0 .4rem; color: var(--navy-900); font-weight: 750; }
.investment-value-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.investment-reconciliation { display: grid; grid-template-columns: 1fr minmax(140px,1fr) 1fr; align-items: end; gap: .7rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.investment-reconciliation > span { display: grid; gap: .2rem; font-size: .82rem; }
.investment-delete-form { display: flex; justify-content: flex-end; padding: 0 1rem 1rem; }
.investment-add { margin-top: 1rem; }
.equity-metrics { grid-template-columns: repeat(5,minmax(0,1fr)); }
.equity-disposition, .equity-add-card { margin-bottom: 1.25rem; box-shadow: none; }
.equity-disposition table { width: min(760px,100%); margin: 0 auto; }
.equity-reserves { display: grid; gap: 1rem; }
.equity-reserve-card { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: white; box-shadow: var(--shadow); }
.equity-reserve-card > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.25rem; cursor: pointer; background: var(--blue-050); }
.equity-reserve-card > summary > span:first-child { display: grid; gap: .2rem; }
.equity-reserve-card > summary small { color: var(--muted); font-weight: 500; }
.equity-reserve-form { display: grid; gap: 1rem; padding: 1.25rem; }
.equity-value-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.equity-reconciliation { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.equity-reconciliation > span { display: grid; gap: .25rem; padding: .85rem; background: var(--blue-050); border-radius: 9px; }
.equity-reconciliation small { color: var(--muted); }
.equity-unbooked { padding: 1rem; border: 1px solid #80c9a9; border-radius: 10px; background: var(--success-bg); }
.equity-unbooked small { color: var(--muted); }
.equity-delete-form { display: flex; justify-content: flex-end; padding: 0 1.25rem 1rem; }
.equity-add-form { margin-top: 1rem; align-items: end; }
.equity-add-form .field { min-width: min(520px,100%); }
.dividend-metrics { grid-template-columns: repeat(5,minmax(0,1fr)); }
.dividend-settings { margin-bottom: 1.25rem; }
.dividend-settings .card, .dividend-recipients { box-shadow: none; }
.dividend-amount-field { width: min(360px,100%); }
.dividend-recipient-card { margin-top: .8rem; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.dividend-recipient-card > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; cursor: pointer; background: var(--blue-050); }
.dividend-recipient-card > summary > span:first-child { display: grid; gap: .2rem; }
.dividend-recipient-card > summary small { color: var(--muted); font-weight: 500; }
.dividend-recipient-form { display: grid; grid-template-columns: repeat(5,minmax(120px,1fr)) minmax(180px,1.4fr) auto; gap: .65rem; align-items: end; padding: 1rem; }
.dividend-recipient-form .wide { min-width: 0; }
.dividend-delete-form { display: flex; justify-content: flex-end; padding: 0 1rem 1rem; }
.debt-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); }
.debt-settings { margin-bottom: 1.25rem; box-shadow: none; }
.debt-categories { display: grid; gap: 1rem; }
.debt-category { box-shadow: none; }
.debt-item { margin: .75rem 0; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.debt-item > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; cursor: pointer; background: var(--blue-050); }
.debt-item > summary > span { display: grid; gap: .2rem; }
.debt-item > summary small { color: var(--muted); font-weight: 500; }
.debt-item-form { display: grid; gap: 1rem; padding: 1rem; }
.debt-value-grid { display: grid; grid-template-columns: repeat(5,minmax(130px,1fr)); gap: .65rem; }
.debt-delete-form { display: flex; justify-content: flex-end; padding: 0 1rem 1rem; }
.debt-add-form { display: grid; grid-template-columns: 2fr 1fr auto; gap: .65rem; align-items: end; margin-top: 1rem; }
.commitment-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); }
.commitment-settings, .joint-tax-disclosure { margin-bottom: 1.25rem; box-shadow: none; }
.joint-tax-disclosure { border-left: 4px solid #26865f; }
.commitment-sections { display: grid; gap: 1rem; }
.commitment-section { box-shadow: none; }
.commitment-item { margin: .75rem 0; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.commitment-item > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; cursor: pointer; background: var(--blue-050); }
.commitment-item > summary > span { display: grid; gap: .2rem; }
.commitment-item > summary small { color: var(--muted); font-weight: 500; }
.commitment-form { display: grid; grid-template-columns: repeat(4,minmax(130px,1fr)); gap: .7rem; align-items: end; padding: 1rem; }
.commitment-form .wide, .commitment-form .details { grid-column: span 2; }
.commitment-delete { display: flex; justify-content: flex-end; padding: 0 1rem 1rem; }
.commitment-add-form { display: grid; grid-template-columns: 2fr 1.3fr 1fr auto; gap: .7rem; align-items: end; margin-top: 1rem; }
.related-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
.related-settings, .related-section { margin-bottom: 1.25rem; box-shadow: none; }
.related-settings-form { display: grid; grid-template-columns: repeat(3,minmax(180px,1fr)); gap: .8rem; align-items: end; }
.related-item { margin: .75rem 0; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.related-item > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; cursor: pointer; background: var(--blue-050); }
.related-item > summary > span { display: grid; gap: .2rem; }
.related-item > summary small { color: var(--muted); font-weight: 500; }
.related-transaction-form { display: grid; grid-template-columns: repeat(4,minmax(130px,1fr)); gap: .7rem; align-items: end; padding: 1rem; }
.management-exposure-form { display: grid; grid-template-columns: repeat(4,minmax(130px,1fr)); gap: .7rem; align-items: end; padding: 1rem; }
.related-transaction-form .wide, .management-exposure-form .wide { grid-column: span 2; }
.related-delete { display: flex; justify-content: flex-end; padding: 0 1rem 1rem; }
.special-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
.special-settings, .special-items-register { margin-bottom: 1.25rem; box-shadow: none; }
.special-settings-form { display: grid; grid-template-columns: repeat(3,minmax(170px,1fr)); gap: .8rem; align-items: end; }
.special-settings-form .full { grid-column: 1/-1; }
.toggle-row { grid-column: 1/-1; display: grid; grid-template-columns: repeat(3,minmax(170px,1fr)); gap: .8rem; align-items: end; }
.special-item-card { margin: .75rem 0; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.special-item-card > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; cursor: pointer; background: var(--blue-050); }
.special-item-card > summary > span { display: grid; gap: .2rem; }
.special-item-card > summary small { color: var(--muted); font-weight: 500; }
.special-item-form { display: grid; grid-template-columns: repeat(4,minmax(130px,1fr)); gap: .7rem; align-items: end; padding: 1rem; }
.special-item-form .wide { grid-column: span 2; }
.special-delete { display: flex; justify-content: flex-end; padding: 0 1rem 1rem; }
.fixed-asset-completion, .statement-completion { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.25rem; box-shadow: none; }
.completion-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
.report-access-card { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; margin: 1.25rem 0; border: 2px solid var(--cyan-600); background: linear-gradient(135deg, var(--white), var(--cyan-100)); }
.report-access-card > div:first-child { max-width: 760px; }
.report-download-actions { display: flex; justify-content: flex-end; align-items: center; gap: .65rem; flex-wrap: wrap; }
.report-download-actions form { margin: 0; }
.report-steps { box-shadow: none; }
.report-steps ol { margin: .85rem 0 0; padding-left: 1.35rem; }
.report-steps li + li { margin-top: .45rem; }
.completion-decision { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; margin-bottom: 2rem; }
.completion-decision-ready { border-left: 4px solid var(--success); background: var(--success-bg); }
.completion-decision-blocked { border-left: 4px solid var(--error); background: var(--error-bg); }
.approval-role-notice { display: grid; gap: .2rem; max-width: 460px; padding: .75rem 1rem; color: var(--navy-900); background: white; border: 1px solid var(--line); border-radius: 9px; }
.approval-role-notice span { color: var(--muted); font-size: .88rem; }
.completion-section { margin-top: 2rem; }
.completion-module-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.completion-module { display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: .85rem; padding: 1rem; box-shadow: none; }
.completion-module-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; font-size: 1.1rem; font-weight: 850; }
.dokument-liste { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; align-items: stretch; }
.dokument-kort { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1.1rem; box-shadow: none; }
.dokument-tekst { min-width: 0; }
.dokument-tekst h3 { margin: 0 0 .2rem; font-size: .98rem; }
.dokument-tekst p { margin: 0; font-size: .88rem; line-height: 1.45; }
.dokument-kort .button { flex: none; min-width: 4.5rem; text-align: center; }
.completion-passed .completion-module-icon { color: var(--success); background: var(--success-bg); }
.completion-warning { border-left: 4px solid #e8b13f; }
.completion-warning .completion-module-icon { color: var(--warning); background: #fff4d4; }
.completion-error { border-left: 4px solid var(--error); }
.completion-error .completion-module-icon { color: var(--error); background: var(--error-bg); }
.submission-list { display: grid; gap: 1rem; }
.submission-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1rem; align-items: start; box-shadow: none; }
.submission-card code { display: block; max-width: 760px; margin-top: .6rem; padding: .45rem .6rem; overflow-wrap: anywhere; color: var(--navy-700); background: var(--blue-050); border-radius: 7px; font-size: .72rem; }
.submission-form { grid-column: 1/-1; display: grid; grid-template-columns: minmax(220px,1fr) minmax(280px,2fr) auto; gap: .75rem; align-items: end; padding-top: 1rem; border-top: 1px solid var(--line); }
.audit-list { display: grid; gap: .75rem; }
.audit-event { box-shadow: none; }
.audit-event-heading { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.audit-event time { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.audit-event details { margin-top: .75rem; }
.audit-event summary { color: var(--navy-700); font-weight: 750; cursor: pointer; }
.audit-event .table-scroll { margin-top: .5rem; }
.audit-changes td { vertical-align: top; overflow-wrap: anywhere; font-size: .86rem; }
.audit-changes td:first-child { white-space: nowrap; font-weight: 600; }
.audit-change-line { font-size: .86rem; overflow-wrap: anywhere; }
.audit-change-line + .audit-change-line { margin-top: .2rem; }
.warning-acceptance { margin-top: .6rem; padding: .6rem .75rem; color: var(--success); background: var(--success-bg); border-radius: 8px; }
.warning-acceptance small { display: block; color: var(--muted); }
.warning-acceptance-form { width: min(360px,100%); display: grid; grid-template-columns: minmax(160px,1fr) auto; gap: .5rem; align-items: center; }
.control-remediation { display: grid; justify-items: end; gap: .6rem; }
.control-target { scroll-margin-top: 1rem; }
/* Landing fra en kontrol: feltet, arket peger paa, markeres i nogle sekunder. */
.kontrolmaal { outline: 3px solid var(--warning); outline-offset: 4px; border-radius: 6px; scroll-margin-top: 6rem; animation: kontrolmaal-puls 1.4s ease-in-out 3; }
@keyframes kontrolmaal-puls { 0%, 100% { outline-color: var(--warning); } 50% { outline-color: transparent; } }
/* Et felt, sagen selv udfyldte (de fire underskriftsdatoer og regnskabsaar nr.): markeret
   kort, saa revisor SER, hvad der kom af sig selv, og kan rette det med det samme. */
.er-udfyldt-selv { animation: udfyldt-selv 2.4s ease-out 1; }
@keyframes udfyldt-selv { 0%, 55% { background: var(--success-bg); } 100% { background: transparent; } }
.control-links { display: flex; flex-direction: column; gap: 0.5rem; align-items: flex-end; }
.control-note { font-size: 0.85rem; margin-top: 0.35rem; }
.button-ghost { background: transparent; border: 1px solid transparent; color: var(--warning); font-weight: 500; }
.button-ghost:hover { text-decoration: underline; }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.administration-user-list { display: grid; gap: 1rem; }
.administration-user-card { display: grid; gap: 1rem; }
.administration-unlock-form { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; color: var(--warning); background: #fff7e6; border: 1px solid #f0d9a6; border-radius: 9px; }
.administration-unlock-form p { margin: 0; color: var(--warning); }
.administration-role-form { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.administration-role-form fieldset { display: flex; flex-wrap: wrap; gap: .75rem; border: 0; padding: 0; margin: 0; }
.administration-role-form legend { font-weight: 700; margin-bottom: .5rem; }
.administration-user-actions { display: flex; align-items: end; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.administration-password-form { display: flex; align-items: end; gap: .75rem; flex: 1; }
.administration-password-form .field { flex: 1; max-width: 420px; }
.customer-assignment-row { padding: .75rem; border-bottom: 1px solid var(--line); }
.customer-assignment-row:last-child { border-bottom: 0; }
.firm-branding-card { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(320px, 1.2fr); gap: 2rem; align-items: start; }
.firm-logo-preview { min-height: 180px; margin: .75rem 0; padding: 1rem; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 12px; background: white; }
.firm-logo-preview img { display: block; max-width: 100%; max-height: 240px; object-fit: contain; }
.control-library-explanation { margin-bottom: 1rem; }
.control-library-list { display: grid; gap: 1rem; }
.control-library-card { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(420px, 1.4fr); align-items: end; gap: 1.5rem; }
.control-library-card h2 { margin-bottom: .35rem; }
.control-library-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin-bottom: .8rem; }
.control-library-summary > div { display: grid; gap: .1rem; }
.control-library-filter { display: grid; grid-template-columns: minmax(240px, 2fr) minmax(180px, 1fr) minmax(180px, 1fr) auto; gap: .7rem; align-items: end; }
.control-library-filter-actions { padding-bottom: .05rem; }
.control-library-table-card { padding: 0; overflow: hidden; }
.control-library-table { min-width: 1050px; }
.control-library-table th:first-child { width: 55%; }
.control-library-table td { vertical-align: top; }
.coverage-explanation { margin-bottom: .75rem; border-left: 3px solid var(--cyan-600); }
.coverage-explanation p { margin: .25rem 0 0; }
.coverage-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .55rem; margin-bottom: .75rem; }
.coverage-metrics .card { display: grid; align-content: start; gap: .05rem; min-width: 0; padding: .65rem .75rem; }
.coverage-metrics .metric-value { font-size: 1.45rem; }
.coverage-filter { display: grid; grid-template-columns: minmax(220px, 1.8fr) repeat(3, minmax(155px, 1fr)) auto; gap: .6rem; align-items: end; }
.coverage-filter-actions { padding-bottom: .05rem; }
.coverage-table-card { padding: 0; overflow: hidden; }
.coverage-table-card > .section-heading { padding: .75rem .85rem 0; }
.coverage-table { min-width: 1480px; font-size: .76rem; }
.coverage-table th:nth-child(2) { width: 31%; }
.coverage-table th:nth-child(4) { width: 19%; }
.coverage-table td { vertical-align: top; }
.coverage-table details + details { margin-top: .3rem; }
.coverage-table summary { color: var(--navy-900); cursor: pointer; font-weight: 650; }
.coverage-table code { font-size: .7rem; overflow-wrap: anywhere; }
.compact-list { margin: .3rem 0 0; padding-left: 1.1rem; }
.compact-list li + li { margin-top: .18rem; }
.nowrap { white-space: nowrap; }
.table-subline { display: block; margin-top: .2rem; color: var(--muted); font-size: .78rem; }
.pagination { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem .8rem; border-top: 1px solid var(--border); }
.code-input { font-family: Consolas, "SFMono-Regular", monospace; font-size: .78rem; }
.control-enabled-field { align-self: end; }
.control-validity-form { display: grid; grid-template-columns: repeat(2, minmax(150px, 1fr)) auto; align-items: end; gap: .75rem; }
.field-hint { display: block; margin-top: .25rem; color: var(--muted); font-size: .8rem; }

.fixed-asset-navigation-item a { justify-content: space-between; }
.fixed-asset-navigation-item a > span:first-child { min-width: 0; }
.fixed-asset-navigation-count { flex: 0 0 auto; min-width: 1.35rem; padding: .08rem .3rem; color: white; background: rgba(255,255,255,.14); border-radius: 999px; font-size: .66rem; line-height: 1.25; text-align: center; }
.fixed-asset-navigation-back { margin: 0 0 .45rem; padding: .15rem .45rem .5rem; display: block; color: #b9d4e5; border-bottom: 1px solid rgba(255,255,255,.16); font-size: .72rem; text-decoration: none; }
.fixed-asset-navigation-back:hover { color: white; }
.fixed-asset-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
.fixed-asset-category-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem; }
.fixed-asset-category-card { display: grid; grid-template-columns: minmax(0,1fr) auto 20px; align-items: center; gap: .75rem; color: var(--navy-950); text-decoration: none; box-shadow: none; }
.fixed-asset-category-card:hover { border-color: #9bb2c5; background: #f7faff; }
.fixed-asset-category-card > span:first-child { display: grid; gap: .12rem; }
.fixed-asset-category-card small { color: var(--muted); font-size: .72rem; font-weight: 400; }
.fixed-asset-category-value { display: grid; justify-items: end; color: var(--navy-900); font-variant-numeric: tabular-nums; font-weight: 650; }
.fixed-asset-category-arrow { color: var(--cyan-600); font-size: 1.15rem; }
.fixed-asset-section-total { color: var(--navy-900); font-variant-numeric: tabular-nums; white-space: nowrap; }
.fixed-asset-table { min-width: 880px; }
.fixed-asset-add-form { margin-top: 0; }
.fixed-asset-entry-header, .fixed-asset-entry > summary { display: grid; grid-template-columns: minmax(180px,1.5fr) repeat(4,minmax(105px,.75fr)); gap: .55rem; align-items: center; }
.fixed-asset-entry-header:has(span:nth-child(6)), .fixed-asset-entry > summary:has(span:nth-child(6)) { grid-template-columns: minmax(180px,1.5fr) repeat(5,minmax(100px,.72fr)); }
.fixed-asset-entry-header { padding: .35rem 1.7rem .35rem .65rem; color: var(--muted); border-bottom: 1px solid var(--line); font-size: .7rem; font-weight: 650; text-align: right; }
.fixed-asset-entry-header span:first-child { text-align: left; }
.fixed-asset-entry-list { display: grid; gap: .35rem; margin-top: .2rem; }
.fixed-asset-entry { border: 1px solid var(--line); border-radius: 2px; background: #fff; }
.fixed-asset-entry > summary { padding: .5rem .65rem; cursor: pointer; list-style-position: outside; font-variant-numeric: tabular-nums; text-align: right; }
.fixed-asset-entry > summary::marker { color: var(--cyan-600); }
.fixed-asset-entry > summary > span:first-child { display: grid; gap: .05rem; text-align: left; }
.fixed-asset-entry > summary small { color: var(--muted); font-size: .68rem; font-weight: 400; }
.fixed-asset-entry[open] > summary { border-bottom: 1px solid var(--line); background: #f6f9fc; }
.fixed-asset-entry-body { padding: .65rem; }
.fixed-asset-saved-calculation { margin-bottom: .65rem; padding: .55rem .65rem; background: #f4f8fb; border-left: 3px solid var(--cyan-600); }
.fixed-asset-saved-calculation h3 { margin-bottom: .4rem; font-size: .9rem; }
.fixed-asset-calculation-grid { display: grid; grid-template-columns: repeat(5,minmax(110px,1fr)); gap: .35rem .7rem; margin: 0; }
.fixed-asset-calculation-grid div { min-width: 0; }
.fixed-asset-calculation-grid dt { color: var(--muted); font-size: .66rem; }
.fixed-asset-calculation-grid dd { margin: .05rem 0 0; font-size: .82rem; font-variant-numeric: tabular-nums; font-weight: 650; }
.fixed-asset-total-line { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .75rem 1.25rem; margin-top: .55rem; padding: .45rem .65rem; border-top: 2px solid var(--navy-900); font-size: .78rem; font-variant-numeric: tabular-nums; }
.fixed-asset-form { display: grid; grid-template-columns: minmax(0,1fr) minmax(235px,285px); gap: .75rem; align-items: start; }
.fixed-asset-input-groups { display: grid; gap: .55rem; }
.fixed-asset-form fieldset { min-width: 0; margin: 0; padding: .55rem .65rem .65rem; border: 1px solid var(--line); border-radius: 2px; }
.fixed-asset-form legend { padding: 0 .25rem; color: var(--navy-900); font-size: .74rem; font-weight: 700; }
.fixed-asset-field-grid { display: grid; grid-template-columns: repeat(3,minmax(135px,1fr)); gap: .45rem .55rem; align-items: end; }
.fixed-asset-field-grid .field { margin: 0; }
.fixed-asset-field-grid .field.wide { grid-column: span 2; }
/* Metodefelterne: vælges beløb, vises kun beløbsrubrikken — og omvendt ved procent. Scriptet
   sætter hidden, men browserens egen [hidden] { display: none } taber til .field { display:
   grid }, så begge rubrikker stod fremme (medarbejdertest 2, fund 37). */
[data-method-field][hidden], [data-tax-method-field][hidden] { display: none !important; }
.fixed-asset-field-grid label { font-size: .68rem; }
.fixed-asset-field-grid input, .fixed-asset-field-grid select { min-height: 32px; padding: .32rem .45rem; font-size: .78rem; }
.fixed-asset-field-grid .check-row { align-self: center; padding: .25rem 0; font-size: .72rem; }
.fixed-asset-live-calculation { position: sticky; top: .65rem; padding: .65rem .75rem; border: 1px solid #9bb2c5; border-top: 3px solid var(--cyan-600); background: #f3f8fb; }
.fixed-asset-live-calculation h3 { margin-bottom: .45rem; font-size: .95rem; }
.fixed-asset-live-calculation dl { display: grid; gap: .18rem; margin: 0 0 .55rem; }
.fixed-asset-live-calculation dl > div { display: flex; justify-content: space-between; gap: .75rem; padding-bottom: .16rem; border-bottom: 1px solid rgba(8,44,70,.09); }
.fixed-asset-live-calculation dt { color: var(--muted); font-size: .7rem; }
.fixed-asset-live-calculation dd { margin: 0; font-size: .76rem; font-variant-numeric: tabular-nums; font-weight: 650; white-space: nowrap; }
.fixed-asset-live-calculation .fixed-asset-result-total { margin-top: .1rem; padding-top: .22rem; color: var(--navy-950); border-top: 1px solid var(--navy-900); border-bottom: 0; }
.fixed-asset-live-calculation .button { width: 100%; margin-top: .35rem; }
.fixed-asset-delete-form { display: flex; justify-content: flex-end; margin-top: .55rem; padding-top: .55rem; border-top: 1px solid var(--line); }
.fixed-asset-new-card { scroll-margin-top: .75rem; }

/* Tæt arbejdsrytme til tal- og registreringsskærme. */
:where(.asset-sections, .control-list, .note-sections, .policy-sections, .debt-categories, .commitment-sections, .submission-list, .audit-list, .administration-user-list, .control-library-list) {
    gap: .6rem;
}

:where(.import-card, .trial-balance-table-card, .import-history, .journal-create-card, .journal-list-card, .adjusted-trial-balance-card, .note-intro-card, .tax-settings, .dividend-settings, .debt-settings, .commitment-settings, .joint-tax-disclosure, .related-settings, .related-section, .special-settings, .special-items-register, .fixed-asset-completion, .statement-completion, .completion-decision) {
    margin-bottom: .75rem;
}

:where(.inline-row-form, .manual-row-panel, .journal-line-panel, .note-row-form, .note-complete-actions, .policy-complete-actions, .tax-row-form, .difference-form, .payment-form, .matter-line-form, .dividend-recipient-form, .debt-item-form, .commitment-form, .related-transaction-form, .management-exposure-form, .special-item-form) {
    gap: .45rem;
    padding: .65rem .75rem;
    border-radius: 2px;
}

:where(.add-row-panel, .format-help, .journal-line-panel, .note-table-area, .report-dependent, .auditor-matters, .journal-post-actions, .policy-reset-form, .note-delete-form) {
    margin-top: .65rem;
}

:where(.dividend-recipient-card, .debt-item, .commitment-item, .related-item, .special-item-card) {
    margin: .5rem 0;
    border-radius: 2px;
}

:where(.dividend-recipient-card, .debt-item, .commitment-item, .related-item, .special-item-card) > summary {
    padding: .6rem .75rem;
}

.statement-columns { gap: .75rem; }
.statement-card { gap: .65rem; }
.statement-section { padding-top: .5rem; }
.control-result { grid-template-columns: 34px minmax(0, 1fr) auto; gap: .65rem; }
.control-icon { width: 34px; height: 34px; font-size: 1rem; }
.report-optional > summary { padding: .75rem 1rem; }
.report-optional-body { padding: .75rem 1rem; }
.report-access-card { gap: 1rem; margin: .75rem 0; }
.completion-decision { gap: 1rem; }
.completion-section { margin-top: 1rem; }
.completion-module-grid { gap: .45rem; }
.completion-module { grid-template-columns: 30px minmax(0,1fr) auto; gap: .6rem; padding: .65rem .75rem; }
.completion-module-icon { width: 30px; height: 30px; font-size: .95rem; }
.submission-card { gap: .65rem; }
.submission-form { gap: .5rem; padding-top: .65rem; }
.audit-event details { margin-top: .45rem; }
.administration-user-card { gap: .65rem; }
.administration-user-actions { gap: .65rem; padding-top: .65rem; }
.firm-branding-card { gap: 1rem; }
.firm-logo-preview { min-height: 120px; margin: .5rem 0; padding: .75rem; border-radius: 2px; }
.control-library-card { gap: .9rem; }
.control-validity-form { gap: .45rem; }

:focus-visible {
    outline: 3px solid rgba(10, 94, 240, .35);
    outline-offset: 2px;
}

@media (max-width: 900px) {
    .control-library-card { grid-template-columns: 1fr; }
    .control-validity-form { grid-template-columns: 1fr; }
    .firm-branding-card { grid-template-columns: 1fr; }
    .coverage-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .coverage-filter { grid-template-columns: 1fr; }
}

@media (max-width: 1000px) {
    .case-layout { grid-template-columns: 1fr; }
    .case-navigation { position: static; }
    .case-navigation ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* Sagsmenuen er en venstresøjle, og her er der ingen venstresøjle at stille den i.
       INDE I ET MODUL fyldte modullisten skærmen, når den blev lagt oven over indholdet, og
       dér vises den derfor ikke; genvejen tilbage til sagen står i stedet, så revisor kan
       komme videre (Williams beslutning 9/9 2026). PÅ SAGENS FORSIDE bliver listen stående,
       også på en telefon: dér er der ingen genvej — den ville pege på den side, revisor
       står på — og ingen andre links til modulerne end sagens dokumenter og årsrapporten,
       så uden listen kunne modulerne slet ikke nås. Genvejen er kendetegnet: den menu, der
       HAR en, er en modulsides. Anlægskartotekets egen menu har hverken genvej eller fold
       og røres ikke — kun sagsmenuen ligger direkte i sidens ramme. */
    .page-shell > .case-layout > .case-navigation:has(.case-navigation-genvej) { padding: 0; background: none; box-shadow: none; overflow: visible; }
    .page-shell > .case-layout > .case-navigation:has(.case-navigation-genvej) .case-navigation-fold { display: none; }
    .case-navigation-genvej { display: block; padding: .42rem .6rem; background: var(--navy-950); color: white; border-radius: 2px; font-size: .78rem; text-decoration: none; }
    .inline-row-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .inline-row-form .wide { grid-column: span 2; }
    .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .manual-account-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .manual-account-form .wide { grid-column: span 2; }
    .journal-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .journal-create-form .wide { grid-column: span 2; }
    .journal-line-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .statement-columns { grid-template-columns: 1fr; }
    .auditor-option-grid { grid-template-columns: 1fr; }
    .tax-row-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .joint-value-grid, .joint-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .matter-line-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .matter-line-form .wide, .matter-line-form .details { grid-column: span 2; }
    .investment-periods { grid-template-columns: 1fr; }
    .equity-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .equity-value-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .dividend-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .debt-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .debt-value-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .commitment-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .commitment-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .commitment-add-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .related-settings-form, .related-transaction-form, .management-exposure-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .special-settings-form, .special-item-form, .toggle-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .completion-module-grid { grid-template-columns: 1fr; }
    .dokument-liste { grid-template-columns: 1fr; }
    .dividend-recipient-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .note-row-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .note-row-form .wide { grid-column: span 2; }
    .journal-line-form .wide, .journal-line-form .mapping-wide { grid-column: span 2; }
    .fixed-asset-entry-header { display: none; }
    .fixed-asset-entry > summary, .fixed-asset-entry > summary:has(span:nth-child(6)) { grid-template-columns: minmax(150px,1.4fr) repeat(2,minmax(90px,.8fr)); }
    .fixed-asset-entry > summary > span:nth-child(2), .fixed-asset-entry > summary > span:nth-child(3) { display: none; }
    .fixed-asset-calculation-grid { grid-template-columns: repeat(2,minmax(110px,1fr)); }
    .fixed-asset-form { grid-template-columns: 1fr; }
    .fixed-asset-live-calculation { position: static; }
    .fixed-asset-field-grid { grid-template-columns: repeat(2,minmax(130px,1fr)); }
}

@media (max-width: 640px) {
    .page-shell { width: min(100% - .75rem, 1560px); padding-top: .65rem; }
    .topbar { padding: .35rem .6rem; }
    .user-menu > span { display: none; }
    .heading-with-action, .case-header, .section-heading { align-items: stretch; flex-direction: column; }
    .search-row, .form-actions { align-items: stretch; flex-direction: column; }
    .two-columns, .three-columns, .case-navigation ol, .inline-row-form { grid-template-columns: 1fr; }
    .fixed-asset-category-grid, .fixed-asset-metrics { grid-template-columns: 1fr; }
    .span-two, .inline-row-form .wide { grid-column: span 1; }
    .card { border-radius: 3px; }
    .upload-form, .manual-account-form, .metric-grid { grid-template-columns: 1fr; }
    .manual-account-form .wide { grid-column: span 1; }
    .journal-create-form, .journal-line-form, .compact-search-form { grid-template-columns: 1fr; }
    .journal-create-form .wide, .journal-line-form .wide, .journal-line-form .mapping-wide { grid-column: span 1; }
    .journal-posted-note { flex-direction: column; }
    .control-result { grid-template-columns: 42px minmax(0, 1fr); }
    .control-result > .button { grid-column: 1 / -1; }
    .control-remediation { grid-column: 1 / -1; width: 100%; justify-items: stretch; }
    .note-create-form, .note-heading-row, .note-row-form { grid-template-columns: 1fr; }
    .note-row-form .wide { grid-column: span 1; }
    .tax-row-form, .difference-form, .payment-form { grid-template-columns: 1fr; }
    .joint-value-grid, .joint-summary-grid { grid-template-columns: 1fr; }
    .joint-company-card > summary { align-items: stretch; flex-direction: column; }
    .matter-period-grid { grid-template-columns: minmax(150px,1.5fr) repeat(2,minmax(90px,1fr)); }
    .matter-toggle-grid, .matter-line-form { grid-template-columns: 1fr; }
    .matter-line-form .wide, .matter-line-form .details { grid-column: span 1; }
    .investment-value-grid, .investment-reconciliation { grid-template-columns: 1fr; }
    .investment-card > summary, .investment-summary-values { align-items: stretch; flex-direction: column; }
    .equity-metrics, .equity-value-grid, .equity-reconciliation { grid-template-columns: 1fr; }
    .equity-reserve-card > summary { align-items: stretch; flex-direction: column; }
    .dividend-metrics, .dividend-recipient-form { grid-template-columns: 1fr; }
    .debt-metrics, .debt-value-grid, .debt-add-form { grid-template-columns: 1fr; }
    .commitment-metrics, .commitment-form, .commitment-add-form { grid-template-columns: 1fr; }
    .commitment-form .wide, .commitment-form .details { grid-column: auto; }
    .related-metrics, .related-settings-form, .related-transaction-form, .management-exposure-form { grid-template-columns: 1fr; }
    .related-transaction-form .wide, .management-exposure-form .wide { grid-column: auto; }
    .special-metrics, .special-settings-form, .special-item-form { grid-template-columns: 1fr; }
    .special-item-form .wide { grid-column: auto; }
    .fixed-asset-completion, .statement-completion, .completion-decision, .report-access-card { align-items: stretch; flex-direction: column; }
    .case-header-actions, .report-download-actions { align-items: stretch; justify-content: flex-start; flex-direction: column; }
    .completion-module { grid-template-columns: 36px minmax(0,1fr); }
    .completion-module > .button { grid-column: 1/-1; }
    .submission-card, .submission-form { grid-template-columns: 1fr; }
    .dividend-recipient-card > summary { align-items: stretch; flex-direction: column; }
    .policy-toolbar, .policy-actions { align-items: stretch; flex-direction: column; }
    .pagination { align-items: stretch; flex-direction: column; text-align: center; }
    .fixed-asset-entry > summary, .fixed-asset-entry > summary:has(span:nth-child(6)) { grid-template-columns: minmax(130px,1.5fr) minmax(90px,.8fr); }
    .fixed-asset-entry > summary > span:not(:first-child):not(:last-child) { display: none; }
    .fixed-asset-field-grid { grid-template-columns: 1fr; }
    .fixed-asset-field-grid .field.wide { grid-column: span 1; }
}


/* Skattekontrolarket — regressionsarket for beregningsmotoren.
   Rækkefølgen er kontoplanens egen og må aldrig sorteres om; undtagelserne skal derfor
   springe i øjnene DER, hvor de står. Det gør de i venstre kant, med en farve pr.
   behandling, så et blik ned ad arket viser mønsteret uden at et tal er tastet. */
.skattekontrol-ark { width: 100%; font-size: .84rem; }
.skattekontrol-ark thead th { position: sticky; top: 0; z-index: 2; background: var(--white); box-shadow: inset 0 -1px 0 var(--line); }
.skattekontrol-ark td, .skattekontrol-ark th { padding: .22rem .45rem; }
.skattekontrol-ark tr[hidden] { display: none; }
.skattekontrol-ark .ark-konto { min-width: 22rem; }
.skattekontrol-ark .ark-konto small { display: block; color: var(--muted); font-size: .72rem; }
.skattekontrol-ark .ark-behandling { white-space: nowrap; }
.skattekontrol-ark abbr { text-decoration: none; border-bottom: 1px dotted var(--muted); cursor: help; }
.ark-rulning { max-height: 68vh; overflow: auto; }

.kant-delvis { box-shadow: inset 4px 0 0 #d9a441; }
.kant-ingen { box-shadow: inset 4px 0 0 var(--cyan-600); }
.kant-udenfor { box-shadow: inset 4px 0 0 var(--line); }
.kant-uafklaret { box-shadow: inset 4px 0 0 var(--error); background: var(--error-bg); }

.tal-tabel { font-variant-numeric: tabular-nums; }
.tal-felt { width: 8.5rem; padding: .18rem .35rem; text-align: right; font-variant-numeric: tabular-nums; font-family: inherit; font-size: .84rem; border: 1px solid var(--line); border-radius: 2px; background: var(--white); }
.tal-felt:focus { outline: 2px solid var(--cyan-600); outline-offset: -1px; }

.ark-delsum td { background: var(--blue-025); color: var(--muted); font-weight: 650; }
.ark-sum td { background: var(--blue-050); font-weight: 750; border-top: 2px solid var(--navy-900); }
.ark-afvigelse { color: var(--error); font-weight: 750; }

.ark-vaerktoej { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; margin: 1rem 0 .5rem; padding: .75rem; border: 1px solid var(--line); border-radius: 3px; background: var(--blue-050); }
.ark-vaerktoej .field.wide { flex: 1 1 22rem; }
.ark-vaerktoej textarea { width: 100%; resize: vertical; font-family: inherit; }
.ark-filtre { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; margin-bottom: .5rem; }
.ark-filtre p { flex: 1 1 100%; margin: 0; font-size: .82rem; }
.ark-status { margin-top: .5rem; font-size: .82rem; }
.ark-advarsel { color: var(--error); font-weight: 750; }

/* Arket, hvor saldobalancen tastes i hånden. Samme form som skattekontrolarket —
   kontoplanens egen rækkefølge, talfelter i faste kolonner — men med to årstal og et
   D/K ud for hvert beløb, så fortegnsreglen er synlig mens der tastes. */
.saldobalance-ark { width: 100%; font-size: .84rem; }
.saldobalance-ark thead th { position: sticky; top: 0; z-index: 2; background: var(--white); box-shadow: inset 0 -1px 0 var(--line); }
.saldobalance-ark td, .saldobalance-ark th { padding: .22rem .45rem; }
.saldobalance-ark tr[hidden] { display: none; }
.saldobalance-ark .ark-konto { min-width: 24rem; }
.saldobalance-ark .ark-konto small { display: block; color: var(--muted); font-size: .72rem; }
.saldobalance-ark .ark-side { width: 1.4rem; color: var(--muted); font-weight: 750; text-align: center; }
.metric-card-fejl { border-color: var(--error); }
.metric-card-fejl strong { color: var(--error); }

.saldobalance-ark .ark-lukket { opacity: .45; }

/* Papirkurven (R359): "Er du sikker?"-dialogen. Native dialog, rolig og symmetrisk;
   Fortryd er det sikre valg og står yderst, Slet-knappen er rød i sekundær placering. */
dialog.dialog { width: min(34rem, calc(100% - 2rem)); padding: 1.1rem 1.25rem; color: var(--text); border: 1px solid var(--line); border-radius: 4px; background: var(--white); box-shadow: 0 14px 36px rgba(0, 35, 70, .24); }
dialog.dialog::backdrop { background: rgba(0, 35, 70, .45); }
dialog.dialog h2 { margin-bottom: .35rem; font-size: 1.15rem; }
dialog.dialog p { margin: .4rem 0 0; line-height: 1.45; }
dialog.dialog .field { margin-top: .8rem; }
dialog.dialog textarea { width: 100%; font: inherit; resize: vertical; }
.dialog-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .45rem; margin-top: 1.1rem; }
.papirkurv-spaerring { font-weight: 650; color: var(--error); }
.papirkurv-deaktiveret { display: inline-flex; flex-direction: column; align-items: flex-end; gap: .15rem; }
.papirkurv-forklaring { font-size: .78rem; text-align: right; max-width: 22rem; }
.papirkurv-knap[disabled] { opacity: .55; cursor: not-allowed; }
.papirkurv-handlinger { white-space: nowrap; }
.papirkurv-handlinger .papirkurv-knap { margin-left: .35rem; }
.papirkurv-tabel td .status-pill { margin-left: .4rem; }
.papirkurv-venter { margin-left: .4rem; font-size: .78rem; }
.dokument-handlinger { display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; flex: none; }
.dokument-handlinger .papirkurv-knap { min-height: 30px; padding: .28rem .58rem; font-size: .78rem; }

/* Sagsmenuen står på alle sagens sider (Williams ordre 9/9 2026). Anlægskartoteket har
   sin egen indre menu; den skal ikke tage lige så meget plads som sagens egen. */
.case-content > .case-layout { grid-template-columns: 190px minmax(0, 1fr); }
/* Anlægskartotekets egen menu er sidens indhold og bliver stående. Men på en smal skærm
   skal den lægge sig OVER indholdet som før, ellers tager dens søjle 190 px af en telefons
   375 og efterlader under 180 til tallene. Reglen står her og ikke i medieblokken længere
   oppe, fordi den skal komme efter linjen ovenfor for at gælde. */
@media (max-width: 1000px) {
    .case-content > .case-layout { grid-template-columns: 1fr; }
}

/* På papir er menuen navigation uden en side at gå til. */
@media print {
    .case-layout { display: block; }
    .case-navigation { display: none; }
}
/* Oplysningsarket som beregningsfil (R366): sammenligningen og skyggesagens dokumenter.
   Afvigelserne skal kunne ses uden at læses — en rolig rød venstrekant, ikke en farvet
   række, så tallene stadig kan sammenlignes på tværs. */
.opl-gruppe th { background: var(--cyan-100); color: var(--navy-950); }
.opl-afvigelse > th:first-child { box-shadow: inset 3px 0 0 var(--error); }
.opl-afvigelse td:nth-last-child(-n+2) { color: var(--error); font-weight: 650; }
.opl-alle-linjer { margin-top: .9rem; }
.opl-alle-linjer > summary, .opl-dokument > summary { padding: .45rem .1rem; font-weight: 650; cursor: pointer; }
.opl-dokument { border-top: 1px solid var(--line); }
.opl-dokument:last-of-type { border-bottom: 1px solid var(--line); }
.opl-dokumentramme { display: block; width: 100%; height: 34rem; margin: 0 0 .8rem; border: 1px solid var(--line); background: var(--white); }

/* Kontrollerne ude ved felterne (Williams ordre 9. september 2026). Beskeden staar UNDER
   feltet, ikke i en liste oeverst. Farven er ikke det eneste, der skelner: teksten
   indledes med "Fejl:" eller "Bemaerk:", og venstrekanten har hver sin tykkelse — en
   farveblind skal kunne se forskel, og det har vi taget fejl af foer med menuens prikker. */
.feltkontrol {
    margin: .25rem 0 .5rem;
    padding: .35rem .6rem;
    border-left: 3px solid transparent;
    font-size: .85rem;
    line-height: 1.4;
    border-radius: 0 3px 3px 0;
}

.feltkontrol-fejl {
    color: var(--error);
    background: #fdeceb;
    border-left-width: 4px;
    border-left-color: var(--error);
    font-weight: 600;
}

.feltkontrol-advarsel {
    color: var(--warning);
    background: #fff4d4;
    border-left-width: 2px;
    border-left-color: var(--warning);
}

/* Selve feltet faar en kant, saa oejet finder det uden at laese. */
.har-feltkontrol-fejl { border-color: var(--error); }
.har-feltkontrol-advarsel { border-color: var(--warning); }
