:root{--navy:#1D428A;--blue:#307FE2;--ink:#172541;--muted:#65748c;--line:#dce3ef;--bg:#f3f6fb;--pink:#b90070;--pink-bg:#fff0f8;--pink-line:#f1a4d0;--red:#b51d2c;--red-bg:#fff0f1;--yellow:#fff8dc;--green:#e3f5ea;--company:112px;--trailer:112px;font-family:'Open Sans','Segoe UI',Arial,sans-serif;color:var(--ink);font-size:13px}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid var(--blue)}input,select,textarea{color:var(--ink);border:1px solid #becbe0;border-radius:6px;background:white;padding:7px 9px}input:focus,textarea:focus,select:focus{outline:2px solid #80b4ff}button{border:1px solid transparent;border-radius:7px;padding:8px 12px;background:var(--navy);color:white;font-weight:600}button.secondary{background:white;color:var(--ink);border-color:#cad5e6}button.small{font-size:12px;padding:5px 8px}button.text{background:none;color:var(--navy);padding:3px 5px;text-decoration:underline;text-underline-offset:3px}button.danger{background:var(--red)}.app-head{background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 20px}.brand{display:flex;align-items:center;gap:22px}.brand .company-logo{width:225px;height:71px;object-fit:contain;object-position:left center;display:block}.brand-title{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.brand .dispo-wordmark{display:block;width:330px;max-width:34vw;height:auto;object-fit:contain;filter:none;box-shadow:none}.brand p{font-size:12px;color:#d0dffa;margin:3px 0 0}.head-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.head-right button{background:#ffffff18;border-color:#ffffff40;color:white}.save-state{font-size:12px;min-width:115px;max-width:300px}.app-tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);padding:0 20px;background:white}.app-tabs button{border:0;border-bottom:3px solid transparent;background:none;border-radius:0;padding:12px 3px;color:var(--muted)}.app-tabs button.active{color:var(--navy);border-bottom-color:var(--blue)}main{padding:12px 12px 20px}.toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.toolbar label{display:flex;flex-direction:column;font-size:11px;gap:4px;color:var(--muted)}.toolbar label input,.toolbar label select{font-size:13px}.toolbar .week-choice{min-width:292px}.week-nav{display:flex;align-items:end;gap:5px}.week-nav label{margin:0}.week-arrow{height:34px;min-width:36px;padding:6px 10px;font-size:21px;line-height:1}.toolbar .filter{min-width:140px;max-width:210px}.toolbar .spacer{flex:1}.summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:12px 0;background:white;border:1px solid var(--line);padding:10px 14px;border-radius:8px}.summary .result{font-size:23px;font-variant-numeric:tabular-nums;font-weight:700}.summary .info{font-size:12px;color:var(--muted)}.summary .sum-label{font-size:12px;margin-bottom:3px}.result-box{min-width:240px;border-right:1px solid var(--line);padding-right:18px}.result-box.positive .result{color:#17673c}.result-box.negative .result{color:var(--red)}.summary .action-group{display:flex;gap:8px;margin-left:auto}.muted{color:var(--muted)}.notice{padding:11px 13px;border:1px solid #bfd2f1;border-radius:7px;background:#eef5ff;color:var(--ink);line-height:1.5;margin-bottom:12px}.notice.warning{background:#fff8dd;border-color:#ead78d}.notice.error{background:var(--red-bg);border-color:#e3979e}.notice.success{background:var(--green);border-color:#a0d4b2}.notice.small{font-size:12px;padding:7px 10px}.notice p:last-child{margin-bottom:0}.hidden{display:none!important}.table-wrap{overflow:auto;max-height:calc(100vh - 285px);min-height:320px;background:white;border:1px solid var(--line);border-radius:8px;position:relative}table.planner{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:1880px}.planner th{background:var(--navy);color:white;text-align:left;position:sticky;top:0;z-index:5;padding:8px 7px;border-right:1px solid #ffffff20;border-bottom:3px solid var(--blue);font-size:12px}.planner th .date{display:block;font-size:11px;font-weight:400;margin-top:3px}.planner th.next{background:var(--blue)}.planner td{border-bottom:1px solid #e5eaf4;border-right:1px solid #e5eaf4;padding:5px 6px;vertical-align:top;background:white;overflow-wrap:anywhere}.planner tbody.block tr:first-child td{border-top:3px solid #69748e}.planner tbody.block:first-of-type tr:first-child td{border-top:0}.planner td.company{width:var(--company);background:#edf2f9;position:sticky;left:0;z-index:3;font-weight:650;vertical-align:middle}.planner td.trailer{background:#f9fbfe;position:sticky;left:var(--company);z-index:3;vertical-align:middle}.planner th.company{left:0;z-index:8}.planner th.trailer{left:var(--company);z-index:8}.trailer-name{font-size:15px;font-weight:750;background:none;color:var(--ink);padding:0;border:0;text-align:left}.trailer-notes{display:flex;flex-wrap:wrap;gap:3px;margin:6px 0 3px;background:none;border:0;padding:0;text-align:left;color:var(--muted)}.trailer-note{display:inline-flex;align-items:center;border:1px solid #a71927;background:var(--red);color:white;border-radius:4px;padding:2px 5px;font-size:9px;font-weight:800;line-height:1.2;box-shadow:0 1px 0 #8d1420}.trailer-note-add{display:block;margin:5px 0 2px;padding:2px 0;background:none;border:0;color:#6b7a90;font-size:9px;font-weight:600;text-align:left}.trailer-notes:hover .trailer-note{background:#a71927;color:white;border-color:#86131e}.trailer-note-add:hover{color:var(--navy);border-color:#9eb6d8}.trailer-note-add:hover{text-decoration:underline}.adr-line{display:flex;gap:4px;align-items:center;margin-top:9px}.adr-symbol{border:1px solid #9aa5b9;border-radius:3px;padding:3px;font-size:10px;font-weight:bold;color:#8a94a4;background:#e8ebf0}.adr-symbol.on{background:#ffa620;color:#171717;border:1.5px solid #171717}.adr-line select{font-size:10px;padding:3px;min-width:44px}.slot{font-size:10px;color:var(--muted)}.planner .next-cell{background:#f5f8ff}.cell{min-height:40px;cursor:text;border:1px solid transparent;border-radius:5px;padding:2px;white-space:normal;line-height:1.4}.cell:focus{outline:2px solid var(--blue)}.cell:hover{border-color:#c5d5ed}.cell.editing{padding:0}.cell textarea{display:block;width:100%;resize:none;overflow:hidden;padding:5px;font-size:13px;line-height:1.45;white-space:pre-wrap;min-height:42px;box-shadow:none}.event{display:flex;flex-wrap:wrap;column-gap:5px;row-gap:3px;align-items:baseline;margin:1px 0 5px;min-width:0}.event:last-child{margin-bottom:0}.event .location-label{overflow-wrap:anywhere}.event .op{font-weight:700;flex-shrink:0}.event.note{background:var(--yellow);border:1px solid #eddd91;border-radius:5px;padding:3px 5px;white-space:pre-wrap;font-size:12px}.event.material{background:var(--pink-bg);border:1px solid var(--pink-line);border-radius:5px;padding:3px 5px;color:var(--pink)}.event.invalid{background:var(--red-bg);border:1px solid var(--red);border-radius:5px;padding:4px}.chip{display:inline-flex;align-items:center;font-size:10px;font-weight:700;border-radius:4px;padding:1px 5px;white-space:nowrap}.chip.time{background:#e4efff;color:#1453ad}.chip.pallet{background:var(--pink-bg);color:var(--pink);border:1px solid var(--pink-line)}.chip.error{background:#ffe1e5;color:var(--red);border:1px solid #e097a0;cursor:pointer}.chip.correction{background:#e7f3ec;color:#236548;font-weight:500;cursor:pointer}.planner td.metrics,.planner td.status-cell,.planner td.palette-cell,.planner td.deliveries,.planner td.weekend,.planner td.eur-cell{vertical-align:middle}.weekend input{width:100%;padding:6px 2px;text-align:center}.weekend.green{background:var(--green)}.weekend.yellow{background:#fff3bf}.weekend.red{background:#fde7e9}.pallet-status{width:100%;border:1px solid transparent;border-radius:6px;padding:7px 2px;text-align:center;color:var(--muted);background:#f7f9fc;font-size:10px}.pallet-status .qty{font-size:21px;font-weight:750;display:block;margin-top:3px}.pallet-status.hot{background:var(--pink-bg);color:var(--pink);border-color:var(--pink-line)}.pallet-status .fine{font-size:9px;display:block;line-height:1.2;margin-top:4px}.deliveries textarea{resize:none;overflow:hidden;width:100%;padding:5px;min-height:42px;line-height:1.4}.materials{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.materials button{font-size:10px;padding:3px 5px;color:#835015;background:#fff4df;border:1px solid #dfbf85}.materials button.add{color:#7e8a9c;border-color:#d7deea;background:white;font-size:14px}.km-box{border:1px solid #cbd8eb;border-radius:6px;overflow:hidden;min-width:95px;font-size:11px}.km-line{display:flex;align-items:baseline;justify-content:space-between;padding:7px 5px;gap:4px}.km-line+.km-line{border-top:1px solid #e1e7f1}.km-line span:first-child{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase}.km-line strong{font-variant-numeric:tabular-nums;font-size:12px}.km-box button{width:100%;background:white;color:var(--navy);border-radius:0;border-top:1px solid #d8e3f2;padding:6px 2px;font-size:11px}.km-note{font-size:10px;text-align:center;line-height:1.35;color:#93620e;margin:4px 0}.eur-cell input{width:100%;min-width:75px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums;padding:7px 4px}.transfer-one{margin-top:10px!important;font-size:10px!important}.empty{padding:35px;text-align:center;color:var(--muted)}.footer{font-size:11px;color:var(--muted);padding-top:10px;display:flex;justify-content:space-between;gap:14px}.footer-meta{display:flex;align-items:center;gap:12px;white-space:nowrap}.data-stand{font-size:10px;color:#7b879a}.app-version{white-space:nowrap}
dialog{border:none;border-radius:12px;padding:0;max-width:min(1050px,95vw);width:940px;max-height:92vh;box-shadow:0 15px 70px #15264b55;color:var(--ink)}dialog::backdrop{background:#0c1b3855}.modal-head{display:flex;justify-content:space-between;align-items:center;background:var(--navy);color:white;padding:15px 20px;position:sticky;top:0;z-index:3}.modal-head h2{font-size:18px;margin:0}.modal-head button{font-size:22px;line-height:1;background:transparent;border:1px solid #ffffff77;padding:3px 9px}.modal-body{padding:18px 20px;max-height:calc(90vh - 62px);overflow:auto}.modal-body h3{font-size:16px;margin:20px 0 10px}.modal-body h3:first-child{margin-top:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:5px;font-size:12px;margin-bottom:10px}.field input,.field select,.field textarea{width:100%}.field small{line-height:1.4;color:var(--muted)}.inline-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.settings-section{padding:15px 0;border-bottom:1px solid var(--line)}.settings-section:first-child{padding-top:0}.settings-section h3{margin:0 0 12px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.scroll-table{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;color:var(--muted);font-weight:600;background:#f2f5fa;padding:8px;border-bottom:1px solid #c9d4e7}.data-table td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-table tfoot{font-weight:700;background:#edf3fa}.route-table td{white-space:normal}.route-table .num{white-space:nowrap}.tag{border-radius:4px;display:inline-block;background:#eaf0fa;color:#315182;padding:2px 5px;font-size:11px}.progress{display:block;width:100%;height:8px;margin:10px 0;accent-color:var(--blue)}pre{padding:12px;background:#f1f4f9;border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px}.text-block{white-space:pre-wrap;padding:10px;background:#f4f7fb;border:1px solid var(--line);border-radius:5px;line-height:1.5}.settings-hint{font-size:12px;line-height:1.55;color:var(--muted)}.overview-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}.overview-card{background:white;border:1px solid var(--line);padding:15px;border-radius:8px}.overview-card .big{font-size:25px;font-weight:700;margin:8px 0}.overview-table{background:white;border:1px solid var(--line);border-radius:8px;overflow:auto;padding:8px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:7px;padding:10px 18px;box-shadow:0 5px 30px #0003;z-index:100;max-width:90vw;white-space:pre-line;line-height:1.5}.toast.error{background:var(--red)}.about ul{padding-left:20px;line-height:1.8}.format-note{font-size:11px;margin-top:8px;color:var(--muted)}.check{font-family:monospace;color:#20693c}.test-fail{color:var(--red)}.print-only{display:none}
@media(max-width:1050px){.brand .company-logo{width:170px;height:54px}.brand .dispo-wordmark{width:260px;max-width:36vw}.app-head{padding:12px}.table-wrap{max-height:calc(100vh - 325px)}.toolbar .spacer{display:none}.summary .action-group{margin-left:0}.overview-cards{grid-template-columns:1fr}.form-grid.cols3{grid-template-columns:1fr}.brand{gap:12px}.head-right{gap:4px}.head-right button{padding:6px}}
@media print{.toolbar,.app-tabs,.head-right,.summary .action-group,.footer,.transfer-one,.km-box button{display:none!important}.app-head{background:white;color:black}.brand .company-logo,.brand .dispo-wordmark{display:none}.table-wrap{overflow:visible;max-height:none;border:0}.planner{min-width:0!important;font-size:9px}.planner th,.planner td{position:static!important}.planner tbody{break-inside:avoid}.summary{border:0}.print-only{display:block}}

/* Close the final trailer block across the full width, including row spans. */
.planner tbody.block:last-of-type tr:last-child td,.planner tbody.block:last-of-type td[rowspan]{border-bottom:3px solid #69748e}

/* Neuaufbau 3: faster orientation and action placement. */
table.planner{min-width:1970px}
.planner th.current-day{background:#255aa7;box-shadow:inset 0 -4px 0 #9fc8ff}
.planner td.current-day{background:#f0f6ff}
.planner tbody.block.active-block td{box-shadow:inset 0 1px 0 #b7d3f7,inset 0 -1px 0 #b7d3f7}
.planner tbody.block.active-block td:not(.company):not(.trailer):not(.next-cell):not(.weekend){background:#f4f8ff}
.planner tbody.block.active-block td.company{background:#e1ecfa}
.planner tbody.block.active-block td.trailer{background:#edf4fd}
.planner tbody.block.active-block td.next-cell{background:#eaf2ff}
.planner tbody.block.active-block td.current-day{background:#e7f1ff}
.planner th.transfer{background:#2467bd;text-align:center;padding:5px 4px}
.planner th.transfer button{display:block;width:100%;padding:5px 3px;font-size:10px;background:#fff;color:var(--navy);border-color:#d8e6f8;line-height:1.15}
.planner th.transfer .date{text-align:center;font-size:9px}
.planner td.transfer-cell{vertical-align:middle;text-align:center;background:#f6f9fe;padding:5px 4px}
.transfer-one{margin:0!important;width:100%;padding:6px 3px!important;font-size:10px!important;line-height:1.25;text-decoration:none!important;border:1px solid #c9d8ec!important;border-radius:5px!important;background:white!important;color:var(--navy)!important}
.transfer-one.done{background:#e8f5ed!important;color:#256a46!important;border-color:#b7dbc5!important}
.transfer-one.changed{background:#fff5d9!important;color:#7e5a00!important;border-color:#e6cf86!important}
.transfer-one:disabled{cursor:default;opacity:.45}
#visibleCount.filter-active{font-weight:700;color:var(--navy)}
.save-state{opacity:.9}
.save-state.saved::before{content:'✓ ';font-weight:700}
.toolbar #excelExportBtn{white-space:nowrap}
@media print{.planner th.transfer,.planner td.transfer-cell{display:none!important}}
/* Work areas, deliberately low visual noise. */
.section-title{padding:16px 0 8px}.section-title h2{margin:0 0 6px;color:#1d428a}.section-title p{margin:0;color:#657086;font-size:13px}.horizontal{overflow-x:auto}.preserve{white-space:pre-wrap;min-width:270px}.tripref-tag{display:block;background:none;color:#64718b;border:0;padding:0 0 4px;font-size:11px;text-decoration:underline}.billing-table{min-width:1350px}.billing-table td{vertical-align:top}.billing-table th{white-space:normal;min-width:80px}.billing-table small{display:block;font-size:11px;color:#6a768a;margin:4px 0}.billing-input{width:100%;min-width:76px;max-width:120px;text-align:right;padding:7px;border:1px solid #d6deea;border-radius:5px}.billing-name{min-width:115px}.backup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.panel{background:white;border:1px solid #d8e0eb;border-radius:10px;padding:17px;margin:12px 0}.panel h3{margin-top:0;color:#1d428a}.button-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.button-link{display:inline-block;border:1px solid #cbd6e6;border-radius:7px;padding:8px 12px;color:#1d428a;text-decoration:none}.checkline{display:flex;gap:8px;margin:16px 0}.import-preview{max-height:50vh}.import-preview select{max-width:270px}.import-preview small{display:block}.search-hit{outline:3px solid #307fe2!important;background:#e8f0ff!important}.planner tbody>tr:last-child>td,.planner tbody>tr:first-child>td[rowspan]{border-bottom:3px solid #718099!important}.toolbar input[type=number]{max-width:90px}.app-tabs{flex-wrap:wrap}#yearSelect{max-width:92px}#newYearBtn{align-self:end}.billing-input:focus{outline:2px solid #307fe2}@media(max-width:950px){.backup-grid{grid-template-columns:1fr}}
/* Neuaufbau 10.1: compact header without fleet artwork; warehouse controls unchanged. */
.app-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px}


.head-right{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;max-width:325px}
.witt-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px;width:100%;margin-top:5px}
.witt-actions .on-board{color:#9d1765;font-size:11px;width:100%;font-weight:600}
.witt-action{font:600 10px/1.25 Arial,sans-serif;color:#a4166a;background:#fff1f8;border:1px solid #f2bdd8;border-radius:5px;padding:4px 6px;min-height:24px;cursor:pointer;text-align:left;box-shadow:none}
.witt-action.quiet{background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:2px}
.witt-action.booked{background:#fdf1f8;border-color:#ecc5db}
.witt-action:hover,.witt-action:focus-visible{background:#fbe1ef;border-color:#bc3c86;outline-offset:2px}
.warehouse-modal{max-width:720px;margin:auto}
.warehouse-identity{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:20px}
.warehouse-identity strong{font-size:22px}
.warehouse-identity span{font-size:13px;color:#52627b}
.warehouse-direction{display:flex;gap:8px;margin:12px 0 20px}
.warehouse-direction button{flex:1;background:#fff;border:1px solid #e6a6c9;color:#9d1765;padding:12px;border-radius:8px}
.warehouse-direction button.selected{background:#ad176e;border-color:#ad176e;color:#fff}
.warehouse-modal .form-grid{grid-template-columns:1fr 1fr 1fr;margin-bottom:14px}
.warehouse-balance{padding:12px 14px;background:#f8f2f7;border-radius:8px;font-weight:600;margin:12px 0}
.pallet-notice{background:#fff1f8;border-color:#eeafcd;color:#8b165d}
.warehouse-submit{margin-top:20px}
#wittBook{background:#a61769;border-color:#a61769}
#wittTrace{margin-top:14px}
#wittTrace[open] #wittTraceContent{max-height:260px;overflow:auto;margin-top:8px}
.warehouse-cancel{margin-top:22px;border-top:1px solid #ead4df;padding-top:12px}
.warehouse-cancel summary{color:#a32735}
.warehouse-table td{vertical-align:middle}
.warehouse-table tr.cancelled{color:#6b778a;background:#f6f7fa}
.warehouse-table tr.cancelled td.num{text-decoration:line-through}
.block-text{display:block}
.warehouse-kpi{border-top:3px solid #b5267b}
#wittConfirmWrap{background:#fff8df;padding:12px;border-radius:8px;margin-bottom:14px}
.raw-text{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1250px){.app-head{grid-template-columns:1fr auto}.head-right{max-width:390px}}
@media(max-width:650px){.app-head{gap:12px;padding:16px}.head-right{max-width:190px}.warehouse-modal .form-grid{grid-template-columns:1fr}.warehouse-direction{flex-wrap:wrap}}

.app-head .brand{min-width:0;gap:12px}.app-head .brand .company-logo{width:135px;height:auto;max-height:64px}.app-head .brand-title{min-width:0}.app-head .brand .dispo-wordmark{width:290px;max-width:100%;height:auto}

/* OPOS-specific extensions. Shared shell/components above are copied verbatim from Dispo Neuaufbau 10.1. */
.brand .opos-wordmark{display:block;width:330px;max-width:34vw;height:auto;object-fit:contain;filter:none;box-shadow:none}
.opos-toolbar .filter{min-width:140px;max-width:210px}.opos-toolbar input[type=search]{min-width:210px}.opos-toolbar .spacer,.bulk-bar .spacer{flex:1}
.quick-row{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 10px}.quick-filter.active{background:#eef5ff;color:var(--navy);border-color:#80b4ff;box-shadow:inset 0 -2px 0 var(--blue)}
.summary .opos-result{min-width:165px}.summary .opos-result .result{color:var(--navy)}.summary .action-group{align-items:center}
.bulk-bar{display:flex;align-items:center;gap:8px;background:#eef5ff;border:1px solid #bfd2f1;border-radius:7px;padding:8px 10px;margin:0 0 10px}
.table-meta{display:flex;justify-content:space-between;align-items:center;margin:8px 2px;color:var(--muted);font-size:12px}
.opos-table{min-width:1580px!important}.opos-table th.sortable{cursor:pointer}.opos-table .check{width:34px;text-align:center}.opos-table .num{text-align:right;white-space:nowrap}.opos-table .center{text-align:center}.opos-table .strong{font-weight:700}.opos-table .sub{font-size:10px;color:var(--muted);margin-top:2px}.opos-table .link{padding:0;background:none;color:var(--navy);font-weight:700;border:0;border-radius:0;text-align:left}.opos-table .link:hover{text-decoration:underline;filter:none}.opos-table .iconBtn{width:28px;height:26px;padding:0;background:white;color:var(--navy);border:1px solid #cad5e6}.opos-table tr.customer-alt td{background:#f9fbfe}.opos-table tr.customer-alt:hover td,.opos-table tr.customer-base:hover td{background:#f5f8ff}.opos-table tr.customer-start td{border-top:3px solid #d4deec}.opos-table tr.customer-start:first-child td{border-top:0}.opos-table tbody.inactive-row td{background:#fafafa!important;color:#7c8798}.opos-table .warning-cell{background:var(--yellow)!important}.opos-table .danger-text{color:var(--red)!important;font-weight:700}
.badge{display:inline-block;border-radius:4px;padding:2px 6px;background:#eef1f5;color:#455369;font-size:10px;font-weight:700;white-space:nowrap}.badge.green{background:var(--green);color:#17673c}.badge.blue{background:#e4efff;color:#1453ad}.badge.red{background:#ffe1e5;color:var(--red);border:1px solid #e097a0}.badge.yellow{background:var(--yellow);color:#835015}.badge.gray{background:#eef1f5;color:#5e6877}.mahn{display:inline-flex;align-items:center;justify-content:center;min-width:22px;border-radius:4px;padding:2px 5px;font-size:10px;font-weight:700}.mahn.m1{background:#e4efff;color:#1453ad}.mahn.m2{background:var(--yellow);color:#835015}.mahn.m3{background:#ffe1e5;color:var(--red)}
.simple-table{max-height:calc(100vh - 230px)}.simple-table table,.table-wrap.mini table{border-collapse:separate;border-spacing:0;width:100%;min-width:900px}.simple-table th,.table-wrap.mini th{background:var(--navy);color:white;text-align:left;position:sticky;top:0;z-index:5;padding:8px 7px;border-right:1px solid #ffffff20;border-bottom:3px solid var(--blue);font-size:12px}.simple-table td,.table-wrap.mini td{border-bottom:1px solid #e5eaf4;border-right:1px solid #e5eaf4;padding:6px 7px;vertical-align:top;background:white}.simple-table .num,.table-wrap.mini .num{text-align:right}.empty-cell{text-align:center;color:var(--muted);padding:28px!important}.done-row td{opacity:.55}.done-row td:nth-child(5){text-decoration:line-through}
.toast{position:fixed;right:20px;bottom:20px;z-index:50;background:var(--ink);color:white;padding:11px 14px;border-radius:7px;box-shadow:0 10px 30px rgba(23,37,65,.16);max-width:420px}.toast.error{background:var(--red)}.toast.success{background:#187a43}
.detail-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(230px,.8fr);gap:12px}.detail-card{border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:10px;background:white}.detail-card h3{margin:0 0 10px;color:var(--navy)}.detail-main,.detail-side{min-width:0}.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 10px}.kv span{color:var(--muted)}.form-row{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.form-row label,.form-stack label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-weight:600;font-size:11px}.form-row input,.form-row select,.form-stack input,.form-stack select,.form-stack textarea{min-height:34px}.form-row input{flex:1;min-width:170px}.form-stack{display:grid;gap:10px}.form-stack textarea{min-height:100px;resize:vertical}.timeline{margin-top:10px;display:grid;gap:6px}.timeline>div{border-left:3px solid #c9d8ed;background:#f7f9fc;padding:7px 9px;border-radius:0 6px 6px 0}.timeline.compact>div{font-size:11px}.reminder-line.done{opacity:.55;text-decoration:line-through}.customer-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}.customer-head h3{margin:2px 0;font-size:20px}.eyebrow{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:800}.customer-total{text-align:right}.customer-total strong{display:block;color:var(--navy);font-size:22px}.customer-total span{color:var(--muted);font-size:11px}.table-wrap.mini{max-height:55vh;min-height:0}.history-filter{margin-bottom:10px}.empty-state{padding:40px;text-align:center;color:var(--muted)}.booking-lines{margin-top:10px}.booking-lines table{min-width:720px}.booking-lines .credit{color:#17673c}.booking-lines .debit{color:var(--ink)}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.stat-grid>div{border:1px solid var(--line);border-radius:7px;padding:12px;background:white}.stat-grid strong{display:block;font-size:22px;color:var(--navy)}.stat-grid span{font-size:11px;color:var(--muted)}.import-summary{background:#eef5ff;border:1px solid #bfd2f1;border-radius:8px;padding:14px;text-align:center}.big-number{font-size:32px;font-weight:800;color:var(--navy)}
@media(max-width:1000px){.brand .opos-wordmark{width:260px}.detail-grid{grid-template-columns:1fr}.opos-toolbar .spacer{display:none}.table-wrap{max-height:none}}
/* OPOS-Manager 0.4 additions. Header uses the exact Dispo header structure/classes. */
.brand .dispo-wordmark{width:360px;max-width:44vw}
.status-actions{display:grid;grid-template-columns:repeat(4,minmax(108px,1fr));gap:7px}.status-actions button{min-height:34px;padding:6px 9px;font-size:10px;border-radius:6px;border:1px solid transparent;font-weight:700}.status-actions .status-reset{background:#fff;color:var(--ink);border-color:#cad5e6}.status-actions button.active{box-shadow:0 0 0 3px #307fe233 inset,0 0 0 2px #307fe2;position:relative}.status-actions button.active::after{content:'✓';margin-left:5px;font-weight:900}.statusChoice,.quickStatus{transition:filter .12s ease,transform .12s ease,box-shadow .12s ease}.statusChoice:hover,.quickStatus:hover{filter:brightness(.97)}.statusChoice:active,.quickStatus:active{transform:translateY(1px)}
.statusChoice[data-status="open"],.quickStatus[data-status="open"]{background:#f6f8fb;color:#4f5d71;border-color:#d4dce8}
.statusChoice[data-status="reminded"],.quickStatus[data-status="reminded"]{background:#eef5ff;color:#1d428a;border-color:#bfd2f1}
.statusChoice[data-status="promised"],.quickStatus[data-status="promised"]{background:#fff8dc;color:#815b00;border-color:#ead78d}
.statusChoice[data-status="paid"],.quickStatus[data-status="paid"]{background:#e3f5ea;color:#17673c;border-color:#a0d4b2}
.statusChoice[data-status="coface"],.quickStatus[data-status="coface"]{background:#e8f1ff;color:#163f7a;border-color:#8fb4e8}
.statusChoice[data-status="insolvency"],.quickStatus[data-status="insolvency"]{background:#fff0f1;color:#b51d2c;border-color:#e3979e}
.statusChoice[data-status="loss"],.quickStatus[data-status="loss"]{background:#f5e7ec;color:#81233e;border-color:#d8aab8}
.statusChoice[data-status="credit"],.quickStatus[data-status="credit"]{background:#eef7f7;color:#185f5c;border-color:#a8d0cf}
.work-status{display:inline-flex;align-items:center;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:750;white-space:nowrap;border:1px solid #d4dce8;background:#f6f8fb;color:#4f5d71}.work-status.reminded{background:#eef5ff;border-color:#bfd2f1;color:#1d428a}.work-status.promised{background:#fff8dc;border-color:#ead78d;color:#815b00}.work-status.paid{background:#e3f5ea;border-color:#a0d4b2;color:#17673c}.work-status.coface{background:#eef5ff;border-color:#8fb4e8;color:#1d428a}.work-status.insolvency{background:#fff0f1;border-color:#e3979e;color:#b51d2c}.work-status.loss{background:#f5e7ec;border-color:#d8aab8;color:#81233e}.work-status.credit{background:#eef7f7;border-color:#a8d0cf;color:#185f5c}.work-status.open{background:#f6f8fb}.work-status.processed{background:#e3f5ea;border-color:#a0d4b2;color:#17673c}
.status-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px}.status-choice-grid button{min-height:48px;border-width:1px}.status-choice-grid button.active{box-shadow:0 0 0 3px #307fe233 inset,0 0 0 2px #307fe2;outline:0}.status-choice-grid button.active::after{content:' ✓';font-weight:900}.promise-box{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.promise-box label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:11px}
.customer-key{font-variant-numeric:tabular-nums;font-weight:650}.opos-table tr.customer-start td{border-top:4px solid #c4d0e1}.opos-table tr.customer-alt td{background:#f7faff}.opos-table tr.customer-base td{background:#fff}.opos-table tr.customer-alt:hover td,.opos-table tr.customer-base:hover td{background:#eef5ff}.opos-table .customer-name{font-weight:650}.customer-block-label{display:block;font-size:10px;color:#65748c;margin-top:2px}
.opos-table .status-cell{min-width:116px}.opos-table .actions-cell{min-width:78px}.opos-table{min-width:1720px!important}
.header-identical-note{display:none}
@media(max-width:1050px){.brand .dispo-wordmark{width:310px;max-width:46vw}.status-choice-grid{grid-template-columns:1fr 1fr}.status-actions{grid-template-columns:1fr 1fr}.promise-box{grid-template-columns:1fr}}

/* OPOS-Manager 0.7 header calibration.
   Same Dispo shell/DOM; the longer OPOS wordmark needs a wider render box to keep
   the visual wordmark height aligned with the shorter Dispo wordmark. */
.app-head .brand{gap:24px}
.app-head .brand .company-logo{width:165px;max-height:78px}
.app-head .brand .dispo-wordmark{width:380px;max-width:min(42vw,380px);height:auto}
@media(max-width:1050px){.app-head .brand{gap:14px}.app-head .brand .company-logo{width:150px;max-height:70px}.app-head .brand .dispo-wordmark{width:330px;max-width:38vw}}
@media(max-width:760px){.app-head .brand .company-logo{width:125px}.app-head .brand .dispo-wordmark{width:280px;max-width:42vw}}

/* OPOS-Manager 0.8: Auswertung + Headerkalibrierung nach Nutzerwunsch. */
.app-head .brand .company-logo{width:205px;max-height:82px}
.app-head .brand-title{margin-left:42px}
.app-head .brand .dispo-wordmark{width:380px;max-width:min(42vw,380px)}
.analytics-kpis{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;margin:12px 0}.analytics-kpi{display:flex;flex-direction:column;align-items:flex-start;min-height:78px;background:white;color:var(--ink);border:1px solid var(--line);padding:12px 14px;text-align:left}.analytics-kpi:hover{border-color:#9ab9e8;background:#f8fbff}.analytics-kpi span{font-size:11px;color:var(--muted);font-weight:600}.analytics-kpi strong{font-size:22px;color:var(--navy);margin-top:6px;font-variant-numeric:tabular-nums}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.analytics-panel{background:white;border:1px solid var(--line);border-radius:8px;padding:12px;min-width:0}.analytics-panel.wide{margin:12px 0}.panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 2px 10px}.panel-head h3{margin:0;color:var(--navy);font-size:15px}.panel-head span{font-size:11px;color:var(--muted)}.analytics-table{min-height:0;max-height:430px;border-radius:6px}.analytics-table table{width:100%;border-collapse:separate;border-spacing:0}.analytics-table th{background:var(--navy);color:white;text-align:left;position:sticky;top:0;z-index:2;padding:7px;border-bottom:3px solid var(--blue);font-size:11px}.analytics-table td{padding:7px;border-bottom:1px solid var(--line);font-size:12px}.analytics-table .num{text-align:right;font-variant-numeric:tabular-nums}.analytics-table .strong{font-weight:750;color:var(--navy)}.analytics-customer{cursor:pointer}.analytics-customer:hover td{background:#eef5ff}.status-overview{display:grid;grid-template-columns:1fr 1fr;gap:12px}.status-column{border:1px solid var(--line);border-radius:7px;overflow:hidden}.status-column h4{margin:0;padding:8px 10px;background:#f3f6fb;color:var(--navy);font-size:12px}.status-column>div{display:flex;justify-content:space-between;gap:10px;padding:7px 10px;border-top:1px solid var(--line)}.status-column>div span{color:var(--muted)}.status-column>div strong{font-variant-numeric:tabular-nums}.path-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:7px;padding:9px 10px;background:#f8fafc;margin:6px 0}.path-row>div{min-width:0}.path-row span{display:block;font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:750;margin-bottom:3px}.path-row code{display:block;white-space:normal;overflow-wrap:anywhere;color:var(--ink);font-family:Consolas,'Courier New',monospace;font-size:11px}.ranking-table{max-height:520px}
@media(max-width:1150px){.analytics-kpis{grid-template-columns:repeat(2,1fr)}.analytics-grid{grid-template-columns:1fr}.app-head .brand-title{margin-left:14px}.app-head .brand .company-logo{width:170px}}
@media(max-width:650px){.analytics-kpis{grid-template-columns:1fr}.status-overview{grid-template-columns:1fr}.app-head .brand-title{margin-left:0}.app-head .brand .company-logo{width:135px}}


/* OPOS-Manager 0.8.6: Kundenstammdaten / Kreditlimit / Übergabenotiz */
.credit-limit-cell{min-width:125px}.creditLimitInput{width:112px;min-height:28px;padding:4px 6px;text-align:right;border:1px solid var(--line);border-radius:5px;background:#fff;font:inherit;color:var(--ink)}.creditLimitInput:focus{outline:2px solid #307fe233;border-color:var(--blue)}.customer-master{margin-bottom:12px}.customer-master .form-row label{min-width:220px}.small-note{font-size:11px;margin-top:7px}

.copyright-settings{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:10px;color:var(--muted);text-align:right}

.email-reminder-flag{display:inline-flex;align-items:center;margin-top:4px;border:1px solid #9fc2ee;background:#eef5ff;color:#1453ad;border-radius:4px;padding:2px 5px;font-size:9px;font-weight:700;white-space:nowrap}.status-cell .email-reminder-flag{max-width:150px;overflow:hidden;text-overflow:ellipsis}

/* V0.9.2 – Kreditlimit als Euro und Warnung bei Überschreitung */
.credit-limit-wrap{display:flex;align-items:center;justify-content:flex-end;gap:6px}.creditLimitInput,.currencyInput{font-variant-numeric:tabular-nums}.creditLimitInput{width:122px}.credit-limit-over td{background:#fff5f5}.credit-limit-over:hover td{background:#ffeded}.credit-limit-over td:first-child{box-shadow:inset 4px 0 0 #b51d2c}.limit-alert-text{color:#9d1724!important;font-weight:800}.limit-warning{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:50%;background:#b51d2c;color:white;font-weight:800;font-size:12px;line-height:1;flex:0 0 auto}.credit-limit-over-card{border-color:#e5a8ae!important;background:#fffafa}.notice.danger{background:#fdeff1;border-color:#e5a8ae;color:#861521}

/* V0.9.3 – CB-Kundenstamm */
.cb-address{border:1px solid var(--line);border-radius:7px;padding:10px 12px;margin:8px 0;background:#fbfdff}.cb-address-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.cb-address-head strong{color:var(--navy)}.cb-kv{grid-template-columns:110px minmax(0,1fr)}.cb-kv a{color:var(--navy);text-decoration:none}.cb-kv a:hover{text-decoration:underline}.source-flag{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:10px;background:#e4efff;color:#1453ad;font-size:9px;font-weight:750;vertical-align:middle}.settings-section .form-row>.muted{align-self:center;font-size:11px}.settings-section .form-row{flex-wrap:wrap}
@media(max-width:650px){.cb-kv{grid-template-columns:1fr}.cb-kv span{margin-top:6px}.cb-address-head{align-items:flex-start}}

/* OPOS 0.9.4 */

.badge.teal{background:#eef7f7;color:#185f5c;border:1px solid #a8d0cf}
.customer-fold{border:1px solid var(--line);border-radius:8px;background:#fff;margin-bottom:10px;overflow:hidden}
.customer-fold-toggle{width:100%;border:0;border-radius:0;background:#fff;color:var(--navy);padding:11px 13px;font-weight:750;display:flex;align-items:center;gap:8px;text-align:left}.customer-fold-toggle:hover{background:#f8fbff}.customer-fold-toggle[aria-expanded="true"]{border-bottom:1px solid var(--line);background:#f8fbff}.customer-fold-toggle .fold-arrow{color:var(--blue);font-size:12px;width:12px;flex:0 0 12px}.customer-fold-toggle .badge{margin-left:auto}.fold-content{padding:10px 12px 12px}
.coface-box{margin-top:14px;padding:12px;border:1px solid #bfd2f1;border-radius:8px;background:#f7fbff;display:grid;gap:10px}
.coface-box textarea{min-height:80px}
.coface-type-choice{display:flex;gap:18px;flex-wrap:wrap;padding:7px 0}
.coface-type-choice label{display:flex;align-items:center;gap:7px;font-weight:650;color:var(--ink)}
.coface-type-choice input{min-height:auto}
@media(max-width:800px){.customer-head{align-items:flex-start;flex-direction:column}.customer-total{text-align:left}.opos-table{min-width:1180px!important}}

/* OPOS 0.9.5 – robuste Kunden-Akkordeons */
.customer-fold-toggle:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}

/* OPOS 0.9.6 – Mahnverlauf pro Beleg */
.mahn.dunningToggle{border:0;cursor:pointer;font-family:inherit;line-height:1.2}
.mahn.dunningToggle:hover{outline:2px solid rgba(48,127,226,.28);outline-offset:1px}
.dunning-inline-row td{padding:0!important;border-top:0!important}
.dunning-inline{display:flex;gap:22px;align-items:center;padding:8px 14px 9px 44px;background:rgba(48,127,226,.055);border-bottom:1px solid var(--line);font-size:11px}
.dunning-inline strong{color:var(--navy)}
.dunning-inline span{white-space:nowrap}

/* OPOS 0.9.7 – zentrale Mailaktion, Windows-Auswahl, Coface */
.email-main{background:var(--blue);border-color:var(--blue);white-space:nowrap;min-width:132px}.email-main:disabled{background:#9fb8dc;border-color:#9fb8dc;color:#f7fbff;opacity:.7}.opos-table tbody tr.opos-select-row{cursor:default}.opos-table tbody tr.selected-row>td{box-shadow:inset 0 0 0 9999px rgba(48,127,226,.09)}.opos-table tbody tr.selected-row>td:first-child{box-shadow:inset 4px 0 0 var(--blue),inset 0 0 0 9999px rgba(48,127,226,.09)}.case-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px}.case-choice button{min-height:92px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;text-align:left}.case-choice button span{font-size:11px;opacity:.8;font-weight:500}.coface-type-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.coface-type-choice label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:7px;padding:10px;background:#f8fafc;color:var(--ink)}.coface-type-choice input{margin:0}.simple-table td.num,.simple-table th.num{text-align:right}.simple-table .editCofaceCase{white-space:nowrap}
@media(max-width:700px){.case-choice,.coface-type-choice{grid-template-columns:1fr}.email-main{min-width:auto}}
