:root{--rail-width:68px;--sidebar-width:264px;--nav-line:#e4e9e6;--nav-green:#246450}
body.app-layout{background:#f8faf9;color:#21312b;font-size:15px}
.app-layout a:focus-visible,.app-layout button:focus-visible,.app-layout input:focus-visible{outline:2px solid #528c75;outline-offset:3px}
.app-rail{position:fixed;inset:0 auto 0 0;z-index:30;width:var(--rail-width);background:#edf2ef;border-right:1px solid #dce5df;display:flex;align-items:center;flex-direction:column;padding:20px 0 16px;gap:30px}
.app-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#235843;color:white;font-size:13px;letter-spacing:.5px;font-weight:750;text-decoration:none}
.rail-links{display:flex;flex-direction:column;gap:12px;width:100%;align-items:center}
.rail-link{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;color:#66756c;text-decoration:none;transition:background .15s,color .15s}
.rail-link svg,.icon-button svg{width:23px;height:23px;flex:none}
.rail-link:hover{background:#e1e9e4;color:#254b39}.rail-link.is-active{background:#d8e9df;color:#165137}
.rail-link.is-active:before{content:'';position:absolute;left:-12px;width:3px;height:20px;background:#2c7755;border-radius:0 3px 3px 0}
.rail-link:after{content:attr(data-label);position:absolute;left:54px;top:50%;transform:translateY(-50%);background:#22392d;color:white;white-space:nowrap;padding:6px 10px;border-radius:6px;font-size:13px;box-shadow:0 3px 12px #13241b22;opacity:0;pointer-events:none;transition:opacity .1s;z-index:50}
.rail-link:hover:after,.rail-link:focus-visible:after{opacity:1}
.account-menu{margin-top:auto;position:relative}.account-menu summary{list-style:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:white;border:1px solid #d2ddd6;color:#42554a;cursor:pointer;font-size:12px;font-weight:650}.account-menu summary::-webkit-details-marker{display:none}
.account-popover{position:absolute;left:54px;bottom:0;background:white;border:1px solid var(--nav-line);border-radius:12px;padding:18px;min-width:230px;box-shadow:0 8px 28px #13241b22}.account-popover strong,.account-role{display:block}.account-role{color:#6c7b71;font-size:13px;margin-top:4px}.account-popover button{margin-top:14px;width:100%;background:#edf3ef;color:#235843;padding:8px 12px}
.app-sidebar{position:fixed;inset:0 auto 0 var(--rail-width);width:var(--sidebar-width);background:#f4f7f5;border-right:1px solid var(--nav-line);z-index:20;display:flex;flex-direction:column}
.sidebar-heading{padding:22px 20px 16px;display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-app-name{font-size:11px;letter-spacing:.06em;color:#748379;margin-bottom:6px}.sidebar-heading h2{font-size:17px;line-height:1.3;letter-spacing:-.25px;margin:0;font-weight:650}
.icon-button{display:grid;place-items:center;background:transparent;color:#78877c;border:0;border-radius:7px;width:32px;height:32px;min-width:32px;margin:0;padding:5px;cursor:pointer}.icon-button:hover{background:#e7eee8;color:#254b39}.sidebar-close svg{width:17px;height:17px}
.sidebar-search{margin:0 16px 17px;position:relative}.sidebar-search svg{width:17px;height:17px;position:absolute;left:10px;top:11px;color:#829086;pointer-events:none}.sidebar-search input{display:block;width:100%;max-width:none;font-size:13px;padding:9px 9px 9px 34px;background:#fff;border:1px solid #e0e7e2;border-radius:8px;color:#304c3b;height:38px}
.sidebar-options{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:0 12px 18px;scrollbar-width:thin;scrollbar-color:#cfdbd2 transparent}
.nav-section-label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:600;color:#7b887f;padding:20px 10px 7px;line-height:1.4}.nav-section-label span{font-size:10px;color:#8b988f}
.nav-item{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:#526258;border-radius:7px;padding:9px 10px;margin:2px 0;font-size:13px;line-height:1.35;overflow-wrap:anywhere;position:relative}
.nav-item:hover{text-decoration:none;background:#eaf0eb;color:#284333}.nav-item.is-active{color:#164f34;background:#e0ede4;font-weight:600}.nav-item.is-selected{color:#2b513a;font-weight:600}.nav-item-detail{font-size:10px;color:#89938d;font-weight:400}.nav-overview{color:#394e41;margin-bottom:4px;font-weight:500}
.nav-context{margin:4px 10px 12px 14px;padding-left:10px;border-left:1px solid #cedcd2}.nav-context .nav-item{font-size:12px;padding:7px 8px;gap:0}.nav-context .nav-item.is-active{background:#e3eee7}
.nav-empty{font-size:13px;color:#7a897f;padding:10px}.nav-tip{font-size:12px;color:#8a978e;margin:26px 12px;line-height:1.6}.sidebar-footer{border-top:1px solid var(--nav-line);padding:14px 22px;color:#8a978e;font-size:11px;display:flex;align-items:center;gap:8px}.status-dot{width:5px;height:5px;border-radius:50%;background:#8fae99}
.app-workspace{margin-left:calc(var(--rail-width) + var(--sidebar-width));min-width:0}.app-topbar{height:64px;display:flex;align-items:center;gap:15px;padding:0 32px;background:#ffffffd9;border-bottom:1px solid #edf0ed;position:sticky;top:0;z-index:10;backdrop-filter:blur(10px)}
.breadcrumbs{display:flex;align-items:center;gap:10px;min-width:0;white-space:nowrap;overflow:hidden;color:#829087;font-size:12px}.breadcrumbs a{color:#627a6c;text-decoration:none;overflow:hidden;text-overflow:ellipsis;min-width:0}.breadcrumbs>span:last-child{overflow:hidden;text-overflow:ellipsis;min-width:0}.breadcrumb-separator{color:#bdc8c0}
.property-picker{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0;text-decoration:none;color:#284f39;padding:5px 8px;border-radius:7px;line-height:1.25}.property-picker:hover{background:#eef4f0;text-decoration:none}.property-picker-label{font-size:10px;color:#819087;letter-spacing:.03em}.property-picker strong{font-size:15px;font-weight:650;overflow-wrap:anywhere}.app-topbar .breadcrumbs{max-width:42%}
.app-layout{font-family:Verdana,Geneva,sans-serif}.app-content th,.app-content td{padding:4px 9px;line-height:1.25;vertical-align:middle}.app-content table tr.is-selected-row{background:#e1eee5}.app-content table tr.has-changes{background:#fff6dd}.row-actions{white-space:nowrap}.row-action{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:26px;height:26px;border:1px solid #c7d9cd;border-radius:5px;background:#f6faf7;color:#28684a;text-decoration:none;flex:none}.row-action:hover{background:#dcece1;border-color:#79a68b;text-decoration:none}.row-action svg{width:16px;height:16px}.row-select{width:23px;height:23px;background:white;border-color:#9cb7a6}.row-select[aria-checked=true]{background:#2e6c51;border-color:#2e6c51;color:white}.row-select span{font-size:22px;line-height:1;font-weight:400}.list-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:9px 16px;margin:14px 0}.app-content .secondary-link{background:#e4eee7;color:#315e42}.app-content .cost-amount{width:122px;max-width:none;height:28px;padding:4px 7px;margin:0;text-align:right;font-size:13px;background:#fff;border:1px solid #c7d9cd;border-radius:4px}.cost-amount:focus{background:#fffef8}.cost-list td.num{min-width:135px}.amount-savebar{position:sticky;bottom:12px;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:15px;background:white;border:1px solid #dae5dd;border-radius:8px;padding:10px 14px;box-shadow:0 4px 14px #16332112;font-size:12px}.amount-savebar button{margin:0;padding:8px 12px;white-space:nowrap}button:disabled{opacity:.45;cursor:default}.success{padding:10px 14px;background:#e1f0e5;color:#205c39;border-radius:6px;font-size:13px}.template-source{flex:3!important}.nav-item{padding:5px 9px;margin:1px 0;line-height:1.25}.nav-context .nav-item{padding:5px 8px}.nav-section-label{padding-top:13px;padding-bottom:5px}.app-content .filter-form{padding:12px 16px}.app-content .filter-form label{margin-top:0}.app-content .filter-form select,.app-content .filter-form input{padding:6px 9px}.app-content .filter-form button{padding:8px 14px}
main.app-content{margin:0 auto;max-width:1500px;padding:34px 36px 70px;width:100%;outline:none}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.page-heading h1{font-size:25px;line-height:1.3;font-weight:650;letter-spacing:-.6px;margin:0}.app-content .card{border-color:#e3eae5;box-shadow:0 2px 6px #243b2b03;border-radius:12px}.app-content th{background:#f1f6f2;color:#52685b;font-size:12px;font-weight:600}.app-content td{font-size:13px}.app-content .muted{font-size:13px;color:#7d8b82}.app-content .filter-form{padding:18px 20px}.app-content .filter-form label{font-size:12px;color:#62796a}.app-content .alert{font-size:13px;border-radius:0 7px 7px 0}.app-content h2{letter-spacing:-.3px}.app-content .contract-tabs{top:76px;background:#eaf1ec}.app-content .table-scroll{max-width:100%}.app-content>div.card:has(>table){overflow-x:auto}.app-content .button-link{font-size:13px;background:#2e6c51}.app-content button:not(.secondary):not(.icon-button):not([data-contract-tab]){font-size:14px}
.skip-link{position:fixed;left:12px;top:-60px;z-index:100;background:#fff;padding:10px 16px;border-radius:6px;box-shadow:0 2px 12px #0002}.skip-link:focus{top:12px}.sidebar-scrim{display:none}
html[data-sidebar-collapsed] .app-sidebar{display:none}html[data-sidebar-collapsed] .app-workspace{margin-left:var(--rail-width)}
.public-header{color:#235843;padding:24px 32px;font-weight:650}.public-content{max-width:480px;margin:52px auto;padding:0 20px}.public-content h1{font-size:25px}.public-content .card{padding:26px}
@media(min-width:1700px){:root{--sidebar-width:288px}main.app-content{padding-top:40px}}
@media(max-width:1150px){:root{--sidebar-width:238px}main.app-content{padding:28px 24px 60px}.app-topbar{padding:0 20px}.app-content .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-content .grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
@media(max-width:900px){:root{--rail-width:60px;--sidebar-width:264px}.app-rail{padding-top:16px;gap:24px}.rail-link{width:40px;height:40px}.rail-link.is-active:before{left:-10px}.app-workspace,html[data-sidebar-collapsed] .app-workspace{margin-left:var(--rail-width)}.app-sidebar{display:none;box-shadow:10px 0 35px #142e1e1a}.sidebar-open .app-sidebar{display:flex}.sidebar-open .sidebar-scrim{display:block;position:fixed;inset:0;margin:0;padding:0;background:#132a1e2e;border:0;border-radius:0;z-index:15}.app-topbar{height:58px}.app-content .contract-tabs{position:static}.sidebar-heading{padding-top:18px}}
@media(max-width:550px){main.app-content{padding:24px 14px 40px}.app-topbar{padding:0 12px;gap:8px}.breadcrumbs{font-size:11px;gap:7px}.page-heading h1{font-size:22px}.app-content .form-grid{grid-template-columns:1fr}.app-content .grid{grid-template-columns:1fr}.app-content .card{padding:16px}.app-content .filter-form>div{min-width:100%;max-width:100%}.app-content .placeholder-help dl{grid-template-columns:1fr}.placeholder-help dd{margin-bottom:8px}.nav-item{padding-top:10px;padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){.rail-link,.rail-link:after{transition:none}}
@media print{.app-rail,.app-sidebar,.app-topbar,.skip-link,.sidebar-scrim{display:none!important}.app-workspace,html[data-sidebar-collapsed] .app-workspace{margin:0}main.app-content{padding:0;max-width:none}.page-heading{margin-bottom:16px}}
@media(max-width:1150px){.app-topbar .breadcrumbs{max-width:30%}.property-picker strong{font-size:14px}}
@media(max-width:700px){.app-topbar .breadcrumbs{display:none}.app-topbar{height:auto;min-height:64px;padding-top:9px;padding-bottom:9px}.property-picker strong{font-size:13px}}
.app-content .filter-form{padding:12px 16px}
.app-content .button-link.secondary-link{background:#e4eee7;color:#315e42}.app-content .card.table-scroll{padding:12px}.app-content th,.app-content td{padding-top:3px;padding-bottom:3px}.app-content .cost-amount{height:26px}main.app-content{padding-top:24px}.page-heading{margin-bottom:14px}
.meter-list small{display:block;font-size:10px;line-height:1.3;margin-top:2px}.meter-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.meter-summary .muted{font-size:11px}.meter-summary strong{font-size:18px}.meter-assignments{min-width:820px}.meter-assignments select,.meter-assignments input:not([type=checkbox]){font-size:12px;width:100%;max-width:none;padding:4px 6px;height:28px}.meter-assignments select{min-width:210px}.meter-assignments input[inputmode=decimal]{min-width:78px;width:85px;text-align:right}.meter-assignments input[aria-label=Bemerkung]{min-width:130px}.meter-assignments input[type=checkbox]{margin:0}.meter-assignments button{margin:0;padding:3px 8px}.meter-assignments th{font-size:11px}.app-content #meter-form h2{margin-top:0}.app-content #meter-form .form-actions button{margin:0 0 0 12px}.app-content #meter-form .card{padding:18px}.meter-list td.num{white-space:normal}
@media(max-width:550px){.meter-summary{grid-template-columns:1fr}.meter-summary strong{font-size:16px}}
@media(max-width:550px){.nav-item{padding-top:6px;padding-bottom:6px}.amount-savebar{flex-direction:column;align-items:stretch}.amount-savebar button{width:100%}}
@media print{.amount-savebar,.row-action,.list-toolbar{display:none!important}.app-content .cost-amount{border:0;padding:0;height:auto}}
.nav-selected-name{font-size:12px;font-weight:600;color:#31553f;line-height:1.45;padding:4px 10px;overflow-wrap:anywhere}
.nav-selected-context{margin-top:14px}.nav-overview{padding:7px 9px;margin-bottom:2px}
.nav-filters{margin:14px 3px 0;font-size:11px;color:#566d5e}.nav-filters input,.nav-filters select,.nav-filters button{font-family:inherit}
.nav-filter-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin:0 0 13px}
.nav-filter-search label{grid-column:1/-1;display:block;margin:0;font-size:10px;font-weight:600;color:#748579}
.nav-filter-search input[type=search]{width:100%;max-width:none;min-width:0;height:32px;padding:6px 8px;margin:0;box-sizing:border-box;border:1px solid #d7e2da;border-radius:6px;background:white;font-size:11px}
.nav-filter-search button{margin:0;padding:6px 8px;min-height:32px;font-size:10px;background:#2e6c51;border-radius:6px;white-space:nowrap}
.nav-filter-group{margin:0 0 7px;border:1px solid #dfe7e1;border-radius:7px;background:#f9fbfa;overflow:hidden}
.nav-filter-group summary{display:flex;align-items:center;justify-content:space-between;gap:7px;list-style:none;font-size:11px;font-weight:600;padding:9px 10px;cursor:pointer;color:#48624f}
.nav-filter-group summary::-webkit-details-marker{display:none}.nav-filter-group summary:after{content:'›';font-size:19px;line-height:12px;font-weight:400;transform:rotate(90deg);color:#87978b}
.nav-filter-group[open] summary:after{transform:rotate(-90deg)}.nav-filter-group[open] summary{border-bottom:1px solid #e7ede8;background:#f0f5f1}
.nav-filter-group summary span,.nav-filter-group summary small{font-size:10px;font-weight:400;color:#789080}
.nav-filters fieldset{margin:0;padding:8px 7px;border:0;min-width:0}.nav-filters legend{font-size:10px;font-weight:600;color:#819184;padding:4px 3px 0;line-height:1.4}
.nav-filter-group>.nav-filter-options{padding:8px 7px}.nav-filters label.nav-filter-option{display:flex;align-items:center;gap:7px;padding:5px 4px;margin:0;border-radius:4px;font-size:11px;font-weight:400;line-height:1.35;color:#526b59;cursor:pointer}
.nav-filters legend.sr-only{padding:0}
.nav-filters label.nav-filter-option:hover{background:#eaf2ec}.nav-filters label.nav-filter-option:has(input:checked){color:#215239;background:#e7f0e9}
.nav-filters .nav-filter-option input[type=checkbox],.nav-filters .nav-filter-option input[type=radio]{appearance:auto;flex:none;width:13px;height:13px;min-width:13px;margin:0;padding:0;accent-color:#2e6c51}
.nav-filter-option span{min-width:0;overflow-wrap:anywhere}.nav-filters .muted{font-size:10px;padding:0 4px;line-height:1.4}
.nav-filter-actions{display:flex;align-items:center;justify-content:space-between;gap:9px;margin:10px 0 15px}.nav-filter-actions button{margin:0;font-size:10px;padding:6px 9px;border-radius:5px;background:#2e6c51}
.nav-filter-actions a{font-size:10px;color:#778d7c;text-decoration:none;line-height:1.4}.nav-filter-actions a:hover{text-decoration:underline}
.app-content .record-list-count{font-size:11px;margin:0 0 9px;color:#75867b}.app-content .record-list th,.app-content .record-list td{font-size:12px;padding:5px 8px;line-height:1.3}
.record-list td.num,.record-list th.num{white-space:nowrap}.record-list td.record-select-column{width:30px;min-width:30px;text-align:center}
.record-list .record-meta{display:block;font-size:10px;line-height:1.35;font-weight:400;color:#819087;margin-top:2px}
.record-status{display:inline-block;font-size:10px;font-weight:500;padding:2px 6px;border-radius:4px;line-height:1.3;white-space:nowrap}.record-status.is-active{color:#286046;background:#e7f1ea}.record-status.is-inactive{color:#849188;background:#eef2ef}
@media(max-width:550px){.nav-filter-group summary{padding:10px}.nav-filters label.nav-filter-option{padding-top:6px;padding-bottom:6px}}
.column-sort{display:inline-flex;align-items:center;gap:5px;color:inherit;text-decoration:none;line-height:1.3;border-radius:3px}
.column-sort:hover{color:#1c6041;text-decoration:none}.column-sort:focus-visible{outline:2px solid #528c75;outline-offset:3px}
.column-sort .sort-indicator,.column-sort [aria-hidden=true]{font-size:12px;color:#789481;font-weight:500;flex:none}.column-sort svg{width:13px;height:13px;flex:none}
th[aria-sort=ascending] .column-sort,th[aria-sort=descending] .column-sort{color:#195e3e}
.app-content .property-summary{display:flex;align-items:center;gap:0;padding:14px 10px;margin-bottom:14px;flex-wrap:wrap}
.property-metric{display:flex;align-items:baseline;gap:8px;padding:2px 12px;font-size:10px;white-space:nowrap;flex:1}
.property-metric+.property-metric{border-left:1px solid #dce7df}.property-metric span{color:#738578}.property-metric strong{font-size:12px;font-weight:600;color:#2c523a}
.property-master h2{margin:0 0 16px;font-size:17px}.property-master input[readonly],.property-master textarea[readonly]{background:#f3f6f4;border-color:#dde5df;color:#40594a;cursor:default;font-size:12px}
.property-master .field label{font-size:11px}.property-master .form-grid{gap:14px 20px}.property-master .checkbox-field input{accent-color:#2e6c51}.property-master textarea{resize:none}
@media(max-width:1000px){.property-metric{flex-basis:45%;padding-top:5px;padding-bottom:5px}.property-metric:nth-child(3){border-left:0}}
@media(max-width:550px){.property-metric{flex-basis:100%;justify-content:space-between}.property-metric+.property-metric{border-left:0;border-top:1px solid #edf2ee;padding-top:8px}.property-master .form-grid{grid-template-columns:1fr}}
.app-layout form input.has-unsaved-change:not([type=checkbox]):not([type=radio]),.app-layout form select.has-unsaved-change,.app-layout form textarea.has-unsaved-change{background:var(--dirty-bg);border-color:var(--dirty-border);box-shadow:inset 3px 0 0 var(--dirty-bar)}
.app-layout form input.has-unsaved-change[type=checkbox],.app-layout form input.has-unsaved-change[type=radio]{outline:3px solid #fff0a5;outline-offset:2px;accent-color:#2e6c51}
.app-layout form label.has-unsaved-control{background:#fff7c7;border-radius:4px;box-shadow:0 0 0 3px #fff7c7}
.app-layout button.dirty-save-button,.app-layout input.dirty-save-button{background:#e3ebe6;color:#819287;border:1px solid #cddad1;box-shadow:none;opacity:1;font-weight:600}
.app-layout button.dirty-save-button:disabled,.app-layout input.dirty-save-button:disabled{background:#e3ebe6;color:#819287;border-color:#cddad1;opacity:1;cursor:default}
.app-layout button.dirty-save-button.is-save-ready,.app-layout input.dirty-save-button.is-save-ready{background:#205f43;color:white;border-color:#205f43;cursor:pointer}
.app-layout button.dirty-save-button.is-save-ready:hover,.app-layout input.dirty-save-button.is-save-ready:hover{background:#174c34;border-color:#174c34}
.app-content .save-toolbar{position:sticky;top:var(--app-topbar-height,64px);bottom:auto;z-index:8;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:14px;margin:0 0 18px;padding:10px 14px;border:1px solid #dae5dd;border-radius:7px;background:white;box-shadow:0 2px 5px #16332108;font-size:12px}
.app-content .save-toolbar>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#728378}
.app-content .save-toolbar>div{display:flex;align-items:center;gap:14px;flex:none}.app-content .save-toolbar a{white-space:nowrap;font-size:12px}
.app-content .save-toolbar button,.app-content .save-toolbar input[type=submit]{margin:0;padding:8px 12px;white-space:nowrap;width:auto}
.app-content .contract-tabs{top:calc(var(--app-topbar-height,64px) + var(--save-toolbar-height,56px) + 8px);z-index:7}
.app-content .list-scroll{max-height:max(180px,calc(100dvh - 230px));overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b8cabe #edf2ef;padding:0;isolation:isolate}
.app-content .list-scroll table{border-collapse:separate;border-spacing:0;margin:0}.app-content .list-scroll thead{position:sticky;top:0;z-index:3;background:#f1f6f2}.app-content .list-scroll thead th{box-shadow:0 1px 0 #d8e3dc}
.app-content .card.list-scroll,.app-content .card.table-scroll.list-scroll{padding:0}
.app-content .list-scroll:focus-visible{outline:2px solid #528c75;outline-offset:2px}
.choices-toolbar{display:flex;align-items:center;gap:16px;margin:12px 0}.choices-toolbar label{margin:0;font-size:12px;font-weight:400}.choices-toolbar input[type=checkbox]{accent-color:#2e6c51}
.choices-table table{min-width:820px}.choices-table th,.choices-table td{padding:7px 8px!important}.choices-table td{white-space:normal;overflow-wrap:anywhere}.choices-table td:nth-child(1){width:82px}.choices-table td:nth-child(2){min-width:175px;max-width:230px}.choices-table td:nth-child(3){width:115px}
.choices-table input:not([type=checkbox]),.choices-table select,.choices-table textarea{max-width:none;width:100%;font-size:12px;margin:0;padding:5px 7px}.choices-table input:not([type=checkbox]){min-width:76px;height:30px}.choices-table select{min-width:140px;height:30px}.choices-table textarea{min-width:180px;resize:vertical}.choices-table label{margin:0;white-space:nowrap;font-size:12px;font-weight:400}
.choices-table small{display:block;font-size:10px;line-height:1.3;margin-top:4px}.choices-table tr.is-editing td{background:#f4f8f5}.choices-table td:last-child,.choices-table th:last-child{position:sticky;right:0;background:#f8fbf9;box-shadow:-1px 0 0 #e2e8e4;min-width:54px;text-align:center}.choices-table th:last-child{background:#f1f6f2}.choices-table .row-action{margin:0;padding:3px;width:28px;height:28px;border:1px solid #c7d9cd;box-shadow:none}
@media(max-width:550px){.app-content .save-toolbar{gap:8px;padding:9px}.app-content .save-toolbar>div{gap:8px}.app-content .save-toolbar button{font-size:12px;padding:7px 9px}.app-content .save-toolbar>span{font-size:11px}.app-content .list-scroll{max-height:max(160px,calc(100dvh - 240px))}}
@media print{.app-content .save-toolbar{display:none!important}.app-content .list-scroll{max-height:none;overflow:visible}.app-content .list-scroll thead{position:static}.choices-table td:last-child,.choices-table th:last-child{position:static;box-shadow:none}}
@media print{.has-unsaved-change,.has-unsaved-control{background:transparent!important;box-shadow:none!important;outline:none!important}.dirty-save-button{display:none!important}}

/* The workspace reserves separate rows for context, scrolling content and actions. */
body.app-layout{height:100dvh;overflow:hidden}
.app-workspace{height:100dvh;display:flex;flex-direction:column;min-height:0}
.app-topbar{position:relative;flex:none}
main.app-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0 auto;padding-bottom:26px;scrollbar-width:thin;scrollbar-color:#c1d0c6 #f8faf9}
.app-footer{flex:none;min-height:58px;display:flex;align-items:center;gap:12px;padding:10px 32px;border-top:1px solid #dce5df;background:#f4f7f5;z-index:10}
.app-footer>[data-footer-idle]{font-size:12px;color:#809087}
.sidebar-footer{height:var(--app-footer-height,58px);flex:none;padding-top:0;padding-bottom:0}
.app-footer .save-toolbar{position:static;top:auto;bottom:auto;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.app-footer .save-toolbar>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#718377}
.app-footer .footer-actions{display:flex;flex:none;align-items:center;gap:10px;white-space:nowrap}
.app-footer button,.app-footer input[type=submit]{margin:0;padding:8px 13px;height:36px;white-space:nowrap;font-size:12px;font-weight:600;border-radius:6px;width:auto}
.app-footer button.secondary{background:#e5ede7;color:#3c6350;border:1px solid #ccdad0}
.app-footer button.secondary:disabled{opacity:1;background:#edf1ee;color:#99a59d;border-color:#dde5df;cursor:default}
.app-content .contract-tabs{top:0;z-index:7}
.property-records>summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;color:#365c46;font-size:15px;font-weight:600;padding:2px 0}
.property-records>summary::-webkit-details-marker{display:none}
.property-records>summary::before{content:'›';font-size:22px;line-height:1;width:14px;transition:transform .12s}
.property-records[open]>summary::before{transform:rotate(90deg)}
.property-records[open]>summary{margin-bottom:16px}
@media(max-width:1150px){.app-footer{padding-left:24px;padding-right:24px}}
@media(max-width:700px){.app-footer{padding:9px 14px}.app-footer .save-toolbar{flex-wrap:wrap;gap:8px}.app-footer .save-toolbar>span{flex:1 1 130px;font-size:11px}.app-footer .footer-actions{margin-left:auto;gap:7px;flex:1 1 100%;min-width:0;flex-wrap:wrap;justify-content:flex-end;white-space:normal}.app-footer button{padding:7px 10px;font-size:11px}}
@media print{body.app-layout{height:auto;overflow:visible}.app-workspace{height:auto;display:block}.app-footer{display:none!important}main.app-content{overflow:visible;min-height:auto;padding:0}.app-content .contract-tabs{position:static}.property-records>summary{display:none}.property-records:not([open])>*:not(summary){display:block!important}}

.app-content .rate-list{min-width:680px}
.rate-list th,.rate-list td{padding:6px 8px!important}
.rate-list .rate-field:not([type=checkbox]){width:130px;max-width:none;min-width:90px;height:28px;font-size:12px;padding:4px 7px;margin:0;text-align:right}
.rate-list .rate-field[type=checkbox]{width:auto;max-width:none;accent-color:#2e6c51;margin:0 6px 0 0}
.rate-list label{margin:0;font-size:12px;font-weight:400;white-space:nowrap}
.rate-list button.edit-rate{margin:0;padding:3px;width:28px;height:28px;background:#f6faf7;color:#28684a;border:1px solid #c7d9cd;box-shadow:none}
.rate-list button.edit-rate svg{width:16px;height:16px}
.rate-list tr.is-editing td{background:#f4f8f5}.rate-list tr.has-changes td{background:#fff6dd}

.rate-list .record-meta{display:block;font-size:10px;line-height:1.35;color:#819087;margin-top:3px}
.rate-list .rate-field[readonly]{border-color:transparent;background:transparent;color:#415349}

.app-footer .save-toolbar>.footer-back{flex:none;margin:0}
/* Shared ten-column grid for cost positions and property rates. */
.app-content table.cost-columns{table-layout:fixed;width:100%;min-width:1096px}
.cost-columns .cost-col-note{width:140px}.cost-columns .cost-col-year{width:80px}.cost-columns .cost-col-number{width:36px}
.cost-columns .cost-col-name{width:auto}.cost-columns .cost-col-allocation{width:166px}.cost-columns .cost-col-meter{width:106px}.cost-columns .cost-col-rate{width:166px}.cost-columns .cost-col-amount{width:112px}.cost-columns .cost-col-status{width:64px}.cost-columns .cost-col-details{width:72px}
.app-content .cost-columns th,.app-content .cost-columns td{padding:5px 8px!important;overflow-wrap:anywhere;min-width:0}
.app-content .cost-columns .cost-amount,.app-content .cost-columns .rate-field:not([type=checkbox]){width:100%;min-width:0;max-width:none;height:28px;padding:4px 7px;margin:0;font-size:12px;text-align:right}
.app-content .cost-columns .rate-preview-use{text-align:center}

.app-content .cost-grid-scroll{scrollbar-gutter:stable}

.app-content .cost-columns th:nth-child(1),.app-content .cost-columns th:nth-child(2){white-space:nowrap}

/* Inactive entries retain a subtle row background, including sticky cells. */
.app-content table tr.record-inactive>td,.app-content table tr.record-inactive>th[scope=row]{background:#fcf1f1}
.app-content table tr.record-inactive.is-selected-row>td{background:#f4e8e7}
.app-layout form input.area-mismatch:not(.has-unsaved-change){background:#fceeee;border-color:#e4bebe}
.app-content .area-comparison{display:block;margin-top:5px;font-size:11px;color:#8b7777;line-height:1.4}
.app-content .cost-list.cost-columns td:nth-child(4){white-space:nowrap;overflow-wrap:normal}
.app-content .meter-list .meter-date{width:120px;min-width:112px;max-width:none;height:28px;padding:4px 5px;margin:0;font-size:12px}
.app-content .meter-list .meter-consumption{width:92px;min-width:80px;max-width:none;height:28px;padding:4px 7px;margin:0;font-size:12px;text-align:right}
.app-content .meter-list .meter-plan-hint{display:block;margin-top:4px;font-size:10px;line-height:1.3;color:#7d8b82}
.app-content .meter-list .meter-unit{font-size:11px;white-space:nowrap}
/* Plan status is subordinate to inactive rows; individual dirty fields stay yellow. */
.app-content .meter-list tr.record-plan-current:not(.record-inactive)>td{background:#f6faf4}
.app-content .meter-list tr.record-plan-pending:not(.record-inactive)>td{background:#fffaf0}
.app-content .meter-plan-legend{margin:5px 0 10px;font-size:11px;color:#637568}
.app-content .contract-links-card{padding:18px}
.app-content .contract-links-card h2{margin-top:0}
.app-content .contract-link-table{width:100%;min-width:800px;table-layout:fixed}
.app-content .contract-link-table th{font-size:11px;white-space:normal;line-height:1.3;overflow-wrap:normal}
.app-content .contract-link-table th,.app-content .contract-link-table td{padding:5px 7px!important;overflow-wrap:anywhere}
.app-content .contract-link-table select,.app-content .contract-link-table input{width:100%;max-width:none;min-width:0;height:28px;margin:0;padding:4px 6px;font-size:12px}
.app-content .contract-link-table input{ text-align:right }
.app-content .contract-link-table button,.app-content .meter-history-table button{margin:0;width:26px;height:26px;padding:2px;font-size:18px;line-height:20px}
.contract-object-table th:first-child{width:26%}.contract-object-table th:nth-child(2){width:8%}.contract-object-table th:nth-child(3){width:14%}.contract-object-table th:nth-child(4){width:13%}
.contract-object-table th:nth-child(5),.contract-object-table th:nth-child(6){width:13%}.contract-link-table th:nth-child(7){width:9%}.contract-link-table th:last-child{width:4%}
.contract-child-table th:first-child{width:29%}.contract-child-table th:nth-child(2){width:12%}.contract-child-table th:nth-child(3),.contract-child-table th:nth-child(4){width:13%}.contract-child-table th:nth-child(5){width:13%}.contract-child-table th:nth-child(6){width:7%}
.app-content .contract-area-totals{display:flex;gap:12px 24px;flex-wrap:wrap;margin-top:12px;font-size:12px}
.app-content .contract-area-totals strong{white-space:nowrap}
.app-content .record-inactive-card{background:#fcf1f1}
/* A record's activity always belongs to its master-data heading. */
.app-content .maintenance-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.app-content .maintenance-heading h2{margin:0!important;font-size:16px;line-height:1.3}
.app-content label.maintenance-active{display:inline-flex;align-items:center;gap:7px;flex:none;margin:0;font-size:12px;line-height:1.3;font-weight:600;white-space:nowrap;color:#3c6750;padding:4px 7px;border-radius:5px}
.app-content .maintenance-active input[type=checkbox]{width:14px;height:14px;max-width:none;margin:0;padding:0;accent-color:#2e6c51}
.app-content .cost-template-table tr.is-component-locked>td,.app-content .cost-template-table tr.is-component-locked>th{background:#f1f3f2;color:#89938d}
.app-content .cost-template-table tr.is-component-locked select:disabled{color:#89938d;background:#f1f3f2;border-color:#dbe2dd;cursor:default;opacity:1}
.app-content .cost-template-table label.component-conflict{display:inline-flex;gap:6px;align-items:center;padding:5px 8px;border:1px solid #e5b7b7;border-radius:5px;background:#fce9e9;color:#9c3e3e}
.app-content .cost-template-table .component-conflict input[type=checkbox]{accent-color:#a34646;margin:0}
.app-content .cost-template-table .component-note{display:block;margin-top:3px;font-size:10px;font-weight:400;line-height:1.35}
/* Compact unit editor: labels and controls follow the table typography. */
.app-content:has(#object-form) .page-heading h1{font-size:19px;letter-spacing:0}
.app-content #object-form .card{padding:14px 18px;margin:12px 0}
.app-content #object-form h2{margin:0 0 12px;font-size:15px;letter-spacing:0;line-height:1.3}
.app-content #object-form .maintenance-heading{margin-bottom:12px}
.object-form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:9px 12px}
.object-form-grid .object-span-2{grid-column:span 2}.object-form-grid .object-span-4{grid-column:span 4}.object-form-grid .object-span-6{grid-column:span 6}.object-form-grid .object-span-8{grid-column:span 8}.object-form-grid .object-span-10{grid-column:span 10}.object-form-grid .object-span-12{grid-column:1/-1}
.app-content #object-form .object-field label{margin:0 0 4px;font-size:12px;font-weight:600;line-height:1.3}
.app-content #object-form .object-field input,.app-content #object-form .object-field select,.app-content #object-form .object-field textarea{width:100%;min-width:0;max-width:none;height:28px;font-size:12px;padding:4px 7px;line-height:1.3;border-radius:4px}
.app-content #object-form .object-field textarea{height:48px;min-height:48px;resize:vertical}
.app-content #object-form .object-area-summary{display:flex;gap:8px 24px;align-items:center;flex-wrap:wrap;align-self:end;min-height:28px;padding:4px 8px;font-size:11px;line-height:1.35;color:#6c8073;border-radius:5px;background:#f5f8f6}
.app-content #object-form .object-area-summary strong{margin-left:5px;font-size:12px;color:#395d47;white-space:nowrap}
.app-content #object-form .muted{font-size:11px;line-height:1.35;margin:9px 0}
.app-content #object-form .secondary{font-size:12px;padding:7px 10px;margin-top:10px}
.app-content #object-form .meter-assignments button{margin:0;padding:2px 5px}
.app-content #object-form .object-relationship-heading{margin:18px 2px 8px;align-items:center}
.app-content #object-form .object-relationship-heading h2{margin:0}
.app-content #object-form .object-relationship-heading .button-link{font-size:11px;padding:6px 9px}
.app-content #object-form .object-meter-list{min-width:590px}
.app-content #object-form .object-meter-list .record-meta{margin-top:2px}
.object-relationship-nav{margin-top:2px;margin-bottom:8px}
@media(max-width:1150px){.object-form-grid{gap:9px 10px}.object-form-grid .object-span-2{grid-column:span 3}.object-form-grid .object-span-10{grid-column:span 9}.object-form-grid .object-span-4{grid-column:span 6}.object-form-grid .object-span-8{grid-column:span 6}}
@media(max-width:650px){.object-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.object-form-grid .object-span-2{grid-column:span 2}.object-form-grid .object-span-4,.object-form-grid .object-span-6,.object-form-grid .object-span-8,.object-form-grid .object-span-10,.object-form-grid .object-span-12{grid-column:1/-1}.app-content .maintenance-heading{align-items:flex-start}}

/* Compact editable remarks and amounts derived from a property rate. */
.app-content .cost-columns .cost-note{width:100%;min-width:0;max-width:none;height:28px;min-height:28px;padding:4px 6px;margin:0;font:12px Verdana,Geneva,sans-serif;line-height:18px;resize:none;vertical-align:middle}
.app-content .cost-columns .cost-amount:disabled,.app-content .cost-columns .cost-amount[readonly]{opacity:1;background:#edf1ee;color:#7a887f;border-color:#d9e2dc;cursor:default}

/* Keep the internal contract number visible next to a shortened long name. */
.breadcrumbs .breadcrumb-contract-name{overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
.breadcrumbs .breadcrumb-contract-number{flex:none;white-space:nowrap;overflow:visible}

.breadcrumbs:has(.breadcrumb-contract-number)>a,.breadcrumbs:has(.breadcrumb-contract-number)>.breadcrumb-separator{flex:none}

/* Creation and row additions share the heading row throughout the application. */
.app-content .page-heading,.app-content .section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px 18px;flex-wrap:wrap}
.app-content .section-heading{margin:0 0 12px;min-height:28px}
.app-content .section-heading h2,.app-content .section-heading h3{margin:0;letter-spacing:0;line-height:1.3}
.app-content .section-heading h3{font-size:15px;padding-top:0}
.app-content .page-heading>.heading-add-action,.app-content .section-heading>.heading-add-action,.app-content #object-form .section-heading>.heading-add-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;min-height:28px;box-sizing:border-box;margin:0;padding:5px 9px;font:12px/1.3 Verdana,Geneva,sans-serif;text-decoration:none;white-space:nowrap;color:#28654c;background:#e7f0ea;border:1px solid #cbded1;border-radius:5px;box-shadow:none;cursor:pointer}
.app-content .heading-add-action:hover{background:#d9e9df;border-color:#aac9b6}
.app-content .heading-add-action:focus-visible{outline:2px solid #2e6c51;outline-offset:3px}
.app-content .heading-add-action>span[aria-hidden=true]{font-size:16px;line-height:1}
.app-content #object-form .section-heading h2{margin:0}
@media(max-width:650px){.app-content .page-heading,.app-content .section-heading{gap:8px}.app-content .heading-add-action{max-width:100%;white-space:normal}}

/* Compact meter editor: the original fields follow a twelve-column grid. */
.app-content:has(#meter-form) .page-heading h1{font-size:19px;letter-spacing:0}
.app-content #meter-form{font:12px/1.35 Verdana,Geneva,sans-serif}
.app-content #meter-form .card{padding:14px 18px;margin:12px 0}
.app-content #meter-form h2{font-size:15px;line-height:1.3;letter-spacing:0;margin:0 0 12px}
.app-content #meter-form .maintenance-heading{margin-bottom:12px;align-items:center}
.app-content #meter-form .maintenance-heading h2,.app-content #meter-form .section-heading h2{margin:0}
.app-content #meter-form .meter-master-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:9px 12px}
.app-content #meter-form .meter-editor-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:stretch}
.app-content #meter-form .meter-editor-columns>.card{min-width:0;margin:12px 0}
.app-content #meter-form .meter-editor-columns>.meter-history-card{box-sizing:border-box;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.app-content #meter-form .meter-history-card .section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.app-content #meter-form .meter-history-card .section-heading h2{margin:0}
.app-content #meter-form .meter-history-card .meter-history-latest{flex:none;font-size:11px;line-height:1.3;margin:7px 0;overflow-wrap:anywhere}
.app-content #meter-form .meter-history-scroll{flex:1 1 auto;min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.app-content #meter-form .meter-history-table{width:100%;table-layout:fixed;border-collapse:collapse}
.app-content #meter-form .meter-history-table th,.app-content #meter-form .meter-history-table td{padding:2px 5px;text-align:left;vertical-align:middle}
.app-content #meter-form .meter-history-table th:first-child{width:128px}
.app-content #meter-form .meter-history-table th:nth-child(2){width:230px}.app-content #meter-form .meter-history-table th:nth-child(3){width:150px}
.app-content #meter-form .meter-history-table th:last-child,.app-content #meter-form .meter-history-table td:last-child{width:44px;text-align:center}
.app-content #meter-form .meter-history-table td.muted{font-size:11px;line-height:1.3;color:#61746a}
.app-content #meter-form .meter-history-table td:nth-child(4) input{width:100%}
.app-content .meter-fill-card{display:flex;gap:14px;align-items:center;justify-content:space-between;margin:0 0 12px;padding:10px 14px;border-left:4px solid #d9a441;background:#fffaf0}
.app-content .meter-fill-card p{margin:0;font-size:12px;line-height:1.4}
.app-content #meter-form .meter-history-table input{box-sizing:border-box;min-width:0;height:27px;padding:3px 6px;font:12px/1.3 Verdana,Geneva,sans-serif}
.app-content #meter-form .meter-history-table td:first-child input{width:100%}
.app-content #meter-form .meter-history-table .meter-consumption-cell{white-space:nowrap}
.app-content #meter-form .meter-history-table .meter-consumption-cell input{width:88px;max-width:calc(100% - 35px);text-align:right}
.app-content #meter-form .meter-history-table .meter-consumption-unit{display:inline-block;margin-left:5px;color:#61746a;font-size:11px;white-space:nowrap}
.app-content #meter-form .meter-history-table input[readonly]{background:#f1f3f2;color:#596960}
.app-content #meter-form .meter-field{min-width:0;align-self:start}
.app-content #meter-form .meter-span-3{grid-column:span 3}
.app-content #meter-form .meter-span-4{grid-column:span 4}
.app-content #meter-form .meter-span-8{grid-column:span 8}
.app-content #meter-form .meter-check-field{align-self:center}
.app-content #meter-form .meter-span-6{grid-column:span 6}
.app-content #meter-form .meter-span-9{grid-column:span 9}
.app-content #meter-form .meter-span-12{grid-column:1/-1}
.app-content #meter-form .meter-field>label{margin:0 0 4px;font-size:12px;font-weight:600;line-height:1.3}
.app-content #meter-form .meter-field input,.app-content #meter-form .meter-field select,.app-content #meter-form .meter-field textarea{display:block;width:100%;min-width:0;max-width:none;height:28px;padding:4px 7px;font:12px/1.3 Verdana,Geneva,sans-serif;border-radius:4px;box-sizing:border-box}
.app-content #meter-form .meter-field textarea{height:46px;min-height:46px;overflow:auto;resize:vertical}
.app-content #meter-form .muted{font-size:11px;line-height:1.35;margin:8px 0}
.app-content #meter-form .meter-field .muted{display:block;margin:4px 0 0}
.app-content #meter-form .section-heading>.heading-add-action{font:12px/1.3 Verdana,Geneva,sans-serif;min-height:28px;margin:0;padding:5px 9px}
@media(max-width:700px){.app-content #meter-form .meter-editor-columns{grid-template-columns:1fr}.app-content #meter-form .meter-editor-columns>.meter-history-card{min-height:260px}.app-content #meter-form .meter-master-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px 10px}.app-content #meter-form .meter-span-3,.app-content #meter-form .meter-span-6{grid-column:span 3}.app-content #meter-form .meter-span-9,.app-content #meter-form .meter-span-12,.app-content #meter-form .meter-span-4,.app-content #meter-form .meter-span-8{grid-column:1/-1}}
@media(max-width:480px){.app-content #meter-form .card{padding:12px}.app-content #meter-form .meter-master-grid{grid-template-columns:1fr}.app-content #meter-form .meter-field{grid-column:1/-1}.app-content #meter-form .meter-history-table th,.app-content #meter-form .meter-history-table td{padding:4px}}

/* Spaltenbreiten der Zählerliste: Art, Stichtag und Verbrauch schlank, Mietobjekte und Bemerkung breiter. */
.meter-list th:nth-child(1),.meter-list td:nth-child(1){min-width:112px;white-space:nowrap}
.meter-list th:nth-child(3),.meter-list td:nth-child(3),.meter-list th:nth-child(4),.meter-list td:nth-child(4){width:1%;white-space:nowrap}
.meter-list td[data-meter-last-reading]{white-space:nowrap}
.app-content .meter-list th,.app-content .meter-list td{padding-left:6px;padding-right:6px}
.meter-list .meter-objects-cell{min-width:125px;overflow-wrap:anywhere}
.meter-list .meter-note-cell{min-width:150px;overflow-wrap:anywhere}
.info-hint{flex:none;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:13px;height:13px;margin-left:5px;border:1px solid #7a8f82;border-radius:50%;color:#5f7568;font:700 9px/1 Verdana,Geneva,sans-serif;cursor:help;vertical-align:1px;user-select:none}
.contract-family-indent{padding-left:22px}
.contract-family tr.is-selected-contract:not(.is-inactive-row)>td{background:#e7f1ea}
.contract-family tr.is-selected-contract td:first-child{box-shadow:inset 3px 0 #3f8060}
.contract-family .record-meta{white-space:normal}
.contract-history-filters{margin-top:9px;margin-bottom:12px}
.app-content .contract-rent-values h2{font-size:18px;margin:20px 0 9px}
.rent-values-table{min-width:920px;table-layout:auto}
.contract-history-nav{margin-left:6px;padding-left:6px}
.contract-history-nav .nav-item-title{white-space:nowrap}
.rent-values-table th,.rent-values-table td{white-space:nowrap;vertical-align:top}
.rent-values-table th:first-child,.rent-values-table td:first-child{min-width:145px;max-width:215px;white-space:normal}
.rent-values-table th:nth-child(4),.rent-values-table td:nth-child(4){width:45px}
.rent-values-table th:nth-child(2),.rent-values-table th:nth-child(5){width:85px}
.rent-value-status{font-size:10px;display:inline-block;padding:2px 5px;border-radius:4px;background:#edf2ee;color:#536f5e}
.rent-value-status.status-vorgeschrieben,.rent-value-status.status-verrechnet{background:#e1eee5;color:#28573b}
.rent-value-status.status-fixiert{background:#e8edf5;color:#496285}
.rent-value-status.status-storniert{background:#f8e5e5;color:#9a6262}
.app-content .rent-value-history>td{padding:0 8px 5px;background:#f8faf8}
.rent-value-history summary{font-size:10px;padding:3px 0;color:#748c7c;cursor:pointer}
.rent-value-history .table-scroll{padding:0 0 3px}
.rent-values-history .record-meta{overflow-wrap:anywhere}
.rent-values-history thead{position:static!important}
.historical-value-row:not(.is-inactive-row)>td{background:#f8faf8;color:#627b6a}
@media(max-width:1350px){.app-content .rent-values-table{min-width:820px}.app-content .rent-values-table th,.app-content .rent-values-table td{font-size:11px;padding-left:5px;padding-right:5px}.app-content .rent-values-table th:first-child,.app-content .rent-values-table td:first-child{min-width:105px;max-width:180px}}

/* Recalculate a single component beside its saved status. */
.app-content .rent-value-calculator{display:inline-flex;vertical-align:middle;margin:0 0 0 6px;padding:0}
.app-content .rent-value-calculator .calculator-icon{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;min-height:0;margin:0;padding:3px;color:#28654c;background:#e7f0ea;border:1px solid #cbded1;border-radius:5px;cursor:pointer;box-shadow:none}
.rent-value-calculator .calculator-icon svg{width:18px;height:18px}
.app-content .rent-value-calculator .calculator-icon:hover{background:#d9e9df}
.app-content .rent-value-calculator .calculator-icon:focus-visible{outline:2px solid #2e6c51;outline-offset:2px}

/* Fixed component blocks in contract accounting history. */
.app-content .contract-rent-block{padding:12px 14px;margin:12px 0;border-left:3px solid #b7cdbf}
.app-content .contract-rent-block h3{font:600 15px/1.3 Verdana,Geneva,sans-serif;color:#31513e;margin:0 0 10px}
.contract-rent-block .rent-block-empty{color:#819087;padding:12px 8px}
.contract-rent-block .rent-values-table{table-layout:fixed;width:100%}
.contract-rent-block .rent-values-table td:last-child{white-space:normal}
.rent-values-table .rent-col-component{width:16.5%}.rent-values-table .rent-col-date{width:10%}.rent-values-table .rent-col-status{width:13.5%}.rent-values-table .rent-col-year{width:5%}.rent-values-table .rent-col-amount{width:8%}.rent-values-table .rent-col-stamp{width:11%}
.contract-rent-block .rent-value-status{max-width:100%;white-space:normal}
.rent-values-table col:nth-child(2){width:12%}

/* Accounting status palette follows the maintained Access workflow. */
.app-layout .calc-badge.calc-status-berechnet,.app-layout .rent-value-status.status-berechnet{background:#c6d1e2;color:#324761}
.app-layout .calc-badge.calc-status-fixiert,.app-layout .rent-value-status.status-fixiert{background:#87a5ce;color:#173655}
.app-layout .calc-badge.calc-status-vorgeschrieben,.app-layout .rent-value-status.status-vorgeschrieben,.app-layout .rent-value-status.status-verrechnet{background:#e7efd8;color:#3e5b25}
.app-layout .calc-badge.calc-status-neu,.app-layout .rent-value-status.status-uncalculated,.app-layout .rent-value-status.status-neu{background:#fff2cc;color:#806426}
.app-layout .calc-badge.calc-status-pruefen{background:#fff2cc;color:#806426}
.app-layout .calc-badge.calc-status-fehlt,.app-layout .rent-value-status.status-blocked{background:#f9e5e1;color:#a05244}
.app-layout .calc-badge.calc-status-nicht-verrechenbar,.app-layout .calc-badge.calc-status-neutral,.app-layout .rent-value-status.status-skipped{background:#edf0ef;color:#737d77}
.app-layout .calc-badge.calc-status-storniert,.app-layout .rent-value-status.status-storniert{background:#f8e5e5;color:#9a6262}
.calc-status-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.app-content button.calc-warning-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:24px;height:24px;min-height:0;padding:2px;margin:0;border:0;border-radius:4px;background:transparent;box-shadow:none;cursor:pointer}
.app-content button.calc-warning-button:hover,.app-content button.calc-warning-button:focus-visible{background:#fff2cc}
.calc-warning-button svg{width:20px;height:20px;fill:#ffe29b;stroke:#a77b22;stroke-width:1.4}
.calc-warning-button .warning-mark{fill:none;stroke:#755819;stroke-width:2;stroke-linecap:round}.calc-warning-button .warning-dot{fill:#755819;stroke:none}
.accounting-check-dialog{width:min(560px,calc(100% - 44px));max-height:80dvh;overflow:auto;margin:auto;padding:18px;border:1px solid #d7ded9;border-radius:10px;background:white;color:#31503c;font:12px/1.5 Verdana,Geneva,sans-serif;box-shadow:0 12px 42px #17362630}
.accounting-check-dialog::backdrop{background:#18382970}.accounting-check-dialog .section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.accounting-check-dialog h2{font:600 16px/1.3 Verdana,Geneva,sans-serif;margin:0}.accounting-check-dialog ul{margin:14px 0 0;padding-left:20px}.accounting-check-dialog li+li{margin-top:8px}.accounting-check-dialog button{margin:0;padding:6px 10px;font:12px Verdana,Geneva,sans-serif}

.permission-readonly-fields{border:0;padding:0;margin:0;min-width:0}.permission-readonly-fields input:disabled,.permission-readonly-fields select:disabled,.permission-readonly-fields textarea:disabled{color:#344b46;background:#f4f6f5;opacity:1}.permission-note{font-size:12px;margin:8px 0}

/* Tenant selection belongs to the properties menu; the top bar shows context only. */
.nav-tenant-picker{margin:0 3px 12px;border:1px solid #d4e1d8;border-radius:7px;background:#fff;overflow:hidden}
.nav-tenant-picker>summary,.nav-tenant-picker.is-fixed{padding:10px 11px;line-height:1.4;color:#315940}
.nav-tenant-picker>summary{display:block;position:relative;padding-right:27px;list-style:none;cursor:pointer}
.nav-tenant-picker>summary::-webkit-details-marker{display:none}
.nav-tenant-picker>summary::after{content:'⌄';position:absolute;right:10px;top:25px;color:#799582;font-size:16px}
.nav-tenant-picker[open]>summary{border-bottom:1px solid #e1e9e3;background:#f4f8f5}
.nav-tenant-picker[open]>summary::after{transform:rotate(180deg)}
.nav-tenant-label{display:block;margin-bottom:3px;font-size:10px;color:#7d9183;font-weight:400}
.nav-tenant-picker strong{display:block;font-size:12px;font-weight:600;overflow-wrap:anywhere}
.nav-tenant-options{padding:5px;max-height:260px;overflow:auto;scrollbar-width:thin}
.nav-tenant-options .nav-item{font-size:12px;padding:7px 6px}
.current-tenant-name{margin-left:auto;flex:0 1 auto;min-width:0;max-width:32%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#526d5a;font-size:12px;font-weight:600}
.tenant-selection-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.tenant-selection-links .button-link{margin:0;max-width:100%;overflow-wrap:anywhere}
@media(max-width:700px){.current-tenant-name{font-size:11px;max-width:43%}}

.ersatz-hinweis{white-space:nowrap;font-size:8px;line-height:1.2}
.cost-columns td:first-child{white-space:nowrap}
.app-content .ersatz-hinweis{font-size:8px;line-height:1.2;white-space:nowrap}

.contract-list tr.contract-child>td:first-child{padding-left:26px;position:relative}
.contract-list tr.contract-child>td:first-child .contract-child-mark{position:absolute;left:9px;top:8px;color:#8a9a90}
.contract-list tr.contract-child{background:rgba(0,0,0,.015)}

.nav-block-label{margin-top:14px;padding:5px 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#1f4a35;background:#e6efe9;border-radius:4px}
.admin-block-title{margin:18px 0 8px;padding-bottom:5px;font-size:15px;color:#1f4a35;border-bottom:2px solid #cfdcd3}

/* ===== Design-Tokens und Feldzustände =====
   Fläche (Seite/Karte) leicht getönt, Felder weiß mit Rahmen; Zustände über Rahmen/Ring, die Füllung bleibt dem Signal „geändert“ vorbehalten. */
:root{
  --surface-page:#f4f7f5;--surface-card:#fbfcfb;--card-border:#dbe4de;
  --field-bg:#fff;--field-border:#b9c7be;--field-border-hover:#86a092;
  --focus:#2e6c51;--focus-ring:rgba(46,108,81,.28);
  --field-locked-bg:#eef2ef;--field-locked-border:#e0e7e2;--field-locked-text:#6b7a71;
  --dirty-bg:#fff4c2;--dirty-border:#e3c15a;--dirty-bar:#e0a100;
  --invalid:#c0392b;--invalid-bg:#fdf3f2;--required:#b4572b;
}
.app-workspace{background:var(--surface-page)}
.app-content .card{background:var(--surface-card);border-color:var(--card-border)}

/* Eingabefelder: ruhig / Hover / Fokus */
.app-content :where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=range]),select,textarea){
  background-color:var(--field-bg);border:1px solid var(--field-border);border-radius:6px;
  transition:border-color .12s,box-shadow .12s,background-color .12s}
.app-content :where(input:not([type=checkbox]):not([type=radio]),select,textarea):hover:not(:disabled):not([readonly]){border-color:var(--field-border-hover)}
.app-content :is(input:not([type=checkbox]):not([type=radio]),select,textarea):focus,
.app-content :is(input:not([type=checkbox]):not([type=radio]),select,textarea):focus-visible{
  outline:none;border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-ring)}
.app-content :is(input[type=checkbox],input[type=radio]){accent-color:var(--focus)}
.app-content :is(input[type=checkbox],input[type=radio]):focus-visible{outline:2px solid var(--focus);outline-offset:2px}

/* Gesperrt / berechnet: flach getönt, ohne weiße Fläche */
.app-content :where(input,select,textarea):where(:disabled,[readonly],[data-net-locked]):not([type=checkbox]):not([type=radio]){
  background-color:var(--field-locked-bg);border-color:var(--field-locked-border);color:var(--field-locked-text);box-shadow:none;opacity:1}
.app-content :is(input,select,textarea):disabled{cursor:not-allowed}
.app-content :is(input,select,textarea)[readonly]:focus{box-shadow:none;border-color:var(--field-locked-border)}

/* Geänderte Felder: Balken links (auch in langen Listen sichtbar) */
.app-layout form tr:has(.has-unsaved-change){box-shadow:inset 3px 0 0 var(--dirty-bar)}

/* Fehler und Pflichtfelder */
.app-content :where(input,select,textarea):user-invalid,.app-content :where(input,select,textarea)[aria-invalid=true]{border-color:var(--invalid);background-color:var(--invalid-bg)}
.app-content :is(input,select,textarea):user-invalid:focus{box-shadow:0 0 0 3px rgba(192,57,43,.22)}
.app-content div:has(> :is(input,select,textarea)[required]:not([type=checkbox])) > label::after{content:" *";color:var(--required);font-weight:700}

/* Zähler: Anteil-Spalte breiter */
.app-content .meter-assignments{min-width:900px}
.app-content .meter-assignments input[inputmode=decimal]{min-width:100px;width:110px}
/* Wohnanlage: Mandant wie die übrigen Felder */
.property-master .field>label:has(>select),.property-master .field>label:has(>input){display:block;font-size:11px}
.property-master .field>label>select,.property-master .field>label>input{display:block;width:100%;margin-top:4px;box-sizing:border-box}
/* Einheitliche Aktionsbuttons (Hover wie bisher) */
.app-content :is(.page-heading,.section-heading,.section-actions,.calc-actions,.statement-heading-actions,.maintenance-heading) :is(a.button-link,button.secondary,a.heading-add-action),
.app-content :is(button.billing-copy-all-open,a.button-link.secondary-link){display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;min-height:28px;box-sizing:border-box;margin:0;padding:5px 9px;font:12px/1.3 Verdana,Geneva,sans-serif!important;text-decoration:none;white-space:nowrap;color:#28654c;background:#e7f0ea;border:1px solid #cbded1;border-radius:5px;box-shadow:none;cursor:pointer}
.app-content :is(.page-heading,.section-heading,.section-actions,.calc-actions,.statement-heading-actions,.maintenance-heading) :is(a.button-link,button.secondary,a.heading-add-action):hover,
.app-content :is(button.billing-copy-all-open,a.button-link.secondary-link):hover{background:#d9e9df;border-color:#aac9b6}
.property-master .field>label>select,.property-master .field>label>input{margin-top:6px;font-size:15px;font-weight:400;min-height:40px}

.app-content .statement-danger{color:#995246!important;background:#f6e9e5!important;border:1px solid #e3c4bc!important}
.app-content .statement-danger:hover{background:#ecd0c9!important;border-color:#d4a99f!important}

.app-content .button-link.is-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}
/* Hover für alle sekundären Buttons (Formulare, Fußleiste) und die Hauptbuttons */
.app-content button.secondary:not(.statement-danger):not(:disabled):hover,.app-footer button.secondary:not(:disabled):hover,.app-footer .footer-back:hover{background:#d9e9df;border-color:#aac9b6;cursor:pointer}
.app-content button:not(.secondary):not(.calc-warning-button):not(:disabled):hover,.app-footer button:not(.secondary):not(:disabled):hover{filter:brightness(.92);cursor:pointer}

/* PDF-Layout-Auswahl neben der PDF-Vorschau */
.statement-layout{display:inline-flex;align-items:center;gap:8px}
.statement-layout select{width:auto;min-width:170px;max-width:240px;padding:9px 10px;border-radius:6px}
.statement-layout select:disabled{opacity:.75}
.gm-pdf-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px}

/* Fußleiste der Kalkulation: „Zurück zur Vorbereitung“ wie die übrigen sekundären Fußleisten-Buttons */
.app-footer .calc-toolbar a.button-link{display:inline-flex;align-items:center;flex:none;box-sizing:border-box;height:36px;margin:0;padding:8px 13px;font:600 12px Verdana,Geneva,sans-serif;line-height:1.2;white-space:nowrap;text-decoration:none;border-radius:6px;background:#e5ede7;color:#3c6350;border:1px solid #ccdad0}
.app-footer .calc-toolbar a.button-link:hover{background:#d9e9df;border-color:#aac9b6;cursor:pointer}
.app-footer .calc-toolbar button{padding:8px 13px}
@media(max-width:700px){.app-footer .calc-toolbar a.button-link{padding:7px 10px;font-size:11px}}
@media(max-width:700px){.app-footer .calc-toolbar{flex-wrap:wrap;justify-content:space-between}.app-footer .calc-toolbar .calc-footer-status{order:3;flex:1 1 100%;white-space:normal}.app-footer .calc-toolbar button{padding:7px 10px;font-size:11px!important}}
