/*
 |------------------------------------------------------------
 | Help Desk - Shared application styles
 |------------------------------------------------------------
 */

:root {
  --bg: #090d16;
  --bg-2: #0f172a;
  --card: rgba(14, 20, 34, 0.82);
  --card-strong: rgba(17, 24, 39, 0.92);
  --text: #e5edf9;
  --muted: #94a3b8;
  --line: rgba(148,163,184,0.18);
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.32);
  --primary: #dbeafe;
  --primary-soft: rgba(148,163,184,0.10);
  --danger: #f87171;
  --danger-soft: rgba(248,113,113,0.12);
  --success: #34d399;
  --success-soft: rgba(52,211,153,0.12);
  --warning: #fbbf24;
  --warning-soft: rgba(251,191,36,0.12);
  --info: #60a5fa;
  --info-soft: rgba(96,165,250,0.12);
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: Inter, Arial, Helvetica, sans-serif; color: var(--text); background: linear-gradient(180deg, var(--bg) 0%, #060910 100%); background-color: #050814; color-scheme: dark; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
body { position: relative; }

@supports (-webkit-touch-callout: none) {
  html, body {
    min-height: -webkit-fill-available;
    background-color: #050814;
  }
  body {
    min-height: -webkit-fill-available;
  }
}
body, .shell, .content, .auth-wrap { background-color: transparent; }

.app-bg {
  position: fixed; inset: 0; pointer-events: none;
  background:
    radial-gradient(circle at top left, rgba(37,99,235,0.16), transparent 26%),
    radial-gradient(circle at top right, rgba(139,92,246,0.14), transparent 24%),
    radial-gradient(circle at bottom left, rgba(16,185,129,0.10), transparent 24%);
}
.glass {
  background: var(--card);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.05);
  box-shadow: var(--shadow);
}
.glass-soft {
  background: rgba(255,255,255,0.03);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.05);
}
.shell { display: grid; grid-template-columns: 290px 1fr; gap: 20px; padding: 24px; min-height: 100vh; }
.sidebar { border-radius: 28px; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; }
.brand { font-size: 30px; font-weight: 800; letter-spacing: -0.04em; }
.muted { color: var(--muted); }
.small { font-size: 12px; }
.nav { display: grid; gap: 10px; margin: 30px 0 auto; }
.nav a { padding: 14px 16px; border-radius: 16px; color: #cbd5e1; transition: .2s ease; }
.nav a:hover, .nav a.active { background: rgba(255,255,255,0.06); box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 8px 24px rgba(0,0,0,.15); color: #fff; }
.sidebar-footer { display: grid; gap: 14px; }
.user-chip { border-radius: 18px; padding: 12px; display: flex; align-items: center; gap: 12px; }
.avatar { width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(180deg,#1d4ed8,#111827); color: #fff; display:grid; place-items:center; font-weight:700; }
.content { display: grid; gap: 20px; align-content: start; }
.page-head { padding: 2px 2px 0; }
.compact-head { min-height: auto; }
.page-head h1 { margin: 0; font-size: 32px; letter-spacing: -0.04em; }
.page-head p { margin: 6px 0 0; }
.card { border-radius: 24px; padding: 22px; }
.stats-grid { grid-template-columns: repeat(5, minmax(0,1fr)); }
.grid { display: grid; gap: 20px; }
.two-col { grid-template-columns: 1.2fr 1fr; }
.stat-label { color: var(--muted); display: block; margin-bottom: 12px; }
.stat-value { font-size: 40px; font-weight: 800; letter-spacing: -0.05em; }
.section-head { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom: 16px; }
.section-head.wrap { flex-wrap: wrap; }
.button { border: 0; border-radius: 14px; padding: 12px 16px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: .2s ease; }
.button.primary { background: linear-gradient(180deg, #1d4ed8, #1e3a8a); color: #fff; box-shadow: 0 16px 34px rgba(29,78,216,.22); }
.button.secondary { background: rgba(255,255,255,0.04); color: var(--text); border: 1px solid var(--line); }
.button.danger { background: rgba(127,29,29,.35); color: #fecaca; border: 1px solid rgba(248,113,113,.15); }
.button.full { width: 100%; }
.small-btn { padding: 8px 12px; font-size: 13px; }
.button:hover { transform: translateY(-1px); }
.table-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 14px 12px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.empty { color: var(--muted); text-align: center; padding: 24px; }
.actions { display:flex; flex-wrap:wrap; gap:8px; }
.pill { display:inline-flex; align-items:center; border-radius:999px; padding:6px 10px; font-size:12px; font-weight:700; }
.pill.ok { background: var(--success-soft); color: var(--success); }
.pill.muted-pill { background: var(--primary-soft); color: #cbd5e1; }
.status-badge { display:inline-flex; align-items:center; border-radius:999px; padding:7px 11px; font-size:12px; font-weight:700; }
.status-badge[hidden] { display:none !important; }
.status-badge.info { background: var(--info-soft); color: var(--info); }
.status-badge.warning { background: var(--warning-soft); color: var(--warning); }
.status-badge.danger { background: var(--danger-soft); color: var(--danger); }
.status-badge.success { background: var(--success-soft); color: var(--success); }
.status-badge.neutral { background: var(--primary-soft); color: #cbd5e1; }
.alert { margin: 0 0 12px; padding: 14px 18px; border-radius: 16px; }
.alert.success { background: var(--success-soft); color: var(--success); border: 1px solid rgba(52,211,153,.14); }
.alert.error { background: rgba(127,29,29,.25); color: #fecaca; border: 1px solid rgba(248,113,113,.16); }
.form-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.form-card { padding: 28px; }
label { display:grid; gap:8px; }
label span { font-size: 14px; color: #cbd5e1; }
input, select, textarea {
  width: 100%; border-radius: 14px; border: 1px solid var(--line); background: rgba(255,255,255,.04);
  padding: 14px 15px; outline: none; color: var(--text);
}
input::placeholder, textarea::placeholder { color: #64748b; }
input:focus, select:focus, textarea:focus { border-color: rgba(96,165,250,.4); box-shadow: 0 0 0 4px rgba(96,165,250,.08); }
.full-span { grid-column: 1 / -1; }
.form-actions { display:flex; justify-content:flex-end; gap:10px; }
.timeline { display:grid; gap:12px; }
.timeline-item { padding: 14px 0; border-bottom: 1px solid var(--line); }
.timeline-item:last-child { border-bottom: 0; }
.timeline-title { font-weight: 700; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.toolbar { display:flex; gap:10px; flex-wrap:wrap; }
.toolbar input { min-width: 260px; }
.auth-wrap { min-height: 100vh; display:flex; justify-content:center; align-items:center; padding:24px; }
.auth-card { width: min(460px, 100%); border-radius: 30px; padding: 38px; margin-top: 0; box-shadow: 0 28px 80px rgba(0,0,0,.42); }
.auth-card h1 { margin: 8px 0 10px; font-size: 34px; letter-spacing: -0.04em; }
.auth-badge { display:inline-flex; border-radius: 999px; padding: 8px 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); }
.form-stack { display:grid; gap:16px; margin-top: 22px; }
.checkbox-row { display:flex; align-items:center; gap:10px; margin-top: 12px; }
.checkbox-row input { width: 18px; height: 18px; }
.permission-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px 18px; margin-top: 8px; }
.permission-item { display:flex; align-items:center; gap:10px; padding: 12px 14px; border-radius: 16px; background: rgba(255,255,255,0.03); border: 1px solid var(--line); }
.permission-item input { width: 18px; height: 18px; }
code { background: rgba(255,255,255,.06); padding: 2px 6px; border-radius: 8px; }
.stat-card { min-height: 142px; }
.quick-meta { display:grid; gap:8px; }
.quick-meta-row { display:flex; justify-content:space-between; gap:12px; border-bottom: 1px solid var(--line); padding:10px 0; }
.quick-meta-row:last-child { border-bottom: 0; }
.barcode-svg { width: 100%; max-width: 360px; display:block; }
.barcode-print-card { max-width: 520px; margin: 0 auto; }
.helper { color: var(--muted); font-size: 12px; }
@media print {
  body { background: #fff; }
  .app-bg, .sidebar, .page-head, .alert, .print-hide { display: none !important; }
  .shell { display:block; padding:0; }
  .content { display:block; }
  .card, .glass { box-shadow:none; border:0; background:#fff; color:#000; }
}
@media (max-width: 1280px) {
  .stats-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 1100px) {
  .shell { grid-template-columns: 1fr; }
  .sidebar { position: static; }
  .stats-grid, .two-col, .form-grid, .permission-grid { grid-template-columns: 1fr; }
}


.sticky-sidebar { position: sticky; top: 24px; height: calc(100vh - 48px); overflow: hidden; }
.sidebar { min-height: calc(100vh - 48px); }
.sidebar .nav { overflow-y: auto; padding-right: 4px; }
.content { min-width: 0; }
.site-footer { margin-top: 10px; padding: 18px 6px 10px; color: var(--muted); font-size: 13px; text-align: center; }
.history-list { display: grid; gap: 14px; }
.history-row { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(320px, 1fr); gap: 20px; align-items: start; padding: 18px 0; border-bottom: 1px solid var(--line); }
.history-row:last-child { border-bottom: 0; }
.history-title { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.history-note { color: #dbe4f0; line-height: 1.5; }
.history-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.history-meta > div { display: grid; gap: 6px; padding: 12px 14px; background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-radius: 16px; }
select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #cbd5e1 50%), linear-gradient(135deg, #cbd5e1 50%, transparent 50%); background-position: calc(100% - 20px) calc(50% - 3px), calc(100% - 14px) calc(50% - 3px); background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; padding-right: 44px; }
select option, select optgroup { background: #0f172a; color: #e5edf9; }
@media (max-width: 1100px) {
  .history-row { grid-template-columns: 1fr; }
  .history-meta { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .shell { grid-template-columns: 1fr; }
  .sticky-sidebar { position: relative; top: 0; height: auto; }
  .sidebar { min-height: auto; }
}
@media (max-width: 640px) {
  .history-meta { grid-template-columns: 1fr; }
}
.stats-grid-5 { grid-template-columns: repeat(5, minmax(0,1fr)); }
.quick-actions-row .button { min-width: 140px; }
.reservation-help { margin-top: 18px; line-height: 1.6; }
.scan-video { width: 100%; min-height: 280px; border-radius: 18px; background: rgba(255,255,255,0.03); border: 1px solid var(--line); object-fit: cover; }
.barcode-scan-grid { align-items: start; }
@media (max-width: 1280px) { .stats-grid-5 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 900px) { .stats-grid-5 { grid-template-columns: 1fr; } }
body.modal-open { overflow: hidden; }
.auth-wrap { display: flex; justify-content: center; align-items: center; padding: 24px; }
.confirm-modal[hidden] { display: none; }
.confirm-modal { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; }
.confirm-overlay { position: absolute; inset: 0; background: rgba(2,6,23,.72); }
.confirm-dialog { position: relative; z-index: 1; width: min(440px, calc(100vw - 32px)); border-radius: 24px; padding: 24px; }
.confirm-dialog h3 { margin: 0 0 8px; }
.confirm-dialog p { margin: 0 0 18px; color: var(--muted); }
.form-grid-uniform > label, .form-grid-uniform > .full-span { align-self: start; }
.form-grid-uniform input, .form-grid-uniform textarea, .form-grid-uniform select { min-height: 52px; }
.form-grid-uniform textarea { min-height: 124px; resize: vertical; }
.section-top-gap { margin-top: 18px; }
@media (max-width: 820px) {
  .shell { padding: 14px; }
  .sidebar { border-radius: 22px; min-height: auto; }
  .sticky-sidebar { position: static; height: auto; }
  .nav { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .nav a { text-align: center; }
  .form-actions { flex-wrap: wrap; justify-content: stretch; }
  .form-actions .button { width: 100%; }
  .toolbar { display: grid; grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .page-head h1 { font-size: 28px; }
  .brand { font-size: 26px; }
  .nav { grid-template-columns: 1fr; }
  th, td { padding: 12px 10px; }
}

.barcode-scan-top { align-items: stretch; }
.scan-search-card, .scan-camera-card { min-height: 292px; }
.scan-result-card { margin-top: 0; min-height: 0; }
.scan-result-card .empty { padding: 28px 20px; }
.login-brand-note { margin-top: 6px; }
@media (max-width: 900px) {
  .barcode-scan-top { grid-template-columns: 1fr; }
  .scan-search-card, .scan-camera-card { min-height: auto; }
}


.auth-wrap { min-height: 100vh; }
.auth-card-clean { position: relative; }
.auth-inline-message { margin-bottom: 14px; padding: 12px 14px; border-radius: 14px; font-size: 14px; }
.auth-inline-message.success { background: var(--success-soft); color: var(--success); border: 1px solid rgba(52,211,153,.16); }
.auth-inline-message.error { background: rgba(127,29,29,.28); color: #fecaca; border: 1px solid rgba(248,113,113,.18); }
.barcode-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, 1fr); gap: 20px; align-items: start; }
.barcode-left-stack { display: grid; gap: 20px; }
.scan-reader { width: 100%; min-height: 360px; border-radius: 18px; overflow: hidden; background: rgba(255,255,255,0.03); border: 1px solid var(--line); }
.scan-reader video { border-radius: 18px; }
.scan-helper-box { margin-top: 6px; line-height: 1.7; }
.scan-camera-card { min-height: 100%; }
.site-footer { padding-bottom: 20px; }
@media (max-width: 980px) {
  .barcode-layout { grid-template-columns: 1fr; }
}

/* Generel layoutfinpudsning */
.auth-card-clean { width: min(520px, calc(100vw - 32px)); padding: 34px 28px 28px; }
.auth-topline { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.auth-inline-chip { display:inline-flex; align-items:center; padding:8px 12px; border-radius:999px; font-size:13px; font-weight:700; }
.auth-inline-chip.error { background: rgba(127,29,29,.32); color:#fecaca; border:1px solid rgba(248,113,113,.18); }
.auth-inline-chip.success { background: var(--success-soft); color: var(--success); border:1px solid rgba(52,211,153,.16); }
.auth-form-tight { margin-top: 18px; }

.barcode-layout-balanced { grid-template-columns: minmax(0,1.25fr) minmax(320px,.9fr); gap:20px; }
.full-span-card { grid-column: 1 / -1; }
.scan-search-card, .scan-camera-card, .scan-result-card { min-height: 0; }
.scan-reader { min-height: 300px; }
.scan-toolbar .button { min-width: 130px; }
.scan-result-card .empty { padding: 40px 24px; }

input[type="file"] { padding: 12px 14px; line-height: 1.4; }
input[type="file"]::file-selector-button {
  margin-right: 14px; border: 0; border-radius: 12px; padding: 10px 14px;
  background: rgba(255,255,255,.1); color: var(--text); cursor: pointer;
}
.template-note {
  margin-top: 14px; padding: 14px 16px; border-radius: 16px; background: rgba(255,255,255,.03);
  border: 1px solid var(--line); color: var(--muted); line-height: 1.65;
}
.import-report { display:grid; gap:14px; }
.import-report-grid { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:12px; }
.import-report-card { padding:14px 16px; border-radius:16px; border:1px solid var(--line); background: rgba(255,255,255,.03); }
.import-report-card strong { display:block; font-size:24px; margin-top:4px; }
.import-errors { margin:0; padding-left:18px; color:#fecaca; display:grid; gap:8px; }
.settings-helper-list { margin:0; padding-left:18px; color:var(--muted); display:grid; gap:8px; }

@media (max-width: 900px) {
  .auth-topline { align-items:flex-start; }
  .barcode-layout-balanced { grid-template-columns: 1fr; }
  .import-report-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .import-report-grid { grid-template-columns: 1fr; }
}


.auth-badge-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;min-width:0}
.auth-inline-chip{margin-left:6px}
.auth-card-clean .auth-inline-chip{max-width:calc(100% - 150px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.permission-toggle-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.permission-grid .permission-item input[type="checkbox"], .checkbox-row input[type="checkbox"]{width:18px;height:18px}
.page-head h1{word-break:break-word}
.mobile-spacer-fix{height:0}

@media (max-width: 1100px){
  .shell{padding:14px;gap:14px}
  .sidebar{border-radius:22px;padding:16px;min-height:auto}
  .sticky-sidebar{position:static;height:auto}
  .nav{margin:18px 0}
  .sidebar-footer{gap:10px}
  .content{gap:14px}
  .page-head h1{font-size:24px}
  .page-head p{font-size:15px}
  .card{padding:18px;border-radius:20px}
  .section-head h2{font-size:20px}
  .stats-grid{grid-template-columns:1fr}
  .permission-toggle-row{grid-template-columns:1fr}
  .auth-card-clean{width:min(100%,520px);padding:24px 18px 18px;margin:14px auto}
  .auth-topline{margin-bottom:6px}
  .auth-badge-row{align-items:flex-start;gap:8px}
  .auth-card-clean .auth-inline-chip{max-width:100%;white-space:normal}
  .scan-search-card,.scan-camera-card,.scan-result-card{margin:0}
  .barcode-layout-balanced{gap:14px}
  .scan-reader{min-height:260px}
  .toolbar,.scan-toolbar,.actions{flex-wrap:wrap}
}

@media (max-width: 700px){
  html,body{overflow-x:hidden}
  body{padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
  .shell{padding:0;gap:10px;grid-template-columns:1fr}
  .sidebar{margin:0 0 6px;border-radius:0 0 22px 22px;padding:12px 12px 10px;gap:10px}
  .brand{font-size:18px;line-height:1.1}
  .muted{font-size:13px}
  .nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
  .nav a{padding:10px 12px;border-radius:12px;font-size:14px}
  .sidebar-footer{gap:8px}
  .user-chip{padding:8px 10px}
  .avatar{width:34px;height:34px}
  .content{padding:0 10px 16px}
  .page-head{padding:2px 2px 0}
  .page-head h1{font-size:20px}
  .page-head p{font-size:13px;line-height:1.4}
  .card{padding:14px;border-radius:16px}
  .form-grid,.two-col,.permission-grid,.import-report-grid,.history-meta{grid-template-columns:1fr}
  label span{font-size:13px}
  input,select,textarea,button,.button{width:100%;max-width:100%}
  input,select,textarea{padding:13px 14px}
  textarea{min-height:110px}
  .form-actions{grid-template-columns:1fr;display:grid;gap:10px}
  .button,.small-btn{justify-content:center}
  table{min-width:640px}
  /* -------------------------------------------------------------------------
 * Tables and lists
 * ------------------------------------------------------------------------- */

.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .section-head{gap:10px}
  .section-head.wrap{gap:10px}
  .section-head.wrap .actions{width:100%;display:grid;gap:10px}
  .toolbar,.scan-toolbar,.actions{display:grid;grid-template-columns:1fr;gap:10px}
  .scan-reader{min-height:220px}
  .scan-result-card .empty{padding:20px 8px}
  .site-footer{padding:12px 2px 26px;font-size:12px}
}
@media (max-width: 520px){
  .nav{grid-template-columns:1fr}
  .user-chip{padding:8px}
}

@media (max-width: 430px){
  .auth-card-clean{padding:20px 14px 16px}
  .auth-badge-row{flex-wrap:wrap}
  .auth-inline-chip{font-size:12px;padding:7px 10px}
  .brand{font-size:20px}
  .page-head h1{font-size:20px}
}

.barcode-layout-tight{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.9fr);grid-template-areas:"search camera" "result camera";gap:20px;align-items:start}
.scan-search-card{grid-area:search}
.scan-camera-card{grid-area:camera}
.scan-result-card{grid-area:result}
@media (max-width: 980px){.barcode-layout-tight{grid-template-columns:1fr;grid-template-areas:"search" "camera" "result";gap:14px}}


.mobile-nav-toggle{display:none}
.backup-status-stack{display:grid;gap:6px}
.auth-badge-row{gap:14px}
.auth-inline-chip{margin-left:0}
.barcode-layout-tight{grid-template-columns:minmax(0,1fr) minmax(360px,.96fr);gap:18px}
.scan-search-card,.scan-camera-card,.scan-result-card{padding:20px}
.scan-result-card .empty{display:grid;place-items:center;min-height:132px;text-align:center;color:var(--muted)}
.scan-camera-card{display:grid;align-content:start}
.scan-camera-card .helper{margin-top:10px}
.section-head.wrap .actions .button{white-space:nowrap}
@media (max-width:700px){
  .mobile-nav-toggle{display:flex;width:100%;margin:10px 0 4px}
  .nav{display:none !important}
  .nav.open{display:grid !important}
  .sidebar{margin:0;border-radius:0 0 20px 20px;padding:12px}
  .brand{font-size:16px}
  .content{padding:0 10px 18px}
  .page-head h1{font-size:18px}
  .page-head p{font-size:13px;line-height:1.35}
  .scan-reader{min-height:180px}
  .barcode-layout-tight{grid-template-columns:1fr;grid-template-areas:"search" "camera" "result";gap:12px}
  .scan-toolbar{display:grid;grid-template-columns:1fr;gap:10px}
  .scan-helper-box{font-size:12px;line-height:1.5}
  .site-footer{padding-bottom:18px}
}


/* Layout og mobilnavigation */
.auth-badge-row{display:flex;align-items:center;gap:12px;flex-wrap:nowrap}
.auth-inline-chip{margin-left:2px}
.auth-card-clean .auth-inline-chip{max-width:none}
.barcode-layout-symmetric{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:'search camera' 'result result';gap:18px;align-items:stretch}
.barcode-layout-symmetric .scan-search-card,.barcode-layout-symmetric .scan-camera-card{height:100%}
.barcode-layout-symmetric .scan-result-card{min-height:210px}
.scan-result-card .empty{min-height:140px}
.backup-actions-inline{display:flex;gap:12px;align-items:center}
@media (max-width:700px){
  .mobile-nav-toggle{display:flex;width:auto;min-width:92px;margin:0 0 0 auto}
  .sidebar{position:sticky;top:0;z-index:40;border-radius:0 0 18px 18px;padding:12px 12px 12px}
  .sidebar > .sidebar-footer{display:none}
  .sidebar:not(.mobile-open) > .nav{display:none !important}
  .sidebar.mobile-open > .nav{display:grid !important;grid-template-columns:1fr;gap:8px;margin:12px 0}
  .sidebar.mobile-open > .sidebar-footer{display:grid}
  .sidebar .brand{font-size:18px}
  .sidebar .muted{font-size:12px}
  .content{padding:0 10px 20px}
  .page-head{padding-top:8px}
  .stats-grid,.stats-grid-5{grid-template-columns:1fr}
  .quick-actions-row{display:grid;grid-template-columns:1fr;gap:10px}
  .barcode-layout-symmetric{grid-template-columns:1fr;grid-template-areas:'search' 'camera' 'result';gap:12px}
  .scan-search-card,.scan-camera-card,.scan-result-card{padding:14px}
  .scan-reader{min-height:200px}
  .scan-toolbar .button{min-width:0}
}

/* Mobilfinpudsning */
@media (max-width:700px){
  .content{padding:0 8px 18px}
  .page-head{padding-top:6px}
  .page-head h1{font-size:17px}
  .page-head p{font-size:12px}
  .card{padding:12px;border-radius:16px}
  .sidebar{padding:10px 10px 12px}
  .sidebar.mobile-open > .nav{margin:10px 0}
  .user-chip{border-radius:14px}
  .button,.small-btn{padding:12px 14px}
  .scan-reader{min-height:190px}
}

.permission-toggle-stack{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.permission-toggle-stack .checkbox-row{margin-top:0}

/* responsive patch april 2026 */
img,
svg,
canvas,
video {
  max-width: 100%;
  height: auto;
}

@media (max-width: 900px) {
  .sticky-sidebar {
    position: static !important;
    top: auto !important;
    height: auto !important;
    overflow: visible !important;
  }

  .sidebar {
    min-height: auto !important;
  }

  .content,
  .card,
  .section-head,
  .toolbar,
  .actions,
  .form-actions,
  .quick-actions-row,
  .table-wrap,
  .history-row,
  .history-meta,
  .barcode-layout,
  .barcode-layout-balanced,
  .barcode-layout-tight,
  .barcode-layout-symmetric,
  .barcode-left-stack,
  .two-col,
  .form-grid,
  .permission-grid,
  .permission-toggle-row,
  .import-report-grid,
  .stats-grid,
  .stats-grid-5 {
    min-width: 0;
  }

  .toolbar input,
  .toolbar select,
  .toolbar textarea,
  .toolbar .button,
  .actions .button,
  .quick-actions-row .button,
  .form-actions .button,
  .backup-actions-inline .button {
    min-width: 0 !important;
  }
}

@media (max-width: 700px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .shell {
    padding: 0 !important;
    gap: 10px !important;
    grid-template-columns: 1fr !important;
  }

  .sidebar {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    margin: 0 0 6px !important;
    border-radius: 0 0 18px 18px !important;
    padding: 10px !important;
    gap: 10px !important;
  }

  .mobile-nav-toggle {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  .sidebar.mobile-open > .nav {
    margin: 10px 0 0 !important;
  }

  .content {
    padding: 0 8px 18px !important;
    gap: 12px !important;
  }

  .page-head {
    padding-top: 4px !important;
  }

  .page-head h1 {
    font-size: 19px !important;
    line-height: 1.2 !important;
  }

  .page-head p,
  .muted.small,
  .helper {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  .card,
  .scan-search-card,
  .scan-camera-card,
  .scan-result-card,
  .confirm-dialog,
  .auth-card,
  .auth-card-clean {
    padding: 14px !important;
    border-radius: 16px !important;
  }

  .section-head {
    align-items: stretch !important;
  }

  .section-head > * {
    min-width: 0;
  }

  .toolbar,
  .actions,
  .quick-actions-row,
  .form-actions,
  .backup-actions-inline,
  .scan-toolbar,
  .section-head.wrap .actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .button,
  .small-btn,
  button,
  input,
  select,
  textarea {
    width: 100%;
    max-width: 100%;
  }

  .button,
  .small-btn,
  button {
    min-width: 0 !important;
    justify-content: center;
  }

  .table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  table {
    min-width: 640px;
  }

  th,
  td {
    white-space: nowrap;
  }

  td:last-child,
  td:nth-child(6) {
    white-space: normal;
    min-width: 180px;
  }

  .user-chip {
    min-width: 0;
  }

  .user-chip > div:last-child {
    min-width: 0;
  }

  .user-chip > div:last-child > div {
    overflow-wrap: anywhere;
  }

  .scan-reader,
  .scan-video {
    min-height: 190px !important;
  }
}

@media (max-width: 430px) {
  .brand {
    font-size: 18px !important;
  }

  .page-head h1 {
    font-size: 18px !important;
  }

  .nav a {
    font-size: 14px !important;
  }

  .card,
  .scan-search-card,
  .scan-camera-card,
  .scan-result-card,
  .confirm-dialog,
  .auth-card,
  .auth-card-clean {
    padding: 12px !important;
  }
}

.table-product-image { width: 74px; height: 74px; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); background: rgba(255,255,255,.03); display: grid; place-items: center; }
.table-product-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.table-product-image.placeholder { padding: 8px; text-align: center; }
.product-images-editor { display: grid; gap: 16px; }
.primary-image-preview { display: grid; grid-template-columns: 140px minmax(0,1fr); gap: 16px; padding: 16px; border-radius: 18px; border: 1px solid var(--line); }
.primary-image-preview__media { width: 140px; height: 140px; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); }
.primary-image-preview__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.primary-image-preview__content { display: grid; align-content: center; gap: 8px; }
.product-image-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 220px)); gap: 16px; justify-content: start; }
.product-image-card { padding: 14px; border-radius: 18px; border: 1px solid var(--line); display: grid; gap: 12px; }
.product-image-card__media { width: 100%; aspect-ratio: 1 / 1; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); background: rgba(255,255,255,.03); }
.product-image-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.compact-row { margin: 0; }

.notes-list { display: grid; gap: 20px; }
.note-card { border-left: 4px solid rgba(255,255,255,.08); }
.note-important { border-left-color: #ef4444; }
.note-completed { opacity: .92; }
.task-accordion.note-completed { border-left-color: var(--success); }
.note-badge-row { display: flex; gap: 10px; flex-wrap: wrap; }
.note-body { line-height: 1.7; white-space: normal; }
.note-replies { display: grid; gap: 12px; margin-top: 18px; }
.note-reply { padding: 14px 16px; border-radius: 16px; border: 1px solid var(--line); }
.note-reply__meta { font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.note-actions-grid { display: grid; gap: 14px; margin-top: 18px; }
.note-action-buttons { display: flex; justify-content: flex-end; }

@media (max-width: 900px) {
  .primary-image-preview { grid-template-columns: 1fr; }
  .primary-image-preview__media { width: 100%; height: auto; aspect-ratio: 1 / 1; }
  .note-action-buttons { justify-content: stretch; }
  .note-action-buttons .button { width: 100%; }
}


.task-tabs-card { padding: 10px 16px; margin-bottom: 18px; }
.task-tabs { display:flex; gap: 12px; flex-wrap: wrap; }
.task-tab { display:inline-flex; align-items:center; justify-content:center; min-width: 170px; padding: 12px 18px; border-radius: 14px; border:1px solid var(--line); background: rgba(255,255,255,.03); color: var(--muted); }
.task-tab.active { color: var(--text); background: rgba(59,130,246,.16); border-color: rgba(59,130,246,.35); }
.task-button-stack { display:flex; justify-content:flex-end; margin-top: 14px; }
.task-button-stack form { margin-top: 8px; }
.note-actions-grid { gap: 18px; }
.note-action-buttons .button { min-width: 190px; }
@media (max-width: 700px) {
  .task-tab { width: 100%; }
  .task-button-stack { justify-content: stretch; }
  .task-button-stack form, .task-button-stack .button { width: 100%; }
}


.brand-link { display:inline-block; }
.task-actions-spaced { gap: 28px; }
.task-button-stack-spaced { gap: 14px; min-width: 220px; }
.task-button-stack-spaced form + form { margin-top: 8px; }
.deadline-chip { margin-top: 8px; }

.dashboard-task-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 0; }
.dashboard-task-section { display: grid; gap: 12px; margin-top: 10px; }
.dashboard-task-section h3 { margin: 0; font-size: 15px; color: var(--muted); }
.dashboard-task-item { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.03); }
.dashboard-task-item strong { display: block; margin-bottom: 4px; }
.small-empty { padding: 14px 0; text-align: left; }
.task-list-compact { gap: 14px; }
.task-accordion { overflow: hidden; }
.task-summary-row { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; }
.task-summary-row::-webkit-details-marker { display: none; }
.task-summary-main { min-width: 0; }
.task-summary-main strong { display: block; margin-bottom: 4px; }
.task-accordion-body { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
@media (max-width: 1000px) {
  .dashboard-task-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .dashboard-task-item,
  .task-summary-row { flex-direction: column; align-items: flex-start; }
  .task-summary-row .note-badge-row,
  .dashboard-task-item .note-badge-row { width: 100%; }
}


.dashboard-quick-card { margin-bottom: 0; }
.dashboard-task-grid-closer { margin-top: 0; }
.group-task-item { margin-bottom: 12px; }
.group-task-item:last-child { margin-bottom: 0; }
.task-reassign-grid { margin: 14px 0 18px; }
.note-action-buttons .button, .task-reassign-grid .button { min-width: 170px; }

.task-accordion { scroll-margin-top: 96px; }
.section-head.wrap > form.js-confirm-form { margin-left: auto; }


.nav-badge {
  display: inline-flex;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #ef4444;
  border: 1px solid rgba(248, 113, 113, 0.72);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  margin-left: 8px;
}

.mention-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(37, 99, 235, 0.18);
  border: 1px solid rgba(96, 165, 250, 0.32);
  color: #bfdbfe;
  font-weight: 700;
}

.dashboard-note-alerts {
  margin-top: 0;
}

.dashboard-note-mentions {
  display: grid;
  gap: 12px;
}

.dashboard-note-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  border-radius: 18px;
  border: 1px solid rgba(148, 163, 184, 0.16);
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.72), rgba(15, 23, 42, 0.56));
  text-decoration: none;
  color: inherit;
}

.dashboard-note-item:hover {
  border-color: rgba(96, 165, 250, 0.28);
}

.dashboard-note-snippet {
  margin-top: 6px;
  color: rgba(226, 232, 240, 0.9);
}


.note-mention-field {
  position: relative;
}

.mention-suggestions {
  position: static;
  margin-top: 10px;
  z-index: 80;
  display: grid;
  gap: 6px;
  padding: 10px;
  max-height: 260px;
  overflow-y: auto;
  border: 1px solid rgba(99, 102, 241, 0.22);
  border-radius: 16px;
  background: rgba(8, 15, 35, 0.98);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}

.mention-suggestions[hidden] {
  display: none !important;
}

.mention-suggestion {
  width: 100%;
  text-align: left;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  color: #e5eefc;
  border-radius: 12px;
  padding: 10px 12px;
  cursor: pointer;
}

.mention-suggestion:hover,
.mention-suggestion.active {
  background: rgba(59, 130, 246, 0.18);
  border-color: rgba(96, 165, 250, 0.35);
}


.task-toolbar-head { align-items: flex-start; }
.task-bulk-actions { justify-content: flex-end; }
.task-button-stack-left { justify-content: flex-start; }
.task-edit-panel > summary { list-style: none; margin-bottom: 14px; }
.task-edit-panel > summary::-webkit-details-marker { display: none; }
.task-inline-edit-toggle summary { list-style:none; }
.task-inline-edit-toggle summary::-webkit-details-marker { display:none; }
.task-edit-grid { margin-top: 0; }
.mention-open { position: relative; z-index: 30; margin-bottom: 220px; }
.mention-suggestion { display:flex; flex-direction:column; gap:4px; }
.mention-suggestion__title { font-weight:700; color:#f8fbff; }
.mention-suggestion__sub { font-size:12px; color:#8fb2ff; }


.task-search-form { margin-left: auto; }
.task-search-form input { min-width: 320px; }
.task-toolbar-head { gap: 14px; align-items: center; }
.task-bulk-actions { margin-left: auto; align-items: center; }
.task-button-stack-inline { justify-content: flex-start; gap: 12px; flex-wrap: wrap; margin-top: 12px; }
.task-button-stack-inline form { margin-top: 0; }
.task-button-stack-inline .button, .task-button-stack-inline button { min-width: 0; }
.task-edit-toggle-button, .task-edit-open-button { min-width: 0 !important; }
.task-edit-panel { margin: 12px 0 18px; }
.task-edit-panel > summary { display: inline-flex; }
@media (max-width: 900px) {
  .task-toolbar-head { align-items: stretch; }
  .task-search-form { margin-left: 0; width: 100%; }
  .task-search-form input { min-width: 0; width: 100%; }
  .task-bulk-actions { margin-left: 0; justify-content: flex-start; }
}


.task-search-inline { display:flex; align-items:center; gap:10px; flex-wrap:nowrap; justify-content:center; }
.task-search-inline input { flex:0 1 360px; min-width:280px; max-width:420px; }
.task-search-inline .button { display:none; }
.task-edit-panel { margin: 14px 0 18px; }
.task-edit-panel[hidden] { display:none !important; }
.task-actions-spaced { gap: 22px; }
.task-button-stack-inline { justify-content:flex-end; align-items:center; margin-left:auto; gap:12px; flex-wrap:wrap; }
.task-button-stack-inline .button { min-width:0; }
@media (max-width: 900px) {
  .task-search-inline { width:100%; }
  .task-search-inline input { width:100%; min-width:0; }
}


.note-search-inline { display:flex; align-items:center; justify-content:center; width:100%; }
.note-search-inline input { flex:0 1 360px; min-width:280px; max-width:420px; }
.danger-zone-card { border-color: rgba(239,68,68,0.28); }
.danger-zone-card .section-head h2 { color: #fecaca; }

@media (max-width: 900px) {
  .task-search-inline, .note-search-inline { width:100%; justify-content:stretch; }
  .task-button-stack-inline { justify-content:flex-start; }
}


/* Opgaver og noter - layout */
.task-actions-spaced { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:22px; }
.task-button-stack-inline { justify-content:flex-end !important; align-items:center; gap:12px; flex-wrap:wrap; margin-left:auto; }
.task-button-stack-inline form { margin:0; }
.task-search-inline, .note-search-inline { display:flex; align-items:center; justify-content:flex-start; }
.task-search-inline input, .note-search-inline input { flex:0 1 360px; min-width:280px; max-width:420px; }
.settings-mail-test { margin-top:12px; }
@media (max-width: 900px) { .task-actions-spaced { grid-template-columns:1fr; } .task-button-stack-inline { justify-content:flex-start !important; } .task-search-inline input, .note-search-inline input { width:100%; min-width:0; max-width:none; } }


/* Opgaver og noter - responsive layout */
.task-actions-spaced { display:flex !important; flex-direction:column; gap:18px; }
.task-button-stack-inline { align-self:flex-end; justify-content:flex-end !important; margin-left:auto; }
/* Opgaver og mail - endeligt layout */
.task-actions-spaced { display:grid !important; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:22px; }
.task-actions-spaced > form.grid.form-grid { min-width:0; }
.task-actions-spaced > form.grid.form-grid textarea[name="reply_body"] { width:100%; max-width:100%; min-height:120px; }
.task-button-stack-inline { align-self:end; justify-content:flex-end !important; margin-left:auto; gap:12px; flex-wrap:wrap; }
.task-button-stack-inline form, .task-button-stack-inline button { margin:0; }
.task-search-inline, .note-search-inline { display:block; }
.task-search-inline input, .note-search-inline input { display:block; width:360px; max-width:100%; min-width:0; }
@media (max-width: 900px) {
  .task-actions-spaced { grid-template-columns:1fr !important; }
  .task-button-stack-inline { align-self:stretch; justify-content:flex-start !important; }
  .task-search-inline input, .note-search-inline input { width:100%; max-width:none; }
}


/* Stabilt opgave- og formularlayout */
.task-actions-spaced { column-gap: 40px !important; }
.task-actions-spaced > form.grid.form-grid textarea[name="reply_body"] { width: calc(100% - 24px) !important; }
.task-actions-spaced > form.grid.form-grid .form-actions { padding-right: 12px; }

/* TV dashboard + barcode inline */
.barcode-inline-input{display:flex;align-items:center;gap:10px}.barcode-inline-input input{flex:1}.barcode-inline-trigger{border:0;border-radius:14px;padding:0 14px;height:48px;cursor:pointer;background:rgba(59,130,246,.16);color:#fff;font-size:18px}.barcode-modal-overlay{position:fixed;inset:0;background:rgba(2,6,23,.75);display:flex;align-items:center;justify-content:center;padding:20px;z-index:9999}.barcode-modal-card{width:min(720px,100%);padding:20px}.tv-dashboard-body{margin:0;height:100vh;overflow:hidden;background:linear-gradient(180deg,#050814 0%,#0b1220 100%);color:#e5eefc}.tv-dashboard-shell{height:100vh;box-sizing:border-box;padding:24px 24px 44px;display:grid;grid-template-rows:auto auto 1fr;gap:20px;overflow:hidden}.tv-topbar{display:flex;justify-content:space-between;align-items:center;padding:24px;border-radius:24px}.tv-eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:#93c5fd;margin-bottom:8px}.tv-clock-wrap{text-align:right}.tv-clock{font-size:56px;font-weight:800;line-height:1}.tv-date{font-size:18px;margin-top:8px}.tv-stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.tv-stat-card{padding:20px;border-radius:22px}.tv-stat-card span{display:block;color:#9fb2d1;margin-bottom:8px}.tv-stat-card strong{font-size:42px;line-height:1}.tv-grid{min-height:0;display:grid;grid-template-columns:1.1fr 1.4fr;gap:20px}.tv-panel{min-height:0;padding:20px;border-radius:24px;overflow:hidden}.tv-message-list,.tv-task-list{display:grid;gap:14px;max-height:100%;overflow:hidden}.tv-message-item,.tv-task-item{padding:18px;border-radius:18px;background:rgba(15,23,42,.58);border:1px solid rgba(148,163,184,.18)}.tv-message-item-important{border-color:rgba(248,113,113,.45)}.tv-message-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px;color:#9fb2d1;font-size:14px}.tv-message-body{font-size:20px;line-height:1.4}.tv-profile-settings{padding:16px;border-radius:18px}.tv-profile-settings .permission-grid{align-items:end}.tv-profile-settings input[type="number"]{width:100%}.tv-footer{position:fixed;left:0;right:0;bottom:8px;z-index:20;margin:0;padding:0 12px;text-align:center;pointer-events:none;color:rgba(226,232,240,.72);font-size:12px}.tv-footer div{display:inline-block}@media (max-width:1100px){.tv-grid,.tv-stat-row{grid-template-columns:1fr}.tv-topbar{flex-direction:column;align-items:flex-start}.tv-clock-wrap{text-align:left}}

.notes-page-tabs{margin-bottom:18px}.tv-message-admin-card textarea{min-height:150px}.tv-profile-settings{display:none;padding:18px 20px;border-radius:22px;border:1px solid rgba(96,165,250,.2);background:linear-gradient(180deg,rgba(15,23,42,.82) 0%,rgba(15,23,42,.64) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.tv-profile-settings__head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}.tv-profile-settings__title{display:block;font-size:18px;font-weight:700;margin-bottom:6px}.tv-profile-settings__grid{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}.tv-setting-card{padding:14px 16px;border-radius:18px;background:rgba(15,23,42,.55);border:1px solid rgba(148,163,184,.16)}.tv-setting-card--toggle{display:flex;flex-direction:column;justify-content:center;gap:8px}.tv-setting-card--toggle input{margin-bottom:4px}.tv-logout-trigger{position:fixed;left:0;bottom:0;width:96px;height:96px;opacity:.01;background:transparent;border:0;z-index:30;cursor:default}.tv-logout-panel{position:fixed;inset:0;background:rgba(2,6,23,.58);display:flex;align-items:flex-start;justify-content:flex-start;padding:22px;z-index:40}.tv-logout-panel__card{min-width:320px;padding:18px 18px 16px;border-radius:22px}.button.ghost{background:transparent;border:1px solid rgba(148,163,184,.26);color:#dbe7fb}@media (max-width:900px){.tv-profile-settings__grid{grid-template-columns:1fr}}


.tv-message-expiry-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}
.tv-message-admin-card .form-grid{align-items:start}
.tv-message-admin-card input[type="date"],.tv-message-admin-card input[type="time"]{width:100%}
.tv-profile-settings[data-visible="1"],.tv-profile-settings.is-visible{display:block}
.tv-profile-settings__title{font-size:20px}
.tv-profile-settings .helper{max-width:62ch}
.tv-setting-card{min-height:100%;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.tv-setting-card span:first-child{display:block;margin-bottom:8px;font-weight:700}
.tv-setting-card--toggle{align-items:flex-start}
.tv-setting-card--toggle .checkbox-row,.tv-setting-card--toggle input{margin:0}
.tv-quick-actions{position:fixed;left:18px;bottom:18px;z-index:50;display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:18px;background:rgba(5,8,20,.82);backdrop-filter:blur(14px);border:1px solid rgba(148,163,184,.18);box-shadow:0 18px 40px rgba(0,0,0,.32)}
.tv-quick-actions[hidden]{display:none}
.tv-logout-trigger{position:fixed;left:0;bottom:0;width:120px;height:110px;opacity:.01;background:transparent;border:0;z-index:30;cursor:default}
@media (max-width:900px){.tv-message-expiry-grid{grid-template-columns:1fr}.tv-quick-actions{right:18px;left:18px;justify-content:flex-end}}


/* Agreed TV / notes refinements */
.tv-message-admin-card .section-head,
.tv-message-admin-card .form-grid,
.tv-message-admin-card .tv-message-expiry-grid,
.tv-message-admin-card .form-actions { row-gap: 16px; }
.tv-message-admin-card textarea { min-height: 160px; }
.tv-message-admin-card .tv-message-expiry-grid { align-items: end; grid-template-columns: minmax(0,1.6fr) minmax(220px,.9fr); }
.tv-message-admin-card .tv-message-expiry-grid > label { min-width: 0; }
.tv-message-admin-card .tv-message-expiry-grid input[type="date"],
.tv-message-admin-card .tv-message-expiry-grid input[type="time"],
.tv-message-admin-card .tv-message-expiry-grid select { height: 52px; }
.tv-panel { min-height: 0; }
.tv-message-list,
.tv-task-list { gap: 16px; }
.tv-message-item,
.tv-task-item { padding: 18px; }
.tv-message-meta,
.tv-task-item .note-badge-row { gap: 12px; }
.tv-task-item strong { display: inline-block; margin-bottom: 8px; }
.tv-task-item .muted.small { line-height: 1.55; margin-top: 2px; }
.tv-task-item .note-badge-row { margin-top: 12px; }
.tv-quick-actions { top: auto; bottom: 18px; left: 18px; right: auto; }
.tv-logout-trigger { top: auto; bottom: 0; left: 0; width: 140px; height: 120px; }


/* Godkendt layoutfinpudsning */
.tv-message-admin-form{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.95fr) minmax(220px,.58fr);gap:20px;align-items:end}
.tv-message-admin-form > label{align-self:end}
.tv-message-admin-form .full-span{grid-column:1 / -1}
.tv-message-admin-form input[type="date"],.tv-message-admin-form input[type="time"],.tv-message-admin-form select{height:52px}
.tv-message-admin-form .form-actions{margin-top:4px}
.tv-task-list{gap:14px}
.tv-task-item{padding:14px 18px}
.tv-task-item strong{margin-bottom:6px}
.tv-task-item .muted.small{margin-top:0;line-height:1.45}
.tv-task-item .note-badge-row{margin-top:10px;gap:10px}
@media (max-width:1100px){.tv-message-admin-form{grid-template-columns:1fr}}


/* Scan stregkode finpudsning */
.scan-page-single{display:flex;flex-direction:column;gap:18px;width:100%}
.scan-page-single > .scan-page-card,
.scan-page-single > .scan-result-card{width:100%;max-width:none;margin:0;padding:20px}
.scan-inline-box{margin-top:14px;padding:16px;border-radius:18px;background:rgba(15,23,42,.5);border:1px solid rgba(148,163,184,.18)}
.scan-inline-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.scan-reader-inline{width:100%;min-height:260px;overflow:hidden;border-radius:16px;border:1px solid rgba(148,163,184,.18);background:rgba(2,6,23,.55)}
.scan-status-inline{margin-top:10px}
.hidden{display:none !important}
@media (max-width:760px){
  .scan-page-single > .scan-page-card,
  .scan-page-single > .scan-result-card{padding:14px}
  .scan-inline-header{flex-direction:column;align-items:stretch}
  .scan-reader-inline{min-height:220px}
}

.reservation-search-results{display:none;gap:8px;margin-top:10px}.reservation-result-item{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:10px;border:1px solid rgba(148,163,184,.18);background:rgba(15,23,42,.42);color:inherit;cursor:pointer}.reservation-result-item:hover{background:rgba(30,41,59,.7)}
.stats-grid,.dashboard-task-grid,.quick-actions-row{align-items:stretch}


.manual-purchase-dialog{width:min(760px,calc(100vw - 32px))}
.product-form-actions-spaced{margin-top:20px;padding-top:10px;border-top:1px solid rgba(148,163,184,.12);gap:12px;align-items:center;justify-content:flex-end}
.product-form-actions-spaced .inline-form{display:inline-flex;margin:0}
.custom-context-menu{position:fixed;z-index:13020;display:grid;gap:6px;padding:10px;min-width:220px;background:#0b1220;border:1px solid rgba(148,163,184,.25);border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.38)}
.custom-context-menu[hidden]{display:none}
.custom-context-menu button{background:transparent;color:#fff;border:0;text-align:left;padding:10px 12px;border-radius:10px;cursor:pointer}
.custom-context-menu button:hover{background:rgba(255,255,255,.08)}
.security-toast{position:fixed;left:50%;top:18px;transform:translateX(-50%);z-index:13030;padding:12px 14px;border-radius:12px;background:#0b1220;border:1px solid rgba(248,113,113,.35);box-shadow:0 12px 28px rgba(0,0,0,.32);color:#fff;max-width:min(560px,calc(100vw - 32px));width:max-content}

.manual-purchase-row td{color:#dbe7ff}.manual-purchase-row td:last-child{font-weight:700;color:#93c5fd}
.product-form-actions-spaced .button.danger{line-height:1.2}

/* v3.9.2 - Sammenklappelige individuelle rettigheder */
.permission-accordion-list{display:grid;gap:10px;margin-top:12px}
.permission-accordion{padding:0;overflow:hidden}
.permission-accordion__summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;cursor:pointer;list-style:none;user-select:none}
.permission-accordion__summary::-webkit-details-marker{display:none}
.permission-accordion__summary:hover{background:rgba(255,255,255,.025)}
.permission-accordion__name{font-weight:800}
.permission-accordion__meta{display:flex;align-items:center;gap:10px;color:var(--muted,#94a3b8);font-size:.9rem;white-space:nowrap}
.permission-accordion__chevron{display:inline-block;font-size:1.15rem;line-height:1;transition:transform .18s ease}
.permission-accordion[open] .permission-accordion__chevron{transform:rotate(180deg)}
.permission-accordion__body{padding:0 12px 14px;border-top:1px solid rgba(148,163,184,.12)}
.permission-accordion__actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 0 10px}
@media (max-width:700px){
  .permission-accordion__summary{align-items:flex-start;padding:13px 14px}
  .permission-accordion__meta{font-size:.82rem}
  .permission-accordion__actions{justify-content:stretch}
  .permission-accordion__actions .button{flex:1}
}


/* v3.9.6 - Generelle vare-templates */
.template-picker-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border-radius:18px}
.template-picker-controls{display:flex;align-items:center;gap:10px;min-width:min(100%,520px)}
.template-picker-controls select{flex:1;min-width:220px}
.template-admin-card{margin-bottom:18px}
.template-list-card{overflow:hidden}
.template-note-preview{max-width:360px;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:760px){.template-picker-card{align-items:stretch;flex-direction:column}.template-picker-controls{min-width:0;flex-direction:column;align-items:stretch}.template-picker-controls select{min-width:0;width:100%}}


/* v3.9.7 - Licens- og aktiveringsnøgler */
.license-template-toggle>span{display:flex;flex-direction:column;gap:3px}.license-product-helper{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 17px;border-radius:18px}.license-key-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.license-key-stat{padding:15px 16px;border-radius:18px}.license-key-stat strong{display:block;font-size:1.45rem;margin-top:4px}.license-key-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em}.license-key-modal-overlay{position:fixed;inset:0;z-index:10020;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(2,6,23,.76);backdrop-filter:blur(7px)}.license-key-modal{width:min(620px,100%);padding:22px;border-radius:22px}.license-key-reveal-box{margin:18px 0;padding:18px;border-radius:16px;background:rgba(2,6,23,.56);border:1px solid rgba(96,165,250,.25);font-size:1.12rem;word-break:break-all}.license-key-modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.license-key-admin-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,.5fr);gap:16px}.license-key-admin-grid textarea{min-height:170px}.license-key-history-reversed{opacity:.62}.license-key-status-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.license-key-help{margin-top:8px;line-height:1.55}.license-key-empty{padding:18px;text-align:center}.license-key-list-card,.license-key-history-card{margin-top:18px}@media(max-width:800px){.license-key-summary{grid-template-columns:1fr 1fr}.license-key-admin-grid{grid-template-columns:1fr}.license-product-helper{align-items:stretch;flex-direction:column}.license-key-modal-actions .button{flex:1}}@media(max-width:480px){.license-key-summary{grid-template-columns:1fr}}

/* v3.9.8 - Template-type, templatebilleder og roligere licensflow */
.template-type-picker{padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:rgba(15,23,42,.45)}
.template-type-picker select{margin-top:6px}
.template-product-only[hidden],.template-license-help[hidden]{display:none!important}
.template-inner-grid{margin:0;width:100%}
.template-image-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.55fr);gap:16px;align-items:end;padding:16px 18px;border-radius:18px}
.template-image-current{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.template-image-current img{width:96px;height:72px;object-fit:cover;border-radius:14px;border:1px solid var(--line)}
.template-list-thumb{width:64px;height:48px;object-fit:cover;border-radius:10px;border:1px solid var(--line);display:block}
.license-key-copy-status{min-height:18px;margin-top:8px;color:#93c5fd}
@media(max-width:760px){.template-image-editor{grid-template-columns:1fr}.template-image-current img{width:84px;height:64px}}

/* v3.9.9 - Udleverede computere */
.issued-computer-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.issued-computer-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.issued-computer-filter input{min-width:280px}
.issued-computer-filter select{width:auto;min-width:190px}
@media(max-width:1100px){.issued-computer-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.issued-computer-stats{grid-template-columns:1fr}.issued-computer-filter{display:grid;width:100%}.issued-computer-filter input,.issued-computer-filter select,.issued-computer-filter .button{width:100%;min-width:0}}


/* v3.9.12 - Guides */
.guide-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.guide-toolbar label{min-width:220px;flex:1}.guide-list{display:grid;gap:12px}.guide-card{display:block;padding:18px;border-radius:18px;text-decoration:none;color:inherit}.guide-card:hover{background:rgba(255,255,255,.035)}.guide-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.guide-card__title{font-weight:800;font-size:1.05rem}.guide-card__excerpt{margin-top:9px;line-height:1.55}.guide-body{line-height:1.72;overflow-wrap:anywhere}.guide-body-text{white-space:pre-wrap}.guide-category{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;border:1px solid rgba(148,163,184,.2);background:rgba(15,23,42,.45);font-size:.82rem}.guide-detail-actions{display:flex;gap:10px;flex-wrap:wrap}.guide-inline-image img{display:block;max-width:min(100%,980px);max-height:720px;object-fit:contain;border-radius:16px;border:1px solid var(--line);background:rgba(2,6,23,.36)}.guide-inline-image figcaption{margin-top:7px;color:#94a3b8;font-size:.82rem}.guide-attachments{display:grid;gap:12px;margin-top:22px}.guide-image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.guide-image-gallery figure{margin:0}.guide-image-gallery img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:14px;border:1px solid var(--line)}.guide-image-gallery figcaption{margin-top:6px;color:#94a3b8;font-size:.78rem;overflow-wrap:anywhere}.guide-pdf-list{display:grid;gap:9px}.guide-pdf-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(15,23,42,.36)}.guide-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.guide-existing-files{display:grid;gap:10px;margin-top:16px}.guide-existing-file{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.guide-new-image-list{display:grid;gap:7px;margin-top:8px}.guide-new-image-item{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.82rem}.guide-insert-button{white-space:nowrap}.section-bottom-gap{margin-bottom:18px}@media(max-width:760px){.guide-upload-grid{grid-template-columns:1fr}.guide-pdf-item,.guide-existing-file,.guide-new-image-item{align-items:flex-start;flex-direction:column}}

/* v3.9.12 - Intern chat */
.helpdesk-chat-launcher{position:fixed;right:22px;bottom:22px;z-index:10040;width:58px;height:58px;border-radius:50%;border:1px solid rgba(96,165,250,.35);background:#101b32;color:#fff;box-shadow:0 16px 38px rgba(0,0,0,.36);cursor:pointer;display:flex;align-items:center;justify-content:center}.helpdesk-chat-launcher:hover{transform:translateY(-1px);background:#14213d}.helpdesk-chat-launcher svg{width:27px;height:27px;display:block}.helpdesk-chat-badge{position:absolute;right:-4px;top:-5px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;border:2px solid #050814;font-size:.72rem;display:flex;align-items:center;justify-content:center}.helpdesk-chat-panel{position:fixed;right:22px;bottom:92px;z-index:10039;width:min(440px,calc(100vw - 28px));height:min(650px,calc(100vh - 125px));border-radius:22px;overflow:hidden;display:grid;grid-template-rows:auto 1fr;background:#09111f;border:1px solid rgba(148,163,184,.23);box-shadow:0 22px 58px rgba(0,0,0,.48)}.helpdesk-chat-panel[hidden]{display:none}.helpdesk-chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(148,163,184,.16)}.helpdesk-chat-head strong{font-size:1.03rem}.helpdesk-chat-close{border:0;background:transparent;color:#cbd5e1;font-size:1.5rem;cursor:pointer;line-height:1}.helpdesk-chat-main{min-height:0;display:grid;grid-template-columns:155px minmax(0,1fr)}.helpdesk-chat-conversations{min-height:0;padding:10px;border-right:1px solid rgba(148,163,184,.14);display:grid;grid-template-rows:auto 1fr;gap:8px}.helpdesk-chat-search input{width:100%;min-width:0;padding:8px 9px;font-size:.78rem}.helpdesk-chat-conversation-list{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:6px}.helpdesk-chat-conversation{width:100%;border:0;border-radius:11px;background:transparent;color:#cbd5e1;padding:9px 10px;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:7px}.helpdesk-chat-conversation:hover,.helpdesk-chat-conversation.active{background:rgba(96,165,250,.12);color:#fff}.helpdesk-chat-conversation-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.helpdesk-chat-mini-badge{min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:.68rem;display:flex;align-items:center;justify-content:center}.helpdesk-chat-room{min-width:0;min-height:0;display:grid;grid-template-rows:auto 1fr auto}.helpdesk-chat-room-title{padding:11px 13px;border-bottom:1px solid rgba(148,163,184,.12);font-weight:750}.helpdesk-chat-messages{min-height:0;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:9px}.helpdesk-chat-message{max-width:88%;padding:9px 11px;border-radius:14px;background:rgba(30,41,59,.72);border:1px solid rgba(148,163,184,.12)}.helpdesk-chat-message.own{align-self:flex-end;background:rgba(37,99,235,.2);border-color:rgba(96,165,250,.22)}.helpdesk-chat-message__meta{font-size:.7rem;color:#94a3b8;margin-bottom:4px}.helpdesk-chat-message__body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}.helpdesk-chat-empty{margin:auto;text-align:center;color:#94a3b8;padding:18px}.helpdesk-chat-form{display:flex;gap:8px;padding:10px;border-top:1px solid rgba(148,163,184,.14)}.helpdesk-chat-form textarea{resize:none;min-height:42px;max-height:96px;height:42px;padding:10px 11px}.helpdesk-chat-form .button{padding-left:13px;padding-right:13px}.helpdesk-chat-status{font-size:.72rem;color:#94a3b8;padding:0 12px 8px;min-height:18px}
@media(max-width:640px){.helpdesk-chat-launcher{right:14px;bottom:14px}.helpdesk-chat-panel{inset:10px;width:auto;height:auto;border-radius:18px}.helpdesk-chat-main{grid-template-columns:118px minmax(0,1fr)}.helpdesk-chat-conversations{padding:7px}.helpdesk-chat-conversation{padding:8px 7px;font-size:.82rem}.helpdesk-chat-message{max-width:94%}.helpdesk-chat-search input{font-size:.72rem;padding:7px}}


/* v3.9.14 - Fokuseret guidevisning og justerbare billeder */
.guide-reader-overlay{position:fixed;inset:0;z-index:10060;background:linear-gradient(180deg,#050814 0%,#08111f 100%);overflow:auto;padding:24px}
.guide-reader-shell{width:min(1120px,100%);min-height:calc(100vh - 48px);margin:0 auto;padding:30px;border:1px solid rgba(148,163,184,.18);border-radius:24px;background:rgba(10,18,33,.96);box-shadow:0 28px 80px rgba(0,0,0,.42)}
.guide-reader-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:22px;margin-bottom:24px;border-bottom:1px solid rgba(148,163,184,.15)}
.guide-reader-head h2{margin-bottom:8px;font-size:clamp(1.65rem,3vw,2.25rem)}
.guide-reader-shell .guide-body{font-size:1.02rem;line-height:1.78}
.guide-resizable-image{position:relative;width:min(520px,100%);height:340px;min-width:220px;min-height:140px;max-width:100%;max-height:78vh;resize:both;overflow:hidden;border-radius:16px;border:1px solid var(--line);background:rgba(2,6,23,.36)}
.guide-resizable-image img{display:block;width:100%;height:100%;object-fit:contain;background:rgba(2,6,23,.18)}
.guide-resizable-image--gallery{width:min(420px,100%);height:270px}
.guide-inline-image{margin:22px 0}.guide-inline-image>.guide-resizable-image{margin:0}
.guide-resize-corner{position:absolute;right:5px;bottom:5px;width:17px;height:17px;border-right:2px solid rgba(226,232,240,.7);border-bottom:2px solid rgba(226,232,240,.7);pointer-events:none;opacity:.8}
.guide-image-gallery{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.guide-image-gallery figure{min-width:0}.guide-image-gallery .guide-resizable-image{max-width:100%}
@media(max-width:760px){.guide-reader-overlay{padding:0}.guide-reader-shell{min-height:100vh;border-radius:0;border-left:0;border-right:0;padding:20px 16px}.guide-reader-head{flex-direction:column}.guide-detail-actions{width:100%}.guide-detail-actions .button{flex:1}.guide-resizable-image,.guide-resizable-image--gallery{width:100%;height:250px;min-width:0;resize:vertical}.guide-image-gallery{grid-template-columns:1fr}}

/* v3.9.15: badges og guide-læsevisning */
.nav-badge[hidden],.helpdesk-chat-badge[hidden]{display:none!important}
.guide-reader-sticky-actions{position:sticky;top:12px;z-index:8;display:flex;justify-content:flex-end;gap:10px;height:0;overflow:visible;pointer-events:none}.guide-reader-sticky-actions .button{pointer-events:auto;box-shadow:0 10px 28px rgba(0,0,0,.28);background:rgba(15,23,42,.94);backdrop-filter:blur(12px)}.guide-reader-head{padding-right:190px}
@media(max-width:760px){.guide-reader-sticky-actions{top:8px;height:auto;margin-bottom:14px}.guide-reader-sticky-actions .button{flex:1}.guide-reader-head{padding-right:0}}

/* v3.9.16 browsernotifikationer */
.desktop-notification-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.desktop-notification-status .status-badge{white-space:nowrap}


/* v3.9.17 - guidekategori og mobil chat */
.guide-category-field{align-self:start}
.guide-category-autocomplete{position:relative;width:100%}
.guide-category-autocomplete input{min-height:48px;height:48px}
.guide-category-suggestions{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:70;max-height:240px;overflow:auto;padding:6px;border:1px solid rgba(96,165,250,.34);border-radius:14px;background:#0b1424;box-shadow:0 18px 44px rgba(0,0,0,.42)}
.guide-category-suggestions[hidden]{display:none!important}
.guide-category-suggestion{display:block;width:100%;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:#e5edf9;text-align:left;cursor:pointer}
.guide-category-suggestion:hover,.guide-category-suggestion.active{background:rgba(96,165,250,.16);color:#fff}

.helpdesk-chat-launcher{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
body.helpdesk-chat-open{overscroll-behavior:none}
@media(max-width:640px){
  body.helpdesk-chat-open{overflow:hidden}
  .helpdesk-chat-launcher{right:calc(14px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));width:56px;height:56px}
  .helpdesk-chat-launcher.is-open{display:none}
  .helpdesk-chat-panel{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;z-index:10070;overscroll-behavior:contain;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .helpdesk-chat-head{padding:12px 14px;min-height:58px}
  .helpdesk-chat-main{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);min-height:0}
  .helpdesk-chat-conversations{padding:8px 10px;border-right:0;border-bottom:1px solid rgba(148,163,184,.14);display:grid;grid-template-rows:auto auto;gap:7px;min-height:0;max-height:150px}
  .helpdesk-chat-search input{font-size:16px;padding:9px 11px}
  .helpdesk-chat-conversation-list{overflow-x:auto;overflow-y:hidden;display:flex;flex-direction:row;gap:7px;padding-bottom:2px;scrollbar-width:thin}
  .helpdesk-chat-conversation{flex:0 0 auto;width:auto;max-width:180px;min-width:84px;padding:8px 10px;font-size:.84rem;white-space:nowrap}
  .helpdesk-chat-room{min-height:0}
  .helpdesk-chat-room-title{padding:9px 12px}
  .helpdesk-chat-messages{padding:10px 10px 12px}
  .helpdesk-chat-message{max-width:92%}
  .helpdesk-chat-form{gap:7px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));align-items:flex-end;background:#09111f}
  .helpdesk-chat-form textarea{font-size:16px;min-height:44px;height:44px;max-height:110px;padding:10px 11px}
  .helpdesk-chat-form .button{width:auto;min-width:72px;min-height:44px;padding:10px 13px;flex:0 0 auto}
  .helpdesk-chat-status{padding:0 10px 5px}
}

/* v3.9.18 - Computer <-> telefon companion til varer */
.product-companion-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 18px;align-items:center;padding:16px 18px;border-radius:18px}
.product-companion-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.product-companion-inline-status{white-space:nowrap}
.product-companion-received{grid-column:1/-1;display:grid;gap:10px;padding-top:6px;border-top:1px solid rgba(148,163,184,.13)}
.product-companion-received[hidden]{display:none}
.product-companion-pair-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px;align-items:center;margin:18px 0}
.product-companion-qr-wrap{display:grid;justify-items:center;gap:8px}
.product-companion-qr{width:210px;min-height:210px;padding:10px;border-radius:18px;background:#fff;display:grid;place-items:center}
.product-companion-qr img,.product-companion-qr canvas{display:block;max-width:190px;max-height:190px}
.product-companion-pair-info{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.product-companion-code{font-size:2.2rem;letter-spacing:.16em;line-height:1;font-variant-numeric:tabular-nums}
.product-companion-modal-card{width:min(760px,100%)}
.product-companion-modal-images{padding:10px 12px;border-radius:14px;background:rgba(15,23,42,.54);border:1px solid rgba(148,163,184,.12);color:#aebbd0}
.companion-temp-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.companion-temp-image-card{display:grid;gap:7px;padding:8px;border-radius:14px;background:rgba(15,23,42,.54);border:1px solid rgba(148,163,184,.13)}
.companion-temp-image-card.compact{padding:4px}
.companion-temp-image-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}
.companion-phone-shell{display:grid;gap:20px}
.companion-code-form{max-width:420px}
.companion-phone-fields{padding-top:6px}
.companion-phone-field-actions{justify-content:flex-end}
.companion-phone-images{display:grid;gap:14px;padding:18px;border-radius:18px}
@media(max-width:760px){.product-companion-card{grid-template-columns:1fr}.product-companion-actions{justify-content:flex-start}.product-companion-pair-grid{grid-template-columns:1fr}.product-companion-code{font-size:1.8rem}.companion-phone-images .section-head{align-items:stretch}.companion-phone-images .form-actions{width:100%}.companion-phone-images .form-actions .button{flex:1}}


/* v3.9.19 - Companion finpudsning og sikker modal-lukning */
.product-companion-modal[hidden]{display:none!important}
.product-companion-modal{padding:24px}
.product-companion-modal-card{padding:24px;border-radius:24px}
.product-companion-modal-card .section-head{margin-bottom:20px}
.product-companion-modal-card .form-actions{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.product-companion-pair-grid{padding:18px;border-radius:18px;background:rgba(255,255,255,.025);border:1px solid var(--line)}
.product-companion-modal-images{margin-top:16px;padding:14px 16px;min-height:48px;display:flex;align-items:center}
.companion-phone-app{display:grid;gap:20px}
.companion-phone-fields{padding:18px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05)}
.companion-phone-fields .form-actions{margin-top:2px;padding-top:16px;border-top:1px solid rgba(148,163,184,.12)}
.companion-phone-images{margin:0}
@media(max-width:760px){
  .product-companion-modal{padding:14px}
  .product-companion-modal-card{padding:18px}
  .product-companion-pair-grid{padding:14px}
  .companion-phone-fields,.companion-phone-images{padding:16px}
}

/* v3.9.20 - QR-kilde rettet til CSP-tilladt host; companion billedupload stabiliseret i JS/PHP. */

/* v3.9.21 - Companion afbryd bevarer kladde; varebilleder vises som thumbnails med lightbox. */
.image-lightbox-trigger{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in;border-radius:inherit;overflow:hidden}
.image-lightbox-trigger img{display:block;width:100%;height:100%;object-fit:cover}
.product-image-card{width:100%;max-width:220px}
.image-lightbox-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:32px;background:rgba(2,6,23,.88);backdrop-filter:blur(8px)}
.image-lightbox-overlay[hidden]{display:none!important}
.image-lightbox-shell{position:relative;display:flex;align-items:center;justify-content:center;max-width:min(1200px,96vw);max-height:92vh}
.image-lightbox-shell img{display:block;max-width:100%;max-height:92vh;object-fit:contain;border-radius:18px;border:1px solid var(--line);box-shadow:0 28px 80px rgba(0,0,0,.45);background:#020617}
.image-lightbox-close{position:absolute;top:12px;right:12px;z-index:2}
@media(max-width:760px){.image-lightbox-overlay{padding:12px}.image-lightbox-shell{max-width:100%;max-height:96vh}.image-lightbox-shell img{max-height:96vh}.product-image-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.product-image-card{max-width:none}}

/* v3.9.26 - Mobil app-layout. Desktopreglerne ovenfor bevares uændret. */
.mobile-appbar,
.mobile-bottom-nav,
.mobile-nav-backdrop { display: none; }
.mobile-bottom-badge[hidden],
.mobile-nav-backdrop[hidden] { display: none !important; }

@media (max-width: 820px) {
  :root { --mobile-nav-height: 68px; }
  html { scroll-padding-top: 76px; }
  body { padding-bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom)); }
  body.mobile-nav-open { overflow: hidden; }

  .shell {
    display: block !important;
    width: 100%;
    min-height: 100vh;
    padding: 0 !important;
  }

  /* App-lignende topbar */
  .mobile-appbar {
    position: sticky;
    top: 0;
    z-index: 900;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 62px;
    padding: calc(9px + env(safe-area-inset-top)) 12px 9px;
    border: 0;
    border-bottom: 1px solid rgba(148,163,184,.13);
    border-radius: 0;
    background: rgba(5,8,20,.94);
    box-shadow: 0 10px 28px rgba(0,0,0,.22);
  }
  .mobile-appbar-brand {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .mobile-appbar-brand > span:last-child { min-width: 0; display: grid; gap: 1px; }
  .mobile-appbar-brand strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 15px;
    line-height: 1.15;
  }
  .mobile-appbar-brand small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--muted);
    font-size: 11px;
  }
  .mobile-appbar-mark {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    font-weight: 850;
    background: linear-gradient(180deg,#1d4ed8,#111827);
    border: 1px solid rgba(255,255,255,.08);
  }
  .mobile-appbar-menu {
    flex: 0 0 auto;
    width: 42px !important;
    height: 42px;
    padding: 0 !important;
    display: grid;
    place-items: center;
    border-radius: 13px;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.045);
    color: var(--text);
  }
  .mobile-appbar-menu svg { width: 22px !important; height: 22px !important; max-width: 22px !important; display:block; }

  /* Den eksisterende sidebar bliver en mobil drawer; samme rettigheder og links genbruges. */
  .sidebar#app-sidebar {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    z-index: 10100 !important;
    width: min(86vw, 340px) !important;
    height: 100dvh !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: calc(18px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom)) !important;
    border-radius: 0 24px 24px 0 !important;
    overflow-y: auto !important;
    transform: translateX(-105%);
    transition: transform .22s ease;
    background: rgba(7,12,25,.985);
    box-shadow: 22px 0 60px rgba(0,0,0,.46);
  }
  .sidebar#app-sidebar.mobile-open { transform: translateX(0); }
  .sidebar#app-sidebar > div:first-child .brand { font-size: 24px !important; }
  .sidebar#app-sidebar > div:first-child .muted { font-size: 12px !important; }
  .sidebar#app-sidebar .mobile-nav-toggle,
  #mobile-nav-toggle { display: none !important; }
  .sidebar#app-sidebar > .nav,
  .sidebar#app-sidebar:not(.mobile-open) > .nav,
  .sidebar#app-sidebar.mobile-open > .nav {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 7px !important;
    margin: 22px 0 20px !important;
    overflow: visible !important;
  }
  .sidebar#app-sidebar .nav a {
    min-height: 45px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 11px 13px !important;
    text-align: left !important;
    font-size: 14px !important;
    border-radius: 13px;
  }
  .sidebar#app-sidebar > .sidebar-footer,
  .sidebar#app-sidebar.mobile-open > .sidebar-footer {
    display: grid !important;
    margin-top: auto;
  }
  .mobile-nav-backdrop {
    position: fixed;
    inset: 0;
    z-index: 10090;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(2,6,23,.68);
    backdrop-filter: blur(3px);
  }

  /* Fast bundnavigation til de mest brugte funktioner. */
  .mobile-bottom-nav {
    position: fixed;
    left: 8px;
    right: 8px;
    bottom: calc(7px + env(safe-area-inset-bottom));
    z-index: 10030;
    min-height: 58px;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    align-items: stretch;
    padding: 5px;
    border-radius: 20px;
    background: rgba(8,14,28,.96);
    border: 1px solid rgba(148,163,184,.18);
    box-shadow: 0 16px 40px rgba(0,0,0,.38);
  }
  .mobile-bottom-nav__item {
    position: relative;
    min-width: 0;
    min-height: 48px;
    padding: 5px 7px !important;
    border: 0;
    border-radius: 15px;
    background: transparent;
    color: #8fa0b9;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    font-size: 10px;
    font-weight: 720;
    line-height: 1;
  }
  .mobile-bottom-nav__button { width: auto !important; cursor: pointer; }
  .mobile-bottom-nav__item svg { width: 21px !important; height: 21px !important; max-width: 21px !important; display:block; flex: 0 0 21px; }
  .mobile-bottom-nav__item.active { color: #fff; background: rgba(96,165,250,.13); }
  .mobile-bottom-nav__icon-wrap { position: relative; display: inline-flex; }
  .mobile-bottom-badge {
    position: absolute;
    top: -8px;
    right: -11px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: #ef4444;
    color: #fff;
    border: 2px solid #09111f;
    font-size: 9px;
    font-weight: 800;
  }

  /* Indhold */
  .content {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
    padding: 12px 12px 24px !important;
    gap: 12px !important;
  }
  .page-head { padding: 2px 2px 1px !important; }
  .page-head h1 { font-size: clamp(21px,6vw,27px) !important; line-height: 1.15 !important; }
  .page-head p { margin-top: 4px; font-size: 12px !important; }
  .card,
  .scan-search-card,
  .scan-camera-card,
  .scan-result-card {
    padding: 15px !important;
    border-radius: 18px !important;
  }
  .section-head { margin-bottom: 13px; align-items: flex-start !important; }
  .section-head h2 { margin-top: 0; font-size: 18px; }
  .section-head h3 { margin-top: 0; }

  /* Oversigtskort får et kompakt app-grid i stedet for en lang kolonne. */
  .stats-grid,
  .stats-grid-5,
  .issued-computer-stats,
  .license-key-summary {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 10px !important;
  }
  .stat-card,
  .license-key-stat { min-height: 96px; padding: 14px !important; }
  .stat-label { margin-bottom: 8px; font-size: 12px; line-height: 1.25; }
  .stat-value { font-size: 30px; line-height: 1; }
  .license-key-stat strong { font-size: 1.25rem; }

  /* Hurtige genveje: to touch-venlige knapper pr. række. */
  .toolbar.quick-actions-row {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 9px !important;
  }
  .quick-actions-row .button { min-width: 0 !important; width: 100%; min-height: 46px; padding: 10px 9px; font-size: 13px; }

  /* Formularer */
  .form-grid,
  .two-col,
  .permission-grid,
  .permission-toggle-row,
  .license-key-admin-grid,
  .guide-upload-grid,
  .tv-profile-settings__grid,
  .history-meta {
    grid-template-columns: 1fr !important;
  }
  input,
  select,
  textarea { font-size: 16px; /* undgår iOS auto-zoom */ }
  input,
  select { min-height: 48px; }
  .form-card { padding: 16px !important; }
  .form-actions,
  .actions,
  .toolbar,
  .scan-toolbar,
  .section-head.wrap .actions,
  .backup-actions-inline {
    gap: 8px !important;
  }
  .form-actions .button,
  .actions .button,
  .toolbar .button { min-height: 44px; }
  .section-head.wrap { align-items: flex-start !important; }
  .section-head.wrap > .actions { width: 100%; }

  /* Tabs holder sig kompakte og bliver ikke til en meget lang liste. */
  .task-tabs {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px !important;
  }
  .task-tab { width: 100% !important; min-width: 0; padding: 10px 8px; font-size: 13px; }
  .task-tabs-card { padding: 8px !important; }

  /* Dashboard-opgaver/noter */
  .dashboard-task-grid { grid-template-columns: 1fr !important; gap: 12px !important; margin-top: 0; }
  .dashboard-task-item,
  .dashboard-note-item {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
    gap: 9px;
    padding: 12px 13px;
  }
  .dashboard-task-item .note-badge-row,
  .dashboard-note-item .note-badge-row { justify-content: flex-start; }
  .note-card,
  .task-accordion { overflow: hidden; }
  .note-badge-row { gap: 6px; }
  .status-badge { padding: 6px 9px; }
  .note-body { overflow-wrap: anywhere; }
  .task-summary-row { align-items: flex-start !important; }

  /* Tabeller bliver rigtige mobilkort. Headertekster tilføjes i JS fra den eksisterende tabel. */
  .table-wrap {
    overflow: visible !important;
    width: 100%;
  }
  .mobile-card-table {
    display: block;
    width: 100% !important;
    min-width: 0 !important;
    border-collapse: separate;
  }
  .mobile-card-table thead { display: none; }
  .mobile-card-table tbody { display: grid; gap: 10px; }
  .mobile-card-table tbody tr {
    display: block;
    width: 100%;
    padding: 5px 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255,255,255,.025);
  }
  .mobile-card-table tbody td {
    width: 100% !important;
    min-width: 0 !important;
    display: grid;
    grid-template-columns: minmax(94px, 34%) minmax(0,1fr);
    align-items: start;
    gap: 10px;
    padding: 9px 12px !important;
    border-bottom: 1px solid rgba(148,163,184,.10);
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
  .mobile-card-table tbody td:last-child { border-bottom: 0; }
  .mobile-card-table tbody td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .055em;
    line-height: 1.4;
    text-transform: uppercase;
  }
  .mobile-card-table tbody td[colspan] { display: block; padding: 16px !important; text-align: center; }
  .mobile-card-table tbody td[colspan]::before { display: none; }
  .mobile-card-table .actions {
    display: flex !important;
    flex-wrap: wrap;
    gap: 7px !important;
  }
  .mobile-card-table .actions .button,
  .mobile-card-table .actions form,
  .mobile-card-table .actions form .button { width: auto !important; flex: 1 1 110px; }
  .mobile-card-table .table-product-image { width: 64px; height: 64px; }

  /* Billeder */
  .primary-image-preview { grid-template-columns: 92px minmax(0,1fr) !important; gap: 12px; padding: 12px; }
  .primary-image-preview__media { width: 92px !important; height: 92px !important; aspect-ratio: 1; }
  .product-image-grid,
  .companion-temp-image-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 9px !important;
  }
  .product-image-card { max-width: none !important; padding: 8px; gap: 8px; }
  .product-image-card__media { aspect-ratio: 1/1; }
  .companion-temp-image-card { padding: 6px; }
  .companion-temp-image-card img { aspect-ratio: 1/1; }

  /* Companion er et enkelt, touch-venligt værktøj på telefon. */
  .companion-phone-shell,
  .companion-phone-app { gap: 12px !important; }
  .companion-phone-fields,
  .companion-phone-images { padding: 14px !important; border-radius: 16px !important; }
  .companion-phone-head { display: grid !important; grid-template-columns: 1fr; }
  .companion-phone-head .form-actions { width: 100%; }
  .product-companion-card { grid-template-columns: 1fr !important; padding: 13px !important; }
  .product-companion-actions { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; }
  .product-companion-actions .button { width: 100%; }
  .product-companion-pair-grid { grid-template-columns: 1fr !important; gap: 14px; padding: 12px !important; }
  .product-companion-qr { width: min(190px,70vw); min-height: 0; aspect-ratio: 1; }
  .product-companion-code { font-size: 1.55rem; }

  /* Scanner */
  .barcode-layout,
  .barcode-layout-balanced,
  .barcode-layout-tight,
  .barcode-layout-symmetric { grid-template-columns: 1fr !important; gap: 10px !important; }
  .scan-reader,
  .scan-video { min-height: 220px !important; border-radius: 15px; }
  .barcode-inline-input { gap: 7px; }
  .barcode-inline-trigger { width: 48px !important; flex: 0 0 48px; }

  /* Guides */
  .guide-toolbar { display: grid; grid-template-columns: 1fr; align-items: stretch; }
  .guide-toolbar label { min-width: 0; }
  .guide-card { padding: 14px; }
  .guide-card__top { display: grid; grid-template-columns: 1fr; gap: 8px; }
  .guide-reader-overlay { padding: 0 !important; }
  .guide-reader-shell { width: 100%; min-height: 100dvh; padding: 16px 14px 84px !important; border-radius: 0 !important; border-left: 0; border-right: 0; }
  .guide-reader-sticky-actions { top: calc(8px + env(safe-area-inset-top)); }
  .guide-resizable-image,
  .guide-resizable-image--gallery { width: 100%; height: auto !important; min-height: 0; resize: none !important; }
  .guide-resizable-image img { height: auto; max-height: 62vh; }

  /* Modaler som app-sheets på små skærme. */
  .confirm-modal,
  .barcode-modal-overlay,
  .license-key-modal-overlay,
  .product-companion-modal { align-items: flex-end !important; padding: 0 !important; }
  .confirm-dialog,
  .barcode-modal-card,
  .license-key-modal,
  .product-companion-modal-card,
  .manual-purchase-dialog {
    width: 100% !important;
    max-width: none !important;
    max-height: min(90dvh,760px);
    overflow-y: auto;
    margin: 0 !important;
    padding: 18px 14px calc(18px + env(safe-area-inset-bottom)) !important;
    border-radius: 22px 22px 0 0 !important;
  }

  /* Chat bliver en ren mobilskærm og ligger over bundnavigationen. */
  .helpdesk-chat-launcher {
    right: 14px !important;
    bottom: calc(var(--mobile-nav-height) + 18px + env(safe-area-inset-bottom)) !important;
    width: 54px !important;
    height: 54px !important;
  }
  body.helpdesk-chat-open .mobile-bottom-nav,
  body.helpdesk-chat-open .mobile-appbar { visibility: hidden; }
  .helpdesk-chat-panel {
    inset: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    border: 0 !important;
    border-radius: 0 !important;
  }
  .helpdesk-chat-conversations { max-height: 142px !important; }

  .site-footer { padding: 10px 4px 8px !important; font-size: 11px; }
}

@media (max-width: 420px) {
  .content { padding-left: 10px !important; padding-right: 10px !important; }
  .stats-grid,
  .stats-grid-5,
  .issued-computer-stats,
  .license-key-summary { gap: 8px !important; }
  .stat-card { min-height: 88px; padding: 12px !important; }
  .stat-value { font-size: 27px; }
  .toolbar.quick-actions-row { gap: 8px !important; }
  .quick-actions-row .button { font-size: 12px; }
  .mobile-card-table tbody td { grid-template-columns: 88px minmax(0,1fr); padding: 8px 10px !important; }
  .primary-image-preview { grid-template-columns: 1fr !important; }
  .primary-image-preview__media { width: 100% !important; height: auto !important; max-height: 220px; }
  .product-companion-actions { grid-template-columns: 1fr !important; }
}

/* v3.9.27 - Samlet mobilfinpudsning. Kun præsentation; desktop/backend bevares. */
@media (max-width: 820px) {
  :root { --mobile-nav-clearance: calc(var(--mobile-nav-height) + 54px + env(safe-area-inset-bottom)); }

  /* Giv altid nok plads under siden til den faste bundnavigation. */
  body { padding-bottom: var(--mobile-nav-clearance) !important; }
  .content {
    min-width: 0 !important;
    padding-bottom: var(--mobile-nav-clearance) !important;
  }
  .content > *,
  .card,
  .glass,
  .glass-soft,
  .form-card,
  .form-grid > *,
  .two-col > *,
  .grid > *,
  label,
  fieldset { min-width: 0; max-width: 100%; }

  /* iOS giver især dato/tid-felter en stor intrinsic bredde. Hold alle controls inde i deres kort. */
  input,
  select,
  textarea,
  input[type="date"],
  input[type="time"],
  input[type="datetime-local"],
  input[type="number"],
  input[type="search"] {
    inline-size: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  input[type="date"],
  input[type="time"],
  input[type="datetime-local"] {
    display: block;
    overflow: hidden;
  }

  /* Ens checkbox/radio-design på iPhone i stedet for de sorte native controls. */
  input[type="checkbox"],
  input[type="radio"] {
    -webkit-appearance: none !important;
    appearance: none !important;
    inline-size: 22px !important;
    block-size: 22px !important;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    max-width: 22px !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: 0 0 22px;
    border: 1px solid rgba(148,163,184,.5) !important;
    background-color: rgba(15,23,42,.78) !important;
    background-image: none !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
    vertical-align: middle;
  }
  input[type="checkbox"] { border-radius: 6px !important; }
  input[type="radio"] { border-radius: 50% !important; }
  input[type="checkbox"]:checked {
    border-color: #60a5fa !important;
    background-color: #2563eb !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='M4 10.5 8 14l8-8'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 15px 15px !important;
  }
  input[type="radio"]:checked {
    border-color: #60a5fa !important;
    background-color: #2563eb !important;
    box-shadow: inset 0 0 0 5px #0f172a, 0 0 0 1px rgba(96,165,250,.18) !important;
  }
  input[type="checkbox"]:disabled,
  input[type="radio"]:disabled { opacity: .5; }
  .checkbox-row,
  .permission-item { align-items: flex-start !important; }
  .checkbox-row > span,
  .permission-item > span { min-width: 0; overflow-wrap: anywhere; }

  /* Knapper og formularhandlinger må bryde pænt uden at flyde ud af kortet. */
  .actions,
  .form-actions,
  .toolbar,
  .scan-toolbar,
  .backup-actions-inline,
  .task-button-stack-inline {
    max-width: 100%;
    flex-wrap: wrap !important;
  }
  .actions > *,
  .form-actions > *,
  .toolbar > * { min-width: 0; max-width: 100%; }

  /* Mobilkort: lange navne/mailadresser og handlingsknapper holdes inde i kortet. */
  .mobile-card-table tbody tr { overflow: hidden; }
  .mobile-card-table tbody td > * { min-width: 0; max-width: 100%; }
  .mobile-card-table tbody td,
  .mobile-card-table tbody td a,
  .mobile-card-table tbody td strong,
  .mobile-card-table tbody td span { overflow-wrap: anywhere; word-break: break-word; }
  .mobile-card-table .actions .button,
  .mobile-card-table .actions form,
  .mobile-card-table .actions form .button {
    max-width: 100% !important;
  }

  /* Chat-header: titel til venstre, et fast Luk-kryds helt til højre. */
  .helpdesk-chat-head {
    width: 100%;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 42px;
    align-items: center !important;
    gap: 12px !important;
    padding: calc(10px + env(safe-area-inset-top)) 14px 10px !important;
  }
  .helpdesk-chat-head > div { min-width: 0; }
  .helpdesk-chat-head strong {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 16px !important;
    line-height: 1.15;
  }
  .helpdesk-chat-head .small {
    display: block;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 11px !important;
  }
  .helpdesk-chat-close {
    justify-self: end;
    inline-size: 40px !important;
    block-size: 40px !important;
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center;
    border: 1px solid rgba(148,163,184,.24) !important;
    border-radius: 13px !important;
    background: rgba(255,255,255,.045) !important;
    color: #e5edf9 !important;
    font-size: 26px !important;
    line-height: 1 !important;
  }
  .helpdesk-chat-close:active { background: rgba(96,165,250,.13) !important; }

  /* Chatpersoner kan scrolle vandret uden at presse resten af vinduet. */
  .helpdesk-chat-conversation-list { max-width: 100%; }
  .helpdesk-chat-conversation-name { max-width: 150px; }

  /* Side-/kortbunde skal kunne scrolles fri af bundbaren. */
  .form-card:last-child,
  .content > .card:last-of-type,
  .content > form:last-child,
  .content > section:last-child { margin-bottom: 20px; }

  /* TV-/opgaveformularernes dato/tid var de tydeligste steder med overflow. */
  .tv-message-admin-card,
  .task-create-card,
  .task-edit-panel,
  .tv-message-expiry-grid,
  .task-form-grid { min-width: 0; max-width: 100%; overflow: hidden; }
}

@media (max-width: 420px) {
  .helpdesk-chat-head { grid-template-columns: minmax(0,1fr) 40px; padding-left: 12px !important; padding-right: 12px !important; }
  .helpdesk-chat-close { width: 38px !important; height: 38px !important; min-width: 38px !important; }
  .mobile-card-table .actions { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; }
  .mobile-card-table .actions > *,
  .mobile-card-table .actions .button,
  .mobile-card-table .actions form,
  .mobile-card-table .actions form .button { width: 100% !important; flex: none !important; }
}

/* v3.9.28 - iOS form overflow hardening. Mobile presentation only. */
@media (max-width: 820px) {
  /* Grid/form containers must be allowed to shrink below native control intrinsic widths. */
  .grid.form-grid,
  .form-grid,
  .tv-message-admin-form,
  .tv-message-expiry-grid,
  .task-form-grid,
  .permission-grid,
  .two-col {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: clip;
  }

  .grid.form-grid > label,
  .form-grid > label,
  .tv-message-admin-form > label,
  .tv-message-expiry-grid > label,
  .task-form-grid > label {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden;
  }

  /* Safari/iOS can keep an intrinsic minimum width on native date/time controls.
     -webkit-fill-available plus clipping on the label keeps the native picker inside the card. */
  input[type="date"],
  input[type="time"],
  input[type="datetime-local"] {
    display: block !important;
    width: -webkit-fill-available !important;
    max-width: 100% !important;
    min-width: 0 !important;
    inline-size: -webkit-fill-available !important;
    max-inline-size: 100% !important;
    margin-inline: 0 !important;
    box-sizing: border-box !important;
  }

  /* Other controls get the same containment fallback without changing their desktop styling. */
  label > input,
  label > select,
  label > textarea {
    max-inline-size: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

@supports (-webkit-touch-callout: none) {
  @media (max-width: 820px) {
    input[type="date"],
    input[type="time"],
    input[type="datetime-local"] {
      -webkit-appearance: none !important;
      appearance: none !important;
      width: -webkit-fill-available !important;
      inline-size: -webkit-fill-available !important;
    }
  }
}


/* v3.9.34 - scoped backup/import rows */
.backup-scope-list{display:grid;gap:12px}
.backup-scope-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(420px,1.35fr);gap:18px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.018)}
.backup-scope-info{display:grid;gap:5px;min-width:0}
.backup-scope-info strong{font-size:15px}
.backup-scope-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.backup-import-inline{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;flex:1 1 360px}
.backup-import-inline input[type=file]{min-width:0;max-width:100%;flex:1 1 250px}
.backup-scope-note{margin-top:12px}
@media (max-width:900px){
  .backup-scope-row{grid-template-columns:1fr;gap:12px}
  .backup-scope-actions,.backup-import-inline{justify-content:flex-start;width:100%}
}
@media (max-width:700px){
  .backup-scope-row{padding:14px}
  .backup-scope-actions{display:grid;grid-template-columns:1fr}
  .backup-scope-actions>.button{width:100%}
  .backup-import-inline{display:grid;grid-template-columns:1fr;width:100%}
  .backup-import-inline input[type=file],.backup-import-inline .button{width:100%;max-width:100%}
}

/* v3.9.37 - Mobil modal-lag. Popups skal altid ligge over fast mobilnavigation/chatknap. */
@media (max-width: 820px) {
  .confirm-modal,
  .barcode-modal-overlay,
  .license-key-modal-overlay,
  .product-companion-modal,
  .image-lightbox-overlay,
  .guide-reader-overlay {
    z-index: 12000 !important;
  }

  /* Dialoger/lightbox skal eje touch-laget, så navigation bagved ikke kan fange tryk. */
  .confirm-modal:not([hidden]),
  .barcode-modal-overlay,
  .license-key-modal-overlay,
  .product-companion-modal:not([hidden]),
  .image-lightbox-overlay:not([hidden]),
  .guide-reader-overlay {
    pointer-events: auto !important;
  }
}

/* v3.9.39 - Global søgning */
.page-head-with-search {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.page-head-copy { min-width: 0; }
.global-search-header {
  width: min(390px, 42vw);
  min-width: 260px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 42px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.035);
  overflow: hidden;
}
.global-search-header input {
  width: 100%;
  min-width: 0;
  height: 42px;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 8px 0 14px !important;
}
.global-search-header button {
  width: 42px;
  height: 42px;
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  display: grid;
  place-items: center;
}
.global-search-header button:hover { color: var(--text); background: rgba(255,255,255,.045); }
.global-search-header svg { width: 19px !important; height: 19px !important; display: block; }
.global-search-page { padding-bottom: 18px; }
.global-search-page-form { display: grid; gap: 9px; }
.global-search-page-form > label { font-weight: 700; }
.global-search-input-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; }
.global-search-summary { padding: 0 4px; }
.global-search-groups { display: grid; gap: 18px; }
.global-search-group h2 { margin: 0; }
.global-search-list { display: grid; gap: 10px; }
.global-search-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border-radius: 17px;
  color: var(--text);
  transition: transform .16s ease, background .16s ease, border-color .16s ease;
}
.global-search-result:hover {
  transform: translateY(-1px);
  background: rgba(255,255,255,.055);
  border-color: rgba(255,255,255,.09);
}
.global-search-result-main { min-width: 0; display: grid; gap: 4px; }
.global-search-result-title { font-weight: 800; line-height: 1.25; overflow-wrap: anywhere; }
.global-search-result-meta { overflow-wrap: anywhere; }
.global-search-result-excerpt { color: #cbd5e1; line-height: 1.45; font-size: 13px; overflow-wrap: anywhere; }
.global-search-result-side { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.global-search-open { font-size: 28px; line-height: 1; color: var(--muted); }

@media (max-width: 900px) {
  .page-head-with-search { display: grid !important; gap: 9px !important; }
  .global-search-header { width: 100%; min-width: 0; grid-template-columns: minmax(0,1fr) 42px; }
  .global-search-header input { height: 40px !important; min-height: 40px !important; font-size: 16px !important; }
  .global-search-header button { width: 42px; height: 40px; }
  .global-search-input-row { grid-template-columns: minmax(0,1fr) auto !important; }
  .global-search-result { align-items: flex-start; padding: 13px !important; gap: 10px; }
  .global-search-result-side { align-items: center; }
  .global-search-result-side .status-badge { white-space: nowrap; }
}

@media (max-width: 520px) {
  .global-search-input-row { grid-template-columns: 1fr !important; }
  .global-search-input-row .button { width: 100%; }
  .global-search-result { display: grid; }
  .global-search-result-side { justify-content: space-between; width: 100%; }
}

/* v3.9.42 - Udstyrshistorik og returnering */
.equipment-history-card { margin-top: 18px; }
.equipment-history-list { display: grid; gap: 10px; }
.equipment-history-item { display: grid; gap: 7px; padding: 14px 16px; border-radius: 16px; }
.equipment-history-item__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.equipment-history-item strong { overflow-wrap: anywhere; }

@media (max-width: 900px) {
  .equipment-history-item { padding: 13px !important; }
  .equipment-history-item__head { align-items: flex-start; flex-wrap: wrap; }
}

/* v3.9.43 - Dashboardaktivitet, fastgjorte guides og udleveringsarkiv */
.dashboard-insight-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 0;
}
.dashboard-activity-list,
.dashboard-guide-list { display: grid; gap: 10px; }
.dashboard-activity-item {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: start;
  gap: 12px;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(255,255,255,.018);
}
.dashboard-activity-copy { min-width: 0; display: grid; gap: 3px; }
.dashboard-activity-note { color: #cbd5e1; font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
.dashboard-guide-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 15px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(255,255,255,.018);
  color: var(--text);
}
.dashboard-guide-item:hover { background: rgba(255,255,255,.045); }
.dashboard-guide-item > div { min-width: 0; }
.dashboard-guide-item strong { overflow-wrap: anywhere; }
.guide-card-tags,
.guide-reader-tags { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

@media (max-width: 900px) {
  .dashboard-insight-grid { grid-template-columns: 1fr; gap: 12px; margin-top: 0; }
  .dashboard-activity-item { grid-template-columns: 1fr; gap: 8px; padding: 12px !important; }
  .dashboard-guide-item { align-items: flex-start; padding: 12px !important; }
}

/* v3.9.45 - Dashboard-rækker, serienummerfeedback og renere udleveringsstatus */
.dashboard-insight-grid--single { grid-template-columns: minmax(0, 1fr); }
.field-validation-message { display: block; min-height: 18px; margin-top: 5px; font-size: 12px; line-height: 1.4; }
.field-validation-message.error { color: #fca5a5; }
.field-validation-message.success { color: #6ee7b7; }
input.input-invalid { border-color: rgba(248,113,113,.85) !important; box-shadow: 0 0 0 2px rgba(248,113,113,.12) !important; }
.issued-status-details { display: grid; gap: 3px; min-width: 145px; line-height: 1.35; }
.issued-status-details strong { font-size: 12px; font-weight: 700; color: var(--text); }

@media (max-width: 900px) {
  .dashboard-insight-grid--single { grid-template-columns: 1fr; }
  .issued-status-details { min-width: 0; }
}



/* v3.9.46 - To kolonner til Seneste aktivitet på desktop */
@media (min-width: 901px) {
  .dashboard-activity-list--two-column {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
}

/* v3.9.47 - Offentlig Help Desk portal og Tickets */
.public-portal-shell,
.public-ticket-shell,
.public-ticket-result {
  width: min(1120px, calc(100vw - 32px));
  margin: 0 auto;
}
.public-portal-shell { display: grid; gap: 22px; }
.public-portal-hero { padding: 34px; border-radius: 28px; }
.public-portal-brand-row { display: flex; align-items: center; gap: 22px; }
.public-portal-mark {
  width: 76px; height: 76px; flex: 0 0 76px; display: grid; place-items: center;
  border-radius: 22px; font-size: 34px; font-weight: 800; color: #eaf2ff;
  background: linear-gradient(180deg, #2458d8, #0f2558); border: 1px solid rgba(96,165,250,.45);
  box-shadow: 0 18px 38px rgba(20,70,180,.28);
}
.public-portal-kicker { color: #9db2d4; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.public-portal-hero h1 { margin: 4px 0 8px; font-size: clamp(34px, 5vw, 58px); letter-spacing: -.045em; }
.public-portal-hero p { max-width: 760px; margin: 0; font-size: 17px; }
.public-portal-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.public-portal-primary { min-width: 180px; }
.public-portal-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.public-portal-card { min-height: 180px; }
.public-portal-card h2 { margin: 14px 0 8px; }
.public-portal-step { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 12px; background: rgba(37,99,235,.2); border: 1px solid rgba(96,165,250,.3); font-weight: 800; color: #bfdbfe; }

.public-ticket-shell { display: grid; gap: 18px; }
.public-ticket-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.public-ticket-head h1 { margin: 8px 0 4px; font-size: 38px; }
.public-back-link,.auth-back-link { color: #93c5fd; text-decoration: none; }
.public-back-link:hover,.auth-back-link:hover { color: #dbeafe; }
.auth-back-link { display: block; text-align: center; margin-top: 16px; }
.public-ticket-form { display: grid; gap: 18px; }
.public-ticket-form label { display: grid; gap: 8px; }
.public-ticket-form label > span { font-weight: 650; }
.public-ticket-actions { justify-content: flex-end; margin-top: 4px; }
.ticket-honeypot { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.public-ticket-result { max-width: 680px; padding: 38px; text-align: center; }
.public-ticket-result-icon { width: 68px; height: 68px; margin: 0 auto 16px; display: grid; place-items: center; border-radius: 22px; background: rgba(16,185,129,.16); border: 1px solid rgba(52,211,153,.32); color: #6ee7b7; font-size: 32px; font-weight: 900; }
.public-ticket-result-icon.muted-icon { background: rgba(59,130,246,.14); border-color: rgba(96,165,250,.28); color: #bfdbfe; }
.public-ticket-result h1 { margin: 0 0 8px; }
.public-ticket-number { margin: 24px auto; padding: 18px 24px; max-width: 360px; border-radius: 20px; background: rgba(37,99,235,.13); border: 1px solid rgba(96,165,250,.27); }
.public-ticket-number span { display: block; color: #94a3b8; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }
.public-ticket-number strong { display: block; margin-top: 4px; font-size: 30px; letter-spacing: .04em; }
.public-ticket-result-actions { justify-content: center; }

.ticket-list-card,.ticket-detail-card { margin-bottom: 18px; }
.ticket-search-form { display: flex; flex-wrap: wrap; gap: 10px; min-width: min(620px,100%); }
.ticket-search-form input { flex: 1 1 340px; min-width: 0; }
.ticket-list { display: grid; gap: 10px; }
.ticket-list-item { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 17px; border: 1px solid rgba(148,163,184,.15); border-radius: 18px; background: rgba(15,23,42,.54); color: inherit; text-decoration: none; }
.ticket-list-item:hover,.ticket-list-item.active { border-color: rgba(96,165,250,.36); background: rgba(30,64,175,.12); }
.ticket-list-main { min-width: 0; }
.ticket-list-title-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ticket-list-title-row strong { overflow-wrap: anywhere; }
.ticket-list-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; color: #94a3b8; font-size: 12px; white-space: nowrap; }
.ticket-detail-kicker { color: #93c5fd; font-size: 13px; font-weight: 800; letter-spacing: .06em; }
.ticket-detail-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 18px 0; }
.ticket-detail-grid > div { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid rgba(148,163,184,.14); border-radius: 16px; background: rgba(15,23,42,.5); min-width: 0; }
.ticket-detail-grid strong { overflow-wrap: anywhere; }
.ticket-description-block { display: grid; gap: 8px; padding: 18px; border-radius: 18px; border: 1px solid rgba(148,163,184,.14); background: rgba(15,23,42,.48); line-height: 1.6; }
.ticket-attachment-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,260px)); gap: 14px; margin-top: 18px; }
.ticket-attachment-card { display: grid; gap: 8px; color: inherit; text-decoration: none; }
.ticket-attachment-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 16px; border: 1px solid rgba(148,163,184,.16); }
.ticket-attachment-card span { overflow-wrap: anywhere; color: #cbd5e1; font-size: 13px; }
.ticket-foundation-note { margin-top: 18px; }

@media (max-width: 820px) {
  .auth-wrap { align-items: flex-start; padding: 16px; }
  .public-portal-shell,.public-ticket-shell,.public-ticket-result { width: 100%; }
  .public-portal-hero { padding: 24px 20px; }
  .public-portal-brand-row { align-items: flex-start; gap: 14px; }
  .public-portal-mark { width: 58px; height: 58px; flex-basis: 58px; border-radius: 18px; font-size: 26px; }
  .public-portal-hero h1 { font-size: 36px; }
  .public-portal-actions { display: grid; }
  .public-portal-actions .button { width: 100%; }
  .public-portal-grid { grid-template-columns: 1fr; }
  .public-portal-card { min-height: 0; }
  .public-ticket-head { align-items: flex-start; flex-direction: column; }
  .public-ticket-head .button { width: 100%; }
  .public-ticket-form .form-grid.two { grid-template-columns: 1fr !important; }
  .public-ticket-actions { display: grid; grid-template-columns: 1fr; }
  .public-ticket-actions .button { width: 100%; }
  .public-ticket-result { padding: 26px 18px; margin-top: 16px; }
  .public-ticket-result-actions { display: grid; grid-template-columns: 1fr; }
  .ticket-search-form { min-width: 0; width: 100%; }
  .ticket-search-form .button { flex: 1 1 auto; }
  .ticket-list-item { align-items: flex-start; flex-direction: column; }
  .ticket-list-meta { align-items: flex-start; flex-direction: row; flex-wrap: wrap; white-space: normal; }
  .ticket-detail-grid { grid-template-columns: 1fr; }
  .ticket-attachment-grid { grid-template-columns: 1fr; }
}

/* v3.9.48 - kompakt desktop-sidebar + sikker ticket-samtale */
@media (min-width: 1101px) {
  .sidebar#app-sidebar {
    padding: 18px 18px 16px;
  }
  .sidebar#app-sidebar .brand {
    font-size: 27px;
  }
  .sidebar#app-sidebar > div:first-child .muted {
    font-size: 12px;
  }
  .sidebar#app-sidebar .nav {
    gap: 5px;
    margin: 20px 0 auto;
    padding-right: 2px;
    overflow-y: visible;
  }
  .sidebar#app-sidebar .nav a {
    padding: 10px 13px;
    border-radius: 14px;
  }
  .sidebar#app-sidebar .sidebar-footer {
    gap: 8px;
  }
  .sidebar#app-sidebar .user-chip {
    padding: 8px 10px;
    gap: 9px;
    border-radius: 16px;
  }
  .sidebar#app-sidebar .avatar {
    width: 34px;
    height: 34px;
    font-size: 13px;
  }
  .sidebar#app-sidebar .sidebar-footer .button {
    padding: 9px 12px;
  }
}

.public-ticket-mail-status { margin: 18px 0; text-align: left; }
.public-ticket-lookup-card { display: grid; gap: 16px; }
.public-ticket-lookup-form { display: grid; gap: 16px; text-align: left; margin-top: 6px; }
.public-ticket-conversation-shell { max-width: 980px; }
.public-ticket-thread-card { display: grid; gap: 18px; }
.ticket-thread-meta-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.ticket-thread-meta-grid > div { display: grid; gap: 4px; padding: 13px 15px; border-radius: 15px; border: 1px solid rgba(148,163,184,.14); background: rgba(15,23,42,.48); }
.ticket-thread { display: grid; gap: 12px; }
.ticket-message { width: min(82%, 760px); display: grid; gap: 9px; padding: 15px 17px; border-radius: 18px; border: 1px solid rgba(148,163,184,.15); }
.ticket-message-requester { justify-self: end; background: rgba(30,64,175,.18); border-color: rgba(96,165,250,.28); }
.ticket-message-staff { justify-self: start; background: rgba(15,23,42,.72); }
.ticket-message-internal { justify-self: stretch; width: 100%; background: rgba(120,83,10,.18); border-color: rgba(251,191,36,.25); }
.ticket-message-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #cbd5e1; }
.ticket-message-head span { color: var(--muted); font-size: 12px; white-space: nowrap; }
.ticket-message-body { line-height: 1.62; overflow-wrap: anywhere; }
.ticket-thread-attachments { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,220px)); gap: 10px; margin-top: 4px; }
.ticket-thread-attachment { display: grid; gap: 7px; color: inherit; }
.ticket-thread-attachment img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 14px; border: 1px solid rgba(148,163,184,.16); }
.ticket-thread-attachment span { font-size: 12px; color: #cbd5e1; overflow-wrap: anywhere; }
.ticket-public-reply-form { display: grid; gap: 12px; padding-top: 4px; border-top: 1px solid var(--line); }
.ticket-public-reply-form .form-actions { justify-content: flex-end; }
.ticket-compose-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 18px; }
.ticket-compose-card { display: grid; gap: 12px; padding: 17px; border-radius: 18px; border: 1px solid rgba(148,163,184,.15); background: rgba(15,23,42,.48); }
.ticket-compose-card p { margin: 5px 0 0; }
.ticket-compose-note { border-color: rgba(251,191,36,.18); background: rgba(120,83,10,.09); }
.ticket-compose-card .form-actions { justify-content: flex-end; }
.ticket-thread-internal { margin-top: 18px; }

@media (max-width: 820px) {
  .ticket-thread-meta-grid,
  .ticket-compose-grid { grid-template-columns: 1fr; }
  .ticket-message { width: 94%; }
  .ticket-message-internal { width: 100%; }
  .ticket-message-head { align-items: flex-start; flex-direction: column; gap: 3px; }
  .ticket-thread-attachments { grid-template-columns: 1fr; }
  .ticket-public-reply-form .form-actions,
  .ticket-compose-card .form-actions { display: grid; grid-template-columns: 1fr; }
  .ticket-public-reply-form .button,
  .ticket-compose-card .button { width: 100%; }
}
@media (min-width: 1101px) and (max-height: 849px) {
  .sidebar#app-sidebar .nav { overflow-y: auto; }
}

/* v3.9.49 - ticket workflow, bedre spacing og let større desktop-sidebar */
@media (min-width: 1101px) {
  .sidebar#app-sidebar {
    padding: 20px 19px 17px;
  }
  .sidebar#app-sidebar .brand {
    font-size: 29px;
  }
  .sidebar#app-sidebar > div:first-child .muted {
    font-size: 12.5px;
  }
  .sidebar#app-sidebar .nav {
    gap: 6px;
    margin: 21px 0 auto;
  }
  .sidebar#app-sidebar .nav a {
    padding: 11px 14px;
    border-radius: 14px;
    font-size: 14.5px;
  }
  .sidebar#app-sidebar .sidebar-footer {
    gap: 9px;
  }
  .sidebar#app-sidebar .user-chip {
    padding: 9px 11px;
    gap: 10px;
  }
  .sidebar#app-sidebar .avatar {
    width: 36px;
    height: 36px;
  }
  .sidebar#app-sidebar .sidebar-footer .button {
    padding: 10px 12px;
  }
}

.ticket-detail-card { display: grid; gap: 4px; }
.ticket-detail-header { margin-bottom: 4px; }
.ticket-detail-grid {
  gap: 16px 18px;
  margin: 20px 0 24px;
}
.ticket-detail-grid > div {
  gap: 7px;
  padding: 16px 17px;
}
.ticket-thread-meta-grid { gap: 16px; margin-bottom: 2px; }
.ticket-thread-meta-grid > div { gap: 7px; padding: 15px 16px; }
.ticket-thread-internal { margin-top: 22px; }

.ticket-search-form select { flex: 0 1 190px; min-width: 160px; }
.ticket-workflow-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 15px 17px;
  margin: 0 0 6px;
  border-radius: 17px;
  border: 1px solid rgba(96,165,250,.18);
  background: rgba(30,64,175,.08);
}
.ticket-workflow-summary {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.ticket-workflow-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
.ticket-workflow-actions form { margin: 0; }
.ticket-status-form {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
}
.ticket-status-form select { min-width: 160px; }
.ticket-closed-message { margin-top: 18px; }

@media (max-width: 820px) {
  .ticket-workflow-bar,
  .ticket-workflow-actions,
  .ticket-status-form {
    align-items: stretch;
    flex-direction: column;
  }
  .ticket-workflow-actions,
  .ticket-workflow-actions form,
  .ticket-workflow-actions .button,
  .ticket-status-form,
  .ticket-status-form select,
  .ticket-status-form .button {
    width: 100%;
  }
  .ticket-detail-grid { gap: 12px; margin-top: 16px; }
}

/* v3.9.50 - inline ticket-detaljer, kompakt workflow og lidt større desktop-menu */
@media (min-width: 1101px) {
  .sidebar#app-sidebar .nav {
    gap: 6px;
    margin-top: 20px;
  }
  .sidebar#app-sidebar .nav a {
    padding: 12.5px 15px;
    min-height: 43px;
    font-size: 15px;
    display: flex;
    align-items: center;
  }
  .sidebar#app-sidebar .user-chip {
    padding: 10px 12px;
  }
  .sidebar#app-sidebar .sidebar-footer .button {
    padding: 11px 13px;
  }
}

.ticket-list-entry {
  border: 1px solid rgba(148,163,184,.15);
  border-radius: 18px;
  background: rgba(15,23,42,.54);
  overflow: hidden;
}
.ticket-list-entry:hover,
.ticket-list-entry.active {
  border-color: rgba(96,165,250,.36);
  background: rgba(30,64,175,.10);
}
.ticket-list-entry .ticket-list-item {
  border: 0;
  border-radius: 0;
  background: transparent;
}
.ticket-list-entry .ticket-list-item:hover,
.ticket-list-entry .ticket-list-item.active {
  border-color: transparent;
  background: rgba(30,64,175,.08);
}
.ticket-detail-inline {
  padding: 20px 18px 18px;
  border-top: 1px solid rgba(148,163,184,.14);
  background: rgba(2,6,23,.22);
}
.ticket-detail-inline .ticket-detail-header {
  margin-bottom: 2px;
}
.ticket-detail-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  flex-wrap: wrap;
}
.ticket-header-action-form,
.ticket-header-status-form {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}
.ticket-header-status-form select {
  min-width: 145px;
  width: auto;
  padding-top: 9px;
  padding-bottom: 9px;
}
.button.compact {
  padding: 9px 12px;
  min-height: 38px;
}
.ticket-thread-meta-grid {
  grid-template-columns: repeat(3,minmax(0,1fr));
}

@media (max-width: 820px) {
  .ticket-detail-inline {
    padding: 16px 12px 14px;
  }
  .ticket-detail-header-actions,
  .ticket-header-action-form,
  .ticket-header-status-form {
    width: 100%;
    align-items: stretch;
  }
  .ticket-detail-header-actions {
    justify-content: flex-start;
  }
  .ticket-header-action-form,
  .ticket-header-status-form {
    flex-wrap: wrap;
  }
  .ticket-header-action-form .button,
  .ticket-header-status-form select,
  .ticket-header-status-form .button {
    flex: 1 1 100%;
    width: 100%;
  }
  .ticket-thread-meta-grid {
    grid-template-columns: 1fr;
  }
}

/* v3.9.51 - ticket-automatik, live ticketliste og offentlig formularspacing */
.public-ticket-form {
  padding: 26px;
  gap: 24px;
}
.public-ticket-form .form-grid.two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 22px;
}
.public-ticket-form label {
  gap: 10px;
}
.public-ticket-form label > span {
  display: block;
  line-height: 1.35;
  margin-bottom: 1px;
}
.public-ticket-form input,
.public-ticket-form select,
.public-ticket-form textarea {
  margin: 0;
}
.settings-number-with-unit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}
.settings-number-with-unit > span {
  color: var(--muted);
  font-size: 13px;
  white-space: nowrap;
}
.ticket-automation-toggle > span {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 7px;
}
.ticket-list-entry {
  scroll-margin-top: 24px;
}
@media (max-width: 820px) {
  .public-ticket-form {
    padding: 20px 16px;
    gap: 20px;
  }
  .public-ticket-form .form-grid.two {
    grid-template-columns: 1fr !important;
    gap: 18px;
  }
  .settings-number-with-unit {
    grid-template-columns: 1fr;
  }
}


/* v3.9.52 - dashboard tickets, public ticket spacing og ens bekræftelsesflow */
.public-ticket-form {
  gap: 30px;
}
.public-ticket-form .form-grid.two {
  row-gap: 28px;
  column-gap: 22px;
}
.public-ticket-form label {
  gap: 13px;
}
.public-ticket-form label > span {
  margin-bottom: 2px;
}
.public-ticket-form label > small {
  margin-top: 3px;
}
.dashboard-tickets-card {
  margin-top: 0;
}
.dashboard-ticket-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
}
.dashboard-ticket-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.018);
  color: inherit;
  text-decoration: none;
}
.dashboard-ticket-item:hover {
  border-color: rgba(59,130,246,.38);
  background: rgba(59,130,246,.055);
}
.dashboard-ticket-copy {
  min-width: 0;
}
.dashboard-ticket-copy strong,
.dashboard-ticket-copy .muted {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dashboard-ticket-meta {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  gap: 6px;
  flex: 0 0 auto;
  text-align: right;
}
@media (max-width: 980px) {
  .dashboard-ticket-list {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 820px) {
  .public-ticket-form {
    gap: 24px;
  }
  .public-ticket-form .form-grid.two {
    row-gap: 23px;
  }
  .public-ticket-form label {
    gap: 11px;
  }
  .dashboard-ticket-item {
    align-items: flex-start;
    flex-direction: column;
  }
  .dashboard-ticket-meta {
    align-items: flex-start;
    flex-direction: row;
    flex-wrap: wrap;
    text-align: left;
  }
}


/* v3.9.53 - offentlig footer */
.auth-wrap { flex-direction: column; }
.public-site-footer {
  width: min(100%, 980px);
  margin: 22px auto 0;
  padding: 14px 8px 8px;
}
@media (max-width: 820px) {
  .public-site-footer { margin-top: 16px; padding-bottom: 18px; }
}


/* v3.9.54 - lidt større desktop-menu + tickets på TV-dashboard */
@media (min-width: 1101px) {
  .sidebar#app-sidebar .nav a {
    min-height: 45px;
    padding: 13px 15px;
    font-size: 16px;
  }
}
.tv-stat-row { grid-template-columns: repeat(4,minmax(0,1fr)); }
.tv-grid { grid-template-columns: minmax(0,.95fr) minmax(0,1.25fr) minmax(0,.9fr); }
.tv-ticket-list { display:grid; gap:14px; max-height:100%; overflow:hidden; }
.tv-ticket-item {
  display:grid;
  gap:10px;
  padding:14px 18px;
  border-radius:18px;
  background:rgba(15,23,42,.58);
  border:1px solid rgba(148,163,184,.18);
}
.tv-ticket-item strong {
  display:block;
  font-size:18px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.tv-ticket-item .note-badge-row { margin-top:2px; }
@media (max-width:1100px) {
  .tv-grid, .tv-stat-row { grid-template-columns:1fr; }
}

/* v3.9.59 - personlige guide-favoritter og automatisk voksende chatfelt */
.guide-scope-tabs {
  display: flex;
  gap: 6px;
  margin-top: 10px;
  padding: 4px;
  width: fit-content;
  max-width: 100%;
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 12px;
  background: rgba(15,23,42,.35);
}
.guide-scope-tab {
  padding: 7px 11px;
  border-radius: 9px;
  color: #aebbd0;
  font-size: .85rem;
  font-weight: 750;
  text-decoration: none;
  white-space: nowrap;
}
.guide-scope-tab:hover,
.guide-scope-tab.active { background: rgba(96,165,250,.16); color: #fff; }
.guide-favorite-button.is-favorite { color: #fde68a; border-color: rgba(250,204,21,.35); }
.guide-reader-sticky-actions { gap: 8px; }
.guide-reader-head { padding-right: 440px; }
.helpdesk-chat-form { align-items: flex-end; }
.helpdesk-chat-form textarea {
  box-sizing: border-box;
  min-height: 60px;
  height: 60px;
  max-height: 132px;
  overflow-y: hidden;
  line-height: 1.4;
}
@media (max-width:760px) {
  .guide-reader-head { padding-right: 0; }
  .guide-reader-sticky-actions { flex-wrap: wrap; }
  .guide-reader-sticky-actions .inline-form { flex: 1 1 auto; }
  .guide-reader-sticky-actions .button { width: 100%; }
  .guide-scope-tabs { width: 100%; }
  .guide-scope-tab { flex: 1; text-align: center; }
  .helpdesk-chat-form textarea { min-height: 58px; height: 58px; max-height: 112px; }
}

/* v3.9.60 - sammenklappelige guidekategorier og ens handlingsknapper */
.guide-category-list { display: grid; gap: 12px; }
.guide-category-group {
  overflow: hidden;
  border: 1px solid rgba(148,163,184,.2);
  border-radius: 17px;
  background: rgba(15,23,42,.32);
  transition: border-color .18s ease, background .18s ease;
}
.guide-category-group[open] {
  border-color: rgba(96,165,250,.38);
  background: rgba(15,23,42,.48);
}
.guide-category-summary {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto 18px;
  align-items: center;
  gap: 12px;
  min-height: 62px;
  padding: 14px 17px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.guide-category-summary::-webkit-details-marker { display: none; }
.guide-category-summary:hover { background: rgba(96,165,250,.08); }
.guide-category-summary:focus-visible { outline: 2px solid #60a5fa; outline-offset: -3px; }
.guide-category-summary__name { min-width: 0; color: #f4f7fb; font-size: 1.02rem; font-weight: 800; overflow-wrap: anywhere; }
.guide-category-summary__count {
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(96,165,250,.13);
  color: #bfdbfe;
  font-size: .78rem;
  font-weight: 750;
  white-space: nowrap;
}
.guide-category-summary__chevron {
  width: 10px;
  height: 10px;
  border-right: 2px solid #94a3b8;
  border-bottom: 2px solid #94a3b8;
  transform: rotate(45deg) translate(-2px,-2px);
  transition: transform .18s ease;
}
.guide-category-group[open] .guide-category-summary__chevron { transform: rotate(225deg) translate(-1px,-1px); }
.guide-category-content { padding: 0 14px 14px; border-top: 1px solid rgba(148,163,184,.13); }
.guide-category-content .guide-list { padding-top: 14px; }
.guide-card-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(138px,1fr));
  align-items: stretch;
  gap: 9px;
}
.guide-card-actions > * { min-width: 0; margin: 0; }
.guide-card-actions .inline-form { display: flex; }
.guide-card-actions .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  height: 48px;
  padding: 8px 11px;
  line-height: 1.15;
  text-align: center;
  white-space: normal;
}
.guide-reader-sticky-actions .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  min-height: 48px;
  height: 48px;
  text-align: center;
  white-space: normal;
}
.guide-reader-head { padding-right: 640px; }
@media (max-width:1000px) {
  .guide-reader-sticky-actions {
    height: auto;
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    margin-bottom: 16px;
  }
  .guide-reader-sticky-actions > *,
  .guide-reader-sticky-actions .button { width: 100%; min-width: 0; max-width: none; }
  .guide-reader-head { padding-right: 0; }
}
@media (max-width:640px) {
  .guide-category-summary { min-height: 58px; padding: 12px 13px; gap: 9px; }
  .guide-category-summary__count { padding: 4px 7px; }
  .guide-category-content { padding: 0 10px 10px; }
  .guide-category-content .guide-list { padding-top: 10px; }
  .guide-card-actions { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .guide-card-actions .button { min-height: 48px; height: 48px; padding: 7px 8px; }
}

/* v3.9.61 - Min profil, chatavatarer, Ticket løst og Historik-filtre */
.avatar { overflow: hidden; flex: 0 0 auto; }
.avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.user-chip-link {
  position: relative;
  padding-right: 34px;
  color: inherit;
  text-decoration: none;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.user-chip-link::after {
  content: '›';
  position: absolute;
  right: 13px;
  top: 50%;
  transform: translateY(-52%);
  color: #7f8ea7;
  font-size: 22px;
}
.user-chip-link:hover,
.user-chip-link.active { background: rgba(96,165,250,.1); border-color: rgba(96,165,250,.28); }
.user-chip-link:hover { transform: translateY(-1px); }
.user-chip-link:focus-visible { outline: 2px solid #60a5fa; outline-offset: 3px; }

.profile-settings-layout { display: grid; grid-template-columns: minmax(210px,.65fr) minmax(0,1.7fr); gap: 20px; align-items: start; }
.profile-avatar-panel { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 24px 18px; border-radius: 20px; text-align: center; }
.profile-avatar-preview { width: 124px; height: 124px; font-size: 34px; box-shadow: 0 18px 42px rgba(0,0,0,.28); }
.profile-settings-form { padding: 4px 0; }
.profile-image-field input[type="file"] { padding: 11px; }

.helpdesk-chat-conversation-identity { min-width: 0; display: flex; align-items: center; gap: 8px; }
.helpdesk-chat-avatar {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  overflow: hidden;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg,#1d4ed8,#111827);
  color: #fff;
  border: 1px solid rgba(148,163,184,.2);
  font-size: .68rem;
  font-weight: 800;
}
.helpdesk-chat-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.helpdesk-chat-message-row { width: 100%; display: flex; align-items: flex-end; gap: 7px; }
.helpdesk-chat-message-row.own { justify-content: flex-end; }
.helpdesk-chat-message-row .helpdesk-chat-message { max-width: calc(88% - 35px); }
.helpdesk-chat-message-avatar { width: 30px; height: 30px; flex-basis: 30px; font-size: .7rem; }

.ticket-resolve-button { color: #a7f3d0; border-color: rgba(52,211,153,.28); background: rgba(52,211,153,.09); }

.history-filter-form {
  display: grid;
  grid-template-columns: minmax(250px,2fr) repeat(4,minmax(135px,1fr));
  gap: 12px;
  align-items: end;
  margin-bottom: 20px;
  padding: 16px;
  border: 1px solid rgba(148,163,184,.16);
  border-radius: 18px;
  background: rgba(15,23,42,.34);
}
.history-filter-form label { min-width: 0; }
.history-filter-form input,
.history-filter-form select { min-height: 48px; }
.history-filter-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }

@media (max-width:1100px) {
  .history-filter-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .history-filter-search { grid-column: 1 / -1; }
}
@media (max-width:760px) {
  .profile-settings-layout { grid-template-columns: 1fr; }
  .profile-avatar-panel { padding: 20px 16px; }
  .profile-avatar-preview { width: 104px; height: 104px; font-size: 30px; }
  .history-filter-form { grid-template-columns: 1fr; padding: 13px; }
  .history-filter-search,
  .history-filter-actions { grid-column: auto; }
  .history-filter-actions { display: grid; grid-template-columns: 1fr; }
  .history-filter-actions .button { width: 100%; }
}
@media (max-width:640px) {
  .helpdesk-chat-conversation-identity { gap: 6px; }
  .helpdesk-chat-avatar { width: 24px; height: 24px; flex-basis: 24px; font-size: .62rem; }
  .helpdesk-chat-message-avatar { width: 27px; height: 27px; flex-basis: 27px; }
  .helpdesk-chat-message-row .helpdesk-chat-message { max-width: calc(94% - 32px); }
}

/* v3.9.62 - bredere chatliste og mere kompakte guidekort med egen beskrivelse */
@media (min-width:821px) {
  .helpdesk-chat-panel { width: min(620px,calc(100vw - 44px)); }
  .helpdesk-chat-main { grid-template-columns: 210px minmax(0,1fr); }
  .helpdesk-chat-conversations { padding: 11px; }
}

.guide-reader-description { max-width: 820px; margin: 8px 0 10px; color: #cbd5e1; line-height: 1.5; overflow-wrap: anywhere; }
.guide-category-list { gap: 9px; }
.guide-category-group { border-radius: 14px; }
.guide-category-summary { min-height: 52px; padding: 10px 14px; }
.guide-category-content { padding: 0 10px 10px; }
.guide-category-content .guide-list { padding-top: 10px; }
.guide-list { gap: 8px; }
.guide-card { padding: 12px 14px; border-radius: 14px; }
.guide-card__top { gap: 10px; }
.guide-card__title { font-size: 1rem; }
.guide-card-tags + .guide-card__title { margin-top: 6px; }
.guide-card__excerpt {
  display: -webkit-box;
  margin-top: 6px;
  overflow: hidden;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.guide-card .section-top-gap { margin-top: 7px; }
.guide-card-actions { gap: 7px; }
.guide-card-actions .button { min-height: 42px; height: 42px; padding: 6px 9px; }

@media (max-width:640px) {
  .guide-category-summary { min-height: 50px; padding: 9px 11px; }
  .guide-category-content { padding: 0 8px 8px; }
  .guide-category-content .guide-list { padding-top: 8px; }
  .guide-card { padding: 11px 12px; }
  .guide-card-actions .button { min-height: 44px; height: 44px; }
}

/* v3.9.67 - password reset modal */
.user-password-modal-overlay[hidden]{display:none!important}.user-password-reset-form{margin-top:16px}.user-password-reset-form .checkbox-row{margin-top:2px}


/* v3.9.68 - ticket-verifikation, cooldown og blokering */
.ticket-verification-card{max-width:760px;margin:0 auto;padding:24px}.ticket-verification-card .verification-code-input{font-size:1.35rem;letter-spacing:.22em;text-align:center;font-weight:700}.ticket-verified-email{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid rgba(52,211,153,.25);background:rgba(16,185,129,.08);border-radius:16px;margin-bottom:18px}.ticket-verified-email strong{display:block}.ticket-block-modal[hidden]{display:none!important}.ticket-block-form{margin-top:16px}.ticket-block-list{display:grid;gap:12px}.ticket-block-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(150px,.8fr) minmax(180px,1fr) minmax(150px,.8fr) auto;gap:14px;align-items:center;padding:15px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(15,23,42,.42)}.ticket-block-row .muted{display:block;margin-top:3px}.ticket-list-head-actions{display:flex;justify-content:flex-end;align-items:center}.ticket-security-note{margin-top:10px}
@media(max-width:900px){.ticket-block-row{grid-template-columns:1fr 1fr}.ticket-block-row .ticket-block-actions{grid-column:1/-1}.ticket-list-head-actions{justify-content:flex-start}}
@media(max-width:620px){.ticket-verified-email{align-items:stretch;flex-direction:column}.ticket-block-row{grid-template-columns:1fr}.ticket-block-row .ticket-block-actions{grid-column:auto}}

/* v3.9.70 - Ticket-afsendere og blokering */
.ticket-tabs-card{margin-bottom:18px}.ticket-tabs .task-tab{min-width:160px}
.ticket-block-form [hidden]{display:none!important}.ticket-block-form{grid-template-columns:1fr}.ticket-block-targets{display:grid;gap:10px}.ticket-block-field-label{font-size:14px;color:var(--muted);margin-bottom:2px}.ticket-block-target{margin:0;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);align-items:flex-start}.ticket-block-target>span{display:flex;flex-direction:column;gap:5px;min-width:0}.ticket-block-target strong{line-height:1.25}.ticket-block-target small{display:block;line-height:1.35}.ticket-block-target input{margin-top:2px;flex:0 0 auto}
.ticket-sender-list{display:grid;gap:12px}.ticket-sender-row{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(110px,.45fr) minmax(180px,.8fr) auto;gap:16px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:16px;background:rgba(15,23,42,.42)}.ticket-sender-identity{display:grid;gap:4px;min-width:0}.ticket-sender-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ticket-sender-stat{display:grid;gap:4px}.ticket-sender-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
@media(max-width:1000px){.ticket-sender-row{grid-template-columns:1fr 1fr}.ticket-sender-identity{grid-column:1/-1}.ticket-sender-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:700px){.ticket-tabs .task-tab{min-width:0}.ticket-sender-row{grid-template-columns:1fr}.ticket-sender-identity,.ticket-sender-actions{grid-column:auto}.ticket-sender-actions{display:grid}.ticket-sender-actions .button{width:100%}}

/* v3.9.71: samlede ticket-blokeringer */
.ticket-block-target-list{display:grid;gap:10px}.ticket-block-target-line{display:grid;gap:3px}.ticket-block-target-line+.ticket-block-target-line{padding-top:9px;border-top:1px solid rgba(148,163,184,.12)}

/* v3.9.74 - Help Desk-enheder */
.device-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px}.device-summary-card{padding:16px;display:grid;gap:4px}.device-summary-card strong{font-size:1.45rem}.device-code-copy-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-bottom:9px}.device-code-copy-row input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-weight:700;letter-spacing:.04em}.device-list,.device-code-list{display:grid;gap:12px}.device-row{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(160px,.8fr) minmax(110px,.55fr) minmax(200px,.9fr) auto;gap:14px;align-items:center;padding:15px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(15,23,42,.42)}.device-identity,.device-meta{display:grid;gap:4px;min-width:0}.device-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.device-actions{display:flex;justify-content:flex-end;align-items:center}.device-code-row{display:grid;grid-template-columns:minmax(220px,1.2fr) auto minmax(90px,.4fr) minmax(170px,.8fr) auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(15,23,42,.42)}.device-code-row>div{display:grid;gap:4px}.device-new-code-card{border-color:rgba(59,130,246,.35)}
@media(max-width:1050px){.device-summary-grid{grid-template-columns:1fr 1fr}.device-row{grid-template-columns:1fr 1fr}.device-identity,.device-actions{grid-column:1/-1}.device-actions{justify-content:flex-start}.device-code-row{grid-template-columns:1fr 1fr}.device-code-row>div:first-child,.device-code-row .device-actions{grid-column:1/-1}}
@media(max-width:650px){.device-summary-grid{grid-template-columns:1fr}.device-code-copy-row{grid-template-columns:1fr}.device-code-copy-row .button{width:100%}.device-row,.device-code-row{grid-template-columns:1fr}.device-identity,.device-actions,.device-code-row>div:first-child,.device-code-row .device-actions{grid-column:auto}.device-actions .button{width:100%}}

/* v3.9.76 - Windows Help Desk-klient */
.device-client-download-card .section-head { align-items: center; }
.device-client-download-card h2 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.device-client-download-card .helper { margin-top: 8px; }
@media (max-width: 720px) {
  .device-client-download-card .section-head > .button { width: 100%; justify-content: center; }
}

/* v3.9.81 - skalerbar Enheder-administration */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.device-admin-tabs-card{margin-bottom:18px}.device-admin-tabs .task-tab{min-width:180px}.device-summary-link{text-decoration:none;color:inherit;transition:transform .16s ease,border-color .16s ease,background .16s ease}.device-summary-link:hover{transform:translateY(-1px);border-color:rgba(96,165,250,.38);background:rgba(30,41,59,.58)}
.device-filter-bar{display:grid;grid-template-columns:minmax(260px,1fr) minmax(170px,220px) auto auto;gap:10px;align-items:end;margin:16px 0 18px;padding:14px;border:1px solid rgba(148,163,184,.16);border-radius:16px;background:rgba(15,23,42,.3)}.device-filter-bar label{margin:0}.device-filter-bar input,.device-filter-bar select{min-height:42px}.device-filter-search{min-width:0}.device-filter-search input{width:100%}.device-list-compact{gap:9px}.device-row-compact{grid-template-columns:minmax(240px,1.5fr) minmax(110px,.5fr) minmax(180px,.8fr);padding:12px 14px}.device-code-validity{margin-top:12px}.device-pagination{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:18px}.device-pagination-pages{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.device-page-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border:1px solid var(--line);border-radius:10px;color:inherit;text-decoration:none;background:rgba(15,23,42,.36)}.device-page-link.active{background:rgba(37,99,235,.24);border-color:rgba(96,165,250,.55);color:#dbeafe;font-weight:800}.device-page-link:hover{border-color:rgba(96,165,250,.4)}
@media(max-width:900px){.device-filter-bar{grid-template-columns:1fr 1fr}.device-filter-search{grid-column:1/-1}.device-row-compact{grid-template-columns:1fr 1fr}.device-row-compact .device-identity{grid-column:1/-1}}
@media(max-width:650px){.device-admin-tabs .task-tab{min-width:0}.device-filter-bar{grid-template-columns:1fr}.device-filter-search{grid-column:auto}.device-filter-bar .button{width:100%}.device-row-compact{grid-template-columns:1fr}.device-row-compact .device-identity{grid-column:auto}.device-pagination{display:grid;grid-template-columns:1fr}.device-pagination-pages{justify-content:center}.device-pagination>.button{width:100%}}

/* v3.9.82: Windows-klient på offentlig ticketformular */
.ticket-client-card {
    margin-bottom: 18px;
}
.ticket-client-card .section-head {
    align-items: center;
    gap: 18px;
}
.ticket-client-status {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
}
.ticket-client-locked {
    opacity: .9;
    cursor: not-allowed;
}
@media (max-width: 720px) {
    .ticket-client-card .section-head {
        align-items: stretch;
    }
    .ticket-client-card [data-ticket-client-connect] {
        width: 100%;
    }
}


/* v3.9.83: trinvist offentligt ticket-flow og Ticket-sikkerhed spacing */
.ticket-security-toggle > span {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 7px;
}
.ticket-flow-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 0 auto 18px;
}
.ticket-flow-step {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 7px 12px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    background: rgba(15,23,42,.38);
    font-size: 13px;
    font-weight: 700;
}
.ticket-flow-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: rgba(148,163,184,.12);
    font-size: 12px;
}
.ticket-flow-step.active {
    color: #dbeafe;
    border-color: rgba(96,165,250,.48);
    background: rgba(37,99,235,.13);
}
.ticket-flow-step.active .ticket-flow-number {
    background: rgba(37,99,235,.32);
    color: #dbeafe;
}
.ticket-flow-step.done {
    color: #a7f3d0;
    border-color: rgba(52,211,153,.28);
    background: rgba(16,185,129,.08);
}
.ticket-flow-step.done .ticket-flow-number {
    background: rgba(16,185,129,.2);
    color: #a7f3d0;
}
.ticket-flow-step.pending { opacity: .72; }
.public-ticket-form[hidden] { display: none !important; }
@media (max-width: 620px) {
    .ticket-flow-steps { display: grid; grid-template-columns: 1fr; }
    .ticket-flow-step { justify-content: flex-start; width: 100%; }
}


/* v3.9.84: registreret enhed som cooldown-identitet + valgfri IP-blokering */
.ticket-block-ip-target{border-color:rgba(248,113,113,.28);background:rgba(127,29,29,.08)}.ticket-ip-warning{display:block!important;color:#fca5a5!important;font-weight:700;line-height:1.4;margin-top:2px}


.device-deploy-command{
  margin-top:12px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.device-deploy-command code{
  display:block;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:rgba(15,23,42,.42);
  overflow-wrap:anywhere;
}
.device-deployment-note{
  padding:10px 12px;
  border:1px solid rgba(245,158,11,.24);
  border-radius:12px;
  background:rgba(245,158,11,.06);
}

/* v3.9.86: klientudrulninger som primær installationsmodel */
.device-deployment-list{display:grid;gap:12px}
.device-deployment-row{display:grid;grid-template-columns:minmax(250px,1.35fr) minmax(130px,.55fr) minmax(190px,.8fr) auto;gap:14px;align-items:center;padding:15px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(15,23,42,.42)}
.device-deployment-row.device-deployment-new{border-color:rgba(59,130,246,.45);box-shadow:0 0 0 1px rgba(59,130,246,.08) inset}
.device-deployment-row .device-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.form-grid label .field-error{display:block;margin-top:6px;color:#fca5a5;font-size:.82rem;font-weight:700;line-height:1.35}
.form-grid input.input-error{border-color:rgba(248,113,113,.75)!important;box-shadow:0 0 0 2px rgba(248,113,113,.10)}
@media(max-width:1050px){.device-deployment-row{grid-template-columns:1fr 1fr}.device-deployment-row .device-identity,.device-deployment-row .device-actions{grid-column:1/-1}.device-deployment-row .device-actions{justify-content:flex-start}}
@media(max-width:650px){.device-deployment-row{grid-template-columns:1fr}.device-deployment-row .device-identity,.device-deployment-row .device-actions{grid-column:auto}.device-deployment-row .device-actions .button{width:100%}}

/* v3.9.87 - deployment conditional fields/live actions */
.deployment-conditional[hidden],.js-deployment-active-action[hidden]{display:none!important}

.form-grid .field-error[hidden]{display:none!important}


/* v3.9.90 - global søgning: målrettet navigation/highlight */
@keyframes searchTargetGlow {
  0% { box-shadow: 0 0 0 2px rgba(96,165,250,.92), 0 0 0 rgba(96,165,250,0); border-color: rgba(147,197,253,.95); }
  24% { box-shadow: 0 0 0 2px rgba(96,165,250,.78), 0 0 28px rgba(59,130,246,.46); border-color: rgba(147,197,253,.78); }
  75% { box-shadow: 0 0 0 1px rgba(96,165,250,.35), 0 0 18px rgba(59,130,246,.18); }
  100% { box-shadow: 0 0 0 0 rgba(96,165,250,0), 0 0 0 rgba(59,130,246,0); }
}
.search-target-highlight {
  position: relative;
  z-index: 2;
  animation: searchTargetGlow 5s ease-out both;
  border-radius: 14px;
}
.permission-item.search-target-highlight { border-color: rgba(147,197,253,.8) !important; }
.device-client-version-badge { margin-left: 6px; }

/* v3.9.91 - live forslag i global søgning */
.global-search-header,
.global-search-page-form {
  position: relative;
}
.global-search-header {
  overflow: visible;
  z-index: 70;
}
.global-search-autocomplete {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  z-index: 10070;
  display: grid;
  gap: 4px;
  max-height: min(430px, calc(100vh - 150px));
  padding: 7px;
  overflow-y: auto;
  border: 1px solid rgba(148,163,184,.24);
  border-radius: 15px;
  background: rgba(8,15,29,.98);
  box-shadow: 0 20px 48px rgba(0,0,0,.46), 0 0 0 1px rgba(255,255,255,.025) inset;
  backdrop-filter: blur(18px);
}
.global-search-autocomplete[hidden] { display: none !important; }
.global-search-suggestion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid transparent;
  border-radius: 11px;
  color: var(--text);
  text-decoration: none;
  cursor: pointer;
}
.global-search-suggestion:hover,
.global-search-suggestion.is-active {
  background: rgba(59,130,246,.13);
  border-color: rgba(96,165,250,.26);
}
.global-search-suggestion-main {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.global-search-suggestion-title {
  overflow: hidden;
  color: #f8fafc;
  font-size: .9rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.global-search-suggestion-meta {
  overflow: hidden;
  color: var(--muted);
  font-size: .74rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.global-search-suggestion-badge {
  flex: 0 0 auto;
  white-space: nowrap;
}
.global-search-autocomplete-empty {
  padding: 11px 12px;
  color: var(--muted);
  font-size: .82rem;
}
.global-search-autocomplete-all {
  display: block;
  margin-top: 3px;
  padding: 9px 11px 7px;
  border-top: 1px solid rgba(148,163,184,.15);
  color: #93c5fd;
  font-size: .8rem;
  font-weight: 750;
  text-decoration: none;
}
.global-search-autocomplete-all:hover { color: #dbeafe; }
@media(max-width:900px) {
  .global-search-autocomplete { max-height: min(390px, calc(100vh - 130px)); }
}
@media(max-width:520px) {
  .global-search-suggestion { align-items: flex-start; }
  .global-search-suggestion-badge { font-size: .66rem; }
}

/* v3.9.92 - Windows-klient opdateringspolitik */
.device-update-policy{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}
.device-update-policy>div{display:grid;gap:4px;min-width:min(100%,360px);flex:1}
.device-update-policy-form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.device-update-policy-form label{display:grid;gap:6px;min-width:220px}
@media(max-width:650px){.device-update-policy-form,.device-update-policy-form label,.device-update-policy-form .button{width:100%}}

/* v3.9.101 - kun beskedteksten kan markeres; tidsstempel/meta holdes ude af kopiering */
.helpdesk-chat-message__body {
  -webkit-user-select: text;
  user-select: text;
  cursor: text;
}
.helpdesk-chat-message__meta {
  -webkit-user-select: none;
  user-select: none;
  cursor: default;
}

/* v3.9.102 - chat-højreklikmenuen skal altid ligge over chatpanelet, også på mobil */

/* v3.9.106 - ensartet preview af valgte billeder før formularen gemmes */
.image-upload-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,150px));gap:10px;margin-top:10px;align-items:start}
.image-upload-preview[hidden]{display:none!important}
.image-upload-preview__item{min-width:0;padding:8px;border:1px solid var(--line);border-radius:14px;background:rgba(15,23,42,.34);display:grid;gap:7px}
.image-upload-preview__media{width:100%;aspect-ratio:1/1;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:rgba(2,6,23,.35)}
.image-upload-preview__media img{display:block;width:100%;height:100%;object-fit:cover}
.image-upload-preview__name{font-size:.76rem;line-height:1.3;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.image-upload-preview{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));}.image-upload-preview__item{padding:6px}}

/* v3.9.108 - enheds-detaljeside */
.device-name-link{color:inherit;text-decoration:none;border-radius:7px}
.device-name-link:hover,.device-name-link:focus-visible{color:#bfdbfe;text-decoration:underline;text-underline-offset:3px}
.device-detail-hero{overflow:hidden}
.device-detail-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.device-detail-title-row h2{margin:0}
.device-detail-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;word-break:break-all}
.device-detail-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}
.device-detail-summary-item{min-width:0;display:grid;gap:5px;padding:13px;border:1px solid var(--line);border-radius:14px;background:rgba(15,23,42,.28)}
.device-detail-summary-item strong{overflow-wrap:anywhere}
.device-detail-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.device-detail-status-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.device-detail-status-list>div{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:13px;background:rgba(15,23,42,.24)}
.device-detail-block-list{display:grid;gap:9px;margin-top:12px}
.device-detail-history-split{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.device-detail-history-split h3{margin:0 0 9px;font-size:.94rem}
.device-detail-chip-list{display:flex;gap:8px;flex-wrap:wrap}
.device-detail-chip{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:rgba(15,23,42,.28)}
.device-detail-chip small{color:var(--muted);font-size:.7rem}
.compact-empty{padding:12px}
.device-detail-history-list{display:grid;gap:9px}
.device-detail-history-row{display:grid;grid-template-columns:minmax(190px,1.35fr) minmax(130px,.75fr) minmax(150px,.9fr) minmax(150px,.9fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(15,23,42,.24)}
.device-detail-history-row>div{min-width:0;display:grid;gap:4px}
.device-detail-history-row strong{overflow-wrap:anywhere}
.device-detail-history-row.warning-row{grid-template-columns:minmax(150px,.8fr) minmax(220px,1.4fr) minmax(140px,.7fr);border-color:rgba(245,158,11,.28);background:rgba(120,53,15,.12)}
.device-detail-history-row.identity-row{grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) minmax(190px,1.2fr) minmax(150px,.85fr) minmax(150px,.9fr)}
.device-detail-history-actions{justify-self:end}
@media(max-width:1050px){.device-detail-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-detail-history-row,.device-detail-history-row.identity-row{grid-template-columns:repeat(2,minmax(0,1fr))}.device-detail-history-actions{justify-self:start}.device-detail-history-row.warning-row{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.device-detail-columns,.device-detail-history-split{grid-template-columns:1fr}.device-detail-summary-grid,.device-detail-status-list,.device-detail-history-row,.device-detail-history-row.identity-row,.device-detail-history-row.warning-row{grid-template-columns:1fr}.device-detail-history-actions,.device-detail-history-actions .button{width:100%}}

/* v3.9.110 - intelligente dashboardstatusser og klientfejlfinding */
.dashboard-status-stat{position:relative;color:inherit;text-decoration:none;transition:border-color .16s ease,background .16s ease,transform .16s ease}
a.dashboard-status-stat:hover,a.dashboard-status-stat:focus-visible{transform:translateY(-1px);border-color:rgba(96,165,250,.42);background:rgba(30,41,59,.52)}
.dashboard-status-stat.warning{border-color:rgba(245,158,11,.38);background:rgba(120,53,15,.12)}
.dashboard-status-stat.danger{border-color:rgba(248,113,113,.42);background:rgba(127,29,29,.14)}
.dashboard-stat-note{display:block;margin-top:8px;font-size:.72rem;line-height:1.25;color:#fbbf24;font-weight:700}
.dashboard-status-stat.danger .dashboard-stat-note{color:#fca5a5}
.dashboard-stat-note.neutral-note{color:var(--muted);font-weight:600}

.device-overview-health{overflow:hidden}
.device-overview-health-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.device-overview-health-item{min-width:0;display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:15px;background:rgba(15,23,42,.28);color:inherit;text-decoration:none;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.device-overview-health-item:hover,.device-overview-health-item:focus-visible{transform:translateY(-1px);border-color:rgba(96,165,250,.46);background:rgba(30,41,59,.52)}
.device-overview-health-item>span{font-size:.78rem;color:var(--muted);font-weight:700}
.device-overview-health-item>strong{font-size:1.65rem;line-height:1.05;color:var(--text)}
.device-overview-health-item>small{font-size:.7rem;color:var(--muted);line-height:1.25}
.device-overview-health-item.attention-warning{border-color:rgba(245,158,11,.34);background:rgba(120,53,15,.1)}
.device-overview-health-footer{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:.78rem}
.device-overview-health-footer strong{color:var(--text)}

#client-warnings,#client-diagnostics{scroll-margin-top:24px}
.client-warning-list{display:grid;gap:10px}
.client-warning-row{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(140px,.7fr) minmax(100px,.5fr) auto;gap:14px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:rgba(15,23,42,.28);color:inherit;text-decoration:none}
.client-warning-row:hover,.client-warning-row:focus-visible{border-color:rgba(96,165,250,.46);background:rgba(30,41,59,.5)}
.client-warning-row>div{display:grid;gap:3px;min-width:0}
.client-warning-row.warning{border-left:3px solid rgba(245,158,11,.72)}
.client-warning-row.danger{border-left:3px solid rgba(248,113,113,.78)}

.client-diagnostics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.client-diagnostic-item{display:grid;gap:4px;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:rgba(15,23,42,.28)}
.client-diagnostic-item>strong{line-height:1.25}
.client-diagnostic-item>small{color:var(--muted);line-height:1.35}
.client-diagnostic-item.warning{border-color:rgba(245,158,11,.32);background:rgba(120,53,15,.1)}
.client-diagnostic-item.danger{border-color:rgba(248,113,113,.38);background:rgba(127,29,29,.12)}
.client-diagnostic-item.success{border-color:rgba(148,163,184,.18)}
.client-diagnostic-action{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(15,23,42,.24)}
.client-diagnostic-action>strong{white-space:nowrap}
.client-diagnostic-action>span{color:var(--muted)}
.client-diagnostic-action.warning{border-color:rgba(245,158,11,.32)}
.client-diagnostic-action.danger{border-color:rgba(248,113,113,.38)}

@media(max-width:1050px){.device-overview-health-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.client-diagnostics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-warning-row{grid-template-columns:1fr 1fr}.client-warning-row>.button{justify-self:start}}
@media(max-width:700px){.device-overview-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-warning-row,.client-diagnostics-grid{grid-template-columns:1fr}.client-diagnostic-action{display:grid}.client-diagnostic-action>strong{white-space:normal}}
@media(max-width:460px){.device-overview-health-grid{grid-template-columns:1fr}.device-overview-health-footer{display:grid;gap:8px}}

/* v3.9.111 - bulk-handlinger på registrerede enheder */
.device-bulk-bar{display:grid;grid-template-columns:auto auto minmax(220px,1fr) auto;gap:12px;align-items:center;margin:0 0 16px;padding:12px 14px;border:1px solid rgba(148,163,184,.16);border-radius:16px;background:rgba(15,23,42,.3)}
.device-bulk-select-all{margin:0;white-space:nowrap}.device-bulk-count{color:var(--muted);white-space:nowrap}.device-bulk-action{margin:0;min-width:0}.device-bulk-action select{width:100%;min-height:42px}.device-bulk-bar .button{min-height:42px}
.device-row-selectable{grid-template-columns:auto minmax(220px,1.4fr) minmax(150px,.8fr) minmax(180px,.9fr) minmax(120px,.55fr) auto}.device-select-cell{display:flex;align-items:flex-start;justify-content:center;align-self:stretch;padding-top:3px;cursor:pointer}.device-row.is-selected{border-color:rgba(96,165,250,.55);background:rgba(37,99,235,.08)}
.device-update-policy-form label{width:220px}.device-update-policy-form select,.device-update-policy-form .button{width:220px;min-width:220px;min-height:44px;height:44px}.device-update-policy-form .button{justify-content:center}
@media(max-width:1050px){.device-row-selectable{grid-template-columns:auto 1fr 1fr}.device-row-selectable .device-select-cell{grid-row:1/span 4}.device-row-selectable .device-identity,.device-row-selectable .device-actions{grid-column:2/-1}}
@media(max-width:720px){.device-bulk-bar{grid-template-columns:1fr}.device-bulk-select-all,.device-bulk-count{justify-self:start}.device-bulk-bar .button,.device-bulk-action{width:100%}.device-update-policy-form label,.device-update-policy-form select,.device-update-policy-form .button{width:100%;min-width:0}}
@media(max-width:650px){.device-row-selectable{grid-template-columns:auto 1fr}.device-row-selectable .device-select-cell{grid-row:1/span 6}.device-row-selectable .device-identity,.device-row-selectable .device-actions{grid-column:2}.device-row-selectable .device-actions .button{width:100%}}

/* v3.9.114 - backup control */
.backup-control-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:14px}
.backup-control-stat{display:grid;gap:5px;min-width:0;padding:14px 15px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.018)}
.backup-control-stat>span{font-size:12px;color:var(--muted);font-weight:700}
.backup-control-stat>strong{font-size:18px;line-height:1.2;min-width:0;overflow-wrap:anywhere}
.backup-control-stat>small{font-size:12px;color:var(--muted);line-height:1.35;overflow-wrap:anywhere}
.backup-control-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.backup-control-panel{display:grid;align-content:start;gap:12px;padding:18px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.014)}
.backup-control-panel h3,.backup-check-result h3{margin:0;font-size:16px}
.backup-file-list{display:grid;gap:8px}
.backup-file-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:rgba(15,23,42,.24)}
.backup-file-row>div{display:grid;gap:3px;min-width:0}
.backup-file-row strong{font-size:13px;overflow-wrap:anywhere}
.backup-file-row span{font-size:12px}
.backup-check-upload{display:grid;grid-template-columns:1fr;gap:14px;align-items:stretch;margin-top:2px}
.backup-check-upload input[type=file]{min-width:0;width:100%}
.backup-check-upload .button{justify-self:end;min-width:150px}
.backup-check-result{display:grid;gap:12px;margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:16px;background:rgba(15,23,42,.26)}
.backup-check-result.ok{border-color:rgba(52,211,153,.26)}
.backup-check-result.warning{border-color:rgba(251,191,36,.3)}
.backup-check-result.error{border-color:rgba(248,113,113,.3)}
.backup-check-result .section-head.compact{margin-bottom:0}
.backup-check-messages{padding:12px 14px;border:1px solid var(--line);border-radius:13px;line-height:1.45}
.backup-check-messages ul{margin:7px 0 0 18px;padding:0}
.backup-check-messages.danger{border-color:rgba(248,113,113,.28);background:rgba(127,29,29,.08)}
.backup-check-messages.warning{border-color:rgba(251,191,36,.28);background:rgba(120,53,15,.08)}
.backup-check-messages.success{border-color:rgba(52,211,153,.24);background:rgba(6,78,59,.08)}
@media(max-width:1100px){.backup-control-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.backup-control-columns{grid-template-columns:1fr}}
@media(max-width:720px){.backup-control-grid{grid-template-columns:1fr 1fr}.backup-check-upload .button{width:100%;justify-self:stretch}.backup-file-row{align-items:flex-start;flex-direction:column}.backup-file-row form,.backup-file-row .button{width:100%}}
@media(max-width:460px){.backup-control-grid{grid-template-columns:1fr}}

/* v3.9.117 - backup-manifest og korrekt skelnen mellem kildefejl/backupfejl */
.backup-auto-verify-line {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border-color, rgba(255,255,255,.08));
    display: grid;
    gap: 4px;
}

.dashboard-backup-alert {
    margin-top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    text-decoration: none;
}

.dashboard-update-alert[hidden] { display: none !important; }

.dashboard-update-alert {
    margin-top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    text-decoration: none;
    border-color: rgba(59, 130, 246, .42);
}

.dashboard-backup-alert.warning {
    border-color: rgba(245, 158, 11, .45);
}

.dashboard-backup-alert.danger {
    border-color: rgba(239, 68, 68, .55);
}

@media (max-width: 720px) {
    .dashboard-backup-alert,
    .dashboard-update-alert {
        align-items: stretch;
        flex-direction: column;
    }
}

/* v3.9.118 - finpudsning af Backup-kontrol uploadpanel */


/* v3.9.119 - objektbaseret aktivitetslog */
.object-activity-card { margin-top: 18px; }
.object-activity-list { display: grid; gap: 10px; }
.object-activity-list.compact-list { gap: 8px; }
.object-activity-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: rgba(255,255,255,0.018);
}
.object-activity-main { min-width: 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.object-activity-main strong { font-size: 0.94rem; overflow-wrap: anywhere; }
.object-activity-meta { flex: 0 0 auto; display: grid; gap: 2px; text-align: right; color: var(--muted); font-size: 0.8rem; }
.ticket-object-activity { margin: 18px 0; padding: 16px; border: 1px solid var(--border); border-radius: 16px; background: rgba(255,255,255,0.012); }
@media (max-width: 760px) {
    .object-activity-item { align-items: flex-start; flex-direction: column; }
    .object-activity-meta { text-align: left; }
}


/* v3.9.122 - Systemstatus / sundhed */
.system-health-overview{overflow:hidden}
.system-health-overview.warning{border-color:rgba(245,158,11,.30)}
.system-health-overview.danger{border-color:rgba(248,113,113,.34)}
.system-health-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.system-health-title-row h2{margin:0}
.system-health-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}
.system-health-summary>div{display:grid;gap:4px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(15,23,42,.28)}
.system-health-summary span{font-size:.75rem;color:var(--muted);font-weight:700}
.system-health-summary strong{font-size:1.45rem;line-height:1.05;color:var(--text)}
.system-health-summary .system-health-time{font-size:1.08rem}
.system-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.system-health-card{display:flex;flex-direction:column;min-width:0;gap:13px}
.system-health-card.warning{border-color:rgba(245,158,11,.30);background:linear-gradient(180deg,rgba(120,53,15,.08),rgba(15,23,42,.32))}
.system-health-card.danger{border-color:rgba(248,113,113,.34);background:linear-gradient(180deg,rgba(127,29,29,.10),rgba(15,23,42,.32))}
.system-health-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.system-health-card-head>div{min-width:0}
.system-health-card-head h2{margin:3px 0 0;font-size:1.08rem;line-height:1.3}
.system-health-kicker{font-size:.74rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.system-health-detail{padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:rgba(15,23,42,.24);font-size:.84rem;font-weight:650;overflow-wrap:anywhere}
.system-health-card p{margin:0;line-height:1.45}
.system-health-card-action{margin-top:auto;padding-top:2px}
.system-health-note h2{margin:0 0 6px;font-size:1rem}
.system-health-note p{margin:0;line-height:1.5}
.system-health-refresh-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.system-health-refresh-controls [data-health-auto-label]{white-space:nowrap}
@media(max-width:1000px){.system-health-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.system-health-grid,.system-health-summary{grid-template-columns:1fr}.system-health-card-head{align-items:flex-start}.system-health-card-head .status-badge{flex:0 0 auto}.system-health-refresh-controls{justify-content:flex-start}}

/* v3.9.138 - diskret indikator for central systemopdatering */
.nav-badge.update-available-badge{font-size:10px;letter-spacing:.04em}

/* v3.9.144 - systemtest og rettighedsrevision */
.system-test-list { display: grid; gap: 10px; }
.permission-audit-users { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }

/* v3.9.145 - menuens tæthed følger antal synlige desktop-faner */
@media (min-width: 1101px) {
  .sidebar#app-sidebar .nav.nav-density-medium {
    gap: 5px;
    margin-top: 18px;
  }
  .sidebar#app-sidebar .nav.nav-density-medium a {
    min-height: 41px;
    padding: 10px 14px;
    font-size: 15px;
  }

  .sidebar#app-sidebar .nav.nav-density-high {
    gap: 4px;
    margin-top: 16px;
  }
  .sidebar#app-sidebar .nav.nav-density-high a {
    min-height: 38px;
    padding: 8px 13px;
    font-size: 14px;
  }

  .sidebar#app-sidebar .nav.nav-density-max {
    gap: 3px;
    margin-top: 14px;
  }
  .sidebar#app-sidebar .nav.nav-density-max a {
    min-height: 36px;
    padding: 7px 12px;
    font-size: 13.5px;
  }

  .sidebar#app-sidebar .nav.nav-density-medium .nav-badge,
  .sidebar#app-sidebar .nav.nav-density-high .nav-badge,
  .sidebar#app-sidebar .nav.nav-density-max .nav-badge {
    flex: 0 0 auto;
  }
}


/* v3.9.146 - mange desktop-faner udnytter sidebarens ledige højde */
@media (min-width: 1101px) and (min-height: 850px) {
  .sidebar#app-sidebar .nav.nav-density-high,
  .sidebar#app-sidebar .nav.nav-density-max {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
    justify-content: space-between;
    margin-bottom: 12px;
    overflow-y: visible;
  }

  .sidebar#app-sidebar .nav.nav-density-high a,
  .sidebar#app-sidebar .nav.nav-density-max a {
    flex: 0 0 auto;
  }
}


/* v3.9.147 - updaterens supportvindue og farveadvarsler */
.nav-badge.update-available-badge.info{background:rgba(37,99,235,.22);border-color:rgba(96,165,250,.42);color:#bfdbfe}
.nav-badge.update-available-badge.warning{background:rgba(245,158,11,.20);border-color:rgba(245,158,11,.46);color:#fde68a}
.nav-badge.update-available-badge.danger{background:rgba(239,68,68,.20);border-color:rgba(248,113,113,.50);color:#fecaca}
.dashboard-update-alert.info{border-color:rgba(59,130,246,.42)}
.dashboard-update-alert.warning{border-color:rgba(245,158,11,.50);background:linear-gradient(180deg,rgba(120,53,15,.07),rgba(15,23,42,.32))}
.dashboard-update-alert.danger{border-color:rgba(239,68,68,.58);background:linear-gradient(180deg,rgba(127,29,29,.09),rgba(15,23,42,.32))}


/* v3.9.148 - kontaktstatus på central installationsoversigt */
.release-installation-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .release-installation-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .release-installation-stats { grid-template-columns: 1fr; } }

/* v3.9.149: central installationsadgang */
.alert.warning{background:rgba(120,53,15,.18);color:#fde68a;border:1px solid rgba(245,158,11,.30)}
.installation-access-alert{margin-bottom:16px}
.compact-actions{gap:6px;flex-wrap:wrap}
.button.small-button{padding:8px 11px;min-height:34px;font-size:12px}
body[data-installation-restricted="1"] form[data-installation-write-locked="1"]{opacity:.62}
body[data-installation-restricted="1"] form[data-installation-write-locked="1"] button:disabled,
body[data-installation-restricted="1"] form[data-installation-write-locked="1"] input:disabled,
body[data-installation-restricted="1"] form[data-installation-write-locked="1"] select:disabled,
body[data-installation-restricted="1"] form[data-installation-write-locked="1"] textarea:disabled{cursor:not-allowed}

/* v3.9.150 - central drift, revisionslog og ens installationsafstand */
.release-installation-name{display:flex;align-items:center;gap:6px;flex-wrap:wrap;line-height:1.3;min-height:28px}
.release-installation-id{margin-top:7px;line-height:1.35}
.release-installation-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.release-installation-note{margin-top:7px;max-width:360px;line-height:1.4}
.release-installation-name-cell{min-width:210px}
.release-coverage-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}
.release-installation-tools{width:100%;margin-top:2px}
.release-installation-tools>summary{list-style:none;cursor:pointer;width:max-content}
.release-installation-tools>summary::-webkit-details-marker{display:none}
.release-installation-tools-panel{display:grid;gap:14px;margin-top:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(5,8,20,.92);min-width:min(460px,72vw)}
.release-installation-tools-panel .compact-form{gap:10px}
.release-installation-admin-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:4px;border-top:1px solid var(--line)}
.release-note-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.release-note-group{padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.012)}
.release-note-group>strong{display:block;margin-bottom:8px}
.release-note-group .settings-helper-list{margin-bottom:0}
.release-publish-options{margin-top:4px;max-width:760px}
@media(max-width:1100px){.release-coverage-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.release-note-groups{grid-template-columns:1fr}.release-installation-tools-panel{min-width:0;width:100%}}
@media(max-width:620px){.release-coverage-stats{grid-template-columns:1fr}}

/* Installationer - aktiv/arkiveret visning */
.release-installation-view-tabs .button.active {
  background: var(--info-soft);
  color: var(--info);
  border-color: rgba(96,165,250,.38);
}

/* v3.9.155 - central engangstilladelse */
.copy-field-row{display:flex;gap:10px;align-items:center}.copy-field-row input{flex:1;min-width:0}.copy-field-row .button{flex:0 0 auto}@media(max-width:680px){.copy-field-row{align-items:stretch;flex-direction:column}.copy-field-row .button{width:100%}}

/* v3.9.160-v3.9.161 - Help Desk Core virksomhedsoprettelse og betaling */
.h5-onboarding-shell {
  width: min(940px, calc(100vw - 32px));
  margin: 18px auto 0;
}
.h5-onboarding-card {
  padding: 34px;
  text-align: left;
}
.h5-onboarding-header {
  max-width: 700px;
  margin: 0 auto 26px;
  text-align: center;
}
.h5-onboarding-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 6px 11px;
  border-radius: 999px;
  border: 1px solid rgba(96,165,250,.24);
  background: rgba(37,99,235,.10);
  color: #bfdbfe;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.h5-onboarding-header h1 {
  margin: 12px 0 8px;
  font-size: clamp(30px, 4vw, 42px);
  letter-spacing: -.04em;
}
.h5-onboarding-header p {
  margin: 0;
  line-height: 1.55;
}
.h5-onboarding-alert {
  margin: 0 0 22px;
}
.h5-onboarding-form {
  display: grid;
  gap: 18px;
  margin: 0;
}
.h5-form-section {
  padding: 20px;
  border: 1px solid rgba(148,163,184,.16);
  border-radius: 20px;
  background: rgba(15,23,42,.34);
}
.h5-form-section-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 18px;
}
.h5-form-section-head h2 {
  margin: 0 0 3px;
  font-size: 18px;
}
.h5-form-section-head p {
  margin: 0;
  font-size: 13px;
  line-height: 1.4;
}
.h5-form-step {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  border: 1px solid rgba(96,165,250,.26);
  background: rgba(37,99,235,.14);
  color: #bfdbfe;
  font-size: 13px;
  font-weight: 900;
}
.h5-onboarding-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.h5-onboarding-grid label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  text-align: left;
}
.h5-onboarding-grid label > span {
  display: block;
  margin: 0;
  color: #d8e2f0;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.35;
}
.h5-onboarding-grid label > small {
  display: block;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
.h5-onboarding-grid input,
.h5-onboarding-grid select {
  min-height: 50px;
  margin: 0;
  padding: 13px 15px;
  border-radius: 14px;
  text-align: left;
}
.h5-price-box {
  min-height: 79px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  align-content: center;
  gap: 2px 14px;
  padding: 12px 15px;
  border: 1px solid rgba(52,211,153,.22);
  border-radius: 14px;
  background: rgba(16,185,129,.08);
}
.h5-price-box > span {
  align-self: end;
  color: #a7f3d0;
  font-size: 12px;
  font-weight: 750;
}
.h5-price-box > strong {
  grid-row: 1 / 3;
  grid-column: 2;
  align-self: center;
  color: #6ee7b7;
  font-size: 22px;
  white-space: nowrap;
}
.h5-price-box > small {
  color: var(--muted);
  font-size: 12px;
}
.h5-onboarding-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding-top: 2px;
}
.h5-onboarding-actions .button {
  min-height: 46px;
}
.h5-checkout-card {
  width: min(820px, 100%);
  margin: 0 auto;
}
.h5-order-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 10px;
  margin-bottom: 18px;
  padding: 14px;
  border: 1px solid rgba(148,163,184,.16);
  border-radius: 18px;
  background: rgba(15,23,42,.32);
}
.h5-order-summary > div {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 6px 10px;
}
.h5-order-summary span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.h5-order-summary strong {
  overflow-wrap: anywhere;
  font-size: 15px;
}
.h5-order-summary-total strong {
  color: #6ee7b7;
}
.h5-payment-grid {
  grid-template-columns: repeat(2, minmax(0,1fr));
}
.h5-checkout-actions {
  flex-wrap: wrap;
}
.h5-reset-card {
  border-color: rgba(248,113,113,.18);
}
.h5-reset-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}
.h5-reset-head h2 {
  margin: 0 0 6px;
}
.h5-reset-head p {
  margin: 0;
  max-width: 760px;
  line-height: 1.5;
}
.h5-reset-form {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 12px;
  align-items: end;
}
.h5-reset-form label {
  gap: 8px;
}
.h5-reset-form input,
.h5-reset-form .button {
  min-height: 48px;
}

@media (max-width: 820px) {
  .h5-onboarding-shell { width: min(100% - 24px, 940px); margin-top: 12px; }
  .h5-onboarding-card { padding: 24px 18px; }
  .h5-onboarding-grid, .h5-payment-grid { grid-template-columns: 1fr; }
  .h5-onboarding-grid .full-span { grid-column: 1; }
  .h5-order-summary { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .h5-onboarding-actions { display: grid; grid-template-columns: 1fr; }
  .h5-onboarding-actions .button { width: 100%; }
  .h5-reset-head { flex-direction: column; }
  .h5-reset-form { grid-template-columns: 1fr; }
  .h5-reset-form .button { width: 100%; }
}

@media (max-width: 520px) {
  .h5-form-section { padding: 16px 14px; }
  .h5-order-summary { grid-template-columns: 1fr; }
  .h5-price-box { grid-template-columns: 1fr; }
  .h5-price-box > strong { grid-row: auto; grid-column: auto; margin-top: 3px; }
}


/* Help Desk Core v3.9.165 */
.public-ticket-head-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.h5-verification-settings{border:0;padding:0;margin:0;min-width:0}
.h5-verification-settings>legend{font-weight:700;margin-bottom:6px}
.h5-verification-settings>p{margin:0 0 12px}
.h5-verification-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:10px 0}
.h5-verification-option{position:relative;display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:rgba(15,23,42,.42);cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.h5-verification-option:hover{border-color:rgba(96,165,250,.55);transform:translateY(-1px)}
.h5-verification-option:has(input:checked){border-color:rgba(59,130,246,.8);background:rgba(30,64,175,.18);box-shadow:0 0 0 1px rgba(59,130,246,.14) inset}
.h5-verification-option input{margin-top:4px;accent-color:#3b82f6}
.h5-verification-copy{display:flex;flex-direction:column;gap:5px;line-height:1.35}
.h5-verification-copy strong{color:#e7edff}
.h5-verification-copy small{color:#9aa8c3}
.h5-renew-period{max-width:520px;margin-top:18px}
.h5-payment-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.h5-payment-choice form{margin:0}
.h5-payment-choice-button{width:100%;min-height:72px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;text-align:left}
.h5-payment-choice-button small{opacity:.75;font-size:12px}
.h5-saved-card-badge{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:10px 14px;border:1px solid rgba(45,212,191,.28);background:rgba(13,148,136,.10);border-radius:12px}
.h5-saved-card-badge span,.h5-saved-card-badge small{color:#9ddfd5;font-size:12px}
.h5-saved-card-badge strong{font-size:18px;color:#d5fff7}
.h5-new-card-panel{margin-top:18px;padding:18px;border:1px solid rgba(148,163,184,.20);border-radius:16px;background:rgba(15,23,42,.34)}
.h5-new-card-panel[hidden]{display:none!important}
@media(max-width:820px){
  .h5-verification-options,.h5-payment-choice{grid-template-columns:1fr}
  .public-ticket-head-actions{justify-content:flex-start}
  .h5-saved-card-badge{align-items:flex-start}
}

/* Help Desk Core v3.9.166 - settings og abonnementsfinpudsning */
.h5-settings-card{padding:24px}
.h5-settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:6px}
.h5-settings-heading h2{margin:0 0 5px}
.h5-settings-heading p{margin:0}
.h5-settings-block{padding:18px;border:1px solid rgba(148,163,184,.18);border-radius:16px;background:rgba(15,23,42,.30)}
.h5-settings-block+.h5-settings-block{margin-top:2px}
.h5-settings-block-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}
.h5-settings-block-title>strong,.h5-settings-block-title>div>strong{display:block;color:#e8eefc;font-size:16px}
.h5-settings-block-title>span,.h5-settings-block-title>div>span{display:block;margin-top:3px;color:var(--muted);font-size:13px;line-height:1.4}
.h5-settings-grid{grid-template-columns:1fr;gap:16px}
.h5-settings-grid label,.h5-compact-field,.h5-smtp-grid label{gap:9px}
.h5-settings-grid label>span,.h5-compact-field>span,.h5-smtp-grid label>span{font-weight:700;color:#dbe4f6}
.h5-compact-field{max-width:760px}
.h5-compact-field select{min-height:48px}
.h5-mail-settings{border-color:rgba(56,189,248,.20);background:rgba(8,47,73,.14)}
.h5-mail-settings[hidden]{display:none!important}
.h5-mail-title{align-items:center}
.h5-mail-explainer{margin:-2px 0 16px;max-width:980px;line-height:1.55}
.h5-smtp-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.h5-smtp-grid .full-span{grid-column:1/-1}
.h5-smtp-grid input,.h5-smtp-grid select{min-height:46px}
.h5-inline-check{display:flex;align-items:center;gap:10px;margin-top:14px}
.h5-inline-check input{width:auto;min-height:0}
.h5-inline-check span{font-size:13px;color:var(--muted)}
.h5-mail-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid rgba(148,163,184,.14)}
.h5-settings-card .form-actions{margin-top:2px}

/* Mere luft mellem labels og felter på abonnementsfornyelse */
.h5-renew-card label{gap:11px}
.h5-renew-card label>span{display:block;font-weight:700;color:#dbe4f6;line-height:1.35}
.h5-renew-period{max-width:620px;margin-top:20px}
.h5-renew-period select{min-height:50px}
.h5-new-card-panel .h5-onboarding-grid{gap:18px}
.h5-new-card-panel .h5-onboarding-grid label{gap:10px}
.h5-new-card-panel .h5-onboarding-grid input{min-height:48px}

@media(max-width:920px){
  .h5-smtp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .h5-settings-card{padding:16px}
  .h5-settings-block{padding:15px 13px}
  .h5-settings-block-title,.h5-mail-title{flex-direction:column;align-items:flex-start}
  .h5-smtp-grid{grid-template-columns:1fr}
  .h5-smtp-grid .full-span{grid-column:1}
  .h5-mail-actions{align-items:stretch;flex-direction:column}
  .h5-mail-actions .button{width:100%}
}

/* DYNS fuld produktforside – tilføjelser uden ændring af eksisterende komponenter */
.dyns-feature-grid {grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}
.dyns-landing .public-portal-hero {padding:clamp(24px,4vw,48px)}
.dyns-landing .public-portal-hero h1{max-width:800px;line-height:1.16}
.dyns-landing .public-portal-hero p {max-width:850px}
.dyns-demo-note{margin:15px 0 0}
.dyns-how-it-works,.dyns-price-section{margin-top:18px}
.dyns-process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}
.dyns-process-grid>div{padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.035)}
.dyns-process-grid p{margin:8px 0 0}
@media(max-width:900px){.dyns-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.dyns-feature-grid,.dyns-process-grid{grid-template-columns:1fr}}

/* DYNS 03.11.2026 - offentlig forside, afstand under knapper */
.dyns-landing .public-portal-hero .dyns-demo-note { margin: 20px 0 0; line-height: 1.5; }

/* Undgå tomme røde beskedfelter uden fejltekst. Synlige fejl bevares. */
.h5-settings-card .alert.error:empty,
.card.glass .alert.error:empty { display: none !important; }


/* DYNS v3.9.169 R2 - desktop-sidebar passer til det tilgaengelige areal.
   Hold brugerprofilen synlig og lad menuen scrolle ved meget lav skaarmhoejde. */
@media (min-width: 1101px) {
  .sidebar#app-sidebar {
    height: calc(100dvh - 48px);
    min-height: 0;
    overflow: hidden;
  }
  .sidebar#app-sidebar > div:first-child,
  .sidebar#app-sidebar > .sidebar-footer { flex: 0 0 auto; }
  .sidebar#app-sidebar > .sidebar-footer { margin-top: 10px; }
  .sidebar#app-sidebar > .nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto !important;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(148,163,184,.42) transparent;
  }
  .sidebar#app-sidebar.nav-fit-compact > .nav {
    gap: 2px;
    margin-top: 12px;
    justify-content: flex-start;
  }
  .sidebar#app-sidebar.nav-fit-compact > .nav a {
    min-height: 35px;
    padding: 7px 12px;
    font-size: 13.5px;
  }
  .sidebar#app-sidebar.nav-fit-tight { padding-top: 13px; padding-bottom: 12px; }
  .sidebar#app-sidebar.nav-fit-tight > .nav {
    gap: 1px;
    margin-top: 9px;
    justify-content: flex-start;
  }
  .sidebar#app-sidebar.nav-fit-tight > .nav a {
    min-height: 31px;
    padding: 5px 11px;
    font-size: 13px;
  }
  .sidebar#app-sidebar.nav-fit-tight > .sidebar-footer { gap: 5px; margin-top: 7px; }
  .sidebar#app-sidebar.nav-fit-tight .user-chip { padding-top: 6px; padding-bottom: 6px; }
  .sidebar#app-sidebar.nav-fit-tight .sidebar-footer .button { padding-top: 7px; padding-bottom: 7px; }
}
