:root {
    --brand: #3386C1;
    --brand-dark: #246fa6;
    --sidebar: #162d42;
    --sidebar-deep: #10263a;
    --workspace: #f4f7fa;
    --card: #ffffff;
    --line: #dfe6ed;
    --text: #172536;
    --muted: #68798c;
    --success-bg: #daf5e8;
    --success: #14734a;
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html, body, #app { margin: 0; min-height: 100%; background: var(--workspace); color: var(--text); }
body { min-width: 320px; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 226px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; background: linear-gradient(180deg, var(--sidebar), var(--sidebar-deep)); color: #eaf3fa; z-index: 50; }
.brand { height: 70px; display: flex; align-items: center; gap: 11px; padding: 0 18px; border-bottom: 1px solid rgba(255,255,255,.06); }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: var(--brand); color: #fff; font-weight: 800; }
.brand strong, .brand span { display: block; }
.brand strong { font-size: 17px; letter-spacing: .02em; }
.brand span { margin-top: 1px; color: #adc0d1; font-size: 12px; }
.nav { padding: 14px 8px 28px; }
.nav-caption { padding: 16px 13px 7px; color: #87a2b8; text-transform: uppercase; font-size: 10px; letter-spacing: .08em; }
.nav-item { display: flex; gap: 11px; align-items: center; min-height: 39px; padding: 8px 12px; border-radius: 6px; color: #d9e5ee; text-decoration: none; font-size: 13px; }
.nav-item:hover { background: rgba(255,255,255,.06); }
.nav-disabled { opacity: .55; cursor: default; }
.nav-disabled:hover { background: transparent; }
.nav-item.active { color: #fff; background: var(--brand); box-shadow: 0 6px 16px rgba(0,0,0,.14); }
.nav-icon { width: 20px; text-align: center; font-size: 16px; }
.workspace { min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 40; height: 70px; display: flex; align-items: center; gap: 20px; padding: 0 22px; background: #fff; border-bottom: 1px solid var(--line); }
.global-search { width: min(620px, 55vw); height: 40px; display: flex; align-items: center; gap: 9px; padding: 0 10px; border: 1px solid #cdd8e2; border-radius: 7px; background: #fff; }
.global-search input { width: 100%; border: 0; outline: 0; color: var(--text); }
.global-search kbd { white-space: nowrap; color: #74879a; background: #f2f5f7; border: 1px solid #dfe6ed; border-radius: 4px; padding: 2px 6px; font-size: 10px; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 9px; }
.icon-button, .mobile-nav-button { border: 0; background: transparent; cursor: pointer; color: #42586d; }
.icon-button { width: 36px; height: 36px; border-radius: 8px; }
.icon-button:hover { background: #edf3f7; }
.user-menu { margin-left: 5px; display: flex; align-items: center; gap: 9px; padding-left: 13px; border-left: 1px solid var(--line); }
.avatar { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--brand); color: #fff; font-size: 12px; }
.user-copy strong, .user-copy span { display: block; white-space: nowrap; }
.user-copy strong { font-size: 12px; }
.user-copy span { color: var(--muted); font-size: 10px; margin-top: 2px; }
.mobile-nav-button { display: none; font-size: 22px; }
.main-content { padding: 25px 25px 40px; max-width: 1700px; margin: 0 auto; }
.page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
h1 { margin: 0; font-size: 28px; line-height: 1.15; letter-spacing: -.02em; }
.page-heading p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.page-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.button { min-height: 38px; padding: 0 14px; border: 1px solid #cfd9e2; border-radius: 6px; background: #fff; color: var(--text); cursor: pointer; }
.button.primary { background: var(--brand); color: #fff; border-color: var(--brand); }
.button.primary:hover { background: var(--brand-dark); }
.content-card { background: var(--card); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 1px 2px rgba(22,45,66,.025); }
.compact-card { padding: 20px; }
.article-toolbar { padding: 14px 16px; }
.search-field { height: 40px; display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid #cfd9e2; border-radius: 6px; }
.search-field input { width: 100%; border: 0; outline: 0; }
.filters { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 11px; margin-top: 14px; }
.filters label { display: grid; gap: 5px; color: #40546a; font-size: 11px; }
.filters select { height: 36px; border: 1px solid #d0dae4; border-radius: 5px; background: #fff; padding: 0 9px; color: var(--text); }
.table-wrap { overflow-x: auto; border-top: 1px solid var(--line); }
.data-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.data-table th { height: 41px; padding: 0 12px; text-align: left; background: #f8fafc; color: #40546a; font-weight: 600; border-bottom: 1px solid var(--line); white-space: nowrap; }
.data-table td { padding: 13px 12px; border-bottom: 1px solid #edf1f4; }
.empty-row td { color: var(--muted); text-align: center; padding: 34px 16px; }
.article-tabs { margin-top: 12px; overflow: hidden; }
.tab-strip { display: flex; overflow-x: auto; border-bottom: 1px solid var(--line); scrollbar-width: thin; }
.tab-strip button { flex: 0 0 auto; height: 45px; padding: 0 13px; border: 0; border-bottom: 2px solid transparent; background: #fff; color: #52677b; cursor: pointer; font-size: 11px; }
.tab-strip button.active { color: var(--brand); border-bottom-color: var(--brand); font-weight: 600; }
.article-section-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.article-section-grid > div { min-height: 120px; padding: 18px; border-right: 1px solid var(--line); }
.article-section-grid > div:last-child { border-right: 0; }
.article-section-grid h2 { margin: 0 0 10px; font-size: 13px; }
.article-section-grid p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.dashboard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.module-card { min-height: 105px; display: flex; align-items: center; gap: 15px; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 8px; color: var(--text); text-decoration: none; }
.module-card:hover { border-color: #a9cde6; box-shadow: 0 5px 16px rgba(22,45,66,.06); }
.module-symbol { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 10px; background: #eaf4fb; color: var(--brand); font-size: 24px; }
.module-card strong, .module-card span:not(.module-symbol) { display: block; }
.module-card strong { margin-bottom: 4px; }
.module-card div span { color: var(--muted); font-size: 12px; }
.security-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.security-grid > div { padding: 16px; border: 1px solid var(--line); border-radius: 7px; }
.security-grid strong, .security-grid span { display: block; }
.security-grid span { margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.nav-backdrop { display: none; }
@media (max-width: 1100px) {
    .filters { grid-template-columns: repeat(3, 1fr); }
    .article-section-grid { grid-template-columns: repeat(2, 1fr); }
    .dashboard-grid, .security-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 820px) {
    .app-shell { display: block; }
    .sidebar { position: fixed; left: 0; transform: translateX(-100%); transition: transform .18s ease; width: 270px; }
    .nav-open .sidebar { transform: translateX(0); }
    .nav-backdrop { display: block; position: fixed; inset: 0; z-index: 45; border: 0; background: rgba(9,24,37,.42); }
    .mobile-nav-button { display: block; }
    .topbar { height: 62px; padding: 0 12px; gap: 10px; }
    .global-search { width: auto; flex: 1; }
    .global-search kbd { display: none; }
    .user-copy, .topbar-actions .icon-button { display: none; }
    .user-menu { padding-left: 0; border-left: 0; }
    .main-content { padding: 18px 12px 28px; }
    .page-heading { align-items: stretch; flex-direction: column; }
    h1 { font-size: 23px; }
    .page-actions .button { flex: 1 1 auto; }
    .filters { grid-template-columns: repeat(2, 1fr); }
    .dashboard-grid, .security-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .filters { grid-template-columns: 1fr; }
    .article-section-grid { grid-template-columns: 1fr; }
    .article-section-grid > div { border-right: 0; border-bottom: 1px solid var(--line); }
    .article-section-grid > div:last-child { border-bottom: 0; }
    .global-search input::placeholder { color: transparent; }
}

/* Rev 002 – Anmeldung und Administration */
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: linear-gradient(135deg, #eef5fa, #f8fafc); }
.login-card { width: min(440px, 100%); padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 18px 45px rgba(22,45,66,.10); }
.login-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; }
.login-brand strong, .login-brand span { display: block; }
.login-brand span { margin-top: 2px; color: var(--muted); font-size: 12px; }
.login-card h1 { margin-bottom: 18px; font-size: 25px; }
.login-card label, .form-panel label, .form-grid label, .module-license-row label { display: grid; gap: 6px; margin-bottom: 12px; color: #40546a; font-size: 12px; }
.login-card input, .form-panel input, .form-panel select, .module-license-row input { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid #ccd7e1; border-radius: 6px; background: #fff; color: var(--text); }
.login-button { width: 100%; margin-top: 6px; }
.login-hint { margin: 0 0 16px; color: var(--muted); line-height: 1.5; }
.setup-secret { margin: 12px 0; padding: 12px; border: 1px solid var(--line); border-radius: 7px; background: #f8fafc; }
.setup-secret span, .setup-secret strong { display: block; }
.setup-secret span { color: var(--muted); font-size: 11px; margin-bottom: 5px; }
.setup-secret strong { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; overflow-wrap: anywhere; }
.message { margin-bottom: 14px; padding: 10px 12px; border-radius: 6px; font-size: 12px; }
.message.error { color: #8b1f1f; background: #fdeaea; border: 1px solid #f4caca; }
.message.success { color: #16623f; background: #e7f6ee; border: 1px solid #ccebd9; }
.muted { color: var(--muted); font-size: 11px; }
.button.small { min-height: 32px; padding: 0 10px; font-size: 11px; }
.admin-tabs { display: flex; gap: 4px; margin: 0 0 12px; overflow-x: auto; }
.admin-tabs button { min-height: 38px; padding: 0 14px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: #52677b; cursor: pointer; white-space: nowrap; }
.admin-tabs button.active { color: #fff; background: var(--brand); border-color: var(--brand); }
.admin-section { padding: 18px; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; }
.section-heading h2, .section-heading h3 { margin: 0; }
.section-heading h2 { font-size: 18px; }
.section-heading h3 { font-size: 15px; }
.section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.admin-two-column { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, .8fr); gap: 18px; }
.form-panel { padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: #fbfcfd; }
.form-panel h3 { margin: 0 0 14px; font-size: 15px; }
.form-panel hr { margin: 18px 0; border: 0; border-top: 1px solid var(--line); }
.compact-form { margin-top: 14px; }
.check-row { display: flex !important; grid-template-columns: none !important; align-items: center; gap: 8px !important; margin-bottom: 7px !important; }
.check-row input[type="checkbox"] { width: 16px !important; min-height: 16px !important; height: 16px; padding: 0; }
.checkbox-list { margin: 10px 0 14px; }
.data-table tr.selected td { background: #eef6fc; }
.role-row { width: 100%; display: flex; justify-content: space-between; align-items: center; min-height: 44px; margin-bottom: 6px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; background: #fff; text-align: left; cursor: pointer; }
.role-row span { color: var(--muted); font-size: 11px; }
.role-row.selected { border-color: #8fc0df; background: #eef6fc; }
.permission-group { margin: 14px 0; padding-top: 12px; border-top: 1px solid var(--line); }
.permission-group > strong { display: block; margin-bottom: 8px; font-size: 12px; }
.module-license-list { display: grid; gap: 8px; }
.module-license-row { display: grid; grid-template-columns: minmax(180px, 1.4fr) minmax(120px, .7fr) minmax(130px, .7fr) minmax(130px, .7fr) auto; align-items: end; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 7px; }
.module-license-row > div strong, .module-license-row > div span { display: block; }
.module-license-row > div span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.module-license-row label { margin: 0; }
@media (max-width: 980px) {
    .admin-two-column { grid-template-columns: 1fr; }
    .module-license-row { grid-template-columns: 1fr 1fr; align-items: start; }
}
@media (max-width: 600px) {
    .login-shell { padding: 12px; }
    .login-card { padding: 20px; }
    .admin-section { padding: 12px; }
    .module-license-row { grid-template-columns: 1fr; }
}

/* Rev 004 – Aktionen, Fachdatenbank und reale Artikelübersicht */
.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 18px; background: rgba(12,31,47,.48); }
.modal-card { width: min(620px, 100%); max-height: calc(100vh - 36px); overflow: auto; padding: 20px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 24px 70px rgba(10,28,42,.22); }
.modal-card label { display: grid; gap: 6px; margin-bottom: 12px; color: #40546a; font-size: 12px; }
.modal-card input, .modal-card select { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid #ccd7e1; border-radius: 6px; background: #fff; color: var(--text); }
.modal-card hr { margin: 18px 0; border: 0; border-top: 1px solid var(--line); }
.compact-modal { width: min(470px, 100%); }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.database-config { max-width: 900px; }
.database-form { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px 16px; }
.database-form label { display: grid; gap: 6px; color: #40546a; font-size: 12px; }
.database-form input { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid #ccd7e1; border-radius: 6px; }
.article-filters { grid-template-columns: minmax(160px, 1fr) minmax(160px, 1fr) minmax(180px, .7fr); }
.filter-check { align-self: end; display: flex !important; align-items: center; gap: 8px !important; min-height: 36px; }
.filter-check input { width: 16px; height: 16px; }
.article-master-detail { display: grid; grid-template-columns: minmax(0, 1fr) 340px; border-top: 1px solid var(--line); }
.article-master-detail .table-wrap { border-top: 0; }
.article-table tbody tr { cursor: pointer; }
.article-table tbody tr:hover td { background: #f7fafc; }
.article-table tbody tr.selected td { background: #eaf4fb; }
.data-table td.number { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.article-detail-panel { padding: 18px; border-left: 1px solid var(--line); background: #fbfcfd; }
.article-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.article-detail-head h2 { margin: 3px 0 0; font-size: 17px; line-height: 1.25; }
.detail-list { margin: 0; }
.detail-list > div { display: grid; grid-template-columns: 130px minmax(0,1fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid #e9eef2; }
.detail-list dt { color: var(--muted); font-size: 11px; }
.detail-list dd { margin: 0; font-size: 12px; overflow-wrap: anywhere; }
.table-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.table-footer > div { display: flex; align-items: center; gap: 9px; }
@media (max-width: 1150px) { .article-master-detail { grid-template-columns: 1fr; } .article-detail-panel { border-left: 0; border-top: 1px solid var(--line); } }
@media (max-width: 700px) { .database-form, .article-filters { grid-template-columns: 1fr; } .modal-backdrop { padding: 8px; align-items: end; } .modal-card { max-height: calc(100vh - 16px); border-radius: 12px 12px 0 0; } .table-footer { align-items: flex-start; flex-direction: column; } }

/* Rev 005 – Artikeldetailansicht */
.table-link { color: var(--text); text-decoration: none; }
.table-link:hover { color: var(--brand); text-decoration: underline; }
.article-title-link { display: block; }
.article-open-column { width: 42px; text-align: center !important; }
.icon-link { display: inline-grid; width: 28px; height: 28px; place-items: center; border-radius: 6px; color: #52677b; text-decoration: none; font-size: 15px; }
.icon-link:hover { background: #eaf4fb; color: var(--brand); }
.status-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 9px; border-radius: 999px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.status-badge.active { color: #14734a; background: #daf5e8; }
.status-badge.inactive { color: #5f6f7f; background: #edf1f4; }
.status-badge.eol { color: #8b5315; background: #fff0d7; }
.back-link { display: inline-block; margin-bottom: 10px; color: #52677b; text-decoration: none; font-size: 12px; }
.back-link:hover { color: var(--brand); }
.article-number-line { margin-bottom: 3px; color: var(--brand); font-size: 12px; font-weight: 700; letter-spacing: .03em; }
.article-detail-titlebar { align-items: flex-end; }
.article-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin-bottom: 12px; }
.summary-card { padding: 16px; }
.summary-card span, .summary-card strong, .summary-card small { display: block; }
.summary-card span { color: var(--muted); font-size: 11px; }
.summary-card strong { margin-top: 5px; font-size: 19px; }
.summary-card small { margin-top: 5px; color: var(--muted); font-size: 10px; }
.article-detail-shell { overflow: hidden; }
.article-detail-overview { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr); gap: 0; }
.article-detail-overview > div { padding: 18px; }
.article-detail-overview > div + div { border-left: 1px solid var(--line); background: #fbfcfd; }
.article-detail-overview h2 { margin: 0 0 10px; font-size: 14px; }
.detail-subheading { margin-top: 20px !important; }
.detail-list.wide > div { grid-template-columns: 150px minmax(0,1fr); }
.property-grid { display: flex; flex-wrap: wrap; gap: 7px; }
.property-chip { padding: 6px 9px; border-radius: 6px; border: 1px solid var(--line); font-size: 11px; }
.property-chip.on { color: #14734a; border-color: #bfe6d3; background: #eefaf4; }
.property-chip.off { color: #708090; background: #f4f6f8; }
.detail-tabs { display: flex; gap: 0; overflow-x: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; scrollbar-width: thin; }
.detail-tabs button { flex: 0 0 auto; min-height: 45px; padding: 0 14px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: #52677b; cursor: pointer; font-size: 11px; }
.detail-tabs button:hover { background: #f7fafc; }
.detail-tabs button.active { color: var(--brand); border-bottom-color: var(--brand); font-weight: 700; }
.detail-tab-content { min-height: 260px; }
.detail-table-wrap { border-top: 0; }
.description-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.description-grid section { min-height: 280px; padding: 18px; border-right: 1px solid var(--line); }
.description-grid section:last-child { border-right: 0; }
.description-grid h3 { margin: 0 0 12px; font-size: 13px; }
.legacy-description { white-space: pre-wrap; color: #31465a; font-size: 12px; line-height: 1.55; }
.calculation-list { display: grid; gap: 12px; padding: 16px; }
.calculation-card { padding: 15px; border: 1px solid var(--line); border-radius: 7px; background: #fbfcfd; }
.calculation-card .section-heading { margin-bottom: 12px; }
.calculation-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.calculation-grid > div { padding: 10px; border: 1px solid #e4eaf0; border-radius: 6px; background: #fff; }
.calculation-grid span, .calculation-grid strong { display: block; }
.calculation-grid span { color: var(--muted); font-size: 10px; }
.calculation-grid strong { margin-top: 4px; font-size: 13px; }
.calculation-factors { margin-top: 10px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.empty-inline { padding: 30px 16px; color: var(--muted); text-align: center; }
@media (max-width: 1050px) {
    .article-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .article-detail-overview { grid-template-columns: 1fr; }
    .article-detail-overview > div + div { border-left: 0; border-top: 1px solid var(--line); }
    .description-grid { grid-template-columns: 1fr; }
    .description-grid section { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
    .description-grid section:last-child { border-bottom: 0; }
    .calculation-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
    .article-summary-grid { grid-template-columns: 1fr 1fr; }
    .summary-card { padding: 12px; }
    .summary-card strong { font-size: 16px; }
    .detail-list.wide > div { grid-template-columns: 115px minmax(0,1fr); }
    .calculation-grid { grid-template-columns: 1fr; }
}
.database-block { padding: 16px 0; }
.database-block + .database-block { margin-top: 18px; border-top: 1px solid var(--line); }
.database-block .section-heading { align-items: center; }


/* Rev 005f: Hauptartikel/Varianten und Legacy-Artikelbilder */
.variant-column { width: 46px; text-align: center !important; }
.variant-badge { display:inline-flex; min-width:24px; height:24px; padding:0 7px; align-items:center; justify-content:center; border-radius:999px; background:#e5f2fb; color:var(--primary); font-size:11px; font-weight:700; }
.article-media-area { display:grid; grid-template-columns:minmax(150px,220px) 1fr; gap:12px; margin-bottom:18px; align-items:start; }
.article-main-image { min-height:180px; border:1px solid var(--line); border-radius:10px; background:#fff; display:flex; align-items:center; justify-content:center; overflow:hidden; color:var(--muted); font-size:12px; padding:8px; }
.article-main-image img { width:100%; height:180px; object-fit:contain; }
.article-image-thumbs { display:grid; grid-template-columns:repeat(3,minmax(55px,1fr)); gap:8px; }
.article-image-thumbs a { height:64px; border:1px solid var(--line); border-radius:8px; background:#fff; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.article-image-thumbs img { width:100%; height:100%; object-fit:contain; }
.manufacturer-logo { grid-column:2; min-height:44px; display:flex; align-items:center; justify-content:flex-start; }
.manufacturer-logo img { max-width:180px; max-height:58px; object-fit:contain; }
@media (max-width:760px) { .article-media-area { grid-template-columns:1fr; } .manufacturer-logo { grid-column:1; } }

/* Rev 005g: Bilder blockieren die Artikeldaten nicht mehr; nur optimierte Vorschauen in der UI. */
.article-media-area { grid-template-columns: 240px minmax(0,1fr); }
.article-main-image { width:240px; height:220px; min-height:0; padding:10px; }
.article-main-image > a { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.article-main-image img { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; display:block; }
.article-image-thumbs { grid-template-columns:repeat(auto-fill,minmax(62px,76px)); align-content:start; justify-content:start; }
.article-image-thumbs a { width:72px; height:64px; }
.article-image-thumbs img { max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.manufacturer-logo img { width:auto; height:auto; max-width:180px; max-height:58px; }
.variant-image-column { width:72px; min-width:72px; text-align:center !important; }
.variant-image-preview { position:relative; width:52px; height:52px; margin:0 auto; border:1px solid var(--line); border-radius:7px; background:#fff; display:flex; align-items:center; justify-content:center; color:var(--muted); overflow:hidden; }
.variant-image-preview img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#fff; }
@media (max-width:760px) {
    .article-media-area { grid-template-columns:1fr; }
    .article-main-image { width:100%; max-width:280px; height:210px; }
}

/* Rev 005h: Artikel-UX, Beschreibungstabs, Galerie und zustandserhaltende Navigation */
.article-main-image,
.article-image-thumbs,
.variant-image-preview,
.manufacturer-logo { background: transparent; }
.article-main-image { border-color: transparent; }
.article-image-button,
.article-image-thumb-button {
    appearance: none;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    cursor: zoom-in;
}
.article-image-button { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.article-image-button img,
.article-image-thumb-button img,
.variant-image-preview img,
.manufacturer-logo img { mix-blend-mode: multiply; }
.article-image-thumbs { display: flex; flex-wrap: wrap; gap: 8px; }
.article-image-thumb-button {
    width: 72px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    overflow: hidden;
}
.article-image-thumb-button:hover { outline: 1px solid #bfd5e5; }
.article-image-thumb-button img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.manufacturer-logo-information { margin-top: 14px; min-height: 58px; display: flex; align-items: center; justify-content: flex-start; }
.manufacturer-logo-information img { max-width: 220px; max-height: 70px; object-fit: contain; }

.detail-loading {
    min-height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: var(--muted);
    font-size: 12px;
}
.loading-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--brand); opacity: .65; }

.description-workspace { background: #fff; }
.description-tabs {
    display: flex;
    gap: 6px;
    padding: 12px 16px 0;
    border-bottom: 1px solid var(--line);
}
.description-tabs button {
    appearance: none;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    padding: 9px 12px 10px;
    color: #52677b;
    font-size: 12px;
    cursor: pointer;
}
.description-tabs button:hover { color: var(--brand); }
.description-tabs button.active { color: var(--brand); border-bottom-color: var(--brand); font-weight: 700; }
.description-layout { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(260px,.65fr); min-height: 260px; }
.description-card { padding: 18px; border-right: 1px solid var(--line); }
.description-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.description-card h3, .article-facts-card h3 { margin: 0; font-size: 13px; }
.description-card .legacy-description {
    white-space: pre-wrap;
    color: #31465a;
    font-size: 12px;
    line-height: 1.58;
    overflow-wrap: anywhere;
}
.link-button {
    appearance: none;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--brand);
    cursor: pointer;
    font: inherit;
    text-decoration: none;
}
.link-button:hover { text-decoration: underline; }
.description-more { margin-top: 14px; font-size: 12px; font-weight: 600; }
.article-facts-card { padding: 18px; background: #fbfcfd; }
.facts-list { margin: 12px 0 0; }
.facts-list > div { display: grid; grid-template-columns: 105px minmax(0,1fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid #e9eef2; }
.facts-list dt { color: var(--muted); font-size: 11px; }
.facts-list dd { margin: 0; font-size: 12px; overflow-wrap: anywhere; }

.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.modal-head h2 { margin: 0; font-size: 18px; }
.modal-head p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.modal-close {
    appearance: none;
    width: 34px;
    height: 34px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
    color: #53687b;
    cursor: pointer;
    font-size: 22px;
    line-height: 1;
}
.modal-close:hover { background: #f5f8fa; color: var(--text); }
.image-gallery-dialog { width: min(1050px, 100%); padding: 16px; overflow: hidden; }
.gallery-stage {
    position: relative;
    min-height: min(68vh, 720px);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #f7f9fb;
    border-radius: 8px;
}
.gallery-stage img { max-width: 100%; max-height: min(68vh, 720px); width: auto; height: auto; object-fit: contain; }
.gallery-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    width: 42px;
    height: 58px;
    border: 1px solid rgba(120,140,158,.35);
    border-radius: 8px;
    background: rgba(255,255,255,.9);
    color: #31465a;
    cursor: pointer;
    font-size: 30px;
}
.gallery-nav.previous { left: 10px; }
.gallery-nav.next { right: 10px; }
.gallery-thumbnails { display: flex; gap: 8px; padding-top: 12px; overflow-x: auto; }
.gallery-thumbnails button {
    flex: 0 0 68px;
    width: 68px;
    height: 58px;
    padding: 4px;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    cursor: pointer;
}
.gallery-thumbnails button.active { border-color: var(--brand); background: #eef6fb; }
.gallery-thumbnails img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.description-dialog { width: min(900px, 100%); }
.description-dialog-body { white-space: pre-wrap; overflow-wrap: anywhere; color: #31465a; font-size: 12px; line-height: 1.62; }

@media (max-width: 900px) {
    .description-layout { grid-template-columns: 1fr; }
    .description-card { border-right: 0; border-bottom: 1px solid var(--line); }
}
@media (max-width: 700px) {
    .description-tabs { overflow-x: auto; padding-left: 10px; padding-right: 10px; }
    .description-tabs button { white-space: nowrap; }
    .gallery-stage { min-height: 50vh; }
    .gallery-stage img { max-height: 50vh; }
}

/* Rev 005i: sichere Legacy-Beschreibung mit Tabellen und technische Highlights */
.legacy-description-html { color:#31465a; font-size:12px; line-height:1.55; position:relative; }
.legacy-description-html.is-collapsed { max-height:420px; overflow:hidden; }
.legacy-description-html.is-collapsed::after {
    content:""; position:absolute; left:0; right:0; bottom:0; height:70px;
    background:linear-gradient(to bottom, rgba(255,255,255,0), #fff 82%); pointer-events:none;
}
.legacy-description-html.full { max-height:none; overflow:visible; }
.legacy-description-table-wrap { width:100%; overflow-x:auto; border:1px solid var(--line); border-radius:8px; background:#fff; }
.legacy-description-table { width:100%; border-collapse:collapse; min-width:520px; }
.legacy-description-table th,
.legacy-description-table td { padding:8px 10px; border-bottom:1px solid #e8eef3; vertical-align:top; text-align:left; }
.legacy-description-table th { width:22%; min-width:150px; color:#52677b; font-weight:600; background:#f8fafc; }
.legacy-description-table td { color:#24384b; overflow-wrap:anywhere; }
.legacy-description-table tr:last-child > * { border-bottom:0; }
.legacy-description-table .description-section { width:auto; color:#18334b; background:#eef5fa; font-weight:700; }
.legacy-description-html p { margin:0 0 10px; }
.description-empty, .facts-empty { color:var(--muted); }
.technical-facts-list > div { grid-template-columns:110px minmax(0,1fr); }
.technical-facts-list dd { font-weight:600; color:#20364a; }
@media (max-width:700px) {
    .legacy-description-table { min-width:0; }
    .legacy-description-table th, .legacy-description-table td { display:block; width:auto; min-width:0; }
    .legacy-description-table th:not(.description-section) { padding-bottom:3px; border-bottom:0; }
    .legacy-description-table td { padding-top:3px; }
}


/* Rev 005j: zusätzliche Lager-/Preisinformationen und Artikelstruktur als Tree View */
.detail-value-alert { color:#b42318 !important; font-weight:700; }
.detail-value-positive { color:#087a4b; font-weight:700; }
.article-stock-information { margin-top:2px; }
.article-stock-information dd { font-variant-numeric:tabular-nums; }

.article-structure-tree {
    padding:18px 20px 22px;
    min-height:180px;
    color:#31465a;
    font-size:12px;
}
.structure-root,
.structure-group-title,
.structure-child {
    display:flex;
    align-items:center;
    gap:7px;
    min-height:30px;
}
.structure-root {
    padding:5px 8px;
    border-radius:7px;
    background:#f6f9fb;
}
.structure-root.current,
.structure-child.current {
    background:#eef6fb;
    box-shadow:inset 3px 0 0 var(--brand);
}
.structure-group { margin-left:19px; }
.structure-group-title { padding-top:5px; }
.structure-children { margin-left:25px; border-left:1px solid #dbe5ec; }
.structure-child {
    position:relative;
    padding:3px 8px 3px 13px;
    border-radius:5px;
}
.structure-child:hover { background:#f7fafc; }
.structure-child.current:hover { background:#eef6fb; }
.tree-toggle {
    width:22px;
    height:22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 22px;
    padding:0;
    border:0;
    border-radius:5px;
    background:transparent;
    color:#6c8194;
    cursor:pointer;
}
.tree-toggle:hover, .tree-toggle:focus-visible { background:#eaf2f7; outline:none; }
.tree-toggle .tree-symbol { pointer-events:none; }
.tree-symbol { color:#6c8194; width:12px; text-align:center; flex:0 0 12px; }
.tree-branch { color:#9aabba; font-family:Consolas, "Courier New", monospace; white-space:pre; }
.structure-article-link { white-space:nowrap; }
.structure-count {
    display:inline-flex;
    min-width:20px;
    height:18px;
    align-items:center;
    justify-content:center;
    padding:0 6px;
    border-radius:999px;
    background:#eaf2f7;
    color:#52677b;
    font-size:10px;
    margin-left:3px;
}
.structure-empty { color:#b42318; font-weight:700; }

@media (max-width:700px) {
    .article-structure-tree { padding:12px; }
    .structure-root,
    .structure-group-title,
    .structure-child { align-items:flex-start; flex-wrap:wrap; }
    .structure-group { margin-left:8px; }
    .structure-children { margin-left:14px; }
}

/* Rev 006 – Artikelbearbeitung */
.detail-section-heading, .tab-actionbar { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.detail-section-heading .detail-subheading { margin-bottom: 10px; }
.tab-actionbar { justify-content:flex-end; margin:0 0 10px; }
.form-grid { display:grid; gap:12px; }
.form-grid.two-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
.form-grid .span-two { grid-column:1 / -1; }
.form-grid input, .form-grid select, .html-editor-textarea, .compact-dialog input { width:100%; min-height:40px; padding:8px 10px; border:1px solid #ccd7e1; border-radius:6px; background:#fff; color:var(--text); }
.check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; margin-top:14px; }
.check-grid label, .check-field { display:flex !important; align-items:center; gap:8px; margin:0 !important; }
.check-grid input, .check-field input { width:auto !important; min-height:auto !important; }
.article-edit-dialog { width:min(860px,100%); }
.article-description-edit-dialog { width:min(1180px,100%); }
.description-editor-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; margin-top:12px; }
.html-editor-textarea { min-height:430px; resize:vertical; font:12px/1.5 Consolas,"Courier New",monospace; }
.description-preview { min-height:430px; padding:12px; border:1px solid var(--line); border-radius:8px; overflow:auto; background:#fff; }
.field-caption { display:block; margin-bottom:8px; color:var(--muted); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.image-manager-dialog { width:min(900px,100%); }
.image-upload-field { display:flex !important; align-items:center; justify-content:space-between; gap:12px; padding:12px; border:1px dashed #c4d3df; border-radius:8px; }
.image-upload-field input { width:auto !important; min-height:auto !important; }
.image-manager-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; margin-top:14px; }
.image-manager-item { display:grid; gap:8px; padding:10px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.image-manager-item img { width:100%; height:130px; object-fit:contain; background:transparent; }
.image-manager-item span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; color:var(--muted); }
.compact-dialog { width:min(520px,100%); }
.location-manager-dialog { width:min(720px,100%); }
.location-option-list { display:grid; max-height:55vh; overflow:auto; border:1px solid var(--line); border-radius:8px; }
.location-option { display:flex !important; align-items:center; gap:10px; margin:0 !important; padding:10px 12px; border-bottom:1px solid var(--line); }
.location-option:last-child { border-bottom:0; }
.location-option input { width:auto !important; min-height:auto !important; }
.supplier-edit-dialog { width:min(840px,100%); }
.modal-spacer { flex:1; }
.button.danger { color:#a22121; border-color:#e5bcbc; background:#fff7f7; }
.button.danger:hover { background:#fdeaea; }
.row-actions { white-space:nowrap; text-align:right; }
@media (max-width: 760px) {
  .form-grid.two-columns, .check-grid, .description-editor-grid { grid-template-columns:1fr; }
  .form-grid .span-two { grid-column:auto; }
  .html-editor-textarea, .description-preview { min-height:300px; }
}

/* Rev 006a – Artikelwerte, Lagerjournal und Staffelpreise */
.data-table th.number { text-align:right; white-space:nowrap; }
.article-master-stock-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr); gap:22px; }
.article-master-block, .article-stock-block { min-width:0; }
.article-stock-block { padding-left:22px; border-left:1px solid var(--line); }
.article-stock-block .detail-subheading { margin-top:0 !important; }
.stock-correction-link { font-size:10px; }
.variant-total-value { margin-left:5px; color:#52677b; font-size:11px; font-weight:600; cursor:help; white-space:nowrap; }

.price-tree { padding:14px 16px 20px; display:grid; gap:10px; }
.price-tree-group { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; }
.price-tree-group-header { width:100%; min-height:42px; display:flex; align-items:center; gap:8px; padding:8px 12px; border:0; background:#f8fafc; color:#263d52; text-align:left; cursor:pointer; }
.price-tree-group-header:hover { background:#f1f6f9; }
.price-tree-group-header strong { font-size:12px; }
.price-tree-group-header .tree-toggle { pointer-events:none; }
.tree-count { display:inline-flex; align-items:center; min-height:20px; padding:1px 7px; border-radius:999px; background:#e8f5ee; color:#19704b; font-size:10px; font-weight:600; }
.tree-count.muted-count { background:#edf1f4; color:#697b8b; }
.price-tree-content { padding:0 10px 10px 36px; }
.price-table-wrap { margin-top:8px; border:1px solid #e3eaf0; border-radius:7px; overflow:hidden; }
.price-data-table { table-layout:auto; }
.price-data-table th, .price-data-table td { padding-left:14px; padding-right:14px; }
.price-value { font-weight:700; }
.price-history-toggle { display:flex; align-items:center; gap:7px; margin-top:10px; padding:5px 7px; border:0; border-radius:6px; background:transparent; color:#647789; cursor:pointer; font-size:11px; font-weight:600; }
.price-history-toggle:hover { background:#f4f7f9; color:#31465a; }
.price-history-toggle .tree-toggle { pointer-events:none; }
.historical-price-wrap { margin-top:4px; }
.historical-price-row td { background:#fff8e8; color:#5d5c55; }
.historical-price-row:hover td { background:#fff3d7; }
.compact-empty-state { padding:26px 18px; color:var(--muted); text-align:center; }

@media (max-width: 1250px) {
    .article-master-stock-grid { grid-template-columns:1fr; gap:18px; }
    .article-stock-block { padding-left:0; border-left:0; border-top:1px solid var(--line); padding-top:18px; }
}
@media (max-width: 700px) {
    .price-tree { padding:10px; }
    .price-tree-content { padding-left:10px; }
    .price-tree-group-header { flex-wrap:wrap; }
    .price-table-wrap { overflow-x:auto; }
    .price-data-table { min-width:660px; }
}

/* Rev 006b – Kalkulation & Verkaufspreise */
.calculation-heading-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.calculation-actions { display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.calculation-edit-dialog { width:min(980px,100%); }
.calculation-editor-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.calculation-editor-columns section { padding:14px; border:1px solid var(--line); border-radius:8px; background:#fbfcfd; }
.calculation-editor-columns h3 { margin:0 0 12px; font-size:14px; }
.calculation-live-preview { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:14px; }
.calculation-live-preview > div { padding:10px; border:1px solid #dce6ee; border-radius:7px; background:#f7fbfe; }
.calculation-live-preview span,.calculation-live-preview strong { display:block; }
.calculation-live-preview span { color:var(--muted); font-size:10px; }
.calculation-live-preview strong { margin-top:4px; font-size:14px; }
@media (max-width:900px) { .calculation-editor-columns { grid-template-columns:1fr; } .calculation-live-preview { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px) { .calculation-live-preview { grid-template-columns:1fr; } }


/* Rev 006c – kompakte Kalkulationsmaske und sichere Bearbeitungsdialoge */
.calculation-edit-dialog { width:min(1180px,100%); }
.calculation-name-field { max-width:520px; margin-bottom:14px !important; }
.calculation-editor-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,.78fr); gap:14px; align-items:start; }
.calculation-input-panel,
.calculation-result-panel { min-width:0; border:1px solid var(--line); border-radius:8px; background:#fbfcfd; }
.calculation-input-panel { padding:14px; }
.calculation-result-panel { padding:14px; background:#f7fbfe; }
.calculation-panel-heading { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:12px; padding-bottom:9px; border-bottom:1px solid var(--line); }
.calculation-panel-heading h3 { margin:0; font-size:14px; }
.calculation-panel-heading span { color:var(--muted); font-size:10px; text-align:right; }
.calculation-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 10px; }
.calculation-form-grid label { margin-bottom:10px; }
.calculation-form-grid input { text-align:right; font-variant-numeric:tabular-nums; }
.calculation-result-list { margin:0; }
.calculation-result-list > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:baseline; padding:8px 0; border-bottom:1px solid #dfe8ef; }
.calculation-result-list > div:last-child { border-bottom:0; }
.calculation-result-list dt { color:var(--muted); font-size:11px; }
.calculation-result-list dd { margin:0; text-align:right; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.calculation-result-list dd small { color:var(--muted); font-weight:600; }
.calculation-result-list .calculation-result-primary { margin:2px -8px; padding:9px 8px; border:1px solid #cfe3f2; border-radius:6px; background:#fff; }
.calculation-result-list .calculation-result-primary dt,
.calculation-result-list .calculation-result-primary dd { color:var(--brand); }
.calculation-reference-values { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; margin-top:12px; padding-top:10px; border-top:1px solid #dfe8ef; }
.calculation-reference-values span { color:var(--muted); font-size:10px; }
.calculation-reference-values strong { text-align:right; font-size:11px; font-variant-numeric:tabular-nums; }
@media (max-width:1020px) {
    .calculation-editor-layout { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .calculation-result-panel { grid-column:1 / -1; }
    .calculation-result-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
    .calculation-result-list > div { display:block; padding:9px; border:1px solid #dfe8ef; border-radius:6px; background:#fff; }
    .calculation-result-list dd { margin-top:4px; text-align:left; }
}
@media (max-width:700px) {
    .calculation-editor-layout { grid-template-columns:1fr; }
    .calculation-result-panel { grid-column:auto; }
    .calculation-form-grid { grid-template-columns:1fr; }
    .calculation-result-list { grid-template-columns:1fr 1fr; }
}
@media (max-width:430px) { .calculation-result-list { grid-template-columns:1fr; } }

/* Rev 007 – Lager & Inventur */
.warehouse-tabs { margin-bottom: 14px; }
.warehouse-kpi-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; margin-bottom:14px; }
.warehouse-kpi { padding:16px; }
.warehouse-kpi span, .warehouse-kpi strong { display:block; }
.warehouse-kpi span { color:var(--muted); font-size:11px; }
.warehouse-kpi strong { margin-top:7px; font-size:21px; font-variant-numeric:tabular-nums; }
.warehouse-info-card { margin-top:14px; }
.warehouse-info-card h2 { margin:0 0 8px; font-size:16px; }
.warehouse-info-card p { margin:0; color:var(--muted); font-size:12px; line-height:1.65; }
.warehouse-tree-card { overflow:hidden; }
.warehouse-tree-node + .warehouse-tree-node { border-top:1px solid var(--line); }
.warehouse-tree-head { min-height:58px; display:flex; align-items:center; gap:10px; padding:9px 14px; }
.tree-toggle { width:30px; height:30px; border:0; border-radius:6px; background:transparent; color:#51687c; cursor:pointer; }
.tree-toggle:hover { background:#f1f5f8; }
.warehouse-tree-title { min-width:0; flex:1; }
.warehouse-tree-title strong, .warehouse-tree-title span { display:block; }
.warehouse-tree-title span { margin-top:3px; color:var(--muted); font-size:10px; }
.warehouse-tree-actions { display:flex; gap:6px; }
.warehouse-location-list { border-top:1px solid #edf1f4; background:#fbfcfd; }
.warehouse-location-row { display:grid; grid-template-columns:28px minmax(220px,1fr) 100px 110px auto auto; align-items:center; gap:10px; min-height:48px; padding:7px 14px 7px 28px; border-bottom:1px solid #edf1f4; font-size:11px; }
.warehouse-location-row:last-child { border-bottom:0; }
.warehouse-location-branch { color:#9aabba; }
.warehouse-location-main strong, .warehouse-location-main span { display:block; }
.warehouse-location-main span { margin-top:2px; color:var(--muted); }
.warehouse-empty, .warehouse-location-empty { padding:24px; color:var(--muted); font-size:12px; }
.warehouse-location-empty { padding-left:72px; }
.status-pill { display:inline-flex; align-items:center; min-height:24px; padding:0 9px; border-radius:999px; background:var(--success-bg); color:var(--success); font-size:10px; font-weight:600; white-space:nowrap; }
.status-pill.neutral { background:#edf2f6; color:#52677b; }
.status-pill.inactive { background:#f3f4f6; color:#777f88; }
.warehouse-toolbar { display:flex; align-items:center; gap:10px; padding:13px 14px; }
.warehouse-toolbar .search-field { flex:1; min-width:220px; }
.warehouse-active-check { margin:0 !important; white-space:nowrap; }
.warehouse-stock-table td a { color:var(--brand); text-decoration:none; }
.warehouse-stock-table td a:hover { text-decoration:underline; }
.warehouse-row-actions { display:flex; justify-content:flex-end; gap:5px; white-space:nowrap; }
.stock-low, .negative { color:#a22121; font-weight:700; }
.positive { color:#14734a; font-weight:700; }
.warehouse-small-modal { width:min(520px,100%); }
.warehouse-inventory-modal { width:min(720px,100%); }
.warehouse-dialog-note { margin:0 0 14px; padding:11px 12px; border:1px solid var(--line); border-radius:6px; background:#f8fafc; color:#51687c; font-size:12px; line-height:1.5; }
.warehouse-location-picker { max-height:260px; overflow:auto; margin:12px 0; padding:10px 12px; border:1px solid var(--line); border-radius:7px; }
.warehouse-location-picker > strong { display:block; margin-bottom:8px; font-size:12px; }
.inventory-detail-heading .back-link-button { display:block; margin:0 0 10px; padding:0; border:0; background:transparent; color:#52677b; cursor:pointer; }
.inventory-detail-heading .article-number { display:block; margin-bottom:4px; color:var(--brand); font-size:12px; font-weight:700; }
.inventory-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); }
.inventory-count-card { overflow:hidden; }
.inventory-toolbar { border-bottom:1px solid var(--line); }
.inventory-count-table input { width:100%; min-width:92px; height:34px; padding:0 8px; border:1px solid #ccd7e1; border-radius:5px; background:#fff; color:var(--text); }
.inventory-count-table .inventory-note-cell input { min-width:150px; }
.inventory-count-table tr.inventory-difference td { background:#fff9f2; }
.inventory-input-cell { width:120px; }

@media (max-width:1250px) {
    .warehouse-kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .warehouse-location-row { grid-template-columns:28px minmax(180px,1fr) 90px 100px auto; }
    .warehouse-location-row .status-pill { display:none; }
}
@media (max-width:820px) {
    .warehouse-kpi-grid, .inventory-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .warehouse-toolbar { align-items:stretch; flex-direction:column; }
    .warehouse-toolbar .search-field { width:100%; min-width:0; }
    .warehouse-location-row { grid-template-columns:24px minmax(0,1fr) auto; padding-left:14px; }
    .warehouse-location-row > span:nth-of-type(2), .warehouse-location-row > span.number { display:none; }
    .warehouse-tree-actions { flex-wrap:wrap; justify-content:flex-end; }
    .warehouse-row-actions { flex-wrap:wrap; }
}
@media (max-width:520px) {
    .warehouse-kpi-grid, .inventory-kpis { grid-template-columns:1fr 1fr; gap:8px; }
    .warehouse-kpi { padding:12px; }
    .warehouse-kpi strong { font-size:18px; }
    .warehouse-tree-head { align-items:flex-start; flex-wrap:wrap; }
    .warehouse-tree-actions { width:100%; padding-left:40px; justify-content:flex-start; }
    .inventory-table-wrap { overflow-x:auto; }
}

/* Rev 007b – hierarchische Lagerstruktur */
.warehouse-structure-legend { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:11px 14px; border-bottom:1px solid var(--line); background:#f8fafc; color:#52677b; font-size:11px; }
.warehouse-structure-legend strong { color:var(--text); }
.warehouse-structure-legend code { margin-left:auto; padding:4px 7px; border:1px solid var(--line); border-radius:5px; background:#fff; color:#31465a; font-size:11px; }
.warehouse-code-badge, .warehouse-code-segment { display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:26px; padding:0 7px; border:1px solid #cfd9e2; border-radius:5px; background:#fff; color:#31465a; font-variant-numeric:tabular-nums; font-weight:700; }
.warehouse-hierarchy-children { border-top:1px solid #edf1f4; background:#fbfcfd; }
.warehouse-hierarchy-node + .warehouse-hierarchy-node { border-top:1px solid #edf1f4; }
.warehouse-hierarchy-row { display:grid; grid-template-columns:30px 18px 52px minmax(200px,1fr) 90px auto auto; align-items:center; gap:8px; min-height:48px; padding:6px 14px 6px 30px; font-size:11px; }
.warehouse-hierarchy-children.depth-2 .warehouse-hierarchy-row { padding-left:58px; }
.warehouse-hierarchy-children.depth-3 .warehouse-hierarchy-row { padding-left:86px; }
.warehouse-branch { color:#9aabba; }
.warehouse-hierarchy-label { min-width:0; }
.warehouse-hierarchy-label strong, .warehouse-hierarchy-label span { display:block; }
.warehouse-hierarchy-label span { margin-top:2px; color:var(--muted); }
.warehouse-node-count { color:var(--muted); white-space:nowrap; }
.warehouse-place-list { border-top:1px solid #edf1f4; background:#fff; }
.warehouse-place-row { display:grid; grid-template-columns:18px minmax(150px,220px) minmax(180px,1fr) 85px 95px auto auto; align-items:center; gap:10px; min-height:44px; padding:6px 14px 6px 118px; border-bottom:1px solid #edf1f4; font-size:11px; }
.warehouse-place-row:last-child { border-bottom:0; }
.warehouse-full-code { font-variant-numeric:tabular-nums; white-space:nowrap; }
.warehouse-place-description { color:#52677b; }
.warehouse-unstructured { margin:10px 14px 14px 42px; padding:10px 12px; border:1px solid #eadfca; border-radius:7px; background:#fffaf2; }
.warehouse-unstructured > strong, .warehouse-unstructured > span { display:block; }
.warehouse-unstructured > span { margin-top:3px; color:#765f35; font-size:10px; }
.warehouse-unstructured .warehouse-place-row { margin-top:8px; padding-left:8px; background:#fff; border:1px solid #efe6d8; border-radius:5px; }
.warehouse-code-form { display:grid; grid-template-columns:150px minmax(0,1fr); gap:12px; }
.warehouse-code-preview { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 0; padding:10px 12px; border:1px solid var(--line); border-radius:6px; background:#f8fafc; }
.warehouse-code-preview span { color:var(--muted); font-size:10px; }
.warehouse-code-preview strong { font-variant-numeric:tabular-nums; letter-spacing:.04em; }

@media (max-width:980px) {
    .warehouse-hierarchy-row { grid-template-columns:30px 18px 48px minmax(150px,1fr) auto auto; }
    .warehouse-node-count { display:none; }
    .warehouse-place-row { grid-template-columns:18px minmax(145px,200px) minmax(130px,1fr) auto; padding-left:70px; }
    .warehouse-place-row > span:nth-of-type(3), .warehouse-place-row > span.number { display:none; }
}
@media (max-width:620px) {
    .warehouse-structure-legend code { width:100%; margin-left:0; text-align:center; }
    .warehouse-hierarchy-row { grid-template-columns:28px 14px 44px minmax(0,1fr); padding-left:14px !important; align-items:start; }
    .warehouse-hierarchy-row > .status-pill, .warehouse-hierarchy-row > .warehouse-tree-actions { grid-column:4; }
    .warehouse-hierarchy-row > .warehouse-tree-actions { justify-content:flex-start; }
    .warehouse-place-row { grid-template-columns:14px minmax(130px,1fr) auto; padding-left:42px; }
    .warehouse-place-row .warehouse-place-description { display:none; }
    .warehouse-code-form { grid-template-columns:1fr; gap:0; }
}

/* Rev 007c – mobile Barcode-Workflow und native Lagerplatzzuordnung */
.topbar-scan-button { display:inline-grid; place-items:center; font-size:18px; }
.barcode-scanner-dialog { width:min(520px,100%); }
.barcode-scan-actions { display:grid; gap:10px; padding:4px 0 16px; }
.barcode-camera-button { position:relative; justify-content:center; min-height:48px; cursor:pointer; }
.barcode-camera-input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.barcode-scan-hint { margin:0; line-height:1.45; }
.barcode-manual-entry { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:end; padding-top:14px; border-top:1px solid var(--line); }
.barcode-manual-entry label { margin:0; }
.barcode-scanner-status { margin-top:12px; padding:10px 12px; border-radius:8px; background:#eef6fb; color:#31546d; font-size:13px; }
.native-location-manager { width:min(860px,100%); }
.location-manager-toolbar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.native-location-tree { max-height:58vh; overflow:auto; border:1px solid var(--line); border-radius:9px; padding:6px 10px; background:#fff; }
.native-location-tree details { margin:3px 0; }
.native-location-tree details details { margin-left:18px; }
.native-location-tree summary { cursor:pointer; padding:7px 6px; border-radius:6px; color:#263d52; }
.native-location-tree summary:hover { background:#f4f8fb; }
.native-location-leaves { margin-left:18px; border-left:1px solid #d8e2e9; }
.native-location-option { border-bottom:0; border-radius:6px; padding:8px 10px !important; }
.native-location-option:hover { background:#f4f8fb; }

@media (max-width:700px) {
    .topbar-actions .topbar-scan-button { display:inline-grid !important; }
    .barcode-scanner-dialog { border-radius:12px 12px 0 0; }
    .barcode-manual-entry { grid-template-columns:1fr; }
    .barcode-manual-entry .button { width:100%; }
    .native-location-tree { max-height:52vh; }
}

/* Rev 008 – Lageretiketten / Druckwarteschlange */
.label-layout-grid { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:16px; align-items:start; }
.label-search-card { margin-bottom:16px; }
.label-search-status { padding:12px 0 2px; }
.label-search-results { display:grid; gap:8px; margin-top:12px; }
.label-search-result { display:grid; grid-template-columns:52px minmax(0,1fr) auto; align-items:center; gap:12px; padding:8px 0; border-top:1px solid var(--line,#d9e1e8); }
.label-search-result img,.label-queue-row img { width:52px; height:42px; object-fit:contain; background:transparent; }
.label-search-result div,.label-queue-copy { min-width:0; display:flex; flex-direction:column; gap:2px; }
.label-search-result span,.label-queue-copy span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.label-queue-list { display:grid; }
.label-queue-row { display:grid; grid-template-columns:58px minmax(0,1fr) 92px 42px; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--line,#d9e1e8); }
.label-queue-row:first-child { border-top:0; }
.label-queue-copy small { color:var(--muted,#64748b); }
.label-copy-count { display:grid; gap:4px; font-size:.78rem; color:var(--muted,#64748b); }
.label-copy-count input { width:78px; }
.label-print-panel { position:sticky; top:74px; }
.label-sheet-preview { width:220px; max-width:100%; display:grid; grid-template-columns:1fr 1fr; gap:5px; padding:10px; margin:12px auto 16px; border:1px solid var(--line,#d9e1e8); border-radius:8px; background:#f7f9fb; }
.label-sheet-preview button { height:43px; border:1px solid #cfd8e3; background:#fff; border-radius:5px; color:#475569; cursor:pointer; }
.label-sheet-preview button.active { border:2px solid var(--primary,#3386c1); color:var(--primary,#3386c1); font-weight:700; background:#eef7fd; }
.label-print-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:14px; }
.label-print-summary div { display:flex; flex-direction:column; gap:3px; padding:8px; border:1px solid var(--line,#d9e1e8); border-radius:6px; }
.label-print-summary span { font-size:.72rem; color:var(--muted,#64748b); }
.label-print-summary strong { font-size:1.05rem; }
.label-calibration { margin:10px 0 14px; }
.label-calibration summary { cursor:pointer; font-size:.85rem; color:var(--muted,#64748b); }
.full-width { width:100%; justify-content:center; }
@media (max-width: 980px) { .label-layout-grid { grid-template-columns:1fr; } .label-print-panel { position:static; } }
@media (max-width: 620px) { .label-search-result { grid-template-columns:44px minmax(0,1fr); } .label-search-result .button { grid-column:1/-1; } .label-queue-row { grid-template-columns:44px minmax(0,1fr) 72px 38px; gap:8px; } .label-print-summary { grid-template-columns:1fr; } }

/* Rev 009 – Druckstudio */
.printstudio-section-title { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:12px; }
.printstudio-section-title h2 { margin:0 0 3px; font-size:1.05rem; }
.printstudio-section-title p { margin:0; }
.article-print-menu { position:relative; }
.print-menu-button { width:42px; min-width:42px; padding:0; display:inline-grid; place-items:center; }
.print-menu-button svg { width:19px; height:19px; }
.article-print-dropdown { position:absolute; z-index:40; right:0; top:calc(100% + 6px); min-width:190px; padding:6px; background:#fff; border:1px solid var(--line,#d9e1e8); border-radius:8px; box-shadow:0 10px 28px rgba(15,35,55,.14); }
.article-print-dropdown button,.article-print-dropdown a { width:100%; min-height:38px; padding:8px 10px; display:flex; align-items:center; border:0; background:transparent; color:var(--text,#1c2d3d); text-decoration:none; border-radius:6px; font:inherit; text-align:left; cursor:pointer; }
.article-print-dropdown button:hover,.article-print-dropdown a:hover { background:#f3f7fa; }
@media (max-width:620px) { .article-print-dropdown { position:fixed; left:12px; right:12px; top:auto; bottom:12px; } }

/* Rev 009a – Druckstudio Feinschliff */
.printstudio-heading { margin-bottom:12px; }
.printstudio-command-card { margin-bottom:14px; padding:16px 18px; }
.printstudio-command-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:14px; }
.printstudio-command-head h2,.label-print-panel-head h2 { margin:2px 0 3px; }
.printstudio-kicker { display:block; font-size:.7rem; line-height:1.2; text-transform:uppercase; letter-spacing:.08em; color:var(--muted,#64748b); font-weight:700; }
.printstudio-search-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; }
.printstudio-search-row .search-field { min-width:0; }
.printstudio-scan-button { white-space:nowrap; }
.label-layout-grid { grid-template-columns:minmax(0,1fr) 305px; gap:14px; }
.label-layout-grid > .content-card { min-width:0; }
.label-queue-row { grid-template-columns:50px minmax(0,1fr) 82px 34px; gap:10px; padding:12px 4px; }
.label-queue-row img { width:46px; height:40px; }
.label-queue-copy { gap:3px; }
.label-queue-copy a { width:max-content; max-width:100%; }
.label-queue-copy > span { font-size:.92rem; }
.label-queue-copy small { line-height:1.25; }
.label-queue-variant { color:#334e68 !important; font-weight:600; }
.label-copy-count { justify-self:end; }
.label-copy-count input { width:68px; text-align:right; }
.label-print-panel { top:70px; padding:16px; }
.label-print-panel-head { margin-bottom:8px; }
.label-print-panel-head p { margin:0; line-height:1.35; }
.label-sheet-preview { width:200px; gap:4px; padding:8px; margin:10px auto 12px; }
.label-sheet-preview button { height:38px; }
.label-print-summary { gap:6px; margin-bottom:12px; }
.label-print-summary div { padding:7px; }
.label-print-summary strong { font-size:1rem; }
.label-calibration { margin:8px 0 12px; }
.label-print-panel > small { display:block; margin-top:8px; line-height:1.35; }
.label-search-results { margin-top:10px; }
.label-search-result { grid-template-columns:46px minmax(0,1fr) auto; gap:10px; }
.label-search-result img { width:44px; height:38px; }

@media (max-width:980px) {
    .label-layout-grid { grid-template-columns:1fr; }
    .label-print-panel { position:static; }
}
@media (max-width:700px) {
    .printstudio-command-head { flex-direction:column; align-items:stretch; }
    .printstudio-scan-button { width:100%; justify-content:center; }
    .printstudio-search-row { grid-template-columns:1fr; }
    .printstudio-search-row > .button { width:100%; justify-content:center; }
}
@media (max-width:620px) {
    .label-queue-row { grid-template-columns:42px minmax(0,1fr) 64px 34px; gap:8px; }
    .label-queue-row img { width:40px; height:36px; }
    .label-copy-count input { width:60px; }
}

/* Rev 010 – mobiler Inventur- und Offline-Workflow */
.inventory-page-actions { align-items: center; }
.inventory-offline-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 16px;
    padding: 12px 16px;
    border: 1px solid #d6b55e;
    border-radius: 10px;
    background: #fff9e8;
    color: #594813;
}
.inventory-offline-banner.pending { border-color: #9fb8cc; background: #f2f7fb; color: #24465f; }
.inventory-offline-banner span { flex: 1; min-width: 0; }
.inventory-scan-card { margin-bottom: 16px; border: 2px solid #c9dce9; }
.inventory-scan-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.inventory-scan-head h2 { margin: 0 0 4px; }
.inventory-scan-head p { margin: 0; color: #687b8c; }
.inventory-location-badge {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 6px 12px;
    border-radius: 8px;
    background: #163149;
    color: #fff;
    font-weight: 700;
    letter-spacing: .02em;
    white-space: nowrap;
}
.inventory-scan-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.inventory-hid-scan { display: grid; grid-template-columns: minmax(240px, 520px) 1fr; gap: 14px; align-items: end; margin-bottom: 16px; }
.inventory-hid-scan label { display: grid; gap: 5px; font-size: .88rem; font-weight: 600; }
.inventory-hid-scan input { width: 100%; min-height: 44px; }
.inventory-hid-scan span { color: #718393; font-size: .82rem; padding-bottom: 9px; }
.inventory-scan-result {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 18px;
    padding: 14px;
    border: 1px solid #dbe5ec;
    border-radius: 10px;
    background: #f9fbfc;
}
.inventory-scan-product { display: grid; gap: 2px; min-width: 0; }
.inventory-scan-product > span { color: #4a6478; font-size: .82rem; }
.inventory-scan-product > strong { font-size: 1.05rem; overflow-wrap: anywhere; }
.inventory-scan-product small { color: #758694; }
.inventory-scan-quantity { display: grid; gap: 5px; justify-items: center; }
.inventory-scan-quantity > span { font-size: .8rem; color: #607486; }
.inventory-scan-quantity > div { display: grid; grid-template-columns: 40px 86px 40px; gap: 6px; align-items: center; }
.inventory-scan-quantity input { width: 86px; min-height: 38px; text-align: center; font-size: 1rem; font-weight: 700; }
.inventory-scan-quantity small { color: #758694; }
.inventory-scan-result-actions { display: flex; flex-direction: column; gap: 6px; }
.inventory-scan-selected td { box-shadow: inset 0 2px 0 #3386c1, inset 0 -2px 0 #3386c1; }
.inventory-scan-selected td:first-child { box-shadow: inset 2px 0 0 #3386c1, inset 0 2px 0 #3386c1, inset 0 -2px 0 #3386c1; }
.inventory-scan-selected td:last-child { box-shadow: inset -2px 0 0 #3386c1, inset 0 2px 0 #3386c1, inset 0 -2px 0 #3386c1; }

@media (max-width: 760px) {
    .inventory-offline-banner { align-items: flex-start; flex-wrap: wrap; }
    .inventory-scan-head { flex-direction: column; }
    .inventory-location-badge { width: 100%; justify-content: center; }
    .inventory-scan-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .inventory-scan-actions .button { min-height: 46px; }
    .inventory-hid-scan { grid-template-columns: 1fr; }
    .inventory-hid-scan span { padding-bottom: 0; }
    .inventory-scan-result { grid-template-columns: 1fr; }
    .inventory-scan-quantity { justify-items: stretch; }
    .inventory-scan-quantity > div { grid-template-columns: 48px minmax(80px, 1fr) 48px; }
    .inventory-scan-quantity input { width: 100%; min-height: 46px; }
    .inventory-scan-result-actions { flex-direction: row; flex-wrap: wrap; }
    .inventory-count-table { min-width: 900px; }
}

/* Rev 011 - Artikelstatistiken */
.article-statistics { min-width:0; }
.statistics-tabs { display:flex; gap:6px; flex-wrap:wrap; padding:14px 16px 0; }
.statistics-tabs button,
.statistics-periods button { border:1px solid var(--line); border-radius:6px; background:#fff; color:#52677b; cursor:pointer; }
.statistics-tabs button { min-height:36px; padding:0 13px; font-size:11px; }
.statistics-tabs button.active,
.statistics-periods button.active { border-color:var(--brand); background:#eef7fd; color:var(--brand); font-weight:700; }
.statistics-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:14px 16px 8px; }
.statistics-toolbar > strong { font-size:14px; }
.statistics-periods { display:flex; gap:5px; flex-wrap:wrap; }
.statistics-periods button { min-height:30px; padding:0 9px; font-size:10px; }
.statistics-loading,.statistics-message { margin:14px 16px; }
.statistics-grid,.statistics-revenue-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:14px; padding:8px 16px 16px; }
.statistics-chart-card,.statistics-table-card { min-width:0; border:1px solid var(--line); border-radius:8px; background:#fff; overflow:hidden; }
.statistics-chart-card { padding:14px; }
.statistics-table-card .table-wrap { border:0; border-radius:0; }
.statistics-chart-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.statistics-chart-head strong,.statistics-chart-head span { display:block; }
.statistics-chart-head strong { font-size:13px; }
.statistics-chart-head span { margin-top:2px; color:var(--muted); font-size:10px; }
.statistics-legend { display:flex; gap:8px 12px; flex-wrap:wrap; justify-content:flex-end; }
.statistics-legend span { display:flex; align-items:center; gap:5px; margin:0; color:#52677b; font-size:10px; }
.statistics-legend i { width:16px; height:3px; border-radius:2px; }
.purchase-chart { width:100%; height:auto; min-height:250px; overflow:visible; }
.chart-gridline { stroke:#dce5ec; stroke-width:1; }
.chart-axis-label { fill:#708397; color:#708397; font-size:10px; line-height:18px; white-space:nowrap; }
.chart-axis-label-right { text-align:right; }
.chart-line { fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.chart-point { stroke:#fff; stroke-width:1.5; }
.series-1 { stroke:#3386c1; background:#3386c1; fill:#3386c1; }
.series-2 { stroke:#6a8a3a; background:#6a8a3a; fill:#6a8a3a; }
.series-3 { stroke:#b4772e; background:#b4772e; fill:#b4772e; }
.series-4 { stroke:#785da7; background:#785da7; fill:#785da7; }
.series-5 { stroke:#aa5267; background:#aa5267; fill:#aa5267; }
.series-6 { stroke:#3f8f89; background:#3f8f89; fill:#3f8f89; }
.statistics-data-table th.number { text-align:right; }
.statistics-summary-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:14px 16px; }
.statistics-summary-row > div { padding:12px; border:1px solid var(--line); border-radius:7px; background:#fbfcfd; }
.statistics-summary-row span,.statistics-summary-row strong { display:block; }
.statistics-summary-row span { color:var(--muted); font-size:10px; }
.statistics-summary-row strong { margin-top:4px; font-size:16px; }
.revenue-chart { display:flex; align-items:flex-end; justify-content:space-around; gap:10px; height:280px; padding:16px 8px 0; border-top:1px solid #edf1f4; }
.revenue-column { display:flex; flex:1 1 0; min-width:38px; height:100%; flex-direction:column; align-items:center; justify-content:flex-end; gap:7px; }
.revenue-bar-track { display:flex; align-items:flex-end; width:min(62px,80%); height:220px; border-bottom:1px solid #cfd9e2; background:linear-gradient(to top, rgba(207,217,226,.35) 1px, transparent 1px); background-size:100% 25%; }
.revenue-bar { position:relative; width:100%; min-height:2px; border-radius:5px 5px 0 0; background:#3386c1; }
.revenue-bar span { position:absolute; left:50%; bottom:100%; transform:translate(-50%,-5px); white-space:nowrap; color:#52677b; font-size:9px; }
.revenue-column > strong { font-size:10px; font-weight:600; }
@media (max-width:1000px) { .statistics-grid,.statistics-revenue-layout { grid-template-columns:1fr; } }
@media (max-width:640px) { .statistics-summary-row { grid-template-columns:1fr; } .statistics-grid,.statistics-revenue-layout { padding-left:10px; padding-right:10px; } .statistics-tabs,.statistics-toolbar { padding-left:10px; padding-right:10px; } .revenue-bar span { display:none; } }

/* Rev 012 – Kundenstammdaten (lesend) */
.customer-filters { align-items:end; }
.customer-table th:nth-child(1), .customer-table td:nth-child(1) { width:92px; }
.customer-table th:nth-child(2), .customer-table td:nth-child(2) { width:150px; }
.customer-table th:nth-child(4), .customer-table td:nth-child(4) { width:105px; }
.customer-table th:nth-child(6), .customer-table td:nth-child(6) { width:105px; }
.customer-table th:nth-child(7), .customer-table td:nth-child(7) { width:90px; }
.customer-title-link { color:var(--text); }
.customer-detail-heading { margin-bottom:14px; }
.customer-title-line { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.customer-title-line h1 { margin-bottom:0; }
.customer-summary-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:14px; margin-bottom:14px; }
.customer-master-card,.customer-contact-summary-card,.customer-tab-card { min-width:0; }
.customer-detail-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:26px; }
.customer-contact-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.customer-contact-summary > div { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 11px; border:1px solid var(--line); border-radius:7px; background:#fbfcfd; }
.customer-contact-summary span { color:var(--muted); font-size:11px; }
.customer-contact-summary strong { font-size:17px; }
.customer-note { margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.customer-note strong { display:block; margin-bottom:5px; font-size:12px; }
.customer-note p { margin:0; white-space:pre-wrap; line-height:1.45; }
.customer-tabs { display:flex; gap:5px; flex-wrap:wrap; margin:0 0 10px; }
.customer-tabs button { min-height:36px; padding:0 13px; border:1px solid var(--line); border-radius:7px; background:#fff; color:#536b80; cursor:pointer; }
.customer-tabs button.active { border-color:var(--brand); background:#eef7fd; color:var(--brand); font-weight:700; }
.customer-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:10px; }
.customer-info-card { min-width:0; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.customer-info-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.customer-info-card p { margin:9px 0 4px; line-height:1.5; }
.customer-info-card small { color:var(--muted); }
.customer-flag-row { display:flex; gap:4px; flex-wrap:wrap; }
.mini-badge { display:inline-flex; align-items:center; min-height:20px; padding:2px 6px; border-radius:999px; background:#eef4f8; color:#456174; font-size:9px; font-weight:700; white-space:nowrap; }
.customer-contact-table { min-width:850px; }
.customer-communication-grid { align-items:start; }
.customer-simple-list { display:grid; }
.customer-simple-list > div { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid var(--line); }
.customer-simple-list > div:first-child { border-top:0; }
.customer-simple-list > div > div:first-child { min-width:0; display:flex; flex-direction:column; gap:2px; }
.customer-simple-list strong,.customer-simple-list span { overflow-wrap:anywhere; }
.customer-simple-list span { color:var(--muted); font-size:11px; }
.customer-location-tree details { border-top:1px solid var(--line); }
.customer-location-tree details:first-child { border-top:0; }
.customer-location-tree summary { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:11px 2px; cursor:pointer; }
.customer-location-tree summary > span:not(.status-badge) { color:var(--muted); font-size:11px; }
.customer-location-tree details > p { margin:0 0 10px 25px; color:#52677b; }
.customer-area-list { margin:0 0 10px 24px; border-left:2px solid #dbe6ee; }
.customer-area-list > div { display:grid; grid-template-columns:minmax(150px,.7fr) minmax(0,1fr) auto; gap:12px; align-items:center; padding:8px 10px; }
.customer-area-list span:not(.status-badge) { color:var(--muted); font-size:11px; }

@media (max-width:900px) {
    .customer-summary-grid { grid-template-columns:1fr; }
}
@media (max-width:680px) {
    .customer-detail-list { grid-template-columns:1fr; }
    .customer-contact-summary { grid-template-columns:1fr 1fr; }
    .customer-tabs { display:grid; grid-template-columns:1fr 1fr; }
    .customer-tabs button { width:100%; }
    .customer-area-list > div { grid-template-columns:1fr; gap:3px; }
}
@media (max-width:460px) {
    .customer-contact-summary { grid-template-columns:1fr; }
    .customer-tabs { grid-template-columns:1fr; }
}
.status-badge.success { color:#14734a; background:#daf5e8; }
.status-badge.muted { color:#5f6f7f; background:#edf1f4; }
.status-badge.danger { color:#a33a3a; background:#fde8e8; }

/* Rev 013 – IT-Dokumentation / CMDB */
.cmdb-heading h1 { margin-top: 5px; }
.cmdb-tabs { margin-bottom: 14px; }
.cmdb-customer-picker { margin-bottom: 14px; }
.cmdb-customer-picker .search-field { border: 0; height: auto; padding: 0; }
.cmdb-customer-picker .search-field input { min-height: 40px; padding: 0 10px; border: 1px solid #cfd9e2; border-radius: 6px; }
.cmdb-customer-list .section-head, .cmdb-panel .section-head { padding: 15px 17px; border-bottom: 1px solid var(--line); }
.cmdb-customer-list .section-head h2, .cmdb-panel .section-head h2 { margin: 0; font-size: 14px; }
.cmdb-customer-list .section-head span, .cmdb-section-head span { color: var(--muted); font-size: 11px; }
.cmdb-table-button { min-height: 30px; display: inline-flex; align-items: center; padding: 0 10px; text-decoration: none; font-size: 11px; }
.numeric { text-align: right; }
.cmdb-stat-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; margin-bottom: 14px; }
.cmdb-stat { padding: 16px; }
.cmdb-stat span, .cmdb-stat strong { display: block; }
.cmdb-stat span { color: var(--muted); font-size: 11px; }
.cmdb-stat strong { margin-top: 6px; font-size: 24px; font-variant-numeric: tabular-nums; }
.cmdb-overview-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-bottom: 14px; }
.cmdb-panel { overflow: hidden; }
.cmdb-panel > p.cmdb-prose { padding: 0 17px 18px; white-space: pre-wrap; line-height: 1.55; font-size: 12px; color: #344b60; }
.cmdb-internal-note { border-left: 3px solid #c59b42; }
.cmdb-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cmdb-section-head > div h2 { margin-bottom: 3px; }
.cmdb-compact-list, .cmdb-history-list, .cmdb-relation-list { padding: 8px 17px 15px; }
.cmdb-compact-list > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.5fr) auto; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid #edf1f4; font-size: 12px; }
.cmdb-compact-list > div:last-child { border-bottom: 0; }
.cmdb-compact-list span, .cmdb-compact-list em { color: var(--muted); font-style: normal; }
.cmdb-history-list > div { display: grid; grid-template-columns: 10px minmax(0,1fr); gap: 10px; padding: 8px 0; }
.cmdb-history-list strong, .cmdb-history-list span { display: block; }
.cmdb-history-list strong { font-size: 12px; font-weight: 600; }
.cmdb-history-list span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.cmdb-history-dot { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--brand); }
.cmdb-location-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 15px; }
.cmdb-location-card { padding: 14px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.cmdb-location-head { display: flex; justify-content: space-between; gap: 12px; }
.cmdb-location-head > div > span { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.cmdb-title-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.cmdb-location-card > p { margin: 10px 0; color: #536a7f; font-size: 11px; line-height: 1.5; }
.cmdb-room-list { margin-top: 11px; border-top: 1px solid #edf1f4; }
.cmdb-room-row, .cmdb-field-row { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border: 0; border-bottom: 1px solid #edf1f4; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.cmdb-room-row:disabled { cursor: default; opacity: 1; }
.cmdb-room-row strong, .cmdb-room-row small, .cmdb-field-row strong, .cmdb-field-row small { display: block; }
.cmdb-room-row small, .cmdb-field-row small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.cmdb-room-row em, .cmdb-field-row em { color: var(--muted); font-size: 10px; font-style: normal; }
.cmdb-inline-action { margin-top: 10px; padding: 0; border: 0; background: transparent; color: var(--brand); cursor: pointer; font-size: 11px; font-weight: 600; }
.cmdb-filter-row { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.cmdb-filter-row select { min-height: 36px; padding: 0 9px; border: 1px solid #d0dae4; border-radius: 5px; background: #fff; }
.cmdb-assets-card { overflow: hidden; }
.cmdb-click-row { cursor: pointer; }
.cmdb-click-row:hover td { background: #f7fbfe; }
.table-subline { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.cmdb-type-list { padding: 12px 15px 18px; }
.cmdb-type-list details { border: 1px solid var(--line); border-radius: 7px; margin-bottom: 9px; overflow: hidden; }
.cmdb-type-list summary { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 9px 12px; cursor: pointer; background: #f9fbfc; }
.cmdb-type-list summary > span:not(.cmdb-type-icon):not(.status-badge) { color: var(--muted); font-size: 11px; }
.cmdb-type-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 7px; background: #eaf4fb; color: var(--brand); }
.cmdb-summary-action { margin-left: auto; border: 0; background: transparent; color: var(--brand); cursor: pointer; font-size: 11px; }
.cmdb-type-fields { padding: 8px 13px 13px; }
.empty-state.small { padding: 14px 0; }
.cmdb-dialog { width: min(760px,100%); }
.cmdb-asset-dialog { width: min(1050px,100%); }
.cmdb-dialog textarea, .cmdb-asset-dialog textarea { min-height: 90px; resize: vertical; }
.cmdb-dialog select, .cmdb-dialog textarea, .cmdb-asset-dialog select, .cmdb-asset-dialog textarea { width: 100%; padding: 8px 10px; border: 1px solid #ccd7e1; border-radius: 6px; background: #fff; color: var(--text); }
.cmdb-check-label { display: flex !important; grid-template-columns: auto 1fr; align-items: center; align-content: center; gap: 8px !important; min-height: 40px; }
.cmdb-check-label input { width: auto !important; min-height: auto !important; }
.cmdb-dialog-subtitle { margin: 0 0 12px; font-size: 14px; }
.required-mark { color: #b94242; }
.cmdb-asset-summary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-bottom: 14px; }
.cmdb-asset-summary-grid .detail-list { padding: 12px 17px 17px; }
.cmdb-detail-lower-grid { align-items: start; }
.cmdb-relation-list > div { display: grid; grid-template-columns: 24px minmax(0,1fr) 34px; align-items: start; gap: 8px; padding: 10px 0; border-bottom: 1px solid #edf1f4; }
.cmdb-relation-list > div:last-child { border-bottom: 0; }
.cmdb-relation-arrow { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: #eaf4fb; color: var(--brand); }
.cmdb-relation-list strong, .cmdb-relation-list a, .cmdb-relation-list small { display: block; }
.cmdb-relation-list strong { font-size: 11px; }
.cmdb-relation-list a { margin-top: 2px; color: var(--brand); font-size: 12px; font-weight: 600; text-decoration: none; }
.cmdb-relation-list small { margin-top: 4px; color: var(--muted); }
.cmdb-history-panel { margin-top: 14px; }

@media (max-width: 1200px) {
    .cmdb-stat-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .cmdb-asset-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
    .cmdb-overview-grid, .cmdb-location-grid, .cmdb-asset-summary-grid { grid-template-columns: 1fr; }
    .cmdb-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .cmdb-section-head { align-items: stretch; flex-direction: column; }
    .cmdb-filter-row > * { flex: 1 1 150px; }
    .cmdb-compact-list > div { grid-template-columns: 1fr; gap: 3px; }
}
@media (max-width: 520px) {
    .cmdb-stat-grid { grid-template-columns: 1fr 1fr; }
    .cmdb-customer-picker .search-field { display: grid; grid-template-columns: auto minmax(0,1fr); }
    .cmdb-customer-picker .search-field .button { grid-column: 1 / -1; }
}

.cmdb-button-link { display:inline-flex; align-items:center; text-decoration:none; }

/* Rev 014 – CMDB physische Struktur */
.button.danger-soft { color:#a22121; border-color:#e5bcbc; background:#fff7f7; }
.button.danger-soft:hover { background:#fdeaea; }
.cmdb-location-card.is-archived { background:#fafbfc; opacity:.82; }
.cmdb-location-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:12px 0 2px; }
.cmdb-location-facts > span { min-width:0; padding:8px 9px; border:1px solid #e7edf2; border-radius:6px; background:#f9fbfc; }
.cmdb-location-facts small, .cmdb-location-facts strong { display:block; }
.cmdb-location-facts small { margin-bottom:2px; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.03em; }
.cmdb-location-facts strong { overflow-wrap:anywhere; font-size:11px; font-weight:600; }
.cmdb-structure-tree { margin-top:12px; padding-top:4px; border-top:1px solid #edf1f4; }
.cmdb-tree-heading { display:flex; align-items:center; gap:7px; margin:9px 0 3px; color:#304c63; font-size:11px; }
.cmdb-tree-icon { width:20px; height:20px; display:grid; place-items:center; border-radius:5px; background:#edf6fc; color:var(--brand); font-size:10px; }
.cmdb-tree-floor { margin:7px 0 1px 27px; color:var(--muted); font-size:10px; font-weight:600; }
.cmdb-structure-tree .cmdb-room-list { margin-top:0; border-top:0; }
.cmdb-structure-tree .cmdb-room-row { padding-left:27px; }
.cmdb-room-meta { display:flex; align-items:center; gap:7px; flex:0 0 auto; }
.cmdb-room-empty { margin-top:10px; padding:10px 0; text-align:left; }
.cmdb-reference-preview { display:grid; gap:3px; padding:10px 11px; border:1px solid #d9e7f1; border-radius:7px; background:#f5fafe; }
.cmdb-reference-preview span { color:var(--muted); font-size:10px; }
.cmdb-reference-preview strong { font-size:12px; }
.cmdb-reference-preview small { color:#62798d; font-size:10px; }
.cmdb-form-details { margin:16px 0 4px; border:1px solid var(--line); border-radius:7px; background:#fbfcfd; }
.cmdb-form-details > summary { padding:11px 12px; cursor:pointer; color:#334d63; font-size:12px; font-weight:700; }
.cmdb-form-details[open] > summary { border-bottom:1px solid var(--line); }
.cmdb-form-details > .form-grid { padding:12px; }
.cmdb-archive-zone { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:14px; padding:10px 12px; border:1px solid #f0d7d7; border-radius:7px; background:#fffafa; }
.cmdb-archive-zone > span { flex:1 1 280px; color:#7e4b4b; font-size:11px; }
.cmdb-location-dialog { width:min(900px,100%); }
@media (max-width: 860px) {
    .cmdb-location-facts { grid-template-columns:1fr; }
}
.cmdb-data-details { margin-top:10px; border:1px solid #e6edf2; border-radius:6px; background:#fbfcfd; }
.cmdb-data-details > summary, .cmdb-room-details > summary { padding:8px 9px; cursor:pointer; color:#4a6378; font-size:10px; font-weight:700; }
.cmdb-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:0 9px 9px; }
.cmdb-data-grid > span { min-width:0; padding:7px 8px; border-radius:5px; background:#fff; border:1px solid #edf1f4; }
.cmdb-data-grid > span.span-two { grid-column:1 / -1; }
.cmdb-data-grid small, .cmdb-data-grid strong { display:block; }
.cmdb-data-grid small { margin-bottom:2px; color:var(--muted); font-size:9px; }
.cmdb-data-grid strong { white-space:pre-wrap; overflow-wrap:anywhere; font-size:10px; font-weight:600; line-height:1.45; }
.cmdb-room-entry { border-bottom:1px solid #edf1f4; }
.cmdb-room-entry > .cmdb-room-row { border-bottom:0; }
.cmdb-room-entry.is-archived { opacity:.62; }
.cmdb-room-details { margin:-2px 0 6px 27px; border-left:2px solid #e2ebf2; }
.cmdb-room-details .cmdb-data-grid { padding-top:2px; }
.cmdb-data-grid.compact { grid-template-columns:repeat(2,minmax(0,1fr)); }
.cmdb-edit-glyph { color:var(--brand); font-size:12px; }
@media (max-width: 700px) {
    .cmdb-data-grid, .cmdb-data-grid.compact { grid-template-columns:1fr; }
    .cmdb-data-grid > span.span-two { grid-column:auto; }
}

/* Rev 015 – flexible CMDB-Felder */
.cmdb-custom-field-group { margin: 10px 0 14px; padding: 10px 12px 12px; border: 1px solid #e3ebf1; border-radius: 7px; background: #fbfcfd; }
.cmdb-custom-field-group > h4 { margin: 0 0 10px; color: #405a70; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.cmdb-field-help { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.cmdb-detail-field-group + .cmdb-detail-field-group { border-top: 1px solid #edf1f4; }
.cmdb-detail-field-group > h3 { margin: 0; padding: 10px 17px 0; color: #536a7f; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }

/* Rev 016 – Asset-Lifecycle */
.cmdb-filter-check { display:flex; align-items:center; gap:6px; min-height:36px; padding:0 9px; border:1px solid #d0dae4; border-radius:5px; background:#fff; color:#536a7f; font-size:10px; }
.cmdb-filter-check input { width:auto; margin:0; }

/* Rev 017 – CMDB-Beziehungen */
.cmdb-object-link { padding:0; border:0; background:transparent; color:var(--brand); cursor:pointer; font:inherit; font-weight:600; text-align:left; }
.cmdb-object-link:hover { text-decoration:underline; }
.cmdb-relation-target { display:block; margin-top:2px; color:#304c63; font-size:12px; font-weight:600; }
.cmdb-relations-table td { vertical-align:top; }


/* Rev 018 – IT-Dokumentation: Kundenfreigabe und kundenbezogene Zugriffe */
.cmdb-customer-overview-table .clickable-row{cursor:pointer;transition:background .15s ease,transform .15s ease}.cmdb-customer-overview-table .clickable-row:hover,.cmdb-customer-overview-table .clickable-row:focus{background:#f3f8fc;outline:none}.cmdb-customer-overview-table td{vertical-align:middle}.customer-feature-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px;padding:18px 22px}.customer-feature-copy{display:flex;flex-direction:column;gap:4px}.customer-feature-copy strong{font-size:1.05rem}.customer-feature-copy span{color:#65758b}.customer-feature-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.switch-row{display:flex;align-items:center;gap:8px;font-weight:600}.cmdb-access-options{display:flex;gap:24px;flex-wrap:wrap;margin:8px 0 20px}.cmdb-access-table select{min-width:180px}.cmdb-access-table td{vertical-align:middle}@media(max-width:760px){.customer-feature-card{align-items:flex-start;flex-direction:column}.cmdb-customer-overview-table th:nth-child(4),.cmdb-customer-overview-table td:nth-child(4),.cmdb-customer-overview-table th:nth-child(6),.cmdb-customer-overview-table td:nth-child(6){display:none}}

/* Rev 019 – Aufgaben, Wartungspläne und Abrechnungsvormerkungen */
.cmdb-upcoming-tasks{margin-top:20px}.cmdb-task-list{display:flex;flex-direction:column;gap:8px}.cmdb-task-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f4}.cmdb-task-row:last-child{border-bottom:0}.cmdb-task-row div{display:flex;flex-direction:column;gap:2px}.cmdb-task-row span:not(.status-badge),.maintenance-plan-row span{color:#6b778a}.cmdb-maintenance-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px}.cmdb-task-card{border:1px solid #e3e8ef;border-radius:10px;padding:16px;background:#fff}.cmdb-task-card-head{display:flex;justify-content:space-between;gap:16px}.cmdb-task-card-head h3{margin:6px 0 4px}.cmdb-task-card-head p{margin:0;color:#65758b}.checklist-preview{margin:14px 0;padding-top:12px;border-top:1px solid #eef1f5;display:grid;gap:8px}.task-actions{display:flex;justify-content:flex-end;margin-top:12px}.prominent{font-weight:700;margin-bottom:10px}.maintenance-template-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}.maintenance-plan-list{display:flex;flex-direction:column;gap:8px}.maintenance-plan-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #eef1f5}.maintenance-plan-row div{display:flex;flex-direction:column}.maintenance-plan-row em{font-style:normal;color:#65758b;font-size:.9rem}.status-badge.warning{background:#fff3cd;color:#8a6500}.status-badge.danger{background:#fde7e7;color:#9a2626}@media(max-width:900px){.cmdb-maintenance-layout{grid-template-columns:1fr}.cmdb-task-row{grid-template-columns:auto 1fr}.cmdb-task-row>em{grid-column:2}.maintenance-plan-row{grid-template-columns:1fr auto}.maintenance-plan-row em{grid-column:1}}

.credential-note{display:flex;gap:.6rem;flex-direction:column;padding:1rem;border:1px solid var(--border-color,#d9e0e7);border-radius:12px;background:#f8fafc;margin-bottom:1rem}.credential-note span,.credential-card small{color:#64748b}.credential-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.credential-card{border:1px solid var(--border-color,#d9e0e7);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.7rem}.credential-card h3{margin:.35rem 0 .15rem}.credential-card p{margin:0}.credential-actions{display:flex;gap:.45rem;flex-wrap:wrap}.credential-secret{padding:1rem;border-radius:10px;background:#f1f5f9;word-break:break-all;font-size:1.05rem}

.credential-asset-checks{max-height:180px;overflow:auto;border:1px solid #d9e0e7;border-radius:10px;padding:.6rem}.form-label{display:block;margin-bottom:.35rem;font-weight:600}

.device-wizard{max-width:980px}.device-type-picker{padding:.25rem .25rem 1rem}.device-type-picker h3{margin-bottom:.2rem}.device-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:.75rem;margin-top:1rem}.device-type-card{border:1px solid #d8e1e8;background:#fff;border-radius:12px;padding:1rem;text-align:left;display:flex;flex-direction:column;gap:.3rem;cursor:pointer}.device-type-card:hover{border-color:#3386c1;box-shadow:0 4px 14px rgba(0,0,0,.07)}.device-type-card>span{font-size:1.7rem}.device-type-card small{color:#64748b}.wizard-selected-type{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;padding:.7rem;border-radius:10px;background:#f6f8fa}

.collector-list{display:flex;flex-direction:column;gap:.55rem}.collector-row{display:flex;align-items:center;gap:.7rem;padding:.75rem;border:1px solid #dbe3e9;border-radius:10px}.collector-row>div:first-child{display:flex;flex:1;flex-direction:column}.collector-row span{color:#64748b}.collector-actions{display:flex;gap:.35rem;align-items:center;min-width:360px}.collector-actions select{min-width:140px}

/* Rev 025 – IT-Dokumentation UX / zentrale Einstellungen */
.cmdb-column-picker { position: relative; }
.cmdb-column-picker > summary { list-style: none; cursor: pointer; }
.cmdb-column-picker > summary::-webkit-details-marker { display: none; }
.cmdb-column-picker-menu {
    position: absolute; z-index: 30; right: 0; top: calc(100% + 6px); min-width: 245px;
    padding: 14px; background: var(--surface, #fff); border: 1px solid #d8e2ec; border-radius: 10px;
    box-shadow: 0 12px 30px rgba(20,42,64,.14); display: grid; gap: 8px;
}
.cmdb-column-picker-menu > strong { margin-bottom: 4px; }
.cmdb-credential-toolbar { display: flex; gap: 10px; align-items: center; margin: 0 0 12px; flex-wrap: wrap; }
.cmdb-credential-toolbar .search-field { flex: 1 1 320px; }
.cmdb-credential-toolbar select { min-width: 190px; }
.cmdb-credential-table td { vertical-align: middle; }
.cmdb-credential-table .table-subline { display: block; max-width: 360px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cmdb-assets-table code { white-space: nowrap; font-size: .92em; }
@media (max-width: 900px) {
    .cmdb-column-picker-menu { right: auto; left: 0; }
}

/* Rev 026 – Netzwerk & IPAM */
.cmdb-network-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:14px; }
.cmdb-network-card { border:1px solid #dce5ee; border-radius:10px; padding:14px; background:#fff; }
.cmdb-network-card.archived { opacity:.68; }
.cmdb-network-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:10px; }
.cmdb-network-head > div { display:grid; gap:3px; }
.cmdb-network-head span { color:#65798d; font-size:.9rem; }
.cmdb-network-card code,.cmdb-ip-table code { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.cmdb-ipam-toolbar { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:12px; }
.cmdb-ipam-toolbar .search-field { flex:1 1 320px; }
.cmdb-ipam-toolbar select { min-width:240px; }
.row-muted { opacity:.62; }
.modal-spacer { flex:1; }

/* Rev 027 – Lizenzüberwachung */
.cmdb-license-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:12px; margin-bottom:14px; }
.cmdb-license-table td { vertical-align:middle; }
.cmdb-license-alerts { margin-top:14px; }
.status-badge.danger { background:#fbe4e4; color:#a72b2b; }
.status-badge.warning { background:#fff1d7; color:#865c0d; }

/* Rev 028 – Betrieb und Fristen */
.due-stats{margin-bottom:14px}.cmdb-due-table td{vertical-align:middle}.cmdb-due-table .nowrap{white-space:nowrap}.status-badge.danger{background:#fee2e2;color:#991b1b}.status-badge.warning{background:#fef3c7;color:#92400e}

/* Rev 029 – Backup, Internet und Dienste */
.cmdb-subtabs{display:flex;gap:6px;margin:0 0 12px;flex-wrap:wrap}.cmdb-subtab{border:1px solid var(--border-color,#d9e2ec);background:#fff;border-radius:8px;padding:8px 14px;cursor:pointer}.cmdb-subtab.active{background:#eef6fc;border-color:#3386c1;color:#1d5f8f;font-weight:700}.muted-row{opacity:.62}

/* Rev 030 – Verträge, Dokumente und Tickets */
.cmdb-reference-table td{vertical-align:middle}.cmdb-reference-table a{font-weight:600}

/* Rev 031 – Kundenansicht / Portal-Preview */
.portal-preview-note{display:flex;flex-direction:column;gap:4px;padding:12px 14px;margin-bottom:12px;border:1px solid #b9d8ee;background:#f4f9fd;border-radius:10px}.portal-preview-note span{font-size:.9rem;color:#547086}.portal-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.portal-preview-list{display:flex;flex-direction:column}.portal-preview-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf1f5}.portal-preview-row:last-child{border-bottom:0}.portal-preview-row span{color:#60758a;text-align:right}.portal-preview-reminders{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.portal-preview-reminders article{display:flex;flex-direction:column;gap:5px;padding:12px;border:1px solid #e0e8ef;border-radius:9px;background:#fff}@media(max-width:900px){.portal-preview-grid{grid-template-columns:1fr}}

/* Rev032 – LinTeum Support Service */
.support-agent-table td{vertical-align:top}.support-capabilities{display:flex;flex-wrap:wrap;gap:.25rem}.support-capabilities span{display:inline-flex;padding:.16rem .42rem;border-radius:999px;background:#eef4f8;color:#425466;font-size:.76rem}.support-service-modal{max-width:760px}.support-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem 1rem;margin:1rem 0}.support-enrollment-code{font-size:1.2rem;letter-spacing:.05em}.support-service-panel .empty-state small{display:block;margin-top:.35rem}.row-actions{white-space:nowrap}.row-actions .button+.button{margin-left:.25rem}@media(max-width:780px){.support-feature-grid{grid-template-columns:1fr}.support-agent-table{min-width:920px}}

/* Rev033 – IT-Doku Navigation + Verkabelung & Patchfelder */
.cmdb-workspace { display:grid; grid-template-columns:238px minmax(0,1fr); gap:14px; align-items:start; }
.cmdb-workspace.navigation-hidden { grid-template-columns:minmax(0,1fr); }
.cmdb-workspace-content { min-width:0; }
.cmdb-side-navigation { position:sticky; top:72px; max-height:calc(100vh - 88px); overflow:auto; border:1px solid var(--line); border-radius:9px; background:#fff; box-shadow:0 2px 8px rgba(24,53,77,.04); }
.cmdb-side-nav-head { display:grid; gap:3px; padding:14px 14px 12px; border-bottom:1px solid var(--line); background:#f9fbfc; }
.cmdb-side-nav-head strong { font-size:12px; }
.cmdb-side-nav-head span { color:var(--muted); font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cmdb-side-navigation nav { padding:7px; }
.cmdb-side-navigation nav > a,.cmdb-nav-group-items a { display:flex; align-items:center; gap:8px; min-height:34px; padding:7px 9px; border-radius:6px; color:#455d72; text-decoration:none; font-size:11px; line-height:1.25; }
.cmdb-side-navigation nav > a:hover,.cmdb-nav-group-items a:hover { background:#f2f7fa; color:#1f567e; }
.cmdb-side-navigation nav a.active { background:#eaf4fb; color:#176da8; font-weight:700; box-shadow:inset 3px 0 0 var(--brand); }
.cmdb-nav-icon { width:16px; text-align:center; color:#668095; }
.cmdb-nav-group { margin-top:4px; padding-top:4px; border-top:1px solid #edf1f4; }
.cmdb-nav-group-title { width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:30px; padding:5px 8px; border:0; background:transparent; color:#728394; cursor:pointer; font:inherit; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.055em; text-align:left; }
.cmdb-nav-group-title:hover { color:#365d7b; }
.cmdb-nav-group-items { display:grid; gap:1px; padding:0 0 4px 6px; }
.cmdb-nav-group-items a { padding-left:15px; }
.cmdb-nav-toggle { white-space:nowrap; }

.cabling-panel-list { display:grid; gap:14px; padding:14px; }
.cabling-panel-card { border:1px solid #dce5ed; border-radius:10px; background:#fff; overflow:hidden; }
.cabling-panel-card.archived { opacity:.65; }
.cabling-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:14px; border-bottom:1px solid #edf1f4; background:#fafcfd; }
.cabling-panel-head > div { min-width:0; display:grid; gap:3px; }
.cabling-panel-head > div > span,.cabling-panel-head small { color:#64788c; font-size:10px; }
.cabling-title-row { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.cabling-title-row strong { font-size:13px; }
.cabling-summary-row { display:flex; gap:16px; flex-wrap:wrap; padding:10px 14px; border-bottom:1px solid #edf1f4; }
.cabling-summary-row span { display:flex; align-items:baseline; gap:4px; }
.cabling-summary-row strong { font-size:13px; }
.cabling-summary-row small { color:#6c8092; font-size:9px; }
.cabling-port-grid { display:grid; grid-template-columns:repeat(var(--port-columns,12),minmax(50px,1fr)); gap:6px; padding:14px; }
.cabling-port { min-width:0; min-height:48px; display:grid; place-items:center; gap:1px; padding:5px 4px; border:1px solid #ccd7e1; border-radius:6px; background:#fff; color:#334b60; cursor:pointer; }
.cabling-port:hover { border-color:var(--brand); box-shadow:0 2px 8px rgba(51,134,193,.12); }
.cabling-port > span { font-size:11px; font-weight:800; font-variant-numeric:tabular-nums; }
.cabling-port small { width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#708294; font-size:8px; text-align:center; }
.cabling-port.used { border-color:#8fc8ae; background:#f2fbf6; }
.cabling-port.reserved { border-color:#e3c87c; background:#fff9e8; }
.cabling-port.defect { border-color:#e1a1a1; background:#fff3f3; }
.cabling-port.free { background:#f9fbfc; }
.cabling-note { margin:0; padding:0 14px 14px; color:#536a7f; font-size:10px; }
.cabling-chain-preview { display:grid; grid-template-columns:auto 1fr auto 1fr auto 1fr; gap:9px; align-items:center; margin:14px 0 2px; padding:12px; border:1px solid #dce8f1; border-radius:8px; background:#f7fbfe; }
.cabling-chain-preview strong { grid-column:1/-1; margin-bottom:2px; font-size:10px; text-transform:uppercase; color:#668094; }
.cabling-chain-preview span { min-width:0; padding:8px; border:1px solid #dce5ed; border-radius:6px; background:#fff; overflow-wrap:anywhere; font-size:10px; }
.cabling-chain-preview b { color:#7d91a3; }

@media (max-width:1100px) {
    .cmdb-workspace { grid-template-columns:210px minmax(0,1fr); }
    .cabling-port-grid { grid-template-columns:repeat(8,minmax(48px,1fr)); }
}
@media (max-width:820px) {
    .cmdb-workspace { grid-template-columns:1fr; }
    .cmdb-side-navigation { position:static; max-height:none; }
    .cmdb-side-navigation nav { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
    .cmdb-side-navigation nav > a { grid-column:1/-1; }
    .cmdb-nav-group { margin:0; padding:0; border:1px solid #edf1f4; border-radius:7px; }
    .cmdb-nav-group-items { padding:0 5px 5px; }
    .cabling-port-grid { grid-template-columns:repeat(6,minmax(46px,1fr)); }
}
@media (max-width:560px) {
    .cmdb-side-navigation nav { grid-template-columns:1fr; }
    .cabling-port-grid { grid-template-columns:repeat(4,minmax(44px,1fr)); padding:10px; gap:5px; }
    .cabling-chain-preview { grid-template-columns:1fr; }
    .cabling-chain-preview b { transform:rotate(90deg); justify-self:center; }
    .cabling-panel-head { flex-direction:column; }
}

/* Rev 034 – Konsolidierung IT-Dokumentation, Interfaces & IPAM */
.cmdb-asset-summary-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.cmdb-network-summary-card dd { overflow-wrap:anywhere; }
.cmdb-asset-network-panel { margin-bottom:14px; }
.cmdb-section-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:2px 2px 14px; }
.cmdb-section-intro h2 { margin:2px 0 4px; font-size:18px; }
.cmdb-section-intro p { margin:0; max-width:780px; color:var(--muted); font-size:11px; line-height:1.5; }
.cmdb-section-intro .eyebrow { color:var(--brand); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.cmdb-inline-stats { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.cmdb-inline-stats span { min-width:92px; padding:8px 10px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--muted); font-size:10px; text-align:center; }
.cmdb-inline-stats strong { display:block; color:var(--text); font-size:16px; }
.cmdb-interface-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:10px; padding:14px; }
.cmdb-interface-card { border:1px solid #dce5ee; border-radius:9px; background:#fbfcfd; overflow:hidden; }
.cmdb-interface-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding:12px 13px; border-bottom:1px solid #e7edf2; background:#fff; }
.cmdb-interface-head > div { display:grid; gap:2px; }
.cmdb-interface-head strong { font-size:12px; }
.cmdb-interface-head span { color:var(--muted); font-size:10px; }
.cmdb-interface-meta { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:#e7edf2; border-bottom:1px solid #e7edf2; }
.cmdb-interface-meta > span { display:grid; gap:3px; padding:9px 10px; background:#fbfcfd; min-width:0; }
.cmdb-interface-meta small { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.04em; }
.cmdb-interface-meta strong,.cmdb-interface-meta code { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.cmdb-interface-addresses { display:flex; gap:7px; align-items:center; flex-wrap:wrap; min-height:46px; padding:9px 11px; }
.cmdb-ip-chip { display:inline-grid; gap:1px; padding:5px 8px; border:1px solid #cfe0eb; border-radius:6px; background:#f4f9fc; }
.cmdb-ip-chip code { font-size:10px; font-weight:700; color:#1f567e; }
.cmdb-ip-chip small { color:var(--muted); font-size:9px; }
.cmdb-unbound-addresses,.cmdb-legacy-network-fields { margin:0 14px 14px; padding:11px 13px; border:1px dashed #cad8e3; border-radius:8px; background:#fafcfd; }
.cmdb-unbound-addresses > strong,.cmdb-legacy-network-fields > strong { display:block; font-size:11px; }
.cmdb-unbound-addresses > span,.cmdb-legacy-network-fields > span { display:block; margin-top:2px; color:var(--muted); font-size:10px; }
.cmdb-unbound-addresses > div { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.cmdb-legacy-network-fields .detail-list { margin-top:8px; }
.cmdb-empty-action { display:grid; gap:4px; }
.cmdb-empty-action strong { color:var(--text); }
.muted-text { color:var(--muted); font-size:10px; }
.cmdb-ipam-toolbar { align-items:center; }
.cmdb-ip-table td { vertical-align:middle; }
@media (max-width:1250px){.cmdb-asset-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.cmdb-interface-meta{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:760px){.cmdb-section-intro{align-items:flex-start;flex-direction:column;}.cmdb-inline-stats{justify-content:flex-start;width:100%;}.cmdb-asset-summary-grid{grid-template-columns:1fr;}.cmdb-interface-list{grid-template-columns:1fr;padding:10px;}.cmdb-interface-meta{grid-template-columns:1fr 1fr;}}
.cmdb-stat-link { color:inherit; text-decoration:none; transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.cmdb-stat-link:hover { border-color:#b9d5e8; box-shadow:0 4px 14px rgba(26,74,108,.08); transform:translateY(-1px); }
.cmdb-stat-link small { display:block; margin-top:4px; color:var(--muted); font-size:9px; font-weight:400; }
.cmdb-quick-launch { margin-bottom:14px; }
.cmdb-quick-launch-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); border-top:1px solid var(--line); }
.cmdb-quick-launch-grid a { display:grid; gap:3px; min-height:64px; padding:13px 15px; background:#fff; color:var(--text); text-decoration:none; }
.cmdb-quick-launch-grid a:hover { background:#f5f9fc; }
.cmdb-quick-launch-grid strong { font-size:11px; }
.cmdb-quick-launch-grid span { color:var(--muted); font-size:9px; line-height:1.4; }
@media(max-width:900px){.cmdb-quick-launch-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.cmdb-quick-launch-grid{grid-template-columns:1fr;}}

.cmdb-inline-fallback { margin-top:6px; }
/* Rev 035 – Inventory, Security & Virtualisierung */
.settings-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.settings-card{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit;min-height:120px}.settings-card strong{font-size:1.05rem}.settings-card span{color:var(--text-muted)}.settings-card.disabled{opacity:.7}.cmdb-stat.warning strong{color:#9a6700}.cmdb-stat.danger strong{color:#b42318}.cmdb-health-dashboard{display:grid;gap:14px}.cmdb-health-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px}.cmdb-health-card{border:1px solid var(--border-color);border-radius:10px;padding:14px;background:var(--surface)}.cmdb-health-card h3{margin:8px 0 2px}.cmdb-health-card p{margin:0;color:var(--text-muted)}.cmdb-health-card dl{margin:14px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.cmdb-health-card dl div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--border-color);padding-top:6px}.cmdb-health-card dt{color:var(--text-muted)}.cmdb-health-card dd{margin:0;font-weight:600}.cmdb-subtabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.status-badge.danger{background:#fee4e2;color:#b42318}.status-badge.warning{background:#fef0c7;color:#93370d}
/* Rev 036 – Backup & Recovery */
.cmdb-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;max-height:320px;overflow:auto;border:1px solid var(--border-color);border-radius:8px;padding:10px}.cmdb-choice-grid .check-row{border-bottom:1px solid var(--border-color);padding:7px 4px}.cmdb-choice-grid small{margin-left:auto;color:var(--text-muted)}
/* Rev 037 – Diagnose & Monitoring */
.cmdb-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.cmdb-metric-card{display:flex;flex-direction:column;gap:4px;border:1px solid var(--border-color);border-radius:9px;padding:12px;text-decoration:none;color:inherit;background:var(--surface)}.cmdb-metric-card strong{font-size:1.25rem}.cmdb-metric-card small,.cmdb-metric-card span{color:var(--text-muted)}.cmdb-metric-card.warning{border-color:#fdb022}.cmdb-metric-card.critical,.cmdb-metric-card.failed{border-color:#f04438}
/* Rev 038 – Reporting, Knowledge Base & Document Studio */
.extra-wide{width:min(1180px,96vw)}.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.document-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 10px}.document-editor-head>div{display:flex;gap:6px;flex-wrap:wrap}.document-block-list{display:grid;gap:9px;max-height:480px;overflow:auto}.document-block{display:grid;grid-template-columns:130px 1fr 36px;gap:10px;align-items:start;border:1px solid var(--border-color);border-radius:9px;padding:10px}.document-block-type{font-weight:700;color:var(--text-muted);padding-top:8px}.cmdb-search-row{display:flex;gap:8px}.cmdb-search-row input{flex:1}.cmdb-search-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;margin-top:12px}.cmdb-search-results a{display:flex;flex-direction:column;gap:3px;border:1px solid var(--border-color);border-radius:8px;padding:10px;color:inherit;text-decoration:none}.cmdb-search-results span,.cmdb-search-results small{color:var(--text-muted)}.cmdb-template-list{display:grid;gap:8px}.cmdb-template-list article{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--border-color);padding:9px 0}.cmdb-template-list article div{display:flex;flex-direction:column}.cmdb-template-list span{color:var(--text-muted)}@media(max-width:900px){.three-columns{grid-template-columns:1fr}.document-block{grid-template-columns:1fr}.document-editor-head{align-items:flex-start;flex-direction:column}}

/* Rev 039 – professionelle, ruhige CMDB-/IT-Doku-Oberfläche */
:root {
    --surface: #ffffff;
    --surface-soft: #f8fafc;
    --surface-tint: #f4f8fb;
    --border-color: var(--line);
    --shadow-card: 0 1px 2px rgba(20,45,68,.03), 0 6px 18px rgba(20,45,68,.025);
}

/* Arbeitsfläche: mehr Informationsdichte, weniger "Kartenwüste" */
.main-content { max-width: 1820px; padding-top: 22px; }
.cmdb-workspace { gap: 18px; }
.cmdb-workspace-content { min-width: 0; }
.cmdb-workspace-content > .cmdb-panel,
.cmdb-workspace-content > .cmdb-stat-grid,
.cmdb-workspace-content > .cmdb-license-summary { margin-bottom: 16px; }

.content-card { border-color: #dbe4ec; box-shadow: var(--shadow-card); }
.cmdb-panel { border-radius: 10px; background: #fff; }
.cmdb-panel + .cmdb-panel { margin-top: 14px; }
.cmdb-panel .section-head {
    min-height: 58px;
    padding: 13px 16px;
    background: linear-gradient(180deg,#fff,#fbfcfe);
    border-bottom-color: #e4ebf1;
}
.cmdb-panel .section-head h2 { font-size: 13px; font-weight: 700; color: #17344d; }
.cmdb-panel .section-head span { display:block; margin-top:3px; line-height:1.4; color:#708195; font-size:10px; }

/* Leere Zustände sehen wie ein Zustand aus und nicht wie verlorener Fließtext. */
.empty-state {
    display: grid;
    gap: 4px;
    min-height: 76px;
    align-content: center;
    padding: 18px 20px;
    color: #6c7e90;
    background: #fbfcfd;
    border-top: 0;
    font-size: 11px;
    line-height: 1.45;
}
.empty-state strong { color:#334d63; font-size:12px; }
.empty-state span { color:#718396; }
.cmdb-panel > .empty-state:first-child { border-radius:10px; }

/* Einheitliche KPI-Leiste statt übergroßer Einzelkarten. */
.cmdb-stat-grid.compact,
.cmdb-license-summary,
.cmdb-kpi-strip {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
    gap:10px;
    margin-bottom:16px;
}
.cmdb-stat-grid.compact .cmdb-stat,
.cmdb-license-summary .cmdb-stat,
.cmdb-kpi-strip .cmdb-stat {
    position:relative;
    min-height:88px;
    padding:13px 14px 12px;
    border-radius:9px;
    box-shadow:none;
    overflow:hidden;
}
.cmdb-stat-grid.compact .cmdb-stat::before,
.cmdb-license-summary .cmdb-stat::before,
.cmdb-kpi-strip .cmdb-stat::before {
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:3px;
    background:#bdd6e8;
}
.cmdb-stat-grid.compact .cmdb-stat.warning::before,
.cmdb-license-summary .cmdb-stat.warning::before,
.cmdb-kpi-strip .cmdb-stat.warning::before { background:#d99a17; }
.cmdb-stat-grid.compact .cmdb-stat.danger::before,
.cmdb-license-summary .cmdb-stat.danger::before,
.cmdb-kpi-strip .cmdb-stat.danger::before { background:#c84335; }
.cmdb-stat-grid.compact .cmdb-stat span,
.cmdb-license-summary .cmdb-stat span,
.cmdb-kpi-strip .cmdb-stat span { font-size:10px; color:#6d7e8f; }
.cmdb-stat-grid.compact .cmdb-stat strong,
.cmdb-license-summary .cmdb-stat strong,
.cmdb-kpi-strip .cmdb-stat strong { margin-top:5px; font-size:23px; line-height:1.05; color:#132f48; }
.cmdb-stat-grid.compact .cmdb-stat small,
.cmdb-kpi-strip .cmdb-stat small { display:block; margin-top:6px; color:#728294; font-size:9px; }

/* Professionelle Tabellen: kompakt, gut scanbar, klare Hover-Zeile. */
.table-wrap { border-top-color:#e3eaf0; }
.data-table { font-size:11px; }
.data-table th {
    height:38px;
    padding:0 12px;
    background:#f6f8fa;
    color:#506478;
    font-size:10px;
    font-weight:700;
    letter-spacing:.015em;
}
.data-table td { padding:11px 12px; line-height:1.4; vertical-align:middle; }
.data-table tbody tr:hover td { background:#f8fbfd; }
.data-table tbody tr:last-child td { border-bottom:0; }
.table-subline { margin-top:2px; font-size:9px; }

/* Navigation wie in klassischen professionellen Management-Konsolen: ruhig, eindeutig, dicht. */
.cmdb-side-navigation {
    top:82px;
    border-radius:10px;
    box-shadow:0 2px 12px rgba(24,53,77,.045);
}
.cmdb-side-nav-head { padding:12px 12px 10px; background:#f8fafc; border-bottom:1px solid #e6edf2; }
.cmdb-side-navigation nav { padding:8px; }
.cmdb-side-navigation nav > a,
.cmdb-nav-group-items a { min-height:36px; padding:8px 10px; font-size:11px; border-radius:6px; }
.cmdb-nav-group-title { min-height:34px; color:#29465e; font-size:10px; letter-spacing:.025em; }
.cmdb-side-navigation nav a.active {
    background:#edf6fc;
    color:#185f91;
    box-shadow:inset 3px 0 0 var(--brand);
}

/* Asset-Detail: keine schmalen Spalten und kein buchstabenweises Umbrechen. */
.cmdb-asset-heading { margin-bottom:12px; }
.cmdb-entity-meta-bar {
    display:grid;
    grid-template-columns:repeat(5,minmax(130px,1fr));
    gap:0;
    margin-bottom:14px;
    border:1px solid #dbe4ec;
    border-radius:9px;
    background:#fff;
    box-shadow:var(--shadow-card);
    overflow:hidden;
}
.cmdb-entity-meta-bar > span { min-width:0; padding:10px 13px; border-right:1px solid #e7edf2; }
.cmdb-entity-meta-bar > span:last-child { border-right:0; }
.cmdb-entity-meta-bar small,
.cmdb-entity-meta-bar strong { display:block; min-width:0; }
.cmdb-entity-meta-bar small { margin-bottom:3px; color:#78899a; font-size:9px; text-transform:uppercase; letter-spacing:.04em; }
.cmdb-entity-meta-bar strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#254158; font-size:11px; font-weight:650; }

.cmdb-asset-summary-grid {
    grid-template-columns:repeat(2,minmax(360px,1fr));
    gap:12px;
    margin-bottom:16px;
}
.cmdb-asset-summary-grid .cmdb-panel { min-width:0; margin:0; }
.cmdb-asset-summary-grid .customer-detail-list {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 22px;
    padding:10px 16px 14px;
}
.cmdb-asset-summary-grid .detail-list > div {
    grid-template-columns:minmax(92px,115px) minmax(0,1fr);
    gap:10px;
    min-width:0;
    padding:7px 0;
}
.cmdb-asset-summary-grid .detail-list dt { font-size:10px; white-space:normal; }
.cmdb-asset-summary-grid .detail-list dd {
    min-width:0;
    font-size:11px;
    line-height:1.35;
    overflow-wrap:break-word;
    word-break:normal;
}

/* Untertabs als echte Arbeitsbereich-Tabs statt einer Reihe von Buttons. */
.cmdb-tabbar,
.cmdb-panel > .cmdb-subtabs {
    gap:0;
    margin:0;
    padding:0 14px;
    border-bottom:1px solid #e3eaf0;
    background:#fbfcfd;
}
.cmdb-tabbar .button,
.cmdb-panel > .cmdb-subtabs .button {
    min-height:39px;
    padding:0 12px;
    border:0;
    border-bottom:2px solid transparent;
    border-radius:0;
    background:transparent;
    color:#617487;
    box-shadow:none;
    font-size:10px;
}
.cmdb-tabbar .button.primary,
.cmdb-panel > .cmdb-subtabs .button.primary {
    color:#1d6698;
    border-bottom-color:var(--brand);
    background:transparent;
    font-weight:700;
}
.cmdb-tabbar .button:hover,
.cmdb-panel > .cmdb-subtabs .button:hover { background:#f2f7fa; }

/* Technischer Zustand / Monitoring */
.cmdb-technical-panel,
.cmdb-monitoring-panel { margin-bottom:14px; }
.cmdb-technical-panel .cmdb-health-cards { padding:14px; }
.cmdb-health-card { box-shadow:none; background:#fff; }
.cmdb-monitoring-panel .cmdb-metric-grid,
.cmdb-panel > .cmdb-metric-grid { padding:14px; }
.cmdb-metric-grid { grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:9px; }
.cmdb-metric-card {
    min-height:82px;
    justify-content:center;
    border-radius:8px;
    background:#fbfcfd;
    box-shadow:none;
}
.cmdb-metric-card strong { font-size:19px; color:#17344d; }
.cmdb-metric-card.warning { border-left:3px solid #d99a17; }
.cmdb-metric-card.critical,.cmdb-metric-card.failed { border-left:3px solid #c84335; }
.cmdb-monitoring-panel > h3 { margin:14px 16px 6px; color:#334d63; font-size:11px; }

/* Backup: Coverage zuerst, klarer Soll-/Ist-Zustand. */
.cmdb-backup-kpis .cmdb-stat:first-child::before { background:var(--brand); }
.cmdb-coverage-panel .data-table td:first-child a { color:#17344d; text-decoration:none; }
.cmdb-coverage-panel .data-table td:first-child a:hover { color:var(--brand); text-decoration:underline; }

/* Lizenzen: Statusleiste und Terminliste dichter, ohne riesige Leerräume. */
.cmdb-license-summary { grid-template-columns:repeat(6,minmax(125px,1fr)); }
.cmdb-license-panel .data-table { min-width:980px; }
.cmdb-license-alerts .cmdb-task-list { padding:4px 16px 10px; }
.cmdb-license-alerts .cmdb-task-row { min-height:48px; padding:8px 0; }

/* Buttons etwas dichter wie in Management-Anwendungen. */
.button { min-height:34px; padding:0 12px; }
.button.small { min-height:29px; padding:0 9px; font-size:10px; }
.page-actions { gap:6px; }

/* Status-Chips: weniger pillig, besser lesbar in Tabellen. */
.status-badge { min-height:21px; display:inline-flex; align-items:center; padding:2px 7px; border-radius:999px; font-size:9px; font-weight:700; white-space:nowrap; }

/* Formulare: klarere Gruppen, gleichmäßige Eingaben. */
.form-grid label { color:#455c70; font-size:11px; }
.form-grid input,
.form-grid select,
.form-grid textarea { border-color:#cbd7e1; background:#fff; }
.form-grid input:focus,
.form-grid select:focus,
.form-grid textarea:focus { outline:2px solid rgba(51,134,193,.13); border-color:#7db4d9; }

@media (max-width:1400px) {
    .cmdb-entity-meta-bar { grid-template-columns:repeat(3,minmax(150px,1fr)); }
    .cmdb-entity-meta-bar > span:nth-child(3) { border-right:0; }
    .cmdb-entity-meta-bar > span:nth-child(n+4) { border-top:1px solid #e7edf2; }
    .cmdb-license-summary { grid-template-columns:repeat(3,minmax(145px,1fr)); }
}
@media (max-width:1100px) {
    .cmdb-asset-summary-grid { grid-template-columns:1fr; }
    .cmdb-asset-summary-grid .customer-detail-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .cmdb-entity-meta-bar { grid-template-columns:repeat(2,minmax(150px,1fr)); }
    .cmdb-entity-meta-bar > span { border-top:1px solid #e7edf2; }
    .cmdb-entity-meta-bar > span:nth-child(-n+2) { border-top:0; }
    .cmdb-entity-meta-bar > span:nth-child(even) { border-right:0; }
}
@media (max-width:720px) {
    .main-content { padding-left:10px; padding-right:10px; }
    .cmdb-entity-meta-bar { grid-template-columns:1fr; }
    .cmdb-entity-meta-bar > span { border-right:0; border-top:1px solid #e7edf2; }
    .cmdb-entity-meta-bar > span:first-child { border-top:0; }
    .cmdb-asset-summary-grid .customer-detail-list { grid-template-columns:1fr; }
    .cmdb-license-summary { grid-template-columns:repeat(2,minmax(120px,1fr)); }
    .cmdb-stat-grid.compact,.cmdb-kpi-strip { grid-template-columns:repeat(2,minmax(120px,1fr)); }
}
.cmdb-stat-grid.compact .cmdb-stat.success::before,
.cmdb-license-summary .cmdb-stat.success::before,
.cmdb-kpi-strip .cmdb-stat.success::before { background:#2b8a60; }
.cmdb-stat-grid.compact .cmdb-stat.success strong,
.cmdb-license-summary .cmdb-stat.success strong,
.cmdb-kpi-strip .cmdb-stat.success strong { color:#176343; }

/* Rev 039a – Detailkorrekturen nach UI-Abnahme
   Einheitliche Controls, saubere Innenabstände, hierarchische Strukturen und kompaktere Fachansichten. */

/* Einheitliche Form Controls auch außerhalb klassischer form-grid-Dialoge. */
.cmdb-panel select,
.article-toolbar select,
.cmdb-access-table select,
.cmdb-credential-toolbar select,
.cmdb-ipam-toolbar select,
.cmdb-section-head select,
.technical-settings-panel select {
    min-height: 34px;
    padding: 0 30px 0 10px;
    border: 1px solid #cbd7e1;
    border-radius: 6px;
    background-color: #fff;
    color: #2f465a;
    font-size: 10px;
    line-height: 1.2;
}
.cmdb-panel select:focus,
.article-toolbar select:focus,
.cmdb-access-table select:focus,
.cmdb-credential-toolbar select:focus,
.cmdb-ipam-toolbar select:focus,
.cmdb-section-head select:focus,
.technical-settings-panel select:focus {
    outline: 2px solid rgba(51,134,193,.13);
    border-color: #7db4d9;
}
.cmdb-compact-select { min-width: 105px; }

/* Inhalte nicht direkt an der Kartenkante beginnen lassen. Tabellen bleiben bewusst randbündig. */
.cmdb-panel > .cmdb-filter-row { margin: 0; padding: 12px 16px; }
.cmdb-credential-toolbar { margin: 0; padding: 0 16px 14px; }
.cmdb-ipam-toolbar { margin: 0; padding: 0 16px 14px; }
.cmdb-search-row { align-items: center; padding: 0 16px 16px; }
.cmdb-search-row input {
    min-height: 36px;
    padding: 0 11px;
    border: 1px solid #cbd7e1;
    border-radius: 6px;
    background: #fff;
    color: var(--text);
    font-size: 11px;
}
.cmdb-search-row input:focus { outline: 2px solid rgba(51,134,193,.13); border-color:#7db4d9; }
.cmdb-panel > .collector-list { padding: 12px 16px 16px; }
.cmdb-panel > .cmdb-access-options { margin: 0; padding: 14px 16px 10px; }
.cmdb-access-table { margin: 0 16px 14px; width: calc(100% - 32px); border: 1px solid #e4ebf1; border-radius: 7px; }
.cmdb-access-table .table-wrap { border-top: 0; }

/* Hinweisboxen kompakt, damit sie den eigentlichen Inhalt nicht dominieren. */
.credential-note.cmdb-inline-note {
    margin: 14px 16px 12px;
    padding: 10px 12px;
    gap: 3px;
    border-radius: 7px;
    font-size: 10px;
    line-height: 1.4;
}
.credential-note.cmdb-inline-note strong { font-size: 10px; }
.credential-note.cmdb-inline-note span { font-size: 10px; }

/* Aufgaben/Wartung: gleiche Typografie wie der Rest der CMDB. */
.cmdb-maintenance-layout .cmdb-panel > .prominent,
.cmdb-maintenance-layout .cmdb-panel > p.muted,
.cmdb-maintenance-layout .cmdb-panel > .maintenance-template-actions,
.cmdb-maintenance-layout .cmdb-panel > .maintenance-plan-list {
    margin-left: 16px;
    margin-right: 16px;
}
.cmdb-maintenance-layout .cmdb-panel > .prominent { margin-top: 13px; font-size: 11px; }
.cmdb-maintenance-layout .cmdb-panel > p.muted { font-size: 10px; line-height: 1.45; }
.maintenance-template-actions { margin-top: 11px; margin-bottom: 13px; gap: 6px; }
.maintenance-template-actions .button { min-height: 31px; font-size: 10px; }
.maintenance-plan-row { font-size: 10px; }
.maintenance-plan-row strong { font-size: 11px; }
.maintenance-plan-row em { font-size: 9px; }

/* Lizenztermine: keine übergroße zweite Typografie. */
.cmdb-license-alerts .cmdb-task-row strong { font-size: 11px; line-height: 1.3; }
.cmdb-license-alerts .cmdb-task-row span:not(.status-badge) { font-size: 10px; }
.cmdb-license-alerts .cmdb-task-row em { font-size: 10px; color: #60758a; }

/* Standorte/Räume: echte einklappbare Hierarchie Standort > Gebäude > Etage > Raum. */
.cmdb-structure-tree { padding-top: 8px; }
.cmdb-structure-group { margin: 0; border: 0; }
.cmdb-structure-group > summary { list-style: none; cursor: pointer; user-select: none; }
.cmdb-structure-group > summary::-webkit-details-marker { display: none; }
.cmdb-tree-heading,
.cmdb-tree-floor {
    position: relative;
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 31px;
    margin: 0;
    padding: 5px 28px 5px 20px;
    color: #314d63;
}
.cmdb-tree-heading { background: #f8fafc; border: 1px solid #e4ebf1; border-radius: 6px; font-size: 10px; }
.cmdb-tree-floor { margin: 5px 0 0 20px; border-bottom: 1px solid #edf1f4; font-size: 10px; font-weight: 650; }
.cmdb-tree-heading::before,
.cmdb-tree-floor::before {
    content: "›";
    position: absolute;
    left: 7px;
    top: 50%;
    transform: translateY(-50%);
    color: #6c8193;
    font-size: 13px;
    transition: transform .12s ease;
}
.cmdb-structure-group[open] > .cmdb-tree-heading::before,
.cmdb-structure-group[open] > .cmdb-tree-floor::before { transform: translateY(-50%) rotate(90deg); }
.cmdb-tree-heading-implicit { background: #fbfcfd; }
.cmdb-tree-floor-implicit { color: #7b8997; font-weight: 500; }
.cmdb-group-count { margin-left: auto; color:#7a8998; font-size:9px; font-weight:500; }
.cmdb-floor-group > .cmdb-room-list { margin: 0 0 3px 42px; border-top: 0; }
.cmdb-floor-group .cmdb-room-row { padding-left: 2px; }
.cmdb-room-details { margin-left: 0; }

/* Asset-Toolbar: Controls gleich hoch und Spaltenmenü nach Aktion klar abgesetzt. */
.cmdb-asset-toolbar .cmdb-filter-row { align-items: center; }
.cmdb-asset-toolbar .cmdb-filter-row > select { min-width: 145px; }
.cmdb-column-picker-menu { border-color:#ccd9e4; box-shadow:0 10px 28px rgba(20,45,68,.12); }
.cmdb-column-picker-menu > strong { font-size: 10px; color:#304b61; }
.cmdb-column-picker-menu .check-row { font-size: 10px; }

/* Geräteauswahl: wie eine Management-Liste, nicht wie eine Kachelwand. */
.device-type-picker { padding: 2px 2px 10px; }
.device-type-picker h3 { margin: 0 0 3px; font-size: 13px; }
.device-type-picker > p { margin:0 0 10px; font-size:10px; }
.device-type-grid {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 470px;
    margin-top: 8px;
    padding: 4px;
    overflow-y: auto;
    border: 1px solid #dce5ec;
    border-radius: 8px;
    background: #fff;
}
.device-type-card {
    display: grid;
    grid-template-columns: 34px minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 6px 10px;
    border: 0;
    border-bottom: 1px solid #edf1f4;
    border-radius: 5px;
    background: #fff;
}
.device-type-card:last-child { border-bottom:0; }
.device-type-card:hover { background:#f3f8fc; border-color:transparent; box-shadow:none; }
.device-type-card > span {
    width: 30px;
    height: 30px;
    display:grid;
    place-items:center;
    border-radius:6px;
    background:#edf6fc;
    color:#216a9c;
    font-size:16px;
}
.device-type-card strong { font-size:11px; font-weight:650; }
.device-type-card small { font-size:9px; color:#748596; text-align:right; }

/* Netzwerk: Karten und Bemerkungen bleiben sekundär. */
.cmdb-panel > .cmdb-network-grid { padding: 14px 16px 16px; }
.cmdb-network-card { border-radius: 8px; padding: 12px; }
.cmdb-network-head span { font-size: 10px; }
.cmdb-network-note { margin: 8px 0 0; padding-top: 8px; border-top:1px solid #edf1f4; color:#687b8d; font-size:10px; line-height:1.4; }

/* Support: offene Registrierungen sichtbar, aber nicht als eigener Hauptbereich dominierend. */
.support-pending-panel { border-left: 3px solid #d99a17; }
.support-pending-panel .section-head { background:#fffdf7; }
.support-pending-row { background:#fffdf8; border-color:#eedfb7; }
.support-pending-row strong { font-size:11px; }
.support-pending-row span { font-size:9px; }
.support-service-panel .support-capabilities span { font-size:9px; }

/* Zentrale Einstellungen: kompakte professionelle Auswahl statt großer Kacheln. */
.settings-home-grid { grid-template-columns:repeat(auto-fit,minmax(235px,1fr)); gap:10px; }
.settings-home-grid .settings-card {
    min-height: 82px;
    padding: 13px 14px;
    gap: 4px;
    border-radius: 8px;
}
.settings-home-grid .settings-card strong { font-size: 12px; color:#213f57; }
.settings-home-grid .settings-card span { font-size:10px; line-height:1.4; color:#6b7d8f; }
.technical-settings-panel > .form-grid { padding: 14px 16px 16px; }
.technical-settings-panel .form-grid label { margin-bottom: 8px; font-size:10px; }
.technical-settings-panel .check-row { min-height: 34px; }

/* IT-Doku Einstellungen und Modaldialoge ebenfalls dichter. */
.cmdb-type-list { padding: 10px 16px 16px; }
.cmdb-type-list summary { min-height: 42px; padding:7px 10px; }
.cmdb-type-list summary strong { font-size:11px; }
.cmdb-type-list summary > span:not(.cmdb-type-icon):not(.status-badge) { font-size:9px; }
.modal-card .form-grid label { font-size:10px; }
.modal-card .form-grid input,
.modal-card .form-grid select,
.modal-card .form-grid textarea { font-size:11px; }

@media (max-width: 820px) {
    .cmdb-search-row { flex-direction:column; align-items:stretch; }
    .cmdb-search-row .button { width:100%; }
    .cmdb-floor-group > .cmdb-room-list { margin-left: 22px; }
    .device-type-card { grid-template-columns:34px minmax(0,1fr); }
    .device-type-card small { grid-column:2; text-align:left; }
}

/* Rev 050 – UI/UX-Polish und zentrales, rechtegesteuertes Dashboard */
.dashboard-heading { margin-bottom: 14px; }
.dashboard-heading h1 { font-size: 24px; }
.dashboard-heading p { font-size: 12px; }
.erp-dashboard-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr); gap:14px; align-items:start; }
.erp-dashboard-main,.erp-dashboard-side { display:grid; gap:14px; min-width:0; }
.dashboard-section { overflow:hidden; }
.dashboard-section-head { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 13px; border-bottom:1px solid #e3eaf0; background:linear-gradient(180deg,#fff,#f9fbfc); }
.dashboard-section-head > div { min-width:0; }
.dashboard-section-head h2 { margin:0; color:#17344d; font-size:13px; line-height:1.25; }
.dashboard-section-head span:not(.dashboard-count) { display:block; margin-top:2px; color:#708195; font-size:10px; line-height:1.35; }
.dashboard-count { min-width:25px; height:22px; display:inline-grid; place-items:center; padding:0 7px; border-radius:999px; background:#edf3f7; color:#415c72; font-size:10px; font-weight:750; font-variant-numeric:tabular-nums; }
.dashboard-attention { border-left:3px solid #d99a17; }
.dashboard-attention .dashboard-section-head { background:#fffdf8; }
.dashboard-work-list { display:grid; }
.dashboard-work-row { min-height:55px; display:grid; grid-template-columns:30px minmax(0,1fr) auto; gap:10px; align-items:center; padding:8px 12px; border-bottom:1px solid #edf1f4; color:inherit; text-decoration:none; }
.dashboard-work-row:last-child { border-bottom:0; }
.dashboard-work-row:hover { background:#f6f9fb; }
.dashboard-work-icon { width:27px; height:27px; display:grid; place-items:center; border-radius:6px; background:#eef4f8; color:#47657c; font-size:12px; font-weight:800; }
.dashboard-work-icon.warning { background:#fff4d8; color:#8f6500; }
.dashboard-work-icon.danger { background:#fdeaea; color:#a02d2d; }
.dashboard-work-copy { min-width:0; display:grid; gap:2px; }
.dashboard-work-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; color:#243f55; }
.dashboard-work-copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#6d8092; font-size:10px; }
.dashboard-work-meta { color:#586f83; font-size:10px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.danger-text { color:#b42318 !important; font-weight:700; }
.warning-text { color:#946200 !important; font-weight:700; }
.dashboard-empty { min-height:58px; display:grid; align-content:center; padding:13px; color:#748596; background:#fbfcfd; font-size:10px; }
.dashboard-kpi-list { display:grid; }
.dashboard-kpi-list > a,.dashboard-kpi-list > div { min-height:39px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:7px 12px; border-bottom:1px solid #edf1f4; color:inherit; text-decoration:none; }
.dashboard-kpi-list > :last-child { border-bottom:0; }
.dashboard-kpi-list > a:hover { background:#f6f9fb; }
.dashboard-kpi-list span { color:#526b7f; font-size:10px; }
.dashboard-kpi-list strong { color:#17344d; font-size:14px; font-variant-numeric:tabular-nums; }
.dashboard-kpi-list .attention-count { color:#a4382d; }
.dashboard-date-list { display:grid; }
.dashboard-date-list a { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:7px 12px; border-bottom:1px solid #edf1f4; color:inherit; text-decoration:none; }
.dashboard-date-list a:last-child { border-bottom:0; }
.dashboard-date-list a:hover { background:#f6f9fb; }
.dashboard-date-list a > span { min-width:0; display:grid; gap:2px; }
.dashboard-date-list strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#304b60; font-size:10px; }
.dashboard-date-list small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#748596; font-size:9px; }
.dashboard-date-list time { color:#506a80; font-size:10px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.dashboard-date-list time.warning { color:#946200; font-weight:700; }
.dashboard-date-list time.danger { color:#b42318; font-weight:750; }
.dashboard-module-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.dashboard-module-list > a { min-height:62px; display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; align-items:center; padding:9px 12px; border-right:1px solid #edf1f4; border-bottom:1px solid #edf1f4; color:inherit; text-decoration:none; }
.dashboard-module-list > a:nth-child(even) { border-right:0; }
.dashboard-module-list > a:hover { background:#f6f9fb; }
.dashboard-module-icon { width:31px; height:31px; display:grid; place-items:center; border-radius:7px; background:#eaf4fb; color:#2777ad; font-size:16px; }
.dashboard-module-list > a > span:last-child { min-width:0; display:grid; gap:2px; }
.dashboard-module-list strong { color:#29465d; font-size:11px; }
.dashboard-module-list small { color:#728496; font-size:9px; line-height:1.35; }

/* Kundenseiten: mehr Arbeitsfläche, aber besser lesbare Navigation. */
.cmdb-workspace { grid-template-columns:218px minmax(0,1fr); gap:14px; }
.cmdb-side-nav-head { padding:11px 12px 10px; }
.cmdb-side-nav-head strong { font-size:12px; }
.cmdb-side-nav-head span { font-size:10px; }
.cmdb-side-navigation nav { padding:6px; }
.cmdb-side-navigation nav > a,.cmdb-nav-group-items a { min-height:32px; padding:6px 8px; font-size:11px; }
.cmdb-nav-group-title { min-height:28px; padding:4px 7px; font-size:10px; }
.cmdb-nav-group-items { padding-left:4px; }
.cmdb-nav-group-items a { padding-left:13px; }
.cmdb-heading { align-items:center; margin-bottom:12px; }
.cmdb-heading .back-link { font-size:10px; }
.cmdb-heading h1 { margin-top:3px; font-size:22px; }
.cmdb-heading p { margin-top:3px; font-size:11px; }
.cmdb-nav-toggle { min-height:34px; padding:0 10px; color:#557086; background:#f8fafc; }

/* Lesbarkeit: Hilfstexte nicht unter die praktikable Mindestgröße drücken. */
.cmdb-panel .section-head span,
.cmdb-stat-link small,
.cmdb-quick-launch-grid span,
.cmdb-field-help,
.muted-text { font-size:10px; }
.cmdb-stat-grid.compact .cmdb-stat small,
.cmdb-kpi-strip .cmdb-stat small { font-size:10px; }
.data-table { font-size:11px; }
.data-table th { font-size:10px; }
.empty-state { min-height:58px; padding:13px 16px; font-size:10px; }

/* Auswertungen/Dokumente: Unterbereiche statt langer Kartenfolge. */
.cmdb-reporting-tabs { display:flex; gap:5px; margin-bottom:12px; padding:5px; border:1px solid #dce5ed; border-radius:8px; background:#f7f9fb; overflow-x:auto; }
.cmdb-reporting-tabs button { min-height:32px; padding:0 11px; border:1px solid transparent; border-radius:6px; background:transparent; color:#536d82; cursor:pointer; white-space:nowrap; font-size:10px; }
.cmdb-reporting-tabs button.active { border-color:#c8dce9; background:#fff; color:#1d6797; box-shadow:0 1px 3px rgba(22,45,66,.05); font-weight:700; }

@media(max-width:1120px){
    .erp-dashboard-layout { grid-template-columns:1fr; }
    .erp-dashboard-side { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:820px){
    .erp-dashboard-side { grid-template-columns:1fr; }
    .dashboard-module-list { grid-template-columns:1fr; }
    .dashboard-module-list > a { border-right:0; }
    .dashboard-work-row { grid-template-columns:30px minmax(0,1fr); }
    .dashboard-work-meta { grid-column:2; }
    .cmdb-workspace { grid-template-columns:1fr; }
}

/* Rev050 – KPI-Streifen mit direkten Div-Kindern (Rev043–048 Komponenten). */
.cmdb-kpi-strip > div {
    position:relative;
    min-height:72px;
    display:grid;
    align-content:center;
    gap:4px;
    padding:10px 12px 10px 14px;
    border:1px solid #dbe4ec;
    border-radius:8px;
    background:#fff;
    overflow:hidden;
}
.cmdb-kpi-strip > div::before {
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:3px;
    background:#bdd6e8;
}
.cmdb-kpi-strip > div > span { display:block; color:#6d7e8f; font-size:10px; }
.cmdb-kpi-strip > div > strong { display:block; color:#132f48; font-size:20px; line-height:1.05; font-variant-numeric:tabular-nums; }

/* Rev051 – Monitoring & Telemetry */
.monitoring-kpis{grid-template-columns:repeat(6,minmax(120px,1fr));}
.monitoring-head{align-items:flex-start;gap:16px;}
.monitoring-range{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;}
.monitoring-current-grid{padding-bottom:8px;}
.monitoring-tabs{display:flex;gap:3px;padding:4px 14px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);overflow-x:auto;}
.monitoring-tab{appearance:none;border:0;background:transparent;padding:10px 12px;color:var(--text-muted);font:inherit;font-weight:600;white-space:nowrap;border-bottom:2px solid transparent;cursor:pointer;}
.monitoring-tab.active{color:#246f9f;border-bottom-color:#3386c1;}
.monitoring-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:12px;padding:14px;}
.monitoring-chart-card{border:1px solid var(--border-color);border-radius:10px;background:var(--surface);padding:12px;min-width:0;}
.monitoring-chart-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px;}
.monitoring-chart-title>div{display:flex;flex-direction:column;min-width:0;}.monitoring-chart-title strong{font-size:13px;color:#17344d;}.monitoring-chart-title span{font-size:10px;color:var(--text-muted);margin-top:2px;}.monitoring-chart-title em{font-size:10px;color:var(--text-muted);font-style:normal;white-space:nowrap;}
.monitoring-sparkline{display:block;width:100%;height:115px;overflow:visible;}.monitoring-gridline{stroke:#e7edf2;stroke-width:1;vector-effect:non-scaling-stroke;}.monitoring-line{fill:none;stroke:#3386c1;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;}
.monitoring-chart-footer{display:flex;justify-content:space-between;color:var(--text-muted);font-size:9px;margin-top:4px;}
.monitoring-system-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:10px;padding:14px;}
.monitoring-system-card{display:block;border:1px solid var(--border-color);border-left:3px solid #8da2b1;border-radius:10px;padding:12px;text-decoration:none;color:inherit;background:var(--surface);}
.monitoring-system-card.ok{border-left-color:#2f9b67}.monitoring-system-card.warning{border-left-color:#d99a17}.monitoring-system-card.critical,.monitoring-system-card.offline{border-left-color:#c84335}.monitoring-system-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.monitoring-system-head strong{font-size:13px;color:#17344d}.monitoring-system-values{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.monitoring-system-values span{display:flex;flex-direction:column;border-radius:7px;background:#f7f9fb;padding:7px}.monitoring-system-values small{font-size:9px;color:var(--text-muted)}.monitoring-system-values b{font-size:13px;margin-top:2px}.monitoring-system-card footer{display:flex;justify-content:space-between;gap:8px;margin-top:9px;color:var(--text-muted);font-size:9px}.monitoring-system-card footer strong{color:#ad3a30;font-weight:600}.cmdb-metric-card.offline{border-left:3px solid #c84335}.empty-state.compact{padding:18px 16px;min-height:0;}
@media(max-width:1100px){.monitoring-kpis{grid-template-columns:repeat(3,1fr)}.monitoring-chart-grid{grid-template-columns:1fr}}
@media(max-width:700px){.monitoring-kpis{grid-template-columns:repeat(2,1fr)}.monitoring-system-values{grid-template-columns:repeat(2,1fr)}.monitoring-range{justify-content:flex-start}.monitoring-head{flex-direction:column}}

/* Rev052 – Discovery & Reconciliation */
.cmdb-subsection-head{display:flex;justify-content:space-between;align-items:end;margin:1rem 0 .55rem}.cmdb-subsection-head h4{margin:0;font-size:.92rem}.cmdb-subsection-head p{margin:.15rem 0 0;color:var(--muted);font-size:.78rem}.empty-state.compact{padding:.7rem 0}.cmdb-change-details{margin-top:.35rem;max-width:34rem}.cmdb-change-details summary{cursor:pointer;color:var(--primary);font-size:.75rem}.cmdb-change-details small{display:block;margin-top:.45rem;color:var(--muted)}.cmdb-change-details pre{white-space:pre-wrap;word-break:break-word;max-height:9rem;overflow:auto;background:#f6f8fa;border:1px solid #e5e9ef;border-radius:5px;padding:.45rem;font-size:.7rem;margin:.15rem 0}

/* Rev053 – Network/SNMP */
.network-live-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin:.65rem 0}.network-live-summary>div{border:1px solid #e3e8ef;border-radius:7px;padding:.6rem}.network-live-summary span,.network-live-summary strong{display:block}.network-live-summary span{font-size:.72rem;color:var(--muted);text-transform:uppercase}.printer-supply-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.55rem}.printer-supply-grid article{border:1px solid #e3e8ef;border-radius:7px;padding:.65rem;display:grid;grid-template-columns:1fr auto;gap:.35rem}.printer-supply-grid article span{display:block;color:var(--muted);font-size:.76rem}.supply-meter{grid-column:1/-1;height:6px;background:#edf1f5;border-radius:8px;overflow:hidden}.supply-meter i{display:block;height:100%;background:currentColor}.switch-live-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:.4rem}.switch-live-port{border:1px solid #dfe5eb;border-radius:6px;padding:.45rem;text-align:center}.switch-live-port strong,.switch-live-port span,.switch-live-port small{display:block}.switch-live-port span{font-size:.68rem}.switch-live-port.up{border-color:#9dd9b7;background:#f3fbf6}.switch-live-port.defect{border-color:#efb4b4;background:#fff6f6}.switch-live-port.down{border-color:#edcf91;background:#fffaf0}.switch-live-port.disabled,.switch-live-port.free{opacity:.72}.outlet-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:.7rem}.outlet-room-grid>section{border:1px solid #e3e8ef;border-radius:7px;padding:.6rem}.outlet-room-grid h4{margin:0 0 .35rem}.outlet-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eef1f4;padding:.45rem 0}.outlet-row:first-of-type{border-top:0}.outlet-row span{display:block;font-size:.75rem;color:var(--muted)}@media(max-width:900px){.network-live-summary{grid-template-columns:1fr 1fr}}

/* Rev054 – Software Intelligence */
.software-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:.5rem 0 .75rem;padding:.45rem .6rem;background:#f7f9fb;border-radius:6px}.software-toolbar span{font-size:.78rem;color:var(--muted)}


/* Rev055 – handlungsorientiertes Dashboard / kompaktes Druckstudio */
.printstudio-queue-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start}.print-queue-table-wrap{margin-top:.25rem}.print-queue-table td{vertical-align:middle}.print-queue-preview{width:64px}.print-queue-preview img{width:48px;height:48px;object-fit:contain;border:1px solid var(--border,#dfe5ea);border-radius:6px;background:#fff}.print-queue-copies{width:92px}.print-queue-copies input{width:72px;min-width:0}.dashboard-work-row .dashboard-work-copy small{line-height:1.35}@media(max-width:980px){.printstudio-queue-layout{grid-template-columns:1fr}}

/* Rev056 – UI Foundation: gemeinsame Typografie, Abstände und wiederverwendbare Arbeitsflächen */
:root {
    --surface: #ffffff;
    --surface-soft: #f8fafc;
    --surface-subtle: #f2f6f9;
    --line-strong: #cbd7e2;
    --text-soft: #52677b;
    --danger: #b42318;
    --danger-bg: #fef0ee;
    --warning: #8a5a00;
    --warning-bg: #fff6dd;
    --info-bg: #eaf4fb;
    --radius-sm: 7px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --content-max: 1840px;
    font-size: 14px;
}
body { font-size: 14px; line-height: 1.45; }
.main-content { max-width: var(--content-max); padding: 24px 28px 48px; }
.content-card { border-radius: var(--radius-md); box-shadow: 0 1px 3px rgba(22,45,66,.04); }
.nav-item { min-height: 42px; padding: 9px 12px; font-size: 14px; }
.nav-caption { font-size: 11px; padding-top: 18px; }
.brand span, .user-copy strong { font-size: 12px; }
.user-copy span, .global-search kbd { font-size: 11px; }
.data-table { font-size: 13px; }
.data-table th { height: 44px; padding: 0 14px; font-size: 12px; }
.data-table td { padding: 14px; vertical-align: top; }
.table-subline, .muted, .section-head span, .section-heading p, .cmdb-section-head span { font-size: 12.5px; line-height: 1.45; }
.status-badge { min-height: 25px; font-size: 12px; }
.button { min-height: 40px; padding: 0 15px; }
.icon-button { width: 38px; height: 38px; }
.form-grid label, .form-panel label, .filters label { font-size: 12.5px; }
.form-grid input, .form-grid select, .form-grid textarea, .filters select { min-height: 40px; font-size: 13px; }
.empty-state { padding: 24px 20px; font-size: 13px; line-height: 1.5; }
.cmdb-panel { margin-bottom: 16px; }
.cmdb-panel > .section-head, .cmdb-panel > .section-heading, .cmdb-section-head { padding: 18px 20px; }
.cmdb-panel > .table-wrap, .cmdb-panel > .cmdb-compact-list { margin-left: 0; margin-right: 0; }

.workspace-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin:0 0 18px; }
.workspace-header-copy { min-width:0; }
.workspace-back-link { display:inline-flex; margin-bottom:8px; color:var(--text-soft); text-decoration:none; font-size:12.5px; }
.workspace-back-link:hover { color:var(--brand); }
.workspace-eyebrow { display:block; margin-bottom:5px; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.055em; text-transform:uppercase; }
.workspace-title-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.workspace-title-row h1 { margin:0; font-size:28px; line-height:1.18; }
.workspace-header p { margin:6px 0 0; color:var(--muted); font-size:13px; }
.workspace-header-actions, .workspace-section-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.workspace-section { overflow:hidden; margin-bottom:16px; }
.workspace-section-header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding:18px 20px; border-bottom:1px solid var(--line); }
.workspace-section-header h2 { margin:0; font-size:16px; }
.workspace-section-header p { margin:4px 0 0; color:var(--muted); font-size:12.5px; }
.workspace-section-body { padding:18px 20px; }
.workspace-empty-state { display:flex; align-items:center; gap:12px; padding:20px; color:var(--text-soft); background:var(--surface-soft); border:1px dashed var(--line-strong); border-radius:var(--radius-md); }
.workspace-empty-state strong, .workspace-empty-state span { display:block; }
.workspace-empty-state strong { color:var(--text); font-size:13px; }
.workspace-empty-state span:not(.workspace-empty-icon) { margin-top:3px; font-size:12.5px; }
.workspace-empty-icon { width:34px; height:34px; display:grid !important; place-items:center; flex:0 0 auto; border-radius:9px; background:var(--info-bg); color:var(--brand); font-size:17px; }
.workspace-empty-actions { margin-left:auto; }
.workspace-tabs { display:flex; gap:2px; overflow-x:auto; padding:4px; margin-bottom:16px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.workspace-tabs a, .workspace-tabs button { flex:0 0 auto; min-height:36px; padding:0 12px; border:0; border-radius:6px; background:transparent; color:var(--text-soft); text-decoration:none; cursor:pointer; font-size:12.5px; }
.workspace-tabs a.active, .workspace-tabs button.active { background:var(--info-bg); color:var(--brand-dark); font-weight:700; }
.object-list { display:grid; gap:8px; }
.object-row { display:flex; align-items:center; gap:12px; min-height:54px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:#fff; text-decoration:none; color:var(--text); }
.object-row:hover { border-color:#a9cde6; background:#fbfdff; }
.object-row-main { min-width:0; flex:1; }
.object-row-main strong, .object-row-main span { display:block; }
.object-row-main span { margin-top:2px; color:var(--muted); font-size:12.5px; }
.object-row-meta { color:var(--muted); font-size:12px; white-space:nowrap; }
.detail-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.42fr); gap:16px; }
.kpi-line { display:flex; gap:8px; flex-wrap:wrap; }
.kpi-line > * { flex:1 1 140px; }

/* Globale Untergrenze: fachliche Inhalte nicht mehr in 9–11 px anzeigen. */
.cmdb-side-navigation, .cmdb-side-navigation a, .cmdb-side-navigation button,
.cmdb-stat small, .cmdb-stat span, .dashboard-section, .dashboard-work-copy small,
.monitoring-system-card, .monitoring-system-card small, .monitoring-system-card footer,
.cmdb-compact-list span, .cmdb-compact-list em, .detail-tabs button, .tab-strip button {
    font-size: 12px;
}
.cmdb-side-navigation a { min-height:36px; }
.monitoring-system-card { padding:15px; }

@media (max-width:820px) {
    .main-content { padding:18px 12px 32px; }
    .workspace-header { flex-direction:column; gap:12px; }
    .workspace-header-actions { width:100%; }
    .workspace-header-actions .button { flex:1 1 auto; }
    .workspace-section-header { padding:16px; }
    .workspace-section-body { padding:16px; }
    .detail-grid { grid-template-columns:1fr; }
}

/* Rev057 – IT-Doku UX: Raum als Arbeitskontext und Monitoring nach Übersicht→Detail */
.room-navigation-row { display:flex; align-items:center; gap:10px; padding:0 !important; }
.room-navigation-link { flex:1; min-width:0; padding:11px 12px; color:var(--text); text-decoration:none; }
.room-navigation-link span, .room-navigation-link strong, .room-navigation-link small { display:block; }
.room-navigation-link small { margin-top:3px; color:var(--muted); font-size:12px; }
.room-navigation-link:hover strong { color:var(--brand); }
.room-overview-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.65fr); gap:16px; }
.workspace-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; }
.workspace-facts > div { display:grid; grid-template-columns:120px minmax(0,1fr); gap:12px; padding:10px 0; border-bottom:1px solid #edf1f4; }
.workspace-facts dt { color:var(--muted); font-size:12px; }
.workspace-facts dd { margin:0; font-weight:600; }
.room-action-grid { display:grid; gap:8px; }
.room-action-grid a { display:block; padding:12px; border:1px solid var(--line); border-radius:8px; color:var(--text); text-decoration:none; }
.room-action-grid a:hover { border-color:#a9cde6; background:#fbfdff; }
.room-action-grid strong, .room-action-grid span { display:block; }
.room-action-grid span { margin-top:3px; color:var(--muted); font-size:12.5px; }
.room-focus-grid { grid-template-columns:1fr 1fr; }
.monitoring-overview-hint { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; border-top:1px solid var(--line); background:var(--surface-soft); }
.monitoring-overview-hint strong, .monitoring-overview-hint span { display:block; }
.monitoring-overview-hint > div > span { margin-top:3px; color:var(--muted); font-size:12.5px; }
.monitoring-chart-plot { position:relative; padding-left:56px; }
.monitoring-y-axis { position:absolute; inset:0 auto 0 0; width:50px; display:flex; flex-direction:column; justify-content:space-between; padding:3px 6px 3px 0; color:var(--muted); font-size:10.5px; text-align:right; }
@media(max-width:900px){.room-overview-grid,.room-focus-grid{grid-template-columns:1fr}.workspace-facts{grid-template-columns:1fr}}

/* Rev059 – Discovery / Reconciliation Functional Polish */
.cmdb-governance-panel .section-heading { margin-bottom: 12px; }
.cmdb-governance-tabs { margin: 14px 0 16px; }
.cmdb-governance-panel .table-wrap { margin-top: 8px; }
.cmdb-discovery-table td,
.cmdb-reconciliation-table td { vertical-align: top; }
.cmdb-discovery-table td:nth-child(1) { min-width: 210px; }
.cmdb-discovery-table td:nth-child(3) { min-width: 220px; }
.cmdb-reconciliation-table td:nth-child(1) { min-width: 220px; }
.cmdb-reconciliation-table td:nth-child(2) { min-width: 200px; }
.cmdb-action-stack { display: flex; flex-direction: column; align-items: stretch; gap: 6px; min-width: 160px; }
.cmdb-action-stack .btn { justify-content: center; }
.cmdb-governance-panel .notice { margin: 0 0 14px; }
@media (max-width: 900px) {
  .cmdb-action-stack { min-width: 0; }
  .cmdb-governance-tabs { overflow-x: auto; flex-wrap: nowrap; }
}

/* Rev060 – infrastructure expansion */
.cmdb-rev060-skeleton{display:grid;gap:10px}.cmdb-skeleton-line{height:12px;border-radius:6px;background:#edf2f6;width:62%}.cmdb-skeleton-line.wide{width:86%;height:16px}
.cmdb-rev060-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.cmdb-rev060-stat-grid>div{border:1px solid var(--line);border-radius:8px;padding:11px;background:#fbfcfd}.cmdb-rev060-stat-grid small{display:block;color:var(--muted);font-size:10px}.cmdb-rev060-stat-grid strong{display:block;margin-top:3px;font-size:20px}
.cmdb-compact-table{font-size:11px}.cmdb-compact-table td{padding:9px 10px}.cmdb-compact-table th{padding:0 10px;height:36px}
.cmdb-rev060-path-list{display:grid;gap:8px}.cmdb-rev060-path-list>div{display:grid;grid-template-columns:minmax(170px,.45fr) minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f4}.cmdb-rev060-path-list>div:last-child{border-bottom:0}.cmdb-rev060-path-list span{font-size:11px;color:#4f6174}.cmdb-rev060-path-list em{font-style:normal;font-size:10px;color:var(--muted);background:#eef3f7;padding:4px 7px;border-radius:999px}
.cmdb-expiry-warning{color:#9a6700!important;font-weight:700}
.cmdb-rev060-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.cmdb-rev060-card-grid article{border:1px solid var(--line);border-radius:9px;padding:12px;background:#fbfcfd}.cmdb-rev060-card-grid header{display:flex;justify-content:space-between;gap:10px;align-items:center}.cmdb-rev060-card-grid dl{margin:10px 0 0;display:grid;gap:6px}.cmdb-rev060-card-grid dl div{display:flex;justify-content:space-between;gap:14px;border-top:1px solid #edf1f4;padding-top:6px}.cmdb-rev060-card-grid dt{color:var(--muted);font-size:10px}.cmdb-rev060-card-grid dd{margin:0;font-size:11px;font-weight:600}
.cmdb-device-model-layout{display:grid;grid-template-columns:minmax(300px,390px) minmax(0,1fr);gap:14px;align-items:start}.cmdb-device-model-list{display:grid;gap:7px;margin-top:12px}.cmdb-device-model-list button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 11px;text-align:left;cursor:pointer;color:inherit}.cmdb-device-model-list button.active{border-color:#9bc6e4;background:#f4f9fc}.cmdb-device-model-list button span{display:grid;gap:2px}.cmdb-device-model-list button strong{font-size:12px}.cmdb-device-model-list button small{font-size:10px;color:var(--muted)}.cmdb-device-model-list button em{font-style:normal;color:var(--muted);font-size:10px}
.cmdb-device-model-head{display:grid;grid-template-columns:145px 1fr;gap:16px;align-items:center;margin-bottom:16px}.cmdb-device-model-head h2{margin:0 0 4px;font-size:20px}.cmdb-model-image{height:108px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;display:grid;place-items:center;overflow:hidden}.cmdb-model-image img{width:100%;height:100%;object-fit:contain}.cmdb-model-image-placeholder{font-size:42px;color:#8da0b1}.cmdb-model-form{margin-top:8px}.cmdb-model-form .full-width{grid-column:1/-1}
@media(max-width:980px){.cmdb-rev060-stat-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.cmdb-rev060-path-list>div{grid-template-columns:1fr}.cmdb-device-model-layout{grid-template-columns:1fr}.cmdb-device-model-head{grid-template-columns:120px 1fr}}
@media(max-width:620px){.cmdb-rev060-stat-grid{grid-template-columns:1fr}.cmdb-device-model-head{grid-template-columns:1fr}.cmdb-model-image{max-width:180px}}

/* Rev061 – Netzwerk-Topologie */
.cmdb-topology-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.cmdb-topology-toolbar>span{min-width:54px;text-align:center;font-size:12px;color:var(--muted,#6c7d8c)}
.cmdb-topology-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-left:auto;font-size:11px;color:#6c7d8c}.cmdb-topology-legend span{display:flex;align-items:center;gap:5px}.cmdb-topology-legend i{display:block;width:24px;height:3px;border-radius:2px;background:#3386C1}.cmdb-topology-legend i.fiber{background:#8b5bd6}.cmdb-topology-legend i.wifi{background:#50a56c}.cmdb-topology-legend i.virtual{background:#7a8791}
.cmdb-topology-viewport{height:760px;overflow:auto;border:1px solid #dce4ea;border-radius:12px;background-color:#fbfcfd;background-image:linear-gradient(#eef2f5 1px,transparent 1px),linear-gradient(90deg,#eef2f5 1px,transparent 1px);background-size:40px 40px}
.cmdb-topology-canvas{position:relative}.cmdb-topology-lines{position:absolute;inset:0;z-index:1;overflow:visible}.topology-link{fill:none;stroke:#3386C1;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.topology-link.fiber{stroke:#8b5bd6;stroke-width:4}.topology-link.wifi{stroke:#50a56c;stroke-dasharray:7 6}.topology-link.virtual{stroke:#7a8791;stroke-dasharray:4 5}.cmdb-topology-lines g.selected .topology-link{stroke:#e67e22!important;stroke-width:6!important;stroke-dasharray:none!important}
.cmdb-topology-node{position:absolute;z-index:3;width:190px;height:62px;border:1px solid #d8e1e8;border-radius:10px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.05);padding:8px 10px;display:flex;align-items:center;gap:9px;text-align:left;color:#17324a;cursor:pointer}.cmdb-topology-node:hover{border-color:#7db6dc;background:#f6fbfe}.cmdb-topology-node.selected{outline:3px solid #e67e22;background:#fff8f1}.cmdb-topology-node-icon{flex:0 0 36px;height:36px;border-radius:8px;background:#edf4f8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#526b7d}.cmdb-topology-node-text{display:flex;flex-direction:column;min-width:0}.cmdb-topology-node-text strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdb-topology-node-text small{font-size:9.5px;color:#6c7d8c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}.cmdb-topology-node.type-firewall .cmdb-topology-node-icon{background:#fdeeee}.cmdb-topology-node.type-switch .cmdb-topology-node-icon{background:#eaf4fb}.cmdb-topology-node.type-server .cmdb-topology-node-icon,.cmdb-topology-node.type-vm .cmdb-topology-node-icon{background:#eef0f7}.cmdb-topology-node.type-ap .cmdb-topology-node-icon{background:#edf8f0}.cmdb-topology-node.type-storage .cmdb-topology-node-icon{background:#f5f0fb}
.cmdb-topology-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px}.cmdb-topology-detail-grid>div{border:1px solid #e3e9ee;border-radius:8px;background:#fbfcfd;padding:9px}.cmdb-topology-detail-grid small{display:block;color:#6c7d8c;font-size:10px}.cmdb-topology-detail-grid strong{display:block;margin-top:3px;font-size:12px}.cmdb-topology-paths{display:grid;gap:7px;margin-bottom:12px}.cmdb-topology-path{border:1px solid #e3e9ee;border-radius:8px;background:#fbfcfd;padding:9px 10px}.cmdb-topology-path strong{display:block;font-size:12px}.cmdb-topology-path span{display:block;margin-top:3px;color:#6c7d8c;font-size:10px}.cmdb-rev061-topology-skeleton{height:320px;border:1px solid #e3e9ee;border-radius:12px;background:#fbfcfd;padding:30px;display:grid;gap:30px}.cmdb-rev061-topology-skeleton span{display:block;width:190px;height:62px;border-radius:10px;background:linear-gradient(90deg,#eef2f5,#f8fafb,#eef2f5);background-size:200% 100%;animation:cmdb-skeleton 1.5s infinite}.cmdb-rev061-topology-skeleton span:nth-child(2){margin-left:310px}.cmdb-rev061-topology-skeleton span:nth-child(3){margin-left:620px}
@media(max-width:900px){.cmdb-topology-viewport{height:620px}.cmdb-topology-detail-grid{grid-template-columns:1fr 1fr}.cmdb-topology-legend{margin-left:0;width:100%}}
.cmdb-topology-viewport{cursor:grab;touch-action:none}.cmdb-topology-viewport.dragging{cursor:grabbing;user-select:none}

/* Rev064 – GUI-Konsolidierung nach freigegebenen E.R.F.-UI-Konzepten */
:root { --content-max: 1280px; }
.main-content { max-width:var(--content-max); margin:0 auto; }

/* Einheitliche, ruhige Arbeitsflächen statt leerer Weißräume. */
.physical-structure-panel > .physical-structure-grid,
.physical-structure-panel > .physical-structure-subhead,
.physical-structure-panel > .outlet-room-grid,
.physical-structure-panel > .workspace-empty-state { margin-left:20px; margin-right:20px; }
.physical-structure-panel > .physical-structure-grid { margin-top:18px; margin-bottom:18px; }
.physical-structure-panel > .physical-structure-subhead { margin-top:4px; }
.physical-structure-panel > .outlet-room-grid,
.physical-structure-panel > .workspace-empty-state { margin-bottom:18px; }
.physical-structure-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.physical-structure-block { min-width:0; border:1px solid var(--line); border-radius:10px; background:#fbfcfd; overflow:hidden; }
.physical-structure-block-head,
.physical-structure-subhead { min-height:46px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; }
.physical-structure-block-head { border-bottom:1px solid var(--line); background:#f8fafc; }
.physical-structure-block-head h3,
.physical-structure-subhead h3 { margin:0; font-size:14px; color:var(--text); }
.physical-structure-block-head span,
.physical-structure-subhead span { min-width:28px; height:24px; display:grid; place-items:center; padding:0 7px; border-radius:999px; background:#edf3f7; color:var(--text-soft); font-size:11px; font-weight:700; }
.physical-structure-block > .cmdb-compact-list { padding:5px 12px 10px; }
.physical-structure-block > .workspace-empty-state { margin:12px; }
.workspace-empty-state.compact { min-height:54px; padding:12px 14px; }
.workspace-empty-state.compact .workspace-empty-icon { width:30px; height:30px; font-size:14px; }

/* Geräteakte: Übersicht -> Fachbereich -> Detail. */
.asset-workspace-tabs { margin-top:14px; }
.cmdb-detail-lower-grid { grid-template-columns:repeat(auto-fit,minmax(360px,1fr)); align-items:stretch; }
.cmdb-detail-lower-grid > .cmdb-panel { min-width:0; height:100%; }
.cmdb-detail-field-group { padding:0 18px 14px; }
.cmdb-detail-field-group h3 { margin:10px 0 4px; font-size:12px; color:var(--text-soft); }
.cmdb-asset-network-panel > .workspace-empty-state { margin:16px 20px 20px; }
.cmdb-unbound-addresses, .cmdb-legacy-network-fields { margin:14px 20px; }

/* Monitoring: verständliche Bezeichnungen, gleichmäßige Kennzahlen und weniger technische Rohwerte. */
.monitoring-current-grid { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); padding:16px 20px 10px !important; }
.monitoring-current-grid .cmdb-metric-card { min-height:112px; justify-content:center; padding:14px; }
.monitoring-current-grid .cmdb-metric-card > span { color:var(--text); font-size:12px; }
.monitoring-current-grid .cmdb-metric-card > strong { margin:2px 0; color:var(--text); font-size:20px; line-height:1.2; }
.monitoring-current-grid .cmdb-metric-card > small { font-size:11px; }
.monitoring-overview-hint { padding:14px 20px; }
.monitoring-tabs { overflow-x:auto; }

/* Rev060-Komponenten auf die freigegebene Mindestlesbarkeit anheben. */
.cmdb-rev060-stat-grid small,
.cmdb-rev060-path-list span,
.cmdb-rev060-path-list em,
.cmdb-rev060-card-grid dt,
.cmdb-rev060-card-grid dd,
.cmdb-device-model-list button small,
.cmdb-device-model-list button em { font-size:12px; }
.cmdb-rev060-card-grid article { padding:14px; }
.cmdb-compact-table { font-size:12.5px; }
.cmdb-compact-table th { height:40px; padding:0 12px; font-size:12px; }
.cmdb-compact-table td { padding:11px 12px; }

/* Software/Security: Suche prominent, Zeilenaktionen zurückhaltend. */
.security-sam-panel .section-heading { margin-bottom:0; }
.software-toolbar { flex-wrap:wrap; padding:10px 12px; }
.software-search { flex:1 1 260px; }
.software-search input { width:100%; min-height:38px; border:1px solid var(--line-strong); border-radius:7px; padding:0 11px; background:#fff; color:var(--text); font:inherit; }
.software-row-action { opacity:.62; }
tr:hover .software-row-action, .software-row-action:focus-visible { opacity:1; }

/* Kundennavigation: etwas kompakter, aber gut lesbar; nur aktive Gruppe wird beim Seitenwechsel geöffnet. */
.cmdb-workspace { grid-template-columns:220px minmax(0,1fr); gap:16px; }
.cmdb-side-navigation nav > a, .cmdb-nav-group-items a { font-size:12px; }
.cmdb-nav-group-title { font-size:10.5px; }

/* Inhaltskarten nicht über die komplette Breite erzwingen, wenn nur wenig Inhalt vorhanden ist. */
.cmdb-rev060-card-grid { grid-template-columns:repeat(auto-fit,minmax(280px,360px)); }
.cmdb-rev060-card-grid:has(article:only-child) { grid-template-columns:minmax(280px,520px); }

@media(max-width:900px){
  .physical-structure-grid { grid-template-columns:1fr; }
  .cmdb-workspace { grid-template-columns:1fr; }
  .cmdb-detail-lower-grid { grid-template-columns:1fr; }
}

/* Lesbarkeit in allen IT-Doku-Arbeitsbereichen. */
.cmdb-workspace small,
.cmdb-panel small,
.cmdb-panel .table-subline,
.cmdb-panel .muted,
.cmdb-panel .muted-text,
.dashboard-section small,
.dashboard-section .dashboard-work-meta,
.dashboard-section .dashboard-date-list time,
.dashboard-section .dashboard-count { font-size:12px; line-height:1.4; }
.cmdb-kpi-strip > div > span,
.cmdb-stat small,
.cmdb-stat span { font-size:12px; }
.dashboard-work-copy strong,
.dashboard-module-list strong { font-size:13px; }
.dashboard-module-list small { font-size:12px; }
.cmdb-tree-heading,
.cmdb-tree-floor,
.cmdb-column-picker-menu > strong,
.cmdb-column-picker-menu .check-row,
.device-type-card strong,
.device-type-card small,
.support-pending-row strong,
.support-pending-row span,
.support-service-panel .support-capabilities span { font-size:12px; }

/* Rev069b – topology canvas behaves like the approved movable HTML prototype */
.cmdb-topology-viewport{scrollbar-width:none;overscroll-behavior:contain}
.cmdb-topology-viewport::-webkit-scrollbar{width:0;height:0}
.cmdb-topology-viewport.dragging *{pointer-events:none}
.collector-discovery-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* Rev069g – Topologie-Canvas / Layerfilter / Monitoring-Anzeigevorlagen */
.cmdb-topology-legend{gap:8px}.cmdb-topology-legend button.topology-legend-toggle{appearance:none;border:1px solid transparent;background:transparent;border-radius:7px;padding:5px 7px;display:flex;align-items:center;gap:5px;font:inherit;color:#5f7180;cursor:pointer}.cmdb-topology-legend button.topology-legend-toggle:hover{background:#f3f7fa}.cmdb-topology-legend button.topology-legend-toggle.inactive{opacity:.38}.cmdb-topology-legend button.topology-legend-toggle.active{border-color:#dce5eb;background:#f8fafb}.cmdb-topology-legend i.power{background:#d88921}
.cmdb-topology-viewport{height:760px;overflow:hidden;position:relative;cursor:grab;touch-action:none;user-select:none}.cmdb-topology-viewport.dragging{cursor:grabbing}.cmdb-topology-transform{position:absolute;left:0;top:0;will-change:transform}.cmdb-topology-canvas{position:relative}.cmdb-topology-viewport.dragging .cmdb-topology-transform{pointer-events:none}.topology-link.power{stroke:#d88921;stroke-width:3;stroke-dasharray:9 5}.cmdb-topology-node.type-power .cmdb-topology-node-icon{background:#fff4df;color:#926018}.cmdb-topology-node.type-power{border-style:dashed}
.monitoring-display-controls{margin-bottom:12px}.monitoring-display-table select{min-width:112px;padding:6px 28px 6px 8px;font-size:12px}.monitoring-display-table td:last-child{white-space:nowrap}
@media(max-width:900px){.cmdb-topology-viewport{height:620px}.monitoring-display-table{min-width:760px}}
