/* Netværkspraksis Intra v2 — lys og mørk tilstand med Netværkspraksis-paletten */
:root {
  --bg: #f3f4f3; --flade: #ffffff; --flade2: #f7f8f8; --kant: #e3e6e6; --kant2: #d4d9d9;
  --tekst: #1f2a2a; --daempet: #5d6a6a; --svag: #637070;
  --teal: #2a7a77; --teal-moerk: #0a6c69; --teal-lys: #e1f0ef; --teal-tekst: #0a6c69; --guld: #c9b63a; --guld-tekst: #7d6a0a; --paa-teal: #ffffff;
  --advar: #975e0c; --advar-bg: #fdf3e0; --fare: #b42a2a; --fare-bg: #fdecec; --god: #12703a; --god-bg: #e6f5ea; --info: #2563eb;
  --skygge: 0 1px 2px rgba(16, 40, 40, .06), 0 1px 3px rgba(16, 40, 40, .05);
  --radius: 14px; --sidebar: 256px; --top: 64px; --hjul-bund: #ffffff; --hjul-fuge: #ffffff; --hjul-trivsel: #dbeafe; --hjul-faglig: #ede9fe; --hjul-oekonomi: #d1fae5; --hjul-tekst: #4b5563; --hjul-svag: #6b7280;
}
:root[data-tema="moerk"] {
  --bg: #0f1212; --flade: #181c1c; --flade2: #1f2424; --kant: #2a3131; --kant2: #353d3d;
  --tekst: #e8eeee; --daempet: #9aa8a8; --svag: #8a9797;
  --teal: #4fb3ad; --teal-moerk: #6cc5bf; --teal-lys: #173634; --teal-tekst: #7fd0ca; --guld-tekst: #d9c65a; --paa-teal: #0b1f1e;
  --advar: #f0b451; --advar-bg: #3a2c12; --fare: #f07070; --fare-bg: #3a1a1a; --god: #5fd08a; --god-bg: #143222;
  --skygge: 0 1px 2px rgba(0, 0, 0, .4); --hjul-bund: #181c1c; --hjul-fuge: #181c1c; --hjul-trivsel: #1e3350; --hjul-faglig: #2f2850; --hjul-oekonomi: #173a2e; --hjul-tekst: #c9d1d1; --hjul-svag: #8a9797;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="lys"]) {
    --bg: #0f1212; --flade: #181c1c; --flade2: #1f2424; --kant: #2a3131; --kant2: #353d3d;
    --tekst: #e8eeee; --daempet: #9aa8a8; --svag: #8a9797;
    --teal: #4fb3ad; --teal-moerk: #6cc5bf; --teal-lys: #173634; --teal-tekst: #7fd0ca; --guld-tekst: #d9c65a; --paa-teal: #0b1f1e;
    --advar: #f0b451; --advar-bg: #3a2c12; --fare: #f07070; --fare-bg: #3a1a1a; --god: #5fd08a; --god-bg: #143222;
    --skygge: 0 1px 2px rgba(0, 0, 0, .4); --hjul-bund: #181c1c; --hjul-fuge: #181c1c; --hjul-trivsel: #1e3350; --hjul-faglig: #2f2850; --hjul-oekonomi: #173a2e; --hjul-tekst: #c9d1d1; --hjul-svag: #8a9797;
  }
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--bg); color: var(--tekst); font-family: 'Public Sans', -apple-system, 'Segoe UI', sans-serif; font-size: 14.5px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
a { color: var(--teal-tekst); }
h1, h2, h3, h4 { margin: 0; line-height: 1.25; }
button, input, select, textarea { font: inherit; color: inherit; }
svg.ik { width: 18px; height: 18px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.opstart { padding: 80px; text-align: center; color: var(--daempet); }
.skjult { display: none !important; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* --- Topbar --- */
.top { position: sticky; top: 0; z-index: 40; height: var(--top); background: var(--flade); border-bottom: 1px solid var(--kant); display: flex; align-items: center; gap: 16px; padding: 0 20px; }
.brand { display: flex; align-items: center; gap: 10px; min-width: 0; text-decoration: none; color: inherit; }
.brand img { width: 32px; height: 32px; }
.brand .lille { font-size: 11.5px; color: var(--daempet); line-height: 1; }
.brand .navn { font-weight: 800; font-size: 16.5px; letter-spacing: -.2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.praksisvalg { border: 0; background: transparent; padding: 0; cursor: pointer; text-align: left; display: flex; align-items: center; gap: 4px; }
.soegknap { flex: 1; max-width: 420px; margin: 0 auto; display: flex; align-items: center; gap: 10px; border: 1px solid var(--kant2); background: var(--flade2); border-radius: 10px; padding: 8px 12px; color: var(--daempet); cursor: pointer; text-align: left; }
.soegknap kbd { margin-left: auto; font-size: 11px; border: 1px solid var(--kant2); border-radius: 6px; padding: 1px 6px; }
.toplinks { display: flex; align-items: center; gap: 14px; }
.toplinks a, .toplinks button.lnk { display: inline-flex; align-items: center; gap: 5px; text-decoration: none; font-weight: 600; font-size: 13.5px; color: var(--teal-tekst); background: none; border: 0; cursor: pointer; padding: 0; }
.toplinks .neutral { color: var(--tekst); }
.brugerknap { display: flex; align-items: center; gap: 10px; border: 0; background: none; cursor: pointer; padding: 4px 6px; border-radius: 10px; }
.brugerknap:hover { background: var(--flade2); }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--teal-lys); color: var(--teal-tekst); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 12.5px; flex: none; }
.menuknap { display: none; border: 0; background: none; padding: 6px; cursor: pointer; }
.menu { position: absolute; top: calc(var(--top) - 6px); right: 16px; background: var(--flade); border: 1px solid var(--kant); border-radius: 12px; box-shadow: 0 12px 30px rgba(0,0,0,.15); padding: 6px; min-width: 240px; z-index: 60; }
.menu .hoved { padding: 10px 12px 8px; border-bottom: 1px solid var(--kant); margin-bottom: 4px; }
.menu button, .menu a { display: flex; width: 100%; align-items: center; gap: 10px; padding: 9px 12px; border: 0; background: none; border-radius: 8px; cursor: pointer; text-align: left; text-decoration: none; color: var(--tekst); }
.menu button:hover, .menu a:hover { background: var(--flade2); }

/* --- Layout + sidebar --- */
.ramme { display: grid; grid-template-columns: var(--sidebar) 1fr; gap: 24px; padding: 20px 24px 60px; align-items: start; }
.ramme.lukket { grid-template-columns: 64px 1fr; }
.side { position: sticky; top: calc(var(--top) + 20px); max-height: calc(100vh - var(--top) - 40px); overflow-y: auto; background: var(--flade); border: 1px solid var(--kant); border-radius: var(--radius); padding: 14px 10px; box-shadow: var(--skygge); scrollbar-width: thin; }
.side .navhoved { display: flex; justify-content: space-between; align-items: center; padding: 4px 10px 10px; font-size: 11.5px; font-weight: 700; letter-spacing: .8px; color: var(--daempet); text-transform: uppercase; }
.side .ikonknap { border: 0; background: none; cursor: pointer; color: var(--daempet); padding: 4px; border-radius: 6px; }
.side .ikonknap:hover { background: var(--flade2); color: var(--tekst); }
.navsek > button { display: flex; align-items: center; gap: 6px; width: 100%; border: 0; background: none; cursor: pointer; padding: 12px 10px 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .8px; color: var(--daempet); text-transform: uppercase; }
.navsek > button svg { width: 12px; height: 12px; transition: transform .15s; }
.navsek.foldet > button svg { transform: rotate(-90deg); }
.navsek.foldet .navpunkter { display: none; }
.navpunkt { display: flex; align-items: center; gap: 12px; padding: 8px 12px; border-radius: 9px; text-decoration: none; color: var(--tekst); font-weight: 500; margin: 1px 0; }
.navpunkt:hover { background: var(--flade2); }
.navpunkt.aktiv { background: var(--teal-lys); color: var(--teal-tekst); font-weight: 600; }
.navpunkt .tael { margin-left: auto; background: var(--teal); color: var(--paa-teal); border-radius: 999px; font-size: 11px; font-weight: 700; padding: 0 7px; }
.ramme.lukket .side .navhoved span, .ramme.lukket .navsek > button, .ramme.lukket .navpunkt span { display: none; }
.ramme.lukket .navpunkt { justify-content: center; padding: 10px; }
.ramme.lukket .navsek.foldet .navpunkter { display: block; }
.indhold { min-width: 0; }

/* --- Sidehoved og kort --- */
.sidehoved { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.sidehoved h1 { font-size: 26px; font-weight: 800; letter-spacing: -.4px; }
.sidehoved .under { color: var(--daempet); margin-top: 4px; }
.velkommen h1 { color: var(--guld-tekst); }
.knaprk { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.kort { background: var(--flade); border: 1px solid var(--kant); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--skygge); }
.kort + .kort { margin-top: 14px; }
.kort h2 { font-size: 16px; font-weight: 700; margin-bottom: 10px; }
.kort .under { color: var(--daempet); font-size: 13px; }
.gitter2 { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.gitter3 { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin-bottom: 18px; }
.kpi { background: var(--flade); border: 1px solid var(--kant); border-radius: var(--radius); padding: 14px 16px; box-shadow: var(--skygge); }
.kpi .lbl { font-size: 12px; font-weight: 700; color: var(--daempet); text-transform: uppercase; letter-spacing: .4px; }
.kpi .val { font-size: 26px; font-weight: 800; margin-top: 4px; }
.sek { font-size: 18px; font-weight: 700; margin: 26px 0 12px; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.sek a { font-size: 13.5px; font-weight: 600; text-decoration: none; display: inline-flex; gap: 4px; align-items: center; }

/* --- Knapper og formularer --- */
.knap { display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--kant2); background: var(--flade); color: var(--tekst); border-radius: 9px; padding: 8px 14px; font-weight: 600; font-size: 13.5px; cursor: pointer; text-decoration: none; white-space: nowrap; }
.knap:hover { background: var(--flade2); }
.knap.prim { background: var(--teal); border-color: var(--teal); color: var(--paa-teal); }
.knap.prim:hover { background: var(--teal-moerk); }
.knap.fare { color: var(--fare); }
.knap.lille { padding: 5px 10px; font-size: 12.5px; }
.knap:disabled { opacity: .5; cursor: default; }
.felt { display: flex; flex-direction: column; gap: 5px; margin-bottom: 12px; font-size: 13px; font-weight: 600; color: var(--daempet); }
.felt input, .felt select, .felt textarea, .inp { font-weight: 400; color: var(--tekst); background: var(--flade); border: 1px solid var(--kant2); border-radius: 9px; padding: 9px 11px; font-size: 14px; width: 100%; }
.felt textarea { min-height: 90px; resize: vertical; }
.felt input:focus, .felt select:focus, .felt textarea:focus, .inp:focus { outline: 2px solid var(--teal); outline-offset: -1px; border-color: transparent; }
.felt input[type=checkbox], .felt input[type=radio] { width: auto; flex: none; }
.felter2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.felter3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 14px; }
.radio { display: flex; gap: 16px; flex-wrap: wrap; font-weight: 500; color: var(--tekst); }
.radio label { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
.fejltekst { color: var(--fare); font-size: 13px; margin: 6px 0; }
.hint { color: var(--daempet); font-size: 12.5px; }
.chip { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: var(--flade2); color: var(--daempet); white-space: nowrap; border: 1px solid var(--kant); }
.chip.god { background: var(--god-bg); color: var(--god); border-color: transparent; }
.chip.advar { background: var(--advar-bg); color: var(--advar); border-color: transparent; }
.chip.fare { background: var(--fare-bg); color: var(--fare); border-color: transparent; }
.chip.teal { background: var(--teal-lys); color: var(--teal-tekst); border-color: transparent; }
.tom { padding: 30px 10px; text-align: center; color: var(--daempet); }

/* --- Tabeller --- */
.tabel { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tabel th { text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .4px; color: var(--daempet); font-weight: 700; padding: 8px 10px; border-bottom: 1px solid var(--kant); }
.tabel td { padding: 10px; border-bottom: 1px solid var(--kant); vertical-align: middle; }
.tabel tr:last-child td { border-bottom: 0; }
.tabel tr.klik { cursor: pointer; } .tabel tr.klik:hover td { background: var(--flade2); }
.tabelrul { overflow-x: auto; }
.tal { text-align: right; font-variant-numeric: tabular-nums; }

/* --- Nyheder --- */
.nyhedsgitter { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; }
.nyhedskort { background: var(--flade); border: 1px solid var(--kant); border-radius: var(--radius); overflow: hidden; text-decoration: none; color: inherit; display: flex; flex-direction: column; box-shadow: var(--skygge); transition: transform .15s, box-shadow .15s; }
.nyhedskort:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.08); }
.nyhedskort .billede { aspect-ratio: 16/9; background: linear-gradient(135deg, #2a7a77, #0a6c69); display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 800; font-size: 18px; padding: 10px; text-align: center; overflow: hidden; }
.nyhedskort .billede.harbillede { padding: 0; background: var(--flade2); }
.nyhedskort .billede img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
.nyhedskort .krop { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.nyhedskort h3 { font-size: 14.5px; font-weight: 700; }
.forfatter { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--daempet); margin-top: auto; }
.forfatter .avatar { width: 26px; height: 26px; font-size: 10.5px; }
.artikel { max-width: 780px; }
.artikel .brod { font-size: 15.5px; line-height: 1.65; }
.artikel .brod img { max-width: 100%; height: auto; border-radius: 8px; }
.artikel .topbillede { margin: 14px 0; border-radius: var(--radius); overflow: hidden; background: var(--flade2); display: flex; justify-content: center; }
.artikel .topbillede img { display: block; max-width: 100%; height: auto; max-height: min(70vh, 560px); object-fit: contain; }
.editor { min-height: 220px; border: 1px solid var(--kant2); border-radius: 9px; padding: 12px; background: var(--flade); outline: none; line-height: 1.6; }
.editor:focus { outline: 2px solid var(--teal); }
.editorbar { display: flex; gap: 4px; margin-bottom: 6px; flex-wrap: wrap; }
.editorbar button { border: 1px solid var(--kant2); background: var(--flade); border-radius: 7px; padding: 4px 9px; cursor: pointer; font-weight: 700; }

/* --- Opslagstavle og events --- */
.opslag { background: var(--flade); border: 1px solid var(--kant); border-left: 4px solid var(--teal); border-radius: 12px; padding: 14px 16px; margin-bottom: 10px; }
.opslag.ny { border-left-color: var(--guld); }
.opslag .hoved { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.opslag .tid { margin-left: auto; color: var(--daempet); font-size: 12.5px; }
.opslag .tekst { white-space: pre-wrap; word-break: break-word; }
.eventliste { list-style: none; padding: 0; margin: 0; }
.eventliste li { display: flex; gap: 10px; padding: 8px 0; }
.eventliste .prik { width: 10px; height: 10px; border-radius: 50%; margin-top: 6px; flex: none; }
.eventliste .dato { font-size: 12.5px; color: var(--daempet); display: flex; gap: 5px; align-items: center; }

/* --- Kalender --- */
.kalgrid { display: grid; grid-template-columns: repeat(7, 1fr); border: 1px solid var(--kant); border-radius: var(--radius); overflow: hidden; background: var(--kant); gap: 1px; }
.kalgrid .ugedag { background: var(--flade2); padding: 8px; font-size: 12px; font-weight: 700; color: var(--daempet); text-transform: uppercase; }
.kaldag { background: var(--flade); min-height: 108px; padding: 6px; cursor: pointer; }
.kaldag.udenfor { background: var(--flade2); color: var(--svag); }
.kaldag.idag .nr { background: var(--teal); color: var(--paa-teal); border-radius: 999px; padding: 0 7px; }
.kaldag .nr { font-size: 12.5px; font-weight: 700; display: inline-block; margin-bottom: 4px; }
.kalev { display: block; font-size: 12px; border-radius: 6px; padding: 2px 6px; margin-bottom: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #fff; cursor: pointer; border: 0; width: 100%; text-align: left; }
.aarshjul { width: 100%; max-width: 980px; display: block; margin: 0 auto; font-family: inherit; }
.hjulramme { background: var(--flade); border: 1px solid var(--kant); border-radius: var(--radius); padding: 10px; box-shadow: var(--skygge); }
.hjul-bund { fill: var(--hjul-bund); }
.hjul-celle { stroke: var(--hjul-fuge); stroke-width: 1.5; opacity: .65; cursor: copy; transition: opacity .15s; }
.hjul-celle:hover { opacity: .9; }
.hjul-celle.lag-trivsel { fill: var(--hjul-trivsel); } .hjul-celle.lag-faglig_kvalitet { fill: var(--hjul-faglig); } .hjul-celle.lag-baeredygtig_praksis { fill: var(--hjul-oekonomi); }
.hjul-linje { stroke: var(--hjul-fuge); stroke-width: 2; pointer-events: none; }
.hjul-tik { stroke: var(--hjul-svag); stroke-width: 1; }
.hjul-uge { font-size: 10px; fill: var(--hjul-svag); }
.hjul-maaned { font-size: 19px; font-weight: 600; fill: var(--hjul-tekst); }
.hjul-lagnavn { font-size: 13px; font-weight: 600; fill: var(--hjul-tekst); paint-order: stroke; stroke: var(--hjul-bund); stroke-width: 4px; stroke-linejoin: round; pointer-events: none; }
.hjul-ev { cursor: pointer; } .hjul-evblok { stroke: var(--hjul-fuge); stroke-width: 1.5; } .hjul-ev:hover .hjul-evblok { filter: brightness(1.08); }
.hjul-evtekst { font-size: 11px; font-weight: 600; fill: #fff; pointer-events: none; }
.hjul-idag { stroke: #ef4444; stroke-width: 2.5; stroke-linecap: round; }
.hjul-midte { fill: var(--hjul-bund); stroke: var(--kant); stroke-width: 2; }
.hjul-aar { font-size: 38px; font-weight: 700; fill: var(--hjul-tekst); }
.hjulfiltre { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 8px; }
.filterchip { cursor: pointer; font-size: 12.5px; padding: 4px 10px; background: var(--flade); color: var(--tekst); }
.filterchip i { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.filterchip.fra { opacity: .4; }
.modal.skuffemodal { padding: 0; justify-content: flex-end; align-items: stretch; }
.skuffe { background: var(--flade); width: min(460px, 100%); height: 100vh; display: flex; flex-direction: column; box-shadow: -12px 0 40px rgba(0,0,0,.25); animation: ind .18s ease-out; }
.skuffe .dhoved { display: flex; justify-content: space-between; align-items: flex-start; padding: 18px 20px; border-bottom: 1px solid var(--kant); }
.skuffe .dhoved h2 { font-size: 17px; }
.skuffe .dkrop { padding: 16px 20px; overflow-y: auto; flex: 1; }
.skuffe .dfod { display: flex; gap: 8px; justify-content: flex-end; padding: 14px 20px; border-top: 1px solid var(--kant); }
.skuffe .dfod .venstre { margin-right: auto; }
@keyframes ind { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
.legende { display: flex; flex-wrap: wrap; gap: 10px 16px; font-size: 13px; margin-top: 12px; }
.legende span { display: inline-flex; align-items: center; gap: 6px; }
.legende i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }

/* --- Dokumentbibliotek --- */
.biblayout { display: grid; grid-template-columns: 260px 1fr; gap: 20px; align-items: start; }
.katliste { list-style: none; margin: 0; padding: 0; }
.katliste button { display: flex; width: 100%; justify-content: space-between; gap: 8px; border: 0; background: none; padding: 8px 10px; border-radius: 8px; cursor: pointer; text-align: left; }
.katliste button:hover { background: var(--flade2); }
.katliste button.aktiv { background: var(--teal-lys); color: var(--teal-tekst); font-weight: 600; }
.dokrk { display: flex; align-items: center; gap: 12px; padding: 12px 6px; border-bottom: 1px solid var(--kant); }
.dokrk:last-child { border-bottom: 0; }
.dokrk .filikon { width: 38px; height: 38px; border-radius: 10px; background: var(--teal-lys); color: var(--teal-tekst); display: flex; align-items: center; justify-content: center; flex: none; }
.dokrk .titel { font-weight: 600; } .dokrk .meta { font-size: 12.5px; color: var(--daempet); }
.dokrk .hoejre { margin-left: auto; display: flex; gap: 6px; }
.markeret { outline: 2px solid var(--teal); border-radius: 10px; }

/* --- Tidsregistrering --- */
.saldi { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 18px; }
.saldo .bar { height: 6px; background: var(--flade2); border-radius: 99px; margin-top: 8px; overflow: hidden; }
.saldo .bar i { display: block; height: 100%; background: var(--teal); }

/* --- Indlejrede apps --- */
.appramme { width: 100%; height: calc(100vh - var(--top) - 120px); min-height: 520px; border: 1px solid var(--kant); border-radius: var(--radius); background: var(--flade); }

/* --- Modal, toast, søgepalet --- */
.modal { position: fixed; inset: 0; background: rgba(8, 20, 20, .55); z-index: 100; display: flex; align-items: flex-start; justify-content: center; padding: 6vh 16px; overflow-y: auto; }
.modal[hidden] { display: none; }
.dialog { background: var(--flade); border-radius: 16px; width: min(640px, 100%); box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.dialog.bred { width: min(920px, 100%); }
.dialog .dhoved { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--kant); }
.dialog .dhoved h2 { font-size: 17px; }
.dialog .dkrop { padding: 18px 20px; }
.dialog .dfod { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 20px; border-top: 1px solid var(--kant); flex-wrap: wrap; }
.dialog .dfod .venstre { margin-right: auto; }
.toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px); background: #0a6c69; color: #fff; padding: 11px 18px; border-radius: 10px; font-weight: 600; opacity: 0; transition: .25s; z-index: 200; pointer-events: none; max-width: 90vw; }
.toast.vis { opacity: 1; transform: translateX(-50%); }
.palet input { width: 100%; border: 0; border-bottom: 1px solid var(--kant); padding: 16px 20px; font-size: 16px; background: transparent; outline: none; }
.palet .res { max-height: 420px; overflow-y: auto; padding: 6px; }
.palet .res a { display: flex; gap: 10px; align-items: center; padding: 10px 14px; border-radius: 9px; text-decoration: none; color: var(--tekst); }
.palet .res a:hover, .palet .res a.valgt { background: var(--teal-lys); }
.palet .res .type { font-size: 11.5px; color: var(--daempet); margin-left: auto; white-space: nowrap; }
.hjaelp { position: fixed; right: 24px; bottom: 24px; width: 50px; height: 50px; border-radius: 50%; border: 0; background: var(--guld); color: #1f2a2a; cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.2); display: flex; align-items: center; justify-content: center; z-index: 50; }

/* --- Login --- */
.loginside { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; background: radial-gradient(1000px 500px at 10% -10%, var(--teal-lys), transparent), var(--bg); }
.loginkort { width: min(420px, 100%); background: var(--flade); border: 1px solid var(--kant); border-radius: 18px; padding: 30px; box-shadow: 0 10px 40px rgba(0,0,0,.08); }
.loginkort .brand { margin-bottom: 22px; }
.loginkort h1 { font-size: 21px; margin-bottom: 4px; }

/* --- Responsivt --- */
@media (max-width: 1100px) { .gitter2 { grid-template-columns: 1fr; } }
@media (max-width: 860px) {
  .ramme, .ramme.lukket { grid-template-columns: 1fr; padding: 14px 16px 80px; }
  .side { position: fixed; top: var(--top); left: 0; bottom: 0; width: 280px; max-height: none; border-radius: 0; z-index: 45; transform: translateX(-100%); transition: transform .2s; }
  .ramme.mobilaaben .side { transform: none; box-shadow: 0 0 40px rgba(0,0,0,.3); }
  .menuknap { display: inline-flex; }
  .soegknap { max-width: none; } .soegknap span, .soegknap kbd { display: none; }
  .soegknap { flex: 0 0 auto; margin: 0 0 0 auto; padding: 8px; }
  .toplinks .ext, .brugerknap .bnavn { display: none; }
  .biblayout { grid-template-columns: 1fr; }
  .felter2, .felter3 { grid-template-columns: 1fr; }
  .brand { flex: 1; } .brand .navn { max-width: 52vw; }
  .nyhedskort .billede { aspect-ratio: 16/9; font-size: 16px; }
  .kaldag { min-height: 70px; } .kalev { font-size: 10.5px; padding: 1px 3px; }
  .sidehoved h1 { font-size: 22px; }
}

/* --- MUS/APV: skemaer, vurdering 1–5, aftaler og dashboard --- */
:root { --r1: #c53030; --r2: #dd6b20; --r3: #c9a227; --r4: #5a9e3a; --r5: #15803d; }
.faner { display: flex; gap: 6px; margin-bottom: 16px; flex-wrap: wrap; }
.fane { padding: 7px 16px; border-radius: 999px; border: 1px solid var(--kant2); background: var(--flade); color: var(--tekst); text-decoration: none; font-weight: 600; font-size: 13.5px; }
.fane.aktiv { background: var(--teal); border-color: var(--teal); color: var(--paa-teal); }
.besked { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 10px; font-size: 14px; text-decoration: none; }
.besked.god { background: var(--god-bg); color: var(--god); }
.besked.advar { background: var(--advar-bg); color: var(--advar); }
.besked.paamind { margin-bottom: 16px; color: var(--tekst); border: 1px solid var(--advar); }
.besked.paamind .ik:last-child { margin-left: auto; }
.rundehoved { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.skemagitter { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 20px; align-items: start; }
.skemaside { position: sticky; top: calc(var(--top) + 20px); }
.skalarad { display: flex; align-items: center; gap: 10px; margin: 6px 0; font-size: 13.5px; }
details.intro summary { cursor: pointer; }
details.intro { margin-bottom: 16px; }
.spm { padding: 16px 0; border-bottom: 1px solid var(--kant); }
.spm:first-of-type { padding-top: 4px; }
.spm h3 { font-size: 16px; margin: 0; }
.paakraevet { color: var(--fare); }
.skala { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.skala label { cursor: pointer; }
.skala input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.skala span { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 12px; border: 1.5px solid var(--kant2); background: var(--flade2); font-weight: 800; font-size: 16px; transition: transform .1s; }
.skala label:hover span { border-color: var(--teal); }
.skala input:focus-visible + span { outline: 2px solid var(--teal); outline-offset: 2px; }
.skala label:nth-child(1) input:checked + span { background: var(--r1); border-color: var(--r1); color: #fff; }
.skala label:nth-child(2) input:checked + span { background: var(--r2); border-color: var(--r2); color: #1f2a2a; }
.skala label:nth-child(3) input:checked + span { background: var(--r3); border-color: var(--r3); color: #1f2a2a; }
.skala label:nth-child(4) input:checked + span { background: var(--r4); border-color: var(--r4); color: #1f2a2a; }
.skala label:nth-child(5) input:checked + span { background: var(--r5); border-color: var(--r5); color: #fff; }
.skala input:checked + span { transform: scale(1.06); }
.skala input:disabled + span { cursor: default; opacity: .75; }
.skala .ryd { margin-left: 6px; }
.skalatekst { display: flex; justify-content: space-between; max-width: 252px; font-size: 11.5px; color: var(--daempet); margin-top: 5px; }
.valg { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 8px; font-size: 14px; }
.valg label, label.valg { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
.aftale { display: grid; grid-template-columns: minmax(0, 1fr) 150px 150px 100px auto; gap: 8px; align-items: start; margin-bottom: 8px; }
.rbadge { display: inline-flex; min-width: 40px; justify-content: center; padding: 3px 8px; border-radius: 8px; font-weight: 800; font-size: 13px; background: var(--flade2); color: var(--daempet); }
.rbadge.r1 { background: color-mix(in srgb, var(--r1) 18%, transparent); color: var(--r1); }
.rbadge.r2 { background: color-mix(in srgb, var(--r2) 18%, transparent); color: var(--r2); }
.rbadge.r3 { background: color-mix(in srgb, var(--r3) 22%, transparent); color: color-mix(in srgb, var(--r3) 75%, var(--tekst)); }
.rbadge.r4 { background: color-mix(in srgb, var(--r4) 18%, transparent); color: var(--r4); }
.rbadge.r5 { background: color-mix(in srgb, var(--r5) 18%, transparent); color: var(--r5); }
.hjtabel th.c, .hjtabel td.c, .tabel th.c, .tabel td.c { text-align: center; }
.trend { font-size: 12px; font-weight: 700; color: var(--daempet); white-space: nowrap; }
.trend.op { color: var(--god); } .trend.ned { color: var(--fare); }
.graf { width: 100%; height: auto; display: block; }
.graf .gl { stroke: var(--kant); stroke-width: 1; }
.graf .gt { fill: var(--daempet); font-size: 12px; }
.graf .gv { fill: var(--tekst); font-size: 13px; font-weight: 800; }
.fordeling { display: flex; flex-direction: column; gap: 10px; margin-top: 6px; }
.frad { display: grid; grid-template-columns: 44px 1fr 80px; gap: 10px; align-items: center; }
.fbar { height: 12px; background: var(--flade2); border-radius: 99px; overflow: hidden; }
.fbar i { display: block; height: 100%; border-radius: 99px; }
.fbar i.r1 { background: var(--r1); } .fbar i.r2 { background: var(--r2); } .fbar i.r3 { background: var(--r3); } .fbar i.r4 { background: var(--r4); } .fbar i.r5 { background: var(--r5); }
.spmred { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--kant); }
.spmnr { width: 30px; height: 30px; border-radius: 50%; background: var(--teal-lys); color: var(--teal-tekst); display: flex; align-items: center; justify-content: center; font-weight: 800; flex: none; }
.spmknap { display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 900px) {
  .skemagitter { grid-template-columns: 1fr; } .skemaside { position: static; }
  .aftale { grid-template-columns: 1fr 1fr; } .aftale textarea { grid-column: 1 / -1; }
  .spmred { flex-wrap: wrap; } .spmknap { flex-direction: row; }
}

/* --- AI i hele Intra --- */
[hidden] { display: none !important; }
.underpunkt { display: block; font-weight: 400; color: var(--daempet); font-size: .94em; margin-top: 2px; }
.lnk { background: none; border: 0; padding: 0; color: var(--teal-tekst); font-weight: 600; cursor: pointer; font-size: inherit; }
.soegomr { flex: 1; max-width: 560px; margin: 0 auto; display: flex; gap: 8px; align-items: center; }
.soegomr .soegknap { margin: 0; }
.aiknap { display: inline-flex; align-items: center; gap: 6px; border: 0; border-radius: 10px; padding: 9px 14px; font-weight: 700; font-size: 13.5px; cursor: pointer; white-space: nowrap;
  color: #fff; background: linear-gradient(135deg, var(--teal) 0%, #4f8fb3 100%); box-shadow: 0 2px 8px rgba(47,131,128,.3); }
.aiknap:hover { filter: brightness(1.08); }
.palet .res a.aires { background: linear-gradient(90deg, var(--teal-lys), transparent); }
.palet .res a.aires .ik { color: var(--teal); }
.skuffe.bred { width: min(640px, 100%); }
.chat { display: flex; flex-direction: column; gap: 12px; }
.boble { padding: 12px 14px; border-radius: 14px; max-width: 92%; font-size: 14.5px; line-height: 1.55; }
.boble.mig { align-self: flex-end; background: var(--teal); color: var(--paa-teal); border-bottom-right-radius: 4px; white-space: pre-wrap; }
.boble.ai { align-self: flex-start; background: var(--flade2); border: 1px solid var(--kant); border-bottom-left-radius: 4px; }
.boble.ai h2 { font-size: 15px; margin: 10px 0 4px; } .boble.ai h3 { font-size: 14px; margin: 8px 0 4px; }
.boble.ai p { margin: 0 0 8px; } .boble.ai ul, .boble.ai ol { margin: 0 0 8px; padding-left: 20px; }
sup.kref { display: inline-flex; min-width: 17px; height: 17px; align-items: center; justify-content: center; border-radius: 5px; background: var(--teal-lys); color: var(--teal-tekst); font-size: 10.5px; font-weight: 800; cursor: pointer; margin: 0 1px; vertical-align: 2px; }
.kilder { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; border-top: 1px solid var(--kant); padding-top: 8px; }
.kilder a { display: flex; gap: 8px; align-items: baseline; text-decoration: none; color: var(--tekst); font-size: 13px; padding: 4px 6px; border-radius: 7px; }
.kilder a:hover { background: var(--teal-lys); }
.kilder a b { color: var(--teal-tekst); min-width: 14px; }
.forslag { display: flex; flex-wrap: wrap; gap: 8px; } .forslag .chip { cursor: pointer; font-size: 12.5px; padding: 6px 12px; }
.forslag .chip:hover { border-color: var(--teal); color: var(--teal-tekst); }
.chatform { display: flex; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--kant); align-items: flex-end; }
.chatform textarea { resize: none; }
.tænker { display: inline-flex; gap: 4px; } .tænker i { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); animation: prik 1s infinite ease-in-out; }
.tænker i:nth-child(2) { animation-delay: .15s; } .tænker i:nth-child(3) { animation-delay: .3s; }
@keyframes prik { 0%, 80%, 100% { opacity: .25; transform: scale(.8); } 40% { opacity: 1; transform: scale(1); } }
.aiskriv { position: relative; display: flex; justify-content: flex-end; margin-top: 6px; }
.aimenu { top: 34px; right: 0; min-width: 220px; position: absolute; }
.aimenu button { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 9px 12px; border-radius: 8px; cursor: pointer; font-size: 13.5px; color: var(--tekst); }
.aimenu button:hover { background: var(--teal-lys); }
.spoergfelt { display: flex; align-items: center; gap: 10px; background: var(--flade); border: 1.5px solid var(--teal); border-radius: 14px; padding: 6px 6px 6px 14px; margin: -4px 0 20px; box-shadow: 0 4px 16px rgba(47,131,128,.12); }
.spoergfelt .ik { color: var(--teal); flex: none; }
.spoergfelt input { flex: 1; border: 0; outline: none; background: transparent; font-size: 15px; padding: 8px 0; color: var(--tekst); min-width: 0; }
.tildig h2 { font-size: 17px; }
.opgave { display: flex; align-items: center; gap: 10px; padding: 9px 8px; margin: 0 -8px; border-radius: 10px; text-decoration: none; color: var(--tekst); }
.opgave:hover { background: var(--flade2); }
.opgave > span:nth-child(2) { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.opgave b { font-size: 13.5px; } .opgave .ik { color: var(--daempet); flex: none; }
.opgprik { width: 9px; height: 9px; border-radius: 50%; background: var(--advar); flex: none; }

/* Optager */
.optager { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 14px; border: 1px dashed var(--kant2); border-radius: 14px; background: var(--flade2); }
.optknap { display: inline-flex; align-items: center; gap: 10px; border: 0; border-radius: 999px; padding: 12px 20px 12px 14px; background: #b42a2a; color: #fff; font-weight: 700; font-size: 15px; cursor: pointer; box-shadow: 0 4px 14px rgba(197,48,48,.3); }
.optknap .ik { width: 22px; height: 22px; }
.optinfo { flex: 1; min-width: 180px; }
.opttid { font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: -.5px; }
.optknapper { display: flex; gap: 8px; }
.rec-prik { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--fare); animation: blink 1.2s infinite; vertical-align: 0; }
@keyframes blink { 50% { opacity: .2; } }
.transskript { margin-top: 12px; } .transskript summary { cursor: pointer; font-weight: 600; }
.transskript pre { white-space: pre-wrap; font: 12.5px/1.5 ui-monospace, Menlo, monospace; background: var(--flade2); border: 1px solid var(--kant); border-radius: 10px; padding: 12px; max-height: 260px; overflow: auto; margin: 8px 0; }

/* Møder */
.intro-ai { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 8px; background: linear-gradient(135deg, var(--teal-lys), var(--flade) 70%); }
.intro-ai .ik { color: var(--teal); }
.moedeliste { display: flex; flex-direction: column; gap: 8px; }
.moedekort { display: flex; align-items: center; gap: 14px; background: var(--flade); border: 1px solid var(--kant); border-radius: 12px; padding: 12px 16px; text-decoration: none; color: var(--tekst); box-shadow: var(--skygge); transition: border-color .12s, transform .12s; }
.moedekort:hover { border-color: var(--teal); transform: translateY(-1px); }
.mdato { width: 48px; height: 52px; flex: none; border-radius: 10px; background: var(--teal-lys); color: var(--teal-tekst); display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 11.5px; text-transform: uppercase; font-weight: 700; }
.mdato b { font-size: 20px; line-height: 1; } .mdato.ikon .ik { width: 22px; height: 22px; }
.mtekst { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.mtekst .hint .prik { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; }
.mstatus { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.moedekort > .ik:last-child { color: var(--daempet); }
.moedegitter { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.moedeside { position: sticky; top: calc(var(--top) + 20px); }
.trin { margin-bottom: 16px; }
.trinhoved { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.trinhoved h2 { margin: 0; flex: 1; }
.trinnr { width: 28px; height: 28px; border-radius: 50%; background: var(--teal); color: var(--paa-teal); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 13.5px; flex: none; }
.aiboks { display: flex; gap: 8px; align-items: center; margin-bottom: 12px; flex-wrap: wrap; }
.aiboks .inp { flex: 1; min-width: 200px; }
.faneskift { display: inline-flex; background: var(--flade2); border: 1px solid var(--kant); border-radius: 9px; padding: 3px; margin-bottom: 10px; }
.faneskift button { border: 0; background: none; padding: 5px 14px; border-radius: 7px; cursor: pointer; font-weight: 600; font-size: 13px; color: var(--daempet); }
.faneskift button.aktiv { background: var(--flade); color: var(--tekst); box-shadow: var(--skygge); }
.brod h2 { font-size: 17px; margin: 18px 0 6px; } .brod h2:first-child { margin-top: 0; } .brod h3 { font-size: 15px; margin: 12px 0 4px; }
.brod p { margin: 0 0 10px; } .brod ul, .brod ol { margin: 0 0 10px; padding-left: 22px; } .brod li { margin: 2px 0; }
.mdvis { border: 1px solid var(--kant); border-radius: 12px; padding: 14px 18px; min-height: 80px; max-height: 640px; overflow-y: auto; }
.mdret { font: 13.5px/1.55 ui-monospace, Menlo, monospace; }
.tjekboks { display: inline-block; width: 13px; height: 13px; border: 1.5px solid var(--daempet); border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.gemrk { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; margin-top: 12px; }
.gemrk .felt { flex: 1; min-width: 240px; }
.trinliste { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.trinliste div { display: flex; gap: 8px; align-items: center; color: var(--svag); font-size: 13.5px; }
.trinliste div .ik { border-radius: 50%; border: 1.5px solid currentColor; padding: 1px; }
.trinliste div.ok { color: var(--god); font-weight: 600; }
.moedelink { padding: 0 20px 14px; }
.samtale { border: 1px solid var(--kant); border-radius: 10px; padding: 10px 14px; margin-bottom: 8px; }
.samtale summary { cursor: pointer; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.samtale[open] summary { margin-bottom: 8px; }
.aftale.ny-ai { background: var(--teal-lys); border-radius: 10px; padding: 6px; margin-left: -6px; margin-right: -6px; }

/* 360° */
.minibar { width: 80px; height: 7px; background: var(--flade2); border-radius: 99px; overflow: hidden; border: 1px solid var(--kant); }
.minibar i { display: block; height: 100%; background: var(--teal); }
.modtagere { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px 14px; max-height: 220px; overflow-y: auto; padding: 10px; border: 1px solid var(--kant); border-radius: 10px; margin-bottom: 10px; font-size: 13.5px; }
.modtagere label { display: flex; gap: 6px; align-items: center; }
.rolle360 { padding: 14px 0 6px; border-top: 1px solid var(--kant); }
.rolle360 h3 { font-size: 15px; margin: 0 0 8px; color: var(--teal-tekst); }
.udsagn { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 8px 0; flex-wrap: wrap; }
.udsagn .utekst { flex: 1; min-width: 220px; }
.skala360 span { width: 38px; height: 38px; font-size: 14px; }
.skala360 .kv span { width: auto; padding: 0 10px; font-size: 12px; font-weight: 600; color: var(--daempet); }
.skala360 .kv input:checked + span { background: var(--flade); border-color: var(--daempet); color: var(--tekst); }
.skala.skala360 label.kv:nth-child(6) input:checked + span { transform: none; }
.radar { width: 100%; max-width: 440px; display: block; margin: 0 auto; overflow: visible; }
.radar .rgitter { fill: none; stroke: var(--kant); stroke-width: 1; }
.radar .randre { fill: color-mix(in srgb, var(--teal) 22%, transparent); stroke: var(--teal); stroke-width: 2.5; stroke-linejoin: round; }
.radar .rselv { fill: none; stroke: var(--guld); stroke-width: 2.5; stroke-dasharray: 6 5; stroke-linejoin: round; }
.radar .rpunkt { fill: var(--flade); stroke: var(--teal); stroke-width: 2.5; }
.radar .rlabel { fill: var(--tekst); font-size: 12.5px; font-weight: 700; }
.radar .rval { fill: var(--daempet); font-size: 12px; font-weight: 700; }
.forklaring { display: flex; gap: 18px; justify-content: center; font-size: 12.5px; color: var(--daempet); margin-top: 6px; }
.lg { display: inline-block; width: 18px; height: 0; border-top: 3px solid var(--teal); vertical-align: 3px; margin-right: 4px; }
.lg.selv { border-top: 3px dashed var(--guld); }
.fremh { display: flex; gap: 10px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--kant); }
.fremh:last-of-type { border-bottom: 0; }
.styrke h2 .ik { color: var(--god); } .udvikl h2 .ik { color: var(--advar); }
.ring { width: 64px; height: 64px; transform: rotate(-90deg); }
.ring .rbg { fill: none; stroke: var(--flade2); stroke-width: 3.5; } .ring .rfg { fill: none; stroke: var(--teal); stroke-width: 3.5; stroke-linecap: round; }
.ringboks { position: relative; width: 64px; height: 64px; flex: none; }
.ringboks b { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 14px; }
.ringkpi { display: flex; gap: 14px; align-items: center; }
.venter360 { display: flex; gap: 20px; align-items: center; }
.gab { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--kant); }
.rolleblok { padding: 12px 0; border-top: 1px solid var(--kant); }
.rollehoved { display: flex; gap: 10px; align-items: center; margin-bottom: 6px; } .rollehoved h3 { margin: 0; font-size: 15px; }
.urk { display: grid; grid-template-columns: minmax(180px, 1.4fr) minmax(140px, 1fr) 48px auto; gap: 12px; align-items: center; padding: 6px 0; }
.fbar360 { position: relative; display: flex; height: 12px; border-radius: 99px; overflow: visible; background: var(--flade2); }
.fbar360 i { display: block; height: 100%; } .fbar360 i:first-child { border-radius: 99px 0 0 99px; } .fbar360 i:last-of-type { border-radius: 0 99px 99px 0; }
.fbar360 .mark, .mark-eks { position: absolute; top: -4px; width: 4px; height: 20px; margin-left: -2px; background: var(--tekst); border-radius: 2px; box-shadow: 0 0 0 2px var(--flade); }
.fbar360 .mark.selv, .mark-eks.selv { background: var(--guld); }
.mark-eks { position: relative; display: inline-block; top: 4px; height: 14px; margin: 0 2px; }
.grp { display: flex; gap: 8px; font-size: 11.5px; color: var(--daempet); white-space: nowrap; }
.citatgitter { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.citatgitter blockquote { margin: 0 0 10px; padding: 8px 12px; border-left: 3px solid var(--teal); background: var(--flade2); border-radius: 0 8px 8px 0; font-size: 13.5px; white-space: pre-wrap; }
.paed { margin-top: 12px; }
.paed h2 { color: var(--teal-tekst); }
@media (max-width: 900px) {
  .moedegitter { grid-template-columns: 1fr; } .moedeside { position: static; }
  .urk { grid-template-columns: 1fr 48px; } .urk .fbar360 { grid-column: 1 / -1; grid-row: 2; } .urk .grp { grid-column: 1 / -1; }
  .gab { grid-template-columns: 1fr; gap: 4px; }
  .mstatus { display: none; }
}
@media print {
  .top, .side, .hjaelp, .knaprk, #lavSam, .menuknap { display: none !important; }
  .ramme { display: block !important; } .indhold { padding: 0 !important; }
  .kort { box-shadow: none; break-inside: avoid; }
  body { background: #fff; }
}
@media (max-width: 860px) {
  .soegomr { flex: 0 0 auto; margin: 0 0 0 auto; max-width: none; gap: 6px; }
  .brand { min-width: 0; } .brand .navn { max-width: 38vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .hjaelp { display: none; }
}

/* --- Kortere menu: genveje, foldede grupper, ledelse samlet (okt. 2026) --- */
.navtitel { padding: 4px 10px 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .8px; color: var(--daempet); text-transform: uppercase; }
.navtom { padding: 4px 12px 8px; font-size: 12.5px; }
.navsek.genveje { padding-bottom: 8px; margin-bottom: 4px; border-bottom: 1px solid var(--kant); }
.navsek > button .antal { margin-left: auto; font-weight: 600; letter-spacing: 0; color: var(--svag); }
.navsek:not(.foldet) > button .antal { display: none; }
.navsek.admin { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--kant); }
.navpunkt { position: relative; }
.fastgoer { margin-left: auto; border: 0; background: none; cursor: pointer; color: var(--svag); font-size: 15px; line-height: 1; padding: 2px 4px; border-radius: 6px; opacity: 0; transition: opacity .12s; }
.navpunkt:hover .fastgoer, .fastgoer:focus-visible, .adminflise:hover .fastgoer { opacity: 1; }
.fastgoer.til { color: var(--guld); }
.fastgoer:hover { background: var(--kant); color: var(--guld); }
.navpunkt .tael + .fastgoer { margin-left: 6px; }
@media (hover: none) { .navsek:not(.genveje) .fastgoer { opacity: .55; } .genveje .fastgoer { display: none; } }
.ramme.lukket .navtitel, .ramme.lukket .fastgoer, .ramme.lukket .navtom { display: none; }
.ramme.lukket .navsek.foldet .navpunkter { display: none; }
.adminfliser { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.adminflise { display: flex; align-items: flex-start; gap: 12px; padding: 14px 14px 14px 16px; background: var(--flade); border: 1px solid var(--kant); border-radius: var(--radius); text-decoration: none; color: var(--tekst); box-shadow: var(--skygge); transition: border-color .12s, transform .12s; }
.adminflise:hover { border-color: var(--teal); transform: translateY(-1px); }
.adminflise > .ik { color: var(--teal); flex: none; margin-top: 2px; }
.adminflise > span { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.adminflise .hint { font-size: 12.5px; }
.adminflise .fastgoer { margin-left: 0; }

/* Én indgang til søg og AI */
.soegknap > .ik { color: var(--teal); }
.palgruppe { padding: 10px 14px 4px; font-size: 11.5px; font-weight: 700; letter-spacing: .5px; color: var(--daempet); text-transform: uppercase; }
.palet .res a > .ik { flex: none; color: var(--daempet); }
.palet .res a > span:not(.type) { min-width: 0; overflow: hidden; text-overflow: ellipsis; }

/* Ny version */
.nyversion { position: sticky; top: var(--top); z-index: 39; display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; padding: 8px 16px; background: var(--teal-lys); color: var(--teal-tekst); border-bottom: 1px solid var(--kant); font-weight: 600; font-size: 14px; }
.nyversion > span { display: inline-flex; align-items: center; gap: 8px; }

/* Forside: Til dig og Kommende */
.tildig { margin-bottom: 16px; }
.tildig-ov { font-weight: 700; letter-spacing: .6px; text-transform: uppercase; font-size: 11.5px; color: var(--daempet); margin: 14px 0 4px; }
.tildig h2 + .tildig-ov { margin-top: 2px; }
.opgave .foedsel { font-size: 16px; width: 10px; display: inline-flex; justify-content: center; flex: none; margin-right: 4px; }
div.opgave:hover { background: none; }
.opdateret { display: flex; gap: 10px; align-items: center; padding: 6px 0; }
.opdateret > .ik { color: var(--god); flex: none; }
.opdateret > span { display: flex; flex-direction: column; }
.nyhedskort { position: relative; }
.nymaerke { position: absolute; top: 10px; left: 10px; z-index: 1; }
.advartekst { color: var(--advar); font-weight: 600; }
@media (max-width: 1100px) { .gitter2 > aside > .kort:not(.tildig) { display: none; } #spoergForside + .tildig { margin: -6px 0 20px; } }

/* --- Kalender: uger med sammenhængende bjælker, smal tom weekend, filter --- */
.kalgrid2 { --kolonner: repeat(7, minmax(0, 1fr)); border: 1px solid var(--kant); border-radius: var(--radius); overflow: hidden; background: var(--kant); display: grid; gap: 1px; }
.kalgrid2.smalweekend { --kolonner: repeat(5, minmax(0, 1fr)) repeat(2, minmax(0, .45fr)); }
.kalhoved { display: grid; grid-template-columns: var(--kolonner); gap: 1px; }
.kalhoved .ugedag { background: var(--flade2); padding: 8px; font-size: 12px; font-weight: 700; color: var(--daempet); text-transform: uppercase; }
.kaluge { display: grid; grid-template-columns: var(--kolonner); grid-template-rows: 28px repeat(3, 24px) 22px; gap: 1px 0; background: var(--flade); position: relative; min-height: 112px; column-gap: 1px; }
.kaluge .kaldag { grid-row: 1 / -1; min-height: 0; padding: 4px 6px; background: var(--flade); box-shadow: 1px 0 0 var(--kant); }
.kaluge .kaldag:nth-child(7) { box-shadow: none; }
.kaluge .kaldag.weekend { background: var(--flade2); }
.kaluge .kaldag.udenfor { background: var(--flade2); color: var(--svag); }
.kaluge .kaldag.udenfor .nr { opacity: .6; }
.kaluge .kalev { position: relative; z-index: 1; align-self: center; margin: 0 4px; width: auto; height: 21px; line-height: 17px; }
.kaluge .kalev.forts { margin-left: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.kaluge .kalev.fortsaetter { margin-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.kaluge .kalev:hover { filter: brightness(1.1); }
.kalmere { position: relative; z-index: 1; border: 0; background: none; color: var(--teal-tekst); font-size: 11.5px; font-weight: 600; cursor: pointer; text-align: left; padding: 0 8px; }
.kalmere:hover { text-decoration: underline; }
.kalfilter { margin-bottom: 12px; }
.kfhoved { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; gap: 10px; flex-wrap: wrap; }
.kfliste { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.kfliste label { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; cursor: pointer; }
.kfliste i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.knap.aktivfilter { border-color: var(--teal); color: var(--teal-tekst); background: var(--teal-lys); }
.dagliste { display: flex; flex-direction: column; }
.dagliste .opgave { border: 0; background: none; cursor: pointer; text-align: left; font: inherit; width: calc(100% + 16px); }
@media (max-width: 860px) { .kaluge { grid-template-rows: 22px repeat(3, 18px) 18px; min-height: 90px; } .kaluge .kalev { font-size: 10px; height: 16px; line-height: 13px; padding: 1px 4px; margin: 0 2px; } .kalgrid2.smalweekend { --kolonner: repeat(7, minmax(0, 1fr)); } .kalmere { font-size: 10px; padding: 0 3px; } }

/* --- Dokumentlister --- */
.dokrk.klikbar { cursor: pointer; border-radius: 10px; padding: 12px 8px; margin: 0 -2px; }
.dokrk.klikbar:hover, .dokrk.klikbar:focus-visible { background: var(--flade2); outline: none; }
.dokrk .dokinfo { min-width: 0; flex: 1; }
.dokrk .titel { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.dokrk .beskr { font-size: 13px; color: var(--tekst); opacity: .85; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dokrk .meta { margin-top: 2px; }
.dokrk .meta .ik { color: var(--god); vertical-align: -2px; }
.dokrk .hoejre { align-items: center; }
.ikonknap.knap { padding: 4px 10px; font-weight: 800; letter-spacing: 1px; }
.katskil { border-top: 1px solid var(--kant); margin: 8px 4px; list-style: none; }
.dokfakta { display: grid; grid-template-columns: 140px 1fr; gap: 6px 12px; margin: 0 0 16px; font-size: 13.5px; }
.dokfakta dt { color: var(--daempet); } .dokfakta dd { margin: 0; }
.airesume { background: var(--teal-lys); border-radius: 12px; padding: 12px 14px; margin-bottom: 16px; }
.airesume .airhoved { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; color: var(--teal-tekst); }
.airesume .airhoved .hint { font-size: 12px; margin-left: auto; }
.airesume ul { margin: 0; padding-left: 18px; } .airesume li { margin: 3px 0; } .airesume p { margin: 4px 0; }
.dokpdf { width: 100%; height: 70vh; border: 1px solid var(--kant); border-radius: 10px; background: #fff; }
.dokbillede { max-width: 100%; border-radius: 10px; border: 1px solid var(--kant); }
.tjekfelt { display: flex; gap: 8px; align-items: flex-start; margin: 4px 0 10px; font-size: 14px; cursor: pointer; }
.tjekfelt input { margin-top: 3px; }
.besked.fare { background: var(--fare-bg); color: var(--fare); }

/* --- Tomme sider --- */
.tomtilstand { text-align: center; padding: 34px 20px; max-width: 460px; margin: 0 auto; }
.tomtilstand .tt-ikon { width: 56px; height: 56px; border-radius: 16px; background: var(--teal-lys); color: var(--teal); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.tomtilstand h3 { font-size: 16.5px; margin: 0 0 6px; }
.tomtilstand p { color: var(--daempet); margin: 0 0 16px; font-size: 14px; }
.tomtilstand .knaprk { justify-content: center; }
.kom-i-gang { margin-bottom: 16px; border-color: var(--teal); }
.igangtrin { list-style: none; counter-reset: trin; margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.igangtrin li { counter-increment: trin; }
.igangtrin a { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px 12px 46px; position: relative; border: 1px solid var(--kant); border-radius: 12px; text-decoration: none; color: var(--tekst); height: 100%; }
.igangtrin a:hover { border-color: var(--teal); background: var(--flade2); }
.igangtrin a::before { content: counter(trin); position: absolute; left: 14px; top: 12px; width: 22px; height: 22px; border-radius: 50%; background: var(--teal); color: var(--paa-teal); font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.okboks { display: flex; align-items: center; gap: 8px; color: var(--daempet); font-size: 14px; padding: 6px 0; }
.okboks .ik { color: var(--god); }

/* --- Sidehoved bliver stående under topbjælken --- */
@media (min-width: 861px) {
  #vis > .sidehoved:not(.velkommen) { position: sticky; top: calc(var(--top) + var(--banner, 0px)); z-index: 30; background: var(--bg); margin-left: -6px; margin-right: -6px; padding: 10px 6px; transition: box-shadow .15s; }
  .rullet #vis > .sidehoved:not(.velkommen) { box-shadow: 0 8px 12px -10px rgba(0,0,0,.18); }
}

/* --- Læsekvittering, revision og AI-tjek --- */
.laeskvit { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: space-between; background: var(--advar-bg); border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; }
.laeskvit .hint { font-size: 12.5px; }
.laeskvit.ok { background: var(--god-bg); color: var(--god); justify-content: flex-start; gap: 8px; font-weight: 600; font-size: 14px; }
.laesstatus { padding: 12px 14px; margin-bottom: 14px; box-shadow: none; }
.laesstatus details { margin-top: 6px; }
.rvlinje { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: space-between; margin-bottom: 4px; }
.rvlinje .saldo { min-width: 120px; }
.aitjek { margin-bottom: 16px; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
.aitjek .hint { font-size: 12.5px; }
.aitjek #aiTjekRes { flex-basis: 100%; }
.aitjek #aiTjekRes:not(:empty) { background: var(--flade2); border: 1px solid var(--kant); border-radius: 12px; padding: 10px 14px; }
.aitjek .kilder { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; }
.aitjek .kilder a { font-size: 13px; text-decoration: none; }

/* --- Ugens overblik på mødesiden --- */
.ugensboks { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: space-between; background: var(--flade2); border: 1px dashed var(--kant2); border-radius: 12px; padding: 10px 12px; margin: 0 0 12px; }
.ugensboks .hint { flex: 1; min-width: 220px; font-size: 13px; }

/* --- Nyheder: fastgjort, reaktion og rækkevidde --- */
.nyhedskort.fastgjort { border-color: var(--teal); box-shadow: 0 0 0 1px var(--teal), var(--skygge); }
.reaktionsrk { display: flex; align-items: center; gap: 12px; margin: 14px 0; flex-wrap: wrap; }
.knap.valgt { background: var(--teal-lys); border-color: var(--teal); color: var(--teal-tekst); }
.raekkevidde { margin-top: 6px; }

/* --- App og notifikationer --- */
.dsek { font-size: 14.5px; margin: 16px 0 8px; } .dsek:first-child { margin-top: 0; }
.instr { margin: 0; padding-left: 20px; font-size: 14px; } .instr li { margin: 4px 0; } .instr .ik { vertical-align: -2px; }
.pushvalg .tjekfelt { margin: 4px 0; }
.appbanner { display: flex; align-items: center; gap: 10px; background: var(--teal-lys); border-radius: 14px; padding: 10px 12px; margin: -6px 0 14px; }
.appbanner > .ik { color: var(--teal); flex: none; }
.appbanner > span { flex: 1; display: flex; flex-direction: column; font-size: 13.5px; } .appbanner .hint { font-size: 12px; }
.aktiveringsboks { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 14px; background: var(--advar-bg); border-color: transparent; } .aktiveringsboks > .ik { color: var(--advar); flex: none; margin-top: 2px; }
.linkfelt { display: flex; gap: 8px; } .linkfelt .inp { flex: 1; font-family: ui-monospace, monospace; font-size: 12.5px; }
.indkoebskort .logofelt, .logoret .logofelt { height: 52px; display: flex; align-items: center; margin-bottom: 10px; }
.logofelt img { max-height: 48px; max-width: 170px; object-fit: contain; }
.logoinitial { width: 44px; height: 44px; border-radius: 12px; background: var(--teal-lys); color: var(--teal-tekst); font-weight: 800; font-size: 20px; display: inline-flex; align-items: center; justify-content: center; }
.logoret { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; } .logoret .logofelt { margin: 0; min-width: 60px; }
/* Rundvisning for nye brugere */
.rv { position: fixed; inset: 0; z-index: 90; }
.rvlys { position: fixed; border-radius: 12px; box-shadow: 0 0 0 9999px rgba(10, 20, 20, .55); outline: 2px solid var(--teal); transition: all .25s ease; pointer-events: none; }
.rvkort { position: fixed; width: min(380px, calc(100vw - 24px)); background: var(--flade); color: var(--tekst); border: 1px solid var(--kant); border-radius: 14px; box-shadow: 0 18px 40px rgba(0,0,0,.25); padding: 18px 20px 14px; transition: left .25s ease, top .25s ease; }
.rvkort h2 { margin: 2px 0 6px; font-size: 18px; }
.rvkort p { margin: 0 0 12px; color: var(--daempet); line-height: 1.5; }
.rvtrin { font-size: 12px; color: var(--svag); text-transform: uppercase; letter-spacing: .04em; }
.rvprikker { display: flex; gap: 6px; margin-bottom: 12px; }
.rvprikker span { width: 7px; height: 7px; border-radius: 50%; background: var(--kant2); }
.rvprikker span.til { background: var(--teal); width: 18px; border-radius: 4px; }
.rvknapper { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
@media (prefers-reduced-motion: reduce) { .rvlys, .rvkort { transition: none; } }
/* Ledelsens overblik */
.obintro { margin: -6px 0 16px; }
.obsek { margin-bottom: 18px; } .obsek h2 { margin-top: 0; }
.obunder { margin: 14px 0 6px; font-size: 14px; }
.obbar { display: inline-block; vertical-align: middle; width: 110px; height: 7px; background: var(--flade2); border: 1px solid var(--kant); border-radius: 99px; overflow: hidden; margin-right: 8px; }
.obbar i { display: block; height: 100%; background: var(--teal); }
.obbar i.god { background: var(--god); } .obbar i.advar { background: var(--advar); } .obbar i.fare { background: var(--fare); }
.obpct { font-size: 12.5px; color: var(--daempet); white-space: nowrap; }
.obmangler { max-width: 320px; }
.obfod { display: none; }
@media print {
  #obDage, #obPrint, .obintro { display: none !important; }
  .obfod { display: block; margin-top: 18px; }
  .obsek details { display: block; } .obsek details > * { display: block; }
  .obbar, .obbar i { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .tabel a { color: inherit; text-decoration: none; }
}
/* Kontrakter efter overenskomst og løn */
.dialog.bred:has(.kgitter) { width: min(1120px, 100%); }
.kgitter { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; align-items: start; }
.ksek { font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--daempet); margin: 18px 0 8px; padding-top: 12px; border-top: 1px solid var(--kant); }
.ksek:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.kberegn { position: sticky; top: 0; background: var(--flade2); border: 1px solid var(--kant); border-radius: 12px; padding: 16px; font-size: 13.5px; }
.kbtitel { font-weight: 700; font-size: 15px; } .kbtal { font-size: 26px; font-weight: 800; margin: 10px 0 2px; color: var(--teal-tekst); } .kbtal small { font-size: 13px; font-weight: 600; color: var(--daempet); }
.kbtabel { width: 100%; border-collapse: collapse; margin: 12px 0 8px; } .kbtabel td { padding: 5px 0; border-bottom: 1px solid var(--kant); vertical-align: top; } .kbtabel .tal { text-align: right; white-space: nowrap; padding-left: 8px; }
.kbinfo { margin-top: 8px; display: flex; gap: 6px; align-items: center; color: var(--teal-tekst); font-weight: 600; }
.kbadvar { margin-top: 8px; background: var(--advar-bg); color: var(--advar); border-radius: 8px; padding: 8px 10px; font-size: 13px; }
.tillaegliste { display: grid; gap: 6px; margin-bottom: 8px; } .tlinje { display: grid; grid-template-columns: 1fr 150px auto auto; gap: 8px; align-items: center; }
.tlinje input:not([type]) , .tlinje input[inputmode] { border: 1px solid var(--kant2); border-radius: 8px; padding: 7px 9px; background: var(--flade); }
.kskema { margin: 4px 0 6px; } .skematabel input { width: 54px; border: 1px solid var(--kant2); border-radius: 6px; padding: 3px 4px; margin: 1px 0; display: block; background: var(--flade); font-size: 12.5px; } .skematabel td, .skematabel th { padding: 4px; }
.loenhoved { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; } .loenhoved select { min-width: 220px; }
.loenadvar { margin: 0; padding-left: 18px; } .loenadvar li { margin: 4px 0; }
.oktekst { margin: 6px 0 12px; padding-left: 18px; color: var(--daempet); font-size: 13.5px; } .oktekst li { margin: 3px 0; }
.mono { font-family: ui-monospace, Menlo, monospace; font-size: 12.5px; }
.kd { background: #fff; color: #1b2424; max-width: 820px; margin: 0 auto; padding: 48px 56px; border-radius: 6px; box-shadow: var(--skygge); font-size: 14.5px; line-height: 1.55; }
.kd-hoved { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 2px solid #2a7a77; padding-bottom: 14px; margin-bottom: 18px; } .kd-hoved h1 { margin: 4px 0 0; font-size: 24px; }
.kd-afsnit h3 { font-size: 15px; margin: 18px 0 6px; } .kd-afsnit p { margin: 6px 0; }
.kd-parter { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.kd-tabel { width: 100%; border-collapse: collapse; margin: 8px 0; font-size: 13.5px; } .kd-tabel td, .kd-tabel th { border-bottom: 1px solid #dde3e3; padding: 5px 6px; text-align: left; } .kd-tabel .tal { text-align: right; }
.kd-lille { font-size: 12px; color: #5d6a6a; } .kd-under { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 54px; font-size: 13px; color: #5d6a6a; } .kd-linje { border-bottom: 1px solid #1b2424; height: 36px; margin-bottom: 6px; }
.kd-fod { margin-top: 30px; } .kd-knapper { max-width: 820px; margin: 0 auto 14px; }
@media (max-width: 860px) { .kgitter { grid-template-columns: 1fr; } .kberegn { position: static; } .kd { padding: 24px 18px; } .kd-parter, .kd-under { grid-template-columns: 1fr; } .tlinje { grid-template-columns: 1fr 1fr; } }
@media print { .kd-knapper { display: none !important; } .kd { box-shadow: none; padding: 0; max-width: none; } .kd-afsnit { break-inside: avoid; } }
[data-map], [data-lid] { width: 100%; max-width: 280px; border: 1px solid var(--kant2); border-radius: 8px; padding: 7px 9px; background: var(--flade); font-size: 13.5px; }
/* Tilkøbsmoduler: banner over app (fravalgt/demo) og valg pr. praksis */
.appbanner { display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap; background: var(--teal-lys); color: var(--tekst); border-radius: 12px; padding: 12px 16px; margin-bottom: 10px; }
.appbanner.demo { background: var(--advar-bg); }
.modulvalg { border: 1px solid var(--kant2); border-radius: 8px; padding: 4px 6px; background: var(--flade); font-size: 13px; } .modulvalg.aktiv { background: var(--god-bg); color: var(--god); border-color: transparent; font-weight: 700; }
/* Medicinsk Copilot fast øverst i menuen */
.navsek.fast { padding-bottom: 8px; margin-bottom: 6px; border-bottom: 1px solid var(--kant); }
.navpunkt.fremhaevet { background: var(--teal); color: var(--paa-teal); font-weight: 700; }
.navpunkt.fremhaevet svg { color: inherit; } .navpunkt.fremhaevet:hover { background: var(--teal-moerk); color: var(--paa-teal); }
.navpunkt.fremhaevet.aktiv { background: var(--teal-moerk); color: var(--paa-teal); box-shadow: 0 0 0 2px var(--teal-lys); }
.navpunkt.fremhaevet .chip { margin-left: auto; background: rgba(255,255,255,.2); color: inherit; border-color: transparent; }
/* MitID Erhverv */
.mitidknap { width: 100%; justify-content: center; gap: 12px; background: #0060e6; color: #fff; border-color: #0060e6; padding: 12px 16px; font-size: 15px; margin: 6px 0 4px; }
.mitidknap:hover { background: #004cb8; border-color: #004cb8; color: #fff; }
.mitidmaerke { font-weight: 800; letter-spacing: .3px; background: #fff; color: #0060e6; border-radius: 6px; padding: 2px 7px; font-size: 13px; }
.loginalt { margin-top: 16px; border-top: 1px solid var(--kant); padding-top: 12px; } .loginalt summary { cursor: pointer; color: var(--daempet); font-size: 13.5px; margin-bottom: 8px; }
.loginfejl { background: var(--advar-bg); color: var(--advar); border-radius: 10px; padding: 10px 12px; font-size: 13.5px; margin: 6px 0 12px; }
.mitidboks { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
/* Abonnement og tilmelding */
.betalingsbanner { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; background: var(--teal-lys); color: var(--tekst); padding: 10px 20px; border-bottom: 1px solid var(--kant); font-size: 14px; }
.betalingsbanner > span { flex: 1; min-width: 240px; display: flex; gap: 8px; align-items: center; }
.tilmkort { width: min(760px, 100%); } .tilmside { align-items: flex-start; padding-top: 40px; padding-bottom: 40px; }
.skjultfelt { position: absolute; left: -10000px; width: 1px; height: 1px; opacity: 0; }
.tvalg { background: var(--flade2); border: 1px solid var(--kant); border-radius: 12px; padding: 14px 16px; }
.tvlinje { display: grid; grid-template-columns: 170px 1fr 48px 120px; gap: 10px; align-items: center; padding: 6px 0; } .tvlinje input[type=range] { width: 100%; accent-color: var(--teal); }
.tvlinje .pristal { font-weight: 800; text-align: right; } .tvlinje .hint { text-align: right; }
.prisvalg { display: inline-flex; border: 1px solid var(--kant2); border-radius: 999px; overflow: hidden; } .prisvalg button { border: 0; background: var(--flade); padding: 6px 14px; cursor: pointer; font-weight: 600; } .prisvalg button.valgt { background: var(--teal); color: var(--paa-teal); }
.tvtotal { display: flex; gap: 10px; align-items: baseline; border-top: 1px solid var(--kant); margin-top: 8px; padding-top: 10px; } .tvtotal b { font-size: 22px; margin-left: auto; color: var(--teal-tekst); }
.tacc { display: flex; gap: 8px; align-items: flex-start; margin: 14px 0 4px; }
.abkap { width: 64px; border: 1px solid var(--kant2); border-radius: 8px; padding: 4px 6px; text-align: right; background: var(--flade); } .abfakt { border: 1px solid var(--kant2); border-radius: 8px; padding: 4px 6px; background: var(--flade); }
.copvalg { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
@media (max-width: 640px) { .tvlinje { grid-template-columns: 1fr 48px; } .tvlinje input[type=range] { grid-column: 1 / -1; } .tvlinje .hint { grid-column: 1 / -1; text-align: left; } }

/* Adgang pr. bruger */
.adgangfelt { border: 1px solid var(--kant); border-radius: 10px; padding: 8px 12px 10px; margin: 12px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 14px; }
.adgangfelt legend { font-weight: 700; font-size: 13px; padding: 0 4px; }
.adgangfelt .tjek { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; line-height: 1.35; cursor: pointer; }
.adgangfelt .tjek input { margin-top: 2px; }
@media (max-width: 640px) { .adgangfelt { grid-template-columns: 1fr; } }
.adgangtabel th.lodret { vertical-align: bottom; text-align: center; font-size: 12px; text-transform: none; letter-spacing: 0; min-width: 64px; max-width: 96px; white-space: normal; line-height: 1.25; hyphens: auto; }
.adgangtabel .led { background: var(--teal-lys); }
.ledprik { display: inline-block; width: 12px; height: 12px; border-radius: 3px; background: var(--teal-lys); border: 1px solid var(--teal); vertical-align: -1px; }

/* Møder: punkter fra kolleger og fravalg */
.punkter { margin-top: 16px; border-top: 1px solid var(--kant); padding-top: 12px; }
.punkter h3 { font-size: 15px; margin: 0 0 8px; display: flex; gap: 6px; align-items: center; }
.punktliste { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 6px; }
.punktliste li { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; background: var(--flade2); border: 1px solid var(--kant); border-radius: 10px; padding: 8px 10px; }
.punktform { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; }
@media (max-width: 700px) { .punktform { grid-template-columns: 1fr; } }
.moedekort .fravaelg { padding: 4px 8px; min-height: 0; }
.mfliste { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.mfliste li { display: flex; gap: 10px; justify-content: space-between; align-items: flex-start; border: 1px solid var(--kant); border-radius: 10px; padding: 8px 10px; background: var(--flade2); }
.maalforslag { margin-bottom: 14px; }

/* Dokumenter: skriv i Intra, AI-udkast og status */
.dokfaner { margin: 4px 0 10px; }
.dokai { margin-bottom: 8px; }
.editorbar { display: flex; gap: 4px; flex-wrap: wrap; border: 1px solid var(--kant); border-bottom: 0; border-radius: 10px 10px 0 0; padding: 4px; background: var(--flade2); }
.editorbar button { border: 0; background: transparent; color: var(--tekst); min-width: 32px; height: 30px; border-radius: 6px; cursor: pointer; font: inherit; font-weight: 700; }
.editorbar button:hover { background: var(--teal-lys); }
.editor { min-height: 260px; max-height: 52vh; overflow: auto; border: 1px solid var(--kant); border-radius: 0 0 10px 10px; padding: 12px 14px; background: var(--flade); outline: none; max-width: none; }
.editor:focus { border-color: var(--teal); box-shadow: 0 0 0 3px var(--teal-lys); }
.editor:empty::before { content: attr(data-tom); color: var(--svag); }
.statusvalg { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.statusvalg label { display: flex; gap: 8px; align-items: flex-start; border: 1px solid var(--kant); border-radius: 10px; padding: 8px 10px; cursor: pointer; }
.statusvalg label span { display: flex; flex-direction: column; } .statusvalg small { color: var(--daempet); font-size: 12px; }
.statusvalg label:has(input:checked) { border-color: var(--teal); background: var(--teal-lys); }
.statusvalg .status-skal_revideres:has(input:checked) { border-color: var(--advar); background: var(--advar-bg); }
.statusvalg .status-godkendt:has(input:checked) { border-color: var(--god); background: var(--god-bg); }
@media (max-width: 640px) { .statusvalg { grid-template-columns: 1fr; } }
.kilder a.egen { border-color: var(--teal); background: var(--teal-lys); }
.cpkilder { margin-top: 8px; } .cpkilder a { display: block; font-size: 13px; padding: 3px 0; }
.cptilbud { margin: 8px 0 0; font-size: 12.5px; }

/* Kom godt i gang */
.kigfrem { display: flex; gap: 14px; align-items: center; margin-bottom: 6px; }
.kigliste { display: grid; gap: 8px; }
.kigtrin { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 14px 16px; }
.kigtrin p { margin: 2px 0 0; color: var(--daempet); font-size: 13.5px; }
.kigtrin.gjort { opacity: .7; } .kigtrin.gjort b { text-decoration: line-through; text-decoration-color: var(--svag); }
.kigtjek { width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--kant2); background: var(--flade); color: var(--paa-teal); cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; }
.kigtrin.gjort .kigtjek { background: var(--god); border-color: var(--god); color: #fff; }
@media (max-width: 640px) { .kigtrin { grid-template-columns: auto 1fr; } .kigknap { grid-column: 2; } }
.kigkort { margin-bottom: 14px; } .kighoved { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.kignaeste { display: flex; gap: 6px; align-items: center; padding: 4px 0; color: var(--tekst); text-decoration: none; font-size: 13.5px; } .kignaeste:hover { color: var(--teal-tekst); }
.offlinebjaelke { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 300; background: var(--tekst); color: var(--flade); border-radius: 10px; padding: 10px 14px; font-size: 13.5px; text-align: center; box-shadow: 0 6px 20px rgba(0,0,0,.25); }

/* --- Mobil og app (PWA): optimeret til telefon --- */
html { -webkit-text-size-adjust: 100%; }
body { overscroll-behavior-y: none; }
@media (display-mode: standalone) { .top { padding-top: env(safe-area-inset-top); height: calc(var(--top) + env(safe-area-inset-top)); } }
#vis { padding-bottom: env(safe-area-inset-bottom); }
#appBanner { flex-wrap: wrap; justify-content: flex-start; }
#appBanner > span { flex: 1 1 calc(100% - 40px); }
#appBanner #appJa { margin-left: 32px; }
.chat .forslag .chip { white-space: normal; text-align: left; max-width: 100%; }
@media (max-width: 860px) {
  /* iOS zoomer ind på felter under 16 px — undgå det */
  input, select, textarea, .inp, .editor { font-size: 16px !important; }
  .brand .navn { max-width: calc(100vw - 268px) !important; } .brand img { width: 28px; height: 28px; } .brand { gap: 8px; }
  .brand .lille { display: none; }
  .dialog .dfod { position: sticky; bottom: 0; background: var(--flade); padding-bottom: calc(14px + env(safe-area-inset-bottom)); flex-wrap: wrap; }
  .dialog .dfod .knap { min-height: 44px; }
  .kalagenda { display: block !important; }
  .kaluge .kalev { font-size: 0; height: 7px; padding: 0; border-radius: 4px; }
  .kaluge .kalev b { display: none; }
  .kaluge { grid-template-rows: 26px repeat(3, 10px) 16px; min-height: 76px; }
}
@media (pointer: coarse) {
  /* Store nok trykflader til fingre (min. 40-44 px) */
  .kigtjek { width: 40px; height: 40px; }
  .navpunkt .stjerne, [data-fastgoer], .fastgoer { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
  .knap.lille { min-height: 36px; }
  .kfliste label, .tjekfelt, .pushvalg label { min-height: 40px; align-items: center; }
}
.kalagenda { display: none; margin-top: 14px; }
.kalagenda h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .4px; color: var(--daempet); margin: 14px 0 6px; }
.kalagenda .agdag.idag h3 { color: var(--teal-tekst); }
.kalagenda button { display: flex; width: 100%; gap: 10px; align-items: center; text-align: left; background: var(--flade); border: 1px solid var(--kant); border-radius: 12px; padding: 10px 12px; margin-bottom: 6px; color: var(--tekst); font: inherit; cursor: pointer; min-height: 48px; }
.kalagenda button i { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.kalagenda button span { display: flex; flex-direction: column; } .kalagenda button small { color: var(--daempet); }

/* Tabeller i AI-svar, referater og dokumenter */
.mdtabel { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 10px 0 14px; border: 1px solid var(--kant); border-radius: 10px; }
.mdtabel table, .brod table, .artikel table { width: 100%; border-collapse: collapse; font-size: 13.5px; line-height: 1.4; }
.mdtabel th, .mdtabel td, .brod table th, .brod table td, .artikel table th, .artikel table td { padding: 7px 10px; border-bottom: 1px solid var(--kant); text-align: left; vertical-align: top; }
.mdtabel th, .brod table th, .artikel table th { background: var(--flade2); font-weight: 700; white-space: nowrap; }
.mdtabel tr:last-child td { border-bottom: 0; }
.mdtabel tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--flade2) 50%, transparent); }
.brod table, .artikel table { border: 1px solid var(--kant); border-radius: 10px; overflow: hidden; margin: 10px 0; display: block; overflow-x: auto; }
.boble code, .brod code { background: var(--flade2); border-radius: 4px; padding: 1px 5px; font-size: .92em; }
.boble hr, .brod hr { border: 0; border-top: 1px solid var(--kant); margin: 12px 0; }

/* --- Opgaver --- */
.opgliste { list-style: none; margin: 0; padding: 0; }
.opgrk { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--kant); }
.opgrk:last-child { border-bottom: 0; }
.opgkrop { flex: 1; min-width: 0; } .opgkrop b { display: block; font-size: 14px; overflow-wrap: anywhere; } .opgkrop .hint { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.opgmeta { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.flueben { width: 24px; height: 24px; flex: none; border-radius: 7px; border: 2px solid var(--kant2); background: var(--flade); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--paa-teal); padding: 0; }
.flueben:hover:not(:disabled) { border-color: var(--teal); }
.flueben:disabled { opacity: .45; cursor: default; }
.opgrk.faerdig .flueben { background: var(--teal); border-color: var(--teal); }
.opgrk.faerdig .opgkrop b { text-decoration: line-through; color: var(--daempet); }
.opgrk.forsinket .opgkrop b { color: var(--fare); }
@media (max-width: 700px) { .opgrk { flex-wrap: wrap; } .opgmeta { width: 100%; justify-content: flex-start; padding-left: 36px; } .flueben { width: 28px; height: 28px; } }

/* --- Min dag --- */
.mindag-tal { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 6px; }
.opgave.forsinket b { color: var(--fare); }
.ledelsesboks { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; background: var(--flade2); border: 1px solid var(--kant); text-decoration: none; color: var(--tekst); margin-top: 10px; }
.ledelsesboks b { display: block; font-size: 13.5px; } .ledelsesboks > span { flex: 1; }

/* --- Ledelsesoverblik --- */
.cockpit-status { display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: 6px; }
.cockpit-status b { display: block; font-size: 16px; } .cockpit-status .hint { display: block; margin-top: 2px; }
.fliser { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.flise { display: flex; flex-direction: column; gap: 4px; background: var(--flade); border: 1px solid var(--kant); border-left: 4px solid var(--kant2); border-radius: var(--radius); padding: 12px 14px; box-shadow: var(--skygge); text-decoration: none; color: var(--tekst); min-height: 116px; }
.flise:hover { border-color: var(--teal); }
.flise.roed { border-left-color: var(--fare); } .flise.gul { border-left-color: var(--advar); } .flise.groen { border-left-color: var(--god); }
.flise .fl-top .chip { flex: none; white-space: nowrap; } .flise .lbl { min-width: 0; }
.flise .fl-top { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.flise .lbl { font-size: 12px; font-weight: 700; color: var(--daempet); text-transform: uppercase; letter-spacing: .4px; }
.flise .val { font-size: 23px; font-weight: 800; line-height: 1.2; }
.flise .fl-kilde { margin-top: auto; font-size: 11.5px; color: var(--daempet); }
.trend { font-size: 13px; vertical-align: middle; color: var(--daempet); } .trend.god { color: var(--god); } .trend.daarlig { color: var(--fare); }
@media (max-width: 520px) { .fliser { grid-template-columns: 1fr 1fr; gap: 8px; } .flise { padding: 10px; min-height: 0; } .flise .val { font-size: 18px; } .flise .fl-top .chip { display: none; } }

/* --- Søgning (⌘K) --- */
.palfiltre { display: flex; gap: 6px; flex-wrap: wrap; padding: 8px 0 2px; }
.palfiltre .chip { cursor: pointer; font: inherit; font-size: 12.5px; } .palfiltre .chip .hint { font-size: 11.5px; margin-left: 2px; }
.palkrop { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.palkrop > span:first-child { overflow: hidden; text-overflow: ellipsis; }
.paludd { font-size: 12.5px; color: var(--daempet); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.palet mark { background: var(--guld-bg, #fbf3c4); color: inherit; border-radius: 3px; padding: 0 1px; }
:root[data-tema="moerk"] .palet mark { background: #4a4214; }
.palmente { padding: 8px 10px; font-size: 13.5px; color: var(--daempet); }
.linkknap { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: var(--teal-tekst); cursor: pointer; text-decoration: underline; }

/* --- Spørg Intra overalt --- */
.spoergfab { position: fixed; right: 22px; bottom: calc(22px + env(safe-area-inset-bottom)); z-index: 40; display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; border-radius: 999px; border: 0; background: var(--teal); color: var(--paa-teal); font: inherit; font-weight: 700; font-size: 14px; box-shadow: 0 6px 20px rgba(0,0,0,.18); cursor: pointer; }
.spoergfab:hover { background: var(--teal-moerk); }
.spoergfab[hidden] { display: none; }
.spoergfab .ik { width: 18px; height: 18px; }
@media (max-width: 700px) { .spoergfab { right: 14px; bottom: calc(14px + env(safe-area-inset-bottom)); padding: 12px 14px; font-size: 13.5px; } }
@media print { .spoergfab { display: none; } }
.chatom { display: flex; align-items: center; gap: 8px; margin: 0 18px; padding: 8px 10px; border-radius: 10px; background: var(--teal-lys); color: var(--teal-tekst); font-size: 13px; }
.chatom span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mikknap { flex: none; } .mikknap.optager-aktiv { background: var(--fare-bg); color: var(--fare); border-color: var(--fare); animation: puls 1.2s infinite; }
@keyframes puls { 50% { box-shadow: 0 0 0 6px rgba(180,42,42,.15); } }
#vis { padding-bottom: 76px; }
.onbvalg { padding: 12px 14px; margin-top: 10px; background: var(--flade2); box-shadow: none; }

/* --- Bekræftelser og korte tekstfelter i Intras design --- */
.bekraeftlag { position: fixed; inset: 0; z-index: 150; background: rgba(8, 20, 20, .45); display: flex; align-items: center; justify-content: center; padding: 16px; animation: bkInd .12s ease-out; }
.bekraeft { background: var(--flade); color: var(--tekst); border-radius: 14px; box-shadow: 0 20px 50px rgba(0,0,0,.25); padding: 20px 22px 16px; width: min(440px, 100%); }
.bekraeft p { margin: 0 0 16px; font-size: 15px; line-height: 1.45; font-weight: 600; }
.bekraeft .knaprk { justify-content: flex-end; }
.bekraeft .inp { width: 100%; }
.knap.farefyld { background: var(--fare); border-color: var(--fare); color: #fff; }
.knap.farefyld:hover { filter: brightness(.95); }
@keyframes bkInd { from { opacity: 0; } }
@media (max-width: 520px) { .bekraeftlag { align-items: flex-end; padding: 0; } .bekraeft { border-radius: 16px 16px 0 0; padding-bottom: calc(16px + env(safe-area-inset-bottom)); } .bekraeft .knaprk { flex-direction: column-reverse; } .bekraeft .knaprk .knap { width: 100%; justify-content: center; } }

/* --- Tilgængelighed (okt. 2026): synligt fokus, hop til indhold, større trykflader på telefon, mindre bevægelse --- */
:focus-visible { outline: 3px solid var(--teal); outline-offset: 2px; border-radius: 6px; }
.knap:focus-visible, .chip:focus-visible, .navpunkt:focus-visible, .opgave:focus-visible, .flise:focus-visible { outline: 3px solid var(--teal); outline-offset: 2px; }
.felt input:focus-visible, .felt select:focus-visible, .felt textarea:focus-visible, .inp:focus-visible { outline: 2px solid var(--teal); outline-offset: -1px; }
#vis:focus { outline: none; }
tr.klik:focus-visible { outline: 3px solid var(--teal); outline-offset: -3px; }
.hopover { position: fixed; left: 12px; top: -60px; z-index: 300; background: var(--teal); color: var(--paa-teal); border: 0; border-radius: 10px; padding: 10px 16px; font: inherit; font-weight: 700; cursor: pointer; transition: top .15s; }
.hopover:focus { top: 10px; }
@media (pointer: coarse) {
  .knap { min-height: 44px; } .knap.lille { min-height: 38px; min-width: 38px; justify-content: center; }
  .navpunkt { min-height: 46px; } .chip[href], button.chip, .chip[data-f], .chip[data-gruppe] { min-height: 34px; display: inline-flex; align-items: center; padding-left: 12px; padding-right: 12px; }
  .opgave, .opgrk { min-height: 48px; } .flueben { width: 30px; height: 30px; }
  input, select, textarea, .inp { font-size: 16px; } /* iOS zoomer ellers ind ved fokus */
  .fastgoer { opacity: 1; padding: 8px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }

/* --- Klinikkens profil: logo og farve (okt. 2026) --- */
:root { --klinik: var(--teal); }
.brand img.klinlogo { width: auto; max-width: 64px; height: 34px; object-fit: contain; border-radius: 6px; }
.velkommen.medprofil { border-left: 5px solid var(--klinik); padding-left: 14px; align-items: center; }
.velkommen.medprofil h1 { color: var(--klinik); }
:root[data-tema="moerk"] .velkommen.medprofil h1 { color: var(--tekst); }
.forsidelogo { max-height: 56px; max-width: 160px; object-fit: contain; margin-left: auto; }
.printhoved { display: none; }
@media print {
  .printhoved { display: block; margin-bottom: 14px; }
  .printhoved .ph { display: flex; align-items: center; gap: 12px; padding-bottom: 10px; border-bottom: 3px solid var(--klinik); }
  .printhoved img { height: 40px; max-width: 140px; object-fit: contain; } .printhoved b { display: block; font-size: 15px; } .printhoved span { font-size: 11px; color: #5d6a6a; }
  .fliser { grid-template-columns: repeat(3, 1fr); } .flise { box-shadow: none; break-inside: avoid; } #vis { padding-bottom: 0; }
}
.pflogo { min-height: 90px; display: flex; align-items: center; justify-content: center; border: 1px dashed var(--kant2); border-radius: 12px; padding: 14px; background: var(--flade2); }
.pflogo img { max-height: 80px; max-width: 260px; object-fit: contain; }
.pffarver { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.pffarve { width: 38px; height: 38px; border-radius: 50%; border: 3px solid var(--flade); box-shadow: 0 0 0 1px var(--kant2); cursor: pointer; }
.pffarve.valgt { box-shadow: 0 0 0 3px var(--tekst); }
.pfegen { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 13px; } .pfegen input { width: 42px; height: 38px; border: 1px solid var(--kant2); border-radius: 8px; padding: 2px; background: var(--flade); }
.pfmail { border: 1px solid var(--kant); border-radius: 12px; overflow: hidden; background: #fff; color: #1f2a2a; }
.pfmail-top { color: #fff; padding: 14px 16px; display: flex; align-items: center; gap: 10px; } .pfmail-top img { height: 32px; max-width: 90px; object-fit: contain; background: #fff; border-radius: 6px; padding: 2px; }
.pfmail-top b { display: block; } .pfmail-top span { font-size: 12px; opacity: .85; }
.pfmail-krop { padding: 14px 16px; } .pfmail-krop .hint { color: #5d6a6a; }
.pfknap { display: inline-block; color: #fff; padding: 9px 14px; border-radius: 9px; font-weight: 700; font-size: 13px; }
@media print { #vis > .sidehoved { position: static !important; background: none !important; box-shadow: none !important; padding: 0 !important; margin: 0 0 12px !important; } .spoergfab, .hopover { display: none !important; } }

/* --- Status, nyt og hjælp --- */
.statusliste, .nytliste, .vgliste { list-style: none; margin: 0; padding: 0; }
.statusrk { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--kant); } .statusrk:last-child { border-bottom: 0; }
.statusrk > div { flex: 1; min-width: 0; }
.statusprik { width: 10px; height: 10px; border-radius: 50%; flex: none; background: var(--god); } .statusprik.advar { background: var(--advar); } .statusprik.fare { background: var(--fare); }
.nytliste li { display: grid; grid-template-columns: 120px 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--kant); } .nytliste li:last-child { border-bottom: 0; }
.nytliste p { margin: 2px 0 6px; } .nytliste a { font-weight: 600; font-size: 13.5px; text-decoration: none; }
.nytdato { font-size: 12.5px; color: var(--daempet); font-weight: 600; }
@media (max-width: 600px) { .nytliste li { grid-template-columns: 1fr; gap: 2px; } }
.hjaelpvalg { display: grid; gap: 8px; }
.hjaelpknap { display: flex; gap: 12px; align-items: center; text-align: left; padding: 10px 12px; border: 1px solid var(--kant); border-radius: 12px; background: var(--flade2); color: var(--tekst); font: inherit; cursor: pointer; text-decoration: none; }
.hjaelpknap:hover { border-color: var(--teal); } .hjaelpknap > span { display: flex; flex-direction: column; } .hjaelpknap .ik { color: var(--teal); flex: none; }
.vgliste li a { display: flex; gap: 10px; padding: 8px 0; text-decoration: none; color: var(--tekst); border-bottom: 1px solid var(--kant); } .vgliste li:last-child a { border-bottom: 0; }
.vgliste li a > span { display: flex; flex-direction: column; } .vgliste .ik { color: var(--teal); margin-top: 2px; flex: none; }
.nytprik { width: 8px; height: 8px; border-radius: 50%; background: var(--advar); margin-left: auto; flex: none; }
.rapportforslag { margin-bottom: 14px; } .rapportforslag summary { cursor: pointer; list-style: none; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } .rapportforslag summary::-webkit-details-marker { display: none; }

/* --- Versioner og forskelle --- */
.forskel { border: 1px solid var(--kant); border-radius: 10px; padding: 10px 12px; max-height: 55vh; overflow: auto; font-size: 13.5px; line-height: 1.5; background: var(--flade); }
.df-ens { color: var(--daempet); padding: 1px 0; }
.df-ny { background: var(--god-bg); color: var(--god); padding: 2px 6px; border-radius: 6px; margin: 2px 0; }
.df-gl { background: var(--fare-bg); color: var(--fare); padding: 2px 6px; border-radius: 6px; margin: 2px 0; text-decoration: line-through; }
.nyversion-boks .knaprk { flex-wrap: wrap; }

/* Journal-widget på forsiden (Praksisjournal) */
.journalwidget { margin-bottom: 14px; border-left: 4px solid var(--teal); }
.journalwidget .jw-hoved { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.journalwidget .jw-tal { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; margin-bottom: 10px; }
.journalwidget .jw-felt { display: flex; flex-direction: column; padding: 8px 10px; border-radius: 10px; background: var(--flade2); text-decoration: none; color: inherit; border: 1px solid var(--kant); }
.journalwidget .jw-felt:hover { border-color: var(--teal); }
.journalwidget .jw-felt b { font-size: 20px; color: var(--teal-tekst); }
.journalwidget .jw-felt span { font-size: 12.5px; color: var(--daempet); }
.journalwidget .jw-liste { display: flex; flex-direction: column; gap: 4px; }
.journalwidget .jw-aft { display: flex; gap: 10px; align-items: center; padding: 5px 8px; border-radius: 8px; text-decoration: none; color: inherit; }
.journalwidget .jw-aft:hover { background: var(--flade2); }
.journalwidget .jw-kl { font-weight: 700; font-variant-numeric: tabular-nums; width: 44px; }

/* Kvalitetstal fra journalen */
.kq-gitter { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.kq-kort { display: flex; flex-direction: column; gap: 4px; }
.kq-tal { display: flex; gap: 10px; align-items: baseline; } .kq-stor { font-size: 28px; font-weight: 700; font-variant-numeric: tabular-nums; }
.kq-st { font-size: 12px; font-weight: 700; } .kq-st.ok { color: var(--god); } .kq-st.naer { color: var(--advar); } .kq-st.under { color: var(--fare); }
.kq-trend { display: block; margin: 4px 0; }
.kq-maal { stroke: var(--god); stroke-dasharray: 5 4; stroke-width: 1.2; } .kq-akse { fill: var(--svag); font-size: 11px; }
.kq-linje { fill: none; stroke: #2a78d6; stroke-width: 2; } .kq-pkt { fill: #2a78d6; stroke: var(--flade); stroke-width: 2; }
:root[data-tema="moerk"] .kq-linje { stroke: #3987e5; } :root[data-tema="moerk"] .kq-pkt { fill: #3987e5; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="lys"]) .kq-linje { stroke: #3987e5; } :root:not([data-tema="lys"]) .kq-pkt { fill: #3987e5; } }
.kq-tabel { width: 100%; border-collapse: collapse; } .kq-tabel th, .kq-tabel td { padding: 7px 8px; border-bottom: 1px solid var(--kant); text-align: right; white-space: nowrap; }
.kq-tabel th:first-child, .kq-tabel td:first-child { text-align: left; } .kq-tabel th { font-size: 12.5px; color: var(--daempet); }
.kq-gr td { background: var(--flade2); font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--daempet); text-align: left !important; }
.kq-celle { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 3px; min-width: 70px; font-variant-numeric: tabular-nums; }
.kq-bar { position: relative; width: 70px; height: 6px; border-radius: 99px; background: var(--flade2); }
.kq-bar i { position: absolute; left: 0; top: 0; bottom: 0; background: #2a78d6; border-radius: 99px; }
.kq-bar b { position: absolute; top: -3px; width: 2px; height: 12px; background: var(--tekst); margin-left: -1px; }

/* Kapacitet fra journalen */
.kp-adv { border-left: 4px solid var(--fare); background: var(--fare-bg); margin-bottom: 8px; } .kp-ok { border-left: 4px solid var(--god); background: var(--god-bg); }
.kp-c { display: inline-flex; flex-direction: column; align-items: flex-end; padding: 4px 8px; border-radius: 8px; min-width: 76px; }
.kp-c b { font-variant-numeric: tabular-nums; } .kp-c span { font-size: 11px; color: var(--daempet); }
.kp-c.ok { background: var(--god-bg); } .kp-c.ok b { color: var(--god); } .kp-c.stram { background: var(--advar-bg); } .kp-c.stram b { color: var(--advar); } .kp-c.mangel { background: var(--fare-bg); } .kp-c.mangel b { color: var(--fare); }

.mm-tabel { overflow-x: auto; }
.mm-tabel table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.mm-tabel th { text-align: right; font-size: 12px; font-weight: 600; color: var(--daempet); padding: 6px 8px; border-bottom: 1px solid var(--kant); white-space: nowrap; }
.mm-tabel td { text-align: right; padding: 6px 8px; border-bottom: 1px solid var(--kant); font-variant-numeric: tabular-nums; }
.mm-tabel th:first-child, .mm-tabel td:first-child { text-align: left; }
.mm-tabel tr.egen td { background: var(--flade2); }
.mm-tabel .roed { color: var(--fare, #b42a2a); }

.beslboks { margin-top: 14px; border-top: 1px solid var(--kant); padding-top: 12px; }
ul.besl { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 8px; }
ul.besl label { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border: 1px solid var(--kant); border-radius: 10px; cursor: pointer; }
ul.besl input { margin-top: 3px; }

.mindag-side { max-width: 760px; }
/* Daglig opsamling og levering pr. beskedtype (Notifikationer) */
.opsam-rk{display:flex;flex-wrap:wrap;gap:10px}
.opsam-rk label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--daempet)}
.opsam-rk select,.opsam-rk input,.levrk select{font:inherit;font-size:14px;padding:7px 9px;border:1px solid var(--kant2);border-radius:8px;background:var(--flade);color:inherit;min-height:38px}
.pushvalg.levering{display:flex;flex-direction:column;gap:6px}
.levrk{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}
.levrk select{flex:0 0 auto}
.opsam-liste{margin:10px 0 0;padding-left:18px;font-size:14px;line-height:1.5}
.opsam-liste li.vigtig{font-weight:600}
@media (max-width:520px){.levrk{flex-direction:column;align-items:stretch}.opsam-rk label{flex:1 1 100%}}

/* Demo */
.demopille { font-size: 11px; font-weight: 700; letter-spacing: .08em; color: #8a5a00; background: #fdf0d5; border-radius: 999px; padding: 3px 10px; margin-right: 8px; white-space: nowrap; }

/* Hjælp og guides */
.guidefaner { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin-bottom: 12px; }
.guidefane { text-align: left; display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border: 1px solid var(--kant); border-radius: 12px; background: var(--flade); color: var(--tekst); cursor: pointer; font: inherit; }
.guidefane.aktiv { border-color: var(--teal); box-shadow: inset 0 0 0 1px var(--teal); background: var(--teal-lys); }
details.guide { padding: 0; margin-bottom: 10px; }
details.guide > summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 14px 16px; cursor: pointer; }
details.guide > summary::-webkit-details-marker { display: none; }
details.guide > summary .guidehoved { flex: 1; display: flex; flex-direction: column; gap: 2px; }
details.guide[open] > summary .ik { transform: rotate(180deg); }
details.guide > .guidetrin, details.guide > .guidetips, details.guide > .knaprk { margin-left: 16px; margin-right: 16px; }
details.guide > .knaprk { margin-bottom: 14px; }
.guidetrin li { margin: 6px 0; line-height: 1.45; }
.guidetips { margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: var(--flade2, rgba(0,0,0,.03)); font-size: 13.5px; }
.guidetips p { margin: 4px 0; color: var(--daempet); } .guidetips .ik { vertical-align: -2px; }

.appbanner.demostor { border-width: 2px; font-size: 14.5px; } .appbanner.demostor b { display: flex; align-items: center; gap: 6px; font-size: 15.5px; margin-bottom: 2px; }
