:root {
  --brand:#f14f44;
  --brand-dark:#c63c33;
  --ink:#20262b;
  --muted:#657078;
  --line:#dce1e5;
  --surface:#f4f6f7;
  --paper:#ffffff;
  --success:#257a48;
  --danger:#be3026;
  --shadow:0 12px 30px rgba(21,31,38,.08);
}
* { box-sizing:border-box; }
html { background:var(--surface); }
body { margin:0; background:var(--surface); color:var(--ink); font-family:Arial, Helvetica, sans-serif; line-height:1.48; }
.site-shell { width:min(100% - 32px, 1160px); margin:26px auto 56px; }
.app-header { display:grid; grid-template-columns:98px 1fr auto; gap:18px; align-items:center; background:#20262b; color:#fff; border-radius:18px; padding:18px 22px; box-shadow:var(--shadow); }
.brand-mark { display:block; width:86px; height:86px; background:#fff; border-radius:13px; padding:7px; }.brand-mark img { display:block; width:100%; height:100%; object-fit:contain; }
.eyebrow { margin:0 0 4px; color:var(--brand); text-transform:uppercase; font-size:12px; font-weight:700; letter-spacing:.9px; }.app-header .eyebrow { color:#ffb6b0; }.brand-copy h1 { font-size:28px; margin:0; letter-spacing:-.4px; }.brand-copy p:last-child { margin:4px 0 0; color:#d4d9dc; }.header-status { max-width:180px; text-align:right; color:#d8dde0; font-size:13px; }.header-status.is-saving { color:#ffd28f; }.header-status.is-error { color:#ffaaa4; }
main { margin-top:20px; }.intro-card { display:flex; justify-content:space-between; gap:22px; align-items:center; background:var(--paper); border:1px solid var(--line); border-radius:15px; padding:19px 22px; box-shadow:0 7px 20px rgba(20,28,34,.04); }.intro-card h2 { margin:0 0 5px; font-size:20px; }.intro-card p { margin:0; color:var(--muted); max-width:760px; }.case-id-box { background:#fff3f2; border-left:4px solid var(--brand); min-width:230px; padding:10px 13px; border-radius:8px; }.case-id-box span,.case-id-box strong { display:block; }.case-id-box span { color:var(--muted); font-size:12px; }.case-id-box strong { margin-top:4px; overflow-wrap:anywhere; font-size:12px; }
.progress-wrap { margin:20px 0 14px; }.progress-bar { height:6px; background:#dce1e5; border-radius:999px; overflow:hidden; }.progress-bar span { display:block; width:12.5%; height:100%; background:var(--brand); transition:width .25s ease; }.step-indicators { display:grid; grid-template-columns:repeat(8, 1fr); gap:8px; list-style:none; padding:0; margin:9px 0 0; }.step-indicators li { font-size:12px; line-height:1.2; color:#778188; }.step-indicators li.active { color:var(--ink); font-weight:700; }
.form-step { display:none; background:var(--paper); border:1px solid var(--line); border-radius:17px; padding:28px; box-shadow:var(--shadow); }.form-step.active { display:block; }.step-title { display:flex; align-items:baseline; gap:11px; border-bottom:1px solid var(--line); padding-bottom:12px; margin-bottom:8px; }.step-title span { color:var(--brand); text-transform:uppercase; font-size:12px; font-weight:bold; letter-spacing:.7px; }.step-title h2 { margin:0; font-size:24px; letter-spacing:-.25px; }.step-description { margin:0 0 20px; color:var(--muted); }
.form-grid { display:grid; gap:14px 16px; }.form-grid.two-cols { grid-template-columns:repeat(2,minmax(0,1fr)); }.form-grid.three-cols { grid-template-columns:repeat(3,minmax(0,1fr)); }.form-grid.four-cols { grid-template-columns:repeat(4,minmax(0,1fr)); }.form-grid.five-cols { grid-template-columns:repeat(5,minmax(0,1fr)); }.full { grid-column:1 / -1; } label { display:block; color:#3a444b; font-size:13px; font-weight:700; position:relative; } input,select,textarea { display:block; width:100%; margin-top:5px; padding:11px 12px; font:inherit; color:var(--ink); background:#fff; border:1px solid #bfc8ce; border-radius:8px; outline:0; transition:border-color .15s, box-shadow .15s; } textarea { resize:vertical; min-height:76px; } input:focus,select:focus,textarea:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(241,79,68,.13); }.units label em { position:absolute; right:12px; bottom:11px; color:#7b858b; font-size:12px; font-style:normal; pointer-events:none; }.units label input { padding-right:40px; }
.step-nav { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--line); margin-top:26px; padding-top:18px; }.final-nav > div { display:flex; gap:10px; }.button { appearance:none; border:1px solid transparent; border-radius:9px; padding:11px 15px; font:inherit; font-size:14px; font-weight:bold; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:6px; }.button.primary { background:var(--brand); color:#fff; }.button.primary:hover { background:var(--brand-dark); }.button.secondary { background:#fff; color:var(--ink); border-color:#bfc8ce; }.button.secondary:hover { background:#f5f6f7; }.button.small { padding:8px 11px; font-size:13px; }.icon-button { border:0; background:#f2f4f5; color:#536069; width:30px; height:30px; border-radius:7px; font-size:22px; line-height:1; cursor:pointer; }.icon-button:hover { background:#ffe5e3; color:var(--brand-dark); }
.scope-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.scope-card { border:1px solid var(--line); border-radius:12px; padding:16px; background:#fbfcfc; }.scope-card h3 { margin:0 0 4px; font-size:16px; }.scope-card p { margin:0; min-height:41px; color:var(--muted); font-size:13px; }.choice-group { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }.choice-option { display:inline-flex; align-items:center; gap:6px; color:#334047; background:#fff; border:1px solid #cbd2d6; border-radius:8px; padding:8px 9px; font-size:13px; font-weight:600; cursor:pointer; }.choice-option:has(input:checked) { border-color:var(--brand); background:#fff2f1; color:#9e2922; }.choice-option input { width:auto; margin:0; accent-color:var(--brand); }.choice-group.compact { margin:8px 0 0; }.inline-conditional { display:none; margin-top:14px; }.inline-conditional.is-visible { display:block; }.inline-conditional.form-grid.is-visible { display:grid; }.inline-conditional.card-surface { background:#fbfcfc; border:1px solid var(--line); border-radius:10px; padding:15px; }.top-gap { margin-top:14px; }
.screening-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.screening-card { border:1px solid var(--line); border-radius:12px; padding:15px; background:#fff; }.screening-heading { display:flex; align-items:center; gap:9px; }.screening-heading h3 { margin:0; font-size:15px; }.screening-card p { color:var(--muted); margin:7px 0 0; font-size:13px; }.code-badge,.detail-code { display:inline-flex; align-items:center; justify-content:center; background:#20262b; color:#fff; min-width:42px; height:26px; padding:0 8px; border-radius:7px; font-size:12px; font-weight:bold; white-space:nowrap; }.detail-code { background:var(--brand); height:29px; margin-top:1px; }
.dynamic-details { display:grid; gap:14px; }.detail-card { display:grid; grid-template-columns:auto 1fr; gap:12px; background:#fbfcfc; border:1px solid var(--line); border-radius:12px; padding:16px; }.detail-card h3 { margin:0 0 8px; font-size:17px; }.detail-card h4 { margin:19px 0 9px; font-size:15px; }.detail-card p { margin:0 0 10px; color:var(--muted); }.detail-status { color:var(--brand)!important; text-transform:uppercase; font-size:12px; font-weight:bold; letter-spacing:.5px; }.component-help { margin:10px 0 0!important; }.text-link { color:#b82f28; font-weight:bold; text-decoration:underline; }.repeat-section { background:#fbfcfc; border:1px solid var(--line); border-radius:12px; padding:16px; margin-top:16px; }.section-heading-row { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }.section-heading-row h3 { margin:0; font-size:17px; }.section-heading-row p { margin:3px 0 0; color:var(--muted); font-size:13px; }.repeat-list { display:grid; gap:12px; margin-top:12px; }.repeat-row { background:#fff; border:1px solid #d9dfe2; border-radius:10px; padding:14px; }.row-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }.checkbox-fieldset { margin:0; border:1px solid #cfd6da; padding:10px 12px; border-radius:8px; }.checkbox-fieldset legend { padding:0 5px; font-size:13px; font-weight:bold; }.check { display:inline-flex; align-items:center; gap:6px; font-size:13px; margin-right:13px; }.check input { width:auto; margin:0; accent-color:var(--brand); }
.checklist-card,.review-card { background:#fbfcfc; border:1px solid var(--line); border-radius:12px; padding:18px; }.checklist-card h3,.review-card h3 { margin:0 0 7px; font-size:18px; }.checklist-card ul { margin:10px 0 0; padding-left:20px; columns:2; }.checklist-card li { margin:5px 0; }.existing-files { border:1px solid var(--line); border-radius:12px; padding:16px; margin-top:14px; }.existing-files.hidden { display:none; }.existing-files h3 { margin:0 0 8px; }.existing-files ul { padding:0; margin:0; list-style:none; }.existing-files li { border-top:1px solid var(--line); padding:8px 0; }.existing-files li:first-child { border-top:0; }.existing-files strong,.existing-files span { display:block; }.existing-files span { color:var(--muted); font-size:13px; }.qr-layout { display:grid; grid-template-columns:260px 1fr; gap:24px; align-items:center; max-width:800px; margin:auto; }.qr-frame { border:1px solid var(--line); border-radius:14px; padding:12px; background:#fff; }.qr-frame img { display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:contain; }.qr-copy h3 { margin:0 0 7px; font-size:20px; }.qr-copy p { color:var(--muted); }.export-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:16px; }.export-card { min-height:126px; display:flex; flex-direction:column; justify-content:space-between; gap:10px; padding:16px; background:#fff; border:1px solid var(--line); border-radius:11px; text-decoration:none; color:var(--ink); }.export-card:hover { border-color:var(--brand); box-shadow:0 7px 20px rgba(241,79,68,.1); }.export-card strong { color:var(--brand); font-size:17px; }.export-card span { color:var(--muted); font-size:13px; }.export-card.is-disabled { opacity:.45; cursor:not-allowed; }.validation-message { min-height:20px; color:var(--danger); font-weight:bold; margin-top:12px; }.hint { color:var(--muted); font-size:13px; }.error-box,.success-box { border-radius:10px; padding:12px 14px; font-weight:bold; }.error-box { background:#fff0ef; border:1px solid #f5bcb7; color:#9f2821; }.success-box { background:#effaf2; border:1px solid #b9dfc5; color:#1e7040; }
.single-page { width:min(100% - 32px, 900px); margin:28px auto 56px; }.back-link { display:inline-block; margin-bottom:12px; color:#983029; font-weight:bold; text-decoration:none; }.form-panel { background:#fff; border:1px solid var(--line); border-radius:16px; padding:28px; box-shadow:var(--shadow); }.form-panel h1 { margin:0 0 7px; font-size:28px; }.form-panel > p:not(.eyebrow) { color:var(--muted); }.suggestion-form,.login-form { margin-top:20px; }.suggestion-review { border-top:1px solid var(--line); padding:16px 0; }.suggestion-review h3 { margin:0 0 6px; }.suggestion-review p { margin:4px 0; }.review-actions { display:flex; gap:8px; margin-top:10px; }.logout-form { text-align:right; margin-bottom:12px; }
@media (max-width:900px) { .scope-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.export-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.form-grid.five-cols { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:680px) { .site-shell { width:min(100% - 20px, 1160px); margin:10px auto 30px; }.app-header { grid-template-columns:66px 1fr; gap:12px; padding:14px; }.brand-mark { width:58px; height:58px; padding:5px; }.brand-copy h1 { font-size:21px; }.brand-copy p:last-child { font-size:13px; }.header-status { grid-column:1 / -1; text-align:left; font-size:12px; }.intro-card { display:block; padding:16px; }.case-id-box { margin-top:13px; min-width:0; }.step-indicators { grid-template-columns:repeat(4,1fr); }.form-step { padding:18px 14px; }.step-title h2 { font-size:20px; }.form-grid.two-cols,.form-grid.three-cols,.form-grid.four-cols,.form-grid.five-cols,.scope-grid,.screening-list { grid-template-columns:1fr; }.scope-card p { min-height:0; }.step-nav { align-items:stretch; }.step-nav .button { width:100%; }.final-nav > div { display:grid; grid-template-columns:1fr; width:100%; }.detail-card { grid-template-columns:1fr; }.detail-code { width:max-content; }.qr-layout { grid-template-columns:1fr; }.qr-frame { width:min(100%,260px); }.checklist-card ul { columns:1; }.export-grid { grid-template-columns:1fr; }.section-heading-row { align-items:stretch; flex-direction:column; }.section-heading-row .button { width:100%; } }

.component-photo { display:block; max-width:260px; max-height:220px; object-fit:contain; border:1px solid var(--line); border-radius:8px; background:#fff; }

.scope-grid.two-wide { grid-template-columns:repeat(2,minmax(0,1fr)); }
.point-wizard { max-width:920px; margin:0 auto; }
.point-progress { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 2px 14px; color:var(--muted); font-size:13px; }
.point-progress strong { color:var(--brand); text-transform:uppercase; letter-spacing:.55px; font-size:12px; }
.point-page { background:#fbfcfc; border:1px solid var(--line); border-radius:13px; padding:22px; }
.point-page > h3 { margin:0; font-size:24px; line-height:1.2; }
.point-question { margin:8px 0 0; color:var(--muted); }
.point-detail-card { margin-top:18px; padding:17px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.point-detail-card > h3 { margin:0 0 7px; font-size:17px; }
.point-detail-card > h4 { margin:17px 0 9px; font-size:15px; }
.documentation-choice { margin-top:18px; padding:15px; border-left:4px solid var(--brand); border-radius:9px; background:#fff4f3; }
.documentation-choice > label { max-width:480px; }
.requirement-hint { margin:9px 0 0; color:#6d302c; font-size:13px; font-weight:600; }
.coc-confirmation { margin:18px 0 0; background:#eff8f2; border:1px solid #b9dfc5; color:#1d6f40; padding:12px 14px; border-radius:9px; font-weight:600; }
.documentation-list { display:grid; gap:10px; }
.doc-row { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px 16px; border:1px solid var(--line); border-radius:11px; background:#fff; }
.doc-row h3 { margin:0; font-size:15px; }.doc-row p { margin:3px 0 0; color:var(--muted); font-size:13px; }
.doc-file-state { flex:0 0 auto; border-radius:999px; padding:7px 10px; font-size:12px; font-weight:bold; background:#f0f3f4; color:#556168; }
.doc-row.is-complete .doc-file-state { background:#eaf7ef; color:#1d7041; }.doc-row.is-missing .doc-file-state { background:#fff0ef; color:#a52b24; }
.desktop-upload-card { margin-top:16px; padding:18px; border:1px solid var(--line); border-radius:12px; background:#fbfcfc; }.desktop-upload-card h3 { margin:0 0 8px; font-size:18px; }
.is-hidden { display:none !important; }
.status-text { min-height:21px; margin:10px 0 0; font-weight:bold; }.status-text.error { color:var(--danger); }.status-text.success { color:var(--success); }
@media (max-width:680px) { .scope-grid.two-wide { grid-template-columns:1fr; }.point-page { padding:16px 13px; }.point-page > h3 { font-size:20px; }.point-progress { align-items:flex-start; flex-direction:column; gap:3px; }.doc-row { align-items:flex-start; flex-direction:column; gap:8px; }.doc-file-state { width:100%; text-align:center; } }
/* Version 4 */
.step-indicators { grid-template-columns:repeat(7, minmax(0,1fr)); }
.step-indicators li { min-width:0; }
.step-indicators button { width:100%; min-height:38px; padding:6px 5px; border:1px solid transparent; border-radius:8px; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.step-indicators button:hover,.step-indicators li.active button { background:#fff2f1; border-color:#f2c5c1; color:var(--ink); }
.builder-panel { margin-top:18px; border-top:1px solid var(--line); padding-top:18px; }
.builder-panel h3 { margin:0 0 4px; font-size:18px; }.builder-panel p { margin:0 0 12px; color:var(--muted); font-size:13px; }
.point-jump { margin-top:16px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }.point-jump label { min-width:260px; flex:1; }.point-jump select { margin-top:0; }
.qr-frame { min-height:250px; display:flex; align-items:center; justify-content:center; }.qr-frame canvas { display:block; width:100%; height:auto; max-width:250px; image-rendering:pixelated; background:#fff; }
.share-card { margin-top:16px; background:#fff8f7; border:1px solid #f3cbc7; border-radius:12px; padding:16px; }.share-card h3 { margin:0 0 4px; }.share-card p { margin:0 0 10px; color:var(--muted); font-size:13px; }.share-link-row { display:flex; gap:9px; }.share-link-row input { margin:0; font-size:12px; }.share-link-row .button { white-space:nowrap; }
.weight-total { font-size:18px; font-weight:700; padding:12px 14px; border-radius:9px; background:#fff3f2; color:#962f29; margin:12px 0 0; }
.repeat-row .form-grid { margin-top:4px; }
@media (max-width:680px) { .step-indicators { grid-template-columns:repeat(2,minmax(0,1fr)); }.share-link-row { flex-direction:column; }.share-link-row .button { width:100%; } }
/* Version 4.1 interactions */
.step-indicators button.active { background:#fff2f1; border-color:#f2c5c1; color:var(--ink); font-weight:700; }
.document-row { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:13px 15px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.document-row > div { min-width:0; }.document-row strong,.document-row span { display:block; }.document-row span { margin-top:2px; color:var(--muted); font-size:12px; }.document-row p { margin:4px 0 0; color:var(--muted); font-size:13px; }.document-row small { display:block; margin-top:5px; color:#8b2f29; font-weight:700; }.document-row > b { flex:0 0 auto; color:var(--success); white-space:nowrap; }.document-row.missing { border-color:#edc2bd; background:#fff9f8; }.document-row.complete { border-color:#c5e2ce; }
.inline-actions { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }.inline-actions input { flex:1 1 360px; margin:0; }.shared-files { list-style:none; padding:0; margin:0; }.shared-files li { display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-top:1px solid var(--line); }.shared-files li:first-child { border-top:0; }.shared-files a { color:#9e2922; font-weight:700; }.shared-files span { color:var(--muted); font-size:13px; }
@media (max-width:680px) { .document-row,.shared-files li { flex-direction:column; gap:5px; }.inline-actions .button { width:100%; } }

/* Version 5 */
.point-jump { margin-bottom: 22px; }
.point-jump label { display:block; }
.point-jump select { margin-top:7px; }
.desktop-upload-card #desktopUploadPanel { padding-top: 10px; }
.desktop-upload-card .form-grid { margin-top: 16px; }
.desktop-upload-card .form-grid label { margin-top: 2px; }
.document-row .doc-file-state { flex:0 0 auto; border-radius:999px; padding:7px 10px; font-size:12px; font-weight:700; background:#f0f3f4; color:#556168; }
.document-row.complete .doc-file-state { background:#eaf7ef; color:#1d7041; }
.document-row.missing .doc-file-state { background:#fff0ef; color:#a52b24; }
.desktop-upload-card .status-text { margin-top:14px; }
@media (max-width:680px) { .point-jump { margin-bottom:16px; } .desktop-upload-card .form-grid { margin-top:14px; } }

/* Version 6 */
.cvr-lookup-box { align-self:end; padding-top:20px; }
.cvr-lookup-box .status-text { margin-bottom:0; }
.desktop-upload-card #desktopUploadPanel { margin-top:14px; padding-top:18px; border-top:1px solid #e2e6e8; }
.desktop-upload-card .file-upload-field { margin-top:12px; padding-top:4px; }
.desktop-upload-card .file-upload-field input[type="file"] { margin-top:9px; }
@media (max-width:680px) { .cvr-lookup-box { align-self:auto; padding-top:0; } .desktop-upload-card #desktopUploadPanel { margin-top:12px; padding-top:16px; } }

/* Version 7 – filhåndtering */
.case-file-row { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:13px 0; border-top:1px solid var(--line); }
.case-file-row:first-child { border-top:0; }
.case-file-details { min-width:0; }
.case-file-details strong,.case-file-details span,.case-file-details small { display:block; }
.case-file-details span { margin-top:2px; color:var(--muted); font-size:13px; }
.case-file-details small { margin-top:5px; color:#6c7479; font-size:12px; }
.case-file-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.button.danger { background:#b73028; border-color:#b73028; color:#fff; }
.button.danger:hover { background:#95261f; border-color:#95261f; }
@media (max-width:680px) { .case-file-row { flex-direction:column; gap:10px; } .case-file-actions { width:100%; justify-content:stretch; } .case-file-actions .button { flex:1 1 auto; text-align:center; } }


/* Version 8 – komponentkatalog */
.component-picker { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:42px; margin-top:7px; padding:9px 12px; border:1px solid #cdd5da; border-radius:8px; background:#fff; color:var(--ink); font:inherit; font-weight:700; text-align:left; cursor:pointer; }
.component-picker::after { content:'Søg'; flex:0 0 auto; margin-left:12px; color:#9c2f28; font-size:12px; }
.component-picker:hover { border-color:var(--brand); box-shadow:0 0 0 3px rgba(241,79,68,.11); }
.catalog-open { overflow:hidden; }
.catalog-modal { position:fixed; z-index:1000; inset:0; display:flex; align-items:center; justify-content:center; padding:22px; }
.catalog-modal.hidden { display:none; }
.catalog-modal-backdrop { position:absolute; inset:0; background:rgba(22,29,34,.58); }
.catalog-modal-panel { position:relative; z-index:1; width:min(920px,100%); max-height:min(760px,calc(100vh - 44px)); overflow:auto; padding:24px; border-radius:16px; background:#fff; box-shadow:0 25px 70px rgba(0,0,0,.3); }
.catalog-modal-panel h2 { margin:0 0 6px; font-size:25px; }
.catalog-modal-help,.catalog-modal-meta { margin:0; color:var(--muted); }
.catalog-modal-meta { min-height:21px; margin-top:9px; font-size:13px; font-weight:700; }
.catalog-modal-close { position:absolute; top:13px; right:15px; width:36px; height:36px; border:0; border-radius:50%; background:#f3f5f6; color:#435057; font-size:27px; line-height:1; cursor:pointer; }
.catalog-modal-close:hover { background:#e6eaec; }
.catalog-search-label { display:block; margin-top:16px; }
.catalog-search-label input { margin-top:7px; }
.catalog-results { display:grid; gap:8px; margin-top:12px; }
.catalog-result { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; }
.catalog-result:hover,.catalog-result:focus { border-color:var(--brand); background:#fff8f7; outline:none; }
.catalog-result-main { min-width:0; }
.catalog-result-main strong,.catalog-result-main small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.catalog-result-main small { margin-top:3px; color:var(--muted); font-size:12px; }
.catalog-result-select { color:#9c2f28; font-size:12px; font-weight:700; }
.catalog-hover-preview { position:absolute; z-index:3; right:88px; bottom:calc(100% + 8px); display:none; width:230px; padding:7px; border:1px solid var(--line); border-radius:9px; background:#fff; box-shadow:0 14px 32px rgba(20,28,34,.18); }
.catalog-result:hover .catalog-hover-preview,.catalog-result:focus .catalog-hover-preview { display:block; }
.catalog-hover-preview img { display:block; width:100%; max-height:190px; object-fit:contain; }
.catalog-empty { margin:0; padding:20px; border:1px dashed var(--line); border-radius:10px; color:var(--muted); text-align:center; }
.catalog-suggestion { margin:16px 0 0; }
@media (max-width:680px) { .catalog-modal { align-items:flex-end; padding:0; } .catalog-modal-panel { width:100%; max-height:86vh; border-radius:16px 16px 0 0; padding:20px 15px; } .catalog-hover-preview { display:none !important; } .catalog-result-main strong,.catalog-result-main small { white-space:normal; } }

/* Version 9 – gentagne koblinger ved alle dokumentationsveje */
#couplings[data-documentation-route="manufacturer_declaration"] [data-catalogue-wrap],
#couplings[data-documentation-route="manufacturer_declaration"] [data-approval-wrap],
#couplings[data-documentation-route="other_file"] [data-catalogue-wrap] { display:none; }

/* Version 10 – delt lyssystem, komponentrækker og beregnede mål */
#couplings[data-documentation-route="manufacturer_declaration"] [data-catalogue-wrap],
#couplings[data-documentation-route="manufacturer_declaration"] [data-approval-wrap],
#crossmembers[data-documentation-route="manufacturer_declaration"] [data-catalogue-wrap],
#crossmembers[data-documentation-route="manufacturer_declaration"] [data-approval-wrap],
[data-equipment-components][data-documentation-route="manufacturer_declaration"] [data-catalogue-wrap],
[data-equipment-components][data-documentation-route="manufacturer_declaration"] [data-approval-wrap],
#couplings[data-documentation-route="other_file"] [data-catalogue-wrap],
#crossmembers[data-documentation-route="other_file"] [data-catalogue-wrap],
[data-equipment-components][data-documentation-route="other_file"] [data-catalogue-wrap] { display:none; }

#couplings[data-documentation-route="other_file"] [data-approval-caption],
#crossmembers[data-documentation-route="other_file"] [data-approval-caption],
[data-equipment-components][data-documentation-route="other_file"] [data-approval-caption] { font-size:0; }
#couplings[data-documentation-route="other_file"] [data-approval-caption]::after,
#crossmembers[data-documentation-route="other_file"] [data-approval-caption]::after,
[data-equipment-components][data-documentation-route="other_file"] [data-approval-caption]::after { content:'Evt. godkendelsesnummer'; font-size:14px; }

.computed-field { background:#eef1f3 !important; color:#5c6670 !important; cursor:not-allowed; }
.is-greyed { opacity:.72; }
.rear-bumper-card { margin-top:16px; padding-top:16px; border-top:1px solid var(--line); }
.point-subtitle { margin:-4px 0 14px; color:var(--muted); font-weight:650; }
.component-admin-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px; margin:18px 0; }
.component-admin-card { padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.component-admin-card h2 { margin-top:0; }
.component-admin-list { display:grid; gap:12px; margin-top:18px; }
.component-admin-item { border:1px solid var(--line); border-radius:12px; padding:14px; background:#fff; }
.component-admin-item summary { cursor:pointer; font-weight:800; }
.component-admin-item summary span { margin-left:8px; color:var(--muted); font-weight:500; }
.component-admin-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.component-admin-photo { max-width:240px; max-height:180px; object-fit:contain; border:1px solid var(--line); border-radius:8px; padding:4px; margin:10px 0; }
.component-admin-search { display:flex; gap:10px; align-items:end; flex-wrap:wrap; margin:16px 0; }
.component-admin-search label { flex:1 1 280px; }


/* Version 11 – mere luft ved handlinger efter indtastningsfelter */
.desktop-upload-card #desktopUploadButton { margin-top:14px; }
.review-card .inline-actions { margin-top:14px; }

/* v12 – komponentadministration */
.component-admin-direct-card { margin:18px 0; }
.component-admin-search-card { margin:18px 0 12px; }
.component-admin-direct-card .form-grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.component-admin-search-card .component-admin-search { margin:10px 0 0; }
.hidden-mechanical-field { display:none !important; }


/* V13 – viderebygning */
.continuation-intro { border-left:5px solid #176b87; }
.inherited-coc-field { background:#f2f4f6 !important; color:#59636d !important; cursor:not-allowed; }
.previous-contributions { margin:0 0 16px; padding:10px 12px; border:1px solid #d8dde2; background:#fbfcfd; }
.previous-label { margin:0 0 8px; font-size:.9rem; font-weight:700; color:#3d4751; }
.previous-contribution { margin:8px 0 0; padding:7px 10px; border-left:5px solid #6e7074; background:#fff; }
.previous-contribution strong,.previous-contribution span { display:block; }
.previous-contribution span { font-size:.84rem; color:#59636d; margin-top:1px; }
.previous-contribution p { margin:4px 0 0; white-space:pre-line; }
.continuation-card { border-left:5px solid #176b87; }


/* V15: startside og sagssøgning */
.landing-hero{margin:22px 0 18px;padding:28px;border-radius:14px;background:linear-gradient(135deg,#fff4f3,#fff);border:1px solid #f4d1ce}.landing-hero h2{margin:4px 0 8px;font-size:26px}.landing-hero p{max-width:700px;margin:0;color:var(--muted)}.landing-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.85fr);gap:18px}.landing-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}.landing-card h2{margin:0 0 8px;font-size:20px}.landing-card>p{margin:0 0 17px;color:var(--muted)}.landing-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.landing-form label{margin:0}.create-card{display:flex;flex-direction:column}.create-card .button{margin-top:auto;align-self:flex-start}.case-search-results{display:grid;gap:10px}.case-result{display:block;border:1px solid var(--line);border-left:5px solid var(--brand);border-radius:9px;padding:13px 15px;text-decoration:none;color:var(--ink)}.case-result:hover{background:#fff7f6}.case-result strong,.case-result span,.case-result small{display:block}.case-result span,.case-result small{margin-top:3px;color:var(--muted);font-size:13px}.hint{display:block;margin-top:5px}.required-note{color:var(--brand-dark)}@media(max-width:760px){.landing-grid{grid-template-columns:1fr}.landing-form{grid-template-columns:1fr}.landing-form .button{width:100%}}
/* V16 */
.identical-vehicles{margin-top:4px;padding:14px 16px 16px;border:1px solid var(--line);border-radius:11px;background:#fbfcfc}.identical-vin-list{margin-left:18px;padding-left:14px;border-left:3px solid #f1d2cf}.identical-vin-row{background:#fffdfd}.identical-vin-row .form-grid{grid-template-columns:1fr}.rear-bumper-card .hint{margin-top:9px}.a12-length-field.computed-field{background:#f1f3f4;color:#727b81}


/* V17 – klare måleforklaringer og afkrydsning af kombinerede komponenter */
.measurement-note { display:flex; align-items:baseline; gap:8px; margin:12px 0 4px; padding:9px 12px; border-left:4px solid #efb1ac; background:#fff8f7; color:#505b63; border-radius:0 8px 8px 0; font-size:13px; }
.measurement-note strong { color:#7e302a; white-space:nowrap; }
.measurement-note span { color:#5f6971; }
.bumper-measurement-note { margin-top:12px; }
.component-category-checklist { max-height:235px; overflow:auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:7px 12px; margin:6px 0 0; padding:11px; border:1px solid var(--line); border-radius:9px; background:#fbfcfc; }
.component-category-checklist .check { display:flex; margin:0; padding:4px 3px; align-items:center; }
.component-category-checklist input[type=checkbox] { flex:0 0 auto; }
@media (max-width:680px) { .measurement-note { display:block; } .measurement-note strong,.measurement-note span { display:block; } .measurement-note span { margin-top:2px; } .component-category-checklist { grid-template-columns:1fr; } }


/* V18 – tydelig afstand før handling i komponentforslag */
.suggestion-form > .button[type="submit"] { margin-top:18px; }


/* v29: branding styres globalt fra app/config.php */
body.no-ko-branding {
  --brand:#46515a;
  --brand-dark:#2f3941;
}
body.no-ko-branding .brand-mark,
body.no-ko-branding .app-header .eyebrow {
  display:none!important;
}
body.no-ko-branding .app-header {
  grid-template-columns:1fr auto;
  background:#20262b;
}
body.no-ko-branding .brand-copy h1 {
  color:#fff;
}
body.no-ko-branding .brand-copy p:last-child {
  color:#d7dde1;
}
.admin-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:10px 0 8px;
}
.admin-toolbar form {
  margin:0;
}
.admin-branding-hint {
  margin:0 0 18px;
}

/* v29: config-baseret brandingstatus i admin */
.branding-config-status{display:flex;flex-direction:column;gap:3px;background:#f5f6f7;border:1px solid var(--line);border-radius:9px;padding:10px 12px;min-width:270px}.branding-config-status span{font-size:13px;color:var(--muted)}.branding-config-status code{font-family:Consolas,monospace;background:#fff;border:1px solid #d9dfe2;border-radius:4px;padding:1px 4px}

/* V30 – drag/drop direkte på dokumentationspunkter */
.document-row.can-drop {
  position:relative;
  cursor:pointer;
  transition:border-color .15s ease, background-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.document-row.can-drop::after {
  content:"";
  position:absolute;
  inset:4px;
  border:2px dashed transparent;
  border-radius:9px;
  pointer-events:none;
}
.document-row.can-drop:hover {
  border-color:#efaaa4;
  box-shadow:0 6px 16px rgba(28,36,42,.06);
}
.document-row.can-drop.drag-over,
.document-row.can-drop.uploading {
  border-color:var(--brand);
  background:#fff7f6;
  box-shadow:0 0 0 3px rgba(241,79,68,.14);
  transform:translateY(-1px);
}
.document-row.can-drop.drag-over::after {
  border-color:var(--brand);
}
.document-row .doc-state-wrap {
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
}
.document-row .doc-drop-hint {
  font-size:11px;
  color:var(--muted);
  white-space:nowrap;
}
.documentation-list.dragging .document-row.can-drop:not(.drag-over) {
  border-style:dashed;
}
@media (max-width:680px) {
  .document-row .doc-state-wrap { align-items:flex-start; }
  .document-row .doc-drop-hint { white-space:normal; }
}

/* V31/V32 – filer og noter vises direkte under hvert træk-til-punkt */
.document-row .doc-main {
  flex:1 1 auto;
  min-width:0;
}
.doc-inline-files {
  list-style:none;
  margin:10px 0 0;
  padding:0;
  display:grid;
  gap:8px;
}
.doc-inline-files li {
  display:grid;
  gap:7px;
  padding:8px;
  border:1px solid #e3e8ea;
  border-radius:8px;
  background:#fff;
}
.doc-inline-file-top {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:8px;
}
.doc-inline-files .doc-inline-file-name {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#21313a;
  font-weight:700;
  text-decoration:none;
}
.doc-inline-files .doc-inline-file-name:hover {
  color:var(--brand);
  text-decoration:underline;
}
.doc-inline-files span {
  margin:0;
  color:var(--muted);
  font-size:12px;
  font-weight:400;
  white-space:nowrap;
}
.doc-inline-note-wrap {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:8px;
}
.doc-inline-note-input {
  width:100%;
  min-width:0;
  height:34px;
  border:1px solid #d7dde1;
  border-radius:8px;
  padding:7px 9px;
  font:inherit;
  background:#fbfcfd;
}
.doc-inline-note-input:focus {
  outline:none;
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(241,79,68,.12);
  background:#fff;
}
.doc-inline-note-save {
  white-space:nowrap;
}
.doc-inline-note-status {
  min-width:54px;
  font-size:12px;
  color:var(--muted);
}
.doc-inline-note-status.saved { color:#188345; }
.doc-inline-note-status.error { color:#aa2d26; }
.doc-inline-delete {
  width:26px;
  height:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #f0c2be;
  border-radius:999px;
  background:#fff7f6;
  color:#a52b24;
  font-size:18px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
}
.doc-inline-delete:hover {
  background:#ffe8e5;
  border-color:#dc8179;
}
#existingFiles { display:none !important; }
@media (max-width:680px) {
  .doc-inline-file-top,
  .doc-inline-note-wrap {
    grid-template-columns:minmax(0,1fr) auto;
  }
  .doc-inline-files span,
  .doc-inline-note-status {
    grid-column:1 / -1;
  }
  .doc-inline-note-save {
    grid-column:2;
  }
}

/* V33 */
.removed-status-note {
  margin: 16px 0 0;
  padding: 14px 16px;
  border-radius: 14px;
  background: #fff7e8;
  border: 1px solid rgba(190, 127, 36, .35);
  color: #5c3b0d;
}
.removed-status-note strong { display:block; margin-bottom:4px; }
.removed-status-note p { margin:0; }

/* V38 – projektkæde på share-siden og valg af Mobility-eksport */
.export-card-options { cursor:default; }
.export-card-options:hover { border-color:var(--line); box-shadow:none; }
.export-option-actions { display:flex; gap:7px; flex-wrap:wrap; margin-top:auto; }
.export-option-actions .button { flex:1 1 145px; text-align:center; justify-content:center; }
.share-downloads { display:flex; align-items:flex-start; justify-content:flex-end; gap:9px; flex-wrap:wrap; }
.share-download-group { display:flex; align-items:center; gap:7px; flex-wrap:wrap; padding:7px 9px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.share-download-group > strong { font-size:13px; color:var(--muted); }
.share-chain-notice { max-width:680px; margin-top:9px !important; padding:9px 11px; border-left:4px solid var(--brand); background:#fff7f5; border-radius:5px; color:var(--ink) !important; }
.share-party-card { --party-color:#6e7074; margin-top:14px; border:1px solid var(--line); border-left:6px solid var(--party-color); border-radius:12px; background:#fff; overflow:hidden; }
.share-party-card.is-later { background:#fffdf7; }
.share-party-header { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding:15px 17px; border-bottom:1px solid var(--line); }
.share-party-header h4 { margin:2px 0 3px; font-size:19px; }
.share-party-header span { color:var(--muted); font-size:13px; }
.share-party-kicker { margin:0 !important; color:var(--party-color) !important; font-size:12px !important; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.later-contribution-badge { flex:0 0 auto; display:inline-block; padding:5px 9px; border-radius:999px; background:#fff1c7; color:#765500 !important; font-weight:800; }
.share-party-content { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:22px; padding:16px 17px; }
.share-party-content h5 { margin:0 0 8px; font-size:15px; }
.share-party-content p { margin:0; }
.share-contribution-list { list-style:none; padding:0; margin:0; }
.share-contribution-list li { padding:8px 0; border-top:1px solid var(--line); }
.share-contribution-list li:first-child { border-top:0; padding-top:0; }
.share-contribution-list strong,.share-contribution-list span { display:block; }
.share-contribution-list span { margin-top:2px; color:var(--muted); font-size:13px; white-space:pre-line; }
@media (max-width:860px) {
  .share-party-content { grid-template-columns:1fr; }
  .share-downloads { justify-content:flex-start; }
}
@media (max-width:680px) {
  .share-download-group,.share-downloads > .button { width:100%; }
  .share-download-group .button { flex:1 1 100%; }
  .share-party-header { flex-direction:column; }
}

/* Share V40 – oprindeligt udtryk med filer knyttet direkte til deres punkt */
.share-point-content { display:block; padding:0; }
.share-point-table { width:100%; }
.share-point-table-head,
.share-point-row {
  display:grid;
  grid-template-columns:minmax(250px,.9fr) minmax(0,1.1fr);
  column-gap:22px;
}
.share-point-table-head {
  padding:11px 17px;
  border-bottom:1px solid var(--line);
  background:#f7f8f8;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.share-point-row {
  align-items:start;
  padding:13px 17px;
  border-top:1px solid var(--line);
}
.share-point-table-head + .share-point-row { border-top:0; }
.share-point-row.is-file-only { background:#fcfcfb; }
.share-point-description,
.share-point-files,
.share-point-file-copy { min-width:0; }
.share-point-description strong,
.share-point-description span,
.share-point-file-copy strong,
.share-point-file-copy span { display:block; overflow-wrap:anywhere; word-break:break-word; }
.share-point-description strong { font-size:14px; line-height:1.35; }
.share-point-description span { margin-top:3px; color:var(--muted); font-size:13px; line-height:1.42; white-space:pre-line; }
.share-point-files { display:grid; gap:8px; }
.share-point-file {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  min-width:0;
  padding:9px 10px;
  border:1px solid #dfe3e5;
  border-radius:9px;
  background:#fff;
}
.share-point-file-copy strong { color:var(--ink); font-size:12px; line-height:1.35; }
.share-point-file-copy span { margin-top:3px; color:var(--muted); font-size:12px; line-height:1.35; }
.share-point-file .case-file-actions { display:flex; gap:6px; flex-wrap:nowrap; }
.share-point-file .case-file-actions .button { white-space:nowrap; }
.share-no-files { display:block; padding:4px 0; color:#8a9398; font-size:12px; font-style:italic; }
.share-empty-contribution { margin:0; padding:17px; color:var(--muted); }

@media (max-width:820px) {
  .share-point-table-head { display:none; }
  .share-point-row { grid-template-columns:1fr; gap:9px; padding:14px 15px; }
  .share-point-description { padding-bottom:8px; border-bottom:1px solid #edf0f1; }
}
@media (max-width:540px) {
  .share-point-file { grid-template-columns:1fr; }
  .share-point-file .case-file-actions { width:100%; }
  .share-point-file .case-file-actions .button { flex:1 1 0; }
}

/* V41 – kompakt dokumentationspakke og valg af maksimal billedstørrelse */
.export-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.documentation-package-card { min-height:188px; }
.export-size-select { margin-top:auto; color:#3a444b; font-size:12px; }
.export-size-select select { margin-top:5px; padding:8px 10px; font-size:13px; }
.documentation-package-card .export-option-actions { margin-top:0; }
.documentation-package-card .export-option-actions .button { width:100%; }
.share-package-download {
  display:flex;
  align-items:flex-end;
  gap:8px;
  padding:7px 9px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}
.share-package-download label {
  min-width:185px;
  color:var(--muted);
  font-size:12px;
}
.share-package-download select {
  margin-top:3px;
  min-width:185px;
  padding:7px 9px;
  font-size:13px;
}
.share-package-download .button { white-space:nowrap; }
@media (max-width:900px) {
  .export-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
  .export-grid { grid-template-columns:1fr; }
  .share-package-download { width:100%; align-items:stretch; flex-direction:column; }
  .share-package-download label,.share-package-download select,.share-package-download .button { width:100%; min-width:0; }
}

/* V47 - hurtig udvælgelse af NIV-punkter før punktgennemgangen */
.point-selection-screen { margin-top:18px; }
.point-selection-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 14px; padding:12px 14px; background:#f7f8f8; border:1px solid var(--line); border-radius:10px; }
.point-selection-actions { display:flex; gap:8px; flex-wrap:wrap; }
.point-selection-count { color:#3d494f; font-size:14px; white-space:nowrap; }
.point-selection-list { border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
.point-selection-item { display:grid; grid-template-columns:22px 38px minmax(0,1fr); align-items:center; gap:10px; padding:11px 14px; border-bottom:1px solid #edf0f1; cursor:pointer; transition:background .12s ease; }
.point-selection-item:last-child { border-bottom:0; }
.point-selection-item:hover { background:#fafbfb; }
.point-selection-item:has(input:checked) { background:#fffafa; }
.point-selection-item input { width:17px; height:17px; margin:0; accent-color:var(--brand); }
.point-selection-number { color:var(--muted); font-size:12px; font-weight:700; text-align:right; }
.point-selection-copy { display:flex; align-items:baseline; justify-content:space-between; gap:12px; min-width:0; }
.point-selection-copy strong { color:#273238; font-size:14px; font-weight:650; }
.point-selection-copy small { color:var(--muted); font-size:11px; font-weight:700; white-space:nowrap; }
.point-review-screen.hidden,.point-selection-screen.hidden { display:none !important; }
.point-review-screen .point-jump { justify-content:space-between; }
.point-review-screen .point-jump label { max-width:720px; }
@media (max-width:680px) {
  .point-selection-toolbar { align-items:stretch; flex-direction:column; }
  .point-selection-count { white-space:normal; }
  .point-selection-actions { display:grid; grid-template-columns:1fr 1fr; }
  .point-selection-actions .button { width:100%; }
  .point-selection-item { grid-template-columns:20px 30px minmax(0,1fr); padding:11px 10px; gap:8px; }
  .point-selection-copy { display:block; }
  .point-selection-copy small { display:block; margin-top:2px; }
  .point-review-screen .point-jump { align-items:stretch; flex-direction:column; }
  .point-review-screen .point-jump .button { width:100%; }
}

/* V54 – forklarende undertitler til NIV-punkter */
.point-selection-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:2px; min-width:0; }
.point-selection-titleline { display:flex; align-items:baseline; justify-content:space-between; gap:12px; width:100%; min-width:0; }
.point-selection-definition { display:block; color:var(--muted); font-size:12px; line-height:1.35; font-weight:400; }
.point-documentation-definition { margin:2px 0 6px !important; color:var(--muted); font-size:12px; line-height:1.35; font-weight:400; }
@media (max-width:680px) {
  .point-selection-titleline { display:block; }
  .point-selection-titleline small { margin-top:2px; }
}
