/* ==========================================================================
   upclients · Alle Funktionen
   Sternbild-Hero · Nova-Band · Bento-Katalog · Datenfluss · Feierabend
   ========================================================================== */

@keyframes fxBob{0%,100%{translate:0 -4px}50%{translate:0 5px}}
@keyframes fxMarch{to{stroke-dashoffset:-10.5}}
@keyframes fxWv{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
@keyframes fxScan{0%{left:-30px}100%{left:100%}}
@keyframes fxCaret{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes fxMove{
  0%,22%{transform:none;opacity:1;z-index:1}
  36%{transform:translateX(calc(100% + 30px)) rotate(2.2deg);box-shadow:0 18px 26px -12px rgba(20,30,48,.5),inset 0 0 0 1px rgba(20,30,48,.06);z-index:3}
  72%{transform:translateX(calc(100% + 30px)) rotate(0deg);opacity:1;z-index:3}
  80%{transform:translateX(calc(100% + 30px));opacity:0;z-index:3}
  81%{transform:none;opacity:0}
  92%,100%{transform:none;opacity:1;z-index:1}
}

/* =====================================================================
   1 · HERO — Sternbild
   ===================================================================== */
.fx-hero{position:relative;min-height:max(100svh,800px);display:flex;align-items:center;padding:calc(var(--hdr) + 18px) 0 clamp(48px,7vh,80px);color:#fff;overflow:clip;isolation:isolate}
.fx-hero::before{content:"";position:absolute;left:50%;bottom:-10%;width:150vw;height:72vh;transform:translateX(-50%);background:radial-gradient(48% 40% at 50% 70%,rgba(121,164,242,.42),rgba(92,136,215,.14) 48%,rgba(92,136,215,0) 74%);pointer-events:none;z-index:-1;animation:dawn 9s ease-in-out infinite alternate}
.fx-hero__grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(20px,3.4vw,64px);align-items:center;width:100%}
.fx-hero__text{max-width:600px}
.fx-eb{color:var(--p200);letter-spacing:.2em}
.fx-eb .dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--p300);box-shadow:0 0 0 4px rgba(154,190,255,.18),0 0 14px var(--p300);animation:pulseDot 2.4s ease-in-out infinite}
.fx-title{font-size:clamp(38px,4.2vw,68px);line-height:.98;letter-spacing:-.045em;font-weight:800;margin-top:24px}
.fx-title .line{display:block;overflow:hidden;padding:0 .04em .16em;white-space:nowrap}
.fx-title .line>span{display:inline-block;transform:translateY(105%);animation:rise 1.25s var(--ease) forwards}
.fx-title .line:nth-child(2)>span{animation-delay:.14s}
.fx-title .line:nth-child(3)>span{animation-delay:.28s}
.fx-title .line>.glow{animation:rise 1.25s var(--ease) .14s forwards,sheen 8s ease-in-out 1.4s infinite}
.fx-title .line:nth-child(3)>.glow{animation:rise 1.25s var(--ease) .28s forwards,sheen 8s ease-in-out 1.5s infinite}
.fx-sub{font-size:clamp(17px,1.35vw,20px);line-height:1.6;color:var(--p200);margin-top:24px;max-width:44ch;opacity:0;animation:fadeUp 1s var(--ease) .5s forwards}
.fx-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px;opacity:0;animation:fadeUp 1s var(--ease) .65s forwards}
.fx-fine{font-size:13px;color:rgba(197,218,255,.72);margin-top:16px;opacity:0;animation:fadeUp 1s var(--ease) .8s forwards}
.rm .fx-title .line>span{transform:none}
.rm .fx-sub,.rm .fx-cta,.rm .fx-fine{opacity:1}

.fx-stage{position:relative;width:100%;max-width:680px;margin-left:auto;opacity:0;animation:fadeUp 1.2s var(--ease) .35s forwards}
.rm .fx-stage{opacity:1}
.fx-const{position:relative;width:100%;aspect-ratio:1/.9}
.fx-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.fx-edge{fill:none;stroke:rgba(154,190,255,.6);stroke-width:1.9;stroke-linecap:round;stroke-dasharray:1.8 8.7;animation:fxMarch 1.6s linear infinite;transition:stroke .4s,stroke-width .4s,opacity .4s}
.fx-edge.is-on{stroke:#DDEBFF;stroke-width:2.6;animation-duration:.7s;filter:drop-shadow(0 0 6px rgba(154,190,255,.95))}
.fx-spoke{fill:none;stroke:rgba(154,190,255,.26);stroke-width:1;stroke-dasharray:1 7;stroke-linecap:round;transition:stroke .4s}
.fx-spoke.is-on{stroke:rgba(197,218,255,.6)}
.fx-run{fill:#fff;opacity:0;filter:drop-shadow(0 0 7px #9ABEFF) drop-shadow(0 0 16px #79A4F2)}

.fx-core{position:absolute;left:50%;top:50%;z-index:1;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center}
.fx-core .orb{width:clamp(88px,10.6vw,128px);margin:0}
.fx-core__lbl{margin-top:16px;font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--p200);opacity:.9}

.fx-node{position:absolute;left:0;top:0;z-index:2;--t:clamp(58px,7.2vw,90px);display:flex;flex-direction:column;align-items:center;gap:9px;width:calc(var(--t) * 1.9);margin:calc(var(--t) * -.5) 0 0 calc(var(--t) * -.95);text-align:center;outline:none;transition:opacity .45s;-webkit-tap-highlight-color:transparent}
.fx-node__tile{--s:var(--t);animation:fxBob 7s ease-in-out infinite;animation-delay:var(--bd,0s)}
.fx-node__lbl{font-size:12.5px;font-weight:700;line-height:1.25;color:var(--p200);letter-spacing:-.005em;text-wrap:balance;transition:color .3s;text-shadow:0 0 5px rgba(10,20,44,.95),0 0 10px rgba(10,20,44,.9),0 0 16px rgba(10,20,44,.8)}
.fx-node.is-on .fx-node__lbl{color:#fff}
.fx-node:focus-visible .fx-node__tile{outline:2px solid var(--p300);outline-offset:6px}
.fx-const.has-on .fx-node:not(.is-on){opacity:.78}
.js .fx-const:not(.is-ready) .fx-node{opacity:0}
/* ohne Skript: Module als Raster */
html:not(.js) .fx-const{aspect-ratio:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
html:not(.js) .fx-node{position:static;margin:0;width:auto}

.fx-info{display:flex;align-items:center;gap:16px;margin-top:clamp(0px,1vw,10px);padding:16px 20px 16px 16px;border-radius:24px;min-height:98px}
.fx-info__ico{--s:58px;transition:opacity .25s,transform .35s var(--spring)}
.fx-info__body{flex:1;min-width:0;transition:opacity .25s,transform .35s var(--ease)}
.fx-info__body h2{font-size:18px;font-weight:800;letter-spacing:-.02em}
.fx-info__body p{font-size:14px;line-height:1.5;color:var(--p200);margin-top:4px;text-wrap:pretty}
.fx-info__side{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.fx-info__go{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:800;color:#fff;transition:gap .3s var(--ease)}
.fx-info__go:hover{gap:11px}
.fx-info.is-swap .fx-info__body{opacity:0;transform:translateY(6px)}
.fx-info.is-swap .fx-info__ico{opacity:0;transform:scale(.85)}
.fx-pill{display:inline-flex;align-items:center;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:var(--i100);color:var(--i800);white-space:nowrap}
.fx-info .fx-pill{background:rgba(154,190,255,.16);color:var(--p200);box-shadow:inset 0 0 0 1px rgba(154,190,255,.3)}
.fx-pill[hidden]{display:none}

/* =====================================================================
   2 · NOVA
   ===================================================================== */
.fx-nova{padding:clamp(90px,13vh,150px) 0 clamp(36px,5vh,60px)}
.fx-nova__card{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:center;padding:clamp(28px,4vw,56px) clamp(24px,4.4vw,64px);border-radius:38px;overflow:hidden;color:var(--i950);
  background:radial-gradient(700px 420px at 82% 20%,rgba(245,247,251,.95),rgba(245,247,251,0) 62%),radial-gradient(800px 520px at 6% 96%,rgba(92,136,215,.3),rgba(92,136,215,0) 62%),radial-gradient(520px 340px at 12% 8%,rgba(227,237,255,.9),rgba(227,237,255,0) 60%),linear-gradient(160deg,#F5F7FB 0%,#E3EDFF 100%);
  box-shadow:0 50px 90px -56px rgba(32,59,110,.65),inset 0 0 0 1px rgba(255,255,255,.9);transition:transform .5s var(--ease),box-shadow .5s}
.fx-nova__card:hover{transform:translateY(-4px);box-shadow:0 60px 100px -56px rgba(32,59,110,.75),inset 0 0 0 1px rgba(255,255,255,.9)}
.fx-nova__stage{position:relative;min-height:clamp(260px,26vw,340px);display:grid;place-items:center}
.fx-nova .orb{width:clamp(150px,15vw,196px);margin:0}
.fx-chip{position:absolute;z-index:2;max-width:210px;padding:10px 14px;border-radius:16px 16px 16px 4px;background:#fff;font-size:13px;line-height:1.35;font-weight:600;color:var(--i800);box-shadow:0 16px 30px -16px rgba(20,30,48,.45),inset 0 0 0 1px rgba(20,30,48,.05);animation:fxBob 7s ease-in-out infinite;transition:opacity .7s,transform .8s var(--ease)}
.fx-chip--a{left:1%;top:6%}
.fx-chip--b{right:0;top:38%;animation-delay:-2.4s;border-radius:16px 16px 4px 16px;background:var(--p800);color:#fff}
.fx-chip--c{left:6%;bottom:6%;animation-delay:-4.6s}
.js .fx-nova__card .fx-chip{opacity:0;transform:translateY(12px)}
.js .fx-nova__card.is-in .fx-chip{opacity:1;transform:none}
.js .fx-nova__card.is-in .fx-chip--a{transition-delay:.35s}
.js .fx-nova__card.is-in .fx-chip--b{transition-delay:.7s}
.js .fx-nova__card.is-in .fx-chip--c{transition-delay:1.05s}
.fx-nova__text .eyebrow{color:var(--p700)}
.fx-nova__p{font-size:clamp(16px,1.2vw,18px);line-height:1.65;color:var(--i800);margin-top:20px;max-width:46ch;text-wrap:pretty}

/* =====================================================================
   3 · KATALOG — Bento
   ===================================================================== */
.fx-cat{padding:clamp(90px,12vh,140px) 0 clamp(100px,13vh,150px)}
.bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(14px,1.6vw,22px);margin-top:clamp(40px,6vh,64px)}
.bcard--7{grid-column:span 7}.bcard--5{grid-column:span 5}.bcard--4{grid-column:span 4}
.bcard{position:relative;display:flex;flex-direction:column;border-radius:30px;background:#fff;color:var(--i950);overflow:hidden;box-shadow:0 34px 60px -46px rgba(20,30,48,.55),inset 0 0 0 1px rgba(20,30,48,.06);transition:transform .55s var(--ease),box-shadow .45s}
.bcard:hover,.bcard:focus-visible{transform:translateY(-7px);box-shadow:0 44px 70px -44px rgba(20,30,48,.6),inset 0 0 0 1.5px rgba(68,107,180,.45)}
.bcard__vis{position:relative;flex:1 0 auto;min-height:clamp(236px,22vw,288px);display:grid;place-items:center;padding:20px;overflow:hidden;border-bottom:1px solid var(--i100);
  background-color:#F1F5FC;background-image:radial-gradient(rgba(92,136,215,.17) 1.2px,transparent 1.4px),radial-gradient(90% 80% at 50% 125%,rgba(154,190,255,.5),rgba(154,190,255,0) 70%);background-size:14px 14px,100% 100%}
.bcard__body{display:flex;flex-direction:column;flex:none;padding:22px 26px 26px}
.bcard__body{position:relative}
.bcard__top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:26px;padding-right:62px}
.bcard__ico{--s:46px;position:absolute;right:24px;top:20px}
.bcard:hover .bcard__ico,.bcard:focus-visible .bcard__ico{transform:translateY(-3px) rotate(-5deg) scale(1.06)}
.bcard__n{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--i400);font-variant-numeric:tabular-nums}
.bcard h3{font-size:clamp(20px,1.7vw,24px);font-weight:800;letter-spacing:-.028em;margin-top:10px}
.bcard p{font-size:14.5px;line-height:1.62;color:var(--i800);margin-top:8px;text-wrap:pretty}
.bcard__go{display:inline-flex;align-self:flex-start;align-items:center;gap:9px;margin-top:16px;font-size:13.5px;font-weight:800;color:var(--p700)}
.bcard__go b{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--i50);transition:background .3s,color .3s,transform .45s var(--ease)}
.bcard:hover .bcard__go b,.bcard:focus-visible .bcard__go b{background:var(--p800);color:#fff;transform:translateX(4px)}
.js .bcard[data-reveal]{transition:opacity .9s var(--ease),transform 1.1s var(--ease),box-shadow .45s;transition-delay:var(--d,0s)}
.js .bcard[data-reveal].is-in:hover{transition-delay:0s;transition-duration:.55s}

.mk{width:min(100%,340px);font-size:12px;color:var(--i800);text-align:left}
.av{flex:none;width:32px;height:32px;border-radius:50%;background:var(--p700);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;letter-spacing:.02em}
.av--2{background:#4E8F79}.av--3{background:#B0763A}
small{font-size:11px;color:var(--i700)}

/* Offerten */
.mk-doc{position:relative;width:min(100%,480px);height:100%}
.fx-sheet{position:absolute;background:#fff;border-radius:14px;padding:15px 17px;box-shadow:0 28px 46px -24px rgba(20,30,48,.5),inset 0 0 0 1px rgba(20,30,48,.06);transition:transform .7s var(--ease)}
.fx-sheet--back{left:3%;top:36px;width:50%;height:80%;transform:rotate(-5deg);opacity:.95}
.fx-sheet--front{right:3%;top:14px;width:58%;height:92%;transform:rotate(2.2deg)}
.bcard:hover .fx-sheet--back{transform:rotate(-7deg) translate(-10px,2px)}
.bcard:hover .fx-sheet--front{transform:rotate(0deg) translateY(-6px)}
.sh-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.sh-top b{font-size:12.5px;letter-spacing:-.005em}
.sh-sub{font-size:10.5px;color:var(--i700);margin-top:2px}
.fx-sheet--back i{display:block;height:7px;border-radius:5px;background:var(--i100);margin-top:12px}
.fx-sheet--back i.s{width:60%}
.sh-rows{margin-top:10px}
.sh-rows div{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px dashed rgba(20,30,48,.1);font-size:11px}
.sh-rows b{font-variant-numeric:tabular-nums}
.sh-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:9px;padding-right:62px;font-size:11px}
.sh-total b{font-size:15px;font-weight:800;letter-spacing:-.02em}
.sh-qr{position:absolute;right:15px;bottom:13px;width:48px;height:48px;padding:3px;background:#fff;border-radius:6px;box-shadow:inset 0 0 0 1px rgba(20,30,48,.1);fill:var(--i950)}

/* Kanban */
.mk-kan{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(100%,410px)}
.fx-kcol{align-self:start;background:rgba(255,255,255,.5);border-radius:14px;padding:10px 8px 8px;box-shadow:inset 0 0 0 1px rgba(20,30,48,.06);min-width:0}
.fx-kcol h5{margin:0 2px 4px;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--i700);font-weight:800}
.fx-kcol h5 i{font-style:normal;min-width:18px;padding:1px 5px;border-radius:999px;text-align:center;background:var(--p100);color:var(--p800);font-size:9.5px;letter-spacing:0}
/* Karte ohne Farbstreifen: Status über Punkt, Person über Kürzel, Ergebnis über Kennzeichen */
.fx-kcard{position:relative;margin-top:6px;padding:9px 26px 9px 10px;border-radius:11px;background:#fff;box-shadow:0 7px 14px -9px rgba(20,30,48,.4),inset 0 0 0 1px rgba(20,30,48,.05)}
.fx-kcard b{display:block;font-size:11px;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-kcard .kd{display:flex;align-items:center;gap:5px;margin-top:4px;font-size:10.5px;color:var(--i700);white-space:nowrap}
.fx-kcard .kd::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--p400)}
.fx-kcard--wip .kd::before{background:#E6C64D}
.fx-kcard--done .kd::before{background:var(--ok-mid)}
.kav{position:absolute;right:7px;top:8px;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:7px;font-weight:800;letter-spacing:.02em;color:#fff;background:var(--p700)}
.kav--2{background:#4E8F79}.kav--3{background:#B0763A}
.kav--ok{background:var(--ok-soft);color:var(--ok)}
.km{margin-left:auto;padding:1px 6px;border-radius:999px;font-style:normal;font-size:9.5px;font-weight:800;background:var(--ok-soft);color:var(--ok)}
.km--low{background:var(--warn-soft);color:var(--warn)}
.bcard.is-in .fx-kcard--move{animation:fxMove 8s var(--ease) 1s infinite}

/* Rapport */
.mk-rap{position:relative;width:min(100%,318px);padding:16px 18px;border-radius:18px;background:#fff;box-shadow:0 28px 46px -28px rgba(20,30,48,.5),inset 0 0 0 1px rgba(20,30,48,.06)}
.rp-mic{position:absolute;right:14px;top:14px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--p800);color:#fff;box-shadow:0 0 0 5px rgba(92,136,215,.18)}
.rp-wave{display:flex;align-items:center;gap:3px;height:34px;padding-right:44px}
.rp-wave i{flex:1;max-width:4px;height:var(--h);border-radius:3px;background:linear-gradient(180deg,var(--p600),var(--p800));animation:fxWv 1.2s ease-in-out infinite;animation-delay:var(--d)}
.rp-text{margin-top:10px;font-size:12.5px;line-height:1.5;font-style:italic;color:var(--i800);text-wrap:pretty}
.rp-lines{display:flex;gap:8px;margin-top:10px}
.rp-lines span{padding:5px 9px;border-radius:8px;background:var(--i50);font-size:11px;color:var(--i800)}
.rp-lines b{color:var(--i950)}
.rp-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.rp-sign{width:112px;height:34px;fill:none;stroke:var(--p800);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rp-sign path{stroke-dasharray:100;stroke-dashoffset:100}
.bcard.is-in .rp-sign path{animation:draw 2.2s var(--ease) .6s forwards}

/* Material */
.mk-mat{width:min(100%,340px);padding:8px 16px 14px;border-radius:18px;background:#fff;box-shadow:0 28px 46px -28px rgba(20,30,48,.5),inset 0 0 0 1px rgba(20,30,48,.06)}
.mrow{display:grid;grid-template-columns:104px minmax(0,1fr) 46px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px dashed rgba(20,30,48,.1);font-size:12px}
.mrow b{text-align:right;font-variant-numeric:tabular-nums}
.fx-bar{height:7px;border-radius:7px;background:var(--i100);overflow:hidden}
.fx-bar i{display:block;height:100%;width:var(--w);border-radius:7px;background:linear-gradient(90deg,var(--p600),var(--p400));transform-origin:left;transform:scaleX(0);transition:transform 1.3s var(--ease)}
.bcard.is-in .fx-bar i{transform:none}
.mrow--low .fx-bar i{background:linear-gradient(90deg,#E6C64D,var(--warn-mid))}
.mrow--low b{color:var(--warn)}
.mscan{position:relative;display:flex;align-items:center;gap:8px;margin-top:11px;padding:8px 10px;border-radius:10px;background:var(--p100);overflow:hidden}
.mscan small{color:var(--p800);font-weight:600}
.scanbeam{position:absolute;top:0;bottom:0;left:-30px;width:30px;background:linear-gradient(90deg,rgba(92,136,215,0),rgba(92,136,215,.5),rgba(92,136,215,0));animation:fxScan 2.8s ease-in-out infinite}

/* Zeit */
.mk-zeit{display:flex;flex-direction:column;align-items:center;gap:12px}
.tz{position:relative;width:150px;height:150px}
.tz svg{width:100%;height:100%;transform:rotate(-90deg)}
.tz-bg{fill:none;stroke:#fff;stroke-width:9;opacity:.9}
.tz-fg{fill:none;stroke:var(--p700);stroke-width:9;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset 1.8s var(--ease) .3s;filter:drop-shadow(0 4px 6px rgba(49,83,146,.35))}
.bcard.is-in .tz-fg{stroke-dashoffset:34}
.tz-c{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.tz-c b{font-size:25px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--i950)}
.tz-c small{display:block;margin-top:2px;font-size:10px}
.tz-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}
.tz-meta>span{padding:5px 10px;border-radius:999px;background:#fff;font-size:11px;box-shadow:inset 0 0 0 1px rgba(20,30,48,.07)}
.tz-meta b{color:var(--i950)}
.tz-meta .s-chip{box-shadow:none}

/* Finanzen */
.mk-fin{width:min(100%,470px);padding:16px 18px 10px;border-radius:18px;background:#fff;box-shadow:0 28px 46px -28px rgba(20,30,48,.5),inset 0 0 0 1px rgba(20,30,48,.06)}
.fin-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.fin-top small{display:block}
.fin-top b{font-size:24px;font-weight:800;letter-spacing:-.03em;color:var(--i950)}
.fin-chart{display:block;width:100%;height:64px;margin-top:2px;overflow:visible;clip-path:inset(-4px 100% -4px 0);transition:clip-path 1.8s var(--ease) .3s}
.bcard.is-in .fin-chart{clip-path:inset(-4px 0 -4px 0)}
.fl{fill:none;stroke:var(--p700);stroke-width:2.4;stroke-linecap:round}
.fin-rows div{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-top:1px solid var(--i100);font-size:11.5px}
.fin-rows i{font-style:normal;font-size:10px;font-weight:800;padding:3px 8px;border-radius:999px}
.fin-rows .ok{background:var(--ok-soft);color:var(--ok)}
.fin-rows .warn{background:var(--warn-soft);color:var(--warn)}

/* Team */
.mk-team{width:min(100%,360px);padding:6px 16px 14px;border-radius:18px;background:#fff;box-shadow:0 28px 46px -28px rgba(20,30,48,.5),inset 0 0 0 1px rgba(20,30,48,.06)}
.trow{display:grid;grid-template-columns:32px minmax(0,1fr) 84px 34px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px dashed rgba(20,30,48,.1)}
.trow b{display:block;font-size:12px}
.trow em{font-style:normal;font-weight:800;font-size:11.5px;text-align:right;font-variant-numeric:tabular-nums}
.tbar{height:7px;border-radius:7px;background:var(--i100);overflow:hidden}
.tbar i{display:block;height:100%;width:var(--w);border-radius:7px;background:linear-gradient(90deg,var(--p600),var(--p400));transform-origin:left;transform:scaleX(0);transition:transform 1.3s var(--ease)}
.tbar i.hi{background:linear-gradient(90deg,#E6C64D,var(--bad-mid))}
.bcard.is-in .tbar i{transform:none}
.tfoot{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}

/* Kunden */
.mk-kd{width:min(100%,360px)}
.kd-search{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1px var(--i200);font-size:13px;color:var(--i950)}
.kd-search svg{color:var(--i700)}
.kd-search i{width:1.5px;height:15px;background:var(--p700);animation:fxCaret 1s steps(1) infinite}
.kd-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:8px;padding:8px 10px;border-radius:12px;background:#fff;box-shadow:0 9px 16px -12px rgba(20,30,48,.45),inset 0 0 0 1px rgba(20,30,48,.05);transition:transform .5s var(--ease)}
.kd-row b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kd-row--on{box-shadow:0 9px 16px -12px rgba(20,30,48,.45),inset 0 0 0 1.5px var(--p600)}
.bcard:hover .kd-row:nth-of-type(2){transform:translateX(6px)}

/* Buchhaltung */
.mk-bh{width:min(100%,480px)}
.bh-tbl{border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 28px 46px -28px rgba(20,30,48,.5),inset 0 0 0 1px rgba(20,30,48,.06)}
.bh-tbl>div{display:grid;grid-template-columns:56px minmax(0,1fr) 52px 76px;gap:10px;padding:9px 16px;font-size:11.5px;border-top:1px solid var(--i100)}
.bh-tbl>div:first-child{border-top:0}
.bh-tbl b{text-align:right;font-variant-numeric:tabular-nums;color:var(--i950)}
.bh-tbl .bh-h{background:var(--i50);font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--i700)}
.bh-h span:last-child{text-align:right}
.bh-tbl>div:not(.bh-h) span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:460px){.bh-tbl>div{grid-template-columns:44px minmax(0,1fr) 38px 62px;gap:8px;padding:9px 12px}}
.bh-exp{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px}
.bh-arrow{position:relative;width:70px;height:2px;background:repeating-linear-gradient(90deg,var(--p600) 0 6px,transparent 6px 11px);background-size:11px 2px;animation:fxBhMarch 1s linear infinite}
.bh-arrow::after{content:"";position:absolute;right:-2px;top:-4px;width:9px;height:9px;border-top:2px solid var(--p600);border-right:2px solid var(--p600);transform:rotate(45deg)}
@keyframes fxBhMarch{to{background-position:11px 0}}

/* =====================================================================
   4 · DATENFLUSS
   ===================================================================== */
.fx-line{--dot:22px;--mid:214px;position:relative;max-width:1060px;margin:clamp(56px,8vh,88px) auto 0}
.fx-line__track{position:absolute;left:50%;top:var(--y0,60px);height:calc(var(--y1,900px) - var(--y0,60px));width:3px;margin-left:-1.5px;border-radius:3px;background:repeating-linear-gradient(180deg,rgba(255,255,255,.22) 0 5px,transparent 5px 11px)}
.fx-line__track i{position:relative;display:block;width:100%;height:0;border-radius:3px;background:linear-gradient(180deg,var(--p600),var(--p300));box-shadow:0 0 14px rgba(121,164,242,.8)}
.fx-token{position:absolute;left:50%;top:0;z-index:3;width:184px;margin-left:-92px;padding:11px 14px 12px;border-radius:16px;text-align:center;opacity:0;
  background:linear-gradient(160deg,rgba(255,255,255,.24),rgba(255,255,255,.07)),rgba(16,30,64,.62);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.32),0 24px 44px -18px rgba(0,0,0,.7),0 0 30px -6px rgba(121,164,242,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);will-change:transform;transition:opacity .5s}
.fx-token__k{display:block;font-size:9.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--p300)}
.fx-token b{display:block;margin-top:3px;font-size:14px;font-weight:800;letter-spacing:-.01em}
.fx-token__ref{display:inline-block;margin-top:7px;padding:3px 10px;border-radius:8px;font-size:11.5px;font-weight:800;color:var(--p100);background:rgba(16,26,52,.62);box-shadow:inset 0 0 0 1px rgba(121,164,242,.5);font-variant-numeric:tabular-nums}
.fx-token.is-stamp .fx-token__ref{animation:stamp .45s var(--spring)}
.fx-stops{display:grid;row-gap:clamp(22px,3vw,38px)}
.fx-stop{position:relative;display:grid;grid-template-columns:minmax(0,1fr) var(--mid) minmax(0,1fr);align-items:center}
.fx-stop__dot{grid-column:2;grid-row:1;justify-self:center;position:relative;z-index:2;width:var(--dot);height:var(--dot);border-radius:50%;background:#152a58;display:grid;place-items:center;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.28);transition:box-shadow .5s,background .5s}
.fx-stop__dot i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.26);transition:background .5s,box-shadow .5s}
.fx-stop::before{content:"";position:absolute;top:50%;width:94px;height:2px;margin-top:-1px;background:rgba(255,255,255,.16);transition:background .6s}
.fx-stop:nth-child(odd)::before{left:calc(50% - 105px)}
.fx-stop:nth-child(even)::before{left:calc(50% + 11px)}
.fx-stop.is-lit::before{background:linear-gradient(90deg,rgba(121,164,242,.9),rgba(121,164,242,.25))}
.fx-stop:nth-child(odd).is-lit::before{background:linear-gradient(270deg,rgba(121,164,242,.9),rgba(121,164,242,.25))}
.fx-stop.is-lit .fx-stop__dot{box-shadow:inset 0 0 0 1.5px rgba(121,164,242,.95),0 0 18px rgba(121,164,242,.6)}
.fx-stop.is-lit .fx-stop__dot i{background:var(--p400);box-shadow:0 0 10px rgba(121,164,242,.95)}
.fx-stop__card{grid-row:1;display:flex;align-items:flex-start;gap:18px;width:min(100%,440px);padding:20px 22px 22px;border-radius:26px;transition:opacity .6s,transform .8s var(--ease)}
.fx-stop:nth-child(odd) .fx-stop__card{grid-column:1;justify-self:end}
.fx-stop:nth-child(even) .fx-stop__card{grid-column:3;justify-self:start}
.js .fx-stop__card{opacity:.4}
.js .fx-stop:nth-child(odd) .fx-stop__card{transform:translateX(-18px)}
.js .fx-stop:nth-child(even) .fx-stop__card{transform:translateX(18px)}
.js .fx-stop.is-lit .fx-stop__card{opacity:1;transform:none}
.fx-stop__gi{--s:54px;margin-top:2px}
.fx-stop.is-lit .fx-stop__gi{transform:scale(1.06)}
.fx-stop__t{min-width:0}
.fx-stop__n{display:block;font-size:10.5px;font-weight:800;letter-spacing:.14em;color:var(--p300);font-variant-numeric:tabular-nums}
.fx-stop__card h3{font-size:19px;font-weight:800;letter-spacing:-.02em;margin-top:3px}
.fx-stop__card p{font-size:14.5px;line-height:1.55;color:var(--p200);margin-top:6px;text-wrap:pretty}
.fx-stop__ref{display:inline-block;margin-top:12px;padding:4px 10px;border-radius:9px;font-size:10.5px;font-weight:800;color:var(--p100);background:rgba(16,26,52,.55);box-shadow:inset 0 0 0 1px rgba(121,164,242,.36);font-variant-numeric:tabular-nums;white-space:nowrap}
.fx-stop__ref--ok{color:#B1E9C2;box-shadow:inset 0 0 0 1px rgba(177,233,194,.45)}
.fx-flow{position:relative;color:#fff;padding:clamp(110px,15vh,170px) 0 clamp(96px,13vh,140px)}
  background:linear-gradient(160deg,rgba(255,255,255,.22),rgba(255,255,255,.07)),rgba(16,30,64,.55);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.3),0 22px 40px -18px rgba(0,0,0,.65);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);will-change:transform;transition:none}
@keyframes stamp{0%{transform:scale(1.5);opacity:.2}100%{transform:none;opacity:1}}
.fx-flow__claim{margin-top:clamp(52px,8vh,84px);text-align:center;font-size:clamp(24px,3vw,40px);line-height:1.15;font-weight:800;letter-spacing:-.035em;text-wrap:balance}
.fx-where{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:clamp(44px,6vh,64px)}
.fx-where__item{padding:24px 24px 26px;border-radius:24px}
.fx-where__ico{--s:56px}
.fx-where__item h3{font-size:18px;font-weight:800;letter-spacing:-.02em;margin-top:18px}
.fx-where__item p{font-size:14.5px;line-height:1.6;color:var(--p200);margin-top:7px}

/* =====================================================================
   Responsiv
   ===================================================================== */
@media (max-width:1100px){
  .fx-info__body p{font-size:13.5px}
}
@media (max-width:1000px){
  .bento{grid-template-columns:repeat(6,minmax(0,1fr))}
  .bcard--7{grid-column:span 6}.bcard--5,.bcard--4{grid-column:span 3}
  .bcard__vis{min-height:250px}
}
@media (max-width:900px){
  .fx-hero{min-height:0;padding-top:calc(var(--hdr) + 28px)}
  .fx-hero__grid{grid-template-columns:minmax(0,1fr);gap:8px}
  .fx-hero__text{max-width:none}
  .fx-stage{margin:0 auto;max-width:560px}
  .fx-nova__card{grid-template-columns:minmax(0,1fr);text-align:left}
  .fx-nova__stage{min-height:260px}
  .fx-where{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:700px){
  .bento{grid-template-columns:minmax(0,1fr)}
  .bcard--7,.bcard--5,.bcard--4{grid-column:auto}
  .bcard__vis{flex:none;min-height:250px;padding:26px 16px}
  .fx-info{flex-wrap:wrap}
  .fx-info__side{flex-direction:row;align-items:center;width:100%;justify-content:space-between}
  .fx-node__lbl{font-size:11px}
  .fx-chip{font-size:12px;max-width:170px;padding:8px 11px}
}
@media (max-width:460px){
  .fx-node__lbl{font-size:10.5px}
  .fx-chip--b{top:44%}
}
@media (prefers-reduced-motion:reduce){
  .fx-edge,.fx-node__tile,.fx-chip{animation:none}
}


.fx-base{fill:none;stroke:rgba(154,190,255,.16);stroke-width:1.4}

/* Schluss: Titel in zwei Zeilen */
#cta .finale__title{max-width:none;font-size:clamp(40px,6vw,96px)}
#cta .finale__title .glow{display:block}

/* Handy: Sternbild ohne Beschriftung (das Infofeld nennt das aktive Modul), Rechnung als einzelnes Blatt */
@media (max-width:700px){
  .fx-const{aspect-ratio:1/1.02}
  .fx-node{--t:clamp(46px,13vw,56px)}
  .fx-node__lbl{display:none}
  .fx-core .orb{width:clamp(78px,22vw,100px)}
  .fx-core__lbl{margin-top:12px}
  .mk-doc{height:auto;width:min(100%,330px)}
  .fx-sheet--back{display:none}
  .fx-sheet--front{position:relative;right:auto;top:auto;width:100%;height:auto;padding-bottom:64px;transform:rotate(1.4deg)}
  .bcard:hover .fx-sheet--front{transform:rotate(0)}
}

/* Nicht sichtbar = nicht animieren */
.fx-hero.is-off .fx-edge,.fx-hero.is-off .fx-node__tile,.fx-hero.is-off .fx-run,
.fx-nova.is-off .fx-chip,.fx-nova.is-off [class^="nv-"],.fx-nova.is-off [class*=" nv-"]{animation-play-state:paused}

/* Datenfluss: senkrechte Bahn auf schmalen Bildschirmen */
@media (max-width:860px){
  .fx-line{--mid:0px}
  .fx-line__track{left:19px}
  .fx-token{display:none}
  .fx-stop{grid-template-columns:38px minmax(0,1fr);column-gap:14px}
  .fx-stop::before{display:none}
  .fx-stop__dot{grid-column:1}
  .fx-stop:nth-child(n) .fx-stop__card{grid-column:2;justify-self:stretch;width:auto}
  .js .fx-stop:nth-child(n) .fx-stop__card{transform:translateY(14px)}
  .js .fx-stop.is-lit:nth-child(n) .fx-stop__card{transform:none}
}
/* Datenfluss: was mitkommt (gedämpft) und was neu dazukommt (hell) */
.fx-stop__data{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.fx-dc{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;font-size:11.5px;font-weight:700;line-height:1.2;white-space:nowrap}
.fx-dc--carry{color:var(--p200);background:rgba(154,190,255,.1);box-shadow:inset 0 0 0 1px rgba(154,190,255,.28);border:0;opacity:.8}
.fx-dc--carry::before{content:"";width:9px;height:9px;flex:none;background:currentColor;opacity:.75;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6h8M6.5 2.5 10 6l-3.5 3.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6h8M6.5 2.5 10 6l-3.5 3.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.fx-dc--new{color:#fff;background:linear-gradient(180deg,rgba(121,164,242,.55),rgba(68,107,180,.5));box-shadow:inset 0 0 0 1px rgba(197,218,255,.45),0 6px 14px -8px rgba(0,0,0,.6)}
.fx-stop__data+.fx-stop__ref{margin-top:14px}


/* Katalog-Visuals passen sich der Kartenbreite an (iPad, Handy): Kanban ohne Kürzel und Beschriftung */
.bcard__vis{container-type:inline-size}
@container (max-width:400px){
  .mk-kan{gap:6px}
  .fx-kcol{padding:8px 5px 6px}
  .fx-kcol h5{margin:0 2px 3px}
  .kav{display:none}
  .fx-kcard{padding:7px 8px}
  .fx-kcard b{font-size:10.5px}
  .fx-kcard .kd{font-size:9.5px;gap:4px}
  .kdl{display:none}
  .km{margin-left:0}
}
