:root{--bg:#eef2f7;--glass:rgba(255,255,255,0.72);--glass-border:rgba(0,0,0,0.1);--glass-shadow:0 8px 32px rgba(31,38,135,0.08);--ink:#1e293b;--muted:#94a3b8;--line:#e2e8f0;--accent:#2f3e8b;--accent-light:rgba(47,62,139,0.08);--input-bg:rgba(255,255,255,0.6);--input-border:rgba(0,0,0,0.08);--header-bg:#2f3e8b}
[data-theme="dark"]{--bg:#1e293b;--glass:rgba(51,65,85,0.8);--glass-border:rgba(255,255,255,0.12);--glass-shadow:0 8px 32px rgba(0,0,0,0.3);--ink:#f1f5f9;--muted:#94a3b8;--line:rgba(255,255,255,0.1);--accent:#818cf8;--accent-light:rgba(129,140,248,0.12);--input-bg:rgba(255,255,255,0.08);--input-border:rgba(255,255,255,0.15);--header-bg:#1e2a5e}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);height:100vh;display:flex;flex-direction:column;overflow:hidden}

.header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;margin:12px 16px 0;height:56px;border-radius:14px;background:var(--header-bg);color:#fff;box-shadow:0 4px 20px rgba(47,62,139,0.3);flex-shrink:0;z-index:20}
.title{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:700;color:#fff}
.title img{height:28px;width:auto;filter:brightness(0) invert(1)}
.controls{display:flex;align-items:center;gap:12px}
.theme-switch{position:relative;width:50px;height:26px;display:inline-block}
.theme-switch input{display:none}
.slider-btn{position:absolute;inset:0;background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.2);border-radius:26px;cursor:pointer;transition:.3s}
input:checked+.slider-btn{background:rgba(0,0,0,0.25)}
.knob{position:absolute;height:20px;width:20px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:.3s;display:flex;align-items:center;justify-content:center;color:#f59e0b;box-shadow:0 1px 4px rgba(0,0,0,0.2)}
.knob svg{width:12px;height:12px}
input:checked+.slider-btn .knob{transform:translateX(24px);background:#334155;color:#a78bfa}
.kalk-toggle{position:relative;display:flex;background:rgba(0,0,0,0.3);border-radius:10px;margin-left:12px;height:32px;padding:3px}
.kalk-toggle-btn{position:relative;z-index:2;background:none;border:none;color:rgba(255,255,255,0.35);font-size:12px;font-weight:700;padding:0 18px;cursor:pointer;transition:color .25s;white-space:nowrap;letter-spacing:.3px}
.kalk-toggle-btn.active{color:#fff}
.kalk-toggle-slider{position:absolute;top:3px;left:3px;width:calc(50% - 3px);height:calc(100% - 6px);background:rgba(255,255,255,0.18);border-radius:8px;transition:left .3s cubic-bezier(.34,1.56,.64,1);z-index:1;box-shadow:0 2px 8px rgba(0,0,0,0.15)}

#loader-overlay{position:absolute;inset:0;background:var(--bg);display:flex;justify-content:center;align-items:center;z-index:9999;transition:opacity .5s}
.loader-text{font-weight:600;letter-spacing:1px;font-size:14px;background:linear-gradient(90deg,var(--muted) 0%,var(--muted) 40%,var(--accent) 50%,var(--muted) 60%,var(--muted) 100%);background-size:300% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 2.5s infinite linear}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}

#content{flex:1;padding:12px 16px 16px;overflow:hidden;display:flex;flex-direction:column;gap:10px;min-height:0}
.layout-cols{display:grid;grid-template-columns:1.15fr 0.85fr;gap:14px;flex:1;min-height:0}
.layout-left{display:flex;flex-direction:column;gap:12px;min-height:0;overflow-y:auto;padding-right:4px}
.layout-left::-webkit-scrollbar{width:6px}
.layout-left::-webkit-scrollbar-track{background:transparent}
.layout-left::-webkit-scrollbar-thumb{background:var(--muted);border-radius:6px;opacity:.5}
.layout-left::-webkit-scrollbar-thumb:hover{background:var(--accent)}
.layout-right{display:flex;flex-direction:column;min-height:0}

.card{background:var(--glass);border:1px solid var(--glass-border);border-radius:14px;box-shadow:var(--glass-shadow);backdrop-filter:blur(12px);overflow:hidden;flex-shrink:0}
.card-header{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:11px;font-weight:700;color:var(--accent);border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(180deg,var(--accent-light) 0%,transparent 100%)}
.card-header i{font-size:14px;opacity:.7}

.card-section{padding:13px 14px 14px;padding-left:18px;border-bottom:2px solid rgba(47,62,139,0.22);transition:background .35s ease,box-shadow .35s ease;position:relative;background:linear-gradient(180deg,rgba(47,62,139,0.03) 0%,transparent 100%);box-shadow:inset 3px 0 0 rgba(47,62,139,0.45)}
.card-section:nth-child(odd){background:linear-gradient(180deg,rgba(47,62,139,0.045) 0%,transparent 100%)}
.card-section:hover{background:linear-gradient(180deg,rgba(47,62,139,0.07) 0%,rgba(47,62,139,0.02) 100%);box-shadow:inset 4px 0 0 var(--accent)}
.card-section:focus-within{background:linear-gradient(180deg,rgba(47,62,139,0.09) 0%,rgba(47,62,139,0.03) 100%);box-shadow:inset 4px 0 0 var(--accent)}
.card-section:hover .section-label,.card-section:focus-within .section-label{transform:translateX(2px)}
[data-theme="dark"] .card-section{background:linear-gradient(180deg,rgba(129,140,248,0.05) 0%,transparent 100%);box-shadow:inset 3px 0 0 rgba(129,140,248,0.5);border-bottom-color:rgba(129,140,248,0.28)}
[data-theme="dark"] .card-section:nth-child(odd){background:linear-gradient(180deg,rgba(129,140,248,0.07) 0%,transparent 100%)}
[data-theme="dark"] .card-section:hover{background:linear-gradient(180deg,rgba(129,140,248,0.1) 0%,rgba(129,140,248,0.03) 100%);box-shadow:inset 4px 0 0 var(--accent)}
.card-section:last-child{border-bottom:none}
.section-label{font-size:9px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px;display:flex;align-items:center;gap:5px;transition:transform .25s ease}
.section-label i{font-size:12px;opacity:.7}

.plz-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.plz-input{width:56px;padding:5px 4px;font-size:18px;font-weight:800;border:1.5px solid var(--input-border);border-radius:8px;outline:none;text-align:center;background:var(--input-bg);color:var(--ink);transition:all .2s;letter-spacing:2px}
.plz-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(47,62,139,0.12);background:rgba(255,255,255,0.9)}
[data-theme="dark"] .plz-input:focus{background:rgba(255,255,255,0.08)}
.plz-result{display:none;gap:8px}
.plz-result[style*="display:flex"]{display:flex!important}
.plz-badge{border-radius:7px;padding:3px 8px;display:flex;flex-direction:column;align-items:center;gap:0}
.plz-badge-vk{background:var(--accent-light)}
.plz-badge-ek{background:var(--input-bg);border:1px solid var(--input-border)}
.plz-badge-label{font-size:8px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.plz-badge-val{font-size:12px;font-weight:800}
.plz-badge-vk .plz-badge-val{color:var(--accent)}
.plz-badge-ek .plz-badge-val{color:var(--muted)}
.plz-error{color:#ef4444;font-size:11px;font-weight:600}
.plz-map-btn{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--accent);font-weight:600;padding:5px 10px;border-radius:7px;background:var(--accent-light);border:1px solid var(--accent);cursor:pointer;transition:all .2s;white-space:nowrap}
.plz-map-btn:hover{background:var(--accent);color:#fff}

.masch-vertical{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;align-items:center}
.masch-chip{display:flex;align-items:center;gap:4px;min-width:0}
.masch-chip input{flex:1;min-width:0;width:100%;padding:5px 8px;font-size:12px;font-weight:600;border:1px solid var(--input-border);border-radius:7px;outline:none;background:var(--input-bg);color:var(--ink);transition:all .2s;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace;letter-spacing:.5px}
.masch-chip input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(47,62,139,0.12);background:rgba(255,255,255,0.95)}
[data-theme="dark"] .masch-chip input:focus{background:rgba(255,255,255,0.08)}
.masch-chip input::placeholder{color:#cbd5e1;font-weight:400;letter-spacing:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:12px}
.masch-chip .m-search{width:26px;height:26px;border-radius:6px;border:1px solid var(--accent);background:var(--accent-light);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.masch-chip .m-search:hover{background:var(--accent);color:#fff}
.masch-chip .m-search svg{width:14px;height:14px}
.masch-chip .m-search.loading{pointer-events:none;opacity:.6}
.masch-chip .m-search.loading svg{animation:spin .8s linear infinite}
.masch-chip .m-remove{width:24px;height:24px;border-radius:6px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;font-size:13px;line-height:1}
.masch-chip .m-remove:hover{background:rgba(239,68,68,0.1);color:#ef4444}
.masch-add-inline{width:100%;height:30px;border-radius:8px;border:1.5px dashed var(--accent);background:var(--accent-light);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:16px;font-weight:400;line-height:1}
.masch-add-inline:hover{background:var(--accent);color:#fff}
.masch-footer{display:flex;align-items:center;margin-top:4px;grid-column:1/-1}
.masch-footer .masch-count{font-size:10px;color:var(--muted);font-weight:600}

.kunde-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.kunde-search-row{display:flex;gap:6px;align-items:center}
.kunde-input{width:130px;padding:6px 10px;font-size:13px;font-weight:700;border:1.5px solid var(--input-border);border-radius:7px;outline:none;background:var(--input-bg);color:var(--ink);transition:all .2s;font-family:ui-monospace,monospace;letter-spacing:.5px}
.kunde-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(47,62,139,0.12);background:rgba(255,255,255,0.95)}
[data-theme="dark"] .kunde-input:focus{background:rgba(255,255,255,0.08)}
.kunde-input::placeholder{color:#cbd5e1;font-weight:400;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:12px}
.kunde-info{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink);font-weight:500;min-height:20px;flex-wrap:wrap}
.kunde-info .kunde-name{font-weight:700;color:var(--accent)}
.kunde-info .kunde-ort{color:var(--muted)}
.kunde-search-btn{width:30px;height:30px;border-radius:7px;border:1px solid var(--accent);background:var(--accent-light);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.kunde-search-btn:hover{background:var(--accent);color:#fff}
.kunde-search-btn svg{width:14px;height:14px}

.kunde-warn{display:flex;align-items:center;gap:6px;padding:4px 12px;background:rgba(245,158,11,0.1);border:1px solid rgba(245,158,11,0.25);border-radius:8px;font-size:12px;font-weight:600;color:#b45309;cursor:pointer;transition:all .2s}
.kunde-warn:hover{background:rgba(245,158,11,0.2)}
.kunde-warn i{font-size:13px}
.kunde-ok{display:flex;align-items:center;gap:6px;padding:4px 12px;background:rgba(16,185,129,0.08);border:1px solid rgba(16,185,129,0.2);border-radius:8px;font-size:12px;font-weight:600;color:#059669}
.kunde-ok i{font-size:13px}

.abw-toggle{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:12px;font-weight:600;color:var(--ink);cursor:pointer}
.abw-toggle i{font-size:14px;color:var(--accent);opacity:.7}
.abw-toggle input{display:none}
.abw-toggle .toggle-track{width:36px;height:20px;border-radius:10px;background:var(--input-border);position:relative;flex-shrink:0;transition:background .2s;cursor:pointer}
.abw-toggle input:checked+.toggle-track{background:var(--accent)}
.abw-toggle .toggle-thumb{width:16px;height:16px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,0.15)}
.abw-toggle input:checked+.toggle-track .toggle-thumb{left:18px}
.abw-fields{display:none;padding:8px 12px;gap:8px;flex-wrap:wrap;align-items:end;background:var(--accent-light);margin-top:6px;border-radius:8px}
.abw-fields.active{display:flex}
.abw-fields .abw-field{display:flex;flex-direction:column}
.abw-fields .abw-field label{font-size:8px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px}
.abw-fields .abw-field label{color:var(--muted)}
.abw-fields .abw-field{position:relative}
.abw-fields .abw-field input{padding:5px 8px;font-size:12px;font-weight:500;border:1px solid var(--input-border);border-radius:6px;outline:none;background:var(--input-bg);color:var(--ink);transition:all .2s;width:180px}
.abw-fields .abw-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(47,62,139,0.12)}
.abw-save-btn{padding:5px 12px;font-size:11px;font-weight:700;color:#fff;background:var(--accent);border:none;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:4px;height:28px}
.abw-save-btn:hover{background:#1e2d6e}
.abw-save-btn.saved{background:#059669}

.masch-modal-body{flex:1;overflow-y:auto;padding:16px}
.masch-history-table{width:100%;border-collapse:collapse;font-size:13px}
.masch-history-table th{padding:10px 12px;text-align:left;font-size:11px;font-weight:700;color:#fff;background:var(--accent);text-transform:uppercase;letter-spacing:.5px}
.masch-history-table th:first-child{border-radius:8px 0 0 0}
.masch-history-table th:last-child{border-radius:0 8px 0 0}
.masch-history-table td{padding:9px 12px;border-bottom:1px solid var(--line);color:var(--ink);font-size:13px}
.masch-history-table td:last-child{text-align:center}
.masch-history-table tr:last-child td{border-bottom:none}
.masch-history-table tr:hover td{background:var(--accent-light)}
.masch-history-empty{padding:32px 16px;text-align:center;color:var(--muted);font-size:13px}
.masch-history-empty i{display:block;font-size:32px;margin-bottom:8px;opacity:.25}
.vg-badge{font-family:ui-monospace,SFMono-Regular,monospace;font-size:10px;font-weight:700;padding:2px 6px;background:var(--accent-light);color:var(--accent);border-radius:4px;white-space:nowrap}

.field-label{display:block;font-size:9px;color:var(--muted);font-weight:600;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}

.anlagen-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.anlage-group{border-right:1px solid var(--line)}
.anlage-group:last-child{border-right:none}
.anlage-group-header{padding:7px 12px;font-size:11px;font-weight:800;color:var(--ink);text-transform:uppercase;letter-spacing:.4px;background:var(--accent-light);border-left:3px solid;border-bottom:1px solid var(--line)}
.anlage-row{display:grid;grid-template-columns:1fr 30px 48px 38px;align-items:center;padding:3px 10px;border-bottom:1px solid var(--line);gap:4px}
.anlage-row:last-child{border-bottom:none}
.anlage-label{font-size:11px;color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.anlage-zeit{font-size:9px;color:var(--muted);text-align:center;font-weight:600}
.anlage-input{width:100%;padding:5px 2px;font-size:15px;font-weight:700;border:1px solid var(--input-border);border-radius:8px;text-align:center;outline:none;background:var(--input-bg);color:var(--ink);transition:all .2s;backdrop-filter:blur(4px)}
.anlage-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(47,62,139,0.1);background:rgba(255,255,255,0.9)}
[data-theme="dark"] .anlage-input:focus{background:rgba(255,255,255,0.1)}
.anlage-stunden{font-size:12px;color:var(--ink);text-align:right;font-weight:700}

.stunden-bar{display:flex;align-items:center;justify-content:center;gap:18px;padding:8px 16px;background:var(--accent-light);border-top:1px solid var(--line)}
.stunden-item{display:flex;flex-direction:column;align-items:center}
.stunden-label{font-size:8px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.stunden-value{font-size:20px;font-weight:800;color:var(--accent)}
.stunden-divider{width:1px;height:24px;background:var(--line)}
.modus-badge{font-size:12px;font-weight:700;padding:4px 12px;border-radius:20px;margin-top:1px}
.modus-kurz{background:var(--accent-light);color:var(--accent)}
.modus-lang{background:rgba(245,158,11,0.12);color:#b45309}
[data-theme="dark"] .modus-lang{background:rgba(245,158,11,0.15);color:#fcd34d}

.mobil-rabatt-badge{display:none;align-items:center;gap:6px;padding:5px 12px;background:rgba(239,68,68,0.08);border:1px solid rgba(239,68,68,0.2);border-radius:8px;font-size:11px;font-weight:600;color:#ef4444;margin-left:8px}
.mobil-rabatt-badge.active{display:flex}

.result-card{background:var(--glass);border:2px solid var(--accent);border-radius:14px;box-shadow:0 8px 32px rgba(47,62,139,0.1);backdrop-filter:blur(12px);overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0}
[data-theme="dark"] .result-card{border-color:var(--accent);box-shadow:0 8px 32px rgba(129,140,248,0.08)}
.result-header{background:var(--header-bg);padding:10px 16px;display:flex;justify-content:space-between;align-items:center}
.result-title{color:#fff;font-size:13px;font-weight:700}
.result-subtitle{color:rgba(255,255,255,0.7);font-size:13px;font-weight:600}
.result-body{flex:1;overflow-y:auto;min-height:0}
.result-table-head{display:grid;grid-template-columns:16px 0.6fr 1fr 1fr 16px;padding:5px 16px;background:var(--accent-light);border-bottom:1px solid var(--line)}
.result-col-vk,.result-col-ek{text-align:right;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:0.5px}
.result-col-vk{color:var(--accent)}
.result-col-ek{color:var(--muted)}
.result-row{display:grid;grid-template-columns:16px 0.6fr 1fr 1fr 16px;padding:4px 16px;border-bottom:1px solid var(--line);transition:opacity .2s}
.result-row.dimmed{opacity:.45}
.result-row.rabatt-row{background:rgba(239,68,68,0.04)}
.result-row-label{font-size:12px;color:var(--muted);font-weight:500}
.result-row-vk{text-align:right;font-size:13px;font-weight:700;color:var(--accent);white-space:nowrap}
.result-row-ek{text-align:right;font-size:13px;font-weight:500;color:var(--muted);white-space:nowrap}
.result-row.rabatt-row .result-row-vk{color:#ef4444}
.result-total{display:grid;grid-template-columns:16px 0.6fr 1fr 1fr 16px;padding:14px 16px;background:var(--accent-light);border-top:2px solid var(--accent);gap:8px;align-items:baseline}
.result-total-label{font-size:13px;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}
.result-total-vk{text-align:right;font-size:16px;font-weight:900;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result-total-ek{text-align:right;font-size:16px;font-weight:900;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.result-zuschlaege{padding:10px 16px 6px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--accent-light) 0%,transparent 100%);display:flex;flex-direction:column;gap:4px}
.zuschlag-row{display:flex;align-items:center;gap:10px;cursor:pointer;padding:4px 2px;border-radius:8px;transition:background .2s}
.zuschlag-row:hover{background:rgba(47,62,139,0.05)}
.zuschlag-label{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.zuschlag-name{font-size:12px;font-weight:700;color:var(--ink);transition:color .2s}
.toggle-input:checked~.zuschlag-label .zuschlag-name{color:var(--accent)}
.zuschlag-meta{font-size:10px;color:var(--muted);font-weight:500}
.zuschlag-info-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.zuschlag-info-btn:hover{background:var(--accent-light);color:var(--accent)}
.zuschlag-info-btn.open{background:var(--accent);color:#fff}
.zuschlag-info-btn i{font-size:13px}
.zuschlag-info{max-height:0;overflow:hidden;padding:0 14px 0 48px;font-size:11px;color:var(--muted);line-height:1.55;transition:max-height .25s ease,padding .25s ease,margin .25s ease}
.zuschlag-info.open{max-height:120px;padding:4px 14px 6px 48px;margin-bottom:4px}

.result-sonstige-bar{border-top:1px solid var(--line);padding:8px 16px}
.sonstige-add-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;font-size:11px;font-weight:600;color:var(--accent);background:var(--accent-light);border:1px dashed var(--accent);border-radius:8px;cursor:pointer;transition:all .2s}
.sonstige-add-btn:hover{background:var(--accent);color:#fff}
.sonstige-add-btn i{font-size:13px}

.toggle-input{display:none}
.toggle-track{width:34px;height:18px;border-radius:9px;background:var(--input-border);position:relative;flex-shrink:0;transition:background .2s}
.toggle-input:checked+.toggle-track{background:var(--accent)}
.toggle-thumb{width:14px;height:14px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,0.15)}
.toggle-input:checked+.toggle-track .toggle-thumb{left:18px}

.service-input-wrap{padding:12px 16px}

@media(max-width:1300px){.layout-cols{grid-template-columns:1fr;overflow:visible;display:flex;flex-direction:column}.anlagen-grid{grid-template-columns:1fr}.anlage-group{border-right:none;border-bottom:1px solid var(--line)}.anlage-group:last-child{border-bottom:none}#content{overflow-y:auto;height:auto}body{overflow:auto;height:auto}.layout-left{overflow:visible;min-height:auto;flex:none}.layout-right{min-height:auto;flex:none}.result-card{flex:none;min-height:auto}.masch-vertical{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){.header{margin:8px;height:auto;padding:10px 14px;flex-wrap:wrap;gap:8px}.title{font-size:14px}.controls{width:100%;justify-content:center}#content{padding:8px}.layout-cols{grid-template-columns:1fr}.masch-vertical{grid-template-columns:1fr}.plz-vg-split{grid-template-columns:1fr}}

.anlage-input-wrap{position:relative;display:flex;align-items:center}
.anlage-input-wrap input{width:100%;padding-right:22px}
.num-btns{position:absolute;right:0;top:0;bottom:0;display:flex;flex-direction:column;width:20px;opacity:0;transition:opacity .2s;pointer-events:none}
.anlage-input-wrap:hover .num-btns{pointer-events:auto;opacity:1}
.num-btn{flex:1;border:none;background:var(--accent-light);color:var(--accent);cursor:pointer;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;transition:background .15s;padding:0;line-height:1}
.num-btn:hover{background:var(--accent);color:#fff}
.num-btn-up{border-radius:0 8px 0 0;border-bottom:1px solid var(--line)}
.num-btn-down{border-radius:0 0 8px 0}
@keyframes spin{100%{transform:rotate(360deg)}}
.icon-btn{width:40px;height:40px;border-radius:50%;border:none;background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;padding:0}
.icon-btn:hover{background:rgba(255,255,255,0.15)}
.icon-btn svg{stroke-width:2;width:20px;height:20px}

@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* ── PLZ + VG Split (nebeneinander) ─────────────────────────────────── */
.plz-vg-split{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;align-items:start}
.plz-col,.vg-col{min-width:0}
.vg-row{display:flex;gap:6px;align-items:center;justify-content:flex-start}
.vg-input{width:90px;padding:7px 8px;font-size:15px;font-weight:700;border:1.5px solid var(--input-border);border-radius:8px;outline:none;background:var(--input-bg);color:var(--ink);transition:all .2s;font-family:ui-monospace,monospace;letter-spacing:1px;text-align:center}
.vg-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(47,62,139,0.12);background:rgba(255,255,255,0.95)}
[data-theme="dark"] .vg-input:focus{background:rgba(255,255,255,0.08)}
.vg-input::placeholder{color:#cbd5e1;font-weight:400;font-family:-apple-system,sans-serif;letter-spacing:0;font-size:12px}
.vg-search-btn{width:32px;height:32px;border-radius:7px;border:1px solid var(--accent);background:var(--accent-light);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.vg-search-btn:hover{background:var(--accent);color:#fff}
.vg-search-btn.loading{pointer-events:none;opacity:.6}
.vg-search-btn.loading i{animation:spin .8s linear infinite}

/* ── VG Statusleiste ───────────────────────────────────────────────── */
.vg-result-bar{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);z-index:9999;justify-content:center;align-items:center;padding:24px}
.vg-result-bar.open{display:flex;animation:fadeIn .25s ease}
@keyframes vg-slide-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.vg-bar-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vg-bar-title{font-weight:700;color:var(--accent);font-size:13px;display:flex;align-items:center;gap:6px}
.vg-bar-title .vg-nr{font-family:ui-monospace,monospace;background:var(--accent);color:#fff;padding:2px 8px;border-radius:5px;font-size:12px}
.vg-bar-kunde{font-weight:600;color:var(--ink)}
.vg-bar-ort{color:var(--muted);font-size:12px}
.vg-bar-status{margin-left:auto;display:flex;align-items:center;gap:6px}
.vg-badge-status{font-size:10px;font-weight:700;padding:3px 8px;border-radius:10px}
.vg-badge-status.offen{color:#b45309;background:rgba(245,158,11,0.15)}
.vg-badge-status.erledigt{color:#059669;background:rgba(16,185,129,0.15)}
.vg-bar-actions{display:flex;gap:4px}
.vg-bar-btn{background:transparent;border:1px solid var(--accent);color:var(--accent);cursor:pointer;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:600;display:flex;align-items:center;gap:4px;transition:all .2s;text-decoration:none}
.vg-bar-btn:hover{background:var(--accent);color:#fff}
.vg-bar-btn.close-btn{padding:3px 7px}
.vg-bar-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px;font-size:11px;color:var(--muted)}
.vg-bar-meta b{color:var(--ink);font-weight:600}
.vg-bar-details{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}
.vg-bar-details.open{display:block}
.vg-detail-section{margin-bottom:8px}
.vg-detail-section:last-child{margin-bottom:0}
.vg-detail-label{font-size:10px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.vg-chips{display:flex;flex-wrap:wrap;gap:5px}
.vg-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;font-size:11px;font-family:ui-monospace,monospace;cursor:pointer;transition:all .2s}
.vg-chip:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}
.vg-chip.assigned{background:rgba(16,185,129,0.1);border-color:#10b981;color:#059669}
.vg-chip .vg-chip-icon{font-size:11px;opacity:.7}
.vg-pos-row{display:grid;grid-template-columns:1.4fr auto auto auto auto;gap:10px;align-items:center;padding:5px 8px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;font-size:11px;margin-bottom:4px}
.vg-pos-row .vg-pos-art{font-weight:600;color:var(--ink)}
.vg-pos-row .vg-pos-menge{font-family:ui-monospace,monospace;color:var(--muted)}
.vg-pos-row .vg-pos-kw{font-family:ui-monospace,monospace;color:var(--accent);font-weight:600}
.vg-pos-diff-tief{color:#b45309}
.vg-pos-diff-voll{color:#059669}
.vg-bar-sum{display:flex;gap:12px;margin-top:6px;padding:6px 10px;background:var(--accent-light);border-radius:6px;font-size:11px;font-weight:600;color:var(--accent)}
.vg-bar-sum b{font-family:ui-monospace,monospace}

/* ── Bestätigungs-Modal (Überschreiben) ─────────────────────────────── */
.vg-confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.vg-confirm-box{background:var(--glass);border:1px solid var(--glass-border);border-radius:14px;padding:20px 24px;max-width:460px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,0.3)}
.vg-confirm-title{font-weight:700;font-size:15px;color:var(--ink);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.vg-confirm-title i{color:#f59e0b;font-size:18px}
.vg-confirm-text{font-size:13px;color:var(--ink);line-height:1.5;margin-bottom:16px;opacity:0.85}
.vg-confirm-text .vg-confirm-field{font-weight:600;color:var(--ink)}
.vg-confirm-actions{display:flex;gap:8px;justify-content:flex-end}
.vg-confirm-btn{padding:8px 16px;font-size:12px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s;border:1px solid var(--input-border);background:var(--input-bg);color:var(--ink)}
.vg-confirm-btn:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}
.vg-confirm-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.vg-confirm-btn.primary:hover{background:#1e2d6e;color:#fff}

@media(max-width:768px){.plz-vg-split{grid-template-columns:1fr}}

/* VG-Modal Subklassen */
.vg-modal-inner{background:var(--glass);border:1px solid var(--glass-border);border-radius:14px;width:880px;max-width:95vw;max-height:88vh;box-shadow:0 20px 60px rgba(0,0,0,0.35);display:flex;flex-direction:column;overflow:hidden}
.vg-modal-header{background:var(--accent);color:#fff;padding:14px 20px}
.vg-modal-header .vg-bar-head{align-items:center;gap:12px}
.vg-modal-header .vg-bar-title{color:#fff;font-size:14px}
.vg-modal-header .vg-bar-title .vg-nr{background:#fff;color:var(--accent)}
.vg-modal-header .vg-bar-kunde{color:#fff;font-size:14px}
.vg-modal-header .vg-bar-ort{color:rgba(255,255,255,0.8);font-size:12px}
.vg-modal-header .vg-bar-status{margin-left:auto;display:flex;align-items:center;gap:10px}
.vg-modal-header .vg-badge-status.offen{background:#fbbf24;color:#7c2d12}
.vg-modal-header .vg-badge-status.erledigt{background:#34d399;color:#064e3b}
.vg-modal-header .vg-bar-btn.close-btn{background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.3);color:#fff;width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:14px}
.vg-modal-header .vg-bar-btn.close-btn:hover{background:rgba(255,255,255,0.25);color:#fff}
.vg-modal-body{padding:16px 20px;overflow-y:auto;flex:1}
.vg-modal-body .vg-bar-meta{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.vg-modal-body .vg-detail-section{margin-bottom:14px}
.vg-modal-footer{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;background:rgba(0,0,0,0.02)}
.vg-modal-footer .vg-confirm-btn{text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.vg-pos-header{background:var(--accent-light) !important;color:var(--accent) !important;font-weight:700 !important;font-size:10px !important;text-transform:uppercase;letter-spacing:.5px}
.vg-pos-header span{color:var(--accent) !important}

/* VG-Statuszeile (rechts vom Lupen-Button) - single-line */
.vg-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;font-size:12px;font-weight:500;font-family:-apple-system,sans-serif;letter-spacing:0;animation:fadeIn .25s ease;flex-wrap:nowrap;white-space:nowrap;max-width:100%;overflow:hidden}
.vg-pill-success{background:rgba(16,185,129,0.08);border:1px solid #10b981;color:#059669}
.vg-pill-error{background:rgba(239,68,68,0.08);border:1px solid #ef4444;color:#dc2626;font-weight:600}
.vg-pill .vg-pill-icon{font-size:14px;flex-shrink:0}
.vg-pill .vg-pill-text{font-weight:600;flex-shrink:0}
.vg-pill .vg-pill-sep{color:var(--muted);flex-shrink:0}
.vg-pill .vg-pill-kunde{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;min-width:0}
.vg-pill .vg-pill-details{cursor:pointer;color:var(--accent);background:transparent;border:1px solid var(--accent);padding:3px 10px;border-radius:6px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;gap:4px;transition:all .15s;flex-shrink:0;font-family:inherit}
.vg-pill .vg-pill-details:hover{background:var(--accent);color:#fff}

/* Statuszeile-Warning + Arrow + Adresse */
.vg-pill-warn{background:rgba(245,158,11,0.12);border:1px solid #f59e0b;color:#b45309;font-weight:600}
.vg-pill-arrow{color:var(--accent);text-decoration:none;font-size:18px;display:inline-flex;align-items:center;padding:0 4px;flex-shrink:0;transition:transform .15s}
.vg-pill-arrow:hover{color:#1e2d6e;transform:translateX(2px)}
.kunde-adresse{font-size:inherit;color:var(--ink);margin-left:8px}

/* Kundenname-Pfeil + Undo-Button + Masch-Footer flex */
.kunde-arrow{color:var(--accent);text-decoration:none;font-size:14px;display:inline-flex;align-items:center;padding:0 6px;flex-shrink:0;transition:transform .15s}
.kunde-arrow:hover{color:#1e2d6e;transform:translateX(2px)}
.masch-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.masch-undo-btn{background:transparent;border:1px solid var(--input-border);color:var(--muted);cursor:pointer;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:500;display:inline-flex;align-items:center;gap:5px;transition:all .15s;font-family:inherit}
.masch-undo-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}

/* === REFRESH-HIGHLIGHT === */
@keyframes refreshHighlight {
  0% { background-color: rgba(252, 211, 77, 0.5); box-shadow: 0 0 0 4px rgba(252, 211, 77, 0.5); }
  100% { background-color: transparent; box-shadow: 0 0 0 0 transparent; }
}
.refresh-changed { animation: refreshHighlight 2.2s ease-out; border-radius: 6px; }
@keyframes toastFadeIn { from { opacity:0; transform:translateX(-50%) translateY(10px); } to { opacity:1; transform:translateX(-50%) translateY(0); } }
.refresh-spinning svg { animation: spin .8s linear infinite; }

/* === SKELETON-LOADING === */
@keyframes skeletonShimmer {
  0% { background-position: -300px 0; }
  100% { background-position: 300px 0; }
}
.skeleton {
  background: linear-gradient(90deg, var(--line) 0%, rgba(255,255,255,0.5) 50%, var(--line) 100%);
  background-size: 600px 100%;
  animation: skeletonShimmer 1.4s infinite;
  border-radius: 6px;
  display: inline-block;
}
[data-theme="dark"] .skeleton {
  background: linear-gradient(90deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.12) 50%, rgba(255,255,255,0.06) 100%);
}
.skeleton-line { height: 12px; margin: 4px 0; }
.skeleton-row { display: flex; gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line); }
.skeleton-cell { flex: 1; height: 14px; }

/* Dark Mode Feinschliff fuer Toasts/Modal-Texte */
[data-theme="dark"] .vg-confirm-text { color: var(--ink); opacity: 0.9; }
[data-theme="dark"] .masch-undo-btn { background: rgba(255,255,255,0.05); }
[data-theme="dark"] .masch-undo-btn:hover { background: var(--accent-light); }


/* === Pflichtfragen Ja/Nein + Vorgang-Button (Wartung) === */
.jn-seg{display:inline-flex;margin-left:auto;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.jn-btn{padding:5px 14px;background:#fff;border:none;font:inherit;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}
.jn-btn + .jn-btn{border-left:1px solid var(--line)}
.jn-btn:hover{background:#f1f5f9}
.jn-btn.jn-on-ja{background:#059669;color:#fff}
.jn-btn.jn-on-nein{background:#dc2626;color:#fff}
.vorgang-bar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 14px 2px 6px}
.vorgang-btn{padding:12px 26px;border:none;border-radius:9px;font:inherit;font-size:15px;font-weight:700;background:#cbd5e1;color:#fff;cursor:not-allowed;display:inline-flex;align-items:center;gap:8px;transition:background .15s,box-shadow .15s}
.vorgang-btn.ready{background:#059669;cursor:pointer;box-shadow:0 4px 14px rgba(5,150,105,.35)}
.vorgang-btn.ready:hover{background:#047857}


/* === Erkannte Anlagen (Wartung, ersetzt die Dauer-Tabelle) === */
.anlagen-erkannt { padding:4px 2px 2px; }
.erk-head { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--accent); padding:2px 2px 10px; display:flex; align-items:center; gap:6px; }
.erk-rows { display:flex; flex-direction:column; gap:6px; }
.erk-row { display:grid; grid-template-columns:1fr auto 64px auto; align-items:center; gap:12px; padding:9px 12px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.erk-label { font-weight:600; color:var(--ink); font-size:13px; }
.erk-zeit { font-size:11px; color:var(--muted); }
.erk-anz { width:56px; padding:6px 8px; border:1px solid var(--line); border-radius:6px; font:inherit; font-size:14px; text-align:center; }
.erk-std { font-size:12px; color:var(--muted); text-align:right; min-width:52px; }
.erk-warn { margin-top:10px; color:#b45309; font-weight:700; font-size:12px; }
.erk-warn-item { color:#b45309; font-size:11px; margin-left:18px; }
.erk-toggle { margin-top:12px; background:none; border:none; color:var(--accent); font:inherit; font-size:12px; font-weight:600; text-decoration:underline; cursor:pointer; padding:0; }
.pflicht-star{color:#dc2626;font-weight:700;margin-left:1px;font-size:15px;line-height:1;vertical-align:middle}
.pflicht-hint{padding:8px 16px 0;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:3px}

.masch-liste{margin-top:8px}
.ml-head{font-size:11px;font-weight:700;color:var(--muted);margin-bottom:4px}
.ml-err{color:#dc2626;margin-left:6px}
.ml-rows{display:flex;flex-wrap:wrap;gap:5px}
.ml-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:8px;background:#f1f5f9;font-size:11px;color:var(--ink);font-family:monospace}
.ml-dup{background:#fee2e2;color:#dc2626;font-weight:700}
.kunde-standort{margin-top:6px;padding:5px 10px;background:#f8fafc;border-left:3px solid var(--accent);border-radius:4px;font-size:11px;color:var(--ink);display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.ks-label{font-weight:700;color:var(--accent)}
.ks-name{font-weight:600}
.ks-adr{color:var(--muted)}
@keyframes resetPulse{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.5)}50%{box-shadow:0 0 0 6px rgba(220,38,38,0)}}
.reset-pulse{animation:resetPulse 1s ease-in-out 3;color:#dc2626!important}

.ml-weg{background:#f1f5f9;color:#94a3b8;text-decoration:line-through;opacity:.75}
.ml-weg-lbl{font-size:11px;color:#94a3b8;font-weight:600;align-self:center;margin-left:4px}
.kunde-grid{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;align-items:baseline;font-size:12px;background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.kg-row{display:contents}
.kg-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.kg-val{color:var(--ink)}
.kg-nr{font-family:ui-monospace,monospace;font-size:11px;color:var(--muted)}
.kunde-name{font-weight:700}
.kunde-arrow{color:var(--accent);font-size:11px;font-weight:600;margin-left:4px}
.anlage-input[readonly],.erk-anz[readonly]{border-color:transparent!important;background:transparent!important;cursor:default;box-shadow:none}

/* i-Icon links neben dem Label */
.zuschlag-row{display:flex;align-items:center}
.zuschlag-info-btn{order:-1;margin-left:0 !important;margin-right:8px}

/* Konsistenz-Konflikt-Markierung */
.afs-field-bad{ border-color:#ef4444 !important; box-shadow:0 0 0 2px rgba(239,68,68,.25) !important; }
.afs-konflikt-warn{ background:rgba(239,68,68,.08); color:#b91c1c; border:1px solid rgba(239,68,68,.4); border-radius:8px; padding:8px 12px; font-size:12px; font-weight:600; display:flex; gap:6px; align-items:center; }
/* VG-Info-Zeile */
.vg-info-line{ display:block; margin-top:10px; font-size:12px; color:var(--ink); line-height:1.45; grid-column:1 / -1; }
.vg-info-line .vgi-row{ display:contents; }
.vg-info-line .vgi-l{ color:var(--muted); font-weight:600; }
.vg-info-line .vgi-ek{ color:#b45309; }
.vg-info-line .vgi-l{ color:var(--muted); font-weight:600; margin-right:4px; }
.vg-info-line .vgi-ek{ color:#b45309; }

/* SN-Modal: Mehrkunden-Badge + letzter-Kunde-Vorschlag */
.sn-multi-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#b45309;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.4);padding:3px 9px;border-radius:12px}
.sn-vorschlag{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:10px 14px;background:var(--accent-light,#eef2ff);border:1px solid var(--accent,#2f3e8b);border-radius:8px}
.sn-vorschlag-txt{font-size:13px;color:var(--ink);display:flex;align-items:center;gap:7px}
.sn-vorschlag-txt i{color:var(--accent,#2f3e8b)}
.sn-vorschlag-btn{flex-shrink:0;padding:7px 14px;font-size:12px;font-weight:700;color:#fff;background:var(--accent,#2f3e8b);border:none;border-radius:7px;cursor:pointer;transition:opacity .15s}
.sn-vorschlag-btn:hover{opacity:.88}

/* SN-Modal: Standort-Auswahl (mehrere Kundennummern) */
.sn-std-box{margin:0 0 14px;padding:12px 14px;background:#fff7ed;border:1px solid #fdba74;border-radius:8px}
.sn-std-head{font-size:13px;font-weight:600;color:#9a3412;display:flex;align-items:flex-start;gap:7px;margin-bottom:8px;line-height:1.4}
.sn-std-head i{color:#ea580c;margin-top:1px}
.sn-std-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:6px;background:#fff;border:1px solid var(--line,#e2e8f0);margin-top:6px}
.sn-std-info{font-size:13px;color:var(--ink)}
.sn-std-meta{display:block;font-size:11px;color:var(--muted);font-family:ui-monospace,monospace;margin-top:1px}
.sn-std-btn{flex-shrink:0;padding:6px 12px;font-size:12px;font-weight:700;color:#fff;background:var(--accent,#2f3e8b);border:none;border-radius:6px;cursor:pointer}
.sn-std-btn:hover{opacity:.88}
.sn-std-aktuell{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#059669;background:rgba(16,185,129,.12);padding:5px 10px;border-radius:6px}

/* SN: neutraler Hinweis (welche SN -> welcher Kunde), kein roter Alarm */
.afs-info{background:var(--accent-light,#eef2ff);border:1px solid var(--line,#e2e8f0);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--ink)}
.afs-info-row{display:flex;align-items:center;gap:7px;padding:2px 0}
.afs-info-row i{color:var(--muted)}
.afs-info-kd{color:var(--muted);font-family:ui-monospace,monospace}

/* X der SN-Zeile ins Eingabekaestchen ruecken */
.masch-chip{position:relative}
.masch-chip input{padding-right:28px}
.masch-chip .m-remove{position:absolute;right:34px;top:50%;transform:translateY(-50%);width:20px;height:20px;font-size:11px;z-index:2}
/* SN-Hinweis-Box: Zeilen klickbar zum Kundenwechsel */
.afs-info-row{display:flex;align-items:center;gap:7px;padding:5px 7px;border-radius:6px;cursor:pointer;transition:background .15s}
.afs-info-row:hover{background:rgba(47,62,139,0.08)}
.afs-info-row.aktiv{cursor:default}
.afs-info-row.aktiv:hover{background:transparent}
.afs-info-pick{margin-left:auto;font-size:10px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.3px}

/* PLZ-Reset X */
.plz-reset-x{width:22px;height:22px;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;line-height:1;align-items:center;justify-content:center;border-radius:6px;flex-shrink:0;margin-left:4px}
.plz-reset-x:hover{background:rgba(239,68,68,0.1);color:#ef4444}
/* Erkannte Anlagen: Tabelle mit Zebra + Kategorie */
.erk-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--accent);margin:2px 0 8px}
.erk-tbl{width:100%;border-collapse:collapse;font-size:13px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.erk-tbl thead th{background:var(--accent-light,#eef2ff);color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:7px 12px;text-align:left}
.erk-tbl th.num{text-align:right}
.erk-tbl td{padding:7px 12px;border-top:1px solid var(--line)}
.erk-tbl tbody tr:nth-child(even){background:rgba(47,62,139,0.04)}
.erk-tbl td.num{text-align:right;font-variant-numeric:tabular-nums}
.erk-name{font-weight:600;color:var(--ink)}
.erk-sum{font-weight:700;color:var(--accent)}
.kat-pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700}
.kat-mobil{background:rgba(59,130,246,0.14);color:#2563eb}
.kat-stationaer{background:rgba(245,158,11,0.16);color:#b45309}
.kat-zentral{background:rgba(16,185,129,0.15);color:#059669}
/* "Ohne Anlagentyp" - getrennt, einklappbar (Default zu) */
.erk-rest{margin-top:14px;border:1px solid #fbbf24;border-radius:8px;background:#fffbeb}
.erk-rest summary{cursor:pointer;list-style:none;padding:9px 12px;font-size:12px;font-weight:700;color:#b45309;display:flex;align-items:center;gap:7px;user-select:none}
.erk-rest summary::-webkit-details-marker{display:none}
.erk-rest summary::after{content:'\25B8';margin-left:auto;transition:transform .15s;font-size:11px}
.erk-rest[open] summary::after{transform:rotate(90deg)}
.erk-rest-body{padding:2px 12px 10px}
.erk-warn-item{color:#92400e;font-size:11px;margin-left:6px;padding:1px 0}


/* ===== Einzelne Bloecke (card-section als abgesetzte Karten) ===== */
.card .card-section{
  background:var(--input-bg,#fff);
  border:1px solid var(--line);
  border-radius:11px;
  margin:10px 12px;
  padding:13px 15px;
  box-shadow:0 1px 3px rgba(15,23,42,0.05);
}
.card .card-section:first-of-type{margin-top:12px}
.card .card-section:last-child{margin-bottom:12px}
.card .card-section:nth-child(odd){background:var(--input-bg,#fff)}
.card .card-section:hover{
  background:var(--input-bg,#fff);
  border-color:rgba(47,62,139,0.35);
  box-shadow:0 3px 10px rgba(47,62,139,0.12);
}
.card .card-section:focus-within{
  background:var(--input-bg,#fff);
  border-color:var(--accent);
  box-shadow:0 3px 12px rgba(47,62,139,0.18);
}
[data-theme="dark"] .card .card-section{
  background:rgba(255,255,255,0.03);
  border-color:rgba(129,140,248,0.28);
  box-shadow:0 1px 3px rgba(0,0,0,0.25);
}
[data-theme="dark"] .card .card-section:hover,
[data-theme="dark"] .card .card-section:focus-within{ border-color:var(--accent) }


/* ===== Feinschliff: dunklere Raender + groessere Blocktitel ===== */
.card .card-section{ border-color:rgba(47,62,139,0.28) }
.card .card-section:hover{ border-color:rgba(47,62,139,0.5) }
[data-theme="dark"] .card .card-section{ border-color:rgba(129,140,248,0.4) }

/* Blocktitel (VG-Nr / Seriennummer / Kunde) groesser und praesenter */
.card-section .section-label{
  font-size:11.5px;
  font-weight:800;
  letter-spacing:.4px;
  color:var(--accent);
  margin-bottom:8px;
}
.card-section .section-label i{ font-size:15px; opacity:.85 }

/* ohne Anlagentyp dezent grau + kompakt */
.erk-rest{ border-color:var(--line) !important; background:var(--input-bg) !important; }
.erk-rest summary{ color:var(--muted) !important; font-weight:600 !important; padding:7px 11px !important; }
.erk-rest summary i{ color:var(--muted) !important; }
.erk-rest .erk-rest-body{ padding:4px 12px 10px !important; display:flex !important; flex-wrap:wrap; gap:2px 18px; }
.erk-rest .erk-warn-item{ color:var(--muted) !important; font-size:11px !important; margin-left:0 !important; }

/* vg-col volle Breite NUR in Wartung (dort PLZ ausgeblendet) -> Dashboard-Link an den Kachelrand */
#wartung-section .vg-col{ grid-column:1 / -1; }

/* VG-Daten: leichte waagerechte Trennlinien (vgi Trennlinien) */
.vg-info-line{ row-gap:0 !important; }
.vg-info-line .vgi-l, .vg-info-line .vgi-v{ border-bottom:1px solid var(--line); padding:5px 0; }

/* Kosten manuell überschreibbar (Wartung/Service) */
.kost-cell{cursor:pointer;border-radius:4px;transition:background .12s}
.kost-cell:hover{background:rgba(47,62,139,0.10)}
.kost-ov{color:var(--accent);font-weight:700}

/* Stift: Kosten-Bearbeitungsmodus (Admin) */
.kost-edit-toggle{background:none;border:none;color:var(--muted);cursor:pointer;font-size:15px;padding:4px 7px;border-radius:6px;transition:all .15s}
.kost-edit-toggle:hover{background:rgba(47,62,139,0.10);color:var(--accent)}
.kost-edit-toggle.active{background:var(--accent);color:#fff}

.kost-ctrls{display:flex;align-items:center;gap:8px}
.kost-meta{font-size:10px;color:var(--muted);white-space:nowrap}
.kost-reset{background:none;border:none;color:#ef4444;cursor:pointer;font-size:13px;padding:3px 6px;border-radius:6px;transition:all .15s}
.kost-reset:hover{background:rgba(239,68,68,0.12)}

.kost-cell-x{cursor:pointer;color:#ef4444;font-size:11px;padding-left:4px}
.vg-info-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:8px;background:var(--accent-light);border:1px solid var(--line);border-radius:8px;padding:8px 12px;box-sizing:border-box;table-layout:auto}
.vg-info-table th{text-align:left;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.3px;font-size:9px;padding:4px 12px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap}
.vg-info-table td{padding:6px 12px;color:var(--ink);vertical-align:top;border-right:1px solid var(--line);white-space:normal}
.vg-info-table th:last-child,.vg-info-table td:last-child{border-right:none}
.vg-info-table th:last-child,.vg-info-table td:last-child{white-space:normal}


.vg-info-table td.vgi-ek{color:#c2410c;font-weight:600}

.vertrag-select{margin-left:auto;min-width:240px;max-width:340px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font:inherit;font-size:12px;font-weight:600;cursor:pointer}
[data-theme="dark"] .vertrag-select{background:#0f1830;color:#e2e8f0;border-color:#334155}

/* v1_3_6a: in Service mehr Platz fuer die VG-Spalte (VG erkannt) */
#service-section .plz-vg-split{grid-template-columns:0.85fr 1.6fr}

/* v1_3_7a: PLZ und VG-Nr. als getrennte Kacheln nebeneinander */
#service-section .plz-vg-split{grid-template-columns:0.8fr 1.7fr;gap:16px}
#service-section .plz-vg-split > .plz-col,
#service-section .plz-vg-split > .vg-col{
  background:var(--input-bg,#fff);
  border:1px solid rgba(47,62,139,0.28);
  border-radius:10px;
  padding:10px 12px 12px;
}
[data-theme="dark"] #service-section .plz-vg-split > .plz-col,
[data-theme="dark"] #service-section .plz-vg-split > .vg-col{
  background:transparent;
  border-color:rgba(129,140,248,0.4);
}
