:root{font-family:Segoe UI,Arial,sans-serif;color:#142a36;background:#f2f5f8;font-size:15px;line-height:1.5;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#126783;text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,p{margin-top:0}h1{font-size:1.85rem;letter-spacing:-.035em;line-height:1.2;margin-bottom:.45rem}h2{font-size:1.1rem;letter-spacing:-.014em;margin-bottom:1rem}small,.tiny{display:block;font-size:.77rem}p{line-height:1.55}
input,select,textarea{border:1px solid #cbd6dc;background:#fff;color:#172e3b;border-radius:8px;padding:10px 12px;width:100%;min-height:40px;outline:0}
input:focus,select:focus,textarea:focus{border-color:#137c95;box-shadow:0 0 0 3px rgba(19,124,149,.12)}input[type=checkbox]{width:auto;min-height:auto;accent-color:#16748b}textarea{resize:vertical}
label{font-size:.87rem;font-weight:650;color:#344b5a;display:block}label input,label textarea,label select{display:block;margin-top:6px}
.btn{background:#fff;border:1px solid #cbd8df;border-radius:8px;color:#244353;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;gap:8px;padding:10px 16px;line-height:1.2;min-height:40px;font-weight:650;white-space:nowrap;transition:background .12s,border-color .12s}
.btn:hover{background:#eef4f6;text-decoration:none}.btn.primary{background:#0e6681;border-color:#0e6681;color:#fff}.btn.primary:hover{background:#0b5369}.btn.outline{background:transparent}.btn.small{font-size:.8rem;min-height:32px;padding:7px 10px}.btn.full{width:100%}.btn:disabled{opacity:.42;cursor:not-allowed}.btn.danger-outline{color:#a33636;border-color:#deb6b6}
.topbar{height:72px;background:#fff;border-bottom:1px solid #d9e2e8;position:sticky;top:0;z-index:10;box-shadow:0 2px 10px rgba(16,34,45,.04)}.bar-inner{max-width:1650px;margin:auto;height:100%;padding:0 30px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:inherit}.brand:hover{text-decoration:none}.brand-mark{height:38px;min-width:68px;border-radius:7px;background:#0c4a63;color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.3rem;letter-spacing:-.07em}.brand b{font-size:1.1rem;line-height:1.2;display:block}.brand small{color:#738a96;font-size:.72rem;margin-top:3px}
.user-actions{display:flex;align-items:center;gap:14px}.user-name{font-weight:650;line-height:1.1;text-align:right}.user-name small{font-weight:450;color:#7e9099;margin-top:4px}.icon-button{border:0;background:none;color:#3a6175;font-size:1.45rem;padding:5px 8px;border-radius:6px;line-height:1;min-width:32px}.icon-button:hover{background:#e9f0f4}
.app-grid{max-width:1650px;margin:0 auto;display:grid;grid-template-columns:230px minmax(0,1fr);min-height:calc(100vh - 72px)}.sidebar{background:#f8fafb;border-right:1px solid #e2e9ed;padding:27px 16px;display:flex;flex-direction:column;gap:4px}.side-label{font-size:.66rem;letter-spacing:.09em;font-weight:800;color:#8698a3;margin:8px 12px 10px}.side-label.lower{margin-top:29px}
.side-nav{width:100%;border:0;text-align:left;background:none;color:#496171;border-radius:9px;min-height:46px;padding:12px 13px;font-size:.92rem;font-weight:650}.side-nav:hover{background:#e8eff3;color:#104c61}.side-nav.active{background:#dcecf1;color:#07566e}.sidebar-help{background:#eaf2f5;border-radius:12px;padding:15px 14px;margin-top:auto;color:#4e6471;font-size:.75rem}.sidebar-help p{margin:5px 0 0}.sidebar-help b{color:#1b5266}
.content{min-width:0;padding:34px 35px 60px}.heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}.heading p{color:#80919b;margin-bottom:0}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:23px}.kpi{display:flex;flex-direction:column;align-items:flex-start;border:1px solid #dce5ea;border-radius:13px;background:#fff;text-align:left;padding:21px;box-shadow:0 1px 2px rgba(15,38,52,.025)}.kpi:hover{border-color:#97bdca}.kpi span{color:#6e8592;font-size:.87rem}.kpi strong{font-size:2rem;line-height:1.25;margin:8px 0;color:#133b4f}.kpi small{color:#8495a0}
.panel{background:#fff;border:1px solid #dce5ea;box-shadow:0 1px 3px rgba(15,38,52,.028);border-radius:13px;overflow:hidden;margin-bottom:18px}.panel.pad{padding:23px}.panel-toolbar{padding:16px 17px;display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap}.tabs{display:flex;gap:4px;flex-wrap:wrap}.tab{border:0;background:transparent;color:#637c8b;padding:8px 11px;border-radius:7px;font-weight:650;font-size:.78rem;white-space:nowrap}.tab span{font-size:.72rem;font-weight:400;margin-left:2px;color:#9caab2}.tab.selected{background:#e2f0f4;color:#0b617a}.tab.selected span{color:#326d80}
.tools{display:flex;align-items:center;gap:8px}.tools input{min-width:260px}.table-scroll{width:100%;overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:780px;text-align:left}.data-table th{background:#f8fafb;color:#8597a3;font-size:.73rem;text-transform:uppercase;letter-spacing:.035em;font-weight:750;padding:12px 15px;border-bottom:1px solid #e6ecf0;white-space:nowrap}.data-table td{padding:13px 15px;border-bottom:1px solid #eff2f4;color:#324c59;font-size:.85rem;vertical-align:middle}.data-table tbody tr:hover{background:#fbfdfe}.data-table tbody tr:last-child td{border-bottom:0}.data-table b{color:#173d50}.data-table td small{color:#82919b;margin-top:3px}.data-table .empty{text-align:center;color:#9aabb3;padding:36px}.link{color:#086982;border:0;background:none;font-weight:750;padding:0;text-align:left}
.pill{display:inline-flex;padding:5px 10px;border-radius:50px;background:#eef4f8;color:#37637a;font-size:.72rem;font-weight:700;white-space:nowrap}.pill.open{background:#e5f3f9;color:#096781}.pill.partial{background:#fff4de;color:#93690b}.pill.done{background:#e3f4eb;color:#23724d}.pill.archive{background:#eff0f2;color:#717b85}
.two-columns{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:18px;align-items:start}.section-header{display:flex;align-items:center;justify-content:space-between;gap:15px}.muted{color:#8195a0}.search-line{display:flex;gap:12px;align-items:center;margin-bottom:12px}.search-line input{flex:1;min-width:0}.checkline{white-space:nowrap;font-size:.81rem;display:flex;align-items:center;gap:7px}.articles{max-height:510px;overflow-y:auto}.article-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 1px;border-bottom:1px solid #edf1f3}.article-row:last-child{border-bottom:0}.article-info{min-width:0}.article-info b{font-size:.84rem}.article-buttons{display:flex;align-items:center;gap:6px}.article-buttons input{width:73px;font-size:.86rem;padding:7px;min-height:32px}.column-right .sticky{position:sticky;top:95px}.count{font-size:.77rem;background:#e5f0f4;color:#2b6579;padding:3px 8px;border-radius:50px}.cart-row{border-bottom:1px solid #eaf0f3;padding:12px 0}.cart-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;font-size:.87rem}.qty-label{display:flex;gap:12px;align-items:center;margin:10px 0 0;font-size:.77rem}.qty-label input{width:120px;margin:0}.empty-cart{padding:18px 0}.stack{display:flex;flex-direction:column;gap:16px;margin-top:19px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid .wide{grid-column:span 2}.form-grid button{align-self:end}.alert{padding:13px 16px;border:1px solid #c9e1e9;background:#eff8fb;border-radius:9px;color:#386478;margin-bottom:20px;font-size:.9rem}.alert .btn{margin-left:8px}.alert.danger{background:#fff2f2;border-color:#f3cece;color:#a44949}.alert.success{background:#edf9f1;border-color:#cbe9d7;color:#2a7850}
.detail-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:10px 0 20px;border-bottom:1px solid #e8eef1}.detail-overview>div{display:flex;flex-direction:column;gap:8px}.detail-overview small{color:#80939e;font-size:.78rem}.detail-overview strong{font-size:.94rem}.detail-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:25px 0 17px}.detail-top h2{margin:0}.note{margin:20px 0 0;white-space:pre-wrap}.edit-table{min-width:1050px}.edit-table th,.edit-table td{padding:12px 9px}.edit-table td:first-child{min-width:200px}.edit-table.edit-table-compact{min-width:780px}.edit-table.edit-table-compact th:nth-child(2),.edit-table.edit-table-compact td:nth-child(2),.edit-table.edit-table-compact th:nth-child(3),.edit-table.edit-table-compact td:nth-child(3),.edit-table.edit-table-compact th:nth-child(4),.edit-table.edit-table-compact td:nth-child(4){text-align:center}.edit-num{width:90px;min-height:34px;padding:6px;font-size:.84rem}.edit-note{min-width:145px;min-height:34px;padding:7px}.form-line{display:flex;gap:15px;margin:0 0 15px}.form-line select{width:220px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:21px}.edit-table+label{margin-top:18px}.hidden-cell{display:none!important}.user-buttons{white-space:nowrap}.user-buttons .btn{margin:3px}.secret{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.secret code{padding:12px;background:#fff;border:1px dashed #a2cbb1;border-radius:8px;overflow-wrap:anywhere}.hidden{display:none}
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top left,#e0eff3,#f4f7f9 65%)}.auth-card{background:#fff;border:1px solid #dce5ea;border-radius:16px;box-shadow:0 18px 65px rgba(23,55,71,.10);width:min(100%,440px);padding:35px}.auth-card h1{margin:24px 0 8px}.auth-card p{color:#728996}.auth-card form{display:flex;flex-direction:column;gap:16px;margin:23px 0}.auth-card .tiny{margin-top:16px}.brand-mini{color:#0c4a63;font-size:1.45rem;font-weight:850}.brand-mini span{display:block;font-size:.76rem;font-weight:500;color:#8297a2}.auth-card label{font-size:.83rem}
.modal-mask{position:fixed;inset:0;background:rgba(9,28,42,.57);display:flex;align-items:center;justify-content:center;z-index:30;padding:18px}.modal{background:white;border-radius:15px;box-shadow:0 15px 60px rgba(0,0,0,.25);padding:30px;width:min(100%,425px);position:relative;text-align:center}.modal .close-modal{position:absolute;top:11px;right:12px}.modal p{color:#738994}.modal form{text-align:left;display:flex;flex-direction:column;gap:15px;margin-top:20px}.lock-icon{font-size:2rem}
.toast{position:fixed;bottom:22px;right:22px;max-width:min(430px,calc(100vw - 30px));background:#123f53;color:#fff;border-radius:10px;padding:13px 18px;z-index:50;box-shadow:0 9px 26px #0003;opacity:0;pointer-events:none;transition:opacity .2s}.toast.visible{opacity:1}.toast.error{background:#873d3d}
.page-loading{padding:60px;color:#8498a3;text-align:center}.sheet{margin:0 auto;padding:34px;max-width:1200px;background:#fff;min-height:100vh}.print-header{display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid #205a75;padding-bottom:16px;margin-bottom:23px}.print-header h1{font-size:1.5rem}.print-header strong{color:#125472}.print-meta{display:grid;grid-template-columns:120px 1fr 120px 1fr;gap:8px 10px;margin-bottom:25px}.print-meta dt{font-weight:700;color:#77909e}.print-meta dd{margin:0}.print-table{border-collapse:collapse;width:100%;font-size:.77rem}.print-table th{background:#e9eff2;text-align:left}.print-table th,.print-table td{padding:9px 7px;border:1px solid #ced8df;vertical-align:top}.print-table small{color:#7d8b92;margin-top:3px}.print-actions{margin-top:30px;display:flex;gap:12px}
@media(max-width:1150px){.app-grid{grid-template-columns:190px minmax(0,1fr)}.content{padding:28px 22px}.two-columns{grid-template-columns:1fr}.column-right .sticky{position:static}.kpi-grid{grid-template-columns:repeat(2,1fr)}.tools input{min-width:200px}}
@media(max-width:720px){.bar-inner{padding:0 13px}.topbar{height:64px}.brand-mark{min-width:52px;height:33px;font-size:1rem}.brand b{font-size:.89rem}.brand small{font-size:.65rem}.user-name{display:none}.user-actions{gap:6px}.app-grid{grid-template-columns:1fr;min-height:calc(100vh - 64px)}.sidebar{padding:8px 11px;flex-direction:row;flex-wrap:wrap;border-bottom:1px solid #e1e9ed;gap:4px}.side-label,.sidebar-help{display:none}.side-nav{width:auto;min-height:35px;font-size:.75rem;padding:8px 11px}.content{padding:22px 12px 45px}.heading{flex-direction:column;gap:13px;margin-bottom:19px}h1{font-size:1.5rem}.kpi-grid{gap:8px}.kpi{padding:14px}.kpi strong{font-size:1.55rem}.panel.pad{padding:16px}.panel-toolbar{padding:12px}.tools{width:100%}.tools input{flex:1;min-width:0}.search-line{flex-wrap:wrap}.article-row{align-items:flex-start;flex-direction:column}.article-buttons{margin-left:auto}.form-grid,.form-grid.three{grid-template-columns:1fr}.form-grid .wide{grid-column:span 1}.detail-overview{grid-template-columns:repeat(2,1fr)}.detail-top{flex-direction:column;align-items:flex-start}.print-meta{grid-template-columns:105px 1fr}.print-header{display:block}.sheet{padding:13px}.auth-card{padding:25px}.secret{align-items:flex-start;flex-direction:column}}
@media print{body{background:#fff;color:#000;font-family:Arial,sans-serif}.topbar,.sidebar,.print-actions{display:none!important}.sheet{padding:0;max-width:none}.print-header strong{color:#000}.print-table{font-size:9pt}.print-table th,.print-table td{break-inside:avoid}.print-meta{font-size:10pt}.sheet{min-height:0}a{color:#000}}

/* V2 - klassischer Aufbau wie MA_Online.Client: Tabs, Artikel, Warenkorb */
.classic-nav{max-width:1690px;margin:0 auto;padding:0 24px;display:flex;flex-wrap:wrap;gap:5px;border-bottom:1px solid #cdd9df;background:#eef2f5}
.classic-tab{border:0;border-bottom:3px solid transparent;border-radius:5px 5px 0 0;background:transparent;color:#355364;font-weight:650;padding:12px 16px;min-height:47px;white-space:nowrap}
.classic-tab:hover{background:#e1e9ed}.classic-tab.active{color:#075c74;border-bottom-color:#096b86;background:#fff}
.nav-count{display:inline-block;border-radius:25px;background:#d7e6ed;color:#225a70;padding:0 6px;font-size:.72rem;margin-left:3px}
.classic-content{max-width:1690px;margin:0 auto;padding:21px 24px 48px}
.classic-content .heading{margin-bottom:17px}.classic-content .heading h1{font-size:1.45rem;letter-spacing:0}
.classic-content .heading p{font-size:.88rem;color:#596e7a}
.classic-form-area{width:100%;min-width:0}.classic-search{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.classic-search>input{flex:1 1 245px;max-width:550px;min-width:150px}
.classic-search .search-select{display:flex;align-items:center;gap:8px;white-space:nowrap;font-weight:500;font-size:.84rem}
.classic-search select{min-width:180px;max-width:215px}
.classic-search .checkline{font-size:.82rem;font-weight:450;min-height:36px}
.classic-search .btn{white-space:nowrap}
.compact-panel{border-radius:8px;margin-bottom:11px;box-shadow:none;overflow:hidden}
.classic-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 13px;background:#f6f8f9;border-bottom:1px solid #e1e7eb}
.classic-section-title h2{margin:0;font-size:1.04rem;font-weight:700}
.classic-section-title span{white-space:nowrap}
.article-scroll{height:clamp(210px,37vh,410px);overflow:auto;overscroll-behavior:contain}
.cart-scroll{max-height:230px;overflow:auto}
.classic-table{border-collapse:collapse;width:100%;font-size:.82rem;text-align:left}
.articles-table{min-width:1380px}.cart-table{min-width:900px}
.classic-table th{font-size:.76rem;background:#e7edf1;color:#2d4758;text-transform:none;letter-spacing:0;font-weight:750;white-space:nowrap;position:sticky;top:0;z-index:2;padding:7px 8px;border-bottom:1px solid #d3dce2}
.classic-table td{padding:5px 8px;border-bottom:1px solid #e9eef1;white-space:nowrap;vertical-align:middle}
.classic-table td:nth-child(2){max-width:420px;overflow:hidden;text-overflow:ellipsis}
.classic-table tr:nth-child(even){background:#f7fafb}.classic-table tr:hover{background:#e6f0f4}
.classic-table .r{text-align:right}.classic-table .center{text-align:center}
.classic-table .empty{padding:24px;text-align:center;color:#8296a0}
.classic-table .add-plus{min-height:29px;padding:3px 10px;font-weight:750;font-size:1rem;border-color:#91b9c5;color:#0c647e;background:#eff8fb}
.articles-table th:last-child{position:sticky;right:0;z-index:4;background:#e7edf1}
.articles-table td:last-child{position:sticky;right:0;background:#fafcfd;border-left:1px solid #dfe7eb}
.classic-free-row{padding:12px 13px;display:grid;grid-template-columns:minmax(240px,1fr) 115px 140px auto;gap:12px;align-items:end}
.classic-free-row label,.project-label{font-size:.8rem}.classic-free-row input{margin-top:3px}
.classic-free-row .btn{min-height:40px}
.cart-table .qty-edit{width:88px;min-height:31px;padding:4px 7px;text-align:center;border-radius:4px}
.cart-table th.qty-col,.cart-table td.qty-col{text-align:center}
.finalize-form{padding:11px 13px 12px}.project-label{max-width:465px}.project-label input{margin-top:3px}
.draft-state{font-size:.76rem;color:#4c7789;margin:10px 0 7px}
.draft-state.is-warning{color:#a03838;font-weight:700}.classic-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:12px}
.classic-actions .btn{font-size:.83rem}.classic-actions .btn.primary{margin-left:7px}
.draft-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap;white-space:nowrap}
#draftConflict .btn{margin:5px 0 0 4px}
/* Erst Tablet, dann Handy: Tabellen bleiben horizontal scrollbar, die Plus-Spalte bleibt sichtbar. */
@media(max-width:1100px){.classic-nav{padding:0 14px}.classic-content{padding:18px 14px 40px}.classic-search .search-select{flex:1 1 200px}.classic-search select{max-width:none}.classic-free-row{grid-template-columns:minmax(200px,1fr) 100px 130px auto}}
@media(max-width:760px){.classic-nav{flex-wrap:nowrap;overflow-x:auto;padding:0 9px}.classic-tab{font-size:.78rem;padding:10px;flex-shrink:0}.classic-content{padding:16px 9px 35px}.classic-content .heading h1{font-size:1.3rem}.classic-section-title{padding:8px}.classic-search{gap:7px}.classic-search>input{flex:1 1 100%}.classic-search .search-select{flex:1 1 100%}.classic-search .checkline{flex:1 1 38%;white-space:normal}.classic-free-row{grid-template-columns:minmax(0,1fr) minmax(85px,.32fr);padding:9px;gap:8px}.classic-free-row label:first-child{grid-column:1 / -1}.classic-free-row button{grid-column:1 / -1}.article-scroll{height:340px}.cart-scroll{max-height:250px}.classic-actions{justify-content:stretch}.classic-actions .btn{flex:1 1 44%;min-width:0;white-space:normal}.classic-actions .btn.primary{margin-left:0}.classic-table td{font-size:.83rem}.draft-buttons{min-width:190px}}
/* Hell- und Dunkelmodus wie im bisherigen Client (ohne JavaScript-Styles von Fremdservern). */
:root[data-theme=dark]{color-scheme:dark;background:#161d23;color:#e3eaf0}
:root[data-theme=dark] body{background:#161d23;color:#e3eaf0}
:root[data-theme=dark] .topbar,:root[data-theme=dark] .panel,:root[data-theme=dark] .auth-card,:root[data-theme=dark] .modal{background:#222e38;border-color:#42515b;color:#e5eaf0}
:root[data-theme=dark] .classic-nav,:root[data-theme=dark] .classic-section-title,:root[data-theme=dark] .classic-table th{background:#25323d;border-color:#44525e;color:#e3eaf0}
:root[data-theme=dark] .classic-tab,:root[data-theme=dark] .brand,:root[data-theme=dark] .brand b,:root[data-theme=dark] label,:root[data-theme=dark] h1,:root[data-theme=dark] h2,:root[data-theme=dark] strong,:root[data-theme=dark] .data-table td,:root[data-theme=dark] .data-table b,:root[data-theme=dark] .classic-table td,:root[data-theme=dark] .classic-table th{color:#e5ecf0}
:root[data-theme=dark] .classic-tab.active{background:#1b4352;border-bottom-color:#76b3c9}
:root[data-theme=dark] .classic-table tr:nth-child(even){background:#273641}
:root[data-theme=dark] .classic-table tr:hover{background:#334856}
:root[data-theme=dark] .articles-table td:last-child{background:#27343e;border-color:#455560}
:root[data-theme=dark] .data-table th{background:#2a3944;color:#b4c5cf}
:root[data-theme=dark] .data-table td{border-color:#45525b}
:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{background:#19252d;color:#e9eff1;border-color:#536575}
:root[data-theme=dark] .btn.outline{color:#e2e9ed;border-color:#607280}
:root[data-theme=dark] .classic-section-title .muted,:root[data-theme=dark] .muted,:root[data-theme=dark] .heading p,:root[data-theme=dark] .brand small{color:#b3c5cf}
:root[data-theme=dark] .alert{background:#1c414f;border-color:#507383;color:#d6e5eb}
:root[data-theme=dark] .alert.danger{background:#4c272a;border-color:#94535a;color:#fff}
:root[data-theme=dark] .link{color:#8bd5ef}

/* Gleiche Druckfunktionen (kompakt/ausfuehrlich) wie im bisherigen Client. */
.print-links{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:760px){.print-links{width:100%}.print-links .btn{flex:1 1 160px}}

/* V3 / BBH-CD – Logo in Originaldatei eingebettet, ueber CSS passend zugeschnitten.
   Farben aus dem vom Auftraggeber bereitgestellten BBH-Logo:
   Cyan #00A3E1, Marine #143D56, Grau #B2B3B3. */
:root {
  --bbh-cyan: #00a3e1;
  --bbh-navy: #143d56;
  --bbh-action: #006d99;
  --bbh-ice: #e7f7fc;
  --bbh-border: #d8e7ed;
}
.logo-window {
  display: inline-block !important;
  flex: 0 0 auto;
  width: 124px;
  height: 54px;
  background-image: url('/images/bbh-firmenlogo-original.png');
  background-size: 124px 124px;
  background-position: 0 -20px;
  background-repeat: no-repeat;
  font-size: 0 !important;
  color: transparent !important;
}
.topbar { height: 64px; border-bottom: 3px solid var(--bbh-cyan); box-shadow: 0 2px 9px #163b5014; }
.bar-inner { padding: 0 20px; max-width: 1800px; gap: 12px; }
.brand { gap: 12px; min-width: 0; }
.header-logo-shell { display:inline-flex; align-items:center; justify-content:center; padding:3px 6px; border-radius:7px; background:#edf4f7; border:1px solid #d6e4eb; box-shadow: inset 0 1px 0 rgba(255,255,255,.5); }
.brand b { font-size: 1.06rem; color: #183a50; letter-spacing: -.015em; }
.brand small { color: #687e89; font-size: .70rem; margin-top: 0; }
.user-actions { gap: 8px; }
.user-actions .btn, .user-actions .icon-button { min-height: 32px; }
.classic-nav {
  max-width: none; margin: 0; padding: 0 max(18px, calc((100vw - 1750px) / 2));
  background: var(--bbh-navy); border-bottom: 2px solid #0e344b; gap: 2px;
  min-height: 41px; align-items: end;
}
.classic-tab { min-height: 39px; padding: 8px 14px 7px; font-size: .84rem; font-weight: 650;
  border-radius: 0; color: #e9f6fc; border-bottom: 3px solid transparent; }
.classic-tab:hover { background: #255770; color: #fff; }
.classic-tab.active { background: #f6fbfd; color: #123b54; border-bottom-color: var(--bbh-cyan); }
.classic-tab .nav-count { background: #e7f7fc; color: #194560; }
.classic-content { max-width: 1800px; padding: 13px 18px 35px; }
.classic-content .heading { margin-bottom: 12px; }
.classic-content .heading h1 { font-size: 1.31rem; font-weight: 780; }
.classic-content .heading p { margin-bottom: 0; line-height: 1.3; font-size: .82rem; }
.panel { border-color: var(--bbh-border); }
.panel.pad { padding: 14px 16px; }
.compact-panel { margin-bottom: 9px; }
.classic-section-title { padding: 7px 11px; background: #f2f9fc; border-bottom-color: var(--bbh-border); }
.classic-section-title h2 { font-size: .98rem; }
.classic-table th { padding: 6px 7px; background: #e5f2f8; border-bottom-color: #c8dfe9; }
.classic-table td { padding: 4px 7px; }
.classic-search { gap: 7px; margin-bottom: 8px; }
.classic-search .btn { min-height: 35px; }
.classic-free-row { padding: 9px 11px; }
.finalize-form { padding: 9px 11px 11px; }
.article-scroll { height: clamp(210px, 39vh, 460px); }
.btn.primary { background: var(--bbh-action); border-color: var(--bbh-action); color: #fff; }
.btn.primary:hover { background: #005879; }
.btn.outline:hover { border-color: var(--bbh-cyan); }
input:focus, select:focus, textarea:focus { border-color: var(--bbh-action); box-shadow: 0 0 0 3px #00a3e125; }
input[type=checkbox] { accent-color: var(--bbh-action); }
.auth-wrap { background: linear-gradient(140deg, #e1f3f9 0%, #f6fbfd 55%, #edf5f8 100%); }
.auth-card { border-top: 4px solid var(--bbh-cyan); box-shadow: 0 12px 40px #0a446018;
  padding: 26px 28px; width: min(100%, 435px); }
.auth-card h1 { font-size: 1.65rem; margin: 13px 0 5px; }
.auth-card form { gap: 11px; margin: 17px 0; }
.brand-login { display: flex; align-items: center; gap: 11px; }
.brand-login-solo { justify-content: flex-start; }
.brand-mini .brand-login-text { display: flex; flex-direction: column; color: var(--bbh-navy);
  font-size: 1.18rem; font-weight: 800; line-height: 1.14; }
.brand-mini .brand-login-text small { font-size: .67rem; color: #607f91; font-weight: 550; white-space: nowrap; }
.brand-mini .logo-window { width: 135px; height: 58px;
  background-size: 135px 135px; background-position: 0 -22px; }
.password-help { padding: 11px 12px; border-radius: 7px; background: var(--bbh-ice);
  border-left: 3px solid var(--bbh-cyan); color: #28516a; font-size: .82rem; line-height: 1.5; }
.auth-card .auth-secondary-form { margin: 13px 0 0; }
.modal-admin { width: min(100%, 510px); text-align: left; padding: 24px 25px; max-height: calc(100vh - 32px); overflow-y: auto; }
.modal-admin h2 { margin: 2px 0 4px; font-size: 1.26rem; color: #143d56; }
.modal-admin .modal-overline { color: var(--bbh-action); font-size: .76rem; font-weight: 750; letter-spacing: .055em; margin-bottom: 4px; }
.modal-admin form { margin-top: 15px; gap: 10px; }
.modal-admin .modal-actions { display: flex; gap: 9px; justify-content: flex-end; margin-top: 6px; }
.modal-admin .modal-divider { height: 1px; background: var(--bbh-border); margin: 3px 0; }
.modal-admin .password-option { display: flex; align-items: center; gap: 10px; font-size: .86rem; font-weight: 550;
  margin: 5px 0; }
.modal-admin .password-option input { margin: 0; }
.modal-admin .secret { margin: 13px 0; }
.modal-admin .secret code { font-size: 1rem; flex: 1; user-select: all; min-width: 0; }
.modal-admin .btn { min-height: 36px; }
.admin-create-panel, .admin-users-panel { margin-bottom: 10px; }
.admin-users th { white-space: nowrap; }
.admin-users td { vertical-align: middle; padding: 7px 9px; }
.admin-users td:first-child { min-width: 170px; }
.admin-users select { min-height: 34px; padding: 6px 9px; width: 150px; }
.admin-users .user-buttons { display: flex; flex-wrap: wrap; gap: 4px; white-space: normal; min-width: 300px; }
.admin-users .user-buttons .btn { margin: 0; min-height: 31px; }
.admin-users .pill.block { background: #fff0d9; color: #8b5310; }
.admin-users .must-change { color: #ab6116; font-weight: 600; }
.admin-create-panel .form-grid.three { align-items: end; gap: 9px; }
.admin-create-panel .form-grid.three button { min-height: 40px; }
.admin-note { margin: 8px 0 0; }
.slim-alert { padding: 7px 12px; margin-bottom: 10px; }
.info-strip { padding: 9px 12px; margin-bottom: 9px; }
.print-header { justify-content: flex-start; gap: 17px; border-color: var(--bbh-cyan); }
.print-header h1 { flex: 1; margin: 0; }
.print-header .print-logo { width: 110px; height: 47px; background-size: 110px 110px; background-position: 0 -18px; }
@media(max-width:920px) {
 .bar-inner { padding: 0 11px; }
 .classic-nav { padding: 0 8px; flex-wrap: nowrap; overflow-x: auto; }
 .classic-tab { white-space: nowrap; flex: 0 0 auto; }
 .classic-content { padding: 11px 10px 30px; }
 .admin-users .user-buttons { min-width: 255px; }
}
@media(max-width:600px) {
 .topbar { height: 58px; }
 .brand .header-logo { width: 90px; height: 39px; background-size: 90px 90px; background-position: 0 -15px; }
 .brand { gap: 4px; }
 .header-logo-shell { padding: 2px 4px; }
 .brand b { font-size: .88rem; }
 .brand small { display: none; }
 .user-actions { gap: 4px; }
 .user-actions .btn.small { padding: 6px 8px; font-size: .74rem; }
 .classic-nav { padding: 0 4px; }
 .classic-tab { min-height: 36px; padding: 7px 10px; font-size: .78rem; }
 .classic-content .heading h1 { font-size: 1.2rem; }
 .auth-card { padding: 20px 18px; }
 .brand-mini .logo-window { width: 108px; height: 48px; background-size: 108px 108px; background-position: 0 -18px; }
 .brand-mini .brand-login-text { font-size: 1rem; }
 .brand-mini .brand-login-text small { font-size: .61rem; }
 .modal-admin { padding: 22px 16px; }
 .modal-admin .modal-actions { flex-direction: column-reverse; }
 .modal-admin .modal-actions button { width: 100%; }
 .print-header { gap: 8px; }
}
:root[data-theme=dark] .classic-nav { background: #0c2638; border-color: #183747; }
:root[data-theme=dark] .classic-tab { color: #e3f3f8; }
:root[data-theme=dark] .classic-tab.active { color: #113a52; background: #e4f5fb; }
:root[data-theme=dark] .classic-section-title { background: #223947; }
:root[data-theme=dark] .modal-admin h2 { color: #e5eef4; }
:root[data-theme=dark] .modal-admin .password-option { color: #d9e7ec; }
:root[data-theme=dark] .modal-admin .modal-overline { color: #7bd8f6; }
:root[data-theme=dark] .brand b { color: #e5eef4; }
:root[data-theme=dark] .password-help { background: #173a4f; color: #c8e4f0; }
@media print { .auth-wrap,.auth-card,.modal-mask,.classic-nav { display: none !important; } }
/* Kein Schriftrest des grossen Original-Logos unterhalb des Kopfsymbols. */
.logo-window { height: 51px; }
.brand-mini .logo-window { height: 55px; }
.print-header .print-logo { height: 45px; }
@media (min-width: 1080px) {
 .admin-create-panel .form-grid.three { grid-template-columns: 1.2fr 1.2fr .9fr auto; }
 .admin-create-panel .form-grid.three button { min-width: 170px; }
}
@media (max-width: 600px) { .brand .header-logo { height: 37px; } .brand-mini .logo-window { height: 44px; } }
.print-logo-crop { width: 110px; height: 45px; flex: 0 0 110px; position: relative; overflow: hidden; display: block; }
.print-logo-crop img { position: absolute; top: -18px; left: 0; width: 110px; height: 110px; max-width: none; }
@media print { .print-logo-crop img { visibility: visible; } }

/* V6: mehrere getrennte Entwuerfe mit gut sichtbarer Aktion auch auf Tablets. */
.cart-title-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.cart-title-actions .btn { white-space:nowrap; }
.draft-help { margin:7px 0; line-height:1.45; white-space:normal; }
.draft-preview { max-width:330px; white-space:normal; }
@media (max-width:760px) {
  .cart-section-title { align-items:flex-start; flex-wrap:wrap; }
  .cart-title-actions { justify-content:space-between; width:100%; }
  .draft-preview { min-width:160px; }
}

/* V7: Eine Bemerkung je Materialposition in der kompakten Bearbeitung.
   Die restlichen, bereits gespeicherten Felder bleiben unsichtbar erhalten. */
.edit-table.edit-table-compact { min-width: 1040px; table-layout: fixed; }
.edit-table.edit-table-compact th:first-child { width: 37%; }
.edit-table.edit-table-compact th:nth-child(2) { width: 12%; }
.edit-table.edit-table-compact th:nth-child(3),
.edit-table.edit-table-compact th:nth-child(4) { width: 11%; }
.edit-table.edit-table-compact th:nth-child(5) { width: 29%; }
.edit-table.edit-table-compact th:nth-child(5) { text-align: left; }
.edit-table.edit-table-compact td.edit-remark-cell { min-width: 250px; }
.edit-table .edit-remark {
  width: 100%; min-height: 47px; box-sizing: border-box;
  padding: 7px 9px; font: inherit; line-height: 1.35;
  border-radius: 7px; resize: vertical; white-space: pre-wrap;
}
.data-table td.remark-display { min-width: 250px; white-space: pre-wrap; overflow-wrap: anywhere; }

/* V8: Materialanforderungen direkt unter der Tabellenzeile oeffnen und bearbeiten. */
/* Flexible Spaltenbreiten: Der Aufklappen-Knopf bleibt auf 900px-Tablets sichtbar. */
.request-table { table-layout:fixed; min-width:770px; }
.request-list-table th:nth-child(1) { width:19%; }
.request-list-table th:nth-child(2) { width:13%; }
.request-list-table th:nth-child(3) { width:17%; }
.request-list-table th:nth-child(4) { width:14%; }
.request-list-table th:nth-child(5) { width:10%; }
.request-list-table th:nth-child(6) { width:12%; }
.request-list-table th:nth-child(7) { width:15%; }
.request-edit-table th:nth-child(1) { width:27%; }
.request-edit-table th:nth-child(2) { width:21%; }
.request-edit-table th:nth-child(3) { width:18%; }
.request-edit-table th:nth-child(4) { width:18%; }
.request-edit-table th:nth-child(5) { width:16%; }
.request-summary-row > td { overflow-wrap:anywhere; }
.request-summary-row.is-expanded > td { background: var(--ui-row-hover); }
.request-toggle-button { display:inline-flex; gap:7px; align-items:center; justify-content:center; min-width:112px; white-space:nowrap; }
.request-toggle-button .chevron { display:inline-block; transform:rotate(-90deg); transition:transform .16s ease; font-size:1.05rem; }
.request-toggle-button[aria-expanded="true"] .chevron { transform:rotate(0); }
.request-inline-row[hidden] { display:none; }
.request-inline-row > td {
  padding:0 !important;
  border-bottom:2px solid var(--ui-border-strong) !important;
  background:var(--ui-surface-soft) !important;
}
.request-inline-body { padding:16px 18px 18px; color:var(--ui-text); }
.request-inline-body .inline-loading { margin:0; padding:12px 0; }
.inline-request-meta { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:13px; }
.inline-request-meta > div { min-width:0; display:flex; flex-direction:column; gap:3px; }
.inline-request-meta small { font-size:.75rem; color:var(--ui-muted); }
.inline-request-meta b { color:var(--ui-heading); overflow-wrap:anywhere; font-size:.85rem; }
.inline-positions-scroll { max-width:100%; overflow-x:auto; margin:6px 0 13px; border:1px solid var(--ui-border); border-radius:7px; }
.request-inline-body .inline-positions-table { min-width:1020px; }
.request-inline-body .edit-table.edit-table-compact { min-width:1020px; }
.request-inline-body .data-table th { padding:9px 11px; }
.request-inline-body .data-table td { padding:9px 11px; }
.request-inline-body .data-table tbody tr:last-child td { border-bottom:0; }
.request-inline-body .inline-note { margin:9px 0 12px; }
.request-inline-body .inline-footer {
  display:flex; justify-content:space-between; align-items:center;
  gap:12px; flex-wrap:wrap; padding-top:9px;
}
.request-inline-body .inline-print-links,
.request-inline-body .inline-edit-actions,
.inline-heading-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.request-inline-body [data-inline-edit-form] .form-line { margin-bottom:11px; }
.request-inline-body .inline-edit-note-label { display:block; max-width:860px; margin-top:9px; }
.request-inline-body .inline-edit-note-label textarea { min-height:54px; width:100%; }
.request-inline-body .edit-remark { min-height:46px; }
.request-inline-body .inline-locked-preview { border-top:1px solid var(--ui-border); padding-top:14px; }
@media (max-width:900px) {
  .request-inline-body { padding:12px 10px 15px; }
  .inline-request-meta { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .request-inline-body .inline-footer { align-items:stretch; }
  .request-inline-body .inline-print-links { justify-content:flex-start; }
}
@media (max-width:520px) {
  .inline-request-meta { grid-template-columns:1fr 1fr; }
  .request-inline-body .inline-footer,
  .request-inline-body .inline-edit-actions { flex-direction:column; align-items:stretch; }
  .request-inline-body .inline-edit-actions .btn,
  .request-inline-body .inline-footer > .btn { width:100%; }
}
/* V9 - Platzsparende Ansicht und echtes mobiles Kartenlayout.
   Layout only. Colors are provided by theme-contrast.css for light/dark modes.
   Optimized for Windows desktop, tablets, and narrow phones (320px+). */
.mobile-nav-wrap, .mobile-summary-meta, .logout-glyph { display: none; }

/* Desktop: less empty space without reducing text legibility. */
.topbar { height: 55px; }
.bar-inner { padding: 0 14px; }
.header-logo-shell { padding: 1px 4px; }
.brand .header-logo { width: 101px; height: 43px; background-size: 101px 101px; background-position: 0 -17px; }
.brand b { font-size: .97rem; }
.brand small { font-size: .65rem; }
.brand { gap: 9px; }
.user-actions { gap: 7px; }
.user-name { font-size: .86rem; }
.user-name small { margin-top: 2px; }
.user-actions .btn.small { min-height: 33px; padding: 6px 9px; }
.user-actions .icon-button { min-height: 34px; }
.classic-nav { min-height: 36px; }
.classic-tab { min-height: 35px; padding: 6px 12px; font-size: .80rem; }
.classic-content { padding: 11px 14px 26px; }
.classic-content .heading { align-items: center; margin-bottom: 10px; gap: 10px; }
.classic-content .heading h1 { font-size: 1.18rem; margin-bottom: 2px; }
.classic-content .heading p { font-size: .76rem; line-height: 1.35; }
.classic-content .heading .btn { min-height: 35px; padding: 7px 12px; }
.compact-kpis { gap: 8px; margin-bottom: 10px; }
.compact-kpis .kpi { min-height: 59px; padding: 8px 11px; border-radius: 8px; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:8px; }
.compact-kpis .kpi span { font-size: .79rem; line-height: 1.2; }
.compact-kpis .kpi strong { font-size: 1.45rem; line-height: 1; margin: 0; font-variant-numeric: tabular-nums; }
.panel { margin-bottom: 10px; border-radius: 9px; }
.panel.pad { padding: 10px 12px; }
.panel-toolbar { padding: 7px 10px; gap: 8px; }
.panel-toolbar .tabs { gap: 2px; }
.panel-toolbar .tab { padding: 6px 9px; border-radius: 5px; }
.panel-toolbar .tools { flex: 0 1 auto; min-width: 0; }
.panel-toolbar .tools input { min-width: 0; width: clamp(160px,19vw,300px); min-height: 34px; padding: 6px 9px; }
.refresh-button { min-width: 34px; }
.refresh-button > span:first-child { font-size: 1.15rem; line-height: 1; }
.request-table th { padding: 7px 9px; font-size: .68rem; }
.request-summary-row > td { padding: 7px 9px; font-size: .81rem; }
.request-toggle-button { min-height: 30px; padding: 4px 8px; min-width: 99px; }
.request-inline-body { padding: 9px 12px 12px; }
.inline-request-meta { gap: 8px; margin-bottom: 8px; }
.inline-request-meta > div { gap: 1px; }
.inline-request-meta small { font-size: .70rem; }
.inline-request-meta b { font-size: .81rem; }
.inline-positions-scroll { margin: 4px 0 8px; }
.request-inline-body .data-table th { padding: 6px 8px; }
.request-inline-body .data-table td { padding: 6px 8px; }
.request-inline-body .edit-remark { min-height: 39px; padding: 6px 8px; }
.request-inline-body .inline-edit-note-label { margin-top: 6px; }
.request-inline-body .inline-edit-note-label textarea { min-height: 42px; }
.request-inline-body .inline-footer { padding-top: 6px; gap: 7px; }
.request-inline-body .inline-edit-actions { gap: 5px; }
.request-inline-body .inline-footer .btn { min-height: 33px; padding: 6px 10px; }
.request-inline-body [data-inline-edit-form] .form-line { margin-bottom: 7px; }
.edit-request-panel > .section-header { margin-bottom: 8px; }
.edit-request-panel > .section-header h2 { margin: 0; }
.edit-request-panel .table-scroll { margin-top: 0; }
.draft-intro { padding: 8px 10px; margin-bottom: 9px; }
.drafts-table td { padding: 8px 10px; }
.drafts-table th { padding: 7px 10px; }
.classic-section-title { padding: 6px 9px; }
.classic-content .alert { padding: 8px 10px; margin-bottom: 8px; }
.mobile-floating-save { display: none !important; }

/* Optional larger desktop density, persistent only in this browser. */
@media (min-width: 901px) {
  :root[data-density="normal"] .classic-content { padding: 19px 24px 44px; }
  :root[data-density="normal"] .compact-kpis { gap: 14px; margin-bottom: 18px; }
  :root[data-density="normal"] .compact-kpis .kpi { min-height: 94px; padding: 14px 18px; }
  :root[data-density="normal"] .compact-kpis .kpi strong { font-size: 1.8rem; }
  :root[data-density="normal"] .panel-toolbar { padding: 14px; }
  :root[data-density="normal"] .request-summary-row > td { padding: 13px 14px; }
  :root[data-density="normal"] .request-inline-body { padding: 15px 18px; }
  :root[data-density="normal"] .request-inline-body .data-table td { padding: 11px; }
}

/* Tablets: summary list becomes true full-width cards (no sideways scrolling). */
@media (max-width: 900px) {
  .topbar { height: 52px; }
  .classic-content { padding: 9px 10px 24px; }
  .compact-kpis { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
  .compact-kpis .kpi { padding: 7px 9px; min-height: 53px; }
  .compact-kpis .kpi span { font-size: .72rem; }
  .compact-kpis .kpi strong { font-size: 1.3rem; }
  .panel-toolbar { align-items: flex-start; }
  .panel-toolbar .tools { flex: 1 1 auto; }
  .panel-toolbar .tools input { width: 100%; }
  .request-table { width:100%; min-width:0; display:block; table-layout:auto; border-collapse:separate; }
  .request-table thead { display:none; }
  .request-table tbody { display:flex; flex-direction:column; gap:0; }
  .request-table .request-summary-row { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto;
    gap: 4px 10px; align-items:center; padding: 9px 11px; border-bottom: 1px solid var(--ui-border); }
  .request-table .request-summary-row > td { padding:0; border:none; min-width:0; }
  .request-table .request-summary-row > td:first-child { grid-column:1; grid-row:1 / span 2; align-self:center; }
  .request-list-table .request-summary-row > td:nth-child(2),
  .request-list-table .request-summary-row > td:nth-child(3),
  .request-list-table .request-summary-row > td:nth-child(4),
  .request-list-table .request-summary-row > td:nth-child(5),
  .request-edit-table .request-summary-row > td:nth-child(2),
  .request-edit-table .request-summary-row > td:nth-child(4) { display:none; }
  .request-list-table .request-summary-row > td:nth-child(6),
  .request-edit-table .request-summary-row > td:nth-child(3) { grid-column:2; grid-row:2; text-align:right; }
  .request-list-table .request-summary-row > td:nth-child(7),
  .request-edit-table .request-summary-row > td:nth-child(5) { grid-column:2; grid-row:1; }
  .request-table .mobile-summary-meta { display:block; margin-top:3px; color:var(--ui-muted); font-size:.72rem; font-weight:400; line-height:1.3; overflow-wrap:anywhere; }
  .request-table .request-summary-row .link { text-align:left; font-size:.83rem; line-height:1.3; overflow-wrap:anywhere; }
  .request-table .request-toggle-button { min-width:90px; min-height:34px; }
  .request-table .request-inline-row { display:block; min-width:0; }
  .request-table .request-inline-row[hidden] { display:none; }
  .request-table .request-inline-row > td { display:block; width:100%; }
  .request-inline-body { padding:9px 10px 11px; }
  .inline-request-meta { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-bottom:8px; }
  .inline-request-meta > div:first-child { display:none; } /* already shown above the panel */
  .request-inline-body .inline-positions-scroll { overflow:visible; border:0; border-radius:0; margin:6px 0; }
  .request-inline-body .inline-positions-table,
  .request-inline-body .edit-table.edit-table-compact { display:block; min-width:0; width:100%; table-layout:auto; }
  .request-inline-body .inline-positions-table thead,
  .request-inline-body .edit-table.edit-table-compact thead { display:none; }
  .request-inline-body .inline-positions-table tbody,
  .request-inline-body .edit-table.edit-table-compact tbody { display:grid; grid-template-columns:1fr; gap:7px; }
  .request-inline-body .inline-positions-table tbody tr,
  .request-inline-body .edit-table.edit-table-compact tbody tr { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px 8px;
    padding:8px; background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:7px; min-width:0; }
  .request-inline-body .edit-table.edit-table-compact tbody tr { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .request-inline-body .inline-positions-table tbody tr > td,
  .request-inline-body .edit-table.edit-table-compact tbody tr > td { padding:0 !important; min-width:0 !important; width:auto !important; border:0 !important;
    display:block; color:var(--ui-text); background:transparent; text-align:left !important; font-size:.83rem; }
  .request-inline-body .inline-positions-table tbody tr > td:first-child,
  .request-inline-body .edit-table.edit-table-compact tbody tr > td:first-child { grid-column:1 / -1; padding-bottom:4px !important;
    border-bottom:1px solid var(--ui-border) !important; }
  .request-inline-body .inline-positions-table tbody tr > td:last-child,
  .request-inline-body .edit-table.edit-table-compact tbody tr > td:last-child { grid-column:1 / -1; }
  .request-inline-body .inline-positions-table tbody tr > td[data-mobile-label]::before,
  .request-inline-body .edit-table.edit-table-compact tbody tr > td[data-mobile-label]::before {
    content:attr(data-mobile-label); display:block; color:var(--ui-muted); font-size:.69rem;
    font-weight:650; margin-bottom:3px; line-height:1.2; }
  .request-inline-body .edit-table.edit-table-compact tbody tr .edit-num { width:100%; min-width:0; min-height:42px; padding:6px 8px; font-size:16px; }
  .request-inline-body .edit-table.edit-table-compact tbody tr .edit-remark { width:100%; min-height:44px; font-size:16px; }
  .request-inline-body .inline-edit-note-label { max-width:none; }
  .request-inline-body .inline-edit-note-label textarea { font-size:16px; }
  /* Drafts likewise use cards rather than a forced wide table. */
  .drafts-scroll { overflow:visible; }
  .drafts-table { display:block; min-width:0; width:100%; }
  .drafts-table thead { display:none; }
  .drafts-table tbody { display:grid; gap:7px; padding:8px; }
  .drafts-table tbody tr { display:grid; grid-template-columns:1fr auto; gap:5px 10px;
    padding:10px; background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:8px; }
  .drafts-table tbody tr > td { padding:0; border:0; min-width:0; font-size:.81rem; }
  .drafts-table tbody tr > td:first-child, .drafts-table tbody tr > td:nth-child(2),
  .drafts-table tbody tr > td:last-child { grid-column:1 / -1; }
  .drafts-table tbody tr > td[data-mobile-label]::before { content:attr(data-mobile-label) ': '; font-size:.72rem; color:var(--ui-muted); }
  .drafts-table tbody tr > .draft-preview { max-width:none; }
  .drafts-table .draft-buttons { display:flex; gap:7px; flex-wrap:wrap; min-width:0; }
  .drafts-table .draft-buttons .btn { min-height:37px; }
}

/* Narrow tablets and phones: main navigation is a select, not a scrollable row. */
@media (max-width: 640px) {
  .bar-inner { padding:0 8px; gap:5px; }
  .topbar { height:49px; }
  .brand { gap:5px; }
  .brand .header-logo { width:70px; height:32px; background-size:70px 70px; background-position:0 -11px; }
  .header-logo-shell { border-radius:5px; padding:2px 3px; }
  .brand b { font-size:.80rem; }
  .brand small { display:none; }
  .user-name, .density-button, .logout-label, .classic-nav { display:none !important; }
  .user-actions { gap:4px; flex:0 0 auto; }
  .user-actions .btn.small, .user-actions .icon-button { width:35px; height:36px; min-width:35px; min-height:36px; padding:0; }
  .theme-button #themeCaption { display:none; }
  .theme-button #themeGlyph { font-size:1.1rem; }
  .logout-glyph { display:inline; font-size:1.25rem; line-height:1; }
  .settings-button { font-size:1.23rem; display:inline-flex; align-items:center; justify-content:center; }
  .mobile-nav-wrap { display:flex; align-items:center; gap:9px; padding:5px 9px;
    background:var(--ui-nav); color:var(--ui-nav-text); border-bottom:1px solid var(--ui-border); }
  .mobile-nav-wrap label { color:var(--ui-nav-text); font-size:.75rem; font-weight:650; white-space:nowrap; }
  .mobile-nav-wrap select { flex:1; width:auto; min-width:0; min-height:38px; margin:0; padding:5px 8px;
    font-size:16px; background:var(--ui-input); color:var(--ui-input-text); }
  .classic-content { padding:8px 8px 22px; }
  .classic-content .heading { gap:8px; margin-bottom:8px; align-items:center; }
  .classic-content .heading h1 { font-size:1.06rem; }
  .classic-content .heading p { display:none; }
  .classic-content .heading .btn { min-height:35px; padding:6px 8px; font-size:.77rem; }
  .compact-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; margin-bottom:8px; }
  .compact-kpis .kpi { min-height:55px; padding:6px 4px; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:3px; }
  .compact-kpis .kpi span { font-size:.68rem; overflow-wrap:anywhere; }
  .compact-kpis .kpi strong { font-size:1.25rem; }
  .panel-toolbar { display:grid; grid-template-columns:1fr; padding:7px; gap:6px; }
  .panel-toolbar .tabs { display:flex; flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; gap:3px; max-width:100%; padding-bottom:2px; scrollbar-width:thin; }
  .panel-toolbar .tab { font-size:.74rem; padding:6px 8px; }
  .panel-toolbar .tools { display:flex; width:100%; gap:6px; }
  .panel-toolbar .tools input { flex:1; width:0; min-width:0; font-size:16px; }
  .panel-toolbar .refresh-button { width:38px; min-width:38px; padding:5px; }
  .panel-toolbar .refresh-caption { display:none; }
  .request-table .request-summary-row { padding:8px; gap:3px 5px; }
  .request-table .request-toggle-button { font-size:.72rem; min-width:86px; gap:2px; padding:4px 6px; }
  .request-table .mobile-summary-meta { font-size:.70rem; }
  .request-inline-body { padding:8px; }
  .inline-request-meta { gap:5px; grid-template-columns:1fr 1fr; }
  .inline-request-meta > div:nth-child(3) { grid-column:1 / -1; }
  .inline-request-meta small { font-size:.66rem; }
  .inline-request-meta b { font-size:.77rem; }
  .request-inline-body .inline-positions-table tbody tr { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .request-inline-body .edit-table.edit-table-compact tbody tr { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .request-inline-body .inline-positions-table tbody tr,
  .request-inline-body .edit-table.edit-table-compact tbody tr { padding:7px; gap:7px; }
  .request-inline-body .inline-positions-table td.remark-display { min-width:0; white-space:pre-wrap; overflow-wrap:anywhere; }
  .request-inline-body .inline-positions-table tbody tr > td:last-child,
  .request-inline-body .edit-table.edit-table-compact tbody tr > td:last-child { grid-column:1 / -1; }
  .request-inline-body .inline-footer { flex-direction:column; align-items:stretch; }
  .request-inline-body .inline-print-links { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .request-inline-body .inline-footer .btn { white-space:normal; font-size:.74rem; }
  .request-inline-body .inline-edit-actions { display:grid; grid-template-columns:1fr 1fr; gap:6px; width:100%; }
  .request-inline-body .inline-edit-actions .inline-save-button { grid-column:1 / -1; }
  .request-inline-body .inline-edit-actions .btn { width:100%; }
  .request-inline-body .inline-edit-note-label textarea { font-size:16px; }
  .request-inline-body .form-line select { min-height:40px; font-size:16px; }
  /* One-hand-accessible save button. Kept in the form, so the existing handler is used. */
  .request-inline-body [data-inline-edit-form] .mobile-floating-save {
    display:inline-flex !important; position:fixed; bottom:calc(8px + env(safe-area-inset-bottom));
    right:10px; left:10px; z-index:25; min-height:46px; border-radius:10px;
    box-shadow:0 3px 22px rgb(0 0 0 / .30); font-size:.93rem;
  }
  body:has([data-inline-edit-form]) .classic-content { padding-bottom:66px; }
  .modal-mask { padding:10px; }
  .modal { max-width:100%; max-height:calc(100dvh - 20px); overflow-y:auto; }
  .modal-admin { padding:18px 14px; }
}

@media (max-width: 360px) {
  .brand-title { display:none; }
  .compact-kpis .kpi span { font-size:.63rem; }
  .request-inline-body .inline-positions-table tbody tr,
  .request-inline-body .edit-table.edit-table-compact tbody tr { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Material search and cart usable on phone/tablet, no 1300px horizontal table. */
@media (max-width: 900px) {
  .article-scroll { height:min(47vh,460px); overflow-y:auto; overflow-x:hidden; }
  .articles-table, .cart-table { display:block; width:100%; min-width:0; table-layout:auto; }
  .articles-table thead, .cart-table thead { display:none; }
  .articles-table tbody, .cart-table tbody { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; padding:7px; }
  .articles-table tbody tr, .cart-table tbody tr { display:grid; padding:8px; min-width:0; gap:2px 7px;
    border:1px solid var(--ui-border); border-radius:7px; background:var(--ui-surface); }
  .articles-table td, .cart-table td { display:block; padding:0 !important; border:0 !important; overflow:visible !important; max-width:none !important;
    white-space:normal; min-width:0; color:var(--ui-text); }
  .articles-table tr[data-article-row] { grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"desc add" "nr add" "stock add" "supplier add"; align-items:center; }
  .articles-table td:nth-child(2) { grid-area:desc; font-weight:700; }
  .articles-table td:nth-child(1) { grid-area:nr; color:var(--ui-muted); font-size:.71rem; }
  .articles-table td:nth-child(6) { grid-area:stock; font-size:.76rem; }
  .articles-table td:nth-child(9) { grid-area:supplier; color:var(--ui-muted); font-size:.73rem; }
  .articles-table td:nth-child(12) { grid-area:add; position:static; background:transparent !important; }
  .articles-table td:not(:nth-child(1)):not(:nth-child(2)):not(:nth-child(6)):not(:nth-child(9)):not(:nth-child(12)) { display:none; }
  .articles-table td:nth-child(6)::before { content:'Verfügbar: '; font-weight:600; }
  .articles-table .add-plus { min-width:41px; min-height:42px; padding:5px; font-size:1.3rem; }
  .articles-table tbody tr:hover td:last-child { background:transparent !important; }
  .cart-table tbody tr { grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"name remove" "nr remove" "qty unit" "supplier supplier"; }
  .cart-table td:nth-child(1) { grid-area:nr; font-size:.72rem; color:var(--ui-muted); }
  .cart-table td:nth-child(2) { grid-area:name; font-weight:650; }
  .cart-table td:nth-child(3) { grid-area:qty; }
  .cart-table td:nth-child(3)::before { content:'Menge'; display:block; font-size:.70rem; color:var(--ui-muted); }
  .cart-table td:nth-child(4) { grid-area:unit; align-self:end; font-size:.78rem; padding-bottom:8px !important; }
  .cart-table td:nth-child(5) { grid-area:supplier; font-size:.72rem; color:var(--ui-muted); }
  .cart-table td:nth-child(6) { display:none; }
  .cart-table td:nth-child(7) { grid-area:remove; }
  .cart-table .qty-edit { width:100%; min-height:40px; font-size:16px; }
  .cart-table .icon-button { min-width:39px; min-height:39px; }
  .cart-table .empty, .articles-table .empty { grid-column:1 / -1; }
  .cart-scroll { max-height:none; overflow:visible; }
  .classic-free-row input, .classic-free-row select, .classic-search > input, .classic-search select { font-size:16px; }
}
@media (max-width:640px) {
  .articles-table tbody, .cart-table tbody { grid-template-columns:1fr; padding:5px; gap:5px; }
  .classic-free-row { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .classic-actions { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:7px; }
  .classic-actions .btn { min-width:0; width:100%; margin:0; font-size:.76rem; white-space:normal; }
  .classic-actions .btn.primary { grid-column:1 / -1; }
  .cart-section-title { gap:4px; }
  .cart-title-actions .tiny { font-size:.70rem; }
  .draft-help { font-size:.72rem; }
}

/* Account management remains usable on a phone (buttons never overflow cards). */
@media (max-width:640px) {
  .admin-users-panel { padding:7px !important; }
  .admin-users-panel .table-scroll { overflow:visible; }
  .admin-users { display:block; width:100%; min-width:0; }
  .admin-users thead { display:none; }
  .admin-users tbody { display:grid; gap:8px; }
  .admin-users tbody tr { display:grid; grid-template-columns:1fr; gap:5px;
    background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:8px; padding:9px; }
  .admin-users td { display:block; padding:0; min-width:0 !important; border:0; white-space:normal; }
  .admin-users select { width:100%; font-size:16px; }
  .admin-users .user-buttons { display:flex; flex-wrap:wrap; min-width:0; }
  .admin-users .user-buttons .btn { min-height:39px; }
}
/* V9 visual QA: keep cropped logo visible despite former <=550px V4 rule. */
@media (max-width:640px) {
  :root .brand > .header-logo-shell { display:inline-flex !important; }
  :root .brand > .brand-title { display:block !important; min-width:0; }
  :root .mobile-nav-wrap label { color:var(--ui-nav-text); }
  .classic-content .heading { flex-direction:row; align-items:center; justify-content:space-between; }
  .classic-content .heading > div { min-width:0; flex:1; }
  .classic-content .heading .btn { flex:0 0 auto; }
  .request-inline-body .inline-request-meta { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; margin-bottom:7px; }
  .request-inline-body .inline-request-meta > div { display:inline-flex; align-items:baseline; flex-direction:row; gap:4px; width:auto; min-width:0; }
  .request-inline-body .inline-request-meta > div:first-child { display:none; }
  .request-inline-body .inline-request-meta small { font-size:.70rem; }
  .request-inline-body .inline-request-meta b { font-size:.75rem; }
  .classic-search { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 8px; }
  .classic-search > input { grid-column:1 / -1; min-width:0; max-width:none; width:100%; min-height:39px; }
  .classic-search .search-select { grid-column:1 / -1; display:flex; align-items:center; min-width:0; gap:7px; }
  .classic-search .search-select select { min-width:0; max-width:none; flex:1; min-height:37px; margin:0; padding:6px 8px; }
  .classic-search .checkline { min-width:0; margin:0; min-height:30px; font-size:.72rem; white-space:normal; }
  .classic-search .btn { grid-column:1 / -1; width:fit-content; min-height:32px; padding:5px 9px; }
}
@media (max-width:900px) {
  .article-scroll { height:auto; max-height:min(48vh,450px); }
}
@media (max-width:360px) {
  :root .brand > .brand-title { display:none !important; }
}
/* V9 final polish: crop the original BBH image before its small caption starts. */
.brand .header-logo { height:39px; }
@media (max-width:640px) {
  .brand .header-logo { height:28px; }
}
@media (max-width:900px) {
  .request-table .request-summary-row.is-expanded { background:var(--ui-row-hover); }
  .request-table .request-summary-row.is-expanded > td { background:transparent !important; }
}
@media (max-width:640px) {
  /* One clear mobile save action; the fixed button uses the unchanged form submit. */
  .request-inline-body .inline-edit-actions .inline-save-button { display:none !important; }
  .compact-kpis .kpi span { font-size:.72rem; }
}
/* V9.1: Einheitliche Schriftgroessen fuer mobile Eingaben und Menues.
   16px bei editierbaren Feldern verhindert automatisches iOS-Safari-Hineinzoomen.
   Die reduzierte optische Groesse entsteht durch normale Schriftstaerke,
   kompakte Zeilenhoehen und kleinere Innenabstaende - nicht durch Mini-Text. */
@media (max-width: 900px) {
  :root body,
  :root .classic-content,
  :root .mobile-nav-wrap {
    font-family: "Segoe UI", Arial, sans-serif;
  }

  /* Formulare erben bislang die fette Beschriftung (font: inherit).
     Eingabetexte und Platzhalter deshalb unabhaengig von label formatieren. */
  :root input:not([type="checkbox"]):not([type="hidden"]),
  :root select,
  :root textarea {
    font-family: inherit;
    font-size: 16px;
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
    letter-spacing: normal;
    min-height: 42px;
    padding: 8px 10px;
    border-radius: 7px;
  }
  :root input::placeholder,
  :root textarea::placeholder {
    font-family: inherit;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: normal;
    opacity: 1;
  }
  :root select option { font-family: inherit; font-size: 16px; font-weight: 400; }
  :root label { font-size: 12.5px; line-height: 1.35; font-weight: 600; }
  :root .classic-content .btn:not(.add-plus),
  :root .mobile-nav-wrap .btn { font-family: inherit; font-weight: 600; }

  /* Erfassung, Warenkorb und Suchmaske: gleiche Schrift-Hierarchie. */
  :root .classic-free-row,
  :root .finalize-form { padding: 8px 10px; }
  :root .classic-free-row { gap: 8px; align-items: end; }
  :root .classic-free-row label,
  :root .project-label { font-size: 12.5px; font-weight: 600; }
  :root .classic-free-row input,
  :root .project-label input { margin-top: 4px; }
  :root .classic-free-row .btn { font-size: 13px; min-height: 42px; padding: 8px 10px; }
  :root .classic-search > input,
  :root .classic-search .search-select select { font-weight: 400; }
  :root .classic-search .checkline { font-size: 12.5px; font-weight: 500; }
  :root .classic-search .btn { font-size: 12.5px; }
  :root .cart-table .qty-edit { font-weight: 500; }
  :root .cart-title-actions .btn.small { font-size: 12px; min-height: 35px; }
  :root .draft-state { font-size: 12px; line-height: 1.4; }
  :root .draft-help { font-size: 12px; line-height: 1.4; margin: 6px 0 9px; }
  :root .classic-actions .btn { font-size: 12.5px; min-height: 42px; padding: 9px 7px; }
  :root .classic-section-title h2 { font-size: 14px; line-height: 1.3; }
  :root .edit-table .edit-num,
  :root .request-inline-body .edit-remark,
  :root .request-inline-body .inline-edit-note-label textarea { font-weight: 400; }
}

@media (max-width: 640px) {
  /* Die aktive Bereichsauswahl ist selbsterklaerend: Label bleibt fuer
     Screenreader erhalten und nimmt auf kleinen Displays keinen Platz weg. */
  :root .mobile-nav-wrap { padding: 4px 8px; min-height: 47px; }
  :root .mobile-nav-wrap label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  :root .mobile-nav-wrap select {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 39px;
    margin: 0;
    padding: 6px 11px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.2;
  }
  :root .classic-free-row input,
  :root .project-label input,
  :root .classic-search > input,
  :root .classic-search select { min-height: 42px; }
  :root .classic-free-row .btn { min-height: 43px; }
  :root .cart-table .qty-edit { min-height: 42px; }
}
