/* gehalt-widget.css — page-spezifisches Widget-CSS für gehaltsvergleich.html.
   Wird NACH calc-v2.css geladen (Widget gewinnt). Self-contained.
   Chrome (.nav/.footer/cookie/:root-Token-Redefs/Override-Layer) entfernt;
   nur Widget-Komponenten + .container-Helper + overflow-Guard. */
/* overflow-x Guard (gegen horizontales Scrollen auf Mobile) */
html,body{max-width:100%;overflow-x:clip;}
.container,.gehalt-card,.result-area,section,.ticker-wrap{max-width:100%;}
.ranking-gauge-flag{max-width:90vw;}

.gehalt-hero{ background: var(--fp-white); padding: 56px 0 40px; color: var(--fp-ink); text-align: left; border-bottom: 1px solid var(--fp-line-soft); }
    .gehalt-hero h1 { font-size: clamp(1.9rem,4vw,2.8rem); font-weight: 600; letter-spacing:-.02em; line-height:1.08; margin-bottom: 16px; color: var(--fp-ink); }
    .gehalt-hero p { color: var(--fp-body);  font-size: 1.0625rem; line-height:1.55; max-width: 600px; margin: 0 0 24px; }
    .hero-badges { display: flex; gap: 10px; justify-content: flex-start; flex-wrap: wrap; }
    .badge-pill { background: transparent; border: 1px solid var(--fp-line); border-radius: 999px; padding: 6px 14px; font-size: .8125rem; font-weight: 500; color: var(--fp-teal-deep); }

    /* ============================================================
       calc-v2 COMPONENT REBUILD — Apple-pure, Hairlines, Geist Mono
       Klassennamen 1:1 erhalten (JS-Hooks bleiben funktionsfähig)
       ============================================================ */

    /* Layout */
    .gehalt-layout { display: grid; grid-template-columns: 400px 1fr; gap: 32px; padding: 48px 0; align-items: start; }
    .gehalt-layout > div:last-child  { order: 1; }
    .gehalt-layout > div:first-child { order: 2; }
    @media(max-width:900px){
      .gehalt-layout { grid-template-columns: 1fr; }
      .gehalt-layout > div:first-child { order: 2; }
      .gehalt-layout > div:last-child  { order: 1; }
      .gehalt-card { position: static; }
    }

    /* Section headings */
    .sec-eyebrow { font-size:.78rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--fp-faint); margin-bottom:10px; }
    .sec-h2 { font-size: clamp(1.4rem,2.6vw,1.7rem); font-weight:600; letter-spacing:-.02em; color:var(--fp-ink); line-height:1.12; margin:0 0 8px; text-wrap:balance; }
    .sec-sub { font-size:1rem; color:var(--fp-body); line-height:1.5; margin:0 0 24px; max-width:60ch; }

    /* Cards — calc-v2: hairline + quiet shadow */
    .gehalt-card { background:#fff; border-radius:var(--r-lg); padding:28px; box-shadow:var(--sh-card); border:1px solid var(--fp-line); position:sticky; top:84px; }
    .gehalt-card h2 { font-size:1.15rem; font-weight:600; letter-spacing:-.01em; margin-bottom:22px; color:var(--fp-ink); }

    .form-group { margin-bottom:18px; }
    .form-label { display:block; font-size:.875rem; font-weight:600; color:var(--fp-ink); margin-bottom:7px; }
    .form-label span { font-weight:400; color:var(--fp-muted); font-size:.8125rem; }
    .form-input { width:100%; padding:11px 14px; border:1px solid var(--fp-line); border-radius:var(--r-sm); font-size:.95rem; color:var(--fp-ink); background:#fff; transition:border-color .18s, box-shadow .18s; box-sizing:border-box; font-family:inherit; }
    .form-input:focus { border-color:var(--fp-teal); outline:none; box-shadow:0 0 0 3px rgba(0,175,163,.18); }
    .form-input::placeholder { color:var(--fp-faint); }
    .form-select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7975' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 13px center; padding-right:36px; cursor:pointer; }

    .radio-group { display:flex; gap:8px; flex-wrap:wrap; }
    .radio-btn { flex:1; min-width:100px; }
    .radio-btn input { position:absolute; opacity:0; pointer-events:none; }
    .radio-btn label { display:block; padding:9px 8px; border:1px solid var(--fp-line); border-radius:var(--r-sm); font-size:.82rem; font-weight:500; color:var(--fp-muted) !important; -webkit-text-fill-color:var(--fp-muted) !important; cursor:pointer; text-align:center; transition:.18s; line-height:1.3; }
    .radio-btn input:checked + label { border-color:var(--fp-teal); background:var(--fp-teal-tint); color:var(--fp-teal-deep) !important; -webkit-text-fill-color:var(--fp-teal-deep) !important; }
    .radio-btn label:hover { border-color:var(--fp-teal); }

    /* Beruf search */
    .beruf-wrap { position:relative; }
    .beruf-dropdown { position:absolute; top:100%; left:0; right:0; background:#fff; border:1px solid var(--fp-line); border-top:none; border-radius:0 0 var(--r-sm) var(--r-sm); max-height:280px; overflow-y:auto; z-index:200; display:none; box-shadow:var(--sh-pop); }
    .beruf-dropdown.open { display:block; }
    .beruf-opt { padding:10px 14px; font-size:.9rem; cursor:pointer; border-bottom:1px solid var(--fp-line-soft); display:flex; align-items:center; gap:10px; color:var(--fp-ink); }
    .beruf-opt:hover, .beruf-opt.focused { background:var(--fp-teal-tint); }
    .beruf-opt:last-child { border-bottom:none; }
    .beruf-cat { font-size:.72rem; background:var(--fp-surface-2); color:var(--fp-faint); padding:6px 14px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
    .beruf-icon { font-size:1.1rem; width:24px; text-align:center; }

    .calc-btn { -webkit-appearance:none; appearance:none; width:100%; padding:13px; background:var(--fp-teal); border:none; border-radius:var(--r-md); color:#fff !important; -webkit-text-fill-color:#fff !important; font-size:.95rem; font-weight:600; cursor:pointer; transition:background .18s, transform .15s; margin-top:6px; font-family:inherit; }
    .calc-btn:hover { background:#019b90; transform:translateY(-1px); }

    /* Results */
    .result-area { display:none; }
    .result-area.show { display:block; }
    .result-main { background:#fff; border-radius:var(--r-lg); padding:28px; box-shadow:var(--sh-card); border:1px solid var(--fp-line); margin-bottom:20px; }
    .result-main h2 { font-size:1.15rem; font-weight:600; margin-bottom:20px; color:var(--fp-ink); }

    /* Compare */
    .compare-wrap { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:24px; }
    @media(max-width:500px){ .compare-wrap { grid-template-columns:1fr; } }
    .compare-box { border-radius:var(--r-md); padding:20px; text-align:center; border:1px solid var(--fp-line); background:var(--fp-surface); }
    .compare-box--user { background:var(--fp-teal-tint); border-color:var(--fp-teal-line); }
    .compare-label { font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; color:var(--fp-muted); }
    .compare-label--user { color:var(--fp-teal-deep); }
    .compare-value { font-size:1.9rem; font-weight:600; color:var(--fp-ink); font-family:var(--fp-mono); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
    .compare-value--user { color:var(--fp-teal-deep); }
    .compare-value--median { color:var(--fp-ink); }
    .compare-sub { font-size:.8125rem; color:var(--fp-muted); margin-top:5px; }

    /* Bars */
    .bar-section { margin-bottom:24px; }
    .bar-label { display:flex; justify-content:space-between; font-size:.8125rem; font-weight:500; color:var(--fp-muted); margin-bottom:8px; }
    .bar-label span:last-child { font-family:var(--fp-mono); font-variant-numeric:tabular-nums; color:var(--fp-ink); font-weight:500; }
    .bar-track { height:12px; background:var(--fp-surface-2); border-radius:var(--r-pill); position:relative; overflow:visible; }
    .bar-fill { height:100%; border-radius:var(--r-pill); transition:width .6s var(--fp-ease); position:relative; }
    .bar-fill--user { background:var(--fp-teal); }
    .bar-fill--median { background:var(--fp-teal-deep); }
    .bar-marker { position:absolute; top:-4px; width:3px; height:20px; background:var(--fp-teal-deep); border-radius:2px; }
    .bar-spacer { height:8px; }

    /* Verdict */
    .verdict-badge { display:inline-flex; align-items:center; gap:10px; padding:12px 18px; border-radius:var(--r-md); font-size:.9375rem; font-weight:500; margin-bottom:22px; width:100%; border:1px solid var(--fp-line); background:var(--fp-surface); color:var(--fp-ink); }
    .verdict-badge--above { background:var(--fp-teal-tint); color:var(--fp-teal-deep); border-color:var(--fp-teal-line); }
    .verdict-badge--below { background:#fff7ed; color:#9a3412; border-color:#fed7aa; }
    .verdict-badge--even { background:var(--fp-surface); color:var(--fp-ink); border-color:var(--fp-line); }
    #verdictIcon { display:none; }

    /* Netto grid */
    .netto-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    @media(max-width:480px){ .netto-grid { grid-template-columns:1fr; } }
    .netto-box { background:var(--fp-surface); border-radius:var(--r-md); padding:16px; text-align:center; border:1px solid var(--fp-line); }
    .netto-box__label { font-size:.75rem; color:var(--fp-muted); font-weight:600; text-transform:uppercase; letter-spacing:.05em; margin-bottom:5px; }
    .netto-box__value { font-size:1.4rem; font-weight:600; color:var(--fp-ink); font-family:var(--fp-mono); font-variant-numeric:tabular-nums; }
    .netto-box__sub { font-size:.75rem; color:var(--fp-faint); margin-top:3px; }

    /* Bundesland table */
    .bl-table-card { background:#fff; border-radius:var(--r-lg); padding:24px; box-shadow:var(--sh-card); border:1px solid var(--fp-line); margin-bottom:20px; display:none; }
    .bl-table-card.show { display:block; }
    .bl-table-card h3 { font-size:1.05rem; font-weight:600; margin-bottom:16px; color:var(--fp-ink); }
    .bl-table { width:100%; border-collapse:collapse; font-size:.9rem; }
    .bl-table caption { display:none; }
    .bl-table th { background:transparent; padding:9px 14px; text-align:left; font-weight:600; color:var(--fp-faint); font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid var(--fp-line); }
    .bl-table td { padding:11px 14px; border-bottom:1px solid var(--fp-line-soft); color:var(--fp-ink); }
    .bl-table td:nth-child(2), .bl-table td:nth-child(3) { font-family:var(--fp-mono); font-variant-numeric:tabular-nums; }
    .bl-table tr:hover td { background:var(--fp-surface); }
    .bl-table tr.highlight td { background:var(--fp-teal-tint); font-weight:600; }
    .bl-pill { display:inline-block; padding:2px 9px; border-radius:var(--r-pill); font-size:.72rem; font-weight:600; font-family:var(--fp-mono); }
    .bl-pill--above { background:var(--fp-teal-tint); color:var(--fp-teal-deep); }
    .bl-pill--below { background:#fef2f2; color:#b91c1c; }
    .bl-pill--avg { background:var(--fp-surface-2); color:var(--fp-muted); }

    /* Category explorer */
    .cat-section { padding:56px 0; }
    .cat-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:16px; margin-top:24px; }
    .cat-card { background:#fff; border-radius:var(--r-md); padding:20px; box-shadow:var(--sh-card); border:1px solid var(--fp-line); }
    .cat-card h4 { font-size:.95rem; font-weight:600; color:var(--fp-ink); margin-bottom:12px; display:flex; align-items:center; gap:8px; }
    .cat-job { display:flex; justify-content:space-between; align-items:center; padding:7px 6px; border-bottom:1px solid var(--fp-line-soft); cursor:pointer; transition:.15s; border-radius:6px; }
    .cat-job:last-child { border-bottom:none; }
    .cat-job:hover { background:var(--fp-teal-tint); }
    .cat-job__name { font-size:.875rem; color:var(--fp-ink); }
    .cat-job__salary { font-size:.875rem; font-weight:600; color:var(--fp-teal-deep); font-family:var(--fp-mono); font-variant-numeric:tabular-nums; }

    /* Data note */
    .data-note { background:var(--fp-surface); border:1px solid var(--fp-line); border-radius:var(--r-md); padding:16px 18px; font-size:.8125rem; color:var(--fp-muted); line-height:1.6; margin-top:16px; }
    .data-note strong { color:var(--fp-ink); font-weight:600; }
    .data-note a { color:var(--fp-teal-deep); font-weight:500; }

    /* FAQ — light calc-v2 accordion (fixes missing base styles) */
    .faq-section { padding:56px 0; }
    .faq-section > h2 { margin-bottom:8px; }
    .faq-item { border-bottom:1px solid var(--fp-line); }
    .faq-item__q, .faq-q { width:100%; text-align:left; background:none; border:none; padding:18px 0; font-size:1.0625rem; font-weight:500; color:var(--fp-ink); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px; font-family:inherit; line-height:1.4; }
    .faq-item__q::after, .faq-q::after { content:'+'; font-size:1.4rem; font-weight:400; color:var(--fp-teal-deep); flex-shrink:0; transition:transform .2s; line-height:1; }
    .faq-item.open .faq-item__q::after, .faq-q.open::after { transform:rotate(45deg); }
    .faq-item__a, .faq-a { font-size:.95rem; color:var(--fp-body); line-height:1.65; padding-bottom:18px; display:none; max-width:68ch; }
    .faq-item.open .faq-item__a, .faq-a.open { display:block; }
    .faq-item__a a, .faq-a a { color:var(--fp-teal-deep); font-weight:500; }

    /* Explainer mobile */
    @media (max-width: 640px) {
      .xv-screen { min-height: 420px !important; }
      .xv-controls { position: relative; z-index: 2; }
      .xvid-wrap { display: flex; flex-direction: column; }
    }
    @media (max-width: 420px) { .xvid-wrap, .xvid-label { display: none !important; } }
    .xvid-label { font-size:.78rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--fp-faint); margin-bottom:12px; }

    /* Bundesland select + PLZ */
    .state-picker { margin-top:4px; }
    .plz-detect-row { display:flex; gap:8px; margin-bottom:8px; }
    .plz-detect-row .plz-input { flex:1; margin-bottom:0; }
    .state-select-wrap { position:relative; }
    .state-select-wrap::after { content:'▼'; position:absolute; right:14px; top:50%; transform:translateY(-50%); pointer-events:none; color:var(--fp-teal-deep); font-size:.7rem; }
    #landSelect { display:block; width:100%; padding:11px 40px 11px 14px; border:1px solid var(--fp-teal-line); border-radius:var(--r-sm); background:var(--fp-teal-tint); color:var(--fp-teal-deep); font-size:16px; font-weight:600; font-family:inherit; -webkit-appearance:none; appearance:none; cursor:pointer; outline:none; transition:border-color .15s, background .15s; }
    #landSelect:focus { border-color:var(--fp-teal); box-shadow:0 0 0 3px rgba(0,175,163,.18); }
    .state-heat-badge { display:none; margin-top:6px; padding:5px 12px; border-radius:var(--r-pill); font-size:.78rem; font-weight:600; text-align:center; }
    .state-heat-badge.show { display:block; }

    /* Advanced accordion */
    .adv-toggle { width:100%; background:var(--fp-surface); border:1px solid var(--fp-line); border-radius:var(--r-sm); padding:10px 14px; font-size:.82rem; font-weight:600; color:var(--fp-muted); cursor:pointer; display:flex; justify-content:space-between; align-items:center; transition:.18s; margin-bottom:14px; text-align:left; font-family:inherit; }
    .adv-toggle:hover { border-color:var(--fp-teal); color:var(--fp-teal-deep); background:var(--fp-teal-tint); }
    .adv-toggle.open { color:var(--fp-teal-deep); background:var(--fp-teal-tint); border-color:var(--fp-teal-line); }
    .adv-arrow { transition:transform .28s; display:inline-block; font-style:normal; }
    .adv-toggle.open .adv-arrow { transform:rotate(180deg); }
    .adv-body { overflow:hidden; max-height:0; transition:max-height .35s ease; }
    .plz-input { width:100%; padding:9px 12px; border:1px solid var(--fp-line); border-radius:var(--r-sm); font-size:.88rem; color:var(--fp-ink); box-sizing:border-box; margin-bottom:8px; font-family:inherit; }
    .plz-input:focus { border-color:var(--fp-teal); outline:none; box-shadow:0 0 0 3px rgba(0,175,163,.18); }

    /* Snapshot */
    .snapshot-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px; }
    .snap-card { background:#fff; border:1px solid var(--fp-line); border-radius:var(--r-md); padding:16px; box-shadow:var(--sh-card); }
    .snap-cat { font-size:.72rem; font-weight:600; color:var(--fp-faint); text-transform:uppercase; letter-spacing:.06em; margin-bottom:10px; }
    .snap-job { display:flex; justify-content:space-between; padding:6px 4px; border-bottom:1px solid var(--fp-line-soft); cursor:pointer; border-radius:6px; transition:background .15s; }
    .snap-job:last-child { border-bottom:none; }
    .snap-job:hover { background:var(--fp-teal-tint); }
    .snap-name { font-size:.82rem; color:var(--fp-ink); }
    .snap-salary { font-size:.82rem; font-weight:600; color:var(--fp-teal-deep); font-family:var(--fp-mono); font-variant-numeric:tabular-nums; }
    @media(max-width:600px){ .snapshot-grid { grid-template-columns:1fr; } }

    /* Ticker */
    .ticker-wrap { overflow:hidden; background:var(--fp-surface); border:1px solid var(--fp-line-soft); border-radius:var(--r-sm); padding:10px 0; margin-top:12px; }
    .ticker { display:flex; gap:0; animation:ticker-scroll 300s linear infinite; white-space:nowrap; }
    .ticker-item { padding:0 20px; font-size:.8rem; font-weight:500; color:var(--fp-teal-deep); border-right:1px solid var(--fp-line); font-family:var(--fp-mono); }
    .ticker-item:last-child { border-right:none; }
    @keyframes ticker-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }

    /* Tabs */
    .tab-bar{ display:flex; gap:4px; border-bottom:1px solid var(--fp-line); margin-bottom:20px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
    .tab-bar::-webkit-scrollbar{ display:none; }
    .tab-btn{ padding:10px 13px; border:none; background:none; font-family:inherit; font-size:.82rem; font-weight:500; color:var(--fp-muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; transition:.18s; white-space:nowrap; flex-shrink:0; }
    .tab-btn.active{ color:var(--fp-teal-deep); border-bottom-color:var(--fp-teal); font-weight:600; }
    .tab-btn:hover:not(.active){ color:var(--fp-ink); }
    .tab-panel{ display:none; }
    .tab-panel.active{ display:block; animation:fadeTabIn .2s ease; }
    @keyframes fadeTabIn{ from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:translateY(0)} }

    /* Chart card */
    .chart-card{ background:#fff; border-radius:var(--r-lg); padding:24px; box-shadow:var(--sh-card); border:1px solid var(--fp-line); margin-bottom:20px; }
    .chart-card h3{ font-size:1.05rem; font-weight:600; margin-bottom:16px; color:var(--fp-ink); }
    .hist-svg{ width:100%; display:block; }
    .hist-bar{ cursor:default; transition:opacity .15s; }
    .hist-bar:hover{ opacity:.8; }
    .hist-tooltip{ position:fixed; background:var(--fp-ink); color:#fff; padding:6px 12px; border-radius:var(--r-sm); font-size:.78rem; font-weight:500; pointer-events:none; display:none; z-index:999; box-shadow:var(--sh-pop); font-family:var(--fp-mono); }
    .realwage-note{ background:#fffbeb; border:1px solid #fde68a; border-radius:var(--r-sm); padding:12px 16px; font-size:.82rem; color:#92400e; line-height:1.5; margin-top:12px; }
    .hist-legend{ display:flex; gap:16px; margin-top:12px; font-size:.78rem; flex-wrap:wrap; }
    .hist-legend span{ display:flex; align-items:center; gap:5px; font-weight:500; color:var(--fp-muted); }
    .hist-legend-dot{ width:10px; height:10px; border-radius:50%; flex-shrink:0; }

    /* Benefits */
    .benefit-row{ display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--fp-line-soft); }
    .benefit-row:last-child{ border-bottom:none; }
    .benefit-icon{ display:none; }
    .benefit-label{ flex:1.2; font-size:.88rem; color:var(--fp-ink); font-weight:500; }
    .benefit-bar-wrap{ flex:2; }
    .benefit-bar-bg{ height:8px; background:var(--fp-surface-2); border-radius:var(--r-pill); }
    .benefit-bar-fill{ height:8px; border-radius:var(--r-pill); background:var(--fp-teal); transition:width .6s var(--fp-ease); }
    .benefit-val{ font-size:.85rem; font-weight:600; color:var(--fp-teal-deep); min-width:58px; text-align:right; font-family:var(--fp-mono); font-variant-numeric:tabular-nums; }

    /* Boost report */
    .boost-hero{ background:var(--fp-teal-tint); border:1px solid var(--fp-teal-line); border-radius:var(--r-lg); padding:22px; text-align:center; margin-bottom:18px; }
    .boost-hero__label{ font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--fp-teal-deep); margin-bottom:6px; }
    .boost-hero__amount{ font-size:2.4rem; font-weight:600; color:var(--fp-teal-deep); line-height:1; font-family:var(--fp-mono); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
    .boost-hero__sub{ font-size:.8rem; color:var(--fp-teal-deep); margin-top:6px; }
    .boost-action{ background:var(--fp-surface); border:1px solid var(--fp-line); border-radius:var(--r-md); padding:14px 18px; display:flex; align-items:flex-start; gap:12px; margin-bottom:10px; }
    .boost-action__rank{ width:26px; height:26px; border-radius:50%; background:var(--fp-teal); color:#fff; font-size:.8rem; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px; font-family:var(--fp-mono); }
    .boost-action__title{ font-size:.88rem; font-weight:600; color:var(--fp-ink); margin-bottom:3px; }
    .boost-action__text{ font-size:.8rem; color:var(--fp-muted); line-height:1.5; }
    .boost-action__gain{ font-size:.88rem; font-weight:600; color:var(--fp-teal-deep); margin-top:4px; font-family:var(--fp-mono); }
    .report-btn{ width:100%; padding:13px; background:var(--fp-teal); border:none; border-radius:var(--r-md); color:#fff; font-size:.93rem; font-weight:600; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px; transition:background .2s, transform .15s; margin-top:16px; font-family:inherit; }
    .report-btn:hover{ background:#019b90; transform:translateY(-1px); }

    /* Print report */
    #printReport{ display:none; }
    @media print{
      body>*{ display:none !important; }
      #printReport{ display:block !important; font-family:Arial,sans-serif; padding:24px; color:#11201d; }
      #printReport h1{ font-size:20pt; color:#016a62; margin-bottom:8px; }
      #printReport h2{ font-size:13pt; margin-top:18px; margin-bottom:6px; border-bottom:1px solid #e6eae8; padding-bottom:4px; }
      #printReport .pr-stat{ display:inline-block; margin:4px 8px 4px 0; padding:4px 10px; border-radius:6px; background:#ecf8f6; border:1px solid #cdeee8; font-size:10pt; font-weight:600; color:#016a62; }
      #printReport .pr-action{ border:1px solid #e6eae8; border-radius:8px; padding:10px 14px; margin-bottom:8px; }
      #printReport .pr-action__title{ font-size:11pt; font-weight:700; color:#11201d; }
      #printReport .pr-action__gain{ color:#016a62; font-weight:700; font-size:11pt; }
    }

    /* Phase-2 CTA — calc-v2 dark */
    .p2-cta-wrap{ background:var(--fp-ink); padding:56px 20px; margin-top:64px; }
    .p2-cta-inner{ display:flex; align-items:center; gap:40px; flex-wrap:wrap; }
    .p2-cta-left{ flex:1; min-width:260px; }
    .p2-cta-right{ flex-shrink:0; text-align:center; }
    .p2-cta-badge{ display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.10); color:#fff; font-size:.75rem; font-weight:600; padding:6px 14px; border-radius:var(--r-pill); letter-spacing:.04em; margin-bottom:16px; border:1px solid rgba(255,255,255,.16); }
    .p2-cta-headline{ font-size:clamp(1.4rem,2.4vw,1.7rem); font-weight:600; color:#fff; line-height:1.18; letter-spacing:-.02em; margin:0 0 12px; }
    .p2-cta-sub{ color:rgba(255,255,255,.72); font-size:.9375rem; line-height:1.6; margin:0 0 18px; max-width:48ch; }
    .p2-cta-bullets{ display:flex; flex-wrap:wrap; gap:10px 20px; }
    .p2-cta-bullets span{ font-size:.875rem; font-weight:500; color:#5fd4c9; }
    .p2-cta-btn{ display:inline-block; background:var(--fp-teal); color:#fff; font-weight:600; font-size:.95rem; padding:14px 28px; border-radius:var(--r-md); text-decoration:none; transition:background .2s, transform .15s; white-space:nowrap; }
    .p2-cta-btn:hover{ background:#019b90; transform:translateY(-2px); color:#fff; text-decoration:none; }
    .p2-cta-trust{ margin-top:12px; font-size:.82rem; color:rgba(255,255,255,.5); }
    @media(max-width:640px){ .p2-cta-inner{ flex-direction:column; gap:24px; } .p2-cta-right{ width:100%; } .p2-cta-btn{ width:100%; text-align:center; } }

    /* Einkommensranking */
    .ranking-form-card{ background:#fff; border-radius:var(--r-lg); padding:28px; box-shadow:var(--sh-card); border:1px solid var(--fp-line); margin-bottom:20px; }
    .ranking-form-card h3{ font-size:1.05rem; font-weight:600; margin-bottom:6px; color:var(--fp-ink); }
    .ranking-form-card .ranking-intro{ font-size:.875rem; color:var(--fp-muted); margin-bottom:22px; line-height:1.6; }
    .ranking-income-row{ display:flex; gap:12px; align-items:center; margin-bottom:18px; flex-wrap:wrap; }
    .ranking-income-input{ width:130px; padding:11px 14px; border:1px solid var(--fp-line); border-radius:var(--r-sm); font-size:1.1rem; font-weight:600; color:var(--fp-ink); box-sizing:border-box; text-align:right; flex-shrink:0; font-family:var(--fp-mono); font-variant-numeric:tabular-nums; }
    .ranking-income-input:focus{ border-color:var(--fp-teal); outline:none; box-shadow:0 0 0 3px rgba(0,175,163,.18); }
    .ranking-euro-label{ font-size:1.05rem; font-weight:500; color:var(--fp-muted); flex-shrink:0; }
    .ranking-slider{ flex:1; min-width:120px; accent-color:var(--fp-teal); cursor:pointer; }
    .ranking-hhtype{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
    .ranking-hhbtn{ display:inline-flex; align-items:center; justify-content:center; padding:9px 14px; border:1px solid var(--fp-line); border-radius:var(--r-sm); font-size:.8rem; font-weight:500; color:var(--fp-muted)!important; -webkit-text-fill-color:var(--fp-muted)!important; cursor:pointer; background:#fff; transition:.18s; font-family:inherit; user-select:none; -webkit-user-select:none; }
    .ranking-hhbtn.active{ border-color:var(--fp-teal); background:var(--fp-teal-tint); color:var(--fp-teal-deep); -webkit-text-fill-color:var(--fp-teal-deep); }
    .ranking-hhbtn:hover:not(.active){ border-color:var(--fp-teal); color:var(--fp-ink); }
    .ranking-calc-btn{ -webkit-appearance:none; appearance:none; width:100%; padding:13px; background:var(--fp-teal); border:none; border-radius:var(--r-md); color:#fff; -webkit-text-fill-color:#fff; font-size:.95rem; font-weight:600; cursor:pointer; transition:background .2s, transform .15s; font-family:inherit; }
    .ranking-calc-btn:hover{ background:#019b90; transform:translateY(-1px); }
    .ranking-result{ display:none; }
    .ranking-result.show{ display:block; animation:fadeTabIn .25s ease; }
    .ranking-hero-card{ background:var(--fp-ink); border-radius:var(--r-lg); padding:28px 24px 22px; border:1px solid var(--fp-ink); margin-bottom:16px; text-align:center; color:#fff; }
    .ranking-schicht-intro{ font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:rgba(255,255,255,.6); margin-bottom:10px; }
    .ranking-schicht-badge{ display:inline-block; padding:7px 22px; border-radius:var(--r-pill); font-size:.9rem; font-weight:600; letter-spacing:.01em; margin-bottom:22px; border:1px solid rgba(255,255,255,.25); color:#fff; }
    .ranking-main-line{ font-size:.95rem; color:rgba(255,255,255,.7); margin-bottom:2px; }
    .ranking-pct-big{ font-size:3.2rem; font-weight:600; line-height:1.05; margin-bottom:6px; color:#5fd4c9; font-family:var(--fp-mono); font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
    .ranking-pct-sub{ font-size:.88rem; color:rgba(255,255,255,.6); }
    .ranking-gauge-section{ margin:26px 0 8px; }
    .ranking-gauge-labels{ display:flex; justify-content:space-between; font-size:.7rem; font-weight:500; color:rgba(255,255,255,.6); margin-bottom:10px; }
    .ranking-gauge-track{ position:relative; height:14px; border-radius:var(--r-pill); background:linear-gradient(90deg,#ef4444 0%,#f97316 18%,#facc15 32%,#22c55e 52%,#00afa3 75%,#7c3aed 100%); overflow:visible; }
    .ranking-gauge-marker{ position:absolute; top:-7px; width:4px; height:28px; background:#fff; border-radius:3px; box-shadow:0 0 0 3px var(--fp-ink); transition:left .55s var(--fp-ease); }
    .ranking-gauge-flag{ position:absolute; top:-34px; left:50%; transform:translateX(-50%); background:#fff; color:var(--fp-ink); font-size:.68rem; font-weight:700; padding:3px 8px; border-radius:6px; white-space:nowrap; }
    .ranking-gauge-flag::after{ content:''; position:absolute; bottom:-5px; left:50%; transform:translateX(-50%); width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-top:5px solid #fff; }
    .ranking-gauge-markers-row{ display:flex; justify-content:space-between; font-size:.65rem; color:rgba(255,255,255,.5); margin-top:5px; padding:0 1px; }
    .ranking-context-box{ background:rgba(255,255,255,.06); border-radius:var(--r-md); padding:14px 18px; font-size:.88rem; color:rgba(255,255,255,.85); line-height:1.6; margin-top:18px; text-align:left; border:1px solid rgba(255,255,255,.10); }
    .ranking-table-card{ background:#fff; border-radius:var(--r-lg); padding:20px 24px; box-shadow:var(--sh-card); border:1px solid var(--fp-line); margin-bottom:16px; }
    .ranking-table-card h4{ font-size:.85rem; font-weight:600; color:var(--fp-ink); margin-bottom:14px; }
    .rt-row{ display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:var(--r-sm); font-size:.82rem; margin-bottom:2px; transition:.15s; }
    .rt-row.rt-active{ background:var(--fp-teal-tint); border:1px solid var(--fp-teal-line); }
    .rt-dot{ width:10px; height:10px; border-radius:50%; flex-shrink:0; }
    .rt-schicht{ font-weight:600; flex:1.4; color:var(--fp-ink); }
    .rt-range{ color:var(--fp-muted); flex:1.6; font-size:.78rem; font-family:var(--fp-mono); }
    .rt-pct{ font-weight:500; color:var(--fp-muted); font-size:.78rem; min-width:64px; text-align:right; font-family:var(--fp-mono); }
    .rt-you{ font-size:.7rem; font-weight:600; color:var(--fp-teal-deep); background:var(--fp-teal-tint); padding:2px 8px; border-radius:var(--r-pill); flex-shrink:0; }
    .ranking-note{ font-size:.72rem; color:var(--fp-muted); margin-top:12px; line-height:1.55; padding:10px 14px; background:var(--fp-surface); border-radius:var(--r-sm); }
    @media(max-width:500px){ .ranking-pct-big{ font-size:2.4rem; } .ranking-gauge-markers-row{ display:none; } }

    /* Mobile fixes */
    @media(max-width:640px){ .gehalt-hero{ padding:36px 0 24px; } }
    @media(max-width:480px){
      .gehalt-hero{ padding:28px 0 20px; }
      .gehalt-hero h1{ font-size:1.6rem; }
      .gehalt-layout{ gap:12px; padding:24px 0; }
    }
    @media(max-width:640px){ #einkommensrang{ padding:36px 0; } #einkommensrang h2{ font-size:1.4rem!important; } }
    @media(max-width:480px){
      .ranking-income-row{ flex-direction:column; align-items:stretch; gap:6px; }
      .ranking-income-input{ width:100%; text-align:left; }
      .ranking-euro-label{ display:none; }
      .ranking-slider{ width:100%; min-width:unset; flex:unset; }
      .ranking-form-card{ padding:18px 16px; }
      .ranking-hero-card{ padding:20px 14px 18px; }
    }
    @media(max-width:520px){ .ranking-hhbtn{ flex:1 1 calc(50% - 4px); min-width:unset; font-size:.75rem; padding:8px; text-align:center; } }
    @media(max-width:360px){ .ranking-hhbtn{ font-size:.7rem; padding:6px; } }
    @media(max-width:480px){
      .ranking-gauge-labels span:nth-child(2){ display:none; }
      .ranking-gauge-labels{ font-size:.6rem; }
      .ranking-gauge-flag{ font-size:.62rem; padding:2px 6px; }
      .ranking-gauge-marker{ width:3px; height:26px; top:-5px; }
      .ranking-pct-big{ font-size:2.6rem; }
    }
    @media(max-width:380px){ .rt-range{ display:none; } }
    @media(max-width:480px){ .ranking-calc-btn{ font-size:.88rem; padding:12px; } }

    /* Sticky CTA */
    .sticky-cta{ position:fixed; bottom:0; left:0; right:0; z-index:4800; background:var(--fp-ink); padding:12px 20px; display:flex; align-items:center; justify-content:center; gap:14px; transform:translateY(100%); transition:transform .35s ease; box-shadow:0 -4px 20px rgba(17,32,29,.22); }
    .sticky-cta.visible{ transform:translateY(0); }
    .sticky-cta p{ color:rgba(255,255,255,.85); margin:0; font-size:.88rem; }
    .sticky-cta a.sc-btn,.sticky-cta button.sc-btn{ background:var(--fp-teal); color:#fff; border:none; font-weight:600; font-size:.9rem; padding:11px 22px; border-radius:var(--r-sm); cursor:pointer; white-space:nowrap; transition:background .15s, transform .15s; text-decoration:none; display:inline-block; }
    .sticky-cta a.sc-btn:hover,.sticky-cta button.sc-btn:hover{ background:#019b90; transform:translateY(-2px); }
    .sticky-cta .sc-close{ background:transparent; border:none; color:rgba(255,255,255,.55); font-size:1.2rem; cursor:pointer; padding:4px 8px; }
    @media(max-width:600px){ .sticky-cta p{ display:none; } }

    /* Kurzerklärer (explainer stage) */
    .xvid-wrap{ max-width:760px; }
    .xv-screen{ position:relative; background:var(--fp-ink); border-radius:var(--r-lg); border:1px solid var(--fp-ink); overflow:hidden; min-height:360px; }
    .xv-scene{ display:none; flex-direction:column; justify-content:center; align-items:stretch; padding:36px 32px; min-height:360px; }
    .xv-scene.active{ display:flex; animation:xvFade .4s var(--fp-ease); }
    @keyframes xvFade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }
    .xv-in{ width:100%; }
    .xv-bar-row{ width:100%; }
    .xv-bar-label{ display:flex; justify-content:space-between; font-size:.9rem; font-weight:500; margin-bottom:7px; }
    .xv-bar-label span:last-child{ font-family:var(--fp-mono); font-variant-numeric:tabular-nums; }
    .xv-bar{ height:10px; background:rgba(255,255,255,.10); border-radius:var(--r-pill); overflow:hidden; }
    .xv-bar-fill{ height:100%; width:var(--w,0%); border-radius:var(--r-pill); transition:width .8s var(--fp-ease); }
    .xv-controls{ display:flex; align-items:center; gap:14px; margin-top:14px; }
    .xv-play-btn{ display:inline-flex; align-items:center; gap:7px; background:var(--fp-teal); color:#fff; border:none; border-radius:var(--r-pill); padding:9px 18px; font-family:inherit; font-size:.875rem; font-weight:600; cursor:pointer; transition:background .18s; flex-shrink:0; }
    .xv-play-btn:hover{ background:#019b90; }
    .xv-prog-track{ flex:1; height:5px; background:var(--fp-surface-2); border-radius:var(--r-pill); overflow:hidden; }
    .xv-prog-fill{ height:100%; width:0%; background:var(--fp-teal); border-radius:var(--r-pill); transition:width .25s linear; }
    .xv-dots{ display:flex; gap:7px; flex-shrink:0; }
    .xv-dot{ width:8px; height:8px; border-radius:50%; border:none; background:var(--fp-line); cursor:pointer; padding:0; transition:background .18s, transform .18s; }
    .xv-dot.active{ background:var(--fp-teal); transform:scale(1.25); }

/* === blog-v9/calc-v2 reskin overrides === */
.container{max-width:1180px;margin:0 auto;padding:0 24px;}
.compare-value,.netto-box__value,.snap-salary,.cat-job__salary,.benefit-val,.boost-hero__amount,.ranking-pct-big,.ranking-income-input,.rt-pct,.gehalt-hero h1{font-family:'Geist Mono',ui-monospace,'SF Mono',Menlo,monospace;font-variant-numeric:tabular-nums;}
.gehalt-hero h1{font-family:'Geist',-apple-system,sans-serif;}
.sticky-cta a.sc-btn,.sticky-cta button.sc-btn{background:#00afa3;}
.calc-btn,.report-btn,.ranking-calc-btn{font-weight:700;letter-spacing:-.01em;}

/* === Overflow-Fix: Grid-Blowout verhindern === */
.gehalt-layout{grid-template-columns:400px minmax(0,1fr);}
.gehalt-layout>*,.compare-wrap>*,.netto-grid>*,.snapshot-grid>*,.cat-grid>*{min-width:0;}
@media(max-width:900px){.gehalt-layout{grid-template-columns:1fr;}}
html,body{max-width:100%;overflow-x:clip;}
/* === Kreditkarten-Antrag (ersetzt alten CTA) === */
.gv-antrag{padding:48px 0;background:var(--fp-surface,#f6f8f7);border-top:1px solid var(--fp-line-soft,rgba(17,32,29,.07));}
.gv-antrag__inner{text-align:center;}
.gv-antrag__eyebrow{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.08em;color:var(--fp-teal-deep,#017a72);background:var(--fp-teal-tint,#e6f5f3);padding:5px 12px;border-radius:999px;margin-bottom:14px;}
.gv-antrag__title{font-size:clamp(1.5rem,3vw,2rem);font-weight:600;color:var(--fp-ink,#11201d);margin:0 0 10px;letter-spacing:-.01em;}
.gv-antrag__sub{max-width:640px;margin:0 auto 28px;color:var(--fp-body,#3a4744);line-height:1.55;}
.gv-antrag__frame{max-width:760px;margin:0 auto;border-radius:20px;overflow:hidden;border:1px solid var(--fp-line-soft,rgba(17,32,29,.07));background:#fff;box-shadow:0 24px 60px rgba(17,32,29,.06),0 4px 14px rgba(17,32,29,.04);}
.gv-antrag__frame iframe{display:block;width:100%;height:900px;border:0;}
@media(max-width:560px){.gv-antrag__frame iframe{height:1000px;}.gv-antrag{padding:32px 0;}}
