/* Ausschließlich vorhandene DFB-/ESML-Tokens; auf die Modellansicht begrenzt. */
.v3-model { display: grid; gap: var(--s-5); min-width: 0; color: var(--text); font-size: var(--text-14); line-height: var(--leading-body); }
.v3-model * { box-sizing: border-box; }
.v3-model .v3-section { margin-top: 0; }
.v3-model h1, .v3-model h2, .v3-model h3, .v3-model p { margin: 0; }
.v3-model h1 { font-size: var(--text-22); line-height: var(--leading-sentence); font-weight: var(--weight-semibold); }
.v3-model h2 { font-size: var(--text-18); line-height: var(--leading-heading); font-weight: var(--weight-semibold); }
.v3-model h3 { font-size: var(--text-15); line-height: var(--leading-body); font-weight: var(--weight-semibold); padding-block: var(--s-5) var(--s-3); }
.v3-model strong { font-weight: var(--weight-semibold); }
.v3-model button { font: inherit; }
.v3-model button:focus-visible, .v3-model summary:focus-visible, .v3-model a:focus-visible { outline: var(--focus-width) solid var(--focus); outline-offset: var(--s-1); }
.v3-model-header { display: grid; gap: var(--s-3); }
.v3-model-context { font-size: var(--text-13); color: var(--text-muted); }
.v3-model-verdict { font-size: var(--text-18); line-height: var(--leading-heading); max-width: 100%; }
.v3-model-head-facts { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-6); padding-top: var(--s-1); }
.v3-model-head-facts > span { display: grid; gap: var(--s-1); font-size: var(--text-13); }
.v3-model-head-facts strong { font-size: var(--text-18); line-height: var(--leading-heading); }
.v3-model-head-facts > span:first-child strong { color: var(--crit); }
.v3-model-head-facts > span:nth-child(2) strong { color: var(--info); }
.v3-model-note, .v3-model-empty { color: var(--text-muted); font-size: var(--text-13); line-height: var(--leading-body); padding-block: var(--s-3); }
.v3-model-empty { background: var(--surface-subtle); padding: var(--s-4); border-radius: var(--r-2); }
.v3-model-legend { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-5); font-size: var(--text-13); padding-top: var(--s-3); }
.v3-model-legend > span { display: inline-flex; align-items: center; gap: var(--s-2); }
.v3-model-swatch { display: inline-block; width: var(--s-4); height: var(--s-3); border-radius: var(--r-1); }
.v3-model .lager { background: var(--dfb-green); fill: var(--dfb-green); }
.v3-model .unterwegs { background: var(--chart-in); fill: var(--chart-in); }
.v3-model .produktion { background: var(--dfb-sage); fill: var(--dfb-sage); }
.v3-model .abrufbar { background: var(--surface-subtle); fill: var(--surface-subtle); stroke: var(--dfb-green); stroke-width: var(--line-width); stroke-dasharray: 4 3; border: var(--line-width) dashed var(--dfb-green); }
.v3-model .demand { background: var(--chart-out); fill: var(--chart-out); }
.v3-model-marker-key { display: inline-block; width: var(--focus-width); height: var(--s-4); background: var(--chart-stock); }
.v3-model-bars { display: grid; }
.v3-model-size-row { display: grid; grid-template-columns: var(--s-8) minmax(0, 1fr) calc(var(--s-8) * 3); gap: var(--s-4); align-items: center; padding: var(--s-3) var(--s-2); border-top: var(--line-width) solid var(--line); }
.v3-model-size-row.is-selected { background: var(--surface-subtle); outline: var(--focus-width) solid var(--active); outline-offset: calc(-1 * var(--focus-width)); }
.v3-model-size-label { display: grid; gap: var(--s-1); }
.v3-model-size-label > button, .v3-model-profile-row > button { justify-self: start; border: var(--line-width) solid var(--line); border-radius: var(--r-1); background: var(--surface-card); color: var(--text); min-height: var(--s-6); min-width: var(--s-7); padding: var(--s-1) var(--s-2); font-size: var(--text-15); font-weight: var(--weight-semibold); cursor: pointer; }
.v3-model-size-label > button[aria-pressed="true"] { background: var(--active); color: var(--n-0); }
.v3-model-size-kind { font-size: var(--text-12); color: var(--text-muted); }
.v3-model-size-track { min-width: 0; }
.v3-model-bar-button { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.v3-model-bar-button svg { display: block; width: 100%; height: var(--s-7); }
.v3-model-track { fill: var(--surface-page); }
.v3-model-segment { vector-effect: non-scaling-stroke; }
.v3-model-demand { stroke: var(--chart-stock); stroke-width: var(--focus-width); vector-effect: non-scaling-stroke; }
.v3-model-segment-values { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-2); font-size: var(--text-12); line-height: var(--leading-label); }
.v3-model-segment-values > span { display: flex; align-items: center; gap: var(--s-1); white-space: nowrap; }
.v3-model-dot { display: inline-block; flex: 0 0 var(--s-2); height: var(--s-2); border-radius: var(--r-1); }
.v3-model-gap { display: grid; gap: var(--s-1); justify-items: end; text-align: right; }
.v3-model-gap-value { font-size: var(--text-18); line-height: var(--leading-heading); font-weight: var(--weight-semibold); white-space: nowrap; }
.v3-model-size-status { font-size: var(--text-12); }
.v3-model-demand-value { font-size: var(--text-12); color: var(--text-muted); }
.v3-model-two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s-5); align-items: start; }
.v3-model-two-col > * { min-width: 0; }
.v3-model-profile-row { display: grid; grid-template-columns: var(--s-7) minmax(var(--s-8), 1fr) auto; column-gap: var(--s-3); row-gap: var(--s-1); align-items: center; padding-block: var(--s-3); border-bottom: var(--line-width) solid var(--line); }
.v3-model-profile-pair { display: grid; gap: var(--s-1); }
.v3-model-profile-track { height: var(--s-2); background: var(--surface-page); }
.v3-model-profile-track > span { display: block; height: 100%; }
.v3-model-profile-values { display: grid; font-size: var(--text-13); text-align: right; }
.v3-model-profile-delta { grid-column: 2 / 4; text-align: right; font-size: var(--text-12); color: var(--text-muted); }
.v3-model-ladder-total { display: flex; justify-content: space-between; gap: var(--s-4); padding-block: var(--s-4); border-bottom: var(--line-width) solid var(--line); }
.v3-model-ladder-row { display: flex; justify-content: space-between; gap: var(--s-4); padding-block: var(--s-2); border-bottom: var(--line-width) solid var(--line); }
.v3-model-ladder-row > span { display: grid; }
.v3-model-ladder-row small { color: var(--text-muted); font-size: var(--text-12); }
.v3-model-ladder-row > strong { white-space: nowrap; }
.v3-model-clock-dates, .v3-model-clock-values { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); padding-block: var(--s-4); font-size: var(--text-13); }
.v3-model-clock-track { height: var(--s-2); background: var(--surface-subtle); border-radius: var(--r-1); overflow: hidden; }
.v3-model-clock-track > span { display: block; height: 100%; background: var(--dfb-sage); border-right: var(--focus-width) solid var(--dfb-green); }
.v3-model-actions { display: grid; }
.v3-model-action { display: grid; gap: var(--s-2); padding-block: var(--s-4); border-bottom: var(--line-width) solid var(--line); }
.v3-model-action:last-child { border-bottom: 0; }
.v3-model-action > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-2); }
.v3-model-action > div > span { font-size: var(--text-13); }
.v3-model-detail-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); padding-block: var(--s-3); }
.v3-model-detail-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-4); background: var(--surface-subtle); padding: var(--s-4); border-radius: var(--r-2); }
.v3-model-detail-summary > div { display: grid; gap: var(--s-2); align-content: start; }
.v3-model-detail-summary > div > span { font-size: var(--text-12); }
.v3-model-chart-scale { font-size: var(--text-12); text-align: right; padding-top: var(--s-3); }
.v3-model-week-chart { display: block; width: 100%; height: auto; min-height: calc(var(--s-8) * 2); }
.v3-model-week-demand { fill: var(--chart-out); }
.v3-model-gridline { stroke: var(--line); stroke-width: var(--line-width); vector-effect: non-scaling-stroke; }
.v3-model-stock-line, .v3-model-proposed-line { fill: none; stroke: var(--chart-stock); stroke-width: var(--focus-width); vector-effect: non-scaling-stroke; }
.v3-model-proposed-line { stroke: var(--dfb-link); stroke-dasharray: 6 4; }
.v3-model-line-key { width: var(--s-5); border-top: var(--focus-width) solid var(--chart-stock); }
.v3-model-line-key.proposed { border-top-color: var(--dfb-link); border-top-style: dashed; }
.v3-model-chart-dates { display: flex; justify-content: space-between; font-size: var(--text-12); padding-bottom: var(--s-3); }
.v3-model-details > summary, .v3-model-depth > summary { font-weight: var(--weight-medium); cursor: pointer; padding-block: var(--s-3); }
.v3-model-depth { min-width: 0; border: var(--line-width) solid var(--line); border-radius: var(--r-3); background: var(--surface-card); padding: var(--s-3) var(--s-5); }
.v3-model-depth > p { padding-block: var(--s-3); }
.v3-model-table-wrap { max-width: 100%; overflow-x: auto; }
.v3-model-table-wrap table { min-width: var(--chart-min-width); }
.v3-model table td:has(> [data-value]:only-child), .v3-model table th:not(:first-child) { text-align: right; }
.v3-model-evidence { border: 0; background: transparent; padding: var(--s-1); color: var(--text); text-decoration: underline; text-underline-offset: var(--s-1); cursor: pointer; }
.v3-model-sr { position: absolute; width: var(--line-width); height: var(--line-width); padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
