
:root{
--bg:#F7F7F5;--side:#F0F0ED;--surf:#FFFFFF;--surf2:#F4F4F1;--surf3:#EBEBE7;--bord:#E3E3DD;--bord2:#CDCDC5;
--text:#17191B;--text2:#41464B;--muted:#5C6268;--faint:#6F757B;
--acc:#0F6E7A;--acc-h:#0B5963;--acc-ink:#FFFFFF;--acc-soft:#E2F0F1;--link:#0B6270;--focus:#0F6E7A;--acc-ring:rgba(15,110,122,.18);
--ok:#17704F;--ok-soft:#E3F3EB;--warn:#82530A;--warn-soft:#FBEFD6;--crit:#B1202D;--crit-soft:#FBE7E9;--crit-solid:#B1202D;--crit-solid-h:#8F1823;--info:#2955B5;--info-soft:#E6EDFB;
--flag:#C8102E;--shadow:0 1px 2px rgba(20,22,24,.06);--pop:0 6px 24px rgba(20,22,24,.14);
--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2341464B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");color-scheme:light;
--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--r:12px;--r-s:8px;--pad:20px;
--font:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;--side-w:248px}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){
--bg:#121416;--side:#0E1011;--surf:#1A1D20;--surf2:#202428;--surf3:#292E33;--bord:#2B3035;--bord2:#3D444B;
--text:#ECEEF0;--text2:#C5CACF;--muted:#9EA5AC;--faint:#8A9198;
--acc:#4FBFCB;--acc-h:#6ACFDA;--acc-ink:#05191C;--acc-soft:#17333A;--link:#72CFD9;--focus:#72CFD9;--acc-ring:rgba(79,191,203,.25);
--ok:#6FD3A8;--ok-soft:#14291F;--warn:#E8B85A;--warn-soft:#2D2410;--crit:#FF8D96;--crit-soft:#35171B;--crit-solid:#C93644;--crit-solid-h:#D84A57;--info:#92B2FF;--info-soft:#18233F;
--flag:#E0223F;--shadow:0 1px 2px rgba(0,0,0,.4);--pop:0 8px 28px rgba(0,0,0,.55);
--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23C5CACF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");color-scheme:dark}}
:root[data-theme=dark]{
--bg:#121416;--side:#0E1011;--surf:#1A1D20;--surf2:#202428;--surf3:#292E33;--bord:#2B3035;--bord2:#3D444B;
--text:#ECEEF0;--text2:#C5CACF;--muted:#9EA5AC;--faint:#8A9198;
--acc:#4FBFCB;--acc-h:#6ACFDA;--acc-ink:#05191C;--acc-soft:#17333A;--link:#72CFD9;--focus:#72CFD9;--acc-ring:rgba(79,191,203,.25);
--ok:#6FD3A8;--ok-soft:#14291F;--warn:#E8B85A;--warn-soft:#2D2410;--crit:#FF8D96;--crit-soft:#35171B;--crit-solid:#C93644;--crit-solid-h:#D84A57;--info:#92B2FF;--info-soft:#18233F;
--flag:#E0223F;--shadow:0 1px 2px rgba(0,0,0,.4);--pop:0 8px 28px rgba(0,0,0,.55);
--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23C5CACF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{color:var(--text);line-height:1.25;text-wrap:balance}
h1{font-size:1.65rem;font-weight:650;letter-spacing:-.018em;margin:0 0 var(--s4)}
h2{font-size:1.02rem;font-weight:650;letter-spacing:-.005em;margin:0 0 var(--s3)}
h3{font-size:.95rem;font-weight:620;margin:0 0 var(--s2)}
p{margin:0 0 var(--s3)}
a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:currentColor}
a:hover{text-decoration-thickness:2px}
hr{border:0;border-top:1px solid var(--bord);margin:var(--s4) 0}
strong{font-weight:620}
::selection{background:var(--acc-soft);color:var(--text)}
.skip{position:absolute;left:-999px;top:0;background:var(--acc);color:var(--acc-ink);padding:var(--s2) var(--s4);z-index:50;border-radius:0 0 var(--r-s) 0}.skip:focus{left:0}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ic.sm{width:15px;height:15px}

/* ---------- Skal: sidebar + indhold ---------- */
.shell{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:100vh}
.shell.solo{grid-template-columns:minmax(0,1fr)}
nav.side{background:var(--side);border-right:1px solid var(--bord);padding:var(--s4) var(--s3);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:var(--s1);overflow-y:auto}
.brand{display:flex;align-items:center;gap:10px;padding:var(--s1) var(--s2) var(--s4);font-weight:650;letter-spacing:-.01em;color:var(--text);text-decoration:none}
.brand:hover{text-decoration:none}
.mark{width:26px;height:26px;border-radius:7px;background:var(--flag);display:grid;place-items:center;flex:none}
.mark svg{width:26px;height:26px}
.brand small{display:block;font-weight:500;font-size:.72rem;color:var(--muted);letter-spacing:0;line-height:1.1}
.navgroup{margin:var(--s3) var(--s2) var(--s1);font-size:.7rem;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
nav.side .links{display:flex;flex-direction:column;gap:2px}
nav a.item{display:flex;align-items:center;gap:10px;padding:0 var(--s3);min-height:38px;border-radius:var(--r-s);color:var(--text2);text-decoration:none;font-weight:540;position:relative}
nav a.item:hover{background:var(--surf3);color:var(--text)}
nav a.item[aria-current=page]{background:var(--surf);color:var(--text);box-shadow:var(--shadow),inset 0 0 0 1px var(--bord)}
nav a.item[aria-current=page] .ic{color:var(--acc)}
nav a.item kbd{margin-left:auto;opacity:0;transition:opacity .12s}
nav a.item:hover kbd,nav a.item:focus-visible kbd{opacity:1}
kbd{font:600 .68rem/1 var(--mono);color:var(--muted);background:var(--surf2);border:1px solid var(--bord);border-bottom-width:2px;border-radius:5px;padding:3px 5px}
nav.side .foot{margin-top:auto;display:flex;flex-direction:column;gap:var(--s2);padding-top:var(--s4);border-top:1px solid var(--bord)}
.me{display:flex;align-items:center;gap:10px;padding:0 var(--s2);min-width:0}
.av{width:32px;height:32px;border-radius:50%;background:var(--acc-soft);color:var(--acc);display:grid;place-items:center;font-weight:650;font-size:.78rem;flex:none;letter-spacing:.02em}
.who{min-width:0;line-height:1.25}
.who b{display:block;font-weight:620;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who span{display:block;font-size:.76rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tools{display:flex;gap:var(--s2);align-items:center}
.tools form{margin:0;flex:1}
.tools form button{width:100%}.tools>.iconbtn{width:36px}
.t-sun{display:none}:root[data-theme=dark] .t-sun{display:block}:root[data-theme=dark] .t-moon{display:none}
.topbar{display:none}
main{min-width:0;padding:var(--s6) clamp(16px,3.2vw,48px) 72px}
.wrap{max-width:1120px;margin:0 auto}
.wrap.narrow{max-width:720px}

/* ---------- Sidehoved ---------- */
.ph{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;margin-bottom:var(--s5)}
.ph h1{margin:0;display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.ph .sub{color:var(--muted);margin:var(--s1) 0 0;font-size:.92rem}
.ph .acts{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}
.crumb{font-size:.82rem;color:var(--muted);margin:0 0 var(--s2)}.crumb a{color:var(--muted)}

/* ---------- Paneler ---------- */
.card{background:var(--surf);border:1px solid var(--bord);border-radius:var(--r);padding:var(--pad);margin-bottom:var(--s4);box-shadow:var(--shadow)}
.card>h2:first-child,.card>.card-h:first-child{margin-top:0}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3)}.card-h h2{margin:0}
.card.attn{border-color:var(--bord2);box-shadow:inset 3px 0 0 var(--warn),var(--shadow)}
.card.flat{box-shadow:none}
.filters{background:none;border:0;box-shadow:none;padding:0;margin:0 0 var(--s4)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s4)}
.dash{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:var(--s4) var(--s5);align-items:start}
.dash>div{min-width:0}
.dash .card:last-child{margin-bottom:0}
.stat{font-size:2rem;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text);line-height:1.1}
.muted{color:var(--muted)}.small{font-size:.85rem}.nowrap{white-space:nowrap}
.center-card{max-width:420px;margin:12vh auto}
.kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--s2) var(--s5);margin:0}
.kv dt{color:var(--muted);font-size:.88rem}.kv dd{margin:0;overflow-wrap:anywhere}
.pro{display:flex;gap:var(--s4);align-items:center}
.pro .av{width:56px;height:56px;font-size:1.1rem}
.pro h2{margin:0;font-size:1.15rem}
.empty{text-align:center;padding:var(--s6) var(--s4);color:var(--muted)}
.empty .ico{width:44px;height:44px;border-radius:50%;background:var(--surf2);color:var(--faint);display:grid;place-items:center;margin:0 auto var(--s3)}
.empty .ico .ic{width:22px;height:22px}
.empty b{display:block;color:var(--text);font-weight:620;margin-bottom:2px}
.empty p{margin:0 0 var(--s3)}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s4) var(--s5)}
.facts .k{display:block;font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:650;margin-bottom:2px}
.facts b{font-weight:600;overflow-wrap:anywhere}
.list li.ev{display:grid;grid-template-columns:5.6rem minmax(0,1fr) auto;gap:var(--s3);align-items:baseline;justify-content:normal}
.ev .evt{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.88rem}
.ev .evm{min-width:0;overflow-wrap:anywhere}.ev .evm>a{font-weight:600;text-decoration:none;margin-right:6px}.ev .evm>a:hover{text-decoration:underline}
.list li.ev{padding:10px 0}
@media(max-width:560px){.list li.ev{grid-template-columns:minmax(0,1fr) auto;gap:2px var(--s3)}.ev .evt{grid-column:1/-1}.ev .evm{grid-column:1}}

/* ---------- Organisationsdiagram ---------- */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
fieldset.checks{border:0;margin:var(--s3) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px var(--s4)}
label.check{display:flex;align-items:center;gap:8px;margin:0;padding:6px 0;font-weight:520;font-size:.9rem;color:var(--text);cursor:pointer}
label.check input{margin:0;flex:none}
.org{position:relative;display:flex;flex-direction:column;gap:var(--s4);padding-left:var(--s5)}
.org::before{content:"";position:absolute;left:7px;top:14px;bottom:14px;width:2px;background:var(--bord2);border-radius:2px}
.tier{position:relative}
.tier::before{content:"";position:absolute;left:calc(var(--s5) * -1 + 2px);top:6px;width:12px;height:12px;border-radius:50%;background:var(--surf);border:2px solid var(--acc)}
.tier .tl{display:flex;align-items:center;gap:var(--s2);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--s2)}
.tier .tl span{background:var(--surf3);border-radius:99px;padding:0 8px;letter-spacing:0;text-transform:none}
.tp{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--s2)}
.ocard{display:flex;flex-direction:column;gap:1px;padding:10px 12px;background:var(--surf);border:1px solid var(--bord);border-radius:10px;text-decoration:none;color:var(--text);box-shadow:var(--shadow);min-width:0;overflow-wrap:anywhere}
.ocard:hover{border-color:var(--acc);text-decoration:none}
.ocard b{font-weight:650;color:var(--link)}
.ocard.leave{border-style:dashed}
.ocard .badge{align-self:flex-start;margin-top:4px}
@media print{nav.side,.topbar,.skip,.filters-org,.tabs{display:none!important}.shell{display:block}main{padding:0}.ocard{box-shadow:none;break-inside:avoid}}

/* ---------- Tabeller ---------- */
.table-wrap{overflow-x:auto;margin:0 calc(var(--pad) * -1)}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:11px var(--s4);border-bottom:1px solid var(--bord);vertical-align:top}
th:first-child,td:first-child{padding-left:var(--pad)}th:last-child,td:last-child{padding-right:var(--pad)}
th{color:var(--muted);font-weight:620;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding-top:8px;padding-bottom:8px;background:var(--surf2);border-top:1px solid var(--bord)}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--surf2)}
td:first-child a{font-weight:620;text-decoration:none;white-space:nowrap}td:first-child a:hover{text-decoration:underline}
caption{caption-side:bottom;text-align:left;color:var(--muted);font-size:.82rem;padding:var(--s3) var(--pad) 0}
.card>.table-wrap:first-child{margin-top:calc(var(--pad) * -1)}
.card>.table-wrap:first-child th{border-top:0;border-radius:0}
.card>.table-wrap:first-child th:first-child{border-top-left-radius:var(--r)}.card>.table-wrap:first-child th:last-child{border-top-right-radius:var(--r)}

/* ---------- Badges og status ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 9px 1px 8px;border-radius:99px;font-size:.78rem;font-weight:600;line-height:1.6;white-space:nowrap;background:var(--surf3);color:var(--text2);vertical-align:middle}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.crit{background:var(--crit-soft);color:var(--crit)}.badge.info{background:var(--info-soft);color:var(--info)}
.ok{color:var(--ok)}.warn{color:var(--warn)}.crit{color:var(--crit)}.info{color:var(--info)}

/* ---------- Formularer ---------- */
label{display:block;margin:var(--s4) 0 6px;color:var(--text2);font-size:.85rem;font-weight:600}
label .req{color:var(--crit)}
input,select,textarea{width:100%;padding:9px 12px;background:var(--surf);color:var(--text);border:1px solid var(--bord2);border-radius:var(--r-s);font:inherit;min-height:40px;transition:border-color .12s,box-shadow .12s}
input::placeholder,textarea::placeholder{color:var(--faint)}
input:hover,select:hover,textarea:hover{border-color:var(--faint)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-ring)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
textarea{min-height:96px;resize:vertical;line-height:1.5}
select{appearance:none;-webkit-appearance:none;background-image:var(--chev);background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;max-width:100%;text-overflow:ellipsis}
input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;padding:0;accent-color:var(--acc);vertical-align:-3px;margin-right:6px}
input[type=search]{-webkit-appearance:none;appearance:none}
input[readonly]{background:var(--surf2)}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--crit)}
.hint{color:var(--muted);font-size:.82rem;margin:6px 0 0}
.field-error{color:var(--crit);font-size:.84rem;margin:6px 0 0;font-weight:520}
.error-summary{border:1px solid var(--crit);background:var(--crit-soft);color:var(--crit);border-radius:var(--r-s);padding:var(--s3) var(--s4);margin-bottom:var(--s4)}
.error-summary ul{margin:var(--s2) 0 0;padding-left:1.2rem}.error-summary a{color:var(--crit)}
form.formcard{max-width:720px}
.filters label{margin-top:0}
.filters .row{gap:var(--s3)}.filters .row>div{flex:0 1 220px;min-width:0}.filters .row>.grow{flex:2 1 240px}.filters .row>div>select{width:100%}
.code{font:600 1.5rem/1.3 var(--mono);letter-spacing:.06em;background:var(--surf2);border:1px dashed var(--bord2);border-radius:var(--r-s);padding:var(--s3) var(--s4);display:inline-block;user-select:all}

/* ---------- Knapper ---------- */
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 var(--s4);border-radius:var(--r-s);border:1px solid transparent;background:var(--acc);color:var(--acc-ink);font:inherit;font-weight:620;font-size:.9rem;line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s}
button:hover,.btn:hover{background:var(--acc-h);text-decoration:none}
button:active,.btn:active{transform:translateY(.5px)}
button.ghost,.btn.ghost{background:var(--surf);color:var(--text);border-color:var(--bord2);box-shadow:var(--shadow)}
button.ghost:hover,.btn.ghost:hover{background:var(--surf2);border-color:var(--faint)}
button.danger,.btn.danger{background:var(--crit-solid);color:#fff}button.danger:hover,.btn.danger:hover{background:var(--crit-solid-h)}
button.sm,.btn.sm{min-height:32px;padding:0 var(--s3);font-size:.82rem}
button:focus-visible,.btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
button[disabled]{opacity:.5;cursor:not-allowed}
button[aria-busy=true]{opacity:.75;cursor:progress;position:relative}
button[aria-busy=true]::after{content:"";width:12px;height:12px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}
.iconbtn{width:36px;min-height:36px;padding:0;position:relative;flex:none}
.iconbtn .ic{width:18px;height:18px}
[data-tip]{position:relative}
[data-tip]:hover::after,[data-tip]:focus-visible::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);font-size:.75rem;font-weight:550;padding:4px 8px;border-radius:6px;white-space:nowrap;z-index:30;pointer-events:none}
.row{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}
.row.sb{justify-content:space-between}.row.end{align-items:flex-end}
.grow{flex:1 1 14rem;min-width:12rem}
.row select{width:auto;min-width:9rem}.row>div>select{min-width:9rem}
.row>div>label,.row>.grow>label{margin-top:0}
.mb{margin-bottom:var(--s4)}.mt{margin-top:var(--s4)}.mt-s{margin-top:var(--s2)}.nm{margin:0}
.w-full{width:100%}.inline{display:inline}

/* ---------- Chips, faner, lister ---------- */
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:var(--s1);padding:1px 2px 1px 10px;border:1px solid var(--bord2);border-radius:12px;font-size:.82rem;background:var(--surf2);color:var(--text2)}
.chip form{margin:0}.chip button{min-height:26px;padding:0 8px;background:transparent;color:var(--muted);border:0;font-size:1rem;font-weight:400}.chip button:hover{color:var(--crit);background:transparent}
.tabs{display:flex;gap:var(--s1);margin:0 0 var(--s5);border-bottom:1px solid var(--bord);flex-wrap:wrap}
.tabs a{padding:9px var(--s3);color:var(--muted);text-decoration:none;font-weight:600;font-size:.9rem;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a:hover{color:var(--text)}.tabs a[aria-current=page]{color:var(--text);border-bottom-color:var(--acc)}
.daylabel{color:var(--muted);font-size:.75rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;margin:var(--s5) 0 var(--s1)}.daylabel:first-child{margin-top:0}
.list{list-style:none;margin:0;padding:0}.list li{display:flex;justify-content:space-between;gap:var(--s3);align-items:center;padding:10px 0;border-bottom:1px solid var(--bord)}.list li:last-child{border-bottom:0;padding-bottom:0}.list li:first-child{padding-top:0}
.list.notes li{display:block}
details summary{cursor:pointer;color:var(--text2);font-weight:600}
details[open] summary{margin-bottom:var(--s3)}
.pre{white-space:pre-wrap;overflow-wrap:anywhere}
.orgitem{padding:var(--s3) 0;border-bottom:1px solid var(--bord)}.orgitem:last-child{border-bottom:0}.orgsub{margin:var(--s2) 0 0 var(--s4);padding-left:var(--s3);border-left:2px solid var(--bord)}
.assign{flex-wrap:wrap;gap:var(--s2)}.assign select{min-width:0;width:auto;flex:1 1 120px;max-width:190px;font-size:.88rem}.assign button{flex:none}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s4)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pager{display:flex;gap:var(--s2);align-items:center;margin-top:var(--s3)}
.confirm{max-width:560px}
.flash{display:flex;gap:10px;align-items:flex-start;padding:10px var(--s4);border-radius:var(--r-s);margin-bottom:var(--s4);border:1px solid var(--info);background:var(--info-soft);color:var(--info);font-weight:540}
.flash .ic{margin-top:2px}
.flash.err{border-color:var(--crit);background:var(--crit-soft);color:var(--crit)}.flash.okf{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}
.skeleton{display:block;min-height:1em;border-radius:6px;background:linear-gradient(90deg,var(--surf2),var(--surf3),var(--surf2));background-size:200% 100%;animation:sk 1.3s ease-in-out infinite}
@keyframes sk{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes spin{to{transform:rotate(360deg)}}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

/* ---------- Offentlige sider ---------- */
.pubbar{border-bottom:1px solid var(--bord);background:var(--surf)}
.pubbar .in{max-width:46rem;margin:0 auto;padding:var(--s3) var(--s4);display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
.pubbar .brand{padding:0}.pubbar nav{display:flex;gap:var(--s4);font-size:.9rem;font-weight:600}.pubbar nav a{color:var(--text2);text-decoration:none}.pubbar nav a:hover{color:var(--text)}.pubbar nav a{white-space:nowrap}@media(max-width:560px){.pubbar .in{flex-wrap:wrap;row-gap:var(--s2)}.pubbar nav{gap:var(--s3);font-size:.85rem}}
.pubmain{width:100%;padding:0 var(--s4)}
.pubmain>.flash{max-width:46rem;margin:var(--s4) auto 0}
.pubmain .center-card{margin:10vh auto}
.pub{max-width:46rem;margin:0 auto;padding:var(--s6) 0 var(--s7)}
.pubfoot{max-width:46rem;margin:0 auto;padding:0 var(--s4) var(--s6);color:var(--muted);font-size:.82rem}

/* ---------- Responsivt ---------- */
@media(pointer:coarse){button,.btn,input,select{min-height:44px}button.sm,.btn.sm{min-height:40px}}
@media(min-width:761px) and (max-width:1100px){:root{--side-w:208px}.dash{grid-template-columns:minmax(0,1fr)}}
@media(max-width:1100px){.dash{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
 :root{--pad:16px}
 body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
 .shell{display:block}
 .topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:var(--s2) var(--s4);background:var(--surf);border-bottom:1px solid var(--bord);position:sticky;top:0;z-index:15}
 .topbar .brand{padding:0}.topbar .tools{gap:var(--s1)}.topbar .tools form{flex:none}.topbar .tools button{width:40px}
 nav.side{position:fixed;bottom:0;left:0;right:0;top:auto;width:100%;height:auto;flex-direction:row;border-right:0;border-top:1px solid var(--bord);padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px));z-index:20;background:var(--surf);overflow:visible}
 nav.side .brand,nav.side .foot,nav.side .navgroup{display:none}
 nav.side .links{flex-direction:row;flex:1;gap:0;justify-content:space-around}
 nav a.item{flex:1 1 0;min-width:0;flex-direction:column;justify-content:center;gap:2px;padding:6px 2px;min-height:52px;font-size:.68rem;font-weight:600;text-align:center;border-radius:10px}
 nav a.item .ic{width:22px;height:22px}nav a.item kbd{display:none}
 nav a.item[aria-current=page]{box-shadow:none;background:var(--acc-soft);color:var(--acc)}
 main{padding:var(--s5) 16px var(--s6)}
 h1{font-size:1.4rem}
 .ph{margin-bottom:var(--s4)}
 .center-card{margin:4vh auto}
 .chip button{min-width:36px;min-height:36px}
 input,select,textarea{font-size:16px}
 .grow{flex-basis:100%}
 .fgrid{grid-template-columns:minmax(0,1fr)}.tp{grid-template-columns:minmax(0,1fr)}
 .kv{grid-template-columns:minmax(0,1fr);gap:0}.kv dt{margin-top:var(--s3)}
 .filters .row>*,.filters .row>div,.filters .row>.grow{flex:1 1 100%}.filters .row select{width:100%}
}
@media(max-width:1024px){
 table.cards thead{display:none}table.cards,table.cards tbody,table.cards tr{display:block;width:100%}
 table.cards tr{border:1px solid var(--bord);border-radius:10px;margin-bottom:var(--s3);padding:var(--s2) var(--s1);background:var(--surf)}
 table.cards td{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:var(--s3);border:0;padding:5px var(--s3)!important;overflow-wrap:anywhere}
 table.cards td::before{content:attr(data-l);color:var(--muted);font-size:.82rem}
 table.cards tbody tr:hover td{background:none}
 table.cards td:first-child a{white-space:normal}
 table.cards caption{display:none}
 .table-wrap{margin:0}.card>.table-wrap:first-child{margin-top:0}
 table.stack thead{display:none}table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
 table.stack tr{border:1px solid var(--bord);border-radius:10px;margin-bottom:var(--s3);padding:var(--s2);background:var(--surf)}
 table.stack td{border:0;padding:6px var(--s2)!important;min-width:0;overflow-wrap:anywhere}
 table.stack td::before{content:attr(data-l);display:block;color:var(--muted);font-size:.78rem;margin-bottom:2px}
 table.stack tbody tr:hover td{background:none}
 table.stack td .row{flex-direction:column;align-items:stretch}
 table.stack td select,table.stack td .row select,table.stack td .row>div>select{width:100%;min-width:0}
 table.stack td>form>button,table.stack td .row>button{width:100%}
 table.stack .chip{max-width:100%;flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
