:root {
  /* Dunkelblaues Theme — hoher Kontrast für Sonnenlicht-Lesbarkeit */
  --bg:#0a1a2f; --surface:#122740; --surface2:#1b3556; --border:#244468; --border2:#335a82;
  --text:#eef4fb; --muted:#a6c0db; --accent:#e07b2a; --accent2:#b85e18; --accent-h:#f08c3a;
  --green:#34d18a; --red:#ef5b5b; --yellow:#ecc23e; --blue:#6fa8ff;
  --mono:'Share Tech Mono',monospace; --sans:'Barlow',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;height:100dvh;overflow:hidden}
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}

/* Login */
#login-screen{position:fixed;inset:0;background:var(--bg);z-index:999;display:flex;align-items:center;justify-content:center}
.login-box{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:32px;width:320px}
.login-box .logo{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--accent);margin-bottom:4px}
.login-box .sub{font-size:9px;color:var(--muted);letter-spacing:.08em;margin-bottom:24px}
.login-box input{width:100%;background:var(--bg);border:1px solid var(--border2);border-radius:4px;color:var(--text);
  font-family:var(--mono);font-size:13px;padding:10px 12px;outline:none;margin-bottom:12px}
.login-box input:focus{border-color:var(--accent)}
.login-box button{width:100%;background:var(--accent);border:none;border-radius:4px;color:#000;
  font-family:var(--mono);font-size:11px;font-weight:700;padding:11px;cursor:pointer;letter-spacing:.1em;transition:background .15s}
.login-box button:hover{background:var(--accent-h)}
.login-err{background:#2a0a0a;border:1px solid #ef444440;color:var(--red);font-size:10px;padding:8px;border-radius:4px;margin-bottom:12px;display:none}

/* App */
#app{display:none;flex-direction:column;height:100dvh}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:44px;
  background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}
.topbar-left{display:flex;align-items:center;gap:10px}
.dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);animation:blink 3s ease-in-out infinite;cursor:help}
.dot.offline{background:var(--red);box-shadow:0 0 8px var(--red);animation:none}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.4}}
.topbar-title{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--accent)}
.topbar-user{font-family:var(--mono);font-size:10px;color:var(--muted);margin-left:8px}
.topbar-right{display:flex;align-items:center;gap:14px}
.ts{font-family:var(--mono);font-size:10px;color:var(--muted)}.ts span{color:var(--text)}
.topbar-btn{font-family:var(--mono);font-size:10px;color:var(--muted);cursor:pointer;letter-spacing:.06em;background:none;border:none}
.topbar-btn:hover{color:var(--accent)}
/* Topbar-Badge für offene Bestellanfragen (Senior+) */
.topbar-badge{font-family:var(--mono);font-size:10px;font-weight:700;background:var(--accent);color:#000;
  border:none;padding:3px 9px;border-radius:10px;cursor:pointer;letter-spacing:.04em;transition:background .15s,transform .12s}
.topbar-badge:hover{background:var(--accent-h);transform:scale(1.05)}
.topbar-badge.hidden{display:none}
.topbar-badge.has-offen{animation:badgePulse 1.6s ease-in-out infinite}
@keyframes badgePulse{0%,100%{box-shadow:0 0 0 0 rgba(224,123,42,.6)}50%{box-shadow:0 0 0 6px rgba(224,123,42,0)}}

/* Tabs */
.tabs{display:flex;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto}
.tab{padding:10px 16px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--muted);
  cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:all .15s;user-select:none}
.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab.hidden{display:none}

/* Panels */
.panel{flex:1;overflow-y:auto;display:none;padding:16px}.panel.active{display:block}

/* Stats */
.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:16px}
.sc{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:14px 16px}
.sc .l{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--muted);margin-bottom:6px}
.sc .v{font-family:var(--mono);font-size:24px;font-weight:700}
.v.red{color:var(--red)}.v.yellow{color:var(--yellow)}.v.green{color:var(--green)}.v.accent{color:var(--accent)}

/* Section header */
.sh{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--accent);margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border)}

/* Cards */
.card{background:var(--surface);border:1px solid var(--border);border-radius:5px;padding:10px 14px;margin-bottom:6px;border-left:3px solid var(--muted);transition:border-color .12s}
.card:hover{border-color:var(--border2)}
.card.p-hoch{border-left-color:var(--red)}.card.p-mittel{border-left-color:var(--yellow)}.card.p-niedrig{border-left-color:var(--muted)}
.card-top{display:flex;align-items:center;gap:8px;margin-bottom:3px;flex-wrap:wrap}
.badge{font-family:var(--mono);font-size:9px;font-weight:700;padding:1px 6px;border-radius:3px;text-transform:uppercase}
.badge[data-t="Aufgabe"]{background:#1a3a6b;color:#93c5fd}.badge[data-t="Projekt"]{background:#3d2800;color:#fbbf24}
.badge[data-t="Auftrag"]{background:#3d1a00;color:#fb923c}.badge[data-t="Wartung"]{background:#1a3d2e;color:#6ee7b7}
.badge[data-t="Notiz"]{background:var(--surface2);color:var(--muted)}.badge[data-t="STÖRUNG"]{background:#5c0000;color:#fca5a5}
.badge[data-t="MEETING"]{background:#1a1a3d;color:#a5b4fc}
.card-title{font-weight:600;font-size:13px;color:var(--text)}
.card-meta{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:2px}
.card-meta .red{color:var(--red)}.card-meta .yellow{color:var(--yellow)}.card-meta .green{color:var(--green)}
.card-notes{font-size:11px;color:var(--muted);margin-top:5px;border-top:1px solid var(--border);padding-top:5px;font-style:italic}
/* Append-Log auf Aufgaben-Karten */
.card-notes-log{margin-top:5px;border-top:1px solid var(--border);padding-top:5px;display:flex;flex-direction:column;gap:2px}
.card-notes-line{font-size:11px;color:var(--muted);font-style:italic;line-height:1.35}
.card-notes-more{font-size:10px;color:var(--accent);cursor:pointer;font-family:var(--mono);letter-spacing:.04em;margin-top:2px;opacity:.85;transition:opacity .15s}
.card-notes-more:hover{opacity:1;text-decoration:underline}
.card-notes-log.full{max-height:none}
/* Modal-Liste für vollständigen Fortschritts-Log */
.task-log-list{max-height:340px;overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.task-log-list .log-line{font-size:12px;color:var(--text);font-family:var(--sans);line-height:1.4;padding:3px 0;border-bottom:1px dashed var(--border)}
.task-log-list .log-line:last-child{border-bottom:none}
/* Aufgaben-Tab Sektions-Header */
.sh-section{margin-top:14px}
.sh-section:first-of-type{margin-top:6px}
.card-projekt-badge{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:.04em;
  color:var(--muted);background:var(--surface2);border:1px solid var(--border2);
  padding:2px 7px;border-radius:3px;margin-top:5px;max-width:100%;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;transition:all .15s}
.card-projekt-badge.clickable{cursor:pointer}
.card-projekt-badge.clickable:hover{border-color:var(--accent);color:var(--accent)}
.card-actions{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}
.card-actions button{font-family:var(--mono);font-size:9px;padding:3px 8px;border-radius:3px;border:1px solid var(--border2);
  background:var(--surface2);color:var(--muted);cursor:pointer;transition:all .15s}
.card-actions button:hover{border-color:var(--accent);color:var(--accent)}

/* Lager */
.lager-row{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:5px;padding:8px 14px;margin-bottom:4px}
.lager-row .name{font-size:13px}.lager-row .name small{font-family:var(--mono);font-size:10px;color:var(--muted);margin-left:6px}
.lager-row .stock{font-family:var(--mono);font-size:14px;font-weight:700}
.stock.ok{color:var(--green)}.stock.warn{color:var(--yellow)}.stock.crit{color:var(--red)}
.stock-einheit{font-family:var(--mono);font-size:.82em;font-weight:400;color:var(--muted);margin-left:1px}
/* Lager-Detail: erweiterte Karte mit Kategorie-Badges */
.lager-row-extended{align-items:flex-start;gap:10px;padding:10px 14px;flex-wrap:wrap}
.lager-row-main{flex:1;min-width:200px;display:flex;flex-direction:column;gap:5px}
.lager-cats{display:flex;flex-wrap:wrap;gap:4px}
.lager-cat-badge{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:.04em;
  background:var(--surface2);border:1px solid var(--border2);color:var(--muted);
  padding:2px 7px;border-radius:3px;white-space:nowrap}
.lager-cat-badge.sonstige{opacity:.6;font-style:italic}

/* Lager-Toolbar: Buttons über dem Grid */
.lager-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.lager-btn-primary{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}
.lager-btn-primary:hover{background:var(--accent-h);color:#000}

/* Maschinen-Grid (Stufe 1) */
.lager-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:14px}
.lager-tile{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:14px 16px;
  cursor:pointer;transition:border-color .15s,transform .15s;display:flex;flex-direction:column;gap:10px;
  border-left:3px solid var(--accent)}
.lager-tile:hover{border-color:var(--accent);transform:translateY(-1px)}
.lager-tile.has-krit{border-left-color:var(--red)}
.lager-tile.is-allgemein{border-left-color:var(--blue)}
.lager-tile .lt-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lager-tile .lt-title{font-weight:600;font-size:14px;color:var(--text);line-height:1.2;word-break:break-word;flex:1;min-width:0}
.lt-krit-badge{font-family:var(--mono);font-size:10px;font-weight:700;background:#5c0000;color:#fca5a5;
  padding:2px 8px;border-radius:3px;letter-spacing:.04em;flex-shrink:0}
.lt-pipe-badge{font-family:var(--mono);font-size:10px;font-weight:700;background:rgba(224,123,42,.18);
  color:var(--accent);border:1px solid var(--accent);padding:2px 8px;border-radius:3px;letter-spacing:.04em;flex-shrink:0}
.lager-tile .lt-stats{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:10px;color:var(--muted)}
.lt-stat{padding:1px 6px;border-radius:3px;background:var(--surface2);border:1px solid var(--border)}
.lt-stat.krit{color:var(--red);border-color:#5c0000;background:#1a0000}
.lt-stat.ok{color:var(--green);border-color:#0a3d1f}
.lt-hit{font-family:var(--mono);font-size:9px;letter-spacing:.04em;color:var(--accent);
  background:rgba(224,123,42,.14);border:1px solid var(--accent);padding:3px 7px;border-radius:3px;
  margin-top:2px;cursor:help;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Kategorie-Filter-Chips (im Detail) */
.lager-cat-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.lager-cat-chip{font-family:var(--mono);font-size:10px;letter-spacing:.04em;padding:5px 10px;border-radius:4px;
  border:1px solid var(--border2);background:var(--surface);color:var(--muted);cursor:pointer;transition:all .15s}
.lager-cat-chip:hover{color:var(--text);border-color:var(--muted)}
.lager-cat-chip.active{border-color:var(--accent);color:var(--accent);background:rgba(224,123,42,.14)}

/* Kategorien-Modal: Checkbox-Grid */
.lager-cat-cb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px;
  background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:10px;max-height:240px;overflow-y:auto}
.lager-cat-cb{display:flex;align-items:center;gap:6px;font-family:var(--sans);font-size:12px;color:var(--text);
  cursor:pointer;padding:4px 6px;border-radius:3px;transition:background .12s}
.lager-cat-cb:hover{background:var(--surface2)}
.lager-cat-cb input[type="checkbox"]{accent-color:var(--accent);cursor:pointer;margin:0;width:14px;height:14px;flex-shrink:0}

/* Kategorien-Verwaltung: Listen-Zeile */
.lager-cat-list{display:flex;flex-direction:column;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:8px;max-height:300px;overflow-y:auto}
.lager-cat-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:3px;background:var(--surface2)}
.lager-cat-row-icon{font-size:14px;width:20px;text-align:center;flex-shrink:0}
.lager-cat-row-name{flex:1;font-size:13px;color:var(--text)}
.lager-cat-row-count{font-family:var(--mono);font-size:10px;color:var(--muted);flex-shrink:0}
.lager-cat-del{background:transparent;border:1px solid var(--border2);color:var(--red);font-size:11px;
  padding:3px 8px;border-radius:3px;cursor:pointer;transition:all .12s}
.lager-cat-del:hover{border-color:var(--red);background:#2a0000}

@media(max-width:600px){
  .lager-grid{grid-template-columns:1fr}
  .lager-cat-cb-grid{grid-template-columns:1fr}
}

/* Anfrage-Chip in Lager-Karten (laufende Bestellanfragen für ET) */
.lager-anfrage-chip{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:.04em;
  background:rgba(224,123,42,.14);border:1px solid var(--accent);color:var(--accent);padding:2px 7px;border-radius:3px;white-space:nowrap}

/* Anfragen-Inbox: Gruppen + Zeilen */
.anfragen-inbox-box h3{margin-bottom:14px}
.anfr-group{margin-bottom:14px}
.anfr-group-head{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--accent);
  margin-bottom:6px;padding-bottom:5px;border-bottom:1px solid var(--border)}
.anfr-group.anfr-st-genehmigt .anfr-group-head{color:var(--yellow)}
.anfr-group.anfr-st-bestellt .anfr-group-head{color:var(--accent-h)}
.anfr-group.anfr-st-angekommen .anfr-group-head{color:var(--green)}
.anfr-group.anfr-st-abgelehnt .anfr-group-head{color:var(--muted)}
.anfr-row{background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--blue);
  border-radius:5px;padding:10px 12px;margin-bottom:6px;display:flex;flex-direction:column;gap:5px}
.anfr-row.anfr-st-offen{border-left-color:var(--blue)}
.anfr-row.anfr-st-genehmigt{border-left-color:var(--yellow)}
.anfr-row.anfr-st-bestellt{border-left-color:var(--accent-h)}
.anfr-row.anfr-st-angekommen{border-left-color:var(--green);opacity:.7}
.anfr-row.anfr-st-abgelehnt{border-left-color:#5c0000;opacity:.6}
.anfr-row-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.anfr-id{font-family:var(--mono);font-size:9px;color:var(--muted);background:var(--bg);padding:1px 6px;border-radius:3px}
.anfr-title{flex:1;font-weight:600;font-size:13px;color:var(--text);min-width:0;word-break:break-word}
.anfr-menge{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--accent);background:var(--bg);padding:2px 8px;border-radius:3px}
.anfr-meta{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:10px;color:var(--muted)}
.anfr-meta-dl{font-family:var(--mono);font-size:10px}
.anfr-meta-dl.warn{color:var(--yellow)}
.anfr-meta-dl.ovd{color:var(--red);font-weight:700}
.anfr-begr{font-size:11px;color:var(--muted);font-style:italic;background:var(--bg);padding:5px 8px;border-radius:3px;border-left:2px solid var(--border2)}
.anfr-decision{font-size:11px;color:#fca5a5;background:#1a0000;padding:5px 8px;border-radius:3px;border-left:2px solid var(--red)}
.anfr-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.anfr-actions button{font-size:10px;padding:5px 10px}
.anfr-btn-ok{border-color:var(--green) !important;color:var(--green) !important}
.anfr-btn-ok:hover{background:#0a3d1f !important}
.anfr-btn-reject{border-color:var(--red) !important;color:var(--red) !important}
.anfr-btn-reject:hover{background:#2a0000 !important}
.anfr-btn-primary{background:var(--accent) !important;color:#000 !important;border-color:var(--accent) !important;font-weight:700}
.anfr-btn-primary:hover{background:var(--accent-h) !important}

/* Artikelnummer-Pill (klickbar = Clipboard-Copy) — Task #29 */
.art-nr-pill{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:.04em;
  background:var(--bg);border:1px solid var(--border2);color:var(--text);
  padding:2px 7px;border-radius:3px;white-space:nowrap;cursor:pointer;transition:all .15s}
.art-nr-pill:hover{border-color:var(--accent);color:var(--accent);background:rgba(224,123,42,.14)}

/* Edit-Modal: kompakte Form-Inputs */
.le-lbl{display:block;font-family:var(--mono);font-size:10px;color:var(--accent);letter-spacing:.04em;margin:8px 0 4px}
.le-inp{width:100%;background:var(--bg);border:1px solid var(--border2);border-radius:4px;color:var(--text);
  font-family:var(--sans);font-size:13px;padding:8px 10px;outline:none}
.le-inp:focus{border-color:var(--accent)}

/* Lieferanten-Verwaltung (Task #33) */
.lief-section{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.lief-toolbar{display:flex;gap:6px}
.lief-list{display:flex;flex-direction:column;gap:8px}
.lief-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.lief-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lief-name{font-size:14px;font-weight:600;color:var(--text);flex:0 1 auto}
.lief-id{font-family:var(--mono);font-size:9px;color:var(--muted);background:var(--bg);padding:1px 6px;border-radius:3px}
.lief-edit-btn,.lief-del-btn{margin-left:auto;padding:3px 8px}
.lief-del-btn{margin-left:0;color:var(--red) !important;border-color:var(--border2)}
.lief-del-btn:hover{border-color:var(--red) !important;background:#2a0000}
.lief-adresse{font-size:12px;color:var(--text);line-height:1.4}
.lief-web{font-size:11px;color:var(--muted)}
.lief-web a{color:var(--blue);text-decoration:none}
.lief-web a:hover{text-decoration:underline}
.lief-notizen{font-size:11px;color:var(--muted);font-style:italic}
.lief-kontakte-head{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--accent);
  margin-top:6px;padding-top:6px;border-top:1px dashed var(--border)}
.lief-kontakte-list{display:flex;flex-direction:column;gap:5px}
.lief-kontakte-empty{font-size:11px;color:var(--muted);font-style:italic;padding:4px 0}
.lief-kontakte-add{margin-top:4px}
.lief-kontakt{display:flex;align-items:flex-start;gap:8px;background:var(--surface2);border:1px solid var(--border);
  border-radius:4px;padding:8px 10px}
.lief-star{font-size:14px;flex-shrink:0;cursor:pointer;opacity:.5;transition:opacity .12s,color .12s}
.lief-star:hover{opacity:1;color:var(--accent)}
.lief-star.primary{opacity:1;color:var(--accent);cursor:default}
.lief-kontakt-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.lief-kontakt-name{font-size:12px;color:var(--text);line-height:1.3;word-break:break-word}
.lief-kontakt-name b{font-weight:600}
.lief-kontakt-meta{display:flex;flex-wrap:wrap;gap:5px}
.lief-kontakt-notiz{font-size:10px;color:var(--muted);font-style:italic;margin-top:2px}
.lief-kontakt-actions{display:flex;gap:4px;flex-shrink:0}
.lief-kontakt-actions .fbtn{padding:3px 7px;font-size:10px}
/* Klick-Copy-Pill (Telefon, E-Mail, etc.) */
.copy-pill{display:inline-block;font-family:var(--mono);font-size:10px;background:var(--bg);
  border:1px solid var(--border2);color:var(--text);padding:2px 7px;border-radius:3px;cursor:pointer;transition:all .15s}
.copy-pill:hover{border-color:var(--accent);color:var(--accent);background:rgba(224,123,42,.14)}

/* Lieferanten-Link (klickbar → Popover) — überall wo ein Lieferant verlinkt ist */
.lief-link{color:var(--blue);cursor:pointer;text-decoration:none;border-bottom:1px dashed var(--blue);transition:color .12s}
.lief-link:hover{color:var(--accent);border-bottom-color:var(--accent)}

/* Lieferanten-Popover (positioniert bei Anchor oder zentriert) */
.lief-popover{position:absolute;z-index:900;background:var(--surface);border:1px solid var(--accent);
  border-radius:6px;padding:12px 14px;min-width:280px;max-width:380px;
  box-shadow:0 12px 32px rgba(0,0,0,.6);display:flex;flex-direction:column;gap:6px;animation:fadeIn .15s}
.lp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.lp-name{font-size:13px;font-weight:600;color:var(--accent)}
.lp-close{background:transparent;border:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 4px}
.lp-close:hover{color:var(--text)}
.lp-row{font-size:12px;color:var(--text);line-height:1.4}
.lp-link{color:var(--blue);text-decoration:none}
.lp-link:hover{text-decoration:underline}
.lp-kontakte-head{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--accent);
  margin-top:6px;padding-top:6px;border-top:1px dashed var(--border)}
.lp-kontakte{display:flex;flex-direction:column;gap:6px}
.lp-contact{display:flex;flex-direction:column;gap:3px;background:var(--surface2);border-radius:4px;padding:6px 8px}
.lp-contact-name{font-size:12px;color:var(--text)}
.lp-contact-name b{font-weight:600}
.lp-star{color:var(--accent);margin-right:4px}
.lp-contact-line a{font-family:var(--mono);font-size:11px;color:var(--text);text-decoration:none;
  border-bottom:1px dashed var(--border2);padding-bottom:1px;cursor:pointer;transition:all .12s}
.lp-contact-line a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.lp-empty{font-size:11px;color:var(--muted);font-style:italic}

/* Lieferanten-Sammelansicht "Firmenbestellung" (Task #30) */
.anfr-sammel{background:rgba(224,123,42,.06);border:1px solid var(--accent);border-radius:6px;
  padding:8px 10px;margin-bottom:8px;display:flex;flex-direction:column;gap:6px}
.anfr-sammel-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:6px;border-bottom:1px dashed var(--border)}
.anfr-sammel-name{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--accent);flex:0 1 auto}
.anfr-sammel-stat{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.04em}
.anfr-sammel-btn{margin-left:auto;background:var(--accent) !important;color:#000 !important;
  border-color:var(--accent) !important;font-weight:700;font-size:10px;padding:6px 12px}
.anfr-sammel-btn:hover{background:var(--accent-h) !important}
.anfr-sammel-list{display:flex;flex-direction:column;gap:5px}
.anfr-sammel-list .anfr-row{margin-bottom:0}

/* Eingebettete Bestellanfragen-Sektion im Lager-Tab (Task #28) */
.lager-anfragen-section{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:6px;padding:10px 12px;margin-bottom:14px;display:flex;flex-direction:column;gap:8px}
.las-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:6px;border-bottom:1px solid var(--border)}
.las-title{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--accent);font-weight:700}
.las-counts{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.las-pill{font-family:var(--mono);font-size:9px;font-weight:700;padding:2px 7px;border-radius:3px;letter-spacing:.04em}
.las-pill.las-offen{background:#0a1f3d;color:#7ea7f5}
.las-pill.las-genehmigt{background:#3d2800;color:#fbbf24}
.las-pill.las-bestellt{background:rgba(224,123,42,.20);color:var(--accent-h)}
.las-list{display:flex;flex-direction:column;gap:5px}
.las-list .anfr-row{margin-bottom:0}

/* Scan-ET-Modal: Schnellbuttons + Mengen-Eingabe (Task #27) */
.scan-et-quick{display:flex;gap:6px;margin-bottom:12px}
.scan-et-quick .fbtn{flex:1;padding:8px;font-size:12px;font-weight:700}
.scan-et-amount{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.scan-et-amount-lbl{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.04em;flex-shrink:0}
.scan-et-amount input[type="number"]{flex:1;background:var(--bg);border:1px solid var(--border2);
  color:var(--text);font-family:var(--mono);font-size:18px;font-weight:700;padding:8px 12px;
  border-radius:4px;outline:none;text-align:center}
.scan-et-amount input[type="number"]:focus{border-color:var(--accent)}
.scan-et-actions{display:flex;gap:8px;margin-bottom:6px}
.scan-et-actions .fbtn{flex:1;padding:14px 8px;font-size:13px;font-weight:700;letter-spacing:.04em}
.scan-et-btn-out{border-color:var(--red) !important;color:var(--red) !important}
.scan-et-btn-out:hover{background:#2a0000 !important}
.scan-et-btn-in{border-color:var(--green) !important;color:var(--green) !important}
.scan-et-btn-in:hover{background:#0a2a14 !important}

/* Senior-Only-Flag für vertrauliche Aufgaben (Task #54) */
.task-senior-pill{display:inline-block;font-size:12px;line-height:1;background:var(--surface2);
  border:1px solid var(--border2);color:var(--muted);padding:2px 5px;border-radius:3px;flex-shrink:0;cursor:help}
.task-senior-toggle{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;
  color:var(--text);letter-spacing:.04em;margin:4px 0 8px;cursor:pointer}
.task-senior-toggle input[type="checkbox"]{accent-color:var(--accent);cursor:pointer;width:14px;height:14px;margin:0;flex-shrink:0}
.task-senior-toggle .hint{color:var(--muted);font-style:italic;font-size:9px;letter-spacing:0}

/* Audit-Workflow (Task #52 Phase C) */
.audit-badge{background:var(--blue) !important;color:#000 !important}
.audit-section-head{color:var(--blue) !important;border-bottom-color:var(--border) !important}
.audit-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:6px;padding:10px 12px;margin-bottom:8px;display:flex;flex-direction:column;gap:6px}
.audit-card-pending{border-left-color:var(--accent)}
.audit-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.audit-title{flex:1;font-weight:600;font-size:13px;color:var(--text);min-width:0;word-break:break-word}
.audit-id{font-family:var(--mono);font-size:9px;color:var(--muted);background:var(--bg);padding:1px 6px;border-radius:3px}
.audit-meta{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:10px;color:var(--muted)}
.audit-meta b{color:var(--text)}
.audit-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.audit-actions .fbtn{font-size:11px;padding:6px 12px;font-weight:700}
.audit-btn-ok{border-color:var(--green) !important;color:var(--green) !important}
.audit-btn-ok:hover{background:#0a2a14 !important}
.audit-btn-reject{border-color:var(--red) !important;color:var(--red) !important}
.audit-btn-reject:hover{background:#2a0000 !important}
/* Pills für Task-Karten */
.audit-pill-row{margin-top:4px}
.audit-pending-pill{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.04em;
  background:rgba(224,123,42,.18);color:var(--accent);border:1px solid var(--accent);padding:2px 8px;border-radius:3px}
.audit-approved-pill{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.04em;
  background:rgba(45,184,122,.15);color:var(--green);border:1px solid var(--green);padding:2px 8px;border-radius:3px}
.audit-rejected-pill{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.04em;
  background:rgba(224,80,80,.15);color:var(--red);border:1px solid var(--red);padding:2px 8px;border-radius:3px}
.audit-rejected-reason{font-size:11px;color:#fca5a5;background:#1a0000;padding:5px 8px;border-radius:3px;
  border-left:2px solid var(--red);margin-top:4px;font-style:italic}
/* Updates-Liste auf Dashboard */
.audit-update-list{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}
.audit-update{display:flex;gap:8px;background:var(--surface2);border:1px solid var(--border);
  border-radius:4px;padding:7px 10px;font-size:12px;color:var(--text)}
.audit-update-ok{border-left:2px solid var(--green)}
.audit-update-reject{border-left:2px solid var(--red)}
.audit-update-pending{border-left:2px solid var(--accent)}
.audit-update-icon{flex-shrink:0;font-size:14px}
.audit-update-text{flex:1;min-width:0}
.audit-update-when{color:var(--muted);font-family:var(--mono);font-size:10px}
.audit-update-reason{font-size:11px;color:#fca5a5;font-style:italic;margin-top:3px}

/* Löschanfragen-Workflow (Task #56 Phase C) */
.loesch-badge{background:var(--red) !important;color:#fff !important}
.loesch-section-head{color:var(--red) !important;border-bottom-color:var(--border) !important}
.loesch-pending-pill{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.04em;
  background:rgba(224,80,80,.15);color:var(--red);border:1px solid var(--red);padding:2px 8px;border-radius:3px}
/* Task #59: Inline-Marker neben Entity-Namen wenn Löschanfrage offen */
.loesch-inline-warn{color:var(--red);font-size:11px;font-weight:normal;font-style:italic;margin-left:6px}
.loesch-approved-pill{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.04em;
  background:rgba(45,184,122,.15);color:var(--green);border:1px solid var(--green);padding:2px 8px;border-radius:3px}
.loesch-rejected-pill{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.04em;
  background:rgba(224,80,80,.15);color:var(--red);border:1px solid var(--red);padding:2px 8px;border-radius:3px}
.loesch-card-reason{font-size:11px;color:#fca5a5;background:#1a0000;padding:5px 8px;border-radius:3px;
  border-left:2px solid var(--red);font-style:italic}
.loesch-card-reason-empty{color:var(--muted);background:transparent;border-left-color:var(--border);font-style:italic}
.loesch-modal-textarea,.im-textarea{resize:vertical;min-height:80px}
.loesch-entity-label{font-family:var(--mono);font-size:11px;color:var(--text);background:var(--bg);
  padding:8px 10px;border-radius:3px;margin-bottom:10px;border-left:2px solid var(--red);word-break:break-word}
.loesch-warning{font-size:11px;color:var(--yellow);background:rgba(238,184,69,.08);
  border:1px solid var(--yellow);border-radius:3px;padding:6px 10px;margin-bottom:10px}
.loesch-info{font-size:11px;color:var(--accent);background:rgba(224,123,42,.08);
  border:1px solid var(--accent);border-radius:3px;padding:6px 10px;margin-bottom:10px;font-style:italic}

/* Nachricht-Form: Schicht-Toggle (Task #41) */
.msg-shift-toggle{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;
  color:var(--accent);letter-spacing:.04em;margin-bottom:10px;cursor:pointer;padding:6px 10px;
  background:var(--bg);border:1px solid var(--border2);border-radius:4px}
.msg-shift-toggle input[type="checkbox"]{accent-color:var(--accent);cursor:pointer;width:14px;height:14px;margin:0}
.msg-shift-hint{color:var(--muted);font-size:10px;font-style:italic;letter-spacing:0}

/* Inventur-Eingabe-Modal (Task #39) */
.inventur-box{display:flex;flex-direction:column}
.inv-draft-hint{background:rgba(224,123,42,.14);border:1px solid var(--accent);color:var(--accent);
  padding:8px 12px;border-radius:4px;margin-bottom:10px;font-family:var(--mono);font-size:11px;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.inv-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.inv-toggle{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.04em;cursor:pointer;white-space:nowrap}
.inv-toggle input[type="checkbox"]{accent-color:var(--accent);cursor:pointer;margin:0;width:14px;height:14px}
.inv-group{margin-bottom:12px}
.inv-group-head{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--accent);
  margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid var(--border)}
.inv-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}
.inv-table th{font-family:var(--mono);font-size:9px;letter-spacing:.04em;color:var(--muted);
  text-transform:uppercase;text-align:left;padding:5px 6px;background:var(--surface2);border-bottom:1px solid var(--border)}
.inv-table td{padding:5px 6px;border-bottom:1px solid var(--border)}
.inv-table tbody tr:last-child td{border-bottom:none}
.inv-row.eq td{background:rgba(45,184,122,.05)}
.inv-row.neg td{background:rgba(224,80,80,.07)}
.inv-row.pos td{background:rgba(91,141,239,.07)}
.t-id{font-family:var(--mono);font-size:9px;color:var(--muted);width:80px;white-space:nowrap}
.t-bez{color:var(--text);min-width:0;word-break:break-word}
.t-bez .t-art{display:inline-block;margin-left:6px;font-family:var(--mono);font-size:9px;color:var(--muted);background:var(--bg);padding:1px 5px;border-radius:3px}
.t-soll{font-family:var(--mono);font-weight:700;color:var(--text);text-align:right;width:70px;white-space:nowrap}
.t-gez{width:100px}
.t-diff{width:60px;text-align:right;font-family:var(--mono);font-weight:700}
.inv-inp{width:100%;background:var(--bg);border:1px solid var(--border2);color:var(--text);
  font-family:var(--mono);font-size:13px;font-weight:700;text-align:center;padding:5px 6px;border-radius:3px;outline:none}
.inv-inp:focus{border-color:var(--accent)}
.inv-diff-eq{color:var(--green)}
.inv-diff-neg{color:var(--red)}
.inv-diff-pos{color:var(--blue)}
.inv-diff-empty{color:var(--muted);font-weight:300}
.inv-footer{margin-top:14px;display:flex;align-items:center;gap:10px}
.inv-count{font-family:var(--mono);font-size:10px;color:var(--muted);margin-right:auto}

/* Pipeline-Pill: aktive Bestell-Pipeline für kritisches ET (Dashboard, Scan-Modal) — Task #38 */
.pipeline-pill{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:700;
  letter-spacing:.04em;background:rgba(224,123,42,.18);color:var(--accent);
  border:1px solid var(--accent);padding:3px 9px;border-radius:3px;white-space:nowrap}

/* Anfrage-Form-Modal: Info-Kasten */
.anfr-form-info{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:10px 12px;margin-bottom:12px}
.anfr-form-bez{font-weight:600;font-size:14px;color:var(--text);margin-bottom:3px}
.anfr-form-meta{font-family:var(--mono);font-size:10px;color:var(--muted);margin-bottom:6px;letter-spacing:.04em}
.anfr-form-stock{font-size:12px;color:var(--muted)}

/* ── QR-Generator-Tab (Phase D) ───────────────────────────────────────────── */
.qr-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.qr-mode-tabs{display:flex;gap:4px;flex-wrap:wrap}
.qr-mode-btn{font-family:var(--mono);font-size:10px;letter-spacing:.04em;padding:7px 12px;border-radius:4px;cursor:pointer;
  border:1px solid var(--border2);background:var(--surface);color:var(--muted);transition:all .15s}
.qr-mode-btn:hover{color:var(--text);border-color:var(--muted)}
.qr-mode-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(224,123,42,.14)}
.qr-actions{display:flex;gap:6px;flex-wrap:wrap}
.qr-actions button:disabled{opacity:.4;cursor:not-allowed}
.qr-selector{margin-bottom:14px}
.qr-select-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:5px;
  background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:8px;max-height:380px;overflow-y:auto;margin-bottom:8px}
.qr-cb-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;border-radius:3px;
  background:var(--surface2);border:1px solid var(--border2);cursor:pointer;transition:all .12s;position:relative}
.qr-cb-item:hover{border-color:var(--muted)}
.qr-cb-item.checked{border-color:var(--accent);background:rgba(224,123,42,.14)}
.qr-cb-item input[type="checkbox"]{position:absolute;top:6px;right:6px;accent-color:var(--accent);cursor:pointer;margin:0;width:14px;height:14px}
.qr-cb-bez{font-size:12px;color:var(--text);font-weight:500;padding-right:24px;line-height:1.3;word-break:break-word}
.qr-cb-meta{font-family:var(--mono);font-size:9px;color:var(--muted);letter-spacing:.04em}
.qr-select-readonly .qr-cb-item{cursor:default}
.qr-select-readonly .qr-cb-item:hover{border-color:var(--border2)}
.qr-bulk-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-family:var(--mono);font-size:10px;color:var(--muted)}
.qr-sel-count{margin-left:auto;color:var(--accent)}
.qr-hint{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:14px 18px;color:var(--muted);font-size:12px;line-height:1.5}
.qr-hint b{color:var(--accent)}
.qr-print-head{font-family:var(--mono);font-size:11px;color:var(--accent);background:var(--surface);
  border:1px solid var(--border);border-radius:4px;padding:8px 12px;margin-bottom:10px;letter-spacing:.04em}

/* QR-Karten-Grid (Bildschirm + Druck) */
/* Bildschirm-Vorschau: 64px QR-Quelle, kompakte Karten (Task #44) */
.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:5px}
.qr-card{background:#fff;color:#000;border:1px solid #ccc;border-radius:5px;padding:7px 4px;
  display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;page-break-inside:avoid}
.qr-card-bez{font-weight:600;font-size:10px;line-height:1.2;word-break:break-word}
.qr-card-id{font-family:var(--mono);font-size:8px;color:#555;letter-spacing:.04em}
/* QR-Bild via CSS gestreckt auf 80px (Quelle ist nur ~72px) — bleibt scharf weil PNG pixelig skaliert */
.qr-card-img{width:80px;height:80px;display:block;image-rendering:pixelated}
.qr-card-url{display:none}
.qr-card-err{color:var(--red);font-family:var(--mono);font-size:9px;padding:14px 0}

/* Print-Stylesheet — auf A4 nur die QR-Karten zeigen. Task #44: 5 Spalten × 7 Reihen = 35/Seite */
@media print {
  @page { size: A4; margin: 1cm; }
  html, body { background: #fff !important; color: #000 !important; height: auto !important; overflow: visible !important; }
  body { font-family: var(--sans); }
  #app { display: block !important; height: auto !important; overflow: visible !important; }
  /* Alles ausblenden außer dem QR-Panel */
  .topbar, .tabs, #login-screen, .topbar-badge, .toast, .modal, .stoer-popup, .zelle-popover, .sp-action-bar { display: none !important; }
  .panel { display: none !important; padding: 0 !important; overflow: visible !important; }
  #panel-qr { display: block !important; padding: 0 !important; }
  /* Tab-internal Bedienelemente weg — nur das Karten-Grid bleibt */
  .no-print { display: none !important; }
  .qr-grid { display: grid !important; grid-template-columns: repeat(5, 1fr) !important; gap: 3mm !important; }
  .qr-card { border: 0.5pt solid #888 !important; padding: 2.5mm 1.5mm !important; background: #fff !important; color: #000 !important; gap:1.5mm !important }
  .qr-card-img { width: 28mm !important; height: 28mm !important; image-rendering: pixelated !important; }
  .qr-card-bez { font-size: 8.5pt !important; line-height: 1.15 !important; }
  .qr-card-id { font-size: 7pt !important; color: #444 !important; }
  .qr-card-url { display:none !important; }
}

@media (max-width: 600px) {
  .qr-grid { grid-template-columns: repeat(3, 1fr); }
  .qr-card-img { width: 75px; height: 75px; }
}

/* Filters */
.filters{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px}
.fbtn{padding:5px 10px;border-radius:4px;font-family:var(--mono);font-size:9px;letter-spacing:.06em;
  border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;transition:all .15s}
.fbtn.active{border-color:var(--accent);color:var(--accent);background:rgba(224,123,42,.14)}.fbtn:hover{color:var(--text)}

/* Techniker-Auslastungs-Kacheln (Task #4) */
.tstats-head{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--accent);margin:2px 0 8px}
.tstats-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.tstat-card{flex:1 1 150px;min-width:140px;max-width:240px;background:var(--surface);border:1px solid var(--border);
  border-radius:6px;padding:10px 12px;cursor:pointer;transition:border-color .15s,background .15s}
.tstat-card:hover{border-color:var(--accent2)}
.tstat-card-active{border-color:var(--accent);background:rgba(224,123,42,.14)}
/* Aktiver-Techniker-Filter-Chip in der Aufgaben-Liste */
.tfilter-chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;
  color:var(--accent);background:rgba(224,123,42,.14);border:1px solid var(--accent);border-radius:4px;padding:5px 10px;margin-bottom:8px}
.tfilter-x{cursor:pointer;font-weight:700;color:var(--muted);transition:color .15s}
.tfilter-x:hover{color:var(--red)}
.tstat-name{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--text);margin-bottom:5px}
.tstat-counts{font-family:var(--mono);font-size:10px;color:var(--muted);margin-bottom:7px;letter-spacing:.02em}
.tstat-bar-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.tstat-bar{flex:1;height:7px;background:var(--bg);border:1px solid var(--border2);border-radius:4px;overflow:hidden}
.tstat-bar-fill{height:100%;border-radius:3px;transition:width .3s}
.tstat-bar-fill.ok{background:var(--accent)}.tstat-bar-fill.warn{background:var(--yellow)}.tstat-bar-fill.crit{background:var(--red)}
.tstat-pct{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--text);min-width:30px;text-align:right}
.tstat-foot{font-family:var(--mono);font-size:9px;color:var(--muted);letter-spacing:.02em}

/* Task-Suche */
.task-search-bar{position:relative;margin-bottom:8px}
.task-search{width:100%;background:var(--surface);border:1px solid var(--border2);border-radius:4px;color:var(--text);
  font-family:var(--sans);font-size:13px;padding:8px 32px 8px 12px;outline:none;transition:border-color .15s}
.task-search:focus{border-color:var(--accent)}
.task-search::placeholder{color:var(--muted)}
.task-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:22px;height:22px;
  display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--muted);
  font-size:18px;line-height:1;cursor:pointer;border-radius:3px;padding:0;transition:all .15s}
.task-search-clear:hover{color:var(--text);background:var(--border2)}

/* Chat */
#panel-chat{padding:0}#panel-chat.active{display:flex;flex-direction:column}
.messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}
.msg{display:flex;gap:10px;max-width:780px;animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.msg.user{flex-direction:row-reverse;align-self:flex-end}
.msg-av{width:26px;height:26px;border-radius:4px;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:9px;flex-shrink:0;margin-top:2px}
.msg.user .msg-av{background:var(--accent2);color:#fff}
.msg.assistant .msg-av{background:var(--border2);color:var(--accent);border:1px solid var(--border2)}
.msg-bub{padding:10px 14px;border-radius:6px;line-height:1.6;font-size:13px;white-space:pre-wrap}
.msg.user .msg-bub{background:var(--surface2);border:1px solid var(--border2);color:var(--text)}
.msg.assistant .msg-bub{background:var(--surface);border:1px solid var(--border);color:var(--text)}
.dots{display:flex;gap:4px;padding:4px 0}
.dots span{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:dp 1.2s ease infinite}
.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}
@keyframes dp{0%,80%,100%{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}
.chat-quickbar{display:flex;flex-direction:column;gap:6px;padding:8px 16px 0;background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}
.chat-quickbar-row{display:flex;gap:6px;flex-wrap:wrap}
.chat-quickbar-row[data-group="fokus"]{padding-top:4px;border-top:1px dashed var(--border)}
.chat-quickbar-row[data-group="zusatz"]{padding-top:4px;border-top:1px dashed var(--border)}
.chat-quick{background:var(--surface2);border:1px solid var(--border2);color:var(--muted);
  font-family:var(--mono);font-size:10px;letter-spacing:.04em;padding:6px 10px;border-radius:4px;cursor:pointer;transition:all .15s;white-space:nowrap}
.chat-quick:hover{border-color:var(--accent);color:var(--accent)}
.chat-quick:disabled{opacity:.4;cursor:not-allowed}
.chat-quick.hidden{display:none}
@media (max-width:600px){
  .chat-quickbar{padding:6px 10px 0}
  .chat-quickbar-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .chat-quickbar-row::-webkit-scrollbar{display:none}
}
.chat-bar{display:flex;gap:8px;padding:12px 16px;background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}
.chat-bar input{flex:1;background:var(--bg);border:1px solid var(--border2);color:var(--text);
  padding:10px 12px;border-radius:4px;font-family:var(--sans);font-size:13px;outline:none}
.chat-bar input:focus{border-color:var(--accent)}
.chat-bar button{background:var(--accent);color:#000;border:none;padding:0 16px;border-radius:4px;
  font-size:16px;cursor:pointer;font-weight:700;transition:background .15s}
.chat-bar button:hover{background:var(--accent-h)}.chat-bar button:disabled{opacity:.3;cursor:not-allowed}

/* Forms */
.msg-form{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:16px;margin-bottom:16px}
.msg-form select,.msg-form input,.msg-form textarea{width:100%;background:var(--bg);border:1px solid var(--border2);
  border-radius:4px;color:var(--text);font-family:var(--sans);font-size:13px;padding:8px 10px;outline:none;margin-bottom:8px}
.msg-form select:focus,.msg-form input:focus,.msg-form textarea:focus{border-color:var(--accent)}
.msg-form textarea{resize:vertical;min-height:60px}
.msg-form button{background:var(--accent);color:#000;border:none;border-radius:4px;padding:9px 20px;
  font-family:var(--mono);font-size:11px;font-weight:700;cursor:pointer;letter-spacing:.06em;transition:background .15s}
.msg-form button:hover{background:var(--accent-h)}
.msg-form label{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:10px;cursor:pointer}
.msg-form input[type="checkbox"]{width:auto;margin:0;accent-color:var(--accent)}

/* Störung Popup */
.stoer-popup{position:fixed;top:0;left:0;right:0;bottom:0;z-index:900;background:rgba(0,0,0,.85);
  display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease}
.stoer-popup-box{background:var(--surface);border:2px solid var(--red);border-radius:10px;padding:28px 32px;
  max-width:420px;width:90%;text-align:center;box-shadow:0 0 40px rgba(224,80,80,.3)}
.stoer-popup-box h2{font-family:var(--mono);font-size:14px;color:var(--red);letter-spacing:.1em;margin-bottom:12px}
.stoer-popup-box .maschine{font-size:22px;font-weight:700;color:#fff;margin-bottom:6px}
.stoer-popup-box .zeit{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:20px}
.stoer-popup-box button{background:var(--red);color:#fff;border:none;border-radius:6px;padding:14px 32px;
  font-family:var(--mono);font-size:13px;font-weight:700;cursor:pointer;letter-spacing:.08em;transition:background .15s;margin:0 6px}
.stoer-popup-box button:hover{background:#f06060}
.stoer-popup-box button.secondary{background:var(--surface2);border:1px solid var(--border2);color:var(--muted)}
.stoer-popup-box button.secondary:hover{color:var(--text);border-color:var(--muted)}

.toast{position:fixed;top:60px;left:50%;transform:translateX(-50%);padding:12px 24px;border-radius:6px;
  font-family:var(--mono);font-size:12px;font-weight:700;animation:toastIn .3s ease;z-index:100;
  box-shadow:0 4px 20px rgba(0,0,0,.5);max-width:90%}
.toast.ok{background:var(--green);color:#000}
.toast.err{background:var(--red);color:#fff}
.toast.info{background:var(--accent);color:#000}
@keyframes toastIn{from{opacity:0;transform:translateX(-50%) translateY(-10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@keyframes toastOut{from{opacity:1}to{opacity:0;transform:translateX(-50%) translateY(-10px)}}

.btn-loading{opacity:.5;pointer-events:none}

/* Modal / Datepicker */
.modal{position:fixed;inset:0;z-index:800;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}
.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:340px;max-width:90%}
.modal-box h3{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.1em;margin-bottom:12px}
.modal-box input[type="date"]{width:100%;background:var(--bg);border:1px solid var(--border2);border-radius:4px;color:var(--text);
  font-family:var(--mono);font-size:14px;padding:10px 12px;outline:none;margin-bottom:12px;color-scheme:dark}
.modal-box input[type="date"]:focus{border-color:var(--accent)}
.modal-btns{display:flex;gap:8px;justify-content:flex-end}
.modal-btns button{font-family:var(--mono);font-size:11px;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:700;border:none}
.modal-btns .btn-ok{background:var(--accent);color:#000}.modal-btns .btn-ok:hover{background:var(--accent-h)}
.modal-btns .btn-cancel{background:var(--surface2);color:var(--muted);border:1px solid var(--border2)}.modal-btns .btn-cancel:hover{color:var(--text)}
.modal-btns .btn-clear{background:transparent;color:var(--red);border:1px solid var(--border2)}
.empty{text-align:center;padding:40px;color:var(--muted);font-size:12px;font-family:var(--mono)}
.loading{text-align:center;padding:40px;color:var(--muted)}

/* Fortschritt Widget */
.fortschritt-head{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.fortschritt-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:14px}
.ft-tile{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 14px;display:flex;align-items:center;gap:10px}
.ft-tile .ic{font-size:20px;flex-shrink:0}
.ft-tile .num{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--accent);line-height:1}
.ft-tile .lbl{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--muted);margin-top:3px}
.ft-tile.g .num{color:var(--green)}.ft-tile.r .num{color:var(--red)}.ft-tile.b .num{color:var(--blue)}.ft-tile.y .num{color:var(--yellow)}
.ft-feed{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 0;max-height:420px;overflow-y:auto}
.ft-row{display:flex;align-items:center;gap:10px;padding:7px 14px;border-bottom:1px solid var(--border);font-size:12px}
.ft-row:last-child{border-bottom:none}
.ft-row .ic{font-size:14px;flex-shrink:0;width:18px;text-align:center}
.ft-row .txt{flex:1;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ft-row .txt b{color:var(--accent);font-weight:500}
.ft-row .tm{font-family:var(--mono);font-size:9px;color:var(--muted);flex-shrink:0}
.ft-empty{text-align:center;padding:16px;color:var(--muted);font-size:11px;font-family:var(--mono)}

/* Projekte-Grid (Phase 2) */
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:12px}
.proj-tile{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:12px 14px;cursor:pointer;
  transition:border-color .15s,transform .15s;display:flex;flex-direction:column;gap:8px;border-left:3px solid var(--yellow)}
.proj-tile:hover{border-color:var(--accent);transform:translateY(-1px)}
.proj-tile.archived{opacity:.6;border-left-color:var(--muted)}
.proj-tile.archived:hover{opacity:.85}
.proj-tile .pt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.proj-tile .pt-titlebox{flex:1;min-width:0}
.proj-tile .pt-title{font-weight:600;font-size:13px;color:#fbbf24;line-height:1.3;word-break:break-word}
.proj-tile .pt-id{font-family:var(--mono);font-size:9px;color:var(--muted);margin-top:2px;letter-spacing:.04em}
.pt-status{font-family:var(--mono);font-size:9px;font-weight:700;padding:2px 7px;border-radius:3px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;flex-shrink:0}
.pt-status.s-in_bearbeitung{background:#3d2800;color:#fbbf24}
.pt-status.s-abgeschlossen{background:#0a3d1f;color:#6ee7b7}
.pt-status.s-pausiert{background:#2a1a3d;color:#c4b5fd}
.pt-status.s-offen,.pt-status.s-geplant{background:var(--surface2);color:var(--muted)}
.proj-tile .pt-progress{display:flex;align-items:center;gap:8px}
.pt-bar{flex:1;height:6px;background:var(--bg);border-radius:3px;overflow:hidden;border:1px solid var(--border)}
.pt-bar-fill{height:100%;background:var(--accent);transition:width .3s}
.pt-bar-fill.full{background:var(--green)}
.pt-bar-fill.zero{background:var(--border2)}
.proj-tile .pt-pct{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--text);min-width:38px;text-align:right}
.proj-tile .pt-counts{display:flex;flex-wrap:wrap;gap:5px;font-family:var(--mono);font-size:10px;color:var(--muted)}
.pt-counts .pc{padding:1px 6px;border-radius:3px;background:var(--surface2);border:1px solid var(--border)}
.pt-counts .pc.warn{color:var(--red);border-color:#5c0000;background:#1a0000}
.pt-counts .pc.ip{color:var(--yellow);border-color:#3d2800}
.pt-counts .pc.done{color:var(--green);border-color:#0a3d1f}
.proj-tile .pt-meta{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:10px;color:var(--muted)}
.pt-meta .pm{display:inline-flex;align-items:center;gap:3px}
.pt-meta .pm.ovd{color:var(--red)}.pt-meta .pm.warn{color:var(--yellow)}
.pt-meta .pm.fremd{color:var(--blue)}
.proj-tile .pt-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;
  font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:auto;padding-top:6px;border-top:1px solid var(--border)}
.pt-mine{color:var(--accent);font-family:var(--mono);font-size:10px;background:rgba(224,123,42,.14);
  border:1px solid #3d2800;padding:2px 7px;border-radius:3px;white-space:nowrap}
.pt-arch-badge{font-family:var(--mono);font-size:9px;color:var(--muted);background:var(--surface2);
  padding:2px 6px;border-radius:3px;border:1px solid var(--border);white-space:nowrap}

/* Projekt-Detail (Shell für Phase 3) */
.proj-detail-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.proj-back-btn{font-family:var(--mono);font-size:10px;color:var(--muted);background:var(--surface);
  border:1px solid var(--border);padding:7px 14px;border-radius:4px;cursor:pointer;letter-spacing:.06em;transition:all .15s}
.proj-back-btn:hover{color:var(--accent);border-color:var(--accent)}
.proj-detail-title{flex:1;min-width:200px}
.proj-detail-title .t{font-weight:600;font-size:15px;color:#fbbf24;line-height:1.25}
.proj-detail-title .s{font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:3px;letter-spacing:.04em}

/* Kanban-Board (Phase 3) */
.kanban-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:start}
@media(max-width:1100px){.kanban-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.kanban-board{grid-template-columns:1fr}}
.kb-col{background:var(--surface);border:1px solid var(--border);border-radius:6px;display:flex;flex-direction:column;
  min-height:160px;transition:border-color .15s,background .15s}
.kb-col.kb-dragover{border-color:var(--accent);background:rgba(224,123,42,.14)}
.kb-col-head{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--border);
  font-family:var(--mono);font-size:11px;letter-spacing:.06em}
.kb-col-title{flex:1;color:var(--text)}
.kb-col-count{color:var(--muted);font-size:10px;background:var(--surface2);padding:1px 7px;border-radius:8px}
.kb-col-offen .kb-col-title{color:var(--muted)}
.kb-col-ip   .kb-col-title{color:var(--yellow)}
.kb-col-pause .kb-col-title{color:#c4b5fd}
.kb-col-done .kb-col-title{color:var(--green)}
.kb-add-btn{background:var(--accent);color:#000;border:none;width:22px;height:22px;border-radius:3px;
  cursor:pointer;font-weight:700;font-size:14px;line-height:1;padding:0;transition:background .15s}
.kb-add-btn:hover{background:var(--accent-h)}
.kb-col-body{padding:8px;display:flex;flex-direction:column;gap:6px;min-height:60px}
.kb-empty{font-family:var(--mono);font-size:10px;color:var(--muted);text-align:center;padding:18px 6px;opacity:.7}
.kb-card{background:var(--surface2);border:1px solid var(--border2);border-left:3px solid var(--muted);
  border-radius:4px;padding:7px 9px;cursor:grab;display:flex;flex-direction:column;gap:5px;
  transition:opacity .15s,transform .15s,border-color .15s,box-shadow .15s}
.kb-card:hover{border-color:var(--accent);box-shadow:0 1px 4px rgba(0,0,0,.4)}
.kb-card.kb-dragging{opacity:.4;transform:rotate(1deg);cursor:grabbing}
.kb-card.p-hoch{border-left-color:var(--red)}
.kb-card.p-mittel{border-left-color:var(--yellow)}
.kb-card.p-niedrig{border-left-color:var(--muted)}
.kb-card.overdue{box-shadow:inset 2px 0 0 var(--red)}
.kb-card.archived{opacity:.55}
.kb-card-top{display:flex;align-items:flex-start;gap:6px}
.kb-card-prio{font-size:10px;flex-shrink:0;line-height:1.4}
.kb-card-title{flex:1;font-size:12px;color:var(--text);font-weight:500;line-height:1.3;word-break:break-word}
.kb-card-arch{font-size:10px;flex-shrink:0;color:var(--muted)}
.kb-card-meta{display:flex;flex-wrap:wrap;gap:6px;font-family:var(--mono);font-size:9px;color:var(--muted)}
.kb-card-meta span{white-space:nowrap}
.kb-card-id{opacity:.7}
.kb-card-as{color:var(--accent)}
.kb-card-dl.ovd{color:var(--red);font-weight:700}
.kb-card-dl.warn{color:var(--yellow)}
.kb-card-actions{display:flex;gap:4px;align-items:center;margin-top:2px}
.kb-card-status-sel{flex:1;min-width:0;background:var(--bg);border:1px solid var(--border);color:var(--muted);
  font-family:var(--mono);font-size:9px;padding:2px 4px;border-radius:3px;outline:none;cursor:pointer}
.kb-card-status-sel:focus{border-color:var(--accent);color:var(--text)}
.kb-card-btn{background:var(--surface);border:1px solid var(--border2);color:var(--muted);padding:2px 7px;
  border-radius:3px;cursor:pointer;font-size:11px;line-height:1;transition:all .15s}
.kb-card-btn:hover{color:var(--accent);border-color:var(--accent)}

/* Inline-Create im Offen-Spalte */
.kb-create{padding:8px;border-bottom:1px solid var(--border);background:var(--surface2);display:flex;flex-direction:column;gap:5px}
.kb-create input,.kb-create select{width:100%;background:var(--bg);border:1px solid var(--border2);color:var(--text);
  font-family:var(--sans);font-size:12px;padding:6px 8px;outline:none;border-radius:3px;color-scheme:dark}
.kb-create input:focus,.kb-create select:focus{border-color:var(--accent)}
.kb-create-btns{display:flex;gap:5px;margin-top:2px}
.kb-create-btns button{flex:1;font-family:var(--mono);font-size:10px;padding:6px;border-radius:3px;
  border:none;cursor:pointer;font-weight:700;letter-spacing:.04em}
.kb-btn-ok{background:var(--accent);color:#000}
.kb-btn-ok:hover{background:var(--accent-h)}
.kb-btn-cancel{background:var(--surface);color:var(--muted);border:1px solid var(--border2);max-width:38px;flex:0 0 38px}
.kb-btn-cancel:hover{color:var(--red);border-color:var(--red)}

/* Detail-Header: Hinweis für Techniker */
.proj-detail-title .techniker-hint{color:var(--accent);margin-left:4px}

/* Detail-Header: volle Projekt-Metadaten + Inline-Edits */
.proj-detail-meta{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--yellow);
  border-radius:6px;padding:12px 14px;margin-bottom:14px;display:flex;flex-direction:column;gap:8px}
.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 14px;
  font-family:var(--mono);font-size:11px;color:var(--text)}
.meta-grid .mg-row{color:var(--muted)}
.meta-grid .mg-row b{color:var(--text);font-weight:600}
.meta-grid .mg-row.ovd b,.meta-grid .mg-row .red{color:var(--red)}
.meta-grid .mg-row.warn b{color:var(--yellow)}
.meta-block{font-size:12px;color:var(--text);background:var(--surface2);border:1px solid var(--border);
  border-radius:4px;padding:7px 10px;line-height:1.45}
.meta-block.accent{border-left:2px solid var(--accent);color:#fde6c4}
.meta-block b{color:var(--accent);font-weight:600;font-family:var(--mono);font-size:10px;letter-spacing:.04em}
.meta-block .log-list{font-size:11px;color:var(--muted);margin-top:4px}
.meta-block .log-list .log-line{padding:1px 0}
.meta-actions{display:flex;flex-wrap:wrap;gap:4px;padding-top:8px;border-top:1px solid var(--border)}
.meta-actions button{font-family:var(--mono);font-size:9px;padding:4px 9px;border-radius:3px;
  border:1px solid var(--border2);background:var(--surface2);color:var(--muted);cursor:pointer;transition:all .15s}
.meta-actions button:hover{border-color:var(--accent);color:var(--accent)}

/* Karten-Modal (Klick auf Kanban-Karte) */
.kb-modal-body{max-height:70vh;overflow-y:auto;padding-right:4px}
.kb-modal-body .card{margin-bottom:0}

/* Karten-Timestamps */
.card-done{display:inline-block;font-family:var(--mono);font-size:10px;color:var(--green);margin-top:3px}
.card-updated{font-family:var(--mono);font-size:9px;color:var(--muted);margin-top:6px;padding-top:4px;border-top:1px dashed var(--border);opacity:.7}

/* Erledigte/Archivierte Anzeige */
.show-completed{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;
  color:var(--muted);margin-bottom:10px;cursor:pointer;user-select:none;padding:4px 8px;border-radius:3px;transition:color .15s}
.show-completed:hover{color:var(--text)}
.show-completed input[type="checkbox"]{accent-color:var(--accent);cursor:pointer;margin:0;width:13px;height:13px}
.sh.sh-archive{color:var(--muted);margin-top:24px;border-bottom-color:var(--border2)}
.card.card-archived{opacity:.55;background:var(--surface)}
.card.card-archived:hover{opacity:.85;border-color:var(--border2)}
.card.card-archived .card-title{color:var(--muted)}
.card.card-completed{opacity:.85}
.arch-badge{font-family:var(--mono);font-size:9px;color:var(--muted);background:var(--surface2);
  padding:1px 6px;border-radius:3px;border:1px solid var(--border);margin-left:auto;white-space:nowrap}

@media(max-width:600px){.stats-row{grid-template-columns:1fr 1fr}.ts{display:none}.tab{padding:10px 10px;font-size:9px}
  .proj-grid{grid-template-columns:1fr;gap:10px}}

/* ── Schichtplan-Editor (Phase 2) ─────────────────────────────────────────── */
.sp-wrap{display:flex;flex-direction:column;gap:12px}
.sp-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.sp-nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.sp-actions{display:flex;gap:10px;align-items:center}
.sp-range{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.06em}
.sp-btn{background:var(--surface2);border:1px solid var(--border2);color:var(--text);
  font-family:var(--mono);font-size:10px;letter-spacing:.04em;padding:7px 12px;border-radius:4px;cursor:pointer;transition:all .15s}
.sp-btn:hover{border-color:var(--accent);color:var(--accent)}
.sp-btn-primary{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}
.sp-btn-primary:hover{background:var(--accent-h);color:#000}
.sp-datepick{background:var(--bg);border:1px solid var(--border2);color:var(--text);
  font-family:var(--mono);font-size:11px;padding:6px 8px;border-radius:4px;outline:none}
.sp-datepick:focus{border-color:var(--accent)}
.sp-legend{display:flex;gap:6px;flex-wrap:wrap;padding:6px 0}
.sp-leg{font-family:var(--mono);font-size:9px;letter-spacing:.04em;padding:3px 7px;border-radius:3px;border:1px solid var(--border2)}
.sp-tablewrap{overflow-x:auto;border:1px solid var(--border);border-radius:4px;background:var(--surface);max-width:100%}
.schichtplan-table{border-collapse:separate;border-spacing:0;width:100%;font-family:var(--mono);font-size:11px}
.schichtplan-table th,.schichtplan-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:0}
.schichtplan-table thead th{position:sticky;top:0;background:var(--surface2);z-index:5;padding:6px 4px;text-align:center;color:var(--muted);font-weight:400}
.sp-th .sp-th-wd{font-size:9px;color:var(--muted);letter-spacing:.04em}
.sp-th .sp-th-d{font-size:11px;color:var(--text);margin-top:2px}
.sp-rowhead-empty{position:sticky;left:0;background:var(--surface2);z-index:6;min-width:120px}
.sp-rowhead{position:sticky;left:0;background:var(--surface2);z-index:4;padding:6px 10px;text-align:left;color:var(--text);font-weight:500;min-width:120px;font-size:11px}
.sp-cell{text-align:center;cursor:pointer;height:32px;min-width:48px;background:var(--bg);transition:background .12s}
.sp-cell:hover{background:var(--surface2)}
.sp-weekend{background:var(--surface)}
.sp-weekend.sp-cell:hover{background:var(--surface2)}
.sp-today{box-shadow:inset 0 0 0 1px var(--accent)}
.sp-cell-selected{background:rgba(224,123,42,.15) !important;box-shadow:inset 0 0 0 1px var(--accent)}
.sp-cell-selected.sp-weekend{background:rgba(224,123,42,.20) !important}
.sp-cell-anchor{box-shadow:inset 0 0 0 2px var(--accent)}
.schichtplan-table.sp-selecting,.sp-cell{user-select:none;-webkit-user-select:none}
.sp-empty{padding:20px;text-align:center;color:var(--muted);font-style:italic}
/* Schicht-Werte als Pillen */
.sp-v{display:inline-block;min-width:26px;padding:3px 6px;border-radius:3px;font-weight:600;letter-spacing:.04em}
.sp-v-empty{color:var(--muted);font-weight:300}
.sp-v-F{background:rgba(91,141,239,.18);color:#7ea7f5}
.sp-v-T{background:rgba(45,184,122,.18);color:#4dcb91}
.sp-v-S{background:rgba(224,123,42,.20);color:var(--accent-h)}
.sp-v-N{background:rgba(160,90,200,.20);color:#c79be8}
.sp-v-UG,.sp-v-K,.sp-v-AN,.sp-v-UeA,.sp-v-AF,.sp-v-U{background:var(--surface2);color:var(--muted);border:1px solid var(--border2)}
.sp-v-K{color:#e07474}
.sp-v-U{color:#d4a82a}

/* Popover für Zell-Edit */
.zelle-popover{position:absolute;z-index:900;background:var(--surface);border:1px solid var(--accent);border-radius:6px;
  padding:10px;box-shadow:0 12px 32px rgba(0,0,0,.6);min-width:220px}
.sp-pop-head{font-family:var(--mono);font-size:10px;color:var(--accent);letter-spacing:.06em;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.sp-pop-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:8px}
.sp-pop-btn{font-family:var(--mono);font-size:11px;font-weight:700;padding:6px 4px;border-radius:3px;cursor:pointer;
  border:1px solid var(--border2);background:var(--surface2);color:var(--text);transition:all .12s}
.sp-pop-btn:hover{border-color:var(--accent);transform:translateY(-1px)}
.sp-pop-btn.sp-v-sel{outline:2px solid var(--accent);outline-offset:1px}
.sp-pop-foot{display:flex;justify-content:space-between;gap:6px;padding-top:6px;border-top:1px solid var(--border)}
.sp-pop-clear,.sp-pop-cancel{font-family:var(--mono);font-size:10px;padding:5px 10px;border-radius:3px;cursor:pointer;
  background:var(--surface2);border:1px solid var(--border2);color:var(--muted)}
.sp-pop-clear:hover{color:var(--red);border-color:var(--red)}
.sp-pop-cancel:hover{color:var(--text)}

/* Bulk-Selektion: schwebende Action-Bar */
.sp-action-bar{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:900;
  background:var(--surface);border:1px solid var(--accent);border-radius:8px;
  padding:10px 14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;
  box-shadow:0 14px 36px rgba(0,0,0,.6);font-family:var(--mono);font-size:11px;animation:fadeIn .15s}
.sp-ab-info{color:var(--accent);letter-spacing:.04em}
.sp-ab-info b{color:var(--text);font-weight:700}
.sp-ab-label{color:var(--muted);display:flex;align-items:center;gap:6px}
.sp-ab-select{background:var(--bg);border:1px solid var(--border2);color:var(--text);
  font-family:var(--mono);font-size:11px;padding:6px 8px;border-radius:4px;outline:none}
.sp-ab-select:focus{border-color:var(--accent)}
.sp-ab-apply,.sp-ab-cancel{font-family:var(--mono);font-size:11px;letter-spacing:.04em;padding:7px 14px;border-radius:4px;cursor:pointer;border:none;font-weight:700}
.sp-ab-apply{background:var(--accent);color:#000}.sp-ab-apply:hover{background:var(--accent-h)}
.sp-ab-cancel{background:var(--surface2);color:var(--muted);border:1px solid var(--border2)}.sp-ab-cancel:hover{color:var(--text)}
@media(max-width:600px){
  .sp-action-bar{left:8px;right:8px;bottom:12px;transform:none;gap:8px;padding:8px 10px}
  .sp-ab-info,.sp-ab-label{flex:1 1 100%}
}

/* Excel-Paste-Modal */
.sp-modal-box{width:680px;max-width:95%}
.sp-modal-hint{font-size:11px;color:var(--muted);line-height:1.5;margin-bottom:10px}
.sp-modal-hint code{background:var(--surface2);padding:1px 5px;border-radius:3px;color:var(--accent);font-family:var(--mono);font-size:10px}
.sp-paste-text{width:100%;background:var(--bg);border:1px solid var(--border2);color:var(--text);
  font-family:var(--mono);font-size:11px;padding:8px;border-radius:4px;outline:none;resize:vertical;min-height:160px;margin-bottom:8px;line-height:1.4}
.sp-paste-text:focus{border-color:var(--accent)}
.sp-paste-preview{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:8px 10px;margin-bottom:12px;min-height:30px;font-size:11px}

@media(max-width:600px){
  .sp-toolbar{gap:6px}
  .sp-nav{gap:4px}
  .sp-btn{padding:6px 8px;font-size:9px}
  .sp-rowhead-empty,.sp-rowhead{min-width:90px}
  .sp-cell{min-width:40px}
  .sp-modal-box{width:100%}
  .sp-pop-grid{grid-template-columns:repeat(4,1fr)}
}

/* ── Wareneingänge (Task #2): Badge + Modal mit Liste & CSS-Balken-Chart ───── */
.ware-badge{background:var(--green)}
.ware-badge:hover{background:var(--green);filter:brightness(1.15)}
.we-chart-box{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin-bottom:12px}
.we-chart-title{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}
.we-chart{display:flex;align-items:flex-end;gap:5px}
.we-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}
.we-bar-val{font-family:var(--mono);font-size:9px;color:var(--muted);line-height:1;height:11px}
.we-bar-track{height:64px;width:100%;display:flex;align-items:flex-end;justify-content:center}
.we-bar{width:62%;max-width:22px;min-height:2px;background:var(--accent);border-radius:2px 2px 0 0;transition:height .3s}
.we-bar-lbl{font-family:var(--mono);font-size:8px;color:var(--muted);letter-spacing:.02em;white-space:nowrap}
.we-list{display:flex;flex-direction:column;gap:4px}
.we-row{display:flex;gap:10px;align-items:flex-start;background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:8px 10px}
.we-row-neu{border-color:var(--accent)}
.we-ic{font-size:16px;flex-shrink:0;line-height:1.2}
.we-main{flex:1;min-width:0}
.we-bez{font-size:13px;color:var(--text);font-weight:500;word-break:break-word}
.we-menge{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--green);margin-left:4px}
.we-neu{font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.06em;color:var(--accent);
  border:1px solid var(--accent);border-radius:3px;padding:1px 5px;margin-left:6px;vertical-align:middle}
.we-meta{font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:2px;word-break:break-word}

/* ── Audit-Updates „Gelesen"-Button (Task #3) ──────────────────────────────── */
.audit-ack-btn{margin-left:auto;align-self:flex-start;flex-shrink:0;font-family:var(--mono);font-size:9px;
  letter-spacing:.04em;padding:4px 9px;border-radius:3px;border:1px solid var(--border2);
  background:var(--surface);color:var(--muted);cursor:pointer;transition:all .15s;white-space:nowrap}
.audit-ack-btn:hover{border-color:var(--green);color:var(--green)}
.audit-ack-all-btn{font-family:var(--mono);font-size:9px;letter-spacing:.04em;padding:4px 10px;border-radius:3px;
  border:1px solid var(--border2);background:var(--surface);color:var(--muted);cursor:pointer;transition:all .15s;white-space:nowrap}
.audit-ack-all-btn:hover{border-color:var(--green);color:var(--green)}
.audit-arch-badge{font-size:10px;opacity:.8;cursor:help}

/* ── Maschinen-Tab (Task #5) ───────────────────────────────────────────────── */
.ma-list{display:flex;flex-direction:column;gap:8px}
.ma-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.ma-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ma-name{font-size:14px;font-weight:600;color:var(--text);flex:0 1 auto;word-break:break-word}
.ma-id{font-family:var(--mono);font-size:9px;color:var(--muted);background:var(--bg);padding:1px 6px;border-radius:3px}
.ma-etcount{font-family:var(--mono);font-size:10px;color:var(--muted);background:var(--surface2);
  border:1px solid var(--border2);padding:1px 7px;border-radius:3px;white-space:nowrap}
.ma-actions{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.ma-actions .fbtn{padding:4px 9px}
.ma-del-btn{color:var(--red) !important;border-color:var(--border2)}
.ma-del-btn:hover{border-color:var(--red) !important;background:#2a0000}
.ma-meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.ma-field{font-family:var(--mono);font-size:11px;color:var(--text)}
.ma-field .ma-k{color:var(--muted);letter-spacing:.04em;margin-right:3px}
.ma-email{font-family:var(--mono);font-size:11px;text-decoration:none}
.ma-notiz{font-size:11px;color:var(--muted);font-style:italic;border-top:1px dashed var(--border);padding-top:6px;word-break:break-word}
.ma-id-label{font-family:var(--mono);font-size:10px;color:var(--muted);background:var(--bg);
  padding:6px 10px;border-radius:3px;margin-bottom:10px;border-left:2px solid var(--accent)}

/* ── Teil-Lieferung / Wareneingang buchen (Task #11) ───────────────────────── */
.best-teil-badge{display:inline-block;font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.06em;
  background:rgba(224,123,42,.18);color:var(--accent);border:1px solid var(--accent);
  padding:1px 5px;border-radius:3px;vertical-align:middle}
.lf-info{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:10px 12px;margin-bottom:12px}
.lf-bez{font-weight:600;font-size:14px;color:var(--text);margin-bottom:3px;word-break:break-word}
.lf-meta{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.02em}
.lf-meta b{color:var(--accent)}
.lf-mode{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.lf-radio{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;color:var(--text);cursor:pointer}
.lf-radio input[type="radio"]{accent-color:var(--accent);cursor:pointer;margin:0}
.lf-teil-row{margin-bottom:4px}
