/* Stål & Spån MES — tema B grafit-bento.
   Næsten sort, mat grafit, én elektrisk lime. Ingen blur. Alt måles i rem (PH.fitRem: 10 px ved 1600×1000).
   Statusfarver: kører lime · omstilling grå · stop koral · materiale rav. */
:root{
  --bg:#060709;
  --txt:#F3F5F0;
  --txt-2:#B5BAC1;
  --txt-3:#878D96;
  --s1:rgba(255,255,255,.025);
  --s2:rgba(255,255,255,.04);
  --s2h:rgba(255,255,255,.07);
  --acc:#C8FA4E; --acc-rgb:200,250,78; --acc-ink:#0D1203;
  --stop:#FF8B5E; --stop-rgb:255,139,94;
  --mat:#FFB224; --mat-rgb:255,178,36;
  --set:#8B93A1; --set-rgb:139,147,161;
  --r-card:26px; --r-in:16px;
  --gap:1.6rem; --pad:2.4rem;
  --f:'Sora',ui-sans-serif,system-ui,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Consolas,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --tempo:1;
  --ph-ripple:rgba(200,250,78,.75);
  --ph-frame-bg:#060709;
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:10px;background:var(--bg);color-scheme:dark}
body{background:var(--bg);overflow:hidden}
#app{position:fixed;inset:0;overflow:hidden;background:var(--bg);font-family:var(--f);color:var(--txt);font-size:1.3rem;line-height:1.45;
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
svg{display:block}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ico{width:1.7rem;height:1.7rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ico.sm{width:1.4rem;height:1.4rem}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* Baggrund: dæmpet prikgitter og blød glød, inde i #app */
.bgfx{position:absolute;inset:0;pointer-events:none;z-index:0}
.bgfx::before{content:'';position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1.3px);background-size:2.8rem 2.8rem;
  -webkit-mask:radial-gradient(70% 55% at 35% 0%,#000,transparent 80%);mask:radial-gradient(70% 55% at 35% 0%,#000,transparent 80%)}
.bgfx::after{content:'';position:absolute;inset:0;
  background:radial-gradient(38% 34% at 24% 6%,rgba(var(--acc-rgb),.08),transparent 70%),radial-gradient(34% 44% at 88% 82%,rgba(var(--acc-rgb),.045),transparent 70%)}

/* ---------- Skal ---------- */
.shell{position:relative;z-index:1;height:100%;display:grid;grid-template-columns:8.8rem minmax(0,1fr);gap:1.6rem;padding:1.6rem 1.7rem 1.6rem 1.6rem}
.rail{display:flex;flex-direction:column;align-items:center;padding:1.6rem 0 1.5rem;border-radius:28px;min-height:0;
  background:linear-gradient(180deg,#121519,#0C0E11);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 30px 60px -30px rgba(0,0,0,.9)}
.mark{width:4.4rem;height:4.4rem;border-radius:50%;display:grid;place-items:center;color:var(--acc);margin-bottom:2.4rem;flex:none;
  background:radial-gradient(circle at 35% 30%,rgba(var(--acc-rgb),.3),rgba(var(--acc-rgb),.06) 70%);box-shadow:0 0 28px -6px rgba(var(--acc-rgb),.6),inset 0 0 0 1px rgba(var(--acc-rgb),.25)}
.mark .ico{width:2.1rem;height:2.1rem}
.nav{display:flex;flex-direction:column;gap:1.3rem;width:100%}
.nav button{position:relative;border-radius:16px;display:flex;flex-direction:column;align-items:center;gap:.25rem;color:var(--txt-3);font-size:1.02rem;font-weight:500;letter-spacing:.005em;transition:color .4s var(--ease);padding:0 .2rem}
.nav .ic{position:relative;width:3.9rem;height:3.9rem;border-radius:50%;display:grid;place-items:center;transition:background .4s var(--ease),color .4s var(--ease),box-shadow .4s var(--ease)}
.nav button:hover,.nav button[data-ph-hover]{color:var(--txt)}
.nav button:hover .ic,.nav button[data-ph-hover] .ic{background:var(--s2h)}
.nav button.on{color:var(--txt)}
.nav button.on .ic{background:var(--acc);color:var(--acc-ink);box-shadow:0 0 26px -4px rgba(var(--acc-rgb),.75),inset 0 1px 0 rgba(255,255,255,.5)}
.nav .badge{position:absolute;top:-.2rem;right:-.3rem;min-width:1.6rem;height:1.6rem;padding:0 .4rem;border-radius:99px;font-size:.88rem;font-weight:700;display:grid;place-items:center;background:#262A30;color:var(--txt)}
.nav .badge.warn{background:var(--stop);color:#1A0B05;box-shadow:0 0 12px rgba(var(--stop-rgb),.6)}
.nav .badge:empty{display:none}
.rail-foot{margin-top:auto}
.round{width:3.9rem;height:3.9rem;border-radius:50%;display:grid;place-items:center;color:var(--txt-2);background:var(--s2);transition:background .4s var(--ease),color .4s var(--ease)}
.round:hover,.round[data-ph-hover]{background:var(--s2h);color:var(--txt)}

.main{display:grid;grid-template-rows:auto minmax(0,1fr);gap:1.6rem;min-width:0;min-height:0}
.top{display:flex;align-items:center;gap:1.2rem;padding:.4rem .3rem 0 .4rem}
.hello{min-width:0}
.hello h1{font-size:2.45rem;font-weight:600;letter-spacing:-.03em;line-height:1.15;white-space:nowrap}
.hello p{margin-top:.35rem;font-size:1.2rem;color:var(--txt-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hello p b{color:var(--txt-2);font-weight:600}
.hello p b.warn{color:var(--mat)}
.top-r{margin-left:auto;display:flex;align-items:center;gap:.9rem;flex:none}
.search{display:flex;align-items:center;gap:1rem;width:34rem;height:4.3rem;padding:0 .65rem 0 1.55rem;border-radius:99px;background:#101215;color:var(--txt-3);font-size:1.2rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:box-shadow .4s var(--ease),color .4s var(--ease)}
.search span{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search:hover,.search[data-ph-hover]{box-shadow:inset 0 0 0 1px rgba(var(--acc-rgb),.35);color:var(--txt-2)}
kbd{font-family:var(--f);font-size:1rem;font-weight:500;color:var(--txt-2);min-width:2.6rem;height:2.6rem;padding:0 .8rem;border-radius:99px;background:var(--s2h);display:inline-grid;place-items:center;white-space:nowrap;line-height:1}
.search kbd{height:3rem;padding:0 1rem}
.clock-chip{display:flex;align-items:center;gap:.7rem;height:4.3rem;padding:0 1.5rem;border-radius:99px;background:#101215;font-size:1.3rem;font-weight:600}
.clock-chip em{font-style:normal;font-size:1.05rem;font-weight:500;color:var(--txt-3)}
.live{width:.7rem;height:.7rem;border-radius:50%;background:var(--acc);flex:none;box-shadow:0 0 0 0 rgba(var(--acc-rgb),.55)}
.go .live{animation:beat 2.2s ease-out infinite}
@keyframes beat{0%{box-shadow:0 0 0 0 rgba(var(--acc-rgb),.55)}70%,100%{box-shadow:0 0 0 .7rem rgba(var(--acc-rgb),0)}}
.demo-chip{font-size:1rem;font-weight:500;color:var(--txt-3);padding:.65rem 1.15rem;border-radius:99px;background:rgba(255,255,255,.025);white-space:nowrap}
.me{display:flex;align-items:center;gap:1rem;height:4.3rem;padding:0 1.6rem 0 .45rem;border-radius:99px;background:#101215}
.avatar{width:3.4rem;height:3.4rem;border-radius:50%;display:grid;place-items:center;font-size:1.05rem;font-weight:600;color:var(--acc-ink);background:linear-gradient(140deg,#E2FF9A,#A6DC33)}
.me b{display:block;font-size:1.15rem;font-weight:600;line-height:1.2;white-space:nowrap}
.me span{display:block;font-size:.98rem;color:var(--txt-3);white-space:nowrap}

/* ---------- Visninger ---------- */
.views{position:relative;min-height:0;min-width:0}
.view{position:absolute;inset:0;display:none;gap:var(--gap);min-height:0}
.view.on{display:grid}

/* ---------- Kort ---------- */
.card{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;isolation:isolate;
  padding:var(--pad);border-radius:var(--r-card);
  background:linear-gradient(180deg,#15181C 0%,#0F1114 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 2px 6px rgba(0,0,0,.35),0 34px 64px -34px rgba(0,0,0,.95);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.card::after{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;z-index:3;
  background:radial-gradient(32rem circle at var(--mx,50%) var(--my,0%),rgba(var(--acc-rgb),.55),rgba(var(--acc-rgb),.06) 55%,transparent 75%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  opacity:0;transition:opacity .5s var(--ease)}
.card:hover,.card[data-ph-hover]{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 0 1px rgba(var(--acc-rgb),.08),0 22px 60px -24px rgba(var(--acc-rgb),.2),0 34px 64px -34px rgba(0,0,0,.95)}
.card:hover::after,.card[data-ph-hover]::after{opacity:1}
.card.still:hover,.card.still[data-ph-hover]{transform:none}
.card.ping,.view.go .card.ping{animation:ping 1.2s var(--ease)}
@keyframes ping{0%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 34px 64px -34px rgba(0,0,0,.95)}35%{box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 0 1px rgba(var(--acc-rgb),.55),0 0 70px -10px rgba(var(--acc-rgb),.45)}}
.aura{position:absolute;z-index:-1;pointer-events:none;border-radius:50%}

.ch{display:flex;align-items:center;gap:.9rem;min-height:2.6rem;flex:none}
.ch h2{font-size:1.4rem;font-weight:600;letter-spacing:-.01em;white-space:nowrap}
.ch .q{font-size:1.1rem;color:var(--txt-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch .r{margin-left:auto;display:flex;align-items:center;gap:.7rem;flex:none}
.pill{display:inline-flex;align-items:center;gap:.5rem;height:2.45rem;padding:0 1.05rem;border-radius:99px;font-size:1.02rem;font-weight:600;white-space:nowrap;background:var(--s2);color:var(--txt-2);flex:none}
.pill .ico{width:1.2rem;height:1.2rem}
.pill.acc{color:var(--acc);background:rgba(var(--acc-rgb),.1)}
.pill.stop{color:var(--stop);background:rgba(var(--stop-rgb),.11)}
.pill.mat{color:var(--mat);background:rgba(var(--mat-rgb),.11)}
.pill.set{color:#C2C8D1;background:rgba(var(--set-rgb),.16)}
.pill .dot{width:.65rem;height:.65rem;border-radius:50%;background:currentColor;flex:none}
.go .pill .dot.beat{animation:beatc 2.2s ease-out infinite}
@keyframes beatc{0%{box-shadow:0 0 0 0 currentColor}70%,100%{box-shadow:0 0 0 .6rem transparent}}

.big{font-weight:600;letter-spacing:-.045em;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}
.big .u{font-size:.36em;font-weight:500;letter-spacing:0;color:var(--txt-3);margin-left:.28em}
.quiet{font-size:1.15rem;color:var(--txt-3)}
.quiet b{color:var(--txt-2);font-weight:500}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;height:3.55rem;padding:0 1.7rem;border-radius:99px;font-size:1.12rem;font-weight:600;white-space:nowrap;flex:none;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .4s var(--ease),opacity .3s}
.btn:active{transform:scale(.97)}
.btn.acc{background:var(--acc);color:var(--acc-ink);box-shadow:0 8px 26px -8px rgba(var(--acc-rgb),.7),inset 0 1px 0 rgba(255,255,255,.55)}
.btn.acc:hover,.btn.acc[data-ph-hover]{box-shadow:0 10px 34px -6px rgba(var(--acc-rgb),.85),inset 0 1px 0 rgba(255,255,255,.55)}
.btn.ghost{background:var(--s2h);color:var(--txt)}
.btn.ghost:hover,.btn.ghost[data-ph-hover]{background:rgba(255,255,255,.11)}
.btn.sm{height:3rem;padding:0 1.3rem;font-size:1.04rem}
.btn kbd{height:2.1rem;min-width:2.1rem;padding:0 .55rem;font-size:.92rem;background:rgba(0,0,0,.14);color:inherit}
.btn.ghost kbd{background:rgba(255,255,255,.08)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;box-shadow:none}

/* Statusprik og -navne */
.st{display:inline-flex;align-items:center;gap:.5rem;font-size:1.02rem;font-weight:600;white-space:nowrap}
.st i{width:.7rem;height:.7rem;border-radius:50%;background:currentColor;flex:none}
.st-run{color:var(--acc)} .st-setup{color:#B9C0CA} .st-stop{color:var(--stop)} .st-mat{color:var(--mat)}
.st-run i{box-shadow:0 0 8px rgba(var(--acc-rgb),.8)}
.st-stop i{box-shadow:0 0 8px rgba(var(--stop-rgb),.8)}
.st-mat i{box-shadow:0 0 8px rgba(var(--mat-rgb),.8)}

/* ---------- Overblik: bento ---------- */
.v-overblik{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:1.78fr 1.64fr 1fr;
  grid-template-areas:"mach mach mach mach mach mach mach mach flask flask flask flask" "plan plan plan plan plan plan plan plan ai ai ai ai" "flow flow flow flow flow util util util ai ai ai ai"}
.c-mach{grid-area:mach}.c-flask{grid-area:flask}.c-plan{grid-area:plan}.c-ai{grid-area:ai}.c-flow{grid-area:flow}.c-util{grid-area:util}

/* 1 Maskiner */
.c-mach .aura{width:55%;height:90%;left:-14%;top:-45%;background:radial-gradient(closest-side,rgba(var(--acc-rgb),.12),transparent)}
.mach-num{display:flex;align-items:baseline;gap:1.1rem;margin-top:1rem;flex:none}
.mach-num .big{font-size:4.4rem}
.mach-num .lbl{font-size:1.5rem;font-weight:500;letter-spacing:-.01em}
.mach-num .quiet{margin-left:auto;align-self:center}
.filters{display:flex;gap:.5rem}
.fchip{display:inline-flex;align-items:center;gap:.55rem;height:2.7rem;padding:0 1.05rem;border-radius:99px;background:var(--s2);font-size:1.02rem;font-weight:600;color:var(--txt-2);transition:background .35s var(--ease),box-shadow .35s var(--ease),color .35s}
.fchip b{font-weight:700;color:var(--txt)}
.fchip i{width:.65rem;height:.65rem;border-radius:50%;background:currentColor}
.fchip:hover,.fchip[data-ph-hover]{background:var(--s2h)}
.fchip[aria-pressed="true"]{background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);color:var(--txt)}
.fchip.zero{opacity:.45}
.fchip.st-run i{color:var(--acc)}.fchip.st-setup i{color:var(--set)}.fchip.st-stop i{color:var(--stop)}.fchip.st-mat i{color:var(--mat)}
.fchip.st-run,.fchip.st-setup,.fchip.st-stop,.fchip.st-mat{color:var(--txt-2)}
.mtiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:1.1rem;flex:1;min-height:0;margin-top:1.3rem}
.mt{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1.2rem;min-height:0;padding:0 1.3rem 0 1.1rem;border-radius:18px;background:var(--s2);text-align:left;
  transition:background .4s var(--ease),box-shadow .4s var(--ease),opacity .4s var(--ease),transform .4s var(--ease)}
.mt:hover,.mt[data-ph-hover]{background:var(--s2h)}
.mt.sel{background:rgba(var(--acc-rgb),.07);box-shadow:inset 0 0 0 1px rgba(var(--acc-rgb),.4)}
.mt.dim{opacity:.28}
.mt.alert{background:linear-gradient(135deg,rgba(var(--mat-rgb),.09),rgba(var(--mat-rgb),.025))}
.mt.alert.stp{background:linear-gradient(135deg,rgba(var(--stop-rgb),.09),rgba(var(--stop-rgb),.025))}
.ring{position:relative;width:6rem;height:6rem;flex:none}
.ring svg{width:100%;height:100%;overflow:visible}
.ring .rv{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;letter-spacing:-.03em}
.ring .rv small{font-size:.62em;font-weight:500;color:var(--txt-3);margin-left:.05em}
.ring .arc{transition:stroke-dashoffset .9s var(--ease),stroke .4s}
.mt-tx{min-width:0;display:flex;flex-direction:column;gap:.3rem;container-type:inline-size}
.mt-nm .nt{display:none}
@container (max-width:11rem){.mt-nm .nl{display:none}.mt-nm .nt{display:inline}}
.mt-nm{display:flex;align-items:baseline;gap:.55rem;min-width:0}
.mt-nm em{font-style:normal;font-size:1rem;font-weight:600;color:var(--txt-3)}
.mt-nm b{font-size:1.24rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mt-f{font-size:.98rem;color:var(--txt-3);white-space:nowrap}
.mt-f b{color:var(--txt-2);font-weight:600}
.mt kbd{position:absolute;top:.8rem;right:.9rem;height:1.9rem;min-width:1.9rem;padding:0 .5rem;font-size:.88rem;opacity:0;transition:opacity .3s}
.mt:hover kbd,.mt[data-ph-hover] kbd,.mt.sel kbd{opacity:1}

/* 2 Flaskehals */
.c-flask .aura{width:80%;height:80%;right:-28%;top:-30%;background:radial-gradient(closest-side,rgba(var(--mat-rgb),.14),transparent)}
.c-flask.ok .aura{background:radial-gradient(closest-side,rgba(var(--acc-rgb),.14),transparent)}
.fl-what{margin-top:1.2rem;font-size:1.25rem;font-weight:600;letter-spacing:-.01em}
.fl-what span{color:var(--txt-3);font-weight:500}
.fl-num{display:flex;align-items:baseline;gap:1rem;margin-top:.8rem}
.fl-num .big{font-size:5.2rem}
.fl-num .lbl{font-size:1.35rem;font-weight:500;color:var(--txt-2)}
.c-flask:not(.ok) .fl-num .big{color:var(--mat);text-shadow:0 0 34px rgba(var(--mat-rgb),.35)}
.c-flask.ok .fl-num .big{color:var(--acc);text-shadow:0 0 34px rgba(var(--acc-rgb),.35)}
.fl-text{margin-top:.8rem;font-size:1.15rem;line-height:1.5;color:var(--txt-3)}
.fl-text b{color:var(--txt-2);font-weight:600}
.fl-pills{display:flex;gap:.6rem;margin-top:1.1rem;flex-wrap:wrap}
.fl-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-top:1.2rem}
.fl-facts div{padding:.85rem 1.05rem;border-radius:14px;background:var(--s2);min-width:0}
.fl-facts span{display:block;font-size:.95rem;color:var(--txt-3);white-space:nowrap}
.fl-facts b{display:block;font-size:1.25rem;font-weight:600;margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fl-facts b.mat{color:var(--mat)}
.fl-act{display:flex;gap:.7rem;margin-top:auto;padding-top:1.2rem}
.c-flask.flash,.view.go .c-flask.flash{animation:flash 1.6s var(--ease)}
@keyframes flash{0%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 34px 64px -34px rgba(0,0,0,.95)}30%{box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 0 1px rgba(var(--mat-rgb),.6),0 0 70px -10px rgba(var(--mat-rgb),.5)}}

/* 3 Døgnplan (Gantt) */
.gantt{position:relative;display:grid;grid-template-columns:var(--lab,12.6rem) minmax(0,1fr);grid-template-rows:auto repeat(8,minmax(0,1fr));column-gap:1.1rem;flex:1;min-height:0;margin-top:1.1rem}
.g-axis{grid-column:2;grid-row:1;position:relative;height:2.6rem}
.g-sh{position:absolute;top:0;height:1.3rem;font-size:.98rem;font-weight:600;color:var(--txt-2);white-space:nowrap;padding-left:.2rem}
.g-sh em{font-style:normal;font-weight:500;color:var(--txt-3);margin-left:.4rem}
.g-hr{position:absolute;bottom:0;font-size:.92rem;color:var(--txt-3);transform:translateX(-50%);white-space:nowrap}
.g-lab{display:flex;align-items:center;gap:.6rem;min-width:0;min-height:0;font-size:1.08rem;cursor:pointer;border-radius:99px;padding:0 .4rem}
.g-lab em{font-style:normal;font-size:.95rem;font-weight:700;color:var(--txt-3);width:2.2rem;flex:none}
.g-lab b{font-weight:500;color:var(--txt-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-lab i{width:.65rem;height:.65rem;border-radius:50%;flex:none;margin-left:auto}
.g-lab .ico{width:1.2rem;height:1.2rem;color:var(--txt-3);flex:none}
.g-lab.st-run i{background:var(--acc);box-shadow:0 0 8px rgba(var(--acc-rgb),.8)}
.g-lab.st-setup i{background:var(--set)}
.g-lab.st-stop i{background:var(--stop);box-shadow:0 0 8px rgba(var(--stop-rgb),.8)}
.g-lab.st-mat i{background:var(--mat);box-shadow:0 0 8px rgba(var(--mat-rgb),.8)}
.g-lab.sel b{color:var(--txt)}
.lane{position:relative;margin:.22rem 0;border-radius:99px;background:var(--s1);min-height:0;transition:background .3s,box-shadow .3s,opacity .3s}
.lane .night{position:absolute;top:0;bottom:0;right:0;border-radius:0 99px 99px 0;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.028) 0 .5rem,transparent .5rem 1rem)}
.lane.dim{opacity:.3}
.lane.sel{background:rgba(var(--acc-rgb),.05);box-shadow:inset 0 0 0 1px rgba(var(--acc-rgb),.18)}
.lane .lb{position:absolute;inset:0}
.lane .focus{position:absolute;left:0;top:-3rem;bottom:-3rem;visibility:hidden;pointer-events:none}
.blk{position:absolute;top:min(.28rem,calc((100% - 1.45rem)/2));bottom:min(.28rem,calc((100% - 1.45rem)/2));display:flex;align-items:center;min-width:.8rem;border-radius:99px;overflow:hidden;cursor:pointer;
  background:linear-gradient(180deg,#2A2E35,#22262C);color:var(--txt-2);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  transition:left .8s var(--ease),width .8s var(--ease),opacity .5s var(--ease),background .4s,box-shadow .4s,transform .3s var(--ease)}
.blk .b-set{position:absolute;left:0;top:0;bottom:0;background:rgba(var(--set-rgb),.2)}
.blk .b-prog{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,rgba(var(--acc-rgb),.03),rgba(var(--acc-rgb),.15));box-shadow:inset -2px 0 0 rgba(var(--acc-rgb),.8)}
.blk .b-tx{position:relative;display:flex;align-items:baseline;gap:.5rem;padding:0 .6rem;font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;min-width:0;max-width:100%}
.blk .b-tx span{font-weight:500;color:var(--txt-3);overflow:hidden;text-overflow:ellipsis}
.blk .b-tx b{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.blk .b-tx span{white-space:nowrap;min-width:0}
.blk.done{background:#191C20;color:#6E747C;box-shadow:none}
.blk.done .b-set{display:none}
.blk.running{background:linear-gradient(180deg,#30353C,#272B31);color:var(--txt)}
.blk.blocked{background:repeating-linear-gradient(135deg,rgba(var(--mat-rgb),.2) 0 .55rem,rgba(var(--mat-rgb),.07) .55rem 1.1rem);box-shadow:inset 0 0 0 1.5px rgba(var(--mat-rgb),.75);color:#FFCB6B}
.blk.blocked .b-set{display:none}
.blk.blocked .b-tx span{color:rgba(255,203,107,.75)}
.blk.stop{background:repeating-linear-gradient(135deg,rgba(var(--stop-rgb),.2) 0 .55rem,rgba(var(--stop-rgb),.07) .55rem 1.1rem);box-shadow:inset 0 0 0 1.5px rgba(var(--stop-rgb),.75);color:#FFB394}
.blk.stop .b-tx span{color:rgba(255,179,148,.75)}
.blk.fresh{box-shadow:inset 0 0 0 1.5px rgba(var(--acc-rgb),.85),0 0 22px -4px rgba(var(--acc-rgb),.6);color:var(--txt)}
.blk:hover,.blk[data-ph-hover]{transform:translateY(-1px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25),0 6px 18px -6px rgba(0,0,0,.8)}
.blk.blocked:hover,.blk.blocked[data-ph-hover]{box-shadow:inset 0 0 0 1.5px var(--mat),0 0 18px -4px rgba(var(--mat-rgb),.6)}
.blk.selo{box-shadow:inset 0 0 0 2px var(--acc),0 0 18px -4px rgba(var(--acc-rgb),.6)}
.blk.enter{opacity:0;transform:scale(.85)}
.blk.moving{opacity:.3}
.blk.leaving{opacity:0}
.blk.dragging{opacity:.35}
.blk[data-drag="1"]{cursor:grab}
.ghost-plan{position:absolute;top:.2rem;bottom:.2rem;z-index:2;border-radius:99px;border:1.5px dashed rgba(var(--acc-rgb),.8);background:linear-gradient(rgba(var(--acc-rgb),.08),rgba(var(--acc-rgb),.08)),#15181C;
  display:flex;align-items:center;padding:0 .8rem;font-size:.95rem;font-weight:600;color:var(--acc);white-space:nowrap;overflow:hidden;pointer-events:none;animation:ghostIn .5s var(--ease) both}
@keyframes ghostIn{from{opacity:0}}
.drop-prev{position:absolute;top:.2rem;bottom:.2rem;border-radius:99px;border:1.5px dashed var(--acc);background:rgba(var(--acc-rgb),.12);pointer-events:none}
.lane.cap-ok{background:rgba(var(--acc-rgb),.045)}
.lane.cap-bad{opacity:.35}
.lane.drop-ok{box-shadow:inset 0 0 0 1.5px rgba(var(--acc-rgb),.6)}
.lane.drop-bad{box-shadow:inset 0 0 0 1.5px rgba(var(--stop-rgb),.8);opacity:1;background:rgba(var(--stop-rgb),.06)}
.away{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);height:calc(100% - .5rem);display:flex;align-items:center;gap:.4rem;padding:0 .9rem;border-radius:99px;
  font-size:.95rem;font-weight:600;color:var(--mat);background:#1A1712;box-shadow:inset 0 0 0 1px rgba(var(--mat-rgb),.5);white-space:nowrap;animation:ghostIn .6s var(--ease) both}
.g-now{position:absolute;grid-column:2;grid-row:1/-1;top:0;bottom:0;left:0;right:0;pointer-events:none;z-index:4}
.g-now .ln{position:absolute;top:2.7rem;bottom:0;width:2px;margin-left:-1px;border-radius:2px;background:var(--acc);box-shadow:0 0 10px rgba(var(--acc-rgb),.7)}
.g-now .tag{position:absolute;top:0;transform:translateX(-50%);height:2.2rem;padding:0 .75rem;display:grid;place-items:center;border-radius:99px;font-size:.98rem;font-weight:700;color:var(--acc-ink);background:var(--acc);box-shadow:0 0 16px -2px rgba(var(--acc-rgb),.7)}

/* 4 AI-planlægger */
.c-ai{background:linear-gradient(180deg,#191C21 0%,#121418 55%,#101215 100%)}
.c-ai .aura{width:90%;height:45%;left:5%;top:-22%;background:radial-gradient(closest-side,rgba(var(--acc-rgb),.13),transparent)}
.ai-head{display:flex;align-items:center;gap:1.2rem;flex:none}
.orb{position:relative;width:4.1rem;height:4.1rem;border-radius:50%;flex:none;display:grid;place-items:center;color:var(--acc);
  background:radial-gradient(circle,rgba(var(--acc-rgb),.24),rgba(var(--acc-rgb),.04) 70%);box-shadow:0 0 30px -6px rgba(var(--acc-rgb),.75),inset 0 0 0 1px rgba(var(--acc-rgb),.25)}
.orb .ico{width:1.85rem;height:1.85rem;filter:drop-shadow(0 0 6px rgba(var(--acc-rgb),.8))}
.ai-head h2{font-size:1.45rem;font-weight:600;letter-spacing:-.01em}
.ai-head p{display:flex;align-items:center;gap:.6rem;font-size:1.04rem;color:var(--txt-3);margin-top:.2rem}
.ai-head .pill{margin-left:auto}
.ai-title{display:flex;align-items:center;gap:1.1rem;margin-top:1.3rem;flex:none}
.ai-title .big{font-size:3.4rem;color:var(--acc);text-shadow:0 0 30px rgba(var(--acc-rgb),.45);min-width:2.4rem}
.ai-title span:last-child{font-size:1.45rem;font-weight:500;line-height:1.3;letter-spacing:-.01em}
.qbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;margin-top:1.1rem;flex:none}
.qbar i{height:5px;border-radius:99px;background:rgba(255,255,255,.07);transition:background .5s var(--ease),box-shadow .5s var(--ease)}
.qbar i.on{background:var(--acc);box-shadow:0 0 12px rgba(var(--acc-rgb),.7)}
.sugs{list-style:none;display:flex;flex-direction:column;gap:.7rem;margin-top:1.2rem;min-height:0;overflow:auto;scrollbar-width:none}
.sug{padding:1.05rem 1.3rem;border-radius:18px;background:rgba(255,255,255,.035);cursor:pointer;flex:none;transition:background .45s var(--ease),box-shadow .45s var(--ease)}
.sug:hover,.sug[data-ph-hover]{background:rgba(255,255,255,.055)}
.sug.open{cursor:default;background:rgba(255,255,255,.055);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 16px 40px -20px rgba(0,0,0,.8)}
.sug.new{animation:sugIn .7s var(--ease) both}
@keyframes sugIn{from{opacity:0;transform:translateY(-1rem) scale(.98)}}
.s-top{display:flex;align-items:center;gap:1rem}
.s-ic{width:2.9rem;height:2.9rem;border-radius:50%;flex:none;display:grid;place-items:center;color:var(--txt-2);background:linear-gradient(140deg,#2C3138,#1B1E23)}
.s-ic.mat{color:var(--mat);background:rgba(var(--mat-rgb),.12)}
.s-ic.stop{color:var(--stop);background:rgba(var(--stop-rgb),.12)}
.s-ic.acc{color:var(--acc);background:rgba(var(--acc-rgb),.1)}
.s-top > div{min-width:0}
.s-top > div > b{display:block;font-size:1.2rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s-top > div > span{display:block;font-size:1rem;color:var(--txt-3);margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s-act{display:flex;align-items:center;gap:.55rem;margin-left:auto;flex:none}
.s-act .btn{display:none}
.sug.open .s-act .btn{display:inline-flex}
.s-act .chev{color:var(--txt-3);font-size:1rem;white-space:nowrap}
.sug.open .chev,.sug.done .chev{display:none}
.s-act .ok{display:none;align-items:center;gap:.45rem;font-size:1rem;font-weight:600;color:var(--acc);white-space:nowrap}
.sug.done .s-act .ok{display:inline-flex}
.sug.done{background:rgba(var(--acc-rgb),.045);cursor:default}
.s-body{display:none;margin-top:.85rem;padding:.9rem 1.1rem;border-radius:16px 16px 16px 6px;font-size:1.1rem;line-height:1.55;color:var(--txt-2);
  background:linear-gradient(180deg,rgba(var(--acc-rgb),.075),rgba(var(--acc-rgb),.03))}
.sug.open .s-body{display:block}
.s-steps{list-style:none;display:flex;flex-direction:column;gap:.55rem}
.s-steps li{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.6rem;align-items:start}
.s-steps li i{width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:.92rem;font-weight:700;color:var(--acc-ink);background:var(--acc)}
.s-steps li.out i{background:var(--mat);color:#201403}
.s-steps b{color:var(--txt);font-weight:600}
.s-res{display:flex;align-items:center;gap:.8rem;margin-top:.9rem;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.06);font-size:1.05rem;color:var(--txt-3)}
.s-res b{color:var(--txt);font-weight:600}
.s-res .pill{margin-left:auto}
.s-calc{display:flex;align-items:center;gap:.9rem;padding:.4rem 0;font-size:1.1rem;color:var(--txt-2)}
.s-calc .bar{flex:1;height:4px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.s-calc .bar i{display:block;height:100%;width:40%;border-radius:99px;background:var(--acc);animation:calc 1s var(--ease) infinite}
@keyframes calc{from{transform:translateX(-100%)}to{transform:translateX(250%)}}
.ai-foot{margin-top:auto;padding-top:1.2rem;display:flex;flex-direction:column;gap:.6rem;font-size:1.04rem;line-height:1.5;color:var(--txt-3);flex:none}
.ai-foot p{display:flex;align-items:flex-start;gap:.8rem}
.ai-foot .ico{margin-top:.15rem;color:var(--acc);width:1.4rem;height:1.4rem}
.ai-foot b{color:var(--txt-2);font-weight:600}
.ai-foot .live{margin:.45rem .35rem 0 .35rem}

/* 5 Ordrer pr. fase (puls) */
.pcols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin-top:1rem;flex:none}
.pcol{min-width:0;cursor:pointer;border-radius:12px}
.pcol .k{font-size:1.08rem;color:var(--txt-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}
.pcol:hover .k,.pcol[data-ph-hover] .k{color:var(--txt)}
.pcol .n{margin-top:.3rem}
.pcol .n .big{font-size:3rem;display:inline-block;transition:color 1s var(--ease),text-shadow 1s var(--ease)}
.pcol .n small{display:block;margin-top:.35rem;font-size:1rem;color:var(--txt-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcol.hot .n small{color:var(--stop)}
.pcol.beat .big{color:rgb(var(--c));text-shadow:0 0 22px rgba(var(--c),.7);transition-duration:.12s}
.flow{position:relative;flex:1;min-height:3.6rem;margin:0 calc(var(--pad) * -1) calc(var(--pad) * -.6)}

/* 6 Udnyttelse */
.c-util .aura{width:90%;height:80%;left:20%;top:30%;background:radial-gradient(closest-side,rgba(var(--acc-rgb),.09),transparent)}
.ut-num{display:flex;align-items:center;gap:.9rem;margin-top:1rem}
.ut-num .big{font-size:3.9rem}
.ut-num .big .u{font-size:.5em;margin-left:.08em}
.ut-num .pill{opacity:0;transform:translateY(.4rem);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.ut-num .pill.on{opacity:1;transform:none}
.ut-sub{margin-top:.6rem}
.ut-bar{position:relative;height:1.1rem;margin-top:auto;border-radius:99px;background:rgba(255,255,255,.06)}
.ut-bar .fill{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,rgba(var(--acc-rgb),.35),var(--acc));box-shadow:0 0 14px rgba(var(--acc-rgb),.45);transition:width .9s var(--ease)}
.ut-bar .goal{position:absolute;top:-.5rem;bottom:-.5rem;width:2px;margin-left:-1px;border-radius:2px;background:rgba(255,255,255,.55)}
.ut-scale{display:flex;justify-content:space-between;margin-top:.6rem;font-size:.95rem;color:var(--txt-3)}
.ut-scale b{color:var(--txt-2);font-weight:600}

/* ---------- Planlægning ---------- */
.v-plan{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(0,1.25fr) minmax(0,1fr);
  grid-template-areas:"gnt gnt gnt gnt gnt gnt gnt gnt gnt que que que" "gnt gnt gnt gnt gnt gnt gnt gnt gnt cap cap cap"}
.c-gnt{grid-area:gnt}.c-que{grid-area:que}.c-cap{grid-area:cap}
.c-gnt .gantt{--lab:19rem;margin-top:1.4rem}
.c-gnt .g-lab{flex-direction:column;align-items:flex-start;justify-content:center;gap:.2rem;padding:0 .8rem;border-radius:16px}
.c-gnt .g-lab .l1{display:flex;align-items:center;gap:.6rem;width:100%;min-width:0}
.c-gnt .g-lab .l1 b{color:var(--txt);font-weight:600;font-size:1.15rem}
.c-gnt .g-lab .l2{display:flex;align-items:center;gap:.6rem;width:100%;font-size:.95rem;color:var(--txt-3);white-space:nowrap}
.c-gnt .g-lab .l2 .mini{flex:1;height:.45rem;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}
.c-gnt .g-lab .l2 .mini s{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,rgba(var(--acc-rgb),.35),var(--acc));transition:width .8s var(--ease)}
.c-gnt .lane{margin:0;height:6rem;align-self:center}
.c-gnt .blk{top:min(.45rem,calc((100% - 1.55rem)/2));bottom:min(.45rem,calc((100% - 1.55rem)/2))}
.c-gnt .blk .b-tx{font-size:1.05rem}
.seg{display:inline-flex;padding:.3rem;border-radius:99px;background:var(--s2)}
.seg button{height:2.5rem;padding:0 1.15rem;border-radius:99px;font-size:1.02rem;font-weight:600;color:var(--txt-3);transition:background .3s,color .3s}
.seg button:hover,.seg button[data-ph-hover]{color:var(--txt)}
.seg button[aria-pressed="true"]{background:rgba(255,255,255,.1);color:var(--txt)}
.legend{display:flex;gap:1.2rem;font-size:1rem;color:var(--txt-3);flex-wrap:wrap}
.legend span{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap}
.legend i{width:2.2rem;height:1.1rem;border-radius:99px;background:#2A2E35}
.legend i.l-run{background:linear-gradient(90deg,rgba(var(--acc-rgb),.3),#30353C);box-shadow:inset -2px 0 0 var(--acc)}
.legend i.l-done{background:#191C20}
.legend i.l-set{background:rgba(var(--set-rgb),.4)}
.legend i.l-mat{background:repeating-linear-gradient(135deg,rgba(var(--mat-rgb),.35) 0 3px,rgba(var(--mat-rgb),.1) 3px 6px);box-shadow:inset 0 0 0 1px var(--mat)}
.legend i.l-stop{background:repeating-linear-gradient(135deg,rgba(var(--stop-rgb),.35) 0 3px,rgba(var(--stop-rgb),.1) 3px 6px);box-shadow:inset 0 0 0 1px var(--stop)}
.g-foot{display:flex;align-items:center;gap:1.2rem;margin-top:1.2rem;flex:none}
.g-foot .legend{flex:1}
.qlist{list-style:none;display:flex;flex-direction:column;gap:.7rem;margin-top:1.2rem;min-height:0;overflow:auto;margin-right:-.6rem;padding-right:.6rem;scrollbar-width:thin;scrollbar-color:#2A2E35 transparent}
.qi{display:grid;grid-template-columns:1.6rem minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:1rem 1.2rem 1rem .8rem;border-radius:var(--r-in);background:var(--s2);cursor:grab;touch-action:none;
  transition:background .3s,box-shadow .3s,opacity .3s}
.qi:hover,.qi[data-ph-hover]{background:var(--s2h)}
.qi .ico{color:var(--txt-3);width:1.5rem;height:1.5rem}
.qi b{display:block;font-size:1.12rem;font-weight:600;white-space:nowrap}
.qi span{display:block;font-size:1rem;color:var(--txt-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qi .qr{text-align:right}
.qi .qr .pill{display:inline-flex;height:2.1rem;font-size:.92rem;padding:0 .8rem}
.qi .qr span{margin-top:.25rem}
.qi.dragging{opacity:.35}
.qi.hl{box-shadow:inset 0 0 0 1.5px rgba(var(--acc-rgb),.7)}
.q-empty{padding:2.4rem 1rem;text-align:center;color:var(--txt-3);font-size:1.1rem;border-radius:var(--r-in);background:var(--s1)}
.cap-intro{margin-top:1rem;font-size:1.1rem;line-height:1.55;color:var(--txt-3)}
.cap-intro b{color:var(--txt);font-weight:600}
.cap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:1.1rem}
.cap-m{display:flex;align-items:center;gap:.6rem;height:2.9rem;padding:0 1rem;border-radius:99px;background:var(--s2);font-size:1.02rem;color:var(--txt-2);white-space:nowrap;overflow:hidden;transition:background .3s,color .3s,box-shadow .3s}
.cap-m em{font-style:normal;font-weight:700;color:var(--txt-3);width:2rem}
.cap-m .ico{margin-left:auto;width:1.3rem;height:1.3rem}
.cap-m.ok{background:rgba(var(--acc-rgb),.09);color:var(--txt);box-shadow:inset 0 0 0 1px rgba(var(--acc-rgb),.3)}
.cap-m.ok .ico{color:var(--acc)}
.cap-m.bad{opacity:.5}
.cap-m.bad .ico{color:var(--stop)}
.cap-msg{margin-top:auto;padding:1rem 1.2rem;border-radius:var(--r-in);background:var(--s1);font-size:1.05rem;line-height:1.5;color:var(--txt-3)}
.cap-msg b{color:var(--txt-2)}
.cap-msg.ok{background:rgba(var(--acc-rgb),.07);color:var(--txt-2)}
.cap-msg.bad{background:rgba(var(--stop-rgb),.08);color:#FFC2AA}

/* Trækkes */
.dragghost{position:absolute;z-index:60;pointer-events:none;transform:translate(1.2rem,1.2rem);padding:.8rem 1.2rem;border-radius:16px;background:#1D2126;
  box-shadow:0 18px 40px -12px rgba(0,0,0,.9),inset 0 0 0 1px rgba(255,255,255,.1);font-size:1.05rem;color:var(--txt-2);white-space:nowrap}
.dragghost b{display:block;color:var(--txt);font-size:1.15rem}
.dragghost.ok{box-shadow:0 18px 40px -12px rgba(0,0,0,.9),inset 0 0 0 1.5px rgba(var(--acc-rgb),.8)}
.dragghost.ok b{color:var(--acc)}
.dragghost.bad{box-shadow:0 18px 40px -12px rgba(0,0,0,.9),inset 0 0 0 1.5px rgba(var(--stop-rgb),.85)}
.dragghost.bad b{color:var(--stop)}

/* ---------- Ordrer ---------- */
.v-ordrer{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(0,1fr) minmax(0,1fr);
  grid-template-areas:"olist olist olist olist olist olist olist olist odue odue odue odue" "olist olist olist olist olist olist olist olist orisk orisk orisk orisk"}
.c-olist{grid-area:olist}.c-odue{grid-area:odue}.c-orisk{grid-area:orisk}
.ofilters{display:flex;gap:.5rem;margin-top:1.3rem;flex-wrap:wrap;flex:none}
.ofilters .fchip{height:3rem;padding:0 1.15rem}
.osearch{display:flex;align-items:center;gap:.7rem;height:3.4rem;padding:0 1.2rem;border-radius:99px;background:#101215;color:var(--txt-3);width:24rem}
.osearch input{flex:1;min-width:0;background:none;border:0;outline:0;font-size:1.1rem;color:var(--txt)}
.osearch input::placeholder{color:var(--txt-3)}
.osearch:focus-within{box-shadow:inset 0 0 0 1px rgba(var(--acc-rgb),.5)}
.ohead,.orow{display:grid;grid-template-columns:9.6rem minmax(0,1.3fr) 13rem 13rem minmax(0,1fr) 8.6rem;align-items:center;gap:1.2rem}
.ohead{padding:0 1.4rem;margin-top:1.4rem;font-size:.98rem;color:var(--txt-3);flex:none}
.olist{list-style:none;display:flex;flex-direction:column;gap:.55rem;margin-top:.7rem;min-height:0;overflow:auto;margin-right:-.6rem;padding-right:.6rem;scrollbar-width:thin;scrollbar-color:#2A2E35 transparent}
.orow{height:4.6rem;padding:0 1.4rem;border-radius:var(--r-in);background:var(--s2);cursor:pointer;flex:none;transition:background .3s,box-shadow .3s}
.orow:hover,.orow[data-ph-hover]{background:var(--s2h)}
.orow.sel{box-shadow:inset 0 0 0 1.5px rgba(var(--acc-rgb),.6)}
.orow .id{font-size:1.08rem;font-weight:600}
.orow .pt b{display:block;font-size:1.15rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orow .pt span{display:block;font-size:.98rem;color:var(--txt-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orow .mc{font-size:1.05rem;color:var(--txt-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orow .pr{display:flex;align-items:center;gap:.8rem;font-size:1rem;color:var(--txt-3);white-space:nowrap}
.orow .pr .mini{flex:1;height:.5rem;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden;min-width:3rem}
.orow .pr .mini s{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,rgba(var(--acc-rgb),.35),var(--acc))}
.orow .du{font-size:1.04rem;color:var(--txt-2);text-align:right;white-space:nowrap}
.ph-pill{justify-self:start}
.o-empty{padding:3rem;text-align:center;color:var(--txt-3);font-size:1.15rem}
.dbars{flex:1;min-height:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem;align-items:end;margin-top:1.4rem}
.dbar{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.7rem;height:100%}
.dbar .col{position:relative;width:min(3.2rem,100%);border-radius:99px;transform-origin:bottom;transform:scaleY(0);background:linear-gradient(180deg,#3A3F47,#20242A)}
.go .dbar .col{transform:scaleY(1);transition:transform calc(.55s * var(--tempo)) var(--ease) calc((.25s + var(--i) * .05s) * var(--tempo))}
.dbar .v{font-size:1.1rem;font-weight:600;color:var(--txt-2)}
.dbar .m{font-size:1rem;color:var(--txt-3)}
.dbar.now .col{background:linear-gradient(180deg,#E4FF9C,var(--acc) 45%,#93C82A);box-shadow:0 0 34px -4px rgba(var(--acc-rgb),.6),inset 0 1px 0 rgba(255,255,255,.6)}
.dbar.now .m,.dbar.now .v{color:var(--acc)}
.rlist{list-style:none;display:flex;flex-direction:column;gap:.7rem;margin-top:1.3rem}
.rrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem 1.2rem;border-radius:var(--r-in);background:var(--s2);cursor:pointer;transition:background .3s}
.rrow:hover,.rrow[data-ph-hover]{background:var(--s2h)}
.rrow b{display:block;font-size:1.12rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rrow span{display:block;font-size:1rem;color:var(--txt-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rrow .pill{display:inline-flex;color:inherit}
.rrow .pill.mat{color:var(--mat)}.rrow .pill.stop{color:var(--stop)}
.rrow .s-ic{display:grid}

/* ---------- Maskiner ---------- */
.v-maskiner{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(0,1.1fr) minmax(0,1fr);
  grid-template-areas:"mlist mlist mlist mhero mhero mhero mhero mhero mhist mhist mhist mhist" "mlist mlist mlist mnow mnow mnow mnow mnow mday mday mday mday"}
.c-mlist{grid-area:mlist}.c-mhero{grid-area:mhero}.c-mhist{grid-area:mhist}.c-mnow{grid-area:mnow}.c-mday{grid-area:mday}
.mlist{list-style:none;display:flex;flex-direction:column;gap:.55rem;margin-top:1.2rem;flex:1;min-height:0}
.mrow{display:grid;grid-template-columns:2.6rem minmax(0,1fr) auto;align-items:center;gap:.8rem;flex:1;min-height:0;max-height:6.4rem;padding:0 1.2rem;border-radius:var(--r-in);background:var(--s2);cursor:pointer;text-align:left;transition:background .3s,box-shadow .3s}
.mrow:hover,.mrow[data-ph-hover]{background:var(--s2h)}
.mrow.sel{background:rgba(var(--acc-rgb),.08);box-shadow:inset 0 0 0 1.5px rgba(var(--acc-rgb),.55)}
.mrow em{font-style:normal;font-size:1rem;font-weight:700;color:var(--txt-3)}
.mrow b{display:block;font-size:1.12rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrow .st{font-size:.95rem;margin-top:.1rem}
.mrow .ov{font-size:1.3rem;font-weight:700;text-align:right}
.mrow .ov small{font-size:.7em;color:var(--txt-3);font-weight:500}
.mh-top{display:flex;align-items:center;gap:1rem;flex:none}
.mh-top h2{font-size:1.7rem;font-weight:600;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mh-top .r{margin-left:auto;display:flex;gap:.6rem}
.mh-sub{margin-top:.35rem;font-size:1.1rem;color:var(--txt-3);flex:none}
.mh-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(17rem,1fr);gap:2.2rem;justify-items:center;align-items:center;flex:1;min-height:0;margin-top:1rem}
.bigring{position:relative;width:min(23rem,100%);aspect-ratio:1}
.bigring svg{width:100%;height:100%;overflow:visible}
.bigring .mid{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.bigring .big{font-size:3.2rem}
.bigring .big .u{font-size:.5em;margin-left:.06em}
.bigring small{font-size:1rem;color:var(--txt-3);margin-top:.3rem}
.tyk{display:flex;flex-direction:column;gap:1.1rem;min-width:0;width:100%}
.tyk li{list-style:none;display:grid;grid-template-columns:1rem minmax(0,1fr) auto;align-items:center;gap:.8rem;font-size:1.12rem;color:var(--txt-2)}
.tyk li i{width:1rem;height:1rem;border-radius:50%}
.tyk li b{font-size:1.5rem;font-weight:700;color:var(--txt)}
.tyk li.formula{display:block;font-size:1.02rem;color:var(--txt-3);padding-top:.9rem;border-top:1px solid rgba(255,255,255,.06);line-height:1.5}
.tyk .formula b{font-size:1.02rem;color:var(--txt);font-weight:600}
.hist{position:relative;flex:1;min-height:0;margin:1rem calc(var(--pad) * -1) calc(var(--pad) * -1)}
.hist svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hist-num{display:flex;align-items:baseline;gap:.9rem;margin-top:1rem;flex:none}
.hist-num .big{font-size:3.6rem}
.hist-num .big .u{font-size:.5em;margin-left:.06em}
.now-ord{margin-top:1.2rem;flex:none}
.now-ord .id{font-size:1.05rem;color:var(--txt-3)}
.now-ord h3{font-size:1.75rem;font-weight:600;letter-spacing:-.02em;margin-top:.2rem}
.now-ord p{font-size:1.1rem;color:var(--txt-3);margin-top:.25rem}
.np{display:flex;align-items:baseline;gap:.8rem;margin-top:1.4rem}
.np .big{font-size:3.6rem}
.np-bar{height:.9rem;margin-top:1rem;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden;flex:none}
.np-bar s{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,rgba(var(--acc-rgb),.35),var(--acc));box-shadow:0 0 12px rgba(var(--acc-rgb),.5);transition:width .8s var(--ease)}
.np-bar.mat s{background:linear-gradient(90deg,rgba(var(--mat-rgb),.35),var(--mat));box-shadow:0 0 12px rgba(var(--mat-rgb),.5)}
.np-bar.stop s{background:linear-gradient(90deg,rgba(var(--stop-rgb),.35),var(--stop));box-shadow:0 0 12px rgba(var(--stop-rgb),.5)}
.now-act{display:flex;gap:.7rem;margin-top:auto;padding-top:1.2rem;flex:none}
.tl{list-style:none;position:relative;margin-top:1.2rem;flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;gap:.5rem;overflow:hidden}
.tl::before{content:'';position:absolute;left:5.4rem;top:1.6rem;bottom:1.6rem;width:2px;border-radius:2px;background:rgba(255,255,255,.06)}
.tl li{position:relative;display:grid;grid-template-columns:4rem minmax(0,1fr) auto;gap:2.6rem;align-items:center;padding:.85rem 1rem .85rem .2rem;flex:none;border-radius:var(--r-in);cursor:pointer;transition:background .3s}
.tl li:hover,.tl li[data-ph-hover]{background:var(--s2)}
.tl .t{font-size:1.12rem;font-weight:500;color:var(--txt-2);text-align:right}
.tl .node{position:absolute;left:5.4rem;top:50%;width:1rem;height:1rem;margin:-.5rem 0 0 -.4rem;border-radius:50%;background:#2A2F36}
.tl .e b{display:block;font-size:1.15rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl .e span{display:block;font-size:1rem;color:var(--txt-3);margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl li.on{background:linear-gradient(90deg,rgba(var(--acc-rgb),.1),rgba(var(--acc-rgb),.025))}
.tl li.on .t{color:var(--acc)}
.tl li.on .node{background:var(--acc);box-shadow:0 0 0 4px rgba(var(--acc-rgb),.16),0 0 14px rgba(var(--acc-rgb),.9)}
.tl li.done .t,.tl li.done .e b{color:var(--txt-3)}
.tl li.mat .node{background:var(--mat)}
.tl li.stop .node{background:var(--stop)}
.tl-empty{color:var(--txt-3);font-size:1.1rem;margin-top:1.4rem}

/* ---------- Kvalitet ---------- */
.v-kvalitet{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(0,1.12fr) minmax(0,1fr);
  grid-template-areas:"qdev qdev qdev qdev qdev qdev qdev qok qok qok qok qok" "qprot qprot qprot qprot qprot qprot qprot qwait qwait qwait qwait qwait"}
.c-qdev{grid-area:qdev}.c-qok{grid-area:qok}.c-qprot{grid-area:qprot}.c-qwait{grid-area:qwait}
.c-qdev .aura{width:60%;height:80%;right:-15%;top:-30%;background:radial-gradient(closest-side,rgba(var(--stop-rgb),.12),transparent)}
.c-qdev.ok .aura{background:radial-gradient(closest-side,rgba(var(--acc-rgb),.1),transparent)}
.qd-row{display:grid;grid-template-columns:minmax(0,27rem) minmax(0,1fr);gap:2.4rem;flex:1;min-height:0;margin-top:1rem}
.qd-l{display:flex;flex-direction:column;min-width:0}
.qd-l .big{font-size:4.8rem;color:var(--stop);text-shadow:0 0 30px rgba(var(--stop-rgb),.35)}
.c-qdev.ok .qd-l .big{color:var(--acc);text-shadow:0 0 30px rgba(var(--acc-rgb),.35)}
.qd-l h3{font-size:1.3rem;font-weight:600;margin-top:.8rem}
.qd-l p{font-size:1.1rem;line-height:1.55;color:var(--txt-3);margin-top:.5rem}
.qd-l p b{color:var(--txt-2);font-weight:600}
.qd-act{display:flex;gap:.7rem;margin-top:auto;padding-top:1rem;flex-wrap:wrap}
.spc{position:relative;min-width:0;min-height:0;border-radius:18px;background:var(--s1)}
.spc svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.spc-lab{position:absolute;left:1.4rem;top:1.1rem;font-size:1.02rem;color:var(--txt-3)}
.spc-lab b{color:var(--txt-2);font-weight:600}
.okring{position:relative;width:min(100%,22rem);aspect-ratio:1;margin:auto}
.okring svg{width:100%;height:100%;overflow:visible}
.okring .mid{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.okring .big{font-size:4.4rem}
.okring small{font-size:1rem;color:var(--txt-3);margin-top:.35rem;line-height:1.35}
.qok-foot{text-align:center;font-size:1.08rem;color:var(--txt-3);line-height:1.5;flex:none}
.qok-foot b{color:var(--txt);font-weight:600}
.plist{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-top:1.1rem;min-height:0;overflow:auto;margin-right:-.6rem;padding-right:.6rem;scrollbar-width:thin;scrollbar-color:#2A2E35 transparent}
.prow{display:grid;grid-template-columns:4.4rem minmax(0,1.2fr) minmax(0,1fr) 7.4rem 8.6rem;align-items:center;gap:1rem;height:4rem;padding:0 1.2rem;border-radius:14px;background:var(--s2);cursor:pointer;flex:none;transition:background .3s}
.prow:hover,.prow[data-ph-hover]{background:var(--s2h)}
.prow .t{font-size:1.04rem;color:var(--txt-3)}
.prow b{font-size:1.08rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.prow span{font-size:.98rem;color:var(--txt-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.prow .v{font-size:1.1rem;font-weight:600;text-align:right}
.prow .pill{display:inline-flex;justify-self:end;align-self:center;height:2.2rem;font-size:.95rem}
.prow.bad{background:rgba(var(--stop-rgb),.07)}
.prow.bad .v{color:var(--stop)}
.wlist{list-style:none;display:flex;flex-direction:column;gap:.7rem;margin-top:1.2rem}
.wrow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1.05rem 1.1rem 1.05rem 1.4rem;border-radius:var(--r-in);background:var(--s2);transition:background .3s,opacity .5s,transform .5s var(--ease)}
.wrow b{display:block;font-size:1.12rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wrow span{display:block;font-size:1rem;color:var(--txt-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wrow.out{opacity:0;transform:translateX(2rem)}
.w-empty{padding:2rem 1rem;text-align:center;color:var(--txt-3);font-size:1.1rem;border-radius:var(--r-in);background:var(--s1)}

/* ---------- Skuffe ---------- */
.scrim{position:absolute;inset:0;z-index:30;background:rgba(3,4,6,.55);opacity:0;pointer-events:none;transition:opacity .45s var(--ease)}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:absolute;z-index:40;top:1.6rem;right:1.6rem;bottom:1.6rem;width:min(54rem,calc(100% - 3.2rem));display:flex;flex-direction:column;border-radius:28px;overflow:hidden;outline:0;
  background:linear-gradient(180deg,#171A1F,#101215);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 40px 90px -20px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.03);
  transform:translateX(calc(100% + 3rem));transition:transform .6s var(--ease)}
.drawer.on{transform:none}
.dr-head{padding:2.4rem 2.6rem 1.6rem;flex:none}
.dr-hrow{display:flex;align-items:flex-start;gap:1rem}
.dr-hrow .id{font-size:1.05rem;color:var(--txt-3);font-weight:600}
.dr-hrow h2{font-size:2.2rem;font-weight:600;letter-spacing:-.025em;line-height:1.15;margin-top:.2rem}
.dr-hrow .x{margin-left:auto}
.dr-sub{margin-top:.6rem;font-size:1.12rem;color:var(--txt-3);display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.dr-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:1.5rem}
.fact{padding:1rem 1.15rem;border-radius:var(--r-in);background:var(--s2);min-width:0}
.fact span{display:block;font-size:.95rem;color:var(--txt-3);white-space:nowrap}
.fact b{display:block;font-size:1.12rem;font-weight:600;margin-top:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dr-banner{display:flex;align-items:center;gap:1rem;margin:0 2.6rem 1.2rem;padding:1.05rem 1.3rem;border-radius:var(--r-in);font-size:1.1rem;color:#FFD58A;
  background:linear-gradient(90deg,rgba(var(--mat-rgb),.14),rgba(var(--mat-rgb),.04));box-shadow:inset 0 0 0 1px rgba(var(--mat-rgb),.3)}
.dr-banner.stop{color:#FFC2AA;background:linear-gradient(90deg,rgba(var(--stop-rgb),.14),rgba(var(--stop-rgb),.04));box-shadow:inset 0 0 0 1px rgba(var(--stop-rgb),.3)}
.dr-banner .ico{flex:none}
.dr-body{flex:1;min-height:0;overflow:auto;padding:0 2.6rem 2.6rem;display:flex;flex-direction:column;gap:1.2rem;scrollbar-width:thin;scrollbar-color:#2A2E35 transparent}
.dsec{padding:1.6rem 1.8rem;border-radius:20px;background:rgba(255,255,255,.03);flex:none}
.dsec h3{display:flex;align-items:center;gap:.8rem;font-size:1.25rem;font-weight:600}
.dsec h3 em{margin-left:auto;font-style:normal;font-size:1rem;font-weight:500;color:var(--txt-3)}
.cad{margin-top:1.2rem;border-radius:16px;background:radial-gradient(120% 90% at 30% 0%,#14181C,#0C0E11);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);padding:.6rem}
.cad svg{width:100%;height:auto}
.cad .ln{fill:none;stroke:#E6EAEE;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.cad .ln.thin{stroke-width:.8;stroke:#AEB4BC}
.cad.drawn .ln{stroke-dashoffset:0;transition:stroke-dashoffset .75s cubic-bezier(.45,.05,.3,1);transition-delay:calc(var(--i) * 55ms)}
.cad .cl{fill:none;stroke:#6E747C;stroke-width:.7;stroke-dasharray:10 3 2 3}
.cad .dm{fill:none;stroke:var(--acc);stroke-width:.75;opacity:.85}
.cad .ar{fill:var(--acc);opacity:.85}
.cad text{font-family:var(--mono);font-size:8.6px;fill:#D9F78F;letter-spacing:.01em}
.cad text.n{fill:#878D96;font-size:7.6px}
.cad text.b{fill:#E6EAEE;font-weight:500}
.cad .hatch{fill:url(#hatch);stroke:none}
.cad .tb{fill:none;stroke:#555B63;stroke-width:.8}
.cad .gap{fill:#0E1013;stroke:none}
.cad .fade{opacity:0}
.cad.drawn .fade{opacity:1;transition:opacity .6s ease .9s}
.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:1.2rem}
.kv div{padding:.9rem 1.1rem;border-radius:14px;background:var(--s2);min-width:0}
.kv dt{font-size:.95rem;color:var(--txt-3)}
.kv dd{font-size:1.12rem;font-weight:600;margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp{list-style:none;display:flex;flex-direction:column;gap:.45rem;margin-top:1rem}
.mp li{display:grid;grid-template-columns:minmax(0,1fr) 12.4rem 6.6rem 8.4rem;align-items:center;gap:.8rem;height:3.4rem;padding:0 1.1rem;border-radius:12px;background:var(--s2);font-size:1.04rem}
.mp li.h{background:none;height:auto;padding-bottom:0;color:var(--txt-3);font-size:.95rem}
.mp li .r{text-align:right}
.mp li .pill{justify-self:end;height:2.1rem;font-size:.92rem}
.mp-note{margin-top:.8rem;font-size:1rem;color:var(--txt-3);line-height:1.5}
.tr-pick{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.9rem;margin-top:1.2rem;align-items:end}
.tr-pick label{display:flex;flex-direction:column;gap:.35rem;font-size:.95rem;color:var(--txt-3)}
.tr-pick select{height:3.4rem;padding:0 1.2rem;border-radius:99px;border:0;background:#1C2025;color:var(--txt);font-size:1.1rem;outline:0}
.tr-pick select:focus-visible{box-shadow:0 0 0 2px var(--acc)}
.tr-pick select:disabled{opacity:.6}
.tr-clock{display:flex;align-items:center;gap:1.4rem;margin-top:1.3rem;padding:1.3rem 1.4rem 1.3rem 1.8rem;border-radius:20px;background:#0D0F12;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.tr-clock .clk{font-family:var(--mono);font-size:4rem;font-weight:500;letter-spacing:-.02em;color:#5D636B;line-height:1;transition:color .4s,text-shadow .4s}
.tr-clock .clk.on{color:var(--acc);text-shadow:0 0 26px rgba(var(--acc-rgb),.45)}
.tr-clock .who{font-size:1.02rem;color:var(--txt-3);line-height:1.4}
.tr-clock .who b{display:block;color:var(--txt-2);font-weight:600}
.tr-clock .btn{margin-left:auto}
.btn.out{background:rgba(var(--stop-rgb),.14);color:var(--stop);box-shadow:inset 0 0 0 1px rgba(var(--stop-rgb),.45)}
.tr-log{list-style:none;display:flex;flex-direction:column;gap:.4rem;margin-top:1rem}
.tr-log li{display:grid;grid-template-columns:13.4rem minmax(0,1fr) auto;gap:1rem;font-size:1.04rem;color:var(--txt-2);padding:.5rem .3rem}
.tr-log li span:first-child{color:var(--txt-3)}
.tr-log li .d{font-weight:600}
.tr-log li.fresh{color:var(--acc)}

/* ---------- Palette, genveje og toasts ---------- */
.pal,.sheet{position:absolute;inset:0;z-index:50;display:grid;justify-items:center;align-items:start;padding-top:11%;background:rgba(3,4,6,.6);opacity:0;pointer-events:none;transition:opacity .35s var(--ease)}
.pal.on,.sheet.on{opacity:1;pointer-events:auto}
.pal-box,.sheet-box{width:min(60rem,calc(100% - 4rem));padding:1.2rem;border-radius:28px;transform:translateY(-1rem) scale(.98);transition:transform .45s var(--ease);
  background:linear-gradient(180deg,#1A1D22,#121418);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 40px 90px -20px rgba(0,0,0,.95)}
.pal.on .pal-box,.sheet.on .sheet-box{transform:none}
.pal-in{display:flex;align-items:center;gap:1rem;height:5.2rem;padding:0 1.2rem 0 1.8rem;border-radius:99px;background:rgba(255,255,255,.06)}
.pal-in .ico{color:var(--acc)}
.pal-in input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:1.5rem;font-weight:500;color:var(--txt)}
.pal-in input::placeholder{color:var(--txt-3)}
.pal-list{list-style:none;margin-top:.8rem;max-height:42rem;overflow:auto}
.pal-g{padding:1rem 1.6rem .4rem;font-size:.95rem;font-weight:600;color:var(--txt-3)}
.pal-i{display:grid;grid-template-columns:9.4rem minmax(0,1fr) auto;align-items:center;gap:1.2rem;padding:.9rem 1.6rem;border-radius:99px;cursor:pointer;transition:background .25s var(--ease)}
.pal-i.on,.pal-i:hover,.pal-i[data-ph-hover]{background:rgba(var(--acc-rgb),.1)}
.pal-i .a{font-size:1.15rem;font-weight:600}
.pal-i.on .a{color:var(--acc)}
.pal-i b{font-weight:500;font-size:1.15rem;color:var(--txt-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pal-i .c{font-size:1rem;color:var(--txt-3);white-space:nowrap}
.pal-none{padding:2.2rem;text-align:center;color:var(--txt-3);font-size:1.15rem}
.pal-foot{display:flex;gap:1.8rem;padding:1.1rem 1.6rem .4rem;font-size:1.02rem;color:var(--txt-3)}
.pal-foot span{display:inline-flex;align-items:center;gap:.5rem}
.sheet-box{padding:2.4rem 2.6rem}
.sheet-box h2{font-size:1.7rem;font-weight:600;letter-spacing:-.02em;display:flex;align-items:center}
.sheet-box h2 .btn{margin-left:auto}
.sheet-box ul{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 2rem;margin-top:1.6rem}
.sheet-box li{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:3.8rem;padding:0 .4rem 0 1.2rem;border-radius:99px;background:var(--s2);font-size:1.12rem;color:var(--txt-2)}
.sheet-box li span{display:flex;gap:.4rem}
.toasts{position:absolute;z-index:70;right:2.4rem;bottom:2.4rem;transition:right .6s var(--ease);display:flex;flex-direction:column;align-items:flex-end;gap:.8rem;pointer-events:none}
.toast{display:flex;align-items:center;gap:1.2rem;width:42rem;padding:1.2rem 1.6rem 1.2rem 1.2rem;border-radius:24px;pointer-events:auto;
  background:linear-gradient(180deg,#1E2227,#16191D);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 26px 50px -18px rgba(0,0,0,.9),0 0 44px -18px rgba(var(--acc-rgb),.55);animation:toastIn .55s var(--ease) backwards}
.toast.out{transition:opacity .45s var(--ease),transform .45s var(--ease);opacity:0;transform:translateY(1rem) scale(.98)}
@keyframes toastIn{from{opacity:0;transform:translateY(1.6rem) scale(.97)}}
.toast .ti{display:grid;place-items:center;width:3.8rem;height:3.8rem;border-radius:50%;flex:none;color:var(--acc-ink);background:var(--acc);box-shadow:0 0 22px -4px rgba(var(--acc-rgb),.9)}
.toast.bad .ti{background:var(--stop);color:#1A0B05;box-shadow:0 0 22px -4px rgba(var(--stop-rgb),.9)}
.toast.bad{box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 26px 50px -18px rgba(0,0,0,.9),0 0 44px -18px rgba(var(--stop-rgb),.55)}
.toast.info .ti{background:#2C3138;color:var(--txt)}
.toast.info{box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 26px 50px -18px rgba(0,0,0,.9)}
.toast b{display:block;font-size:1.22rem;font-weight:600}
.toast span{display:block;font-size:1.08rem;color:var(--txt-3);margin-top:.1rem}
.toast time{margin-left:auto;align-self:flex-start;font-size:1rem;font-weight:600;color:var(--txt-3);white-space:nowrap}

/* ---------- Intro ---------- */
.pre .card,.pre .top,.pre .rail{opacity:0}
.view.go .card{animation:rise calc(.5s * var(--tempo)) var(--ease) both;animation-delay:calc(var(--i,0) * 25ms * var(--tempo))}
.go .top,.go .rail{animation:rise calc(.5s * var(--tempo)) var(--ease) both}
@keyframes rise{from{opacity:0;translate:0 1.4rem}to{opacity:1;translate:0 0}}
.go .row-in{animation:rowIn calc(.45s * var(--tempo)) var(--ease) both;animation-delay:calc((.15s + var(--k,0) * 40ms) * var(--tempo))}
@keyframes rowIn{from{opacity:0;translate:0 .8rem}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .pre .card,.pre .top,.pre .rail{opacity:1}
  .card:hover{transform:none}
  .cad .ln{stroke-dashoffset:0}
  .cad .fade{opacity:1}
}

/* ---------- Mobil (under 760 px): én kolonne, lodret rul, Gantt ruller vandret i sit kort ---------- */
@media (max-width:1100px){
/* Gælder ikke i demo-rammen (9:16 er 1080 px bred): */ :root:not(.ph-frame){
  &{font-size:max(7.6px,1vw)!important}
  #app{overflow-y:auto;overflow-x:hidden}
  .shell{display:flex;flex-direction:column;height:auto;padding:1.2rem;gap:1.2rem}
  .rail{flex-direction:row;align-items:center;padding:.5rem 1.2rem;border-radius:24px;overflow-x:auto;scrollbar-width:none}
  .mark{margin:0 1rem 0 0;width:3.8rem;height:3.8rem}
  .nav{flex-direction:row;gap:.6rem;width:auto}
  .nav button{min-width:44px;min-height:44px;flex:0 0 auto}
  .nav .badge{top:-.5rem;right:-1rem}
  kbd{display:none!important}
  .rail-foot{display:none}
  .top{flex-direction:column;align-items:stretch}
  .hello p{white-space:normal}
  .top-r{flex-wrap:wrap;margin-left:0}
  .search{width:100%}
  .views{min-height:0}
  .view{position:static;inset:auto}
  .view.on{display:flex;flex-direction:column}
  .ch{flex-wrap:wrap;row-gap:.6rem}
  .ch .r{margin-left:0}
  .filters{flex-wrap:wrap}
  .mach-num{flex-wrap:wrap}
  .mach-num .quiet{margin-left:0;flex-basis:100%}
  .mtiles{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:9.6rem}
  .c-plan,.c-gnt{overflow-x:auto}
  .gantt{min-width:84rem;height:36rem;flex:none}
  .c-gnt .gantt{height:62rem}
  .g-foot{flex-wrap:wrap}
  .flow{height:7rem;flex:none}
  .ut-bar{margin-top:1.8rem}
  .c-ai .sugs{overflow:visible}
  .qlist,.olist,.plist{overflow:visible}
  .ohead{display:none}
  .orow{grid-template-columns:minmax(0,1fr) auto;height:auto;padding:1rem 1.2rem;row-gap:.4rem}
  .orow .pt{grid-column:1/-1;order:-1}
  .orow .mc,.orow .pr{display:none}
  .dbars{height:20rem;flex:none}
  .mlist{flex:none}.mrow{max-height:none;min-height:5.6rem}
  .mh-body{grid-template-columns:1fr;justify-items:center}
  .bigring{width:22rem}
  .hist{height:22rem;flex:none}
  .tl{flex:none}
  .qd-row{grid-template-columns:1fr}
  .spc{height:24rem}
  .okring{width:20rem}
  .prow{grid-template-columns:4.4rem minmax(0,1fr) auto;height:auto;padding:.9rem 1.2rem}
  .prow > div:nth-of-type(2),.prow .v{display:none}
  .wrow{grid-template-columns:1fr}
  .drawer{left:1rem;right:1rem;top:1rem;bottom:1rem;width:auto}
  .dr-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kv{grid-template-columns:1fr}
  .mp li{grid-template-columns:minmax(0,1fr) auto auto}
  .mp li > span:nth-child(2){display:none}
  .toasts{left:1.2rem;right:1.2rem;bottom:1.2rem}
  .toast{width:auto}
  #drawer.on ~ .toasts{right:1.2rem}
  .pal{padding-top:6rem}
}
}
@media (hover:none){kbd{display:none!important}}
