:root{--bg:#f4f6f8;--card:#fff;--ink:#17202a;--muted:#667085;--line:#e4e7ec;--accent:#19324d;--accent2:#315d87;--ok:#0f7b4d;--warn:#a45c00;--err:#b42318;--shadow:0 10px 32px rgba(16,24,40,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Segoe UI,Arial,sans-serif}.shell{max-width:1120px;margin:0 auto;padding:42px 24px 70px}.shell.wide{max-width:1500px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--accent2);margin-bottom:8px}.topbar h1{font-size:34px;line-height:1.05;margin:0 0 8px}.topbar p{margin:0;color:var(--muted);font-size:16px}.badge{background:#eaf1f7;border:1px solid #cbd8e4;color:var(--accent);padding:9px 13px;border-radius:999px;font-weight:700;font-size:13px;white-space:nowrap}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:28px;margin-bottom:20px}.card section+section{border-top:1px solid var(--line);margin-top:26px;padding-top:26px}h2{margin:0 0 16px;font-size:18px}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}label{font-weight:700;font-size:13px}input[type=text],input:not([type]){width:100%}.grid label input{display:block;width:100%;margin-top:7px;border:1px solid #d0d5dd;border-radius:9px;padding:10px 11px;font:inherit}.upload{border:1.5px dashed #b9c4cf;border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:7px;background:#fafbfc}.upload span{font-size:15px}.upload small,.switch-line small,.hint,.privacy{color:var(--muted);font-weight:400;line-height:1.45}.upload input{margin-top:8px}.choice-row{display:flex;gap:14px;flex-wrap:wrap}.choice-row label{padding:9px 13px;border:1px solid var(--line);border-radius:9px;background:#fafafa}.switches{display:grid;gap:10px}.switch-line{display:grid;grid-template-columns:auto 230px 1fr;align-items:center;gap:10px;padding:8px 0}.switch-line input{width:17px;height:17px}.switch-line span{font-size:14px}.hint{font-size:13px;margin:11px 0 0}details{margin-top:16px;border-top:1px solid var(--line);padding-top:14px;color:var(--muted)}summary{cursor:pointer;font-weight:700;color:var(--ink)}.inline-field{display:block;margin-top:12px}.inline-field input{margin-left:12px}.actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:28px}.button,button{border:0;border-radius:10px;padding:11px 17px;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px}.primary{background:var(--accent);color:#fff}.secondary{background:#fff;color:var(--accent);border:1px solid #cbd5df}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.info-grid div{display:flex;flex-direction:column;gap:7px}.info-grid span{color:var(--muted);font-size:13px;line-height:1.45}.alert{padding:14px 16px;border-radius:10px;margin-bottom:18px}.alert.error{background:#fff0ee;color:var(--err);border:1px solid #f7c4bf}.overlay{display:none;position:fixed;inset:0;background:rgba(244,246,248,.92);backdrop-filter:blur(3px);z-index:10;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--accent)}.overlay.show{display:flex}.overlay span{color:var(--muted);font-size:13px}.spinner{width:44px;height:44px;border:4px solid #d7e0e8;border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:0 0 20px}.metrics div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px 18px;display:flex;flex-direction:column;gap:4px}.metrics span{font-size:12px;color:var(--muted);font-weight:700}.metrics strong{font-size:26px}.metrics .danger strong{color:var(--err)}.download-card{background:var(--accent);color:white;border-radius:16px;padding:22px 26px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;gap:20px}.download-card div{display:flex;flex-direction:column;gap:5px}.download-card span{opacity:.78;font-size:13px}.download-card .primary{background:white;color:var(--accent)}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-head h2{margin:0}.section-head span{color:var(--muted);font-size:13px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:1100px;font-size:13px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafbfc;position:sticky;top:0}.num{text-align:right;font-variant-numeric:tabular-nums}.status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.03em}.status.ok{background:#e7f6ef;color:var(--ok)}.status.warning{background:#fff4e5;color:var(--warn)}.status.error{background:#fff0ee;color:var(--err)}.message{max-width:420px;color:var(--muted);line-height:1.4}.log{margin:0;padding-left:20px;color:var(--muted);font-size:13px;line-height:1.6}.error-list{color:var(--err)}.footnote{font-size:13px;color:var(--muted)}.footnote strong{color:var(--ink)}.footnote p{margin:8px 0 0;line-height:1.55}code{background:#eef1f4;color:#344054;padding:2px 5px;border-radius:5px}@media(max-width:900px){.grid.two,.grid.four,.info-grid,.metrics{grid-template-columns:1fr}.switch-line{grid-template-columns:auto 1fr}.switch-line small{grid-column:2}.topbar,.actions,.download-card{flex-direction:column;align-items:flex-start}}

/* v1.2 Live-Terminal */
.terminal-card{padding:0;overflow:hidden;border-color:#202a36;background:#0d1117;box-shadow:0 14px 36px rgba(8,15,25,.18)}
.terminal-head{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 18px;border-bottom:1px solid #273140;background:#111821;color:#e6edf3}
.terminal-title{font-size:14px;font-weight:800;letter-spacing:.02em}.terminal-subtitle{font-size:11px;color:#8b98a8;margin-top:3px}
.terminal-state{display:flex;align-items:center;gap:8px;color:#8b98a8;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.terminal-dot{width:8px;height:8px;border-radius:50%;background:#667085;box-shadow:0 0 0 3px rgba(102,112,133,.12)}
.terminal-state.running{color:#e3b341}.terminal-state.running .terminal-dot{background:#e3b341;box-shadow:0 0 0 3px rgba(227,179,65,.14);animation:terminalPulse 1.2s ease-in-out infinite}
.terminal-state.done{color:#3fb950}.terminal-state.done .terminal-dot{background:#3fb950;box-shadow:0 0 0 3px rgba(63,185,80,.14)}
.terminal-state.error{color:#f85149}.terminal-state.error .terminal-dot{background:#f85149;box-shadow:0 0 0 3px rgba(248,81,73,.14)}
@keyframes terminalPulse{50%{opacity:.35}}
.terminal-output{margin:0;padding:18px;min-height:230px;max-height:520px;overflow:auto;background:#0d1117;color:#c9d1d9;font-family:Consolas,"Cascadia Mono","Courier New",monospace;font-size:12px;line-height:1.62;white-space:pre-wrap;word-break:break-word;tab-size:2}
.terminal-card.active{outline:2px solid rgba(49,93,135,.32);outline-offset:2px}.terminal-result{padding:0;overflow:hidden;background:#0d1117;border-color:#202a36}
.terminal-result>summary{padding:16px 18px;background:#111821;color:#e6edf3;border-bottom:1px solid #273140;list-style-position:inside;font-size:13px}
.terminal-result .result-log{min-height:180px;max-height:640px}.actions button:disabled{opacity:.55;cursor:wait}

.download-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.download-card .download-secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.55)}.download-card .download-secondary:hover{background:rgba(255,255,255,.08)}@media(max-width:900px){.download-actions{justify-content:flex-start}}

/* v1.7 integrierter XLSX → ZIP Schritt */
.wizard-hidden{display:none!important}.wizard-heading{margin-bottom:16px}.wizard-heading h2{margin:0}.button.compact,button.compact{padding:8px 12px;font-size:12px}
.splitter-intro{margin:-7px 0 22px}.folder-field{margin-bottom:18px}.folder-field>label{display:block;margin-bottom:7px;font-size:13px}.folder-row{display:flex;gap:10px;align-items:stretch}.folder-display{flex:1;min-width:0;border:1px solid #d0d5dd;border-radius:9px;padding:11px 12px;background:#fafbfc;color:#344054;font-size:14px;display:flex;align-items:center}.folder-button{white-space:nowrap;min-width:158px}.splitter-settings{margin-top:22px}.splitter-settings label input{display:block;width:100%;margin-top:7px;border:1px solid #d0d5dd;border-radius:9px;padding:10px 11px;font:inherit}.splitter-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.splitter-actions .next-step{margin-left:auto}.splitter-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.splitter-metrics>div{background:#fafbfc;border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.splitter-metrics span{color:var(--muted);font-size:11px}.splitter-metrics strong{font-size:23px}.split-progress{height:11px;background:#e7ebef;border-radius:999px;overflow:hidden;margin:16px 0 4px}.split-progress>div{height:100%;width:0;background:var(--accent2);transition:width .15s}.folder-button:disabled,.splitter-actions button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:900px){.folder-row{flex-direction:column}.folder-button{width:100%}.splitter-actions .next-step{margin-left:0}.splitter-metrics{grid-template-columns:1fr}}

/* v1.9 direkter XLSX-Ordner → ZENT Batch-Lauf */
.folder-upload{gap:9px}.folder-pick{align-self:flex-start;margin-top:6px}.selected-folder{border:1px solid #d0d5dd;border-radius:9px;background:#fff;padding:10px 11px;color:#344054;font-weight:500;min-height:39px}.folder-count{font-size:12px;color:var(--muted);font-weight:600}.batch-note{margin-top:24px;padding:13px 15px;border:1px solid #cbd8e4;border-radius:11px;background:#f5f9fc;display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45}.batch-note strong{color:var(--accent);white-space:nowrap}.batch-note span{color:var(--muted)}
@media(max-width:900px){.batch-note{flex-direction:column}.batch-note strong{white-space:normal}}
/* ALL-INKL Webversion */
#serverAlert { margin-bottom: 18px; }
#resultCard .metrics { margin: 18px 0; }
#resultCard .download-card { margin: 0 0 22px; }
#resultCard .table-wrap { margin-top: 8px; }
