/* ==========================================================================
   EXPANDIQ Studio · Admin (apps/admin) — baut auf kit/eq.css auf (Tokens --eq-*).
   Mobile first (390 px), Desktop ab 1024 px mit Seitenleiste. Kein Grün (Kit-Regel).
   ========================================================================== */

:root{
  --side:264px;
  --top:60px;
  --tabbar:64px;
  --pad:16px;
  --panel:#0b111e;
  --panel-2:#0f1728;
  --hair:rgba(216,228,255,.085);
  --hit:56px;               /* Tap-Ziel Handy */
}
@media (min-width:1024px) and (pointer:fine){ :root{ --hit:40px } }

html{ scroll-padding-top:calc(var(--top) + 12px) }
body.eq-root, .eq-root body{ margin:0; min-height:100dvh; background:var(--eq-ink); overflow-x:clip }
img,svg,video{ display:block; max-width:100% }
button,input,select,textarea{ font:inherit; color:inherit }
a{ color:inherit }
code{ font-family:var(--eq-mono); font-size:.9em; padding:1px 6px; border-radius:6px; background:var(--eq-surface-2); border:1px solid var(--eq-line); color:#dbe6ff }
.i{ width:20px; height:20px; flex:none }
.i--inline{ display:inline-block; width:16px; height:16px; vertical-align:-3px; color:var(--eq-blue-light) }
.muted{ color:var(--eq-muted) }
.small{ font-size:13px }
.eq-root :focus-visible{ outline:2px solid var(--eq-blue-light); outline-offset:3px }

.boot{ min-height:100dvh; display:grid; place-items:center }
.boot__dot{ width:8px; height:8px; border-radius:50%; background:var(--eq-blue-light); box-shadow:0 0 24px #518af5; animation:pulse 1.2s ease-in-out infinite }
.noscript{ padding:24px; color:var(--eq-muted) }
.skip{ position:absolute; left:12px; top:-60px; z-index:200; padding:12px 16px; border-radius:10px; background:var(--eq-white); color:var(--eq-ink); font-weight:600; text-decoration:none }
.skip:focus{ top:12px }

/* ---------- Shell ---------- */
.shell{ min-height:100dvh }
.side{ display:none }
.topbar{
  position:sticky; top:0; z-index:50; height:var(--top);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:0 6px 0 var(--pad); padding-top:env(safe-area-inset-top);
  background:rgba(7,11,20,.8); backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--hair);
}
.topbar__actions{ display:flex; gap:2px }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; min-height:44px }
.brand img{ height:15px; width:auto }
.brand__sub{ font-family:var(--eq-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--eq-faint); padding-left:12px; border-left:1px solid var(--eq-line-strong); line-height:1.2 }
.icon-btn{ display:grid; place-items:center; width:var(--hit); height:var(--hit); min-width:44px; min-height:44px; border-radius:12px; border:0; background:transparent; color:#c8d2e4; cursor:pointer; transition:background .25s, color .25s }
.icon-btn:hover{ background:var(--eq-surface-2); color:#fff }

.tabbar{
  position:fixed; left:0; right:0; bottom:0; z-index:50;
  display:grid; grid-template-columns:repeat(6,minmax(0,1fr));
  padding-bottom:env(safe-area-inset-bottom);
  background:rgba(8,12,22,.9); backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-top:1px solid var(--hair);
}
.tabbar a{
  position:relative; min-width:0; min-height:var(--tabbar); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  text-decoration:none; font-size:10.5px; font-weight:500; letter-spacing:0; color:#8391a9; transition:color .25s; white-space:nowrap;
  -webkit-tap-highlight-color:transparent;
}
.tabbar a .i{ width:22px; height:22px }
.tabbar a[aria-current=page]{ color:#fff }
.tabbar a[aria-current=page]::before{ content:""; position:absolute; top:-1px; left:28%; right:28%; height:2px; border-radius:0 0 2px 2px; background:var(--eq-blue-light); box-shadow:0 0 14px rgba(145,181,255,.7) }
.tabbar a[aria-current=page] .i{ color:var(--eq-blue-light) }

.main{ display:block; padding:24px var(--pad) calc(var(--tabbar) + 40px + env(safe-area-inset-bottom)); max-width:1360px; outline:none; min-width:0 }
.view-enter{ animation:view-in .5s var(--eq-ease) both }

@media (min-width:1024px){
  .shell{ display:grid; grid-template-columns:var(--side) minmax(0,1fr) }
  .topbar,.tabbar{ display:none }
  .side{
    display:flex; flex-direction:column; position:sticky; top:0; height:100dvh; padding:28px 14px 18px;
    border-right:1px solid var(--hair);
    background:linear-gradient(180deg,#0a101c 0%,#080d18 100%);
  }
  .side .brand{ padding:0 12px 30px; flex-direction:column; align-items:flex-start; gap:12px }
  .side .brand img{ height:17px }
  .side .brand__sub{ padding-left:0; border-left:0 }
  .side__nav{ display:grid; gap:2px }
  .side__link{
    position:relative; display:flex; align-items:center; gap:12px; min-height:44px; padding:0 12px; border-radius:10px;
    text-decoration:none; color:#aab5c9; font-size:14.5px; font-weight:450; transition:background .25s, color .25s;
  }
  .side__link .i{ width:18px; height:18px; color:#7d8ba5; transition:color .25s }
  .side__link:hover{ background:rgba(255,255,255,.035); color:#fff }
  .side__link[aria-current=page]{ background:var(--eq-surface-2); color:#fff; box-shadow:inset 0 0 0 1px var(--hair) }
  .side__link[aria-current=page] .i{ color:var(--eq-blue-light) }
  .side__link[aria-current=page]::before{ content:""; position:absolute; left:-14px; top:12px; bottom:12px; width:2px; border-radius:0 2px 2px 0; background:var(--eq-blue-light); box-shadow:0 0 12px rgba(145,181,255,.8) }
  .side__num{ margin-left:auto; font-family:var(--eq-mono); font-size:10px; letter-spacing:.1em; color:#56627a }
  .side__link[aria-current=page] .side__num{ color:var(--eq-blue-light) }
  .side__foot{ margin-top:auto; display:grid; gap:14px; padding:16px 4px 0; border-top:1px solid var(--hair) }
  .conn{ display:flex; align-items:center; gap:10px; padding:0 8px; font-family:var(--eq-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--eq-faint) }
  .conn__dot{ width:6px; height:6px; border-radius:50%; background:var(--eq-blue-light); box-shadow:0 0 12px rgba(145,181,255,.9) }
  .who{ display:flex; align-items:center; gap:10px; padding:0 0 0 8px }
  .who__avatar{ display:grid; place-items:center; width:32px; height:32px; flex:none; border-radius:50%; background:linear-gradient(135deg,#2563eb,#91b5ff); color:#fff; font-size:13px; font-weight:600 }
  .who__mail{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; color:#c3cde0 }
  .who .icon-btn{ width:40px; height:40px; min-width:40px; min-height:40px }
  .main{ padding:44px 48px 72px }
}
@media (min-width:1440px){ .main{ padding:48px 64px 80px } }

/* ---------- Seitenkopf ---------- */
.phead{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px 24px; margin:0 0 24px }
.phead .eq-eyebrow{ margin-bottom:14px }
.phead__title{ margin:0; font-size:clamp(30px,4.2vw,46px); font-weight:500; letter-spacing:-.045em; line-height:1.04; text-wrap:balance; display:flex; flex-wrap:wrap; align-items:center; gap:4px 14px }
.phead__title:focus{ outline:none }
.phead__muted{ color:var(--eq-muted-title) }
.phead__sub{ margin:12px 0 0; color:var(--eq-muted); font-size:15px; line-height:1.6; max-width:62ch }
.phead__stamp{ margin:0; font-family:var(--eq-mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--eq-faint) }
.phead__cta{ flex:none }
@media (max-width:639px){ .phead__cta{ width:100% } }
@media (min-width:1024px){ .phead{ margin-bottom:32px } }

.back{ display:inline-flex; align-items:center; gap:10px; min-height:var(--hit); margin:-8px 0 12px -4px; padding:0 12px 0 4px; border-radius:10px; text-decoration:none; color:#b9c4d8; font-size:14px; transition:color .2s, gap .35s var(--eq-ease) }
.back:hover{ color:#fff; gap:14px }
.back .i{ width:18px; height:18px }

/* ---------- Panels ---------- */
.panel{ background:var(--panel); border:1px solid var(--hair); border-radius:16px; padding:18px; min-width:0 }
.panel--flush{ padding:0; overflow:hidden }
.panel__head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 12px; min-height:32px }
.panel__title{ display:flex; align-items:center; gap:10px; margin:0; font-size:15px; font-weight:500; letter-spacing:-.01em }
.panel__title .i{ width:18px; height:18px; color:var(--eq-blue-light) }
.panel__link{ display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 2px; font-size:13px; color:#b7c3d9; text-decoration:none; transition:color .2s, gap .35s var(--eq-ease) }
.panel__link .i{ width:16px; height:16px; color:var(--eq-blue-light) }
.panel__link:hover{ color:#fff; gap:12px }
.panel__meta{ font-family:var(--eq-mono); font-size:11px; color:var(--eq-faint) }
@media (min-width:1024px){ .panel{ padding:22px 24px } .panel--flush{ padding:0 } }

/* ---------- KPIs ---------- */
.kpis{ display:grid; gap:10px; margin-bottom:16px }
.kpi{
  position:relative; display:grid; grid-template-columns:1fr auto; grid-template-areas:"label value" "sub value";
  align-items:center; gap:4px 16px; padding:16px 18px; min-height:88px;
  background:var(--panel); border:1px solid var(--hair); border-radius:16px; text-decoration:none; color:inherit; overflow:hidden;
  transition:border-color .3s, background .3s, transform .5s var(--eq-ease);
}
.kpi:hover{ border-color:var(--eq-line-strong); background:var(--panel-2) }
.kpi__label{ grid-area:label; display:flex; align-items:center; gap:8px; font-size:14px; font-weight:500; color:#e3e9f5 }
.kpi__label .i{ width:16px; height:16px; color:var(--eq-blue-light) }
.kpi__value{ grid-area:value; font-size:44px; font-weight:500; letter-spacing:-.06em; line-height:1; font-variant-numeric:tabular-nums; color:#fff }
.kpi__sub{ grid-area:sub; font-size:12.5px; color:var(--eq-muted); line-height:1.45 }
.kpi__go{ display:none }
.kpi--lead{ background:radial-gradient(120% 140% at 100% 0%, rgba(37,99,235,.22), transparent 55%), var(--panel); border-color:rgba(145,181,255,.2) }
.alert-strip{
  grid-column:1/-1; display:flex; align-items:center; gap:12px; min-height:var(--hit); padding:12px 16px; border-radius:14px; text-decoration:none;
  background:rgba(71,34,52,.55); border:1px solid rgba(145,98,117,.6); color:var(--eq-danger); font-size:14px; line-height:1.45;
}
.alert-strip span{ flex:1; color:#f3d7db }
.alert-strip b{ color:#fff; font-weight:600 }
.alert-strip .i{ width:18px; height:18px }
@media (min-width:640px){
  .kpis{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px }
  .kpi{ grid-template-columns:1fr; grid-template-areas:"label" "value" "sub"; align-items:start; gap:0; padding:20px 22px 20px; min-height:176px }
  .kpi__value{ font-size:clamp(52px,5.2vw,72px); margin:26px 0 12px }
  .kpi__go{ display:grid; place-items:center; position:absolute; top:16px; right:16px; width:34px; height:34px; border-radius:50%; border:1px solid var(--eq-line); color:#aeb9cd; transition:transform .45s var(--eq-ease), background .3s, color .3s }
  .kpi__go .i{ width:15px; height:15px }
  .kpi:hover .kpi__go{ background:#fff; color:var(--eq-ink); transform:rotate(8deg) }
  .kpi:hover{ transform:translateY(-2px) }
}

/* ---------- Übersicht-Raster ---------- */
.ov-grid{ display:grid; gap:12px }
@media (min-width:1100px){
  .ov-grid{ grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:12px; align-items:start }
  .ov-leads{ grid-row:span 2 }
}

/* ---------- Übersicht: Projekt-Pipeline (overview.js .ov-pipe__body) ----------
   Balken = Anteil je Stufe, Legende wie Kanban-Spaltenkopf (.col__n/.col__count). Stufenfarben: grau -> blau -> weiß (kein Grün). */
.pipe{ display:flex; gap:3px; height:10px; margin:4px 0 14px; border-radius:999px; overflow:hidden; background:#131e33 }
.pipe__seg{ min-width:8px }
.pipe__seg--anfrage{ background:#56627a }
.pipe__seg--angebot{ background:var(--eq-blue) }
.pipe__seg--produktion{ background:var(--eq-blue-soft) }
.pipe__seg--review{ background:#c9d6f0 }
.pipe__seg--geliefert{ background:var(--eq-white) }
.pipe__legend{ list-style:none; margin:0; padding:0 }
.pipe__legend li{ display:grid; grid-template-columns:22px 8px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:44px }
.pipe__legend li + li{ border-top:1px solid var(--hair) }
.pipe__n{ font-family:var(--eq-mono); font-size:10px; letter-spacing:.1em; color:var(--eq-blue-light) }
.pipe__dot{ width:8px; height:8px; border-radius:50% }
.pipe__l{ font-size:14px; color:#dde4f1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.pipe__legend b{ min-width:26px; height:22px; padding:0 8px; display:grid; place-items:center; border-radius:999px; background:#131e33; font-family:var(--eq-mono); font-size:11px; font-weight:450; color:#fff; font-variant-numeric:tabular-nums }
.ov-pipe__body > .muted{ margin:10px 0 0 }

/* ---------- Zeilen (Listen) ---------- */
.rows{ list-style:none; margin:0 -8px; padding:0 }
.row{ display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"main end" "svc end"; align-items:center; gap:6px 12px; min-height:var(--hit); padding:12px 8px; border-radius:12px; text-decoration:none; transition:background .2s }
.rows li + li .row{ border-top:1px solid var(--hair); border-radius:0 }
.rows li + li .row:hover{ border-radius:12px }
.row:hover{ background:rgba(255,255,255,.03) }
.row__main{ grid-area:main; display:grid; gap:2px; min-width:0 }
.row__title{ display:flex; align-items:center; gap:8px; font-size:15px; font-weight:500; color:#fff; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.row__sub{ font-size:13px; color:var(--eq-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.row__svc{ grid-area:svc }
.row__end{ grid-area:end; justify-self:end }
@media (min-width:640px){
  .row{ grid-template-columns:minmax(0,1fr) auto auto; grid-template-areas:"main svc end"; gap:16px }
}

/* ---------- Badges, Tags ---------- */
.badge{ display:inline-flex; align-items:center; gap:7px; height:26px; padding:0 10px; border-radius:999px; font-size:12px; font-weight:500; line-height:1; white-space:nowrap; border:1px solid var(--eq-line); background:rgba(255,255,255,.035); color:#cfd8e8 }
.badge i{ width:6px; height:6px; border-radius:50%; background:currentColor; flex:none }
.badge .i{ width:13px; height:13px }
.badge--lead-new{ background:rgba(37,99,235,.2); border-color:rgba(145,181,255,.42); color:#e1eaff }
.badge--lead-new i{ background:var(--eq-blue-light); box-shadow:0 0 10px rgba(145,181,255,.9) }
.badge--lead-contacted i,.badge--lead-qualified i,.badge--lead-offer_sent i{ background:var(--eq-blue-light) }
.badge--lead-offer_sent{ border-color:rgba(145,181,255,.25) }
.badge--lead-won{ background:rgba(247,248,252,.1); border-color:rgba(247,248,252,.35); color:#fff }
.badge--lead-won i{ background:#fff }
.badge--lead-lost,.badge--lead-spam{ color:#8390a7; background:transparent }
.badge--job-queued{ color:#c6d0e2 }
.badge--job-queued i{ background:#8fa0bd }
.badge--job-running{ background:rgba(37,99,235,.2); border-color:rgba(145,181,255,.45); color:#e1eaff }
.badge--job-running i{ background:var(--eq-blue-light); animation:pulse 1.4s ease-in-out infinite; box-shadow:0 0 10px rgba(145,181,255,.9) }
.badge--job-done{ background:rgba(247,248,252,.08); border-color:rgba(247,248,252,.28); color:#fff }
.badge--job-done .i{ color:var(--eq-blue-light) }
.badge--job-failed{ background:var(--eq-danger-bg); border-color:var(--eq-danger-line); color:var(--eq-danger) }
.tag-test{ display:inline-flex; align-items:center; height:20px; padding:0 7px; border-radius:5px; border:1px dashed #8a6a2a; background:var(--eq-warn-bg); color:var(--eq-warn); font-family:var(--eq-mono); font-size:9.5px; font-weight:500; letter-spacing:.14em; flex:none; vertical-align:middle }
.phead__title .tag-test{ height:24px; font-size:11px; letter-spacing:.16em }
.tag-seed{ display:inline-flex; align-items:center; height:20px; padding:0 7px; border-radius:5px; border:1px dashed var(--eq-line-strong); background:rgba(164,174,192,.1); color:var(--eq-muted); font-family:var(--eq-mono); font-size:9.5px; font-weight:500; letter-spacing:.06em; white-space:nowrap; flex:none; vertical-align:middle }
.svc{ display:inline-flex; gap:5px; flex-wrap:wrap }
.svc__tag{ display:inline-flex; align-items:center; gap:6px; height:24px; padding:0 7px; border-radius:6px; border:1px solid rgba(145,181,255,.3); background:rgba(37,99,235,.1); font-size:12px; color:#dbe6ff }
.svc__tag b{ font-family:var(--eq-mono); font-weight:500; font-size:11px; color:var(--eq-blue-light) }

/* ---------- Leere Zustände, Fehler, Skelett ---------- */
.empty{ display:grid; justify-items:center; text-align:center; gap:8px; padding:36px 20px 32px }
.empty__icon{ display:grid; place-items:center; width:52px; height:52px; margin-bottom:6px; border-radius:16px; background:radial-gradient(circle at 50% 0%, rgba(37,99,235,.35), rgba(37,99,235,.06) 70%); border:1px solid rgba(145,181,255,.22); color:var(--eq-blue-light); box-shadow:0 10px 40px rgba(37,99,235,.15) }
.empty__icon .i{ width:22px; height:22px }
.empty__title{ margin:0; font-size:16px; font-weight:500; color:#fff; letter-spacing:-.01em }
.empty__text{ margin:0; max-width:40ch; font-size:14px; line-height:1.6; color:var(--eq-muted) }
.empty .abtn,.empty .eq-btn{ margin-top:10px }
.empty--error .empty__icon{ background:var(--eq-danger-bg); border-color:var(--eq-danger-line); color:var(--eq-danger); box-shadow:none }
.skel{ display:grid; gap:10px; padding:4px 0 }
.skel__row{ height:48px; border-radius:12px; background:linear-gradient(90deg, rgba(255,255,255,.03) 0%, rgba(255,255,255,.07) 50%, rgba(255,255,255,.03) 100%); background-size:200% 100%; animation:shimmer 1.3s linear infinite }
.kpis > .skel{ grid-column:1/-1; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)) }
.kpis > .skel .skel__row{ height:88px; border-radius:16px }
@media (min-width:640px){ .kpis > .skel .skel__row{ height:176px } }

/* ---------- Buttons (Admin) ---------- */
.abtn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:var(--hit); padding:0 16px; border-radius:999px;
  border:1px solid rgba(145,181,255,.4); background:rgba(37,99,235,.16); color:#eaf0ff; font-size:14px; font-weight:500; text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:background .25s, border-color .25s, color .25s, transform .4s var(--eq-ease);
}
.abtn .i{ width:17px; height:17px }
.abtn:hover{ background:var(--eq-blue); border-color:var(--eq-blue) }
.abtn:active{ transform:scale(.98) }
.abtn:disabled,.abtn[aria-disabled=true]{ opacity:.5; cursor:progress }
.abtn--ghost{ background:transparent; border-color:var(--eq-line-strong); color:#d3dbea }
.abtn--ghost:hover{ background:var(--eq-surface-2); border-color:#677da2; color:#fff }
.abtn--icon{ padding:0 14px }
.btn-center{ justify-content:center; padding:8px 24px }
.more{ display:flex; justify-content:center; padding:16px 0 0 }
.more__end{ margin:0; font-family:var(--eq-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:#56627a }

/* ---------- Filter / Toolbar ---------- */
.filters{ display:grid; gap:10px; margin-bottom:10px }
.filters__row{ display:flex; flex-wrap:wrap; gap:10px; align-items:center }
.search{ position:relative; display:block }
.search .i{ position:absolute; left:16px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:#8193b3; pointer-events:none }
.search__input{ width:100%; min-height:56px; padding:0 16px 0 46px; border-radius:14px; border:1px solid #243452; background:#0a1322; color:#eef3ff; font-size:16px; outline:none; transition:border-color .2s, box-shadow .2s; -webkit-appearance:none; appearance:none }
.search__input::placeholder{ color:#71829f }
.search__input:focus{ border-color:var(--eq-blue-light); box-shadow:0 0 0 3px rgba(114,158,254,.2) }
.search__input::-webkit-search-cancel-button{ filter:invert(1) opacity(.5) }
.toolbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px }
.toolbar__count{ margin:4px 0 12px; font-family:var(--eq-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--eq-faint) }
.toolbar .toolbar__count{ margin:0 }
.seg{ display:inline-flex; flex-wrap:wrap; gap:4px; padding:4px; border-radius:16px; background:#0a1220; border:1px solid var(--hair); max-width:100% }
.seg__btn{ display:inline-flex; align-items:center; gap:8px; min-height:calc(var(--hit) - 8px); padding:0 14px; border-radius:12px; border:1px solid transparent; background:transparent; color:#aab6cb; font-size:14px; font-weight:500; cursor:pointer; transition:background .2s, color .2s, border-color .2s; white-space:nowrap }
.seg__btn:hover{ color:#fff; background:rgba(255,255,255,.04) }
.seg__btn[aria-pressed=true]{ background:#1c2d4b; border-color:rgba(145,181,255,.35); color:#fff }
.seg__btn--svc b{ font-family:var(--eq-mono); font-weight:500; color:var(--eq-blue-light); font-size:12px }
.seg__btn--svc span{ display:none }
@media (min-width:640px){ .seg__btn--svc span{ display:inline } }
.seg--sm .seg__btn{ min-height:36px; padding:0 12px; font-size:13px }
.selectwrap{ position:relative; display:inline-flex; align-items:center }
.selectwrap > .i{ position:absolute; right:14px; width:16px; height:16px; color:#8ea0c0; pointer-events:none }
.select{ min-height:var(--hit); padding:0 42px 0 16px; border-radius:14px; border:1px solid #243452; background:#0a1322; color:#eef3ff; font-size:15px; cursor:pointer; -webkit-appearance:none; appearance:none; outline:none; transition:border-color .2s, box-shadow .2s }
.select:focus-visible{ border-color:var(--eq-blue-light); box-shadow:0 0 0 3px rgba(114,158,254,.2) }
.select:disabled{ opacity:.6; cursor:progress }
.select option{ background:#0c1220; color:#fff }
.selectwrap--lg .select{ min-height:56px; min-width:220px; font-size:16px }
.select--sm{ min-height:var(--hit); font-size:13px; padding:0 34px 0 12px; border-radius:10px; width:100% }
@media (max-width:639px){
  .filters__row .seg{ flex:1 1 100%; display:grid; grid-template-columns:repeat(3,1fr) }
  .filters__row .seg__btn{ justify-content:center }
  .filters__row .selectwrap{ flex:1 1 100% }
  .filters__row .select{ width:100% }
  .toolbar > .seg{ flex:1 1 100%; display:grid; grid-template-columns:repeat(4,1fr) }
  .toolbar > .seg .seg__btn{ justify-content:center; padding:0 6px }
  .toolbar > .selectwrap{ flex:1 1 100% }
  .toolbar > .selectwrap .select{ width:100% }
}

/* ---------- Tabelle (Desktop) / Karten (Handy) ---------- */
.tbl{ width:100%; border-collapse:collapse; font-size:14px }
.tbl th{ text-align:left; padding:14px 16px; font-family:var(--eq-mono); font-size:10.5px; font-weight:450; letter-spacing:.14em; text-transform:uppercase; color:#8290a9; border-bottom:1px solid var(--hair); white-space:nowrap }
.tbl td{ padding:14px 16px; border-bottom:1px solid var(--hair); vertical-align:middle }
.tbl tbody tr{ cursor:pointer; transition:background .2s }
.tbl tbody tr:hover{ background:rgba(255,255,255,.028) }
.tbl tbody tr:last-child td{ border-bottom:0 }
.tbl__name{ font-weight:500; color:#fff; text-decoration:none; font-size:15px }
.tbl__name:hover{ text-decoration:underline; text-underline-offset:3px }
.tbl__sub{ display:block; margin-top:2px; font-size:13px; color:var(--eq-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:34ch }
.tbl__sub--company{ color:#c4cde0 }
.tbl__sub--company + .tbl__sub--mail{ margin-top:1px; font-size:12.5px }
.tbl__num{ text-align:right }
.tbl__when{ white-space:nowrap; color:#b7c2d6 }
.files{ display:inline-flex; align-items:center; gap:6px; color:#d3dcec; font-variant-numeric:tabular-nums }
.files .i{ width:15px; height:15px; color:var(--eq-blue-light) }
.jdots{ display:inline-flex; gap:10px; font-variant-numeric:tabular-nums; font-size:13px; color:#cdd6e6 }
.jdots__i{ display:inline-flex; align-items:center; gap:5px }
.jdots__i i{ width:7px; height:7px; border-radius:50%; background:#8fa0bd }
.jdots__i--running i{ background:var(--eq-blue-light); box-shadow:0 0 8px rgba(145,181,255,.9) }
.jdots__i--done i{ background:#fff }
.jdots__i--failed i{ background:#ff8f9b }
.jdots__i--failed{ color:var(--eq-danger) }
@media (max-width:767px){
  .tbl thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0) }
  .tbl, .tbl tbody{ display:block }
  .tbl tr{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; padding:16px; border-bottom:1px solid var(--hair) }
  .tbl tbody tr:last-child{ border-bottom:0 }
  .tbl td{ display:block; padding:0; border:0 }
  .tbl td.tbl__contact{ order:1; flex:1 1 0; min-width:0 }
  .tbl td[data-label="Status"]{ order:2; flex:none; align-self:flex-start }
  .tbl td[data-label="Auswahl"]{ order:3; flex:1 1 100% }
  .tbl td[data-label="Dateien"], .tbl td[data-label="Jobs"]{ order:4; display:inline-flex; align-items:center; gap:8px; font-size:13px; color:#b7c2d6; text-align:left }
  .tbl td[data-label="Jobs"]{ order:5 }
  .tbl td[data-label="Dateien"]::before, .tbl td[data-label="Jobs"]::before{ content:attr(data-label); font-family:var(--eq-mono); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:#6d7a93 }
  .tbl td[data-label="Eingang"]{ order:6; margin-left:auto; font-size:13px }
  .tbl__sub{ max-width:100% }
}

/* ---------- Lead-Detail ---------- */
.phead--detail{ align-items:flex-end }
.phead__main{ min-width:0; flex:1 1 420px }
.status-pick{ display:grid; gap:6px; flex:0 0 auto }
.status-pick__label{ font-family:var(--eq-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--eq-faint) }
@media (max-width:639px){ .status-pick{ flex:1 1 100% } .status-pick .select{ width:100% } .status-pick .selectwrap{ display:flex } }
.detail{ display:grid; gap:12px }
.detail__col{ display:grid; gap:12px; align-content:start; min-width:0 }
@media (min-width:1100px){ .detail{ grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) } }
.kv{ margin:0; display:grid }
.kv > div{ display:grid; grid-template-columns:96px minmax(0,1fr); gap:12px; align-items:center; min-height:48px; padding:6px 0; border-top:1px solid var(--hair) }
.kv > div:first-child{ border-top:0 }
.kv dt{ font-family:var(--eq-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#7c89a2 }
.kv dd{ margin:0; font-size:15px; color:#eef2fa; min-width:0; overflow-wrap:anywhere }
.kv__link{ display:inline-flex; align-items:center; gap:8px; min-height:44px; color:#fff; text-decoration:none; border-bottom:1px solid transparent }
.kv__link .i{ width:16px; height:16px; color:var(--eq-blue-light) }
.kv__link:hover{ border-color:var(--eq-line-strong) }
.choices{ list-style:none; margin:0; padding:0; display:grid; gap:8px }
.choice{ display:grid; grid-template-columns:36px 1fr auto; align-items:center; gap:12px; min-height:56px; padding:8px 14px 8px 8px; border-radius:12px; border:1px solid var(--hair); color:#8a97ae }
.choice__k{ display:grid; place-items:center; width:36px; height:36px; border-radius:9px; background:#101a2c; font-family:var(--eq-mono); font-size:13px; color:#6f7d96 }
.choice__v{ font-size:15px }
.choice__s{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px }
.choice__s .i{ width:15px; height:15px }
.choice.is-on{ background:var(--eq-blue-deep); border-color:rgba(145,181,255,.35); color:#fff }
.choice.is-on .choice__k{ background:var(--eq-blue); color:#fff }
.choice.is-on .choice__s{ color:#dbe6ff }
.choice.is-on .choice__s .i{ color:var(--eq-blue-light) }
.msg{ margin-top:14px; padding:14px 16px; border-radius:12px; background:#0a1220; border:1px solid var(--hair) }
.msg__label{ margin:0 0 6px; font-family:var(--eq-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#7c89a2 }
.msg__text{ margin:0; font-size:15px; line-height:1.65; color:#dfe6f3; white-space:pre-wrap; overflow-wrap:anywhere }

.player{ border-radius:12px; overflow:hidden; background:#05080f; border:1px solid var(--hair) }
.player .empty{ padding:40px 20px }
.player .skel{ padding:0 }
.player .skel__row{ height:auto; aspect-ratio:16/9; border-radius:0 }
.player__video{ width:100%; max-height:70vh; aspect-ratio:16/9; background:#000; object-fit:contain }
.player__meta{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 16px; padding:10px 14px; font-family:var(--eq-mono); font-size:10.5px; letter-spacing:.08em; color:#8390a8; border-top:1px solid var(--hair) }
.player__err{ margin:0; padding:10px 14px; color:var(--eq-danger); font-size:13px }

.files-list{ list-style:none; margin:0; padding:0; display:grid; gap:8px }
.file{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; min-height:64px; padding:8px 8px 8px 10px; border-radius:12px; border:1px solid var(--hair); background:#0a1220 }
.file__kind{ display:grid; place-items:center; width:46px; height:46px; border-radius:10px; background:linear-gradient(160deg,#16243e,#0f1829); border:1px solid rgba(145,181,255,.22); font-family:var(--eq-mono); font-size:10px; letter-spacing:.08em; color:var(--eq-blue-light) }
.file__main{ display:grid; gap:2px; min-width:0 }
.file__name{ font-size:14.5px; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.file__sub{ font-size:12.5px; color:var(--eq-muted) }
.file__err{ display:inline-flex; align-items:center; gap:6px; padding:0 12px; min-height:40px; font-size:13px; color:var(--eq-danger) }
.file__err .i{ width:16px; height:16px }
.file--missing{ border-color:rgba(145,98,117,.45) }
@media (max-width:420px){ .abtn__t{ display:none } .abtn--icon{ width:var(--hit); padding:0 } }

.jobs-mini{ list-style:none; margin:0; padding:0; display:grid; gap:8px }
.jm{ padding:12px 12px 10px; border-radius:12px; border:1px solid var(--hair); background:#0a1220 }
.jm__row{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px }
.jm__ic{ display:grid; place-items:center; width:40px; height:40px; border-radius:10px; background:#111c30; color:var(--eq-blue-light) }
.jm__ic .i{ width:19px; height:19px }
.jm__main{ display:grid; gap:2px; min-width:0 }
.jm__t{ font-size:15px; font-weight:500; color:#fff }
.jm__sub{ font-size:12.5px; color:var(--eq-muted) }
.jm__actions{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 12px; margin-top:10px; padding-top:10px; border-top:1px solid var(--hair) }
.jm__actions .log{ flex:1 1 200px }
.log summary{ display:inline-flex; align-items:center; gap:8px; min-height:var(--hit); cursor:pointer; font-size:13px; color:#b8c4da; list-style:none; border-radius:8px }
.log summary::-webkit-details-marker{ display:none }
.log summary::before{ content:""; width:7px; height:7px; border-right:1.5px solid var(--eq-blue-light); border-bottom:1.5px solid var(--eq-blue-light); transform:rotate(-45deg); transition:transform .3s var(--eq-ease); margin:0 4px 0 2px }
.log[open] summary::before{ transform:rotate(45deg) }
.log summary:hover{ color:#fff }
.log pre{ margin:6px 0 4px; padding:12px 14px; max-height:260px; overflow:auto; border-radius:10px; background:#04070d; border:1px solid var(--hair); font-family:var(--eq-mono); font-size:12px; line-height:1.65; color:#c9d4e8; white-space:pre-wrap; overflow-wrap:anywhere }

.projline{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; min-height:48px }
.projline__name{ font-size:15px; font-weight:500; color:#fff }
.projline--empty{ justify-content:space-between }
.stage-pill{ display:inline-flex; align-items:center; height:26px; padding:0 11px; border-radius:999px; font-size:12px; font-weight:500; border:1px solid rgba(145,181,255,.35); background:rgba(37,99,235,.14); color:#dbe6ff }

/* ---------- Ereignisse ---------- */
/* overflow:hidden (.panel--flush) macht das Panel zum Scroll-Container, dann klebt der Tageskopf nicht am Viewport.
   clip schneidet die runden Ecken ohne Scroll-Container; ältere Browser nehmen visible. */
.panel--events{ overflow:visible; overflow:clip }
.ev-list{ padding:4px 0 }
.ev-group + .ev-group{ border-top:1px solid var(--hair) }
.ev-group__day{ position:sticky; top:var(--top); margin:0; padding:14px 18px 8px; font-family:var(--eq-mono); font-size:10.5px; font-weight:450; letter-spacing:.14em; text-transform:uppercase; color:#8a97b0; background:var(--panel); border-bottom:1px solid var(--eq-line); z-index:3 }
@media (min-width:1024px){ .ev-group__day{ top:0; padding:18px 24px 8px } }
.ev-ul{ list-style:none; margin:0; padding:0 8px 8px }
@media (min-width:1024px){ .ev-ul{ padding:0 14px 10px } }
.ev{ display:grid; grid-template-columns:48px 36px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:var(--hit); padding:8px 10px; border-radius:12px; text-decoration:none; color:inherit; transition:background .2s }
a.ev:hover{ background:rgba(255,255,255,.03) }
.ev__time{ display:grid; font-family:var(--eq-mono); font-size:11.5px; color:#8e9bb3; font-variant-numeric:tabular-nums; line-height:1.3 }
.ev__day{ font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:#5f6c85; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.ev__icon{ display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#101a2c; border:1px solid var(--hair); color:var(--eq-blue-light) }
.ev__icon .i{ width:16px; height:16px }
.ev__icon--jobs{ color:#c9d6f0 }
.ev__body{ display:grid; gap:2px; min-width:0 }
.ev__text{ font-size:14px; line-height:1.45; color:#dde4f1; overflow-wrap:anywhere }
.ev__text b{ font-weight:500; color:#fff }
.ev__text em{ font-style:normal; color:var(--eq-blue-light) }
.ev-status--failed{ color:var(--eq-danger)!important }
.ev-status--done{ color:#fff!important }
.ev__meta{ display:flex; flex-wrap:wrap; gap:6px; font-size:12px; color:#7f8ca5 }
.ev__go{ color:#56627a }
.ev__go .i{ width:16px; height:16px }
.ev-ul--compact{ padding:0; margin:0 -10px }
.ev-ul--compact .ev{ grid-template-columns:52px 32px minmax(0,1fr) auto }
.ev-ul--compact .ev__icon{ width:32px; height:32px }

/* ---------- Jobs ---------- */
.jobstats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-bottom:14px }
.jstat{ display:grid; justify-items:start; gap:2px; min-height:72px; padding:12px 14px; border-radius:14px; border:1px solid var(--hair); background:var(--panel); cursor:pointer; text-align:left; transition:border-color .25s, background .25s }
.jstat:hover{ border-color:var(--eq-line-strong); background:var(--panel-2) }
.jstat__v{ font-size:28px; font-weight:500; letter-spacing:-.05em; line-height:1.05; font-variant-numeric:tabular-nums; color:#fff }
.jstat__l{ font-size:12px; color:var(--eq-muted) }
.jstat--running .jstat__v{ color:var(--eq-blue-light) }
.jstat--failed .jstat__v{ color:var(--eq-danger) }
@media (min-width:1024px){ .jstat{ min-height:92px; padding:16px 20px } .jstat__v{ font-size:38px } }
.jobs{ list-style:none; margin:0; padding:0; display:grid; gap:8px }
.job{ display:grid; grid-template-columns:40px minmax(0,1fr); grid-template-areas:"ic main" "side side"; gap:10px 14px; padding:14px; border-radius:14px; border:1px solid var(--hair); background:var(--panel) }
.job--running{ border-color:rgba(145,181,255,.35); background:radial-gradient(120% 160% at 0% 0%, rgba(37,99,235,.14), transparent 60%), var(--panel) }
.job--failed{ border-color:rgba(145,98,117,.5) }
.job__ic{ grid-area:ic; display:grid; place-items:center; width:40px; height:40px; border-radius:10px; background:#111c30; color:var(--eq-blue-light) }
.job__ic .i{ width:19px; height:19px }
.job__main{ grid-area:main; min-width:0 }
.job__title{ margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; font-size:15px; color:#cfd8e8 }
.job__title b{ font-weight:500; color:#fff }
.job__title a{ color:#fff; text-decoration:none; border-bottom:1px solid var(--eq-line-strong) }
.job__title a:hover{ border-color:#fff }
.job__meta{ margin:4px 0 0; display:flex; flex-wrap:wrap; gap:4px 14px; font-size:12.5px; color:var(--eq-muted) }
.job__pos{ color:var(--eq-blue-light); font-family:var(--eq-mono); font-size:11px; letter-spacing:.06em }
.job .log{ margin-top:6px }
.job__side{ grid-area:side; display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:10px; border-top:1px solid var(--hair) }
@media (min-width:768px){
  .job{ grid-template-columns:44px minmax(0,1fr) auto; grid-template-areas:"ic main side"; padding:16px 18px; align-items:start }
  .job__side{ flex-direction:column; align-items:flex-end; padding-top:0; border-top:0 }
}

/* ---------- Kanban ---------- */
.stagebar{ display:none }
.board-wrap{ position:relative; min-width:0 }
.board-wrap > .empty{ margin-bottom:12px; border:1px dashed var(--eq-line-strong); border-radius:16px }
.board{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; align-items:start }
.col{ display:flex; flex-direction:column; min-width:0; min-height:420px; border-radius:16px; background:var(--panel); border:1px solid var(--hair) }
.col__head{ display:flex; align-items:center; gap:10px; padding:14px 14px 10px }
.col__n{ font-family:var(--eq-mono); font-size:10px; letter-spacing:.1em; color:var(--eq-blue-light) }
.col__title{ margin:0; font-size:14px; font-weight:500; color:#fff; letter-spacing:-.005em }
.col__count{ margin-left:auto; min-width:26px; height:22px; padding:0 8px; display:grid; place-items:center; border-radius:999px; background:#131e33; font-family:var(--eq-mono); font-size:11px; color:#b5c2da }
.col__list{ flex:1; display:flex; flex-direction:column; gap:8px; padding:4px 8px 10px; margin:0 4px 6px; border-radius:12px; outline:1.5px dashed transparent; outline-offset:-2px; transition:background .2s, outline-color .2s; min-height:140px }
.col__list.is-over{ background:rgba(37,99,235,.09); outline-color:rgba(145,181,255,.6) }
.col__empty{ display:grid; gap:4px; margin:0; padding:22px 12px; text-align:center; font-size:13px; color:#6f7c95; border-radius:10px; border:1px dashed rgba(216,228,255,.1) }
.col__empty span{ font-size:12px; color:#56627a }
.kcard{ position:relative; display:grid; gap:6px; padding:12px 12px 12px 14px; border-radius:12px; background:linear-gradient(160deg,#131d31,#0f1829); border:1px solid rgba(216,228,255,.1); box-shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 8px 24px rgba(0,0,0,.18); cursor:grab; user-select:none; -webkit-user-select:none; transition:border-color .25s, transform .35s var(--eq-ease), opacity .2s }
.kcard:hover{ border-color:rgba(216,228,255,.22) }
.kcard.is-dragging{ opacity:.3; transform:scale(.98) }
.kcard--moved{ animation:moved 1.1s var(--eq-ease) }
.kcard__top{ display:flex; align-items:flex-start; gap:6px }
.kcard__name{ flex:1; margin:4px 0 0; font-size:14.5px; font-weight:500; line-height:1.35; color:#fff; letter-spacing:-.01em; overflow-wrap:anywhere }
.kcard__grip{ display:grid; place-items:center; flex:none; width:var(--hit); height:var(--hit); margin:-10px -10px -8px 0; border:0; border-radius:10px; background:transparent; color:#6d7b95; cursor:grab; touch-action:none }
.kcard__grip .i{ width:18px; height:18px }
.kcard__grip:hover{ color:#fff; background:rgba(255,255,255,.05) }
.kcard__client{ margin:0; display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:13px; color:var(--eq-muted) }
.kcard__meta{ display:flex; flex-wrap:wrap; gap:6px; margin-top:2px }
.mini{ display:inline-flex; align-items:center; gap:5px; height:24px; padding:0 8px; border-radius:6px; background:rgba(255,255,255,.04); border:1px solid var(--hair); font-size:11.5px; color:#b9c4d8; text-decoration:none; white-space:nowrap }
.mini .i{ width:12px; height:12px }
.mini--warn{ background:var(--eq-warn-bg); border-color:#6b5320; color:var(--eq-warn) }
.mini--link{ color:#dbe6ff; border-color:rgba(145,181,255,.28) }
.mini--link:hover{ background:rgba(37,99,235,.2) }
.mini--faint{ background:transparent; border-color:transparent; color:#6c7890; padding:0 2px }
.kcard__move{ position:relative; display:block; margin-top:4px }
.kcard__move > .i{ position:absolute; right:10px; top:50%; transform:translateY(-50%); width:14px; height:14px; color:#8ea0c0; pointer-events:none }
.kcard__move .select{ background:#0b1424; border-color:#22324f; color:#cdd7ea }
@media (min-width:1024px) and (pointer:fine){
  .kcard__move{ opacity:.0; height:0; margin:0; overflow:hidden; transition:opacity .2s }
  .kcard:hover .kcard__move, .kcard:focus-within .kcard__move{ opacity:1; height:auto; margin-top:4px; overflow:visible }
  .kcard__grip{ width:30px; height:30px; margin:0 -4px 0 0 }
}
.kghost{ position:fixed; left:0; top:0; z-index:300; pointer-events:none; margin:0; cursor:grabbing; box-shadow:0 30px 80px rgba(0,0,0,.55), 0 0 0 1px rgba(145,181,255,.45); will-change:transform }
.is-dragging-card, .is-dragging-card *{ cursor:grabbing!important; user-select:none!important; -webkit-user-select:none!important }
.board-foot{ margin:14px 0 0; font-family:var(--eq-mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--eq-faint) }

@media (max-width:1023px){
  .stagebar{
    position:sticky; top:var(--top); z-index:20; display:flex; gap:6px; overflow-x:auto; scrollbar-width:none;
    margin:0 calc(-1 * var(--pad)) 12px; padding:10px var(--pad); background:rgba(7,11,20,.88); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid var(--hair);
  }
  .stagebar::-webkit-scrollbar{ display:none }
  .stagebar__btn{ display:inline-flex; align-items:center; gap:8px; flex:none; min-height:48px; padding:0 14px; border-radius:999px; border:1px solid var(--eq-line); background:transparent; color:#aab6cb; font-size:14px; font-weight:500; cursor:pointer; transition:background .2s, border-color .2s, color .2s }
  .stagebar__n{ font-family:var(--eq-mono); font-size:10px; color:#6d7b95 }
  .stagebar__btn b{ min-width:22px; height:22px; display:grid; place-items:center; padding:0 6px; border-radius:999px; background:#131e33; font-family:var(--eq-mono); font-size:11px; font-weight:450; color:#c5d0e4 }
  .stagebar__btn[aria-current=true]{ background:#1c2d4b; border-color:rgba(145,181,255,.4); color:#fff }
  .stagebar__btn[aria-current=true] .stagebar__n{ color:var(--eq-blue-light) }
  .stagebar__btn.is-over{ background:rgba(37,99,235,.35); border-color:var(--eq-blue-light); color:#fff; transform:scale(1.04) }
  .board{ display:flex; gap:10px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; margin:0 calc(-1 * var(--pad)); padding:0 var(--pad) 4px; scroll-padding-inline:var(--pad); overscroll-behavior-x:contain }
  .board::-webkit-scrollbar{ display:none }
  .col{ flex:0 0 min(86%, 400px); scroll-snap-align:start; min-height:56dvh }
}

/* ---------- Anmeldung ---------- */
.login{ position:relative; min-height:100dvh; display:grid; place-items:center; padding:32px 16px; overflow:hidden; background:radial-gradient(80% 60% at 50% 0%, rgba(37,99,235,.18), transparent 60%), var(--eq-ink) }
.login__grid{ position:absolute; inset:0; background-image:linear-gradient(rgba(145,181,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(145,181,255,.06) 1px, transparent 1px); background-size:56px 56px; mask-image:radial-gradient(ellipse 70% 55% at 50% 30%, #000 20%, transparent 75%); -webkit-mask-image:radial-gradient(ellipse 70% 55% at 50% 30%, #000 20%, transparent 75%); pointer-events:none }
.login__card{ position:relative; width:min(460px,100%); padding:32px 24px 26px; border-radius:22px; background:linear-gradient(160deg, rgba(18,28,48,.92), rgba(10,16,29,.94)); border:1px solid var(--eq-line); box-shadow:0 40px 120px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.02) inset; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); animation:view-in .7s var(--eq-ease) both }
@media (min-width:640px){ .login__card{ padding:44px 44px 34px } }
.login__logo{ height:18px; width:auto; margin-bottom:36px }
.login__eyebrow{ margin-bottom:14px }
.login__title{ margin:0 0 10px; font-size:clamp(32px,6vw,40px); font-weight:500; letter-spacing:-.05em; line-height:1.05 }
.login__lead{ margin:0 0 26px; color:var(--eq-muted); font-size:15px; line-height:1.6 }
.login__form .eq-btn{ margin-top:6px }
.login__form .eq-btn[disabled]{ opacity:.7; cursor:progress }
.login__error{ margin:-4px 0 12px; padding:12px 14px; border-radius:12px; background:rgba(71,34,52,.55); border:1px solid rgba(145,98,117,.6); line-height:1.5 }
.login__foot{ display:flex; align-items:center; justify-content:center; gap:8px; margin:22px 0 0; font-family:var(--eq-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#6d7a93 }
.login__foot .i{ width:13px; height:13px }
.note{ display:flex; gap:12px; margin:0 0 20px; padding:14px 16px; border-radius:14px; font-size:14px; line-height:1.6 }
.note .i{ width:20px; height:20px; margin-top:1px }
.note--warn{ background:var(--eq-warn-bg); border:1px solid #6b5320; color:#f3e3c4 }
.note--warn .i{ color:var(--eq-warn) }
.note b{ color:#fff; font-weight:600 }

/* ---------- Dialoge ---------- */
.dlg{ width:min(520px, calc(100vw - 24px)) }
.dlg__body{ padding:28px 22px 22px; margin:0 }
@media (min-width:640px){ .dlg__body{ padding:36px 36px 28px } }
.dlg__title{ margin:0 0 12px; font-size:24px; font-weight:500; letter-spacing:-.04em }
.dlg__text{ margin:0 0 22px; color:var(--eq-muted); line-height:1.6 }
.dlg__two{ display:grid; gap:0 12px }
@media (min-width:520px){ .dlg__two{ grid-template-columns:1fr 1fr } }
.dlg__two .selectwrap, .dlg__two .select{ width:100%; min-width:0 }
.dlg__actions{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; margin-top:8px }
.dlg__actions .eq-btn{ flex:1 1 140px }
.eq-input[type=date]{ color-scheme:dark }

/* ---------- Toasts über der Tabbar ---------- */
@media (max-width:1023px){ .eq-toast-region{ bottom:calc(var(--tabbar) + 12px + env(safe-area-inset-bottom)) } }

/* ---------- Animationen ---------- */
@keyframes view-in{ from{ opacity:0; transform:translateY(10px) } to{ opacity:1; transform:none } }
@keyframes shimmer{ from{ background-position:200% 0 } to{ background-position:-200% 0 } }
@keyframes pulse{ 0%,100%{ opacity:1; transform:scale(1) } 50%{ opacity:.45; transform:scale(.8) } }
@keyframes moved{ 0%{ box-shadow:0 0 0 0 rgba(145,181,255,.0) } 25%{ box-shadow:0 0 0 3px rgba(145,181,255,.55) } 100%{ box-shadow:0 0 0 0 rgba(145,181,255,0) } }

/* ==========================================================================
   welle1 backend-15..19 · Ergebnisse (3D/Bilder), QG-Gate, Demo-Zustellung, Einwilligungen,
   Telefon-Hinweis, Funnel-Abbruch. Farben nur aus kit/eq.css (RM-Tokens), kein Grün.
   ========================================================================== */
.nav-badge{ display:inline-grid; place-items:center; min-width:20px; height:20px; padding:0 6px; margin-left:auto; border-radius:999px; background:var(--eq-blue); color:#fff; font-family:var(--eq-mono); font-size:10.5px; font-weight:500; box-shadow:0 0 12px rgba(37,99,235,.55) }
.nav-badge + .side__num{ margin-left:10px }
.nav-badge[hidden]{ display:none }
.nav-badge--tab{ position:absolute; top:7px; left:calc(50% + 6px); min-width:18px; height:18px; padding:0 5px; margin:0; font-size:10px }

/* KPI: offene Jobs je Art */
.kpi{ grid-template-areas:"label value" "sub value" "split split" }
.kpi__split{ grid-area:split; display:flex; flex-wrap:wrap; gap:6px; margin-top:8px }
.kpi__chip{ display:inline-flex; align-items:center; gap:6px; height:26px; padding:0 9px; border-radius:8px; border:1px solid var(--hair); background:rgba(255,255,255,.03); font-size:12px; color:#cdd6e6 }
.kpi__chip .i{ width:14px; height:14px; color:var(--eq-blue-light) }
.kpi__chip b{ font-family:var(--eq-mono); font-weight:500; color:#fff; font-variant-numeric:tabular-nums }
@media (min-width:640px){ .kpi{ grid-template-areas:"label" "value" "sub" "split" } .kpi__split{ margin-top:12px } }

/* QG-Gate je Job */
.jm__badges{ display:inline-flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:6px }
.gate{ display:inline-flex; align-items:center; gap:5px; height:24px; padding:0 8px; border-radius:6px; font-family:var(--eq-mono); font-size:10.5px; letter-spacing:.04em; white-space:nowrap; border:1px solid rgba(145,181,255,.3); background:rgba(37,99,235,.12); color:#dbe6ff }
.gate .i{ width:13px; height:13px; color:var(--eq-blue-light) }
.gate--fail{ border-color:var(--eq-danger-line); background:var(--eq-danger-bg); color:var(--eq-danger) }
.gate--fail .i{ color:var(--eq-danger) }
.jm__gate{ display:flex; gap:8px; align-items:flex-start; margin:10px 0 0; padding:8px 10px; border-radius:10px; background:var(--eq-danger-bg); border:1px solid var(--eq-danger-line); color:var(--eq-danger); font-size:12.5px; line-height:1.5; overflow-wrap:anywhere }
.jm__gate .i{ width:15px; height:15px; margin-top:2px }

/* 3D-Modell + Bilder + Grundriss */
.panel__side{ display:inline-flex; align-items:center; gap:10px }
.artifact-model{ position:relative; aspect-ratio:16/10; min-height:220px; border-radius:12px; overflow:hidden; background:#05080f; border:1px solid var(--hair) }
.artifact-model > eq-viewer{ display:block; width:100%; height:100%; --eq-radius:12px }
.artifact-model > .skel{ padding:0; height:100% }
.artifact-model__poster{ position:absolute; inset:0; background:#05080f center/cover no-repeat; opacity:.55; filter:saturate(.85) }
.artifact-model__go{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); box-shadow:0 12px 40px rgba(0,0,0,.45) }
.artifact-model__go:active{ transform:translate(-50%,-50%) scale(.98) }
.artifact-model__hint{ position:absolute; left:0; right:0; bottom:10px; margin:0; text-align:center; font-family:var(--eq-mono); font-size:10.5px; letter-spacing:.06em; color:#c3cde0; text-shadow:0 1px 8px rgba(0,0,0,.8) }
.artifact-model > .skel .skel__row{ height:100%; border-radius:0 }
.artifact-bar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 14px; margin-top:12px }
.artifact-bar__label{ margin:0; display:grid; gap:2px; min-width:0; font-size:14px; color:#fff }
.artifact-bar__label b{ font-weight:500 }
.artifact-bar__label span:not(.tag-seed){ font-family:var(--eq-mono); font-size:11px; color:var(--eq-faint) }
.artifact-bar__dl{ display:flex; flex-wrap:wrap; gap:8px }
.artifact-note{ margin:10px 0 0; font-size:12.5px; line-height:1.55; color:var(--eq-muted) }
.artifact-gallery{ display:grid; gap:10px }
@media (min-width:560px){ .artifact-gallery{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
.artifact-image{ margin:0; border-radius:12px; overflow:hidden; border:1px solid var(--hair); background:#0a1220 }
.artifact-image__content{ aspect-ratio:16/9; background:#05080f }
.artifact-image__content a{ display:block; height:100% }
.artifact-image__content img{ width:100%; height:100%; object-fit:cover }
.artifact-image__content .skel{ padding:0; height:100% }
.artifact-image__content .skel__row{ height:100%; border-radius:0 }
.artifact-image figcaption{ display:grid; gap:2px; padding:10px 12px; font-size:13px; color:#fff }
.artifact-image figcaption b{ font-weight:500; line-height:1.4 }
.artifact-image figcaption span{ font-family:var(--eq-mono); font-size:10.5px; color:var(--eq-faint) }
.artifact-plan{ border-radius:12px; overflow:hidden; background:#f4f6fa; border:1px solid var(--hair) }
.artifact-plan img{ width:100%; max-height:420px; object-fit:contain }
.artifact-plan .skel{ padding:0 } .artifact-plan .skel__row{ height:220px; border-radius:0 }
.artifact-error{ display:grid; place-items:center; gap:10px; height:100%; min-height:160px; padding:16px; text-align:center; color:var(--eq-danger); font-size:13px }
.artifact-error p{ margin:0 }

/* Demo an Kunden */
.demo__what{ margin:0 0 12px; font-size:14px; color:var(--eq-muted); line-height:1.55 }
.demo__what b{ color:#fff; font-weight:500 }
.demo__actions{ display:flex; flex-wrap:wrap; gap:8px }
.demo__actions .abtn{ flex:1 1 180px }
.demo__note{ display:flex; align-items:center; gap:8px; margin:12px 0 0; font-size:13px; color:var(--eq-warn) }
.demo__note .i{ width:15px; height:15px }
.demo__link{ display:block; margin-top:10px }
.demo__link[hidden]{ display:none }
.demo__input{ width:100%; min-height:44px; padding:0 12px; border-radius:10px; border:1px solid #243452; background:#0a1322; color:#dbe6ff; font-family:var(--eq-mono); font-size:11.5px; text-overflow:ellipsis }
.demo__warn{ margin:10px 0 0; font-size:12.5px; line-height:1.5; color:var(--eq-muted) }
.demo__warn[hidden]{ display:none }
.demo__draft{ margin-top:6px }
.demo__draft pre{ white-space:pre-wrap }

/* Einwilligungen */
.kv--consent > div{ grid-template-columns:112px minmax(0,1fr) }
.hash{ font-size:11.5px }
.consent__hint{ margin:10px 0 0; line-height:1.5 }

/* Neue Anfragen mit Telefonnummer */
.ov-phone{ margin-bottom:12px }
.count-pill{ display:inline-grid; place-items:center; min-width:24px; height:22px; padding:0 7px; border-radius:999px; background:#131e33; font-family:var(--eq-mono); font-size:11px; font-weight:450; color:#b5c2da }
.count-pill.is-on{ background:var(--eq-blue); color:#fff; box-shadow:0 0 12px rgba(37,99,235,.5) }
.phone-list{ list-style:none; margin:0; padding:0; display:grid; gap:8px }
.phone-item{ display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"main seen" "tel tel"; align-items:center; gap:8px 10px; padding:10px 10px 10px 14px; border-radius:12px; border:1px solid rgba(145,181,255,.28); background:radial-gradient(120% 160% at 0% 0%, rgba(37,99,235,.14), transparent 60%), #0a1220 }
.phone-item__main{ grid-area:main; display:grid; gap:2px; min-width:0; text-decoration:none; color:inherit }
.phone-item__name{ display:flex; align-items:center; gap:8px; font-size:15px; font-weight:500; color:#fff; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.phone-item__sub{ font-size:12.5px; color:var(--eq-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.phone-item__tel{ grid-area:tel; justify-content:flex-start }
.phone-item__tel span{ font-variant-numeric:tabular-nums }
.phone-item__seen{ grid-area:seen }
@media (min-width:640px){ .phone-item{ grid-template-columns:minmax(0,1fr) auto auto; grid-template-areas:"main tel seen" } }
.phone__foot{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:12px; padding-top:12px; border-top:1px solid var(--hair) }
.phone__note{ margin:10px 0 0; font-size:12px; color:var(--eq-faint) }
.phone__err{ display:flex; gap:8px; align-items:center; margin:0 0 10px; color:var(--eq-danger); font-size:13px }
.check{ display:inline-flex; align-items:center; gap:10px; min-height:var(--hit); font-size:14px; color:#cfd8e8; cursor:pointer }
.check input{ width:20px; height:20px; margin:0; accent-color:var(--eq-blue) }

/* Funnel-Abbruch */
.fun-grid{ display:grid; gap:12px }
@media (min-width:1100px){ .fun-grid{ grid-template-columns:repeat(auto-fit,minmax(360px,1fr)); align-items:start } }
.fun .panel__title .muted{ font-weight:400; margin-left:4px }
.fun__kpis{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0 0 14px }
.fun__kpis > div{ padding:10px 12px; border-radius:12px; background:#0a1220; border:1px solid var(--hair) }
.fun__kpis dt{ font-family:var(--eq-mono); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:#7c89a2 }
.fun__kpis dd{ margin:4px 0 0; font-size:24px; font-weight:500; letter-spacing:-.04em; color:#fff; font-variant-numeric:tabular-nums }
.fun__steps{ list-style:none; margin:0; padding:0; display:grid; gap:2px }
.fun__step{ display:grid; grid-template-columns:minmax(0,1fr) auto auto; grid-template-areas:"label n drop" "bar bar bar"; align-items:center; gap:6px 12px; padding:10px 0; border-top:1px solid var(--hair) }
.fun__step:first-child{ border-top:0 }
.fun__label{ grid-area:label; font-size:14px; color:#dde4f1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.fun__bar{ grid-area:bar; height:8px; border-radius:999px; background:#131e33; overflow:hidden }
.fun__bar i{ display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg, var(--eq-blue), var(--eq-blue-light)) }
.fun__n{ grid-area:n; display:inline-flex; align-items:baseline; gap:8px; font-variant-numeric:tabular-nums }
.fun__n b{ font-size:15px; font-weight:500; color:#fff }
.fun__n span{ font-family:var(--eq-mono); font-size:11px; color:var(--eq-faint) }
.fun__drop{ grid-area:drop; min-width:52px; text-align:right; font-family:var(--eq-mono); font-size:11.5px; color:var(--eq-faint) }
.fun__drop.is-drop{ color:var(--eq-danger) }
.fun__foot{ margin:14px 0 0; font-size:12.5px; line-height:1.55; color:var(--eq-faint); max-width:80ch }

/* Handy: Kontakt vor den Medien, damit der Vertrieb die Nummer sofort sieht */
@media (max-width:1099px){
  .detail{ display:flex; flex-direction:column }
  .detail__col{ display:contents }
  .detail > .detail__col > [aria-labelledby="d-contact"]{ order:-1 }
}
