/* KlinikFlow VIP: tema A mørkt glas (design-retning/a-glas er referencen).
   Motorkontrakt: alt UI inde i #app, ingen vw/vh, rem sættes af PH.fitRem('#app') (10 px ved 1600×1000). */
:root{
  color-scheme:dark;
  --bg:#05070d;
  --ink:#f4f6ff;
  --ink-2:rgba(228,233,255,.8);
  --ink-3:rgba(210,218,248,.62);
  --ink-4:rgba(210,218,248,.36);
  --cyan:96 226 255;
  --blue:112 146 255;
  --violet:163 143 255;
  --mint:84 240 196;
  --amber:255 184 98;
  --coral:255 132 112;
  --rose:255 125 184;
  --r-card:26px;
  --r-in:16px;
  --surf:rgba(255,255,255,.045);
  --surf-2:rgba(255,255,255,.075);
  --lift:0 1px 2px rgba(0,0,0,.25),0 10px 24px -14px rgba(0,0,0,.7);
  --ease:cubic-bezier(.22,1,.36,1);
  --ph-ripple:rgba(96,226,255,.75);
  --ph-frame-bg:#05070d;
}
*{box-sizing:border-box}
html{font-size:10px;background:var(--bg)}
body{margin:0;overflow:hidden;font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:1.4rem;line-height:1.45;color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid rgb(var(--cyan));outline-offset:3px}
svg.i{width:1.8rem;height:1.8rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sprite{position:absolute;width:0;height:0}
.mono{font-family:ui-monospace,'SF Mono','Cascadia Mono',Consolas,monospace;font-size:.92em;letter-spacing:-.01em}

/* ---------- Ramme og baggrund ---------- */
#app{position:fixed;inset:0;overflow:hidden;background:var(--bg)}
.bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;
  background:radial-gradient(120% 90% at 50% -10%,#0d1429 0%,#070a15 50%,#04060b 100%)}
.blob{position:absolute;border-radius:50%;aspect-ratio:1}
.b1{width:64%;left:-16%;top:-51%;background:radial-gradient(circle,rgba(40,110,255,.44),rgba(40,110,255,0) 64%)}
.b2{width:56%;right:-18%;top:-22%;background:radial-gradient(circle,rgba(128,96,255,.42),rgba(128,96,255,0) 64%)}
.b3{width:30%;left:40%;top:-19%;background:radial-gradient(circle,rgba(255,150,70,.2),rgba(255,150,70,0) 64%)}
.b4{width:54%;left:-14%;bottom:-58%;background:radial-gradient(circle,rgba(20,200,175,.26),rgba(20,200,175,0) 64%)}
.b5{width:50%;right:-6%;bottom:-54%;background:radial-gradient(circle,rgba(190,70,230,.22),rgba(190,70,230,0) 64%)}
.noise{position:absolute;inset:0;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

.shell{position:relative;z-index:1;display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1.6rem;height:100%;padding:1.6rem}
.main{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:1.6rem;min-width:0;min-height:0}

/* Glas: flade, dybde og en blød lyskant oppe til venstre */
.glass,.card{position:relative;isolation:isolate;border-radius:var(--r-card);
  background:linear-gradient(180deg,rgba(255,255,255,.065) 0%,rgba(255,255,255,.02) 42%,rgba(255,255,255,.012) 100%),rgba(13,18,36,.5);
  -webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 2px 6px rgba(0,0,0,.22),0 28px 56px -24px rgba(0,0,0,.75)}
.glass::before,.card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(160deg,rgba(255,255,255,.2),rgba(255,255,255,.05) 26%,rgba(255,255,255,0) 52%,rgb(var(--acc,255 255 255) / .12) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
/* 9:16-optagelse: #app transform-skaleres; bag kortene ligger kun bløde felter, så blur kan slås fra uden synlig forskel */
html.ph-frame .card,html.ph-frame .rail,html.ph-frame .search,html.ph-frame .drawer,html.ph-frame .pal-box,html.ph-frame .ba-tag,
html.ph-demo .card,html.ph-demo .rail,html.ph-demo .search,html.ph-demo .drawer,html.ph-demo .pal-box,html.ph-demo .ba-tag{-webkit-backdrop-filter:none;backdrop-filter:none}
html.ph-demo .drawer,html.ph-frame .drawer{background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.025) 40%),#0c1022}
html.ph-frame .card,html.ph-demo .card{background:linear-gradient(180deg,rgba(255,255,255,.07) 0%,rgba(255,255,255,.025) 42%,rgba(255,255,255,.015) 100%),rgba(14,19,38,.62)}

/* ---------- Venstreskinne ---------- */
.rail{--acc:var(--cyan);display:flex;flex-direction:column;align-items:center;gap:2.8rem;padding:2rem .9rem 1.6rem;border-radius:30px}
.mark{display:grid;place-items:center;width:5rem;height:5rem;border-radius:50%;flex:none;
  background:radial-gradient(circle at 30% 25%,rgb(var(--cyan) / .35),rgb(var(--violet) / .18) 70%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 0 30px -6px rgb(var(--cyan) / .7)}
.mark svg{width:2.8rem;height:2.8rem}
.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.8rem;width:100%}
.nav{position:relative;display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%;padding:1.1rem .2rem 1rem;border:0;border-radius:20px;background:none;
  color:var(--ink-3);font-size:1.1rem;font-weight:600;letter-spacing:.005em;transition:color .4s var(--ease),background .4s var(--ease)}
.nav svg.i{width:2.2rem;height:2.2rem;transition:transform .4s var(--ease)}
.nav:hover,.nav[data-ph-hover]{color:var(--ink);background:rgba(255,255,255,.05)}
.nav:hover svg.i,.nav[data-ph-hover] svg.i{transform:translateY(-1px)}
.nav.on{color:var(--ink);background:linear-gradient(180deg,rgb(var(--cyan) / .2),rgb(var(--cyan) / .06));box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 10px 30px -10px rgb(var(--cyan) / .6)}
.nav.on svg.i{color:rgb(var(--cyan));filter:drop-shadow(0 0 6px rgb(var(--cyan) / .8))}
.badge{position:absolute;top:.55rem;right:1.3rem;min-width:1.8rem;height:1.8rem;padding:0 .45rem;border-radius:99px;display:grid;place-items:center;
  font-size:1.05rem;font-weight:700;line-height:1;color:#120c2a;background:rgb(var(--violet));box-shadow:0 0 14px rgb(var(--violet) / .8)}
.badge.rose{background:rgb(var(--rose));box-shadow:0 0 14px rgb(var(--rose) / .7)}
.badge:empty{display:none}

/* ---------- Topbar ---------- */
.top{display:flex;align-items:center;gap:2rem;min-height:5.6rem;padding:0 .4rem 0 1rem}
.greet{min-width:0}
.greet h1{margin:0;font-size:2.8rem;font-weight:600;letter-spacing:-.03em;line-height:1.1;white-space:nowrap}
.greet h1 span{background:linear-gradient(90deg,#fff 0%,rgb(var(--cyan)) 65%,rgb(var(--violet)));-webkit-background-clip:text;background-clip:text;color:transparent}
.greet p{display:flex;align-items:center;gap:1rem;margin:.6rem 0 0;font-size:1.32rem;font-weight:500;color:var(--ink-3);white-space:nowrap}
.greet p i{width:.4rem;height:.4rem;border-radius:50%;background:var(--ink-4);flex:none}
.greet p b{font-weight:700;color:var(--ink-2)}
.top-r{display:flex;align-items:center;gap:1.2rem;margin-left:auto}
.search{display:flex;align-items:center;gap:1rem;width:34rem;height:4.6rem;padding:0 .7rem 0 1.6rem;border:0;border-radius:99px;
  color:var(--ink-3);font-size:1.35rem;font-weight:500;background:rgba(255,255,255,.055);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),var(--lift);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:background .4s var(--ease),box-shadow .4s var(--ease)}
.search:hover,.search[data-ph-hover]{background:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 30px -8px rgb(var(--cyan) / .55)}
.search span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
kbd{font-family:inherit;font-size:1.15rem;font-weight:600;color:var(--ink-2);padding:.4rem .9rem;border-radius:99px;background:rgba(255,255,255,.09);white-space:nowrap}
.search kbd{margin-left:auto}
.demo{display:inline-flex;align-items:center;gap:.6rem;height:3rem;padding:0 1.2rem;border-radius:99px;font-size:1.15rem;font-weight:600;color:var(--ink-3);background:rgba(255,255,255,.04);white-space:nowrap}
.demo::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:rgb(var(--amber) / .85)}
.me{display:flex;align-items:center;gap:1rem;height:4.6rem;padding:0 1.6rem 0 .5rem;border-radius:99px;background:rgba(255,255,255,.05);box-shadow:var(--lift);white-space:nowrap}
.me-av{display:grid;place-items:center;width:3.6rem;height:3.6rem;border-radius:50%;font-size:1.25rem;font-weight:700;color:#081022;
  background:linear-gradient(135deg,rgb(var(--cyan)),rgb(var(--violet)));box-shadow:0 0 0 2px #0a0e1c,0 0 0 3.5px rgb(var(--violet) / .5),0 0 18px rgb(var(--violet) / .45)}
.me b{display:block;font-size:1.3rem;font-weight:700;line-height:1.2}
.me small{display:block;font-size:1.12rem;font-weight:500;color:var(--ink-3);line-height:1.25}

/* ---------- Visninger ---------- */
.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{--acc:var(--cyan);display:flex;flex-direction:column;min-width:0;min-height:0;padding:2.5rem 2.8rem;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.card::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;
  background:radial-gradient(70% 62% at var(--gx,100%) var(--gy,0%),rgb(var(--acc) / .16),transparent 72%);opacity:.85;transition:opacity .5s var(--ease)}
.card.lift:hover{transform:translateY(-4px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 2px 6px rgba(0,0,0,.22),0 40px 70px -28px rgba(0,0,0,.85),0 0 60px -18px rgb(var(--acc) / .6)}
.card.lift:hover::after{opacity:1}
.card.ping{animation:ping 1.2s var(--ease)}
@keyframes ping{0%{box-shadow:0 0 0 0 rgb(var(--acc) / .7)}60%{box-shadow:0 0 0 8px rgb(var(--acc) / 0),0 0 70px -10px rgb(var(--acc) / .7)}100%{box-shadow:0 0 0 0 rgb(var(--acc) / 0)}}

.c-head{display:flex;align-items:center;gap:1.1rem;min-height:3.4rem;flex:none}
.c-ico{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;flex:none;color:rgb(var(--acc));
  background:radial-gradient(circle at 30% 25%,rgb(var(--acc) / .26),rgb(var(--acc) / .08));box-shadow:0 0 20px -6px rgb(var(--acc) / .7)}
.c-ico svg.i{width:1.7rem;height:1.7rem}
.c-head h2{margin:0;font-size:1.55rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;white-space:nowrap}
.c-head .r{margin-left:auto}
.meta{font-size:1.22rem;font-weight:500;color:var(--ink-3);white-space:nowrap}
.link{display:inline-flex;align-items:center;gap:.5rem;padding:0;border:0;background:none;font-size:1.28rem;font-weight:700;color:rgb(var(--acc));border-radius:99px;white-space:nowrap}
.link svg.i{width:1.5rem;height:1.5rem;transition:transform .4s var(--ease)}
.link:hover svg.i,.link[data-ph-hover] svg.i{transform:translateX(3px)}

.big{display:inline-block;font-size:6.8rem;font-weight:300;letter-spacing:-.05em;line-height:1;white-space:nowrap;
  background:linear-gradient(180deg,#fff 35%,rgb(var(--acc) / .9) 130%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 26px rgb(var(--acc) / .32))}
.big .u{font-size:.34em;font-weight:500;letter-spacing:0;margin-left:.35em;-webkit-text-fill-color:var(--ink-3)}
.mid{font-size:3.1rem;font-weight:400;letter-spacing:-.04em;line-height:1;white-space:nowrap}
.mid .u{font-size:.45em;font-weight:500;letter-spacing:0;margin-left:.3em;color:var(--ink-3)}
.delta{display:inline-flex;align-items:center;gap:.35rem;height:2.7rem;padding:0 1rem 0 .8rem;border-radius:99px;font-size:1.28rem;font-weight:700;white-space:nowrap;
  color:rgb(var(--mint));background:rgb(var(--mint) / .13)}
.delta svg.i{width:1.4rem;height:1.4rem;stroke-width:2.2}
.muted{color:var(--ink-3)}
.sub{margin:0;font-size:1.3rem;font-weight:500;color:var(--ink-3)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;height:3.6rem;padding:0 1.6rem;border:0;border-radius:99px;white-space:nowrap;
  font-size:1.3rem;font-weight:700;color:var(--ink);background:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .4s var(--ease),opacity .4s}
.btn svg.i{width:1.55rem;height:1.55rem;stroke-width:2}
.btn:hover,.btn[data-ph-hover]{background:rgba(255,255,255,.13)}
.btn:active{transform:scale(.97)}
.btn.pri{color:#0b0a18;background:linear-gradient(180deg,rgb(var(--acc)),rgb(var(--acc) / .82));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 10px 26px -10px rgb(var(--acc) / .9)}
.btn.pri:hover,.btn.pri[data-ph-hover]{box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 12px 32px -8px rgb(var(--acc))}
.btn.sm{height:3rem;padding:0 1.2rem;font-size:1.2rem}
.btn.soft{color:rgb(var(--acc));background:rgb(var(--acc) / .13);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.btn.soft:hover,.btn.soft[data-ph-hover]{background:rgb(var(--acc) / .22);box-shadow:0 0 22px -6px rgb(var(--acc) / .7)}
.btn[disabled]{opacity:.4;pointer-events:none}
.btn kbd{padding:.15rem .6rem;font-size:1.05rem;background:rgba(0,0,0,.14);color:inherit}
.btn:not(.pri) kbd{background:rgba(255,255,255,.08)}
.icon-btn{display:grid;place-items:center;width:3.6rem;height:3.6rem;border:0;border-radius:50%;background:rgba(255,255,255,.07);color:var(--ink-2);flex:none;transition:background .3s var(--ease)}
.icon-btn:hover,.icon-btn[data-ph-hover]{background:rgba(255,255,255,.14);color:var(--ink)}
.icon-btn[disabled]{opacity:.35;pointer-events:none}

.av{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;flex:none;font-size:1.12rem;font-weight:700;color:var(--ink);
  background:radial-gradient(circle at 30% 25%,rgb(var(--acc) / .45),rgb(var(--acc) / .12))}
.chip{display:inline-flex;align-items:center;gap:.6rem;height:3.2rem;padding:0 1.3rem;border:0;border-radius:99px;font-size:1.22rem;font-weight:600;white-space:nowrap;
  color:var(--ink-2);background:rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:background .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease)}
.chip b{font-weight:700;color:var(--ink)}
.chip:hover,.chip[data-ph-hover]{background:rgba(255,255,255,.09);color:var(--ink)}
.chip[aria-pressed="true"]{color:var(--ink);background:rgb(var(--acc) / .18);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 22px -8px rgb(var(--acc) / .8)}
.chip.warn b{color:rgb(var(--amber))}
.chip[disabled]{opacity:.4;pointer-events:none}
.pill{display:inline-flex;align-items:center;gap:.5rem;height:2.5rem;padding:0 1rem;border-radius:99px;font-size:1.12rem;font-weight:700;white-space:nowrap;
  color:rgb(var(--c,var(--cyan)));background:rgb(var(--c,var(--cyan)) / .13)}
.pill svg.i{width:1.3rem;height:1.3rem;stroke-width:2.1}
.pill.dot::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:currentColor}
.seg{display:inline-flex;gap:.3rem;padding:.3rem;border-radius:99px;background:rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.seg button{display:inline-flex;align-items:center;gap:.5rem;height:3rem;padding:0 1.3rem;border:0;border-radius:99px;background:none;font-size:1.22rem;font-weight:700;color:var(--ink-3);transition:background .35s var(--ease),color .35s var(--ease)}
.seg button kbd{padding:.05rem .45rem;font-size:1rem}
.seg button:hover,.seg button[data-ph-hover]{color:var(--ink)}
.seg button[aria-pressed="true"]{color:var(--ink);background:rgb(var(--acc) / .2);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.empty{display:grid;place-items:center;align-content:center;gap:.8rem;padding:3rem 2rem;text-align:center;color:var(--ink-3);font-size:1.3rem}
.empty b{display:block;color:var(--ink);font-size:1.45rem}
.empty svg.i{width:3rem;height:3rem;color:rgb(var(--acc))}
.scrollable{overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}
.scrollable::-webkit-scrollbar{width:6px}
.scrollable,.col-list{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 2.6rem),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 2.6rem),transparent);padding-bottom:2.2rem!important}
.scrollable::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:6px}

/* =========================================================================
   Overblik
   ========================================================================= */
.bento{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(0,1.36fr) minmax(0,.76fr) minmax(0,1.06fr);gap:1.6rem;
  grid-template-areas:
   "hero hero hero hero radar radar radar radar ai ai ai ai"
   "flow flow flow flow flow flow flow flow ai ai ai ai"
   "rev rev rev conv conv chan chan chan cal cal cal cal"}

/* Aktive forløb */
.hero{grid-area:hero;--acc:var(--cyan);--gx:0%;--gy:0%;overflow:hidden}
.hero-kpi{display:flex;flex-direction:column;gap:1.3rem;margin-top:2rem;flex:none}
.hero-kpi .drow{display:flex;align-items:center;gap:1rem;font-size:1.3rem;font-weight:500}
.area{position:relative;flex:1;min-height:0;margin:.6rem -2.8rem -2.5rem}
.area svg{position:absolute;inset:0}
.tip{position:absolute;z-index:3;pointer-events:none;padding:.9rem 1.3rem;border-radius:var(--r-in);font-size:1.2rem;font-weight:500;white-space:nowrap;
  background:rgba(16,22,42,.9);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 14px 34px -12px rgba(0,0,0,.9);
  opacity:0;transform:translate(-50%,-125%);transition:opacity .3s var(--ease)}
.tip b{display:block;font-size:1.5rem;font-weight:600;color:var(--ink);margin:.1rem 0}
.tip span{color:var(--ink-3)}
.area.hov .tip{opacity:1}
.ax{font-size:1.12rem;font-weight:500;fill:var(--ink-3)}

/* Tilbud uden svar */
.radar{grid-area:radar;--acc:var(--amber);--gx:100%;--gy:0%;overflow:hidden}
.radar::after{background:radial-gradient(75% 60% at 100% 0%,rgb(var(--amber) / .2),transparent 72%)}
.livechip{display:inline-flex;align-items:center;gap:.55rem;font-size:1.12rem;font-weight:700;color:rgb(var(--amber))}
.livechip::before{content:"";width:.7rem;height:.7rem;border-radius:50%;background:rgb(var(--amber));animation:live 2.2s ease-out infinite}
@keyframes live{0%{box-shadow:0 0 0 0 rgb(var(--amber) / .6)}80%,100%{box-shadow:0 0 0 .8rem rgb(var(--amber) / 0)}}
.r-kpi{margin-top:1.2rem;flex:none}
.radar .big{font-size:5rem;filter:drop-shadow(0 0 24px rgb(var(--amber) / .42));background-image:linear-gradient(180deg,#fff3e2 10%,rgb(var(--amber)) 95%)}
.radar .big .u{-webkit-text-fill-color:rgb(var(--amber) / .7)}
.r-kpi .sub{margin-top:.6rem;color:var(--ink-2)}
.r-kpi .sub b{font-weight:700;color:rgb(var(--amber))}
.rlist{list-style:none;margin:1.2rem -.6rem 0;padding:0 .6rem .2rem;display:flex;flex-direction:column;gap:.7rem;flex:1;min-height:0;overflow:hidden}
.rrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:.9rem;padding:.5rem .5rem .5rem .5rem;border-radius:99px;cursor:pointer;
  background:var(--surf);box-shadow:var(--lift);transition:background .4s var(--ease),transform .45s var(--ease),opacity .45s var(--ease)}
.rrow:hover,.rrow[data-ph-hover]{background:var(--surf-2)}
.rrow.sel{background:rgb(var(--amber) / .1);box-shadow:inset 0 0 0 1px rgb(var(--amber) / .3),var(--lift)}
.rrow.out{opacity:0;transform:translateX(2.4rem)}
.rrow.enter{animation:rowIn .5s var(--ease) backwards}
@keyframes rowIn{from{opacity:0;transform:translateY(.8rem)}}
.rrow .av{width:3rem;height:3rem;font-size:1.02rem}
.rn{min-width:0}
.rn b{display:block;font-size:1.3rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rv-r{text-align:right;font-size:1.3rem;font-weight:700;white-space:nowrap}
.hrs{display:inline-flex;align-items:center;gap:.35rem;font-size:1.18rem;font-weight:700;line-height:1.3;color:rgb(var(--amber));white-space:nowrap}
.hrs svg.i{width:1.25rem;height:1.25rem;stroke-width:2}
.rrow .btn{height:3rem;padding:0 1.15rem;font-size:1.18rem}
.rrow .btn svg.i{width:1.35rem;height:1.35rem}
.r-foot{display:flex;align-items:center;gap:1rem;margin-top:.8rem;flex:none}
.r-foot .sub{font-size:1.2rem;flex:1;min-width:0}
.r-foot .sub kbd{font-size:1rem;padding:.15rem .55rem;margin-right:.3rem}
.r-empty{display:flex;align-items:center;gap:1rem;padding:1.2rem 1.4rem;border-radius:20px;background:rgb(var(--mint) / .08);color:var(--ink-2);font-size:1.3rem;font-weight:600}
.r-empty svg.i{color:rgb(var(--mint))}

/* SMS-ark: glider op i kortet (overblik) eller står som modal */
.sheet{--acc:var(--amber);position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;gap:1.2rem;padding:2.2rem 2.4rem 2.2rem;border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02) 50%),#0d1121;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);transform:translateY(104%);transition:transform .5s var(--ease)}
.sheet.open{transform:none}
.sheet-head{display:flex;align-items:center;gap:1.1rem;flex:none}
.sheet-head .av{--acc:var(--amber)}
.sheet-head b{display:block;font-size:1.5rem;font-weight:700;line-height:1.25}
.sheet-head small{display:block;font-size:1.18rem;font-weight:500;color:var(--ink-3)}
.sheet-head .icon-btn{margin-left:auto}
.sms{flex:1;min-height:7rem;width:100%;resize:none;padding:1.2rem 1.4rem;border:0;border-radius:18px 18px 18px 6px;font-size:1.32rem;font-weight:500;line-height:1.5;color:var(--ink);
  background:linear-gradient(180deg,rgb(var(--amber) / .14),rgb(var(--amber) / .06));box-shadow:inset 0 1px 0 rgba(255,255,255,.08);outline:0}
.sms:focus-visible{box-shadow:0 0 0 2px rgb(var(--amber) / .7)}
.consent{display:flex;align-items:center;gap:.6rem;font-size:1.24rem;font-weight:600;color:rgb(var(--mint));flex:none}
.consent svg.i{width:1.6rem;height:1.6rem}
.consent.no{color:rgb(var(--amber))}
.consent .cnt{margin-left:auto;font-weight:500;color:var(--ink-3)}
.sheet-foot{display:flex;align-items:center;gap:1rem;flex:none}
.sheet-foot .btn.pri{margin-left:auto}
.batch{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem;flex:1;min-height:0;overflow-y:auto;scrollbar-width:none}
.batch li{display:flex;align-items:center;gap:1rem;padding:.6rem 1.2rem .6rem .6rem;border-radius:99px;background:var(--surf)}
.batch li .av{width:2.8rem;height:2.8rem;font-size:1rem}
.batch li b{font-size:1.28rem;flex:1;min-width:0}
.batch li span{font-size:1.18rem;font-weight:600;color:var(--ink-3)}
.batch li.skip b{color:var(--ink-3)}
.batch li.skip span{color:rgb(var(--amber))}
.modal-layer{position:absolute;inset:0;z-index:55;display:grid;place-items:center;pointer-events:none;background:rgba(3,5,10,0);transition:background .4s var(--ease)}
.modal-layer.on{pointer-events:auto;background:rgba(3,5,10,.5)}
.modal-layer .sheet{position:relative;inset:auto;width:54rem;height:42rem;border-radius:28px;opacity:0;transform:translateY(1.6rem) scale(.98);transition:transform .45s var(--ease),opacity .35s var(--ease);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 40px 80px -30px rgba(0,0,0,.9),0 0 60px -20px rgb(var(--amber) / .5)}
.modal-layer .sheet.open{opacity:1;transform:none}

/* AI-assistent */
.ai{grid-area:ai;--acc:var(--violet);--gx:100%;--gy:0%;
  background:radial-gradient(110% 60% at 100% 0%,rgb(var(--violet) / .2),transparent 62%),radial-gradient(90% 50% at 0% 100%,rgb(var(--cyan) / .08),transparent 60%),
   linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.015) 45%),rgba(18,16,42,.5)}
.orb{position:relative;width:3.4rem;height:3.4rem;border-radius:50%;flex:none;
  background:conic-gradient(from 210deg,rgb(var(--violet)),rgb(var(--cyan)),rgb(var(--rose)),rgb(var(--violet)));
  box-shadow:0 0 24px -2px rgb(var(--violet) / .85)}
.orb::after{content:"";position:absolute;inset:.4rem;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9),rgba(255,255,255,.1) 45%,rgba(14,12,36,.6) 78%)}
.toggle{display:inline-flex;align-items:center;gap:.8rem;cursor:pointer;font-size:1.22rem;font-weight:600;color:var(--ink-2);user-select:none;white-space:nowrap}
.toggle input{position:absolute;opacity:0;pointer-events:none}
.toggle .tr{position:relative;width:4rem;height:2.3rem;border-radius:99px;background:rgba(255,255,255,.12);transition:background .4s var(--ease),box-shadow .4s var(--ease)}
.toggle .tr::after{content:"";position:absolute;top:.3rem;left:.3rem;width:1.7rem;height:1.7rem;border-radius:50%;background:#cfd6f0;box-shadow:0 2px 6px rgba(0,0,0,.4);transition:transform .45s var(--ease),background .4s}
.toggle input:checked + .tr{background:rgb(var(--violet) / .7);box-shadow:0 0 18px -2px rgb(var(--violet) / .8)}
.toggle input:checked + .tr::after{transform:translateX(1.7rem);background:#fff}
.toggle input:focus-visible + .tr{outline:2px solid rgb(var(--cyan));outline-offset:3px}
.ai-title{margin:1.7rem 0 0;font-size:2.5rem;font-weight:500;letter-spacing:-.03em;line-height:1.15}
.ai-title b{font-weight:700;background:linear-gradient(180deg,#fff,rgb(var(--violet)));-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{display:flex;align-items:center;gap:.6rem;margin-top:.8rem}
.lead svg.i{width:1.55rem;height:1.55rem;color:rgb(var(--mint))}
.drafts{list-style:none;margin:1.6rem -.6rem 0;padding:0 .6rem 1.6rem;display:flex;flex-direction:column;gap:.9rem;flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 3rem),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 3rem),transparent)}
.drafts::-webkit-scrollbar{display:none}
.draft{position:relative;flex:none;padding:1.1rem 1.1rem 1.2rem;border-radius:20px;background:rgba(255,255,255,.05);box-shadow:var(--lift);
  transition:background .4s var(--ease),box-shadow .4s var(--ease),opacity .4s}
.draft:hover{background:rgba(255,255,255,.07)}
.draft.enter{animation:rowIn .55s var(--ease) backwards}
.d-head{display:flex;align-items:center;gap:1.1rem}
.d-who{min-width:0;flex:1}
.d-who b{display:block;font-size:1.36rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-who small{display:block;font-size:1.15rem;font-weight:500;line-height:1.3;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-who small em{font-style:normal;font-weight:600;color:rgb(var(--amber))}
.d-act{display:flex;gap:.6rem;flex:none}
.d-act .btn{height:3.2rem;padding:0 1.3rem;font-size:1.22rem}
.bubble{position:relative;margin:.8rem 0 0 4.5rem;padding:.9rem 1.4rem;border-radius:16px 16px 16px 6px;font-size:1.26rem;font-weight:500;line-height:1.5;color:var(--ink-2);
  background:linear-gradient(180deg,rgb(var(--violet) / .16),rgb(var(--violet) / .08));outline:none;transition:box-shadow .4s var(--ease)}
.bubble .tx{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;outline:none}
.draft.full .bubble .tx,.draft.editing .bubble .tx{display:block;-webkit-line-clamp:unset}
.draft.editing .bubble{color:var(--ink);box-shadow:0 0 0 2px rgb(var(--violet) / .7),0 0 24px -4px rgb(var(--violet) / .6)}
.draft .edited{display:none;margin-left:.6rem;font-size:1.05rem;font-weight:600;color:rgb(var(--violet))}
.draft.was-edited .edited{display:inline}
.draft.sent{background:rgb(var(--mint) / .07)}
.draft.sent .bubble{opacity:.55}
.sentline{display:none;align-items:center;gap:.5rem;font-size:1.24rem;font-weight:700;color:rgb(var(--mint));white-space:nowrap}
.sentline svg.i{width:1.6rem;height:1.6rem;stroke-width:2.2}
.draft.sent .d-act{display:none}
.draft.sent .sentline{display:inline-flex}
.draft .meta-line{display:flex;align-items:center;gap:1rem;margin:.8rem 0 0 4.5rem;font-size:1.15rem;font-weight:600;color:var(--ink-3)}
.draft .meta-line .consent{font-size:1.15rem}
.draft.call{background:rgb(var(--amber) / .06)}
.paused .drafts,.paused .ai-queue{opacity:.38;filter:saturate(.3);pointer-events:none}
.paused .orb{filter:grayscale(.85);box-shadow:none}
.ai-foot{display:flex;align-items:center;gap:.8rem;margin-top:1.2rem;font-size:1.22rem;font-weight:500;color:var(--ink-3);flex:none;min-height:3.2rem}
.ai-foot .dotp{width:1.4rem;display:grid;place-items:center;flex:none}
.ai-foot .dotp::before{content:"";width:.8rem;height:.8rem;border-radius:50%;background:rgb(var(--violet));box-shadow:0 0 12px rgb(var(--violet))}
.ai-foot b{color:var(--ink-2);font-weight:700}
.ai-foot > span:not(.dotp){min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-foot .btn{margin-left:auto}
.paused .ai-foot .dotp::before{background:var(--ink-4);box-shadow:none}

/* Pipeline-puls på overblikket */
.flow{grid-area:flow;--acc:var(--blue);--gx:60%;--gy:100%;flex-direction:row;gap:1rem}
.flow-l{display:flex;flex-direction:column;align-items:flex-start;width:17rem;flex:none}
.flow-l h2{margin:1.4rem 0 0;font-size:1.55rem;font-weight:700;letter-spacing:-.01em}
.flow-l .sub{margin-top:.4rem;font-size:1.25rem}
.flow-l .link{margin-top:auto}
.flow-vis{position:relative;flex:1;min-width:0;min-height:0}
.st{position:absolute;transform:translateX(-50%);text-align:center;white-space:nowrap;max-width:19%}
.st-top span{overflow:hidden;text-overflow:ellipsis}
.st-bot b{max-width:100%}
.st-top{top:-.2rem}
.st-top b{display:block;font-size:2.8rem;font-weight:400;letter-spacing:-.04em;line-height:1.05;transition:color 1s var(--ease),text-shadow 1s var(--ease),transform 1s var(--ease)}
.st-top.beat b{color:rgb(var(--c));text-shadow:0 0 22px rgb(var(--c) / .75);transform:scale(1.07);transition-duration:.12s}
.st-top span{display:block;font-size:1.2rem;font-weight:600;color:var(--ink-3);margin-top:.15rem}
.st-bot{bottom:-.2rem}
.st-bot b{display:inline-flex;align-items:center;gap:.5rem;font-size:1.32rem;font-weight:600;color:var(--ink-2)}
.st-bot.warn b{color:rgb(var(--amber))}
.st-bot.warn b::before{content:"";width:.7rem;height:.7rem;border-radius:50%;background:rgb(var(--amber));box-shadow:0 0 10px rgb(var(--amber))}

/* Omsætning */
.rev{grid-area:rev;--acc:var(--violet);--gx:0%;--gy:100%}
.rev-kpi{display:flex;align-items:baseline;gap:1rem;margin-top:1.5rem;flex:none}
.rev-kpi .sub{font-size:1.2rem}
.bars{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem;flex:1;min-height:0;margin-top:1.4rem}
.bar{display:flex;flex-direction:column;align-items:center;min-height:0}
.bar .col{position:relative;flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;min-height:0}
.bar i{position:relative;display:block;width:1.5rem;height:calc(var(--h) * 100%);border-radius:99px;transform-origin:50% 100%;
  background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,.06));box-shadow:inset 0 1px 0 rgba(255,255,255,.25);transition:background .4s var(--ease)}
.bar:hover i{background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.1))}
.bar .val{position:absolute;left:50%;bottom:calc(var(--h) * 100% + .6rem);transform:translateX(-50%);font-size:1.12rem;font-weight:600;color:var(--ink-2);white-space:nowrap;opacity:0;transition:opacity .3s var(--ease)}
.bar:hover .val{opacity:1}
.bar span{margin-top:.7rem;font-size:1.15rem;font-weight:600;color:var(--ink-3)}
.bar.now span{color:var(--ink)}
.bar.now i{width:1.9rem;background:
   linear-gradient(0deg,rgb(var(--violet)) 0,rgb(var(--cyan)) calc(var(--r) * 100%),transparent calc(var(--r) * 100%)),
   repeating-linear-gradient(135deg,rgb(var(--violet) / .6) 0 .35rem,rgb(var(--violet) / .26) .35rem .7rem);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 0 28px -2px rgb(var(--violet) / .75)}
.legend{display:flex;gap:1.4rem;margin-top:1rem;font-size:1.1rem;font-weight:500;color:var(--ink-3);flex:none;white-space:nowrap}
.legend span{display:inline-flex;align-items:center;gap:.5rem}
.legend b{font-weight:700;color:var(--ink-2)}
.legend i{width:1rem;height:1rem;border-radius:50%;flex:none}
.legend .l1{background:linear-gradient(180deg,rgb(var(--cyan)),rgb(var(--violet)))}
.legend .l2{background:repeating-linear-gradient(135deg,rgb(var(--violet) / .8) 0 2px,rgb(var(--violet) / .3) 2px 4px)}

/* Ja til tilbud */
.conv{grid-area:conv;--acc:var(--mint);--gx:50%;--gy:0%;align-items:center;text-align:center}
.conv .c-head{align-self:stretch}
.ring{position:relative;flex:1 1 0;min-height:6rem;width:100%;margin-top:1rem}
.ring svg{position:absolute;inset:0;margin:auto;height:100%;width:auto;max-width:100%;max-height:14.5rem;aspect-ratio:1;overflow:visible}
.ring .prog{filter:drop-shadow(0 0 8px rgb(var(--mint) / .7))}
.ring-c{position:absolute;inset:0;display:grid;place-items:center;align-content:center}
.ring-c b{font-size:3.8rem;font-weight:300;letter-spacing:-.05em;line-height:1;background:linear-gradient(180deg,#fff 30%,rgb(var(--mint)) 140%);-webkit-background-clip:text;background-clip:text;color:transparent}
.ring-c b small{font-size:.48em;font-weight:500;margin-left:.15em;-webkit-text-fill-color:var(--ink-3)}
.ring-c > span{font-size:1.05rem;font-weight:600;color:var(--ink-3);margin-top:.35rem}
.conv-l{margin:1rem 0 0;font-size:1.32rem;font-weight:700;flex:none;line-height:1.3}
.conv .sub{margin-top:.25rem;font-size:1.15rem;flex:none}

/* Nye henvendelser */
.chan{grid-area:chan;--acc:var(--rose);--gx:100%;--gy:100%}
.ch-total{display:flex;align-items:baseline;gap:.7rem}
.ch-total .mid{font-size:2.8rem}
.ch-total .muted{font-size:1.2rem;font-weight:500;white-space:nowrap}
.ch-list{list-style:none;margin:1.6rem 0 0;padding:0;display:flex;flex-direction:column;justify-content:space-between;flex:1;min-height:0}
.ch-top{display:flex;align-items:center;gap:.7rem;font-size:1.26rem;font-weight:600}
.ch-top svg.i{width:1.5rem;height:1.5rem;color:rgb(var(--c))}
.ch-top .n{color:var(--ink-2)}
.ch-top b{margin-left:auto;font-weight:700;font-size:1.36rem}
.ch-top b.bump{animation:bump .6s var(--ease)}
@keyframes bump{35%{transform:scale(1.35);color:rgb(var(--c));text-shadow:0 0 12px rgb(var(--c))}}
.dots{display:grid;grid-template-columns:repeat(20,1fr);gap:.35rem;margin-top:.7rem;justify-items:center}
.dots i{width:.85rem;height:.85rem;border-radius:50%;background:rgba(255,255,255,.08)}
.dots i.on{background:rgb(var(--c));box-shadow:0 0 8px rgb(var(--c) / .6)}
.dots i.pop{animation:pop 1s var(--ease)}
@keyframes pop{0%{transform:scale(2.4);box-shadow:0 0 18px 4px rgb(var(--c))}}

/* Dagens aftaler */
.cal{grid-area:cal;--acc:var(--cyan);--gx:100%;--gy:100%}
.tl{position:relative;list-style:none;margin:1.2rem 0 0;padding:0;display:flex;flex-direction:column;justify-content:space-between;flex:1;min-height:0}
.tl::before{content:"";position:absolute;left:6.6rem;top:1.6rem;bottom:1.6rem;width:2px;border-radius:2px;background:linear-gradient(180deg,rgb(var(--cyan) / .55),rgba(255,255,255,.07))}
.ap{position:relative;display:grid;grid-template-columns:5.2rem 2.8rem minmax(0,1fr) auto;align-items:center;gap:0 .2rem;padding:.4rem .6rem .4rem 0;border-radius:var(--r-in);cursor:pointer;transition:background .4s var(--ease)}
.ap:hover,.ap[data-ph-hover]{background:rgba(255,255,255,.045)}
.ap time{font-size:1.32rem;font-weight:700;color:var(--ink-2);text-align:right;padding-right:.4rem}
.ap .node{justify-self:center;width:1.2rem;height:1.2rem;border-radius:50%;background:#1a2036;box-shadow:0 0 0 3px #0c1122}
.ap.live .node{background:rgb(var(--cyan));box-shadow:0 0 0 4px rgb(var(--cyan) / .2),0 0 14px rgb(var(--cyan))}
.ap.past{opacity:.55}
.ap .what{min-width:0;padding-left:.6rem}
.ap .what b{display:block;font-size:1.34rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ap .what span{display:block;font-size:1.15rem;font-weight:500;line-height:1.3;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tag{display:inline-flex;align-items:center;gap:.5rem;height:2.5rem;padding:0 1rem;border-radius:99px;font-size:1.12rem;font-weight:700;white-space:nowrap;color:rgb(var(--cyan));background:rgb(var(--cyan) / .12)}
.tag::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:rgb(var(--cyan))}
.nowline{position:relative;display:grid;grid-template-columns:5.2rem 2.8rem 1fr;align-items:center;gap:0 .2rem;height:1.6rem}
.nowline time{font-size:1.05rem;font-weight:700;color:rgb(var(--coral));text-align:right;padding-right:.4rem}
.nowline .nd{justify-self:center;width:.8rem;height:.8rem;border-radius:50%;background:rgb(var(--coral));box-shadow:0 0 10px rgb(var(--coral))}
.nowline .ln{height:2px;border-radius:2px;background:linear-gradient(90deg,rgb(var(--coral) / .8),rgb(var(--coral) / 0))}

/* =========================================================================
   Pipeline
   ========================================================================= */
.v-pipe{grid-template-columns:minmax(0,1fr)}
.board{--acc:var(--blue);--gx:50%;--gy:0%;padding:2.3rem 2.4rem 2.2rem}
.board .c-head{gap:1.1rem}
.board .c-head .meta{margin-left:.4rem}
.chips{display:flex;gap:.7rem;margin-left:auto;flex-wrap:nowrap}
.pulse-row{position:relative;height:8.6rem;flex:none;margin-top:.8rem}
.pulse-row .pv{position:absolute;inset:0}
.pulse-row .st-top{top:0}
.pulse-row .st-top b{font-size:2.6rem}
.pulse-row .st-top span{font-size:1.1rem}
.cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.2rem;flex:1;min-height:0;margin-top:.6rem}
.pcol{display:flex;flex-direction:column;min-width:0;min-height:0;padding:1.2rem 1rem 1rem;border-radius:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015));box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:background .35s var(--ease),box-shadow .35s var(--ease)}
.pcol.drop{background:linear-gradient(180deg,rgb(var(--c) / .14),rgb(var(--c) / .04));box-shadow:inset 0 0 0 1.5px rgb(var(--c) / .55),0 0 40px -14px rgb(var(--c) / .7)}
.pcol.focus{box-shadow:inset 0 0 0 1.5px rgb(var(--c) / .55)}
.col-head{display:flex;flex-direction:column;gap:.3rem;padding:0 .6rem .9rem;flex:none}
.col-name{display:flex;align-items:center;gap:.7rem;font-size:1.26rem;font-weight:700;color:var(--ink-2);white-space:nowrap}
.col-name::before{content:"";width:.8rem;height:.8rem;border-radius:50%;background:rgb(var(--c));box-shadow:0 0 10px rgb(var(--c) / .8);flex:none}
.col-name kbd{margin-left:auto;padding:.1rem .55rem;font-size:1rem;color:var(--ink-3)}
.col-sum{font-size:2.2rem;font-weight:400;letter-spacing:-.03em;line-height:1.1;white-space:nowrap}
.col-sum .u{font-size:.55em;font-weight:500;letter-spacing:0;margin-left:.3em;color:var(--ink-3)}
.col-list{display:flex;flex-direction:column;gap:.8rem;flex:1;min-height:0;padding:.2rem .2rem .4rem;margin:0 -.2rem;overflow-y:auto;scrollbar-width:none}
.col-list::-webkit-scrollbar{display:none}
.pc{position:relative;flex:none;display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.2rem 1.1rem 1.3rem;border-radius:18px;cursor:grab;user-select:none;touch-action:none;
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.04));box-shadow:inset 0 1px 0 rgba(255,255,255,.08),var(--lift);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .4s var(--ease),opacity .4s var(--ease)}
.pc:hover,.pc[data-ph-hover]{transform:translateY(-2px);background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.055));box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 16px 30px -16px rgba(0,0,0,.8),0 0 30px -12px rgb(var(--c) / .6)}
.pc.sel{box-shadow:inset 0 0 0 1.5px rgb(var(--c) / .6),0 16px 30px -16px rgba(0,0,0,.8)}
.pc.dim{opacity:.28}
.pc.drag-src{opacity:.3}
.pc.landed{animation:landed .9s var(--ease)}
@keyframes landed{0%{transform:scale(.96);box-shadow:0 0 0 0 rgb(var(--c) / .8)}50%{box-shadow:0 0 0 6px rgb(var(--c) / 0),0 0 40px -6px rgb(var(--c) / .8)}}
.pc.ghost{position:absolute;z-index:70;pointer-events:none;cursor:grabbing;transform:rotate(-2deg) scale(1.03);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 30px 60px -20px rgba(0,0,0,.9),0 0 40px -10px rgb(var(--c) / .7);
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.06)),rgba(16,22,44,.95);transition:none}
.pc-top{display:flex;align-items:baseline;gap:.8rem}
.pc-name{font-size:1.34rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pc-amt{margin-left:auto;font-size:1.3rem;font-weight:600;color:var(--ink-2);white-space:nowrap}
.pc-sub{font-size:1.15rem;font-weight:500;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-bot{display:flex;align-items:center;gap:.6rem;margin-top:.35rem;min-height:2.5rem}
.pc-bot .days{font-size:1.12rem;font-weight:600;color:var(--ink-3);white-space:nowrap}
.pc-bot .pill{height:2.4rem;padding:0 .85rem;gap:.35rem;font-size:1.06rem}
.pc-sub span{font-weight:700;color:var(--ink-2)}
html.ph-demo :focus-visible{outline:none}
.cons{display:inline-flex;gap:.35rem;margin-left:auto}
.cons i{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;color:rgb(var(--mint));background:rgb(var(--mint) / .1)}
.cons i.no{color:rgb(var(--amber));background:rgb(var(--amber) / .12)}
.cons svg.i{width:1.25rem;height:1.25rem;stroke-width:2}
.docb{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;font-size:.95rem;font-weight:700;color:var(--ink-2);background:rgba(255,255,255,.07);flex:none}
.pill.fresh{animation:freshTag 1.6s var(--ease) both}
@keyframes freshTag{0%{opacity:0;transform:translateY(.4rem) scale(.9)}25%{opacity:1;transform:none;box-shadow:0 0 0 0 rgb(var(--mint) / .7)}70%{box-shadow:0 0 0 .7rem rgb(var(--mint) / 0),0 0 26px rgb(var(--mint) / .6)}100%{box-shadow:none}}
.board-foot{display:flex;align-items:center;gap:1.6rem;margin-top:1.2rem;font-size:1.15rem;font-weight:500;color:var(--ink-3);flex:none}
.board-foot kbd{padding:.15rem .55rem;font-size:1rem;margin-right:.3rem}

/* =========================================================================
   Patienter
   ========================================================================= */
.v-pat{grid-template-columns:minmax(0,1fr) 36rem;gap:1.6rem}
.v-pat .side{grid-template-rows:auto auto minmax(0,1fr)}
.v-pat .stat-card{padding:2.2rem 2.4rem 2rem}
.v-pat .stat-list{margin-top:1.2rem;gap:.6rem}
.v-pat .stat{padding:.7rem 1.1rem .7rem .7rem}
.rem-row.up{grid-template-columns:4.8rem minmax(0,1fr) auto;cursor:pointer;transition:background .35s var(--ease)}
.rem-row.up:hover,.rem-row.up[data-ph-hover]{background:var(--surf-2)}
.rem-row.up .pill{height:2.3rem;font-size:1rem}
.v-pat .side,.v-cal .side,.v-ai .side{display:grid;gap:1.6rem;min-height:0}
.plist-card{--acc:var(--cyan);--gx:0%;--gy:0%;padding:2.3rem 2.4rem 1.6rem}
.plist-card .c-head{gap:1.1rem}
.find{display:flex;align-items:center;gap:.8rem;width:30rem;height:3.6rem;margin-left:auto;padding:0 1.3rem;border-radius:99px;background:rgba(255,255,255,.055);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.find svg.i{width:1.6rem;height:1.6rem;color:var(--ink-3)}
.find input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:1.28rem;font-weight:500}
.find input::placeholder{color:var(--ink-3)}
.find:focus-within{box-shadow:0 0 0 2px rgb(var(--cyan) / .6)}
.pl-filters{display:flex;gap:.6rem;margin-top:1.4rem;flex:none;flex-wrap:wrap}
.pl-head,.prow{display:grid;grid-template-columns:minmax(19rem,1.25fr) minmax(12rem,1fr) 14rem 10.5rem 3.4rem 7.6rem;align-items:center;gap:1.2rem}
.pl-head{padding:1.4rem 1.6rem .6rem 1rem;font-size:1.1rem;font-weight:600;color:var(--ink-4);flex:none}
.pl-head span:nth-child(4){text-align:right}
.plist{list-style:none;margin:0 -.6rem;padding:.2rem .6rem .6rem;display:flex;flex-direction:column;gap:.6rem;flex:1;min-height:0}
.prow{padding:.7rem 1.6rem .7rem .7rem;border-radius:20px;cursor:pointer;background:var(--surf);box-shadow:var(--lift);transition:background .35s var(--ease),transform .35s var(--ease)}
.prow:hover,.prow[data-ph-hover]{background:var(--surf-2)}
.prow.sel{background:rgb(var(--cyan) / .1);box-shadow:inset 0 0 0 1px rgb(var(--cyan) / .35),var(--lift)}
.prow .who{display:flex;align-items:center;gap:1rem;min-width:0}
.prow .who .av{width:3.4rem;height:3.4rem}
.prow .who b{display:block;font-size:1.32rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prow .who small{display:block;font-size:1.12rem;font-weight:500;color:var(--ink-3);line-height:1.3;white-space:nowrap}
.prow .tr-l{font-size:1.25rem;font-weight:500;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prow .amt{font-size:1.32rem;font-weight:600;text-align:right;white-space:nowrap}
.prow .cons{margin-left:0}
.pl-foot{display:flex;align-items:center;gap:1.6rem;margin-top:1rem;font-size:1.15rem;font-weight:500;color:var(--ink-3);flex:none}
.pl-foot kbd{padding:.15rem .55rem;font-size:1rem;margin-right:.3rem}
.stat-card{--gx:100%;--gy:0%}
.stat-list{list-style:none;margin:1.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.8rem;flex:1;min-height:0}
.stat{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;width:100%;padding:.9rem 1.2rem .9rem .9rem;border:0;border-radius:18px;text-align:left;background:var(--surf);box-shadow:var(--lift);transition:background .35s var(--ease)}
button.stat:hover,button.stat[data-ph-hover]{background:var(--surf-2)}
.stat[aria-pressed="true"]{background:rgb(var(--acc) / .14);box-shadow:inset 0 0 0 1px rgb(var(--acc) / .35)}
.stat .c-ico{width:3rem;height:3rem}
.stat b{display:block;font-size:1.3rem;font-weight:700;line-height:1.3}
.stat small{display:block;font-size:1.12rem;font-weight:500;color:var(--ink-3);line-height:1.3}
.stat .n{font-size:2.2rem;font-weight:400;letter-spacing:-.03em;white-space:nowrap}
.stat .n small{display:inline;font-size:.55em;color:var(--ink-3);margin-left:.2em}
.stat.warn .n{color:rgb(var(--amber))}
.meter{position:relative;height:.6rem;margin-top:.6rem;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.meter i{position:absolute;inset:0 auto 0 0;width:calc(var(--v) * 100%);border-radius:inherit;background:linear-gradient(90deg,rgb(var(--acc) / .6),rgb(var(--acc)));box-shadow:0 0 12px rgb(var(--acc) / .6)}

/* =========================================================================
   Kalender
   ========================================================================= */
.v-cal{grid-template-columns:minmax(0,1fr) 36rem;gap:1.6rem}
.calcard{--acc:var(--cyan);--gx:0%;--gy:0%;padding:2.3rem 2.4rem 2rem}
.calcard .c-head .meta{margin-left:.4rem}
.cal-tools{display:flex;align-items:center;gap:.8rem;margin-left:auto}
.daynav{display:flex;align-items:center;gap:.4rem}
.daynav .icon-btn{width:3.2rem;height:3.2rem}
.daynav .icon-btn svg.i{width:1.6rem;height:1.6rem}
.grid-wrap{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);flex:1;min-height:0;margin-top:1.4rem}
.g-head{display:grid;grid-template-columns:5.4rem repeat(var(--n),minmax(0,1fr));gap:.8rem;padding-bottom:.9rem}
.g-head .gh{display:flex;align-items:baseline;gap:.6rem;padding:.7rem 1.1rem;border-radius:16px;font-size:1.25rem;font-weight:700;color:var(--ink-2);white-space:nowrap;min-width:0}
.g-head .gh small{font-size:1.1rem;font-weight:500;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;min-width:0}
.g-head .gh.today{color:var(--ink);background:rgb(var(--cyan) / .12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.g-head button.gh{border:0;background:none;text-align:left;cursor:pointer}
.g-head button.gh:hover,.g-head button.gh[data-ph-hover]{background:rgba(255,255,255,.06)}
.g-head button.gh.today:hover{background:rgb(var(--cyan) / .18)}
.g-body{position:relative;display:grid;grid-template-columns:5.4rem repeat(var(--n),minmax(0,1fr));gap:.8rem;min-height:0}
.g-hours{position:relative}
.g-hours span{position:absolute;right:.6rem;transform:translateY(-50%);font-size:1.1rem;font-weight:600;color:var(--ink-4)}
.g-col{position:relative;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.012))}
.g-col.today{background:linear-gradient(180deg,rgb(var(--cyan) / .06),rgb(var(--cyan) / .02))}
.g-line{position:absolute;left:0;right:0;height:1px;background:rgba(255,255,255,.045)}
.appt{--c:var(--cyan);position:absolute;left:.4rem;right:.4rem;display:flex;flex-direction:column;gap:.1rem;padding:.6rem .9rem;border:0;border-radius:12px;text-align:left;
  background:linear-gradient(180deg,rgb(var(--c) / .24),rgb(var(--c) / .12));box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 8px 18px -12px rgba(0,0,0,.8);transition:box-shadow .35s var(--ease),transform .35s var(--ease)}
button.appt:hover,button.appt[data-ph-hover]{box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 0 26px -6px rgb(var(--c) / .8);transform:translateY(-1px);z-index:2}
.appt b,.appt span,.appt time{min-width:0;max-width:100%}
.appt time{flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appt b{font-size:1.2rem;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appt span{font-size:1.08rem;font-weight:500;line-height:1.25;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appt time{font-size:1.02rem;font-weight:700;color:rgb(var(--c));line-height:1.25}
.appt.busy{background:repeating-linear-gradient(135deg,rgba(255,255,255,.045) 0 .5rem,rgba(255,255,255,.02) .5rem 1rem);box-shadow:none;color:var(--ink-3);cursor:default}
.appt.busy b{font-weight:600;color:var(--ink-3)}
.appt.past{opacity:.5}
.appt.live{box-shadow:inset 0 0 0 1.5px rgb(var(--c) / .8),0 0 26px -6px rgb(var(--c) / .7)}
.appt.short,.appt.tight{flex-direction:row;align-items:center;gap:.6rem;padding:.2rem .8rem}
.appt.tight span{display:none}
.appt.mini time,.appt.blank > *{display:none}
.appt.busy.short b{flex:1 1 auto}
.g-now{position:absolute;left:0;right:0;z-index:3;height:2px;background:rgb(var(--coral));box-shadow:0 0 10px rgb(var(--coral));pointer-events:none}
.g-now::before{content:"";position:absolute;left:-.4rem;top:-.35rem;width:.9rem;height:.9rem;border-radius:50%;background:rgb(var(--coral))}
.g-now-t{position:absolute;right:.4rem;transform:translateY(-50%);z-index:3;font-size:1.05rem;font-weight:700;color:rgb(var(--coral))}
.cal-legend{display:flex;align-items:center;gap:1.6rem;margin-top:1.2rem;font-size:1.12rem;font-weight:500;color:var(--ink-3);flex:none;flex-wrap:wrap}
.cal-legend span{display:inline-flex;align-items:center;gap:.5rem}
.cal-legend i{width:1rem;height:1rem;border-radius:50%;background:rgb(var(--c))}
.cal-legend i.busy{border-radius:3px;background:repeating-linear-gradient(135deg,rgba(255,255,255,.25) 0 2px,rgba(255,255,255,.06) 2px 4px)}
.cal-legend kbd{padding:.15rem .55rem;font-size:1rem}
.cal-legend .keys{margin-left:auto}
.remind{--acc:var(--violet);--gx:100%;--gy:0%}
.rem-list{list-style:none;margin:1.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.7rem;flex:1;min-height:0}
.rem-row{display:grid;grid-template-columns:4.8rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.7rem 1.2rem .7rem 1rem;border-radius:18px;background:var(--surf);box-shadow:var(--lift)}
.rem-row time{font-size:1.3rem;font-weight:700;color:var(--ink-2)}
.rem-row b{display:block;font-size:1.28rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rem-row small{display:block;font-size:1.1rem;font-weight:500;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rem-row .pill{height:2.4rem;font-size:1.06rem}
.rem-foot{display:flex;align-items:center;gap:1rem;margin-top:1.2rem;flex:none}
.rem-foot .sub{flex:1;font-size:1.18rem}
.wk-list{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.wk-list li{padding:1.1rem 1.3rem;border-radius:18px;background:var(--surf)}
.wk-list b{display:block;font-size:2.6rem;font-weight:400;letter-spacing:-.03em;line-height:1.1}
.wk-list span{font-size:1.15rem;font-weight:600;color:var(--ink-3)}

/* =========================================================================
   Beskeder
   ========================================================================= */
.v-msg{grid-template-columns:34rem minmax(0,1fr) 32rem;gap:1.6rem}
.threads{--acc:var(--rose);--gx:0%;--gy:0%;padding:2.3rem 1.8rem 1.6rem}
.threads .c-head{padding:0 .6rem}
.th-list{list-style:none;margin:1.4rem -.4rem 0;padding:.2rem .4rem .4rem;display:flex;flex-direction:column;gap:.6rem;flex:1;min-height:0}
.th{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;padding:.9rem 1.1rem .9rem .9rem;border-radius:20px;cursor:pointer;transition:background .35s var(--ease)}
.th:hover,.th[data-ph-hover]{background:rgba(255,255,255,.05)}
.th.on{background:rgb(var(--rose) / .12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.th .av{--acc:var(--blue)}
.th.unread .av{--acc:var(--rose)}
.th b{display:block;font-size:1.3rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.th small{display:block;font-size:1.15rem;font-weight:500;line-height:1.35;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.th.unread small{color:var(--ink-2);font-weight:600}
.th .when{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;font-size:1.08rem;font-weight:600;color:var(--ink-3);white-space:nowrap}
.th .udot{width:.9rem;height:.9rem;border-radius:50%;background:rgb(var(--rose));box-shadow:0 0 10px rgb(var(--rose))}
.th .ch{display:inline-flex;align-items:center;gap:.3rem}
.th .ch svg.i{width:1.2rem;height:1.2rem}
.thread{--acc:var(--cyan);--gx:50%;--gy:0%;padding:2.2rem 2.6rem 2rem}
.thread .c-head .av{width:4rem;height:4rem;font-size:1.25rem}
.thread .c-head .who b{display:block;font-size:1.6rem;font-weight:700;line-height:1.25}
.thread .c-head .who small{display:block;font-size:1.18rem;font-weight:500;color:var(--ink-3)}
.thread .c-head .consent{margin-left:auto}
.msgs{display:flex;flex-direction:column;gap:1rem;flex:1;min-height:0;margin:1.6rem -.6rem 0;padding:.4rem .6rem 1rem}
.msgs > :first-child{margin-top:auto}
.day-sep{align-self:center;margin:.6rem 0;padding:.3rem 1.1rem;border-radius:99px;font-size:1.08rem;font-weight:600;color:var(--ink-3);background:rgba(255,255,255,.05)}
.msg{max-width:72%;display:flex;flex-direction:column;gap:.35rem}
.msg p{margin:0;padding:1rem 1.4rem;font-size:1.3rem;font-weight:500;line-height:1.5;color:var(--ink);border-radius:18px 18px 18px 6px;background:rgba(255,255,255,.07);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.msg time{font-size:1.05rem;font-weight:600;color:var(--ink-3);padding:0 .4rem}
.msg.out{align-self:flex-end;align-items:flex-end}
.msg.out p{border-radius:18px 18px 6px 18px;background:linear-gradient(180deg,rgb(var(--cyan) / .22),rgb(var(--blue) / .14));box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.msg.fresh{animation:rowIn .55s var(--ease) backwards}
.composer{display:flex;flex-direction:column;gap:.8rem;flex:none;padding:1rem;border-radius:22px;background:rgba(255,255,255,.045);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.composer textarea{width:100%;height:6.6rem;resize:none;padding:.6rem .8rem;border:0;outline:0;background:none;font-size:1.3rem;font-weight:500;line-height:1.5}
.composer textarea::placeholder{color:var(--ink-3)}
.composer textarea[disabled]{opacity:.5}
.composer:focus-within{box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 2px rgb(var(--cyan) / .45)}
.comp-foot{display:flex;align-items:center;gap:.8rem}
.comp-foot .btn.pri{margin-left:auto}
.suggest{--acc:var(--violet)}
.pside{--acc:var(--violet);--gx:100%;--gy:0%;gap:0}
.pside .ph{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;margin-top:1rem}
.pside .ph .av{width:6.4rem;height:6.4rem;font-size:2rem;margin-bottom:.6rem}
.pside .ph b{font-size:1.7rem;font-weight:700}
.pside .ph small{font-size:1.18rem;font-weight:500;color:var(--ink-3)}
.facts{list-style:none;margin:2rem 0 0;padding:0;display:flex;flex-direction:column;gap:.7rem}
.facts li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.3rem;border-radius:16px;background:var(--surf);font-size:1.22rem;font-weight:500;color:var(--ink-3)}
.facts li b{font-weight:700;color:var(--ink);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pside .btn{margin-top:auto;width:100%}

/* =========================================================================
   AI-assistent
   ========================================================================= */
.v-ai{grid-template-columns:minmax(0,1fr) 40rem;gap:1.6rem}
.ai-main{grid-area:auto}
.ai-main .ai-title{font-size:3rem}
.ai-queue{list-style:none;margin:1.8rem -.6rem 0;padding:0 .6rem .6rem;display:flex;flex-direction:column;gap:1rem;flex:1;min-height:0}
.ai-queue .draft{padding:1.4rem 1.4rem 1.5rem}
.ai-queue .bubble{font-size:1.32rem}
.rules{--acc:var(--violet);--gx:100%;--gy:0%}
.rule-list{list-style:none;margin:1.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.7rem}
.rule-list li{display:flex;align-items:flex-start;gap:.9rem;padding:.9rem 1.2rem;border-radius:16px;background:var(--surf);font-size:1.24rem;font-weight:500;color:var(--ink-2);line-height:1.4}
.rule-list svg.i{width:1.6rem;height:1.6rem;color:rgb(var(--mint));margin-top:.1rem}
.hist{--acc:var(--mint);--gx:100%;--gy:100%}
.hist .won{display:flex;align-items:baseline;gap:1rem;margin-top:1.4rem;flex:none}
.hist .won .sub{font-size:1.2rem}
.h-list{list-style:none;margin:1.4rem -.4rem 0;padding:0 .4rem .4rem;display:flex;flex-direction:column;gap:.6rem;flex:1;min-height:0}
.h-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.7rem 1.2rem .7rem .7rem;border-radius:18px;background:var(--surf)}
.h-row .av{width:3rem;height:3rem;font-size:1rem;--acc:var(--mint)}
.h-row b{display:block;font-size:1.25rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-row small{display:block;font-size:1.1rem;font-weight:500;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-row .pill{height:2.4rem;font-size:1.05rem}
.h-row.fresh{animation:rowIn .55s var(--ease) backwards;background:rgb(var(--mint) / .08)}

/* =========================================================================
   Patientkort (skuffe)
   ========================================================================= */
.scrim{position:absolute;inset:0;z-index:45;background:rgba(3,5,10,.5);opacity:0;pointer-events:none;transition:opacity .45s var(--ease)}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{--acc:var(--cyan);position:absolute;top:1.6rem;right:1.6rem;bottom:1.6rem;z-index:50;width:62rem;display:flex;flex-direction:column;padding:2.4rem 2.6rem 0;border-radius:30px;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.025) 40%),rgba(12,16,34,.9);
  -webkit-backdrop-filter:blur(26px) saturate(160%);backdrop-filter:blur(26px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 40px 90px -30px rgba(0,0,0,.95),0 0 80px -30px rgb(var(--cyan) / .45);
  transform:translateX(calc(100% + 3rem));transition:transform .55s var(--ease);visibility:hidden}
.drawer.open{transform:none;visibility:visible}
.drawer:focus{outline:none}
.drawer::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(160deg,rgba(255,255,255,.24),rgba(255,255,255,.05) 30%,rgba(255,255,255,0) 60%,rgb(var(--violet) / .2));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.dr-head{display:flex;align-items:flex-start;gap:1.4rem;flex:none}
.dr-head .av{width:5.4rem;height:5.4rem;font-size:1.7rem}
.dr-id{min-width:0;flex:1}
.dr-id h2{margin:0;font-size:2.4rem;font-weight:600;letter-spacing:-.025em;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dr-id p{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .9rem;margin:.6rem 0 0;font-size:1.22rem;font-weight:500;color:var(--ink-3)}
.dr-id p i{width:.35rem;height:.35rem;border-radius:50%;background:var(--ink-4)}
.dr-id p .mono{color:var(--ink-2)}
.dr-sum{display:flex;align-items:center;gap:1.2rem;margin-top:1.8rem;flex:none}
.dr-sum .mid{font-size:3.4rem}
.dr-sum .pills{display:flex;gap:.6rem;flex-wrap:wrap}
.dr-sum .acts{display:flex;gap:.7rem;margin-left:auto}
.dr-tabs{display:flex;gap:.4rem;margin-top:1.8rem;padding:.4rem;border-radius:99px;background:rgba(255,255,255,.05);flex:none;align-self:flex-start}
.dr-tabs button{height:3.4rem;padding:0 1.5rem;border:0;border-radius:99px;background:none;font-size:1.26rem;font-weight:700;color:var(--ink-3);white-space:nowrap;transition:background .35s var(--ease),color .35s var(--ease)}
.dr-tabs button:hover,.dr-tabs button[data-ph-hover]{color:var(--ink)}
.dr-tabs button[aria-selected="true"]{color:var(--ink);background:rgb(var(--cyan) / .18);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.dr-body{flex:1;min-height:0;margin:1.6rem -1rem 0;padding:0 1rem 2.4rem}
.panel{animation:panelIn .45s var(--ease)}
@keyframes panelIn{from{opacity:0;transform:translateY(.6rem)}}
/* Tidslinje */
.ptl{position:relative;list-style:none;margin:0;padding:0}
.ptl::before{content:"";position:absolute;left:1.7rem;top:1rem;bottom:1rem;width:2px;border-radius:2px;background:linear-gradient(180deg,rgb(var(--cyan) / .45),rgba(255,255,255,.06))}
.ev{--c:var(--blue);position:relative;display:grid;grid-template-columns:3.4rem minmax(0,1fr);gap:1.2rem;padding:.6rem 0 1.3rem}
.ev .ei{position:relative;z-index:1;display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;color:rgb(var(--c));background:radial-gradient(circle at 30% 25%,rgb(var(--c) / .3),rgb(var(--c) / .1)),#0e1326;box-shadow:0 0 18px -6px rgb(var(--c) / .8)}
.ev .ei svg.i{width:1.55rem;height:1.55rem}
.ev .eb{min-width:0;padding:.9rem 1.3rem 1rem;border-radius:18px;background:var(--surf)}
.ev .eh{display:flex;align-items:baseline;gap:1rem}
.ev .eh b{font-size:1.3rem;font-weight:700;line-height:1.3}
.ev .eh time{margin-left:auto;font-size:1.1rem;font-weight:600;color:var(--ink-3);white-space:nowrap}
.ev p{margin:.35rem 0 0;font-size:1.24rem;font-weight:500;line-height:1.5;color:var(--ink-2)}
.ev .by{margin-top:.4rem;font-size:1.08rem;font-weight:600;color:var(--ink-3)}
.ev.fresh .eb{background:rgb(var(--mint) / .09);box-shadow:inset 0 0 0 1px rgb(var(--mint) / .3)}
.ev .thumb{display:block;width:16rem;aspect-ratio:4/3;margin-top:.8rem;border-radius:12px;object-fit:cover;object-position:50% 52%}
.ev .jr{display:inline-flex;align-items:center;gap:.4rem;margin-top:.6rem;font-size:1.08rem;font-weight:700;color:rgb(var(--amber))}
.ev .jr svg.i{width:1.3rem;height:1.3rem}
/* Før/efter */
.ba{position:relative;width:100%;aspect-ratio:4/3;border-radius:22px;overflow:hidden;cursor:ew-resize;user-select:none;touch-action:none;background:#0d1120;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 20px 40px -20px rgba(0,0,0,.9)}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
.ba .ba-after{clip-path:inset(0 0 0 var(--pos))}
.ba-tag{position:absolute;top:1.2rem;padding:.4rem 1.1rem;border-radius:99px;font-size:1.15rem;font-weight:700;color:#fff;background:rgba(8,10,20,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ba-tag.l{left:1.2rem}
.ba-tag.r{right:1.2rem}
.ba-line{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 14px rgba(255,255,255,.8)}
.ba-handle{position:absolute;top:84%;left:50%;width:4.4rem;height:4.4rem;margin:-2.2rem 0 0 -2.2rem;display:grid;place-items:center;border:0;border-radius:50%;color:#0b0f1e;
  background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.25),0 8px 20px rgba(0,0,0,.5)}
.ba-handle svg.i{width:2rem;height:2rem;stroke-width:2.2}
.ba-cap{display:flex;justify-content:space-between;margin-top:.9rem;font-size:1.15rem;font-weight:600;color:var(--ink-3)}
.notice{display:flex;align-items:flex-start;gap:1rem;margin-top:1.4rem;padding:1.2rem 1.4rem;border-radius:18px;font-size:1.26rem;font-weight:500;line-height:1.45;color:var(--ink-2);
  background:rgb(var(--amber) / .09);box-shadow:inset 0 0 0 1px rgb(var(--amber) / .28)}
.notice svg.i{width:2rem;height:2rem;color:rgb(var(--amber));margin-top:.1rem}
.notice b{display:block;color:var(--ink);font-weight:700}
/* Behandlingsplan */
.plan{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.plan li{display:flex;align-items:center;gap:1.2rem;padding:1rem 1.4rem;border-radius:16px;background:var(--surf);font-size:1.28rem;font-weight:500;color:var(--ink-2)}
.plan li b{margin-left:auto;font-weight:600;color:var(--ink);white-space:nowrap}
.plan li .bar-s{width:6rem;height:.5rem;border-radius:99px;background:rgba(255,255,255,.07);flex:none;overflow:hidden}
.plan li .bar-s i{display:block;height:100%;width:calc(var(--v) * 100%);border-radius:inherit;background:linear-gradient(90deg,rgb(var(--cyan)),rgb(var(--violet)))}
.plan li.total{background:rgb(var(--cyan) / .1);color:var(--ink);font-weight:700}
.plan li.total b{font-size:1.6rem}
.fin{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.4rem}
.fin div{padding:1.3rem 1.5rem;border-radius:18px;background:var(--surf);box-shadow:var(--lift)}
.fin span{display:block;font-size:1.15rem;font-weight:600;color:var(--ink-3)}
.fin b{display:block;margin-top:.4rem;font-size:2.4rem;font-weight:400;letter-spacing:-.03em}
.fin small{font-size:1.12rem;font-weight:500;color:var(--ink-3)}
.fine{margin:1.2rem 0 0;font-size:1.15rem;font-weight:500;line-height:1.5;color:var(--ink-3)}
/* Samtykker */
.cons-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}
.crow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.2rem;padding:1.1rem 1.4rem 1.1rem 1.1rem;border-radius:18px;background:var(--surf)}
.crow .ci{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;color:rgb(var(--mint));background:rgb(var(--mint) / .12)}
.crow .ci.no{color:rgb(var(--amber));background:rgb(var(--amber) / .12)}
.crow .ci svg.i{width:1.6rem;height:1.6rem;stroke-width:2.1}
.crow b{display:block;font-size:1.32rem;font-weight:700}
.crow small{display:block;font-size:1.18rem;font-weight:500;color:var(--ink-3)}
.crow .cd{font-size:1.2rem;font-weight:600;color:var(--ink-2);white-space:nowrap}
.crow .cd.no{color:rgb(var(--amber))}

/* ---------- Toast og søgning ---------- */
.toasts{position:absolute;z-index:80;top:1.2rem;right:1.6rem;display:flex;flex-direction:column;gap:1rem;pointer-events:none}
.toast{--acc:var(--mint);display:flex;align-items:center;gap:1.3rem;width:42rem;padding:1.3rem 1.6rem 1.3rem 1.3rem;border-radius:24px;pointer-events:auto;
  background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.03)),rgba(16,20,40,.92);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 26px 50px -18px rgba(0,0,0,.9),0 0 44px -14px rgb(var(--acc) / .75);animation:toastIn .55s var(--ease) backwards}
.toast.out{transition:opacity .45s var(--ease),transform .45s var(--ease);opacity:0;transform:translateY(-1.6rem) scale(.98)}
@keyframes toastIn{from{opacity:0;transform:translateY(-2rem) scale(.97)}}
.toast .ti{display:grid;place-items:center;width:4rem;height:4rem;border-radius:50%;flex:none;color:#0b0a18;
  background:linear-gradient(135deg,rgb(var(--acc)),rgb(var(--acc) / .7));box-shadow:0 0 22px -4px rgb(var(--acc) / .9)}
.toast .ti svg.i{width:2rem;height:2rem;stroke-width:2}
.toast div{min-width:0}
.toast b{display:block;font-size:1.36rem;font-weight:700}
.toast span{display:block;font-size:1.22rem;font-weight:500;color:var(--ink-3)}
.toast time{margin-left:auto;align-self:flex-start;font-size:1.08rem;font-weight:600;color:var(--ink-3);white-space:nowrap}

.pal{position:absolute;inset:0;z-index:60;display:grid;justify-items:center;align-items:start;padding-top:12rem;background:rgba(3,5,10,.55);
  opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}
.pal.open{opacity:1;pointer-events:auto}
.pal-box{--acc:var(--cyan);width:60rem;padding:1.2rem;border-radius:28px;transform:translateY(-1rem) scale(.98);transition:transform .45s var(--ease);
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03)),rgba(14,19,38,.9)}
.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:rgba(255,255,255,.06)}
.pal-in svg.i{color:rgb(var(--cyan))}
.pal-in input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:1.6rem;font-weight:500;color:var(--ink)}
.pal-in input::placeholder{color:var(--ink-3)}
.pal-list{list-style:none;margin:.8rem 0 0;padding:0;max-height:44rem;overflow:auto;scrollbar-width:none}
.pal-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.2rem;padding:.8rem 1.6rem .8rem .8rem;border-radius:99px;cursor:pointer;transition:background .3s var(--ease)}
.pal-list li.sel,.pal-list li:hover,.pal-list li[data-ph-hover]{background:rgb(var(--cyan) / .12)}
.pal-list li b{display:block;font-weight:700;font-size:1.36rem}
.pal-list li small{display:block;font-size:1.15rem;font-weight:500;color:var(--ink-3)}
.pal-list li .amt{font-size:1.3rem;font-weight:600;color:var(--ink-2);text-align:right}
.pal-list li .amt small{text-align:right}
.pal-list .pal-empty{display:block;padding:2rem;text-align:center;color:var(--ink-3);cursor:default}
.pal-list .pal-empty:hover{background:none}
.pal-list .go .av{--acc:var(--violet)}
.pal-foot{display:flex;gap:1.6rem;padding:1.1rem 1.6rem .4rem;font-size:1.12rem;font-weight:500;color:var(--ink-3)}

/* ---------- Indlæsning og visningsskift ---------- */
#app.pre .rail,#app.pre .top,#app.pre .view.on > *{opacity:0}
.view .in{animation:cardIn .5s var(--ease) backwards;animation-delay:var(--delay,0s)}
.rail.in,.top.in{animation:fadeIn .45s var(--ease) backwards}
@keyframes cardIn{from{opacity:0;transform:translateY(1.6rem) scale(.985)}}
/* Lodret optagelse: kameraet står på dette kort fra første billede, så det toner ikke ind (tallet tæller stadig op) */
html.ph-frame #c-radar.in{animation:none}
@keyframes fadeIn{from{opacity:0;transform:translateY(-.6rem)}}

/* Desktop: Mere-knap og ark findes kun på mobil */
.mob-more{display:none}
.mob-sheet,.sheet-list{display:contents}
.sheet-list{list-style:none;margin:0;padding:0}

/* Smal skærm (tablet og mobil, op til 820 px): fanebar nederst med fire faner og Mere */
@media (max-width:820px){
  .shell{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;padding:1rem;gap:1rem}
  .main{order:1;grid-template-rows:minmax(0,1fr)}
  .rail{order:2;flex-direction:row;justify-content:stretch;padding:.4rem;gap:0;border-radius:24px;overflow:visible}
  .rail .mark{display:none}
  .nav-list{flex-direction:row;gap:.2rem}
  .nav-list > li{flex:1 1 0;min-width:0}
  .nav{min-height:5.2rem;min-width:44px;padding:.8rem .2rem .7rem;gap:.4rem;font-size:1.1rem;white-space:nowrap}
  .badge{top:.4rem;right:auto;left:calc(50% + 1.3rem)}
  .mob-more{display:block}
  .mob-sheet{display:none}
  .rail.more-open{z-index:5}
  .rail.more-open .mob-sheet{display:block;position:absolute;right:.4rem;bottom:calc(100% + 1rem);z-index:20;min-width:17rem;padding:.6rem;border-radius:22px;
    background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.025) 40%),#0c1022;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 24px 48px -16px rgba(0,0,0,.8)}
  .rail.more-open .sheet-list{display:flex;flex-direction:column;gap:.4rem}
  .rail.more-open .sheet-list .nav{flex-direction:row;justify-content:flex-start;gap:1.2rem;padding:0 1.4rem;font-size:1.3rem}
  .top{display:none}
  .view.on{overflow-y:auto;display:flex;flex-direction:column;gap:1rem}
  .rrow .btn{padding:0 .9rem}
  .view.on > .card,.view.on > .side{min-height:34rem;flex:none}
  .drawer{left:1rem;right:1rem;width:auto}
  kbd,.pal-foot{display:none}
  /* Kalender: rasteret får fast højde, så aftalerne kan være der; dagsnavne uden "+ N andre" */
  .grid-wrap{flex:none;height:54rem}
  .g-head{grid-template-columns:4.2rem repeat(var(--n),minmax(0,1fr));gap:.4rem}
  .g-body{grid-template-columns:4.2rem repeat(var(--n),minmax(0,1fr));gap:.4rem}
  .g-head .gh{padding:.7rem .4rem;justify-content:center}
  .g-head .gh small{display:none}
  .g-hours span{right:.2rem}
  /* Pipeline: kolonnerne scroller vandret i stedet for at presse tekst sammen */
  .pulse-row{display:none}
  .cols{grid-template-columns:repeat(5,minmax(17rem,1fr));overflow-x:auto;padding-bottom:.6rem}
  .board .c-head{flex-wrap:wrap}
  .chips{flex-wrap:wrap;margin-left:0}
}
/* Pegeredskab uden hover: tastaturgenveje giver ingen mening */
@media (hover:none){kbd,.pal-foot{display:none}}
/* Smal bærbar og tablet liggende: topbaren skal kunne være på linjen */
@media (min-width:821px) and (max-width:1180px){
/* Gælder ikke i demo-rammen (9:16 er 1080 px bred): */ :root:not(.ph-frame){
  .demo{display:none}
  .search{width:auto;padding:0 1.4rem}
  .search span,.search kbd{display:none}
  .greet p{white-space:normal}
}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  #app.pre .rail,#app.pre .top,#app.pre .view.on > *{opacity:1}
}
