/* gos-viz.css v1.1 — Grafik-System Welle 34 (05.11.2026; 1.1: Endwert-Beschriftung mit Halo, bei Bedarf unter dem Punkt)
   Bausteine: .gv (Hülle), Balken, Linie, Zahl im Fokus, Vorher/Nachher, Ablauf, Seeweg, Chronik,
   Kennzahl-Kacheln (.keyfacts.kf-tiles). Kein JavaScript. Farben als Rollen, hell über data-theme. */
.gv,.keyfacts.kf-tiles{--gv-main:#f59e0b;--gv-alt:#3987e5;--gv-mute:#5f6c80;--gv-grid:rgba(255,255,255,.09);
 --gv-ink:var(--ink,var(--text,#e9eef7));--gv-ink2:var(--muted,var(--text-dim,#9aa6bd));
 --gv-surf:rgba(255,255,255,.035);--gv-line:var(--line,rgba(255,255,255,.08));--gv-tile:rgba(255,255,255,.045);
 --gv-band:rgba(245,158,11,.12);--gv-area:rgba(245,158,11,.10);--gv-on-main:#0c1320}
:root[data-theme="light"] .gv,:root[data-theme="light"] .keyfacts.kf-tiles{--gv-main:#a8500a;--gv-alt:#2a78d6;--gv-mute:#8a929c;
 --gv-grid:#e4dfd7;--gv-ink:#14202e;--gv-ink2:#5a6673;--gv-surf:#ffffff;--gv-line:#d7d1c9;--gv-tile:#ffffff;
 --gv-band:rgba(168,80,10,.09);--gv-area:rgba(168,80,10,.08);--gv-on-main:#ffffff}

/* Hülle */
.gv{margin:28px 0 30px;padding:18px 20px 16px;background:var(--gv-surf);border:1px solid var(--gv-line);border-radius:14px;
 color:var(--gv-ink);font-family:inherit;max-width:100%;box-sizing:border-box}
.gv *{box-sizing:border-box}
.gv-head{display:block;margin:0 0 14px}
.gv-kick{display:block;font-size:11.5px;line-height:1.2;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--gv-main)}
.gv-title{display:block;margin:6px 0 0;font-size:19px;line-height:1.3;font-weight:750;color:var(--gv-ink);letter-spacing:-.005em}
.gv-sub{display:block;margin:4px 0 0;font-size:14px;line-height:1.45;color:var(--gv-ink2)}
.gv-src{display:block;margin:14px 0 0;font-size:12.5px;line-height:1.45;color:var(--gv-ink2)}
.gv-note{margin:12px 0 0;font-size:14px;line-height:1.5;color:var(--gv-ink2);padding-left:12px;border-left:2px solid var(--gv-line)}

/* Balken */
.gv-bars{position:relative;display:grid;gap:9px}
.gv-row{display:grid;grid-template-columns:minmax(92px,30%) 1fr minmax(52px,auto);align-items:center;gap:12px;font-size:14.5px;line-height:1.3}
.gv-lab{color:var(--gv-ink);overflow-wrap:anywhere}
.gv-track{position:relative;height:18px}
.gv-bar{position:absolute;top:0;bottom:0;left:var(--l,0);width:var(--w);background:var(--gv-mute);border-radius:0 4px 4px 0}
.gv-row.is-neg .gv-bar{border-radius:4px 0 0 4px}
.gv-row.is-hi .gv-bar{background:var(--gv-main)}
.gv-row.is-hi .gv-lab,.gv-row.is-hi .gv-val{font-weight:700}
.gv-val{color:var(--gv-ink);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:600}
.gv-bars--div .gv-bars--div .gv-track::before{content:"";position:absolute;top:-3px;bottom:-3px;left:var(--z,0);width:1px;background:var(--gv-ink2);opacity:.55}

/* Linie: Werte-Spalte links (40 px), Zeichenfläche .gv-pa rechts davon */
.gv-line{position:relative;padding:0}
.gv-plot{position:relative;height:210px;margin:30px 0 0}
.gv-pa{position:absolute;top:0;bottom:0;left:40px;right:10px}
.gv-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.gv-path{fill:none;stroke:var(--gv-main);stroke-width:2.25px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.gv-area{fill:var(--gv-area);stroke:none}
.gv-gy{position:absolute;left:40px;right:10px;bottom:var(--y);height:0;border-top:1px solid var(--gv-grid)}
.gv-gy>span{position:absolute;right:calc(100% + 6px);top:-7px;font-size:12px;line-height:1;color:var(--gv-ink2);
 font-variant-numeric:tabular-nums;white-space:nowrap}
.gv-band{position:absolute;top:0;bottom:0;left:var(--x1);width:calc(var(--x2) - var(--x1));min-width:4px;background:var(--gv-band);
 border-left:1px solid var(--gv-main);border-right:1px solid var(--gv-main)}
.gv-pt{position:absolute;left:var(--x);bottom:var(--y);width:0;height:0}
.gv-pt::before{content:"";position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--gv-main);
 box-shadow:0 0 0 2px var(--bg,#0c1320)}
:root[data-theme="light"] .gv-pt::before{box-shadow:0 0 0 2px #fff}
.gv-ptl{position:absolute;bottom:9px;white-space:nowrap;font-size:13.5px;font-weight:700;line-height:1.15;color:var(--gv-ink);
 font-variant-numeric:tabular-nums;--gv-halo:var(--bg,#0c1320);
 text-shadow:-1px -1px 0 var(--gv-halo),1px -1px 0 var(--gv-halo),-1px 1px 0 var(--gv-halo),1px 1px 0 var(--gv-halo),0 0 4px var(--gv-halo),0 0 4px var(--gv-halo)}
:root[data-theme="light"] .gv-ptl{--gv-halo:#fff}
.gv-pt--below .gv-ptl{bottom:auto;top:9px}
.gv-pt--r .gv-ptl{left:-4px}
.gv-pt--l .gv-ptl{right:-4px;text-align:right}
.gv-pt--c .gv-ptl{left:0;transform:translateX(-50%);text-align:center}
.gv-ptd{display:block;font-size:11.5px;font-weight:500;color:var(--gv-ink2)}
.gv-xaxis{position:relative;height:20px;margin:6px 10px 0 40px}
.gv-xt{position:absolute;left:var(--x);top:2px;transform:translateX(-50%);font-size:12px;line-height:1;color:var(--gv-ink2);white-space:nowrap}

/* Datentabelle zum Aufklappen */
.gv-data{margin:12px 0 0;font-size:13px;color:var(--gv-ink2)}
.gv-data summary{cursor:pointer;display:inline-block;padding:6px 0;min-height:24px}
.gv-table-wrap{max-height:280px;overflow:auto;margin-top:6px;border:1px solid var(--gv-line);border-radius:8px}
.gv-data table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.gv-data th,.gv-data td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--gv-line);color:var(--gv-ink)}
.gv-data td:last-child,.gv-data th:last-child{text-align:right}

/* Zahl im Fokus */
.gv--num{padding:16px 20px 16px 18px;border-left:3px solid var(--gv-main)}
.gv--num .gv-head{margin:0 0 6px}
.gv-num{display:block}
.gv-big{display:block;font-family:"Barlow Condensed",system-ui,sans-serif;font-weight:700;font-size:40px;line-height:1.05;
 letter-spacing:-.005em;color:var(--gv-ink)}
.gv-cap{display:block;margin-top:8px;font-size:15px;line-height:1.55;color:var(--gv-ink2)}

/* Vorher/Nachher */
.gv--cmp .gv-head{margin:0 0 6px}
.gv-cmp .gv-cap{margin:0 0 14px}
.gv-bars--cmp .gv-row{grid-template-columns:44px 1fr minmax(64px,auto)}
.gv-bars--cmp .gv-track{height:22px}
.gv-bars--cmp .gv-lab{color:var(--gv-ink2);font-size:13px;text-transform:uppercase;letter-spacing:.05em}

/* Ablauf und Seeweg */
.gv-steps{display:grid;gap:10px;counter-reset:gv}
.gv-step{position:relative;display:grid;align-content:start;grid-template-columns:32px 1fr;column-gap:12px;align-items:start;
 padding:12px 14px;background:var(--gv-tile);border:1px solid var(--gv-line);border-radius:10px}
.gv-sn{grid-row:span 2;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;
 background:var(--gv-main);color:var(--gv-on-main);font-weight:800;font-size:14px;line-height:1}
.gv-st{font-weight:700;font-size:15.5px;line-height:1.3;color:var(--gv-ink)}
.gv-sd{font-size:14px;line-height:1.5;color:var(--gv-ink2);margin-top:2px}
.gv-step:not(:last-child)::after{content:"";position:absolute;left:28px;bottom:-11px;width:2px;height:10px;background:var(--gv-main);opacity:.7}
.gv--route .gv-step{background:transparent;border:0;border-radius:0;padding:4px 0 10px 0}
.gv--route .gv-sn{width:22px;height:22px;font-size:12px;margin:2px 0 0 4px;background:var(--gv-surf);color:var(--gv-main);
 border:2px solid var(--gv-main)}
.gv--route .gv-step:not(:last-child)::after{left:14px;top:26px;bottom:-4px;height:auto;width:2px}
@media (min-width:900px){
 .gv{padding:22px 24px 18px}
 .gv-title{font-size:21px}
 .gv-plot{height:250px}
 .gv-steps--n4,.gv-steps--n5,.gv-steps--n6{grid-template-columns:repeat(var(--gv-cols,3),1fr)}
 .gv-steps--n4{--gv-cols:4}.gv-steps--n5{--gv-cols:5}.gv-steps--n6{--gv-cols:3}
 .gv--chain .gv-step{grid-template-columns:1fr;row-gap:6px;padding:14px}
 .gv--chain .gv-sn{grid-row:auto}
 .gv--chain .gv-steps--n4 .gv-step:not(:last-child)::after,.gv--chain .gv-steps--n5 .gv-step:not(:last-child)::after{
  left:auto;right:-10px;top:28px;bottom:auto;width:10px;height:2px}
 .gv--chain .gv-steps--n6 .gv-step::after{display:none}
 .gv--route .gv-steps{grid-template-columns:repeat(5,1fr);gap:0}
 .gv--route .gv-step{grid-template-columns:1fr;row-gap:6px;padding:0 12px 0 0}
 .gv--route .gv-sn{grid-row:auto;margin:0}
 .gv--route .gv-step:not(:last-child)::after{left:26px;right:0;top:11px;bottom:auto;width:auto;height:2px}
 .gv-big{font-size:46px}
}


/* Einflussgrössen und Gegenüberstellung */
.gv-steps--fac{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.gv-fac{grid-template-columns:1fr;border-top:3px solid var(--gv-main)}
.gv-fac::after{display:none}
.gv-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gv-pc{display:grid;align-content:start;gap:0;grid-row:span var(--n,4);grid-template-rows:subgrid;background:var(--gv-tile);border:1px solid var(--gv-line);border-radius:10px;overflow:hidden}
.gv-ph{display:block;padding:10px 14px;font-weight:750;font-size:15.5px;line-height:1.3;color:var(--gv-ink);
 border-bottom:3px solid var(--gv-mute)}
.gv-pc--0 .gv-ph{border-bottom-color:var(--gv-main)}
.gv-pc--1 .gv-ph{border-bottom-color:var(--gv-alt)}
.gv-pr{display:block;padding:9px 14px;font-size:14px;line-height:1.45;color:var(--gv-ink2);border-top:1px solid var(--gv-line)}
.gv-pr:first-of-type{border-top:0}
@media (max-width:560px){.gv-pair{grid-template-columns:1fr;gap:10px}.gv-steps--fac{grid-template-columns:1fr}}

/* Chronik */
.gv-tl{position:relative;display:grid;gap:0;margin-left:4px}
.gv-ev{position:relative;display:grid;grid-template-columns:86px 1fr;gap:12px;padding:0 0 12px 18px;border-left:2px solid var(--gv-line)}
.gv-ev:last-child{padding-bottom:2px}
.gv-ev::before{content:"";position:absolute;left:-6px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--gv-main);
 box-shadow:0 0 0 2px var(--gv-surf,#111a28)}
.gv-ed{font-size:13px;font-weight:700;color:var(--gv-ink2);font-variant-numeric:tabular-nums;line-height:1.45;white-space:nowrap}
.gv-et{font-size:14.5px;line-height:1.45;color:var(--gv-ink)}

/* Kennzahl-Kacheln */
.keyfacts.kf-tiles .kf-p{display:none}
.keyfacts.kf-tiles ul{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.keyfacts.kf-tiles li{padding:12px 14px 12px;background:var(--gv-tile);border:1px solid var(--gv-line);border-radius:10px;
 font-size:.88rem;line-height:1.5;color:var(--gv-ink2)}
.keyfacts.kf-tiles li::before{display:none}
.keyfacts.kf-tiles li strong{display:block;font-size:11.5px;line-height:1.3;letter-spacing:.07em;text-transform:uppercase;
 color:var(--gv-ink2);font-weight:700;margin:0 0 4px}
:root[data-theme="light"] .keyfacts.kf-tiles li strong{color:#5a6673}
.keyfacts.kf-tiles .kf-fig{display:block;font-family:"Barlow Condensed",system-ui,sans-serif;font-weight:700;font-size:27px;
 line-height:1.1;color:var(--gv-ink);margin:0 0 4px;letter-spacing:-.005em}

@media (max-width:560px){
 .gv{margin:22px 0 24px;padding:14px 14px 13px;border-radius:12px}
 .gv-title{font-size:17.5px}
 .gv-sub{font-size:13.5px}
 .gv-row{grid-template-columns:minmax(78px,34%) 1fr minmax(44px,auto);gap:8px;font-size:13.5px}
 .gv-bars{gap:7px}
 .gv-track{height:16px}
 .gv-bars--cmp .gv-row{grid-template-columns:40px 1fr minmax(56px,auto)}
 .gv-plot{height:180px}
 .gv-xt--odd{display:none}
 .gv-big{font-size:34px}
 .gv-ev{grid-template-columns:58px 1fr;gap:8px;padding-left:14px}
 .gv-ed{font-size:12.5px}
 .gv-et{font-size:14px}
 .gv-steps{gap:8px}
 .gv-step{padding:10px 12px;column-gap:10px}
 .gv-sn{width:26px;height:26px;font-size:13px}
 .gv-st{font-size:15px}
 .gv-sd{font-size:13.5px;line-height:1.45}
 .gv-step:not(:last-child)::after{left:24px;bottom:-9px;height:8px}
 .keyfacts.kf-tiles ul{grid-template-columns:1fr;gap:8px}
 .keyfacts.kf-tiles li{padding:10px 12px}
 .keyfacts.kf-tiles .kf-fig{font-size:23px}
}
@media print{.gv{break-inside:avoid;background:none}.gv-data{display:none}}
@media (forced-colors:active){.gv-bar,.gv-sn,.gv-pt::before,.gv-ev::before{background:CanvasText}.gv-path{stroke:CanvasText}}
