/* Brask & Holm · Klientoverblik. Klassisk-familien v2, stil "Papir": ro og præcision.
   Source Serif 4 kun til h1 og korttitler. IBM Plex Sans til alt andet, også alle tal (tabular-nums lining-nums).
   Ingen versaler, ingen spatiering på småt, ingen streg under titlen, ingen glas eller glød.
   Motorkontrakt: alt UI i #app, rem sættes af PH.fitRem('#app') (10 px ved 1600×1000). */
:root{
  color-scheme:light;
  --paper:#F4EFE6;
  --card:#FFFDF8;
  --side:#ECE5D8;
  --sunk:#F1EBE0;
  --sunk-2:#F8F4EC;
  --lane:#EDE6D9;
  --ink:#1E2430;
  --ink-2:#4A5160;
  --ink-3:#6B7280;
  --ink-4:#A4A7AE;
  --line:rgba(70,52,30,.10);
  --line-2:rgba(70,52,30,.16);
  --acc:#1F5C4A;
  --acc-d:#174A3B;
  --acc-rgb:31 92 74;
  --ochre:#B7832F;
  --ochre-t:#8A6220;
  --ochre-rgb:183 131 47;
  --crit:#9A2F2F;
  --crit-rgb:154 47 47;
  --ok:#2F7A55;
  --ok-rgb:47 122 85;
  --sh:0 1px 2px rgba(60,40,20,.05),0 14px 34px -18px rgba(60,40,20,.20);
  --sh-h:0 2px 4px rgba(60,40,20,.06),0 22px 44px -20px rgba(60,40,20,.28);
  --sh-s:0 1px 2px rgba(60,40,20,.06),0 6px 16px -10px rgba(60,40,20,.22);
  --sh-pop:0 2px 6px rgba(60,40,20,.08),0 34px 80px -28px rgba(60,40,20,.42);
  --r-card:20px;
  --r-in:14px;
  --serif:'Source Serif 4',Georgia,serif;
  /* Overskrifter: UI-fonten. Sæt til var(--serif) for at skifte tilbage. Serif bruges kun i ordmærket. */
  --head:var(--sans);
  --head-w:600;
  --sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --ph-ripple:rgba(31,92,74,.55);
  --ph-frame-bg:#F4EFE6;
}
*{box-sizing:border-box}
html{font-size:10px;background:var(--paper)}
body{margin:0;overflow:hidden;font-family:var(--sans);font-size:1.4rem;line-height:1.45;color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums lining-nums}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3,p{margin:0}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:8px}
svg.i{width:1.8rem;height:1.8rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sprite{position:absolute;width:0;height:0}
.muted{color:var(--ink-3)}
kbd{font-family:var(--sans);font-size:1.15rem;font-weight:600;line-height:1;color:var(--ink-2);padding:.42rem .75rem;border-radius:99px;background:rgba(30,36,48,.07);white-space:nowrap}

/* ---------- Ramme ---------- */
#app{position:fixed;inset:0;overflow:hidden;background:var(--paper);display:grid;grid-template-columns:24.4rem minmax(0,1fr)}

/* ---------- Sidebjælke ---------- */
.side{position:relative;z-index:2;display:flex;flex-direction:column;min-height:0;padding:2.4rem 1.4rem 1.8rem;background:var(--side);box-shadow:inset -1px 0 0 rgba(70,52,30,.06)}
.brand{display:flex;align-items:center;gap:1.1rem;padding:0 .4rem 0 .6rem}
/* Mærket: revisorens flueben over dobbeltstregen, der lukker en sum (#logo i spriten) */
.mono{display:block;width:4.2rem;height:4.2rem;flex:none;color:var(--acc)}
.mono svg{display:block;width:100%;height:100%}
.brand-t b .amp{font-weight:400;color:var(--acc)}
.brand-t b{display:block;font-family:var(--serif);font-size:1.9rem;font-weight:600;line-height:1.1}
.brand-t small{display:block;margin-top:.2rem;font-size:1.25rem;color:var(--ink-3)}
.nav-wrap{margin-top:2.4rem}
.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.nav-list .sep{height:1px;margin:.9rem 1.2rem;background:rgba(70,52,30,.12)}
.nav{position:relative;display:flex;align-items:center;gap:1.1rem;width:100%;height:4.3rem;padding:0 1.1rem 0 1.3rem;border:0;border-radius:99px;background:none;
  color:var(--ink-2);font-size:1.42rem;font-weight:500;text-align:left;transition:background .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease)}
.nav span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav svg.i{color:var(--ink-3);transition:color .35s var(--ease)}
.nav:hover,.nav[data-ph-hover]{background:rgba(255,253,248,.6);color:var(--ink)}
.nav.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--sh-s)}
.nav.on svg.i{color:var(--acc)}
.cnt{font-style:normal;min-width:2.2rem;height:2.1rem;padding:0 .65rem;border-radius:99px;display:inline-grid;place-items:center;font-size:1.15rem;font-weight:600;color:var(--ink-2);background:rgba(30,36,48,.08)}
.cnt.crit{color:#fff;background:var(--crit)}
.cnt:empty{display:none}
.side-foot{margin-top:auto}
.me{display:flex;align-items:center;gap:1.1rem;padding:1rem 1.2rem;border-radius:16px;background:rgba(255,253,248,.55)}
.me-av{display:grid;place-items:center;width:3.8rem;height:3.8rem;border-radius:50%;flex:none;background:#DCD2C0;color:var(--ink);font-size:1.35rem;font-weight:600}
.me-t b{display:block;font-size:1.35rem;font-weight:600;line-height:1.25}
.me-t small{display:block;font-size:1.22rem;color:var(--ink-3);line-height:1.3}
.me-t .demo{display:flex;align-items:center;gap:.5rem}
.me-t .demo::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:var(--ochre)}

/* ---------- Hovedområde ---------- */
.main{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;padding:2.2rem 2.8rem 2.4rem 3rem}
.top{display:flex;align-items:center;gap:1.8rem;min-width:0;margin-bottom:1.8rem}
.top h1{font-family:var(--head);font-size:2.6rem;font-weight:var(--head-w);letter-spacing:-.01em;line-height:1.15;white-space:nowrap}
.ctx{display:flex;align-items:center;gap:.9rem;min-width:0;font-size:1.42rem;color:var(--ink-2);white-space:nowrap;overflow:hidden}
.ctx b{font-weight:600;color:var(--ink)}
.ctx b.crit{color:var(--crit)}
.ctx i{width:.4rem;height:.4rem;border-radius:50%;background:var(--ink-4);flex:none}
.search{display:flex;align-items:center;gap:1rem;width:32rem;flex:none;height:4.6rem;margin-left:auto;padding:0 .8rem 0 1.6rem;border:0;border-radius:99px;
  color:var(--ink-3);font-size:1.4rem;background:var(--card);box-shadow:var(--sh-s);transition:box-shadow .35s var(--ease),color .35s var(--ease)}
.search:hover,.search[data-ph-hover]{box-shadow:var(--sh-h);color:var(--ink-2)}
.search span{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.views{position:relative;min-width:0;min-height:0}
.view{position:absolute;inset:0;display:none;min-width:0;min-height:0}
.view.on{display:grid}

/* ---------- Kort ---------- */
.card{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;padding:2.1rem 2.4rem 2.2rem;border-radius:var(--r-card);
  background:var(--card);box-shadow:var(--sh);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.card.lift:hover,.card.lift[data-ph-hover]{transform:translateY(-2px);box-shadow:var(--sh-h)}
.c-head{display:flex;align-items:center;gap:1.1rem;min-width:0;flex:none}
.c-ico{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;flex:none;color:var(--acc);background:rgb(var(--acc-rgb) / .08)}
.c-ico.crit{color:var(--crit);background:rgb(var(--crit-rgb) / .08)}
.c-title{min-width:0;font-family:var(--head);font-size:1.8rem;font-weight:var(--head-w);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-ctx{margin-left:auto;font-size:1.32rem;color:var(--ink-3);white-space:nowrap}
.c-head .r{margin-left:auto}
.c-foot{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;margin-top:auto;padding-top:1.4rem;flex:none}
.big{display:flex;flex-direction:column;font-weight:500;line-height:1}
.big .n{font-size:6.6rem;letter-spacing:-.02em;line-height:.95}
.big .u{margin-top:.8rem;font-size:1.6rem;font-weight:500;color:var(--crit)}
.kpi{display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem .7rem;margin-top:1.4rem;flex:none}
.kpi .n{font-size:3.2rem;font-weight:500;letter-spacing:-.015em;line-height:1}
.kpi .u{font-size:1.4rem;font-weight:500;color:var(--ink-3)}
.kpi .muted{font-size:1.32rem;margin-left:.4rem}
.link{display:inline-flex;align-items:center;gap:.6rem;padding:0;border:0;background:none;font-size:1.36rem;font-weight:600;color:var(--acc);white-space:nowrap;transition:gap .3s var(--ease),color .3s var(--ease)}
.link svg.i{width:1.6rem;height:1.6rem}
.link:hover,.link[data-ph-hover]{gap:.9rem;color:var(--acc-d)}

/* Knapper */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;height:4.2rem;padding:0 1.8rem;border:0;border-radius:99px;font-size:1.36rem;font-weight:600;white-space:nowrap;flex:none;
  transition:background .3s var(--ease),box-shadow .3s var(--ease),color .3s var(--ease),transform .2s var(--ease)}
.btn svg.i{width:1.7rem;height:1.7rem}
.btn.pri{background:var(--acc);color:#FBF8F1;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 8px 18px -10px rgb(var(--acc-rgb) / .7)}
.btn.pri kbd{color:#FBF8F1;background:rgba(255,255,255,.16)}
.btn.pri:hover,.btn.pri[data-ph-hover]{background:var(--acc-d)}
.btn.sec{background:var(--sunk);color:var(--ink)}
.btn.sec:hover,.btn.sec[data-ph-hover]{background:#E9E1D3}
.btn.sm{height:3.4rem;padding:0 1.3rem;font-size:1.3rem}
.btn:active{transform:translateY(1px)}
.btn:disabled{cursor:default;opacity:.5;box-shadow:none}
.btn.done{background:rgb(var(--ok-rgb) / .12);color:var(--ok);box-shadow:none;opacity:1}
.btn.done kbd{display:none}
.iconbtn{display:grid;place-items:center;width:3.2rem;height:3.2rem;border:0;border-radius:50%;background:var(--sunk);color:var(--ink-2);transition:background .3s var(--ease)}
.iconbtn:hover,.iconbtn[data-ph-hover]{background:#E9E1D3;color:var(--ink)}
.iconbtn:disabled{opacity:.4;cursor:default}
.iconbtn svg.i{width:1.6rem;height:1.6rem}

/* Status og chips */
.st{display:inline-flex;align-items:center;gap:.55rem;height:2.6rem;padding:0 1.05rem;border-radius:99px;font-size:1.22rem;font-weight:600;white-space:nowrap;color:var(--ink-2);background:rgba(30,36,48,.06)}
.st::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:currentColor;flex:none}
.st.crit{color:var(--crit);background:rgb(var(--crit-rgb) / .09)}
.st.ok{color:var(--ok);background:rgb(var(--ok-rgb) / .1)}
.st.ochre{color:var(--ochre-t);background:rgb(var(--ochre-rgb) / .14)}
.st.acc{color:var(--acc);background:rgb(var(--acc-rgb) / .09)}
.st.mute{color:var(--ink-3);background:rgba(30,36,48,.05)}
.st.mute::before{background:var(--ink-4)}
.chip{display:inline-flex;align-items:center;height:2.5rem;padding:0 1rem;border-radius:99px;font-size:1.22rem;font-weight:500;color:var(--ink-2);background:var(--sunk);white-space:nowrap}
.av{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;flex:none;font-size:1.15rem;font-weight:600;color:var(--ink-2);background:#E6DECF}
.av.sq{border-radius:11px;font-size:1.25rem;color:var(--ink);background:#EAE2D3}
.cd{font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}

/* Segmenterede piller */
.seg{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem;border-radius:99px;background:var(--card);box-shadow:var(--sh-s);flex:none}
.seg button{display:inline-flex;align-items:center;gap:.6rem;height:3.6rem;padding:0 1.4rem;border:0;border-radius:99px;background:none;font-size:1.34rem;font-weight:500;color:var(--ink-2);white-space:nowrap;
  transition:background .3s var(--ease),color .3s var(--ease)}
.seg button em{font-style:normal;font-size:1.2rem;font-weight:600;color:var(--ink-3)}
.seg button:hover,.seg button[data-ph-hover]{background:var(--sunk);color:var(--ink)}
.seg button.on{background:var(--ink);color:#FBF8F1}
.seg button.on em{color:rgba(251,248,241,.7)}
.seg button.crit em{color:var(--crit)}
.seg button.on.crit em{color:#F0B9B0}
.seg.sm{padding:.3rem;background:var(--sunk);box-shadow:none}
.seg.sm button{height:2.8rem;padding:0 1.1rem;font-size:1.24rem}
.bar{display:flex;align-items:center;gap:1.4rem;min-width:0}
.bar .sp{flex:1}
.field{display:flex;align-items:center;gap:.9rem;height:4.4rem;padding:0 1.4rem 0 1.5rem;border-radius:99px;background:var(--card);box-shadow:var(--sh-s);min-width:0;flex:0 1 30rem}
.field svg.i{color:var(--ink-3)}
.field input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:1.4rem}
.field input::placeholder{color:var(--ink-3)}
.field:focus-within{box-shadow:0 0 0 2px rgb(var(--acc-rgb) / .35),var(--sh-s)}
.hint{display:flex;align-items:center;gap:.6rem;font-size:1.28rem;color:var(--ink-3);white-space:nowrap}

/* Værktøjstip */
.tip{position:absolute;z-index:95;left:0;top:0;max-width:30rem;padding:1rem 1.2rem;border-radius:12px;background:var(--ink);color:#F6F1E6;font-size:1.25rem;line-height:1.45;
  box-shadow:0 10px 30px -12px rgba(0,0,0,.45);pointer-events:none;opacity:0;transform:translateY(.4rem);transition:opacity .18s var(--ease),transform .18s var(--ease)}
.tip.on{opacity:1;transform:none}
.tip b{display:block;font-weight:600;margin-bottom:.3rem}
.tip span{display:block;color:rgba(246,241,230,.78)}
.tip .r{display:flex;justify-content:space-between;gap:1.2rem}
.tip .r i{font-style:normal;color:#F0B9B0}
.tip .r i.ok{color:#A8D5BD}

/* ---------- Overblik ---------- */
.ov{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(0,1.72fr) minmax(0,1fr);gap:1.6rem;
  grid-template-areas:"hero hero hero hero hero hero hero hero inb inb inb inb" "wip wip wip wip deb deb deb deb ai ai ai ai"}
.hero{grid-area:hero}
.inb{grid-area:inb}
.wip{grid-area:wip}
.deb{grid-area:deb}
.ai{grid-area:ai}
.hero-top{display:grid;grid-template-columns:17rem minmax(0,1fr);grid-template-rows:minmax(0,1fr);column-gap:2.6rem;flex:1;min-height:10rem;margin-top:1.2rem}
.hero-kpi{min-height:0}
.hero-kpi .big .n{line-height:1}
.wtop{margin-top:.6rem}
.wtop li{min-height:3.8rem}
.wtop li span small{color:var(--ink-3)}
.hero-kpi{align-self:stretch;display:flex;flex-direction:column;justify-content:safe center}
.hero-kpi.tight .big{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:0 .8rem}
.hero-kpi.tight .big .u{margin-top:0}
.fline{position:relative;min-width:0;min-height:0}
.fline svg{position:absolute;inset:0;overflow:visible}
.fline .ax{font-size:1.22rem;fill:var(--ink-3)}
.fline .ax.we{fill:var(--ink-4)}
.fline .ax.d{font-size:1.4rem;font-weight:500;fill:var(--ink)}
.fline .ax.d.we{fill:var(--ink-4)}
.fline .ax.today{fill:var(--acc);font-weight:600}
.fline .ann{font-size:1.25rem;font-weight:600;fill:var(--ink-2)}
.fline .cnum{font-size:1.4rem;font-weight:600;fill:#fff}
.fline .mk{cursor:pointer;outline:none}
.fline .mk:hover .hit,.fline .mk.hi .hit,.fline .mk:focus .hit{fill:rgba(30,36,48,.05)}
.fline .cnt{font-size:1.45rem;font-weight:600;fill:var(--ink)}
.fline .cnt.crit{fill:var(--crit)}
.hleg{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.hleg li{display:grid;grid-template-columns:1.2rem 2.8rem minmax(0,1fr);align-items:center;font-size:1.32rem;color:var(--ink-2)}
.hleg li i{width:1rem;height:1rem;border-radius:3px}
.hleg li b{font-weight:600;color:var(--ink)}
.hleg .crit i{background:var(--crit)}
.hleg .crit b{color:var(--crit)}
.hleg .ok i{background:var(--acc)}
.hleg .done i{background:#D6CEC0}
.hleg .of{display:block;margin-top:.3rem;font-size:1.25rem;color:var(--ink-3)}
.fchips{display:flex;flex-wrap:wrap;gap:.6rem}
.fchip{display:inline-flex;align-items:center;gap:.7rem;height:3.6rem;padding:0 1.2rem 0 .5rem;border:0;border-radius:99px;background:rgb(var(--acc-rgb) / .08);font-size:1.28rem;color:var(--ink)}
.fchip b{display:grid;place-items:center;min-width:2.6rem;height:2.6rem;padding:0 .5rem;border-radius:99px;background:var(--acc);color:#fff;font-weight:600}
.fchip.crit{background:rgb(var(--crit-rgb) / .08)}
.fchip.crit b{background:var(--crit)}
.risk{list-style:none;margin:1rem 0 0;padding:0;flex:none}
.risk li{display:grid;grid-template-columns:.8rem minmax(0,1.15fr) minmax(0,1.2fr) 9.6rem 12.4rem;align-items:center;column-gap:1.6rem;min-height:5.8rem;padding:.6rem .4rem;border-top:1px solid var(--line);
  transition:background .5s var(--ease),opacity .5s var(--ease)}
.risk li:hover,.risk li[data-ph-hover],.risk li.hi{background:var(--sunk-2);border-radius:10px}
.risk .mk{width:.8rem;height:.8rem;border-radius:50%;background:var(--crit)}
.risk .who{min-width:0}
.risk .who b{display:block;font-size:1.45rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.risk .who span{display:block;font-size:1.28rem;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.risk .miss{font-size:1.32rem;color:var(--ink);line-height:1.35;overflow-wrap:anywhere}
.risk .cdw{text-align:right}
.risk .cdw .cd{display:block;font-size:1.5rem;font-weight:500}
.risk li > .link{justify-self:end}
.risk .cdw small{display:block;font-size:1.22rem;color:var(--ink-3)}
.risk li.got{background:rgb(var(--ok-rgb) / .08);border-radius:10px}
.risk li.got .mk{background:var(--ok)}
.risk li.got .miss{color:var(--ok);font-weight:600}
.risk li.got .cdw small{color:var(--ok)}
.risk li.sent .who span::after{content:" · påmindet";color:var(--acc)}
.risk li.out{opacity:0}
.risk .empty-r{display:block;padding:1.6rem .4rem;color:var(--ok);font-weight:600}
#hero-foot{font-size:1.32rem}

.ilist{list-style:none;margin:0;padding:0}
.ilist.mini{margin-top:1rem;flex:none}
.ilist .it{display:grid;grid-template-columns:3.6rem minmax(0,1fr) auto;align-items:center;column-gap:1.1rem;min-height:5.4rem;padding:.5rem .6rem;border-radius:12px;cursor:pointer;transition:background .25s var(--ease)}

.ilist .it:hover,.ilist .it[data-ph-hover]{background:var(--sunk-2)}
.ilist .it.sel{background:rgb(var(--acc-rgb) / .07);box-shadow:none}

.ilist .fi{display:grid;place-items:center;width:3.6rem;height:3.6rem;border-radius:10px;background:var(--sunk);color:var(--ink-2)}
.ilist .fi svg.i{width:1.8rem;height:1.8rem}
.ilist .two{min-width:0}
.ilist .two b{display:block;font-size:1.36rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ilist .two small{display:block;font-size:1.25rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ilist .rt{text-align:right;font-size:1.25rem;color:var(--ink-3);white-space:nowrap}
.ilist .it.new{animation:newIt 1.6s var(--ease)}
.ilist .it.auto .fi{color:var(--ok);background:rgb(var(--ok-rgb) / .12)}
@keyframes newIt{0%{background:rgb(var(--ok-rgb) / .18);transform:translateY(-.6rem);opacity:0}30%{opacity:1;transform:none}100%{background:transparent}}
.inb-doc{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:1rem;padding:1rem;border-radius:var(--r-in);background:var(--sunk);overflow:hidden}
.inb-doc .doc{margin:0;flex:1;max-height:none;padding:1.3rem 1.5rem 1.1rem}
.inb-doc .doc .dv{font-size:1.5rem}
.inb-doc .doc .dm{margin-top:.2rem}
.inb-doc .doc .dlines{margin-top:.7rem}
.inb-doc .doc .dlines div{padding:.4rem 0}
.inb-doc .doc .dtot{padding-top:.5rem;row-gap:.05rem}

/* Papirgengivelse af bilag */
.doc{display:flex;flex-direction:column;min-height:0;padding:1.8rem 2rem 1.6rem;border-radius:6px;background:#FFFFFF;box-shadow:0 1px 2px rgba(60,40,20,.08),0 18px 36px -20px rgba(60,40,20,.35);overflow:hidden;font-size:1.3rem;color:var(--ink-2)}
.doc .dv{font-size:1.75rem;font-weight:600;color:var(--ink);line-height:1.2}
.doc .dm{display:flex;justify-content:space-between;gap:1rem;margin-top:.4rem;font-size:1.22rem;color:var(--ink-3)}
.doc .dlines{margin-top:1.2rem;min-height:0;overflow:hidden}
.doc .dlines div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:1rem;padding:.6rem 0;border-top:1px dashed rgba(70,52,30,.18)}
.doc .dlines div span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc .dlines div b{font-weight:500;color:var(--ink)}
.doc .dlines div b.neg{color:var(--crit)}
.doc .dlines .more{display:block;border-top:0;padding:.5rem 0 0;font-size:1.22rem;color:var(--ink-3)}
.doc .dtot{margin-top:auto;padding-top:.9rem;border-top:1.5px solid var(--ink);display:grid;grid-template-columns:minmax(0,1fr) auto;row-gap:.25rem}
.doc .dtot b{text-align:right;font-weight:500;color:var(--ink)}
.doc .dtot .tot{font-weight:600;color:var(--ink)}
.doc p{margin-top:.8rem;line-height:1.5}
.doc.enter{animation:docIn .45s var(--ease) backwards}
@keyframes docIn{from{opacity:0;transform:translateY(.8rem)}}

.aging{list-style:none;margin:0;padding:1.4rem 0 0;display:flex;flex-direction:column;gap:1rem;flex:none}
.wspark{position:relative;flex:1;min-height:0;margin-top:1.4rem}
.wspark.off{display:none}
.wspark svg{position:absolute;inset:0;overflow:visible}
.wspark .wl{font-size:1.2rem;fill:var(--ink-3)}
.wspark .wv{font-size:1.25rem;font-weight:600;fill:var(--ink-2)}
.wspark .wpt{cursor:default;outline:none}
.wspark .wpt:hover circle,.wspark .wpt:focus circle{r:4}
.aging li{display:grid;grid-template-columns:minmax(0,1fr) auto;row-gap:.45rem;font-size:1.3rem;color:var(--ink-2);cursor:default;border-radius:8px;transition:background .25s var(--ease)}
.aging li b{font-weight:600;color:var(--ink)}
.aging li:hover,.aging li[data-ph-hover]{background:var(--sunk-2)}
.aging .tr{grid-column:1/-1;height:.8rem;border-radius:99px;background:var(--sunk);overflow:hidden}
.aging .tr i{display:block;height:100%;border-radius:99px;background:var(--acc);transition:width .5s var(--ease)}
.aging .a2 .tr i{background:var(--ochre)}
.aging .a3 .tr i{background:var(--crit)}
.aging .a3 b{color:var(--crit)}
.dlist{list-style:none;margin:0;padding:1.2rem 0 0;flex:1;min-height:0;overflow:hidden}
.dlist li.more,.debc .dlist li.more{display:flex;min-height:3.8rem;border-top:1px solid var(--line)}
.dlist li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:1rem;min-height:4.8rem;border-top:1px solid var(--line);font-size:1.34rem}
.dlist li span{min-width:0;font-weight:500}
.dlist li span b{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dlist li span small{display:block;font-size:1.22rem;font-weight:600;color:var(--crit)}
.dlist li.dunned span small{color:var(--acc)}
.dlist li > b{font-weight:600;text-align:right}
.shield{display:flex;align-items:center;gap:.7rem;margin-top:1rem;font-size:1.3rem;color:var(--acc);font-weight:500;line-height:1.3}
.shield svg.i{width:1.7rem;height:1.7rem}
.ai-nav{display:flex;align-items:center;gap:.6rem;font-size:1.25rem;color:var(--ink-3);font-weight:500}
.draft-wrap{position:relative;flex:1;min-height:0;margin-top:1.2rem}
.draft{position:absolute;inset:0;display:flex;flex-direction:column;padding:1.4rem 1.6rem 1.4rem;border-radius:var(--r-in);background:var(--sunk-2);box-shadow:inset 0 0 0 1px var(--line)}
.draft .to{display:flex;align-items:center;gap:.8rem;min-width:0}
.draft .to b{min-width:0;font-size:1.36rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.draft .subj{margin-top:.8rem;font-size:1.4rem;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.draft .tx{flex:1;min-height:0;margin-top:.3rem;font-size:1.32rem;line-height:1.48;color:var(--ink-2);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;border-radius:6px;outline:none}
.draft.editing .tx{display:block;overflow:auto;background:var(--card);padding:.4rem .6rem;box-shadow:inset 0 0 0 1.5px rgb(var(--acc-rgb) / .45);color:var(--ink)}
.draft .acts{display:flex;justify-content:flex-end;gap:.8rem;margin-top:.9rem}
.draft.sent .acts{display:none}
.draft .sentline{display:none;align-items:center;gap:.6rem;margin-top:.9rem;font-size:1.3rem;font-weight:600;color:var(--ok)}
.draft.sent .sentline{display:flex}
.draft.enter{animation:draftIn .5s var(--ease) backwards}
@keyframes draftIn{from{opacity:0;transform:translateX(1.6rem)}}
.ai-empty{display:grid;place-items:center;height:100%;text-align:center;color:var(--ink-3);font-size:1.35rem;border-radius:var(--r-in);background:var(--sunk-2)}
.ai-empty b{display:block;font-size:1.6rem;font-weight:600;color:var(--ink);margin-bottom:.3rem}

/* ---------- Tabeller ---------- */
.tcard{padding:.6rem 1rem .8rem;overflow:hidden}
.scroll{min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#D9D0C0 transparent}
.tbl{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.tbl th{position:sticky;top:0;z-index:2;height:4.6rem;padding:0 1.4rem;background:var(--card);text-align:left;font-size:1.28rem;font-weight:600;color:var(--ink-3);box-shadow:inset 0 -1px 0 var(--line-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbl th.n,.tbl td.n{text-align:right}
.tbl th button{border:0;background:none;padding:0;font:inherit;color:inherit;display:inline-flex;align-items:center;gap:.4rem}
.tbl th button:hover,.tbl th button[data-ph-hover],.tbl th button.on{color:var(--ink)}
.tbl td{height:6rem;padding:0 1.4rem;border-bottom:1px solid var(--line);font-size:1.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr{cursor:pointer;transition:background .25s var(--ease)}
.tbl tbody tr:hover,.tbl tbody tr[data-ph-hover]{background:var(--sunk-2)}
.tbl tbody tr.sel{background:rgb(var(--acc-rgb) / .055)}
.tbl tbody tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--acc)}
.cl{display:flex;align-items:center;gap:1.2rem;min-width:0}
.cl > span{min-width:0}
.cl b{display:block;font-weight:600;font-size:1.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl small{display:block;font-size:1.25rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.two{min-width:0}
.two b{display:block;font-weight:500}
.two small{display:block;font-size:1.25rem;color:var(--ink-3)}
.two small.crit{color:var(--crit);font-weight:600}
.chips{display:flex;gap:.4rem;overflow:hidden}
.empty{display:grid;place-items:center;min-height:16rem;padding:3rem;text-align:center;color:var(--ink-3);font-size:1.4rem}
.empty b{display:block;font-size:1.7rem;font-weight:600;color:var(--ink);margin-bottom:.5rem}

/* ---------- Klienter ---------- */
.v-kl{grid-template-rows:auto minmax(0,1fr);gap:1.6rem}
.v-kl .tcard{display:grid;grid-template-rows:minmax(0,1fr)}
.v-kl col.c1{width:26%}
.v-kl col.c2{width:10%}
.v-kl col.c3{width:11%}
.v-kl col.c4{width:16.5%}
.v-kl col.c5{width:14%}
.v-kl col.c6{width:12.5%}
.v-kl col.c7{width:10%}

/* ---------- Frister og opgaver ---------- */
.v-fo{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto minmax(0,1fr);gap:1.6rem 1.8rem}
.v-fo > .bar{grid-column:1/-1}
.agenda{grid-column:span 8;padding:1rem 1.2rem 1rem}
.agenda .scroll{flex:1}
.ag-day{display:flex;align-items:baseline;gap:1rem;padding:1.6rem 1.2rem .6rem}
.ag-day b{font-size:1.5rem;font-weight:600}
.ag-day span{font-size:1.3rem;color:var(--ink-3)}
.ag-day .st{margin-left:auto}
.ag{list-style:none;margin:0;padding:0}
.ag li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;align-items:center;column-gap:1.4rem;min-height:5.6rem;padding:.5rem 1.2rem;border-top:1px solid var(--line);border-radius:10px;transition:background .25s var(--ease)}
.ag li:hover,.ag li[data-ph-hover]{background:var(--sunk-2)}
.ag li .two b{font-size:1.38rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag li .two small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag .act{display:flex;align-items:center;justify-content:flex-end;gap:.8rem}
.ag li.flash{animation:flash 1.2s var(--ease)}
@keyframes flash{0%{background:rgb(var(--ok-rgb) / .16)}100%{background:transparent}}
.fo-side{grid-column:span 4;display:flex;flex-direction:column;gap:1.6rem;min-height:0}
.fo-side .card{flex:none}
.fo-side .card.grow{flex:1}
.mcal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem;margin-top:1.2rem}
.mcal .wd{text-align:center;font-size:1.2rem;color:var(--ink-3);padding-bottom:.3rem}
.mcal button{position:relative;height:3.6rem;border:0;border-radius:10px;background:none;font-size:1.36rem;font-weight:500;color:var(--ink);transition:background .25s var(--ease)}
.mcal button:hover,.mcal button[data-ph-hover]{background:var(--sunk)}
.mcal button.we{color:var(--ink-4)}
.mcal button.out{color:var(--ink-4);opacity:.45;pointer-events:none}
.mcal button.today{box-shadow:inset 0 0 0 1.5px var(--acc)}
.mcal button.sel{background:var(--ink);color:#FBF8F1}
.mcal button i{position:absolute;left:50%;bottom:.45rem;width:.5rem;height:.5rem;margin-left:-.25rem;border-radius:50%;background:var(--acc)}
.mcal button i.crit{background:var(--crit)}
.mcal button.sel i{background:#FBF8F1}
.sumrows{list-style:none;margin:1.2rem 0 0;padding:0}
.sumrows li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:1rem;min-height:4.4rem;border-top:1px solid var(--line);font-size:1.36rem}
.sumrows li b{font-weight:600}
.sumrows .bartr{height:.7rem;border-radius:99px;background:var(--sunk);overflow:hidden}
.sumrows .bartr i{display:block;height:100%;border-radius:99px;background:var(--acc);transition:width .5s var(--ease)}
.sumrows .crit .bartr i{background:var(--crit)}
.sumrows .wait .bartr i{background:var(--ochre)}
.sumrows .done .bartr i{background:#CFC6B6}
.board{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.6rem;min-height:0}
.lane{display:flex;flex-direction:column;min-height:0;padding:1.4rem 1.2rem 1rem;border-radius:var(--r-card);background:var(--lane);transition:box-shadow .3s var(--ease),background .3s var(--ease)}
.lane.drop{background:#E6DECF;box-shadow:inset 0 0 0 2px rgb(var(--acc-rgb) / .35)}
.lane-h{display:flex;align-items:center;gap:.9rem;padding:0 .6rem 1.1rem}
.lane-h h3{font-size:1.5rem;font-weight:600}
.lane-h em{font-style:normal;font-size:1.4rem;font-weight:500;color:var(--ink-3)}
.lane-h .mk{width:.8rem;height:.8rem;border-radius:50%;background:var(--ink-4)}
.lane[data-st="wait"] .lane-h .mk{background:var(--ochre)}
.lane[data-st="work"] .lane-h .mk{background:var(--acc)}
.lane[data-st="review"] .lane-h .mk{background:var(--ochre)}
.lane[data-st="done"] .lane-h .mk{background:var(--ok)}
.lane-b{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.8rem;padding:.2rem .2rem 1rem;scrollbar-width:thin;scrollbar-color:#D3C9B7 transparent}
.tk{position:relative;flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:1rem;row-gap:.25rem;padding:1.15rem 1.3rem;border-radius:var(--r-in);background:var(--card);box-shadow:var(--sh-s);cursor:grab;touch-action:none;user-select:none;
  transition:box-shadow .3s var(--ease),transform .3s var(--ease),opacity .3s var(--ease)}
.tk:hover,.tk[data-ph-hover]{box-shadow:var(--sh-h);transform:translateY(-1px)}
.tk b{min-width:0;font-size:1.38rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk small{grid-column:1}
.tk .av{width:2.6rem;height:2.6rem;font-size:1.05rem;grid-row:span 2}
.tk small{min-width:0;font-size:1.25rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk small.crit{color:var(--crit);font-weight:600}
.tk small.wait{color:var(--ochre-t);font-weight:600}
.tk.done-c{background:#FBF8F1}
.tk.done-c b{color:var(--ink-3)}
.tk.drag-src{opacity:.3}
.tk.ghost{position:absolute;z-index:90;pointer-events:none;transform:rotate(1.2deg) scale(1.02);box-shadow:var(--sh-pop);cursor:grabbing}
.tk.landed{animation:landed .9s var(--ease)}
@keyframes landed{0%{transform:scale(.97);box-shadow:0 0 0 0 rgb(var(--acc-rgb) / .45)}50%{box-shadow:0 0 0 .5rem rgb(var(--acc-rgb) / 0),var(--sh-s)}}

/* ---------- Årsafslutning ---------- */
.v-aar{grid-template-rows:auto auto minmax(0,1fr);gap:1.6rem}
.phases{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem;padding:1.6rem 1.8rem}
.ph{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.2rem 1.3rem 1.2rem;border:0;border-radius:var(--r-in);background:var(--sunk-2);text-align:left;transition:background .3s var(--ease),box-shadow .3s var(--ease)}
.ph:hover,.ph[data-ph-hover]{background:var(--sunk)}
.ph.on{background:rgb(var(--acc-rgb) / .08);box-shadow:inset 0 0 0 1.5px rgb(var(--acc-rgb) / .4)}
.ph .pn{font-size:1.32rem;font-weight:600;color:var(--ink-2)}
.ph .pc{font-size:2.8rem;font-weight:500;line-height:1}
.ph .ptr{align-self:stretch;height:.6rem;border-radius:99px;background:var(--sunk);overflow:hidden}
.ph .ptr i{display:block;height:100%;border-radius:99px;background:var(--acc);transition:width .5s var(--ease)}
.ph .ptr i.crit{background:var(--crit)}
.ph::after{content:"";position:absolute;right:-.85rem;top:50%;width:.7rem;height:.7rem;border-top:1.5px solid var(--ink-4);border-right:1.5px solid var(--ink-4);transform:translateY(-50%) rotate(45deg)}
.ph:last-child::after{display:none}
.v-aar col.c1{width:28%}
.v-aar col.c2{width:11%}
.v-aar col.c3{width:13%}
.v-aar col.c4{width:22%}
.v-aar col.c5{width:12%}
.v-aar col.c6{width:14%}
.stepper{display:flex;align-items:center;gap:.5rem}
.stepper i{width:1rem;height:1rem;border-radius:50%;background:#DDD4C5;flex:none;transition:background .4s var(--ease),transform .4s var(--ease)}
.stepper i.done{background:var(--acc)}
.stepper i.cur{background:var(--card);box-shadow:inset 0 0 0 2.5px var(--acc);transform:scale(1.25)}
.stepper i.cur.crit{box-shadow:inset 0 0 0 2.5px var(--crit)}
.stepper span{margin-left:.6rem;font-size:1.3rem;color:var(--ink-2)}

/* ---------- Tid og fakturering ---------- */
.v-tid{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(0,1.75fr) minmax(0,1fr);gap:1.6rem 1.8rem}
.v-tid .wtab{grid-column:span 7;grid-row:1/3;display:grid;grid-template-rows:auto minmax(0,1fr)}
.v-tid .inv{grid-column:span 5;grid-row:2}
.v-tid .debc{grid-column:span 5}
.v-tid col.c2{width:9%}
.v-tid col.c3{width:17%}
.v-tid col.c4{width:13%}
.v-tid col.c5{width:16%}
.v-tid .tbl th,.v-tid .tbl td{padding:0 1.2rem}
.wtab .whead{display:flex;align-items:center;gap:1.1rem;padding:1.5rem 1.4rem 1.2rem}
.wtab .whead .c-ctx b{color:var(--ink);font-weight:600}
.tbl tr.out td{transition:opacity .45s var(--ease);opacity:0}
.inv{padding:2rem 2.4rem 2rem}
.paper{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:1.2rem;padding:1.6rem 1.8rem 1.4rem;border-radius:var(--r-in);background:#FFFFFF;box-shadow:inset 0 0 0 1px var(--line)}
.inv-top{display:flex;justify-content:space-between;gap:1.6rem;font-size:1.25rem;color:var(--ink-2);line-height:1.45;white-space:nowrap}
.inv-top b{display:block;font-size:1.5rem;font-weight:600;color:var(--ink)}
.inv-top .r{text-align:right}
.inv-lines{flex:1;min-height:0;overflow:auto;margin-top:1.2rem;scrollbar-width:none}
.inv-lines .ln{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:1rem;padding:.7rem 0;border-top:1px solid var(--line);font-size:1.32rem}
.inv-lines .ln span{min-width:0}
.inv-lines .ln small{display:block;color:var(--ink-3);font-size:1.22rem}
.inv-lines .ln b{font-weight:500;text-align:right}
.inv-lines .ln.enter{animation:lnIn .45s var(--ease) backwards}
@keyframes lnIn{from{opacity:0;transform:translateY(.5rem)}}
.inv-tot{display:grid;grid-template-columns:minmax(0,1fr) auto;row-gap:.35rem;padding-top:.9rem;border-top:1px solid var(--line-2);font-size:1.32rem;color:var(--ink-2)}
.inv-tot b{text-align:right;font-weight:500;color:var(--ink)}
.inv-tot .tot{font-size:1.7rem;color:var(--ink);font-weight:600;padding-top:.2rem}
.inv-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.3rem}
.inv-foot .shield{margin:0;font-size:1.26rem}
.inv-empty{flex:1;display:grid;place-items:center;text-align:center;color:var(--ink-3)}
.debc{padding:2rem 2.4rem 1.8rem}
.v-tid.deb{grid-template-rows:auto auto minmax(0,1fr)}
.v-tid:not(.reg):not(.deb){grid-template-rows:auto minmax(0,1fr)}
.v-tid:not(.reg):not(.deb) .wtab{grid-row:2}
.v-tid.deb .debt{grid-column:1 / span 8;grid-row:2 / span 2;align-self:start}
.v-tid.deb .debs{grid-column:9 / span 4;grid-row:2;align-self:start}
.dtab{list-style:none;margin:1rem 0 0;padding:0}
.dtab li{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto 13rem;align-items:center;column-gap:1.6rem;min-height:6rem;border-top:1px solid var(--line)}
.dtab li .amt{font-weight:600;text-align:right;white-space:nowrap}
.dtab li > .btn,.dtab li > .st{justify-self:end}
.debs .aging{margin-top:.4rem}
.debn{margin-top:1.6rem;font-size:1.28rem}
.debc .dlist{margin-top:.6rem;padding-top:.4rem;flex:1;min-height:0;overflow:hidden}
.debc .dlist li{grid-template-columns:minmax(0,1fr) auto auto auto;min-height:4.8rem}
.debc .dlist li em{font-style:normal;font-size:1.24rem;font-weight:600;color:var(--crit)}
.debc .dlist li.dunned em{color:var(--acc)}
.debc .dlist li span small{color:var(--ink-3);font-weight:500}

/* ---------- Bilag ---------- */
.v-bi{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto minmax(0,1fr);gap:1.6rem 1.8rem}
.v-bi > .bar{grid-column:1/-1}
.inbox{grid-column:span 5;padding:1.2rem 1rem 1rem}
.inbox .ilist{overflow:auto;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:#D9D0C0 transparent}
.prev{grid-column:span 4;padding:2rem 2.2rem}
.prev .doc{margin-top:1.2rem;flex:1;min-height:0}
.prev .doc .dtot{margin-top:auto}
.prev .read{margin-top:0}
.match{grid-column:span 3;padding:2rem 2.2rem}
.read{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 2rem;margin-top:auto;padding-top:1.4rem}
.read > div{min-width:0}
.read .lb{font-size:1.24rem;color:var(--ink-3)}
.read p{font-size:1.38rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.read p.big2{font-size:2rem;font-weight:500;line-height:1.15}
.match .mrow{margin-top:1.5rem}
.match .lb{display:block;margin-bottom:.5rem;font-size:1.26rem;color:var(--ink-3)}
.match .mbox{display:flex;align-items:center;gap:1.1rem;padding:1.1rem 1.2rem;border-radius:var(--r-in);background:var(--sunk-2);box-shadow:inset 0 0 0 1px var(--line)}
.match .mbox .two b{font-size:1.36rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conf{display:flex;align-items:center;gap:1rem;margin-top:.8rem;font-size:1.28rem;color:var(--ink-2)}
.conf .tr{flex:1;height:.6rem;border-radius:99px;background:var(--sunk);overflow:hidden}
.conf .tr i{display:block;height:100%;border-radius:99px;background:var(--ok)}
.conf.low .tr i{background:var(--ochre)}
.conf b{font-weight:600}
.match .acts{display:flex;flex-direction:column;gap:.8rem;margin-top:auto;padding-top:1.6rem}
.match .acts .btn{width:100%}
.match .why{margin-top:.7rem;font-size:1.28rem;color:var(--ink-3)}
.match .done-box{margin-top:1.4rem;padding:1.3rem 1.4rem;border-radius:var(--r-in);background:rgb(var(--ok-rgb) / .08);color:var(--ok);font-weight:600;font-size:1.32rem;display:flex;align-items:center;gap:.8rem}

/* ---------- Kapacitet ---------- */
.v-kap{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto minmax(0,1fr);gap:1.6rem 1.8rem}
.v-kap > .bar{grid-column:1/-1}
.team{grid-column:span 8;padding:1.8rem 2.2rem 1.6rem}
.kside{grid-column:span 4;display:flex;flex-direction:column;gap:1.6rem;min-height:0}
.kside .card{flex:none}
.kside .card.grow{flex:1}
.trows{list-style:none;margin:1rem 0 0;padding:0;flex:1;min-height:0;display:flex;flex-direction:column;justify-content:space-between}
.trows li{display:grid;grid-template-columns:3.6rem minmax(0,13rem) minmax(0,1fr) 9.4rem;align-items:center;column-gap:1.4rem;min-height:5.4rem;border-top:1px solid var(--line);cursor:default}
.trows li:hover,.trows li[data-ph-hover]{background:var(--sunk-2);border-radius:10px}
.trows .two b{font-size:1.38rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trows .two small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb{position:relative;height:1.4rem;border-radius:99px;background:var(--sunk)}
.hb .f{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:rgb(var(--acc-rgb) / .28);transition:width .5s var(--ease)}
.hb .f.bill{background:var(--acc)}
.hb .f.over{background:rgb(var(--ochre-rgb) / .45)}
.hb .nm{position:absolute;top:-.5rem;bottom:-.5rem;width:2px;margin-left:-1px;border-radius:2px;background:var(--ink);transition:left .5s var(--ease)}
.trows .val{text-align:right;font-size:1.42rem;font-weight:500;white-space:nowrap}
.trows .val small{display:block;font-size:1.2rem;color:var(--ink-3);font-weight:400}
.trows .val.over{color:var(--ochre-t)}
.legend2{display:flex;align-items:center;gap:1.6rem;font-size:1.26rem;color:var(--ink-3)}
.legend2 span{display:inline-flex;align-items:center;gap:.6rem}
.legend2 i{display:inline-block;width:1.4rem;height:.8rem;border-radius:99px;background:rgb(var(--acc-rgb) / .28)}
.legend2 i.bill{background:var(--acc)}
.legend2 i.nm{width:2px;height:1.4rem;border-radius:2px;background:var(--ink)}
.ua{list-style:none;margin:1rem 0 0;padding:0}
.ua li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:1rem;min-height:6rem;border-top:1px solid var(--line)}
.ua li .two b{font-size:1.36rem;font-weight:600}
.ua li.done-a .two small{color:var(--ok);font-weight:600}
.free{list-style:none;margin:1rem 0 0;padding:0}
.free li{display:grid;grid-template-columns:3.2rem minmax(0,1fr) auto;align-items:center;column-gap:1rem;min-height:4.6rem;border-top:1px solid var(--line);font-size:1.36rem}
.free li .av{width:3rem;height:3rem;font-size:1.05rem}
.free li b{font-weight:600}
.free li em{font-style:normal;color:var(--ink-3)}

/* ---------- Klientportal ---------- */
.v-por{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto minmax(0,1fr);gap:1.6rem 1.8rem}
.por-req{grid-column:1 / span 8;grid-row:1}
.por-sign{grid-column:1 / span 8;grid-row:2;align-self:start}
.por-prev{grid-column:9 / span 4;grid-row:1 / span 2;padding-bottom:1.6rem}
.por-prev .por-phone{flex:1;min-height:0;display:flex;justify-content:center;margin-top:1.2rem}
.por-prev .phone{width:30rem;height:100%;max-height:62rem}
.preq{list-style:none;margin:1rem 0 0;padding:0}
.preq li{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.1fr) auto;align-items:center;column-gap:1.4rem;min-height:5.8rem;padding:.4rem .8rem;border-radius:12px;cursor:pointer;transition:background .25s var(--ease)}

.preq li:hover,.preq li[data-ph-hover]{background:var(--sunk-2)}
.preq li.sel{background:rgb(var(--acc-rgb) / .07);box-shadow:none}

.preq .two b{font-size:1.34rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.preq .two small,.preq .cl small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.por-list{grid-column:span 4;align-self:start}
.por-phone{grid-column:span 4;display:flex;align-items:center;justify-content:center;min-height:0}
.por-log{grid-column:span 4;align-self:start}
.plist{list-style:none;margin:1rem 0 0;padding:0}
.plist li{display:grid;grid-template-columns:3.4rem minmax(0,1fr) auto;align-items:center;column-gap:1.1rem;min-height:5.6rem;padding:.4rem .6rem;border-radius:12px;cursor:pointer;transition:background .25s var(--ease)}

.plist li:hover,.plist li[data-ph-hover]{background:var(--sunk-2)}
.plist li.sel{background:rgb(var(--acc-rgb) / .07);box-shadow:none}

.plist .two b{font-size:1.36rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plist .two small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.phone{position:relative;width:34rem;height:100%;max-height:72rem;padding:1.1rem;border-radius:4.6rem;background:#1E2430;box-shadow:var(--sh-pop)}
.phone::before{content:"";position:absolute;top:1.9rem;left:50%;width:9rem;height:2.4rem;margin-left:-4.5rem;border-radius:99px;background:#1E2430;z-index:2}
.screen{height:100%;display:flex;flex-direction:column;border-radius:3.6rem;background:#FBF8F2;overflow:hidden}
.ps-h{display:flex;align-items:center;gap:.9rem;padding:5.2rem 1.8rem 1.2rem;background:var(--card);box-shadow:inset 0 -1px 0 var(--line)}
.ps-h .mono{width:3.2rem;height:3.2rem}
.ps-h b{font-size:1.36rem;font-weight:600;display:block}
.ps-h small{font-size:1.18rem;color:var(--ink-3);display:block}
.ps-b{flex:1;min-height:0;overflow:auto;padding:1.4rem 1.4rem 1.6rem;display:flex;flex-direction:column;gap:1.2rem;scrollbar-width:none}
.ps-hi{font-size:1.9rem;font-weight:600;line-height:1.2;padding:0 .4rem}
.ps-card{padding:1.3rem 1.4rem;border-radius:16px;background:var(--card);box-shadow:var(--sh-s)}
.ps-card h4{margin:0;font-size:1.42rem;font-weight:600;line-height:1.3}
.ps-card p{margin-top:.3rem;font-size:1.24rem;color:var(--ink-3)}
.ps-items{list-style:none;margin:1rem 0 0;padding:0}
.ps-items li{display:grid;grid-template-columns:2.2rem minmax(0,1fr) auto;align-items:center;column-gap:.8rem;min-height:4.6rem;border-top:1px solid var(--line);font-size:1.3rem}
.ps-items li .ck{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--ink-4);color:#fff}
.ps-items li .ck svg.i{width:1.3rem;height:1.3rem;stroke-width:2.4;opacity:0}
.ps-items li.up .ck{background:var(--ok);box-shadow:none}
.ps-items li.up .ck svg.i{opacity:1}
.ps-items li.up span{color:var(--ink-3)}
.ps-items .btn{height:3rem;padding:0 1.1rem;font-size:1.2rem}
.ps-items .okt{font-size:1.2rem;font-weight:600;color:var(--ok)}
.ps-msg{padding:1.2rem 1.3rem;border-radius:16px 16px 16px 4px;background:rgb(var(--acc-rgb) / .08);font-size:1.28rem;line-height:1.45}
.ps-msg small{display:block;margin-top:.4rem;color:var(--ink-3);font-size:1.15rem}
.ps-done{padding:1.4rem;border-radius:16px;background:rgb(var(--ok-rgb) / .1);color:var(--ok);font-weight:600;font-size:1.36rem;text-align:center}
.plog{list-style:none;margin:1rem 0 0;padding:0}
.plog li{display:grid;grid-template-columns:1.2rem minmax(0,1fr) auto;align-items:center;column-gap:1rem;min-height:4.8rem;border-top:1px solid var(--line);font-size:1.34rem}
.plog li i{width:.8rem;height:.8rem;border-radius:50%;background:var(--ink-4)}
.plog li.up i{background:var(--ok)}
.plog li.fresh{animation:lnIn .5s var(--ease) backwards}
.plog li small{font-size:1.22rem;color:var(--ink-3);white-space:nowrap}

/* ---------- Beskeder ---------- */
.v-msg{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:1.6rem 1.8rem}
.threads{grid-column:span 4;padding:1.2rem 1rem;align-self:start}
.thr{list-style:none;margin:0;padding:0;overflow:auto;flex:1;min-height:0}
.thr li{display:grid;grid-template-columns:3.6rem minmax(0,1fr) auto;align-items:center;column-gap:1.1rem;min-height:7rem;padding:.6rem 1rem;border-radius:12px;cursor:pointer;transition:background .25s var(--ease)}

.thr li:hover,.thr li[data-ph-hover]{background:var(--sunk-2)}
.thr li.sel{background:rgb(var(--acc-rgb) / .07);box-shadow:none}

.thr .two b{font-size:1.38rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thr .two small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thr .rt{text-align:right;font-size:1.22rem;color:var(--ink-3);white-space:nowrap}
.thr .rt i{display:block;width:.8rem;height:.8rem;margin:.6rem 0 0 auto;border-radius:50%;background:var(--crit)}
.conv{grid-column:span 8;padding:1.8rem 2.2rem 1.8rem}
.msgs{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:1rem;margin-top:1.2rem;padding:.4rem .2rem;scrollbar-width:thin;scrollbar-color:#D9D0C0 transparent}
.msg{max-width:72%;padding:1.1rem 1.4rem;border-radius:16px;font-size:1.36rem;line-height:1.5;background:var(--sunk-2);box-shadow:inset 0 0 0 1px var(--line)}
.msg small{display:block;margin-top:.4rem;font-size:1.18rem;color:var(--ink-3)}
.msg.out{align-self:flex-end;background:rgb(var(--acc-rgb) / .09);box-shadow:none}
.msg.fresh{animation:lnIn .45s var(--ease) backwards}
.suggest{display:flex;align-items:center;gap:1rem;margin-top:1.2rem;padding:1rem 1.2rem;border-radius:var(--r-in);background:var(--sunk-2);box-shadow:inset 0 0 0 1px var(--line);font-size:1.3rem;color:var(--ink-2)}
.suggest svg.i{color:var(--acc)}
.suggest span{flex:1;min-width:0}
.composer{display:flex;align-items:flex-end;gap:1rem;margin-top:1rem}
.composer textarea{flex:1;min-height:6.2rem;max-height:12rem;padding:1.1rem 1.3rem;border:0;border-radius:var(--r-in);background:var(--sunk-2);box-shadow:inset 0 0 0 1px var(--line);resize:none;font-size:1.36rem;line-height:1.45;outline:none}
.composer textarea:focus{box-shadow:inset 0 0 0 1.5px rgb(var(--acc-rgb) / .5)}

/* ---------- Skuffe (klientkort) ---------- */
.scrim{position:absolute;inset:0;z-index:40;background:rgba(30,36,48,.16);opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:absolute;top:1.6rem;right:1.6rem;bottom:1.6rem;z-index:50;width:58rem;max-width:calc(100% - 3.2rem);display:flex;flex-direction:column;padding:2.4rem 2.8rem 0;border-radius:22px;background:var(--card);box-shadow:var(--sh-pop);
  transform:translateX(calc(100% + 3rem));visibility:hidden;transition:transform .55s var(--ease),visibility 0s linear .55s}
.drawer.open{transform:none;visibility:visible;transition:transform .55s var(--ease),visibility 0s}
.drawer:focus{outline:none}
.dr-h{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:1.4rem;align-items:center}
.dr-h .av.sq{width:5rem;height:5rem;border-radius:14px;font-size:1.6rem}
.dr-h h2{font-family:var(--head);font-size:2.2rem;font-weight:var(--head-w);line-height:1.15}
.dr-h p{margin-top:.3rem;font-size:1.32rem;color:var(--ink-3)}
.dr-st{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin-top:1.4rem}
.dr-acts{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem}
.tabs{margin-top:1.8rem;align-self:flex-start}
.dr-body{flex:1;min-height:0;overflow:auto;margin:1.4rem -2.8rem 0;padding:0 2.8rem 2.4rem;scrollbar-width:thin;scrollbar-color:#D9D0C0 transparent}
.dr-body .panel{animation:panelIn .4s var(--ease) backwards}
@keyframes panelIn{from{opacity:0;transform:translateY(.5rem)}}
.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 2.4rem}
.kv > div{min-width:0}
.kv .lb{display:block;margin-bottom:.3rem;font-size:1.25rem;color:var(--ink-3)}
.kv p{font-size:1.4rem;color:var(--ink);overflow-wrap:anywhere}
.kv p small{display:block;color:var(--ink-3);font-size:1.25rem}
.sec-h{margin:2.4rem 0 .8rem;font-size:1.5rem;font-weight:600}
.rows{list-style:none;margin:0;padding:0}
.rows li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:1.2rem;min-height:5.4rem;padding:.5rem 0;border-top:1px solid var(--line)}
.rows li .two b{font-size:1.38rem;font-weight:600}
.notes{list-style:none;margin:0;padding:0}
.notes li{display:grid;grid-template-columns:3.4rem minmax(0,1fr);column-gap:1.2rem;padding:1.3rem 0;border-top:1px solid var(--line)}
.notes li p{font-size:1.4rem;line-height:1.5}
.notes li small{display:block;margin-top:.4rem;font-size:1.22rem;color:var(--ink-3)}
.notes li.fresh{animation:lnIn .5s var(--ease) backwards}
.note-new{display:flex;flex-direction:column;gap:.8rem;margin-top:1rem}
.note-new textarea{width:100%;min-height:8rem;padding:1.2rem 1.4rem;border:0;border-radius:var(--r-in);background:var(--sunk-2);box-shadow:inset 0 0 0 1px var(--line);resize:none;font-size:1.4rem;line-height:1.5;outline:none}
.note-new textarea:focus{box-shadow:inset 0 0 0 1.5px rgb(var(--acc-rgb) / .5)}
.note-new .btn{align-self:flex-end}

/* ---------- Ark: Bed om bilag ---------- */
.modal-layer{position:absolute;inset:0;z-index:70;display:grid;place-items:center;padding:2.4rem;background:rgba(30,36,48,.24);opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}
.modal-layer.on{opacity:1;pointer-events:auto}
.sheet{width:58rem;max-width:100%;max-height:100%;display:flex;flex-direction:column;padding:2.4rem 2.8rem 2.2rem;border-radius:22px;background:var(--card);box-shadow:var(--sh-pop);
  transform:translateY(1.2rem) scale(.985);transition:transform .45s var(--ease)}
.modal-layer.on .sheet{transform:none}
.sh-h{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:1.2rem;align-items:start}
.sh-h h2{font-family:var(--head);font-size:2.2rem;font-weight:var(--head-w);line-height:1.15}
.sh-h p{margin-top:.5rem;font-size:1.32rem;color:var(--ink-2)}
.rq{list-style:none;margin:1.6rem 0 0;padding:0;min-height:0;overflow:auto;scrollbar-width:none}
.rq li{display:grid;grid-template-columns:2.4rem minmax(0,1fr) auto;align-items:center;column-gap:1.2rem;min-height:5.2rem;padding:.4rem 1rem;border-radius:12px;cursor:pointer;transition:background .25s var(--ease)}

.rq li:hover,.rq li[data-ph-hover]{background:var(--sunk-2)}
.rq li.cur{background:rgb(var(--acc-rgb) / .07);box-shadow:none}

.ck{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:7px;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--ink-4);color:#fff;transition:background .2s var(--ease),box-shadow .2s var(--ease)}
.ck svg.i{width:1.5rem;height:1.5rem;stroke-width:2.4;opacity:0}
.on > .ck{background:var(--acc);box-shadow:none}
.on > .ck svg.i{opacity:1}
.rq .two b{font-size:1.36rem;font-weight:600}
.rq .two small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rq .rt{text-align:right;font-size:1.22rem;color:var(--ink-3);white-space:nowrap}
.rq .rt b{display:block;font-size:1.3rem;color:var(--ink)}
.rq li.risk .rt b{color:var(--crit)}
.rq li.ok-sent .rt{color:var(--ok);font-weight:600}
.mail{flex:none;margin-top:1.3rem;padding:1.3rem 1.6rem;border-radius:var(--r-in);background:var(--sunk-2);box-shadow:inset 0 0 0 1px var(--line);font-size:1.32rem;line-height:1.45;color:var(--ink-2)}
.mail .mh{display:flex;justify-content:space-between;gap:1rem;font-size:1.22rem;color:var(--ink-3);margin-bottom:.6rem}
.mail .mh b{color:var(--ink);font-weight:600}
.mail p + p,.mail ul + p{margin-top:.5rem}
.mail ul{margin:.3rem 0;padding-left:2rem}
.mail li{color:var(--ink)}
.mail.swap{animation:lnIn .35s var(--ease)}
.sh-f{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;margin-top:1.6rem}
.sh-f .shield{margin:0}
.sh-f .bt{display:flex;gap:.8rem}

/* ---------- Søgning (⌘K) ---------- */
.pal{position:absolute;inset:0;z-index:60;display:grid;justify-items:center;align-items:start;padding-top:10rem;background:rgba(30,36,48,.18);opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}
.pal.open{opacity:1;pointer-events:auto}
.pal-box{width:62rem;max-width:calc(100% - 2.4rem);padding:1.2rem;border-radius:22px;background:var(--card);box-shadow:var(--sh-pop);transform:translateY(-.8rem);transition:transform .4s var(--ease)}
.pal.open .pal-box{transform:none}
.pal-in{display:flex;align-items:center;gap:1rem;height:5.4rem;padding:0 1.2rem 0 1.8rem;border-radius:99px;background:var(--sunk-2);box-shadow:inset 0 0 0 1px var(--line)}
.pal-in svg.i{color:var(--acc)}
.pal-in input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:1.6rem;color:var(--ink)}
.pal-in input::placeholder{color:var(--ink-3)}
.pal-list{list-style:none;margin:.8rem 0 0;padding:0;max-height:46rem;overflow:auto;scrollbar-width:none}
.pal-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.2rem;min-height:5.6rem;padding:.6rem 1.4rem .6rem .8rem;border-radius:16px;cursor:pointer;transition:background .25s var(--ease)}
.pal-list li.sel,.pal-list li:hover,.pal-list li[data-ph-hover]{background:rgb(var(--acc-rgb) / .08)}
.pal-list li b{display:block;font-weight:600;font-size:1.4rem}
.pal-list li small{display:block;font-size:1.25rem;color:var(--ink-3)}
.pal-list li .rt{text-align:right;font-size:1.25rem;color:var(--ink-2)}
.pal-list .pal-empty{display:block;padding:2rem;text-align:center;color:var(--ink-3);cursor:default}
.pal-foot{display:flex;gap:1.8rem;padding:1.1rem 1.4rem .4rem;font-size:1.24rem;color:var(--ink-3)}

/* ---------- Toasts ---------- */
.toasts{position:absolute;z-index:80;right:2.4rem;bottom:2.4rem;display:flex;flex-direction:column;align-items:flex-end;gap:1rem;pointer-events:none}
.toast{display:flex;align-items:center;gap:1.3rem;width:44rem;max-width:calc(100vw - 3rem);padding:1.3rem 1.8rem 1.3rem 1.3rem;border-radius:18px;background:var(--card);box-shadow:var(--sh-pop);pointer-events:auto;animation:toastIn .5s var(--ease) backwards}
.toast.out{transition:opacity .4s var(--ease),transform .4s var(--ease);opacity:0;transform:translateY(1rem)}
@keyframes toastIn{from{opacity:0;transform:translateY(1.4rem)}}
.toast .ti{display:grid;place-items:center;width:3.8rem;height:3.8rem;border-radius:50%;flex:none;color:var(--ok);background:rgb(var(--ok-rgb) / .12)}
.toast .ti svg.i{width:1.9rem;height:1.9rem;stroke-width:2}
.toast.info .ti{color:var(--acc);background:rgb(var(--acc-rgb) / .1)}
.toast div{min-width:0;flex:1}
.toast b{display:block;font-size:1.38rem;font-weight:600}
.toast span{display:block;font-size:1.28rem;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toast time{align-self:flex-start;font-size:1.2rem;font-weight:600;color:var(--ink-3);white-space:nowrap}

/* ---------- Bevægelse ---------- */
.pre .side,.pre .top,.pre .view.on > *{opacity:0}
.view .in{animation:cardIn .6s var(--ease) backwards;animation-delay:var(--delay,0s)}
.side.in,.top.in{animation:fadeIn .5s var(--ease) backwards}
@keyframes cardIn{from{opacity:0;transform:translateY(1.4rem)}}
@keyframes fadeIn{from{opacity:0}}
.ping{animation:ping .9s var(--ease)}
@keyframes ping{0%{box-shadow:0 0 0 0 rgb(var(--acc-rgb) / .35),var(--sh)}100%{box-shadow:0 0 0 1.2rem rgb(var(--acc-rgb) / 0),var(--sh)}}
.bump{animation:bump .7s var(--ease)}
@keyframes bump{30%{color:var(--ok)}}


/* ---------- Formularer, timeregistrering og gennemsyn ---------- */
.selbox{position:relative;display:flex;align-items:center;gap:1rem;height:4.6rem;padding:0 1.2rem;border-radius:var(--r-in);background:var(--sunk-2);box-shadow:inset 0 0 0 1px var(--line)}
.selbox .av{width:3rem;height:3rem;font-size:1.1rem}
.selbox select{flex:1;min-width:0;height:100%;border:0;background:transparent;font-size:1.36rem;font-weight:500;color:var(--ink);outline:none;cursor:pointer}
.selbox:focus-within{box-shadow:inset 0 0 0 1.5px rgb(var(--acc-rgb) / .5)}
.v-tid.reg{grid-template-rows:auto minmax(0,1fr)}
.v-tid.reg > .bar{grid-column:1/-1}
.v-tid > .bar{grid-column:1/-1}

.regf{grid-column:span 5}
.regw{grid-column:span 7}
.form{display:flex;flex-direction:column;gap:1.3rem;margin-top:1.6rem}
.fl{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.fl .lb{font-size:1.26rem;color:var(--ink-3)}
.frow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.2rem}
.numbox{display:flex;align-items:center;gap:.6rem;height:4.6rem;padding:0 .7rem;border-radius:var(--r-in);background:var(--sunk-2);box-shadow:inset 0 0 0 1px var(--line)}
.numbox input{flex:1;min-width:0;border:0;background:none;text-align:center;font-size:1.6rem;font-weight:500;outline:none}
.numbox .iconbtn{width:3.2rem;height:3.2rem;font-size:1.8rem;background:var(--card)}
.inp{height:4.6rem;padding:0 1.3rem;border:0;border-radius:var(--r-in);background:var(--sunk-2);box-shadow:inset 0 0 0 1px var(--line);font-size:1.38rem;outline:none;min-width:0}
.inp:focus{box-shadow:inset 0 0 0 1.5px rgb(var(--acc-rgb) / .5)}
.tg{position:relative;display:flex;align-items:center;gap:1rem;font-size:1.36rem;cursor:pointer}
.tg input{position:absolute;opacity:0;width:1px;height:1px}
.tg .tr{position:relative;flex:none;width:4.2rem;height:2.4rem;border-radius:99px;background:#D6CDBD;transition:background .3s var(--ease)}
.tg .tr::after{content:"";position:absolute;left:.3rem;top:.3rem;width:1.8rem;height:1.8rem;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .3s var(--ease)}
.tg input:checked + .tr{background:var(--acc)}
.tg input:checked + .tr::after{transform:translateX(1.8rem)}
.tg input:focus-visible + .tr{outline:2px solid var(--acc);outline-offset:2px}
.wk{flex:1;min-height:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin-top:1.4rem}
.wkd{display:flex;flex-direction:column;gap:.7rem;min-width:0;min-height:0;padding:1.1rem;border-radius:var(--r-in);background:var(--sunk-2);overflow:auto;scrollbar-width:none}
.wkd.today{box-shadow:inset 0 0 0 1.5px rgb(var(--acc-rgb) / .4)}
.wkh{display:flex;justify-content:space-between;gap:.6rem;font-size:1.3rem}
.wkh b{font-weight:600}
.wkh em{font-style:normal;color:var(--ink-3)}
.ent{display:flex;flex-direction:column;gap:.1rem;padding:.8rem 1rem;border-radius:10px;background:var(--card);box-shadow:var(--sh-s);font-size:1.25rem;border-left:3px solid #CFC6B6}
.ent.bill{border-left-color:var(--acc)}
.ent b{font-weight:600;font-size:1.3rem}
.ent span{color:var(--ink-2)}
.ent em{font-style:normal;color:var(--ink-3)}
.ent.fresh{animation:lnIn .5s var(--ease) backwards}
.wke{font-size:1.24rem;color:var(--ink-3)}
.wkfoot{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.4rem;margin-top:1.4rem;font-size:1.3rem}
.wkfoot .lb{color:var(--ink-3)}
.wkfoot .hb .f{width:auto}
.seg.wrap{flex-wrap:wrap}
.ag-day.cur b{color:var(--acc)}
.mail.rv{display:flex;flex-direction:column}
.mail.rv textarea{min-height:17rem;margin-top:.4rem;padding:1.1rem 1.3rem;border:0;border-radius:10px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);font-size:1.4rem;line-height:1.55;color:var(--ink);resize:vertical;outline:none}
.mail.rv textarea:focus{box-shadow:inset 0 0 0 1.5px rgb(var(--acc-rgb) / .5)}
.trows li.hi{background:rgb(var(--acc-rgb) / .07);border-radius:10px}
.risk .miss svg{color:var(--ok)}

/* ---------- Mellemtrin 761-1180 px: omfordeling i stedet for skalering ---------- */
@media (min-width:761px) and (max-width:1180px){
/* Gælder ikke i demo-rammen (9:16 er 1080 px bred): */ :root:not(.ph-frame){
  #app{grid-template-columns:7.2rem minmax(0,1fr)}
  .side{align-items:center;padding:1.8rem .8rem 1.4rem}
  .brand{padding:0}
  .brand-t,.nav span,.me-t{display:none}
  .nav-wrap{margin-top:2rem;width:100%}
  .nav{width:5.2rem;height:4.6rem;padding:0;justify-content:center;gap:0;margin:0 auto}
  .nav .cnt{position:absolute;top:.1rem;right:-.2rem;min-width:1.8rem;height:1.8rem;padding:0 .4rem;font-size:1.05rem}
  .nav-list .sep{margin:.8rem .6rem}
  .me{padding:.4rem;justify-content:center;background:none}
  .main{display:block;overflow-y:auto;overflow-x:hidden;padding:2rem 2.4rem 3rem}
  .top{flex-wrap:wrap;row-gap:.6rem}
  .whead{flex-wrap:wrap;row-gap:.2rem}
  .whead .c-ctx{flex-basis:calc(100% - 4.5rem);margin-left:4.5rem;white-space:normal}
  .v-tid .cl small{white-space:normal}
  .bar{flex-wrap:wrap;row-gap:1rem}
  .field{flex:1 1 26rem}
  .bar .hint{display:none}
  .ctx{order:3;flex-basis:100%}
  .search{width:28rem}
  .views,.view{position:static}
  .view.on{display:grid;gap:1.6rem}
  .ov{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;grid-template-areas:"hero hero" "inb ai" "wip deb"}
  .hero-top{grid-template-columns:14rem minmax(0,1fr);flex:none;height:15rem}
  .inb-doc{flex:none;height:27rem}
  .draft-wrap{flex:none;height:22rem}
  .ai,.inb,.wip,.deb{min-height:0}
  .scroll,.agenda .scroll,.inbox .ilist,.v-bi .inbox .ilist{max-height:none;overflow:visible}
  .tbl th{position:static}
  .v-kl .cl b,.v-kl .two small{white-space:normal}
  .v-kl .tbl td{height:auto;min-height:6rem;padding-top:1rem;padding-bottom:1rem}
  .draft-wrap{height:auto}
  .draft{position:static}
  .draft .tx{display:block;-webkit-line-clamp:unset;max-height:none;overflow:visible}
  .v-fo{grid-template-columns:repeat(12,minmax(0,1fr))}
  .agenda,.fo-side,.board{grid-column:1/-1}
  
  .fo-side{flex-direction:row}
  .fo-side .card{flex:1;min-width:0}
  .board{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lane-b{max-height:38rem}
  .phases{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ph:nth-child(3n)::after{display:none}
  
  .v-bi .inbox{grid-column:1/-1}
  
  .prev,.match{grid-column:span 6}
  .prev{min-height:54rem}
  .v-tid .wtab,.v-tid:not(.reg) .wtab{grid-column:1/-1;grid-row:auto}
  .v-tid .inv,.v-tid .debc{grid-column:span 6}
  .v-tid .inv .paper{min-height:28rem}
  .regf,.regw{grid-column:1/-1}
  .wk{min-height:22rem}
  .team,.kside{grid-column:1/-1}
  .kside{flex-direction:row}
  .kside .card{flex:1;min-width:0}
  .trows{display:block}
  .por-req,.por-sign{grid-column:1/-1;grid-row:auto}
  .por-prev{grid-column:1/-1;grid-row:auto}
  .por-prev .phone{height:62rem}
  .v-tid.deb .debt,.v-tid.deb .debs{grid-column:1/-1;grid-row:auto}
  .threads{grid-column:span 5;max-height:70rem}
  .conv{grid-column:span 7;height:70rem}
  .drawer{width:56rem}
}
}

/* Årsafslutning under 1180 px: rækkekort, så fase og handling har fuld tekst */
@media (max-width:1180px){
/* Gælder ikke i demo-rammen (9:16 er 1080 px bred): */ :root:not(.ph-frame){
  .v-aar .tbl,.v-aar .tbl tbody{display:block}
  .v-aar .tbl colgroup,.v-aar .tbl thead{display:none}
  .v-aar .tbl tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"k a" "s s" "f r";align-items:center;column-gap:1.4rem;row-gap:.8rem;padding:1.3rem 1.2rem;border-bottom:1px solid var(--line)}
  .v-aar .tbl tbody tr:last-child{border-bottom:0}
  .v-aar .tbl td{display:block;height:auto;padding:0;border:0;overflow:visible;white-space:normal}
  .v-aar .tbl td:nth-child(1){grid-area:k}
  .v-aar .tbl td:nth-child(2){display:none}
  .v-aar .tbl td:nth-child(3){grid-area:f}
  .v-aar .tbl td:nth-child(3) .two{display:flex;gap:.6rem;align-items:baseline}
  .v-aar .tbl td:nth-child(3) .two b{font-size:1.3rem}
  .v-aar .tbl td:nth-child(4){grid-area:s}
  .v-aar .tbl td:nth-child(5){grid-area:r;justify-self:end;color:var(--ink-2);font-size:1.3rem}
  .v-aar .tbl td:nth-child(6){grid-area:a;justify-self:end}
  .v-aar .tbl tbody tr.sel td:first-child{box-shadow:none}
}
}

/* Ingen tastaturmærker uden tastatur eller på smalle skærme */
@media (hover:none),(max-width:820px){
/* Samme vægt som blokken ovenfor, så rækkefølgen stadig afgør: */ :root:not(.ph-frame){
  kbd,.hint,.pal-foot{display:none !important}
}
}
/* Mere-arket og fanebarens ekstra punkter findes kun på mobil */
.more-li,.more-panel,.nav .sl{display:none}

/* ---------- Mobil: designet smal visning ---------- */
.me-mini{display:none}
@media (max-width:760px){
/* Samme vægt som blokken ovenfor, så rækkefølgen stadig afgør: */ :root:not(.ph-frame){
  #app{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}
  .main{grid-row:1}
  .side{grid-row:2;flex-direction:row;align-items:stretch;gap:0;padding:.5rem .6rem .6rem;box-shadow:inset 0 1px 0 rgba(70,52,30,.12);overflow:visible}
  .brand,.side-foot,.nav-list .sep,.nav-list li.sec{display:none}
  .nav-wrap{margin:0;flex:1;min-width:0}
  .nav-list{flex-direction:row;justify-content:space-around;gap:0}
  .nav-list li{flex:1;display:flex;justify-content:center}
  .more-li{display:flex}
  .nav{flex-direction:column;justify-content:center;gap:.35rem;width:100%;max-width:9rem;height:5.8rem;padding:.4rem 0;border-radius:14px;font-size:1.2rem;font-weight:500;text-align:center}
  .nav span{flex:none;font-size:1.2rem;line-height:1.1}
  .nav[data-view="frister"] span{display:none}
  .nav .sl{display:block;font-style:normal;font-size:1.2rem;line-height:1.1}
  .nav svg.i{width:2.2rem;height:2.2rem}
  .nav.on{box-shadow:none;background:rgb(var(--acc-rgb) / .09)}
  .nav .cnt{position:absolute;top:.2rem;left:calc(50% + 1.1rem);min-width:1.8rem;height:1.8rem;padding:0 .45rem;font-size:1.05rem}
  .more-panel{position:absolute;right:1rem;bottom:calc(100% + .8rem);z-index:90;min-width:24rem;padding:.8rem;border-radius:18px;background:var(--card);box-shadow:var(--sh-pop)}
  .side.more-open .more-panel{display:flex;flex-direction:column;gap:.2rem}
  .mp{display:flex;align-items:center;gap:1.2rem;height:4.8rem;padding:0 1.4rem;border:0;border-radius:12px;background:none;font-size:1.42rem;color:var(--ink);text-align:left}
  .mp svg.i{color:var(--ink-3)}
  .mp.on{background:rgb(var(--acc-rgb) / .09);font-weight:600}
  .mp.on svg.i{color:var(--acc)}
  .mp-demo{margin:.6rem 1.4rem .4rem;font-size:1.2rem;color:var(--ink-3)}
  .toasts{bottom:1.2rem}
  .main{display:block;padding:1.4rem 1.4rem 3rem;overflow-y:auto;overflow-x:hidden}
  .top{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"h me" "c c" "s s";gap:.6rem 1rem;margin-bottom:1.4rem}
  .top h1{grid-area:h;font-size:2.4rem}
  .me-mini{grid-area:me;display:flex;align-items:center;gap:.6rem;height:3.6rem;padding:0 1.1rem 0 .3rem;border-radius:99px;background:var(--card);box-shadow:var(--sh-s);font-size:1.2rem;color:var(--ink-2)}
  .me-mini .me-av{width:3.2rem;height:3.2rem;font-size:1.15rem}
  .ctx{grid-area:c;display:block;white-space:normal;font-size:1.32rem}
  .ctx i{display:none}
  .ctx span{display:inline}
  .ctx span:first-child{display:block}
  .ctx span + i + span:not(:nth-child(3))::before{content:"\00a0·\00a0"}
  .whead{flex-wrap:wrap;row-gap:.2rem}
  .whead .c-ctx{flex-basis:calc(100% - 4.5rem);margin-left:4.5rem;white-space:normal}
  .v-tid .cl small{white-space:normal}
  .search{grid-area:s;width:100%;margin:0;height:4.4rem}
  .search kbd{display:none}
  .views,.view{position:static}
  .view.on{display:flex;flex-direction:column;gap:1.4rem}
  .card{padding:1.8rem 1.8rem 1.8rem}
  .c-title{font-size:1.9rem}
  .c-head{flex-wrap:wrap;row-gap:.2rem}
  .c-head .c-ctx{flex-basis:calc(100% - 4.5rem);margin-left:4.5rem;white-space:normal}
  .fline{height:auto}
  .hleg{display:none}
  .hero-top{display:block;margin-top:1rem}
  .hero-kpi{margin-bottom:1.2rem}
  .big .n{font-size:5.2rem}
  .risk li{grid-template-columns:.8rem minmax(0,1fr) auto;grid-template-areas:"m w c" "m s b";row-gap:.5rem;padding:1rem .2rem}
  .risk .mk{grid-area:m;align-self:start;margin-top:.6rem}
  .risk .who{grid-area:w}
  .risk .miss{grid-area:s;font-size:1.26rem;color:var(--ink-2)}
  .risk .cdw{grid-area:c}
  .risk li > .btn,.risk li > .link{grid-area:b;justify-self:end}
  .c-foot{flex-wrap:wrap}
  .c-foot .btn{width:100%}
  .inb-doc{flex:none;height:28rem}
  .draft-wrap{flex:none;height:24rem}
  .seg{max-width:100%;overflow-x:auto;scrollbar-width:none}
  .bar{flex-wrap:wrap}
  .bar .hint{display:none}
  .field{flex:1 1 100%}
  .tcard,.agenda,.team,.threads,.conv,.inbox,.prev,.match,.por-list,.por-log,.inv,.debc{min-height:auto}
  .lane-b,.thr,.msgs{max-height:52rem}
  .scroll,.inbox .ilist{max-height:none;overflow:visible}
  .tbl th{position:static}
  .tbl td,.tbl th{padding:0 1rem}
  .v-kl .cl b,.v-kl .two small{white-space:normal}
  .v-kl .tbl td{height:auto;padding-top:1rem;padding-bottom:1rem}
  
  .phases{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ph::after{display:none}
  .board{grid-template-columns:1fr}
  .lane-b{max-height:40rem}
  .trows li{grid-template-columns:3.2rem minmax(0,1fr) 8rem;grid-template-areas:"a n v" "a b b";row-gap:.6rem;padding:.8rem 0}
  .trows li > .av{grid-area:a}
  .trows li > .two{grid-area:n}
  .trows li > .hb{grid-area:b}
  .trows li > .val{grid-area:v}
  .phone,.por-prev .phone{width:100%;max-width:32rem;height:62rem}
  .por-req,.por-sign,.por-prev{grid-column:auto;grid-row:auto}
  .preq li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"c s" "t l";row-gap:.4rem;padding:.8rem .4rem}
  .preq li > .cl{grid-area:c}
  .preq li > .two:nth-of-type(1){grid-area:t}
  .preq li > .two:nth-of-type(2){grid-area:l;text-align:right}
  .preq li > .st{grid-area:s}
  .dtab li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"c a" "d b";row-gap:.5rem;padding:.8rem 0}
  .dtab li > .cl{grid-area:c}
  .dtab li > .two{grid-area:d}
  .dtab li > .amt{grid-area:a}
  .dtab li > .btn,.dtab li > .st{grid-area:b}
  .msg{max-width:88%}
  .drawer{left:1rem;right:1rem;width:auto;max-width:none}
  .sheet{width:100%}
  .toast{width:calc(100% - 2rem)}
  .toasts{left:1rem;right:1rem;align-items:stretch}
  .kv{grid-template-columns:1fr}
  .tip{max-width:24rem}
}
}
@media (prefers-reduced-motion:reduce){
  .view .in,.side.in,.top.in,.ilist .it.new,.doc.enter,.draft.enter,.ping,.bump,.tk.landed,.ag li.flash,.msg.fresh,.plog li.fresh,.toast,.inv-lines .ln.enter,.notes li.fresh,.mail.swap,.dr-body .panel{animation:none !important}
  .aging .tr i,.hb .f,.hb .nm,.ph .ptr i,.sumrows .bartr i,.stepper i,.fline .mk circle{transition:none !important}
}

/* Adskillere mellem afrundede rækker: en lige linje, der holder sig fra hjørnerne */
.ilist .it,.preq li,.plist li,.thr li,.rq li{position:relative}
.ilist .it + .it::before,.preq li + li::before,.plist li + li::before,.thr li + li::before,.rq li + li::before{content:"";position:absolute;left:1rem;right:1rem;top:0;height:1px;background:var(--line);pointer-events:none}
.ilist .it.sel::before,.ilist .it.sel + .it::before,.preq li.sel::before,.preq li.sel + li::before,.plist li.sel::before,.plist li.sel + li::before,.thr li.sel::before,.thr li.sel + li::before,.rq li.cur::before,.rq li.cur + li::before{display:none}

/* Forhåndsvisningen kan åbnes */
.inb-doc{cursor:zoom-in;transition:box-shadow .25s var(--ease),background .25s var(--ease)}
.inb-doc:hover,.inb-doc[data-ph-hover],.inb-doc:focus-visible{background:#E9E1D3;box-shadow:inset 0 0 0 1.5px rgb(var(--acc-rgb) / .35)}
.inb-doc:hover .doc,.inb-doc[data-ph-hover] .doc{transform:translateY(-1px)}
.inb-doc .doc{transition:transform .25s var(--ease)}
#bi-prev .doc{cursor:zoom-in;transition:box-shadow .25s var(--ease)}
#bi-prev .doc:hover,#bi-prev .doc[data-ph-hover],#bi-prev .doc:focus-visible{box-shadow:0 0 0 1.5px rgb(var(--acc-rgb) / .35),0 18px 36px -20px rgba(60,40,20,.35)}

/* Bilaget i stort format */
.sheet.docv{width:64rem;max-height:100%}
.docv-body{flex:1;min-height:0;overflow:auto;margin:1.4rem -1rem 0;padding:.4rem 1rem 1rem;outline:none;scrollbar-width:thin;scrollbar-color:#D9D0C0 transparent}
.docv-body .doc{max-height:none;padding:2.4rem 2.6rem 2.2rem;font-size:1.4rem}
.docv-body .doc .dv{font-size:2rem}
.docv-body .doc .dlines{overflow:visible}
.docv-body .doc .dlines div{padding:.8rem 0}
.docv-body .doc .dtot{margin-top:1.6rem}
.docv-body .read{margin-top:1.6rem;padding-top:0}
.docv .sh-f .shield{min-width:0}
