/* ============================================================
   digiRobe V2 — Design-System (Richtung D · "Soft Lime")
   Tokens verbatim aus dem Claude-Design-Handoff Block 1.
   Komponenten als stabile db-*-Klassen für die Razor-Umsetzung.
   ============================================================ */

:root{
  /* ── digiTix-Tokens: Warm/Festival-Identität (aus dem Shop-Handoff:
     Orange #FF8A3D · Pflaume #22101F) auf dem V2-Komponentensystem.
     Nur Tokens geändert, Komponenten unverändert (Briefing 2026-09-01). ── */

  /* ── Flächen ── */
  --db-app-bg:      #EBE6E3;
  --db-surface:     #FFFFFF;
  --db-tile:        #F8F4F2;
  --db-tile-2:      #FBF8F7;
  --db-frame:       #22101F;
  --db-frame-2:     #2E1631;

  /* ── Text ── */
  --db-ink:         #241A21;
  --db-ink-2:       #5E5258;
  --db-ink-3:       #8E8188;
  --db-ink-4:       #A99CA3;
  --db-on-frame:    #F1E7EC;
  --db-on-frame-2:  #8E7B87;

  /* ── Linien & Akzent ── */
  --db-line:        #ECE4E0;
  --db-line-2:      #F2EBE8;
  --db-accent:      #FF8A3D;
  --db-accent-ink:  #22101F;

  /* ── Status (fg / bg-tint) ── */
  --db-success:     #1E7A45;  --db-success-bg:  #E4F2E9;
  --db-info:        #2A62C4;  --db-info-bg:     #E7EDFB;
  --db-warning:     #9A6A12;  --db-warning-bg:  #F6EDD4;
  --db-attention:   #A14E22;  --db-attention-bg:#F6E6DB;
  --db-neutral:     #5E6157;  --db-neutral-bg:  #EAEAE4;
  --db-muted:       #8A8C82;  --db-muted-bg:    #F0F0EA;
  --db-danger:      #BE3B26;

  --db-band-accent-bg: rgba(224,250,41,.16);  --db-band-accent-fg:#E0FA29;

  /* ── Typografie ── */
  --db-font-display: 'Bricolage Grotesque', 'Avenir Next Condensed', sans-serif;
  --db-font-ui:      'Public Sans', 'Segoe UI', system-ui, sans-serif;
  --db-font-mono:    'Space Mono', monospace;

  /* ── Abstände ── */
  --db-space-1:4px; --db-space-2:8px; --db-space-3:12px; --db-space-4:16px;
  --db-space-5:20px; --db-space-6:24px; --db-space-7:32px; --db-space-8:40px;

  /* ── Radien ── */
  --db-r-control:12px;
  --db-r-tile:22px;
  --db-r-card:26px;
  --db-r-pill:30px;
  --db-r-marker:4px;

  /* ── Schatten ── */
  --db-shadow-card:  0 1px 2px rgba(0,0,0,.05);
  --db-shadow-float: 0 16px 50px rgba(0,0,0,.10);
  --db-shadow-pop:   0 18px 44px rgba(0,0,0,.20);
  --db-shadow-modal: 0 24px 70px rgba(0,0,0,.35);
}

/* ── Base ── */
*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body.v2{
  background:var(--db-app-bg);
  font-family:var(--db-font-ui);
  color:var(--db-ink);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.v2 .sg{font-family:var(--db-font-display);}
.v2 .mn{font-family:var(--db-font-mono);}
.db-logo path,.db-logo circle{fill:currentColor;}
.v2 a{color:inherit;text-decoration:none;}
.v2 h1,.v2 h2,.v2 h3{margin:0;}
.v2 ul{list-style:none;margin:0;padding:0;}

.v2 ::-webkit-scrollbar{width:10px;height:10px;}
.v2 ::-webkit-scrollbar-thumb{background:#D7D7CF;border-radius:8px;border:2px solid transparent;background-clip:content-box;}
.v2 ::-webkit-scrollbar-thumb:hover{background:#C7C7BD;background-clip:content-box;}

/* Mikro-Label (ZEITRAUM, TICKET …) */
.db-micro{font-family:var(--db-font-mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--db-ink-3);}

/* ── Shell ── */
.db-appbg{min-height:100vh;width:100%;background:var(--db-app-bg);padding:14px;}
.db-app{
  height:calc(100vh - 28px);
  background:var(--db-surface);
  border-radius:var(--db-r-card);
  box-shadow:var(--db-shadow-float);
  overflow:hidden;
  display:flex;
  color:var(--db-ink);
}

/* Icon-Leiste links */
.db-rail{
  width:90px;flex:none;border-right:1px solid var(--db-line-2);
  display:flex;flex-direction:column;align-items:center;padding:18px 0 14px;
}
.db-rail__logo{
  width:42px;height:42px;border-radius:13px;background:var(--db-accent);color:var(--db-ink);
  display:flex;align-items:center;justify-content:center;
}
.db-rail__logo .db-logo{width:25px;height:25px;}
.db-rail__nav{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:24px;width:100%;}
.db-rail__link{display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;width:100%;color:inherit;}
.db-rail__item{
  position:relative;width:50px;height:46px;border-radius:15px;
  display:flex;align-items:center;justify-content:center;transition:background .12s;
}
.db-rail__link:hover .db-rail__item{background:#F2F2EC;}
.db-rail__ico{display:inline-flex;color:#7A7C70;opacity:.85;}
.db-rail__lab{font-size:9px;font-weight:600;color:var(--db-ink-4);}
.db-rail__link[data-active="true"] .db-rail__item{background:var(--db-accent);}
.db-rail__link[data-active="true"] .db-rail__ico{opacity:1;color:var(--db-ink);}
.db-rail__link[data-active="true"] .db-rail__lab{color:var(--db-ink);font-weight:700;}
.db-rail__spacer{margin-top:auto;}

/* Benutzer / Rolle unten in der Leiste */
.db-rail__user{position:relative;width:100%;display:flex;justify-content:center;}
.db-avatar{
  width:42px;height:42px;border-radius:50%;background:var(--db-frame);color:var(--db-accent);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;font-family:var(--db-font-display);
}

/* App-Topbar */
.db-topbar{flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:16px 26px 12px;}
.db-topbar__hi{font-family:var(--db-font-display);font-size:15px;font-weight:700;color:var(--db-ink);}
.db-topbar__sub{font-size:11.5px;color:#9A9C90;}
.db-topbar__actions{margin-left:auto;display:flex;align-items:center;gap:11px;}

.db-main{flex:1;display:flex;flex-direction:column;min-width:0;}
.db-content{flex:1;overflow-y:auto;padding:0 26px 28px;}

/* ── Buttons ── */
.db-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;
  border:none;border-radius:var(--db-r-pill);background:var(--db-accent);color:var(--db-ink);
  font-family:var(--db-font-ui);font-weight:700;font-size:13px;padding:10px 18px;transition:filter .12s;
}
.db-btn:hover{filter:brightness(.93);}
.db-btn--dark{background:var(--db-frame);color:#fff;}
.db-btn--ghost{background:#fff;color:var(--db-ink);border:1px solid #E5E5DE;font-weight:600;}
.db-btn--danger{background:var(--db-danger);color:#fff;}
.db-btn--block{display:flex;width:100%;padding:11px;}
.db-btn__circle{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--db-frame);color:var(--db-accent);}
.db-btn--dark .db-btn__circle,.db-btn--accent-circle .db-btn__circle{background:var(--db-accent);color:var(--db-ink);}

.db-gbtn{
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  background:#fff;border:1px solid var(--db-line);border-radius:50%;color:var(--db-ink-2);
  transition:background .12s,border-color .12s;
}
.db-gbtn:hover{background:#EFEFE9;}
.db-iconbtn{width:40px;height:40px;}

/* ── Chips / Segmented / Tabs ── */
.db-chip{
  display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  background:var(--db-tile);border:1px solid var(--db-tile);border-radius:var(--db-r-pill);
  padding:7px 13px;font-size:12.5px;font-weight:600;color:var(--db-ink-2);transition:background .12s,border-color .12s;
}
.db-chip:hover{border-color:#D7D8CE;}
.db-chip[data-active="true"]{background:var(--db-frame);color:#fff;border-color:var(--db-frame);}
.db-chip__count{font-family:var(--db-font-mono);font-size:10px;font-weight:700;opacity:.6;}

.db-seg{display:inline-flex;background:var(--db-tile);border-radius:var(--db-r-pill);padding:3px;gap:3px;}
.db-seg__opt{display:flex;align-items:center;justify-content:center;cursor:pointer;color:#7A7C70;border-radius:var(--db-r-pill);transition:background .12s;}
.db-seg__opt[data-active="true"]{background:#fff;color:var(--db-ink);box-shadow:0 1px 2px rgba(0,0,0,.10);}

.db-tabs{display:flex;gap:7px;flex-wrap:wrap;}
.db-tab{
  display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  background:var(--db-tile);border-radius:var(--db-r-pill);padding:8px 15px;
  font-size:12.5px;font-weight:600;color:var(--db-ink-2);transition:background .12s,color .12s;
}
.db-tab:hover{color:#fff;background:var(--db-frame);}
.db-tab[data-active="true"]{background:var(--db-accent);color:var(--db-ink);}

/* ── Suche / Felder ── */
.db-search{display:flex;align-items:center;gap:9px;background:var(--db-tile);border:1px solid var(--db-tile);border-radius:var(--db-r-pill);padding:9px 15px;}
.db-search input{border:none;background:none;outline:none;font-family:inherit;font-size:13.5px;color:var(--db-ink);width:100%;}
.db-field{display:flex;flex-direction:column;gap:7px;}
.db-field__label{font-family:var(--db-font-mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--db-ink-3);}
.db-input,.db-select{
  font-family:var(--db-font-ui);font-size:14px;color:var(--db-ink);
  background:var(--db-tile);border:1px solid var(--db-line);border-radius:var(--db-r-control);padding:12px 14px;
  transition:border-color .12s,box-shadow .12s;
}
/* appearance:none entfernt den nativen Aufklapp-Pfeil — ohne Ersatz sieht ein
   Auswahlfeld exakt aus wie ein Textfeld. Chevron daher selbst zeichnen. */
.db-select{
  appearance:none;cursor:pointer;padding-right:34px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238C8E84' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;
}
.db-select:hover{background-color:#F2F2EC;}
/* Mehrfachauswahl klappt nicht auf — dort waere der Pfeil eine Luege. */
.db-select[multiple],.db-select[size]{background-image:none;padding-right:14px;}
.db-input:focus,.db-select:focus{outline:none;border-color:var(--db-ink);box-shadow:0 0 0 3px rgba(26,27,23,.07);}
/* Mehrzeiliges Feld: erbt das Textfeld, korrigiert aber die beiden Stellen,
   an denen sich <textarea> nativ anders verhaelt (Monospace, freies Ziehen). */
.db-textarea{
  font-family:var(--db-font-ui);font-size:14px;line-height:1.55;color:var(--db-ink);
  background:var(--db-tile);border:1px solid var(--db-line);border-radius:var(--db-r-control);padding:12px 14px;
  resize:vertical;min-height:76px;
  transition:border-color .12s,box-shadow .12s;
}
.db-textarea:focus{outline:none;border-color:var(--db-ink);box-shadow:0 0 0 3px rgba(26,27,23,.07);}

/* ── Vorlagen-Kacheln (Ständer aus Vorlage) — grosse Tippflächen fuers Tablet ── */
.db-vorlagen{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;max-height:250px;overflow-y:auto;}
.db-vorlage{
  position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;
  background:var(--db-tile);border:1px solid var(--db-line);border-radius:var(--db-r-control);
  padding:12px 14px;min-height:56px;cursor:pointer;text-align:left;font:inherit;color:var(--db-ink);
  transition:border-color .12s,box-shadow .12s,background .12s;
}
.db-vorlage:hover:not([disabled]){background:#F2F2EC;}
.db-vorlage[data-gewaehlt]{border-color:var(--db-ink);box-shadow:0 0 0 3px rgba(26,27,23,.07);}
.db-vorlage[disabled]{opacity:.45;cursor:not-allowed;}
.db-vorlage__name{font-weight:700;font-size:13px;}
.db-vorlage__detail{font-size:11px;color:var(--db-ink-3);}
.db-vorlage__belegt{position:absolute;top:8px;right:10px;font-size:10px;font-weight:700;color:var(--db-ink-4);text-transform:uppercase;letter-spacing:.04em;}

/* ── Marker / Badges ── */
.db-marker{width:12px;height:12px;border-radius:var(--db-r-marker);flex:none;background:var(--db-accent);}
.db-badge{
  display:inline-flex;align-items:center;gap:6px;flex:none;
  font-family:var(--db-font-mono);font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:5px 10px;border-radius:var(--db-r-pill);background:var(--db-neutral-bg);color:var(--db-neutral);
}
.db-badge--success{background:var(--db-success-bg);color:var(--db-success);}
.db-badge--info{background:var(--db-info-bg);color:var(--db-info);}
.db-badge--warning{background:var(--db-warning-bg);color:var(--db-warning);}
.db-badge--attention{background:var(--db-attention-bg);color:var(--db-attention);}
.db-badge--neutral{background:var(--db-neutral-bg);color:var(--db-neutral);}
.db-badge--muted{background:var(--db-muted-bg);color:var(--db-muted);}
.db-badge--on-frame{background:var(--db-band-accent-bg);color:var(--db-band-accent-fg);}
.db-livedot{width:5px;height:5px;border-radius:50%;background:currentColor;animation:db-pulse 1.5s ease-in-out infinite;}

.db-pill-lime{display:inline-flex;align-items:center;gap:5px;background:var(--db-accent);color:var(--db-ink);border-radius:var(--db-r-pill);padding:5px 11px;font-size:10.5px;font-weight:700;}
.db-pill-muted{background:var(--db-line);color:#7A7C70;border-radius:var(--db-r-pill);padding:5px 11px;font-size:10.5px;font-weight:700;}

/* ── Cards / Tiles ── */
.db-jobcard{background:var(--db-tile);border-radius:var(--db-r-tile);padding:18px;display:flex;flex-direction:column;gap:13px;cursor:pointer;transition:box-shadow .15s,transform .15s;}
.db-jobcard:hover{box-shadow:0 10px 28px rgba(0,0,0,.08);transform:translateY(-2px);}
.db-jobcard--archive{background:var(--db-tile-2);}
.db-jobrow{transition:background .12s;cursor:pointer;}
.db-jobrow:hover{background:#F0F0EA;}
.db-tile{background:var(--db-tile);border-radius:var(--db-r-tile);padding:18px;}
.db-grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;}

.db-phase{background:var(--db-tile);border-radius:var(--db-r-tile);padding:18px;cursor:pointer;transition:box-shadow .15s,transform .15s;}
.db-phase:hover{box-shadow:0 10px 28px rgba(0,0,0,.08);transform:translateY(-2px);}

.db-kpi{background:var(--db-tile);border-radius:var(--db-r-tile);padding:18px;}
.db-kpi--placeholder{background:transparent;border:1.5px dashed #D7D8CE;}

/* ── Job-Kontext-Leiste ── */
.db-context{background:var(--db-frame);border-radius:var(--db-r-tile);color:var(--db-on-frame);padding:18px 20px;display:flex;align-items:center;gap:16px;}
.db-context__name{font-family:var(--db-font-display);font-size:19px;font-weight:700;color:#fff;}
.db-context__meta{font-family:var(--db-font-mono);font-size:11px;color:var(--db-on-frame-2);letter-spacing:.03em;}

/* ── Overlays ── */
.db-scrim{position:fixed;inset:0;z-index:100;background:rgba(20,21,17,.5);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:60px 20px;overflow:auto;animation:db-scrimfade .14s ease-out;}
.db-modal{width:540px;max-width:100%;background:var(--db-surface);border-radius:24px;box-shadow:var(--db-shadow-modal);overflow:hidden;animation:db-fade .14s ease-out;}
.db-pop{background:#fff;border:1px solid var(--db-line);border-radius:16px;box-shadow:var(--db-shadow-pop);padding:7px;animation:db-fade .14s ease-out;}
.db-drawer{position:fixed;inset:0 auto 0 0;width:300px;max-width:84%;background:var(--db-surface);box-shadow:var(--db-shadow-modal);z-index:101;padding:18px;animation:db-fade .14s ease-out;}

/* ── Empty ── */
.db-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:70px 20px;background:var(--db-tile);border-radius:var(--db-r-tile);color:var(--db-ink-3);}

/* ── Animationen ── */
@keyframes db-pulse{0%,100%{opacity:1;}50%{opacity:.28;}}
@keyframes db-fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@keyframes db-scrimfade{from{opacity:0;}to{opacity:1;}}

/* ── Responsive (mobil) ── */
.db-only-mobile{display:none;}
@media (max-width:768px){
  .db-appbg{padding:0;}
  .db-app{height:100vh;border-radius:0;flex-direction:column;}
  .db-rail{display:none;}
  .db-only-mobile{display:flex;}
  .db-content{padding:0 16px 20px;}
  .db-grid-cards{grid-template-columns:1fr;}
}

/* ── hidden muss auch gegen display-Regeln gewinnen (Scrim, Grids, Tabellenzeilen) ── */
.v2 [hidden],.db-scrim[hidden],.db-pop[hidden]{display:none !important;}

/* ── Mobile-Topbar (ersetzt die Icon-Leiste unter 768px) ── */
.db-mtopbar{align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--db-line);}

/* ── Drawer-Inhalt ── */
.db-drawer{display:flex;flex-direction:column;}
.db-drawer__item{
  display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:var(--db-r-control);
  font-size:13.5px;font-weight:600;color:var(--db-ink-2);transition:background .12s;
}
.db-drawer__item:hover{background:var(--db-tile);}
.db-drawer__item[data-active="true"]{background:var(--db-accent);color:var(--db-ink);font-weight:700;}

/* ── Popover (Job-Wechsler) ── */
.db-pop-wrap{position:relative;flex:none;}
.db-pop{position:absolute;top:calc(100% + 8px);z-index:60;min-width:260px;max-height:340px;overflow-y:auto;}
.db-pop--right{right:0;}
.db-pop__item{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:11px;
  font-size:13px;font-weight:600;color:var(--db-ink);transition:background .12s;
}
.db-pop__item:hover{background:var(--db-tile);}

/* ── Kontext-Leiste: Zurück-Button und Job-Wechsler auf dunklem Grund ── */
.db-context__back{background:var(--db-frame-2);color:var(--db-on-frame);border:none;flex:none;}
.db-context__back:hover{background:#33352B;}
.db-context__switch{
  display:inline-flex;align-items:center;gap:7px;cursor:pointer;white-space:nowrap;
  background:var(--db-frame-2);color:var(--db-on-frame);border-radius:var(--db-r-pill);
  padding:9px 15px;font-family:inherit;font-size:12.5px;font-weight:600;transition:background .12s;
}
.db-context__switch:hover{background:#33352B;}

/* ── Tabellen-Ansicht der Job-Liste ── */
.db-table-wrap{background:var(--db-surface);border:1px solid var(--db-line);border-radius:var(--db-r-tile);overflow:hidden;}
.db-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.db-table th{
  background:var(--db-tile-2);text-align:left;padding:12px 16px;border-bottom:1px solid var(--db-line);
  font-family:var(--db-font-mono);font-size:10px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--db-ink-3);white-space:nowrap;
}
.db-table td{padding:13px 16px;border-bottom:1px solid var(--db-line-2);vertical-align:middle;}
.db-table tbody tr:last-child td{border-bottom:none;}

@media (max-width:768px){
  .db-topbar{display:none;}
  .db-context{flex-wrap:wrap;}
  .db-context__switch{margin-left:0;}
  .db-table-wrap{overflow-x:auto;}
  .db-table{min-width:560px;}
}

/* ── Schalter in Tabellen (Kassenmodus, Check-in) — submittet sein Formular ── */
.db-switch{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;border:none;background:none;
  padding:0;font-family:inherit;font-size:12px;font-weight:600;color:var(--db-ink-2);white-space:nowrap;
}
.db-switch__track{
  width:32px;height:18px;border-radius:30px;background:#D7D8CE;flex:none;
  display:inline-flex;align-items:center;padding:2px;transition:background .12s;
}
.db-switch__knob{width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .12s;}
.db-switch[data-on="true"] .db-switch__track{background:var(--db-accent);}
.db-switch[data-on="true"] .db-switch__knob{transform:translateX(14px);}
.db-switch[data-on="true"]{color:var(--db-ink);}
.db-switch:hover .db-switch__track{filter:brightness(.95);}

/* ── Hinweisleiste (Fehler/Erfolg oberhalb einer Liste) ── */
.db-notice{
  border-radius:var(--db-r-tile);padding:13px 17px;font-size:13px;font-weight:600;
  margin-bottom:16px;display:flex;align-items:center;gap:10px;
}
.db-notice--danger{background:var(--db-attention-bg);color:var(--db-attention);}
.db-notice--ok{background:var(--db-success-bg);color:var(--db-success);}

/* ── Platz-Raster (Vorbereitung → Plätze) ── */
.db-slots{display:flex;flex-wrap:wrap;gap:8px;}
.db-slot{
  display:inline-flex;align-items:center;gap:6px;background:var(--db-tile);
  border:1px solid var(--db-line);border-radius:var(--db-r-control);padding:7px 10px;
}
.db-slot[data-belegt="true"]{background:var(--db-success-bg);border-color:#CFE6D9;}
.db-slot__label{font-size:12px;font-weight:700;color:var(--db-ink);}
.db-slot__lock{display:inline-flex;color:var(--db-ink-4);}
.db-slot__del{
  display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;
  border:none;border-radius:50%;background:none;color:var(--db-ink-4);cursor:pointer;transition:background .12s,color .12s;
}
.db-slot__del:hover{background:var(--db-danger);color:#fff;}

/* ── Auswahlliste mit Haken (z. B. Ständer einer Kasse zuweisen) ── */
.db-checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;}
.db-check{
  display:flex;align-items:center;gap:11px;cursor:pointer;background:var(--db-tile);
  border:1px solid var(--db-line);border-radius:var(--db-r-control);padding:12px 14px;transition:background .12s,border-color .12s;
}
.db-check:hover{border-color:#D7D8CE;}
.db-check input{position:absolute;opacity:0;width:0;height:0;}
.db-check__box{
  width:20px;height:20px;border-radius:6px;border:1.5px solid #C9CAC0;background:#fff;flex:none;
  display:inline-flex;align-items:center;justify-content:center;color:transparent;transition:background .12s,border-color .12s,color .12s;
}
.db-check:has(input:checked){background:var(--db-accent);border-color:var(--db-accent);}
.db-check:has(input:checked) .db-check__box{background:var(--db-frame);border-color:var(--db-frame);color:var(--db-accent);}
.db-check:has(input:focus-visible){box-shadow:0 0 0 3px rgba(26,27,23,.12);}

/* ── Codeblock (z. B. DEP-Vorschau) ── */
.db-code{
  background:var(--db-frame);color:#D7DAC8;border-radius:var(--db-r-tile);padding:16px 18px;
  font-family:var(--db-font-mono);font-size:11.5px;line-height:1.6;
  max-height:420px;overflow:auto;white-space:pre-wrap;word-break:break-all;margin:0;
}

/* ── Balkendiagramm (Auswertung) ── */
.db-chart{
  display:flex;align-items:flex-end;gap:1px;height:180px;
  background:linear-gradient(to top,var(--db-line-2) 1px,transparent 1px) 0 0/100% 25% ;
  padding-top:4px;
}
.db-chart__bar{
  flex:1 1 0;min-width:2px;border-radius:2px 2px 0 0;background:#DDDED5;transition:background .12s;
}
.db-chart__bar[data-kern="true"]{background:var(--bar,var(--db-accent));}
.db-chart__bar:hover{background:var(--db-frame);}

/* ── Auslastungsbalken ── */
.db-meter{height:8px;border-radius:30px;background:var(--db-line);overflow:hidden;}
.db-meter__fill{height:100%;border-radius:30px;background:var(--db-accent);transition:width .2s;}

/* ── Versions-Umschalter (dezent, V2 → V1) ── */
.db-versionswitch{
  display:flex;align-items:center;justify-content:center;gap:3px;
  font-family:var(--db-font-mono);font-size:9.5px;font-weight:700;letter-spacing:.06em;
  color:var(--db-ink-4);border:1px solid var(--db-line);border-radius:var(--db-r-pill);
  padding:5px 8px;margin-bottom:12px;transition:color .12s,border-color .12s,background .12s;
}
.db-versionswitch:hover{color:var(--db-ink);border-color:#D7D8CE;background:var(--db-tile);}
.db-versionswitch__aktiv{color:var(--db-ink);}
.db-versionswitch__pfeil{opacity:.5;}
.db-versionswitch--zeile{margin-bottom:0;}

/* ── Job-Zeile (Job-Auswahl) — dicht statt Kachel ── */
.db-joblist{display:flex;flex-direction:column;gap:4px;}
.db-jobrow2{
  display:flex;align-items:center;gap:16px;padding:11px 16px;
  background:var(--db-tile);border-radius:var(--db-r-control);
  border:1px solid transparent;transition:background .12s,border-color .12s;
}
.db-jobrow2:hover{background:#F0F0EA;border-color:#E2E3DA;}
.db-jobrow2__datum{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:42px;flex:none;line-height:1;
}
.db-jobrow2__tag{font-family:var(--db-font-display);font-size:19px;font-weight:700;color:var(--db-ink);}
.db-jobrow2__monat{font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--db-ink-4);margin-top:3px;}
.db-jobrow2__mitte{flex:1;min-width:0;}
.db-jobrow2__name{
  font-size:14.5px;font-weight:700;letter-spacing:-.01em;color:var(--db-ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.db-jobrow2__meta{
  font-size:11.5px;color:var(--db-ink-3);margin-top:2px;
  display:flex;gap:5px;flex-wrap:wrap;align-items:baseline;
}
.db-jobrow2__status{flex:none;}
.db-jobrow2__preis{font-size:12px;font-weight:700;color:var(--db-ink-2);width:62px;text-align:right;flex:none;}
.db-jobrow2__pfeil{display:inline-flex;color:var(--db-ink-4);flex:none;}
.db-jobrow2:hover .db-jobrow2__pfeil{color:var(--db-ink);}

@media (max-width:640px){
  .db-jobrow2{gap:11px;padding:10px 12px;}
  .db-jobrow2__preis,.db-jobrow2__pfeil{display:none;}
}

/* ── Einklappbarer Abschnitt der Job-Zeitachse ── */
.db-abschnitt__kopf{
  display:flex;align-items:center;gap:10px;margin:0 0 10px;cursor:default;
  list-style:none;user-select:none;
}
.db-abschnitt__kopf::-webkit-details-marker{display:none;}
.db-abschnitt[data-v2-auto-open="true"] .db-abschnitt__kopf{cursor:pointer;}
.db-abschnitt__pfeil{display:inline-flex;color:var(--db-ink-4);transition:transform .15s;}
.db-abschnitt[open] .db-abschnitt__pfeil{transform:rotate(180deg);}
.db-abschnitt[data-v2-auto-open="true"]:not([open]) .db-abschnitt__kopf:hover{color:var(--db-ink);}

/* ── Einrichtungs-Fortschritt (geführte Vorbereitung) ── */
.db-einrichtung{
  background:var(--db-tile);border-radius:var(--db-r-tile);padding:16px 18px;margin-bottom:20px;
}
.db-einrichtung__kopf{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.db-einrichtung__hinweis{font-size:11.5px;color:var(--db-attention);margin:12px 0 0;}
.db-schritte{display:flex;gap:7px;flex-wrap:wrap;list-style:none;margin:0;padding:0;counter-reset:none;}
.db-schritte li{flex:1 1 150px;min-width:0;}
.db-schritt{
  display:flex;align-items:center;gap:10px;padding:10px 12px;height:100%;
  background:var(--db-surface);border:1px solid var(--db-line);border-radius:var(--db-r-control);
  transition:border-color .12s,background .12s;
}
.db-schritt:hover{border-color:#D7D8CE;}
.db-schritt__marke{
  width:22px;height:22px;border-radius:50%;flex:none;display:inline-flex;
  align-items:center;justify-content:center;font-size:10px;font-weight:700;
  background:var(--db-line);color:var(--db-ink-3);
}
.db-schritt__text{display:flex;flex-direction:column;min-width:0;line-height:1.25;}
.db-schritt__titel{font-size:12.5px;font-weight:700;color:var(--db-ink);}
.db-schritt__zahl{font-size:10.5px;color:var(--db-ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.db-schritt[data-zustand="fertig"] .db-schritt__marke{background:var(--db-success);color:#fff;}
.db-schritt[data-zustand="dran"]{border-color:var(--db-accent);background:#FCFFE8;}
.db-schritt[data-zustand="dran"] .db-schritt__marke{background:var(--db-accent);color:var(--db-ink);}
.db-schritt[data-zustand="offen"]{opacity:.7;}

@media (max-width:640px){
  .db-schritte li{flex:1 1 100%;}
}

/* ── digiTix-Ergänzung: Anchor-Buttons — `.v2 a{color:inherit}` schlägt
   sonst die Button-Farbklassen (Spezifität 0,1,1 vs. 0,1,0). ── */
.v2 a.db-btn{color:var(--db-ink);}
.v2 a.db-btn--dark,.v2 a.db-btn--danger{color:#fff;}

/* ══ digiTix-Design-Pass (Design-Canvas „digiTix Portal", 2026-09-01) ══
   Dunkle Pflaumen-Rail, Pill-Tabs mit dunklem Aktiv-Zustand, Verkaufs-
   Fortschrittsbalken und Verlaufs-Karte — Ergänzungen/Overrides, die
   digiTix von der digiRobe-Optik abheben. */

.db-rail{background:var(--db-frame);border-right:none;}
.db-rail .db-micro{color:var(--db-on-frame-2);}
.db-rail__ico{color:var(--db-on-frame-2);opacity:1;}
.db-rail__lab{color:var(--db-on-frame-2);font-weight:600;font-size:10px;}
.db-rail__link:hover .db-rail__item{background:var(--db-frame-2);}
.db-rail__link[data-active="true"] .db-rail__item{background:var(--db-accent);}
.db-rail__link[data-active="true"] .db-rail__ico{color:var(--db-accent-ink);}
.db-rail__link[data-active="true"] .db-rail__lab{color:var(--db-on-frame);font-weight:700;}
.db-rail .db-avatar{background:var(--db-frame-2);color:var(--db-accent);border:1px solid #3D2140;}

.db-tab{background:var(--db-surface);border:1px solid var(--db-line);padding:10px 20px;font-size:13px;}
.db-tab:hover{background:var(--db-frame);color:#fff;border-color:var(--db-frame);}
.db-tab[data-active="true"]{background:var(--db-frame);color:#fff;border-color:var(--db-frame);font-weight:700;}

.tix-progress{height:7px;border-radius:999px;background:var(--db-line-2);overflow:hidden;}
.tix-progress__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#FF8A3D,#FF477E);}

.tix-gradientkarte{background:linear-gradient(135deg,#FF8A3D,#FF477E);color:#fff;border-radius:var(--db-r-tile);}
.tix-gradientkarte a{color:#fff;}

.tix-dashed{border:1.5px dashed #D9CEC9;border-radius:var(--db-r-tile);background:none;}

.tix-kpi-label{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--db-ink-3);}
.tix-kpi-wert{font-family:var(--db-font-mono);font-weight:700;font-size:28px;color:var(--db-ink);margin-top:8px;}
