:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f4f6f9}*{box-sizing:border-box}body{margin:0;background:#f4f6f9}button,input,select,textarea{font:inherit}button{border:0;border-radius:10px;background:#1c64f2;color:white;padding:.72rem 1rem;font-weight:700;cursor:pointer}button.secondary{background:#e9eef7;color:#25324a}.hidden{display:none!important}.brand{font-size:1.35rem;font-weight:900;letter-spacing:.02em}.brand span{font-weight:500}.login-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(430px,100%);background:white;padding:2rem;border-radius:22px;box-shadow:0 16px 45px #22334f1f}.login-card h1{margin:1.5rem 0 .2rem}.login-card p{color:#667085;margin-top:0}.login-card form{display:grid;gap:1rem;margin-top:1.5rem}label{display:grid;gap:.35rem;font-size:.9rem;font-weight:650;color:#364152}input,select,textarea{width:100%;border:1px solid #d6dce7;border-radius:9px;padding:.7rem;background:white;color:#172033}textarea{min-height:85px;resize:vertical}.error{color:#b42318;min-height:1.2rem}header{height:72px;background:white;border-bottom:1px solid #e4e8ef;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1rem,4vw,3rem);gap:1rem}header>div{display:flex;align-items:center;gap:1.25rem}nav{background:white;border-bottom:1px solid #e4e8ef;padding:0 clamp(1rem,4vw,3rem);display:flex;gap:.25rem}nav button{background:transparent;color:#667085;border-radius:0;padding:1rem .9rem;border-bottom:3px solid transparent}nav button.active{color:#1c64f2;border-color:#1c64f2}main{padding:1.4rem clamp(1rem,4vw,3rem) 3rem;max-width:1500px;margin:auto}.tab{display:none}.tab.active{display:block}.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.page-head h2{margin:0}.page-head p,.muted{color:#667085}.pill{background:#e9eef7;border-radius:999px;padding:.45rem .8rem;font-weight:700}.device-layout{display:grid;grid-template-columns:minmax(340px,.9fr) minmax(480px,1.4fr);gap:1rem;align-items:start}.search{margin-bottom:.8rem}.device-list{display:grid;gap:.55rem;max-height:72vh;overflow:auto;padding-right:.2rem}.device-row{background:white;border:1px solid #e1e6ee;border-radius:12px;padding:.85rem;cursor:pointer;display:grid;grid-template-columns:60px 1fr auto;gap:.7rem;align-items:center}.device-row:hover,.device-row.active{border-color:#6694f8;box-shadow:0 0 0 2px #dbe7ff}.device-row .num{font-weight:900;color:#475467}.device-row strong{display:block}.device-row small{color:#667085}.status{font-size:.78rem;border-radius:999px;padding:.25rem .5rem;background:#f2f4f7}.status.REPLACE{background:#fff0e8;color:#b54708}.status.STAY{background:#ecfdf3;color:#027a48}.status.REMOVE{background:#fef3f2;color:#b42318}.panel{background:white;border:1px solid #e1e6ee;border-radius:14px;padding:1.1rem}.panel.empty{color:#667085;text-align:center;padding:3rem 1rem}.panel h3{margin:.2rem 0 1rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.form-grid .full{grid-column:1/-1}.knowledge{margin-top:1rem;border-top:1px solid #edf0f4;padding-top:1rem}.knowledge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.metric{background:#f7f9fc;padding:.75rem;border-radius:10px}.metric span{display:block;color:#667085;font-size:.78rem}.metric strong{font-size:1rem}.actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem}.cards{display:grid;gap:.75rem}.card{background:white;border:1px solid #e1e6ee;border-radius:12px;padding:1rem}.contract-card{cursor:pointer}.upload-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr 1fr auto;gap:.8rem;align-items:end}.toast{position:fixed;right:1rem;bottom:1rem;background:#172033;color:white;padding:.8rem 1rem;border-radius:10px;box-shadow:0 8px 30px #0003}.admin-main{max-width:950px}.admin-main .panel{margin-top:1rem}.admin-main h1{margin-bottom:.2rem}@media(max-width:900px){.device-layout{grid-template-columns:1fr}.device-list{max-height:40vh}.knowledge-grid{grid-template-columns:repeat(2,1fr)}.upload-grid{grid-template-columns:1fr 1fr}.upload-grid button{grid-column:1/-1}.form-grid{grid-template-columns:1fr}}@media(max-width:560px){header{height:auto;padding:.8rem 1rem;align-items:flex-start}header>div{display:grid;gap:.2rem}nav{overflow:auto}.page-head{align-items:flex-start}.device-row{grid-template-columns:45px 1fr}.device-row .status{grid-column:2}.knowledge-grid{grid-template-columns:1fr 1fr}.upload-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}}
/* V1.0.119 Kundenportal */
.filterbar{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(180px,.7fr) minmax(180px,.7fr);gap:.7rem;margin-bottom:1rem}.filterbar .search{margin:0}.device-meta{margin:-.5rem 0 1rem}.table-wrap{overflow:auto;background:white;border:1px solid #e1e6ee;border-radius:14px}.overview-table{width:100%;border-collapse:collapse;min-width:1450px;font-size:.86rem}.overview-table th,.overview-table td{padding:.7rem .65rem;border-bottom:1px solid #edf0f4;text-align:left;vertical-align:top}.overview-table th{position:sticky;top:0;background:#f8fafc;z-index:1;color:#475467;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.overview-table tr:hover td{background:#f9fbff}.numcell{text-align:right!important;white-space:nowrap}.numcell.strong{font-weight:800}.empty-cell{text-align:center!important;color:#667085;padding:2rem!important}.progress-panel{margin-bottom:1rem}.progress-head{display:flex;justify-content:space-between;align-items:end;gap:1rem}.progress-head h3{margin:.2rem 0}.progress-head>strong{font-size:2rem}.eyebrow{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#667085;font-weight:800}.progress-track{height:12px;background:#e9eef7;border-radius:999px;overflow:hidden}.progress-track i{display:block;height:100%;background:#1c64f2;border-radius:999px}.dash-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.7rem;margin-bottom:1rem}.metric.big strong{font-size:1.35rem}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.maker-row,.rank-row{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid #edf0f4}.rank-row span{min-width:0}.rank-row strong{white-space:nowrap}.privacy-note{background:#eef6ff;border:1px solid #bfdbfe;border-radius:14px;padding:1rem 1.1rem;margin-bottom:1rem}.privacy-note p{margin:.35rem 0 0;color:#475467}.privacy-check{display:flex!important;grid-column:1/-1;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:.6rem!important;background:#f8fafc;border:1px solid #e1e6ee;border-radius:10px;padding:.75rem}.privacy-check input{width:auto;margin:.15rem 0 0}.modal{position:fixed;inset:0;background:#10182880;display:grid;place-items:center;padding:1rem;z-index:1000}.modal-card{width:min(520px,100%);background:white;border-radius:18px;padding:1.35rem;box-shadow:0 25px 80px #0004}.modal-card h3{margin-top:0}.modal-actions{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap}.danger{background:#b42318}.toast.bad{background:#b42318}@media(max-width:1100px){.dash-metrics{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.filterbar{grid-template-columns:1fr 1fr}.filterbar .search{grid-column:1/-1}}@media(max-width:650px){.dash-metrics{grid-template-columns:repeat(2,1fr)}.filterbar{grid-template-columns:1fr}.filterbar .search{grid-column:auto}.modal-actions{display:grid}.modal-actions button{width:100%}}

/* V1.0.119 Basislayout Portal */
.device-filter-grid{display:grid;grid-template-columns:1.5fr repeat(4,minmax(150px,.7fr));gap:.65rem;margin-bottom:1rem}.portal-device-workspace{display:grid;grid-template-columns:minmax(720px,1.7fr) minmax(330px,.7fr);gap:1rem;align-items:start}.portal-device-table,.portal-vbk-list-table,.portal-vbk-edit-table{width:100%;border-collapse:collapse;font-size:.86rem}.portal-device-table{min-width:760px}.portal-device-table th,.portal-device-table td,.portal-vbk-list-table th,.portal-vbk-list-table td,.portal-vbk-edit-table th,.portal-vbk-edit-table td{padding:.72rem .65rem;border-bottom:1px solid #edf0f4;text-align:left;vertical-align:middle}.portal-device-table th,.portal-vbk-list-table th,.portal-vbk-edit-table th{background:#f8fafc;color:#475467;font-size:.78rem;position:sticky;top:0}.portal-device-table tbody tr,.portal-vbk-list-table tbody tr{cursor:pointer}.portal-device-table tr:hover td,.portal-device-table .focus-row td,.portal-vbk-list-table tr:hover td,.portal-vbk-list-table .focus-row td{background:#f3f7ff}.portal-vbk-workspace{display:grid;grid-template-columns:minmax(480px,.85fr) minmax(650px,1.3fr);gap:1rem;align-items:start}.portal-vbk-edit-table input{min-width:115px;padding:.5rem}.vbk-summary-info{margin-top:.8rem;color:#667085;font-size:.85rem}.vbk-detail-title h3{margin:.2rem 0}.vbk-detail-title p{margin:.25rem 0 1rem}@media(max-width:1150px){.device-filter-grid{grid-template-columns:repeat(2,1fr)}.portal-device-workspace,.portal-vbk-workspace{grid-template-columns:1fr}}@media(max-width:650px){.device-filter-grid{grid-template-columns:1fr}}

/* V1.0.119 Kundenportal: Etagenfilter, schreibgeschützte Stammdaten, Kunden-VBK */
.device-filter-grid{grid-template-columns:1.45fr repeat(5,minmax(135px,.7fr))}
.readonly-hint{display:grid;gap:.25rem;background:#f8fafc;border:1px solid #e1e6ee;border-radius:11px;padding:.8rem .9rem;margin-bottom:1rem;color:#475467}.readonly-hint strong{color:#172033}.readonly-hint span{font-size:.84rem}.form-grid input[readonly]{background:#f5f7fa;color:#475467;border-color:#e2e7ef;cursor:default}.form-grid label small{font-weight:500;color:#667085;line-height:1.35}
.vbk-status-banner{display:flex;align-items:center;justify-content:space-between;gap:.8rem;border-radius:11px;padding:.75rem .9rem;margin:.75rem 0}.vbk-status-banner.good{background:#ecfdf3;border:1px solid #a6f4c5;color:#027a48}.vbk-status-banner.warn{background:#fffaeb;border:1px solid #fedf89;color:#b54708}.vbk-status-banner span{font-size:.82rem}.net-price-note{background:#eef6ff;border:1px solid #bfdbfe;border-radius:11px;padding:.8rem .9rem;margin:.75rem 0 1rem;color:#344054}.vbk-choice-row{display:grid;grid-template-columns:minmax(230px,.8fr) auto;gap:.8rem;align-items:end;margin-bottom:1rem}.vbk-choice-row button{height:42px}.vbk-info-section,.vbk-customer-section{border:1px solid #e1e6ee;border-radius:13px;padding:1rem;margin-top:1rem;background:#fff}.vbk-customer-section.vbk-used-panel{border-color:#86efac;box-shadow:0 0 0 2px #dcfce7 inset;background:#fbfffc}.section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.8rem}.section-title>div{display:grid;gap:.15rem}.section-title>div>span{font-size:.82rem;color:#667085;font-weight:500}.legend-used{font-size:.76rem;font-weight:800;color:#027a48;background:#ecfdf3;border:1px solid #abefc6;border-radius:999px;padding:.25rem .5rem;white-space:nowrap}.vbk-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:.6rem 0 1rem}.vbk-card{display:grid;gap:.2rem;background:#f8fafc;border:1px solid #e1e6ee;border-radius:11px;padding:.75rem}.vbk-card span,.vbk-card small{color:#667085;font-size:.78rem}.vbk-card strong{font-size:.92rem}.vbk-card.vbk-used{background:#ecfdf3;border-color:#86efac}.vbk-card.vbk-used span,.vbk-card.vbk-used small{color:#027a48}.portal-vbk-edit-table .vbk-used-row td{background:#ecfdf3}.portal-vbk-edit-table .vbk-used-row td:first-child{box-shadow:inset 4px 0 #12b76a}.customer-kind-row.hidden{display:none}.document-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:.7rem;margin:1rem 0}.small{font-size:.82rem}
@media(max-width:1150px){.device-filter-grid{grid-template-columns:repeat(3,1fr)}.vbk-choice-row{grid-template-columns:1fr}.vbk-choice-row button{height:auto}}
@media(max-width:700px){.device-filter-grid,.document-filter-grid,.vbk-summary-grid{grid-template-columns:1fr}.section-title,.vbk-status-banner{display:grid}.legend-used{width:max-content}}


/* V1.0.120 Kundenportal: Infobutton, Diagramme, kompaktere Labels */
.header-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.info-modal-card{width:min(760px,100%);max-height:min(86vh,780px);overflow:auto}
.info-modal-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.info-stack{display:grid;gap:1rem}
.info-stack section{background:#f8fafc;border:1px solid #e4e8ef;border-radius:12px;padding:.95rem 1rem}
.info-stack section strong{display:block;margin-bottom:.35rem}
.info-stack section p{margin:0;color:#475467;line-height:1.5}
.compact-label{font-size:.84rem}
.compact-label input{font-size:1rem}
.knowledge .form-grid label{align-content:start}
.pie-layout{display:grid;grid-template-columns:minmax(210px,.9fr) minmax(0,1.1fr);gap:1rem;align-items:center}
.pie-chart{width:200px;height:200px;border-radius:50%;margin:auto;position:relative;box-shadow:inset 0 0 0 1px #e4e8ef}
.pie-hole{position:absolute;inset:27%;border-radius:50%;background:white;display:grid;place-items:center;text-align:center;box-shadow:0 0 0 1px #edf0f4}
.pie-hole strong{font-size:1.3rem;line-height:1}
.pie-hole span{font-size:.75rem;color:#667085}
.pie-legend{display:grid;gap:.45rem}
.pie-legend-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.35rem 0;border-bottom:1px solid #edf0f4;font-size:.9rem}
.pie-legend-row span{display:flex;align-items:center;gap:.55rem;min-width:0}
.pie-legend-row i{display:inline-block;width:.8rem;height:.8rem;border-radius:999px;flex:none}
.pie-legend-row strong{white-space:nowrap;font-size:.82rem}
.pie-empty{color:#667085;padding:.6rem 0}
.dashboard-subsection+.dashboard-subsection{margin-top:1rem;padding-top:1rem;border-top:1px solid #edf0f4}
@media(max-width:1100px){.pie-layout{grid-template-columns:1fr}.pie-chart{width:180px;height:180px}}
@media(max-width:560px){.header-actions{align-items:flex-start}.info-modal-head{display:grid}.pie-legend-row{display:grid}.pie-legend-row strong{white-space:normal}}


/* V1.0.121 Kundenportal: Anschaffungswerte sichtbar und bestätigbar */
.portal-device-table .edited-row td{background:#f7fbf7}
.portal-device-table .edited-row:hover td,.portal-device-table .edited-row.focus-row td,.portal-device-table .focus-row.edited-row td{background:#eef8ef}
.acq-mini{display:grid;gap:.08rem;margin-top:.3rem;padding-top:.25rem;border-top:1px dashed #e5e7eb}
.acq-mini span{font-size:.72rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:#667085}
.acq-mini small{font-size:.76rem;color:#344054;line-height:1.35}
.acq-mini.customer small{font-weight:700;color:#0f5132}
.list-flag{margin-top:.35rem;font-size:.74rem;font-weight:700;color:#027a48}
.acquisition-knowledge-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.75rem}
.acquisition-source{margin:.55rem 0 .85rem}
.acquisition-input-grid{margin-top:.15rem}
.acq-review-banner{display:grid;gap:.2rem;border-radius:11px;padding:.75rem .9rem;margin-top:.75rem}
.acq-review-banner.warn{background:#fffaeb;border:1px solid #fedf89;color:#b54708}
.acq-review-banner.good{background:#ecfdf3;border:1px solid #a6f4c5;color:#027a48}
.acq-review-banner strong{font-size:.92rem}
.acq-review-banner span{font-size:.82rem;line-height:1.4}
.acq-inline-actions{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;margin-top:.9rem}
.acq-inline-actions button{min-width:220px}
@media(max-width:780px){.acquisition-knowledge-grid{grid-template-columns:1fr}.acq-inline-actions{display:grid}.acq-inline-actions button{width:100%}}

/* V1.0.142 Kundenportal – Neue Konfiguration / SOLL-Prüfung */
.target-review-summary{margin-bottom:1rem}.target-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.target-review-head h3{margin:.15rem 0 .3rem}.target-review-head p{margin:0;color:#667085;line-height:1.45}.target-review-actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}.target-overall-note{margin-top:.8rem;padding-top:.8rem;border-top:1px solid #edf0f4;color:#475467}.target-filter-grid{display:grid;grid-template-columns:minmax(260px,1.35fr) repeat(3,minmax(165px,.7fr));gap:.7rem;margin-bottom:1rem}.target-portal-layout{display:grid;grid-template-columns:minmax(600px,1.35fr) minmax(360px,.75fr);gap:1rem;align-items:start}.target-position-list{display:grid;gap:.65rem}.target-position-card{background:#fff;border:1px solid #e1e6ee;border-radius:14px;padding:.9rem 1rem;cursor:pointer}.target-position-card:hover,.target-position-card.active{border-color:#6694f8;box-shadow:0 0 0 2px #dbe7ff}.target-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.target-card-head>div{display:grid;gap:.18rem;min-width:0}.target-card-head>div>strong{line-height:1.35}.target-card-head small{color:#667085}.target-card-meta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.55rem;color:#667085;font-size:.82rem}.target-low-volume{display:grid;gap:.15rem;margin-top:.7rem;padding:.65rem .75rem;background:#fffaeb;border:1px solid #fedf89;border-radius:10px;color:#9a6700}.target-low-volume span{font-size:.8rem;line-height:1.4}.target-low-volume.detail{margin:1rem 0}.target-card-decision{margin-top:.55rem;font-size:.8rem;color:#475467}.target-detail-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.target-detail-head h3{margin:.2rem 0}.target-detail-head p{margin:0;color:#667085}.low-volume-badge{font-size:.75rem;font-weight:800;background:#fffaeb;color:#b54708;border:1px solid #fedf89;border-radius:999px;padding:.3rem .55rem;white-space:nowrap}.target-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:1rem 0}.target-detail-grid>div{background:#f8fafc;border:1px solid #e6eaf0;border-radius:10px;padding:.7rem;display:grid;gap:.2rem}.target-detail-grid span{font-size:.75rem;color:#667085}.target-detail-grid strong{font-size:.86rem;line-height:1.45}.target-explain{border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4;padding:.9rem 0;margin:.7rem 0}.target-explain p{color:#475467;line-height:1.5}.target-review-form{display:grid;gap:.8rem;margin-top:1rem}.target-software-section{margin-top:1rem}.target-software-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.target-software-card{border:1px solid #e1e6ee;border-radius:12px;padding:.9rem;background:#fbfcfe}.software-purpose{margin:.75rem 0}.software-purpose>strong,.software-scope>strong{font-size:.82rem}.software-purpose p{margin:.25rem 0;color:#475467;line-height:1.45;font-size:.86rem}.software-scope{padding:.65rem;background:#f1f5f9;border-radius:9px;color:#475467;font-size:.82rem;margin-bottom:.7rem}.target-customer-note{display:block;margin-top:4px;padding:4px 7px;border-radius:6px;background:#fff4e5;color:#8a4b08;font-size:10.5px;line-height:1.35;max-width:280px;white-space:normal}
@media(max-width:1150px){.target-filter-grid{grid-template-columns:1fr 1fr}.target-portal-layout{grid-template-columns:1fr}.target-software-list{grid-template-columns:1fr}.target-review-head{display:grid}.target-review-actions{justify-content:flex-start}}
@media(max-width:650px){.target-filter-grid,.target-detail-grid{grid-template-columns:1fr}.target-card-head,.target-detail-head{display:grid}.target-review-actions{display:grid}.target-review-actions button{width:100%}}

/* V1.0.145 – Neue Konfiguration: Geräte/Software umschaltbar, Adressfilter, Pflegehinweis. */
.target-view-switch{display:flex;gap:8px;align-items:center;margin:0 0 14px}.target-view-switch button{min-width:150px}.target-view-switch button.active{background:#17232e;color:#fff;border-color:#17232e}.target-filter-grid{grid-template-columns:minmax(220px,1.4fr) repeat(4,minmax(150px,1fr))}.software-maintenance-note{display:flex;flex-direction:column;gap:4px;margin:10px 0;padding:10px 12px;border-radius:10px;background:#f4f7f9;border:1px solid var(--line)}.software-maintenance-note strong{font-size:12px}.software-maintenance-note span{font-size:12px;color:var(--muted);line-height:1.4}@media(max-width:1050px){.target-filter-grid{grid-template-columns:1fr 1fr 1fr}}@media(max-width:700px){.target-filter-grid{grid-template-columns:1fr}.target-view-switch{display:grid;grid-template-columns:1fr 1fr}.target-view-switch button{min-width:0}}


/* V1.0.146 – Stellplatzübersicht: Adressfilter und klarere automatische Anschaffungsdaten. */
.device-filter-grid{grid-template-columns:minmax(230px,1.35fr) repeat(6,minmax(145px,1fr))}
.acq-mini.project span{color:#344054}
@media(max-width:1350px){.device-filter-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}}
@media(max-width:900px){.device-filter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.device-filter-grid{grid-template-columns:1fr}}


/* V1.0.154 */
.vbk-source-row{display:flex;gap:.35rem;align-items:flex-start;margin-top:.18rem;flex-wrap:wrap}
.vbk-source-row span{font-size:.72rem;font-weight:800;color:#667085}
.vbk-source-row small,.vbk-source-row a{font-size:.76rem;line-height:1.3;color:#0f4c81;text-decoration:none;word-break:break-word}
.vbk-source-row a:hover{text-decoration:underline}
.vbk-expand-actions{display:flex;justify-content:flex-start;margin-top:.75rem}
.portal-vbk-extra-row.hidden{display:none}


/* V1.0.154 – projektbezogene Portal-Testöffnung */
.portal-admin-project{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.55rem 0;padding:.85rem 1rem}
.portal-admin-project>div{min-width:0}.portal-admin-project button{flex:0 0 auto}
.portal-admin-project button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:650px){.portal-admin-project{align-items:stretch;flex-direction:column}.portal-admin-project button{width:100%}}


/* V1.0.154 – Portal-Zugangsdaten */
.portal-admin-project-main{min-width:0;flex:1}.portal-admin-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.portal-url-mini{font-size:.76rem;color:#475467;margin-top:.25rem;word-break:break-all}.portal-access-panel{margin-top:1rem;border:1px solid #b7d4ff;background:#f5f9ff;border-radius:12px;padding:1rem}.portal-access-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.portal-access-head .muted{font-size:.8rem;margin-top:.2rem}.portal-access-panel pre{white-space:pre-wrap;word-break:break-word;background:#fff;border:1px solid #d7e4f7;border-radius:9px;padding:.85rem;margin:.8rem 0 0;font-family:inherit;font-size:.9rem;line-height:1.5}.portal-admin-project{align-items:center}.portal-admin-project>div:first-child{min-width:0}@media(max-width:760px){.portal-admin-actions{width:100%;justify-content:stretch}.portal-admin-actions button{flex:1 1 150px}.portal-access-head{display:grid}.portal-access-head button{width:100%}}

/* V1.0.154 */
.dashboard-volume-note{margin:0 0 1rem;padding:.8rem .95rem;border:1px solid #d6e4f0;border-radius:11px;background:#f4f9fd;color:#475467;font-size:.84rem;line-height:1.45}.dashboard-volume-note strong{color:#344054}

/* V1.0.162 Mehrere Portalbenutzer */
.portal-user-list{display:grid;gap:.65rem;margin:.75rem 0}.portal-user-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.75rem;border:1px solid #e5e7eb;border-radius:10px;background:#fafbfc}.portal-user-row .portal-admin-actions{justify-content:flex-end;flex-wrap:wrap}@media(max-width:800px){.portal-user-row{display:grid}}


/* V1.0.162 */
.portal-admin-project{display:block!important;align-items:initial!important}
.portal-admin-project-main{display:block;width:100%}
.portal-user-list{width:100%;margin:.85rem 0}
.portal-user-row{width:100%;min-width:0}
.portal-user-row>div:first-child{min-width:220px;flex:1}
.portal-user-row .muted{overflow-wrap:anywhere}
.portal-admin-project>.portal-admin-actions{width:100%;justify-content:flex-end;margin-top:.65rem}
@media(max-width:800px){.portal-user-row{grid-template-columns:1fr}.portal-admin-project>.portal-admin-actions{justify-content:stretch}.portal-admin-project>.portal-admin-actions button{width:100%}}
.portal-loading{position:fixed;inset:0;z-index:2500;background:rgba(244,246,249,.92);display:grid;place-items:center;padding:1rem}
.portal-loading-card{min-width:min(360px,90vw);display:grid;justify-items:center;gap:.55rem;background:#fff;border:1px solid #dce3ec;border-radius:18px;padding:1.5rem 2rem;box-shadow:0 18px 55px #17203326}
.portal-loading-card strong{font-size:1.05rem}.portal-loading-card span{color:#667085}
.portal-spinner{width:34px;height:34px;border:4px solid #e4eaf2;border-top-color:#1c64f2;border-radius:50%;animation:portal-spin .8s linear infinite}
@keyframes portal-spin{to{transform:rotate(360deg)}}
.device-list-note{margin-top:.4rem;padding:.42rem .5rem;border-radius:7px;background:#fff8e7;border:1px solid #f1d58b;color:#6b4f00;font-size:.76rem;line-height:1.35;white-space:pre-wrap}
.device-list-note strong{display:inline}
.filter-check{display:flex!important;flex-direction:row;align-items:center;gap:.5rem;padding:.62rem .7rem;border:1px solid #d6dce7;border-radius:9px;background:#fff;align-self:end;min-height:42px}
.filter-check input{width:auto;margin:0}.filter-check span{font-size:.86rem}

.setup-remote-hint{display:grid;gap:.3rem;margin:.8rem 0 1rem;padding:.75rem .85rem;border:1px solid #fedf89;background:#fffaeb;border-radius:10px;color:#7a4d00}.setup-remote-hint span{font-size:.82rem;line-height:1.4}

/* V1.0.162 · Stellplatz-Bemerkung + Barcode */
.device-list-note.slot-note{margin-top:.4rem;padding:.38rem .5rem;border-radius:8px;background:#f8fafc;border:1px solid #e4e7ec;font-size:.75rem;line-height:1.35;color:#475467;max-width:320px}
.device-list-note.slot-note>div+div{margin-top:.18rem}
.device-list-note.slot-note strong{color:#344054}
.slot-barcode code{font-size:.74rem;background:#fff;border:1px solid #e4e7ec;border-radius:4px;padding:.05rem .25rem;word-break:break-all}


/* V1.0.162 */
.vbk-card strong+strong{margin-top:.2rem;display:block}
.vbk-choice-row .action-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:end}


/* V1.0.163 · Kundenportal UI-Polishing */
main{width:100%;max-width:1760px;padding-left:clamp(1rem,2.2vw,2.25rem);padding-right:clamp(1rem,2.2vw,2.25rem)}
.device-filter-grid{grid-template-columns:minmax(230px,1.35fr) repeat(6,minmax(145px,1fr));align-items:end}
.device-filter-grid>label{min-width:0;align-self:end}
.device-filter-grid input,.device-filter-grid select{min-height:42px}
.portal-device-workspace{grid-template-columns:minmax(780px,2fr) minmax(390px,.82fr)}
.portal-device-table th:last-child,.portal-device-table td:last-child{white-space:nowrap;min-width:118px}
.portal-device-table .status{white-space:nowrap}
#deviceForm input,#deviceForm select{min-height:42px}
.acq-inline-actions{justify-content:flex-end}
.acq-inline-actions button{min-width:220px}
@media(max-width:1250px){.device-filter-grid{grid-template-columns:repeat(4,minmax(160px,1fr))}.portal-device-workspace{grid-template-columns:minmax(680px,1.6fr) minmax(360px,.8fr)}}
@media(max-width:1150px){.portal-device-workspace{grid-template-columns:1fr}.device-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.device-filter-grid{grid-template-columns:1fr}.acq-inline-actions{display:grid}.acq-inline-actions button{width:100%;min-width:0}}


/* V1.0.165 · Portal-Benutzerverwaltung: volle Arbeitsbreite */
.admin-main{
  width:calc(100% - 32px);
  max-width:1760px;
  margin-left:auto;
  margin-right:auto;
  padding-left:0;
  padding-right:0;
}
.admin-main>#adminForm,.admin-main .panel{min-width:0}
.admin-main .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.portal-user-row .portal-admin-actions{flex-wrap:nowrap}
.portal-user-row .portal-admin-actions button{white-space:nowrap}
.portal-admin-project-main>strong,.portal-user-row>div:first-child>strong{overflow-wrap:normal;word-break:normal}
@media(max-width:1150px){
  .portal-user-row .portal-admin-actions{flex-wrap:wrap}
}
@media(max-width:900px){
  .admin-main{width:calc(100% - 20px)}
  .admin-main .form-grid{grid-template-columns:1fr}
}


/* V1.0.175 – konkrete Gerätemodelle im Portal-Kreisdiagramm */
.pie-legend{max-height:300px;overflow:auto;padding-right:.25rem}
.pie-legend-row span{overflow-wrap:anywhere;line-height:1.3}


/* V1.0.175 – Portal-Projektwahl, Modellkennzahlen und kompakte Gerätestammdaten */
.portal-admin-project-main[data-select-project]{cursor:pointer;border-radius:10px;padding:.15rem .2rem;transition:background .15s ease,box-shadow .15s ease}
.portal-admin-project-main[data-select-project]:hover,.portal-admin-project-main[data-select-project]:focus{background:#f3f7ff;outline:none;box-shadow:0 0 0 2px #dbe7ff}
.portal-admin-project.selected-project{border-color:#8eb2ff;box-shadow:0 0 0 2px #e4ecff}
.portal-model-summary{margin:.2rem 0 .35rem;color:#344054}.portal-model-summary strong{color:#172033;font-size:1.02rem}
.portal-device-editor-head{margin-bottom:.8rem}.portal-device-editor-head h3{margin:.2rem 0 .28rem}.portal-device-header-meta{margin:0;line-height:1.4;font-size:.82rem}
.portal-master-data{border:1px solid #e1e6ee;border-radius:11px;background:#f8fafc;overflow:hidden;margin-bottom:.1rem}
.portal-master-data>summary{list-style:none;cursor:pointer;padding:.72rem .85rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.portal-master-data>summary::-webkit-details-marker{display:none}.portal-master-data>summary>span:first-child{display:flex;align-items:baseline;gap:.55rem;min-width:0;flex-wrap:wrap}.portal-master-data>summary small{color:#667085;font-weight:500;line-height:1.3}.portal-master-toggle{font-size:.8rem;font-weight:750;color:#1c64f2;white-space:nowrap}.portal-master-toggle:after{content:'anzeigen'}.portal-master-data[open] .portal-master-toggle:after{content:'einklappen'}
.portal-master-data-body{padding:0 .85rem .85rem;border-top:1px solid #e6eaf0;background:#fff}.portal-master-data-body .readonly-hint{margin:.8rem 0}.portal-master-grid{margin:0}
@media(max-width:650px){.portal-master-data>summary{align-items:flex-start}.portal-master-data>summary>span:first-child{display:grid;gap:.15rem}}

/* V1.0.177 · Kundenportal: Allgemeine Angaben kompakter und sauber ausgerichtet */
.portal-general-block{display:grid;gap:.8rem;margin-top:.05rem}
.portal-general-grid{align-items:start}
.portal-general-field{display:grid;grid-template-rows:auto 42px auto;align-content:start;gap:.35rem;min-width:0}
.portal-general-field .portal-field-label{display:flex;align-items:flex-end;min-height:1.25rem;line-height:1.25;font-weight:650;color:#364152}
.portal-general-field>select,.portal-general-field>input{height:42px;min-height:42px;margin:0}
.portal-general-field>small{min-height:2.7em;margin:0;font-weight:500;color:#667085;line-height:1.35}
.portal-general-field>small.portal-field-spacer{visibility:hidden}
.portal-note-field{grid-template-rows:auto auto auto}
.portal-note-field>textarea{margin:0;min-height:86px}
.portal-general-actions{display:flex;justify-content:flex-end;align-items:center;margin-top:-.1rem}
.portal-general-actions button{min-width:140px;padding-left:1.35rem;padding-right:1.35rem}
@media(max-width:900px){
  .portal-general-field{grid-template-rows:auto 42px auto}
  .portal-general-field>small{min-height:0}
  .portal-general-field>small.portal-field-spacer{display:none}
}
@media(max-width:560px){.portal-general-actions button{width:100%}}
