/* ============================================================
   Nevolox Live-Demo Kit – gemeinsames Design-System
   Dunkler Marken-Look (Anthrazit / Poppins / Blau), wie Website + App.
   Jede Demo bindet diese Datei ein und nutzt die Klassen hier.
   ============================================================ */

@font-face{font-family:'Poppins';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/poppins-300.woff2') format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/poppins-400.woff2') format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/poppins-500.woff2') format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/poppins-600.woff2') format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/poppins-700.woff2') format('woff2');}

:root{
  --bg:#181B20; --bg-1:#1C2026; --bg-2:#21262D; --bg-3:#2A2F37; --bg-4:#333A43;
  --border:#2A2F37; --border-strong:#3A4049; --border-bright:#4A515B;
  --text:#FFFFFF; --text-muted:#A1A1AA; --text-soft:#71717A; --text-dim:#52525B;
  --accent:#3B82F6; --accent-bright:#60A5FA; --accent-cyan:#38BDF8; --accent-strong:#2563EB;
  --green:#4ADE80; --green-bg:rgba(34,197,94,.15);
  --orange:#FB923C; --orange-bg:rgba(234,88,12,.18);
  --red:#F87171; --red-bg:rgba(220,38,38,.18);
  --purple:#A78BFA; --purple-bg:rgba(124,58,237,.18);
  --blue-bg:rgba(59,130,246,.15);
  --neutral-bg:rgba(255,255,255,.06);
  --font-sans:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --radius:14px; --radius-sm:10px;
  --shadow:0 10px 30px rgba(0,0,0,.35);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg); color:var(--text); font-family:var(--font-sans);
  line-height:1.55; -webkit-font-smoothing:antialiased; font-weight:400;
}
a{color:var(--accent-bright); text-decoration:none;}
::selection{background:rgba(59,130,246,.35);}

/* ---------- Topbar (Marken-Kopf) ---------- */
.topbar{
  position:sticky; top:0; z-index:20;
  background:rgba(24,27,32,.85); backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--border);
  display:flex; align-items:center; gap:18px; padding:14px 30px;
}
.topbar__logo{height:26px; width:auto; display:block;}
.topbar__logolink{display:flex; align-items:center; flex:0 0 auto;}
.topbar__back{margin-left:auto; font-size:13px; color:var(--text-muted); text-decoration:none; white-space:nowrap;}
.topbar__back:hover{color:var(--text);}
.topbar__module{
  border-left:1px solid var(--border-strong); padding-left:18px;
  display:flex; flex-direction:column; gap:1px;
}
.topbar__module b{font-size:15px; font-weight:600; letter-spacing:.1px;}
.topbar__module span{font-size:11.5px; color:var(--text-soft);}
.topbar__account{
  display:flex; align-items:center; gap:10px;
  font-size:12.5px; color:var(--text-muted);
}
.topbar__account .ava{
  width:30px; height:30px; border-radius:50%;
  background:linear-gradient(135deg,var(--accent),var(--accent-cyan));
  color:#fff; font-size:12px; font-weight:600;
  display:flex; align-items:center; justify-content:center;
}
/* Topbar auf Mobil: umbrechen statt horizontal überlaufen */
@media (max-width:560px){
  .topbar{ flex-wrap:wrap; gap:8px 14px; padding:12px 16px; }
  .topbar__module{ border-left:none; padding-left:0; flex:1 1 100%; order:3; }
}
@media (max-width:380px){
  .topbar__account{ display:none; }
}

/* ---------- Layout ---------- */
.wrap{max-width:1180px; margin:0 auto; padding:30px 24px 70px;}
.lead{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-bottom:22px;}
.lead__txt{font-size:14.5px; color:var(--text-muted); max-width:600px;}
.lead__txt b{color:var(--text);}
.lead__actions{display:flex; gap:10px;}

.grid-2{display:grid; grid-template-columns:1.55fr 1fr; gap:24px; align-items:start;}
@media(max-width:880px){ .grid-2{grid-template-columns:1fr;} }

/* ---------- Buttons ---------- */
.btn{
  border:0; cursor:pointer; font-family:inherit; font-weight:600; font-size:14.5px;
  padding:12px 24px; border-radius:var(--radius-sm); color:#fff; white-space:nowrap;
  background:var(--accent-strong); transition:transform .08s ease, background .15s ease, opacity .15s ease;
}
.btn:hover{background:#1f47c4;}
.btn:active{transform:translateY(1px);}
.btn[disabled]{opacity:.45; cursor:default;}
.btn--ghost{background:transparent; border:1px solid var(--border-strong); color:var(--text);}
.btn--ghost:hover{background:var(--bg-3); border-color:var(--border-bright);}

/* ---------- Panels ---------- */
.panel{
  background:var(--bg-2); border:1px solid var(--border); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow);
}
.panel__head{
  padding:14px 20px; border-bottom:1px solid var(--border);
  font-size:13px; font-weight:600; color:var(--text-muted);
  display:flex; align-items:center; justify-content:space-between; gap:10px;
}
.panel__head .meta{font-weight:500; color:var(--text-soft); font-size:12px;}
.panel__body{padding:6px 0;}
.panel.sticky{position:sticky; top:84px;}

/* ---------- List items (Mails / Anfragen / Belege / Anrufe) ---------- */
.item{padding:16px 20px; border-bottom:1px solid var(--border); transition:background .2s ease;}
.item:last-child{border-bottom:0;}
.item.is-active{background:var(--bg-3);}
.item__row{display:flex; gap:13px; align-items:flex-start;}
.ava{
  width:40px; height:40px; border-radius:50%; flex:0 0 40px;
  background:var(--bg-4); color:var(--text-muted);
  display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:600;
}
.ava--blue{background:var(--blue-bg); color:var(--accent-bright);}
.item__head{min-width:0; flex:1;}
.item__title{font-size:14px; font-weight:600; display:flex; justify-content:space-between; gap:10px;}
.item__title .t{font-weight:400; color:var(--text-soft); font-size:12.5px; flex:0 0 auto;}
.item__sub{font-size:13px; color:var(--text); margin-top:1px;}
.item__snippet{
  font-size:12.5px; color:var(--text-muted); margin-top:4px;
  overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
}

/* Ergebnis-Zeile (klappt nach „Verarbeitung" auf) */
.item__result{
  max-height:0; opacity:0; margin-top:0; overflow:hidden; padding-left:53px;
  transition:max-height .5s ease, opacity .4s ease, margin-top .4s ease;
}
.item.is-done .item__result{max-height:2600px; opacity:1; margin-top:12px;}
.resline{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.resline .arrow{color:var(--text-soft);}
.resline .action{font-size:12.5px; color:var(--text);}

/* ---------- Tags ---------- */
.tag{font-size:11.5px; font-weight:600; padding:3px 10px; border-radius:20px; white-space:nowrap;}
.tag--info{background:var(--blue-bg); color:var(--accent-bright);}
.tag--success{background:var(--green-bg); color:var(--green);}
.tag--warning{background:var(--orange-bg); color:var(--orange);}
.tag--danger{background:var(--red-bg); color:var(--red);}
.tag--purple{background:var(--purple-bg); color:var(--purple);}
.tag--neutral{background:var(--neutral-bg); color:var(--text-muted);}

/* ---------- Detail / Entwurf (aufklappbar) ---------- */
.detail-toggle{
  margin-left:auto; border:1px solid var(--border-strong); background:transparent; cursor:pointer;
  font-family:inherit; font-size:11.5px; color:var(--accent-bright); font-weight:600;
  padding:4px 12px; border-radius:8px; transition:background .15s ease;
}
.detail-toggle:hover{background:var(--bg-3);}
.detail{
  max-height:0; opacity:0; overflow:hidden; margin-top:0;
  transition:max-height .4s ease, opacity .3s ease, margin-top .3s, padding .3s;
  background:var(--bg-1); border:1px solid var(--border); border-radius:var(--radius-sm);
  font-size:12.5px; color:#D5D8DD; white-space:pre-line; padding:0 15px;
}
.detail.is-open{max-height:420px; opacity:1; margin-top:11px; padding:14px 15px;}
.detail .label{font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--text-soft); margin-bottom:8px; font-weight:600;}

/* ---------- Stat-Kacheln (Ergebnis-Panel) ---------- */
.stats{padding:8px 20px 16px;}
.stat{display:flex; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid var(--border);}
.stat:last-child{border-bottom:0;}
.stat__num{font-size:26px; font-weight:700; min-width:46px; text-align:center; color:var(--text); font-variant-numeric:tabular-nums;}
.stat__num.accent{color:var(--accent-bright);}
.stat__lbl{font-size:13px; color:var(--text-muted);}

/* ---------- Ergebnis-Banner (Pointe) ---------- */
.banner{
  margin:6px 20px 18px; border-radius:var(--radius-sm); padding:18px 20px;
  background:linear-gradient(135deg,var(--accent-strong),#1e3a8a);
  opacity:0; transform:translateY(8px); transition:opacity .5s ease, transform .5s ease;
}
.banner.show{opacity:1; transform:none;}
.banner .big{font-size:21px; font-weight:700;}
.banner .sub{font-size:12.5px; color:#D6E0F5; margin-top:6px;}
.hint{font-size:12.5px; color:var(--text-soft); padding:0 20px 18px;}

/* ---------- Diverses ---------- */
.muted{color:var(--text-muted);} .soft{color:var(--text-soft);}
.is-hidden{display:none !important;}
.footnote{text-align:center; font-size:11.5px; color:var(--text-dim); margin-top:30px;}
.scan{position:relative;}
.scan.is-active::after{
  content:""; position:absolute; left:0; right:0; top:0; height:2px;
  background:linear-gradient(90deg,transparent,var(--accent-cyan),transparent);
  animation:scan 1s linear;
}
@keyframes scan{0%{top:0;opacity:0;}15%{opacity:1;}100%{top:100%;opacity:0;}}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.fade-up{animation:fadeUp .4s ease both;}

/* ---------- Hub / Übersicht ---------- */
.hub-back{margin-left:auto; font-size:13px; color:var(--text-muted); text-decoration:none;}
.hub-back:hover{color:var(--text);}
.hub-intro{max-width:700px; margin:0 0 32px; font-size:15px; color:var(--text-muted); line-height:1.6;}
.hub-intro b{color:var(--text);}
.hub-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
@media(max-width:820px){ .hub-grid{grid-template-columns:1fr;} }
.soft-card{position:relative; display:flex; flex-direction:column; background:linear-gradient(180deg,var(--bg-2),var(--bg-1)); border:1px solid var(--border); border-radius:16px; padding:24px; text-decoration:none; color:inherit; overflow:hidden; box-shadow:var(--shadow); transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;}
.soft-card::before{content:""; position:absolute; inset:0 0 auto 0; height:1px; background:linear-gradient(90deg,transparent,rgba(96,165,250,.5),transparent); opacity:0; transition:opacity .25s ease;}
.soft-card:hover{border-color:var(--accent); transform:translateY(-4px); box-shadow:0 18px 44px rgba(0,0,0,.45);}
.soft-card:hover::before{opacity:1;}
.soft-card__top{display:flex; align-items:center; justify-content:space-between; margin-bottom:16px;}
.soft-card__num{font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-bright);}
.soft-card__ico{width:48px; height:48px; flex:0 0 48px; border-radius:13px; background:linear-gradient(140deg,rgba(56,189,248,.16),var(--blue-bg)); border:1px solid rgba(96,165,250,.22); color:var(--accent-bright); display:flex; align-items:center; justify-content:center; transition:transform .2s ease;}
.soft-card:hover .soft-card__ico{transform:scale(1.06);}
.soft-card__ico svg{width:22px; height:22px; display:block;}
.soft-card h3{margin:0 0 9px; font-size:18px; font-weight:600; color:var(--text);}
.soft-card__what{margin:0 0 20px; font-size:13.5px; color:var(--text-muted); line-height:1.6; flex:1;}
.soft-card__cta{display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:600; color:var(--accent-bright);}
.soft-card__cta .ar{transition:transform .2s ease;}
.soft-card:hover .soft-card__cta .ar{transform:translateX(4px);}
.hub-foot{margin-top:32px; padding-top:22px; border-top:1px solid var(--border); font-size:14px; color:var(--text-muted); max-width:700px;}
.hub-foot b{color:var(--text);}


/* ===== Lab: gläserner Aufbau (Ablauf-Strip + Datenherkunft) — geteilt ===== */
.pipeline{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 16px; }
.pl-step{ display:flex; align-items:center; gap:9px; padding:9px 14px; border:1px solid var(--border); border-radius:11px; background:var(--bg-2); transition:border-color .25s ease, background .25s ease; }
.pl-step__n{ width:22px; height:22px; flex:0 0 22px; border-radius:50%; background:var(--bg-4); color:var(--text-muted); font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; transition:background .25s ease, color .25s ease; }
.pl-step__t{ font-size:12.5px; color:var(--text-muted); transition:color .25s ease; white-space:nowrap; }
.pl-step.active{ border-color:var(--accent); background:var(--bg-3); }
.pl-step.active .pl-step__n{ background:var(--accent); color:#fff; }
.pl-step.active .pl-step__t{ color:var(--text); }
.pl-arrow{ color:var(--text-dim); font-size:13px; }
@media(max-width:720px){ .pl-arrow{ display:none; } .pl-step{ flex:1 1 44%; } }
.datasource{ display:flex; gap:10px; align-items:flex-start; margin:0 0 24px; padding:13px 15px; border:1px solid var(--border); border-radius:11px; background:var(--bg-1); font-size:12.5px; color:var(--text-muted); line-height:1.55; }
.datasource b{ color:var(--text); }
.datasource .src__ic{ flex:0 0 28px; }
.detail{ white-space:normal; }
.detail.is-open{ max-height:2000px; }
.prov{ display:flex; flex-direction:column; gap:15px; }
.prov__label{ font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--text-soft); font-weight:700; margin-bottom:8px; }
.chips{ display:flex; flex-wrap:wrap; gap:7px; }
.chip{ font-size:11.5px; padding:3px 10px; border-radius:7px; background:var(--neutral-bg); color:var(--text-muted); }
.chip--key{ background:var(--blue-bg); color:var(--accent-bright); font-weight:600; }
.src{ display:flex; gap:11px; align-items:flex-start; padding:9px 0; border-bottom:1px dashed var(--border); font-size:12.5px; color:#D5D8DD; line-height:1.5; }
.src:first-of-type{ padding-top:0; }
.src:last-child{ border-bottom:0; padding-bottom:0; }
.src__ic{ flex:0 0 28px; width:28px; height:28px; border-radius:8px; background:var(--bg-3); color:var(--accent-bright); display:flex; align-items:center; justify-content:center; }
.src__ic svg{ width:16px; height:16px; display:block; }
.src b{ color:var(--text); font-weight:600; }
.draft-text{ white-space:pre-line; background:var(--bg-1); border:1px solid var(--border); border-radius:10px; padding:14px 15px; font-size:12.5px; color:#D5D8DD; line-height:1.6; }
.prov__note{ font-size:12.5px; color:var(--text-muted); line-height:1.55; }
/* Tabellen (Angebot/Belege) */
.dtable{ width:100%; border-collapse:collapse; font-size:12.5px; }
.dtable th{ text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--text-soft); font-weight:600; padding:0 0 9px; border-bottom:1px solid var(--border); }
.dtable td{ padding:10px 0; border-bottom:1px solid var(--border); color:#D5D8DD; }
.dtable td.num, .dtable th.num{ text-align:right; font-variant-numeric:tabular-nums; }
.dtable tr:last-child td{ border-bottom:0; }
.dsum{ display:flex; justify-content:space-between; padding:7px 0; font-size:13px; color:var(--text-muted); }
.dsum.total{ color:var(--text); font-weight:700; font-size:16px; border-top:1px solid var(--border-strong); margin-top:6px; padding-top:12px; }
.dsum.total b{ color:var(--accent-bright); }

/* Visually-hidden (Screenreader-only) – fuer semantische Seiten-h1 */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
