/* OMNI app-kit · alle sider efter log ind. Bygger på P1.css (--p-*). Indlæs: P1.css → omni-app-kit.css.
   Kontrastregel: lys tekst sættes KUN på elementer med egen mørk baggrund (.ak-dark og komponenter inde i den
   der selv er mørke/glas). Ingen descendant-!important-farveoverrides. Komponenter med egen baggrund (badges,
   knapper, felter) sætter altid både baggrund OG tekstfarve. */
:root{
  --ak-ink:var(--p-ink,#0c1f2b);--ak-deep:var(--p-deep,#0d3640);--ak-teal:var(--p-teal,#0b5e5a);--ak-teal-2:var(--p-teal2,#137a72);
  --ak-accent:var(--p-accent,#8fdccf);--ak-surface:var(--p-surface,#f6f9f9);--ak-surface-2:var(--p-surface2,#e8f1f0);--ak-line:var(--p-line,#d6e4e2);
  --ak-text:var(--p-text,#0c1f2b);--ak-mut:var(--p-mut,#4f6168);--ak-on-dark:var(--p-onDark,#f6f9f9);--ak-on-dark-2:var(--p-onDark2,#cfe3e3);
  --ak-grad:var(--p-grad,linear-gradient(160deg,#0c1f2b 0%,#0d3640 50%,#0b5e5a 100%));
  --ak-glass:rgba(255,255,255,.08);--ak-glass-line:rgba(255,255,255,.22);
  --ak-warn:#7c2d12;--ak-warn-bg:#fef3c7;--ak-warn-line:#f59e0b;--ak-bad:#93000a;--ak-bad-bg:#ffdad6;--ak-ok:#0b5e5a;--ak-ok-bg:#dff0ec;--ak-info:#0d3640;--ak-info-bg:#e3eef3;
  --ak-r:16px;--ak-r-lg:22px;--ak-r-sm:10px;--ak-pill:999px;
  --ak-shadow:0 1px 2px rgba(12,31,43,.05),0 12px 28px -18px rgba(12,31,43,.22);--ak-shadow-lg:0 30px 60px -30px rgba(12,31,43,.45);
  --ak-sans:"Inter",-apple-system,"SF Pro Text",system-ui,sans-serif;--ak-head-h:64px;--ak-nav-w:248px;
}
.ak,.ak *{box-sizing:border-box}
.ak{margin:0;min-height:100vh;min-height:100svh;background:var(--ak-surface);color:var(--ak-text);font:15px/1.55 var(--ak-sans);-webkit-font-smoothing:antialiased}
.ak h1,.ak h2,.ak h3{letter-spacing:-.025em;line-height:1.12;margin:0;color:inherit}
.ak a{color:var(--ak-teal-2)}
.ak-dark{background:var(--ak-grad);color:var(--ak-on-dark)}
.ak-dark a:not([class]){color:var(--ak-accent)}
.ak-mut{color:var(--ak-mut)} .ak-dark .ak-mut{color:var(--ak-on-dark-2)}
/* ---------- App-header ---------- */
.ak-header{position:sticky;top:0;z-index:30;height:var(--ak-head-h);display:flex;align-items:center;gap:16px;padding:0 24px;background:var(--ak-grad);color:var(--ak-on-dark);border-bottom:1px solid var(--ak-glass-line)}
.ak-logo{display:flex;align-items:center;height:36px}.ak-logo img{height:34px;width:auto;display:block}
.ak-role{display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:var(--ak-pill);background:var(--ak-glass);border:1px solid var(--ak-glass-line);color:var(--ak-on-dark);font-size:13px;font-weight:600}
.ak-role img{width:28px;height:28px}
.ak-header .ak-sp{flex:1}
.ak-user{display:flex;align-items:center;gap:10px;color:var(--ak-on-dark-2);font-size:14px;position:relative}
.ak-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--ak-accent);color:var(--ak-ink);font-weight:700;font-size:13px}
.ak-menu{position:absolute;right:0;top:44px;min-width:220px;background:#fff;color:var(--ak-text);border:1px solid var(--ak-line);border-radius:var(--ak-r);box-shadow:var(--ak-shadow-lg);padding:6px;display:none}
.ak-user[aria-expanded=true] .ak-menu{display:block}
.ak-menu a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--ak-r-sm);color:var(--ak-text);text-decoration:none;font-size:14px}.ak-menu a:hover{background:var(--ak-surface-2)}.ak-menu img{width:28px;height:28px}
.ak-demo{background:#071720;color:var(--ak-on-dark-2);font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-align:center;padding:5px}
/* ---------- Layout + sidenav ---------- */
.ak-shell{display:grid;grid-template-columns:var(--ak-nav-w) 1fr;min-height:calc(100vh - var(--ak-head-h))}
.ak-nav{background:#fff;border-right:1px solid var(--ak-line);padding:18px 12px;position:sticky;top:var(--ak-head-h);height:calc(100vh - var(--ak-head-h));overflow:auto}
.ak-nav h4{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ak-mut);margin:14px 10px 6px}
.ak-nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--ak-r-sm);color:var(--ak-text);text-decoration:none;font-weight:500;font-size:14.5px}
.ak-nav a img{width:32px;height:32px;margin:-3px}
.ak-nav a:hover{background:var(--ak-surface-2)}
.ak-nav a[aria-current=page]{background:var(--ak-surface-2);color:var(--ak-teal);box-shadow:inset 3px 0 0 var(--ak-teal)}
.ak-main{min-width:0}
.ak-wrap{max-width:1160px;margin:0 auto;padding:0 32px}
/* tabbar (mobil) */
.ak-tabbar{display:none}
@media(max-width:899px){
 .ak-shell{display:block}.ak-nav{display:none}.ak-wrap{padding:0 18px}.ak-header{padding:0 14px;gap:10px}.ak-user span{display:none}.ak-role span{display:none}.ak-role{padding:4px}
 .ak-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(255,255,255,.94);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-top:1px solid var(--ak-line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
 .ak-tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--ak-mut);text-decoration:none}.ak-tabbar img{width:34px;height:34px;margin:-3px}
 .ak-tabbar a[aria-current=page]{color:var(--ak-teal);font-weight:600}
 .ak{padding-bottom:76px}
}
/* ---------- Side-hero (mørk bande) ---------- */
.ak-hero{position:relative;background:var(--ak-grad);color:var(--ak-on-dark);padding:36px 0 72px;overflow:hidden}
.ak-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(40% 70% at 88% 0,rgba(143,220,207,.16),transparent 70%)}
.ak-hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:28px;background:var(--ak-surface);border-radius:24px 24px 0 0}
.ak-hero .ak-wrap{position:relative;z-index:1}
.ak-eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ak-teal-2);margin:0 0 10px}
.ak-dark .ak-eyebrow,.ak-hero .ak-eyebrow{color:var(--ak-accent)}
.ak-hero h1{font-size:clamp(30px,4vw,48px);font-weight:700;letter-spacing:-.04em;max-width:20ch}
.ak-hero p{color:var(--ak-on-dark-2);max-width:56ch;margin:12px 0 0;font-size:16.5px}
.ak-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:26px}
.ak-kpi{background:var(--ak-glass);border:1px solid var(--ak-glass-line);border-radius:var(--ak-r);padding:14px 16px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ak-on-dark)}
.ak-kpi b{display:block;font-size:26px;letter-spacing:-.02em}.ak-kpi small{color:var(--ak-on-dark-2);font-size:13px}
@media(max-width:899px){.ak-kpis{grid-template-columns:1fr 1fr}.ak-hero{padding:24px 0 56px}}
/* ---------- Sektioner, kort ---------- */
.ak-section{padding:28px 0}
.ak-section>h2,.ak-h2{font-size:22px;margin:0 0 14px}
.ak-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.ak-card{background:#fff;color:var(--ak-text);border:1px solid var(--ak-line);border-radius:var(--ak-r);padding:18px;box-shadow:var(--ak-shadow)}
a.ak-card{display:block;text-decoration:none;transition:transform .15s,box-shadow .15s}a.ak-card:hover{transform:translateY(-1px);box-shadow:0 1px 2px rgba(12,31,43,.06),0 20px 36px -20px rgba(12,31,43,.3)}
.ak-card .ak-ico{width:56px;height:56px;margin:-6px -6px 6px}
.ak-card h3{font-size:16.5px}.ak-card p{color:var(--ak-mut);font-size:14px;margin:4px 0 0}
/* ---------- Lister ---------- */
.ak-list{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--ak-line);border-radius:var(--ak-r);overflow:hidden}
.ak-list li{display:flex;align-items:center;gap:14px;padding:14px 16px;border-top:1px solid var(--ak-line)}.ak-list li:first-child{border-top:0}
.ak-list .ak-l-t{flex:1;min-width:0}.ak-list b{display:block;font-size:15px}.ak-list small{color:var(--ak-mut)}
.ak-list a.ak-row{display:flex;align-items:center;gap:14px;width:100%;text-decoration:none;color:inherit}
/* ---------- Tabeller ---------- */
.ak-table-w{overflow:auto;border:1px solid var(--ak-line);border-radius:var(--ak-r);background:#fff}
.ak-table{width:100%;border-collapse:collapse;font-size:14px;color:var(--ak-text)}
.ak-table th{background:var(--ak-surface-2);color:var(--ak-text);text-align:left;font-weight:600;padding:10px 14px;white-space:nowrap}
.ak-table td{padding:11px 14px;border-top:1px solid var(--ak-line);color:var(--ak-text)}
.ak-table td.num,.ak-table th.num{text-align:right;font-variant-numeric:tabular-nums}
.ak-table tr:hover td{background:#fbfdfd}
/* ---------- Formularer ---------- */
.ak-field{display:grid;gap:6px;margin-bottom:14px}.ak-field label{font-weight:600;font-size:14px;color:var(--ak-text)}
.ak-input,.ak-select,.ak-textarea{width:100%;font:inherit;color:var(--ak-text);background:#fff;border:1px solid var(--ak-line);border-radius:var(--ak-r-sm);padding:11px 13px}
.ak-input:focus,.ak-select:focus,.ak-textarea:focus{outline:none;border-color:var(--ak-teal-2);box-shadow:0 0 0 3px rgba(19,122,114,.18)}
.ak-help{font-size:13px;color:var(--ak-mut)}.ak-error{font-size:13px;color:var(--ak-bad)}
.ak-field.is-error .ak-input{border-color:var(--ak-bad)}
/* ---------- Knapper ---------- */
.ak-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 14.5px var(--ak-sans);border-radius:var(--ak-pill);padding:11px 20px;border:1px solid transparent;cursor:pointer;text-decoration:none;line-height:1.2}
.ak-btn--primary{background:var(--ak-teal);color:#fff}.ak-btn--primary:hover{background:#094e4b}
.ak-btn--secondary{background:#fff;color:var(--ak-teal);border-color:var(--ak-line)}.ak-btn--secondary:hover{background:var(--ak-surface-2)}
.ak-btn--ghost{background:transparent;color:var(--ak-teal)}.ak-btn--ghost:hover{background:var(--ak-surface-2)}
.ak-dark .ak-btn--primary,.ak-hero .ak-btn--primary,.ak-header .ak-btn--primary{background:var(--ak-on-dark);color:var(--ak-teal)}
.ak-dark .ak-btn--secondary,.ak-hero .ak-btn--secondary,.ak-dark .ak-btn--ghost,.ak-hero .ak-btn--ghost{background:transparent;color:var(--ak-on-dark);border-color:var(--ak-glass-line)}
.ak-btn:focus-visible{outline:3px solid var(--ak-accent);outline-offset:2px}
.ak-btn[disabled]{opacity:.5;cursor:not-allowed}
/* ---------- Badges / status ---------- */
.ak-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;line-height:1;border-radius:var(--ak-pill);padding:5px 10px;background:var(--ak-surface-2);color:var(--ak-teal)}
.ak-badge--ok{background:var(--ak-ok-bg);color:var(--ak-ok)}
.ak-badge--info{background:var(--ak-info-bg);color:var(--ak-info)}
.ak-badge--neutral{background:#eef2f3;color:var(--ak-mut)}
.ak-badge--warn{background:var(--ak-warn-bg);color:var(--ak-warn);box-shadow:inset 0 0 0 1px var(--ak-warn-line)} /* KUN advarsler */
.ak-badge--bad{background:var(--ak-bad-bg);color:var(--ak-bad)}
.ak-dot{width:8px;height:8px;border-radius:50%;background:currentColor}
/* badges på mørk bevarer deres egen lyse baggrund → mørk tekst (kontrast OK) */
/* ---------- Tomme tilstande ---------- */
.ak-empty{text-align:center;padding:40px 20px;background:#fff;border:1px dashed var(--ak-line);border-radius:var(--ak-r);color:var(--ak-mut)}
.ak-empty img{width:72px;height:72px;margin:0 auto 8px;display:block}.ak-empty h3{color:var(--ak-text);font-size:17px;margin-bottom:4px}
/* ---------- Toast ---------- */
.ak-toasts{position:fixed;right:20px;bottom:20px;display:grid;gap:10px;z-index:60}
.ak-toast{display:flex;gap:12px;align-items:flex-start;min-width:280px;max-width:380px;background:var(--ak-ink);color:var(--ak-on-dark);border-radius:var(--ak-r);padding:12px 14px;box-shadow:var(--ak-shadow-lg);font-size:14px}
.ak-toast small{color:var(--ak-on-dark-2);display:block}.ak-toast--warn{background:var(--ak-warn-bg);color:var(--ak-warn);box-shadow:inset 0 0 0 1px var(--ak-warn-line),var(--ak-shadow-lg)}.ak-toast--warn small{color:var(--ak-warn)}
@media(max-width:899px){.ak-toasts{left:12px;right:12px;bottom:84px}}
/* ---------- Modal ---------- */
.ak-overlay{position:fixed;inset:0;background:rgba(12,31,43,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:70;padding:16px}
.ak-modal{width:min(520px,100%);background:#fff;color:var(--ak-text);border-radius:var(--ak-r-lg);box-shadow:var(--ak-shadow-lg);overflow:hidden}
.ak-modal header{padding:18px 20px 0}.ak-modal .ak-mb{padding:12px 20px 4px;color:var(--ak-mut)}.ak-modal footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--ak-line);background:var(--ak-surface)}
/* ---------- Rollevælger ---------- */
.ak-roles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.ak-rolecard{display:flex;align-items:center;gap:12px;padding:14px;background:#fff;color:var(--ak-text);border:1px solid var(--ak-line);border-radius:var(--ak-r);text-decoration:none;box-shadow:var(--ak-shadow)}
.ak-rolecard img{width:56px;height:56px;margin:-6px}.ak-rolecard b{display:block}.ak-rolecard small{color:var(--ak-mut)}
.ak-rolecard:hover{border-color:var(--ak-teal-2)}
@media(prefers-reduced-motion:reduce){.ak *{transition:none!important}}
