/* Consolidated from static/css/app.css; source order preserved. */
:root{
  --bg:#f3f5f2;--surface:#fff;--surface-2:#f7f8f6;--ink:#17201e;--muted:#6d7773;--line:#e0e5e0;
  --dark:#14201d;--dark-2:#22312d;--accent:#315f53;--accent-soft:#e6efeb;--positive:#1f7653;--positive-bg:#e8f4ee;
  --warning:#9a671d;--warning-bg:#fff3dc;--danger:#b23f3a;--danger-bg:#fae9e7;--blue:#315f84;--blue-bg:#e8f0f7;
  --shadow:0 14px 50px rgba(20,32,29,.07);--radius:26px;--radius-sm:16px;--sidebar:264px;--ui-radius-control:10px;
  --invoice-page-surface:#f8faf9;--invoice-module-surface:#fff;--invoice-work-surface:#fff;--invoice-tab-track:#eef4f1;--invoice-tab-inactive:#eef4f1;--invoice-tab-inactive-hover:#e4ece8;--invoice-brand-primary:#146b52;--invoice-border:#d9dfdc;--invoice-divider:#d9dfdc;
  --invoice-section-heading:#cbe4d7;
  --table-head-bg:#edf2ef;--table-head-text:#4f5f59;--table-head-weight:550;--table-head-size:12px;--table-head-border:#cfd9d4;--table-head-transform:uppercase;--table-head-letter-spacing:.04em;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;color:var(--ink);background:var(--bg);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-size:17px;line-height:1.45}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(36px,4vw,58px);line-height:1.02;letter-spacing:-2.3px;margin-bottom:14px}h2{font-size:28px;line-height:1.1;letter-spacing:-.8px;margin-bottom:10px}h3{font-size:21px;line-height:1.2;margin-bottom:8px}.eyebrow{display:block;color:var(--muted);font-size:15px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:9px}.eyebrow.light{color:#b9c7c1}.positive{color:var(--positive)!important}.negative{color:var(--danger)!important}.muted{color:var(--muted)!important}.stack{display:grid;gap:22px}.wide{grid-column:1/-1}.anchor-section{scroll-margin-top:100px}
.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:50;background:var(--dark);color:white;padding:26px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px;color:#fff}.brand-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,#e6efe9,#91aa9f);color:var(--dark);display:grid;place-items:center;font-weight:850;font-size:22px}.brand>span:last-child{display:flex;align-items:baseline;gap:5px}.brand strong{font-size:20px;letter-spacing:-.5px}.brand small{font-size:15px;color:#aebdb7}.primary-nav{display:grid;gap:7px;margin-top:42px}.nav-item{display:flex;align-items:center;gap:13px;color:#bdc9c5;border-radius:16px;padding:14px 15px;font-weight:600;transition:.18s ease}.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}.nav-item.active{background:#2a3a35;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}.nav-icon{width:25px;font-size:20px;text-align:center;color:#99aaa4}.nav-item.active .nav-icon{color:#fff}.sidebar-footer{margin-top:auto;display:grid;gap:16px}.project-mini{display:flex;align-items:flex-start;gap:10px;padding:14px;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}.project-mini div{min-width:0}.project-mini strong,.project-mini small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-mini small{color:#91a39c;font-size:13px;margin-top:3px}.project-dot{width:9px;height:9px;background:#65b68c;border-radius:50%;margin-top:5px;box-shadow:0 0 0 4px rgba(101,182,140,.13)}.account-link{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;color:#dbe3df}.account-link small{color:#91a39c}.workspace{grid-column:2;min-width:0}.topbar{height:82px;position:sticky;top:0;z-index:30;background:rgba(243,245,242,.86);backdrop-filter:blur(20px);border-bottom:1px solid rgba(216,223,217,.8);display:flex;align-items:center;justify-content:space-between;padding:0 38px}.topbar-title{display:grid}.topbar-title strong{font-size:18px}.topbar-project{font-size:13px;color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:12px}.scenario-switch{display:flex;background:#e9ece8;border-radius:14px;padding:4px}.scenario-button{border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:10px;font-size:13px;font-weight:700}.scenario-button.active{background:white;color:var(--ink);box-shadow:0 2px 9px rgba(20,32,29,.08)}.icon-button{position:relative;width:42px;height:42px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:grid;place-items:center;color:var(--ink);font-weight:700}.mobile-menu{display:none}.badge-count{position:absolute;right:-5px;top:-5px;background:var(--danger);color:#fff;border-radius:20px;min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;font-size:11px}.notification-menu{position:relative}.notification-menu summary{list-style:none}.notification-menu summary::-webkit-details-marker{display:none}.notification-popover{position:absolute;right:0;top:50px;width:min(390px,85vw);background:white;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:12px;z-index:80}.popover-header{display:flex;justify-content:space-between;padding:10px 10px 14px}.popover-header span{color:var(--muted);font-size:14px}.notification-item{display:grid;gap:3px;padding:12px;border-radius:13px}.notification-item:hover{background:var(--surface-2)}.notification-item small{color:var(--muted)}.empty-compact{padding:20px;text-align:center;color:var(--muted)}.content{padding:38px;max-width:1680px;margin:0 auto}.toast-stack{position:fixed;right:28px;top:98px;z-index:100;display:grid;gap:10px}.toast{background:var(--dark);color:#fff;padding:14px 18px;border-radius:14px;box-shadow:var(--shadow);max-width:430px}.toast.success{background:var(--positive)}.toast.error{background:var(--danger)}.sidebar-backdrop{display:none}
.page-heading,.detail-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:30px}.page-heading>div:first-child,.detail-heading>div:first-child{max-width:900px}.page-heading p,.detail-heading p,.form-page-heading p{color:var(--muted);font-size:18px;max-width:860px;margin-bottom:0}.page-actions,.inline-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.button{border:1px solid transparent;border-radius:14px;padding:12px 17px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;transition:.18s ease}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--dark);color:white}.button.secondary{background:white;border-color:var(--line)}.button.subtle{background:var(--accent-soft);color:var(--accent)}.button.ghost{background:transparent}.button.large{min-height:54px;font-size:18px}.danger-text{color:var(--danger)}.text-button{border:0;background:transparent;color:var(--accent);font-weight:750;padding:6px}.text-button.full{width:100%;padding:12px}.back-link{display:inline-flex;color:var(--muted);font-weight:700;margin-bottom:24px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.section-head h2,.section-head h3{margin-bottom:0}.section-head p{color:var(--muted);margin:7px 0 0}.section-head.large{margin-bottom:20px}.content-section{margin-top:54px}.status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;background:#eef1ee;color:#59635f}.status-pill.positive{background:var(--positive-bg);color:var(--positive)!important}.status-pill.warning{background:var(--warning-bg);color:var(--warning)!important}.status-pill.danger{background:var(--danger-bg);color:var(--danger)!important}.status-pill.neutral{background:#eef1ee;color:#59635f}.filter-pills,.section-tabs{display:flex;gap:7px;overflow:auto;margin-bottom:24px}.filter-pills a,.section-tabs a{white-space:nowrap;padding:10px 15px;border-radius:12px;color:var(--muted);font-weight:700}.filter-pills a.active,.section-tabs a:hover{background:white;color:var(--ink);box-shadow:0 3px 12px rgba(20,32,29,.06)}
.dashboard-heading{align-items:center}.health-score{text-align:right}.health-score span{display:block;color:var(--muted);font-size:14px;font-weight:700}.health-score strong{font-size:60px;line-height:1}.health-score small{font-size:22px;color:var(--muted)}.health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.health-card{background:white;border:1px solid var(--line);border-radius:20px;padding:19px;min-height:190px;transition:.18s ease}.health-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.health-card-head{display:flex;justify-content:space-between;align-items:center}.health-card>strong{display:block;font-size:34px;margin:18px 0 5px}.health-card p{color:var(--muted);font-size:14px;min-height:41px}.card-link{display:flex;justify-content:space-between;color:var(--accent);font-weight:750;font-size:14px;margin-top:15px}.kpi-hero-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.kpi-hero{padding:27px;min-height:235px}.card-kicker{font-size:15px;color:var(--muted);font-weight:700}.metric-xl{font-size:clamp(38px,4.6vw,66px);font-weight:820;letter-spacing:-2.4px;margin:16px 0 6px}.metric-delta{font-size:16px;font-weight:700}.progress-track{height:8px;background:#edf0ed;border-radius:20px;overflow:hidden;margin-top:27px}.progress-track span{display:block;height:100%;max-width:100%;background:var(--accent);border-radius:20px}.kpi-foot,.liquidity-mini{display:flex;justify-content:space-between;color:var(--muted);font-size:14px;margin-top:10px}.liquidity-mini{margin-top:38px;border-top:1px solid var(--line);padding-top:18px}.kpi-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:18px 0}.kpi-card{background:white;border:1px solid var(--line);border-radius:19px;padding:20px;min-width:0}.kpi-card:hover{box-shadow:var(--shadow)}.kpi-card>span{color:var(--muted);font-size:14px}.kpi-card strong{display:block;font-size:24px;letter-spacing:-.7px;margin:10px 0 4px;white-space:nowrap}.kpi-card small{display:block;color:var(--muted);font-size:13px}.kpi-card.emphasized{background:var(--dark);color:#fff}.kpi-card.emphasized>span,.kpi-card.emphasized small{color:#b7c5c0}.dashboard-main-grid,.dashboard-secondary-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;margin-top:18px}.dashboard-main-grid>.card,.dashboard-secondary-grid>.card{padding:25px}.fact-legend,.chart-legend{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}.fact-legend i,.chart-legend i{width:9px;height:9px;border-radius:50%;background:var(--positive)}.fact-legend i.assessment,.chart-legend i.secondary{background:#a1aaa6}.summary-list{display:grid;margin-top:15px}.summary-item{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:12px;padding:16px 4px;border-top:1px solid var(--line)}.summary-item p{margin:0}.summary-marker{width:9px;height:9px;border-radius:50%;background:var(--positive)}.summary-item.assessment .summary-marker{background:#a1aaa6}.summary-item b{color:var(--accent)}.compact-list,.risk-list{display:grid;margin-top:12px}.compact-row,.document-mini,.risk-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 0;border-top:1px solid var(--line)}.compact-row:first-child,.document-mini:first-child,.risk-row:first-child{border-top:0}.compact-row div,.document-mini div,.risk-main{min-width:0}.compact-row strong,.document-mini strong,.risk-row strong{display:block}.compact-row small,.document-mini small,.risk-row small{display:block;color:var(--muted);margin-top:3px}.document-mini{justify-content:flex-start}.document-mini>span:last-child{margin-left:auto}.doc-icon{width:38px;height:44px;border-radius:9px;background:var(--blue-bg);color:var(--blue);display:grid;place-items:center}.doc-icon.large{width:54px;height:62px;font-size:23px}.risk-values{text-align:right}.forecast-history-card{padding:25px;margin-top:18px}.line-chart{min-height:250px;margin-top:18px}.line-chart svg{display:block;width:100%;height:auto;overflow:visible}.chart-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-line.secondary{stroke:#aab3af;stroke-width:2;stroke-dasharray:6 7}.chart-area{fill:rgba(49,95,83,.08)}.chart-baseline{stroke:#d9dfda;stroke-width:1}.chart-labels text{font-size:11px;fill:#7d8783}
.cost-kpis{margin-bottom:30px}.segmented-control{display:flex;background:#e7ebe7;border-radius:13px;padding:3px}.segmented-control a{padding:8px 12px;border-radius:10px;color:var(--muted);font-size:13px;font-weight:750}.segmented-control a.active{background:white;color:var(--ink)}.alert-card{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:18px;margin-bottom:15px}.alert-card>div{flex:1}.alert-card p{margin:3px 0 0}.alert-card.danger{background:var(--danger-bg);color:#6b2825}.alert-card.positive{background:var(--positive-bg);color:#174e39}.alert-icon{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.65);display:grid;place-items:center;font-weight:900}.liquidity-card{padding:25px}.liquidity-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.liquidity-summary>div{padding:15px;background:var(--surface-2);border-radius:15px}.liquidity-summary span{display:block;color:var(--muted);font-size:13px}.liquidity-summary strong{display:block;font-size:22px;margin-top:5px}.line-chart.tall{min-height:300px}.chart-legend.bottom{display:flex;justify-content:center;gap:22px}.chart-legend.bottom span{display:flex;align-items:center;gap:7px}.flow-list-card{margin-top:16px;padding:24px}.flow-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:14px;padding:15px 0;border-top:1px solid var(--line)}.flow-row:first-child{border-top:0}.flow-row small{display:block;color:var(--muted)}.flow-direction{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:900}.flow-direction.in{background:var(--positive-bg);color:var(--positive)}.flow-direction.out{background:var(--danger-bg);color:var(--danger)}.record-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.record-card{background:white;border:1px solid var(--line);border-radius:21px;padding:20px;min-height:220px;display:flex;flex-direction:column;transition:.18s ease}.record-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.record-head{display:flex;justify-content:space-between}.record-type{border-radius:9px;padding:6px 9px;background:#eef1ee;font-size:12px;font-weight:850}.type-quote{background:var(--blue-bg);color:var(--blue)}.type-order{background:var(--positive-bg);color:var(--positive)}.type-change{background:var(--warning-bg);color:var(--warning)}.type-invoice{background:#eeeaf7;color:#65518b}.record-card h3{margin:20px 0 4px}.record-card p{color:var(--muted)}.record-amount{margin-top:auto}.record-amount strong{display:block;font-size:27px}.record-amount small{color:var(--muted)}.record-meta{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:13px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.review-dot{font-weight:750}.risk-board{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.risk-card-large{background:white;border:1px solid var(--line);border-radius:22px;padding:22px}.risk-card-large.resolved{opacity:.68}.risk-card-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px}.risk-card-large h3{margin-top:18px}.risk-card-large>p{color:var(--muted);min-height:48px}.risk-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.risk-numbers>div{background:var(--surface-2);padding:12px;border-radius:13px}.risk-numbers span,.risk-numbers strong{display:block}.risk-numbers span{font-size:11px;color:var(--muted)}.risk-numbers strong{font-size:16px;margin-top:4px}.next-action{border-top:1px solid var(--line);margin-top:15px;padding-top:13px}.next-action span,.next-action strong{display:block}.next-action span{font-size:12px;color:var(--muted)}
.form-page-heading{max-width:900px;margin-bottom:24px}.form-card{padding:28px}.standard-form{max-width:1050px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-field{display:grid;gap:7px;align-content:start}.form-field>span{font-size:14px;font-weight:750}.form-field>span b{color:var(--danger)}.form-field small{color:var(--muted);font-size:12px}.form-control{width:100%;min-height:50px;border:1px solid #cfd7d2;border-radius:13px;background:white;color:var(--ink);padding:11px 13px;outline:none;transition:.15s ease}.form-control:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(49,95,83,.1)}textarea.form-control{resize:vertical;min-height:105px}.span-2{grid-column:1/-1}.checkbox-field{display:flex;align-items:center;gap:10px;padding-top:12px}.checkbox-field input{width:21px;height:21px;accent-color:var(--accent)}.field-error,.errorlist{color:var(--danger)!important;list-style:none;padding:0;margin:3px 0 0;font-size:12px}.form-error-banner,.inline-error{background:var(--danger-bg);color:var(--danger);border-radius:13px;padding:13px;margin-bottom:18px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}.form-actions.spread{justify-content:space-between}.form-actions.spread>div{display:flex;gap:10px}.form-section{padding:0 0 28px;margin-bottom:28px;border-bottom:1px solid var(--line)}.form-section h2{font-size:20px;margin-bottom:17px}.record-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.record-form-layout>.form-card{max-width:none}.record-form-help{padding:23px;position:sticky;top:104px}.record-form-help h3{font-size:24px}.check-list{padding:0;list-style:none;display:grid;gap:15px}.check-list li{position:relative;padding-left:27px;color:var(--muted)}.check-list li:before{content:'';position:absolute;top:1px;left:0;width:18px;height:18px;background:var(--positive);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E") center/contain no-repeat}.modal{border:0;padding:0;background:transparent;max-width:min(760px,calc(100vw - 30px));width:100%}.modal::backdrop{background:rgba(12,20,18,.5);backdrop-filter:blur(4px)}.modal-card{background:white;border-radius:25px;padding:25px;box-shadow:0 30px 90px rgba(10,20,17,.25);max-height:90vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:22px}.modal-head h2{font-size:30px}
.detail-heading{align-items:flex-start}.detail-labels{display:flex;gap:8px;margin-bottom:17px}.detail-heading h1{max-width:980px}.detail-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.detail-kpi{padding:20px}.detail-kpi>span{color:var(--muted);font-size:13px}.detail-kpi>strong{display:block;font-size:26px;margin:8px 0 3px}.detail-kpi small{color:var(--muted)}.invoice-review{padding:25px;margin-bottom:18px;border-left:5px solid #aab3af}.invoice-review.positive{border-left-color:var(--positive);color:var(--ink)!important}.invoice-review.warning{border-left-color:var(--warning);color:var(--ink)!important}.invoice-review.danger{border-left-color:var(--danger);color:var(--ink)!important}.review-header{display:flex;justify-content:space-between}.review-symbol{width:46px;height:46px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-size:24px}.finding-list{display:grid;margin-top:14px}.finding-row{display:flex;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.finding-row>span{width:9px;height:9px;border-radius:50%;background:#aab3af;margin-top:7px}.finding-row.warning>span{background:var(--warning)}.finding-row.danger>span{background:var(--danger)}.finding-row p{margin:3px 0 0;color:var(--muted)}.detail-two-column,.decision-detail-grid,.document-review-layout,.project-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);gap:22px;align-items:start}.detail-card{padding:24px}.long-copy{color:#3e4945;line-height:1.65}.info-block,.transparency-note{background:var(--surface-2);padding:15px;border-radius:14px;margin-top:18px}.info-block span{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase}.info-block p,.transparency-note p{margin:5px 0 0}.allocation-row,.payment-row,.schedule-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.allocation-row:first-child,.payment-row:first-child,.schedule-row:first-child{border-top:0}.allocation-row>div{display:flex;align-items:center;gap:10px}.schedule-row{display:grid;grid-template-columns:auto 1fr auto}.schedule-row small,.payment-row small{display:block;color:var(--muted)}.timeline-dot{width:10px;height:10px;border-radius:50%;background:#aab3af}.timeline-dot.positive{background:var(--positive)}.timeline-dot.warning{background:var(--warning)}.metadata-list{display:grid}.metadata-list>div{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-top:1px solid var(--line)}.metadata-list span{color:var(--muted)}.metadata-list a{color:var(--accent);font-weight:700}
.document-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.document-card{background:white;border:1px solid var(--line);border-radius:22px;padding:21px;min-height:290px;display:flex;flex-direction:column}.document-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.document-card-top{display:flex;justify-content:space-between}.document-card h2{font-size:22px;margin:18px 0 8px}.document-card p{color:var(--muted)}.document-data{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-top:auto;padding-top:15px;border-top:1px solid var(--line)}.review-form{padding:27px}.extraction-block{background:var(--warning-bg);padding:17px;border-radius:15px;margin-top:20px}.extraction-block>span{font-weight:800}.extraction-block ul{margin-bottom:0}.transparency-list{display:grid;gap:17px}.transparency-list>div{display:flex;gap:12px}.transparency-list p{color:var(--muted);margin:3px 0}.dot{width:11px;height:11px;border-radius:50%;margin-top:6px;flex:0 0 auto}.dot.confirmed{background:var(--positive)}.dot.ai{background:#7d69a7}.dot.manual{background:var(--blue)}
.decision-list{display:grid;gap:13px}.decision-card{background:white;border:1px solid var(--line);border-radius:22px;padding:22px;display:grid;grid-template-columns:80px 1fr auto;gap:22px;align-items:center}.decision-card:hover{box-shadow:var(--shadow)}.decision-priority{border-right:1px solid var(--line);height:100%;display:grid;align-content:center}.decision-priority span{color:var(--muted);font-size:12px}.decision-priority strong{font-size:32px}.decision-meta{display:flex;gap:8px}.due-pill{background:#eef1ee;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:750}.due-pill.overdue{background:var(--danger-bg);color:var(--danger)}.decision-content h2{margin:13px 0 5px}.decision-content>p{color:var(--muted)}.decision-effects,.option-effects{display:flex;gap:28px;flex-wrap:wrap}.decision-effects span,.option-effects span{display:grid}.decision-effects small,.option-effects small{color:var(--muted)}.decision-arrow{font-size:24px;color:var(--accent)}.option-list{display:grid;gap:13px;margin-top:18px}.option-card{border:1px solid var(--line);border-radius:17px;padding:18px}.option-card.selected{border-color:var(--positive);box-shadow:inset 0 0 0 1px var(--positive)}.option-head{display:flex;justify-content:space-between}.option-card>p{color:var(--muted)}.decision-outcome{padding:26px;background:var(--dark);color:white}.decision-outcome .eyebrow{color:#aebdb7}.decision-outcome>p{color:#c8d2ce;line-height:1.6}.decision-by{border-top:1px solid rgba(255,255,255,.15);padding-top:16px;margin-top:20px}.decision-by span,.decision-by strong{display:block}.decision-by span{color:#9fb0aa;font-size:12px}.linked-list{display:grid}.linked-list a{display:flex;justify-content:space-between;padding:13px 0;border-top:1px solid var(--line);color:var(--accent);font-weight:700}
.activity-timeline{max-width:1150px}.activity-event{display:grid;grid-template-columns:76px 28px 1fr;gap:5px}.activity-time{padding-top:25px;text-align:right}.activity-time strong,.activity-time small{display:block}.activity-time small{color:var(--muted);font-size:12px}.activity-line{position:relative;display:flex;justify-content:center}.activity-line:after{content:'';position:absolute;top:0;bottom:0;width:1px;background:#ced6d1}.timeline-node{position:relative;z-index:1;width:12px;height:12px;border-radius:50%;background:#aeb8b3;margin-top:32px;border:3px solid var(--bg);box-sizing:content-box}.timeline-node.significant{background:var(--danger);box-shadow:0 0 0 5px var(--danger-bg)}.activity-card{padding:22px;margin-bottom:16px}.activity-head{display:flex;justify-content:space-between;gap:20px}.activity-type{font-size:12px;color:var(--muted);text-transform:uppercase;font-weight:800}.activity-head h2{font-size:21px;margin-top:6px}.activity-actor{text-align:right}.activity-actor span,.activity-actor small{display:block}.activity-actor small{color:var(--muted)}.activity-reason{color:var(--muted)}.impact-strip{display:flex;gap:28px;background:var(--surface-2);border-radius:14px;padding:13px 15px;margin-top:13px;flex-wrap:wrap}.impact-strip span{display:grid}.impact-strip small{color:var(--muted)}.comment-list{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.comment{display:flex;gap:11px;padding:9px 0}.comment>span{width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:850}.comment p{margin:3px 0}.comment small{color:var(--muted)}.comment-form{display:flex;gap:9px;margin-top:13px}.comment-form textarea{min-height:45px;height:45px}.party-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.party-card{padding:20px}.party-card h3{margin-top:17px}.party-card p,.party-card>div{color:var(--muted)}.party-card>div{display:grid;font-size:14px}.integration-list{display:grid}.integration-list>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:14px 0;border-top:1px solid var(--line)}.integration-list>div:first-child{border-top:0}.integration-icon{width:42px;height:42px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:850}.integration-list p{margin:2px 0;color:var(--muted);font-size:14px}.empty-state{padding:50px 28px;text-align:center}.empty-state.compact{padding:24px 10px}.empty-state strong{display:block;font-size:20px}.empty-state p{color:var(--muted);margin:7px auto 17px;max-width:540px}
.login-page{min-height:100vh;background:var(--dark)}.login-shell{display:grid;grid-template-columns:1.1fr .9fr;min-height:100vh}.login-brand-panel{padding:52px;display:flex;flex-direction:column;background:radial-gradient(circle at 20% 15%,#294139 0,transparent 42%),var(--dark);color:white}.brand-login{padding:0}.login-promise{margin:auto 0;max-width:680px}.login-promise h1{font-size:clamp(52px,7vw,94px);letter-spacing:-4px}.login-promise p{font-size:22px;color:#b8c7c1;max-width:600px}.login-status{display:flex;align-items:center;gap:12px;color:#9fb0aa}.login-form-panel{background:var(--bg);display:grid;place-items:center;padding:35px}.login-card{background:white;border:1px solid var(--line);border-radius:30px;padding:35px;box-shadow:var(--shadow);width:min(520px,100%);display:grid;gap:20px}.login-card h2{font-size:42px}.login-card>div>p{color:var(--muted)}
@media(max-width:1250px){.health-grid{grid-template-columns:repeat(2,1fr)}.kpi-strip{grid-template-columns:repeat(3,1fr)}.record-grid,.document-grid{grid-template-columns:repeat(2,1fr)}.record-form-layout{grid-template-columns:1fr}.record-form-help{position:static}.detail-kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1100px){:root{--sidebar:290px}.app-shell{display:block}.workspace{grid-column:auto}.sidebar{transform:translateX(-105%);transition:.22s ease;box-shadow:30px 0 70px rgba(0,0,0,.2)}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-backdrop{position:fixed;inset:0;background:rgba(8,15,13,.42);z-index:40}.sidebar-open .sidebar-backdrop{display:block}.mobile-menu{display:grid}.topbar{padding:0 20px}.topbar-title{margin-right:auto;margin-left:12px}.content{padding:26px 20px 45px}.dashboard-main-grid,.dashboard-secondary-grid,.detail-two-column,.decision-detail-grid,.document-review-layout,.project-layout{grid-template-columns:1fr}.kpi-hero-grid{grid-template-columns:1fr}.record-form-help{display:none}.party-grid{grid-template-columns:repeat(2,1fr)}.login-shell{grid-template-columns:1fr}.login-brand-panel{min-height:42vh;padding:32px}.login-promise{margin:auto 0}.login-promise h1{font-size:52px}.login-status{display:none}.login-form-panel{padding:24px}.activity-event{grid-template-columns:0 25px 1fr}.activity-time{display:none}}
@media(max-width:680px){body{font-size:16px}.scenario-switch{display:none}.topbar{height:70px}.topbar-project{display:none}.content{padding:22px 14px 38px}h1{font-size:38px;letter-spacing:-1.5px}.page-heading,.detail-heading{display:grid;align-items:start}.page-actions{width:100%}.page-actions .button,.page-actions form{flex:1}.page-actions form .button{width:100%}.health-score{display:none}.health-grid{grid-template-columns:1fr 1fr;gap:10px}.health-card{min-height:170px;padding:15px}.health-card p{font-size:12px}.health-card>strong{font-size:27px}.kpi-strip{display:flex;overflow:auto;margin-right:-14px;padding-right:14px}.kpi-card{min-width:210px}.dashboard-main-grid,.dashboard-secondary-grid{grid-template-columns:1fr}.kpi-hero{padding:21px}.metric-xl{font-size:38px}.liquidity-summary{grid-template-columns:1fr}.record-grid,.document-grid,.risk-board,.party-grid{grid-template-columns:1fr}.record-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.form-grid,.form-grid.three{grid-template-columns:1fr}.span-2{grid-column:auto}.form-card{padding:20px}.detail-kpi-grid{display:flex;overflow:auto;margin-right:-14px;padding-right:14px}.detail-kpi{min-width:230px}.decision-card{grid-template-columns:1fr auto}.decision-priority{display:none}.decision-effects{gap:16px}.activity-event{grid-template-columns:20px 1fr}.activity-line{grid-column:1}.activity-card{grid-column:2}.activity-head{display:grid}.activity-actor{text-align:left}.comment-form{display:grid}.form-actions,.form-actions.spread{display:grid}.form-actions.spread>div{display:grid}.form-actions .button{width:100%}.login-brand-panel{min-height:34vh;padding:25px}.login-promise h1{font-size:42px}.login-promise p{font-size:17px}.login-form-panel{padding:14px}.login-card{padding:24px;border-radius:24px}.login-card h2{font-size:34px}}
.setup-page{min-height:100vh;background:var(--dark)}.setup-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,.9fr) minmax(600px,1.1fr)}.setup-intro{padding:52px;display:flex;flex-direction:column;justify-content:space-between;color:white;background:radial-gradient(circle at 18% 18%,#294139 0,transparent 42%),var(--dark)}.setup-intro>div:nth-child(2){max-width:680px}.setup-intro h1{font-size:clamp(48px,5.8vw,82px);letter-spacing:-3.8px;line-height:.98}.setup-intro p{font-size:21px;line-height:1.55;color:#b8c7c1;max-width:620px}.eyebrow.light{color:#9fb4ac}.setup-steps{display:flex;align-items:center;gap:11px;color:#90a29b}.setup-steps span{width:31px;height:31px;border:1px solid #52635d;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:850}.setup-steps span.active{background:var(--accent);border-color:var(--accent);color:white}.setup-steps b{font-size:13px}.setup-steps i{width:28px;height:1px;background:#52635d}.setup-form-panel{display:grid;place-items:center;background:var(--bg);padding:42px}.setup-card{background:white;border:1px solid var(--line);border-radius:30px;padding:36px;width:min(840px,100%);box-shadow:var(--shadow);display:grid;gap:26px}.setup-card h2{font-size:42px;margin:5px 0}.setup-card>div>p{color:var(--muted)}.setup-choice{display:flex;align-items:flex-start;gap:14px;background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:17px;cursor:pointer}.setup-choice input{width:22px;height:22px;margin-top:2px;accent-color:var(--accent)}.setup-choice span{display:grid;gap:4px}.setup-choice small{color:var(--muted);line-height:1.45}.button.large{min-height:56px;font-size:17px}.user-list{display:grid}.user-row{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.user-row:first-child{border-top:0}.user-avatar{width:44px;height:44px;border-radius:14px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:900}.user-row div{display:grid}.user-row small,.support-copy{color:var(--muted)}.support-copy{font-size:14px;line-height:1.55;margin-bottom:0}@media(max-width:1100px){.setup-shell{grid-template-columns:1fr}.setup-intro{min-height:38vh;padding:32px}.setup-intro h1{font-size:50px}.setup-intro p{font-size:18px}.setup-steps{display:none}.setup-form-panel{padding:24px}}@media(max-width:680px){.setup-intro{min-height:31vh;padding:24px}.setup-intro h1{font-size:39px;letter-spacing:-2px}.setup-intro p{font-size:16px}.setup-form-panel{padding:12px}.setup-card{padding:22px;border-radius:23px}.setup-card h2{font-size:33px}.user-row{grid-template-columns:auto 1fr}.user-row>.status-pill{display:none}}
.metric-xl{font-size:clamp(36px,3.8vw,58px);letter-spacing:-2px;white-space:nowrap}
.sync-progress{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 20px;margin:-8px 0 24px;box-shadow:var(--shadow)}.sync-progress.error{border-color:#e8b7b3;background:var(--danger-bg)}.sync-progress-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.sync-progress-head span{color:var(--muted);font-weight:750}.sync-progress-track{height:8px;background:#e5e9e5;border-radius:999px;overflow:hidden;margin:13px 0 9px}.sync-progress-track span{display:block;height:100%;width:0;background:var(--accent);border-radius:inherit;transition:width .2s ease}.sync-progress p{margin:0;color:var(--muted);font-size:14px}

.action-menu-wrap{position:relative}.action-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:30;min-width:260px;background:white;border:1px solid var(--line);border-radius:16px;padding:8px;box-shadow:var(--shadow)}.action-menu a,.action-menu button{display:flex;width:100%;border:0;background:none;padding:12px 14px;border-radius:10px;color:var(--text);font:inherit;text-align:left;cursor:pointer;text-decoration:none}.action-menu a:hover,.action-menu button:hover{background:var(--surface-2)}.action-menu hr{border:0;border-top:1px solid var(--line);margin:6px}.prompt-panel{margin-bottom:22px}.prompt-panel pre,.version-list pre{white-space:pre-wrap;max-height:300px;overflow:auto;background:var(--dark);color:#dce7e2;border-radius:14px;padding:16px;font-size:12px}.source-badge{font-style:normal;font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:3px 7px;border-radius:999px;margin-left:6px}.source-badge.ai{background:#edf1ff;color:#4057a5}.source-badge.manual{background:#fff0d8;color:#8b5c11}.version-list details{border-top:1px solid var(--line);padding:12px 0}.version-list summary{display:flex;justify-content:space-between;cursor:pointer}.version-list p{font-size:13px;color:var(--muted)}.confirm-dialog{border:0;border-radius:24px;padding:0;max-width:560px;width:calc(100% - 32px);box-shadow:0 30px 90px rgba(0,0,0,.25)}.confirm-dialog::backdrop{background:rgba(8,15,13,.55)}.confirm-dialog form{padding:28px;display:grid;gap:18px}.confirm-dialog h2{font-size:30px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.button.danger{background:#a7352d;color:white}.danger-text{color:#a7352d!important}

.ignored-documents{margin-top:28px;padding:24px}.ignored-list>div{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.ignored-list>div:first-child{border-top:0}.ignored-list>div>div{display:grid}.ignored-list small{color:var(--muted)}
.document-category-nav{display:flex;gap:8px;overflow-x:auto;margin:18px 0 10px;padding-bottom:4px}.document-category-nav a{white-space:nowrap;padding:12px 16px;border-radius:14px;background:var(--surface,#fff);color:inherit;text-decoration:none;font-weight:700;border:1px solid rgba(20,35,30,.08)}.document-category-nav a.active{background:#14231e;color:#fff}.document-category{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#748079;margin-top:12px}.linked-document-list{display:grid;gap:10px}.linked-document-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid rgba(20,35,30,.09);border-radius:16px}.linked-document-row a{display:flex;flex-direction:column;color:inherit;text-decoration:none}.linked-document-row small{color:#748079;margin-top:4px}.button.danger{background:#9b2f2f;color:#fff}.button.danger-ghost{color:#9b2f2f;background:#fff4f3}.danger-card{border-top:4px solid #9b2f2f}.icon-button.small{width:34px;height:34px}

.document-filter-panel{padding:22px;margin:20px 0}.document-filter-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:14px;align-items:end}.document-filter-grid .filter-search{grid-column:span 2}.filter-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}@media(max-width:1000px){.document-filter-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.document-filter-grid{grid-template-columns:1fr}.document-filter-grid .filter-search{grid-column:auto}.filter-actions{display:grid;grid-template-columns:1fr 1fr}.filter-actions .button{width:100%}}

.financing-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 18px}.financing-summary-grid .card{padding:18px}.financing-summary-grid span,.financing-summary-grid small{display:block;color:var(--muted)}.financing-summary-grid strong{display:block;font-size:24px;margin:8px 0 5px}@media(max-width:1000px){.financing-summary-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.financing-summary-grid{grid-template-columns:1fr}}
.context-note{padding:16px 18px;margin-bottom:16px;border-radius:16px;background:var(--accent-soft);color:var(--accent)}.timeline-filter{display:flex;align-items:end;gap:14px;padding:18px;margin-bottom:18px;flex-wrap:wrap}.timeline-filter label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}.timeline-filter input,.timeline-filter select{min-height:44px;border:1px solid var(--line);border-radius:11px;background:white;padding:8px 11px;color:var(--ink)}.chart-point{fill:var(--accent);stroke:white;stroke-width:2;opacity:.18;cursor:pointer;transition:.15s}.chart-point:hover,.chart-point.active{opacity:1;r:6}.chart-detail{margin-top:12px;padding:15px;border-radius:14px;background:var(--surface-2);display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.chart-detail span,.chart-detail small{display:block;color:var(--muted)}.chart-detail ul{grid-column:1/-1;list-style:none;margin:0;padding:10px 0 0;border-top:1px solid var(--line)}.chart-detail li{display:flex;justify-content:space-between;gap:18px;padding:5px 0}@media(max-width:700px){.timeline-filter>*{width:100%}.chart-detail{grid-template-columns:1fr}.chart-detail ul{grid-column:auto}}
.finance-overview{padding:26px;margin-bottom:18px}.overview-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:22px}.overview-head h2{margin:2px 0 0}.overview-head small{color:var(--muted)}.maturity-bars{display:grid;gap:14px}.maturity-row{display:grid;grid-template-columns:155px 1fr;gap:14px;align-items:stretch}.maturity-label{display:flex;flex-direction:column;justify-content:center;color:var(--ink)}.maturity-label span{font-size:12px;color:var(--muted);margin-top:3px}.maturity-track{display:flex;min-height:70px;background:var(--surface-2);border-radius:10px;overflow:hidden}.maturity-segment{min-width:4px;padding:12px 10px;color:#17211e;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;transition:.16s}.maturity-segment:hover{filter:brightness(.96);box-shadow:inset 0 0 0 2px rgba(20,32,29,.16)}.maturity-segment span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.maturity-segment strong{font-size:12px;white-space:nowrap}.segment-equity,.segment-cost-0{background:#c8c6c3}.segment-loan,.segment-cost-1{background:#aebdbc}.segment-mortgage,.segment-construction_credit,.segment-cost-2{background:#f2dfa5}.segment-subsidy,.segment-cost-3{background:#cbd9c8}.segment-cost-4{background:#d9c8b9}.segment-cost-5{background:#c8cfda}.empty-bar{padding:23px;color:var(--muted)}.booking-filters{padding:16px;display:grid;grid-template-columns:minmax(280px,2fr) 1fr 1fr auto;gap:12px;align-items:end;margin-bottom:14px}.booking-filters label{display:grid;gap:5px}.booking-filters label>span{font-size:12px;color:var(--muted);font-weight:750}.booking-filters input,.booking-filters select{min-height:44px;border:1px solid var(--line);border-radius:11px;padding:8px 10px;background:white}.booking-table-wrap{overflow:auto}.booking-table{width:100%;border-collapse:collapse;min-width:980px}.booking-table th,.booking-table td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.booking-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-2)}.booking-table td small{display:block;color:var(--muted);margin-top:3px}.booking-table .number{text-align:right;white-space:nowrap}.row-actions{display:flex;justify-content:flex-end;gap:7px}.row-actions form{margin:0}.button.mini{padding:7px 9px;min-height:34px;border-radius:9px;font-size:12px}.danger-button{background:var(--danger-bg);color:var(--danger);border-color:transparent}@media(max-width:800px){.maturity-row{grid-template-columns:1fr}.maturity-label{flex-direction:row;justify-content:space-between}.maturity-track{min-height:58px}.booking-filters{grid-template-columns:1fr}}
.cost-maturity-overview{margin:30px 0 0}.cost-maturity-overview .maturity-row{grid-template-columns:190px minmax(0,1fr)}.cost-maturity-overview .maturity-track{min-height:64px}.cost-maturity-overview .maturity-label{border-radius:10px;padding:0 8px}.cost-maturity-overview .maturity-label:hover{background:var(--surface-2)}.cost-maturity-overview .maturity-segment{padding:11px 12px}.cost-maturity-overview+.content-section{margin-top:46px}@media(max-width:800px){.cost-maturity-overview{padding:21px}.cost-maturity-overview .overview-head{display:grid}.cost-maturity-overview .maturity-row{grid-template-columns:1fr}.cost-maturity-overview .maturity-label{padding:4px 0}.cost-maturity-overview .maturity-track{min-height:58px}}
.cost-kpis{grid-template-columns:repeat(7,minmax(0,1fr))}.cost-kpis .financed{background:var(--accent-soft)}@media(max-width:1400px){.cost-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}@media@media(max-width:680px){.cost-kpis{display:flex}}
.nav-icon{display:grid;place-items:center;flex:0 0 25px}.nav-icon svg,.pillar-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.compact-heading{margin-bottom:20px}.focused-form{padding:28px;max-width:1050px}.focused-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 22px}.focused-form .form-actions{border-top:1px solid var(--line);margin-top:26px;padding-top:20px;justify-content:flex-end}.form-field{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:7px;min-width:0}.form-field>span{font-weight:750;line-height:1.3}.form-field small,.field-help{color:var(--muted);line-height:1.45}.form-control{width:100%}.card>span:first-child,.kpi-card>span:first-child{line-height:1.3}.financing-summary-grid .card,.kpi-card,.detail-kpi{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start}.financing-summary-grid .card>* ,.kpi-card>* ,.detail-kpi>*{width:100%}

.tax-report{max-width:1440px;margin:0 auto}.report-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}.report-toolbar .back-link{margin:0}.report-filter{display:flex;align-items:flex-end;gap:10px;padding:12px}.report-filter label{display:grid;gap:5px;font-size:12px;font-weight:750}.report-filter .form-control{min-height:46px}.report-cover{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding:18px 0 30px;border-bottom:2px solid var(--ink)}.report-cover h1{max-width:900px;margin:8px 0 10px;font-size:52px}.report-cover p{font-size:20px;color:var(--muted);margin:0}.report-meta{display:grid;justify-items:end;text-align:right;gap:5px;min-width:260px}.report-meta span{color:var(--muted)}.report-meta strong{font-size:20px}.report-purpose{padding:24px;margin-top:24px}.report-purpose h2{font-size:25px;margin:7px 0}.report-purpose p{color:var(--muted);max-width:1100px;margin:0;line-height:1.6}.report-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px}.report-stats .card{padding:19px}.report-stats span,.report-stats small{display:block;color:var(--muted)}.report-stats strong{display:block;font-size:27px;margin:8px 0 5px}.report-section{margin-top:42px}.report-table-wrap{overflow:hidden}.report-table{width:100%;border-collapse:collapse}.report-table th{padding:13px 16px;background:var(--surface-2);color:var(--muted);font-size:11px;text-align:left;text-transform:uppercase;letter-spacing:.04em}.report-table td{padding:13px 16px;border-top:1px solid var(--line);vertical-align:top}.report-table small{color:var(--muted)}.report-month-table th:not(:first-child),.report-month-table td:not(:first-child){text-align:center}.report-empty-month{color:#9aa39f;background:#fafbfa}.report-gap-note{display:flex;gap:22px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:14px}.report-timeline{overflow:hidden}.report-timeline-row{display:grid;grid-template-columns:105px minmax(0,1fr) 160px;gap:18px;padding:19px 22px;border-top:1px solid var(--line);align-items:start}.report-timeline-row:first-child{border-top:0}.report-timeline-row time{font-weight:750}.report-timeline-row h3{font-size:19px;margin:4px 0}.report-timeline-row p{color:var(--muted);margin:6px 0;line-height:1.5}.report-kind{color:var(--accent);font-size:11px;text-transform:uppercase;font-weight:850;letter-spacing:.04em}.report-subline{font-size:14px}.report-amount{text-align:right;white-space:nowrap}.report-evidence{margin-top:9px;font-size:13px;color:var(--muted)}.report-evidence a{color:var(--accent);font-weight:700}.report-legal{padding:24px}.report-legal p{line-height:1.6;color:var(--muted)}.report-sources{display:grid;gap:5px;margin-top:14px}.report-sources a{color:var(--accent);font-weight:700}.report-footer{display:flex;justify-content:space-between;gap:20px;margin-top:36px;padding:18px 0;border-top:1px solid var(--line);color:var(--muted);font-size:12px}@media(max-width:900px){.report-filter,.report-cover{display:grid}.report-cover h1{font-size:39px}.report-meta{justify-items:start;text-align:left}.report-stats{grid-template-columns:repeat(2,1fr)}.report-timeline-row{grid-template-columns:1fr}.report-amount{text-align:left}}@media(max-width:600px){.report-stats{grid-template-columns:1fr}.report-filter{width:100%}.report-table-wrap{overflow:auto}}
.report-bkp-group{overflow:hidden;margin-top:14px}.report-bkp-group>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:17px 21px;background:var(--surface-2);border-bottom:1px solid var(--line)}.report-bkp-group>header .bkp-code{width:48px;height:40px;border-radius:11px;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent);font-weight:850}.report-bkp-group>header h3{font-size:20px;margin:3px 0 0}.report-bkp-group>header>strong{color:var(--muted);font-size:13px}.tax-evidence-selector{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px;margin:18px 0}.tax-evidence-selector h2{font-size:23px;margin:5px 0}.tax-evidence-selector p{color:var(--muted);margin:0}@media(max-width:680px){.report-bkp-group>header{grid-template-columns:auto 1fr}.report-bkp-group>header>strong{grid-column:2}.tax-evidence-selector{display:grid}}

@media print{@page{size:A4 portrait;margin:14mm}.sidebar,.topbar,.toast-stack,.sidebar-backdrop,.report-screen-only{display:none!important}.app-shell{display:block;background:#fff}.workspace{display:block}.content{padding:0;max-width:none}.tax-report{max-width:none;color:#111}.card{box-shadow:none;border-color:#cfd4d1}.report-cover{padding-top:0}.report-cover h1{font-size:30pt}.report-purpose,.report-stats .card,.report-legal{break-inside:avoid}.report-section{margin-top:9mm}.report-page-break{break-before:page}.report-table th,.report-table td{padding:7px 9px;font-size:9pt}.report-timeline-row{grid-template-columns:24mm 1fr 30mm;gap:4mm;padding:9px 10px;break-inside:avoid}.report-timeline-row h3{font-size:11pt}.report-timeline-row p{font-size:9pt}.report-footer{font-size:8pt}.report-sources a:after{content:' (' attr(href) ')';font-weight:400}.report-timeline-row a,.report-table a{color:#111;text-decoration:none}}
.dashboard-welcome{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.dashboard-welcome p{color:var(--muted);font-size:18px;max-width:760px;margin:0}.project-score{text-align:right}.project-score span{display:block;color:var(--muted);font-size:13px;font-weight:750}.project-score strong{font-size:48px;line-height:1}.project-score small{font-size:18px;color:var(--muted)}.dashboard-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.dashboard-pillar{min-height:245px;border-radius:24px;padding:24px;display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);background:white;box-shadow:var(--shadow)}.dashboard-pillar.finance{background:#edf3f0}.dashboard-pillar.costs{background:#f5f1e8}.dashboard-pillar.liquidity{background:#eef2f4}.pillar-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,.72);color:var(--accent);margin-bottom:20px}.dashboard-pillar>span{font-size:13px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.dashboard-pillar>strong{font-size:clamp(28px,2.8vw,42px);letter-spacing:-1.4px;margin:8px 0 5px;line-height:1.1}.dashboard-pillar p{color:var(--muted);margin:0;line-height:1.45}.dashboard-pillar b{margin-top:auto;padding-top:18px;color:var(--accent);font-size:14px}.dashboard-overview-grid{display:grid;grid-template-columns:1.45fr .8fr;gap:16px;margin-top:16px}.dashboard-overview-grid>.card,.dashboard-work-grid>.card{padding:25px}.dashboard-work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.chart-line{stroke:#3f7063}.chart-line.secondary{stroke:#b59a5b}.chart-area{fill:rgba(63,112,99,.09)}.chart-point{fill:#3f7063}.chart-legend.bottom i.secondary{background:#b59a5b}@media(max-width:1050px){.dashboard-pillars,.dashboard-work-grid{grid-template-columns:1fr 1fr}.dashboard-overview-grid{grid-template-columns:1fr}}@media(max-width:680px){.focused-form-grid,.dashboard-pillars,.dashboard-work-grid{grid-template-columns:1fr}.focused-form{padding:20px}.dashboard-welcome{display:block}.project-score{display:none}.dashboard-pillar{min-height:215px}}
.booking-type-actions{display:flex;gap:8px;flex-wrap:wrap;margin:-10px 0 28px}.booking-type-actions a{padding:10px 15px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--accent);font-weight:750}.booking-type-actions a:hover{background:var(--accent-soft)}
.cost-heading-actions{align-items:center}.action-dropdown{position:relative}.action-dropdown>summary{align-items:center;cursor:pointer;display:inline-flex;gap:10px;justify-content:center;list-style:none}.action-dropdown>summary::-webkit-details-marker{display:none}.action-dropdown[open]>summary{background:var(--dark);color:#fff}.action-dropdown-menu{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 50px rgba(17,37,32,.18);display:grid;gap:4px;min-width:340px;padding:8px;position:absolute;right:0;top:calc(100% + 10px);z-index:50}.action-dropdown-menu>a,.action-dropdown-group>a{border-radius:12px;color:var(--ink);display:grid;gap:3px;padding:11px 12px;text-decoration:none}.action-dropdown-menu>a:hover,.action-dropdown-group>a:hover{background:var(--surface-2)}.action-dropdown-menu strong{font-size:.94rem}.action-dropdown-menu small{color:var(--muted);font-size:.78rem;line-height:1.35}.action-dropdown-group{border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;gap:2px;margin:4px 0;padding:7px 0}.action-dropdown-group>span{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.06em;padding:3px 12px 1px;text-transform:uppercase}@media(max-width:680px){.cost-heading-actions{align-items:stretch;width:100%}.cost-heading-actions form,.cost-heading-actions .toggle-control,.cost-heading-actions .action-dropdown,.cost-heading-actions .action-dropdown>summary{width:100%}.action-dropdown-menu{min-width:0;width:min(360px,calc(100vw - 32px))}}
.booking-filters.compact-filters{grid-template-columns:minmax(320px,2fr) minmax(180px,1fr) auto}.flow-direction.compact{width:auto;height:32px;padding:0 10px;border-radius:9px;display:inline-flex;white-space:nowrap}.liquidity-bookings td{vertical-align:middle}@media(max-width:800px){.booking-filters.compact-filters{grid-template-columns:1fr}}
.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.form-main{padding:28px}.form-sidebar{padding:24px;position:sticky;top:104px}.form-sidebar h2{font-size:25px;margin:7px 0 18px}.form-sidebar p{color:var(--muted);line-height:1.5}.plain-steps{padding-left:20px;display:grid;gap:14px;color:var(--muted);line-height:1.45}.plain-steps strong{color:var(--ink)}.form-main .form-section:first-child h2{margin-top:0}@media(max-width:1200px){.form-layout{grid-template-columns:1fr}.form-sidebar{position:static}}

/* v2.4: searchable BKP hierarchy and full document archive */
.document-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.document-overview{display:grid;grid-template-rows:auto auto 1fr;align-content:start;gap:10px;padding:24px 26px;text-decoration:none;color:inherit;min-height:176px;box-sizing:border-box;overflow:hidden}.document-overview span{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);line-height:1.25}.document-overview strong{display:block;font-size:38px;line-height:1;margin:0}.document-overview small{display:block;font-size:15px;line-height:1.45;color:var(--muted);align-self:start}.document-overview.reference{background:#edf5f2}.metadata-chips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.metadata-chips span{padding:7px 10px;border-radius:999px;background:var(--surface-soft);font-weight:700;font-size:13px}@media(max-width:1000px){.document-overview-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.document-overview-grid{grid-template-columns:1fr}.document-overview{padding:21px}}
.cost-group{border-top:1px solid var(--line)}.cost-group:first-of-type{border-top:0}.cost-group>summary{list-style:none;cursor:pointer;background:var(--surface-2);font-weight:800}.cost-group>summary::-webkit-details-marker{display:none}.cost-group .bkp-toggle{font-size:25px;transition:transform .18s}.cost-group[open] .bkp-toggle{transform:rotate(90deg)}.pdf-viewer-card,.reference-classification{padding:24px;margin-bottom:18px}.pdf-viewer-card iframe{width:100%;height:min(75vh,900px);border:1px solid var(--line);border-radius:16px;background:#f4f5f4}.reference-classification{display:flex;justify-content:space-between;align-items:center;gap:20px}.reference-classification form{display:flex;gap:10px;align-items:center}.analysis-progress{position:sticky;top:12px;z-index:20;background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px 20px;margin-bottom:18px;box-shadow:var(--shadow)}.analysis-progress div:first-child{display:flex;justify-content:space-between;gap:12px}.analysis-progress-track{height:7px;background:var(--surface-2);border-radius:20px;overflow:hidden;margin-top:12px}.analysis-progress-track span{display:block;width:35%;height:100%;background:var(--accent);border-radius:20px;animation:analysis-progress 1.4s ease-in-out infinite}@keyframes analysis-progress{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}@media(max-width:680px){.reference-classification,.reference-classification form{display:grid}}

/* v2.13: scenario ranges, sortable ledgers and stable action columns */
.segment-pension{background:#c9b9d8}.owner-split-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 34px}.owner-split-grid .kpi-card{min-height:112px}.booking-table th a.sortable{display:block;color:inherit;white-space:nowrap}.booking-table td.row-actions{display:table-cell;white-space:nowrap;min-width:174px;text-align:right}.booking-table td.row-actions>a,.booking-table td.row-actions>form{display:inline-block;vertical-align:middle}.booking-table td.row-actions>form{margin-left:5px}.finance-bookings{min-width:1160px}.toggle-control{display:flex;align-items:center;gap:9px;min-height:44px;padding:0 13px;border:1px solid var(--line);border-radius:11px;background:white;font-size:13px;font-weight:750;white-space:nowrap}.toggle-control input{accent-color:var(--accent)}@media(max-width:800px){.owner-split-grid{grid-template-columns:1fr}.page-actions{align-items:stretch}.toggle-control{justify-content:center}}
.booking-filters.column-filters{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));align-items:end}.column-filters label{min-width:0}.column-filters input,.column-filters select{display:block;width:100%;min-width:0}.column-filters .wide-filter{grid-column:span 2}.column-filters .filter-submit{display:flex;align-items:end}.column-filters .filter-submit .button{width:100%;min-height:44px;white-space:nowrap}@media(max-width:800px){.column-filters .wide-filter{grid-column:span 1}}
.alert-card.info{background:var(--blue-bg);color:#294f6c}.chart-grid-line{stroke:#e1e6e2;stroke-width:1}.chart-y-label{font-size:11px;fill:#75807b}
.form-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding:20px 24px;border-color:#efd5d2;background:#fffafa}.form-danger-zone p{margin:4px 0 0;color:var(--muted)}.form-danger-zone form{margin:0;flex:0 0 auto}@media(max-width:680px){.form-danger-zone{align-items:stretch;display:grid}.form-danger-zone button{width:100%}}

/* v2.14.3: editable multi-BKP allocations */
.allocation-row>.allocation-identity{display:flex;align-items:center;gap:10px;min-width:220px;flex:1}.allocation-amount-form{display:flex;align-items:center;justify-content:flex-end;gap:8px}.allocation-amount-form input{width:145px;text-align:right}.allocation-summary{display:flex;justify-content:space-between;gap:16px;margin-top:12px;padding:13px 15px;border-radius:12px;background:var(--surface-2);font-size:13px}.allocation-summary.danger{background:#fdebea;color:var(--danger)}.allocation-summary.warning{background:#fff5df;color:#7a5711}.allocation-summary.positive{background:#e8f5ef;color:var(--positive)}@media(max-width:760px){.allocation-row{align-items:stretch;flex-wrap:wrap}.allocation-row>.allocation-identity{flex-basis:100%}.allocation-amount-form{flex:1}.allocation-amount-form input{width:100%}.allocation-summary{display:grid}}

/* v2.17: BKP-basiertes Offertenmanagement */
.quote-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.quote-kpi{padding:21px 23px;display:grid;gap:7px;min-height:132px;align-content:start}.quote-kpi span,.quote-kpi small{color:var(--muted)}.quote-kpi span{font-size:13px}.quote-kpi strong{font-size:29px;line-height:1.08}.quote-kpi small{font-size:12px;line-height:1.4}.quote-kpi.accent{background:#edf5f2}.quote-search{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:10px;padding:16px;margin-bottom:14px}.quote-search label{display:grid;gap:5px}.quote-search label span{font-size:12px;color:var(--muted);font-weight:750}.quote-search input{min-height:46px;border:1px solid var(--line);border-radius:12px;padding:9px 13px;background:#fff}.quote-bkp-list{overflow:hidden}.quote-bkp-head,.quote-bkp-row{display:grid;grid-template-columns:minmax(250px,1.7fr) minmax(120px,.7fr) minmax(105px,.55fr) minmax(80px,.4fr) minmax(250px,1.3fr) 30px;gap:16px;align-items:center}.quote-bkp-head{padding:13px 18px;background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.quote-bkp-row{padding:17px 18px;border-top:1px solid var(--line);transition:.16s}.quote-bkp-row:hover,.quote-bkp-row.selected{background:#f3f7f5}.quote-bkp-name{display:flex;align-items:center;gap:12px;min-width:0}.quote-bkp-name>div{display:grid;min-width:0}.quote-bkp-name strong{overflow:hidden;text-overflow:ellipsis}.quote-bkp-name small,.quote-coverage-cell small{color:var(--muted);font-size:12px;margin-top:3px}.quote-number{white-space:nowrap}.quote-coverage-cell>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:13px}.quote-coverage-cell span{color:var(--muted)}.quote-progress{height:7px!important;margin-top:7px;background:#e7ebe8;border-radius:999px;overflow:hidden}.quote-progress i{display:block;height:100%;background:var(--accent);border-radius:999px}.quote-open{font-size:22px;color:var(--accent);text-align:right}.quote-unassigned{padding:23px 25px;margin-top:22px;display:flex;justify-content:space-between;align-items:center;gap:24px}.quote-unassigned h2{font-size:23px}.quote-unassigned p{margin:0;color:var(--muted)}.quote-detail-head{align-items:end}.quote-recommendation{padding:25px 27px;margin-bottom:18px;display:flex;justify-content:space-between;gap:28px;align-items:center;background:#f7f4eb}.quote-recommendation.has-result{background:#eef5f2}.quote-recommendation>div{max-width:980px}.quote-recommendation h3{font-size:22px}.quote-recommendation p,.quote-recommendation li{color:var(--muted)}.quote-recommendation ul{margin-bottom:0}.quote-package-stack{display:grid;gap:18px}.quote-package{overflow:hidden}.quote-package-head{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:23px 25px;border-bottom:1px solid var(--line)}.quote-package-head h3{font-size:25px;margin:0}.quote-package-head p{color:var(--muted);margin:5px 0 0}.quote-package-value{text-align:right;display:grid}.quote-package-value span{color:var(--muted);font-size:12px}.quote-package-value strong{font-size:23px;white-space:nowrap}.quote-comparison-head,.quote-comparison-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(300px,1.55fr) minmax(125px,.6fr) minmax(230px,1.05fr);gap:20px}.quote-comparison-head{padding:12px 25px;background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.quote-comparison-row{padding:22px 25px;border-top:1px solid var(--line);align-items:start}.quote-comparison-row.recommended{background:#f0f7f3;box-shadow:inset 4px 0 var(--positive)}.quote-comparison-row.archived{background:#fafafa}.quote-comparison-row.archived>*{opacity:.7}.quote-identity,.quote-price,.quote-decision{display:grid;gap:5px}.quote-status-line{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:5px}.status-pill.ai-choice{background:#e8eefc;color:#405b9e}.quote-identity>span,.quote-identity small,.quote-price small{color:var(--muted)}.quote-scope p{margin:0;color:#44504b;line-height:1.55}.quote-scope details{margin-top:10px;color:var(--muted);font-size:13px}.quote-scope summary{cursor:pointer;color:var(--accent);font-weight:750}.quote-scope ul{margin:5px 0 10px;padding-left:18px}.quote-price strong{font-size:20px;white-space:nowrap}.quote-ai-score{padding:11px 12px;background:rgba(255,255,255,.65);border:1px solid var(--line);border-radius:12px}.quote-ai-score>strong{color:var(--accent)}.quote-ai-score p{font-size:13px;line-height:1.45;margin:5px 0}.quote-ai-score small{color:var(--muted)}.quote-row-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px}.quote-row-actions form{margin:0}@media(max-width:1150px){.quote-kpis{grid-template-columns:repeat(2,1fr)}.quote-bkp-head{display:none}.quote-bkp-row{grid-template-columns:minmax(240px,1.4fr) repeat(3,minmax(90px,.5fr)) minmax(220px,1fr) 25px}.quote-comparison-head{display:none}.quote-comparison-row{grid-template-columns:1fr 1.4fr}.quote-price,.quote-decision{border-top:1px solid var(--line);padding-top:13px}}@media(max-width:720px){.quote-kpis{display:flex;overflow:auto;margin-right:-14px;padding-right:14px}.quote-kpi{min-width:225px}.quote-search{grid-template-columns:1fr}.quote-bkp-row{grid-template-columns:1fr 24px}.quote-bkp-row>:not(.quote-bkp-name):not(.quote-open){display:none}.quote-unassigned,.quote-recommendation,.quote-package-head{display:grid;align-items:start}.quote-package-value{text-align:left}.quote-comparison-row{grid-template-columns:1fr}.quote-price,.quote-decision{border-top:1px solid var(--line);padding-top:13px}}
/* Native iPad date controls otherwise ignore the shared field geometry. */
input[type="date"],
input[type="datetime-local"],
input[type="month"] {
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 50px;
  height: 50px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  line-height: 50px;
  -webkit-appearance: none;
  appearance: none;
}

input[type="date"]::-webkit-date-and-time-value,
input[type="datetime-local"]::-webkit-date-and-time-value,
input[type="month"]::-webkit-date-and-time-value {
  min-height: 1.4em;
  text-align: left;
}

@supports (-webkit-touch-callout: none) {
  input[type="date"],
  input[type="datetime-local"],
  input[type="month"] {
    padding-top: 0;
    padding-bottom: 0;
  }
}

.timeline-filter input[type="date"],
.timeline-filter input[type="datetime-local"],
.timeline-filter input[type="month"],
.booking-filters input[type="date"],
.booking-filters input[type="datetime-local"],
.booking-filters input[type="month"] {
  min-height: 44px;
  height: 44px;
  line-height: 44px;
}

.chart-point-hit {
  fill: transparent;
  stroke: transparent;
  cursor: pointer;
  touch-action: manipulation;
}

.chart-point-hit:focus {
  outline: none;
  stroke: color-mix(in srgb, var(--accent) 35%, transparent);
  stroke-width: 2;
}

.document-list-filters {
  display: grid;
  grid-template-columns: minmax(260px, 2fr) repeat(4, minmax(150px, 1fr));
  gap: 14px;
  align-items: end;
}

.document-list-filters .filter-search {
  grid-column: span 2;
}

.document-table {
  min-width: 1180px;
}

.document-table th:first-child,
.document-table td:first-child {
  width: 112px;
}

.document-title-cell {
  position: relative;
  min-width: 300px;
}

.document-preview-popover {
  position: absolute;
  z-index: 30;
  left: 14px;
  top: calc(100% - 4px);
  width: min(480px, 70vw);
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
  box-shadow: var(--shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: .15s ease;
  pointer-events: none;
}

.document-preview-popover span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.document-preview-popover p {
  margin: 6px 0 0;
  line-height: 1.5;
}

.document-row:hover .document-preview-popover,
.document-row:focus-within .document-preview-popover {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.yes-no {
  display: inline-flex;
  min-width: 42px;
  justify-content: center;
  padding: 5px 8px;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.yes-no.yes {
  background: var(--positive-bg);
  color: var(--positive);
}

.pdf-upload-zone {
  display: grid;
  gap: 9px;
  margin: 18px 0;
  padding: 24px;
  border: 1px dashed var(--accent);
  border-radius: 16px;
  background: var(--accent-soft);
}

.pdf-upload-zone > span {
  font-weight: 800;
}

.pdf-upload-zone small {
  color: var(--muted);
}

.pdf-dropzone {
  display: grid;
  width: 100%;
  min-height: 132px;
  place-items: center;
  gap: 10px;
  padding: 22px;
  border: 2px dashed var(--line-strong, #a8beb7);
  border-radius: 16px;
  background: var(--surface-2);
  color: var(--ink);
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.pdf-dropzone:hover,
.pdf-dropzone:focus-visible {
  border-color: var(--accent);
  background: var(--accent-soft);
  box-shadow: 0 0 0 3px rgba(12, 96, 77, .12);
  outline: none;
}

.pdf-dropzone.is-dragover {
  border-color: var(--accent);
  background: #e2f2ec;
  box-shadow: 0 0 0 4px rgba(12, 96, 77, .16);
  transform: translateY(-1px);
}

.pdf-dropzone.has-error {
  border-color: var(--danger, #c8473c);
  background: var(--danger-soft, #fff1ef);
}

.pdf-dropzone-input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.pdf-dropzone-prompt,
.pdf-dropzone-selection {
  width: 100%;
}

.pdf-dropzone-prompt {
  display: grid;
  place-items: center;
  gap: 6px;
  text-align: center;
}

.pdf-dropzone-prompt[hidden],
.pdf-dropzone-selection[hidden],
.pdf-dropzone-error[hidden] {
  display: none;
}

.pdf-dropzone-prompt small,
.pdf-dropzone-file-copy small {
  color: var(--muted);
}

.pdf-dropzone-icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 24px;
  font-weight: 800;
}

.pdf-dropzone-selection {
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
}

.pdf-dropzone-selection:not([hidden]) {
  display: grid;
}

.pdf-dropzone-file-icon {
  display: grid;
  min-width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 10px;
  background: var(--accent);
  color: white;
  font-size: 11px;
  font-weight: 900;
}

.pdf-dropzone-file-copy {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.pdf-dropzone-file-list {
  display: grid;
  gap: 6px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

.pdf-dropzone-file-list[hidden] {
  display: none;
}

.pdf-dropzone-file-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 7px 8px;
  border-radius: 9px;
  background: rgba(255, 255, 255, .72);
}

.pdf-dropzone-file-list li > span {
  display: grid;
  min-width: 0;
}

.pdf-dropzone-file-list strong {
  overflow: hidden;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pdf-dropzone-file-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pdf-dropzone-actions {
  display: flex;
  gap: 7px;
}

.pdf-dropzone-error {
  width: 100%;
  margin: 0;
  color: var(--danger, #b52f27);
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

@media (max-width: 620px) {
  .pdf-dropzone-selection:not([hidden]) {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .pdf-dropzone-actions {
    grid-column: 1 / -1;
    width: 100%;
  }
  .pdf-dropzone-actions .button {
    flex: 1;
  }
}

.pdf-inline-upload {
  display: grid;
  gap: 8px;
  padding: 18px;
  border: 1px dashed var(--line);
  border-radius: 14px;
  background: var(--surface-2);
}

.pdf-inline-upload > span {
  font-weight: 800;
}

.pdf-inline-upload em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 600;
}

.pdf-inline-upload small {
  color: var(--muted);
}

.risk-list-table {
  overflow: hidden;
}

.risk-list-header,
.risk-list-entry {
  display: grid;
  grid-template-columns: minmax(230px, 1.6fr) minmax(150px, 1fr) 110px repeat(3, minmax(120px, .8fr)) minmax(160px, auto);
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
}

.risk-list-header {
  background: var(--surface-2);
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.risk-list-entry {
  border-top: 1px solid var(--line);
}

.risk-list-entry small {
  display: block;
  color: var(--muted);
  margin-top: 3px;
}

@media (max-width: 1100px) {
  .risk-list-table {
    overflow-x: auto;
  }
  .risk-list-header,
  .risk-list-entry {
    min-width: 1050px;
  }
}

.document-status-form {
  width: min(260px, 100%);
  margin-top: 18px;
}

.document-status-form label {
  display: grid;
  gap: 6px;
}

.document-status-form label > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}

.pdf-frame-scroll {
  width: 100%;
  height: min(76vh, 920px);
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f4f5f4;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y pinch-zoom;
}

.pdf-viewer-card .pdf-frame-scroll iframe {
  display: block;
  width: 100%;
  min-width: 100%;
  height: 100%;
  min-height: min(76vh, 920px);
  border: 0;
  border-radius: 0;
  touch-action: pan-y pinch-zoom;
}

@media (max-width: 1100px) {
  .document-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .document-list-filters .filter-search {
    grid-column: span 2;
  }
}

@media (max-width: 680px) {
  .document-list-filters {
    grid-template-columns: 1fr;
  }
  .document-list-filters .filter-search {
    grid-column: auto;
  }
  .pdf-viewer-card .section-head,
  .pdf-viewer-card .inline-actions {
    display: grid;
  }
}

/* Rechnungsdetail: URL-stabiler Tab-Pilot mit flachen, klaren Sektionen. */
.invoice-topbar-location,
.topbar-breadcrumb,
.topbar-back-link {
  display: flex;
  align-items: center;
  min-width: 0;
}

.invoice-topbar-location { gap: 12px; }
.topbar-breadcrumb { gap: 8px; }

.topbar-back-link {
  gap: 6px;
  min-height: 40px;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  color: var(--ink);
  font-size: 14px;
  font-weight: 650;
}

.topbar-back-link:hover,
.topbar-back-link:focus-visible {
  border-color: #8eb5a7;
  outline: 3px solid rgba(6, 76, 62, .18);
  outline-offset: 2px;
}

.invoice-tab-pilot {
  width: 100%;
  max-width: 1460px;
  min-width: 0;
  margin: 0 auto;
}

body:has(.invoice-header-actions) { --invoice-sticky-top: 95px; }
body:has(.invoice-tab-pilot) .content { overflow: visible; }

.invoice-summary-header {
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(620px, 1.28fr);
  gap: 42px;
  align-items: end;
  padding: 4px 2px 26px;
  border-bottom: 1px solid #cfd9d5;
}

.invoice-summary-identity { min-width: 0; }

.invoice-summary-identity h1 {
  margin: 7px 0 5px;
  font-size: clamp(30px, 3.1vw, 44px);
  line-height: 1.06;
  letter-spacing: -1.2px;
  overflow-wrap: anywhere;
}

.invoice-summary-identity p {
  margin: 0;
  color: var(--muted);
  font-size: 17px;
}

.invoice-summary-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px 24px;
  margin: 0;
}

.invoice-summary-facts > div,
.invoice-payment-summary > div,
.invoice-compact-metrics > div,
.invoice-metadata-grid > div {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.invoice-summary-facts dt,
.invoice-payment-summary dt,
.invoice-compact-metrics dt,
.invoice-metadata-grid dt {
  color: var(--muted);
  font-size: 13px;
  font-weight: 500;
}

.invoice-summary-facts dd,
.invoice-payment-summary dd,
.invoice-compact-metrics dd,
.invoice-metadata-grid dd {
  min-width: 0;
  margin: 0;
  color: var(--ink);
  font-weight: 650;
  overflow-wrap: anywhere;
}

.invoice-summary-facts .invoice-summary-amount dd {
  color: var(--dark);
  font-size: clamp(20px, 2vw, 28px);
  letter-spacing: -.5px;
}

.invoice-attention-strip {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 52px;
  margin-top: 16px;
  padding: 9px 14px;
  border: 1px solid var(--warning-border);
  border-radius: 10px;
  background: var(--warning-surface);
  color: var(--warning-ink);
}

.invoice-attention-strip.danger {
  border-color: var(--danger-border);
  background: var(--danger-surface);
  color: var(--danger-ink);
}

.invoice-attention-strip > span {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-weight: 800;
}

.invoice-attention-strip small { color: inherit; }

.invoice-tabs {
  position: sticky;
  top: var(--invoice-sticky-top, 82px);
  z-index: 24;
  display: flex;
  min-width: 0;
  margin: 22px 0 0;
  overflow-x: auto;
  border-bottom: 1px solid #bfcac6;
  background: rgba(243, 245, 242, .97);
  scrollbar-width: thin;
  overscroll-behavior-inline: contain;
}

.invoice-tabs a {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 8px;
  align-items: center;
  min-height: 54px;
  padding: 0 20px;
  border-bottom: 3px solid transparent;
  color: #52605b;
  font-weight: 600;
  white-space: nowrap;
}

.invoice-tabs a:hover { color: var(--accent); }

.invoice-tabs a.active {
  border-bottom-color: var(--accent);
  color: var(--accent);
  font-weight: 750;
}

.invoice-tabs a:focus-visible {
  border-radius: 8px 8px 0 0;
  outline: 3px solid rgba(6, 76, 62, .22);
  outline-offset: -4px;
}

.invoice-tab-indicator {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #b67716;
}

.invoice-tab-panel {
  padding: 28px 2px 8px;
  outline: none;
}

.invoice-tab-panel:focus-visible {
  border-radius: 8px;
  outline: 3px solid rgba(6, 76, 62, .18);
  outline-offset: 4px;
}

.invoice-panel-title {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 8px;
}

.invoice-panel-title h2,
.invoice-section-heading h3 {
  margin: 3px 0 0;
  color: var(--ink);
}

.invoice-panel-title h2 { font-size: 26px; }
.invoice-section-heading h3 { font-size: 19px; }

.invoice-overview-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr);
  column-gap: 42px;
}

.invoice-overview-layout > :first-child { grid-row: 1 / span 2; }

.invoice-flat-section {
  min-width: 0;
  padding: 25px 0;
  border-top: 1px solid #d6deda;
}

.invoice-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 17px;
}

.invoice-review-mark {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-size: 18px;
  font-weight: 800;
}

.invoice-finding-list,
.invoice-payment-list,
.invoice-schedule-list,
.invoice-allocation-list,
.invoice-link-list,
.invoice-history-list {
  display: grid;
}

.invoice-finding-row {
  display: grid;
  grid-template-columns: 5px minmax(0, 1fr);
  gap: 13px;
  padding: 13px 0;
}

.invoice-finding-row + .invoice-finding-row { border-top: 1px solid var(--line); }
.invoice-finding-row > span { border-radius: 999px; background: currentColor; }
.invoice-finding-row p { margin: 4px 0 0; color: var(--muted); line-height: 1.5; }
.invoice-status-copy { margin: 0; padding: 10px 0; color: var(--muted); }

.invoice-allocation-list > div,
.invoice-payment-row,
.invoice-schedule-row,
.invoice-link-list > a,
.invoice-history-list > div {
  min-width: 0;
  border-top: 1px solid var(--line);
}

.invoice-allocation-list > div {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 0;
}

.invoice-allocation-list > div > span { display: flex; gap: 9px; min-width: 0; }
.invoice-allocation-summary { margin: 12px 0 0; font-size: 14px; font-weight: 650; }

.invoice-compact-metrics,
.invoice-payment-summary,
.invoice-metadata-grid {
  display: grid;
  margin: 0;
}

.invoice-compact-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.invoice-compact-metrics dd { font-size: 18px; }

.invoice-next-action {
  margin: 20px 0 0;
  padding: 13px 15px;
  border-left: 3px solid var(--accent);
  background: #f1f6f4;
}

.invoice-payment-summary {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  margin-top: 20px;
  border-block: 1px solid #cfd9d5;
}

.invoice-payment-summary > div { padding: 18px 20px; }
.invoice-payment-summary > div + div { border-left: 1px solid #d6deda; }
.invoice-payment-summary dd { font-size: 19px; }
.invoice-payment-summary dd small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 500; }

.invoice-payment-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 18px;
  align-items: center;
  min-height: 68px;
  padding: 11px 0;
}

.invoice-payment-row > div:first-child,
.invoice-schedule-row > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.invoice-payment-row small,
.invoice-schedule-row small,
.invoice-link-list small,
.invoice-history-list small { color: var(--muted); }

.invoice-schedule-section { margin-top: 5px; }
.invoice-schedule-row { background: transparent; }

.invoice-document-title { align-items: center; }
.invoice-document-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.invoice-primary-document:focus { scroll-margin-top: 155px; }

.invoice-wide-pdf {
  width: 100%;
  height: min(72vh, 900px);
  min-height: 560px;
  margin-top: 16px;
  border-color: #bfcac6;
  background: #e9edeb;
}

.invoice-scope-details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  padding: 0 2px;
  color: var(--accent);
  font-weight: 700;
  cursor: pointer;
}

.invoice-scope-details[open] > summary { border-bottom: 1px solid var(--line); }
.invoice-scope-details:not([open]) .when-open { display: none; }
.invoice-long-copy { max-width: 92ch; padding: 20px 2px 4px; line-height: 1.68; }
.invoice-content-note { max-width: 92ch; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.invoice-content-note p { margin-bottom: 0; line-height: 1.6; }

.invoice-link-list > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 66px;
  padding: 11px 2px;
  color: var(--ink);
}

.invoice-link-list > a:hover,
.invoice-link-list > a:focus-visible { color: var(--accent); outline: none; }
.invoice-link-list > a > span { display: grid; min-width: 0; gap: 3px; }
.invoice-link-list b { color: var(--accent); font-size: 13px; white-space: nowrap; }

.invoice-metadata-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }

.invoice-history-list > div {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr) auto;
  gap: 20px;
  align-items: start;
  padding: 13px 2px;
}

.invoice-history-list time { color: var(--muted); font-size: 13px; }
.invoice-history-list > div > span { display: grid; gap: 3px; }
.invoice-empty-copy { margin: 0; padding: 14px 0; color: var(--muted); }

@media (max-width: 1100px) {
  body:has(.invoice-header-actions) { --invoice-sticky-top: 135px; }
  .invoice-summary-header { grid-template-columns: 1fr; gap: 22px; }
  .invoice-overview-layout { grid-template-columns: 1fr; }
  .invoice-overview-layout > :first-child { grid-row: auto; }
  .invoice-payment-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .invoice-payment-summary > div:nth-child(4) { border-left: 0; }
  .invoice-payment-summary > div:nth-child(n + 4) { border-top: 1px solid #d6deda; }
}

@media (max-width: 680px) {
  body:has(.invoice-header-actions) { --invoice-sticky-top: 140px; }
  body:has(.invoice-header-actions .detail-more-actions) { --invoice-sticky-top: 198px; }
  .topbar-title h1:has(.invoice-topbar-location) { font-size: 15px; }
  .invoice-topbar-location { gap: 5px; }
  .topbar-back-link { min-height: 42px; padding-inline: 9px; }
  .topbar-back-label,
  .topbar-breadcrumb .topbar-location-link,
  .topbar-breadcrumb .topbar-location-separator { display: none; }

  .topbar .invoice-header-actions.header-detail-actions-desktop {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    max-width: none;
    overflow: visible;
  }

  .invoice-header-actions > :is(a, button, form, details),
  .invoice-header-actions > form > .button,
  .invoice-header-actions > details > summary {
    width: 100%;
    min-width: 0;
  }
  .invoice-header-actions .button { min-height: 46px; padding: 8px 7px; font-size: 12px; white-space: normal; }

  .invoice-summary-header { padding-bottom: 20px; }
  .invoice-summary-identity h1 { font-size: 31px; }
  .invoice-summary-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
  .invoice-summary-facts .invoice-summary-amount dd { font-size: 20px; }

  .invoice-attention-strip { grid-template-columns: 26px minmax(0, 1fr); }
  .invoice-attention-strip small { display: none; }

  .invoice-tabs { margin-inline: -14px; padding-inline: 14px; }
  .invoice-tabs a { min-height: 52px; padding-inline: 15px; }
  .invoice-tab-panel { padding-top: 22px; }
  .invoice-panel-title { align-items: flex-start; flex-direction: column; gap: 12px; }
  .invoice-flat-section { padding-block: 21px; }
  .invoice-section-heading { align-items: flex-start; }

  .invoice-payment-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .invoice-payment-summary > div { padding: 14px 12px; }
  .invoice-payment-summary > div:nth-child(3),
  .invoice-payment-summary > div:nth-child(5) { border-left: 0; }
  .invoice-payment-summary > div:nth-child(n + 3) { border-top: 1px solid #d6deda; }

  .invoice-payment-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .invoice-payment-row .payment-row-actions { grid-column: 1 / -1; }
  .invoice-schedule-row { grid-template-columns: 12px minmax(0, 1fr) auto; }
  .invoice-schedule-row > .text-button { grid-column: 2 / -1; justify-self: start; }

  .invoice-document-actions { width: 100%; justify-content: flex-start; }
  .invoice-document-actions .button { flex: 1 1 auto; min-height: 46px; }
  .invoice-primary-document .invoice-section-heading { flex-direction: column; }
  .invoice-wide-pdf { height: 68vh; min-height: 430px; }
  .invoice-metadata-grid { grid-template-columns: 1fr; gap: 16px; }
  .invoice-history-list > div { grid-template-columns: 1fr; gap: 5px; }
}

/* Einheitliche, lagefeste Listenaktionen */
.booking-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.booking-table > thead > tr > th.list-actions-heading,
.booking-table > tbody > tr > td.list-actions-cell {
  width: 230px;
  min-width: 230px;
  text-align: right;
}

.list-action-slots {
  display: grid;
  grid-template-columns: minmax(118px, 1fr) 38px 38px;
  align-items: center;
  justify-content: end;
  gap: 8px;
  min-height: 38px;
}

.list-action-slots > form {
  display: contents;
}

.list-action-slots .context-action {
  width: 100%;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  background: var(--accent-soft);
  border-color: #c9ddd4;
  color: var(--accent);
}

.list-icon-action {
  width: 38px;
  height: 38px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  color: var(--accent);
  cursor: pointer;
}

.list-icon-action .lucide {
  display: block;
  flex: 0 0 auto;
}

.list-icon-action.danger {
  color: var(--danger);
  border-color: #efc9c4;
}

.list-action-slots .is-disabled {
  opacity: 1;
  cursor: not-allowed;
  color: #98a39f;
  border-color: #dfe5e2;
  background: #f3f5f4;
}

.unified-filter-reset,
.document-filter-reset {
  background: var(--accent-soft) !important;
  border-color: #c9ddd4 !important;
  color: var(--accent) !important;
}

.booking-filters.unified-list-filters {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-flow: dense;
  gap: 16px;
}

.unified-list-filters > label {
  grid-column: span 2;
  min-width: 0;
}

.unified-list-filters > .filter-title,
.unified-list-filters > .filter-party,
.unified-list-filters > .filter-source {
  grid-column: span 4;
}

.unified-filter-actions {
  grid-column: span 4;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  min-width: 0;
}

.unified-filter-actions > .button {
  width: 100%;
  min-width: 0;
}

.booking-table .status-pill,
.booking-table select.status-select {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
}

@media (max-width: 1100px) {
  .booking-filters.unified-list-filters {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }

  .booking-table {
    min-width: 1060px;
  }
}

@media (max-width: 760px) {
  .booking-filters.unified-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .unified-list-filters > label {
    grid-column: span 1;
  }
  .unified-list-filters > .filter-title,
  .unified-list-filters > .filter-party,
  .unified-list-filters > .filter-source,
  .unified-filter-actions {
    grid-column: span 2;
  }
}

.risk-list-header,
.risk-list-entry {
  grid-template-columns: minmax(220px, 1.4fr) minmax(150px, .9fr) 120px 120px 130px 135px 230px;
}

.quote-row-actions .list-action-slots,
.decision-list-actions .list-action-slots {
  min-width: 220px;
}

.decision-card {
  grid-template-columns: 76px minmax(0, 1fr) 230px;
  align-items: center;
}

.decision-list-actions {
  justify-self: end;
}

/* Consolidated from static/css/theme-v2.css; source order preserved. */
/*
 * Bauherren Cockpit – ruhiges, flaches Designsystem nach dem Finanzplanungs-Mockup.
 * Diese Datei liegt bewusst hinter app.css und verändert nur die Darstellung.
 */
:root {
  --bg: #f8faf9;
  --surface: #ffffff;
  --surface-2: #f4f7f5;
  --ink: #17231f;
  --muted: #68736f;
  --line: #d9dfdc;
  --dark: #064c3e;
  --dark-2: #073f36;
  --accent: #075445;
  --accent-soft: #e2eee9;
  --positive: #087257;
  --positive-bg: #e7f3ee;
  --warning: #95631a;
  --warning-bg: #fbf2df;
  --danger: #ad3e38;
  --danger-bg: #f9eae8;
  --blue: #116a91;
  --blue-bg: #e7f1f6;
  --shadow: 0 2px 8px rgba(15, 52, 43, 0.035);
  --radius: 8px;
  --radius-sm: 5px;
  --sidebar: 250px;
  --font-ui: "Avenir Next", Avenir, "Helvetica Neue", "Segoe UI", sans-serif;
}

/* v2.36.1: konsistente Dokumentprüfung, Dokumentliste und kompakte Szenarien */
.scenario-switch {
  border-color: #d8e3df;
  background: rgba(255, 255, 255, .7);
}

.scenario-button {
  min-height: 36px;
  padding: 6px 13px;
  border-color: #d8e3df;
  color: #49645d;
  font-size: 12px;
}

.scenario-button:hover {
  background: #eef6f3;
  color: #174f43;
}

.scenario-button.active {
  background: #dceee7;
  color: #0b5648;
}

.quote-kpis {
  align-items: stretch;
  gap: 16px;
}

.quote-kpi {
  min-height: 150px;
  padding: 25px 28px;
  align-content: start;
  gap: 10px;
}

.quote-kpi span {
  font-size: 15px;
  line-height: 1.35;
}

.quote-kpi strong {
  display: flex;
  align-items: baseline;
  min-height: 40px;
  font-size: 34px;
  font-weight: 590;
  line-height: 1.08;
}

.quote-kpi .money-display .money-number {
  font-size: inherit;
  font-weight: inherit;
}

.quote-kpi .money-display small {
  margin-left: 7px;
  font-size: 10px;
  font-weight: 400;
}

.quote-kpi small {
  font-size: 14px;
  line-height: 1.45;
}

.document-filter-panel {
  padding: 22px;
}

.document-list-filters {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: end;
  gap: 16px;
}

.document-list-filters .form-field {
  display: grid;
  grid-template-rows: 22px 52px;
  align-content: end;
  gap: 7px;
  min-width: 0;
  margin: 0;
}

.document-list-filters .form-field > span:first-child {
  min-height: 22px;
}

.document-list-filters .filter-search {
  grid-column: span 6;
}

.document-list-filters .filter-search + .form-field,
.document-list-filters .document-type-filter {
  grid-column: span 3;
}

.document-list-filters .filter-party {
  grid-column: span 4;
}

.document-list-filters .filter-party + .form-field,
.document-list-filters .filter-party + .form-field + .form-field {
  grid-column: span 2;
}

.document-list-filters .filter-status {
  grid-column: span 4;
}

.document-list-filters .filter-bkp {
  grid-column: span 6;
}

.document-list-filters .filter-actions {
  grid-column: span 6;
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: 10px;
  min-height: 52px;
  margin: 0;
}

.document-list-filters .form-control,
.document-list-filters .button,
.document-list-filters .bkp-filter-controls {
  height: 52px;
  min-height: 52px;
}

.document-list-filters .bkp-filter-controls {
  display: grid;
  grid-template-columns: minmax(170px, .8fr) minmax(280px, 1.2fr);
  gap: 10px;
}

.document-list-filters .filter-actions .button {
  min-width: 140px;
}

.document-table th.document-action-heading,
.document-table th.document-pdf-heading,
.document-table td.document-action-cell,
.document-table td.document-pdf-cell {
  width: 150px;
  text-align: right;
}

.document-table td.document-action-cell,
.document-table td.document-pdf-cell {
  overflow: visible;
}

.document-table .row-actions .button {
  min-width: 118px;
  justify-content: center;
}

.document-row-menu {
  display: inline-block;
  text-align: left;
}

.document-row-menu .action-menu {
  top: calc(100% + 6px);
  right: 0;
  min-width: 220px;
}

.document-row-menu .action-menu form {
  margin: 0;
}

.document-table-wrap {
  overflow-x: auto;
  overflow-y: visible;
}

@media (max-width: 1180px) {

  .document-list-filters .filter-search {
    grid-column: span 6;
  }

  .document-list-filters .filter-search + .form-field,
  .document-list-filters .document-type-filter {
    grid-column: span 3;
  }

  .document-list-filters .filter-party,
  .document-list-filters .filter-status,
  .document-list-filters .filter-bkp,
  .document-list-filters .filter-actions {
    grid-column: span 6;
  }

  .document-list-filters .filter-party + .form-field,
  .document-list-filters .filter-party + .form-field + .form-field {
    grid-column: span 3;
  }
}

/* Offertenvergleich 2.40.6: gewichtete Detailauswertung. */
.quote-compare-head {
  margin: 0 0 22px;
}

.quote-compare-head .back-link {
  display: inline-flex;
  margin-bottom: 24px;
}

.quote-compare-title {
  display: grid;
  grid-template-columns: minmax(360px, .8fr) minmax(360px, 1.2fr);
  align-items: end;
  gap: 48px;
}

.quote-compare-head h1 {
  margin: 7px 0 0;
  font-size: clamp(2.35rem, 4vw, 3.8rem);
  line-height: 1;
  letter-spacing: -.045em;
}

.quote-compare-title > p {
  max-width: 690px;
  margin: 0;
  color: var(--text-muted);
  font-size: 1rem;
  line-height: 1.5;
}

.quote-compare-stale {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.quote-compare-stale strong {
  color: var(--brand);
}

.quote-compare-stale span {
  color: var(--text-muted);
}

.quote-compare-processing {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px;
  margin-bottom: 22px;
  padding: 26px 30px;
}

.quote-compare-processing-copy {
  min-width: 0;
}

.quote-compare-processing h2 {
  margin: 5px 0 6px;
  font-size: 1.55rem;
}

.quote-compare-processing p {
  max-width: 780px;
  margin: 0;
  color: var(--text-muted);
}

.quote-compare-processing-indicator {
  display: block;
  width: 180px;
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e6eeeb;
}

.quote-compare-processing-indicator i {
  display: block;
  width: 44%;
  height: 100%;
  border-radius: inherit;
  background: var(--brand);
  animation: quote-compare-processing 1.4s ease-in-out infinite alternate;
}

@keyframes quote-compare-processing {
  from { transform: translateX(0); }
  to { transform: translateX(128%); }
}

.quote-compare-winner,
.quote-compare-no-winner {
  margin-bottom: 20px;
  padding: 26px 30px;
  border-color: #a8d6c8;
  background: linear-gradient(135deg, #edf8f4, #f8fbfa);
  box-shadow: inset 5px 0 #168366;
}

.quote-compare-winner-main {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto auto;
  align-items: center;
  gap: 28px;
}

.quote-compare-winner h2,
.quote-compare-no-winner h2 {
  margin: 5px 0 8px;
  font-size: clamp(1.55rem, 3vw, 2.3rem);
}

.quote-compare-winner p,
.quote-compare-no-winner p {
  margin: 5px 0;
}

.quote-compare-winner-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  color: var(--text-muted);
}

.quote-compare-winner-meta span {
  font-weight: 700;
}

.quote-compare-score {
  display: grid;
  min-width: 105px;
  text-align: right;
}

.quote-compare-score strong {
  color: var(--brand);
  font-size: 1.75rem;
  font-variant-numeric: tabular-nums;
}

.quote-compare-score span {
  color: var(--text-muted);
  font-size: .78rem;
}

.quote-compare-rationale {
  display: grid;
  grid-template-columns: minmax(150px, .25fr) minmax(0, 1fr);
  gap: 24px;
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #cfe4dd;
}

.quote-compare-rationale > strong {
  color: var(--brand);
}

.quote-compare-rationale p {
  max-width: 960px;
  color: #415b55;
  line-height: 1.5;
}

.quote-compare-winner small {
  display: block;
  margin-top: 14px;
  color: var(--text-muted);
}

.quote-compare-winner-action,
.quote-compare-winner-action form,
.quote-compare-award-block {
  flex: 0 0 auto;
  margin: 0;
}

.quote-compare-award-block {
  max-width: 340px;
}

.quote-compare-award-block p {
  margin-bottom: 12px;
  color: var(--danger);
}

.quote-compare-conditions {
  display: grid;
  grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr);
  gap: 28px;
  margin-bottom: 20px;
  padding: 24px 30px;
}

.quote-compare-conditions h2 {
  margin: 5px 0 0;
  font-size: 1.45rem;
}

.quote-compare-conditions ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 22px;
}

.quote-compare-matrix {
  margin-bottom: 20px;
  padding: 0;
  overflow: hidden;
}

.quote-compare-matrix > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  padding: 25px 30px 22px;
  border-bottom: 1px solid var(--line);
}

.quote-compare-matrix > header h2 {
  margin: 5px 0 0;
  font-size: 1.6rem;
}

.quote-compare-matrix > header p {
  max-width: 430px;
  margin: 0;
  color: var(--text-muted);
  text-align: right;
}

.quote-compare-scroll {
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.quote-compare-grid {
  display: grid;
  grid-template-columns:
    minmax(205px, .8fr)
    repeat(var(--quote-count), minmax(250px, 1fr));
  min-width: calc(205px + var(--quote-count) * 250px);
}

.quote-compare-grid > * {
  box-sizing: border-box;
  min-width: 0;
  padding: 20px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.quote-compare-corner,
.quote-compare-dimension,
.quote-compare-total-label {
  position: sticky;
  left: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  background: #f6f8f7;
  box-shadow: 1px 0 var(--line);
}

.quote-compare-corner span,
.quote-compare-dimension span,
.quote-compare-total-label span {
  color: var(--text-muted);
  font-size: .83rem;
}

.quote-compare-quote-head {
  display: grid;
  align-content: start;
  gap: 5px;
  min-height: 152px;
  background: #fff;
}

.quote-compare-quote-head.recommended,
.quote-compare-total.recommended {
  background: #edf8f4;
}

.quote-compare-quote-head .status-pill {
  justify-self: start;
  margin-bottom: 5px;
}

.quote-compare-quote-head > span:not(.status-pill) {
  color: var(--text-muted);
  font-size: .88rem;
}

.quote-compare-quote-head > b {
  margin-top: 7px;
  font-size: 1.2rem;
}

.quote-compare-quote-head > a {
  margin-top: 7px;
  color: var(--brand);
  font-weight: 700;
  font-size: .86rem;
}

.quote-compare-cell {
  min-height: 154px;
  background: #fff;
}

.quote-dimension-score {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #edf3f1;
  color: #31584f;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.quote-dimension-score.high {
  background: #e2f3ec;
  color: #147257;
}

.quote-dimension-score.low {
  background: #faeae7;
  color: #a44337;
}

.quote-compare-cell p {
  margin: 10px 0 0;
  color: #415b55;
  font-size: .9rem;
  line-height: 1.42;
}

.quote-compare-cell details {
  margin-top: 12px;
  color: var(--text-muted);
  font-size: .82rem;
}

.quote-compare-cell summary {
  color: var(--brand);
  cursor: pointer;
  font-weight: 700;
}

.quote-compare-cell ul {
  margin: 8px 0 0;
  padding-left: 18px;
}

.quote-compare-total-label,
.quote-compare-total {
  border-bottom: 0;
}

.quote-compare-total {
  display: grid;
  align-content: center;
  gap: 7px;
  min-height: 116px;
  background: #f8faf9;
}

.quote-compare-total strong {
  color: var(--brand);
  font-size: 1.75rem;
  font-variant-numeric: tabular-nums;
}

.quote-compare-total span {
  color: var(--text-muted);
  font-size: .88rem;
  line-height: 1.4;
}

.quote-compare-notes {
  display: grid;
  grid-template-columns: repeat(
    auto-fit,
    minmax(min(100%, 310px), 1fr)
  );
  gap: 18px;
}

.quote-compare-notes article {
  padding: 24px;
}

.quote-compare-notes article.recommended {
  border-color: #a8d6c8;
  box-shadow: inset 4px 0 #168366;
}

.quote-compare-notes h3 {
  margin: 6px 0 18px;
  font-size: 1.25rem;
}

.quote-compare-notes article > div + div {
  margin-top: 16px;
}

.quote-compare-notes ul {
  margin: 7px 0 0;
  padding-left: 20px;
  color: var(--text-muted);
}

.quote-compare-empty {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 40px;
  max-width: none;
  padding: 38px;
}

.quote-compare-empty > .eyebrow {
  grid-column: 1;
}

.quote-compare-empty h2 {
  grid-column: 1;
  margin: 7px 0 10px;
  font-size: 1.8rem;
}

.quote-compare-empty p {
  grid-column: 1;
  max-width: 680px;
  color: var(--text-muted);
}

.quote-compare-empty form,
.quote-compare-empty .button {
  grid-column: 2;
  grid-row: 1 / span 3;
  margin: 0;
}

@media (max-width: 760px) {
  .quote-compare-head .back-link {
    margin-bottom: 24px;
  }

  .quote-compare-title {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 12px;
  }

  .quote-compare-head h1 {
    font-size: 2.35rem;
  }

  .quote-compare-winner,
  .quote-compare-no-winner,
  .quote-compare-conditions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    padding: 22px;
  }

  .quote-compare-winner-main,
  .quote-compare-rationale {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 14px;
  }

  .quote-compare-score {
    text-align: left;
  }

  .quote-compare-winner-action,
  .quote-compare-winner-action form,
  .quote-compare-winner-action .button,
  .quote-compare-award-block .button {
    width: 100%;
  }

  .quote-compare-matrix > header {
    display: grid;
    align-items: start;
    padding: 22px;
  }

  .quote-compare-matrix > header p {
    text-align: left;
  }

  .quote-compare-grid {
    grid-template-columns:
      minmax(150px, .65fr)
      repeat(var(--quote-count), minmax(225px, 1fr));
    min-width: calc(150px + var(--quote-count) * 225px);
  }

  .quote-compare-grid > * {
    padding: 16px;
  }

  .quote-compare-empty {
    display: block;
    padding: 24px;
  }

  .quote-compare-empty form,
  .quote-compare-empty .button {
    width: 100%;
    margin-top: 14px;
  }

  .quote-compare-processing {
    grid-template-columns: 1fr;
    padding: 22px;
  }

  .quote-compare-processing-indicator {
    width: 100%;
  }
}

@media (max-width: 820px) {
  .scenario-button {
    min-height: 34px;
    padding: 5px 10px;
  }

  .document-list-filters .filter-search,
  .document-list-filters .filter-search + .form-field,
  .document-list-filters .document-type-filter,
  .document-list-filters .filter-party,
  .document-list-filters .filter-party + .form-field,
  .document-list-filters .filter-party + .form-field + .form-field,
  .document-list-filters .filter-status,
  .document-list-filters .filter-bkp,
  .document-list-filters .filter-actions {
    grid-column: span 12;
  }
}

@media (max-width: 560px) {

  .document-list-filters .bkp-filter-controls,
  .document-list-filters .filter-actions {
    grid-template-columns: 1fr;
  }

  .document-list-filters .filter-actions {
    display: grid;
  }

  .document-list-filters .filter-actions .button {
    width: 100%;
  }
}

html {
  background: var(--bg);
  font-family: var(--font-ui);
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: 1.48;
}

button,
input,
select,
textarea {
  font: inherit;
}

h1 {
  color: #004c3e;
  font-size: clamp(44px, 4.1vw, 68px);
  font-weight: 430;
  letter-spacing: -3.2px;
  line-height: 1.02;
  margin-bottom: 18px;
}

h2 {
  color: #10372f;
  font-size: 27px;
  font-weight: 650;
  letter-spacing: -0.7px;
}

h3 {
  color: #17362f;
  font-weight: 650;
}

.eyebrow {
  color: #147298;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.065em;
}

.app-shell {
  grid-template-columns: var(--sidebar) minmax(0, 1fr);
}

.sidebar {
  background:
    radial-gradient(circle at 22% 20%, rgba(20, 114, 94, 0.52), transparent 45%),
    linear-gradient(165deg, #075447 0%, #06483d 52%, #073c35 100%);
  border-right: 1px solid rgba(255, 255, 255, 0.13);
  padding: 25px 17px 22px;
}

.brand {
  gap: 12px;
  min-height: 58px;
  padding: 0 11px;
}

.brand-mark {
  background: transparent;
  border-radius: 50%;
  display: block;
  filter: drop-shadow(0 8px 18px rgba(0, 28, 23, 0.18));
  flex: 0 0 48px;
  height: 48px;
  object-fit: contain;
  width: 48px;
}

.brand > span:last-child {
  gap: 5px;
}

.brand strong {
  font-size: 17px;
  font-weight: 650;
  letter-spacing: -0.25px;
}

.brand small {
  color: rgba(255, 255, 255, 0.66);
  font-size: 13px;
}

.primary-nav {
  gap: 4px;
  margin-top: 38px;
}

.nav-item {
  border-radius: 6px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 15px;
  font-weight: 450;
  min-height: 50px;
  padding: 12px 14px;
  position: relative;
}

.nav-item:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.nav-item.active {
  background: rgba(255, 255, 255, 0.16);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  color: #fff;
}

.nav-item.active::before {
  background: #83ded3;
  border-radius: 4px;
  content: "";
  height: calc(100% - 8px);
  left: -5px;
  position: absolute;
  top: 4px;
  width: 4px;
}

.nav-icon {
  color: rgba(255, 255, 255, 0.82);
  width: 25px;
}

.nav-icon svg,
.pillar-icon svg {
  stroke-width: 1.45;
}

.sidebar-footer {
  gap: 15px;
}

.project-mini {
  border-color: rgba(255, 255, 255, 0.19);
  padding: 17px 10px;
}

.project-mini small,
.account-link small {
  color: rgba(255, 255, 255, 0.55);
}

.project-dot {
  background: #73d6ac;
  box-shadow: 0 0 0 3px rgba(115, 214, 172, 0.17);
}

.account-link {
  color: rgba(255, 255, 255, 0.88);
  font-size: 14px;
  padding: 8px 10px;
}

.workspace {
  background:
    radial-gradient(circle at 82% 12%, rgba(210, 231, 239, 0.38), transparent 30%),
    linear-gradient(180deg, #fafbfa 0%, #f8faf9 100%);
}

.topbar {
  background: rgba(250, 251, 250, 0.92);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--line);
  height: 95px;
  padding: 0 38px;
}

.topbar-project {
  color: #13729a;
  font-size: 14px;
}

.topbar-title h1 {
  color: #073f36;
  font-size: 22px;
  font-weight: 560;
  letter-spacing: -0.45px;
  line-height: 1.15;
  margin: 1px 0 0;
}

.topbar-title {
  flex: 0 0 auto;
}

.topbar-actions {
  min-width: 0;
}

.header-page-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.header-page-actions form {
  margin: 0;
}

.header-page-actions .button,
.header-page-actions .toggle-control {
  min-height: 44px;
  white-space: nowrap;
}

.header-project-score {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 5px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.72);
  white-space: nowrap;
}

.header-project-score > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
}

.header-project-score strong {
  color: var(--ink);
  font-size: 23px;
  font-weight: 560;
  line-height: 1;
}

.header-project-score small {
  margin-left: 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
}

.scenario-switch {
  background: transparent;
  border: 1px solid #cfd6d2;
  border-radius: 5px;
  overflow: hidden;
  padding: 0;
}

.scenario-button {
  border-left: 1px solid #cfd6d2;
  border-radius: 0;
  color: #24463e;
  font-size: 13px;
  font-weight: 500;
  min-height: 42px;
  padding: 9px 17px;
}

.scenario-button:first-child {
  border-left: 0;
}

.scenario-button.active {
  background: #2f7567;
  box-shadow: none;
  color: #fff;
}

.icon-button {
  background: rgba(255, 255, 255, 0.75);
  border-color: #cfd6d2;
  border-radius: 5px;
  color: var(--accent);
  height: 43px;
  width: 43px;
}

.icon-button svg {
  fill: none;
  height: 20px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 20px;
}

.notification-popover,
.action-dropdown-menu {
  border-radius: 8px;
  box-shadow: 0 16px 38px rgba(6, 55, 45, 0.14);
}

.content {
  max-width: 1580px;
  padding: 35px 40px 68px;
}

.page-heading,
.detail-heading {
  align-items: flex-end;
  margin-bottom: 30px;
}

.page-heading p,
.detail-heading p,
.form-page-heading p {
  color: #56615d;
  font-size: 16px;
  line-height: 1.62;
}

.page-actions,
.inline-actions {
  gap: 9px;
}

.pending-upload-state {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pending-upload-state form {
  margin: 0;
}

@media (max-width: 700px) {
  .ignored-list > div {
    align-items: flex-start;
    flex-direction: column;
  }

  .pending-upload-state {
    align-items: flex-start;
  }
}

.card {
  border-color: var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.button {
  border-radius: 5px;
  font-size: 14px;
  font-weight: 500;
  min-height: 46px;
  padding: 11px 17px;
  white-space: nowrap;
}

.button:hover {
  box-shadow: 0 4px 12px rgba(6, 76, 62, 0.08);
  transform: translateY(-1px);
}

.button.primary {
  background: var(--accent);
}

.button.secondary {
  background: rgba(255, 255, 255, 0.82);
}

.button.subtle {
  background: var(--accent-soft);
}

.button.mini {
  border-radius: 4px;
}

.back-link,
.text-button,
.card-link {
  color: var(--accent);
}

.back-link {
  align-items: center;
  gap: 7px;
}

.kpi-strip {
  gap: 12px;
}

.kpi-card,
.detail-kpi,
.financing-summary-grid .card {
  border-radius: 7px;
  padding: 18px 20px;
}

.kpi-card:hover {
  box-shadow: 0 4px 12px rgba(6, 76, 62, 0.055);
}

.kpi-card strong {
  color: #18312b;
  font-size: 23px;
  font-weight: 600;
  letter-spacing: -0.55px;
}

.kpi-card.emphasized {
  background: var(--accent);
}

.kpi-card.emphasized strong {
  color: #fff;
}

.status-pill {
  border-radius: 999px;
  font-size: 10px;
  padding: 5px 9px;
}

.alert-card {
  border-radius: 7px;
  box-shadow: none;
}

.alert-icon,
.flow-direction {
  border-radius: 5px;
}

.alert-icon .lucide {
  width: 20px;
  height: 20px;
}

.integration-icon .lucide {
  width: 21px;
  height: 21px;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="url"],
input[type="date"],
input[type="datetime-local"],
input[type="month"],
select,
textarea,
.form-control {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid #cfd7d3;
  border-radius: var(--ui-radius-control);
  color: var(--ink);
  font-weight: 400;
  min-height: 46px;
  outline: none;
}

option {
  font-weight: 400;
}

.field-help-collapsed {
  display: none !important;
}

.form-field > span,
.field-group > label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.field-info {
  position: relative;
  display: inline-grid;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #58716a;
  font: 500 11px/1 var(--font-body);
  cursor: help;
}

.field-info > span:first-child {
  display: inline-grid;
  width: 18px;
  height: 18px;
  place-items: center;
  transform: translateY(-.2px);
}

.field-info > span:first-child > .lucide {
  width: 18px;
  height: 18px;
  stroke-width: 1.5;
}

.field-info-popover {
  position: absolute;
  z-index: 80;
  top: calc(100% + 9px);
  left: 50%;
  display: none;
  width: min(290px, calc(100vw - 40px));
  padding: 10px 12px;
  transform: translateX(-50%);
  border: 1px solid #c8d5d1;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(15, 42, 34, .14);
  color: var(--ink);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.45;
  text-align: left;
  white-space: normal;
  pointer-events: none;
}

.field-info.is-open .field-info-popover {
  display: block;
}

.field-info:focus-visible {
  outline: 2px solid rgba(57, 135, 120, .28);
  outline-offset: 2px;
}

/*
 * Ruhige typografische Hierarchie:
 * Regular für Bedienung und Inhalte, Medium für Orientierung,
 * kräftigere Schnitte nur für Überschriften und zentrale Kennzahlen.
 */
.scenario-button,
.button,
.text-button,
.back-link,
.card-link,
.filter-pills a,
.section-tabs a,
.segmented-control a,
.booking-type-actions a,
.toggle-control,
.action-dropdown > summary {
  font-weight: 500;
}

.icon-button {
  font-weight: 400;
}

.form-field > span,
.booking-filters label > span,
.document-filter-panel label > span,
.quote-search label > span,
.report-filter label,
.login-card .form-field > span {
  font-weight: 500;
}

.status-pill,
.record-type,
.bkp-code,
.action-dropdown-group > span,
.document-overview span,
.cost-list-header,
.risk-list-header,
.quote-bkp-head,
.quote-comparison-head,
.booking-table th,
.document-table th,
.report-table th {
  font-weight: 600;
}

.action-dropdown-menu strong,
.cost-group > summary,
.booking-table tbody td strong,
.document-table tbody td strong,
.report-table tbody td strong,
.cost-row strong,
.risk-list-entry strong,
.quote-bkp-row strong,
.quote-comparison-row strong,
.metadata-chips span,
.schedule-row strong,
.payment-row strong,
.linked-document-row strong,
.metadata-list strong {
  font-weight: 500;
}

textarea {
  min-height: 118px;
}

input:focus,
select:focus,
textarea:focus,
.form-control:focus {
  border-color: #398778;
  box-shadow: 0 0 0 3px rgba(57, 135, 120, 0.11);
}

.toggle-control {
  border-radius: 5px;
}

.booking-filters,
.document-filter-panel,
.quote-search {
  border-radius: 7px;
  padding: 16px;
}

.booking-table-wrap,
.document-table-wrap,
.cost-list,
.quote-bkp-list,
.risk-list-table {
  border-radius: 7px;
}

.booking-table th,
.document-table th,
.report-table th,
.quote-bkp-head,
.cost-list-header,
.risk-list-header {
  background: var(--table-head-bg);
  color: var(--table-head-text);
}

main table > thead > tr > th,
.booking-table > thead > tr > th,
.document-table > thead > tr > th,
.report-table > thead > tr > th,
.cost-list-header,
.risk-list-header,
.quote-bkp-head,
.quote-comparison-head,
.quote-compare-head {
  background: var(--table-head-bg);
  color: var(--table-head-text);
  border-bottom: 1px solid var(--table-head-border);
  font-size: var(--table-head-size);
  font-weight: var(--table-head-weight);
  letter-spacing: var(--table-head-letter-spacing);
  text-transform: var(--table-head-transform);
}

.booking-table th,
.booking-table td {
  padding: 14px 15px;
}

.booking-table tbody tr:hover,
.document-table tbody tr:hover {
  background: #f5f9f7;
}

.cost-group > summary {
  background: #f8faf9;
}

.cost-group[open] > summary {
  background: #f2f7f4;
}

.bkp-code {
  background: #e4efea;
  border-radius: 5px;
  color: var(--accent);
}

/* BKP-Kostenübersicht: eine Geometrie fuer Hauptgruppen und Unterpositionen. */
.cost-list {
  overflow: hidden;
}

.cost-list-header,
.cost-row {
  display: grid;
  grid-template-columns: minmax(270px, 1fr) repeat(7, 104px);
  align-items: stretch;
  gap: 0;
  width: 100%;
}

.cost-list-header > span,
.cost-row > div {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 12px 7px;
}

.cost-list-header > span:first-child,
.cost-row > .cost-name {
  padding-inline: 14px 10px;
}

.cost-list-header > span:not(:first-child),
.cost-row > .cost-metric {
  justify-content: center;
  border-left: 1px solid #edf1ef;
  text-align: center;
}

.cost-list-header > span {
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.cost-list-header > span:not(:first-child) {
  text-align: center;
  overflow-wrap: normal;
  white-space: nowrap;
}

.cost-row {
  min-height: 72px;
  border-top: 1px solid var(--line);
}

.cost-group:first-of-type,
.cost-group:first-of-type > .cost-row {
  border-top: 0;
}

.cost-group > summary {
  list-style: none;
  cursor: pointer;
  background: #f5f8f6;
}

.cost-group > summary::-webkit-details-marker {
  display: none;
}

.cost-group[open] > summary {
  background: #edf4f0;
  box-shadow: inset 3px 0 var(--accent);
}

.cost-name {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.cost-name > div {
  min-width: 0;
}

.cost-name strong,
.cost-name small {
  display: block;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}

.cost-name small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 450;
}

.cost-child-row .cost-name {
  padding-left: 54px;
}

.bkp-toggle {
  display: grid;
  flex: 0 0 20px;
  place-items: center;
  transition: transform .18s ease;
}

.cost-group[open] .bkp-toggle {
  transform: rotate(90deg);
}

.bkp-code {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  width: auto;
  min-width: 40px;
  height: 30px;
  padding-inline: 7px;
  font-size: 12px;
  font-weight: 700;
}

.cost-row > .cost-metric,
.cost-row > .cost-metric strong {
  white-space: nowrap;
  font-variant-numeric: tabular-nums lining-nums;
}

.cost-row > .cost-metric strong {
  font-size: 13px;
  font-weight: 500;
}

.cost-row > .cost-metric--drilldown {
  position: relative;
  padding: 0;
}

.cost-metric-link {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 44px;
  padding: 12px 7px;
  border-radius: 8px;
  color: inherit;
  text-decoration: none;
  transition: background-color .16s ease, color .16s ease;
}

.cost-metric-link:hover,
.cost-metric-link:focus-visible {
  background: rgba(20, 107, 82, .09);
  color: var(--accent);
}

.cost-metric-link:focus-visible {
  outline: 3px solid rgba(20, 107, 82, .22);
  outline-offset: -3px;
}

.cost-name-link {
  color: inherit;
  text-decoration: none;
}

.cost-name-link:hover,
.cost-name-link:focus-visible {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.cost-row > .cost-variance,
.cost-row > .cost-variance strong {
  font-weight: 750;
}

.cost-variance-heading,
.cost-row > .cost-variance {
  border-left-color: #c9d4cf !important;
  background: rgba(20, 32, 29, .018);
}

.cost-variance--over { color: #a92f2b; }
.cost-row > .cost-variance--neutral,
.cost-row > .cost-variance--neutral strong {
  color: var(--ink);
  font-weight: 500;
}
.cost-variance--under { color: #2d684f; }

@container (min-width: 850px) and (max-width: 1189px) {
  .cost-list-header,
  .cost-row {
    grid-template-columns: minmax(216px, 1fr) repeat(6, 92px) 94px;
  }

  .cost-list-header > span,
  .cost-row > div {
    padding-inline: 5px;
  }

  .cost-list-header > span:first-child,
  .cost-row > .cost-name {
    padding-inline: 12px 8px;
  }

  .cost-list-header > .cost-variance-heading {
    padding-inline: 3px;
  }

  .cost-row > .cost-metric strong {
    font-size: 12px;
  }

  .cost-child-row .cost-name {
    padding-left: 52px;
  }
}

@container (min-width: 621px) and (max-width: 849px) {
  .cost-list-header { display: none; }

  .cost-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 10px 12px 12px;
  }

  .cost-row > .cost-name {
    grid-column: 1 / -1;
    min-height: 48px;
    padding: 4px 2px 9px;
  }

  .cost-row > .cost-metric {
    display: grid;
    align-content: center;
    justify-content: stretch;
    min-height: 52px;
    padding: 7px 9px;
    border-top: 1px solid #edf1ef;
    text-align: center;
  }

  .cost-row > .cost-metric::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 11px;
    font-weight: 550;
  }

  .cost-row > .cost-metric strong {
    margin-top: 2px;
    font-size: 14px;
  }

  .cost-row > .cost-metric--drilldown {
    padding: 0;
  }

  .cost-metric--drilldown .cost-metric-link {
    align-items: flex-end;
    min-height: 52px;
    padding: 3px 9px 7px;
  }

  .cost-child-row .cost-name {
    padding-left: 44px;
  }
}

@container (max-width: 620px) {
  .cost-list-header { display: none; }

  .cost-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-height: 0;
    padding: 9px 10px 11px;
  }

  .cost-row > .cost-name {
    grid-column: 1 / -1;
    min-height: 52px;
    padding: 3px 2px 8px;
  }

  .cost-child-row .cost-name {
    padding-left: 44px;
  }

  .cost-row > .cost-metric {
    display: grid;
    align-content: center;
    justify-content: stretch;
    min-height: 48px;
    padding: 6px 7px;
    border-left: 0;
    border-top: 1px solid #e5ebe8;
    text-align: center;
  }

  .cost-row > .cost-metric::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 10px;
    font-weight: 550;
    line-height: 1.2;
    white-space: normal;
  }

  .cost-row > .cost-metric strong {
    margin-top: 2px;
    font-size: 13px;
    line-height: 1.25;
  }

  .cost-row > .cost-metric--drilldown {
    padding: 0;
  }

  .cost-metric--drilldown .cost-metric-link {
    align-items: flex-end;
    min-height: 48px;
    padding: 2px 7px 6px;
  }

  .cost-metric--budget { order: 1; }
  .cost-metric--quoted { order: 2; }
  .cost-metric--contracted { order: 3; }
  .cost-metric--invoiced { order: 4; }
  .cost-metric--risk { order: 5; }
  .cost-metric--forecast { order: 6; }
  .cost-metric--variance {
    grid-column: 1 / -1;
    order: 7;
  }

  .cost-row > .cost-metric--quoted,
  .cost-row > .cost-metric--contracted,
  .cost-row > .cost-metric--risk,
  .cost-row > .cost-metric--forecast {
    border-left: 1px solid #e5ebe8;
  }

  .cost-variance {
    border-left: 0 !important;
  }

  #bkp.anchor-section {
    scroll-margin-top: 80px;
  }
}

@container (max-width: 320px) {
  .cost-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1400px) {
  .cost-list-header,
  .cost-row {
    grid-template-columns: minmax(270px, 1fr) repeat(7, 104px);
  }
}

.form-card,
.form-main,
.form-sidebar,
.setup-card,
.login-card {
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.action-dropdown-menu {
  min-width: 355px;
}

.action-dropdown-menu > a,
.action-dropdown-group > a {
  border-radius: 5px;
}

.action-dropdown-menu > a:hover,
.action-dropdown-group > a:hover {
  background: #f0f6f3;
}

.dashboard-pillar {
  background: rgba(255, 255, 255, 0.84);
  border-radius: 8px;
  box-shadow: var(--shadow);
  min-height: 225px;
}

.dashboard-pillar.finance {
  background: #eef5f2;
}

.dashboard-pillar.costs {
  background: #f4f3ee;
}

.dashboard-pillar.liquidity {
  background: #eff4f3;
}

.pillar-icon {
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(6, 76, 62, 0.08);
  border-radius: 5px;
}

.dashboard-pillar > strong {
  color: #0b4c3f;
  font-weight: 620;
}

.dashboard-pillar > .dashboard-amount {
  align-items: baseline;
  display: flex;
  gap: 8px;
  white-space: nowrap;
}

.dashboard-amount > small {
  color: #50645d;
  font-size: 0.34em;
  font-weight: 450;
  letter-spacing: 0.025em;
}

.money-display {
  align-items: baseline;
  display: inline-flex;
  gap: 0.28em;
  white-space: nowrap;
}

.money-display > .money-number {
  color: inherit;
  font: inherit;
}

.money-display > small {
  color: #53645e;
  font-size: 0.48em;
  font-weight: 450;
  letter-spacing: 0.025em;
}

.kpi-card.emphasized .money-display > small {
  color: rgba(255, 255, 255, 0.7);
}

.chart-line,
.chart-point {
  stroke: #0d6a56;
}

.chart-point {
  fill: #0d6a56;
}

.chart-line.secondary {
  stroke: #8ba5a0;
}

.chart-area {
  fill: rgba(13, 106, 86, 0.075);
}

.chart-legend.bottom i.secondary {
  background: #8ba5a0;
}

.quote-kpi,
.quote-package,
.quote-recommendation,
.quote-unassigned {
  border-radius: 8px;
}

.quote-kpi.accent,
.quote-recommendation.has-result {
  background: #edf6f2;
}

.quote-progress i {
  background: #0b6b56;
}

.document-overview {
  border-radius: 8px;
}

.pdf-viewer-card iframe {
  border-radius: 5px;
}

.login-brand-panel,
.setup-page,
.setup-intro {
  background:
    radial-gradient(circle at 20% 18%, rgba(20, 114, 94, 0.55), transparent 42%),
    linear-gradient(160deg, #075447, #073c35);
}

/* Login: eigenständige, aber mit der App konsistente Einstiegsseite */
.login-page {
  align-items: center;
  background:
    radial-gradient(circle at 82% 12%, rgba(205, 229, 237, 0.62), transparent 31%),
    radial-gradient(circle at 12% 88%, rgba(215, 235, 226, 0.72), transparent 34%),
    #f7faf8;
  display: grid;
  min-height: 100dvh;
  padding: clamp(22px, 4vw, 58px);
}

.login-shell {
  background: #fff;
  border: 1px solid #d4ddd8;
  border-radius: 12px;
  box-shadow: 0 30px 80px rgba(7, 63, 54, 0.13);
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.78fr);
  min-height: min(690px, calc(100dvh - 80px));
  margin: auto;
  overflow: hidden;
  width: min(1120px, 100%);
}

.login-brand-panel {
  display: grid;
  place-items: center;
  min-height: 0;
  padding: clamp(34px, 4.2vw, 58px);
}

.login-brand-content {
  display: grid;
  justify-items: center;
  gap: 38px;
  width: 100%;
  text-align: center;
}

.login-brand-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
}

.login-logo {
  display: block;
  filter: drop-shadow(0 16px 35px rgba(0, 28, 23, 0.24));
  flex: 0 0 auto;
  height: clamp(82px, 7vw, 106px);
  width: clamp(82px, 7vw, 106px);
}

.login-brand-title h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(42px, 4.6vw, 72px);
  font-weight: 430;
  line-height: 0.92;
  letter-spacing: -0.045em;
  text-align: left;
}

.brand-login {
  padding: 0;
}

.login-promise {
  margin: auto 0;
  max-width: 620px;
}

.login-promise h1 {
  color: #fff;
  font-size: clamp(46px, 4.7vw, 68px);
  font-weight: 430;
  letter-spacing: -3.3px;
  line-height: 1.02;
  margin: 13px 0 22px;
}

.login-promise p {
  color: rgba(255, 255, 255, 0.72);
  font-size: 18px;
  line-height: 1.65;
  margin: 0;
  max-width: 570px;
}

.login-feature-list {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 28px;
}

.login-brand-content .login-feature-list {
  justify-content: center;
  margin-top: 0;
  max-width: 520px;
}

.login-feature-list span {
  border: 1px solid rgba(255, 255, 255, 0.19);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.86);
  font-size: 12px;
  padding: 7px 11px;
}

.login-status {
  color: rgba(255, 255, 255, 0.63);
  font-size: 13px;
}

.login-form-panel {
  background: #fff;
  padding: clamp(28px, 4vw, 58px);
}

.login-card {
  background: transparent;
  border: 0;
  box-shadow: none;
  gap: 22px;
  padding: 0;
  width: min(430px, 100%);
}

.login-card h2 {
  color: #073f36;
  font-size: 40px;
  font-weight: 560;
  letter-spacing: -1.7px;
  margin: 7px 0 9px;
}

.login-card > div > p {
  color: #63706b;
  line-height: 1.6;
  margin: 0;
}

.login-card .form-field {
  gap: 7px;
}

.login-card .form-field > span {
  color: #34443e;
  font-size: 13px;
  font-weight: 650;
}

.login-card input {
  background: #fbfcfb;
  min-height: 52px;
  padding: 12px 14px;
}

.login-card .button.large {
  border-radius: 5px;
  min-height: 52px;
}

/* Finanzierung: Prozentachse und pastellige Finanzierungsarten */
.financing-maturity-card {
  margin-bottom: 12px;
  padding: 13px 20px 14px;
}

.financing-chart {
  display: grid;
}

.finance-stage-row {
  align-items: stretch;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 18px;
  grid-template-columns: 195px minmax(0, 1fr) 78px;
  padding: 13px 0;
}

.finance-stage-row:last-of-type {
  border-bottom: 0;
}

.finance-stage-summary,
.finance-stage-percentage {
  align-self: center;
  color: var(--ink);
  display: grid;
}

.finance-stage-summary {
  gap: 2px;
  padding-left: 10px;
}

.finance-stage-summary > span,
.finance-stage-percentage > span {
  color: #34433e;
  font-size: 13px;
}

.finance-stage-summary > strong {
  color: #17231f;
  font-size: 23px;
  font-weight: 520;
  letter-spacing: -0.55px;
  white-space: nowrap;
}

.finance-stage-percentage {
  gap: 2px;
  justify-items: start;
}

.finance-stage-percentage > strong {
  color: #17231f;
  font-size: 17px;
  font-weight: 700;
}

.finance-stage-percentage > span {
  font-size: 11px;
}

.finance-stage-track {
  background:
    linear-gradient(to right, transparent calc(25% - 1px), rgba(61, 87, 78, 0.18) 25%, transparent calc(25% + 1px)),
    linear-gradient(to right, transparent calc(50% - 1px), rgba(61, 87, 78, 0.18) 50%, transparent calc(50% + 1px)),
    linear-gradient(to right, transparent calc(75% - 1px), rgba(61, 87, 78, 0.18) 75%, transparent calc(75% + 1px)),
    #f8faf9;
  border: 1px solid #d1d9d5;
  border-radius: 4px;
  display: flex;
  min-height: 68px;
  overflow: hidden;
}

.finance-stage-track .maturity-segment {
  border-right: 1px solid rgba(41, 66, 58, 0.2);
  color: #1d2b27;
  justify-content: center;
  min-width: 3px;
  padding: 10px 14px;
}

.finance-stage-track .chart-segment-label > span {
  font-size: 13px;
  font-weight: 500;
}

.finance-stage-track .chart-segment-label > strong {
  font-size: 11px;
  font-weight: 620;
  margin-top: 4px;
}

.finance-stage-track .money-display {
  gap: 0.24em;
}

.finance-stage-track .money-display > small {
  font-size: 0.72em;
}

.segment-mortgage,
.segment-construction_credit {
  background: #c7dcd7;
}

.segment-equity {
  background: #d9e5dc;
}

.segment-pension {
  background: #d9ddd7;
}

.segment-loan {
  background: #d1d7d5;
}

.segment-subsidy {
  background: #e3ddd2;
}

.segment-cost-0 {
  background: #d1d7d5;
}

.segment-cost-1 {
  background: #c7dcd7;
}

.segment-cost-2 {
  background: #d9e5dc;
}

.segment-cost-3 {
  background: #d9ddd7;
}

.segment-cost-4 {
  background: #e3ddd2;
}

.segment-cost-5 {
  background: #bfd2ce;
}

.financing-scale {
  color: #53625d;
  display: flex;
  font-size: 10px;
  justify-content: space-between;
  margin: 4px 96px 0 213px;
}

.financing-legend {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 18px 32px;
  margin: 12px 0 3px 213px;
}

.financing-legend span {
  align-items: center;
  color: #35443f;
  display: inline-flex;
  font-size: 12px;
  gap: 8px;
}

.financing-legend i {
  border: 1px solid rgba(37, 66, 57, 0.18);
  display: inline-block;
  height: 13px;
  width: 13px;
}

/* Kosten verwendet dieselbe Prozentachse und Kartenlogik wie Finanzierung. */
.cost-maturity-overview {
  margin: 30px 0 0;
}

.cost-chart-heading {
  align-items: end;
  margin: 4px 10px 8px;
}

.cost-chart-heading h2 {
  margin: 2px 0 0;
}

.cost-chart-heading > small {
  color: var(--muted);
  text-align: right;
}

.cost-financing-chart .finance-stage-track .empty-bar {
  align-self: center;
  color: var(--muted);
  padding: 0 20px;
}

.cost-legend {
  gap: 10px 22px;
}

.owner-split-grid {
  gap: 16px;
  margin-top: 12px;
}

.owner-split-grid .owner-card {
  align-items: center;
  display: grid;
  gap: 16px;
  grid-template-columns: 48px minmax(0, 1fr);
  min-height: 120px;
  padding: 18px 20px;
}

.owner-card > div {
  min-width: 0;
}

.owner-avatar {
  align-items: center;
  align-self: start;
  background: linear-gradient(145deg, #e5f0eb, #bad2c7);
  border-radius: 50%;
  color: var(--accent);
  display: flex;
  font-size: 20px;
  height: 45px;
  justify-content: center;
  width: 45px !important;
}

.owner-card > div > span {
  color: #243630;
  display: block;
  font-size: 13px;
}

.owner-card > div > strong {
  color: #075244;
  font-size: 23px;
  font-weight: 540;
  margin: 1px 0 11px;
}

.owner-card > div > small {
  border-top: 1px solid var(--line);
  color: #53615c;
  display: block;
  font-size: 11px;
  padding-top: 10px;
  line-height: 1.55;
  white-space: normal;
}

.owner-card small i {
  color: #15779e;
  font-style: normal;
  margin: 0 7px;
}

@media (max-width: 1100px) {
  .content {
    max-width: none;
    padding: 30px 24px 56px;
  }

  .sidebar {
    box-shadow: 20px 0 55px rgba(3, 42, 34, 0.26);
  }

  .topbar {
    height: 82px;
    padding: 0 24px;
  }

  .finance-stage-row {
    gap: 13px;
    grid-template-columns: 162px minmax(0, 1fr) 70px;
  }

  .finance-stage-summary > strong {
    font-size: 20px;
  }

  .financing-scale {
    margin-left: 175px;
    margin-right: 83px;
  }

  .financing-legend {
    margin-left: 175px;
  }
}

@media (max-width: 900px) {
  .login-page {
    padding: 22px;
  }

  .login-shell {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .login-brand-panel {
    min-height: 320px;
    padding: 32px;
  }

  .login-promise {
    margin: 38px 0 24px;
  }

  .login-promise h1 {
    font-size: 48px;
  }

  .login-form-panel {
    padding: 42px 32px;
  }
}

/* Shared document context on every commercial-record detail page. */
.invoice-tab-pilot .invoice-overview-finance .invoice-compact-metrics {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.invoice-tab-pilot .invoice-document-heading-actions,
.invoice-tab-pilot .invoice-document-row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.invoice-tab-pilot .invoice-primary-document > .invoice-section-heading:has(.invoice-document-heading-actions) {
  height: auto;
  min-height: 38px;
}

.invoice-tab-pilot .invoice-document-heading-actions .button,
.invoice-tab-pilot .invoice-linked-documents > .invoice-section-heading .button,
.invoice-tab-pilot #invoice-panel-overview .invoice-section-heading .button {
  height: 32px;
  min-height: 32px;
  padding: 4px 11px;
  border-radius: 6px;
  font-size: 13px;
  line-height: 1;
}

.invoice-tab-pilot .invoice-linked-documents {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.invoice-tab-pilot .invoice-linked-documents > .invoice-section-heading,
.invoice-tab-pilot .invoice-performance-scope > .invoice-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 38px;
  margin: 0 0 18px;
  padding: 0 0 8px;
  border-bottom: 1px solid var(--ui-detail-heading-line, #66706c);
}

.invoice-tab-pilot .invoice-linked-documents > .invoice-section-heading h3,
.invoice-tab-pilot .invoice-performance-scope > .invoice-section-heading h3 {
  font-size: var(--invoice-box-title-size);
  font-weight: var(--invoice-box-title-weight);
}

.invoice-tab-pilot .invoice-performance-scope {
  margin-top: 24px;
}

.invoice-tab-pilot .invoice-document-link-list {
  display: grid;
  gap: 14px;
}

.invoice-tab-pilot .invoice-document-link-row {
  display: grid;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--invoice-divider);
}

.invoice-tab-pilot .invoice-document-link-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.invoice-tab-pilot .invoice-document-link-copy small {
  color: var(--muted);
}

.invoice-tab-pilot .invoice-document-link-copy strong {
  overflow-wrap: anywhere;
}

.invoice-tab-pilot .invoice-document-row-actions {
  justify-content: flex-start;
}

.invoice-tab-pilot .invoice-document-row-actions form {
  margin: 0 0 0 auto;
}

.invoice-tab-pilot .invoice-review-result {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-2);
}

.invoice-tab-pilot .invoice-review-result.positive {
  border-color: #bddfd3;
  background: var(--positive-bg);
}

.invoice-tab-pilot .invoice-review-result.warning {
  border-color: #ead4a8;
  background: var(--warning-bg);
}

.invoice-tab-pilot .invoice-review-result.danger {
  border-color: #edc2be;
  background: var(--danger-bg);
}

.invoice-tab-pilot .invoice-review-result-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.invoice-tab-pilot .invoice-review-result-heading strong {
  font-size: 16px;
  font-weight: 650;
}

.invoice-tab-pilot .invoice-review-result .invoice-review-mark {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}

.invoice-tab-pilot .invoice-review-result .invoice-review-mark .lucide {
  width: 22px;
  height: 22px;
  stroke-width: 1.4;
}

.invoice-tab-pilot .invoice-review-result .invoice-status-copy {
  margin: 0;
  padding: 0;
  color: var(--muted);
}

.invoice-tab-pilot .invoice-review-result .invoice-finding-list {
  margin-top: 0;
}

.invoice-tab-pilot .invoice-overview-finance .invoice-compact-metrics dd {
  font-size: 16px;
  font-weight: 550;
  line-height: 1.3;
}

.invoice-tab-pilot .invoice-relation-card small {
  color: var(--blue);
}

@media (max-width: 680px) {
  .invoice-tab-pilot .invoice-overview-finance .invoice-compact-metrics {
    grid-template-columns: 1fr;
  }

  .invoice-tab-pilot .invoice-primary-document > .invoice-section-heading:has(.invoice-document-heading-actions) {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
    padding-bottom: 12px;
  }

  .invoice-tab-pilot .invoice-document-heading-actions {
    justify-content: flex-start;
    width: 100%;
  }

  .invoice-tab-pilot .invoice-linked-documents > .invoice-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .invoice-tab-pilot .invoice-document-row-actions {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    width: 100%;
  }

  .invoice-tab-pilot .invoice-document-row-actions .button {
    width: 100%;
  }
}

@media (max-width: 800px) {
  .page-heading,
  .detail-heading {
    align-items: flex-start;
    display: grid;
  }

  .page-actions {
    justify-content: flex-start;
    width: 100%;
  }

  .finance-stage-row {
    gap: 9px 14px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 16px 0;
  }

  .finance-stage-summary {
    grid-column: 1;
    grid-row: 1;
    padding-left: 2px;
  }

  .finance-stage-percentage {
    grid-column: 2;
    grid-row: 1;
    justify-items: end;
    text-align: right;
  }

  .finance-stage-track {
    grid-column: 1 / -1;
    grid-row: 2;
    min-height: 62px;
  }

  .financing-scale {
    margin: 4px 0 0;
  }

  .financing-legend {
    gap: 10px 20px;
    margin: 14px 0 2px;
  }

  .owner-split-grid {
    grid-template-columns: 1fr;
  }

  .owner-split-grid .owner-card {
    min-height: 105px;
  }

  .cost-chart-heading {
    align-items: flex-start;
    display: grid;
    margin-bottom: 10px;
  }

  .cost-chart-heading > small {
    text-align: left;
  }
}

@media (max-width: 680px) {
  body {
    font-size: 15px;
  }

  h1 {
    font-size: 42px;
    font-weight: 440;
    letter-spacing: -2.2px;
  }

  h2 {
    font-size: 24px;
  }

  .topbar {
    display: grid;
    gap: 8px 10px;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    height: auto;
    min-height: 70px;
    padding: 10px 14px;
  }

  .mobile-menu {
    grid-column: 1;
    grid-row: 1;
  }

  .topbar-title {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
  }

  .topbar-title h1 {
    font-size: 18px;
  }

  .topbar-actions {
    display: contents;
  }

  .header-page-actions {
    grid-column: 1 / -1;
    grid-row: 3;
    flex-wrap: wrap;
    width: 100%;
    padding-bottom: 2px;
  }

  .header-page-actions .button,
  .header-page-actions .toggle-control,
  .header-page-actions .header-project-score {
    flex: 0 0 auto;
  }

  .dashboard-header-actions {
    justify-content: space-between;
  }

  .notification-menu {
    grid-column: 3;
    grid-row: 1;
  }

  .scenario-switch {
    display: grid;
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: repeat(3, 1fr);
    width: 100%;
  }

  .scenario-button {
    font-size: 11px;
    min-height: 36px;
    padding: 6px 7px;
  }

  .content {
    padding: 25px 14px 44px;
  }

  .page-heading,
  .detail-heading {
    gap: 20px;
    margin-bottom: 26px;
  }

  .page-heading p,
  .detail-heading p,
  .form-page-heading p {
    font-size: 15px;
  }

  .page-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .section-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .section-head .inline-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
    width: 100%;
  }

  .page-actions .button,
  .page-actions form,
  .page-actions details {
    width: 100%;
  }

  .card,
  .kpi-card,
  .detail-kpi,
  .form-card {
    border-radius: 7px;
  }

  .button {
    min-height: 45px;
  }

  .financing-maturity-card {
    margin-left: -2px;
    margin-right: -2px;
    padding: 8px 13px 13px;
  }

  .finance-stage-summary > strong {
    font-size: 19px;
  }

  .finance-stage-track {
    min-height: 58px;
  }

  .finance-stage-track .maturity-segment {
    padding: 8px 6px;
  }

  .finance-stage-track .chart-segment-label > span {
    font-size: 10px;
  }

  .finance-stage-track .chart-segment-label > strong {
    font-size: 10px;
  }

  .financing-legend {
    align-items: flex-start;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .owner-split-grid .owner-card {
    grid-template-columns: 42px minmax(0, 1fr);
    padding: 16px;
  }

  .owner-avatar {
    font-size: 18px;
    height: 40px;
    width: 40px !important;
  }

  .owner-card > div > strong {
    font-size: 21px;
  }

  .owner-card > div > small {
    white-space: normal;
  }

  .action-dropdown-menu {
    min-width: 0;
    width: min(360px, calc(100vw - 28px));
  }

  .kpi-card strong {
    font-size: 22px;
  }

  .booking-table th,
  .booking-table td {
    padding: 12px;
  }

  .form-main,
  .form-sidebar,
  .form-card {
    padding: 18px;
  }

  .dashboard-pillar {
    min-height: 190px;
    padding: 20px;
  }

  .dashboard-pillar > strong {
    font-size: 31px;
  }

  .dashboard-pillar > .dashboard-amount {
    gap: 6px;
  }
}

/* Arbeitspakete 2.40.2: reduzierte Erfassung und flache Übersicht. */
.booking-optional-section {
  overflow: hidden;
  border: 1px solid #dce5e2;
  border-radius: 12px;
  background: #fff;
}

.booking-optional-section > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 66px;
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
}

.booking-optional-section > summary::-webkit-details-marker {
  display: none;
}

.booking-optional-section > summary > span {
  display: grid;
  gap: 2px;
}

.booking-optional-section > summary strong {
  color: #173c32;
  font-size: 16px;
}

.booking-optional-section > summary small {
  color: #6c7b76;
  font-size: 12px;
  font-weight: 400;
}

.booking-optional-section > summary i {
  color: #527169;
  font-size: 24px;
  font-style: normal;
  transition: transform .18s ease;
}

.booking-optional-section[open] > summary {
  border-bottom: 1px solid #e3eae7;
}

.booking-optional-section[open] > summary i {
  transform: rotate(90deg);
}

.booking-optional-section > .booking-section-grid {
  padding: 18px;
}

.wpb-package-main {
  gap: 10px;
  padding: 16px 20px;
}

.wpb-identity h2 {
  margin-top: 6px;
}

.wpb-package-foot {
  align-items: center;
  padding-top: 10px;
  border-top: 1px solid #e7ecea;
}

.wpb-lifecycle {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  min-height: 68px;
}

.wpb-lifecycle::before,
.wpb-lifecycle::after {
  position: absolute;
  top: 13px;
  left: 10%;
  z-index: 0;
  height: 3px;
  content: "";
}

.wpb-lifecycle::before {
  width: 80%;
  background: #d7dfdc;
}

.wpb-lifecycle::after {
  width: var(--lifecycle-progress);
  background: #15749a;
}

.wpb-lifecycle-step {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 7px;
  min-width: 0;
  text-align: center;
}

.wpb-lifecycle-step > span {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 2px solid #ccd7d3;
  border-radius: 50%;
  background: #fff;
}

.wpb-lifecycle-step.completed > span,
.wpb-lifecycle-step.current > span {
  border-color: #15749a;
  background: #15749a;
}

.wpb-lifecycle-step > span svg {
  width: 15px;
  fill: none;
  stroke: #fff;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.wpb-lifecycle-step small {
  max-width: 100px;
  color: #65756f;
  font-size: 11px;
  line-height: 1.2;
}

.wpb-lifecycle-step.current small {
  color: #116d92;
  font-weight: 700;
}

@media (max-width: 680px) {
  .booking-optional-section > summary {
    min-height: 60px;
    padding: 12px 14px;
  }

  .booking-optional-section > .booking-section-grid {
    padding: 14px;
  }

  .wpb-package-main {
    padding: 15px 16px;
  }

  .wpb-package-foot {
    display: grid;
    gap: 7px;
  }

  .wpb-lifecycle-step small {
    font-size: 9px;
  }
}

/* Dokumentprüfung 2.36: eine klare, typgesteuerte Arbeitsfläche */
.document-review-layout {
  display: block;
  max-width: none;
}

.document-review-layout [hidden] {
  display: none !important;
}

.document-review-heading {
  align-items: end;
}

.document-review-title h1 {
  max-width: 1050px;
  margin-bottom: 0;
  font-size: clamp(40px, 5vw, 72px);
  line-height: 1.02;
}

.document-review-heading-actions {
  align-items: end;
  justify-content: flex-end;
}

.review-step {
  display: grid;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: #e7f1ed;
  color: var(--accent);
  font-size: 14px;
  font-weight: 600;
}

.review-type-grid .review-field-standard {
  grid-column: span 5;
}

.review-link-action .button {
  width: 100%;
  min-height: 52px;
}

.review-analysis-disclosures {
  padding: 26px 32px 0;
}

.review-primary-actions {
  align-items: center;
  padding-top: 4px;
}

.review-primary-actions > div {
  display: flex;
  gap: 10px;
}

.document-review-technical {
  margin-top: 18px;
  padding: 25px 28px;
}

.document-review-technical-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 16px;
}

.document-review-technical-head h2 {
  margin: 4px 0 0;
  font-size: 24px;
}

.document-review-technical-head p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.document-review-technical .version-list {
  border-top: 1px solid var(--line);
}

.document-review-technical .version-list > p {
  margin-bottom: 0;
  color: var(--muted);
}

@media (max-width: 1100px) {

  .review-field-standard,
  .review-field-compact {
    grid-column: span 6;
  }

  .review-field-wide {
    grid-column: 1 / -1;
  }

  .review-type-grid .review-field-standard {
    grid-column: span 7;
  }
}

@media (max-width: 760px) {
  .document-review-title h1 {
    overflow-wrap: anywhere;
  }

  .review-field-standard,
  .review-field-compact,
  .review-field-wide,
  .review-type-grid .review-field-standard {
    grid-column: 1 / -1;
  }

  .review-analysis-disclosures {
    padding-right: 18px;
    padding-left: 18px;
  }

  .review-primary-actions,
  .review-primary-actions > div {
    display: grid;
    width: auto;
    gap: 10px;
  }

  .review-primary-actions .button {
    width: 100%;
  }

  .document-review-technical-head {
    display: grid;
    align-items: start;
  }
}

/* Work packages beta: one calm lifecycle from cost target to close. */
.nav-beta-label,
.beta-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 9px;
  border-radius: 999px;
  background: #dff3ee;
  color: #145747;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.nav-beta-label {
  margin-left: auto;
  background: rgba(255,255,255,.14);
  color: #fff;
}

.wpb-intro,
.wpb-detail-title,
.wpb-detail-head {
  display: grid;
  gap: 18px;
}

.wpb-intro {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  margin-bottom: 24px;
}

.wpb-intro h1,
.wpb-detail-title h1 {
  margin: 4px 0 6px;
  color: var(--ink, #17332d);
  font-size: clamp(28px, 3vw, 42px);
}

.wpb-intro p,
.wpb-detail-title p {
  margin: 0;
  color: var(--muted, #66756f);
}

.wpb-summary {
  display: grid;
  min-width: 140px;
  text-align: right;
}

.wpb-summary strong {
  font-size: 32px;
}

.wpb-summary span {
  color: var(--muted, #66756f);
  font-size: 13px;
}

.wpb-phase-tabs {
  display: flex;
  gap: 5px;
  margin-bottom: 18px;
  padding: 5px;
  overflow-x: auto;
  border: 1px solid #dbe5e1;
  border-radius: 12px;
  background: #f5f8f7;
  scrollbar-width: none;
}

.wpb-phase-tabs a {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 10px 13px;
  border-radius: 8px;
  color: #536761;
  font-size: 13px;
  text-decoration: none;
  white-space: nowrap;
}

.wpb-phase-tabs a.active {
  background: #fff;
  color: #124f40;
  box-shadow: 0 1px 6px rgba(24,63,53,.1);
  font-weight: 700;
}

.wpb-filter {
  margin-bottom: 20px;
  padding: 0;
}

.wpb-filter > summary {
  display: flex;
  justify-content: space-between;
  padding: 16px 20px;
  cursor: pointer;
  font-weight: 650;
  list-style: none;
}

.wpb-filter[open] > summary span {
  transform: rotate(90deg);
}

.wpb-filter form {
  display: grid;
  grid-template-columns: minmax(220px, 1.3fr) minmax(180px, 1fr) minmax(180px, 1fr) auto;
  gap: 14px;
  align-items: end;
  padding: 0 20px 20px;
}

.wpb-filter label,
.wpb-inline-form label {
  display: grid;
  gap: 6px;
}

.wpb-filter label > span,
.wpb-inline-form label > span {
  color: #66756f;
  font-size: 12px;
  font-weight: 650;
}

.wpb-filter input,
.wpb-filter select,
.wpb-inline-form input,
.wpb-inline-form select {
  width: 100%;
  min-height: 48px;
  padding: 0 13px;
  border: 1px solid #ccd9d4;
  border-radius: 9px;
  background: #fff;
}

.wpb-filter form > div {
  display: flex;
  gap: 8px;
}

.wpb-list {
  display: grid;
  gap: 14px;
}

.wpb-package {
  padding: 0;
  overflow: hidden;
  border-left: 4px solid #8eb9ad;
}

.wpb-package.overrun {
  border-left-color: #c9625b;
}

.wpb-package-main {
  display: grid;
  gap: 18px;
  padding: 20px 22px;
  color: inherit;
  text-decoration: none;
}

.wpb-package-main header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
}

.wpb-identity h2 {
  margin: 8px 0 3px;
  font-size: 21px;
}

.wpb-identity p {
  margin: 0;
  color: #687972;
  font-size: 13px;
}

.wpb-open {
  align-self: center;
  color: #6e857e;
  font-size: 30px;
}

.wpb-money-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid #e1e8e5;
  border-radius: 10px;
  background: #e1e8e5;
}

.wpb-money-grid > div {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 12px 14px;
  background: #fafcfb;
}

.wpb-money-grid > div.primary {
  background: #edf6f3;
}

.wpb-money-grid span,
.wpb-detail-kpis span,
.wpb-commercial-grid span {
  color: #6a7974;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .035em;
}

.wpb-money-grid strong {
  overflow: hidden;
  font-size: clamp(14px, 1.35vw, 18px);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wpb-package-foot {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-size: 13px;
}

.wpb-package-foot > strong {
  color: #145747;
}

.wpb-detail-head {
  margin-bottom: 22px;
}

.wpb-detail-title {
  grid-template-columns: minmax(260px, .65fr) minmax(520px, 1.35fr);
  align-items: center;
}

.wpb-detail-lifecycle {
  width: min(100%, 760px);
  min-width: 0;
  justify-self: end;
}

.wpb-detail-lifecycle .wpb-lifecycle {
  min-height: 64px;
}

.wpb-detail-lifecycle .wpb-lifecycle-step small {
  max-width: 125px;
  font-size: 13px;
  line-height: 1.25;
}

.wpb-scope {
  max-width: 900px;
  padding-top: 14px;
  border-top: 2px solid #d7e7e2;
  line-height: 1.55;
}

.wpb-detail-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.wpb-detail-kpis article {
  display: grid;
  gap: 7px;
  min-width: 0;
  padding: 18px;
}

.wpb-detail-kpis article.accent {
  background: #eaf5f1;
  border-color: #bfdcd3;
}

.wpb-detail-kpis strong {
  font-size: clamp(18px, 2vw, 27px);
  white-space: nowrap;
}

.wpb-detail-kpis small {
  color: #6b7d76;
}

.wpb-attention,
.wpb-section,
.wpb-close {
  margin-bottom: 18px;
  padding: 22px;
}

.wpb-attention header,
.wpb-section > header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  margin-bottom: 17px;
}

.wpb-collapsible {
  padding: 0;
  overflow: hidden;
}

.wpb-collapsible > summary {
  list-style: none;
}

.wpb-collapsible > summary::-webkit-details-marker {
  display: none;
}

.wpb-collapsible-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 112px;
  padding: 24px 28px;
  cursor: pointer;
  user-select: none;
}

.wpb-collapsible-head:hover {
  background: #f8faf9;
}

.wpb-collapsible-meta {
  display: grid;
  grid-template-columns: auto 24px;
  align-items: center;
  column-gap: 16px;
  text-align: right;
}

.wpb-collapsible-meta strong {
  font-size: 1.35rem;
  font-variant-numeric: tabular-nums;
}

.wpb-collapsible-meta small {
  grid-column: 1;
  color: var(--text-muted);
}

.wpb-collapsible-meta i {
  grid-column: 2;
  grid-row: 1 / span 2;
  width: 11px;
  height: 11px;
  border-right: 2px solid var(--brand);
  border-bottom: 2px solid var(--brand);
  transform: rotate(45deg);
  transition: transform .18s ease;
}

.wpb-collapsible[open] .wpb-collapsible-meta i {
  transform: rotate(225deg);
}

.wpb-collapsible-body {
  padding: 0 28px 28px;
  border-top: 1px solid var(--line);
}

.wpb-collapsible-body > .wpb-section-actions {
  justify-content: flex-end;
  margin: 20px 0 4px;
}

.wpb-attention h2,
.wpb-section h2,
.wpb-close h2 {
  margin: 3px 0 0;
  font-size: 21px;
}

.wpb-finding {
  padding: 13px 15px;
  border-left: 3px solid #d0a33a;
  background: #fff9e9;
}

.wpb-finding + .wpb-finding {
  margin-top: 8px;
}

.wpb-finding.danger {
  border-color: #bc554e;
  background: #fff1f0;
  color: var(--ink);
}

.wpb-finding p {
  margin: 3px 0 0;
  color: #5f6c68;
}

.wpb-detail-columns {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 18px;
}

.wpb-allocation-list,
.wpb-record-list {
  display: grid;
}

.wpb-allocation-list > div,
.wpb-record-list article > .wpb-quote-row,
.wpb-timeline a {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 58px;
  padding: 10px 0;
  border-top: 1px solid #e4ebe8;
}

.wpb-allocation-list > div > span,
.wpb-record-list article a > span,
.wpb-timeline a > span {
  display: grid;
  flex: 1;
  min-width: 0;
  color: #6b7b76;
  font-size: 12px;
}

.wpb-allocation-list b,
.wpb-record-list b,
.wpb-timeline b {
  color: #203b34;
  font-size: 14px;
}

.wpb-record-list article a {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  color: inherit;
  text-decoration: none;
}

.wpb-record-list article a > .wpb-quote-amount {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  color: #172f29;
}

.wpb-quote-amount > strong {
  font-size: 16px;
  white-space: nowrap;
}

.wpb-winner-trophy {
  display: grid;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #d8aa35;
  color: #fff;
  box-shadow: none;
}

.wpb-winner-trophy svg {
  width: 21px;
  height: 21px;
}

.wpb-record-list article {
  border-top: 1px solid #e4ebe8;
}

.wpb-record-list article > .wpb-quote-row {
  border-top: 0;
}

.wpb-quote-details {
  margin: -4px 0 10px;
  padding-left: 2px;
}

.wpb-quote-details summary {
  min-height: 40px;
  padding: 9px 0;
  color: #145747;
  cursor: pointer;
  font-size: 13px;
  font-weight: 650;
}

.wpb-quote-details div {
  padding: 8px 0;
  border-top: 1px solid #edf2f0;
}

.wpb-quote-details div > span {
  color: #6b7b76;
  font-size: 11px;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.wpb-quote-details p {
  margin: 4px 0 0;
  color: #314b44;
  font-size: 13px;
}

.wpb-record-list article.muted {
  opacity: .58;
}

.wpb-inline-form {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #e1e9e6;
}

.wpb-inline-form summary,
.wpb-timeline summary {
  min-height: 44px;
  padding: 10px 0;
  color: #145747;
  cursor: pointer;
  font-weight: 650;
}

.wpb-inline-form form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, .7fr) auto;
  gap: 12px;
  align-items: end;
  padding-top: 10px;
}

.wpb-commercial-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.wpb-commercial-grid > div {
  display: grid;
  gap: 5px;
  padding: 13px;
  border-radius: 9px;
  background: #f4f7f6;
}

.wpb-commercial-grid strong {
  font-size: 16px;
  white-space: nowrap;
}

.wpb-timeline {
  margin-top: 14px;
}

.wpb-timeline a {
  color: inherit;
  text-decoration: none;
}

.wpb-timeline time {
  width: 88px;
  color: #6b7b76;
  font-size: 12px;
}

.wpb-close {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: #f2f8f6;
}

.wpb-close p {
  margin: 7px 0 0;
  color: #66766f;
}

.wpb-edit-form {
  max-width: 1000px;
}

@media (max-width: 1100px) {
  .wpb-filter form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wpb-money-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .wpb-detail-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wpb-detail-title {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .wpb-commercial-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .wpb-intro,
  .wpb-detail-title,
  .wpb-detail-columns {
    grid-template-columns: 1fr;
  }

  .wpb-summary {
    display: none;
  }

  .wpb-phase-tabs {
    margin-right: -14px;
    margin-left: -14px;
    padding-right: 14px;
    padding-left: 14px;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .topbar > .beta-chip {
    display: none;
  }

  .header-page-actions > a,
  .header-page-actions > form {
    flex: 1 1 0;
  }

  .header-page-actions > a,
  .header-page-actions > form .button {
    width: 100%;
  }

  .wpb-filter form,
  .wpb-inline-form form {
    grid-template-columns: 1fr;
  }

  .wpb-filter form > div,
  .wpb-filter form .button,
  .wpb-inline-form .button {
    width: 100%;
  }

  .wpb-filter form > div .button {
    flex: 1;
  }

  .wpb-package-main {
    padding: 18px;
  }

  .wpb-money-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wpb-money-grid > div:last-child {
    grid-column: 1 / -1;
  }

  .wpb-package-foot {
    display: grid;
  }

  .wpb-detail-title {
    gap: 12px;
  }

  .wpb-scope {
    padding: 12px 0 0;
    border-top: 2px solid #d7e7e2;
    border-left: 0;
  }

  .wpb-detail-kpis {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .wpb-detail-kpis article {
    padding: 14px;
  }

  .wpb-detail-kpis article strong {
    font-size: 17px;
  }

  .wpb-attention,
  .wpb-section,
  .wpb-close {
    padding: 18px;
  }

  .wpb-section.wpb-collapsible {
    padding: 0;
  }

  .wpb-section > header,
  .wpb-close {
    display: grid;
    align-items: stretch;
  }

  .wpb-section > header .button,
  .wpb-section > header .inline-actions,
  .wpb-section > header .inline-actions .button,
  .wpb-close .button {
    width: 100%;
  }

  .wpb-collapsible-head {
    min-height: 92px;
    padding: 20px;
  }

  .wpb-collapsible-body {
    padding: 0 20px 20px;
  }

  .wpb-collapsible-meta strong {
    font-size: 1.05rem;
  }

  .wpb-commercial-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wpb-allocation-list > div,
  .wpb-record-list article > .wpb-quote-row {
    flex-wrap: wrap;
  }

  .wpb-allocation-sync {
    display: grid;
  }

  .wpb-allocation-sync .button {
    width: 100%;
  }

  .wpb-timeline a {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
  }

  .wpb-timeline a > strong {
    grid-column: 2;
  }
}

@media (max-width: 430px) {
  .wpb-detail-lifecycle .wpb-lifecycle-step small {
    width: 100%;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .wpb-detail-kpis,
  .wpb-commercial-grid {
    grid-template-columns: 1fr;
  }

  .wpb-money-grid strong {
    font-size: 14px;
  }
}

/* PDF-first Offertenerfassung und Paperless-Auswahl */
.quote-ai-intake,
.record-document-intake {
  display: grid;
  gap: 18px;
  margin-bottom: 28px;
  padding: 24px;
  border: 1px solid #bfd7d0;
  border-radius: 18px;
  background: linear-gradient(135deg, #edf6f3, #f7faf9);
}

.record-document-intake-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr);
  gap: 22px;
  align-items: end;
}

.record-document-intake-head h2 {
  margin: 4px 0 0;
  font-size: 23px;
}

.record-document-intake-head > p {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.record-document-options {
  display: grid;
  grid-template-columns: minmax(250px, .62fr) minmax(560px, 1.38fr);
  gap: 14px;
  align-items: stretch;
}

.record-document-option {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 168px;
  padding: 17px;
  border: 1px solid #cddbd6;
  border-radius: 14px;
  background: rgba(255, 255, 255, .82);
}

.record-document-option > .record-ai-file-button,
.record-document-option > .button:last-child,
.record-document-existing > .document-picker {
  margin-top: auto;
}

.record-document-options:has(.document-picker[open]) {
  align-items: start;
}

.record-document-option > .record-document-option-head {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  margin-bottom: 15px;
}

.record-document-option h3 {
  margin: 0 0 3px;
  font-size: 17px;
  font-weight: 600;
}

.record-document-option p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.record-document-option .option-number {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: #deeee8;
  color: var(--accent);
  font-size: 13px;
}

.record-ai-file-button {
  position: relative;
  width: 100%;
  justify-content: center;
  overflow: hidden;
  cursor: pointer;
}

.record-ai-file-button input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.record-document-existing .document-picker {
  background: rgba(255, 255, 255, .65);
}

.quote-ai-copy h2 {
  margin: 4px 0 5px;
  font-size: 22px;
}

.quote-ai-copy p,
.quote-ai-result p,
.quote-ai-progress-detail {
  margin: 0;
  color: var(--muted);
}

.quote-ai-file-button {
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.quote-ai-file-button input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.quote-ai-progress,
.quote-ai-result {
  grid-column: 1 / -1;
}

.quote-ai-progress-head {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 8px;
  font-size: 14px;
}

.record-ai-phases {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  margin: 9px 0 10px;
  border: 1px solid #cddbd6;
  border-radius: 10px;
  background: #cddbd6;
}

.record-ai-phases span {
  min-width: 0;
  padding: 10px 12px;
  background: #f7f9f8;
  color: var(--muted);
  font-size: 12px;
  overflow-wrap: anywhere;
}

.record-ai-phases span.is-active {
  background: #deeee8;
  color: var(--accent);
  font-weight: 750;
}

.record-ai-phases span.is-complete {
  background: #edf6f3;
  color: #276858;
}

.quote-ai-progress-track {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #dce7e3;
}

.quote-ai-progress-track > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
  transition: width .35s ease;
}

.quote-ai-progress-detail {
  margin-top: 8px;
  font-size: 13px;
}

.quote-ai-result {
  padding: 13px 15px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #cddbd6;
}

.quote-ai-result strong {
  font-weight: 600;
}

.quote-ai-warning {
  margin-top: 8px !important;
  color: var(--danger) !important;
}

.quote-ai-intake.has-error,
.record-document-intake.has-error {
  border-color: #e2b8b2;
  background: #fbf2f1;
}

.booking-field.is-inherited-locked select,
.booking-field.is-inherited-locked input {
  background: var(--surface-muted, #f3f6f4);
  color: var(--text-muted, #66736f);
  cursor: not-allowed;
  opacity: 1;
}

.booking-field.is-inherited-locked > span::after {
  content: " · übernommen";
  color: var(--text-muted, #66736f);
  font-size: 0.78em;
  font-weight: 400;
}

.booking-form-sections {
  display: grid;
  gap: 16px;
}

.wpb-edit-form {
  gap: 22px;
}

.booking-form-section {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f8faf9;
}

.booking-form-section:first-child {
  padding-top: 22px;
}

.booking-form-section:last-child {
  padding-bottom: 22px;
}

.booking-form-section-head {
  margin: -22px -22px 20px;
  padding: 17px 22px 15px;
  border-bottom: 1px solid var(--line);
  border-radius: 16px 16px 0 0;
  background: #fff;
}

.booking-form-section-head h2 {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
}

.booking-form-section-head p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.booking-section-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-flow: row dense;
  gap: 18px 20px;
  align-items: start;
}

.booking-section-grid .booking-field-standard {
  grid-column: span 6;
}

.booking-section-grid .booking-field-medium {
  grid-column: span 4;
}

.booking-section-grid .booking-field-compact {
  grid-column: span 3;
}

.booking-section-grid .booking-field-bkp-search {
  grid-column: span 5;
}

.booking-section-grid .booking-field-bkp-select {
  grid-column: span 7;
}

.booking-section-grid .booking-field-full {
  grid-column: 1 / -1;
}

.bkp-search-field input[type="search"] {
  width: 100%;
  min-width: 0;
}

.booking-section-grid .form-field {
  gap: 7px;
}

.booking-section-grid .form-control:not(textarea),
.booking-section-grid input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.booking-section-grid select {
  height: 48px;
  min-height: 48px;
}

.booking-section-grid textarea.form-control {
  min-height: 118px;
}

.booking-section-grid .checkbox-field {
  display: grid;
  grid-template-columns: 21px minmax(0, 1fr);
  gap: 10px;
  min-height: 48px;
  align-items: center;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.booking-section-grid .checkbox-field input {
  width: 19px;
  height: 19px;
  min-height: 19px;
  margin: 0;
  align-self: center;
}

.booking-section-grid .checkbox-field > span {
  grid-column: 2;
  line-height: 1.35;
}

.booking-section-grid .checkbox-field > small {
  grid-column: 2;
  margin-top: -4px;
}

.booking-section-grid .checkbox-field .field-info {
  margin: 0;
}

.document-picker {
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
}

.document-picker summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 66px;
  padding: 13px 16px;
  cursor: pointer;
  list-style: none;
}

.document-picker summary::-webkit-details-marker {
  display: none;
}

.document-picker summary > span:first-child {
  display: grid;
  gap: 2px;
}

.document-picker summary strong {
  font-weight: 500;
}

.document-picker summary small {
  color: var(--muted);
}

.document-picker-toggle {
  color: var(--accent);
  white-space: nowrap;
}

.document-picker[open] .document-picker-toggle {
  font-size: 0;
}

.document-picker[open] .document-picker-toggle::after {
  content: "Auswahl schliessen";
  font-size: 14px;
}

.document-picker-panel {
  padding: 18px;
  border-top: 1px solid var(--line);
}

.document-picker-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1.8fr) minmax(170px, 1.1fr) minmax(105px, .65fr) minmax(180px, .9fr);
  gap: 12px;
  align-items: end;
}

.document-picker-filters.document-picker-filters--compact {
  grid-template-columns: minmax(280px, 1.45fr) minmax(220px, 1fr) auto;
  gap: 12px;
}

.document-picker-filters label {
  display: grid;
  gap: 4px;
  color: var(--muted);
  font-size: 13px;
}

.document-picker-filters .form-control {
  height: 48px;
  min-height: 48px;
}

.document-picker-filters .document-unlinked {
  display: grid;
  grid-template-columns: 19px minmax(0, 1fr);
  gap: 12px;
  height: 48px;
  min-height: 48px;
  align-items: center;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--ink);
  box-sizing: border-box;
}

.document-picker-filters .document-unlinked input {
  width: 18px;
  height: 18px;
  margin: 0;
}

.document-picker-filters .document-unlinked span {
  line-height: 1.3;
}

.document-picker-selected {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.document-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border: 1px solid #bfd7d0;
  border-radius: 999px;
  background: #edf6f3;
  color: var(--ink);
  cursor: pointer;
}

.document-chip span {
  font-size: 18px;
  line-height: .7;
}

.document-picker-results {
  max-height: 360px;
  overflow: auto;
  margin-top: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.document-picker-results .empty-state {
  padding: 28px 18px;
}

.document-result-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 65px;
  padding: 10px 13px;
  border-top: 1px solid var(--line);
  cursor: pointer;
}

.document-result-row:first-child {
  border-top: 0;
}

.document-result-row:hover {
  background: #f5f8f7;
}

.document-result-row input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent);
}

.document-result-main {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.document-result-main strong {
  overflow: hidden;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.document-result-main small,
.document-result-date,
.source-quote-message {
  color: var(--muted);
}

.document-result-main small {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  line-height: 1.35;
}

.document-result-type {
  flex: 0 0 auto;
  padding: 2px 7px;
  border-radius: 999px;
  background: #edf4f1;
  color: #37685a;
  font-size: 11px;
  font-weight: 650;
}

.document-result-date {
  font-size: 13px;
  line-height: 1.35;
  white-space: nowrap;
}

.document-background-panel .section-head p {
  margin: 5px 0 0;
  color: var(--muted);
}

.document-background-panel {
  margin-bottom: 22px;
}

.document-background-panel [data-upload-row] > div:first-child {
  min-width: 0;
  flex: 1;
}

.background-progress-track {
  width: min(520px, 100%);
  height: 6px;
  margin-top: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #e5ebe8;
}

.background-progress-track > span {
  display: block;
  width: 12%;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
  transition: width .4s ease;
}

.background-progress-track > span.has-error {
  background: var(--danger);
}

.document-picker-native {
  display: none;
}

@media (max-width: 1320px) {
  .record-document-intake-head,
  .record-document-options {
    grid-template-columns: 1fr;
  }

  .record-document-option.record-document-existing {
    width: 100%;
  }

  .document-picker-filters {
    grid-template-columns: minmax(220px, 1.5fr) minmax(170px, 1fr) minmax(110px, .65fr) minmax(190px, 1fr);
  }

}

@media (max-width: 980px) {
  .document-picker-filters {
    grid-template-columns: 1fr 1fr;
  }

  .booking-section-grid .booking-field-compact,
  .booking-section-grid .booking-field-medium,
  .booking-section-grid .booking-field-bkp-search,
  .booking-section-grid .booking-field-bkp-select {
    grid-column: span 6;
  }
}

@media (max-width: 680px) {
  .quote-ai-intake,
  .record-document-intake {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .quote-ai-file-button {
    justify-content: center;
  }

  .document-picker-filters {
    grid-template-columns: 1fr;
  }

  .record-ai-phases {
    grid-template-columns: 1fr 1fr;
  }

  .booking-section-grid {
    grid-template-columns: 1fr;
  }

  .booking-section-grid .booking-field-standard,
  .booking-section-grid .booking-field-medium,
  .booking-section-grid .booking-field-compact,
  .booking-section-grid .booking-field-bkp-search,
  .booking-section-grid .booking-field-bkp-select,
  .booking-section-grid .booking-field-full {
    grid-column: 1;
  }

  .booking-form-section {
    padding: 18px;
  }

  .booking-form-section:first-child,
  .booking-form-section:last-child {
    padding: 18px;
  }

  .booking-form-section-head {
    margin: -18px -18px 18px;
    padding: 15px 18px 13px;
  }

  .field-info-popover {
    left: 0;
    transform: none;
  }

  .document-picker summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .document-result-date {
    display: none;
  }
}

@media (max-width: 390px) {
  h1 {
    font-size: 38px;
  }

  .content {
    padding-left: 12px;
    padding-right: 12px;
  }

  .finance-stage-track .chart-segment-label {
    max-width: 72px;
  }

  .financing-legend {
    grid-template-columns: 1fr;
  }

  .kpi-card {
    min-width: 198px;
  }
}

/* Strukturierte Dokumentprüfung */
.document-review-layout {
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, .55fr);
}

.document-review-layout.reference-only {
  grid-template-columns: minmax(0, 1fr);
}

.review-field-standard {
  grid-column: span 4;
}

.review-field-compact {
  grid-column: span 3;
}

.review-field-wide {
  grid-column: span 6;
}

.review-analysis-disclosures {
  display: grid;
  gap: 10px;
  padding: 22px 26px 0;
}

.review-analysis-disclosures .extraction-block {
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e2d5b8;
  background: #fffaf0;
}

.review-analysis-disclosures .extraction-block.danger {
  border-color: #e5c4c0;
  background: #fff6f5;
}

.review-analysis-disclosures .extraction-block.danger,
.review-analysis-disclosures .extraction-block.danger summary,
.review-analysis-disclosures .extraction-block.danger li {
  color: var(--ink);
}

.review-analysis-disclosures .extraction-block summary {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 15px 17px;
  cursor: pointer;
  list-style: none;
  font-weight: 600;
}

.review-analysis-disclosures .extraction-block summary::-webkit-details-marker {
  display: none;
}

.review-analysis-disclosures .extraction-block summary span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 400;
}

.review-analysis-disclosures .extraction-block[open] summary span {
  font-size: 0;
}

.review-analysis-disclosures .extraction-block[open] summary span::after {
  content: "schliessen";
  font-size: 13px;
}

.review-analysis-disclosures .extraction-block ul {
  margin: 0;
  padding: 0 34px 18px 38px;
}

@media (max-width: 1400px) {
  .document-review-layout {
    grid-template-columns: 1fr;
  }

  .document-review-layout > aside {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .review-field-standard,
  .review-field-compact,
  .review-field-wide {
    grid-column: 1 / -1;
  }

  .review-analysis-disclosures {
    padding-left: 18px;
    padding-right: 18px;
  }

  .document-review-layout > aside {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .login-page {
    display: block;
    padding: 0;
  }

  .login-shell {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    min-height: 100dvh;
  }

  .login-brand-panel {
    min-height: 255px;
    padding: 25px 22px;
  }

  .login-brand-content {
    gap: 24px;
  }

  .login-brand-title {
    gap: 15px;
  }

  .login-logo {
    height: 64px;
    width: 64px;
  }

  .login-brand-title h1 {
    font-size: 39px;
    letter-spacing: -1.8px;
  }

  .login-promise {
    margin: 26px 0 12px;
  }

  .login-promise h1 {
    font-size: 39px;
    letter-spacing: -2.2px;
    margin: 9px 0 14px;
  }

  .login-promise p {
    font-size: 15px;
    line-height: 1.5;
  }

  .login-feature-list {
    display: none;
  }

  .login-brand-content .login-feature-list {
    display: flex;
    gap: 6px;
  }

  .login-brand-content .login-feature-list span {
    font-size: 10px;
    padding: 5px 8px;
  }

  .login-status {
    display: none;
  }

  .login-form-panel {
    align-items: start;
    padding: 31px 22px 42px;
  }

  .login-card {
    padding: 0;
  }

  .login-card h2 {
    font-size: 34px;
  }
}

@media print {
  .workspace,
  body {
    background: #fff;
  }
}

/* Kompakte Modul-Einstiege: Der Seitentitel lebt einmalig in der Kopfzeile. */
.module-intro {
  align-items: center;
  margin-bottom: 28px;
  min-height: 46px;
}

.module-intro > div:first-child {
  max-width: 900px;
}

.module-intro p {
  color: #586761;
  font-size: 16px;
  line-height: 1.55;
  margin: 0;
}

.module-intro .page-actions {
  flex-wrap: nowrap;
}

.module-intro .page-actions .button {
  white-space: nowrap;
}

/* Dashboard-Kopf: Schalter und Projektstatus bleiben in einer gemeinsamen Zeile. */
.dashboard-welcome {
  align-items: center;
}

.dashboard-heading-actions {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  gap: 24px;
}

.dashboard-heading-actions form {
  margin: 0;
}

.dashboard-heading-actions .toggle-control {
  min-height: 46px;
  white-space: nowrap;
}

.dashboard-heading-actions .project-score {
  min-width: 118px;
}

/* Ruhige, grünnahe Diagrammpalette. */
.chart-line.secondary {
  stroke: #879b95;
}

.chart-legend.bottom i.secondary {
  background: #879b95;
}

/* Liquidität: gleich hohe Kennzahlen und sauber ausgerichtete Zeitsteuerung. */
.timeline-filter {
  align-items: end;
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(155px, 1fr)) repeat(2, minmax(145px, 0.85fr)) minmax(145px, 0.8fr) auto;
}

.timeline-filter label {
  align-content: end;
  grid-template-rows: auto 46px;
}

.timeline-filter input,
.timeline-filter select,
.timeline-filter .button {
  height: 46px;
  min-height: 46px;
}

.timeline-filter .button {
  align-self: end;
  white-space: nowrap;
}

.liquidity-summary {
  align-items: stretch;
}

.liquidity-summary > div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 96px;
}

.liquidity-summary .money-display {
  display: inline-flex;
  width: auto;
}

.liquidity-summary .money-display > .money-number,
.liquidity-summary .money-display > small {
  display: inline;
}

/* Dokumentfilter: drei klare Reihen mit durchgehend identischen Feldhöhen. */
.document-list-filters {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
}

.document-list-filters .filter-search {
  grid-column: span 3;
}

.document-list-filters .filter-party,
.document-list-filters .filter-status,
.document-list-filters .filter-bkp,
.document-list-filters .filter-actions {
  grid-column: span 2;
}

.document-list-filters .form-field {
  align-self: end;
}

.document-list-filters .form-control,
.document-list-filters .button {
  height: 50px;
  min-height: 50px;
}

.bkp-filter-controls {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(130px, 0.8fr) minmax(0, 1.2fr);
}

.document-list-filters .filter-actions {
  align-items: center;
  align-self: end;
  display: flex;
  justify-content: flex-end;
  margin: 0;
}

.app-version-card h2 {
  margin-bottom: 18px;
}

.app-version-row {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  padding-top: 15px;
}

.app-version-row span {
  color: var(--muted);
}

.app-version-row strong {
  color: var(--accent);
  font-size: 18px;
  font-weight: 560;
}

@media (max-width: 1180px) {
  .timeline-filter {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .timeline-filter .button {
    width: 100%;
  }

  .document-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .document-list-filters .filter-search,
  .document-list-filters .filter-party,
  .document-list-filters .filter-status,
  .document-list-filters .filter-bkp,
  .document-list-filters .filter-actions {
    grid-column: span 2;
  }
}

@media (max-width: 680px) {
  .module-intro {
    align-items: start;
    gap: 16px;
  }

  .dashboard-heading-actions {
    align-items: start;
    margin-top: 18px;
  }

  .timeline-filter,
  .document-list-filters {
    grid-template-columns: 1fr;
  }

  .document-list-filters .filter-search,
  .document-list-filters .filter-party,
  .document-list-filters .filter-status,
  .document-list-filters .filter-bkp,
  .document-list-filters .filter-actions {
    grid-column: auto;
  }

  .bkp-filter-controls {
    grid-template-columns: 1fr;
  }

  .document-list-filters .filter-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}

/* Feinschliff v2.21.1: ruhige Zwischenüberschriften ohne unnötige Fettschrift. */
.eyebrow.eyebrow-regular {
  font-weight: 450;
}

/* Finanzierung und Liquidität: feste Reihen statt zufälligem Auto-Umbruch. */
.booking-filters.data-list-filters {
  align-items: end;
  gap: 14px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.data-list-filters label {
  align-content: end;
  grid-template-rows: auto 50px;
}

.data-list-filters input,
.data-list-filters select,
.data-list-filters .button {
  color: #65716d;
  font-weight: 400;
  height: 50px;
  min-height: 50px;
}

.booking-filters.data-list-filters input[type="date"] {
  height: 50px;
  line-height: 50px;
  min-height: 50px;
}

.data-list-filters select,
.timeline-filter select {
  -webkit-appearance: none;
  appearance: none;
  background-image: none;
}

.data-list-filters input::placeholder {
  color: #75807c;
  opacity: 1;
}

.data-list-filters .filter-submit {
  align-self: end;
  min-width: 0;
}

.data-list-filters .filter-submit .button {
  color: #fff;
}

.liquidity-list-filters .filter-submit {
  grid-column: span 2;
}

/* Betragsfilter sind Texteingaben – Browser-Spinner würden nur Unruhe erzeugen. */
.data-list-filters input[type="number"] {
  -moz-appearance: textfield;
}

.data-list-filters input[type="number"]::-webkit-inner-spin-button,
.data-list-filters input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Auch die Zeitraumsteuerung folgt derselben ruhigen Feldtypografie. */
.timeline-filter label {
  color: #65716d;
  font-weight: 450;
}

.timeline-filter input,
.timeline-filter select {
  color: #65716d;
  font-weight: 400;
}

.timeline-filter input[type="date"] {
  height: 46px;
  line-height: 46px;
  min-height: 46px;
}

/* Gestrichelte Viertelmarken in Finanzierungs- und Kostenreife. */
.finance-stage-track {
  background:
    repeating-linear-gradient(to bottom, rgba(61, 87, 78, 0.23) 0 4px, transparent 4px 9px) 25% 0 / 1px 100% no-repeat,
    repeating-linear-gradient(to bottom, rgba(61, 87, 78, 0.23) 0 4px, transparent 4px 9px) 50% 0 / 1px 100% no-repeat,
    repeating-linear-gradient(to bottom, rgba(61, 87, 78, 0.23) 0 4px, transparent 4px 9px) 75% 0 / 1px 100% no-repeat,
    #f8faf9;
}

/* Hauptgruppen wie Gebäude oder Vorbereitungsarbeiten leicht hervorheben. */
.cost-group-row .cost-name strong {
  font-weight: 620;
}

/* Richtung ist Information, kein zusätzlicher Blickfang. */
.flow-direction.compact {
  font-weight: 400;
}

/* Dokumente: schwarze Datumswerte und ein im Listen-Scrollbereich fixer Kopf. */
.document-list-filters input[type="date"] {
  color: var(--ink);
  -webkit-text-fill-color: var(--ink);
}

.document-table-wrap {
  max-height: min(72vh, 920px);
  overflow: auto;
}

.document-table thead th {
  box-shadow: 0 1px 0 var(--line);
  position: sticky;
  top: 0;
  z-index: 12;
}

.yes-no {
  font-weight: 400;
}

.yes-no.review-flag:not(.yes) {
  background: var(--danger-bg);
  color: var(--danger);
}

@media (max-width: 1360px) {
  .timeline-filter {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .timeline-filter .button {
    width: 100%;
  }

  .document-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .document-list-filters .filter-search,
  .document-list-filters .filter-party,
  .document-list-filters .filter-status,
  .document-list-filters .filter-bkp,
  .document-list-filters .filter-actions {
    grid-column: span 2;
  }
}

@media (max-width: 1100px) {
  .booking-filters.data-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .data-list-filters .wide-filter,
  .liquidity-list-filters .filter-submit {
    grid-column: span 2;
  }
}

@media (max-width: 680px) {
  .booking-filters.data-list-filters {
    grid-template-columns: 1fr;
  }

  .data-list-filters .wide-filter,
  .liquidity-list-filters .filter-submit {
    grid-column: auto;
  }
}

/* v2.23: einheitliche Filter und eine ruhigere typografische Hierarchie. */
.eyebrow,
.eyebrow.eyebrow-regular {
  font-weight: 450;
}

:is(
  .timeline-filter,
  .data-list-filters,
  .document-list-filters,
  .quote-search,
  .report-filter
) label {
  align-content: end;
  color: #65716d;
  display: grid;
  font-weight: 450;
  gap: 6px;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto 50px;
  justify-content: stretch;
  min-width: 0;
}

:is(
  .timeline-filter,
  .data-list-filters,
  .document-list-filters,
  .quote-search,
  .report-filter
) :is(input, select, .button) {
  color: #65716d;
  font-weight: 400;
  height: 50px;
  min-height: 50px;
}

:is(
  .timeline-filter,
  .data-list-filters,
  .document-list-filters,
  .quote-search,
  .report-filter
) :is(input, select) {
  width: 100%;
}

:is(
  .timeline-filter,
  .data-list-filters,
  .document-list-filters,
  .quote-search,
  .report-filter
) .button.primary {
  color: #fff;
}

:is(
  .timeline-filter,
  .data-list-filters,
  .document-list-filters,
  .quote-search,
  .report-filter
) select {
  -webkit-appearance: none;
  appearance: none;
  background-image: none;
}

:is(
  .timeline-filter,
  .data-list-filters,
  .document-list-filters
) input[type="number"] {
  -moz-appearance: textfield;
}

:is(
  .timeline-filter,
  .data-list-filters,
  .document-list-filters
) input[type="number"]::-webkit-inner-spin-button,
:is(
  .timeline-filter,
  .data-list-filters,
  .document-list-filters
) input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.cost-list-filters {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

.cost-list-filters .wide-filter,
.cost-list-filters .filter-submit {
  grid-column: span 2;
}

.document-list-filters .form-field {
  grid-template-rows: auto 50px;
}

.document-list-filters .filter-bkp {
  grid-template-rows: auto 50px;
}

.document-list-filters .bkp-filter-controls {
  height: 50px;
}

.document-list-filters input[type="date"] {
  color: var(--ink);
  -webkit-text-fill-color: var(--ink);
}

.quote-search,
.report-filter {
  align-items: end;
}

.quote-search .button,
.report-filter .button {
  align-self: end;
}

.liquidity-summary > div {
  min-height: 112px;
  padding: 20px;
}

.liquidity-summary > div > span {
  font-size: 15px;
}

.liquidity-summary .money-display > .money-number {
  color: #18312b;
  font-size: 30px;
  font-weight: 580;
  letter-spacing: -0.6px;
  line-height: 1.1;
}

.liquidity-summary .money-display > small {
  align-self: baseline;
  font-size: 11px;
  font-weight: 400;
  margin-left: 7px;
}

@media (max-width: 1500px) {
  .cost-list-filters {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 1100px) {
  .cost-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 680px) {
  .cost-list-filters {
    grid-template-columns: 1fr !important;
  }

  .cost-list-filters .wide-filter,
  .cost-list-filters .filter-submit {
    grid-column: auto;
  }
}

.module-intro.actions-only {
  justify-content: flex-end;
}

@media (max-width: 1400px) {
  .document-list-filters {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .document-list-filters .filter-search,
  .document-list-filters .filter-party,
  .document-list-filters .filter-bkp,
  .document-list-filters .filter-actions {
    grid-column: span 2;
  }

  .document-list-filters .filter-status {
    grid-column: span 1;
  }
}

@media (max-width: 900px) {
  .document-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .document-list-filters .filter-search,
  .document-list-filters .filter-party,
  .document-list-filters .filter-status,
  .document-list-filters .filter-bkp,
  .document-list-filters .filter-actions {
    grid-column: span 2;
  }
}

@media (max-width: 680px) {
  .document-list-filters {
    grid-template-columns: 1fr;
  }

  .document-list-filters .filter-search,
  .document-list-filters .filter-party,
  .document-list-filters .filter-status,
  .document-list-filters .filter-bkp,
  .document-list-filters .filter-actions {
    grid-column: auto;
  }
}

/* v2.30: ruhige Formgeometrie und geführte Dokumentprüfung */
input[type="date"],
input[type="datetime-local"],
input[type="month"],
.form-control[type="date"],
.form-control[type="datetime-local"],
.form-control[type="month"] {
  height: 50px !important;
  min-height: 50px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important;
  line-height: 50px !important;
}

input[type="date"].date-field-empty,
input[type="datetime-local"].date-field-empty,
input[type="month"].date-field-empty {
  color: #8c9691 !important;
  -webkit-text-fill-color: #8c9691 !important;
}

input[type="date"].date-field-empty::-webkit-date-and-time-value,
input[type="datetime-local"].date-field-empty::-webkit-date-and-time-value,
input[type="month"].date-field-empty::-webkit-date-and-time-value,
input[type="date"].date-field-empty::-webkit-datetime-edit,
input[type="datetime-local"].date-field-empty::-webkit-datetime-edit,
input[type="month"].date-field-empty::-webkit-datetime-edit {
  color: #8c9691 !important;
  -webkit-text-fill-color: #8c9691 !important;
}

input[type="date"]::-webkit-date-and-time-value,
input[type="datetime-local"]::-webkit-date-and-time-value,
input[type="month"]::-webkit-date-and-time-value,
input[type="date"]::-webkit-datetime-edit,
input[type="datetime-local"]::-webkit-datetime-edit,
input[type="month"]::-webkit-datetime-edit {
  display: flex;
  min-height: 48px;
  align-items: center;
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important;
  line-height: normal;
}

.timeline-filter input[type="date"],
.timeline-filter input[type="datetime-local"],
.timeline-filter input[type="month"],
.booking-filters input[type="date"],
.booking-filters input[type="datetime-local"],
.booking-filters input[type="month"] {
  height: 50px !important;
  min-height: 50px !important;
  line-height: 50px !important;
}

.document-review-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 28px;
  margin-bottom: 24px;
}

.document-review-title {
  min-width: 0;
  max-width: 1120px;
}

.document-review-title .back-link {
  margin-bottom: 20px;
}

.document-review-title h1 {
  max-width: 1100px;
  margin: 0;
  font-size: clamp(38px, 4.3vw, 66px);
  line-height: .98;
  overflow-wrap: anywhere;
}

.document-review-title > p {
  margin: 20px 0 0;
  font-size: 15px;
}

.document-review-heading-actions {
  display: flex;
  align-items: end;
  gap: 10px;
}

.document-status-form {
  margin: 0;
}

.document-status-form label {
  display: grid;
  gap: 6px;
}

.document-status-form label > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
}

.document-status-form .form-control {
  min-width: 210px;
}

.document-review-layout {
  grid-template-columns: 1fr;
  gap: 18px;
}

.document-review-layout > aside {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  order: -1;
  gap: 18px;
}

.document-review-layout > aside .detail-card {
  min-height: 132px;
}

.document-upload-review-heading {
  max-width: 1000px;
  margin-bottom: 22px;
}

.document-upload-review-heading h1 {
  margin: 0;
  font-size: clamp(38px, 5vw, 68px);
  line-height: 1;
}

.document-upload-review-heading p {
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 17px;
}

.document-upload-review-panel {
  padding: 28px 30px;
}

.document-upload-review-copy {
  max-width: 780px;
}

.document-upload-review-copy h2 {
  margin: 5px 0 6px;
  font-size: 28px;
}

.document-upload-review-copy p {
  margin: 0;
  color: var(--muted);
}

.document-upload-review-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 24px 0 12px;
}

.document-upload-review-steps span {
  position: relative;
  padding: 0 0 0 24px;
  background: transparent;
  color: var(--muted);
  font-size: 13px;
}

.document-upload-review-steps span::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 0;
  width: 14px;
  height: 14px;
  border: 2px solid #c9d5d0;
  border-radius: 50%;
  background: #fff;
  box-sizing: border-box;
}

.document-upload-review-steps span.active {
  color: var(--accent);
  font-weight: 650;
}

.document-upload-review-steps span.active::before {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 3px #fff;
  background: var(--accent);
}

.document-upload-review-steps span.complete::before {
  border-color: var(--accent);
  background: var(--accent);
}

.document-upload-review-progress {
  height: 8px;
  margin: 0 0 20px;
  overflow: hidden;
  border-radius: 999px;
  background: #e5ebe8;
}

.document-upload-review-progress > span {
  display: block;
  width: 25%;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
  transition: width .35s ease;
}

.document-upload-review-progress.is-error > span {
  background: var(--danger);
}

.document-upload-review-list {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.document-upload-review-list > [data-upload-row] {
  padding: 19px 20px;
}

.document-review-placeholder-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.document-review-placeholder-grid article {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fbfcfb;
}

.document-review-placeholder-grid span {
  color: var(--muted);
  font-size: 14px;
}

.document-review-placeholder-grid i {
  display: block;
  width: 100%;
  height: 13px;
  border-radius: 4px;
  background: linear-gradient(90deg, #eef2f0, #f7f9f8, #eef2f0);
  background-size: 200% 100%;
  animation: document-placeholder 1.8s ease-in-out infinite;
}

.document-review-placeholder-grid i:nth-child(3) {
  width: 72%;
}

.document-review-placeholder-grid i:nth-child(4) {
  width: 48%;
}

.document-review-placeholder-wide {
  grid-column: 1 / -1;
}

.document-cost-toggle {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 13px;
  margin: 18px 0;
  padding: 17px 18px;
  border: 1px solid #bdd5cb;
  border-radius: 13px;
  background: #eef6f2;
  cursor: pointer;
}

.document-cost-toggle input {
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
  accent-color: var(--accent);
}

.document-cost-toggle span {
  display: grid;
  gap: 3px;
}

.document-cost-toggle strong {
  font-weight: 600;
}

.document-cost-toggle small {
  color: var(--muted);
  line-height: 1.45;
}

.notification-arrived {
  animation: notification-arrived 1.5s ease;
}

@keyframes notification-arrived {
  0%, 100% { box-shadow: none; }
  35% { box-shadow: 0 0 0 7px rgba(45, 139, 104, .18); }
}

@keyframes document-placeholder {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

@media (max-width: 900px) {
  .document-review-heading {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .document-review-heading-actions {
    align-items: end;
  }

  .document-review-heading-actions .document-status-form {
    flex: 1;
  }

  .document-review-heading-actions .form-control {
    width: 100%;
  }
}

@media (max-width: 680px) {
  .document-review-heading-actions,
  .document-review-layout > aside,
  .document-upload-review-steps,
  .document-review-placeholder-grid {
    grid-template-columns: 1fr;
  }

  .document-review-heading-actions {
    display: grid;
    align-items: stretch;
  }

  .document-review-heading-actions .page-actions,
  .document-review-heading-actions .button {
    width: 100%;
  }

  .document-review-heading-actions .document-status-form,
  .document-review-heading-actions .document-status-form label,
  .document-review-heading-actions .document-status-form .form-control {
    width: 100%;
  }

  .document-upload-review-panel {
    padding: 21px 18px;
  }

  .document-review-placeholder-wide {
    grid-column: auto;
  }

  .record-document-option {
    min-height: 210px;
  }

  .record-document-option:has(.document-picker[open]) {
    min-height: 0;
  }
}

/* Dokumentprüfung 2.36.1 – finale, typgesteuerte Formularstruktur */
.document-review-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.document-review-header-actions .document-status-form,
.document-review-header-actions .document-status-form label {
  margin: 0;
}

.document-review-header-actions .form-control,
.document-review-header-actions .button {
  min-height: 46px;
  height: 46px;
}

.document-review-header-actions .form-control {
  width: 190px;
  color: var(--ink);
}

.document-review-header-actions .action-menu-wrap {
  position: relative;
}

.document-review-header-actions .action-menu {
  z-index: 80;
}

.document-review-layout {
  display: block !important;
  width: 100%;
  max-width: none;
  grid-template-columns: none !important;
}

.document-review-layout [hidden],
.document-review-layout [data-document-types][hidden],
.document-review-layout [data-cost-section][hidden] {
  display: none !important;
}

.review-field-wide {
  grid-column: 1 / -1;
}

.review-existing-link {
  margin: 24px 34px 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.review-existing-link > summary {
  padding: 16px 18px;
  color: var(--accent);
  cursor: pointer;
  font-weight: 600;
}

.review-existing-link-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 16px;
  padding: 0 18px 18px;
}

.review-existing-link-body .button {
  min-height: 52px;
}

.review-analysis-disclosures {
  padding: 24px 34px 0;
}

.review-primary-actions {
  align-items: center;
  margin: 26px 34px 30px !important;
}

.review-primary-actions > div {
  display: flex;
  gap: 10px;
}

.document-review-technical {
  margin-top: 20px;
}

@media (max-width: 1100px) {
}

@media (max-width: 760px) {
  .document-review-header-actions {
    width: 100%;
  }

  .document-review-header-actions .document-status-form,
  .document-review-header-actions .document-status-form label,
  .document-review-header-actions .form-control {
    width: 100%;
  }
  .review-field-wide  {
    grid-column: 1 / -1;
  }

  .review-existing-link {
    margin-right: 18px;
    margin-left: 18px;
  }

  .review-existing-link-body {
    grid-template-columns: 1fr;
  }

  .review-analysis-disclosures {
    padding-right: 18px;
    padding-left: 18px;
  }

  .review-primary-actions {
    display: grid;
    gap: 12px;
    margin-right: 18px !important;
    margin-left: 18px !important;
  }

  .review-primary-actions > div {
    display: grid;
  }

  .review-primary-actions .button {
    width: 100%;
  }
}

/* Arbeitspakete 2.40.1: geerbter Erfassungskontext, Fortschritt und Zahlungen. */
.booking-inherited-context {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin: 0 0 22px;
  padding: 18px 20px;
  border: 1px solid #bad8cf;
  border-radius: 12px;
  background: #edf7f3;
}

.booking-inherited-context h2 {
  margin: 3px 0;
  color: #123f35;
  font-size: 21px;
}

.booking-inherited-context p {
  margin: 0;
  color: #61746d;
}

.invoice-difference-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  margin: 0 0 22px;
  padding: 20px;
  border-radius: 12px;
  background: #fff4dc;
  color: #493717;
}

.invoice-difference-action h2 {
  margin: 3px 0 6px;
  color: #6f4e00;
  font-size: 22px;
}

.invoice-difference-action p {
  max-width: 780px;
  margin: 0 0 6px;
}

.invoice-difference-action small {
  display: block;
  max-width: 850px;
  color: #756642;
}

.invoice-difference-action .button {
  min-height: 48px;
  white-space: nowrap;
}

.invoice-difference-dialog .modal-intro {
  color: var(--muted);
  margin: -8px 0 20px;
}

.invoice-difference-dialog input[readonly] {
  background: var(--surface-soft, #f4f7f5);
  font-weight: 750;
}

.wpb-progress {
  display: grid;
  grid-template-columns: 1fr;
  overflow: hidden;
  border: 1px solid #e0e8e5;
  border-radius: 11px;
  background: #fbfcfc;
}

.wpb-progress > section {
  min-width: 0;
  padding: 14px 18px 16px;
}

.wpb-progress > section + section {
  border-left: 1px solid #e0e8e5;
}

.wpb-detail-kpis + .wpb-progress {
  margin: 0 0 18px;
}

.wpb-invoices {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #e0e8e5;
}

.wpb-subsection-head h3 {
  margin: 3px 0 12px;
  color: #173a31;
  font-size: 18px;
}

.wpb-invoice-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 68px;
  padding: 12px 0;
  border-top: 1px solid #e6ecea;
}

.wpb-invoice-row > a {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(125px, auto) minmax(125px, auto);
  align-items: center;
  gap: 16px;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.wpb-invoice-row > a > span {
  display: grid;
  gap: 2px;
  min-width: 0;
  color: #63746e;
  font-size: 12px;
}

.wpb-invoice-row > a > span:first-child b {
  overflow: hidden;
  color: #183b32;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wpb-invoice-row > a small {
  color: #71817c;
  font-size: 10px;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.wpb-invoice-row .inline-actions,
.wpb-invoice-row .inline-actions form {
  margin: 0;
}

@media (max-width: 1000px) {
  .wpb-progress {
    grid-template-columns: 1fr;
  }

  .wpb-progress > section + section {
    border-top: 1px solid #e0e8e5;
    border-left: 0;
  }

  .wpb-invoice-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .booking-inherited-context {
    display: grid;
    align-items: start;
  }

  .invoice-difference-action {
    grid-template-columns: 1fr;
  }

  .invoice-difference-action .button {
    width: 100%;
    white-space: normal;
  }

  .wpb-progress > section {
    padding-right: 12px;
    padding-left: 12px;
  }

  .wpb-progress .control-lifecycle {
    margin-right: 28px;
    margin-left: 28px;
  }

  .wpb-progress .control-lifecycle-step small {
    font-size: 11px;
  }

  .wpb-invoice-row > a {
    grid-template-columns: 1fr 1fr;
  }

  .wpb-invoice-row > a > span:first-child {
    grid-column: 1 / -1;
  }

  .wpb-invoice-row .inline-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .wpb-invoice-row .inline-actions .button,
  .wpb-invoice-row .inline-actions form {
    width: 100%;
  }
}

/* Arbeitspakete 2.40.4: kompakter Abrechnungsbalken und Arbeitsfilter. */
.wpb-filter form {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: end;
}

.wpb-filter .wpb-filter-wide {
  grid-column: span 2;
}

.wpb-filter label {
  min-width: 0;
}

.wpb-filter input,
.wpb-filter select,
.wpb-filter .button {
  box-sizing: border-box;
  min-height: 48px;
  height: 48px;
  margin: 0;
}

.wpb-filter select {
  padding-right: 38px;
  text-overflow: ellipsis;
}

.wpb-filter .wpb-filter-actions {
  display: grid;
  grid-column: span 3;
  grid-template-columns: repeat(2, minmax(140px, 190px));
  justify-content: end;
  gap: 10px;
  width: 100%;
}

.wpb-filter .wpb-filter-actions .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.wpb-package-billing {
  display: grid;
  gap: 7px;
}

.wpb-package-billing .control-billing-bar {
  min-height: 40px;
  border-radius: 7px;
}

.wpb-package-billing .control-billing-bar strong {
  font-size: 12px;
}

.wpb-package-billing .control-billing-legend {
  gap: 5px 13px;
  font-size: 11px;
}

.wpb-section > .quote-recommendation {
  display: grid;
  align-items: start;
  margin: 0 0 18px;
}

.wpb-section > .quote-recommendation > div {
  max-width: none;
}

.wpb-section > .quote-recommendation form {
  margin: 0;
}

.wpb-section-actions,
.wpb-document-actions {
  justify-content: flex-end;
  margin: 0;
}

.wpb-record-list > .wpb-ai-recommended {
  box-sizing: border-box;
  min-width: 0;
  overflow: hidden;
  border-top: 1px solid #e4ebe8;
  background: transparent;
  box-shadow: none;
}

.wpb-allocation-list small {
  margin-top: 2px;
  color: #7a8883;
}

.wpb-allocation-explanation {
  margin: 12px 0 0;
  color: #65756f;
  font-size: 13px;
  line-height: 1.45;
}

.wpb-allocation-explanation.locked {
  padding: 10px 12px;
  border-radius: 8px;
  background: #f5f2e8;
  color: #675d40;
}

.wpb-allocation-sync {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
  padding: 12px;
  border-radius: 9px;
  background: #f5f2e8;
}

.wpb-allocation-sync p {
  margin: 0;
  color: #675d40;
  font-size: 13px;
}

.wpb-inline-form input.form-control,
.wpb-inline-form select.form-control,
.wpb-inline-form .button {
  box-sizing: border-box;
  height: 58px;
  min-height: 58px;
  margin: 0;
}

.wpb-detail-columns .wpb-inline-form form {
  grid-template-columns: minmax(0, 1fr) auto;
}

.wpb-detail-columns .wpb-inline-form form label:first-of-type {
  grid-column: 1 / -1;
}

.wpb-detail-columns .wpb-allocation-sync {
  display: grid;
}

.wpb-detail-columns .wpb-allocation-sync .button {
  width: 100%;
}

.wpb-quote-ai-summary {
  box-sizing: border-box;
  min-width: 0;
  padding: 0 0 12px;
}

.wpb-quote-ai-summary .quote-ai-score {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
}

@media (max-width: 1180px) {
  .topbar > .beta-chip {
    display: none;
  }

  .section-quotes .header-page-actions .button {
    padding-right: 9px;
    padding-left: 9px;
    font-size: 13px;
  }

  .wpb-filter form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .wpb-filter .wpb-filter-actions {
    grid-column: span 2;
  }
}

@media (max-width: 820px) {
  .wpb-filter form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wpb-filter .wpb-filter-wide,
  .wpb-filter .wpb-filter-actions {
    grid-column: 1 / -1;
  }

}

@media (max-width: 560px) {
  .wpb-filter form,
  .wpb-filter .wpb-filter-actions {
    grid-template-columns: 1fr;
  }

  .wpb-filter .wpb-filter-wide,
  .wpb-filter .wpb-filter-actions {
    grid-column: 1;
  }

  .wpb-package-billing .control-billing-legend {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .wpb-package-billing .control-billing-legend span:last-child {
    grid-column: 1 / -1;
  }
}

/* Consolidated from static/css/refinement-v2361.css; source order preserved. */
/*
 * Finale Layoutschicht für die Dokumentprüfung und Dokumentübersicht.
 * Sie wird nach theme-v2.css geladen, damit ältere Varianten diese Regeln
 * nicht erneut überschreiben.
 */

/* Ruhigere und kompaktere Szenarioauswahl */
.scenario-switch {
  gap: 0;
  padding: 2px;
  border: 1px solid #d9e3df;
  border-radius: 6px;
  background: rgba(255, 255, 255, .72);
}

/* Shared, visible pagination for high-volume lists. */
.pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 1rem 0 1.5rem;
  color: var(--muted, #64748b);
  font-size: .875rem;
}

.pagination > div {
  display: flex;
  gap: .5rem;
}

@media (max-width: 640px) {
  .pagination {
    align-items: stretch;
    flex-direction: column;
  }

  .pagination > div .button {
    flex: 1;
  }
}

/* 2.42.41: Abrechnung ohne doppelte Kennzahlenebene. */
.wpb-detail-kpis.wpb-financial-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.wpb-detail-kpis.wpb-financial-kpis.with-forecast{grid-template-columns:repeat(4,minmax(0,1fr))}.wpb-financial-kpis article:first-child small{line-height:1.45}.wpb-commercial-lists{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;margin-top:4px}.wpb-commercial-lists>.wpb-changes,.wpb-commercial-lists>.wpb-invoices{margin:0;padding:18px;border:1px solid #dce5e1;border-radius:13px;background:#fff}.wpb-commercial-lists .wpb-subsection-head h3{display:flex;align-items:center;gap:9px;margin:0 0 10px;font-size:19px}.wpb-commercial-lists .wpb-subsection-head h3 span{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#edf4f1;color:#376359;font-size:12px;font-weight:750}.wpb-commercial-lists .wpb-change-row,.wpb-commercial-lists .wpb-invoice-row{min-height:72px;padding:12px 0}.wpb-commercial-lists .wpb-change-row>a,.wpb-commercial-lists .wpb-invoice-row>a{grid-template-columns:minmax(0,1fr) auto}.wpb-commercial-lists .wpb-change-row>a>span:last-child,.wpb-commercial-lists .wpb-invoice-row>a>span:last-child{text-align:right}.wpb-commercial-lists .wpb-invoice-row .inline-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.wpb-commercial-lists .status-pill{white-space:nowrap}.wpb-commercial>.wpb-timeline{margin-top:18px;padding-top:4px}@media(max-width:1100px){.wpb-commercial-lists{grid-template-columns:1fr}.wpb-detail-kpis.wpb-financial-kpis,.wpb-detail-kpis.wpb-financial-kpis.with-forecast{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.wpb-detail-kpis.wpb-financial-kpis,.wpb-detail-kpis.wpb-financial-kpis.with-forecast{grid-template-columns:1fr}.wpb-commercial-lists>.wpb-changes,.wpb-commercial-lists>.wpb-invoices{padding:14px}.wpb-commercial-lists .wpb-change-row,.wpb-commercial-lists .wpb-invoice-row{grid-template-columns:1fr}.wpb-commercial-lists .wpb-change-row>a,.wpb-commercial-lists .wpb-invoice-row>a{grid-template-columns:1fr auto}.wpb-commercial-lists .wpb-change-row .inline-actions,.wpb-commercial-lists .wpb-invoice-row .inline-actions{justify-content:flex-start;width:100%}}

/* Einheitliche Handlungszentrale */
.nav-task-count{align-items:center;background:#fff;border-radius:999px;color:#064c3e;display:inline-flex;font-size:12px;font-weight:750;height:24px;justify-content:center;margin-left:auto;min-width:24px;padding:0 7px}.task-page-heading{align-items:end}.task-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.task-summary-grid .card{display:grid;gap:4px;padding:20px 22px}.task-summary-grid span,.task-summary-grid small{color:var(--muted)}.task-summary-grid strong{color:var(--dark);font-size:28px}.task-summary-alert{border-left:4px solid var(--danger)}.task-groups{display:grid;gap:18px}.task-group{overflow:visible;padding:0}.task-group>header{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:18px 22px}.task-group>header h2{font-size:20px;margin:0}.task-group>header span{background:var(--surface-2);border-radius:999px;padding:4px 9px}.task-list{display:grid}.task-row{align-items:center;display:grid;gap:22px;grid-template-columns:minmax(280px,1fr) minmax(150px,auto) minmax(250px,auto);padding:18px 22px}.task-row+.task-row{border-top:1px solid var(--line)}.task-row.important{box-shadow:inset 3px 0 0 #d6a33a}.task-group-overdue .task-row{box-shadow:inset 3px 0 0 var(--danger)}.task-row-main{display:grid;gap:4px;min-width:0}.task-row-main strong{color:var(--dark);font-size:16px}.task-row-main small{color:var(--muted);overflow-wrap:anywhere}.task-kind{color:#08769a;font-size:11px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.task-row-facts{display:grid;gap:3px;text-align:right}.task-row-facts span{color:var(--muted);font-size:13px}.task-row-actions{align-items:center;display:flex;gap:8px;justify-content:flex-end}.task-row-actions form{margin:0}.task-snooze{position:relative}.task-snooze summary{color:var(--positive);cursor:pointer;font-size:13px;font-weight:700;list-style:none;padding:8px}.task-snooze summary::-webkit-details-marker{display:none}.task-snooze form{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);display:grid;min-width:150px;padding:7px;position:absolute;right:0;top:35px;z-index:10}.task-snooze button{background:transparent;border:0;border-radius:8px;cursor:pointer;padding:9px;text-align:left}.task-snooze button:hover{background:var(--surface-2)}.summary-item p{display:grid;gap:2px}.summary-item p small{color:var(--muted);font-size:12px;font-weight:500}.app-form-dialog{background:transparent;border:0;color:var(--ink);padding:20px;width:min(700px,calc(100vw - 24px))}.app-form-dialog::backdrop{background:rgba(3,31,26,.58);backdrop-filter:blur(3px)}.app-form-dialog-card{background:#fff;border-radius:20px;box-shadow:var(--shadow);padding:24px}.app-form-dialog-card>header,.app-form-dialog-card>footer{align-items:center;display:flex;justify-content:space-between}.app-form-dialog-card>header{margin-bottom:22px}.app-form-dialog-card>footer{border-top:1px solid var(--line);gap:10px;justify-content:flex-end;margin-top:22px;padding-top:18px}.wpb-finding{align-items:center;display:flex;gap:16px;justify-content:space-between}.wpb-finding>div{min-width:0}@media(max-width:900px){.task-row{grid-template-columns:minmax(0,1fr) auto}.task-row-facts{grid-column:1;text-align:left}.task-row-actions{grid-column:2;grid-row:1/span 2}}@media(max-width:680px){.task-summary-grid{grid-template-columns:1fr}.task-row{grid-template-columns:1fr;gap:12px}.task-row-facts,.task-row-actions{grid-column:1;grid-row:auto;text-align:left}.task-row-actions{flex-wrap:wrap;justify-content:flex-start}.wpb-finding{align-items:flex-start;flex-direction:column}}

.scenario-button {
  min-height: 34px;
  padding: 5px 12px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #4d655f;
  font-size: 12px;
  font-weight: 500;
}

.scenario-button:hover {
  background: #eef6f3;
  color: #174f43;
}

.scenario-button.active {
  background: #dceee7;
  color: #0b5648;
  box-shadow: none;
}

/* Offertenmanagement: vier gleich hohe, besser lesbare Kennzahlen */
.quote-kpis {
  align-items: stretch;
  gap: 16px;
}

.quote-kpi {
  min-height: 150px;
  padding: 25px 28px;
  align-content: start;
  gap: 10px;
}

.quote-kpi > span {
  color: #6b7773;
  font-size: 15px;
  line-height: 1.35;
}

.quote-kpi > strong,
.quote-kpi .money-display .money-number {
  min-height: 39px;
  color: #17231f;
  font-size: 34px;
  font-weight: 550;
  line-height: 1.12;
}

.quote-kpi .money-display small {
  margin-left: 5px;
  color: #6b7773;
  font-size: 11px;
  font-weight: 400;
}

.quote-kpi > small {
  color: #6b7773;
  font-size: 14px;
  line-height: 1.45;
}

@media (max-width: 900px) {
}

/* Dokumentfilter: klare Zeilen, identische Höhen, Aktionen rechts */
.document-filter-panel {
  padding: 22px 24px;
}

.document-list-filters {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: end;
  gap: 16px 18px;
}

.document-list-filters .form-field {
  display: grid;
  grid-template-rows: minmax(20px, auto) 52px;
  align-content: end;
  gap: 7px;
  min-width: 0;
  margin: 0;
}

.document-list-filters .form-field > span:first-child {
  min-height: 20px;
  color: #65716d;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.25;
}

.document-list-filters .filter-search {
  grid-column: span 6;
}

.document-list-filters .filter-search + .form-field,
.document-list-filters .document-type-filter {
  grid-column: span 3;
}

.document-list-filters .filter-party {
  grid-column: span 4;
}

.document-list-filters .filter-party + .form-field,
.document-list-filters .filter-party + .form-field + .form-field {
  grid-column: span 2;
}

.document-list-filters .filter-status {
  grid-column: span 4;
}

.document-list-filters .filter-bkp {
  grid-column: span 6;
}

.document-list-filters .filter-actions {
  grid-column: 9 / -1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  align-self: end;
  gap: 10px;
  min-height: 52px;
  margin: 0;
}

.document-list-filters .form-control,
.document-list-filters .button {
  height: 52px;
  min-height: 52px;
  color: #4f5f5a;
  font-size: 15px;
}

.document-list-filters input[type="date"] {
  color: var(--ink) !important;
}

.document-list-filters .bkp-filter-controls {
  display: grid;
  grid-template-columns: minmax(150px, .8fr) minmax(220px, 1.2fr);
  gap: 10px;
  height: 52px;
}

.document-list-filters .filter-actions .button.secondary {
  border: 1px solid #d3dcda;
  background: #fff;
  color: #43534e;
}

/* Dokumenttabelle: zwei gleichartige Aktionsspalten am rechten Rand */
.document-table th.document-action-heading,
.document-table th.document-pdf-heading,
.document-table td.document-action-cell,
.document-table td.document-pdf-cell {
  width: 148px;
  min-width: 148px;
  text-align: right;
}

.document-table td.document-action-cell,
.document-table td.document-pdf-cell {
  overflow: visible;
}

.document-table .document-action-cell .button,
.document-table .document-pdf-cell .button {
  width: 126px;
  min-height: 40px;
  justify-content: center;
  border: 1px solid #d3dcda;
  background: #fff;
  color: #263832;
  font-size: 13px;
  font-weight: 500;
}

.document-row-menu {
  position: relative;
  display: flex;
  justify-content: flex-end;
}

.document-row-menu .action-menu {
  top: calc(100% + 7px);
  right: 0;
  width: 220px;
  text-align: left;
}

.document-row-menu .action-menu form {
  display: contents;
}

.document-row-menu .action-menu a,
.document-row-menu .action-menu button {
  width: 100%;
  justify-content: flex-start;
  text-align: left;
}

@media (max-width: 1180px) {
  .quote-kpi {
    min-height: 142px;
    padding: 22px;
  }

  .document-list-filters .filter-search {
    grid-column: span 6;
  }

  .document-list-filters .filter-search + .form-field,
  .document-list-filters .document-type-filter {
    grid-column: span 3;
  }

  .document-list-filters .filter-party,
  .document-list-filters .filter-status,
  .document-list-filters .filter-bkp {
    grid-column: span 6;
  }

  .document-list-filters .filter-party + .form-field,
  .document-list-filters .filter-party + .form-field + .form-field {
    grid-column: span 3;
  }

  .document-list-filters .filter-actions {
    grid-column: 7 / -1;
  }
}

@media (max-width: 820px) {
  .scenario-button {
    min-height: 32px;
    padding: 4px 9px;
  }

  .document-list-filters .filter-search,
  .document-list-filters .filter-search + .form-field,
  .document-list-filters .document-type-filter,
  .document-list-filters .filter-party,
  .document-list-filters .filter-status,
  .document-list-filters .filter-bkp,
  .document-list-filters .filter-actions {
    grid-column: span 12;
  }

  .document-list-filters .filter-party + .form-field,
  .document-list-filters .filter-party + .form-field + .form-field {
    grid-column: span 6;
  }
}

@media (max-width: 560px) {

  .document-list-filters .bkp-filter-controls {
    grid-template-columns: 1fr;
    height: auto;
  }

  .document-list-filters .filter-bkp {
    grid-template-rows: minmax(20px, auto) auto;
  }

  .document-list-filters .filter-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .document-list-filters .filter-actions .button {
    width: 100%;
  }
}

/* 2.42.19: permanente Paketphasen, kompakte Übersicht und klare Budgetlage. */
.wpb-static-section {
  overflow: hidden;
}

.wpb-static-head {
  display: flex;
  min-height: 104px;
  padding: 24px 30px;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  border-bottom: 1px solid var(--line, #dce5e1);
}

.wpb-static-head h2 {
  margin: 5px 0 0;
}

.wpb-static-meta {
  display: grid;
  justify-items: end;
  gap: 2px;
  text-align: right;
}

.wpb-static-meta strong {
  font-size: 24px;
}

.wpb-static-meta small {
  color: var(--muted, #687972);
}

.wpb-changes {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #e0e8e5;
}

.wpb-change-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 64px;
  padding: 10px 0;
  align-items: center;
  gap: 14px;
  border-top: 1px solid #e6ecea;
}

.wpb-change-row > a {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(145px, auto);
  min-width: 0;
  align-items: center;
  gap: 16px;
  color: inherit;
  text-decoration: none;
}

.wpb-change-row > a > span {
  display: grid;
  min-width: 0;
  gap: 2px;
  color: #63746e;
  font-size: 12px;
}

.wpb-change-row > a b {
  overflow: hidden;
  color: #183b32;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wpb-change-row > a small {
  color: #71817c;
  font-size: 10px;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.wpb-change-row .inline-actions,
.wpb-change-row .inline-actions form {
  margin: 0;
}

.wpb-list-legend {
  display: flex;
  min-height: 32px;
  margin: 3px 2px 8px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 7px 18px;
  color: #667871;
  font-size: 12px;
}

.wpb-list-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}

.wpb-list-legend i {
  width: 10px;
  height: 10px;
  border-radius: 3px;
}

.wpb-list-legend i.paid,
.wpb-package-billing .control-billing-bar > span.paid {
  background: #08775f;
}

.wpb-list-legend i.invoiced-open,
.wpb-package-billing .control-billing-bar > span.invoiced-open {
  color: #17322b;
  background: #e3a632;
}

.wpb-list-legend i.expected,
.wpb-package-billing .control-billing-bar > span.expected {
  color: #24443d;
  background: #d9e8ec;
}

.wpb-list-legend i.overrun {
  background: #d94f49;
}

.wpb-package,
.wpb-package.overrun {
  border-left: 1px solid var(--line, #dce5e1);
}

.wpb-package-main {
  display: block;
  padding: 0;
}

.wpb-package-main .wpb-package-row {
  display: grid;
  grid-template-columns:
    minmax(250px, 1.05fr)
    minmax(280px, 480px)
    minmax(165px, .62fr)
    20px;
  min-height: 104px;
  padding: 14px 18px;
  align-items: center;
  gap: 18px;
}

.wpb-package-main .wpb-identity {
  min-width: 0;
}

.wpb-package-main .wpb-identity h2 {
  margin: 6px 0 2px;
  font-size: 19px;
}

.wpb-package-main .status-pill {
  margin-right: 5px;
}

.wpb-package-main .budget-status {
  letter-spacing: .025em;
}

.wpb-package-chart {
  width: 100%;
  max-width: 480px;
}

.wpb-package-chart .wpb-package-billing {
  gap: 0;
}

.wpb-package-chart .control-billing-bar {
  min-height: 27px;
}

.wpb-package-chart .control-billing-bar strong {
  font-size: 11px;
}

.wpb-package-chart .control-overrun-overlay {
  background: #d94f49;
  opacity: .92;
}

.wpb-chart-empty {
  color: var(--muted, #687972);
  font-size: 12px;
}

.wpb-package-result {
  display: flex;
  min-width: 0;
  justify-content: flex-end;
  text-align: right;
}

.wpb-package-result strong {
  color: #075c4a;
  font-size: 13px;
}

@media (max-width: 1080px) {
  .wpb-package-main .wpb-package-row {
    grid-template-columns: minmax(220px, .9fr) minmax(250px, 1fr) minmax(145px, .55fr) 18px;
    gap: 14px;
  }
}

@media (max-width: 820px) {
  .wpb-package-main .wpb-package-row {
    grid-template-columns: minmax(0, 1fr) 18px;
    min-height: 0;
    padding: 16px;
  }

  .wpb-package-chart,
  .wpb-package-result {
    grid-column: 1 / -1;
    max-width: none;
  }

  .wpb-package-result {
    justify-content: flex-start;
    text-align: left;
  }

  .wpb-list-legend {
    justify-content: flex-start;
  }

  .wpb-change-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .wpb-static-head {
    min-height: 0;
    padding: 20px 18px;
    align-items: flex-start;
  }

  .wpb-static-meta strong {
    font-size: 20px;
  }

  .wpb-change-row > a {
    grid-template-columns: 1fr;
  }

  .wpb-change-row .inline-actions,
  .wpb-change-row .inline-actions form,
  .wpb-change-row .button {
    width: 100%;
  }
}

/* 2.42.18: ruhige Filterhierarchie und kompakte Arbeitspaketübersicht. */
.wpb-filter form {
  display: block;
}

.wpb-filter .wpb-filter-fields {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  padding: 0;
}

.wpb-filter label > span {
  font-weight: 400;
}

.wpb-filter .wpb-filter-footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid #e1e9e6;
}

.wpb-filter .wpb-sort-controls {
  display: flex;
  align-items: end;
  gap: 18px;
  min-width: 0;
}

.wpb-filter .wpb-sort-field {
  width: min(320px, 40vw);
}

.wpb-filter .wpb-archive-toggle {
  display: inline-flex;
  grid-template-columns: none;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 0 2px;
  cursor: pointer;
}

.wpb-filter .wpb-archive-toggle input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 0;
  padding: 0;
  accent-color: var(--accent, #075c4a);
}

.wpb-filter .wpb-archive-toggle > span {
  color: #50665f;
  font-size: 14px;
  white-space: nowrap;
}

.wpb-filter .wpb-filter-actions {
  display: flex;
  grid-column: auto;
  flex: 0 0 auto;
  justify-content: flex-end;
  gap: 10px;
  width: auto;
}

.wpb-filter .wpb-filter-actions .button {
  width: auto;
  min-width: 150px;
}

.wpb-package-main {
  gap: 11px;
  padding: 15px 20px;
}

.wpb-package-main header {
  align-items: center;
}

.wpb-identity h2 {
  margin-top: 5px;
  font-size: 20px;
}

.wpb-package-billing {
  gap: 5px;
}

.wpb-package-billing .control-billing-bar {
  min-height: 32px;
}

.wpb-package-billing .control-billing-bar > span.paid {
  background: #086b58;
}

.wpb-package-billing .control-billing-bar > span.invoiced-open {
  color: #fff;
  background: #298da1;
}

.wpb-package-billing .control-billing-bar > span.expected {
  color: #24443d;
  background: #d7ebe6;
}

.wpb-package-billing .control-billing-legend i.paid {
  background: #086b58;
}

.wpb-package-billing .control-billing-legend i.invoiced-open {
  background: #298da1;
}

.wpb-package-billing .control-billing-legend i.expected {
  background: #d7ebe6;
}

.wpb-package-foot {
  padding-top: 8px;
}

@media (max-width: 1020px) {
  .wpb-filter .wpb-filter-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wpb-filter .wpb-filter-footer {
    align-items: stretch;
  }
}

@media (max-width: 720px) {
  .wpb-filter .wpb-filter-fields {
    grid-template-columns: 1fr;
  }

  .wpb-filter .wpb-filter-wide {
    grid-column: auto;
  }

  .wpb-filter .wpb-filter-footer,
  .wpb-filter .wpb-sort-controls,
  .wpb-filter .wpb-filter-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .wpb-filter .wpb-sort-field,
  .wpb-filter .wpb-filter-actions .button {
    width: 100%;
  }

  .wpb-filter .wpb-archive-toggle {
    min-height: 44px;
  }

  .wpb-package-main {
    padding: 14px 15px;
  }
}

.financing-range-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  width: 100%;
  max-width: none;
}

.inline-party-create {
  margin-top: 9px;
  border: 1px solid var(--line, #d7dfdb);
  border-radius: 10px;
  background: #fbfcfb;
}

.inline-party-create summary {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 8px 12px;
  color: var(--accent, #075d4f);
  cursor: pointer;
  list-style: none;
}

.inline-party-create summary::-webkit-details-marker {
  display: none;
}

.inline-party-create summary::before {
  content: "+";
  margin-right: 8px;
  font-size: 1.15rem;
}

.inline-party-create[open] .form-field {
  padding: 0 12px 12px;
}

.financing-inflow-section {
  margin-top: 26px;
}

/* Budgetposten */
.budget-entry-form {
  display: grid;
  gap: clamp(22px, 2.6vw, 32px);
  width: 100%;
  max-width: none;
}

.budget-entry-form .booking-form-section {
  margin: 0;
  padding: clamp(22px, 2.6vw, 34px);
  overflow: visible;
}

.budget-entry-form .booking-form-section-head {
  margin: -34px -34px clamp(20px, 2vw, 28px);
  padding: 18px clamp(22px, 2.6vw, 34px) 16px;
}

.budget-identity-grid,
.budget-bkp-grid,
.budget-amount-grid,
.budget-forecast-grid {
  display: grid;
  gap: 18px;
  align-items: start;
}

.budget-identity-grid {
  grid-template-columns: minmax(260px, 1fr) minmax(150px, 0.45fr) minmax(360px, 1.55fr);
}

.budget-bkp-grid {
  grid-template-columns: minmax(250px, 0.8fr) minmax(360px, 2.2fr);
}

.budget-amount-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.budget-forecast-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.budget-forecast-grid .budget-auto-checkbox,
.budget-forecast-grid .forecast-reason-field,
.budget-forecast-grid .budget-field-full {
  grid-column: 1 / -1;
}

.budget-entry-form .budget-auto-checkbox {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  min-height: 54px;
  padding: 15px 16px;
  border: 1px solid var(--line, #d7dfdb);
  border-radius: 10px;
  background: #f8faf9;
}

.budget-entry-form .budget-auto-checkbox input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
}

.budget-entry-form .budget-auto-checkbox label {
  margin: 0;
  line-height: 1.45;
}

.budget-entry-form .budget-checkbox-label {
  display: block;
  line-height: 1.4;
}

.budget-entry-form textarea {
  min-height: 120px;
}

.budget-entry-form .budget-form-actions {
  justify-content: flex-end;
  margin: 0;
  padding: 18px clamp(22px, 2.6vw, 34px);
}

.budget-danger-zone {
  margin: 0;
}

.budget-danger-wrap {
  display: block;
  width: 100%;
  max-width: none;
  margin-top: clamp(22px, 2.6vw, 32px);
}

.budget-catalog-note {
  margin: 18px 0 0;
  padding: 12px 14px;
  border-radius: 9px;
  background: #f3f7f5;
  color: var(--muted, #66736e);
  line-height: 1.45;
}

@media (max-width: 980px) {
  .budget-entry-form .booking-form-section-head {
    margin: -22px -22px 22px;
  }

  .budget-identity-grid,
  .budget-amount-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .budget-entry-form {
    gap: 18px;
  }

  .budget-entry-form .booking-form-section-head {
    margin: -22px -22px 20px;
  }

  .budget-identity-grid,
  .budget-bkp-grid,
  .budget-amount-grid,
  .budget-forecast-grid {
    grid-template-columns: 1fr;
  }
}

/* Dokumentliste: eine klare Aktionsspalte und ruhiger Titel-Hover */
.document-table {
  min-width: 0;
  table-layout: fixed;
}

.document-table .document-date-column {
  width: 120px;
}

.document-table .document-type-column {
  width: 190px;
}

.document-table .document-correspondent-column {
  width: 22%;
}

.document-table .document-title-column {
  width: auto;
}

.document-table .document-actions-column {
  width: 260px;
}

.document-table td.document-actions-cell {
  width: 260px;
  min-width: 260px;
}

.document-table td.document-actions-cell {
  display: table-cell;
  padding: 14px 18px;
  white-space: nowrap;
  vertical-align: middle;
}

.document-actions-inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: center;
  width: 100%;
}

.document-actions-inner > .document-row-menu,
.document-actions-inner > .document-action-placeholder {
  min-width: 0;
  width: 100%;
}

.document-table .document-actions-cell .button,
.document-actions-cell .document-row-menu > button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-width: 0;
  height: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0 10px;
  box-sizing: border-box;
  line-height: 1.15;
}

.document-actions-cell .document-pdf-button {
  border-color: var(--accent, #075d4f);
  background: var(--accent, #075d4f);
  color: #fff;
  text-align: center;
}

.document-actions-cell .document-pdf-button:hover {
  background: var(--accent-strong, #064c41);
  color: #fff;
}

.document-review-actions > summary {
  gap: 7px;
}

.document-actions-cell .document-row-menu > button {
  gap: 7px;
}

.document-actions-cell .action-menu {
  right: 0;
  min-width: 250px;
}

.document-actions-cell .action-menu form {
  margin: 0;
}

.menu-caret {
  display: inline-block;
  transform: translateY(-1px);
  color: currentColor;
  font-size: 0.8em;
  line-height: 1;
}

.document-row.document-missing td:not(.document-actions-cell) {
  color: #7c8581;
  background: #fafafa;
}

.paperless-missing-label {
  color: #ae4339;
}

.document-table .document-row:hover .document-preview-popover,
.document-table .document-row:focus-within .document-preview-popover {
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  pointer-events: none;
}

.document-table .document-row .document-title-cell:hover .document-preview-popover {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition-delay: 320ms;
}

.document-table .document-title-cell {
  position: relative;
}

/* Dokumentprüfung */
.review-analysis-disclosures .extraction-block.warning {
  border-color: #e7d5a8;
  background: #fff9ed;
}

.review-analysis-disclosures .extraction-block.warning > summary {
  color: #343936;
}

.review-analysis-disclosures .priority-risks[open] > summary {
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid #e4d1a2;
}

.document-table-wrap {
  scroll-margin-top: 96px;
}

.document-review-queue-button {
  align-items: center;
  display: inline-flex;
  gap: 10px;
}

.document-review-queue-badge {
  align-items: center;
  background: #bd3f37;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 12px;
  font-weight: 650;
  height: 22px;
  justify-content: center;
  min-width: 22px;
  padding: 0 6px;
}

.nav-review-count {
  align-items: center;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  color: #063f35;
  display: inline-flex;
  font-size: 12px;
  font-weight: 650;
  height: 24px;
  justify-content: center;
  margin-left: auto;
  min-width: 24px;
  padding: 0 5px;
}

.app-confirm-dialog {
  background: transparent;
  border: 0;
  color: var(--ink);
  margin: auto;
  max-width: min(520px, calc(100vw - 32px));
  padding: 0;
  width: 100%;
}

.app-confirm-dialog::backdrop {
  background: rgba(8, 31, 26, 0.46);
  backdrop-filter: blur(5px);
}

.app-confirm-card {
  background: #fff;
  border: 1px solid #d9e1dd;
  border-radius: 20px;
  box-shadow: 0 24px 70px rgba(8, 31, 26, 0.24);
  display: block;
}

.app-confirm-icon {
  align-items: center;
  background: #fff0ee;
  border-radius: 50%;
  color: #b63c34;
  display: flex;
  font-size: 20px;
  font-weight: 650;
  height: 44px;
  justify-content: center;
  width: 44px;
}

.app-confirm-copy {
  color: #5f6964;
  line-height: 1.5;
  margin: 0;
}

.app-confirm-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.archive-review-button {
  border: 1px solid #cbd4d0 !important;
  background: #fff !important;
  color: #5d6762 !important;
  box-shadow: none !important;
}

.archive-review-button:hover {
  border-color: #aeb9b4 !important;
  background: #f6f8f7 !important;
}

@media (max-width: 1100px) {
  .budget-amount-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .financing-range-row,
  .budget-bkp-grid,
  .budget-amount-grid,
  .budget-forecast-grid {
    grid-template-columns: 1fr;
  }

  .budget-forecast-grid .budget-auto-checkbox,
  .budget-forecast-grid .forecast-reason-field,
  .budget-forecast-grid .budget-field-full {
    grid-column: 1;
  }

  .document-table td.document-actions-cell {
    width: 250px;
    min-width: 250px;
  }

  .document-table {
    min-width: 1040px;
  }
}

.document-upload-review-heading,
.document-upload-review-heading > div,
.document-upload-review-heading h1 {
  min-width: 0;
  max-width: 100%;
}

.document-upload-review-heading h1 {
  overflow-wrap: anywhere;
}

/* Einheitlicher Listen-Hover: identisch zur Dokumentliste und nur auf
 * Geräten mit echtem Hover. Zellgrenzen und interaktive Inhalte bleiben
 * unverändert, weil ausschliesslich die Zeilenflaeche animiert wird. */
:root {
  --list-row-hover: #f5f9f7;
  --list-row-transition: background-color .16s ease;
}

[data-row-href] {
  cursor: pointer;
}

[data-row-href]:focus-visible {
  outline: 3px solid rgba(20, 107, 82, .22);
  outline-offset: -3px;
}

.booking-table tbody tr,
.document-table tbody tr,
.cost-row,
.risk-list-entry,
.task-row,
.activity-event,
    .decision-row,
    .decision-card,
.wpb-package,
.wpb-record-list > article,
.wpb-change-row,
.wpb-invoice-row,
.linked-document-row,
.linked-work-package-row {
  transition: var(--list-row-transition);
}

@media (hover: hover) and (pointer: fine) {
  .booking-table tbody tr:hover,
  .document-table tbody tr:hover,
  .cost-row:hover,
  .risk-list-entry:hover,
  .task-row:hover,
  .activity-event:hover,
  .decision-row:hover,
  .decision-card:hover,
  .wpb-package:hover,
  .wpb-record-list > article:hover,
  .wpb-change-row:hover,
  .wpb-invoice-row:hover,
  .linked-document-row:hover,
  .linked-work-package-row:hover {
    background-color: var(--list-row-hover);
  }

}

@media (hover: none), (pointer: coarse) {
  .booking-table tbody tr:hover,
  .document-table tbody tr:hover,
  .cost-row:hover,
  .risk-list-entry:hover,
  .task-row:hover,
  .activity-event:hover,
  .decision-row:hover,
  .decision-card:hover,
  .wpb-package:hover,
  .wpb-record-list > article:hover,
  .wpb-change-row:hover,
  .wpb-invoice-row:hover,
  .linked-document-row:hover,
  .linked-work-package-row:hover {
    background-color: transparent;
  }
}

.document-work-package-card > .section-head { margin-bottom: 20px; }
.linked-work-package-list { gap: 10px; margin-bottom: 20px; }
.linked-work-package-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.linked-work-package-row > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-width: 0;
  flex: 1 1 auto;
}
.linked-work-package-row > form { flex: 0 0 auto; }
.document-work-package-form { grid-template-columns: minmax(0, 1fr) auto; }

.payment-row-actions { display: flex; align-items: center; gap: 8px; }

@media (max-width: 680px) {
  .linked-work-package-row { align-items: stretch; flex-direction: column; }
  .linked-work-package-row > a { align-items: flex-start; flex-direction: column; }
  .linked-work-package-row > form .button { width: 100%; }
}

/* Dokumente: kompakte Übersicht und finales Zwei-Zeilen-Filterraster */
.document-overview-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 18px 0 20px;
}

.document-overview,
.document-overview.finance,
.document-overview.reference {
  position: relative;
  overflow: visible;
  grid-template-rows: auto 1fr;
  min-height: 112px;
  padding: 18px 20px;
  gap: 12px;
  border-color: #d5e4de;
  background: #edf6f2;
}

.document-overview .document-overview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.document-overview .document-overview-head > span:first-child {
  overflow: hidden;
  color: #5f706a;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .055em;
  line-height: 1.25;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.document-overview strong {
  align-self: end;
  font-size: 34px;
}

.document-overview small {
  display: none;
}

.document-overview .document-overview-info {
  flex: 0 0 19px;
  width: 19px;
  height: 19px;
  min-width: 19px;
  color: #47685f;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
}

.document-overview .document-overview-info > span:first-child {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: 0;
  text-transform: none;
}

.document-overview .document-overview-info .field-info-popover {
  right: -4px;
  left: auto;
  width: min(310px, calc(100vw - 40px));
  transform: none;
  color: var(--ink);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
}

.document-filter-panel {
  padding: 20px 22px;
  container-type: inline-size;
}

.document-list-filters {
  display: grid;
  grid-template-columns:
    minmax(0, 1.6fr)
    minmax(0, 1.6fr)
    minmax(0, 1.25fr)
    132px
    132px
    150px
    120px;
  grid-template-areas:
    "search party type date-from date-to status financial"
    "bkp-search bkp-search bkp-select bkp-select bkp-select actions actions";
  align-items: end;
  gap: 14px;
  min-width: 0;
}

/*
 * This form used to be positioned with sibling selectors and grid-column
 * spans.  Reset those legacy declarations with deliberately higher
 * specificity before assigning the named areas below.  Otherwise the order
 * breaks as soon as a field is inserted or the available content width
 * changes beside the sidebar.
 */
.document-filter-panel .document-list-filters.document-list-filters > * {
  grid-column: auto;
  grid-row: auto;
}

.document-list-filters > *,
.document-list-filters .form-field,
.document-list-filters .form-control,
.document-list-filters input,
.document-list-filters select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.document-list-filters .form-field > span:first-child {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.document-list-filters .form-field {
  grid-template-rows: 20px 50px;
  gap: 7px;
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-search {
  grid-area: search;
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-party {
  grid-area: party;
}

.document-filter-panel .document-list-filters.document-list-filters > .document-type-filter {
  grid-area: type;
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-financial {
  grid-area: financial;
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-date-from {
  grid-area: date-from;
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-date-to {
  grid-area: date-to;
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-status {
  grid-area: status;
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-bkp-search {
  grid-area: bkp-search;
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-bkp-select {
  grid-area: bkp-select;
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-actions {
  grid-area: actions;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 10px;
  min-height: 50px;
}

.document-list-filters .form-control,
.document-list-filters .button {
  height: 50px;
  min-height: 50px;
}

.document-list-filters .filter-actions .document-filter-reset {
  border-color: #c7ddd4;
  background: #e5f2ed;
  color: #245d50;
}

.document-list-filters .filter-actions .document-filter-reset:hover,
.document-list-filters .filter-actions .document-filter-reset:focus-visible {
  border-color: #afd0c3;
  background: #d8ebe3;
  color: #174c40;
}

@media (max-width: 1400px) {
  .document-overview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .document-filter-panel {
    padding: 18px;
  }
}

@media (max-width: 560px) {
  .document-overview-grid {
    grid-template-columns: 1fr;
  }

  .document-list-filters {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "search"
      "party"
      "type"
      "financial"
      "date-from"
      "date-to"
      "status"
      "bkp-search"
      "bkp-select"
      "actions";
  }

  .document-list-filters .filter-actions {
    grid-template-columns: 1fr;
  }
}

@container (max-width: 1180px) {
  .document-list-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas:
      "search search search party party party"
      "type type date-from date-to status financial"
      "bkp-search bkp-search bkp-select bkp-select actions actions";
  }
}

@container (max-width: 760px) {
  .document-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "search search"
      "party party"
      "type type"
      "date-from date-to"
      "status financial"
      "bkp-search bkp-select"
      "actions actions";
  }
}

@container (max-width: 480px) {
  .document-list-filters {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "search"
      "party"
      "type"
      "financial"
      "date-from"
      "date-to"
      "status"
      "bkp-search"
      "bkp-select"
      "actions";
  }
}

/* Einheitliche Listenfilter für Finanzierung, Kosten und Liquidität. */
.booking-filters.unified-list-filters {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 14px 16px;
  align-items: end;
}

.booking-filters.unified-list-filters > * {
  min-width: 0;
  grid-column: auto;
}

.booking-filters.unified-list-filters > label {
  display: grid;
  grid-template-rows: 20px 50px;
  gap: 7px;
  align-content: end;
  margin: 0;
}

.booking-filters.unified-list-filters input,
.booking-filters.unified-list-filters select {
  width: 100%;
  height: 50px;
  min-height: 50px;
  margin: 0;
}

.unified-list-filters .filter-date-from { grid-area: date-from; }
.unified-list-filters .filter-date-to { grid-area: date-to; }
.unified-list-filters .filter-title { grid-area: title; }
.unified-list-filters .filter-category { grid-area: category; }
.unified-list-filters .filter-owner { grid-area: owner; }
.unified-list-filters .filter-party { grid-area: party; }
.unified-list-filters .filter-source { grid-area: source; }
.unified-list-filters .filter-direction { grid-area: direction; }
.unified-list-filters .filter-status { grid-area: status; }
.unified-list-filters .filter-amount-min { grid-area: amount-min; }
.unified-list-filters .filter-amount-max { grid-area: amount-max; }
.unified-list-filters .filter-stage { grid-area: stage; }

.unified-filter-actions {
  grid-area: actions;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  width: 100%;
  min-width: 0;
  justify-content: end;
  align-items: end;
}

.unified-filter-actions .button {
  width: 100%;
  min-width: 0;
  height: 50px;
  min-height: 50px;
  padding-inline: 14px;
  justify-content: center;
}

.unified-filter-reset {
  color: var(--ink);
  background: #e4f1ec;
  border-color: #c8ded5;
}

.unified-filter-reset:hover,
.unified-filter-reset:focus-visible {
  color: var(--ink);
  background: #d8ebe4;
  border-color: #b9d5ca;
}

.document-list-filters .filter-actions {
  gap: 16px;
}

.financing-unified-filters {
  grid-template-areas:
    "title title party party category owner stage stage"
    "date-from date-to amount-min amount-max . . actions actions";
}

.costs-unified-filters {
  grid-template-areas:
    "title title party party category status . ."
    "date-from date-to amount-min amount-max . . actions actions";
}

.liquidity-unified-filters {
  grid-template-areas:
    "title title source source direction status . ."
    "date-from date-to amount-min amount-max . . actions actions";
}

@media (max-width: 1700px) {
  .booking-filters.unified-list-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .financing-unified-filters {
    grid-template-areas:
      "title title title party party party"
      "category owner stage stage date-from date-to"
      "amount-min amount-max . . actions actions";
  }

  .costs-unified-filters {
    grid-template-areas:
      "title title title party party party"
      "category status date-from date-to amount-min amount-max"
      ". . . . actions actions";
  }

  .liquidity-unified-filters {
    grid-template-areas:
      "title title title source source source"
      "direction status date-from date-to amount-min amount-max"
      ". . . . actions actions";
  }
}

/*
 * Kompakte Desktop- und iPad-Breiten:
 * Vier verlässliche Spalten statt sechs zu schmaler Spalten. Die Aktionen
 * erhalten immer eine eigene Zeile und können deshalb nicht mit Betrags-
 * oder Datumsfeldern kollidieren.
 */
@media (min-width: 1101px) and (max-width: 1450px) {
  .booking-filters.unified-list-filters {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .booking-filters.unified-list-filters.financing-unified-filters {
    grid-template-areas:
      "title title party party"
      "category owner stage stage"
      "date-from date-to amount-min amount-max"
      "actions actions actions actions";
  }

  .booking-filters.unified-list-filters.costs-unified-filters {
    grid-template-areas:
      "title title party party"
      "category status date-from date-to"
      "amount-min amount-max . ."
      "actions actions actions actions";
  }

  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title source source"
      "direction status date-from date-to"
      "amount-min amount-max . ."
      "actions actions actions actions";
  }

  .booking-filters.unified-list-filters > .unified-filter-actions {
    width: min(100%, 416px);
    min-width: 0;
    grid-template-columns: repeat(2, minmax(170px, 1fr));
    gap: 16px;
    justify-self: end;
  }

  .booking-filters.unified-list-filters > .unified-filter-actions .button {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 1100px) {
  .booking-filters.unified-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .financing-unified-filters {
    grid-template-areas:
      "title title"
      "party party"
      "category owner"
      "stage stage"
      "date-from date-to"
      "amount-min amount-max"
      "actions actions";
  }

  .costs-unified-filters {
    grid-template-areas:
      "title title"
      "party party"
      "category status"
      "date-from date-to"
      "amount-min amount-max"
      "actions actions";
  }

  .liquidity-unified-filters {
    grid-template-areas:
      "title title"
      "source source"
      "direction status"
      "date-from date-to"
      "amount-min amount-max"
      "actions actions";
  }
}

/* 2.42.41: BKP-Verteilung kompakt anzeigen und nur im Dialog bearbeiten. */
#kostenziel>.wpb-allocation-list{margin-top:-2px}#kostenziel>.wpb-allocation-list>div{min-height:52px;padding:8px 0}#kostenziel>.wpb-allocation-list>div>strong{font-size:15px;white-space:nowrap}.wpb-allocation-dialog{max-width:min(760px,calc(100vw - 30px))}.wpb-allocation-dialog-card{display:grid;gap:22px}.wpb-allocation-dialog-card>.modal-head{margin-bottom:0}.wpb-allocation-editor,.wpb-allocation-add{display:grid;gap:14px}.wpb-allocation-editor h3,.wpb-allocation-add h3{margin:0;font-size:18px}.wpb-allocation-editor-list{display:grid;border:1px solid var(--line);border-radius:13px;background:#f8faf9;padding:0 16px}.wpb-allocation-editor-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:66px;padding:9px 0}.wpb-allocation-editor-list>div+div{border-top:1px solid var(--line)}.wpb-allocation-editor-list>div>span{display:grid;gap:2px}.wpb-allocation-editor-list>div>span small{color:var(--muted)}.wpb-allocation-editor-list form{margin:0}.wpb-allocation-editor>.button{justify-self:end}.wpb-allocation-add{padding-top:20px;border-top:1px solid var(--line)}.wpb-allocation-add form{display:grid;gap:14px}.wpb-allocation-add .form-grid{grid-template-columns:minmax(0,1fr) minmax(180px,.55fr);gap:14px}.wpb-allocation-add p{margin:0;color:var(--muted);font-size:13px}.wpb-allocation-add .button{justify-self:end}.wpb-allocation-dialog-card>.form-actions{margin-top:0}.wpb-allocation-dialog-card .wpb-percent-field{display:flex;align-items:center;gap:6px}@media(max-width:680px){.wpb-allocation-add .form-grid{grid-template-columns:1fr}.wpb-allocation-editor-list>div{grid-template-columns:minmax(0,1fr) auto}.wpb-allocation-editor-list>div>form{grid-column:2}.wpb-allocation-editor>.button,.wpb-allocation-add .button{width:100%;justify-self:stretch}}

/* Kanonische Select-Höhe: Safari wendet min-height auf native Selects nicht zuverlässig an. */
select.form-control{display:block;width:100%;height:50px;min-height:50px;padding:0 42px 0 13px;line-height:normal}dialog select.form-control{height:52px;min-height:52px}

/* 2.43.1: eindeutiger, einzeiliger Beschaffungsweg. */
.wpb-procurement-section > header{align-items:flex-start}.wpb-procurement-heading{display:grid;gap:4px;min-width:max-content}.wpb-procurement-heading .eyebrow,.wpb-procurement-heading h2{margin:0;white-space:nowrap}.wpb-procurement-section .wpb-section-actions{align-items:flex-start;flex-wrap:wrap}
@media(max-width:900px){.wpb-procurement-section > header{grid-template-columns:1fr}.wpb-procurement-heading{min-width:0}.wpb-procurement-section .wpb-section-actions{justify-content:flex-start}}

@media (max-width: 480px) {
  .booking-filters.unified-list-filters {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .booking-filters.unified-list-filters > label {
    width: 100%;
  }

  .unified-filter-actions {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .unified-filter-actions .button {
    width: 100%;
    min-width: 0;
  }
}

/* v2.37.8: eigener, kollisionsfreier Bereich für die Filteraktionen. */
@media (min-width: 1701px) {
  .booking-filters.unified-list-filters {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  .booking-filters.unified-list-filters.financing-unified-filters {
    grid-template-areas:
      "title title title party party party category category owner owner stage stage"
      "date-from date-from date-to date-to amount-min amount-min amount-max amount-max actions actions actions actions";
  }

  .booking-filters.unified-list-filters.costs-unified-filters {
    grid-template-areas:
      "title title title title party party party party category category status status"
      "date-from date-from date-to date-to amount-min amount-min amount-max amount-max actions actions actions actions";
  }

  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title title title source source source source direction direction status status"
      "date-from date-from date-to date-to amount-min amount-min amount-max amount-max actions actions actions actions";
  }

  .booking-filters.unified-list-filters > .unified-filter-actions {
    grid-area: actions;
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 150px));
    align-items: end;
    justify-content: flex-end;
    gap: 16px;
  }

  .booking-filters.unified-list-filters > .unified-filter-actions .button {
    width: 100%;
    min-width: 0;
  }
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-actions > .button.document-filter-reset {
  border-color: #c7ddd4 !important;
  background: #e5f2ed !important;
  color: #245d50 !important;
  box-shadow: none !important;
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-actions > .button.document-filter-reset:hover,
.document-filter-panel .document-list-filters.document-list-filters > .filter-actions > .button.document-filter-reset:focus-visible {
  border-color: #afd0c3 !important;
  background: #d8ebe3 !important;
  color: #174c40 !important;
}

@media (min-width: 821px) {
  .document-filter-panel .document-list-filters.document-list-filters > .filter-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
  }
}

/*
 * v2.37.10/11: Die Listenfilter richten ihren Umbruch an der tatsächlich
 * verfügbaren Inhaltsbreite aus. Fenster-Media-Queries allein berücksichtigen
 * die feste Seitenleiste nicht und liessen dadurch Felder und Aktionen bei
 * schmalem Desktop-Inhalt kollidieren.
 */
.content {
  container-type: inline-size;
}

.booking-filters.unified-list-filters > *,
.booking-filters.unified-list-filters input,
.booking-filters.unified-list-filters select,
.booking-filters.unified-list-filters .button {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}

.booking-filters.unified-list-filters > .unified-filter-actions {
  grid-area: actions;
}

@container (max-width: 1400px) {
  .booking-filters.unified-list-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .booking-filters.financing-unified-filters {
    grid-template-areas:
      "title title title party party party"
      "category owner stage stage date-from date-to"
      "amount-min amount-min amount-max amount-max actions actions";
  }

  .booking-filters.costs-unified-filters {
    grid-template-areas:
      "title title title party party party"
      "category status date-from date-to . ."
      "amount-min amount-min amount-max amount-max actions actions";
  }

  .booking-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title title source source source"
      "direction status date-from date-to . ."
      "amount-min amount-min amount-max amount-max actions actions";
  }
}

@container (max-width: 1180px) {
  .booking-filters.unified-list-filters {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .booking-filters.financing-unified-filters {
    grid-template-areas:
      "title title party party"
      "category owner stage stage"
      "date-from date-to amount-min amount-max"
      "actions actions actions actions";
  }

  .booking-filters.costs-unified-filters {
    grid-template-areas:
      "title title party party"
      "category status date-from date-to"
      "amount-min amount-min amount-max amount-max"
      "actions actions actions actions";
  }

  .booking-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title source source"
      "direction status date-from date-to"
      "amount-min amount-min amount-max amount-max"
      "actions actions actions actions";
  }

  .booking-filters.unified-list-filters > .unified-filter-actions {
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-self: stretch;
    width: 100%;
  }

  .timeline-filter {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .timeline-filter .button {
    width: 100%;
  }
}

@container (max-width: 720px) {
  .booking-filters.unified-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .booking-filters.financing-unified-filters {
    grid-template-areas:
      "title title"
      "party party"
      "category owner"
      "stage stage"
      "date-from date-to"
      "amount-min amount-max"
      "actions actions";
  }

  .booking-filters.costs-unified-filters {
    grid-template-areas:
      "title title"
      "party party"
      "category status"
      "date-from date-to"
      "amount-min amount-max"
      "actions actions";
  }

  .booking-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title"
      "source source"
      "direction status"
      "date-from date-to"
      "amount-min amount-max"
      "actions actions";
  }

  .booking-filters.unified-list-filters > .unified-filter-actions {
    justify-self: stretch;
    width: 100%;
  }

  .timeline-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@container (max-width: 440px) {
  .booking-filters.unified-list-filters {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .booking-filters.unified-list-filters > label,
  .booking-filters.unified-list-filters > .unified-filter-actions {
    width: 100%;
  }

  .unified-filter-actions {
    grid-template-columns: 1fr;
  }

  .timeline-filter {
    grid-template-columns: minmax(0, 1fr);
  }
}

.booking-filters.unified-list-filters
  > .unified-filter-actions
  > .button.unified-filter-reset,
.booking-filters.unified-list-filters
  > .unified-filter-actions
  > .button.unified-filter-reset:link,
.booking-filters.unified-list-filters
  > .unified-filter-actions
  > .button.unified-filter-reset:visited,
.booking-filters.unified-list-filters
  > .unified-filter-actions
  > .button.unified-filter-reset:hover,
.booking-filters.unified-list-filters
  > .unified-filter-actions
  > .button.unified-filter-reset:focus-visible,
.booking-filters.unified-list-filters
  > .unified-filter-actions
  > .button.unified-filter-reset:active {
  background: #e5f2ed !important;
  border-color: #c7ddd4 !important;
  box-shadow: none !important;
  color: #245d50 !important;
}

/*
 * Einheitliches Maskendesign: Die Offertenmaske ist das visuelle Master.
 * Nur Anordnung und Darstellung werden vereinheitlicht; Formularfelder und
 * Aktionen bleiben in ihren jeweiligen Templates unverändert.
 */
.unified-form-heading {
  max-width: 1460px;
}

.unified-form-heading p {
  max-width: 820px;
  margin: 7px 0 0;
  color: var(--muted, #68736f);
}

/* Alle Karten der Dokumentpruefung folgen derselben rechten Inhaltskante. */
.pdf-viewer-card,
.document-work-package-card,
.review-existing-record-compact,
.tax-evidence-selector,
.document-review-technical {
  width: 100%;
  max-width: 1460px;
  min-width: 0;
  box-sizing: border-box;
}

.budget-entry-form .booking-form-section-head {
  margin: -22px -22px 20px;
  padding: 17px 22px 15px;
  border-bottom: 1px solid var(--line, #d9dfdc);
  border-radius: 16px 16px 0 0;
  background: #fff;
}

/* BKP-Neuanlage und -Bearbeitung: ein Rahmen statt gestapelter Einzelkarten. */
.budget-entry-form {
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}

.budget-entry-form .booking-form-section {
  grid-column: 1 / -1;
}

/* Projekteinstellungen verwenden dasselbe Sektions- und Feldraster. */
.unified-project-form {
  max-width: none;
}

.unified-project-form .transparency-note {
  margin: 0 0 20px;
  border: 1px solid #dbe7e1;
  background: #eef5f2;
}

@container (max-width: 960px) {
  .budget-identity-grid,
  .budget-bkp-grid,
  .budget-amount-grid,
  .budget-forecast-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@container (max-width: 620px) {
  .budget-entry-form .booking-form-section-head {
    margin: -18px -18px 18px;
    padding: 15px 18px 14px;
  }

  .budget-identity-grid,
  .budget-bkp-grid,
  .budget-amount-grid,
  .budget-forecast-grid {
    grid-template-columns: minmax(0, 1fr);
  }

}

/*
 * Listenfilter: Bei iPad- und schmalen Desktop-Inhaltsbreiten bleiben sechs
 * nutzbare Spalten erhalten. So teilen sich Betragsfelder und Aktionen die
 * letzte Zeile vollständig, statt rechts ungenutzte Fläche zu lassen.
 */
@container (min-width: 721px) and (max-width: 1180px) {
  .booking-filters.unified-list-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .booking-filters.unified-list-filters.financing-unified-filters {
    grid-template-areas:
      "title title title party party party"
      "category owner stage stage date-from date-to"
      "amount-min amount-min amount-max amount-max actions actions";
  }

  .booking-filters.unified-list-filters.costs-unified-filters {
    grid-template-areas:
      "title title title party party party"
      "category status date-from date-to . ."
      "amount-min amount-min amount-max amount-max actions actions";
  }

  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title title source source source"
      "direction status date-from date-to . ."
      "amount-min amount-min amount-max amount-max actions actions";
  }

  .booking-filters.unified-list-filters > .unified-filter-actions {
    grid-column: 5 / 7;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Die drei Aktionsplätze bleiben in jeder Listenart pixelgleich. */
.list-action-slots {
  width: 210px;
  min-width: 210px;
  grid-template-columns: 118px 38px 38px;
  justify-self: end;
  margin-left: auto;
  margin-right: 0;
}

.quote-row-actions .list-action-slots,
.decision-list-actions .list-action-slots {
  width: 210px;
  min-width: 210px;
}

.list-action-slots .context-action,
.document-actions-cell .list-action-slots .context-action {
  width: 118px !important;
  height: 38px !important;
  min-height: 38px !important;
  padding-block: 0 !important;
}

.list-action-slots .list-icon-action,
.document-actions-cell .list-action-slots .list-icon-action {
  width: 38px !important;
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 !important;
}

/* 2.38.4: gezielter UI-Feinschliff */
.timeline-filter input,
.timeline-filter select,
.timeline-filter .button {
  font-size: 16px;
}

.booking-table > thead > tr > th.list-actions-heading {
  padding-left: 18px;
  text-align: left;
}

/*
 * 2.38.6: Eine Aktionsgruppe ist listenübergreifend 210 px breit und besitzt
 * auf beiden Seiten 15 px Luft. Die Zelle muss diese 240 px vollständig
 * enthalten; andernfalls ragt die Gruppe bei Tabellen mit fixed layout in den
 * rechten Rand hinein.
 */
.booking-table > thead > tr > th.list-actions-heading,
.booking-table > tbody > tr > td.list-actions-cell,
.document-table td.document-actions-cell {
  box-sizing: border-box;
  width: 240px;
  min-width: 240px;
  padding: 14px 15px;
}

.document-table .document-actions-column {
  width: 240px;
}

/*
 * iPad Pro 11″ quer und vergleichbar schmale Inhaltsbereiche: Safari kann auf
 * dem iPad einen ca. 1400 px breiten Layout-Viewport melden. Deshalb richtet
 * sich der Umbruch an der tatsächlichen Breite des .content-Containers und
 * nicht mehr an der Fensterbreite.
 */
@container (min-width: 850px) and (max-width: 1180px) {
  .finance-table-wrap {
    max-width: 100%;
    overflow-x: hidden;
  }

  .finance-bookings {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    table-layout: fixed;
  }

  .finance-bookings th,
  .finance-bookings td {
    padding: 11px 7px;
    overflow-wrap: normal;
    word-break: normal;
  }

  .finance-bookings th {
    font-size: 11px;
    line-height: 1.25;
  }

  .finance-bookings th a.sortable {
    white-space: normal;
  }

  .finance-bookings th:nth-child(1) { width: 78px; }
  .finance-bookings th:nth-child(2) { width: 156px; }
  .finance-bookings th:nth-child(3) { width: 100px; }
  .finance-bookings th:nth-child(4) { width: 80px; }
  .finance-bookings th:nth-child(5) { width: 88px; }
  .finance-bookings th:nth-child(6),
  .finance-bookings td:nth-child(6) {
    display: none;
  }
  .finance-bookings th:nth-child(7) { width: 120px; }
  .finance-bookings th:nth-child(8),
  .finance-bookings td:nth-child(8) {
    width: 240px;
    min-width: 240px;
  }

  .finance-bookings td,
  .finance-bookings td small {
    font-size: 14px;
  }

  .finance-bookings td strong {
    font-size: 15px;
  }

  .finance-bookings td:nth-child(1),
  .finance-bookings td:nth-child(4) {
    font-size: 13px;
    white-space: nowrap;
  }

  .finance-bookings td:nth-child(2) a,
  .finance-bookings td:nth-child(2) strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .finance-bookings td:nth-child(2) small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .finance-bookings td:nth-child(3) {
    font-size: 14px;
  }

  .finance-bookings td:nth-child(5) .status-pill {
    max-width: 100%;
    padding: 5px 6px;
    font-size: 10px;
    letter-spacing: 0;
    white-space: nowrap;
  }
}

/* 2.39.0: Auftragscontrolling als zweite Offerten-Hauptansicht */
.quote-main-tabs {
  margin-bottom: 24px;
  padding: 4px;
  width: fit-content;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
}

.quote-main-tabs a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
}

.quote-main-tabs a.active {
  color: var(--accent);
  background: var(--positive-bg);
  box-shadow: none;
}

.quote-header-tabs {
  flex: 0 0 auto;
  margin: 0 auto;
  padding: 3px;
  border-radius: 10px;
}

.quote-header-tabs a {
  min-height: 32px;
  padding: 6px 10px;
  border-radius: 7px;
  font-size: 12px;
}

@media (max-width: 1350px) {
  .quote-header-tabs {
    margin-inline: auto;
  }
}

@media (max-width: 900px) {
  .topbar:has(.quote-header-tabs) {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    gap: 8px 10px;
    height: auto;
    min-height: 70px;
    padding: 10px 14px;
  }

  .topbar:has(.quote-header-tabs) .mobile-menu {
    grid-column: 1;
    grid-row: 1;
  }

  .topbar:has(.quote-header-tabs) .topbar-title {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
  }

  .quote-header-tabs {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    margin: 0;
  }

  .topbar:has(.quote-header-tabs) .topbar-actions {
    display: contents;
  }

  .topbar:has(.quote-header-tabs) .header-page-actions {
    grid-column: 1 / -1;
    grid-row: 3;
    flex-wrap: wrap;
    width: 100%;
  }

  .topbar:has(.quote-header-tabs) .scenario-switch {
    display: grid;
    grid-column: 1 / -1;
    grid-row: 4;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
  }

  .topbar:has(.quote-header-tabs) .notification-menu {
    grid-column: 3;
    grid-row: 1;
  }
}

/*
 * 2.41.0: Mobile Bedienflächen bleiben auch nach den kompakten
 * Kopfzeilenregeln mindestens 44 px gross. Die Phasenleiste berücksichtigt
 * ihre Rahmenbreite, damit bei 390 px kein horizontaler Seiten-Scroll entsteht.
 */
@media (max-width: 1100px) {
  .mobile-menu,
  .notification-menu > summary.icon-button,
  .scenario-button {
    min-width: 44px;
    min-height: 44px;
  }
}

@media (max-width: 760px) {
  .wpb-phase-tabs {
    box-sizing: border-box;
    margin-right: -12px;
    margin-left: -12px;
  }
}

.control-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 30px;
}

.control-kpis-detail {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.control-kpi {
  min-height: 132px;
  padding: 21px 23px;
  display: grid;
  align-content: start;
  gap: 7px;
}

.control-kpi > span,
.control-kpi > small {
  color: var(--muted);
}

.control-kpi > span {
  font-size: 13px;
}

.control-kpi > strong,
.control-kpi .money-display .money-number {
  font-size: 25px;
  line-height: 1.1;
}

.control-kpi > small {
  font-size: 12px;
  line-height: 1.4;
}

.control-kpi.accent {
  background: var(--positive-bg);
}

.control-kpi.warning {
  background: var(--warning-bg);
}

.control-filters {
  display: grid;
  grid-template-columns:
    minmax(220px, 1.6fr)
    minmax(220px, 1.6fr)
    minmax(150px, .8fr)
    minmax(150px, .8fr)
    minmax(280px, 1.15fr);
  gap: 14px;
  align-items: end;
  margin-bottom: 14px;
  padding: 16px;
}

.control-filter-search,
.control-filter-party {
  grid-column: auto;
}

.control-filters label {
  display: grid;
  gap: 6px;
}

.control-filters label > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
}

.control-filters input,
.control-filters select {
  height: 46px;
  min-width: 0;
  min-height: 46px;
  padding: 9px 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.control-filters .unified-filter-actions {
  grid-column: auto;
  grid-row: auto;
  width: 100%;
}

.control-overview-section {
  margin-top: 0;
}

.control-package-groups {
  overflow: hidden;
}

.control-bkp-group {
  border-top: 1px solid var(--line);
}

.control-bkp-group:first-child {
  border-top: 0;
}

.control-bkp-group > summary {
  list-style: none;
}

.control-bkp-group > summary::-webkit-details-marker {
  display: none;
}

.control-bkp-summary {
  min-height: 52px;
  padding: 8px 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  color: #0f6488;
  background: #dcebf2;
  cursor: pointer;
  transition: background .16s ease;
}

.control-bkp-summary:hover {
  background: #d2e5ee;
}

.control-bkp-summary > div {
  min-width: 0;
  display: flex;
  gap: 10px;
  align-items: center;
}

.control-bkp-summary > div strong {
  overflow: hidden;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.control-bkp-summary small {
  color: #58737f;
  font-size: 12px;
}

.control-bkp-summary > span {
  display: grid;
  gap: 2px;
  justify-items: end;
  color: var(--muted);
  font-size: 12px;
  white-space: nowrap;
}

.control-bkp-summary > span small {
  line-height: 1.1;
}

.control-bkp-summary > span strong {
  color: var(--ink);
  font-size: 14px;
}

.control-bkp-summary .control-bkp-variance {
  display: block;
  color: var(--muted);
  font-size: 14px;
  font-weight: 750;
  text-align: right;
}

.control-bkp-summary .control-bkp-variance.overrun {
  color: #c26b12;
}

.control-bkp-summary .control-bkp-variance.is-empty {
  min-width: 1px;
}

.control-bkp-chevron {
  font-size: 23px;
  line-height: 1;
  transform: rotate(0deg);
  transition: transform .16s ease;
}

.control-bkp-group[open] .control-bkp-chevron {
  transform: rotate(90deg);
}

.control-bkp-packages {
  background: #fff;
}

.control-package-row + .control-package-row {
  border-top: 1px solid var(--line);
}

.control-package-head {
  min-height: 50px;
  padding: 7px 14px 7px 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 24px;
  align-items: center;
  border-bottom: 1px solid #e7eeeb;
  background: #f7f9f9;
}

.control-package-head > .control-package-identity {
  min-width: 0;
  display: flex;
  gap: 9px;
  align-items: baseline;
  flex-wrap: wrap;
}

.control-package-head > .control-package-identity > strong {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
}

.control-package-head > .control-package-identity > span {
  color: #a8b5b0;
}

.control-package-head > .control-package-identity > small {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.35;
}

.control-package-amounts {
  display: flex;
  gap: 24px;
  align-items: center;
}

.control-package-amounts > span {
  display: grid;
  gap: 1px;
  justify-items: end;
  white-space: nowrap;
}

.control-package-amounts small {
  color: var(--muted);
  font-size: 11px;
}

.control-package-amounts strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 400;
}

.control-package-details {
  min-height: 38px;
  padding: 7px 13px;
  flex: 0 0 auto;
  gap: 8px;
  font-weight: 400;
}

.control-package-details span {
  font-size: 19px;
  line-height: 1;
}

.control-package-visuals {
  display: grid;
  grid-template-columns:
    minmax(350px, .56fr)
    minmax(540px, 1fr);
  align-items: stretch;
}

.control-package-visuals > section {
  min-width: 0;
  padding: 13px 18px 16px;
}

.control-package-visuals > section + section {
  border-left: 1px solid var(--line);
}

.control-package-progress {
  display: flex;
  align-items: flex-start;
}

.control-package-visuals h3 {
  margin: 0 0 13px;
  color: #55645f;
  font-size: 12px;
  font-weight: 500;
}

.control-lifecycle {
  position: relative;
  width: 100%;
  height: 54px;
  margin: 14px 34px 0;
  display: flex;
  justify-content: space-between;
}

.control-lifecycle::before,
.control-lifecycle::after {
  content: "";
  position: absolute;
  top: 11px;
  left: 12px;
  height: 3px;
  border-radius: 3px;
}

.control-lifecycle::before {
  right: 12px;
  background: #d7ddda;
}

.control-lifecycle::after {
  z-index: 0;
  width: 0;
  background: #116a91;
}

.control-lifecycle.stage-execution::after {
  width: calc(33.333% - 8px);
}

.control-lifecycle.stage-billing::after {
  width: calc(66.667% - 16px);
}

.control-lifecycle.stage-completed::after {
  width: calc(100% - 24px);
}

.control-lifecycle-step {
  position: relative;
  z-index: 1;
  width: 25px;
  flex: 0 0 25px;
  display: flex;
  justify-content: center;
  color: var(--muted);
}

.control-lifecycle-step:not(:last-child)::after {
  display: none;
}

.control-lifecycle-marker {
  position: relative;
  z-index: 1;
  width: 25px;
  height: 25px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border: 1.5px solid #c9d1ce;
  border-radius: 50%;
  background: #fff;
}

.control-lifecycle-step.completed .control-lifecycle-marker,
.control-lifecycle-step.current .control-lifecycle-marker {
  border-color: #116a91;
  background: #116a91;
}

.control-lifecycle-marker svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: #fff;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
}

.control-lifecycle-step.current small {
  color: #116a91;
  font-weight: 400;
}

.control-lifecycle-step small {
  position: absolute;
  top: 32px;
  left: 50%;
  width: max-content;
  max-width: 110px;
  font-size: 13px;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  transform: translateX(-50%);
}

.control-billing-heading {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
  align-items: baseline;
}

.control-package-visuals .control-billing-heading h3 {
  margin: 0;
}

.control-billing-variance {
  display: inline-flex;
  gap: 6px;
  align-items: baseline;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.2;
  text-align: right;
}

.control-billing-variance strong {
  font-size: 14px;
  font-weight: 400;
}

.control-billing-variance small {
  font-size: 12px;
}

.control-billing-variance.overrun {
  color: #b6433a;
}

.control-billing-variance.saving,
.control-billing-variance.within-budget {
  color: #287951;
}

.control-billing-track {
  position: relative;
}

.control-billing-bar {
  min-height: 52px;
  display: flex;
  overflow: hidden;
  border-radius: 8px;
  background: #eef1ef;
}

.control-billing-bar > span {
  width: var(--segment-width);
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  white-space: nowrap;
}

.control-billing-bar > span.paid {
  color: #fff;
  background: var(--accent);
}

.control-billing-bar > span.invoiced-open {
  color: #26332f;
  background: #a8b1ae;
}

.control-billing-bar > span.expected {
  color: var(--ink);
  background: #e5e8e6;
}

.control-billing-bar strong {
  overflow: hidden;
  padding: 0 7px;
  font-size: 14px;
  font-weight: 400;
  text-overflow: ellipsis;
}

.control-billing-bar .label-hidden strong {
  display: none;
}

.control-billing-bar.empty {
  justify-content: center;
  align-items: center;
  color: var(--muted);
  font-size: 12px;
}

.control-order-marker {
  position: absolute;
  z-index: 3;
  top: -3px;
  bottom: -3px;
  left: var(--order-marker);
  width: 2px;
  border-radius: 2px;
  background: #8f6a22;
  transform: translateX(-1px);
}

.control-billing-track.overrun .control-order-marker {
  background: #b6433a;
}

.control-overrun-overlay {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  left: var(--order-marker);
  border-radius: 0 8px 8px 0;
  background:
    repeating-linear-gradient(
      -45deg,
      rgba(190, 57, 48, .55) 0,
      rgba(190, 57, 48, .55) 5px,
      rgba(255, 226, 222, .55) 5px,
      rgba(255, 226, 222, .55) 10px
    );
  pointer-events: none;
}

.control-billing-track.saving .control-order-marker,
.control-billing-track.within-budget .control-order-marker {
  left: 100%;
}

.control-billing-meta {
  min-height: 22px;
  margin-top: 9px;
  display: flex;
  justify-content: space-between;
  gap: 10px 18px;
  align-items: flex-start;
}

.control-billing-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 15px;
  color: var(--muted);
  font-size: 12px;
}

.control-billing-legend span {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  white-space: nowrap;
}

.control-billing-legend i {
  width: 8px;
  height: 8px;
  border-radius: 2px;
}

.control-billing-legend i.paid {
  background: var(--accent);
}

.control-billing-legend i.invoiced-open {
  background: #a8b1ae;
}

.control-billing-legend i.expected {
  background: #e5e8e6;
}

/*
 * 2.39.8: Die Diagramme verwenden dieselbe blaue Akzentfamilie wie die
 * BKP-Gruppen im Auftragscontrolling. Finanzierung und Kosten bleiben durch
 * voneinander abweichende Helligkeitsfolgen unterscheidbar.
 */
.finance-stage-track {
  background:
    repeating-linear-gradient(to bottom, rgba(17, 106, 145, .24) 0 4px, transparent 4px 9px) 25% 0 / 1px 100% no-repeat,
    repeating-linear-gradient(to bottom, rgba(17, 106, 145, .24) 0 4px, transparent 4px 9px) 50% 0 / 1px 100% no-repeat,
    repeating-linear-gradient(to bottom, rgba(17, 106, 145, .24) 0 4px, transparent 4px 9px) 75% 0 / 1px 100% no-repeat,
    #f7fafc;
  border-color: #c8d9e1;
}

.finance-stage-track .maturity-segment {
  border-right-color: rgba(15, 91, 124, .22);
}

.segment-mortgage,
.segment-construction_credit {
  background: #b7d4e2;
}

.segment-equity {
  background: #dcebf2;
}

.segment-pension {
  background: #cbdfea;
}

.segment-loan {
  background: #a5c9dc;
}

.segment-subsidy {
  background: #e8f2f6;
}

.segment-cost-0 {
  background: #dcebf2;
}

.segment-cost-1 {
  background: #c8dfeb;
}

.segment-cost-2 {
  background: #b3d2e1;
}

.segment-cost-3 {
  background: #9dc4d8;
}

.segment-cost-4 {
  background: #84b3cc;
}

.segment-cost-5 {
  background: #6c9fbb;
}

@container (max-width: 1180px) {
  .cost-kpis .kpi-card {
    padding-inline: 12px;
  }

  .cost-kpis .kpi-card > strong {
    min-width: 0;
    font-size: 19px;
  }

  .cost-kpis .money-display {
    display: inline-grid;
    gap: 2px;
    align-items: start;
    white-space: normal;
  }

  .cost-kpis .money-display > .money-number {
    white-space: nowrap;
  }

  .cost-kpis .money-display > small {
    font-size: 10px;
    line-height: 1;
  }
}

@container (max-width: 820px) {
  .cost-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.control-detail-head {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: end;
  margin-bottom: 22px;
}

.control-detail-head h2 {
  margin: 2px 0 4px;
  font-size: 32px;
}

.control-detail-head p {
  margin: 0;
  color: var(--muted);
}

.control-head-actions {
  display: flex;
  gap: 12px;
  align-items: center;
}

.control-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 18px;
}

.control-section {
  overflow: hidden;
  margin-bottom: 18px;
}

.control-section > header {
  min-height: 86px;
  padding: 20px 24px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.control-section > header h3 {
  margin: 2px 0 0;
  font-size: 21px;
}

.control-value-list {
  margin: 0;
  padding: 8px 24px 13px;
}

.control-value-list > div {
  min-height: 51px;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.control-value-list dt {
  color: var(--muted);
}

.control-value-list dd {
  margin: 0;
  font-weight: 750;
  white-space: nowrap;
}

.control-value-list .total,
.control-value-list .forecast {
  font-weight: 800;
}

.control-value-list .forecast {
  color: var(--accent);
  border-bottom: 0;
}

.control-explainer {
  margin: 0;
  padding: 0 24px 22px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.control-count {
  min-width: 32px;
  min-height: 32px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  color: var(--accent);
  background: var(--positive-bg);
  font-weight: 800;
}

.control-finding-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 18px 24px 24px;
}

.control-finding {
  min-height: 82px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.control-finding.warning {
  border-color: #e9d59e;
  background: var(--warning-bg);
}

.control-finding.danger {
  border-color: #efc8c3;
  background: var(--danger-bg);
}

.control-finding-icon {
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--warning);
  font-weight: 850;
}

.control-finding.danger .control-finding-icon {
  background: var(--danger);
}

.control-finding p {
  margin: 4px 0 0;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.45;
}

.control-finding strong {
  color: var(--ink);
}

.control-close-footer form {
  margin: 0;
}

.control-timeline {
  padding: 5px 24px 20px;
}

.control-timeline-item {
  min-height: 74px;
  display: grid;
  grid-template-columns: 94px 18px minmax(0, 1fr) minmax(120px, auto);
  gap: 15px;
  align-items: center;
}

.control-timeline-item time {
  color: var(--muted);
  font-size: 13px;
}

.control-timeline-marker {
  position: relative;
  width: 12px;
  height: 12px;
  border: 3px solid #d5e8e1;
  border-radius: 50%;
  background: var(--accent);
}

.control-timeline-marker::after {
  content: "";
  position: absolute;
  top: 12px;
  left: 2px;
  width: 2px;
  height: 62px;
  background: var(--line);
}

.control-timeline-item:last-child .control-timeline-marker::after {
  display: none;
}

.control-timeline-item > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.control-timeline-item > div > span,
.control-timeline-item > div > small {
  color: var(--muted);
  font-size: 12px;
}

.control-timeline-amount {
  text-align: right;
  white-space: nowrap;
}

.control-close-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.control-close-grid > div {
  min-height: 104px;
  padding: 20px 24px;
  display: grid;
  align-content: center;
  gap: 7px;
  background: #fff;
}

.control-close-grid span {
  color: var(--muted);
  font-size: 12px;
}

.control-close-grid strong,
.control-close-grid .money-display .money-number {
  font-size: 21px;
}

.control-close-footer {
  min-height: 82px;
  padding: 16px 24px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
}

.control-close-footer p {
  margin: 0;
  color: var(--muted);
}

@container (max-width: 1180px) {
  .control-kpis,
  .control-kpis-detail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .control-filters {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .control-filter-search {
    grid-column: 1 / 3;
  }

  .control-filter-party {
    grid-column: 3 / 5;
  }

  .control-filters .unified-filter-actions {
    grid-column: 3 / 5;
    grid-row: auto;
    width: 100%;
    margin-left: 0;
  }

  .control-bkp-summary {
    grid-template-columns: minmax(0, 1fr);
    gap: 15px;
  }

  .control-package-visuals {
    grid-template-columns:
      minmax(310px, .58fr)
      minmax(460px, 1fr);
  }

  .control-package-progress {
    padding-inline: 14px;
  }

  .control-detail-grid {
    grid-template-columns: 1fr;
  }
}

@container (max-width: 900px) {
  .control-package-visuals {
    grid-template-columns: 1fr;
  }

  .control-lifecycle {
    margin-top: 14px;
  }

  .control-package-visuals > section + section {
    border-top: 1px solid var(--line);
    border-left: 0;
  }
}

/* 2.43.6: konsistente Hauptmasken, Navigation und mobile Bedienung. */
.primary-nav .nav-item-dashboard-child {
  margin-bottom: 8px;
}

.primary-nav .nav-item-dashboard-child + .nav-group-label,
.primary-nav .nav-group-label:not(:first-child) {
  margin-top: 20px;
}

.task-group > header {
  border-bottom-color: rgba(7, 63, 54, .1);
}

.task-group-overdue > header { background: #fff0ee; }
.task-group-today > header { background: #fff7df; }
.task-group-soon > header { background: #edf7f4; }
.task-group-later > header { background: #eef5f8; }
.task-group-undated > header { background: #f4f5f4; }
.task-group-done > header { background: #edf6ef; }

.review-existing-record {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 0 0 18px;
  padding: 18px 20px;
  border: 1px solid #bad8ce;
  border-radius: 10px;
  background: #edf7f3;
}

.review-existing-record h2,
.review-existing-record p { margin: 0; }
.review-existing-record p { margin-top: 4px; color: var(--muted); }

.wpb-commercial-lists > .wpb-changes,
.wpb-commercial-lists > .wpb-invoices {
  min-height: 0;
}

.wpb-commercial-lists .empty-state.compact {
  min-height: 0;
  padding: 18px 4px 6px;
  text-align: left;
}

.wpb-commercial-lists .empty-state.compact p {
  margin: 0;
  color: var(--muted);
  font-weight: 450;
}

.wpb-commercial-lists .wpb-change-row b,
.wpb-commercial-lists .wpb-invoice-row b,
.wpb-commercial-lists .wpb-change-row strong,
.wpb-commercial-lists .wpb-invoice-row strong {
  font-weight: 600;
}

/* Safari/iOS darf die semantischen Buttonfarben nicht durch Linkfarben ersetzen. */
.button,
button,
input[type="button"],
input[type="submit"] {
  -webkit-appearance: none;
  appearance: none;
}

a.button.primary,
button.button.primary,
.button.primary:visited {
  color: #fff;
  -webkit-text-fill-color: currentColor;
}

a.button.secondary,
button.button.secondary,
.button.secondary:visited,
a.button.subtle,
.button.subtle:visited {
  color: var(--accent);
  -webkit-text-fill-color: currentColor;
}

@media (max-width: 680px) {
  .content {
    padding-top: 20px;
    overflow-x: hidden;
  }

  .cost-heading-actions form:first-child {
    grid-column: 1 / -1;
  }

  .cost-heading-actions .toggle-control {
    width: 100%;
  }

  .cost-kpis {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }

  .cost-kpis .kpi-card {
    min-width: 0;
    padding: 14px 12px;
  }

  .cost-kpis .kpi-card > strong,
  .cost-kpis .money-number {
    font-size: 17px;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .cost-maturity-overview {
    padding: 16px 12px;
  }

  .cost-financing-chart .finance-stage-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .cost-financing-chart .finance-stage-track {
    width: 100%;
    min-width: 0;
  }

  .review-existing-record {
    align-items: flex-start;
    flex-direction: column;
  }

  .review-existing-record .button { width: 100%; }

  .wpb-commercial > header,
  .wpb-section > header {
    align-items: flex-start;
    gap: 14px;
  }

  .wpb-commercial > header .inline-actions,
  .wpb-section > header .inline-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .wpb-commercial > header .button,
  .wpb-section > header .button {
    width: 100%;
  }

  .wpb-change-row > a,
  .wpb-invoice-row > a {
    min-width: 0;
  }
}

@media (max-width: 420px) {
  .header-page-actions { grid-template-columns: 1fr; }
  .cost-heading-actions form:first-child { grid-column: 1; }
}

@container (max-width: 760px) {
  .quote-main-tabs {
    width: 100%;
  }

  .quote-main-tabs a {
    flex: 1;
    justify-content: center;
  }

  .control-kpis,
  .control-kpis-detail,
  .control-finding-list,
  .control-close-grid {
    grid-template-columns: 1fr;
  }

  .control-filters {
    grid-template-columns: 1fr;
  }

  .control-filters .unified-filter-actions {
    grid-column: auto;
  }

  .control-bkp-summary {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .control-bkp-summary > span {
    display: none;
  }

  .control-package-visuals {
    grid-template-columns: 1fr;
  }

  .control-package-visuals > section + section {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .control-package-head {
    grid-template-columns: minmax(0, 1fr) auto;
    padding-inline: 14px;
  }

  .control-package-amounts {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
  }

  .control-package-amounts > span {
    justify-items: start;
  }

  .control-package-visuals > section {
    padding-inline: 14px;
  }

  .control-billing-meta {
    flex-wrap: wrap;
  }

  .control-billing-heading {
    margin-left: auto;
  }

  .control-package-details {
    padding-inline: 10px;
  }

  .control-detail-head,
  .control-head-actions,
  .control-close-footer {
    display: grid;
    align-items: start;
  }

  .control-timeline-item {
    grid-template-columns: 76px 16px minmax(0, 1fr);
  }

  .control-timeline-amount {
    grid-column: 3;
    text-align: left;
  }
}

@media (max-width: 820px) {
}

@media (max-width: 560px) {
}

/* 2.42.19 finale Kaskade: Listenfarben und Interaktionszustände. */
.wpb-package-main {
  gap: 0;
  padding: 0;
}

.wpb-package-billing .control-billing-bar > span.paid,
.wpb-list-legend i.paid {
  background: #08775f;
}

.wpb-package-billing .control-billing-bar > span.invoiced-open,
.wpb-list-legend i.invoiced-open {
  color: #17322b;
  background: #e3a632;
}

.wpb-package-billing .control-billing-bar > span.expected,
.wpb-list-legend i.expected {
  color: #24443d;
  background: #d9e8ec;
}

.wpb-package-chart .control-billing-bar {
  min-height: 27px;
}

.wpb-package-chart .control-overrun-overlay {
  background: #d94f49;
  opacity: .92;
}

/* 2.42.20: freigegebene kompakte Arbeitspaketkarten. */
.wpb-package-main .wpb-package-row {
  grid-template-columns: minmax(250px, 360px) minmax(300px, 1fr) 230px;
  min-height: 116px;
  gap: 28px;
  padding: 16px 20px;
}

.wpb-package-chart {
  max-width: none;
}

.wpb-package-chart .control-billing-track {
  margin-bottom: 13px;
}

.wpb-package-chart .control-billing-bar {
  min-height: 48px;
  border-radius: 8px;
}

.wpb-package-chart .control-billing-bar strong {
  color: #14362f;
  font-size: 13px;
}

.wpb-package-billing .control-billing-bar > span.paid,
.wpb-list-legend i.paid {
  color: #14362f;
  background: #74cdb1;
}

.wpb-package-billing .control-billing-bar > span.invoiced-open,
.wpb-list-legend i.invoiced-open {
  color: #26332f;
  background: #f4c76b;
}

.wpb-package-chart .control-order-marker,
.wpb-package-chart .control-billing-track.overrun .control-order-marker,
.wpb-progress .control-order-marker,
.wpb-progress .control-billing-track.overrun .control-order-marker {
  top: calc(100% + 4px);
  bottom: auto;
  width: 0;
  height: 0;
  border: 0;
  border-right: 5px solid transparent;
  border-bottom: 8px solid #17211e;
  border-left: 5px solid transparent;
  border-radius: 0;
  background: transparent;
  transform: translateX(-50%);
}

.wpb-package-action {
  box-sizing: border-box;
  width: 230px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 16px;
  border-radius: 9px;
  color: #075c4a;
  background: #e4f3ee;
}

.wpb-package-action strong {
  overflow: hidden;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wpb-package-action .lucide {
  flex: 0 0 auto;
}

.wpb-package-action.is-disabled {
  color: #6d7b77;
  background: #f0f2f1;
}

.wpb-package-main:hover .wpb-package-action:not(.is-disabled),
.wpb-package-main:focus-visible .wpb-package-action:not(.is-disabled) {
  color: #064d3f;
  background: #d7ece5;
}

@media (max-width: 1080px) {
  .wpb-package-main .wpb-package-row {
    grid-template-columns: minmax(210px, .85fr) minmax(260px, 1fr) 200px;
    gap: 18px;
  }

  .wpb-package-action {
    width: 200px;
    padding: 0 13px;
  }

  .wpb-package-action strong {
    font-size: 12px;
  }
}

@media (max-width: 820px) {
  .wpb-package-main .wpb-package-row {
    grid-template-columns: minmax(0, 1fr) 210px;
    padding: 16px;
  }

  .wpb-package-chart {
    grid-column: 1 / -1;
  }

  .wpb-package-action {
    width: 210px;
    justify-self: end;
  }
}

@media (max-width: 600px) {
  .wpb-package-main .wpb-package-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .wpb-package-chart,
  .wpb-package-action {
    grid-column: 1;
  }

  .wpb-package-action {
    width: 210px;
  }
}

/* 2.42.21: prozentuale BKP-Verteilung und freigegebene ruhige Finanzdarstellung. */
.wpb-package-main .wpb-package-row {
  grid-template-columns: minmax(0, 1fr) 196px;
  grid-template-rows: auto auto;
  min-height: 0;
  gap: 14px 24px;
  padding: 18px 22px 17px;
}

.wpb-package-main .wpb-identity {
  align-self: center;
}

.wpb-identity-top {
  display: flex;
  min-width: 0;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 10px;
}

.wpb-package-main .wpb-identity-top h2 {
  margin: 0 4px 0 0;
  font-size: 19px;
}

.wpb-package-main .wpb-identity > p {
  margin-top: 4px;
}

.wpb-package-chart {
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100%;
  max-width: none;
}

.wpb-package-chart .control-billing-track {
  margin-bottom: 12px;
}

.wpb-package-chart .control-billing-bar {
  min-height: 48px;
  border-radius: 7px;
}

.wpb-package-action {
  grid-column: 2;
  grid-row: 1;
  box-sizing: border-box;
  width: 196px;
  height: 48px;
  justify-content: center;
  padding: 0 14px;
  border: 1px solid #cfd8d4;
  border-radius: 8px;
  color: #17211e;
  background: #fff;
}

.wpb-package-action strong {
  color: inherit;
  font-size: 13px;
  text-align: center;
  white-space: normal;
}

.wpb-package-action.is-disabled {
  border-color: #dfe4e2;
  color: #75817d;
  background: #f2f4f3;
}

.wpb-package-main:hover .wpb-package-action:not(.is-disabled),
.wpb-package-main:focus-visible .wpb-package-action:not(.is-disabled) {
  border-color: #9eada8;
  color: #102b24;
  background: #fafcfb;
}

.wpb-package-billing .control-billing-bar > span.paid,
.wpb-progress .control-billing-bar > span.paid,
.wpb-list-legend i.paid,
.wpb-progress .control-billing-legend i.paid {
  color: #17352e;
  background: #86b9a8;
}

.wpb-package-billing .control-billing-bar > span.invoiced-open,
.wpb-progress .control-billing-bar > span.invoiced-open,
.wpb-list-legend i.invoiced-open,
.wpb-progress .control-billing-legend i.invoiced-open {
  color: #3a3222;
  background: #dec17a;
}

.wpb-package-billing .control-billing-bar > span.expected,
.wpb-progress .control-billing-bar > span.expected,
.wpb-list-legend i.expected,
.wpb-progress .control-billing-legend i.expected {
  color: #344541;
  background: #dfe8ea;
}

.wpb-package-chart .control-overrun-overlay,
.wpb-progress .control-overrun-overlay,
.wpb-list-legend i.overrun {
  background: #c97870;
}

.wpb-detail-lifecycle {
  width: 100%;
  max-width: none;
}

.wpb-percent-field {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
}

.wpb-percent-field input {
  box-sizing: border-box;
  width: 94px;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid #cbdad5;
  border-radius: 9px;
  text-align: right;
}

.wpb-percent-field b {
  font-size: 14px;
}

.wpb-allocation-actions {
  display: flex;
  margin-top: 14px;
  justify-content: flex-end;
}

@media (max-width: 820px) {
  .wpb-package-main .wpb-package-row {
    grid-template-columns: minmax(0, 1fr) 180px;
    gap: 13px 16px;
  }

  .wpb-package-action {
    width: 180px;
  }
}

@media (max-width: 600px) {
  .wpb-package-main .wpb-package-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .wpb-package-action {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
  }

  .wpb-package-chart {
    grid-row: 3;
  }
}

/* 2.42.23: zweispaltige Desktopübersicht und bereinigte Beschriftungen. */
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.wpb-package-action strong {
  font-weight: 400;
}

.wpb-package-billing .control-billing-bar > span.paid strong,
.wpb-progress .control-billing-bar > span.paid strong {
  color: #fff;
}

@media (min-width: 1200px) {
  .wpb-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .wpb-package {
    height: 100%;
  }

  .wpb-package-main,
  .wpb-package-main .wpb-package-row {
    box-sizing: border-box;
    height: 100%;
  }

  .wpb-list > .empty-state {
    grid-column: 1 / -1;
  }
}

/* 2.42.24: finale Gefässdarstellung der Arbeitspaketübersicht. */
:root {
  --billing-paid: #86b7a5;
  --billing-invoiced: #b7d1c7;
  --billing-invoiced-light: #e8f0ed;
  --billing-expected: #f2f5f5;
  --billing-vessel: #f7f9f8;
  --billing-vessel-border: #b7c5c1;
  --billing-overrun: #c96860;
  --billing-overrun-light: #f5d9d5;
}

.wpb-package-main .wpb-package-row {
  grid-template-columns: minmax(0, 1fr) 170px;
}

.wpb-package-main .wpb-identity,
.wpb-package-main .wpb-identity-top,
.wpb-package-chart,
.wpb-package-billing,
.wpb-package-billing .control-billing-track {
  min-width: 0;
}

.wpb-package-action {
  width: 170px;
  min-height: 44px;
  height: 44px;
  padding: 6px 12px;
  border-color: #cfd8d4;
  border-radius: 8px;
  color: #17211e;
  background: #fff;
}

.wpb-package-action strong {
  overflow: visible;
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.25;
  text-overflow: clip;
  white-space: normal;
}

.wpb-package-action.is-disabled {
  border-color: #dfe4e2;
  color: #75817d;
  background: #f2f4f3;
}

.wpb-package-main:hover .wpb-package-action:not(.is-disabled),
.wpb-package-main:focus-visible .wpb-package-action:not(.is-disabled) {
  border-color: #9eada8;
  color: #102b24;
  background: #fafcfb;
}

.wpb-package-chart .control-billing-bar,
.wpb-progress .control-billing-bar {
  box-sizing: border-box;
  min-height: 43px;
  overflow: hidden;
  border: 1px solid var(--billing-vessel-border);
  border-radius: 8px;
  background: var(--billing-vessel);
}

.wpb-package-billing .control-billing-bar > span.paid,
.wpb-progress .control-billing-bar > span.paid,
.wpb-list-legend i.paid,
.wpb-progress .control-billing-legend i.paid {
  color: #fff;
  background: var(--billing-paid);
}

.wpb-package-billing .control-billing-bar > span.paid strong,
.wpb-progress .control-billing-bar > span.paid strong {
  color: #fff;
}

.wpb-package-billing .control-billing-bar > span.invoiced-open,
.wpb-progress .control-billing-bar > span.invoiced-open,
.wpb-list-legend i.invoiced-open,
.wpb-progress .control-billing-legend i.invoiced-open {
  color: #17352e;
  background:
    repeating-linear-gradient(
      135deg,
      var(--billing-invoiced) 0,
      var(--billing-invoiced) 5px,
      var(--billing-invoiced-light) 5px,
      var(--billing-invoiced-light) 10px
    );
}

.wpb-package-billing .control-billing-bar > span.invoiced-open strong,
.wpb-progress .control-billing-bar > span.invoiced-open strong {
  border-radius: 7px;
  color: #000;
  background: var(--billing-invoiced);
  line-height: 1.3;
}

.wpb-package-billing .control-billing-bar > span.expected,
.wpb-progress .control-billing-bar > span.expected,
.wpb-list-legend i.expected,
.wpb-progress .control-billing-legend i.expected {
  color: #344541;
  background: var(--billing-expected);
}

.wpb-package-chart .control-overrun-overlay,
.wpb-progress .control-overrun-overlay,
.wpb-list-legend i.overrun,
.wpb-progress .control-billing-legend i.overrun {
  opacity: 1;
  background:
    repeating-linear-gradient(
      135deg,
      var(--billing-overrun) 0,
      var(--billing-overrun) 5px,
      var(--billing-overrun-light) 5px,
      var(--billing-overrun-light) 10px
    );
}

.wpb-package-chart .control-overrun-overlay,
.wpb-progress .control-overrun-overlay {
  top: 1px;
  right: 1px;
  bottom: 1px;
}

/* Segmentbeträge bleiben über der Mehrkosten-Schraffur lesbar. */
.wpb-package-chart .control-billing-bar strong,
.wpb-progress .control-billing-bar strong {
  position: relative;
  z-index: 4;
}

.wpb-package-chart .control-billing-track.overrun .control-billing-bar > span.expected strong,
.wpb-progress .control-billing-track.overrun .control-billing-bar > span.expected strong {
  border-radius: 7px;
  color: #17211e;
  background: rgba(255, 255, 255, .82);
  line-height: 1.3;
}

.wpb-package-chart .control-order-marker,
.wpb-package-chart .control-billing-track.overrun .control-order-marker,
.wpb-progress .control-order-marker,
.wpb-progress .control-billing-track.overrun .control-order-marker {
  border-right-color: transparent;
  border-bottom-color: #17211e;
  border-left-color: transparent;
}

/* 2.42.31: Arbeitspakete sind die einzige Ansicht; Paketbudgets entfallen. */
.wpb-detail-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.wpb-detail-kpis .wpb-forecast-kpi {
  position: relative;
  padding-right: 64px;
  background: #fff;
  border-color: var(--border);
}

.wpb-forecast-state {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

.wpb-forecast-state.within {
  color: #fff;
  background: #2f8b70;
}

.wpb-forecast-state.overrun {
  color: #fff;
  background: #c34c43;
}

.unified-collapsible-filter {
  margin-bottom: 18px;
  padding: 0;
  overflow: visible;
}

.unified-collapsible-filter > summary {
  min-height: 58px;
  padding: 0 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  color: var(--ink);
  font-size: 16px;
  font-weight: 700;
  list-style: none;
}

.unified-collapsible-filter > summary::-webkit-details-marker {
  display: none;
}

.unified-collapsible-filter > summary span {
  font-size: 24px;
  font-weight: 400;
  transition: transform .18s ease;
}

.unified-collapsible-filter[open] > summary span {
  transform: rotate(90deg);
}

.unified-collapsible-filter[open] > summary {
  border-bottom: 1px solid var(--border);
}

.unified-collapsible-filter > form {
  margin: 0;
  padding: 20px 22px;
  border: 0;
  border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: none;
  background: transparent;
}

.document-filter-panel .document-list-filters {
  grid-template-areas:
    "search party type date-from date-to status financial"
    "bkp-search bkp-select bkp-select work-package work-package actions actions";
}

.document-filter-panel .document-list-filters.document-list-filters > .filter-work-package {
  grid-area: work-package;
}

.wpb-detail-title {
  grid-template-columns: minmax(260px, .55fr) minmax(600px, 1.45fr);
}

.wpb-detail-lifecycle {
  width: min(100%, 860px);
  margin-left: auto;
  justify-self: end;
}

@media (max-width: 900px) {
  .wpb-detail-title {
    grid-template-columns: 1fr;
  }

  .wpb-detail-lifecycle {
    width: 100%;
  }
}

@media (max-width: 720px) {
  .wpb-detail-kpis {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 820px) {
  .wpb-package-main .wpb-package-row {
    grid-template-columns: minmax(0, 1fr) 170px;
  }

  .wpb-package-action {
    width: 170px;
  }
}

@media (max-width: 600px) {
  .wpb-package-main .wpb-package-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .wpb-package-action {
    width: 170px;
    max-width: 100%;
    justify-self: end;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wpb-package-main,
  .wpb-package-action,
  .wpb-package-billing .control-billing-bar > span {
    transition: none !important;
  }
}

/* 2.42.31: klarere Diagrammfarben, kontextuelle Volltext-Hinweise und mobile Filter. */
.segment-mortgage,
.segment-construction_credit {
  background: #b7d3e1;
}

.segment-equity {
  background: #d9e8ef;
}

.segment-pension {
  background: #98bfd2;
}

.segment-loan {
  color: #102a35;
  background: #6fa7c2;
}

.segment-subsidy {
  color: #fff;
  background: #4f8dab;
}

.segment-cost-0 {
  background: #dbeaf1;
}

.segment-cost-1 {
  background: #bfd9e6;
}

.segment-cost-2 {
  background: #9fc7d9;
}

.segment-cost-3 {
  background: #7eb4cc;
}

.segment-cost-4 {
  color: #102a35;
  background: #629fbb;
}

.segment-cost-5 {
  color: #fff;
  background: #477f9b;
}

.chart-segment-tooltip {
  position: fixed;
  z-index: 1200;
  max-width: min(320px, calc(100vw - 24px));
  padding: 8px 11px;
  border: 1px solid rgba(20, 47, 59, .12);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(13, 39, 49, .16);
  font-size: 13px;
  line-height: 1.35;
  pointer-events: none;
}

.chart-segment-tooltip[hidden] {
  display: none;
}

.wpb-detail-title {
  align-items: start;
}

.wpb-detail-lifecycle {
  text-align: right;
}

.wpb-detail-lifecycle .wpb-lifecycle-label {
  text-align: center;
}

.wpb-progress .control-billing-meta {
  position: relative;
  min-height: 24px;
  margin-top: 10px;
  justify-content: space-between;
}

.wpb-progress {
  background: #fff;
}

.wpb-progress .control-billing-legend {
  margin-right: auto;
  justify-content: flex-start;
  text-align: left;
}

.wpb-finding.danger > strong {
  color: var(--ink, #17201e);
}

.wpb-progress .control-billing-heading {
  min-width: 110px;
  text-align: right;
}

@media (max-width: 1100px) {
  .document-filter-panel .document-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "search search"
      "party type"
      "date-from date-to"
      "status financial"
      "bkp-search bkp-search"
      "bkp-select work-package"
      "actions actions";
  }
}

@media (max-width: 640px) {
  .document-filter-panel .document-list-filters {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "search"
      "party"
      "type"
      "date-from"
      "date-to"
      "status"
      "financial"
      "bkp-search"
      "bkp-select"
      "work-package"
      "actions";
  }

  .unified-collapsible-filter > summary {
    min-height: 54px;
    padding-inline: 16px;
  }

  .unified-collapsible-filter > form {
    padding: 16px;
  }
}

/* 2.42.32: aufgeräumte Vorgangsdetails, Filter und Kostenreife. */
.chart-label-hidden {
  visibility: hidden;
}

/* 2.42.43: Diagrammtexte sind eine unteilbare Einheit. */
.finance-stage-track .chart-segment-label {
  align-items: center;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: center;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.finance-stage-track .chart-segment-label > span,
.finance-stage-track .chart-segment-label > strong {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: clip;
  white-space: nowrap;
}

.unified-list-filters .filter-work-package {
  grid-area: work-package;
}

.unified-list-filters .filter-chart-stage {
  grid-area: chart-stage;
}

.unified-list-filters .filter-bkp {
  grid-area: bkp;
}

.booking-filters.unified-list-filters.costs-unified-filters,
.booking-filters.unified-list-filters.liquidity-unified-filters {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.booking-filters.unified-list-filters.costs-unified-filters {
  grid-template-areas:
    "title title title party party party category category status status work-package work-package"
    "chart-stage chart-stage bkp-search bkp-search bkp bkp date-from date-from date-to date-to amount-min amount-min"
    "amount-max amount-max amount-max amount-max amount-max amount-max amount-max amount-max amount-max amount-max amount-max amount-max"
    "actions actions actions actions actions actions actions actions actions actions actions actions";
}

.booking-filters.unified-list-filters.liquidity-unified-filters {
  grid-template-areas:
    "title title title source source source direction direction status status work-package work-package"
    "date-from date-from date-to date-to amount-min amount-min amount-max amount-max actions actions actions actions";
}

.liquidity-movements-section {
  margin-top: 34px;
}

.record-pdf-preview {
  margin-bottom: 18px;
  padding: 24px;
}

.record-pdf-preview > details > summary {
  list-style: none;
}

.record-pdf-preview > details > summary::-webkit-details-marker {
  display: none;
}

.record-pdf-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  cursor: pointer;
}

.record-pdf-summary h2 {
  margin-bottom: 0;
}

.record-pdf-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-weight: 400;
  white-space: nowrap;
}

.record-pdf-toggle .lucide,
.menu-caret .lucide {
  width: 16px;
  height: 16px;
}

.record-pdf-toggle .when-closed,
details[data-inline-pdf-details]:not([open]) .record-pdf-toggle .when-open {
  display: none;
}

details[data-inline-pdf-details]:not([open]) .record-pdf-toggle .when-closed {
  display: inline;
}

details[data-inline-pdf-details][open] .record-pdf-toggle {
  transform: rotate(0deg);
}

.record-pdf-body {
  margin-top: 18px;
}

.record-pdf-actions {
  justify-content: flex-end;
  margin-bottom: 14px;
}

.record-pdf-frame {
  display: block;
  height: min(76vh, 920px);
  min-height: 620px;
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: auto;
  background: #f4f6f5;
}

.record-pdf-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 620px;
  border: 0;
}

.button.danger,
.button.danger-ghost,
.danger-button,
.list-icon-action.danger {
  color: #a7352d;
  background: #fff;
  border: 1px solid #e4aaa5;
  box-shadow: none;
}

.button.danger:hover,
.button.danger:focus-visible,
.button.danger-ghost:hover,
.button.danger-ghost:focus-visible,
.danger-button:hover,
.danger-button:focus-visible,
.list-icon-action.danger:hover,
.list-icon-action.danger:focus-visible {
  color: #8f2b25;
  background: #fff6f5;
  border-color: #d98780;
}

.wpb-detail-kpis .wpb-forecast-kpi {
  border-color: #d7dfdb;
  box-shadow: 0 8px 24px rgba(20, 40, 33, .04);
}

.wpb-percent-field input {
  appearance: textfield;
  -moz-appearance: textfield;
  text-align: right;
}

.wpb-progress .control-billing-meta {
  margin-top: 18px;
}

@media (max-width: 1400px) {
  .booking-filters.unified-list-filters.costs-unified-filters,
  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .booking-filters.unified-list-filters.costs-unified-filters {
    grid-template-areas:
      "title title title party party party"
      "work-package work-package category status date-from date-to"
      "chart-stage chart-stage bkp bkp bkp bkp"
      "amount-min amount-min amount-min amount-max amount-max amount-max"
      "actions actions actions actions actions actions";
  }

  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title title source source source"
      "work-package work-package direction status date-from date-to"
      "amount-min amount-min amount-min amount-max amount-max amount-max"
      "actions actions actions actions actions actions";
  }
}

@media (max-width: 1180px) {
  .booking-filters.unified-list-filters.costs-unified-filters,
  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .booking-filters.unified-list-filters.costs-unified-filters {
    grid-template-areas:
      "title title party party"
      "work-package work-package category status"
      "chart-stage chart-stage bkp bkp"
      "date-from date-to amount-min amount-max"
      "actions actions actions actions";
  }

  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title source source"
      "work-package work-package direction status"
      "date-from date-to amount-min amount-max"
      "actions actions actions actions";
  }
}

@media (max-width: 720px) {
  .booking-filters.unified-list-filters.costs-unified-filters,
  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .booking-filters.unified-list-filters.costs-unified-filters {
    grid-template-areas:
      "title title"
      "party party"
      "work-package work-package"
      "chart-stage bkp"
      "category status"
      "date-from date-to"
      "amount-min amount-max"
      "actions actions";
  }

  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title"
      "source source"
      "work-package work-package"
      "direction status"
      "date-from date-to"
      "amount-min amount-max"
      "actions actions";
  }

  .record-pdf-preview {
    padding: 18px;
  }

  .record-pdf-frame,
  .record-pdf-frame iframe {
    min-height: 460px;
    height: 460px;
  }
}

/* Die Filter brechen nach der tatsächlich verfügbaren Inhaltsbreite um. */
@container (max-width: 1400px) {
  .booking-filters.unified-list-filters.costs-unified-filters,
  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .booking-filters.unified-list-filters.costs-unified-filters {
    grid-template-areas:
      "title title title party party party"
      "work-package work-package category status date-from date-to"
      "chart-stage chart-stage bkp bkp bkp bkp"
      "amount-min amount-min amount-max amount-max actions actions";
  }

  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title title source source source"
      "work-package work-package direction status date-from date-to"
      "amount-min amount-min amount-max amount-max actions actions";
  }

  .booking-filters.unified-list-filters.costs-unified-filters > .unified-filter-actions,
  .booking-filters.unified-list-filters.liquidity-unified-filters > .unified-filter-actions {
    grid-column: 1 / -1;
    grid-row: auto;
    justify-self: end;
    width: min(100%, 416px);
  }
}

@container (max-width: 720px) {
  .booking-filters.unified-list-filters.costs-unified-filters,
  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .booking-filters.unified-list-filters.costs-unified-filters {
    grid-template-areas:
      "title title"
      "party party"
      "work-package work-package"
      "chart-stage bkp"
      "category status"
      "date-from date-to"
      "amount-min amount-max"
      "actions actions";
  }

  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title"
      "source source"
      "work-package work-package"
      "direction status"
      "date-from date-to"
      "amount-min amount-max"
      "actions actions";
  }
}
/* 2.43.3: sequenzielle Hauptnavigation mit ruhigen Bereichsbezeichnungen. */
.primary-nav {
  display: flex;
  flex: 1;
  min-height: 0;
  flex-direction: column;
  overflow-y: auto;
  gap: 1px;
  margin-top: 12px;
  padding-right: 2px;
}
.nav-group-label {
  display: block;
  margin: 10px 14px 4px;
  color: rgba(226, 238, 233, .7);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .055em;
  line-height: 1.2;
  text-transform: uppercase;
}
.primary-nav .nav-item {
  min-height: 44px;
  padding-top: 10px;
  padding-bottom: 10px;
  font-size: 16px;
}
.primary-nav .nav-icon {
  display: inline-grid;
  place-items: center;
  line-height: 1;
}
.primary-nav .nav-icon svg,
.sidebar-utility-nav .nav-icon svg {
  width: 20px;
  height: 20px;
}
.sidebar-utility-nav {
  margin-top: 4px;
  padding-top: 5px;
  border-top: 1px solid rgba(255, 255, 255, .1);
}
.sidebar-utility-nav .nav-settings {
  min-height: 44px;
  padding-top: 10px;
  padding-bottom: 10px;
  font-size: 16px;
}
.account-link > span {
  color: #dbe3df;
}
.account-link > a {
  color: #91a39c;
  font-size: 13px;
}
.account-link > a:hover,
.account-link > a:focus-visible {
  color: #fff;
  text-decoration: underline;
}

/* 2.47.0: sofortige Navigationsrückmeldung und kompakte Liquiditätsaktionen. */
.nav-item.navigation-pending {
  /* Keep the optimistic tap feedback visually identical to the real active
     state. The former dark fill looked like a black flash on iPadOS. */
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04);
}
.nav-item.navigation-pending .nav-icon { color: #fff; }
.liquidity-bookings .list-action-slots {
  grid-template-columns: 38px 38px;
  justify-content: start;
  width: 84px;
  min-width: 84px;
}
.liquidity-bookings > thead > tr > th.list-actions-heading,
.liquidity-bookings > tbody > tr > td.list-actions-cell {
  width: 114px;
  min-width: 114px;
  text-align: left;
}
.payment-row > .list-icon-action { flex: 0 0 38px; }
@media (max-width: 1100px) {
  .primary-nav { padding-bottom: 5px; }
  .nav-group-label { margin-top: 9px; }
}

/* 2.43.4: eigenes, kollisionsfreies Raster für die projektweite Vorgangsliste. */
.records-page { margin-top: 0; }
.unified-list-filters .filter-bkp-search { grid-area: bkp-search; }
.booking-filters.unified-list-filters.records-unified-filters {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-areas:
    "title title title party party party category category status status chart-stage chart-stage"
    "work-package work-package bkp-search bkp-search bkp bkp date-from date-to amount-min amount-max actions actions";
}

.booking-filters.unified-list-filters.records-unified-filters > .unified-filter-actions {
  grid-area: actions;
  justify-self: stretch;
  width: 100%;
}

@container (max-width: 1400px) {
  .booking-filters.unified-list-filters.records-unified-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas:
      "title title title party party party"
      "work-package work-package chart-stage bkp-search bkp bkp"
      "category status date-from date-to amount-min amount-max"
      "actions actions actions actions actions actions";
  }
}

@container (max-width: 1180px) {
  .booking-filters.unified-list-filters.records-unified-filters {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-areas:
      "title title party party"
      "chart-stage bkp-search bkp category"
      "status status status status"
      "work-package work-package date-from date-to"
      "amount-min amount-min amount-max amount-max"
      "actions actions actions actions";
  }
}

@container (max-width: 900px) {
  .booking-filters.unified-list-filters.records-unified-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "title title"
      "party party"
      "work-package work-package"
      "chart-stage bkp-search"
      "bkp bkp"
      "category status"
      "date-from date-to"
      "amount-min amount-max"
      "actions actions";
  }
}

.bkp-search-field, .filter-bkp-search, label:has(> input[data-bkp-search]) { position: relative; }
.bkp-search-results { background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); display:grid; left:0; max-height:290px; overflow:auto; padding:6px; position:absolute; right:0; top:calc(100% + 5px); z-index:40; }
.bkp-search-results[hidden] { display:none; }
.bkp-search-results button { background:transparent; border:0; border-radius:8px; color:var(--dark); cursor:pointer; padding:10px 11px; text-align:left; }
.bkp-search-results button:hover, .bkp-search-results button:focus-visible, .bkp-search-results button.selected { background:var(--surface-2); color:var(--positive); }
.dashboard-attention .summary-item.overdue { background:#fff8f6; border:1px solid #f0d5cf; border-left:4px solid var(--danger); border-radius:12px; margin:4px 0; padding:14px 12px; }
.dashboard-attention .summary-item.overdue .summary-marker { background:var(--danger); }
.dashboard-attention .summary-item.overdue strong { color:var(--dark); }
.dashboard-attention .summary-item.overdue b { color:var(--danger); }
.cost-kpis, .cost-kpis .kpi-card { overflow: visible; }
.cost-kpis .kpi-card:first-child .field-info-popover { left: 0; transform: none; }

/* 2.43.7: iPad quer – kompakte Filter statt vorzeitigem Zwei-Spalten-Umbruch. */
@container (min-width: 681px) and (max-width: 1100px) {
  .booking-filters.unified-list-filters.records-unified-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas:
      "title title party party chart-stage bkp-search"
      "work-package work-package bkp category status date-from"
      "date-to amount-min amount-max actions actions actions";
    gap: 12px;
  }

  .booking-filters.unified-list-filters.records-unified-filters input,
  .booking-filters.unified-list-filters.records-unified-filters select,
  .booking-filters.unified-list-filters.records-unified-filters .button {
    height: 42px;
    min-height: 42px;
    padding: 8px 10px;
    font-size: 14px;
  }

  .document-filter-panel .document-list-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas:
      "search search party party type type"
      "date-from date-to status financial bkp-search bkp-select"
      "work-package work-package work-package actions actions actions";
    gap: 12px;
  }

  .document-list-filters .form-control,
  .document-list-filters .button {
    height: 42px;
    min-height: 42px;
    padding: 8px 10px;
    font-size: 14px;
  }

  .document-list-filters .form-field {
    grid-template-rows: 18px 42px;
    gap: 5px;
  }

  .document-table td.document-actions-cell {
    width: 210px;
    min-width: 210px;
    padding: 10px 8px;
    text-align: center;
  }

  .document-table .document-actions-column { width: 210px; }
  .document-actions-cell .list-action-slots {
    width: 194px;
    min-width: 194px;
    grid-template-columns: 112px 34px 34px;
    gap: 7px;
    margin-inline: auto;
  }
  .document-actions-cell .list-action-slots .context-action {
    width: 112px !important;
    height: 36px !important;
    min-height: 36px !important;
  }
  .document-actions-cell .list-action-slots .list-icon-action {
    width: 34px !important;
    height: 36px !important;
    min-height: 36px !important;
  }
}

@media (min-width: 681px) and (max-width: 1400px) {
  .section-documents .header-page-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(125px, 1fr));
    gap: 8px;
  }
  .section-documents .header-page-actions > a,
  .section-documents .header-page-actions > button,
  .section-documents .header-page-actions > form,
  .section-documents .header-page-actions > form .button {
    width: 100%;
    min-width: 0;
    margin: 0;
  }
  .section-documents .header-page-actions .button {
    min-height: 42px;
    padding: 8px 11px;
    font-size: 14px;
    white-space: nowrap;
  }
}

/* 2.43.8: ein gemeinsames iPad-Raster für sämtliche Filterbereiche. */
@container (min-width: 681px) and (max-width: 1100px) {
  :is(
    .booking-filters.unified-list-filters,
    .document-list-filters,
    .wpb-filter-fields,
    .control-filters,
    .timeline-filter,
    .quote-search,
    .report-filter
  ) {
    gap: 12px;
  }

  :is(
    .booking-filters.unified-list-filters,
    .document-list-filters,
    .wpb-filter-fields,
    .control-filters,
    .timeline-filter,
    .quote-search,
    .report-filter
  ) :is(input:not([type="checkbox"]):not([type="radio"]), select, .form-control, .button) {
    box-sizing: border-box;
    width: 100%;
    height: 42px !important;
    min-height: 42px !important;
    line-height: normal !important;
    padding: 8px 10px;
    font-size: 14px;
  }

  :is(
    .booking-filters.unified-list-filters,
    .document-list-filters,
    .wpb-filter-fields,
    .control-filters,
    .timeline-filter,
    .quote-search,
    .report-filter
  ) > label {
    align-content: start;
    min-width: 0;
    margin: 0;
    gap: 5px;
  }

  :is(
    .booking-filters.unified-list-filters,
    .document-list-filters,
    .wpb-filter-fields,
    .control-filters,
    .timeline-filter
  ) > label > :first-child:not(input):not(select) {
    min-height: 18px;
    line-height: 18px;
  }

  .booking-filters.unified-list-filters.financing-unified-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas:
      "title title title party party party"
      "category owner stage stage date-from date-to"
      "amount-min amount-min amount-max amount-max actions actions";
  }

  .booking-filters.unified-list-filters.costs-unified-filters,
  .booking-filters.unified-list-filters.records-unified-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas:
      "title title party party category status"
      "work-package work-package chart-stage bkp-search bkp date-from"
      "date-to amount-min amount-max actions actions actions";
  }

  .booking-filters.unified-list-filters.liquidity-unified-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas:
      "title title title source source source"
      "work-package work-package direction status date-from date-to"
      "amount-min amount-min amount-max amount-max actions actions";
  }

  .booking-filters.unified-list-filters > .unified-filter-actions {
    align-self: end;
    justify-self: stretch;
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .document-filter-panel .document-list-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas:
      "search search party party type type"
      "date-from date-to status financial bkp-search bkp-select"
      "work-package work-package work-package actions actions actions";
  }

  .document-list-filters .form-field {
    grid-template-rows: 18px 42px;
  }

  .document-list-filters .filter-actions {
    align-self: end;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .wpb-filter .wpb-filter-fields {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .wpb-filter .wpb-filter-fields > :nth-child(1) { grid-column: span 2; }
  .wpb-filter .wpb-filter-fields > :nth-child(6),
  .wpb-filter .wpb-filter-fields > :nth-child(7) { grid-column: span 2; }
  .wpb-filter .wpb-filter-footer { gap: 14px; }
  .wpb-filter .wpb-sort-field { width: min(250px, 32vw); }

  .control-filters {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas:
      "search search party party bkp-search bkp"
      "status status . . actions actions";
  }
  .control-filters > .control-filter-search { grid-area: search; }
  .control-filters > .control-filter-party { grid-area: party; }
  .control-filters > :nth-child(3) { grid-area: bkp-search; }
  .control-filters > :nth-child(4) { grid-area: bkp; }
  .control-filters > :nth-child(5) { grid-area: status; }
  .control-filters > .control-filter-actions { grid-area: actions; }

  .timeline-filter {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    align-items: end;
  }

  .quote-search {
    grid-template-columns: minmax(0, 1fr) 160px 160px;
  }

  .report-filter {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: end;
    width: 100%;
  }
  .report-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    justify-content: stretch;
  }
  .report-toolbar > .unified-collapsible-filter {
    width: 100%;
  }
}

.review-existing-record-compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px;
}
.review-existing-record-compact h2 { margin: 4px 0 6px; }
.review-existing-record-compact p { max-width: 850px; margin: 0; color: var(--muted); }
.new-work-package-dialog-card { width: min(760px, calc(100vw - 32px)); }

@media (max-width: 680px) {
  .review-existing-record-compact { display: grid; }
  .review-existing-record-compact .button { width: 100%; }
}

/* 2.43.9: verbindliches Filterraster für Desktop und iPad. */
input[type="number"] {
  appearance: textfield !important;
  -moz-appearance: textfield !important;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  appearance: none !important;
  margin: 0 !important;
}

@container (min-width: 681px) {
  :is(
    .booking-filters.unified-list-filters,
    .document-list-filters,
    .wpb-filter form,
    .control-filters,
    .timeline-filter,
    .quote-search,
    .report-filter
  ) {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    align-items: end !important;
    gap: 10px 12px !important;
  }

  :is(
    .booking-filters.unified-list-filters,
    .document-list-filters,
    .control-filters,
    .timeline-filter,
    .quote-search,
    .report-filter
  ) > label,
  .wpb-filter label:not(.wpb-archive-toggle) {
    display: grid !important;
    grid-template-rows: 16px 42px !important;
    align-content: end !important;
    gap: 3px !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  :is(
    .booking-filters.unified-list-filters,
    .document-list-filters,
    .wpb-filter,
    .control-filters,
    .timeline-filter,
    .quote-search,
    .report-filter
  ) :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, .form-control, .button) {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 7px 10px !important;
    line-height: normal !important;
  }

  :is(
    .booking-filters.unified-list-filters,
    .document-list-filters,
    .wpb-filter,
    .control-filters,
    .timeline-filter,
    .quote-search,
    .report-filter
  ) label > span:first-child {
    min-height: 16px !important;
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 16px !important;
  }

  .booking-filters.unified-list-filters > .unified-filter-actions,
  .document-list-filters > .filter-actions,
  .control-filters > .unified-filter-actions,
  .wpb-filter .wpb-filter-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-self: end !important;
    justify-self: stretch !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  .booking-filters.unified-list-filters > .unified-filter-actions,
  .document-list-filters > .filter-actions,
  .control-filters > .unified-filter-actions {
    grid-column: auto !important;
    grid-area: actions !important;
  }

  .booking-filters.records-unified-filters,
  .booking-filters.costs-unified-filters {
    grid-template-areas:
      "title title party party category status"
      "work-package work-package chart-stage bkp-search bkp date-from"
      "date-to amount-min amount-max . actions actions" !important;
  }

  .booking-filters.liquidity-unified-filters {
    grid-template-areas:
      "title title title source source source"
      "work-package work-package direction status date-from date-to"
      "amount-min amount-max . . actions actions" !important;
  }

  .booking-filters.financing-unified-filters {
    grid-template-areas:
      "title title party party category owner"
      "stage date-from date-to amount-min amount-max ."
      ". . . . actions actions" !important;
  }

  .document-filter-panel .document-list-filters {
    grid-template-areas:
      "search search party party type type"
      "date-from date-to status financial bkp-search bkp-select"
      "work-package work-package . . actions actions" !important;
  }

  .wpb-filter form {
    grid-template-areas:
      "query query phase bkp-search bkp party"
      "invoice invoice attention attention . ."
      "sort sort archive archive actions actions" !important;
  }
  .wpb-filter .wpb-filter-fields,
  .wpb-filter .wpb-filter-footer,
  .wpb-filter .wpb-sort-controls {
    display: contents !important;
  }
  .wpb-filter .wpb-filter-wide { grid-area: query !important; }
  .wpb-filter .wpb-filter-phase { grid-area: phase !important; }
  .wpb-filter .wpb-filter-bkp-search { grid-area: bkp-search !important; }
  .wpb-filter .wpb-filter-bkp { grid-area: bkp !important; }
  .wpb-filter .wpb-filter-party { grid-area: party !important; }
  .wpb-filter .wpb-filter-invoice { grid-area: invoice !important; }
  .wpb-filter .wpb-filter-attention { grid-area: attention !important; }
  .wpb-filter .wpb-sort-field { grid-area: sort !important; width: auto !important; }
  .wpb-filter .wpb-archive-toggle {
    grid-area: archive !important;
    align-self: end !important;
    box-sizing: border-box !important;
    min-height: 42px !important;
    margin: 0 !important;
  }
  .wpb-filter .wpb-filter-actions { grid-area: actions !important; }

  .control-filters {
    grid-template-areas:
      "search search party party bkp-search bkp"
      "status status . . actions actions" !important;
  }
  .control-filters > .control-filter-search { grid-area: search !important; }
  .control-filters > .control-filter-party { grid-area: party !important; }
  .control-filters > .bkp-search-field { grid-area: bkp-search !important; }
  .control-filters > label:nth-of-type(4) { grid-area: bkp !important; }
  .control-filters > label:nth-of-type(5) { grid-area: status !important; }
  .control-filters > .unified-filter-actions { grid-area: actions !important; }

  .timeline-filter {
    grid-template-areas: "past future from to granularity apply" !important;
  }
  .timeline-filter > label:nth-of-type(1) { grid-area: past; }
  .timeline-filter > label:nth-of-type(2) { grid-area: future; }
  .timeline-filter > label:nth-of-type(3) { grid-area: from; }
  .timeline-filter > label:nth-of-type(4) { grid-area: to; }
  .timeline-filter > label:nth-of-type(5) { grid-area: granularity; }
  .timeline-filter > .button { grid-area: apply; }

  .quote-search {
    grid-template-areas: "query query query query reset apply" !important;
  }
  .quote-search > label { grid-area: query; }
  .quote-search > .button.secondary { grid-area: reset; }
  .quote-search > .button.primary { grid-area: apply; }

  .report-filter {
    grid-template-areas: "from to . . secondary primary" !important;
  }
  .report-toolbar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
    justify-content: stretch !important;
  }
  .report-toolbar > .unified-collapsible-filter {
    width: 100% !important;
  }
  .report-filter > label:nth-of-type(1) { grid-area: from; }
  .report-filter > label:nth-of-type(2) { grid-area: to; }
  .report-filter > .button.secondary { grid-area: secondary; }
  .report-filter > .button.primary { grid-area: primary; }
}

.liquidity-movements-section > .section-head {
  margin-bottom: 16px !important;
}

.task-group-overdue > header > span {
  background: #8f2f29;
  color: #fff;
}
.task-group-today > header > span {
  background: #a96f08;
  color: #fff;
}
.task-group-soon > header > span,
.task-group-later > header > span,
.task-group-undated > header > span {
  background: #176b8a;
  color: #fff;
}

/* 2.44.1: kompakte Aufgabenzeilen und iPad-taugliche Mehrseiten-PDFs. */
.nav-task-count {
  font-weight: 400;
}

.task-group > header {
  min-height: 48px;
  padding: 10px 18px;
}

.task-group > header h2 {
  font-size: 17px;
}

.task-group > header > span {
  width: 26px;
  min-width: 26px;
  height: 26px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 12px;
  line-height: 1;
}

.pdf-canvas-viewer {
  position: relative;
  height: min(76vh, 920px);
  min-height: 620px;
  overflow-x: hidden;
  overflow-y: auto;
  touch-action: pan-y pinch-zoom;
  -webkit-overflow-scrolling: touch;
}

.pdf-canvas-status {
  position: sticky;
  top: 10px;
  z-index: 2;
  width: max-content;
  max-width: calc(100% - 24px);
  margin: 12px auto -46px;
  padding: 7px 11px;
  border: 1px solid rgba(7, 63, 54, .15);
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  color: var(--muted);
  box-shadow: 0 4px 16px rgba(20, 32, 29, .09);
  font-size: 12px;
  pointer-events: none;
}

.pdf-canvas-pages {
  display: grid;
  gap: 18px;
  padding: 58px 18px 18px;
}

.pdf-canvas-page {
  position: relative;
  width: min(100%, 1100px);
  margin: 0 auto;
  overflow: hidden;
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 3px 14px rgba(20, 32, 29, .14);
}

.pdf-canvas-page canvas {
  display: block;
  max-width: 100%;
  margin: 0 auto;
  background: #fff;
}

.pdf-canvas-page-label {
  position: absolute;
  right: 8px;
  bottom: 8px;
  padding: 4px 7px;
  border-radius: 5px;
  background: rgba(20, 32, 29, .72);
  color: #fff;
  font-size: 10px;
  pointer-events: none;
}

.pdf-canvas-page-error {
  display: grid;
  place-items: center;
  min-height: 220px;
  aspect-ratio: auto !important;
  background: var(--danger-bg);
}

.pdf-canvas-viewer-error .pdf-canvas-status {
  position: static;
  width: auto;
  margin: 18px;
  color: var(--danger);
  border-color: #e4aaa5;
  border-radius: 8px;
  pointer-events: auto;
}

@media (max-width: 680px) {
  .pdf-canvas-viewer {
    height: 460px;
    min-height: 460px;
  }

  .pdf-canvas-pages {
    gap: 12px;
    padding: 54px 10px 10px;
  }
}

/* 2.46.0 cascade guard: overrides the superseded 2.45.1 tablet experiment. */
@container (min-width: 700px) and (max-width: 1180px) {
  .finance-table-wrap,
  .document-table-wrap,
  .records-table-wrap {
    overflow-x: auto;
    overflow-y: visible;
    touch-action: pan-x pan-y;
  }

  .finance-bookings,
  .document-table {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    table-layout: auto;
  }

  .finance-bookings th,
  .finance-bookings td,
  .document-table th,
  .document-table td {
    padding: 12px 8px;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .finance-bookings th { font-size: 11px; line-height: inherit; }
  .finance-bookings td { font-size: 16px; line-height: inherit; }
  .finance-bookings td small { font-size: inherit; line-height: inherit; }
  .finance-bookings td strong { font-size: inherit; }

  .finance-bookings th:nth-child(6),
  .finance-bookings td:nth-child(6),
  .records-table th:nth-child(6),
  .records-table td:nth-child(6) {
    display: table-cell;
    visibility: visible;
    width: auto !important;
    max-width: none;
    padding: 12px 8px !important;
    overflow: visible;
    border-bottom: 1px solid var(--line);
  }

  .finance-bookings th a.sortable,
  .finance-bookings td:nth-child(2) :is(a, strong, small),
  .document-table .document-title-cell strong,
  .records-table th a.sortable {
    display: block;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }

  .finance-bookings td:nth-child(2) small { display: block; }
  .finance-bookings td:nth-child(1),
  .finance-bookings td:nth-child(4),
  .finance-bookings td:nth-child(7),
  .finance-bookings td:nth-child(7) strong,
  .finance-bookings td:nth-child(5) .status-pill {
    font-size: inherit;
    line-height: inherit;
    white-space: nowrap;
  }

  .finance-bookings td:nth-child(5) .status-pill {
    max-width: none;
    padding: 6px 10px;
    font-size: 12px;
    letter-spacing: .03em;
  }

  .finance-bookings .finance-date-column { width: 82px; }
  .finance-bookings .finance-source-column { width: auto; }
  .finance-bookings .finance-type-column { width: 74px; }
  .finance-bookings .finance-owner-column { width: 70px; }
  .finance-bookings .finance-stage-column { width: 84px; }
  .finance-bookings .finance-counterparty-column { width: auto; }
  .finance-bookings .finance-amount-column { width: 108px; }
  .finance-bookings .finance-actions-column { width: 148px; }

  .document-table .document-date-column { width: 82px; }
  .document-table .document-type-column { width: 104px; }
  .document-table .document-correspondent-column { width: 25%; }
  .document-table .document-title-column { width: auto; }
  .document-table .document-actions-column { width: 148px; }
  .document-table td:first-child { font-size: inherit; }

  .finance-bookings th.list-actions-heading,
  .finance-bookings td.list-actions-cell,
  .document-table td.document-actions-cell,
  .records-table th.list-actions-heading,
  .records-table td.list-actions-cell {
    width: 148px;
    min-width: 148px;
    padding: 12px 14px 12px 8px;
    text-align: left;
  }

  .finance-bookings .list-action-slots,
  .document-actions-cell .list-action-slots,
  .records-table .list-action-slots {
    width: 118px;
    min-width: 118px;
    grid-template-columns: 38px 38px;
    justify-content: start;
    gap: 6px;
    margin: 0;
  }

  .finance-bookings .list-action-slots > :first-child,
  .document-actions-cell .list-action-slots > :first-child,
  .records-table .list-action-slots > :first-child {
    grid-column: 1 / -1;
  }

  .finance-bookings .list-action-slots .context-action,
  .document-actions-cell .list-action-slots .context-action,
  .records-table .list-action-slots .context-action {
    width: 118px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding-inline: 8px !important;
    font-size: 12px;
  }

  .finance-bookings .list-action-slots .list-icon-action,
  .document-actions-cell .list-action-slots .list-icon-action,
  .records-table .list-action-slots .list-icon-action {
    width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 !important;
  }

  .finance-bookings .list-action-slots .list-icon-action svg,
  .document-actions-cell .list-action-slots .list-icon-action svg,
  .records-table .list-action-slots .list-icon-action svg {
    width: 16px;
    height: 16px;
  }

  .records-table {
    width: 1180px;
    min-width: 1180px;
    max-width: none;
    table-layout: auto;
  }

  .records-table .records-date-column { width: 92px; }
  .records-table .records-title-column { width: 176px; }
  .records-table .records-type-column { width: 105px; }
  .records-table .records-status-column { width: 118px; }
  .records-table .records-party-column { width: 160px; }
  .records-table .records-bkp-column { width: 62px; }
  .records-table .records-work-package-column { width: 150px; }
  .records-table .records-amount-column { width: 131px; }
  .records-table .records-actions-column { width: 148px; }
}

/*
 * 2.46.0: Vollständige iPad-Pro-11-Listen ohne verkleinerte Typografie oder
 * Bedienelemente. Flexible Textspalten umbrechen; feste Fachwerte und die
 * unveränderten 118-/38-px-Aktionen behalten ihre natürliche Geometrie.
 */
@container (min-width: 700px) and (max-width: 1180px) {
  .booking-table-wrap,
  .finance-table-wrap,
  .document-table-wrap,
  .records-table-wrap,
  .report-table-wrap {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
  }

  .finance-bookings,
  .document-table {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    table-layout: auto;
  }

  .finance-bookings th,
  .finance-bookings td,
  .document-table th,
  .document-table td {
    box-sizing: border-box;
    min-width: 0;
    padding: 12px 8px;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .finance-bookings th:first-child,
  .finance-bookings td:first-child,
  .document-table th:first-child,
  .document-table td:first-child,
  .records-table th:first-child,
  .records-table td:first-child {
    padding-left: 14px;
  }

  .finance-bookings th:last-child,
  .finance-bookings td:last-child,
  .document-table th:last-child,
  .document-table td:last-child,
  .records-table th:last-child,
  .records-table td:last-child {
    padding-right: 14px;
  }

  .finance-bookings th,
  .finance-bookings td,
  .finance-bookings td small,
  .finance-bookings td strong,
  .finance-bookings td:nth-child(1),
  .finance-bookings td:nth-child(3),
  .finance-bookings td:nth-child(4),
  .finance-bookings td:nth-child(6),
  .finance-bookings td:nth-child(7),
  .finance-bookings td:nth-child(7) small {
    font-size: revert;
    line-height: inherit;
  }

  .finance-bookings th:nth-child(6),
  .finance-bookings td:nth-child(6),
  .records-table th:nth-child(6),
  .records-table td:nth-child(6) {
    display: table-cell;
    visibility: visible;
    border-bottom: 1px solid var(--line);
  }

  .finance-bookings th a.sortable,
  .document-table th a.sortable,
  .records-table th a.sortable,
  .finance-bookings td:nth-child(2) :is(a, strong, small),
  .document-table .document-title-cell strong {
    display: block;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }

  .finance-bookings td:nth-child(2) small {
    display: block;
  }

  .finance-bookings td:nth-child(1),
  .finance-bookings td:nth-child(4),
  .finance-bookings td:nth-child(7),
  .finance-bookings td:nth-child(7) strong,
  .finance-bookings td:nth-child(5) .status-pill,
  .document-table td:first-child,
  .records-table td:first-child,
  .records-table td:nth-child(8),
  .records-table td:nth-child(8) strong,
  .records-table td:nth-child(4) .status-pill {
    white-space: nowrap;
  }

  .finance-bookings td:nth-child(5) .status-pill {
    max-width: none;
    padding: 6px 9px;
    font-size: inherit;
    letter-spacing: inherit;
  }

  .finance-bookings .finance-date-column { width: 82px; }
  .finance-bookings .finance-source-column { width: auto; }
  .finance-bookings .finance-type-column { width: 74px; }
  .finance-bookings .finance-owner-column { width: 70px; }
  .finance-bookings .finance-stage-column { width: 84px; }
  .finance-bookings .finance-counterparty-column { width: auto; }
  .finance-bookings .finance-amount-column { width: 108px; }
  .finance-bookings .finance-actions-column { width: 148px; }

  .document-table td.document-title-cell,
  .document-table td.document-correspondent-cell {
    display: table-cell;
    min-width: 0;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }

  .document-table .document-date-column { width: 82px; }
  .document-table .document-type-column { width: 104px; }
  .document-table .document-correspondent-column { width: 25%; }
  .document-table .document-title-column { width: auto; }
  .document-table .document-actions-column { width: 148px; }

  .document-table .document-preview-popover {
    right: 0;
    left: auto;
    width: min(480px, calc(100vw - 48px));
    max-width: calc(100vw - 48px);
  }

  .finance-bookings th.list-actions-heading,
  .finance-bookings td.list-actions-cell,
  .document-table td.document-actions-cell,
  .records-table th.list-actions-heading,
  .records-table td.list-actions-cell {
    box-sizing: border-box;
    width: 148px;
    min-width: 148px;
    padding: 12px 14px 12px 8px;
    text-align: left;
  }

  .finance-bookings .list-action-slots,
  .document-actions-cell .list-action-slots,
  .records-table .list-action-slots {
    width: 118px;
    min-width: 118px;
    grid-template-columns: 38px 38px;
    justify-content: start;
    gap: 6px;
    margin: 0;
  }

  .finance-bookings .list-action-slots > :first-child,
  .document-actions-cell .list-action-slots > :first-child,
  .records-table .list-action-slots > :first-child {
    grid-column: 1 / -1;
  }

  .finance-bookings .list-action-slots .context-action,
  .document-actions-cell .list-action-slots .context-action,
  .records-table .list-action-slots .context-action {
    width: 118px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding-block: 0 !important;
    padding-inline: 8px !important;
    font-size: inherit;
    white-space: nowrap;
  }

  .finance-bookings .list-action-slots .list-icon-action,
  .document-actions-cell .list-action-slots .list-icon-action,
  .records-table .list-action-slots .list-icon-action {
    width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 !important;
  }

  .finance-bookings .list-action-slots .list-icon-action svg,
  .document-actions-cell .list-action-slots .list-icon-action svg,
  .records-table .list-action-slots .list-icon-action svg {
    width: 16px;
    height: 16px;
  }

  .records-table {
    width: 1180px;
    min-width: 1180px;
    max-width: none;
    table-layout: auto;
  }

  .records-table th,
  .records-table td {
    box-sizing: border-box;
    min-width: 0;
    padding: 12px 9px;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .records-table .records-date-column { width: 92px; }
  .records-table .records-title-column { width: 176px; }
  .records-table .records-type-column { width: 105px; }
  .records-table .records-status-column { width: 118px; }
  .records-table .records-party-column { width: 160px; }
  .records-table .records-bkp-column { width: 62px; }
  .records-table .records-work-package-column { width: 150px; }
  .records-table .records-amount-column { width: 131px; }
  .records-table .records-actions-column { width: 148px; }

  .party-table,
  .report-table {
    table-layout: auto;
  }

  .party-table th,
  .party-table td,
  .report-table th,
  .report-table td {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: normal;
  }
}

/*
 * 2.45.1: iPad-Listen werden pro Fachliste dimensioniert. Finanzierung und
 * Dokumente zeigen jede Spalte ohne abgeschnittene Inhalte. Nur Vorgänge
 * dürfen horizontal scrollen; dort entfällt auf dem Tablet zusätzlich BKP,
 * weil die Zuordnung bereits über das Arbeitspaket erreichbar ist.
 */
@container (min-width: 700px) and (max-width: 1180px) {
  .finance-table-wrap,
  .document-table-wrap {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .finance-bookings,
  .document-table {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    table-layout: fixed;
  }

  .finance-bookings th,
  .finance-bookings td,
  .document-table th,
  .document-table td {
    box-sizing: border-box;
    padding: 11px 6px;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .finance-bookings th:first-child,
  .finance-bookings td:first-child,
  .document-table th:first-child,
  .document-table td:first-child {
    padding-left: 12px;
  }

  .finance-bookings th:last-child,
  .finance-bookings td:last-child,
  .document-table th:last-child,
  .document-table td:last-child {
    padding-right: 12px;
  }

  .finance-bookings th:nth-child(6),
  .finance-bookings td:nth-child(6) {
    display: table-cell;
  }

  .finance-bookings .finance-date-column { width: 72px; }
  .finance-bookings .finance-source-column { width: 115px; }
  .finance-bookings .finance-type-column { width: 90px; }
  .finance-bookings .finance-owner-column { width: 80px; }
  .finance-bookings .finance-stage-column { width: 68px; }
  .finance-bookings .finance-counterparty-column { width: 90px; }
  .finance-bookings .finance-amount-column { width: 100px; }
  .finance-bookings .finance-actions-column { width: 154px; }

  .finance-bookings th:nth-child(1),
  .finance-bookings td:nth-child(1),
  .finance-bookings th:nth-child(8),
  .finance-bookings td:nth-child(8) {
    width: auto;
    min-width: 0;
  }

  .finance-bookings td:nth-child(1) {
    font-size: 12px;
    white-space: nowrap;
  }

  .finance-bookings td:nth-child(2) :is(a, strong, small),
  .document-table .document-title-cell strong {
    display: block;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }

  .document-table td.document-title-cell,
  .document-table td.document-correspondent-cell {
    display: table-cell;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }

  .document-table .document-preview-popover {
    display: none;
  }

  .finance-bookings th a.sortable {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .finance-bookings td:nth-child(2) small {
    display: none;
  }

  .finance-bookings td:nth-child(3),
  .finance-bookings td:nth-child(4),
  .finance-bookings td:nth-child(6),
  .finance-bookings td:nth-child(7),
  .finance-bookings td:nth-child(7) small {
    font-size: 12px;
    line-height: 1.35;
  }

  .finance-bookings td:nth-child(7) small {
    white-space: normal;
  }

  .finance-bookings td:nth-child(5) .status-pill {
    max-width: 100%;
    padding: 5px 4px;
    font-size: 9px;
    letter-spacing: 0;
    white-space: nowrap;
  }

  .finance-bookings th.list-actions-heading,
  .finance-bookings td.list-actions-cell,
  .document-table td.document-actions-cell {
    width: auto;
    min-width: 0;
    padding-left: 6px;
    text-align: left;
  }

  .finance-bookings .list-action-slots,
  .document-actions-cell .list-action-slots {
    width: 136px;
    min-width: 136px;
    grid-template-columns: 80px 26px 26px;
    gap: 2px;
    margin: 0;
  }

  .finance-bookings .list-action-slots .context-action,
  .document-actions-cell .list-action-slots .context-action {
    width: 80px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding-inline: 4px !important;
    font-size: 10px;
    white-space: nowrap;
  }

  .finance-bookings .list-action-slots .list-icon-action,
  .document-actions-cell .list-action-slots .list-icon-action {
    width: 26px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 !important;
  }

  .finance-bookings .list-action-slots .list-icon-action svg,
  .document-actions-cell .list-action-slots .list-icon-action svg {
    width: 15px;
    height: 15px;
  }

  .document-table .document-date-column { width: 78px; }
  .document-table .document-type-column { width: 92px; }
  .document-table .document-correspondent-column { width: 132px; }
  .document-table .document-title-column { width: auto; }
  .document-table .document-actions-column { width: 158px; }

  .document-table td:first-child {
    font-size: 12px;
    white-space: nowrap;
  }

  .records-table-wrap {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
  }

  .records-table {
    width: 1146px;
    min-width: 1146px;
    table-layout: fixed;
  }

  .records-table th,
  .records-table td {
    box-sizing: border-box;
    padding: 12px 10px;
    overflow-wrap: anywhere;
  }

  .records-table th:first-child,
  .records-table td:first-child { padding-left: 14px; }
  .records-table th:last-child,
  .records-table td:last-child { padding-right: 14px; }

  .records-table td:first-child {
    white-space: nowrap;
  }

  .records-table .records-date-column { width: 110px; }
  .records-table .records-title-column { width: 190px; }
  .records-table .records-type-column { width: 110px; }
  .records-table .records-status-column { width: 120px; }
  .records-table .records-party-column { width: 180px; }
  .records-table .records-bkp-column { width: 0; }
  .records-table .records-work-package-column { width: 150px; }
  .records-table .records-amount-column { width: 132px; }
  .records-table .records-actions-column { width: 154px; }

  .records-table th:nth-child(6),
  .records-table td:nth-child(6) {
    display: table-cell;
    width: 0 !important;
    max-width: 0;
    padding: 0 !important;
    overflow: hidden;
    visibility: hidden;
    border: 0;
  }

  .records-table th.list-actions-heading,
  .records-table td.list-actions-cell {
    width: auto;
    min-width: 0;
    padding-inline: 4px 10px;
    text-align: left;
  }

  .records-table .list-action-slots {
    width: 140px;
    min-width: 140px;
    grid-template-columns: 82px 27px 27px;
    gap: 2px;
    margin: 0;
  }

  .records-table .list-action-slots .context-action {
    width: 82px !important;
    padding-inline: 4px !important;
    font-size: 10px;
  }

  .records-table .list-action-slots .list-icon-action {
    width: 27px !important;
    padding: 0 !important;
  }
}

/* 2.45.0: iPad Pro 11" – Dokumentauswahl und BKP-Kostenansicht. */
@container (min-width: 700px) and (max-width: 1180px) {
  .document-picker-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .document-picker-filters .document-unlinked {
    width: 100%;
    min-width: 0;
    white-space: normal;
  }

  .document-picker-filters .document-unlinked span {
    min-width: 0;
    overflow-wrap: anywhere;
  }

}

/* Dokumentprüfung: Archivieren bleibt an der linken, die Hauptaktionen an
 * der rechten Innenkante. Der gezielte Selektor verhindert {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 100%;
  gap: 12px 24px;
}

@media (max-width: 680px) {
}

.record-work-package-context,
.document-work-package-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 18px;
  padding: 22px 24px;
}

.record-work-package-context h2 { margin: 4px 0; }
.record-work-package-context p { margin: 0; color: var(--muted); }
.document-work-package-card { display: block; }
.linked-work-package-list { display: grid; gap: 8px; margin-bottom: 16px; }
.linked-work-package-list > a { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 12px; }
.linked-work-package-list span { display: grid; gap: 3px; }
.linked-work-package-list small { color: var(--muted); }
.linked-work-package-list b { color: var(--accent); font-size: 13px; white-space: nowrap; }
.document-work-package-form { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; align-items: end; gap: 12px; }
.wpb-documents > header p { margin: 5px 0 0; color: var(--muted); }
.wpb-document-list .linked-document-row { align-items: center; }

@media (max-width: 680px) {
  .record-work-package-context,
  .document-work-package-form { display: grid; }
  .record-work-package-context .button { width: 100%; }
  .linked-work-package-list > a { align-items: flex-start; flex-direction: column; }
}

/* 2.43.10: Filterköpfe und Datumsfelder exakt am Arbeitspakete-Design. */
.unified-collapsible-filter > summary,
.wpb-filter > summary {
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  height: 52px !important;
  min-height: 52px !important;
  padding: 0 20px !important;
  margin: 0 !important;
}

.unified-collapsible-filter[open] > summary,
.wpb-filter[open] > summary {
  border-bottom: 0 !important;
}

.unified-collapsible-filter > form,
.wpb-filter > form {
  padding: 0 20px 20px !important;
}

input[type="date"],
input[type="datetime-local"],
input[type="month"] {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: normal !important;
}

input[type="date"]::-webkit-date-and-time-value,
input[type="datetime-local"]::-webkit-date-and-time-value,
input[type="month"]::-webkit-date-and-time-value,
input[type="date"]::-webkit-datetime-edit,
input[type="datetime-local"]::-webkit-datetime-edit,
input[type="month"]::-webkit-datetime-edit {
  display: flex !important;
  align-items: center !important;
  box-sizing: border-box !important;
  height: 100% !important;
  min-height: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: normal !important;
}

@container (min-width: 681px) {
  :is(
    .booking-filters.unified-list-filters,
    .document-list-filters,
    .timeline-filter,
    .report-filter
  ) input:is([type="date"], [type="datetime-local"], [type="month"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]) {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: normal !important;
  }

  .booking-filters.financing-unified-filters {
    grid-template-areas:
      "title title party category owner stage"
      "date-from date-to amount-min amount-max actions actions" !important;
  }
}

/* Finaler Cascade-Guard fuer die listenuebergreifenden Regeln dieses Releases. */
@media (hover: hover) and (pointer: fine) {
  main table tbody tr,
  main table tbody tr > td,
  :is(.cost-row,.risk-list-entry,.task-row,.activity-event,.decision-row,.decision-card,.wpb-package,.wpb-record-list > article,.wpb-change-row,.wpb-invoice-row,.linked-document-row,.linked-work-package-row) {
    transition: var(--list-row-transition);
  }
  :is(main table tbody tr,.cost-row,.risk-list-entry,.task-row,.activity-event,.decision-row,.decision-card,.wpb-package,.wpb-record-list > article,.wpb-change-row,.wpb-invoice-row,.linked-document-row,.linked-work-package-row):hover,
  main table tbody tr:hover > td {
    background-color: var(--list-row-hover);
  }
}

@media (hover: none), (pointer: coarse) {
  :is(main table tbody tr,.cost-row,.risk-list-entry,.task-row,.activity-event,.decision-row,.decision-card,.wpb-package,.wpb-record-list > article,.wpb-change-row,.wpb-invoice-row,.linked-document-row,.linked-work-package-row):hover,
  main table tbody tr:hover > td { background-color: transparent; }
}

.document-work-package-card > .section-head { margin-bottom: 20px; }
.linked-work-package-list { gap: 10px; margin-bottom: 20px; }
.linked-work-package-list > .linked-work-package-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.linked-work-package-row > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-width: 0;
  flex: 1 1 auto;
}
.document-work-package-form { grid-template-columns: minmax(0, 1fr) auto; }
.payment-row-actions { display: flex; align-items: center; gap: 8px; }

@media (max-width: 680px) {
.linked-work-package-list > .linked-work-package-row { align-items: stretch; flex-direction: column; }
}

/* Einheitliche Detailkoepfe, Dokumentlisten und mobile Uploadzustaende. */
.content {
  --page-content-start: 35px;
  padding-top: var(--page-content-start);
}

.content > :first-child {
  margin-top: 0;
}

.content > [hidden]:first-child + :not([hidden]) {
  margin-top: 0;
}

.detail-more-actions {
  position: relative;
}

.detail-more-actions > summary {
  list-style: none;
  cursor: pointer;
}

.detail-more-actions > summary::-webkit-details-marker {
  display: none;
}

.detail-more-menu {
  position: absolute;
  left: 0;
  top: calc(100% + 8px);
  z-index: 40;
  display: grid;
  min-width: 220px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow);
}

.detail-more-menu button,
.detail-more-menu a {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--ink);
  text-align: left;
}

.detail-more-menu button:hover,
.detail-more-menu button:focus-visible,
.detail-more-menu a:hover,
.detail-more-menu a:focus-visible {
  background: var(--surface-2);
}

.header-detail-action-menu {
  display: none;
  position: relative;
}

.header-detail-action-menu > summary {
  list-style: none;
  cursor: pointer;
  white-space: nowrap;
}

.header-detail-action-menu > summary::-webkit-details-marker {
  display: none;
}

.global-detail-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 80;
  display: grid;
  gap: 6px;
  width: min(310px, calc(100vw - 28px));
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--shadow);
}

.global-detail-menu > :is(a, button, form, details),
.global-detail-menu > form > .button {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.global-detail-menu > :is(a.button, button.button),
.global-detail-menu > form > .button {
  min-height: 46px;
  justify-content: flex-start;
}

.global-detail-menu > .detail-more-actions > summary {
  display: none;
}

.global-detail-menu > .detail-more-actions > .detail-more-menu {
  position: static;
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 0 0 6px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
}

.global-detail-menu > .detail-more-actions > .detail-more-menu > button {
  min-height: 44px;
}

.document-table-wrap {
  box-sizing: border-box;
  min-height: clamp(260px, 36vh, 430px);
  max-height: none;
  overflow-x: auto;
  overflow-y: visible;
  overscroll-behavior-inline: contain;
}

.document-overview,
.document-overview.finance,
.document-overview.reference {
  background: #fff;
  border-color: #d9e2de;
  box-shadow: 0 8px 24px rgba(20, 40, 33, .045);
}

.document-overview:hover,
.document-overview:focus-visible {
  border-color: #8eb5a7;
  box-shadow: 0 12px 28px rgba(6, 76, 62, .10);
  outline: none;
}

.document-overview:active {
  background: #f2f8f5;
  transform: translateY(1px);
}

.document-relations-card {
  display: block;
  margin-bottom: 18px;
  padding: 22px 24px;
}

.document-relations-card .section-head {
  margin-bottom: 18px;
}

.document-relation-list {
  display: grid;
  gap: 10px;
}

.document-relation-list > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 64px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.document-relation-list > a:hover,
.document-relation-list > a:focus-visible {
  border-color: #8eb5a7;
  background: #f7faf8;
  outline: none;
}

.document-relation-list span {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.document-relation-list small {
  color: var(--muted);
}

.document-relation-list strong {
  overflow-wrap: anywhere;
}

.document-relation-list b {
  color: var(--accent);
  font-size: 13px;
  white-space: nowrap;
}

.upload-dialog-feedback {
  min-height: 1.45em;
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 14px;
}

[data-document-background-upload][aria-busy="true"] {
  cursor: progress;
}

@media (max-width: 680px) {
  .content {
    --page-content-start: 20px;
  }

  .document-table-wrap {
    min-height: 0;
  }

  .topbar .header-detail-actions-desktop {
    display: none;
  }

  .topbar .header-detail-action-menu {
    display: block;
  }

  .detail-more-menu {
    right: auto;
    left: 0;
    width: min(270px, calc(100vw - 28px));
  }

  .document-relations-card {
    padding: 19px;
  }

  .document-relation-list > a {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Mobile Overlays bleiben immer innerhalb des sichtbaren Viewports. */
@media (max-width: 680px) {
  :is(
    .action-dropdown-menu,
    .global-detail-menu,
    .notification-popover,
    .detail-more-menu,
    .action-menu,
    .task-snooze > form
  ) {
    position: fixed;
    top: var(--mobile-overlay-top, 76px);
    right: auto;
    left: var(--mobile-overlay-left, 12px);
    z-index: 200;
    width: var(--mobile-overlay-width, calc(100vw - 24px));
    min-width: 0;
    max-width: calc(100vw - 24px);
    max-height: calc(100dvh - var(--mobile-overlay-top, 76px) - 12px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .global-detail-menu > .detail-more-actions > .detail-more-menu {
    position: static;
    width: 100%;
    max-width: none;
    max-height: none;
    overflow: visible;
  }

  .field-info-popover {
    position: fixed;
    top: var(--mobile-overlay-top, 76px);
    left: var(--mobile-overlay-left, 12px);
    z-index: 220;
    width: var(--mobile-overlay-width, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    max-height: calc(100dvh - var(--mobile-overlay-top, 76px) - 12px);
    overflow-y: auto;
    transform: none;
  }
}

/* 2.48.13: einheitliche, kontrastfeste Warnzustände. */
:root {
  --danger-surface: #fff3f1;
  --danger-border: #c76058;
  --danger-ink: #742d29;
  --danger-copy: #4f3f3c;
  --danger-solid: #8f2f29;
  --warning-surface: #fff8e7;
  --warning-border: #d2a03a;
  --warning-ink: #6d4a0f;
  --warning-copy: #544838;
}

:is(
  .alert-card.danger,
  .wpb-finding.danger,
  .control-finding.danger,
  .allocation-summary.danger,
  .invoice-review.danger,
  .review-analysis-disclosures .extraction-block.danger,
  .form-error-banner,
  .inline-error
) {
  border: 1px solid #e8c3bf;
  border-left: 4px solid var(--danger-border);
  background: var(--danger-surface);
  color: var(--danger-ink);
}

:is(
  .alert-card.danger,
  .wpb-finding.danger,
  .control-finding.danger,
  .allocation-summary.danger,
  .invoice-review.danger,
  .review-analysis-disclosures .extraction-block.danger
) :is(strong, h2, h3, summary) {
  color: var(--danger-ink);
}

:is(
  .alert-card.danger,
  .wpb-finding.danger,
  .control-finding.danger,
  .invoice-review.danger,
  .review-analysis-disclosures .extraction-block.danger
) :is(p, li, small) {
  color: var(--danger-copy);
}

.form-error-banner .errorlist,
.inline-error .errorlist,
.pdf-dropzone-error {
  color: var(--danger-ink) !important;
}

:is(
  .wpb-finding.warning,
  .control-finding.warning,
  .allocation-summary.warning,
  .invoice-review.warning,
  .review-analysis-disclosures .extraction-block.warning
) {
  border: 1px solid #ead6a8;
  border-left: 4px solid var(--warning-border);
  background: var(--warning-surface);
  color: var(--warning-ink);
}

:is(
  .wpb-finding.warning,
  .control-finding.warning,
  .allocation-summary.warning,
  .invoice-review.warning,
  .review-analysis-disclosures .extraction-block.warning
) :is(strong, h2, h3, summary) {
  color: var(--warning-ink);
}

:is(
  .wpb-finding.warning,
  .control-finding.warning,
  .invoice-review.warning,
  .review-analysis-disclosures .extraction-block.warning
) :is(p, li, small) {
  color: var(--warning-copy);
}

:is(
  .toast.error,
  .badge-count,
  .document-review-queue-badge,
  .wpb-forecast-state.overrun,
  .control-finding.danger .control-finding-icon,
  .task-group-overdue > header > span
) {
  background: var(--danger-solid);
  color: #fff;
}

/* Eine Kostenüberschreitung liegt am rechten Rand über dem erwarteten Betrag.
   Nur dieses tatsaechlich ueberlagerte Label braucht einen hellen Traeger. */
.control-billing-track.overrun .control-billing-bar > span.expected strong {
  position: relative;
  z-index: 3;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 0 0 1px rgba(23, 35, 31, .08);
  color: #17231f;
  text-shadow: none;
}

/* 2.48.14: ein Seiten-Scrollbereich und unclipped Dokumentvorschauen. */
.document-table-wrap {
  max-height: none !important;
  overflow-y: visible !important;
}

.document-preview-popover {
  position: fixed;
  z-index: 200;
  right: auto;
  bottom: auto;
  box-sizing: border-box;
  width: min(480px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 32px);
  overflow: auto;
  transform: none;
  transition: opacity .12s ease;
}

.document-preview-popover.is-positioning,
.document-preview-popover.is-open {
  display: block;
}

.document-preview-popover.is-positioning {
  opacity: 0 !important;
  visibility: hidden !important;
  transition: none !important;
}

.document-preview-popover.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  transition: opacity .12s ease !important;
  transition-delay: 0s !important;
}

/* 2.48.20: Globale Anzeige laufender Hintergrundverarbeitungen. */
.job-menu {
  position: relative;
}

.job-menu summary {
  list-style: none;
}

.job-menu summary::-webkit-details-marker {
  display: none;
}

.job-menu-trigger {
  background: #e5f2ed;
  border-color: #bfd8cf;
  color: var(--accent);
}

.job-menu:not([hidden]) .lucide-refresh-cw,
#paperless-sync-button.is-syncing .lucide-refresh-cw,
.job-item-spinner {
  animation: job-spin 1.25s linear infinite;
}

.job-badge {
  position: absolute;
  right: -5px;
  top: -5px;
  display: grid;
  place-items: center;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  border-radius: 20px;
  background: var(--accent);
  color: #fff;
  font-size: 11px;
}

.job-popover {
  position: absolute;
  right: 0;
  top: 50px;
  z-index: 80;
  width: min(410px, 85vw);
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--shadow);
}

.job-list {
  display: grid;
  gap: 4px;
}

.job-item {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  padding: 12px;
  border-radius: 13px;
  color: var(--ink);
}

.job-item:hover {
  background: var(--surface-2);
}

.job-item-spinner {
  width: 16px;
  height: 16px;
  margin-top: 4px;
  color: var(--accent);
}

.job-item-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.job-item-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.job-item-copy small {
  color: var(--muted);
}

.job-item-type {
  color: var(--accent) !important;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.job-menu-note {
  margin: 8px 10px 4px;
  color: var(--muted);
  font-size: 12px;
}

@keyframes job-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .job-menu:not([hidden]) .lucide-refresh-cw,
  #paperless-sync-button.is-syncing .lucide-refresh-cw,
  .job-item-spinner {
    animation: none;
  }
}

@media (max-width: 680px) {
  .topbar:has(.job-menu:not([hidden])) {
    grid-template-columns: 42px minmax(0, 1fr) 42px 42px;
  }

  .job-menu:not([hidden]) {
    grid-column: 3;
    grid-row: 1;
  }

  .job-menu:not([hidden]) + .notification-menu {
    grid-column: 4;
  }

  .job-popover {
    position: fixed;
    top: var(--mobile-overlay-top, 76px);
    right: auto;
    left: var(--mobile-overlay-left, 12px);
    z-index: 200;
    width: var(--mobile-overlay-width, calc(100vw - 24px));
    min-width: 0;
    max-width: calc(100vw - 24px);
    max-height: calc(100dvh - var(--mobile-overlay-top, 76px) - 12px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

@media (min-width: 681px) and (max-width: 900px) {
  .topbar:has(.job-menu:not([hidden])) {
    grid-template-columns: 42px minmax(0, 1fr) auto 42px 42px;
  }

  .job-menu:not([hidden]) {
    grid-column: 4;
    grid-row: 1;
  }

  .job-menu:not([hidden]) + .notification-menu {
    grid-column: 5;
  }
}

/* Klare Pflichtfeld- und Fehlerdarstellung ohne Eingriff in das Seitenlayout. */
.form-field.is-required > span:first-child::after,
label.is-required > span:first-child::after {
  content: " *";
  color: var(--danger);
  font-weight: 800;
}

.form-field.has-error > .form-control,
.form-field.has-error > input,
.form-field.has-error > select,
.form-field.has-error > textarea,
label.has-error > .form-control {
  border-color: var(--danger) !important;
  background: color-mix(in srgb, var(--danger-bg) 38%, #fff) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 12%, transparent) !important;
}

.form-field.has-error > span:first-child,
label.has-error > span:first-child {
  color: var(--danger);
}

.client-validation-error {
  display: block;
  margin-top: 1px;
  font-weight: 650;
}

.form-validation-summary {
  display: grid;
  gap: 3px;
  margin: 0 0 20px;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--danger) 32%, var(--line));
  border-left: 4px solid var(--danger);
  border-radius: 10px;
  background: var(--danger-bg);
  color: var(--danger);
}

.form-validation-summary[hidden] {
  display: none;
}

.form-validation-summary p {
  margin: 0;
  color: #75413d;
  font-size: 14px;
}

/* Pilot: klare Rechnungsdetails und fokussierte Rechnungserfassung. */
.topbar-title h1:has(.topbar-location-link) {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.topbar-location-link {
  color: var(--accent);
  font-weight: 650;
}

.topbar-location-separator {
  color: #9aa7a2;
}

.invoice-pilot-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 32px;
  align-items: end;
  margin-bottom: 22px;
}

.invoice-pilot-heading h1 {
  margin: 12px 0 4px;
  overflow-wrap: anywhere;
}

.invoice-pilot-heading p,
.invoice-pilot-total span,
.invoice-pilot-total small,
.invoice-fact-strip span,
.invoice-finance-row small,
.invoice-context-block p,
.invoice-document-row small,
.invoice-relation-grid span,
.invoice-empty-copy {
  color: var(--muted);
}

.invoice-pilot-heading p {
  margin: 0;
  font-size: 17px;
}

.invoice-pilot-total {
  display: grid;
  min-width: 230px;
  justify-items: end;
  gap: 2px;
  text-align: right;
}

.invoice-pilot-total strong {
  color: var(--dark);
  font-size: clamp(34px, 3vw, 48px);
  letter-spacing: -1.4px;
  line-height: 1.05;
}

.invoice-fact-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 22px;
  border: 1px solid #cad9d3;
  border-radius: 14px;
  background: #f1f7f4;
}

.invoice-fact-strip > div {
  display: grid;
  align-content: center;
  gap: 3px;
  min-height: 82px;
  padding: 15px 20px;
}

.invoice-fact-strip > div + div {
  border-left: 1px solid #cad9d3;
}

.invoice-fact-strip strong {
  overflow-wrap: anywhere;
}

.invoice-fact-strip a {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--ink);
}

.invoice-fact-strip a b,
.invoice-relation-grid a b,
.invoice-link-list a b {
  color: var(--accent);
  font-size: 20px;
}

.invoice-pilot-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(480px, .92fr);
  gap: 18px;
  align-items: start;
}

.invoice-pilot-section {
  overflow: hidden;
  border: 1px solid #bdcbc6;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 7px 20px rgba(20, 40, 33, .045);
}

.invoice-pilot-section > header,
.invoice-panel-head {
  padding: 17px 22px;
  border-bottom: 1px solid #bdcbc6;
  background: #edf3f1;
}

.invoice-pilot-section > header h2,
.invoice-panel-head h2 {
  margin: 0;
  color: #075142;
  font-size: 21px;
}

.invoice-finance-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  min-height: 88px;
  padding: 17px 22px;
}

.invoice-finance-row + .invoice-finance-row,
.invoice-allocation-state + .invoice-finance-row,
.invoice-subrow + .invoice-finance-row {
  border-top: 1px solid var(--line);
}

.invoice-finance-row > div:first-child,
.invoice-row-value {
  display: grid;
  gap: 3px;
}

.invoice-row-value {
  justify-items: end;
  text-align: right;
}

.invoice-allocation-state {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin: -6px 22px 15px;
}

.invoice-allocation-state > span {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #dfe7e3;
}

.invoice-allocation-state > span::after {
  display: block;
  width: min(100%, var(--invoice-progress));
  height: 100%;
  border-radius: inherit;
  background: var(--positive);
  content: "";
}

.invoice-subrow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 14px;
  align-items: center;
  padding: 12px 22px;
  border-top: 1px dashed var(--line);
  background: #fbfcfb;
  font-size: 14px;
}

.invoice-schedule-row {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 12px 22px;
  border-top: 1px dashed var(--line);
  background: #fbfcfb;
}

.invoice-schedule-row > div {
  display: grid;
  gap: 2px;
}

.invoice-schedule-row small {
  color: var(--muted);
}

.invoice-context-section {
  background: #fff;
}

.invoice-review-compact {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin: 18px 20px;
  padding: 14px 16px;
  border: 1px solid #a8c9bc;
  border-left: 4px solid var(--positive);
  border-radius: 11px;
  background: #edf7f2;
}

.invoice-review-compact .review-symbol {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-size: 20px;
}

.invoice-review-compact > div {
  display: grid;
  gap: 2px;
}

.invoice-context-block {
  margin: 0 20px;
  padding: 18px 0;
  border-top: 1px solid var(--line);
}

.invoice-context-heading,
.invoice-document-row,
.invoice-document-row > div:last-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.invoice-context-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px;
}

.invoice-document-row {
  min-height: 62px;
  margin-top: 10px;
  padding: 10px 0;
}

.invoice-document-row + .invoice-document-row {
  border-top: 1px solid var(--line);
}

.invoice-document-row > div:first-child {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.invoice-context-block p {
  margin: 8px 0 0;
  line-height: 1.55;
}

.invoice-inline-pdf {
  margin-top: 12px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f4f6f5;
}

.invoice-inline-pdf summary {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 11px 14px;
  border-bottom: 1px solid var(--line);
  background: #fff;
  cursor: pointer;
  list-style: none;
}

.invoice-inline-pdf summary::-webkit-details-marker {
  display: none;
}

.invoice-inline-pdf summary > span:first-child {
  margin-right: auto;
  font-weight: 700;
}

.invoice-inline-pdf summary .when-open,
.invoice-inline-pdf summary .when-closed {
  color: var(--accent);
  font-size: 13px;
}

.invoice-inline-pdf:not([open]) summary {
  border-bottom: 0;
}

.invoice-inline-pdf:not([open]) .when-open,
.invoice-inline-pdf[open] .when-closed {
  display: none;
}

.invoice-inline-pdf .record-pdf-frame {
  height: min(56vh, 640px);
  min-height: 420px;
  border: 0;
  border-radius: 0;
}

.invoice-scope-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  cursor: pointer;
  list-style: none;
}

.invoice-scope-details summary::-webkit-details-marker {
  display: none;
}

.invoice-scope-details summary span {
  color: var(--accent);
  font-size: 13px;
}

.invoice-scope-details summary .when-open,
.invoice-scope-details summary .when-closed {
  color: var(--accent);
  font-size: 13px;
}

.invoice-scope-details:not([open]) .when-open,
.invoice-scope-details[open] .when-closed {
  display: none;
}

.invoice-inline-pdf .pdf-canvas-viewer-error {
  height: auto;
  min-height: 92px;
}

.invoice-relations-section {
  margin-top: 18px;
}

.invoice-relation-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.invoice-relation-grid > * {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 10px;
  align-content: center;
  min-height: 82px;
  padding: 14px 18px;
  color: var(--ink);
}

.invoice-relation-grid > * + * {
  border-left: 1px solid var(--line);
}

.invoice-relation-grid span,
.invoice-relation-grid strong {
  grid-column: 1;
  overflow-wrap: anywhere;
}

.invoice-relation-grid b {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
}

.invoice-form-header-actions {
  display: flex;
  gap: 9px;
  align-items: center;
}

.invoice-form-heading h1 {
  font-size: clamp(36px, 4vw, 56px);
}

.invoice-entry-form {
  max-width: 1460px;
}

.invoice-entry-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(350px, .65fr);
  gap: 18px;
  align-items: start;
}

.invoice-entry-primary,
.invoice-entry-sidebar {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.invoice-fixed-context {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 6px 14px;
  align-items: center;
  margin-bottom: 18px;
  padding: 13px 17px;
  border: 1px solid #c9d8d2;
  border-radius: 12px;
  background: #f3f7f5;
}

.invoice-fixed-context > span,
.invoice-fixed-context > small {
  color: var(--muted);
  font-size: 13px;
}

.invoice-fixed-context > small {
  text-align: right;
}

.invoice-fixed-context a {
  color: var(--ink);
}

.invoice-entry-sidebar {
  position: sticky;
  top: 104px;
}

.invoice-link-panel,
.invoice-document-intake {
  overflow: hidden;
  border: 1px solid #bdcbc6;
  border-radius: 14px;
  background: #fff;
}

.invoice-link-list {
  display: grid;
  padding: 8px 18px 14px;
}

.invoice-link-list > a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 12px;
  padding: 12px 0;
  color: var(--ink);
}

.invoice-link-list > a + a {
  border-top: 1px solid var(--line);
}

.invoice-link-list span,
.invoice-link-list p {
  color: var(--muted);
  font-size: 13px;
}

.invoice-link-list strong {
  overflow-wrap: anywhere;
}

.invoice-link-list b {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
}

.invoice-document-intake {
  padding: 0;
}

.invoice-document-intake .record-document-intake-head {
  display: block;
  padding: 17px 20px;
  border-bottom: 1px solid #bdcbc6;
  background: #edf3f1;
}

.invoice-document-intake .record-document-intake-head h2 {
  font-size: 20px;
}

.invoice-document-intake .record-document-intake-head > p {
  margin-top: 5px;
  font-size: 13px;
}

.invoice-document-intake .record-document-options {
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 14px;
}

.invoice-document-intake .record-document-option {
  padding: 14px;
}

.invoice-document-intake .record-document-option h3 {
  font-size: 16px;
}

.invoice-document-dialog {
  max-width: min(1180px, calc(100vw - 40px));
}

.invoice-document-dialog-card {
  max-height: min(90vh, 920px);
}

.invoice-document-dialog .invoice-document-intake {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.invoice-document-dialog-intro {
  margin-bottom: 16px;
}

.invoice-document-dialog .record-document-options {
  grid-template-columns: minmax(270px, .62fr) minmax(0, 1.38fr);
  gap: 16px;
  padding: 0;
}

.invoice-document-dialog .record-document-option {
  padding: 18px;
}

.record-document-options--tabbed {
  display: block !important;
}

.record-document-options--tabbed .record-document-option {
  width: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.record-document-options--tabbed .record-document-option[hidden],
.record-document-dialog-panel[hidden],
[data-document-footer][hidden] {
  display: none !important;
}

.record-document-options--tabbed .record-document-existing .document-picker {
  margin-top: 0;
}

.record-document-dialog {
  width: min(1040px, calc(100vw - 40px));
  max-width: min(1040px, calc(100vw - 40px));
}

:is(.record-document-dialog-card, .invoice-document-dialog-card) {
  display: grid;
  height: min(92vh, 940px);
  max-height: min(92vh, 940px);
  overflow: hidden;
  padding-bottom: 0;
}

.invoice-document-dialog-card {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.record-document-dialog-card {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.record-document-detail-intake,
.work-package-document-intake {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 0;
  overflow: hidden;
}

:is(.record-document-dialog-card, .invoice-document-dialog-card) > .record-document-intake {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  min-height: 0;
  overflow: hidden;
}

:is(.record-document-dialog-card, .invoice-document-dialog-card) .record-document-options,
:is(.record-document-dialog-card, .invoice-document-dialog-card) .record-document-option,
:is(.record-document-dialog-card, .invoice-document-dialog-card) .record-document-existing,
:is(.record-document-dialog-card, .invoice-document-dialog-card) .document-picker,
:is(.record-document-dialog-card, .invoice-document-dialog-card) .document-picker-panel {
  min-height: 0;
}

:is(.record-document-dialog-card, .invoice-document-dialog-card) .record-document-existing,
:is(.record-document-dialog-card, .invoice-document-dialog-card) .document-picker,
:is(.record-document-dialog-card, .invoice-document-dialog-card) .document-picker-panel {
  height: 100%;
}

:is(.record-document-dialog-card, .invoice-document-dialog-card) .document-picker-panel {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  overflow: hidden;
}

.record-document-dialog-panel {
  min-height: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.record-document-dialog-panel > .record-document-dialog-form {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto auto;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.record-document-dialog-form > .ui-section-header {
  margin-bottom: 18px;
  padding: 0 0 8px;
  border-bottom: 1px solid var(--ui-section-heading-line);
  background: transparent;
}

.record-document-dialog-form > .ui-section-header > div {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
}

.record-document-dialog-form > .ui-section-header p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.record-document-dialog-form > .pdf-dropzone,
.record-document-dialog-form > .document-picker,
.record-document-dialog-fields {
  margin: 18px 0 0;
}

.record-document-dialog-form > .document-picker--static {
  margin-top: 0;
}

.record-document-dialog-form > .pdf-dropzone {
  min-height: 190px;
}

.record-document-dialog-fields {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.record-document-dialog-form > .ui-form-actions {
  margin: 20px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--ui-border);
}

.record-document-dialog-form > .record-document-dialog-footer {
  margin: 16px calc(var(--ui-space-6) * -1) 0;
  padding: 16px var(--ui-space-6);
  background: var(--bg, #f3f5f2);
}

.record-document-dialog-actions {
  margin: 16px calc(var(--ui-space-6) * -1) 0;
  padding: 16px var(--ui-space-6);
  border-top: 1px solid var(--ui-border);
  background: var(--bg, #f3f5f2);
}

.record-document-dialog .document-picker-results {
  min-height: 0;
  max-height: none;
  overflow-y: auto;
}

.record-document-dialog .document-picker-panel {
  background: #fff;
}

.record-document-dialog .document-picker--static .document-picker-panel {
  grid-template-rows: auto minmax(0, 1fr);
}

.document-picker--static {
  border: 0;
  border-radius: 0;
  background: transparent;
}

.document-picker--static .document-picker-panel {
  padding: 0;
  border-top: 0;
}

@media (max-width: 1100px) {
  .invoice-pilot-grid,
  .invoice-entry-layout {
    grid-template-columns: 1fr;
  }

  .invoice-entry-sidebar {
    position: static;
  }

  .invoice-document-dialog .record-document-options {
    grid-template-columns: 1fr;
  }

  .invoice-relation-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .invoice-relation-grid > :nth-child(4) {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .invoice-relation-grid > :nth-child(n + 5) {
    border-top: 1px solid var(--line);
  }
}

@media (max-width: 760px) {
  .document-picker-filters.document-picker-filters--compact {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .topbar-title h1:has(.topbar-location-link) {
    gap: 5px;
    font-size: 16px;
  }

  .topbar-location-link {
    display: none;
  }

  .topbar-location-link + .topbar-location-separator {
    display: none;
  }

  .invoice-form-header-actions .button {
    min-height: 42px;
    padding: 8px 10px;
    font-size: 13px;
  }

  .invoice-form-header-actions .button.secondary {
    padding-inline: 9px;
  }

  .invoice-pilot-heading {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .invoice-pilot-total {
    justify-items: start;
    text-align: left;
  }

  .invoice-fact-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-right: 0;
    overflow: hidden;
  }

  .invoice-fact-strip > div {
    min-height: 74px;
    padding: 13px 15px;
  }

  .invoice-fact-strip > div:nth-child(3) {
    border-left: 0;
  }

  .invoice-fact-strip > div:nth-child(n + 3) {
    border-top: 1px solid #cad9d3;
  }

  .invoice-pilot-grid,
  .invoice-entry-layout {
    gap: 14px;
  }

  .invoice-finance-row {
    min-height: 78px;
    padding: 15px 17px;
  }

  .invoice-subrow {
    grid-template-columns: 1fr auto;
    padding-inline: 17px;
  }

  .invoice-schedule-row {
    grid-template-columns: 12px minmax(0, 1fr) auto;
    padding-inline: 17px;
  }

  .invoice-schedule-row > .text-button {
    grid-column: 2 / -1;
    justify-self: start;
  }

  .invoice-subrow .payment-row-actions {
    grid-column: 1 / -1;
  }

  .invoice-relation-grid {
    grid-template-columns: 1fr;
  }

  .invoice-relation-grid > * + *,
  .invoice-relation-grid > :nth-child(4) {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .invoice-entry-form {
    padding: 14px !important;
  }

  .invoice-form-heading h1 {
    font-size: 34px;
  }

  .invoice-fixed-context {
    grid-template-columns: 1fr;
  }

  .invoice-fixed-context > small {
    text-align: left;
  }

  .invoice-document-dialog {
    max-width: calc(100vw - 20px);
  }

  .record-document-dialog {
    width: calc(100vw - 20px);
    max-width: calc(100vw - 20px);
  }

  .record-document-dialog-form > .pdf-dropzone,
  .record-document-dialog-form > .document-picker,
  .record-document-dialog-fields {
    margin-right: 0;
    margin-left: 0;
  }

  .record-document-dialog-form > .ui-form-actions {
    display: grid;
    grid-template-columns: 1fr;
    margin: 18px 0 0;
  }
}

/* Rechnungsdetail: klar getrennte, ruhige Inhaltsgruppen */
.invoice-tab-pilot .eyebrow {
  margin-bottom: 6px;
  color: #397766;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .055em;
}

.invoice-tab-pilot .invoice-tabs {
  gap: 4px;
  margin-top: 22px;
  padding: 5px;
  border: 1px solid #c9dce8;
  border-radius: 14px;
  background: rgba(242, 248, 252, .97);
  box-shadow: 0 5px 18px rgba(17, 106, 145, .055);
}

.invoice-tab-pilot .invoice-tabs a {
  min-height: 44px;
  padding: 0 17px;
  border: 0;
  border-radius: 10px;
  color: #456779;
  font-weight: 580;
}

.invoice-tab-pilot .invoice-tabs a:hover {
  background: #e9f3f8;
  color: var(--blue);
}

.invoice-tab-pilot .invoice-tabs a.active {
  border: 0;
  background: #d7e9f3;
  box-shadow: inset 0 0 0 1px rgba(17, 106, 145, .11);
  color: var(--blue);
  font-weight: 680;
}

.invoice-tab-pilot .invoice-tabs a:focus-visible {
  border-radius: 10px;
  outline-offset: 1px;
}

.invoice-tab-pilot .invoice-tab-panel {
  padding: 25px 0 8px;
}

.invoice-tab-pilot .invoice-panel-title {
  margin: 0 2px 16px;
}

.invoice-tab-pilot .invoice-panel-title h2 {
  font-size: 24px;
  font-weight: 680;
  letter-spacing: -.45px;
}

.invoice-tab-pilot .invoice-overview-layout {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px;
  align-items: stretch;
}

.invoice-tab-pilot .invoice-overview-layout > :first-child {
  grid-row: auto;
}

.invoice-tab-pilot .invoice-flat-section {
  padding: 21px 22px;
  border: 1px solid #dde5e1;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(15, 52, 43, .035);
}

.invoice-tab-pilot .invoice-tab-panel > .invoice-flat-section + .invoice-flat-section {
  margin-top: 15px;
}

.invoice-tab-pilot .invoice-section-heading {
  align-items: center;
  margin-bottom: 15px;
}

.invoice-tab-pilot .invoice-section-heading h3 {
  margin-top: 1px;
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -.2px;
}

.invoice-tab-pilot :is(.invoice-payment-row, .invoice-schedule-row, .invoice-allocation-list > div, .invoice-link-list > a, .invoice-history-list > div):first-child {
  border-top: 0;
}

.invoice-tab-pilot :is(.invoice-payment-row, .invoice-schedule-row, .invoice-link-list > a, .invoice-history-list > div) strong,
.invoice-tab-pilot .invoice-allocation-list strong,
.invoice-tab-pilot .invoice-history-list b {
  font-weight: 620;
}

.invoice-tab-pilot .invoice-status-copy {
  padding: 12px 0 2px;
  line-height: 1.55;
}

.invoice-tab-pilot .invoice-payment-summary {
  overflow: hidden;
  margin: 0 0 15px;
  border: 1px solid #dce5e1;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(15, 52, 43, .035);
}

.invoice-tab-pilot .invoice-payment-summary > div {
  min-height: 82px;
  padding: 16px 18px;
  align-content: center;
}

.invoice-tab-pilot .invoice-payment-summary dd {
  font-size: 18px;
  font-weight: 630;
}

.invoice-tab-pilot .invoice-payment-row,
.invoice-tab-pilot .invoice-schedule-row {
  min-height: 66px;
  padding: 12px 2px;
  border-top: 1px solid var(--line);
  background: transparent;
}

.invoice-tab-pilot .invoice-schedule-row {
  grid-template-columns: 12px minmax(0, 1fr) auto auto;
  gap: 14px;
}

.invoice-tab-pilot .payment-row-actions {
  display: flex;
  grid-column: auto;
  align-items: center;
  gap: 8px;
}

.invoice-tab-pilot .invoice-review-mark {
  width: 34px;
  height: 34px;
  border: 0;
  font-weight: 400;
}

.invoice-tab-pilot .invoice-review-mark .lucide {
  width: 30px;
  height: 30px;
  stroke-width: 1.75;
}

.invoice-tab-pilot .invoice-next-action {
  border-radius: 0 9px 9px 0;
  background: #f4f8f6;
  font-weight: 450;
}

.invoice-tab-pilot .invoice-allocation-summary {
  font-weight: 620;
}

@media (max-width: 1400px) {
  .invoice-tab-pilot .invoice-overview-layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .invoice-tab-pilot .invoice-overview-finance {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .invoice-tab-pilot .invoice-tabs {
    margin-inline: -4px;
    padding-inline: 5px;
  }

  .invoice-tab-pilot .invoice-tabs a {
    min-height: 43px;
    padding-inline: 13px;
  }

  .invoice-tab-pilot .invoice-overview-layout {
    grid-template-columns: 1fr;
  }

  .invoice-tab-pilot .invoice-overview-finance {
    grid-column: auto;
  }

  .invoice-tab-pilot .invoice-flat-section {
    padding: 18px 17px;
  }

  .invoice-tab-pilot .invoice-payment-row,
  .invoice-tab-pilot .invoice-schedule-row {
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 10px;
  }

  .invoice-tab-pilot .invoice-schedule-row > .timeline-dot {
    display: none;
  }

  .invoice-tab-pilot .invoice-payment-row > div:first-child,
  .invoice-tab-pilot .invoice-schedule-row > div:first-of-type {
    grid-column: 1 / -1;
  }

  .invoice-tab-pilot .invoice-payment-row .payment-row-actions,
  .invoice-tab-pilot .invoice-schedule-row .payment-row-actions {
    grid-column: auto;
  }
}

/* Rechnungsdetail: eine eindeutige Textebene pro Inhalt */
body:has(.invoice-tab-pilot) .topbar-project,
body:has(.invoice-entry-form) .topbar-project {
  display: block;
  line-height: 1.15;
}

body:has(.invoice-tab-pilot) .topbar-title h1,
body:has(.invoice-entry-form) .topbar-title h1 {
  margin: 1px 0 0;
  font-size: 22px;
  font-weight: 560;
  letter-spacing: -.45px;
  line-height: 1.15;
}

.invoice-topbar-parent,
.topbar-context-link {
  color: var(--blue);
  font-size: 13px;
  font-weight: 400;
}

.invoice-topbar-parent:hover,
.invoice-topbar-parent:focus-visible,
.topbar-context-link:hover,
.topbar-context-link:focus-visible {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.topbar-project:has(.topbar-context-link) {
  display: block;
  line-height: 1.15;
}

.invoice-topbar-location {
  gap: 7px;
}

.invoice-topbar-back {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--accent);
}

.invoice-topbar-back:hover,
.invoice-topbar-back:focus-visible {
  background: var(--accent-soft);
  outline: none;
}

.invoice-topbar-back .lucide {
  width: 19px;
  height: 19px;
}

.invoice-topbar-label {
  color: var(--accent);
  font-weight: 560;
}

body:has(.invoice-tab-pilot) .invoice-header-actions .button {
  font-weight: 600;
}

.invoice-tab-pilot .eyebrow {
  color: var(--blue);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .06em;
}

.invoice-tab-pilot .invoice-tabs a {
  flex: 1 1 0;
  justify-content: center;
  font-size: 15px;
  font-weight: 520;
  letter-spacing: -.05px;
}

.invoice-tab-pilot .invoice-tabs a.active {
  font-weight: 600;
}

.invoice-tab-pilot .invoice-tab-panel {
  padding-top: 18px;
}

.invoice-tab-pilot .invoice-section-heading {
  min-height: 30px;
  margin-bottom: 13px;
}

.invoice-tab-pilot .invoice-section-heading h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -.1px;
}

.invoice-panel-actions {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  margin: 0 0 12px;
}

.invoice-panel-actions .button {
  min-height: 42px;
  font-weight: 580;
}

.invoice-tab-pilot .invoice-link-list {
  padding: 0;
}

.invoice-tab-pilot .invoice-link-list > a {
  min-height: 60px;
  padding: 10px 2px;
}

.invoice-tab-pilot .invoice-link-list > a > span {
  gap: 2px;
}

.invoice-tab-pilot .invoice-link-list small {
  font-size: 12px;
  font-weight: 450;
}

.invoice-tab-pilot .invoice-link-list strong {
  font-size: 15px;
  font-weight: 560;
  line-height: 1.35;
}

.invoice-tab-pilot .invoice-link-list > a > b {
  display: grid;
  grid-column: 2;
  grid-row: 1;
  place-items: center;
  align-self: center;
  width: 30px;
  height: 30px;
  color: var(--accent);
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
}

@media (max-width: 760px) {
  .invoice-tab-pilot .invoice-tabs a {
    flex: 0 0 auto;
    justify-content: flex-start;
    font-size: 14px;
  }

  .invoice-panel-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .invoice-panel-actions .button {
    min-width: 0;
    padding-inline: 10px;
    font-size: 13px;
  }
}

/* Invoice detail: quiet card headers and unambiguous relationship hierarchy. */
.invoice-tab-pilot .invoice-flat-section > .invoice-section-heading {
  box-sizing: border-box;
  height: 48px;
  min-height: 48px;
  margin: -21px -22px 12px;
  padding: 0 22px;
  align-items: center;
  border-bottom: 1px solid #e2e9e5;
  border-radius: 16px 16px 0 0;
  background: var(--accent-soft);
}

.invoice-tab-pilot .invoice-flat-section > .invoice-section-heading h3 {
  color: var(--accent);
  font-size: 17px;
  font-weight: 600;
}

.invoice-tab-pilot .invoice-flat-section > .invoice-section-heading .eyebrow {
  color: var(--accent);
}

.invoice-tab-pilot .invoice-schedule-value {
  justify-items: end;
  text-align: right;
}

.invoice-tab-pilot .invoice-linked-record-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.invoice-tab-pilot .invoice-relation-card {
  overflow: hidden;
  border: 1px solid #dce5e1;
  border-radius: 12px;
  background: #fff;
}

.invoice-tab-pilot .invoice-relation-card h4 {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  height: 48px;
  margin: 0;
  padding: 0 15px;
  border-bottom: 1px solid #dce5e1;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.35;
}

.invoice-tab-pilot .invoice-relation-card a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 57px;
  padding: 12px 14px 12px 15px;
  color: var(--ink);
}

.invoice-tab-pilot .invoice-relation-card a:hover {
  background: #f8fbf9;
}

.invoice-tab-pilot .invoice-relation-card strong {
  font-size: 15px;
  font-weight: 580;
}

.invoice-tab-pilot .invoice-relation-card b {
  color: var(--accent);
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
}

.invoice-tab-pilot .invoice-history-list time {
  font-size: 14px;
}

.invoice-tab-pilot .invoice-history-list strong {
  font-size: 15px;
  line-height: 1.4;
}

.invoice-tab-pilot .invoice-history-list small {
  font-size: 13px;
}

/* Rechnungskennzahlen: eine ruhige, klar begrenzte Typografie-Hierarchie. */
.invoice-tab-pilot .invoice-summary-facts {
  row-gap: 20px;
}

.invoice-tab-pilot .invoice-summary-facts dt {
  font-size: 13px;
  font-weight: 520;
  line-height: 1.35;
}

.invoice-tab-pilot .invoice-summary-facts dd {
  display: flex;
  align-items: center;
  min-height: 28px;
  align-content: center;
  color: var(--ink);
  font-size: 20px;
  font-weight: 620;
  letter-spacing: -.15px;
  line-height: 1.2;
}

.invoice-tab-pilot .invoice-summary-facts .invoice-summary-amount dd {
  color: var(--ink);
  font-size: 20px;
  font-weight: 620;
  letter-spacing: -.15px;
}

.invoice-tab-pilot .invoice-summary-facts .money-display > small {
  font-size: .58em;
  font-weight: 520;
}

.invoice-tab-pilot .invoice-summary-facts .status-pill {
  justify-content: flex-start;
  gap: 8px;
  min-height: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink) !important;
  font-size: 20px;
  font-weight: 620;
  letter-spacing: -.15px;
  text-transform: none;
}

.invoice-tab-pilot .invoice-summary-facts .status-pill::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
  opacity: .65;
}

.invoice-tab-pilot .invoice-payment-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
  align-items: start;
}

.invoice-tab-pilot .invoice-linked-record-grid {
  margin-bottom: 15px;
}

@media (max-width: 980px) {
  .invoice-tab-pilot .invoice-payment-columns {
    grid-template-columns: 1fr;
  }
}

.invoice-selected-document {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  margin: 0 0 18px;
  padding: 13px 16px;
  border: 1px solid #cfe0d9;
  border-radius: 13px;
  background: var(--accent-soft);
  color: var(--accent);
}

.invoice-selected-document[hidden] {
  display: none;
}

.invoice-selected-document-icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #fff;
}

.invoice-selected-document-icon .lucide {
  width: 19px;
  height: 19px;
  stroke-width: 1.7;
}

.invoice-selected-document > span:last-child {
  display: grid;
  gap: 2px;
}

.invoice-selected-document small,
.invoice-selected-document em {
  font-size: 12px;
  font-style: normal;
  font-weight: 500;
}

.invoice-selected-document strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.invoice-selected-document em {
  color: #526760;
}

.invoice-tab-pilot .invoice-link-list small {
  color: var(--blue);
  font-weight: 550;
}

.invoice-tab-pilot .invoice-link-list strong {
  color: var(--ink);
}

.invoice-tab-pilot .invoice-scope-meta {
  margin: 0 0 10px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 550;
}

.invoice-tab-pilot .invoice-scope-section .invoice-long-copy {
  padding-top: 2px;
}

@media (max-width: 680px) {
  .topbar-project {
    display: block;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body:has(.invoice-tab-pilot) .topbar-title h1,
  body:has(.invoice-entry-form) .topbar-title h1 {
    font-size: 18px;
  }

  .invoice-topbar-parent,
  .topbar-context-link {
    font-size: 12px;
  }

  .topbar .invoice-header-actions.header-detail-actions-desktop {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .invoice-header-actions:not(:has(.invoice-pdf-action)) > .button.primary,
  .invoice-header-actions:not(:has(.invoice-pdf-action)) > form:has(.button.primary) {
    grid-column: 1 / -1;
  }

  body:has(.invoice-header-actions) {
    --invoice-sticky-top: 198px;
  }

  .invoice-tab-pilot .invoice-linked-record-grid {
    grid-template-columns: 1fr;
  }
}

/* 2.48.32 Rechnungsdetail: finale invertierte Flaechenhierarchie. */

body:has(.invoice-tab-pilot) .topbar {
  border-bottom-color: var(--invoice-border);
  background: rgba(255, 255, 255, .97);
}

body:has(.invoice-tab-pilot) .content {
  padding-top: 30px;
  padding-bottom: 52px;
}

.invoice-tab-pilot {
  --invoice-panel-padding-block: var(--ui-detail-panel-padding-block, 36px);
  --invoice-panel-padding-inline: var(--ui-detail-panel-padding-inline, 12px);
  --invoice-column-gutter: var(--ui-detail-column-gutter, 28px);
  --invoice-divider: var(--ui-detail-divider, #e4e9e6);
  --invoice-tab-inactive: var(--ui-detail-tab-inactive, #e9f3ee);
  --invoice-tab-inactive-hover: var(--ui-detail-tab-inactive-hover, #dcebe3);
  --invoice-tab-active: var(--ui-detail-tab-active, #b9d4c7);
  --invoice-tab-border: var(--ui-detail-tab-border, #aec4ba);
  --invoice-box-title-size: var(--ui-detail-section-title-size, 19px);
  --invoice-box-title-weight: var(--ui-detail-section-title-weight, 650);
  --invoice-row-title-size: var(--ui-detail-row-title-size, 16px);
  --invoice-row-title-weight: var(--ui-detail-row-title-weight, 550);
  --invoice-meta-size: var(--ui-detail-label-size, 13px);
  --invoice-meta-weight: var(--ui-detail-label-weight, 450);
  --invoice-status-weight: 400;
  color: var(--ink);
}

.invoice-tab-pilot .invoice-subpage-grid {
  display: grid;
  min-width: 0;
  gap: 0;
  align-items: stretch;
}

.invoice-tab-pilot .invoice-subpage-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.invoice-tab-pilot .invoice-subpage-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.invoice-tab-pilot .invoice-summary-header {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.invoice-tab-pilot .invoice-summary-header {
  align-items: center;
  padding: 30px 34px;
  border-bottom: 1px solid var(--invoice-border);
}

.invoice-tab-pilot .invoice-summary-identity h1 {
  margin-top: 0;
  color: var(--invoice-brand-primary);
  font-size: clamp(28px, 2.3vw, 36px);
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
}

.invoice-tab-pilot .invoice-summary-facts {
  gap: 20px 28px;
}

.invoice-tab-pilot .invoice-summary-facts dt {
  color: var(--blue);
  font-weight: 450;
}

.invoice-tab-pilot .invoice-summary-facts dd,
.invoice-tab-pilot .invoice-summary-facts .invoice-summary-amount dd,
.invoice-tab-pilot .invoice-summary-facts .status-pill {
  color: var(--ink) !important;
  font-size: 20px;
  font-weight: 620;
}

.invoice-tab-pilot .invoice-summary-facts .status-pill::before {
  flex: 0 0 auto;
  background: #55776b;
  opacity: 1;
}

.invoice-tab-pilot .invoice-summary-facts .status-pill.positive::before,
.invoice-tab-pilot .invoice-summary-facts .status-pill.ok::before,
.invoice-tab-pilot .invoice-summary-facts .status-pill.done::before {
  background: #269348;
}

.invoice-tab-pilot .invoice-attention-strip {
  grid-column: 1 / -1;
  min-height: 44px;
  margin: 2px 0 -4px;
  box-shadow: none;
}

.invoice-detail-module {
  margin-top: 28px;
  padding: 0;
}

.invoice-main-module {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.invoice-tab-pilot .invoice-tabs {
  position: static;
  gap: 0;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  border: 0;
  border-bottom: 0;
  border-radius: 7px 7px 0 0;
  background: transparent;
  box-shadow: none;
  scrollbar-width: thin;
  overscroll-behavior-inline: contain;
}

.invoice-tab-pilot .invoice-tabs a {
  flex: 1 0 0;
  height: 46px;
  min-height: 46px;
  padding: 0 18px;
  border: 0;
  border-left: 1px solid var(--invoice-tab-border);
  border-radius: 0;
  background: var(--invoice-tab-inactive);
  box-shadow: inset 0 -1px 0 var(--ui-detail-tab-edge, #a4bdb1);
  color: var(--ink);
  font-size: 15px;
  font-weight: 400;
  line-height: 1;
}

.invoice-tab-pilot .invoice-tabs a:first-child {
  border-left: 0;
  border-radius: 7px 0 0;
}

.invoice-tab-pilot .invoice-tabs a:last-child {
  border-radius: 0 7px 0 0;
  box-shadow: inset 0 -1px 0 var(--ui-detail-tab-edge, #a4bdb1);
}

.invoice-tab-pilot .invoice-tabs a:hover {
  background: var(--invoice-tab-inactive-hover);
  color: var(--ink);
}

.invoice-tab-pilot .invoice-tabs a.active {
  border-left-color: var(--invoice-tab-border);
  background: var(--invoice-tab-active);
  box-shadow: inset 0 -2px 0 var(--ui-detail-tab-active-edge, #5f8272);
  color: var(--ink);
  font-size: 15px;
  font-weight: 550;
}

.invoice-tab-pilot .invoice-tabs a:focus-visible {
  position: relative;
  z-index: 2;
  outline: 3px solid #f2b84b;
  outline-offset: -4px;
}

.invoice-work-surface {
  min-width: 0;
  margin-top: 0;
  padding: var(--invoice-panel-padding-block) var(--invoice-panel-padding-inline);
  border: 0;
  border-radius: 0;
  background: transparent;
}

.invoice-tab-pilot .invoice-tab-panel {
  min-width: 0;
  padding: 0;
}

.invoice-tab-pilot .invoice-overview-layout {
  overflow: visible;
  gap: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.invoice-tab-pilot .invoice-overview-layout > .invoice-flat-section {
  padding: 0 var(--invoice-column-gutter);
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.invoice-tab-pilot .invoice-overview-layout > .invoice-flat-section + .invoice-flat-section {
  border-left: 1px solid var(--invoice-divider);
}

.invoice-tab-pilot .invoice-flat-section {
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.invoice-tab-pilot .invoice-tab-panel > .invoice-flat-section {
  padding-inline: var(--invoice-column-gutter);
}

.invoice-tab-pilot .invoice-flat-section > .invoice-section-heading {
  align-items: center;
  height: var(--ui-section-header-min-height, 34px);
  min-height: var(--ui-section-header-min-height, 34px);
  margin: 0 0 18px;
  padding: 0 0 var(--ui-section-header-padding-bottom, 4px);
  border: 0;
  border-bottom: 1px solid var(--ui-detail-heading-line, #66706c);
  border-radius: 0;
  background: transparent;
}

.invoice-tab-pilot .invoice-flat-section > .invoice-section-heading h3 {
  color: var(--ink);
  font-size: var(--invoice-box-title-size);
  font-weight: var(--invoice-box-title-weight);
  line-height: 1.2;
}

.invoice-tab-pilot .invoice-payment-columns .invoice-section-heading h3 {
  font-size: var(--invoice-box-title-size);
  font-weight: var(--invoice-box-title-weight);
}

.invoice-tab-pilot .invoice-review-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  font-size: 14px;
  font-weight: var(--invoice-status-weight);
  line-height: 1;
  white-space: nowrap;
}

.invoice-tab-pilot .invoice-review-status .invoice-review-mark {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}

.invoice-tab-pilot .invoice-review-status > span:first-child {
  color: var(--muted);
}

.invoice-tab-pilot .invoice-overview-finance .invoice-section-heading h3 {
  color: var(--ink);
}

.invoice-tab-pilot .invoice-overview-finance .invoice-compact-metrics dt {
  color: var(--blue);
}

.invoice-tab-pilot .invoice-review-status .invoice-review-mark .lucide {
  width: 24px;
  height: 24px;
  stroke-width: 1.25;
}

.invoice-tab-pilot .invoice-section-heading .text-button {
  min-width: 44px;
  min-height: 36px;
  font-size: 14px;
  font-weight: var(--invoice-status-weight);
}

.invoice-tab-pilot .invoice-payment-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  align-items: stretch;
}

.invoice-tab-pilot .invoice-payment-columns > .invoice-flat-section {
  grid-row: 1;
  margin-top: 0;
  padding-inline: var(--invoice-column-gutter);
}

.invoice-tab-pilot .invoice-payment-columns > .invoice-flat-section + .invoice-flat-section {
  border-left: 1px solid var(--invoice-divider);
}

.invoice-tab-pilot .invoice-schedule-section {
  margin-top: 0;
}

.invoice-tab-pilot .invoice-payment-row,
.invoice-tab-pilot .invoice-schedule-row {
  min-height: 68px;
  padding: 10px 0;
}

.invoice-tab-pilot .invoice-payment-row > div:first-child > strong,
.invoice-tab-pilot .invoice-schedule-row > div:first-of-type > strong,
.invoice-tab-pilot .invoice-history-list > div > span > strong {
  font-size: var(--invoice-row-title-size);
  font-weight: var(--invoice-row-title-weight);
  line-height: 1.3;
}

.invoice-tab-pilot .invoice-payment-row small,
.invoice-tab-pilot .invoice-schedule-row small,
.invoice-tab-pilot .invoice-history-list small,
.invoice-tab-pilot .invoice-history-list time {
  font-size: var(--invoice-meta-size);
  font-weight: var(--invoice-meta-weight);
}

.invoice-tab-pilot .invoice-allocation-list > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: 68px;
  padding: 10px 0;
}

.invoice-tab-pilot .invoice-allocation-list > div > span {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.invoice-tab-pilot .invoice-allocation-list > div > span > small {
  color: var(--ink);
  font-size: var(--invoice-row-title-size);
  font-weight: var(--invoice-row-title-weight);
  line-height: 1.3;
}

.invoice-tab-pilot .invoice-allocation-list > div > strong {
  justify-self: end;
  text-align: right;
}

.invoice-tab-pilot .invoice-payment-row > strong,
.invoice-tab-pilot .invoice-schedule-value {
  justify-self: end;
  text-align: right;
}

.invoice-tab-pilot .invoice-payment-list .invoice-payment-row > strong,
.invoice-tab-pilot .invoice-schedule-list .invoice-schedule-value > strong {
  font-weight: 620;
}

.invoice-tab-pilot .list-icon-action {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
}

.invoice-tab-pilot .invoice-tab-panel > .invoice-flat-section + .invoice-flat-section {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--invoice-divider);
}

.invoice-tab-pilot #invoice-panel-document,
.invoice-tab-pilot .invoice-subpage-grid--document {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
  gap: 0;
}

.invoice-tab-pilot #invoice-panel-document > .invoice-flat-section,
.invoice-tab-pilot .invoice-subpage-grid--document > .invoice-flat-section {
  min-width: 0;
  padding-inline: var(--invoice-column-gutter);
}

.invoice-tab-pilot #invoice-panel-document > .invoice-flat-section + .invoice-flat-section,
.invoice-tab-pilot .invoice-subpage-grid--document > .invoice-flat-section + .invoice-flat-section {
  margin-top: 0;
  padding-top: 2px;
  border-top: 0;
  border-left: 1px solid var(--invoice-divider);
}

.invoice-tab-pilot .invoice-relations-layout {
  grid-template-columns: minmax(300px, 1fr) minmax(0, 2fr);
  gap: 0;
  align-items: stretch;
}

.invoice-tab-pilot .invoice-relations-primary-column,
.invoice-tab-pilot .invoice-history-section {
  min-width: 0;
  padding-inline: var(--invoice-column-gutter);
}

.invoice-tab-pilot .invoice-history-section {
  border-left: 1px solid var(--invoice-divider);
}

/* Im Finanzierungsdetail folgt der Verlauf unter der PDF-Spalte. Er ist keine
   weitere Seitenspalte und darf deshalb weder ankleben noch eine Trennlinie
   links erben. */
.invoice-tab-pilot #record-panel-document > .invoice-history-section {
  margin-top: 32px;
  padding-top: 0;
  border-top: 0;
  border-left: 0;
}

/* Der rechte Dokumentkontext traegt die Spaltentrennung. Auf Desktop spannt
   er auch die Verlaufszeile, damit diese Linie bis zum Panelende durchläuft. */
@media (min-width: 1281px) {
  .invoice-tab-pilot #record-panel-document > .invoice-document-context {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  .invoice-tab-pilot #record-panel-document > .invoice-history-section {
    grid-column: 1;
    grid-row: 2;
  }
}

.invoice-tab-pilot .invoice-relations-primary-column > .invoice-flat-section + .invoice-flat-section {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--invoice-divider);
}

.invoice-tab-pilot .invoice-relations-section {
  margin-top: 0;
}

.invoice-tab-pilot .invoice-wide-pdf {
  height: auto;
  min-height: 0;
  margin-top: 18px;
  overflow: visible;
  border-color: var(--invoice-border);
  background: #e8efeb;
}

.invoice-tab-pilot .invoice-linked-record-grid {
  grid-template-columns: 1fr;
  gap: 0;
  align-items: stretch;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.invoice-tab-pilot .invoice-relations-section > .invoice-section-heading {
  margin-bottom: 0;
}

.invoice-tab-pilot .invoice-linked-record-grid:has(> .invoice-relation-card:nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.invoice-tab-pilot .invoice-linked-record-grid:has(> .invoice-relation-card:nth-child(3)) {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.invoice-tab-pilot .invoice-relations-layout .invoice-linked-record-grid,
.invoice-tab-pilot .invoice-relations-layout .invoice-linked-record-grid:has(> .invoice-relation-card:nth-child(2):last-child),
.invoice-tab-pilot .invoice-relations-layout .invoice-linked-record-grid:has(> .invoice-relation-card:nth-child(3)) {
  grid-template-columns: 1fr;
}

.invoice-tab-pilot .invoice-relation-card {
  min-height: 68px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: var(--surface);
  box-shadow: none;
}

.invoice-tab-pilot .invoice-relation-card a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: 68px;
  padding: 10px 0;
  color: #17201e;
}

.invoice-tab-pilot .invoice-relation-card + .invoice-relation-card a {
  border-top: 1px solid var(--invoice-divider);
}

.invoice-tab-pilot .invoice-relation-card a > span {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.invoice-tab-pilot .invoice-relation-card small {
  color: var(--blue);
  font-size: var(--invoice-meta-size);
  font-weight: var(--invoice-meta-weight);
  line-height: 1.3;
}

.invoice-tab-pilot .invoice-relation-card strong {
  color: var(--ink);
  font-size: var(--invoice-row-title-size);
  font-weight: var(--invoice-row-title-weight);
  line-height: 1.35;
}

.invoice-tab-pilot .invoice-linked-record-grid > .invoice-empty-copy {
  margin: 0;
  padding: 18px;
  background: var(--surface);
}

.invoice-tab-pilot .invoice-relation-card a:hover {
  background: transparent;
  outline: none;
}

.invoice-tab-pilot .invoice-relation-card a:focus-visible {
  background: transparent;
  outline: 2px solid rgba(20, 107, 82, .16);
  outline-offset: 2px;
}

.invoice-tab-pilot .invoice-link-list small,
.invoice-tab-pilot .invoice-scope-meta {
  color: #3d6f60;
}

.invoice-mobile-actions {
  display: none;
  align-items: center;
  gap: 8px;
}

.invoice-mobile-actions > form,
.invoice-mobile-actions > form > .button {
  margin: 0;
}

.invoice-mobile-actions .button.primary {
  min-height: 44px;
  padding-inline: 14px;
  border-radius: 8px;
  white-space: nowrap;
}

.invoice-mobile-actions .invoice-mobile-more-actions > summary {
  width: 44px;
  height: 44px;
  border-radius: 8px;
}

.invoice-mobile-more-actions .global-detail-menu {
  width: min(240px, calc(100vw - 28px));
}

@media (min-width: 1281px) {
  .invoice-tab-pilot .invoice-overview-layout {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .invoice-tab-pilot .invoice-overview-finance {
    grid-column: auto;
  }
}

@media (min-width: 1281px) and (max-width: 1400px) {
  .invoice-tab-pilot .invoice-summary-identity h1 {
    font-size: 36px;
    overflow-wrap: normal;
    word-break: normal;
  }

  .invoice-tab-pilot .invoice-allocation-list > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .invoice-tab-pilot .invoice-allocation-list > div > strong {
    justify-self: end;
  }
}

@media (max-width: 1280px) {
  body.app-shell:has(.invoice-tab-pilot) {
    display: block;
  }

  body:has(.invoice-tab-pilot) .workspace {
    grid-column: auto;
  }

  body:has(.invoice-tab-pilot) .sidebar {
    transform: translateX(-105%);
    transition: .22s ease;
    box-shadow: 30px 0 70px rgba(0, 0, 0, .2);
  }

  body.sidebar-open:has(.invoice-tab-pilot) .sidebar {
    transform: translateX(0);
  }

  body:has(.invoice-tab-pilot) .mobile-menu {
    display: grid;
  }

  body.sidebar-open:has(.invoice-tab-pilot) .sidebar-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 40;
    background: rgba(8, 15, 13, .42);
  }

  body:has(.invoice-tab-pilot) .topbar {
    padding-inline: 20px;
  }

  body:has(.invoice-tab-pilot) .content {
    padding: 26px 20px 48px;
  }

  .invoice-tab-pilot .invoice-summary-header {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .invoice-tab-pilot .invoice-summary-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .invoice-tab-pilot .invoice-overview-layout,
  .invoice-tab-pilot .invoice-payment-columns {
    grid-template-columns: 1fr;
  }

  .invoice-tab-pilot .invoice-overview-finance {
    grid-column: auto;
  }

  .invoice-tab-pilot .invoice-overview-layout > .invoice-flat-section + .invoice-flat-section {
    margin-top: 24px;
    padding-top: 0;
    border: 0;
  }

  .invoice-tab-pilot .invoice-payment-columns > .invoice-flat-section {
    grid-row: auto;
    padding-inline: 0;
  }

  .invoice-tab-pilot .invoice-payment-columns > .invoice-flat-section + .invoice-flat-section {
    margin-top: 24px;
    padding-top: 0;
    border-left: 0;
    border-top: 0;
  }

  .invoice-tab-pilot #invoice-panel-document,
  .invoice-tab-pilot .invoice-subpage-grid--document {
    grid-template-columns: 1fr;
  }

  .invoice-tab-pilot .invoice-relations-layout {
    grid-template-columns: 1fr;
  }

  .invoice-tab-pilot .invoice-relations-primary-column,
  .invoice-tab-pilot .invoice-history-section {
    padding-inline: 0;
  }

  .invoice-tab-pilot .invoice-history-section {
    margin-top: 24px;
    padding-top: 0;
    border-top: 0;
    border-left: 0;
  }

  .invoice-tab-pilot .invoice-tab-panel > .invoice-flat-section + .invoice-flat-section,
  .invoice-tab-pilot .invoice-relations-primary-column > .invoice-flat-section + .invoice-flat-section {
    padding-top: 0;
    border-top: 0;
  }

  .invoice-tab-pilot #invoice-panel-document > .invoice-flat-section,
  .invoice-tab-pilot .invoice-subpage-grid--document > .invoice-flat-section {
    padding-inline: 0;
  }

  .invoice-tab-pilot #invoice-panel-document > .invoice-flat-section + .invoice-flat-section,
  .invoice-tab-pilot .invoice-subpage-grid--document > .invoice-flat-section + .invoice-flat-section {
    margin-top: 24px;
    padding-top: 0;
    border-left: 0;
    border-top: 0;
  }
}

@media (min-width: 681px) and (max-width: 1280px) {
  .invoice-tab-pilot .invoice-payment-columns > .invoice-flat-section,
  .invoice-tab-pilot #invoice-panel-document > .invoice-flat-section,
  .invoice-tab-pilot .invoice-subpage-grid--document > .invoice-flat-section,
  .invoice-tab-pilot .invoice-relations-primary-column,
  .invoice-tab-pilot .invoice-history-section {
    padding-inline: var(--invoice-column-gutter);
  }
}

@media (max-width: 900px) {
  .topbar .invoice-header-actions.header-detail-actions-desktop {
    display: none;
  }

  .topbar .invoice-mobile-actions {
    display: flex;
  }

  .topbar .invoice-mobile-actions .header-detail-action-menu {
    display: block;
  }

  .invoice-tab-pilot .invoice-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
  }

  .invoice-tab-pilot .invoice-tabs a {
    flex: none;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 0;
    height: auto;
    min-height: 50px;
    padding: 8px 10px;
    border-left: 1px solid var(--invoice-tab-border);
    border-radius: 0;
    line-height: 1.2;
    text-align: center;
    white-space: normal;
  }

  .invoice-tab-pilot .invoice-tabs a:first-child {
    border-left: 0;
    border-radius: 7px 0 0;
  }

  .invoice-tab-pilot .invoice-tabs a:nth-child(2) {
    border-radius: 0 7px 0 0;
  }

  .invoice-tab-pilot .invoice-tabs a:nth-child(3) {
    border-top: 1px solid var(--invoice-tab-border);
    border-left: 0;
  }

  .invoice-tab-pilot .invoice-tabs a:nth-child(4) {
    border-top: 1px solid var(--invoice-tab-border);
    border-radius: 0;
  }
}

@media (max-width: 680px) {
  body:has(.invoice-tab-pilot) .content {
    padding: 20px max(12px, env(safe-area-inset-right)) max(38px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  }

  .invoice-tab-pilot .invoice-summary-header {
    gap: 20px;
    padding: 23px 20px;
  }

  .invoice-tab-pilot .invoice-summary-identity h1 {
    font-size: 31px;
  }

  .invoice-tab-pilot .invoice-summary-facts {
    gap: 18px 14px;
  }

  .invoice-tab-pilot .invoice-summary-facts dd,
  .invoice-tab-pilot .invoice-summary-facts .invoice-summary-amount dd,
  .invoice-tab-pilot .invoice-summary-facts .status-pill {
    font-size: 17px;
  }

  .invoice-detail-module {
    margin-top: 24px;
    padding: 0;
  }

  .invoice-tab-pilot .invoice-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    overflow: hidden;
  }

  .invoice-tab-pilot .invoice-tabs a {
    flex: none;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 0;
    height: auto;
    min-height: 50px;
    padding: 8px 10px;
    border-left: 1px solid var(--invoice-tab-border);
    border-radius: 0;
    line-height: 1.2;
    text-align: center;
    white-space: normal;
  }

  .invoice-tab-pilot .invoice-tabs a:first-child {
    border-left: 0;
    border-radius: 7px 0 0;
  }

  .invoice-tab-pilot .invoice-tabs a:nth-child(2) {
    border-radius: 0 7px 0 0;
  }

  .invoice-tab-pilot .invoice-tabs a:nth-child(3) {
    border-top: 1px solid var(--invoice-tab-border);
    border-left: 0;
  }

  .invoice-tab-pilot .invoice-tabs a:nth-child(4) {
    border-top: 1px solid var(--invoice-tab-border);
    border-radius: 0;
    box-shadow: inset 0 -1px 0 var(--ui-detail-tab-edge, #a4bdb1);
  }

  .invoice-tab-pilot .invoice-tabs a.active {
    box-shadow: inset 0 -2px 0 var(--ui-detail-tab-active-edge, #5f8272);
  }

  .invoice-work-surface {
    margin-top: 0;
    padding: 30px 18px;
  }

  .invoice-tab-pilot .invoice-flat-section,
  .invoice-tab-pilot .invoice-overview-layout > .invoice-flat-section {
    padding: 0 0 4px;
  }

  .invoice-tab-pilot .invoice-flat-section > .invoice-section-heading {
    margin-inline: 0;
    padding-inline: 0;
  }

  .invoice-tab-pilot .invoice-primary-document > .invoice-section-heading {
    align-items: flex-start;
    width: 100%;
    text-align: left;
  }

  .invoice-tab-pilot .invoice-review-status {
    gap: 6px;
    font-size: 14px;
  }

  .invoice-tab-pilot .invoice-linked-record-grid {
    grid-template-columns: 1fr;
  }

  .invoice-tab-pilot .invoice-payment-row,
  .invoice-tab-pilot .invoice-schedule-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
  }

  .invoice-tab-pilot .invoice-payment-row > div:first-child,
  .invoice-tab-pilot .invoice-schedule-row > div:first-of-type {
    grid-column: 1 / -1;
  }

  .invoice-tab-pilot .invoice-payment-row .payment-row-actions,
  .invoice-tab-pilot .invoice-schedule-row .payment-row-actions {
    grid-column: auto;
  }
}

@media (max-width: 520px) {
  body:has(.invoice-tab-pilot) .topbar-actions {
    gap: 8px;
  }

  .invoice-mobile-actions .button.primary {
    padding-inline: 11px;
    font-size: 13px;
  }

  .invoice-tab-pilot .invoice-allocation-list > div {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 8px;
  }

  .invoice-tab-pilot .invoice-allocation-list > div > strong {
    justify-self: end;
  }
}

/* Detailabschnitte verwenden dieselbe dünne Linie und linksbündige Titel,
   auch wenn ein Dokument noch fehlt oder rechts eine Aktion steht. */
.invoice-tab-pilot .invoice-flat-section > .invoice-section-heading {
  border-bottom-width: 1px;
}

.invoice-tab-pilot .invoice-subpage-grid--document .invoice-section-heading,
.invoice-tab-pilot .invoice-subpage-grid--document .invoice-section-heading > :is(h2, h3) {
  text-align: left;
}

.invoice-tab-pilot .invoice-subpage-grid--document .invoice-section-heading {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}

/* Auf Telefonen existiert genau eine Aktionsgruppe. Das stabile Zweispalten-
   Raster reserviert 44 px für das Menü und den Rest für die Primäraktion. */
@media (max-width: 680px) {
  .topbar:not(:has(.document-review-header-actions)) .header-detail-actions-desktop {
    display: none !important;
  }

  .topbar:not(:has(.document-review-header-actions)) .invoice-mobile-actions {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr);
    grid-column: 1 / -1;
    grid-row: 2;
    gap: 8px;
    width: 100%;
    min-width: 0;
  }

  .topbar .invoice-mobile-actions > :is(form, .button, details),
  .topbar .invoice-mobile-actions > form > .button {
    width: 100% !important;
    min-width: 0;
    justify-self: stretch;
  }
}

/* Dokumentprüfung: verbindliche Geometrie und kontrollierte Umbrüche der
   globalen Kopfaktionen. Diese abschliessenden Regeln ersetzen die historisch
   gewachsene Mischung aus Flexbox und auto-fit-Grids nur für diese Seite. */
.topbar .document-review-header-actions {
  --document-review-action-height: 46px;
  display: grid;
  grid-template-columns: 140px 170px 128px minmax(168px, auto);
  align-items: center;
  justify-content: end;
  gap: 10px;
  min-width: 0;
}

.topbar .document-review-header-actions > .document-review-action,
.topbar .document-review-header-actions > .document-review-action > .ui-action,
.topbar .document-review-header-actions .document-review-action-control {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--document-review-action-height) !important;
  min-height: var(--document-review-action-height) !important;
  max-height: var(--document-review-action-height) !important;
  margin: 0;
  border-radius: var(--ui-radius-control) !important;
  color: var(--accent-strong, #075d4c);
  -webkit-text-fill-color: currentColor;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
  text-align: center;
  white-space: nowrap;
}

.topbar .document-review-header-actions .document-review-action-control {
  padding-block: 0 !important;
  padding-left: 16px;
  text-align: left;
}

.topbar .document-review-header-actions .document-review-action--primary {
  color: #fff;
  -webkit-text-fill-color: currentColor;
}

.topbar .document-review-header-actions .document-review-action--menu {
  position: relative;
}

.topbar .document-review-header-actions .menu-caret {
  flex: 0 0 auto;
  font-size: 12px;
  line-height: 1;
}

/* Dokumentprüfung: Planungsnachweis schliesst die Formularbox ab. Der
   technische Analyseverlauf steht als eigene, nachgelagerte Karte. */
.document-review-meta-sections {
  margin-top: 28px;
  border-top: 1px solid var(--line);
}

.document-review-meta-sections > .document-review-meta-disclosure {
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}

.document-review-meta-sections > .document-review-meta-disclosure:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.document-review-meta-disclosure > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  list-style: none;
  cursor: pointer;
}

.document-review-meta-disclosure > summary::-webkit-details-marker {
  display: none;
}

.document-review-meta-disclosure > summary > span:first-child {
  display: grid;
  gap: 4px;
}

.document-review-meta-disclosure > summary strong {
  color: var(--ink);
  font-size: 22px;
  line-height: 1.2;
}

.document-review-meta-body {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.document-review-tax-body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.document-review-meta-body > p,
.document-review-analysis-meta {
  margin: 0;
  color: var(--muted);
}

.document-review-meta-body .version-list {
  margin-top: 14px;
}

.document-review-analysis-card {
  width: 100%;
  max-width: 1460px;
  margin-top: 18px;
  padding: 22px 28px;
  box-sizing: border-box;
}

/* Vorgangsformular: ausgewählte Dokumentgrundlage lesbar statt als
   ungetrennte Textzeile, plus eine Vorschau in derselben Inhaltsbreite. */
.ui-form [data-invoice-document-summary] {
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
}

.ui-form [data-invoice-document-summary] > span:last-child {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.ui-form [data-invoice-document-summary] :is(small, strong, em) {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.ui-form [data-invoice-document-summary] small {
  color: var(--muted);
  font-size: 12px;
}

.ui-form [data-invoice-document-summary] em {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}

.record-form-pdf-preview {
  width: 100%;
  max-width: 1460px;
  min-width: 0;
  box-sizing: border-box;
}

@media (max-width: 680px) {
  .document-review-tax-body {
    display: grid;
  }

  .document-review-tax-body .button {
    width: 100%;
  }

  .document-review-meta-disclosure > summary strong {
    font-size: 19px;
  }
}

/* Kompakte Aktion innerhalb der schmalen Detailseiten-Ueberschriften. */
.invoice-tab-pilot .invoice-compact-section-action {
  width: auto;
  height: 32px;
  min-height: 32px;
  padding: 4px 11px;
  border-radius: 6px;
  font-size: 13px;
  line-height: 1;
}

/* Szenarioauswahl: drei stabile Segmente statt inhaltsabhaengiger
   Buttonbreiten. Native Buttondarstellungen duerfen den Text nicht ueber die
   Segmentgrenze hinausrendern. */
.scenario-switch {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 264px;
  max-width: 100%;
  isolation: isolate;
  padding: 0;
  border-color: #bdd5e2;
  background: #f3f8fb;
}

.scenario-switch > .scenario-button {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  min-height: 44px;
  min-width: 0;
  overflow: hidden;
  contain: paint;
  white-space: nowrap;
  text-align: center;
  border-color: #bdd5e2;
  background: #f3f8fb;
  color: #116a91;
}

.scenario-switch > .scenario-button.active {
  background: #116a91;
  color: #fff;
}

@media (min-width: 901px) and (max-width: 1280px) {
  .topbar:has(.financing-header-actions) {
    grid-template-columns: 44px minmax(0, 1fr) max-content max-content 46px;
  }

  .topbar:has(.financing-header-actions) .financing-header-actions {
    grid-column: 3;
    grid-row: 1;
  }

  .topbar:has(.financing-header-actions) .scenario-switch {
    grid-column: 4;
    grid-row: 1;
  }

  .topbar:has(.financing-header-actions) .notification-menu {
    grid-column: 5;
    grid-row: 1;
  }
}

@media (max-width: 680px) {
  .scenario-switch {
    display: none;
  }
}
/* Arbeitspaketdetail nutzt die gemeinsamen Oberflaechen-Tokens, behaelt aber
   seine fachliche Prozessdarstellung aus Offerten, Vergabe und Abrechnung. */
.work-package-detail-standard .wpb-detail-head{margin-bottom:28px}.work-package-detail-standard .wpb-detail-kpis,.work-package-detail-standard .wpb-section,.work-package-detail-standard .wpb-attention,.work-package-detail-standard .wpb-close,.work-package-detail-standard .wpb-documents{border-radius:var(--ui-radius-surface)}

/* Projektverlauf: Sobald die Zeitspalte ausgeblendet wird, besteht das Raster
   nur noch aus Achse und Inhalt. Explizite Spalten verhindern, dass die Karte
   durch die automatische Platzierung in der schmalen Achsenspalte landet. */
@media (min-width: 681px) and (max-width: 1100px) {
  .activity-event {
    grid-template-columns: 25px minmax(0, 1fr);
  }

  .activity-event > .activity-line {
    grid-column: 1;
  }

  .activity-event > .activity-card {
    grid-column: 2;
    min-width: 0;
  }
}
