/* Uniq Overblik – farver efter uniqlogistics.dk (lilla #443266, blå #1A80B6) */
:root {
  --brand: #443266;
  --brand-2: #5a4585;
  --brand-soft: #eeeaf5;
  --accent: #1a80b6;
  --accent-soft: #e5f1f8;
  --bg: #f4f4f6;
  --card: #ffffff;
  --text: #2b2b33;
  --muted: #6b6b78;
  --line: #e2e2e8;
  --ok: #2e7d4f;
  --ok-soft: #e6f4ec;
  --warn: #b26a00;
  --warn-soft: #fdf1dc;
  --bad: #b3261e;
  --bad-soft: #fbe6e4;
  --demo: #b26a00;
  --public: #1a80b6;
  --radius: 10px;
  --shadow: 0 1px 2px rgba(20, 16, 40, .06), 0 2px 8px rgba(20, 16, 40, .04);
  --font: "Open Sans", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { font-family: var(--font); font-size: 14px; color: var(--text); background: var(--bg); line-height: 1.45; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 22px; margin: 0 0 4px; font-weight: 700; color: var(--brand); }
h2 { font-size: 17px; margin: 0 0 10px; font-weight: 700; }
h3 { font-size: 14px; margin: 0 0 8px; font-weight: 700; }
small, .muted { color: var(--muted); }
.mono { font-variant-numeric: tabular-nums; }

/* ---------- layout ---------- */
.layout { display: grid; grid-template-columns: 248px 1fr; min-height: 100vh; }
.sidebar { background: var(--brand); color: #fff; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; }
.brand { padding: 20px 18px 14px; border-bottom: 1px solid rgba(255,255,255,.12); }
.brand .name { font-size: 19px; font-weight: 800; letter-spacing: .2px; display: flex; align-items: center; gap: 8px; }
.brand .logo { width: 28px; height: 28px; border-radius: 7px; background: #fff; color: var(--brand); display: grid; place-items: center; font-weight: 800; font-size: 15px; }
.brand .sub { font-size: 11.5px; opacity: .8; margin-top: 4px; }
.nav { padding: 10px 8px; flex: 1; overflow-y: auto; }
.nav a { display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.86); padding: 9px 12px; border-radius: 8px; margin-bottom: 2px; font-weight: 600; font-size: 13.5px; }
.nav a .num { width: 20px; height: 20px; border-radius: 6px; background: rgba(255,255,255,.12); display: grid; place-items: center; font-size: 11px; }
.nav a:hover { background: rgba(255,255,255,.08); text-decoration: none; }
.nav a.active { background: #fff; color: var(--brand); }
.nav a.active .num { background: var(--brand-soft); }
.nav .sep { height: 1px; background: rgba(255,255,255,.12); margin: 10px 6px; }
.sidebar .foot { padding: 12px 16px; font-size: 12px; border-top: 1px solid rgba(255,255,255,.12); opacity: .9; }
.sidebar .foot button { background: none; border: 1px solid rgba(255,255,255,.35); color: #fff; padding: 4px 10px; border-radius: 6px; cursor: pointer; margin-top: 6px; }

.main { min-width: 0; display: flex; flex-direction: column; }
.topbar { display: flex; align-items: center; gap: 12px; padding: 10px 24px; background: var(--card); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 20; flex-wrap: wrap; }
.topbar .spacer { flex: 1; }
.company-select { display: flex; align-items: center; gap: 8px; }
.company-select label { font-size: 12px; color: var(--muted); font-weight: 600; }
.company-select select { font-weight: 700; color: var(--brand); border: 1px solid var(--brand); border-radius: 8px; padding: 6px 10px; background: var(--brand-soft); min-width: 230px; }
.env-switch { display: flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.env-switch button { border: 0; background: #fff; padding: 6px 10px; cursor: pointer; font-size: 12px; font-weight: 600; color: var(--muted); }
.env-switch button.on { background: var(--brand); color: #fff; }
.content { padding: 20px 24px 60px; max-width: 1500px; width: 100%; }
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.page-head p { margin: 0; color: var(--muted); }

/* ---------- datamærker ---------- */
.banner { padding: 8px 24px; font-size: 13px; font-weight: 600; display: flex; gap: 10px; align-items: center; }
.banner.demo { background: var(--warn-soft); color: #7a4a00; border-bottom: 1px solid #f1d9a8; }
.banner.drift { background: var(--ok-soft); color: #1e5a38; border-bottom: 1px solid #c4e3d1; }
.tag { display: inline-flex; align-items: center; gap: 4px; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; border: 1px solid transparent; }
.tag.demo { background: var(--warn-soft); color: #7a4a00; border-color: #f1d9a8; }
.tag.offentlig { background: var(--accent-soft); color: #0f5a82; border-color: #bcdcef; }
.tag.faktisk, .tag.intern { background: var(--ok-soft); color: #1e5a38; border-color: #c4e3d1; }
.tag.estimat { background: #f1eefb; color: #4b3a7a; border-color: #d9d0f0; }
.tag.antagelse { background: #fdeee8; color: #8a3b14; border-color: #f3cdbb; }
.tag.ok { background: var(--ok-soft); color: var(--ok); }
.tag.warn, .tag.advarsel { background: var(--warn-soft); color: var(--warn); }
.tag.bad, .tag.fejl { background: var(--bad-soft); color: var(--bad); }
.tag.info, .tag.neutral { background: #eef0f3; color: #4b5563; }

/* ---------- komponenter ---------- */
.grid { display: grid; gap: 14px; }
.grid.k4 { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.grid.c2 { grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); }
.grid.c3 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 16px; min-width: 0; }
.card.flush { padding: 0; }
.card .card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.card .card-head h2 { margin: 0; }
.kpi { cursor: pointer; transition: border-color .15s, transform .15s; position: relative; }
.kpi:hover { border-color: var(--accent); }
.kpi .label { font-size: 12px; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .3px; }
.kpi .value { font-size: 24px; font-weight: 800; color: var(--brand); margin: 4px 0 2px; font-variant-numeric: tabular-nums; }
.kpi .hint { font-size: 12px; color: var(--muted); }
.kpi .why { position: absolute; bottom: 10px; right: 12px; font-size: 11px; color: var(--accent); font-weight: 600; opacity: .8; }
.kpi.alert .value { color: var(--bad); }
.kpi.good .value { color: var(--ok); }

.btn { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); background: #fff; color: var(--text); padding: 7px 12px; border-radius: 8px; cursor: pointer; font-weight: 600; font-size: 13px; font-family: inherit; text-decoration: none; }
.btn:hover { border-color: var(--accent); text-decoration: none; }
.btn.primary { background: var(--brand); color: #fff; border-color: var(--brand); }
.btn.primary:hover { background: var(--brand-2); }
.btn.accent { background: var(--accent); color: #fff; border-color: var(--accent); }
.btn.danger { color: var(--bad); border-color: #efc4c0; }
.btn.small { padding: 4px 9px; font-size: 12px; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

input, select, textarea { font-family: inherit; font-size: 13px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--text); }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--accent-soft); border-color: var(--accent); }
input[type=number] { width: 110px; }
input[type=checkbox] { width: auto; }
.field { display: flex; flex-direction: column; gap: 3px; }
.field label { font-size: 12px; font-weight: 600; color: var(--muted); }
.form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px 14px; }
.filters { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; margin-bottom: 12px; }

.tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--line); margin-bottom: 14px; flex-wrap: wrap; }
.tabs button { border: 0; background: none; padding: 9px 14px; font-weight: 600; color: var(--muted); cursor: pointer; border-bottom: 2px solid transparent; font-family: inherit; font-size: 13.5px; }
.tabs button.on { color: var(--brand); border-bottom-color: var(--brand); }

/* tabeller */
.table-wrap { overflow-x: auto; }
table.t { width: 100%; border-collapse: collapse; font-size: 13px; }
table.t th { text-align: left; font-weight: 700; color: var(--muted); font-size: 11.5px; text-transform: uppercase; letter-spacing: .3px; padding: 8px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; background: #fafafc; position: sticky; top: 0; cursor: pointer; user-select: none; }
table.t th.nosort { cursor: default; }
table.t th .arrow { opacity: .5; font-size: 10px; }
table.t td { padding: 8px 10px; border-bottom: 1px solid #efeff3; vertical-align: top; }
table.t td.num, table.t th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
table.t tr.click { cursor: pointer; }
table.t tr.click:hover td { background: #f7f5fb; }
table.t tr.sel td { background: var(--brand-soft); }
table.t tr.total td { font-weight: 700; border-top: 2px solid var(--line); background: #fafafc; }
table.t tr.sub td { color: var(--muted); }
.neg { color: var(--bad); }
.pos { color: var(--ok); }

.empty { text-align: center; padding: 36px 16px; color: var(--muted); border: 1px dashed var(--line); border-radius: var(--radius); background: #fcfcfd; }
.empty h3 { color: var(--text); }
.note { background: #f7f7fa; border-left: 3px solid var(--accent); padding: 8px 12px; border-radius: 0 6px 6px 0; color: #444; font-size: 13px; margin: 8px 0; }
.note.warn { border-left-color: var(--warn); background: var(--warn-soft); }
.note.bad { border-left-color: var(--bad); background: var(--bad-soft); }
.note.ok { border-left-color: var(--ok); background: var(--ok-soft); }
.note.ok h3 { color: var(--ok); }
.note.bad h3 { color: var(--bad); }
/* Indlæsning i gang (fx Indlæs budgetfil/bankudtog) */
.tr-progress { display: flex; align-items: center; gap: 8px; }
.tr-spin { width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; display: inline-block; animation: tr-spin .8s linear infinite; flex: none; }
@keyframes tr-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .tr-spin { animation-duration: 3s; } }
.list { margin: 0; padding-left: 18px; }
.list li { margin: 3px 0; }
.kv { display: grid; grid-template-columns: minmax(150px, max-content) 1fr; gap: 4px 14px; font-size: 13px; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; font-weight: 600; }
.pill-bar { display: flex; height: 10px; border-radius: 6px; overflow: hidden; background: #eee; }
.pill-bar span { display: block; height: 100%; }
.score { display: inline-block; min-width: 34px; text-align: center; font-weight: 800; padding: 2px 6px; border-radius: 6px; }
.score.hi { background: var(--bad-soft); color: var(--bad); }
.score.mid { background: var(--warn-soft); color: var(--warn); }
.score.lo { background: #eef0f3; color: #4b5563; }
.chart-box { position: relative; height: 260px; }
.chart-box.tall { height: 340px; }

/* modal og skuffe */
.overlay { position: fixed; inset: 0; background: rgba(25, 18, 45, .38); z-index: 50; display: flex; justify-content: flex-end; }
.overlay.center { justify-content: center; align-items: flex-start; padding-top: 6vh; }
.drawer { width: min(820px, 96vw); background: var(--bg); height: 100vh; overflow-y: auto; box-shadow: -6px 0 24px rgba(0,0,0,.15); }
.drawer .dhead { position: sticky; top: 0; background: var(--card); padding: 14px 20px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 12px; z-index: 2; }
.drawer .dbody { padding: 16px 20px 40px; display: grid; gap: 14px; }
.modal { background: var(--card); border-radius: 12px; width: min(760px, 94vw); max-height: 86vh; overflow-y: auto; box-shadow: 0 10px 40px rgba(0,0,0,.25); }
.modal .mhead { padding: 14px 20px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; background: var(--card); }
.modal .mbody { padding: 16px 20px 20px; }
.x { border: 0; background: none; font-size: 22px; cursor: pointer; color: var(--muted); line-height: 1; }
.toast { position: fixed; bottom: 20px; right: 20px; background: #2b2b33; color: #fff; padding: 10px 16px; border-radius: 8px; z-index: 80; box-shadow: var(--shadow); max-width: 420px; }
.toast.err { background: var(--bad); }
.loading { color: var(--muted); padding: 30px; text-align: center; }

/* 3D */
.fleet3d { display: grid; grid-template-columns: 1fr 320px; gap: 14px; }
.fleet3d .stage { position: relative; height: 560px; border-radius: var(--radius); overflow: hidden; background: linear-gradient(#eef0f6, #dfe3ec); border: 1px solid var(--line); }
.fleet3d .stage canvas { display: block; }
.fleet3d .stage .legend { position: absolute; left: 12px; bottom: 12px; background: rgba(255,255,255,.92); padding: 8px 10px; border-radius: 8px; font-size: 12px; box-shadow: var(--shadow); max-width: 60%; }
.fleet3d .stage .legend i { display: inline-block; width: 11px; height: 11px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.fleet3d .stage .schematic { position: absolute; top: 10px; left: 12px; background: rgba(68,50,102,.88); color: #fff; font-size: 11.5px; padding: 4px 9px; border-radius: 6px; font-weight: 600; }
.fleet3d .stage .tip { position: absolute; pointer-events: none; background: #2b2b33; color: #fff; font-size: 12px; padding: 4px 8px; border-radius: 6px; transform: translate(-50%, -130%); white-space: nowrap; }
.fleet3d .panel { display: grid; gap: 12px; align-content: start; }

/* rapport/print */
.report h2 { margin-top: 18px; }
@media print {
  .sidebar, .topbar, .no-print, .banner .btn { display: none !important; }
  .layout { display: block; }
  .content { padding: 0; max-width: none; }
  .card { box-shadow: none; break-inside: avoid; }
  body { background: #fff; }
  .banner.demo { border: 1px solid #f1d9a8; }
}

/* login */
.login-wrap { min-height: 100vh; display: grid; grid-template-columns: 1.1fr 1fr; }
.login-hero { background: linear-gradient(150deg, var(--brand) 0%, #2f2349 70%, #1d1530 100%); color: #fff; padding: 56px; display: flex; flex-direction: column; justify-content: space-between; }
.login-hero .name { font-size: 34px; font-weight: 800; display: flex; align-items: center; gap: 12px; }
.login-hero .logo { width: 44px; height: 44px; border-radius: 10px; background: #fff; color: var(--brand); display: grid; place-items: center; font-weight: 800; font-size: 22px; }
.login-hero .sub { font-size: 17px; opacity: .88; margin-top: 10px; max-width: 420px; }
.login-hero ul { list-style: none; padding: 0; margin: 28px 0 0; opacity: .85; }
.login-hero li { margin: 8px 0; padding-left: 18px; position: relative; }
.login-hero li::before { content: ''; position: absolute; left: 0; top: 8px; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.login-panel { display: grid; place-items: center; padding: 40px; background: #fff; }
.login-box { width: min(380px, 100%); }
.login-box h1 { font-size: 22px; margin-bottom: 6px; }
.login-box .field { margin-bottom: 12px; }
.login-box input { padding: 10px 12px; font-size: 14px; }
.login-box .btn { width: 100%; justify-content: center; padding: 10px; font-size: 14px; }
.login-box .msg { margin: 10px 0; }

/* tofaktor (adgangsnøgler) – login-siden og Min konto */
.mfa-steps { padding-left: 18px; margin: 8px 0 14px; }
.mfa-steps li { margin: 4px 0; }
.mfa-codes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 18px; padding-left: 24px; margin: 12px 0; }
.mfa-codes code { font-size: 15px; letter-spacing: .06em; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.mfa-check { display: flex; gap: 8px; align-items: center; margin: 12px 0; font-weight: 500; }
.login-box .mfa-code-actions .btn { width: auto; flex: 1; padding: 7px; font-size: 13px; }
.mfa-add { max-width: 380px; }
.mfa-add .field small { display: block; margin-top: 3px; }
.sidebar .foot .userbox-link { color: #fff; opacity: .9; margin-right: 6px; }
@media (max-width: 420px) { .mfa-codes { grid-template-columns: 1fr; } }
/* Godkend login fra mobilen: QR-kode (hvid baggrund også i mørkt tema, så den kan scannes) og kontrolkoden */
.mfa-qr { width: 210px; max-width: 100%; margin: 6px auto 8px; background: #fff; padding: 4px; border-radius: 6px; }
.mfa-qr svg { display: block; width: 100%; height: auto; }
.mfa-qr-old { opacity: .25; }
.mfa-approval-code { text-align: center; font-size: 30px; font-weight: 700; letter-spacing: .25em; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.approve-card { max-width: 460px; }
.approve-card dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 12px 0; }
.approve-card dt { color: var(--muted, #666); }
.approve-card dd { margin: 0; font-weight: 600; word-break: break-word; }
.approve-card .btn-row .btn { flex: 1; justify-content: center; padding: 11px; font-size: 15px; }

@media (max-width: 900px) {
  .layout { grid-template-columns: 1fr; }
  .sidebar { position: static; height: auto; }
  .nav { display: flex; flex-wrap: wrap; }
  .fleet3d { grid-template-columns: 1fr; }
  .login-wrap { grid-template-columns: 1fr; }
  .login-hero { padding: 32px; }
  .grid.c2 { grid-template-columns: 1fr; }
}

/* scenarieeditor */
#actions select { max-width: 210px; }
#actions .det input[type=month] { width: 130px; }

/* Faktiske flådedata: daglig brug, manglende oplysninger og tidslinje */
.na { color: var(--muted); font-style: italic; font-size: 12px; white-space: nowrap; }
.tag.daglig { background: #fff4b8; color: #6b5300; border-color: #f0d75a; }
table.t tr.daily td:first-child { box-shadow: inset 4px 0 0 #f2cf2a; }
table.t tr.gap td { background: var(--bad-soft); }
.timeline { font-size: 12px; }
.tl-axis { position: relative; height: 20px; margin-left: 150px; border-bottom: 1px solid var(--line); }
.tl-axis span { position: absolute; transform: translateX(-50%); color: var(--muted); }
.tl-axis span.today { color: var(--bad); font-weight: 700; top: -2px; }
.tl-row { display: flex; align-items: center; height: 26px; }
.tl-label { width: 150px; flex: none; display: flex; gap: 6px; align-items: center; overflow: hidden; white-space: nowrap; }
.tl-track { position: relative; flex: 1; height: 100%; background: repeating-linear-gradient(90deg, transparent, transparent 49.8%, #f2f2f6 50%); }
.tl-bar { position: absolute; top: 7px; height: 12px; border-radius: 6px; background: #b9b2cc; display: inline-block; }
.tl-bar.daily { background: #f2cf2a; }
.tl-mark { position: absolute; top: 3px; width: 3px; height: 20px; display: inline-block; }
.tl-mark.buyer { background: var(--brand); }
.tl-mark.term { background: var(--accent); }
.tl-today { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--bad); }
.tl-legend { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 8px; margin-left: 150px; color: var(--muted); }
.tl-legend i { position: relative; top: 0; vertical-align: middle; width: 22px; height: 10px; margin-right: 4px; }
.tl-legend i.tl-mark { width: 3px; height: 14px; }
.dot.daily { width: 9px; height: 9px; border-radius: 50%; background: #f2cf2a; display: inline-block; }
@media (max-width: 700px) { .tl-label { width: 90px; } .tl-axis, .tl-legend { margin-left: 90px; } }

/* Spørgsmål og afklaringer */
.q-item { border-top: 1px solid var(--line); padding: 12px 0; }
.q-item:first-of-type { border-top: 0; }
.q-item.afklaret, .q-item.bortfaldet { opacity: .75; }
.q-head { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.q-text { margin: 6px 0 2px; }
.q-ctx { margin: 2px 0; font-size: 13px; }
.q-answers { margin: 8px 0 4px; display: grid; gap: 6px; }
.q-answer { background: var(--brand-soft, #f3f0f8); border-radius: 8px; padding: 8px 10px; font-size: 13px; }
.q-meta { font-size: 11px; color: var(--muted); margin-bottom: 2px; font-weight: 600; }
.q-form { display: flex; gap: 8px; align-items: flex-end; margin-top: 8px; }
.q-form textarea { flex: 1; min-width: 0; }
.q-actions { margin-top: 6px; }
.nav .badge { margin-left: auto; background: var(--bad); color: #fff; border-radius: 999px; font-size: 11px; font-weight: 700; padding: 0 7px; }

/* Analyse og anbefalinger */
.rec { margin-bottom: 12px; border-left: 4px solid var(--line); }
.rec.dokumenteret { border-left-color: var(--ok); }
.rec.foreløbig { border-left-color: #8a6fbf; }
.rec.utilstrækkelig { border-left-color: var(--warn); }
.rec h4 { margin: 6px 0 4px; font-size: 12px; text-transform: uppercase; letter-spacing: .3px; color: var(--muted); }
.rec p { margin: 2px 0 6px; }
.rec-effect { background: #fafafc; border-radius: 8px; padding: 8px 12px; margin: 6px 0; }
.rec-lists ul { margin: 0; }

/* Flåde: arbejdsflade med visning + bilpanel, kort og sammenligning */
.fleet-work { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 14px; align-items: start; }
.fleet-work #panel { position: sticky; top: 12px; }
.panel .kv dt { min-width: 110px; }
@media (max-width: 1100px) { .fleet-work { grid-template-columns: 1fr; } .fleet-work #panel { position: static; } }
.map-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 10px; }
.map { height: 520px; border-radius: 10px; background: #cfe3f1; border: 1px solid var(--line); }
.map-list { max-height: 520px; overflow: auto; font-size: 13px; }
.map-list h5 { margin: 10px 0 4px; font-size: 12px; text-transform: uppercase; color: var(--muted); }
.map-veh { display: block; width: 100%; text-align: left; border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 5px 8px; margin: 3px 0; cursor: pointer; font: inherit; }
.map-veh:hover, .map-veh.on { border-color: var(--accent); background: #f3f8fc; }
.map-veh small { display: block; color: var(--muted); }
.map-dot.amb { display: inline-block; width: 10px; height: 10px; border-radius: 50%; border: 2px dashed #b07a00; vertical-align: middle; }
.small-tabs button { padding: 4px 10px; font-size: 12px; }
@media (max-width: 800px) { .map-wrap { grid-template-columns: 1fr; } .map { height: 380px; } }
.modal.wide { width: min(1180px, 96vw); max-width: none; }
.cand { border-top: 1px solid var(--line); padding: 8px 0; }
.cand .offer { display: block; margin: 4px 0 0 18px; font-size: 13px; }
.cmp-grid { display: grid; gap: 10px; }
.cmp-col { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: #fff; }
.cmp-col.base { background: #fafafc; }
.cmp-col h4 { margin: 0 0 6px; font-size: 14px; }
.cmp-big { font-size: 22px; font-weight: 800; color: var(--brand); }
.cmp-col .next { margin-top: 8px; font-size: 13px; background: var(--brand-soft, #f3f0f8); border-radius: 8px; padding: 6px 8px; }
@media (max-width: 800px) { .cmp-grid { grid-template-columns: 1fr !important; } }
#printArea { display: none; }
@media print {
  body.printing > *:not(#printArea) { display: none !important; }
  body.printing #printArea { display: block; font: 12px/1.4 Arial, sans-serif; color: #000; }
  #printArea table { border-collapse: collapse; width: 100%; }
  #printArea th, #printArea td { border: 1px solid #999; padding: 4px 6px; vertical-align: top; text-align: left; }
}
.fleet-work .fleet3d { grid-template-columns: 1fr; }
.fleet-work .fleet3d .panel { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

.nav .nav-group { color: rgba(255,255,255,.55); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; margin: 14px 12px 4px; }
.subnav { margin: -4px 0 12px; }
.guide { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin-bottom: 12px; }
.guide > div { background: #fafafc; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; font-size: 13px; }
.guide strong { display: block; color: var(--brand); margin-bottom: 2px; }
.sugg { display: block; font-size: 11px; color: #4b3a7a; margin-top: 2px; }
.sugg.lav { color: #8a3b14; }
input.suggested, select.suggested { border-color: #8a6fbf; background: #f7f4fd; }
.map.leaflet-container { background: #cfe3f1; }

.map-base, .map-park { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 5px; font-weight: 800; font-size: 11px; color: #fff; vertical-align: -3px; }
.map-base { background: #d40511; }
.map-park { background: #1a80b6; }
.map-base.big, .map-park.big { width: 26px; height: 26px; font-size: 13px; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.35); }
.map-base-icon { background: none; border: 0; }
.leaflet-tooltip.map-base-label { font-weight: 700; color: #d40511; }

/* Flådetabel: fast højde så den vandrette rullebjælke altid ses; overskrift og bilkolonne bliver stående */
.fleet-work.no-panel { grid-template-columns: minmax(0, 1fr); }
.fleet-work.no-panel #panel { display: none; }
.fleet-table .table-wrap { max-height: calc(100vh - 230px); min-height: 320px; overflow: auto; }
.fleet-table table.t th { z-index: 3; }
.fleet-table table.t td:first-child, .fleet-table table.t th:first-child { position: sticky; left: 0; z-index: 2; background: #fff; }
.fleet-table table.t th:first-child { background: #fafafc; z-index: 4; }
#tbl table.t td:first-child, #tbl table.t th:first-child { width: 34px; min-width: 34px; }
#tbl table.t td:nth-child(2), #tbl table.t th:nth-child(2) { position: sticky; left: 34px; z-index: 2; background: #fff; box-shadow: 1px 0 0 var(--line); min-width: 150px; }
#tbl table.t th:nth-child(2) { background: #fafafc; z-index: 4; }
#costtbl table.t td:first-child { box-shadow: 1px 0 0 var(--line); }
.fleet-table table.t tr.sel td { background: var(--brand-soft); }

/* Spørgsmål: konkrete biler/kontrakter og administratorens gennemgang */
.q-about { margin: 6px 0; font-size: 13px; }
.q-about > summary { cursor: pointer; color: var(--accent); font-size: 13px; margin-bottom: 4px; }
.q-details { font-size: 12.5px; margin: 4px 0; }
.q-details td, .q-details th { padding: 4px 8px; vertical-align: top; }
.q-item:not(.afklaret) .q-details tr.muted td { opacity: .6; }
.q-facts { margin: 4px 0 4px 18px; padding: 0; font-size: 13px; }
.q-facts li { margin: 2px 0; }
.modal:has(.q-review) { width: min(1060px, 96vw); }
.q-review td { vertical-align: top; font-size: 12.5px; }
.q-choice { display: flex; gap: 6px; align-items: flex-start; cursor: pointer; }
.q-choice.disabled { opacity: .45; cursor: not-allowed; }
.q-choice input[type=radio] { margin-top: 2px; }

/* Easy Lease – beslutning */
.el-headline { border-left: 5px solid var(--ok); background: linear-gradient(90deg, var(--ok-soft), var(--card) 60%); }
.el-points { margin: 6px 0 10px 18px; padding: 0; font-size: 14px; }
.el-points li { margin: 4px 0; }
.el-prio { display: flex; flex-direction: column; gap: 4px; font-size: 13px; border-top: 1px solid var(--line); padding-top: 8px; }
.el-scen { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 12px; }
.el-sc { border-left: 4px solid var(--line); margin: 0; }
.el-sc.anbefales { border-left-color: var(--ok); }
.el-sc.betinget { border-left-color: var(--warn); }
.el-sc.frarådes { border-left-color: var(--bad); opacity: .9; }
.el-sc p { font-size: 13px; margin: 4px 0 8px; }
.el-kv { font-size: 12.5px; grid-template-columns: 110px 1fr; }
.el-kv dd { font-weight: 400; }
.el-rank { display: inline-grid; place-items: center; min-width: 26px; height: 22px; border-radius: 6px; background: var(--accent); color: #fff; font-weight: 700; font-size: 12px; padding: 0 4px; }
.el-bars { display: grid; gap: 4px; font-size: 12px; }
.el-bars > div { display: grid; grid-template-columns: 80px 1fr 60px; gap: 8px; align-items: center; }
.el-bars .bar { background: #eef0f4; border-radius: 4px; height: 10px; overflow: hidden; }
.el-bars .bar i { display: block; height: 100%; background: var(--accent); }
tr.total td { border-top: 2px solid var(--line); }
.el-rec-row td { border-top: 0 !important; padding-top: 0 !important; padding-bottom: 12px !important; font-size: 12.5px; }

/* Beslutningstræ (trinvist) */
.dt-intro { font-size: 12.5px; margin: 6px 0 10px; }
.dt-cars { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.dt-chip { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 3px 10px; font-size: 12px; cursor: pointer; line-height: 1.4; }
.dt-chip small { color: var(--muted); }
.dt-chip.on { outline: 2px solid var(--accent); outline-offset: 1px; font-weight: 700; }
.dt-chip.dim { opacity: .35; }
.dt-chip.all.on { background: var(--accent); color: #fff; outline: none; }
.dt-chip.leaf-el, .dt-chip.leaf-koerud { background: var(--ok-soft); border-color: #b9dcc6; }
.dt-chip.leaf-overtag { background: #f1eefb; border-color: #d9d0f0; }
.dt-chip.leaf-saelg, .dt-chip.leaf-indfri { background: var(--warn-soft); border-color: #efd9a8; }
.dt-chip.leaf-afvikl, .dt-chip.leaf-opsig { background: var(--bad-soft); border-color: #f0c4c0; }
.dt-wrap { overflow-x: auto; }
.dt-steps { list-style: none; margin: 0; padding: 0; position: relative; }
.dt-steps::before { content: ''; position: absolute; left: 13px; top: 8px; bottom: 8px; width: 2px; background: var(--line); }
.dt-step { position: relative; display: grid; grid-template-columns: minmax(260px, 1fr) minmax(320px, 1.4fr); gap: 12px; padding: 8px 0 12px; }
.dt-step.dim { opacity: .45; }
.dt-step.off { opacity: .4; }
.dt-q { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; }
.dt-num { position: relative; z-index: 1; flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--accent); color: #fff; font-weight: 700; }
.dt-seg { margin-top: 6px; font-size: 12px; display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.dt-seg button { border: 1px solid var(--line); background: #fff; border-radius: 6px; padding: 2px 10px; cursor: pointer; font-size: 12px; }
.dt-seg button.on { background: var(--warn); color: #fff; border-color: var(--warn); }
.dt-branches { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.dt-br { border: 1px dashed var(--line); border-radius: 8px; padding: 6px 8px; font-size: 12.5px; background: #fafafc; }
.dt-br.used { border-style: solid; background: #fff; }
.dt-br.on { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.dt-bl { margin-bottom: 5px; }
.dt-ans { display: inline-block; font-weight: 700; padding: 0 6px; border-radius: 4px; background: #eef0f4; }
.dt-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.dt-leaves { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 10px; }
.dt-leaf { border: 1px solid var(--line); border-top-width: 4px; border-radius: 8px; padding: 8px 10px; font-size: 12.5px; }
.dt-leaf.is-empty { opacity: .55; }
.dt-leaf.leaf-el, .dt-leaf.leaf-koerud { border-top-color: var(--ok); }
.dt-leaf.leaf-overtag { border-top-color: #8a6fbf; }
.dt-leaf.leaf-saelg, .dt-leaf.leaf-indfri { border-top-color: var(--warn); }
.dt-leaf.leaf-afvikl, .dt-leaf.leaf-opsig { border-top-color: var(--bad); }
.dt-leaf .dt-chips { margin: 6px 0; }
.dt-econ { margin: 4px 0; font-weight: 600; }
.dt-path { margin-top: 12px; background: #f7f7fa; border-left: 3px solid var(--accent); border-radius: 0 8px 8px 0; padding: 10px 14px; font-size: 13px; }
.dt-path ol { margin: 0 0 8px 18px; padding: 0; }
.dt-path li { margin: 3px 0; }
@media (max-width: 760px) { .dt-step { grid-template-columns: 1fr; } }

/* Beslutningskort pr. Easy Lease-bil */
.els-sum { display: grid; gap: 6px; margin: 10px 0 4px; font-size: 13px; }
.els-sum > div { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.els-step { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 11px; font-weight: 700; margin-right: 2px; }
.els-pill { border-radius: 999px; padding: 2px 10px; font-size: 12px; border: 1px solid var(--line); background: #fff; }
.els-pill.ok { background: var(--ok-soft); border-color: #b9dcc6; }
.els-pill.warn { background: var(--warn-soft); border-color: #efd9a8; }
.els-pill.estimat { background: #f1eefb; border-color: #d9d0f0; }
.els-pill.diesel { background: #f3efe9; border-color: #ddd2c2; }
.els-group { margin: 16px 0 8px; font-size: 15px; }
.els-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 12px; }
.els-card { background: var(--card); border: 1px solid var(--line); border-left: 5px solid var(--line); border-radius: 10px; padding: 10px 12px; font-size: 13px; display: flex; flex-direction: column; gap: 8px; }
.els-card.el { border-left-color: var(--ok); }
.els-card.overtag, .els-card.overtag-reserve { border-left-color: #8a6fbf; }
.els-card.ny-diesel, .els-card.saelg { border-left-color: var(--warn); }
.els-head { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; flex-wrap: wrap; }
.els-plate { font-size: 15px; }
.els-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.els-steps li, .els-alt { display: grid; grid-template-columns: 78px 1fr; gap: 8px; align-items: start; }
.els-k { font-size: 11px; text-transform: uppercase; letter-spacing: .3px; color: var(--muted); padding-top: 3px; }
.els-amt { font-weight: 700; white-space: nowrap; }
.els-steps details { margin-top: 2px; }
.els-steps summary { cursor: pointer; font-size: 12px; color: var(--accent); }
.els-fuel { display: inline-block; font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 5px; background: #ece4d8; color: #6b4f2a; }
.els-fuel.el { background: var(--ok-soft); color: var(--ok); }
.els-alt { background: #fafafc; border: 1px dashed var(--line); border-radius: 8px; padding: 6px 8px; }
.els-flags { display: flex; flex-wrap: wrap; gap: 4px; }
.els-flags .tag { font-size: 11px; }
.els-deadline { font-size: 12px; border-top: 1px solid var(--line); padding-top: 6px; color: var(--muted); }
.els-deadline strong { color: var(--bad); }
details.card > summary { cursor: pointer; font-weight: 700; font-size: 15px; list-style: none; }
details.card > summary::before { content: '▸ '; color: var(--accent); }
details.card[open] > summary::before { content: '▾ '; }
details.card > summary small { font-weight: 400; }

/* Prioriteter (hvad først) og beslutningstrin (tidsrækkefølge) */
.elp { margin: 12px 0 6px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.elp-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.elp-list li { display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: start; font-size: 13px; }
.elp-badge { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: var(--bad); color: #fff; font-weight: 800; }
.elp-list li:nth-child(2) .elp-badge { background: #d9534f; }
.elp-list li:nth-child(3) .elp-badge { background: var(--warn); }
.elp-list li:nth-child(n+4) .elp-badge { background: #8a8fa0; }
.elp-when { display: inline-block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--accent); margin-right: 4px; }
.els-trow-title { margin: 14px 0 6px; font-size: 13px; }
.els-trow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 8px; align-items: stretch; }
.els-tstep { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; background: #fafafc; display: flex; flex-direction: column; gap: 6px; }
.els-thead { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; }
.els-tpills { display: flex; flex-wrap: wrap; gap: 4px; }
.els-arrow { align-self: center; font-size: 22px; color: var(--muted); }
.els-no { display: inline-grid; place-items: center; width: 15px; height: 15px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 9px; font-weight: 700; margin-right: 2px; vertical-align: 1px; }
@media (max-width: 760px) { .els-trow { grid-template-columns: 1fr; } .els-arrow { transform: rotate(90deg); justify-self: center; } }
.elp-basis { margin: 8px 0 4px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-size: 13px; }
.elp-basis > summary { cursor: pointer; }
.elp-basis tr.elp-sec td { background: #f3f4f8; font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .3px; color: var(--muted); }
.els-unc { border: 1px solid #f0c4c0; background: #fff7f6; border-radius: 8px; padding: 6px 8px; font-size: 12.5px; }
.els-unc.ok { border-color: #b9dcc6; background: var(--ok-soft); }
.els-unc-h { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--bad); margin-bottom: 3px; }
.els-unc.ok .els-unc-h { color: var(--ok); margin: 0; }
.els-unc ul { margin: 0; padding-left: 16px; display: grid; gap: 4px; }
.elu { margin: 10px 0 4px; padding: 10px 12px; border: 1px solid #f0c4c0; border-radius: 10px; background: #fff; }
.els-why { margin-top: 2px; }
.els-why > summary { cursor: pointer; font-size: 11.5px; color: var(--accent); }
.els-why small { display: block; margin-top: 3px; line-height: 1.45; }
/* Likviditet og økonomi */
.elq-cmp td:first-child { min-width: 320px; }
.elq-cmp tr.on td { background: #f3f0fb; }
.elq-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: 0; }
.elq-paid .kv { grid-template-columns: minmax(150px, max-content) 1fr; }
.elq-paid .kv dd small { display: block; font-weight: 400; }
.elq-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.elq-det td:first-child { min-width: 260px; }
.cat-total { font-size: 13px; margin: 0 0 6px; }
/* Nøgletal (Selskab og økonomi) */
.kf-companies { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.kf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.kf { cursor: pointer; display: flex; flex-direction: column; gap: 4px; margin: 0; border: 1px solid var(--line); }
.kf.on { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.kf-label { font-size: 12px; text-transform: uppercase; letter-spacing: .3px; color: var(--muted); }
.kf-value { font-size: 20px; font-weight: 700; }
.kf-spark { height: 38px; }
.kf .btn { align-self: flex-start; margin-top: 2px; }

/* Likviditet: fordele og ulemper pr. scenarie */
.elq-cmp tr.elq-pc td { padding-top: 0; border-top: 0; background: transparent; }
.elq-pc-grid { display: flex; flex-wrap: wrap; gap: 6px 22px; font-size: 12.5px; padding: 0 0 6px 18px; position: sticky; left: 0; max-width: 820px; }
.elq-pc-grid > div { flex: 1 1 300px; min-width: 260px; }
.elq-pc-grid ul { margin: 2px 0 0; padding-left: 16px; }
.elq-pc-grid li { margin: 1px 0; }
.elq-pc-h { font-weight: 600; font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em; }
@media (max-width: 700px) { .elq-pc-grid { padding-left: 0; } }
/* Afklarede svar på kortene og fokus på et spørgsmål */
.els-res { font-size: 12.5px; background: var(--ok-soft); border-radius: 6px; padding: 6px 8px; margin: 6px 0; }
.q-item.q-focus { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px; }

/* Likviditet: prioritet og "Vælg dette, hvis" */
.elq-rank { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; color: #fff; font-size: 11.5px; font-weight: 700; margin-right: 6px; vertical-align: 1px; }
.elq-choose { font-size: 12.5px; margin-top: 4px; padding: 4px 8px; border-left: 3px solid var(--accent); background: var(--accent-soft, rgba(0,0,0,.03)); border-radius: 0 4px 4px 0; max-width: 520px; }

/* Bilpanel: Motorregistret */
.pnl-reg { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 10px; font-size: 13px; }
.pnl-reg-h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; }
.pnl-reg-h .tag:last-child { margin-left: auto; }
.pnl-reg.empty { color: var(--muted); }
.pnl-reg-steps { margin: 4px 0 8px; padding-left: 20px; font-size: 12.5px; }
.pnl-reg-steps li { margin: 2px 0; }
.reg-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; }
.reg-tile { border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; background: var(--card, #fff); }
.reg-tile.warn { border-color: #f1d9a8; background: var(--warn-soft); }
.reg-tile.bad { border-color: #f2c4c0; background: var(--bad-soft); }
.reg-l { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.reg-v { font-size: 17px; font-weight: 700; margin: 2px 0 3px; }
.reg-v.sm { font-size: 14px; line-height: 1.25; }
.reg-tile .tag { font-size: 11px; }
.reg-hint { font-size: 11.5px; color: var(--muted); margin-top: 3px; }
.reg-more { margin-top: 8px; }
.reg-more summary { cursor: pointer; font-weight: 600; font-size: 12.5px; }
.reg-chk { font-size: 11.5px; font-weight: 600; margin-left: 4px; }
.reg-chk.ok { color: var(--ok); } .reg-chk.warn { color: var(--warn); } .reg-chk.bad { color: var(--bad); }
.reg-foot { font-size: 11.5px; color: var(--muted); margin: 6px 0 0; }

/* Flådetabel: vandret rulning i stedet for afskårne kolonner */
.fleet-table { overflow-x: auto; }
.fleet-table table { min-width: 860px; }
.fleet-table td { vertical-align: top; }
.fleet-table td small { line-height: 1.35; }
/* Bilpanel: beslutningsdata øverst */
.dec-strip { margin: 10px 0 4px; }
.dec-strip .reg-v { font-size: 15px; }

/* Nøgletal: valg af selskab og periode */
.kf-controls { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; margin: 10px 0 2px; }
.kf-controls .field { margin: 0; }
.kf-controls select { min-width: 120px; }
.kf-controls .field:first-child select { min-width: 260px; }

/* Overblik: fokus på afvikling af Easy Lease-bilerne */
.focus-card { border-left: 4px solid var(--warn, #e08a2e); }
.focus-kpis { margin: 4px 0 10px; }
.kpi-mini { background: var(--brand-soft); border-radius: 8px; padding: 8px 10px; }
.kpi-mini .label { font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em; color: var(--muted, #6b6b78); }
.kpi-mini .value { font-size: 18px; font-weight: 700; margin: 2px 0; }
.kpi-mini .hint { font-size: 12px; color: var(--muted, #6b6b78); }
.kpi-mini.warn .value { color: var(--bad, #b3261e); }
.focus-stage { margin-top: 10px; }
.focus-stage-head { font-size: 13px; margin-bottom: 4px; }
.focus-t td, .focus-t th { vertical-align: top; }
.section-title { font-size: 15px; margin: 20px 0 8px; color: var(--muted, #6b6b78); text-transform: uppercase; letter-spacing: .04em; }
.offer-matrix td.best { background: rgba(46, 125, 79, .08); font-weight: 600; }

/* Brugervejledning: forklaringslinje øverst, hjælpeside og velkomst */
.page-intro { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--accent-soft); color: var(--text); border-radius: 8px; padding: 7px 12px; margin: 0 0 12px; font-size: 13px; }
.page-intro .pi-icon { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: var(--accent); color: #fff; font-weight: 700; font-size: 12px; font-style: italic; flex: none; }
.page-intro .pi-text { flex: 1 1 320px; }
.page-intro a { white-space: nowrap; font-weight: 600; }
.page-intro .pi-hide { background: none; border: 0; color: var(--muted); cursor: pointer; font-size: 12px; padding: 0; }
.help-toc { margin: 0 0 14px; }
.help-start { display: flex; flex-direction: column; gap: 3px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; color: inherit; text-decoration: none; background: var(--card); }
.help-start:hover { border-color: var(--brand); background: var(--brand-soft); }
.help-start span { font-size: 12.5px; color: var(--muted); }
.help-welcome { display: grid; gap: 8px; margin: 10px 0; }
.help-task { border-top: 1px solid var(--line); padding: 8px 0; }
.help-task summary { cursor: pointer; }
.help-task ol { margin: 8px 0 6px 18px; padding: 0; }
.help-task li { margin: 3px 0; }
.help-group { margin: 16px 0 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.help-page { border-top: 1px solid var(--line); padding: 10px 0; }
.help-page p { margin: 4px 0; }
.help-page-head a { font-size: 15px; }
.help-links { margin-top: 6px; }
.help-glossary dt { font-weight: 600; }
.help-toggle { display: flex; gap: 8px; align-items: center; }

/* Hylder rettes direkte i tabellen */
.shelf-sel { font-size: 12px; padding: 2px 4px; border-radius: 12px; border: 1px solid var(--line); background: var(--card); cursor: pointer; }
.shelf-sel.ja { background: var(--ok-soft); border-color: var(--ok); color: var(--ok); }
.shelf-sel.nej { background: var(--bg); color: var(--muted); }
.shelf-sel.ukendt { background: var(--warn-soft); border-color: var(--warn); color: var(--warn); }
.shelf-cell { display: inline-flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.btn.tiny { font-size: 11px; padding: 1px 7px; line-height: 1.6; }
.shelf-sel.ukendt { background: var(--brand-soft); border-color: var(--brand-2); color: var(--brand); }

/* Besked om nye ændringer / ny version */
#updatebar { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--brand); color: #fff; padding: 8px 14px; border-radius: 8px; margin: 12px 24px 0; max-width: 1452px; font-size: 13.5px; box-shadow: 0 2px 8px rgba(0,0,0,.15); }
#updatebar[hidden] { display: none; }
#updatebar span { flex: 1 1 260px; }
#updatebar .btn.primary { background: #fff; color: var(--brand); border-color: #fff; }
#updatebar .upd-x { background: none; border: 0; color: #fff; font-size: 18px; cursor: pointer; line-height: 1; }
.ds-refresh { background: none; border: 1px solid var(--line); border-radius: 50%; width: 22px; height: 22px; line-height: 18px; padding: 0; cursor: pointer; color: var(--muted); font-size: 13px; vertical-align: middle; }
.ds-refresh:hover { color: var(--brand); border-color: var(--brand); }

/* Optimering af flåden */
.opt-swap { border-left: 3px solid var(--warn); padding: 6px 10px; margin: 6px 0; background: var(--warn-soft); border-radius: 0 6px 6px 0; font-size: 13.5px; }
.opt-dist { display: grid; gap: 4px; max-width: 520px; }
.opt-bar { display: grid; grid-template-columns: 70px 1fr 64px; gap: 8px; align-items: center; font-size: 12.5px; }
.opt-bar-t { background: var(--brand-soft); border-radius: 4px; height: 12px; overflow: hidden; }
.opt-bar-t span { display: block; height: 100%; background: var(--brand-2); }
.opt-bar-n { text-align: right; color: var(--muted); }

/* Salgsplan */
.sales-plan { margin-bottom: 6px; }
.sp-phase { margin: 8px 0; }
.sp-phase-h { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin: 0 0 4px; }
.sp-step { display: grid; grid-template-columns: 26px 92px 1fr auto; gap: 8px; align-items: start; padding: 7px 8px; border: 1px solid var(--line); border-radius: 8px; margin: 4px 0; background: var(--card); font-size: 13px; }
.sp-step.next { border-color: var(--brand-2); box-shadow: 0 0 0 1px var(--brand-2) inset; }
.sp-step.overdue { border-color: var(--bad); background: var(--bad-soft); }
.sp-step.done { opacity: .6; }
.sp-step.done strong { text-decoration: line-through; }
.sp-date { font-size: 12.5px; }
@media (max-width: 700px) { .sp-step { grid-template-columns: 22px 1fr; } .sp-date, .sp-act { grid-column: 2; } }

/* Spørgsmål efter frist */
.q-due { margin: 4px 0 6px; font-size: 13px; }
.q-due.warn strong { color: var(--warn); }
.q-due.neg strong { color: var(--bad); }
.q-urgent { border-left: 4px solid var(--warn); }
.q-urgent-link { display: block; margin-top: 14px; text-decoration: none; color: inherit; }

/* Anbefaling pr. bil i flådetabellen og bilpanelet */
.car-rec { margin-top: 3px; }
.rec-line { display: block; font-size: 11.5px; line-height: 1.35; color: var(--brand); text-decoration: none; max-width: 260px; }
.rec-line.warn { color: var(--warn); }
.rec-line:hover { text-decoration: underline; }
.pnl-notes { margin: 8px 0 0; font-size: 12.5px; }
.pnl-notes div + div { margin-top: 4px; }
.opt-swap.mild { border-left-color: var(--line); background: var(--bg); }

/* Kort: visningsforklaring og afvigelser */
.map-mode-note { font-size: 12.5px; margin: 4px 0; background: var(--brand-soft); border-radius: 6px; padding: 5px 9px; }
.map-veh.dev { border-style: dashed; }
.map-finding { border-bottom: 1px solid var(--line); padding: 6px 0; }
.map-finding small { display: block; margin-top: 2px; }
.map-finding.vigtig { border-left: 3px solid var(--warn); padding-left: 6px; }

/* Easy Lease: indholdsfortegnelse, afsnit og beslutningsboks */
.el-toc { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.el-toc a { font-size: 12.5px; padding: 4px 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); text-decoration: none; color: var(--brand); }
.el-toc a:hover { background: var(--brand-soft); }
.el-sec { margin: 0 0 8px; }
.el-headline { margin: 0 0 10px; font-size: 15px; }
.el-choice .elc-now { margin-bottom: 10px; }
.el-choice .elc-q { margin: 6px 0 8px; }
.elc-paths { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; }
.elc-path { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: var(--card); }
.elc-path.ok { border-top: 4px solid var(--ok); }
.elc-path.warn { border-top: 4px solid var(--warn); }
.elc-sub { font-size: 12.5px; margin: 4px 0 8px; }
.elc-kv { display: grid; grid-template-columns: 170px 1fr; gap: 3px 8px; font-size: 13px; margin: 0 0 8px; }
.elc-kv dt { color: var(--muted); }
.elc-kv dd { margin: 0; }
.elc-list { font-size: 12.5px; }
.elc-list ul { margin: 2px 0 6px 16px; padding: 0; }
.elc-dec { margin-top: 12px; }
.elc-dec table { margin-top: 4px; }
.elc-compact { background: var(--brand-soft); border-radius: 8px; padding: 8px 10px; margin: 0 0 10px; font-size: 13px; }
.elc-mini { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px; margin: 6px 0; }
.elc-mini-p { background: var(--card); border-radius: 6px; padding: 6px 8px; border-left: 3px solid var(--line); }
.elc-mini-p.ok { border-left-color: var(--ok); }
.elc-mini-p.warn { border-left-color: var(--warn); }
details.els-unc > summary { cursor: pointer; }
@media (max-width: 700px) { .elc-kv { grid-template-columns: 1fr; } }

/* ======================================================================
   Design 2026-10: skarpere typografi, luft, tabeller, tydelige handlinger
   (samlet her, så det grundlæggende udtryk kan justeres ét sted)
   ====================================================================== */
:root { --text: #24242c; --muted: #5f6170; --line: #e4e4ec; --bg: #f5f5f8; --radius: 12px;
  --shadow: 0 1px 2px rgba(20, 16, 40, .05), 0 4px 14px rgba(20, 16, 40, .05); }
body { line-height: 1.5; -webkit-font-smoothing: antialiased; }
h1 { font-size: 24px; letter-spacing: -.2px; }
h2 { font-size: 16.5px; letter-spacing: -.1px; color: #2b2340; }
h3 { font-size: 14px; color: #2b2340; }
.content { padding: 22px 28px 64px; }
.page-head { margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.page-head p { font-size: 13px; margin-top: 3px; }
.card { padding: 18px; }
.card .card-head { margin-bottom: 12px; }
.grid { gap: 16px; }

/* Nøgletal: tallet er det vigtigste */
.kpi { padding: 14px 16px 16px; }
.kpi .label { font-size: 11.5px; letter-spacing: .4px; }
.kpi .value { font-size: 26px; line-height: 1.15; margin: 6px 0 4px; letter-spacing: -.3px; }
.kpi .hint { font-size: 12.5px; line-height: 1.4; }
.kpi .why { top: 12px; bottom: auto; }
.kpi-mini { padding: 10px 12px; }
.kpi-mini .value { font-size: 19px; letter-spacing: -.2px; }

/* Tabeller: rolig overskrift, luft og tydelig rækkemarkering */
table.t th { font-size: 11px; letter-spacing: .4px; color: #6b6b78; background: #f7f7fa; padding: 9px 12px; }
table.t td { padding: 9px 12px; border-bottom: 1px solid #f0f0f5; }
table.t tbody tr:hover td { background: #fbfafd; }
table.t tr.click:hover td { background: #f4f1fa; }
table.t tr.total td { background: #f7f7fa; border-top: 1px solid #d9d6e4; }
table.t td.num strong { color: var(--text); }

/* Knapper, faner og fokus – tydelige handlinger */
.btn { min-height: 32px; padding: 6px 13px; transition: background .15s, border-color .15s, color .15s; }
.btn.small { min-height: 26px; padding: 3px 10px; }
.btn:hover { border-color: #b9b2cc; background: #faf9fd; }
.btn.primary:hover { background: var(--brand-2); border-color: var(--brand-2); }
.btn.accent:hover { background: #156a97; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.tabs { gap: 4px; }
.tabs button { padding: 9px 14px 10px; border-radius: 6px 6px 0 0; }
.tabs button:hover { color: var(--brand); background: #f7f5fb; }
.tabs button.on { font-weight: 700; border-bottom-width: 3px; }

/* Mærker og noter */
.tag { padding: 2px 8px; line-height: 1.45; }
.note { border-radius: 0 8px 8px 0; padding: 9px 13px; line-height: 1.5; }

/* Flådetabellen: faste bredder, så rækkerne ikke bliver høje; lange tekster kortes til to linjer */
.fleet-table td[data-k=prio] { min-width: 250px; max-width: 320px; }
.fleet-table td[data-k=routes] { min-width: 170px; }
.fleet-table td[data-k=plate] { min-width: 175px; }
.prio-why, .rec-line { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.prio-why { margin-top: 3px; font-size: 12px; }
.rec-line { max-width: none; margin-top: 3px; }

/* Sammenligning: søjle for nutidsværdi (grøn = lavest) */
.nbar { height: 6px; background: #eeecf3; border-radius: 3px; margin-top: 5px; min-width: 90px; }
.nbar span { display: block; height: 100%; border-radius: 3px; background: #8a7bb0; }
.nbar.lowest span { background: var(--ok); }

/* Mellemstor skærm (lille bærbar / tablet på langs) */
@media (min-width: 901px) and (max-width: 1180px) {
  .layout { grid-template-columns: 216px 1fr; }
  .content { padding: 18px 20px 56px; }
  .nav a { padding: 8px 10px; }
}
/* Tablet og mindre: menuen bliver én vandret række, der kan rulles */
@media (max-width: 900px) {
  .layout { grid-template-columns: minmax(0, 1fr); }
  .sidebar { position: static; min-width: 0; }
  .focus-kpis, .grid.k4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brand { padding: 10px 14px 6px; display: flex; align-items: center; gap: 10px; border-bottom: 0; }
  .brand .sub { display: none; }
  .nav { flex-wrap: nowrap; overflow-x: auto; padding: 4px 10px 8px; gap: 4px; scrollbar-width: thin; }
  .nav a { white-space: nowrap; margin: 0; padding: 7px 10px; flex: none; }
  .nav .nav-group { display: none; }
  .sidebar .foot { display: flex; align-items: center; gap: 10px; padding: 6px 14px; flex-wrap: wrap; }
  .sidebar .foot button { margin-top: 0; }
  .topbar { position: static; padding: 8px 16px; }
  .content { padding: 16px 16px 48px; }
  .page-head { flex-direction: column; align-items: flex-start; }
  .company-select select { min-width: 0; }
}
.warn-txt { color: var(--warn); }

/* Ugeplan: bilfarve, erstatningsbiler og pladser på basen */
.tag.gul { background: #fff4b8; color: #6b5300; border-color: #f0d75a; }
.tag.hvid { background: #fff; color: #374151; border: 1px solid #c7ccd6; }
.tag.erstat { background: #e3f0fa; color: #1f5f8b; border-color: #b6d6ee; }
.dot.hvid { background: #fff; border: 1px solid #9aa3b2; }
.spot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 6px; margin-top: 8px; }
.spot { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: 5px 7px; border: 1px solid #c7ccd6; border-radius: 6px; background: #f6f7f9; cursor: pointer; font: inherit; font-size: 11px; text-align: left; }
.spot b { font-size: 13px; }
.spot.gul { background: #fff4b8; border-color: #f0d75a; }
.spot.hvid { background: #fff; }
.spot.on { outline: 2px solid #d40511; }
.map-spot { display: inline-block; background: #2b2b33; color: #fff; font-weight: 700; font-size: 11px; padding: 2px 6px; border-radius: 4px; white-space: nowrap; }
.weekplan .day-tabs { margin-bottom: 8px; }
.weekplan td.veh .tag { margin-left: 4px; }

/* Bilpanelet: smallere etiketkolonne, lange tekster brydes, felter holder sig inden for boksen */
.fleet-work #panel { min-width: 0; }
.fleet-work #panel .kv { grid-template-columns: 92px minmax(0, 1fr); gap: 5px 10px; }
.fleet-work #panel .kv dt { min-width: 0; }
.fleet-work #panel .kv dd { min-width: 0; overflow-wrap: anywhere; }
.fleet-work #panel select, .fleet-work #panel input:not([type=checkbox]) { max-width: 100%; box-sizing: border-box; }
.fleet-work #panel .kv dd select { width: 100%; }
.fleet-work #panel small.src { cursor: help; }
/* 3D-forklaring */
.legend3d h3 { margin: 0 0 6px; }
.legend-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 12.5px; line-height: 1.35; }
.legend-list li { display: grid; grid-template-columns: 16px 1fr; gap: 8px; align-items: start; }
.legend-list .sw, .legend3d .sw { display: inline-block; width: 14px; height: 14px; border-radius: 3px; margin-top: 2px; vertical-align: -2px; }
.legend-list li span .sw { margin: 0 3px 0 6px; }
/* Bilfarve-mærker: farvestribe (ikke fyld), så de ikke forveksles med "Daglig" (gul fyld = gul markering i flådeoversigten) */
.tag.gul { background: #fff; color: #374151; border: 1px solid #c7ccd6; border-left: 6px solid #f2cf2a; }
.tag.hvid { background: #fff; color: #374151; border: 1px solid #c7ccd6; border-left: 6px solid #eef0f3; }

/* Easy Lease pkt. 3: plan-tabel og kort */
.el-now-line { background: #eef7f0; border: 1px solid #cfe7d6; border-radius: 8px; padding: 8px 12px; font-size: 13.5px; }
.el-now-line .tag { margin-right: 6px; }
.t.el-plan td { vertical-align: top; }
.t.el-plan td small { line-height: 1.35; }
.el-cards-more { margin-top: 12px; }
.el-cards-more > summary { cursor: pointer; font-weight: 600; color: var(--brand, #443266); padding: 6px 0; }
.els-facts { font-size: 12.5px; margin: 8px 0 0; padding: 6px 8px; background: #f6f7f9; border-radius: 6px; }
.els-facts .els-k { font-weight: 600; margin-right: 4px; }

.el-calc { margin-top: 8px; }
.el-calc > summary { cursor: pointer; font-size: 12.5px; font-weight: 600; }

/* Spørg overblikket */
.assist-form { display: flex; gap: 8px; }
.assist-form input { flex: 1; min-width: 0; font-size: 15px; padding: 9px 12px; }
.assist-ex { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.chip { border: 1px solid #d6d9e0; background: #f6f7f9; border-radius: 999px; padding: 4px 10px; font: inherit; font-size: 12.5px; cursor: pointer; }
.chip:hover { background: #ecebf5; border-color: #c9c3e0; }
.assist-a { margin-top: 12px; }
.assist-q { font-weight: 600; color: var(--muted, #6b7280); font-size: 13px; margin-bottom: 4px; }
.assist-q::before { content: 'Spørgsmål: '; font-weight: 400; }
.assist-kv { grid-template-columns: 150px minmax(0, 1fr); }
.assist-kv dd { overflow-wrap: anywhere; }
@media (max-width: 640px) { .assist-form { flex-direction: column; } .assist-kv { grid-template-columns: 1fr; } }

/* Lastbiler */
.tr-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.chip.on { background: #443266; color: #fff; border-color: #443266; }
.tr-3d { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 12px; padding: 0; overflow: hidden; }
.tr-stage { position: relative; height: 420px; background: linear-gradient(#eef0f6, #dfe3ec); }
.tr-stage canvas { display: block; }
.tr-stage .schematic { position: absolute; top: 8px; left: 10px; font-size: 11px; color: #6b6b78; background: rgba(255,255,255,.8); padding: 2px 8px; border-radius: 10px; }
.tr-stage .legend { position: absolute; left: 10px; bottom: 8px; font-size: 11.5px; background: rgba(255,255,255,.9); padding: 4px 8px; border-radius: 8px; }
.tr-stage .legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin: 0 3px 0 6px; vertical-align: -1px; }
.tr-stage .tip { position: absolute; transform: translate(12px, -28px); background: #24242c; color: #fff; font-size: 12px; padding: 4px 8px; border-radius: 6px; pointer-events: none; white-space: nowrap; }
.tr-side { padding: 14px 14px 14px 0; overflow: auto; max-height: 420px; }
.tr-months { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; margin-top: 8px; }
.tr-m { font-size: 11px; text-align: center; border: 1px solid #e3e3ea; border-radius: 6px; padding: 3px 0; color: #6b6b78; position: relative; }
.tr-m.faktisk { background: #f2f7f3; color: #2b2b33; }
.tr-m.budget { background: #f7f5fb; }
.tr-m b { display: block; font-size: 11px; }
.tr-m .dot { position: absolute; top: 3px; right: 3px; width: 6px; height: 6px; border-radius: 50%; }
.dot.ok { background: #2e7d4f; } .dot.warn { background: #e0a030; } .dot.bad { background: #b3261e; } .dot.neutral { background: #b9bcc6; }
.tr-grid-wrap { max-width: 100%; overflow-x: auto; }
.tr-grid { font-size: 12.5px; }
.tr-grid td, .tr-grid th { white-space: nowrap; padding: 5px 6px; }
.tr-grid .tr-lbl { position: sticky; left: 0; background: #fff; z-index: 1; min-width: 230px; max-width: 320px; white-space: normal; }
.tr-grid .tr-sec td { background: #f6f5fa; font-weight: 700; padding-top: 8px; }
.tr-grid .tr-sec .tr-lbl, .tr-grid .tr-sec td { position: static; }
.tr-grid .tr-tot td { font-weight: 700; border-top: 1px solid #d9d9e2; background: #fbfbfd; }
.tr-grid .tr-tot.net td { background: #f3f1f8; }
.tr-cell { cursor: text; }
.tr-cell:hover { background: #f1eef9; outline: 1px dashed #b7a9d8; }
.tr-locked { color: #4a4a57; background: #f8f8fb; cursor: help; }
.tr-f { color: #8a6fbf; font-size: 9px; margin-left: 2px; }
.tr-in { width: 92px; text-align: right; font: inherit; padding: 2px 4px; border: 1px solid #443266; border-radius: 4px; }
.tr-masked td { background: #fafafa; }
.tr-act { white-space: nowrap; }
.btn-x { border: 0; background: none; cursor: pointer; padding: 2px 4px; opacity: .55; font-size: 13px; }
.btn-x:hover { opacity: 1; }
.tr-mh { display: inline-block; padding: 1px 6px; border-radius: 8px; }
.tr-mh.faktisk { background: #e3f1e7; color: #1f5e39; }
.tr-mh.budget { background: #efebf7; color: #443266; }
.tr-mlist { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 4px; }
.tr-mbtn { display: flex; flex-direction: column; gap: 2px; align-items: flex-start; border: 1px solid #e0dfe8; background: #fff; border-radius: 8px; padding: 6px 10px; font: inherit; font-size: 12.5px; cursor: pointer; min-width: 120px; }
.tr-mbtn.on { border-color: #443266; box-shadow: 0 0 0 2px rgba(68,50,102,.15); }
.tr-mnew input { font: inherit; font-size: 12px; border: 1px solid #e0dfe8; border-radius: 4px; padding: 1px 4px; }
.tr-sett td { padding: 4px 5px; vertical-align: top; }
.tr-sett input.tr-sin, .tr-sett select.tr-sin { font: inherit; font-size: 12.5px; padding: 3px 5px; border: 1px solid #e0dfe8; border-radius: 4px; }
.tr-sett input.num { text-align: right; }
.tr-missing td { background: #fff7f5; }
.tr-recon { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-top: 14px; padding: 12px; background: #f8f7fc; border-radius: 10px; }
.tr-recon > div { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; }
.tr-recon strong { font-size: 15px; }
.tr-recon input { font: inherit; padding: 5px 8px; border: 1px solid #d6d4e2; border-radius: 6px; }
.tr-form { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin-top: 8px; }
@media (max-width: 900px) { .tr-3d { grid-template-columns: 1fr; } .tr-side { padding: 0 14px 14px; max-height: none; } .tr-stage { height: 320px; } }

/* Lastbiler: skøn og udestående */
.tr-grid td.tr-fc { color: #8a86a0; font-style: italic; background: #fbfaff; }
.tr-grid .tr-fcol { background: #f7f5fc; }
.tr-mh.skøn { background: #f4f2f8; color: #8a86a0; font-style: italic; }
.tr-m.skøn { background: #fbfaff; font-style: italic; }
.tr-open { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 13px; }
.tr-open li { display: flex; gap: 8px; align-items: baseline; }
.tr-open .tag { flex: none; }
.ov-truck-row { display: flex; flex-wrap: wrap; gap: 28px; }
.ov-truck-row > div { display: flex; flex-direction: column; gap: 2px; }
.ov-truck-row strong { font-size: 20px; }

/* Lastbiler: rettelser og versioner */
.tr-grid td.tr-chg { position: relative; }
.tr-grid td.tr-chg::after { content: ''; position: absolute; top: 0; right: 0; border-style: solid; border-width: 0 7px 7px 0; border-color: transparent #8a6fbf transparent transparent; }
.tr-chg-sw { display: inline-block; width: 0; height: 0; border-style: solid; border-width: 0 8px 8px 0; border-color: transparent #8a6fbf transparent transparent; vertical-align: 1px; }
.tr-grid td.tr-diff { box-shadow: inset 0 0 0 2px #e0a030; background: #fff8e6; }
.tr-grid tr.tr-added td { background: #f2f8fd; }
.tr-vbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 4px 0 8px; font-size: 12.5px; }
.tr-vbar select { font: inherit; padding: 3px 6px; border: 1px solid #d6d4e2; border-radius: 6px; max-width: 320px; }
.tr-cmpbar { font-size: 12.5px; margin-bottom: 8px; }

/* Lastbiler: vejledning */
.tr-help { max-width: 980px; }
.tr-help h3 { margin: 16px 0 6px; }
.tr-help ol, .tr-help ul { padding-left: 20px; }
.tr-help li { margin: 5px 0; }
.tr-side .tr-pills { margin-bottom: 2px; }

/* Lastbiler: nøgletal som kort */
.tr-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; margin-top: 12px; }
.tr-kpi { position: relative; }
.tr-kpi .label { padding-right: 72px; }
.tr-kpi .label { font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em; color: #6b6b78; font-weight: 600; }
.tr-kpi .value { font-size: 24px; font-weight: 800; margin: 4px 0 2px; }
.tr-kpi .hint { font-size: 12px; color: #6b6b78; }
.tr-kpi-per { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 8px; padding-top: 6px; border-top: 1px dashed #e3e3ea; font-size: 12px; color: #4a4a57; }
.tr-kpi-per b { font-weight: 600; color: #6b6b78; margin-right: 2px; }
/* Samme "Hvordan?"-mønster som nøgletallene i resten af appen */
.tr-why { position: absolute; top: 10px; right: 10px; padding: 2px 8px; border-radius: 10px; border: 1px solid #c9c3e0; background: #f6f4fb; color: var(--accent, #443266); font-weight: 600; font-size: 11px; cursor: pointer; line-height: 1.4; }
.card-head .tr-why { position: static; flex: none; }
.tr-why:hover { background: #443266; color: #fff; }
.tr-gauge { position: relative; height: 8px; background: #efeff4; border-radius: 4px; margin: 8px 0 2px; }
.tr-gauge i { position: absolute; top: 0; bottom: 0; border-radius: 4px; }
.tr-gauge i.ok, .tr-bev-bar i.ok { background: #2e7d4f; } .tr-gauge i.bad, .tr-bev-bar i.bad { background: #b3261e; }
.tr-gauge em { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 2px; background: #2b2b33; }
.tr-bev { display: grid; grid-template-columns: 70px 1fr auto; gap: 6px; align-items: center; font-size: 12px; margin-top: 6px; }
.tr-bev-bar { position: relative; height: 10px; background: #efeff4; border-radius: 5px; }
.tr-bev-bar i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 5px; opacity: .85; }
.tr-bev-bar em { position: absolute; top: -4px; bottom: -4px; width: 2px; background: #2b2b33; }
.tr-bev-v { color: #6b6b78; white-space: nowrap; }
.tr-sw { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; }

/* Lastbiler: budgetteret omsætning og ikke modtaget */
.tr-grid td.tr-revb { background: #f2f8fd; }
/* Ufordelt omsætning for alle vogne: måneder med afregninger er erstattet (tæller ikke med) */
.tr-grid tr.tr-pool td.tr-lbl { font-style: italic; }
.tr-grid td.tr-pool-off { color: #9a9aa6; text-decoration: line-through; background: #f5f5f7; }
.tr-grid tr.tr-info td { font-size: 11.5px; font-style: italic; color: #8a3b14; background: #fff8f3; padding-top: 2px; padding-bottom: 2px; }

.tr-editbox { margin-top: 12px; padding: 12px 14px; border: 1px solid #d9d0f0; background: #faf9fd; border-radius: 10px; }
.tr-editbox h4 { font-size: 12.5px; text-transform: uppercase; letter-spacing: .03em; color: #443266; }

/* Forslag og ønsker: knappen i topbjælken, modalen og siden */
.fb-btn { white-space: nowrap; }
.fb-types { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; }
.fb-type { display: flex; gap: 8px; align-items: flex-start; border: 1px solid var(--line); border-radius: 8px; padding: 7px 9px; cursor: pointer; font-weight: 400 !important; color: var(--text) !important; }
.fb-type:has(input:checked) { border-color: var(--brand); background: #f4f1fa; }
.fb-type input { margin-top: 3px; }
.fb-type span { display: flex; flex-direction: column; gap: 1px; }
.fb-type small { color: var(--muted); font-size: 11.5px; }
#fb-form input[type=text], #fb-form input:not([type]), #fb-form textarea, #fb-form select { width: 100%; box-sizing: border-box; max-width: 100%; }
#fb-form textarea { resize: vertical; }
.fb-ctx { font-size: 12px; margin: 6px 0 0; overflow-wrap: anywhere; }
.fb-list { display: flex; flex-direction: column; gap: 10px; }
.fb-item { display: flex; gap: 14px; align-items: flex-start; }
.fb-main { flex: 1; min-width: 0; }
.fb-head { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.fb-meta { font-size: 12px; margin: 4px 0; overflow-wrap: anywhere; }
.fb-text { white-space: pre-wrap; margin: 6px 0; overflow-wrap: anywhere; }
.fb-note { background: #f7f7fa; border-left: 3px solid var(--accent); padding: 6px 10px; border-radius: 0 6px 6px 0; font-size: 13px; margin: 6px 0; }
.fb-note.ok { border-left-color: var(--ok); background: var(--ok-soft); }
.fb-vote { display: flex; flex-direction: column; align-items: center; min-width: 52px; gap: 2px; }
.fb-vote small { color: var(--muted); font-size: 11px; }
.fb-comments { list-style: none; padding: 0; margin: 6px 0; display: flex; flex-direction: column; gap: 6px; }
.fb-comments li { background: #fafafc; border: 1px solid var(--line); border-radius: 6px; padding: 6px 9px; font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.fb-add { margin-top: 6px; }
.fb-add summary { cursor: pointer; font-size: 12.5px; color: var(--accent); }
.fb-add form, form.fb-add { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; margin-top: 6px; }
.fb-add textarea { width: 100%; box-sizing: border-box; }
.fb-news { list-style: none; padding: 0; margin: 0; }
.fb-news li { display: grid; grid-template-columns: 96px 1fr; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.fb-news li:last-child { border-bottom: 0; }
.fb-date { color: var(--muted); font-size: 12.5px; font-weight: 600; }
.fb-brief { width: 100%; box-sizing: border-box; font-family: ui-monospace, Consolas, monospace; font-size: 12px; }
@media (max-width: 640px) {
  .fb-item { flex-direction: column; gap: 8px; }
  .fb-vote { flex-direction: row; min-width: 0; }
  .fb-news li { grid-template-columns: 1fr; gap: 2px; }
  .fb-btn { padding: 4px 8px; }
}

/* Gemning i Lastbiler: statuslinje, "gemmer …", grønt ✓ efter gemning og rød ramme ved fejl */
.tr-savebar { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; justify-content: space-between; background: #f3f1f8; border: 1px solid #e0dbee; border-radius: 8px; padding: 7px 12px; margin: 0 0 10px; font-size: 12.5px; color: #3b3450; }
.tr-st { font-weight: 600; white-space: normal; }
.tr-st.ok { color: var(--ok); }
.tr-st.busy { color: #6b5a12; }
.tr-st.err { color: var(--bad); }
td.tr-saving, input.tr-saving { position: relative; background: #fff8e1 !important; }
td.tr-saving::after, td:has(> input.tr-saving)::after { content: 'gemmer …'; position: absolute; right: 2px; bottom: -1px; font-size: 9.5px; color: #6b5a12; pointer-events: none; }
td.tr-ok, input.tr-ok { position: relative; animation: tr-ok 2.5s ease-out; }
td.tr-ok::after { content: '✓'; position: absolute; top: 0; right: 3px; font-size: 11px; font-weight: 700; color: var(--ok); animation: tr-okmark 2.5s ease-out forwards; }
@keyframes tr-ok { 0%, 40% { background: var(--ok-soft); box-shadow: inset 0 0 0 2px var(--ok); } 100% { background: transparent; box-shadow: none; } }
@keyframes tr-okmark { 0%, 70% { opacity: 1; } 100% { opacity: 0; } }
input.tr-err, .tr-sett input.tr-sin.tr-err, .tr-sett select.tr-sin.tr-err { border: 2px solid var(--bad) !important; background: var(--bad-soft); }
.note.demo-edit { margin: 0 0 10px; }

/* ---------- UX-gennemgang 15.10.2026 ---------- */
/* Én måde at vise manglende værdier: "Ikke oplyst" (grå kursiv). "Ikke tilgængeligt" kun for offentlige data, der ikke er hentet. */
.missing { color: var(--muted); font-style: italic; font-weight: 400; font-size: .92em; }
/* Statusmærker for frister: rød = overskredet, gul = inden for 14 dage, ellers neutral (ejerens beslutning 15.10.2026) */
.chip { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 700; white-space: nowrap; border: 1px solid transparent; }
.chip.red { background: var(--bad-soft); color: var(--bad); border-color: #f0c2bd; }
.chip.yellow { background: #fff4c7; color: #6b5300; border-color: #f0d75a; }
.chip.neutral { background: #eef0f3; color: #4b5563; border-color: #dfe3e8; }
.chip.green { background: var(--ok-soft); color: var(--ok); border-color: #c4e3d1; }
/* Nøgletal: "Hvordan?" og "Se oversigt →" står nederst i kortet – de dækker aldrig overskriften */
.kpi { display: flex; flex-direction: column; }
.kpi .why { position: static; order: 10; margin-top: auto; padding-top: 8px; font-size: 11.5px; opacity: 1; align-self: flex-start; }
/* Forklaringen øverst på siden: foldet sammen efter 3 besøg – kan åbnes igen */
.page-intro.collapsed { background: none; padding: 0; margin: 0 0 8px; justify-content: flex-end; }
.page-intro .pi-open { display: inline-flex; align-items: center; gap: 6px; background: var(--accent-soft); color: var(--accent); border: 0; border-radius: 999px; padding: 3px 10px 3px 4px; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
/* "I dag" på Overblik */
.today-card { margin-bottom: 14px; }
.today-card .card-head h2 { display: flex; align-items: center; gap: 8px; }
.today-list { list-style: none; margin: 0; padding: 0; }
.today-row { display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; gap: 6px 14px; align-items: center; padding: 9px 0; border-top: 1px solid var(--line); }
.today-row:first-child { border-top: 0; }
.today-row .t-when { font-size: 12.5px; color: var(--muted); display: flex; flex-direction: column; gap: 3px; align-items: flex-start; }
.today-row .t-what strong { display: block; }
.today-row .t-what small { display: block; color: var(--muted); }
.today-empty { display: flex; align-items: center; gap: 10px; font-weight: 600; color: var(--ok); padding: 6px 0; }
.today-empty .ok-dot { width: 26px; height: 26px; border-radius: 50%; background: var(--ok); color: #fff; display: grid; place-items: center; font-size: 15px; }
@media (max-width: 767px) { .today-row { grid-template-columns: minmax(0, 1fr); } .today-row .t-when { flex-direction: row; flex-wrap: wrap; align-items: center; } .today-row .btn { justify-self: start; } }
/* Søgning i topbjælken */
.top-search { flex: 0 1 300px; min-width: 180px; }
.srch { position: relative; }
.srch-in { width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 8px; padding: 6px 30px 6px 10px; font: inherit; font-size: 13px; background: #fafafc; }
.srch-in:focus { outline: 2px solid var(--accent); outline-offset: 0; background: #fff; }
.srch-kbd { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); font-size: 11px; color: var(--muted); border: 1px solid var(--line); border-radius: 4px; padding: 0 5px; background: #fff; pointer-events: none; }
.srch-res { position: absolute; left: 0; right: 0; top: calc(100% + 4px); background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 24px rgba(20,16,40,.14); z-index: 60; max-height: 60vh; overflow-y: auto; min-width: 260px; }
.srch-item { display: block; padding: 7px 10px; color: var(--text); border-bottom: 1px solid #f0f0f4; }
.srch-item:hover, .srch-item.on { background: var(--brand-soft); text-decoration: none; }
.srch-none { padding: 10px; font-size: 12.5px; }
.srch-sheet { position: fixed; left: 0; right: 0; top: 0; z-index: 80; background: #fff; padding: 10px 12px; display: flex; gap: 8px; align-items: flex-start; box-shadow: 0 6px 20px rgba(0,0,0,.18); }
.srch-sheet-in { flex: 1; min-width: 0; }
.srch-sheet .srch-in { font-size: 16px; padding: 9px 12px; }
.srch-sheet .srch-kbd { display: none; }
/* 3D: rullehjulet styrer først siden – klik for at styre 3D */
.fleet3d .stage .lock3d { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(36,30,56,.18); border: 0; cursor: pointer; font: inherit; z-index: 3; }
.fleet3d .stage .lock3d span { background: rgba(36,30,56,.86); color: #fff; padding: 8px 14px; border-radius: 999px; font-weight: 700; font-size: 13px; }
/* Én bilvisning med faner (Status · Økonomi · Aftale og historik) */
.vv-tabs { position: sticky; top: 0; z-index: 1; background: var(--bg); }
.vv-tabs .tabs { margin-bottom: 0; }
.vv-price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.vv-price .value { font-size: 26px; font-weight: 800; color: var(--brand); font-variant-numeric: tabular-nums; }
.vv-section { display: grid; gap: 14px; }
/* Fanernes forklaring under Beslutninger og tilbud: foldet sammen som "Om fanen" (højst én blå note over indholdet) */
.dec-guide { margin: 0 0 10px; }
.dec-guide > summary { display: inline-flex; align-items: center; gap: 6px; background: var(--accent-soft); color: var(--accent); border-radius: 999px; padding: 3px 10px; font-size: 12px; font-weight: 600; cursor: pointer; list-style: none; }
.dec-guide > summary::-webkit-details-marker { display: none; }
.dec-guide[open] > summary { margin-bottom: 6px; }
.price-cell small { display: block; }
/* Flåde og Frister som kort på mobil */
.m-cards { display: none; }
.m-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px; display: grid; gap: 4px; box-shadow: var(--shadow); cursor: pointer; }
.m-card + .m-card { margin-top: 8px; }
.m-card .m-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.m-card .m-kv { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 2px 10px; font-size: 13px; margin: 0; }
.m-card .m-kv dt { color: var(--muted); }
.m-card .m-kv dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.m-card details summary { cursor: pointer; color: var(--accent); font-weight: 600; font-size: 12.5px; }
/* Frister grupperet */
.fr-group { margin-top: 14px; }
.fr-group > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; padding: 4px 0; }
.fr-group > summary::-webkit-details-marker { display: none; }
.fr-group > summary::before { content: '\25B8'; color: var(--muted); transition: transform .15s; }
.fr-group[open] > summary::before { transform: rotate(90deg); }
.fr-count { color: var(--muted); font-weight: 600; font-size: 12.5px; }
.fr-row td.fr-when { width: 150px; }
.fr-row td.fr-when .chip { margin-top: 3px; }

/* Mobil: kompakt topbjælke, menu som skuffe og ingen vandret rulning */
.mbar, .sheet-close, .sheet-backdrop { display: none; }
@media (max-width: 767px) {
  html, body { overflow-x: hidden; }
  .layout { display: block; }
  .mbar { display: flex; align-items: center; gap: 8px; position: sticky; top: 0; z-index: 40; background: var(--brand); color: #fff; padding: 6px 8px; min-height: 48px; }
  .mbar-title { flex: 1; min-width: 0; font-weight: 700; font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mbar-btn { width: 40px; height: 40px; border: 0; background: rgba(255,255,255,.12); color: #fff; border-radius: 8px; display: grid; place-items: center; cursor: pointer; flex: none; }
  .burger, .burger::before, .burger::after { display: block; width: 18px; height: 2px; background: #fff; border-radius: 2px; }
  .burger { position: relative; }
  .burger::before, .burger::after { content: ''; position: absolute; left: 0; }
  .burger::before { top: -6px; }
  .burger::after { top: 6px; }
  .search-ico { width: 14px; height: 14px; border: 2px solid #fff; border-radius: 50%; position: relative; display: block; margin: -3px 0 0 -3px; }
  .search-ico::after { content: ''; position: absolute; width: 7px; height: 2px; background: #fff; right: -6px; bottom: -3px; transform: rotate(45deg); border-radius: 2px; }
  #mbarEnv .tag { font-size: 10.5px; }
  #banner { display: none; }
  .sidebar { position: fixed; top: 0; left: 0; bottom: 0; width: min(88vw, 340px); height: 100vh; z-index: 70; transform: translateX(-102%); transition: transform .2s ease; overflow-y: auto; display: flex; flex-direction: column; visibility: hidden; }
  body.menu-open .sidebar { transform: none; visibility: visible; }
  .sheet-backdrop:not([hidden]) { display: block; position: fixed; inset: 0; background: rgba(20,16,40,.45); z-index: 65; }
  .sidebar .brand { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid rgba(255,255,255,.12); }
  .sidebar .brand .sub { display: none; }
  .sheet-close { display: grid; place-items: center; width: 36px; height: 36px; border: 0; background: rgba(255,255,255,.12); color: #fff; font-size: 22px; border-radius: 8px; cursor: pointer; }
  .sheet-tools .topbar { position: static; display: flex; flex-direction: column; align-items: stretch; gap: 8px; background: rgba(255,255,255,.96); border: 0; border-radius: 10px; margin: 10px 12px 4px; padding: 10px 12px; }
  .sheet-tools .topbar .spacer, .sheet-tools .top-search { display: none; }
  .sheet-tools .company-select { flex-direction: column; align-items: stretch; gap: 4px; }
  .sheet-tools .company-select select { width: 100%; min-width: 0; }
  .sheet-tools .env-switch { align-self: flex-start; }
  .sheet-tools .fb-btn { align-self: flex-start; }
  .nav { display: block; flex-wrap: nowrap; overflow: visible; padding: 8px; }
  .nav a { white-space: normal; margin: 0 0 2px; padding: 10px 12px; }
  .nav .nav-group { display: block; }
  .sidebar .foot { display: block; padding: 10px 14px 18px; }
  .content { padding: 12px 16px 48px; }
  .page-head h1 { font-size: 20px; }
  .grid.c2, .grid.c3, .grid[style*="grid-template-columns"] { grid-template-columns: minmax(0, 1fr) !important; }
  /* Tabeller uden egen rulleboks ruller inden for kortet – aldrig hele siden */
  #content table.t, .drawer table.t { display: block; max-width: 100%; overflow-x: auto; }
  .grid.k4, .focus-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi .value { font-size: 21px; overflow-wrap: anywhere; }
  .card { padding: 12px; }
  .tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
  .tabs button { flex: none; white-space: nowrap; }
  .filters { flex-wrap: wrap; }
  .filters .field { flex: 1 1 140px; min-width: 0; }
  .filters .field input, .filters .field select { width: 100%; max-width: 100%; box-sizing: border-box; }
  .m-cards { display: block; }
  .m-hide { display: none !important; }
  .drawer { width: 100vw; }
  .drawer .dhead { padding: 10px 12px; }
  .drawer .dbody { padding: 12px 12px 40px; }
  .kv { grid-template-columns: minmax(90px, 38%) minmax(0, 1fr) !important; }
  .kv dd { min-width: 0; overflow-wrap: anywhere; }
  .fleet3d .stage { height: 380px; }
  .page-intro .pi-text { flex-basis: 100%; }
  .btn-row { max-width: 100%; min-width: 0; }
  .btn-row > .tabs { flex: 1 1 100%; min-width: 0; max-width: 100%; }
  .card-head > * { min-width: 0; max-width: 100%; }
}

/* ---------- Møder (Beslutninger og tilbud → Møder) ---------- */
.tr-st.bad { color: var(--bad); }
.mt-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.mt-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 12px; }
.mt-card { display: block; color: inherit; text-decoration: none !important; border-left: 4px solid var(--accent); }
.mt-card:hover { box-shadow: 0 2px 10px rgba(20, 16, 40, .1); }
.mt-card.afholdt { border-left-color: var(--ok); }
.mt-card.arkiveret { border-left-color: #c3c6cf; opacity: .85; }
.mt-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.mt-card-top strong, .mt-card-top h2 { min-width: 0; overflow-wrap: anywhere; }
.mt-progress { height: 8px; background: #eef0f4; border-radius: 4px; overflow: hidden; margin: 8px 0 3px; flex: 1 1 160px; }
.mt-progress i { display: block; height: 100%; background: var(--ok); transition: width .25s; }
.mt-progress-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 12.5px; }
.mt-progress-row .mt-progress { margin: 0; max-width: 360px; }
.mt-header { margin-bottom: 12px; }
.mt-facts { display: flex; flex-wrap: wrap; gap: 4px 22px; font-size: 13px; margin: 6px 0; }
.mt-facts .mt-lbl { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); }
.mt-meta .mt-sep::before { content: ' · '; color: var(--muted); }
.mt-meta .mt-who:empty + .mt-sep::before { content: ''; }
.mt-notes { white-space: pre-wrap; background: #fafafc; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; font-size: 13px; margin: 6px 0 10px; overflow-wrap: anywhere; }
.mt-filter { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; }
.mt-section { margin-bottom: 12px; }
.mt-sec-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.mt-item { display: flex; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line); }
.mt-item:first-of-type { border-top: 0; }
.mt-only-open .mt-item.done { display: none; }
.mt-check { flex: none; padding-top: 1px; cursor: pointer; }
.mt-check input { width: 20px; height: 20px; margin: 0; accent-color: var(--ok); cursor: pointer; }
.mt-box { display: none; }
.mt-body { flex: 1; min-width: 0; }
.mt-text { font-size: 13.5px; overflow-wrap: anywhere; }
.mt-item.done .mt-text { color: var(--muted); }
.mt-live { background: var(--accent-soft); border-radius: 4px; padding: 0 3px; font-weight: 600; color: #134a68; }
.mt-body textarea { display: block; width: 100%; margin-top: 6px; font: inherit; font-size: 13px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 6px; resize: vertical; min-height: 34px; background: #fff; }
.mt-body textarea:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 0 2px var(--accent-soft); }
.mt-body textarea.tr-saving { background: #fff8e1; }
.mt-body textarea.tr-err { border: 2px solid var(--bad); background: var(--bad-soft); }
.mt-item.tr-saving { background: #fffbea; }
.mt-item.tr-ok, .mt-body textarea.tr-ok { animation: tr-ok 2.5s ease-out; }
.mt-item.tr-err { box-shadow: inset 3px 0 0 var(--bad); }
.mt-meta { margin-top: 3px; line-height: 1.4; overflow-wrap: anywhere; }
.mt-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.mt-act-sep { flex: 1 0 0; min-width: 4px; }
.mt-hint { margin-top: 8px; font-size: 12.5px; }
.mt-hint code { background: #f1f1f6; padding: 0 3px; border-radius: 3px; }
.mt-print-answer, .mt-lines, .mt-printonly { display: none; }
@media (max-width: 767px) {
  .mt-item { gap: 8px; }
  .mt-actions .btn { padding: 6px 10px; }
  .mt-act-sep { display: none; }
}
@media print {
  .no-print, .subnav, .dec-guide, .page-intro, #updatebar, .mbar, .toast { display: none !important; }
  .mt-printonly { display: block; }
  .mt-card, .mt-section, .mt-header { box-shadow: none; border: 0; padding: 0; margin: 0 0 10px; }
  .mt-section { break-inside: auto; }
  .mt-sec-head { border-bottom: 1.5px solid #000; padding-bottom: 2px; margin: 8px 0 4px; }
  .mt-item { break-inside: avoid; padding: 6px 0 2px; border-top: 1px solid #bbb; }
  .mt-only-open .mt-item.done { display: flex; }
  .mt-check input { display: none; }
  .mt-box { display: inline-block; width: 14px; height: 14px; border: 1.5px solid #000; border-radius: 2px; margin-top: 2px; position: relative; }
  .mt-item.done .mt-box::after { content: '✓'; position: absolute; top: -5px; left: 1px; font-size: 14px; font-weight: 700; }
  .mt-item.done .mt-text { color: #000; }
  .mt-live { background: none; padding: 0; color: #000; }
  .mt-body textarea { display: none; }
  .mt-print-answer:not(:empty) { display: block; white-space: pre-wrap; font-style: italic; margin-top: 3px; font-size: 12px; }
  .mt-lines { display: block; height: 34px; background: repeating-linear-gradient(transparent 0 16px, #ccc 16px 17px); margin-top: 2px; }
  .mt-meta small { color: #444; }
  .mt-progress { display: none; }
}

/* Beslutningsoversigt (decision-board.js): én række pr. beslutning – spørgsmål, frist, anbefaling, mangler, grundlag */
.dec-board .dec-row { border: 1px solid var(--line); border-left: 4px solid var(--warn); border-radius: 8px; padding: 10px 12px; margin-bottom: 10px; background: #fff; }
.dec-board .dec-row.ready { border-left-color: var(--ok); }
.dec-top { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.dec-q { font-size: 14.5px; flex: 1 1 320px; min-width: 0; }
.dec-when { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; white-space: nowrap; }
.dec-rec { margin-top: 6px; font-size: 13.5px; }
.dec-label { display: inline-block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--muted); margin-right: 4px; }
.dec-missing { margin-top: 6px; font-size: 13px; }
.dec-missing ul { margin: 2px 0 0; padding-left: 18px; }
.dec-foot { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-top: 8px; flex-wrap: wrap; }
.dec-basis { font-size: 12.5px; flex: 1 1 300px; min-width: 0; }
.dec-basis summary { cursor: pointer; color: var(--accent); }
.dec-basis ul { margin: 6px 0 0; padding-left: 0; list-style: none; display: grid; gap: 4px; }
.pending-entry { margin-top: 4px; }
@media (max-width: 767px) { .dec-when { white-space: normal; } .dec-foot .btn { align-self: flex-start; } }

/* Tidsregistrering (pages/time.js): afregnet/ikke afregnet som bjælke og prik */
.tbar { display: flex; height: 14px; border-radius: 7px; overflow: hidden; background: var(--line); }
.tbar.small { height: 8px; }
.tbar-ok { background: var(--ok); }
.tbar-open { background: #f0c36a; }
.tdot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; vertical-align: -1px; }
.tdot.ok { background: var(--ok); }
.tdot.open { background: #f0c36a; }
.tshare { margin-bottom: 10px; }
.tshare-h { display: flex; justify-content: space-between; gap: 8px; font-size: 13.5px; margin-bottom: 3px; }
.tshare { padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.tshare:last-child { border-bottom: 0; }
.tshare-items { list-style: none; margin: 4px 0 0; padding: 0; font-size: 12.5px; }
.tshare-items li { display: flex; justify-content: space-between; gap: 10px; padding: 2px 0 2px 10px; border-left: 2px solid var(--line); }
.tshare-items li span:last-child { white-space: nowrap; color: var(--muted); }
.treg tr.tday-first td { border-top: 2px solid var(--line); }
/* Tidsregistrering: filter, markering til afregning og grundlag for satsen */
.tfilter { padding: 10px 14px; }
.tfilter-row { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; }
.tfilter-row label { display: grid; gap: 2px; font-size: 12.5px; color: var(--muted); }
.tfilter-note { margin: 8px 0 0; font-size: 12.5px; padding: 6px 10px; border-radius: 6px; background: #fff7e0; border: 1px solid #f0d78a; color: #5c4600; }
.tsel { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 10px; margin-bottom: 8px; border-radius: 8px; border: 1px dashed var(--line); font-size: 13px; color: var(--muted); }
.tsel.on { border-style: solid; border-color: var(--accent); background: var(--bg-soft, #f4f6fb); color: inherit; position: sticky; top: 0; z-index: 2; }
.treg tr.tsel-row td { background: var(--bg-soft, #f4f6fb); }
.treg input[type=checkbox] { width: 18px; height: 18px; }
.tstatus { font: inherit; font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 12px; border: 1px solid; cursor: pointer; white-space: nowrap; }
.tstatus span { font-size: 10px; opacity: .7; }
.tstatus.open { background: #fff4d6; color: #7a5200; border-color: #f0c36a; }
.tstatus.ok { background: #e3f5ea; color: #1d6b3a; border-color: #9fd7b3; }
.tstatus:hover, .tstatus:focus-visible { filter: brightness(.95); outline: 2px solid var(--accent); outline-offset: 1px; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .tstatus.open { background: #3a2f12; color: #f3d48a; border-color: #6b5a1c; } :root:not([data-theme="light"]) .tstatus.ok { background: #16321f; color: #9fe0b5; border-color: #2f6b45; } }
:root[data-theme="dark"] .tstatus.open { background: #3a2f12; color: #f3d48a; border-color: #6b5a1c; }
:root[data-theme="dark"] .tstatus.ok { background: #16321f; color: #9fe0b5; border-color: #2f6b45; }
.tallin { margin: 8px 0 0; font-size: 12.5px; padding: 6px 10px; border-left: 3px solid var(--accent); background: var(--bg-soft, #f4f6fb); border-radius: 0 6px 6px 0; }
.trange-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.trange-col { display: grid; gap: 5px; align-content: start; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; }
.trange-col.cur { border-color: #d58b00; box-shadow: inset 0 0 0 1px #d58b00; }
.trange-rate { font-size: 13px; font-weight: 600; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.trange-bar { height: 10px; border-radius: 5px; background: var(--line); overflow: hidden; }
.trange-bar span { display: block; height: 100%; background: var(--accent); border-radius: 5px; }
.trange-amt { font-size: 20px; font-weight: 700; }
@media screen and (max-width: 700px) { .trange-grid { grid-template-columns: 1fr; } }
.tpayout { border-left: 4px solid var(--ok); }
.tpayout-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px 18px; align-items: start; }
.tpayout-row .label { font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 600; margin-bottom: 2px; }
.tpayout-row strong { font-size: 16px; }
.radio-row label, label.check { display: inline-flex; gap: 6px; align-items: center; font-size: 13.5px; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .tfilter-note { background: #3a3110; border-color: #6b5a1c; color: #f3e3a6; } }
:root[data-theme="dark"] .tfilter-note { background: #3a3110; border-color: #6b5a1c; color: #f3e3a6; }
.treg td[rowspan] { vertical-align: top; white-space: nowrap; }

/* Scenarier: forskel mod den anbefalede plan som bjælke (rød = dyrere, grøn = billigere) og "Hvorfor?"-panelet */
.dbar { position: relative; height: 6px; margin-top: 4px; background: var(--line); border-radius: 3px; overflow: hidden; }
.dbar span { position: absolute; top: 0; bottom: 0; }
.dbar span.more { left: 50%; background: var(--bad); }
.dbar span.less { right: 50%; background: var(--ok); }
.dbar.full span.more { left: 50%; }
.elq-why { border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; background: #fbfaff; }
.elq-how ul { padding-left: 18px; }
tr.elq-plan td { background: var(--brand-soft); }

/* Billeder af bilerne (photos.js): galleri i bilvisningen og miniature i Flåde-tabellen */
.vphotos .card-head { margin-bottom: 8px; }
.vp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 8px; }
.vp-item { padding: 0; border: 1px solid var(--line); border-radius: 8px; background: var(--card, #fff); overflow: hidden; cursor: pointer; display: grid; text-align: left; }
.vp-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.vp-item span { font-size: 11.5px; color: var(--muted); padding: 3px 6px; }
.vp-item:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.vp-progress { font-size: 12.5px; color: var(--muted); margin-top: 6px; }
.vp-big img { width: 100%; max-height: 70vh; object-fit: contain; border-radius: 8px; background: #000; }
.vphotos .card-head { flex-wrap: wrap; gap: 8px; }
.vp-item span { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.vp-cat { font-style: normal; font-size: 10.5px; background: var(--bg-soft, #f1f3f6); border-radius: 4px; padding: 0 4px; color: var(--ink, #374151); }
.vp-miss { font-size: 12.5px; margin: 8px 0 0; }
.vp-big { position: relative; }
.vp-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 1; width: 40px; height: 56px; border: 0; border-radius: 8px; background: rgba(0, 0, 0, .45); color: #fff; font-size: 30px; line-height: 1; cursor: pointer; }
.vp-nav.prev { left: 6px; } .vp-nav.next { right: 6px; }
.vp-nav:hover, .vp-nav:focus-visible { background: rgba(0, 0, 0, .7); }
.vp-meta { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; margin-top: 10px; font-size: 13px; }
.vp-meta label { display: grid; gap: 2px; }
.vp-meta input { width: 100%; min-width: 180px; }
/* Easy Lease → 3. Bilerne: "Bilerne i billeder" */
.el-photo-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.el-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin-bottom: 16px; }
.el-photo { position: relative; display: grid; grid-template-rows: auto 1fr; padding: 0; text-align: left; border: 1px solid var(--line); border-radius: 10px; background: var(--card, #fff); overflow: hidden; cursor: pointer; color: inherit; font: inherit; }
.el-photo:hover { border-color: var(--accent); box-shadow: 0 2px 8px rgba(0, 0, 0, .08); }
.el-photo:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.el-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.el-photo-n { position: absolute; top: 6px; right: 6px; font-size: 11px; background: rgba(0, 0, 0, .6); color: #fff; border-radius: 10px; padding: 1px 7px; }
.el-photo-none { aspect-ratio: 4 / 3; display: grid; place-content: center; text-align: center; color: var(--muted); background: var(--bg-soft, #f1f3f6); font-size: 12.5px; }
.el-photo-body { display: grid; gap: 4px; padding: 8px 10px 10px; font-size: 13px; justify-items: start; }
.el-photo-body small { font-size: 11.5px; }
.el-photo-miss { color: var(--warn-ink, #8a5a00); }
.vthumb { float: left; width: 46px; height: 34px; object-fit: cover; border-radius: 4px; margin: 2px 8px 0 0; border: 1px solid var(--line); }

/* ---------- UNIQLast (pages/uniqlast.js) ---------- */
.ul-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin: 12px 0 14px; }
.ul-tile { display: flex; flex-direction: column; gap: 4px; background: var(--card); border: 1px solid var(--line); border-left: 5px solid var(--line); border-radius: var(--radius); padding: 10px 12px; text-decoration: none; color: var(--text); cursor: pointer; }
.ul-tile:hover { border-color: var(--brand-2); }
.ul-tile.ok { border-left-color: var(--ok); } .ul-tile.warn { border-left-color: #e0a100; } .ul-tile.bad { border-left-color: var(--bad); } .ul-tile.info { border-left-color: var(--accent); }
.ul-tile .lbl { font-size: 11.5px; color: var(--muted); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.ul-tile .val { font-size: 20px; font-weight: 800; line-height: 1.15; }
.ul-tile .sub { font-size: 12px; color: var(--muted); }
@media (max-width: 767px) {
  .ul-strip { grid-template-columns: 1fr 1fr; gap: 8px; }
  .ul-tile { padding: 8px 10px; }
  .ul-tile .val { font-size: 16px; }
  .ul-tile .sub { font-size: 11px; }
}
.ul-bar { display: flex; height: 10px; border-radius: 6px; overflow: hidden; background: #ececf2; }
.ul-bar i { display: block; height: 100%; }
.ul-bar .k { background: var(--ok); } .ul-bar .g { background: #e0a100; }
.ul-mini { height: 6px; width: 120px; display: inline-flex; vertical-align: middle; margin-right: 6px; }
.ul-legend { display: flex; gap: 14px; font-size: 12px; color: var(--muted); margin-top: 6px; flex-wrap: wrap; }
.ul-legend b { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 4px; vertical-align: -1px; }
.ul-state { display: inline-flex; align-items: center; gap: 5px; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; border: 1px solid transparent; }
.ul-state.klar { background: var(--ok-soft); color: var(--ok); } .ul-state.i_gang { background: #fff4c7; color: #6b5300; } .ul-state.mangler { background: #eef0f3; color: #4b5563; }
select.ul-state { cursor: pointer; font-family: inherit; }
.ul-phase { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; }
.ul-phase .no { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--brand-soft); color: var(--brand); font-weight: 800; }
.ul-phase.done .no { background: var(--ok); color: #fff; }
.ul-item { display: grid; grid-template-columns: 120px 1fr 150px 150px; gap: 10px 14px; padding: 12px 0; border-top: 1px solid var(--line); align-items: start; }
.ul-item:first-of-type { border-top: 0; }
.ul-item .txt { font-weight: 600; }
.ul-item .help { font-size: 12px; color: var(--muted); margin-top: 2px; }
.ul-item .miss { font-size: 12px; color: var(--bad); margin-top: 3px; }
.ul-item .meta { font-size: 11.5px; color: var(--muted); margin-top: 4px; }
.ul-item input[type=text], .ul-item input[type=date] { width: 100%; }
.ul-item.klar .txt { color: var(--muted); }
.ul-plan-item { padding: 6px 8px; border: 1px solid var(--line); border-left: 3px solid var(--brand); border-radius: 6px; margin: 0 0 6px; font-size: 12.5px; background: #fff; }
.ul-plan-item.warn { border-left-color: #e0a100; }
.ul-plan-item .miss { font-size: 11.5px; color: var(--bad); margin-top: 3px; }
.ul-trucks { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 12px; margin-bottom: 12px; }
.ul-truck { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.ul-truck-h { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; }
.ul-truck-ic { font-size: 22px; width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: var(--brand-soft); }
.ul-truck dl { margin: 0; display: grid; gap: 4px; font-size: 12.5px; }
.ul-truck dl div { display: flex; justify-content: space-between; gap: 10px; border-top: 1px solid var(--line); padding-top: 4px; }
.ul-truck dt { color: var(--muted); }
.ul-truck dd { margin: 0; text-align: right; }
.ul-red { color: var(--bad); font-weight: 700; }
.ul-yellow { color: var(--warn); font-weight: 700; }
.ul-hbar { height: 6px; border-radius: 3px; background: #ececf2; overflow: hidden; margin-top: 4px; }
.ul-hbar i { display: block; height: 100%; background: var(--ok); }
.ul-hbar.warn i { background: #e0a100; }
.ul-hbar.bad i { background: var(--bad); }
.ul-hbar-lbl { font-size: 11px; color: var(--muted); margin-top: 2px; }
.ul-rules { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 10px; }
.ul-rule { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; font-size: 12.5px; }
.ul-rule p { margin: 4px 0; }
.ul-rule .us { background: var(--brand-soft); border-radius: 6px; padding: 4px 6px; }
.ul-rule-h { display: flex; gap: 6px; align-items: center; font-size: 13.5px; }
.ul-rule a { font-size: 11px; }
.ul-checks { margin-top: 12px; padding: 10px 12px; border: 1px solid #f1d9a8; background: var(--warn-soft); border-radius: 8px; display: grid; gap: 6px; }
.ul-checks label { display: flex; gap: 6px; align-items: flex-start; font-size: 13px; cursor: pointer; }
/* UNIQLast – Bookinger: arbejdsgang, kort og forløb */
.ulb-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 8px; align-items: stretch; margin: 4px 0 10px; }
.ulb-arrow { align-self: center; color: var(--muted); font-size: 18px; }
.ulb-step { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto auto; column-gap: 10px; text-align: left; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; cursor: pointer; font: inherit; color: inherit; transition: border-color .15s, box-shadow .15s; }
.ulb-step:hover { border-color: #c9c3e0; }
.ulb-step.on { border-color: var(--brand); box-shadow: 0 0 0 2px var(--brand-soft); }
.ulb-step-n { grid-row: 1 / 4; font-size: 22px; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: #f3f2f7; align-self: center; }
.ulb-step.has .ulb-step-n { background: var(--warn-soft); }
.ulb-step-c { font-size: 22px; font-weight: 800; line-height: 1; }
.ulb-step-l { font-weight: 700; font-size: 13px; }
.ulb-step-t { font-size: 11.5px; color: var(--muted); }
.ulb-filters { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.ulb-list { display: grid; gap: 8px; margin-bottom: 18px; }
.ulb-card { display: grid; grid-template-columns: 64px 1fr auto; gap: 12px; align-items: center; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.ulb-card.s-ny { border-left-color: #e0a100; }
.ulb-card.s-bekraeftet { border-left-color: #3b6fd8; }
.ulb-card.s-betalt { border-left-color: var(--ok); }
.ulb-card.s-leveret { border-left-color: #8f8b99; }
.ulb-card.s-afvist, .ulb-card.s-annulleret { border-left-color: #c9c9d3; opacity: .85; }
.ulb-date { width: 64px; text-align: center; border-radius: 10px; background: var(--brand-soft); color: var(--brand); padding: 6px 0; line-height: 1.1; font-size: 11px; text-transform: uppercase; }
.ulb-date b { display: block; font-size: 22px; line-height: 1.1; }
.ulb-date.none { background: #f3f2f7; color: var(--muted); text-transform: none; font-size: 11px; padding: 10px 0; }
.ulb-main { min-width: 0; }
.ulb-top { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ulb-firma { font-size: 13px; margin-top: 2px; }
.ulb-what { font-size: 13px; margin-top: 2px; }
.ulb-meta { display: flex; gap: 4px 14px; flex-wrap: wrap; font-size: 12px; color: var(--muted); margin-top: 4px; }
.ulb-meta:empty { display: none; }
.ulb-warn { font-size: 12px; color: var(--bad); margin-top: 4px; }
.ulb-settle { display: inline-block; font-size: 12px; font-weight: 600; margin-top: 4px; padding: 2px 8px; border-radius: 6px; background: var(--warn-soft); color: var(--warn); }
.ulb-settle.afregnet, .ulb-settle.ingen { background: var(--ok-soft); color: var(--ok); }
.ulb-settle.overdue { background: var(--bad-soft, #fdecea); color: var(--bad); }
.ulc-exp { min-width: 150px; }
.ulb-settle.tilbagebetal { background: #e8f0fd; color: #2c5cb8; }
.ulb-after { margin-top: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fcfcfd; }
.ul-steps { list-style: none; margin: 8px 0 2px; padding: 0; display: grid; gap: 4px; }
.ul-steps li { display: flex; gap: 6px; align-items: center; }
.ul-item .ul-steps input.ul-step-who { width: 130px; flex: 0 0 auto; font-size: 12px; padding: 3px 6px; }
@media (max-width: 760px) { .ul-steps li { flex-wrap: wrap; } .ul-item .ul-steps input.ul-step-who { width: 100%; } }
/* UNIQLast-møder på Klar til lancering */
.ulm { border-left: 4px solid var(--accent, #443266); }
.ulm-head { display: flex; align-items: center; gap: 10px; }
.ulm-ic { font-size: 22px; }
.ulm-count { margin-left: auto; font-size: 12.5px; white-space: nowrap; }
.ulm-secs { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 4px 18px; margin-top: 8px; }
.ulm-sec h4 { margin: 8px 0 4px; font-size: 13px; }
.ulm-sec ul { list-style: none; margin: 0; padding: 0; }
.ulm-item { padding: 6px 0; border-bottom: 1px solid var(--line, #ececf2); }
.ulm-item:last-child { border-bottom: 0; }
.ulm-row { display: flex; gap: 8px; align-items: flex-start; }
.ulm-check { display: flex; gap: 8px; align-items: flex-start; flex: 1; cursor: pointer; font-size: 13px; line-height: 1.35; }
.ulm-check input { margin-top: 2px; flex: 0 0 auto; }
.ulm-item.done .ulm-txt { color: var(--muted, #6b6878); text-decoration: line-through; text-decoration-color: rgba(0,0,0,.25); }
.ulm-go { font-size: 12px; white-space: nowrap; margin-left: auto; }
.ulm-ans { width: 100%; margin: 4px 0 0 24px; max-width: calc(100% - 24px); font: inherit; font-size: 12.5px; padding: 4px 6px; border: 1px solid var(--line, #dcd9e4); border-radius: 6px; resize: vertical; background: transparent; color: inherit; }
.ulm-ansv { margin: 3px 0 0 24px; font-size: 12.5px; background: var(--soft, #f4f2f8); border-radius: 6px; padding: 4px 8px; }
.ulm-item .meta { margin-left: 24px; }
@media (max-width: 760px) { .ulm-row { flex-wrap: wrap; } .ulm-go { margin-left: 24px; } }
.ul-steps li label { flex: 1; display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; cursor: pointer; padding: 4px 8px; border-radius: 6px; background: #f7f7fa; }
.ul-steps li.done label { background: var(--ok-soft); color: var(--muted); }
.ul-steps li.done label > span:last-child { text-decoration: line-through; text-decoration-color: #9bbfa6; }
.ul-steps input { margin-top: 2px; }
.ul-steps .n { font-weight: 700; color: var(--text); }
.ul-steps .who { font-size: 11px; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 0 6px; text-decoration: none; display: inline-block; }
/* Zoner: trappe, opslag og kort */
.ulz-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.ulz-look { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; }
.ulz-look input { width: 90px; font-size: 15px; padding: 5px 8px; }
.ulz-answer { margin: 8px 0 4px; min-height: 4px; font-size: 13.5px; }
.ulz-hit { display: inline-block; border-left: 4px solid var(--c); background: #f6f6f9; border-radius: 6px; padding: 6px 10px; }
.ulz-miss { display: inline-block; border-left: 4px solid var(--bad); background: #fdecea; border-radius: 6px; padding: 6px 10px; }
.ulz-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 10px; margin-top: 8px; }
.ulz-step { border: 1px solid var(--line); border-top: 4px solid var(--c); border-radius: 10px; padding: 10px 12px; }
.ulz-name { font-weight: 800; display: flex; align-items: center; gap: 6px; }
.ulz-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--c); display: inline-block; }
.ulz-km { position: relative; height: 18px; background: #f1f1f5; border-radius: 9px; margin: 8px 0; overflow: hidden; font-size: 11px; }
.ulz-km i { position: absolute; inset: 0 auto 0 0; background: var(--c); opacity: .25; }
.ulz-km span { position: relative; padding-left: 8px; line-height: 18px; font-weight: 600; }
.ulz-price { font-size: 12.5px; }
.ulz-price b { font-size: 18px; }
.ulz-price small { display: block; color: var(--muted); }
.ulz-pn { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.ulz-pn span { font-size: 11px; background: #f3f2f7; border-radius: 999px; padding: 1px 7px; }
.ulpay-link { margin-top: 10px; padding: 8px 10px; border: 1px solid #c9d8f5; background: #eef4fd; border-radius: 8px; font-size: 12.5px; }
.ulpay-row { display: flex; gap: 6px; margin-top: 6px; }
.ulpay-row input { flex: 1; font-size: 12px; }
.ulpay-info { font-size: 12.5px; background: #eef4fd; border-radius: 6px; padding: 6px 8px; margin-bottom: 4px; }
.ulz-need { border: 1px solid #f1d9a8; background: var(--warn-soft); border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; font-size: 12.5px; display: grid; gap: 6px; }
.ulz-need label { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(200px, 2fr); gap: 8px; align-items: center; }
.ulz-need input { width: 100%; }
@media (max-width: 760px) { .ulz-need label { grid-template-columns: 1fr; } }
.ulz-depot { border-color: var(--brand); }
.ulz-map { height: 420px; border-radius: 10px; border: 1px solid var(--line); background: #eef1f4; }
.ulz-legend { display: flex; gap: 6px 14px; flex-wrap: wrap; font-size: 11.5px; margin-top: 6px; align-items: center; }
.ulz-legend i { display: inline-block; width: 11px; height: 11px; border-radius: 50%; margin-right: 5px; vertical-align: -1px; }
.ulz-legend i.grav { background: none; width: auto; height: auto; font-style: normal; }
.ulz-grav { font-size: 18px; line-height: 22px; text-align: center; background: #fff; border: 2px solid #333; border-radius: 6px; }
/* Grave i leverandørens farve: HCS rødlig, Nymølle blå (ikke zonefarverne) */
.ulz-grav.sup-hcs { background: #fde7e4; border-color: #c0392b; }
.ulz-grav.sup-nymoelle { background: #e3eefc; border-color: #1f5fbf; }
.ulz-legend i.ulz-grav { display: inline-block; font-size: 11px; line-height: 15px; width: 18px; height: 18px; border-width: 2px; border-radius: 4px; text-align: center; }
.ulz-add { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.ulz-add input { min-width: 140px; }
/* Kørselsplan som ugetavle */
.ulw-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.ulw-nav { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; }
.ulw-legend { display: flex; gap: 6px 14px; flex-wrap: wrap; font-size: 11.5px; margin-bottom: 10px; align-items: center; }
.ulw-legend span:not(.muted)::before { content: ''; display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.ulw-legend .ny::before, .ulw-pill.ny { background: #fff6df; border-color: #e0a100; }
.ulw-legend .betaling::before, .ulw-pill.betaling { background: #e8f0fd; border-color: #3b6fd8; }
.ulw-legend .faktura::before, .ulw-pill.faktura { background: #efeaf8; border-color: var(--brand); }
.ulw-legend .klar::before, .ulw-pill.klar { background: var(--ok-soft); border-color: var(--ok); }
.ulw-legend span::before { border: 2px solid; box-sizing: border-box; }
.ulw { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 900px; table-layout: fixed; }
.ulw th, .ulw td { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); vertical-align: top; }
.ulw thead th { font-weight: 400; font-size: 11.5px; color: var(--muted); padding: 6px 4px; text-align: center; background: #fafafc; }
.ulw thead th b { display: block; font-size: 13px; color: var(--text); }
.ulw thead th.today { background: var(--brand); color: #fff; border-radius: 8px 8px 0 0; }
.ulw thead th.today b { color: #fff; }
.ulw thead th.wk, .ulw td.ulw-cell:nth-child(7) { border-left: 2px solid #d6d3e0; }
.ulw .ulw-row { width: 150px; text-align: left; padding: 8px; font-size: 12.5px; background: #fafafc; }
.ulw .ulw-row small { display: block; font-size: 10.5px; color: var(--muted); font-weight: 400; line-height: 1.3; margin-top: 2px; }
.ulw-cell { padding: 4px; height: 64px; }
.ulw-cell.today { background: #f6f4fb; }
.ulw-cell.off { background: repeating-linear-gradient(135deg, #f7f7f9 0 6px, #efeff3 6px 12px); }
.ulw-pill { display: block; width: 100%; text-align: left; border: 1px solid; border-left-width: 4px; border-radius: 6px; padding: 3px 5px; margin: 0 0 4px; cursor: pointer; font: inherit; color: var(--text); line-height: 1.25; }
.ulw-pill:hover { filter: brightness(.97); }
.ulw-pill b { display: block; font-size: 11.5px; }
.ulw-pill span { display: block; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ulw-pill small { display: block; font-size: 10.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ulw-pill.warn { box-shadow: inset 0 0 0 1px var(--bad); }
.ulw-bar { height: 4px; border-radius: 2px; background: #ececf2; overflow: hidden; }
.ulw-bar i { display: block; height: 100%; background: var(--ok); }
.ulw-bar.warn i { background: #e0a100; }
.ulw-bar.bad i { background: var(--bad); }
.ulsu-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap: 12px; }
.ulsu-card { margin: 0; }
.ulsu-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.ulsu-row { display: grid; grid-template-columns: 30px 1fr; gap: 8px; padding: 8px 0; border-top: 1px solid var(--line); }
.ulsu-row.imp .ulsu-t::after { content: 'vigtigt'; margin-left: 6px; font-size: 10.5px; font-weight: 700; color: var(--warn); background: var(--warn-soft); border-radius: 999px; padding: 1px 6px; vertical-align: 1px; }
.ulsu-ic { font-size: 18px; line-height: 1.2; }
.ulsu-t { font-weight: 700; font-size: 13px; }
.ulsu-x { font-size: 13px; line-height: 1.45; margin-top: 2px; }
.ulsu-used { background: var(--ok-soft); font-weight: 700; }
.ulp-item { display: grid; grid-template-columns: 40px 1fr; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); }
.ulp-item:first-of-type { border-top: 0; padding-top: 0; }
.ulp-ic { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; font-size: 20px; background: var(--warn-soft); }
.ulp-item.besluttet .ulp-ic { background: var(--ok-soft); }
.ulp-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.ulp-st { font-size: 12px; padding: 3px 6px; border-radius: 999px; border: 1px solid #f1d9a8; background: var(--warn-soft); color: var(--warn); font-weight: 700; }
.ulp-st.besluttet { border-color: #bfe0cb; background: var(--ok-soft); color: var(--ok); }
.ulp-text { width: 100%; font: inherit; font-size: 13px; line-height: 1.5; resize: vertical; min-height: 44px; }
.ulp-p { margin: 0; font-size: 13px; line-height: 1.5; }
.ulp-meta { display: flex; gap: 6px 12px; flex-wrap: wrap; align-items: center; font-size: 11.5px; color: var(--muted); margin-top: 4px; }
.ulp-set { background: #f3f2f7; border-radius: 6px; padding: 1px 6px; color: var(--text); }
.ulb-act { display: flex; flex-direction: column; gap: 6px; align-items: stretch; }
.ulb-h { margin: 6px 0 10px; }
.ul-fold > summary { cursor: pointer; list-style: revert; }
.ul-fold[open] > summary { margin-bottom: 10px; }
.ulb-steps { display: flex; gap: 0; list-style: none; padding: 0; margin: 0 0 12px; counter-reset: s; }
.ulb-steps li { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 12px; color: var(--muted); position: relative; }
.ulb-steps li span { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: #ececf2; font-weight: 700; z-index: 1; }
.ulb-steps li + li::before { content: ''; position: absolute; top: 13px; right: 50%; width: 100%; height: 2px; background: #ececf2; }
.ulb-steps li.done span { background: var(--ok); color: #fff; }
.ulb-steps li.done + li::before, .ulb-steps li.now::before { background: var(--ok); }
.ulb-steps li.now { color: var(--text); font-weight: 700; }
.ulb-steps li.now span { background: var(--brand); color: #fff; }
.ulb-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.ulb-facts > div { background: #f6f6f9; border-radius: 8px; padding: 8px 10px; font-size: 13px; }
.ulb-facts > div > span { display: block; font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 2px; }
@media (max-width: 760px) {
  .ulb-flow { grid-template-columns: 1fr 1fr; }
  .ulb-arrow { display: none; }
  .ulb-step-t { display: none; }
  .ulb-card { grid-template-columns: 52px 1fr; }
  .ulb-date { width: 52px; }
  .ulb-act { grid-column: 1 / -1; flex-direction: row; justify-content: flex-end; }
}
.linkish { background: none; border: 0; padding: 0; color: var(--brand); cursor: pointer; font: inherit; text-decoration: underline; text-underline-offset: 2px; }
.ul-next { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ul-next li { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.ul-next .n { font-weight: 800; color: var(--brand); }
@media (max-width: 860px) { .ul-item { grid-template-columns: 1fr; } }

/* Skærmdeling: "Skjul menu" skjuler sidepanelet og topbjælkens værktøjer – kun siden og knappen "Vis menu" ses (kun computer) */
@media (min-width: 768px) {
  body.focus-mode .layout { grid-template-columns: minmax(0, 1fr); }
  body.focus-mode .sidebar { display: none; }
  body.focus-mode .topbar > :not(#focusBtn) { display: none !important; }
  body.focus-mode .topbar { justify-content: flex-end; padding: 6px 24px; }
}
@media (max-width: 767px) { .focus-btn { display: none; } }

/* UNIQLast: kilde ved et punkt (📄 dokument, side og citat) og kildedokumenter */
.ulb-buy { font-size: 12.5px; margin-top: 6px; padding-top: 6px; border-top: 1px dashed currentColor; border-top-color: rgba(0,0,0,.15); }
.ul-src { display: inline; font-size: 12px; }
.ul-src a { white-space: nowrap; text-decoration: none; border-bottom: 1px dotted currentColor; }
.ul-src-q { display: block; margin: 3px 0 0; padding: 3px 8px; border-left: 3px solid var(--line, #dcd9e4); color: var(--muted, #6b6878); font-size: 12px; font-style: italic; quotes: "»" "«"; }
.ul-src-add { font-size: 11.5px; color: var(--muted, #6b6878); }
.ul-src-cell { font-size: 11px; line-height: 1.2; margin-top: 1px; }
.ul-src-hits { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; max-height: 240px; overflow-y: auto; }
.ul-src-hit { text-align: left; border: 1px solid var(--line, #dcd9e4); background: var(--card, #fff); color: inherit; border-radius: 6px; padding: 5px 8px; cursor: pointer; font: inherit; font-size: 12.5px; display: flex; flex-direction: column; gap: 2px; }
.ul-src-hit:hover, .ul-src-hit:focus-visible { border-color: var(--brand, #443266); }
.ul-src-hit span { color: var(--muted, #6b6878); }
.ul-doc-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; }
.ul-doc-form input[type=text] { flex: 1 1 240px; min-width: 0; }

/* Mødepunkter med prioritet (🔴/🟡/🟢 først i teksten): mærkat, farvet kant og nummer i talerækkefølgen */
.ulm-item.prio-r { border-left: 4px solid #c0392b; padding-left: 8px; }
.ulm-item.prio-y { border-left: 4px solid #e0a100; padding-left: 8px; }
.ulm-item.prio-g { border-left: 4px solid #2e8b57; padding-left: 8px; }
.ulm-item.done { border-left-color: var(--line, #dcd9e4); }
.ulm-prio { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 9px; vertical-align: 1px; white-space: nowrap; }
.ulm-prio.r { background: #fde2df; color: #9b2c20; } .ulm-prio.y { background: #fff1c7; color: #7a5a00; } .ulm-prio.g { background: #dcf1e4; color: #1f6b41; }
.ulm-no { display: inline-grid; place-items: center; min-width: 20px; height: 20px; border-radius: 50%; background: var(--brand, #443266); color: #fff; font-size: 11px; margin-right: 6px; vertical-align: 1px; }
.ulm-item.done .ulm-no { background: var(--line, #dcd9e4); }
.ulm-legend { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 12px; color: var(--muted, #6b6878); margin-top: 8px; }

/* "UNIQLast kort fortalt" øverst i UNIQLast */
.uli { margin: 10px 0 0; padding: 10px 14px; border-left: 4px solid var(--brand, #443266); }
.uli summary { cursor: pointer; }
.uli-list { list-style: none; margin: 8px 0 2px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 6px 18px; font-size: 13px; line-height: 1.4; }
.uli-list li { display: flex; gap: 8px; align-items: flex-start; }
.uli-ic { flex: 0 0 auto; width: 22px; text-align: center; }

/* DHL – rutesetup (pages/dhl.js): to visninger (internt / til DHL), nøgletal, anbefalinger, flåde og arbejdsdagen pr. rute.
   Farver: el = grøn, diesel = skifer, tabt tid = orange, risiko = rød. */
.dhl { --dhl-el: #1f8a5b; --dhl-di: #5b6472; --dhl-lost: #e08a2e; --dhl-drive: #9fd4b8; }
.dhl-top { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.dhl-mode { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; padding: 3px; background: var(--bg); }
.dhl-mode button { border: 0; background: transparent; padding: 6px 14px; border-radius: 999px; font: inherit; font-size: 13px; font-weight: 600; color: var(--muted); cursor: pointer; }
.dhl-mode button.on { background: var(--brand); color: #fff; }
.dhl-hero-t { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.dhl-trying { display: flex; gap: 6px; align-items: center; }
.dhl-day { display: flex; flex-wrap: wrap; gap: 6px 10px; font-size: 12.5px; margin-top: 10px; }
.dhl-day span { background: var(--brand-soft); border-radius: 6px; padding: 3px 8px; }
.dhl-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; margin-top: 14px; }
.dhl-kpi { border-radius: 10px; padding: 12px 14px; border: 1px solid var(--line); border-left: 5px solid var(--line); background: var(--card, #fff); }
.dhl-kpi .l { font-size: 12.5px; color: var(--muted); }
.dhl-kpi .v { font-size: 26px; font-weight: 750; line-height: 1.2; margin: 2px 0; }
.dhl-kpi .h { font-size: 12px; color: var(--muted); }
.dhl-kpi.el { border-left-color: var(--dhl-el); }
.dhl-kpi.ok { border-left-color: var(--ok); }
.dhl-kpi.warn { border-left-color: var(--dhl-lost); }
.dhl-kpi.bad { border-left-color: var(--bad); }
.dhl-compare { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); align-items: start; }
.dhl-bars { display: grid; gap: 6px; margin: 0 0 10px; }
.dhl-bar { display: flex; gap: 2px; height: 24px; border-radius: 6px; overflow: hidden; }
.dhl-seg { display: inline-flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 700; color: #fff; min-width: 18px; padding: 0 4px; }
.dhl-seg.el { background: var(--dhl-el); }
.dhl-seg.di { background: var(--dhl-di); }
.dhl-seg.lift { background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.28) 0 4px, transparent 4px 8px); }
.dhl-seg.res { opacity: .5; }
.dhl-legend { display: flex; gap: 6px; flex-wrap: wrap; }
.dhl-legend .dhl-seg { border-radius: 4px; height: 18px; }
.dhl-type-tag { display: inline-block; border-radius: 999px; padding: 1px 9px; font-size: 12px; font-weight: 700; color: #fff; white-space: nowrap; }
.dhl-type-tag.el { background: var(--dhl-el); }
.dhl-type-tag.di { background: var(--dhl-di); }
.dhl-type-tag.lift { background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.22) 0 4px, transparent 4px 8px); }
.dhl-ctable td:first-child { max-width: 260px; }
.dhl-recs { margin: 0; padding-left: 22px; display: grid; gap: 10px; }
.dhl-rec { border-left: 4px solid var(--line); padding: 8px 12px; border-radius: 0 8px 8px 0; background: var(--bg); }
.dhl-rec.vigtig { border-left-color: var(--dhl-el); }
.dhl-rec.applied { opacity: .75; }
.dhl-rec-t { font-size: 13.5px; margin: 3px 0 6px; }
.dhl-rec-e { display: flex; gap: 6px; flex-wrap: wrap; }
.dhl-rec-b { margin-top: 8px; }
.dhl-rec-steps { margin-top: 6px; font-size: 12.5px; }
.dhl-measures { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: 14px; }
.dhl-pgroups { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 14px; margin-top: 10px; }
.dhl-pgroups h3 { margin: 0 0 4px; font-size: 14px; }
.dhl-params-card summary { cursor: pointer; }
.dhl-params { display: grid; gap: 4px; }
.dhl-param { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 13px; border-bottom: 1px solid var(--line); padding: 4px 0; }
.dhl-pin { white-space: nowrap; }
.dhl-pin input[type=text] { width: 72px; text-align: right; }
.dhl-range { position: relative; height: 12px; background: var(--bg); border-radius: 6px; margin: 4px 0 2px; }
.dhl-range .km { position: absolute; left: 0; top: 0; bottom: 0; background: var(--dhl-el); border-radius: 6px; }
.dhl-range .km.over { background: linear-gradient(90deg, var(--dhl-el) 0 60%, var(--bad)); }
.dhl-range .km.di { background: var(--dhl-di); }
.dhl-range .mark { position: absolute; top: -3px; bottom: -3px; width: 2px; }
.dhl-range .mark.w { background: var(--brand); }
.dhl-range .mark.s { background: #a99cc9; }
.dhl-day-bar { display: flex; height: 12px; border-radius: 6px; overflow: hidden; background: var(--bg); margin: 4px 0 2px; }
.dhl-day-bar .drive { background: var(--dhl-drive); }
.dhl-day-bar .lost { background: var(--dhl-lost); }
.dhl-routes td { vertical-align: top; }
.dhl-routes select.dhl-type { font-size: 12.5px; max-width: 150px; }
tr.dhl-changed td:first-child { box-shadow: inset 4px 0 0 var(--dhl-el); }
tr.dhl-edited td { background: rgba(224,138,46,.07); }
@media print {
  .dhl-top, .dhl-rec-b, .dhl-params-card, #dhl-only, .dhl-routes select { display: none !important; }
  .dhl .card, .dhl-kpi { box-shadow: none; break-inside: avoid; }
}
/* Tidsregistrering: samlet tid pr. område øverst (klik filtrerer) */
.tareas { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.tarea { display: grid; gap: 1px; text-align: left; border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 8px; background: var(--card, #fff); padding: 8px 12px; font: inherit; cursor: pointer; min-width: 150px; }
.tarea:hover { background: var(--bg); }
.tarea.on { border-color: var(--brand); border-left-color: var(--brand); background: var(--brand-soft); }
.tarea-l { font-size: 12.5px; color: var(--muted); }
.tarea strong { font-size: 18px; }
.tarea small { font-size: 11.5px; color: var(--muted); }
/* DHL: klikbare tal ("sådan er tallet regnet") */
.dhl-x { cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
.dhl-kpi.dhl-x { text-decoration: none; }
.dhl-kpi.dhl-x:hover { box-shadow: 0 0 0 2px var(--brand-soft); }
.dhl-x:hover { color: var(--brand); }
.dhl-rparams input { text-align: right; }
/* Drift → Ruter → Ruteoplysninger: ét kort pr. rute */
.rc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 12px; }
.rc { border: 1px solid var(--line); border-left: 4px solid #1f8a5b; border-radius: 10px; padding: 10px 12px; display: grid; gap: 6px; background: var(--card, #fff); }
.rc.warn { border-left-color: #e08a2e; }
.rc-h { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.rc-big { font-size: 22px; font-weight: 750; }
.rc-type { display: inline-block; border-radius: 999px; padding: 0 8px; font-size: 11.5px; font-weight: 700; color: #fff; }
.rc-type.el { background: #1f8a5b; }
.rc-type.di { background: #5b6472; }
.rc-chips { display: flex; flex-wrap: wrap; gap: 4px 6px; font-size: 12px; }
.rc-chips span { background: var(--bg); border-radius: 6px; padding: 1px 7px; }
.rc-chips span.ok { background: var(--ok-soft); color: var(--ok); }
.rc-chips span.warn { background: #fdf1dc; color: #8a5300; }
.rc-miss { font-size: 12px; color: #8a5300; }
.rc .btn { justify-self: start; }
/* UNIQLast: "Sådan regnes prisen" – trin for kørslen og kundens pris som stablet bjælke */
.ul-howto-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: 18px; }
.ul-howto h4 { margin: 0 0 6px; font-size: 14px; }
.ul-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; font-size: 13px; }
.ul-steps li { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; border-bottom: 1px dashed var(--line); }
.ul-steps li b { white-space: nowrap; }
.ul-steps li.sub { border-bottom: 1px solid var(--line); }
.ul-steps li.tot { font-weight: 700; border-bottom: 0; background: var(--brand-soft); border-radius: 6px; padding: 4px 6px; }
.ul-stack { display: flex; height: 18px; border-radius: 6px; overflow: hidden; gap: 2px; margin: 2px 0 8px; }
.ul-stack .seg.m, .ul-split .dot.m { background: #1a80b6; }
.ul-stack .seg.a, .ul-split .dot.a { background: #8a6fbf; }
.ul-stack .seg.k, .ul-split .dot.k { background: #e08a2e; }
.ul-stack .seg.o, .ul-split .dot.o { background: #c9a227; }
.ul-stack .seg.v, .ul-split .dot.v { background: #9aa0aa; }
.ul-split .dot { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 6px; vertical-align: 0; }
.ul-split td { font-size: 13px; }

/* ---------- Liftbiler: tilbud side om side (pages/lift-offers.js) ---------- */
.lo-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.seg-toggle { display: inline-flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.seg-toggle button { border: 0; background: var(--card); padding: 6px 10px; font: inherit; font-size: 13px; cursor: pointer; color: var(--muted); }
.seg-toggle button.on { background: var(--brand); color: #fff; }
.lo-routes { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 12px 0; }
.lo-route { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 12px; display: grid; gap: 3px; }
.lo-route.avg { background: var(--brand-soft); }
.lo-rc { font-weight: 700; }
.lo-big { font-size: 22px; font-weight: 700; }
.lo-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin-bottom: 14px; }
.lo-card { position: relative; display: flex; flex-direction: column; gap: 8px; margin: 0; }
.lo-card.best { border: 2px solid var(--ok); }
.lo-ribbon { position: absolute; top: -11px; right: 12px; background: var(--ok); color: #fff; font-size: 11.5px; font-weight: 600; padding: 2px 8px; border-radius: 10px; }
.lo-title { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.lo-type { font-size: 11.5px; padding: 2px 8px; border-radius: 10px; white-space: nowrap; background: var(--accent-soft); color: var(--accent); }
.lo-type.finansiel { background: var(--warn-soft); color: var(--warn); }
.lo-price { cursor: pointer; border-radius: 8px; padding: 6px 8px; background: var(--bg); }
.lo-price:hover { outline: 1px dashed var(--accent); }
.lo-amt { font-size: 26px; font-weight: 700; }
.lo-fleet { font-size: 13px; }
.lo-stack { display: flex; height: 14px; border-radius: 7px; overflow: hidden; min-width: 4px; }
.lo-stack span { display: block; }
.lo-stack .p1, .lo-legend i.p1 { background: #443266; }
.lo-stack .p2, .lo-legend i.p2 { background: #1a80b6; }
.lo-stack .p3, .lo-legend i.p3 { background: #c9a227; }
.lo-stack .p4, .lo-legend i.p4 { background: #e08a2e; }
.lo-legend { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; color: var(--muted); }
.lo-legend i { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 4px; }
.lo-meters { display: grid; gap: 5px; }
.lo-meter { display: grid; grid-template-columns: 70px 1fr 80px; align-items: center; gap: 8px; font-size: 12.5px; }
.lo-meter .bar { position: relative; height: 10px; background: #eef0f3; border-radius: 5px; }
.lo-meter .bar i { position: absolute; top: 0; bottom: 0; left: 0; background: var(--accent); border-radius: 5px; }
.lo-meter .bar i.short { background: var(--bad); }
.lo-meter .bar em { position: absolute; top: -3px; bottom: -3px; width: 2px; background: var(--text); }
.lo-meter b { text-align: right; }
.lo-facts { display: grid; grid-template-columns: 90px 1fr; gap: 3px 10px; margin: 0; font-size: 13px; }
.lo-facts dt { color: var(--muted); }
.lo-facts dd { margin: 0; }
.lo-risk { color: var(--warn); font-weight: 600; }
.lo-flags { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; font-size: 12.5px; }
.lo-flags li { padding: 4px 8px; border-radius: 6px; background: var(--bg); }
.lo-flags li::before { margin-right: 6px; font-weight: 700; }
.lo-flags li.ok { background: var(--ok-soft); }
.lo-flags li.ok::before { content: "✓"; color: var(--ok); }
.lo-flags li.warn { background: var(--warn-soft); }
.lo-flags li.warn::before { content: "!"; color: var(--warn); }
.lo-flags li.bad { background: var(--bad-soft); }
.lo-flags li.bad::before { content: "✕"; color: var(--bad); }
.lo-flags li.info::before { content: "i"; color: var(--accent); }
.lo-foot { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin-top: auto; font-size: 12.5px; }
.lo-foot .btn { margin-left: auto; }
.lo-cmp td.lo-best { background: var(--ok-soft); font-weight: 600; }
.lo-km { display: grid; gap: 8px; }
.lo-kmrow { display: grid; grid-template-columns: 130px 1fr 90px; gap: 8px; align-items: center; font-size: 13px; }
.lo-kmrow.avg span { font-style: italic; }
.lo-kmrow .track { position: relative; height: 14px; background: #eef0f3; border-radius: 7px; }
.lo-kmrow .track i { position: absolute; top: 0; bottom: 0; left: 0; background: var(--accent); border-radius: 7px; }
.lo-kmrow .track i.over { background: var(--warn); }
.lo-kmrow b { text-align: right; }
.lo-km em { position: absolute; top: -4px; bottom: -4px; width: 3px; border-radius: 2px; }
.lo-kmleg { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; margin-top: 8px; }
.lo-kmleg em { display: inline-block; width: 3px; height: 12px; margin-right: 6px; vertical-align: -2px; border-radius: 2px; }
.lo-km em.l0, .lo-kmleg em.l0 { background: #443266; }
.lo-km em.l1, .lo-kmleg em.l1 { background: #b3261e; }
.lo-km em.l2, .lo-kmleg em.l2 { background: #2e7d4f; }
.lo-km em.l3, .lo-kmleg em.l3 { background: #c9a227; }
.lo-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin-bottom: 14px; }
.lo-two .card { margin: 0; }
@media (max-width: 560px) {
  .lo-kmrow { grid-template-columns: 80px 1fr 70px; }
  .lo-meter { grid-template-columns: 62px 1fr 70px; }
}
.lo-verdict { border-left: 4px solid var(--brand); margin-bottom: 14px; }

/* Liftbiler: anbefaling, risiko og udskrift */
.lo-rec { border: 2px solid var(--ok); background: linear-gradient(180deg, var(--ok-soft), var(--card) 60%); margin-bottom: 14px; }
.lo-rec-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.lo-rec-head h2 { margin: 0; }
.lo-rec-badge { background: var(--ok); color: #fff; font-weight: 700; font-size: 12.5px; padding: 3px 10px; border-radius: 12px; }
.lo-rec-price { text-align: right; display: grid; }
.lo-rec-price b { font-size: 24px; }
.lo-rec-price small { color: var(--muted); font-size: 12px; }
.lo-rec-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 6px 20px; margin-top: 8px; }
.lo-rec-grid h4 { margin: 4px 0; font-size: 13px; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; }
.lo-ticks, .lo-boxes { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; font-size: 13.5px; }
.lo-ticks li::before { content: "✓"; color: var(--ok); font-weight: 700; margin-right: 8px; }
.lo-boxes li::before { content: "☐"; color: var(--warn); font-weight: 700; margin-right: 8px; }
.lo-alt { margin: 10px 0 0; padding: 6px 10px; background: var(--bg); border-radius: 6px; font-size: 13px; }
.lo-pill { display: inline-flex; gap: 4px; align-items: center; font-size: 11.5px; padding: 1px 8px; border-radius: 10px; white-space: nowrap; }
.lo-pill.ok { background: var(--ok-soft); color: var(--ok); }
.lo-pill.mid { background: var(--warn-soft); color: var(--warn); }
.lo-pill.hi { background: var(--bad-soft); color: var(--bad); }
.lo-pill.unk { background: #eef0f3; color: #4b5563; }
.lo-riskchips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.lo-adj { font-size: 13px; }
.lo-riskt td { vertical-align: top; }
.lo-riskt td:first-child, .lo-lease td:first-child { white-space: nowrap; font-weight: 600; }
.lo-rt { font-size: 12.5px; margin-top: 3px; }
.lo-ramt { font-size: 12.5px; margin-top: 2px; font-weight: 600; }
.lo-ic { display: inline-block; width: 1.4em; text-align: center; }
.lo-gauge { position: relative; height: 18px; border-radius: 9px; background: #eef0f3; margin: 22px 0 6px; }
.lo-gauge span { position: absolute; top: 0; bottom: 0; }
.lo-gauge span.bad { left: 0; background: var(--bad-soft); border-radius: 9px 0 0 9px; }
.lo-gauge span.good { background: var(--ok-soft); border-radius: 0 9px 9px 0; }
.lo-gauge em { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--text); }
.lo-gauge em i { position: absolute; bottom: 100%; transform: translateX(-50%); font-style: normal; font-size: 11.5px; white-space: nowrap; }
.lo-gauge em.end i { transform: translateX(-100%); }
.lo-gleg { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; }
.lo-gleg i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 5px; vertical-align: -1px; }
.lo-gleg i.bad { background: var(--bad-soft); border: 1px solid var(--bad); }
.lo-gleg i.good { background: var(--ok-soft); border: 1px solid var(--ok); }
@media print {
  .lo-noprint, .seg-toggle, .lo-foot .btn, .subnav, .dec-guide, nav, header, .topbar, .sidebar, .page-guide { display: none !important; }
  .lo-card, .lo-rec, .card { break-inside: avoid; box-shadow: none; }
  body { background: #fff; }
}
.lo-checks { list-style: none; padding: 0; margin: 0; display: grid; gap: 5px; font-size: 13.5px; }
.lo-checks label { display: inline-flex; gap: 8px; align-items: flex-start; cursor: pointer; }
.lo-checks input { margin-top: 3px; accent-color: var(--ok); }
.lo-checks li.done span { text-decoration: line-through; color: var(--muted); }
.lo-checks small { margin-left: 26px; display: block; }
.lo-prog { font-size: 11.5px; text-transform: none; letter-spacing: 0; background: var(--warn-soft); color: var(--warn); padding: 1px 8px; border-radius: 10px; margin-left: 6px; }
.lo-prog.done { background: var(--ok-soft); color: var(--ok); }
.lo-ready { margin-top: 8px; padding: 6px 10px; background: var(--ok-soft); color: var(--ok); border-radius: 6px; font-weight: 600; font-size: 13px; }
@media print { .lo-checks input { accent-color: #000; } }

/* Ladning undervejs (charge-info.js) */
.ci-head { font-size: 12.5px; font-weight: 600; margin-top: 2px; }
.ci { display: grid; gap: 3px; font-size: 12.5px; }
.ci-row { display: grid; grid-template-columns: 52px 1fr auto; gap: 6px; align-items: baseline; padding: 3px 6px; border-radius: 6px; background: var(--bg); }
.ci-row.on { background: var(--warn-soft); }
.ci-row.off { background: var(--ok-soft); }
.ci-s { font-weight: 600; font-size: 11.5px; }
.ci-s.w { color: #1a5fb4; } .ci-s.s { color: #b8860b; }
.ci-src { color: var(--muted); font-size: 10.5px; }
.ci-row.bad { background: var(--bad-soft); }
.ci-warn { color: var(--bad); }
.ci-row:not(:has(.ci-src)) { grid-template-columns: 14px 1fr; }
table.dhl-routes td, table.dhl-routes th { white-space: normal; }
table.dhl-routes td:last-child { min-width: 120px; max-width: 170px; }
table.dhl-routes td:last-child .tag { white-space: normal; display: inline-block; }
table.dhl-routes select.dhl-type { max-width: 118px; }
#ruter table.dhl-routes { font-size: 12.5px; }
#ruter table.dhl-routes td, #ruter table.dhl-routes th { padding-left: 6px; padding-right: 6px; }

/* Rute på Flåde (tabel, mobilkort, 3D) */
.route-chip { display: inline-block; font-weight: 700; font-size: 12px; padding: 1px 7px; border-radius: 6px; background: var(--brand-soft); color: var(--brand); border: 1px solid var(--line); letter-spacing: .02em; }
.route-chip.sm { font-size: 11px; padding: 0 6px; margin-left: 6px; }
.route-name { font-size: 12.5px; }
.ul-split-box { margin-top: 8px; padding: 8px 10px; background: var(--card); border: 1px solid var(--line); border-radius: 8px; }
.ul-split-h { font-size: 12.5px; margin-bottom: 4px; }

/* Visuelt løft 08.11.2026: typografi, afstande og kort.
   Tekster, indhold, rækkefølge og funktioner er uændrede. */
@media screen {
  :root {
    --bg: #f5f6f9;
    --line: #e4e5ed;
    --radius: 12px;
    --shadow: 0 2px 8px rgba(34, 24, 55, .035);
  }
  body { font-size: 14.5px; line-height: 1.55; }
  h1 { font-size: 26px; line-height: 1.25; letter-spacing: -.45px; margin-bottom: 7px; }
  h2 { font-size: 18px; line-height: 1.35; letter-spacing: -.15px; }
  h3 { font-size: 15px; line-height: 1.4; }
  .page-head { margin-bottom: 22px; gap: 18px; }
  .page-head p { line-height: 1.6; }
  .grid { gap: 18px; }
  .card { padding: 20px; }
  .card.flush { padding: 0; }
  .card .card-head { gap: 12px; margin-bottom: 14px; }
  .kpi .value, .tr-kpi .value { font-size: 28px; line-height: 1.2; letter-spacing: -.5px; margin: 8px 0 6px; }
  .kpi .label, .tr-kpi .label { line-height: 1.5; letter-spacing: .035em; }
  .kpi .hint, .tr-kpi .hint { font-size: 12.5px; line-height: 1.55; }
  .kpi .why { position: static; display: block; margin-top: 12px; opacity: 1; }
  .m-card { padding: 16px; gap: 7px; }
  .m-card + .m-card { margin-top: 12px; }
  .note { line-height: 1.6; padding-top: 10px; padding-bottom: 10px; }
  .tabs { margin-bottom: 18px; }
  .kv { row-gap: 7px; }
}
@media screen and (min-width: 901px) {
  .content { padding-top: 26px; }
}
@media screen and (max-width: 767px) {
  h1 { font-size: 24px; }
  .page-head { margin-bottom: 18px; }
  .grid { gap: 14px; }
  .card { padding: 16px; }
  .card.flush { padding: 0; }
  .kpi .value, .tr-kpi .value { font-size: 25px; }
}
/* Tydeligere kontrast i værktøjer og dataversion – 08.11.2026. */
@media screen {
  body { font-size: 15px; }
  h1 { font-size: 28px; }
  #datastatus { font-size: 13px; font-weight: 600; line-height: 1.5; color: var(--brand); background: var(--brand-soft); padding: 7px 10px; border: 1px solid #dcd4e9; border-radius: 8px; max-width: 100%; margin-left: auto; }
  #datastatus .ds-refresh { color: var(--brand); }
  .btn { padding: 9px 14px; border-radius: 9px; font-size: 13.5px; }
  .btn.small { padding: 5px 10px; font-size: 12.5px; }
  .btn.primary { box-shadow: 0 2px 4px rgba(68,50,102,.12); }
  .tabs button.on { background: var(--brand-soft); }
  table.t { font-size: 13.5px; }
  table.t th { background: #eeeaf5; color: var(--brand); padding-top: 11px; padding-bottom: 11px; }
  table.t tbody tr:nth-child(even) { background: #faf9fd; }
  table.t tr.click:hover td { background: #eeeaf5; }
  .nav a.active { box-shadow: 0 2px 8px rgba(24,12,44,.16); }
  .nav .nav-group { color: #e1d9ee; letter-spacing: .07em; }
}
@media screen and (max-width: 767px) {
  h1 { font-size: 24px; }
  #datastatus { margin-left: 0; }
}
/* Fælles bil-/rutekort til geografisk overblik og DHL-præsentation. */
.route-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); gap:16px; margin:16px 0 22px; }
.route-card { background:#fff; border:1px solid var(--line); border-top:3px solid #75618f; border-radius:12px; padding:16px; min-width:0; box-shadow:var(--shadow); text-align:left; }
.route-card.is-selected { border-color:var(--brand); outline:2px solid var(--brand-soft); }
.route-card header { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:12px; }
.route-card-code { display:inline-block; font-size:15px; font-weight:800; color:var(--brand); background:var(--brand-soft); border-radius:7px; padding:4px 9px; }
.route-card-name { font-size:13px; color:var(--muted); overflow-wrap:anywhere; }
.route-card-status { margin-bottom:12px; }
.route-card-status .tag { white-space:normal; }
.route-vehicle { display:flex; align-items:center; gap:9px; min-width:0; }
.route-vehicle strong { font-size:13px; display:block; overflow-wrap:anywhere; }
.route-vehicle small { display:block; font-size:11.5px; color:var(--muted); overflow-wrap:anywhere; }
.route-car-icon { color:var(--brand); background:#f4f1f8; border-radius:8px; display:grid; place-items:center; width:56px; height:40px; flex:none; }
.route-card-transition { display:grid; grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr); align-items:center; gap:7px; padding:12px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.route-card-transition > div > small { display:block; color:var(--muted); font-weight:600; margin-bottom:8px; }
.route-card-transition .route-vehicle { align-items:flex-start; flex-direction:column; }
.route-arrow { color:var(--brand); font-size:20px; }
.route-card-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; }
.route-card-facts dt { font-size:11.5px; line-height:1.4; color:var(--muted); }
.route-card-facts dd { font-size:14px; font-weight:700; margin:4px 0 0; overflow-wrap:anywhere; }
.route-card-day { margin-top:14px; }
.route-card footer { display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.map-list .route-card { margin:10px 0; }
.map-list > h4 { margin:4px 0 10px; }
.map-wrap { grid-template-columns:minmax(0,1fr) 310px; gap:16px; }
.map-route-icon { background:none; border:0; pointer-events:none; }
.map-route-label { display:inline-block; white-space:nowrap; font:700 11px/1.5 var(--font); color:var(--brand); background:#fff; border:1px solid #cec4dc; border-radius:5px; padding:2px 5px; box-shadow:0 1px 4px #0002; }
@media(max-width:1000px) { .map-wrap { grid-template-columns:minmax(0,1fr); } .map-list { max-height:460px; } }
@media print { .route-card { break-inside:avoid; box-shadow:none; } .route-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .route-card footer { display:none; } }