/* vio Chat-Widget — refined fintech-grade, selbst-scoped (alle Klassen .mvc-*) */
/* Marken-adaptiv: alle Farben aus den Tokens (--accent…) der Seite → modvio (Blau) & mietvio (Teal). */

.mvc-root{
  --mvc-accent:var(--accent,#2A50C8);--mvc-accent-strong:var(--accent-strong,#1C3C99);
  --mvc-soft:var(--accent-soft,#EAEFFC);--mvc-ink:var(--ink,#0E1526);--mvc-ink-soft:var(--ink-soft,#59617A);
  --mvc-ink-faint:var(--ink-faint,#8089A0);--mvc-line:var(--line,#ECEEF5);--mvc-paper:var(--paper-soft,#F7F8FC);
  --mvc-fd:var(--fd,"Schibsted Grotesk",sans-serif);--mvc-ft:var(--ft,"Hanken Grotesk",sans-serif);
  --mvc-fm:var(--fm,"IBM Plex Mono",monospace);
  /* mehrschichtige, weiche Tiefe statt eines harten Schattens */
  --mvc-shadow:0 0 0 1px color-mix(in oklab,var(--mvc-ink) 5%,transparent),0 2px 6px rgba(14,21,38,.05),0 14px 34px rgba(14,21,38,.10),0 32px 64px rgba(14,21,38,.12);
  --mvc-shadow-sm:0 1px 2px rgba(14,21,38,.06),0 3px 10px rgba(14,21,38,.05);
  /* aus der Marke abgeleiteter Tiefen-Verlauf (funktioniert für jede --accent) */
  --mvc-grad:linear-gradient(150deg,color-mix(in oklab,var(--mvc-accent) 92%,#fff) 0%,var(--mvc-accent) 46%,color-mix(in oklab,var(--mvc-accent-strong) 78%,#0a1024) 100%);
  font-family:var(--mvc-ft)}

/* ---------- Launcher ---------- */
.mvc-launcher{position:fixed;right:24px;bottom:24px;z-index:9000;width:62px;height:62px;border-radius:50%;
  border:0;cursor:pointer;display:grid;place-items:center;color:var(--mvc-accent-strong);
  background:transparent;
  filter:drop-shadow(0 8px 16px color-mix(in oklab,var(--mvc-accent) 30%,transparent)) drop-shadow(0 2px 5px rgba(14,21,38,.18));
  transition:transform .2s cubic-bezier(.2,.7,.2,1),filter .2s}
.mvc-launcher:hover{transform:translateY(-3px) scale(1.06);filter:drop-shadow(0 14px 28px color-mix(in oklab,var(--mvc-accent) 40%,transparent)) drop-shadow(0 3px 7px rgba(14,21,38,.2))}
.mvc-launcher:active{transform:scale(.97)}
.mvc-launcher svg{width:26px;height:26px;transition:opacity .2s,transform .2s}
.mvc-launcher .mvc-ic-chat svg{width:55px;height:55px}
.mvc-launcher .mvc-ic-close{position:absolute;opacity:0;transform:rotate(-90deg)}
.mvc-root.open .mvc-launcher{background:var(--mvc-grad);color:#fff}
.mvc-root.open .mvc-launcher .mvc-ic-chat{opacity:0;transform:rotate(90deg)}
.mvc-root.open .mvc-launcher .mvc-ic-close{opacity:1;transform:rotate(0)}
.mvc-badge{position:absolute;top:-1px;right:-1px;width:18px;height:18px;border-radius:50%;background:#13B981;
  border:2.5px solid #fff;font-family:var(--mvc-fm);font-size:.58rem;color:#fff;display:grid;place-items:center;font-weight:600;
  box-shadow:0 1px 3px rgba(14,21,38,.2);animation:mvcBadgePulse 3s ease-in-out 1.8s infinite}
.mvc-root.open .mvc-badge{display:none}
@keyframes mvcBadgePulse{0%,90%,100%{transform:none}95%{transform:scale(1.22)}}

/* Lebendiges Launcher-Vio = geteiltes /shared/vio-rig.js (Rig-Styles in der .vio-rig-Regel dort,
   Größe via „.mvc-ic-chat svg" oben). transition:none/overflow:visible/transform-origin liefert das Rig selbst. */
@media(prefers-reduced-motion:reduce){
  .mvc-badge{animation:none}
}

/* proactive greeting bubble */
.mvc-poke{position:fixed;right:26px;bottom:100px;z-index:8999;max-width:272px;background:#fff;color:var(--mvc-ink);
  border-radius:18px 18px 5px 18px;box-shadow:var(--mvc-shadow);
  padding:14px 16px 15px 17px;font-size:.92rem;line-height:1.5;cursor:pointer;
  transform-origin:bottom right;animation:mvcPoke .5s cubic-bezier(.2,.8,.2,1) both}
.mvc-poke b{display:block;font-size:.66rem;color:var(--mvc-accent-strong);margin-bottom:5px;
  font-family:var(--mvc-fm);letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.mvc-poke .mvc-poke-x{position:absolute;top:-9px;right:-9px;width:24px;height:24px;border-radius:50%;background:#fff;
  color:var(--mvc-ink-faint);display:grid;place-items:center;cursor:pointer;box-shadow:var(--mvc-shadow-sm),0 0 0 1px var(--mvc-line)}
.mvc-poke .mvc-poke-x svg{width:13px;height:13px}
@keyframes mvcPoke{from{opacity:0;transform:translateY(10px) scale(.92)}to{opacity:1;transform:none}}

/* ---------- Panel ---------- */
.mvc-panel{position:fixed;right:24px;bottom:100px;z-index:9001;width:392px;max-width:calc(100vw - 32px);
  height:608px;max-height:calc(100vh - 124px);background:#fff;
  border-radius:22px;box-shadow:var(--mvc-shadow);overflow:hidden;display:flex;flex-direction:column;
  opacity:0;transform:translateY(18px) scale(.965);transform-origin:bottom right;pointer-events:none;
  transition:opacity .26s ease,transform .26s cubic-bezier(.2,.8,.2,1)}
.mvc-root.open .mvc-panel{opacity:1;transform:none;pointer-events:auto}
@media(max-width:480px){
  .mvc-panel{right:10px;left:10px;bottom:10px;width:auto;height:auto;top:10px;max-height:none;border-radius:20px}
  .mvc-launcher{right:16px;bottom:16px}
  .mvc-poke{right:16px;left:16px;max-width:none;bottom:88px}
}

/* header — markenkonform aus den Tokens, dimensionaler Tiefen-Verlauf + feiner Glanz */
.mvc-head{position:relative;overflow:hidden;display:flex;align-items:center;gap:13px;padding:17px 17px;color:#fff;flex:0 0 auto;
  background:var(--mvc-grad);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -1px 0 rgba(10,16,36,.18)}
.mvc-head>*{position:relative;z-index:1}
.mvc-head::after{content:"";position:absolute;inset:0;background:radial-gradient(130% 110% at 88% -30%,rgba(255,255,255,.22),transparent 56%);pointer-events:none}
.mvc-head .mvc-av{width:42px;height:42px;border-radius:13px;background:#fff;display:grid;place-items:center;flex:0 0 42px;overflow:hidden;
  box-shadow:0 2px 6px rgba(10,16,36,.22),inset 0 0 0 1px rgba(255,255,255,.6)}
.mvc-head .mvc-av svg{width:36px;height:36px}
.mvc-head .mvc-id{flex:1;min-width:0}
.mvc-head .mvc-id b{font-family:var(--mvc-fd);font-size:1.04rem;font-weight:800;letter-spacing:-.015em;display:block;line-height:1.2}
.mvc-head .mvc-id .mvc-on{font-size:.76rem;color:rgba(255,255,255,.85);display:inline-flex;align-items:center;gap:6px;margin-top:1px}
.mvc-head .mvc-id .mvc-on i{width:7px;height:7px;border-radius:50%;background:#4ADE9E;box-shadow:0 0 0 3px rgba(74,222,158,.3)}
.mvc-head .mvc-x{width:32px;height:32px;border-radius:10px;border:0;background:rgba(255,255,255,.16);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .15s}
.mvc-head .mvc-x:hover{background:rgba(255,255,255,.28)}
.mvc-head .mvc-x svg{width:16px;height:16px}

/* body */
.mvc-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px 17px 10px;background:var(--mvc-paper);display:flex;flex-direction:column;gap:15px;scroll-behavior:smooth}
.mvc-body::-webkit-scrollbar{width:9px}
.mvc-body::-webkit-scrollbar-thumb{background:#d6dbe8;border-radius:9px;border:3px solid var(--mvc-paper)}
.mvc-body::-webkit-scrollbar-thumb:hover{background:#c3c9da}

/* message rows */
.mvc-msg{display:flex;gap:9px;align-items:flex-end;max-width:100%;animation:mvcIn .36s cubic-bezier(.2,.8,.2,1) both}
@keyframes mvcIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.mvc-msg{animation:none}}
.mvc-msg.user{flex-direction:row-reverse}
.mvc-msg .mvc-mav{width:29px;height:29px;border-radius:9px;background:#fff;display:grid;place-items:center;flex:0 0 29px;overflow:hidden;
  box-shadow:0 0 0 1px var(--mvc-line),0 1px 2px rgba(14,21,38,.06)}
.mvc-msg .mvc-mav svg{width:25px;height:25px}
.mvc-bubble{padding:11px 15px;border-radius:17px;font-size:.92rem;line-height:1.52;max-width:80%}
.mvc-msg.bot .mvc-bubble{background:#fff;color:var(--mvc-ink);border-bottom-left-radius:6px;box-shadow:0 0 0 1px var(--mvc-line),0 1px 2px rgba(14,21,38,.05)}
.mvc-msg.user .mvc-bubble{background:linear-gradient(165deg,var(--mvc-accent),var(--mvc-accent-strong));color:#fff;border-bottom-right-radius:6px;
  box-shadow:0 2px 8px color-mix(in oklab,var(--mvc-accent) 30%,transparent)}
.mvc-bubble b{font-weight:700}

/* typing */
.mvc-typing{display:inline-flex;gap:4px;padding:14px 16px}
.mvc-typing i{width:7px;height:7px;border-radius:50%;background:var(--mvc-ink-faint);opacity:.5;animation:mvcDot 1.2s infinite}
.mvc-typing i:nth-child(2){animation-delay:.18s}.mvc-typing i:nth-child(3){animation-delay:.36s}
@keyframes mvcDot{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:.95}}

/* quick-reply chips */
.mvc-chips{display:flex;flex-wrap:wrap;gap:8px;padding-left:38px;animation:mvcIn .36s both}
.mvc-msg.user + .mvc-chips,.mvc-chips.right{justify-content:flex-end;padding-left:0}
.mvc-chip{font-family:var(--mvc-ft);font-weight:600;font-size:.86rem;color:var(--mvc-accent-strong);
  background:#fff;border-radius:999px;padding:9px 16px;cursor:pointer;
  box-shadow:0 0 0 1px var(--mvc-line),0 1px 2px rgba(14,21,38,.04);
  transition:box-shadow .16s,background .16s,transform .12s,color .16s}
.mvc-chip:hover{background:var(--mvc-soft);color:var(--mvc-accent-strong);transform:translateY(-1px);
  box-shadow:0 0 0 1px color-mix(in oklab,var(--mvc-accent) 45%,var(--mvc-line)),0 4px 10px color-mix(in oklab,var(--mvc-accent) 18%,transparent)}
.mvc-chip:active{transform:none}

/* module card */
.mvc-cards{display:grid;gap:10px;padding-left:38px;width:100%;animation:mvcIn .36s both}
.mvc-modcard{display:flex;align-items:center;gap:13px;background:#fff;border-radius:15px;padding:13px 15px;
  box-shadow:0 0 0 1px var(--mvc-line),0 1px 2px rgba(14,21,38,.05);position:relative;overflow:hidden;--mc:var(--mvc-accent);
  cursor:pointer;transition:box-shadow .16s,transform .14s}
.mvc-modcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--mc)}
.mvc-modcard .mvc-mc-ic{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;flex:0 0 39px;
  background:color-mix(in oklab,var(--mc) 12%,#fff);color:var(--mc)}
.mvc-modcard .mvc-mc-ic svg{width:20px;height:20px}
.mvc-modcard .mvc-mc-t{flex:1;min-width:0}
.mvc-modcard .mvc-mc-t b{font-family:var(--mvc-fd);font-size:.97rem;font-weight:700;display:block;color:var(--mvc-ink)}
.mvc-modcard .mvc-mc-t small{color:var(--mvc-ink-soft);font-size:.8rem;line-height:1.4;display:block}
.mvc-modcard .mvc-mc-arr{color:var(--mc);flex:0 0 auto;transition:transform .16s}
.mvc-modcard .mvc-mc-arr svg{width:18px;height:18px}
.mvc-modcard:hover{transform:translateY(-1px);box-shadow:0 0 0 1px color-mix(in oklab,var(--mc) 38%,var(--mvc-line)),0 6px 16px color-mix(in oklab,var(--mc) 16%,transparent)}
.mvc-modcard:hover .mvc-mc-arr{transform:translateX(3px)}

/* price card */
.mvc-price{padding-left:38px;width:100%;animation:mvcIn .36s both}
.mvc-pricecard{background:#fff;border-radius:17px;padding:19px;box-shadow:0 0 0 1px var(--mvc-line),0 2px 8px rgba(14,21,38,.05)}
.mvc-pricecard .mvc-pp-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:13px}
.mvc-pricecard .mvc-pp-top b{font-family:var(--mvc-fd);font-size:1.06rem;font-weight:700}
.mvc-pricecard .mvc-pp-price{font-family:var(--mvc-fd);font-weight:800;font-size:1.55rem;color:var(--mvc-ink);letter-spacing:-.02em}
.mvc-pricecard .mvc-pp-price span{font-size:.82rem;color:var(--mvc-ink-faint);font-weight:600;font-family:var(--mvc-ft);letter-spacing:0}
.mvc-pricecard ul{list-style:none;display:grid;gap:9px;margin:0 0 15px;padding:0}
.mvc-pricecard li{display:flex;gap:9px;align-items:flex-start;color:var(--mvc-ink-soft);font-size:.86rem}
.mvc-pricecard li svg{width:16px;height:16px;color:var(--mvc-accent);flex:0 0 16px;margin-top:2px}

/* inline cta */
.mvc-cta-wrap{padding-left:38px;width:100%;animation:mvcIn .36s both}
.mvc-cta{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;font-family:var(--mvc-ft);
  font-weight:600;font-size:.95rem;color:#fff;background:linear-gradient(165deg,var(--mvc-accent),var(--mvc-accent-strong));
  border:0;border-radius:13px;padding:13px 16px;cursor:pointer;text-decoration:none;
  box-shadow:0 2px 6px color-mix(in oklab,var(--mvc-accent) 28%,transparent),inset 0 1px 0 rgba(255,255,255,.16);
  transition:transform .15s,box-shadow .15s}
.mvc-cta svg{width:17px;height:17px;transition:transform .15s}
.mvc-cta:hover{transform:translateY(-2px);box-shadow:0 8px 20px color-mix(in oklab,var(--mvc-accent) 36%,transparent),inset 0 1px 0 rgba(255,255,255,.16)}
.mvc-cta:hover svg{transform:translateX(3px)}
.mvc-cta.ghost{background:#fff;color:var(--mvc-accent-strong);box-shadow:0 0 0 1px var(--mvc-line),0 1px 2px rgba(14,21,38,.04)}
.mvc-cta.ghost:hover{background:var(--mvc-soft);transform:none;box-shadow:0 0 0 1px color-mix(in oklab,var(--mvc-accent) 40%,var(--mvc-line))}

/* lead form */
.mvc-form{padding-left:38px;width:100%;animation:mvcIn .36s both}
.mvc-formcard{background:#fff;border-radius:17px;padding:17px;display:grid;gap:11px;box-shadow:0 0 0 1px var(--mvc-line),0 2px 8px rgba(14,21,38,.05)}
.mvc-formcard label{font-size:.76rem;font-weight:600;color:var(--mvc-ink);margin-bottom:-5px;letter-spacing:.01em}
.mvc-formcard input{font-family:var(--mvc-ft);font-size:.92rem;padding:11px 13px;border:1px solid var(--mvc-line);border-radius:11px;background:var(--mvc-paper);color:var(--mvc-ink);transition:border-color .15s,box-shadow .15s,background .15s}
.mvc-formcard input::placeholder{color:var(--mvc-ink-faint)}
.mvc-formcard input:focus{outline:none;border-color:var(--mvc-accent);background:#fff;box-shadow:0 0 0 3px var(--mvc-soft)}

/* footer / input */
.mvc-foot{flex:0 0 auto;border-top:1px solid var(--mvc-line);background:#fff;padding:13px 13px;display:flex;align-items:center;gap:9px}
.mvc-input{flex:1;font-family:var(--mvc-ft);font-size:.92rem;border:1px solid var(--mvc-line);border-radius:999px;padding:11px 17px;background:var(--mvc-paper);color:var(--mvc-ink);transition:border-color .15s,box-shadow .15s,background .15s}
.mvc-input::placeholder{color:var(--mvc-ink-faint)}
.mvc-input:focus{outline:none;border-color:var(--mvc-accent);box-shadow:0 0 0 3px var(--mvc-soft);background:#fff}
.mvc-send{width:43px;height:43px;border-radius:50%;border:0;flex:0 0 43px;cursor:pointer;color:#fff;display:grid;place-items:center;
  background:linear-gradient(165deg,var(--mvc-accent),var(--mvc-accent-strong));
  box-shadow:0 2px 8px color-mix(in oklab,var(--mvc-accent) 32%,transparent);transition:transform .15s,opacity .15s,box-shadow .15s}
.mvc-send:hover{transform:scale(1.07);box-shadow:0 4px 12px color-mix(in oklab,var(--mvc-accent) 40%,transparent)}
.mvc-send:disabled{opacity:.4;cursor:default;transform:none;box-shadow:none}
.mvc-send svg{width:18px;height:18px}
.mvc-disclaimer{flex:0 0 auto;text-align:center;font-family:var(--mvc-fm);font-size:.62rem;letter-spacing:.04em;color:var(--mvc-ink-faint);padding:0 0 11px;background:#fff}
.mvc-disclaimer a{color:var(--mvc-ink-soft);text-decoration:underline;text-underline-offset:2px}
