.flyer-planning { min-width: 0; font-family: var(--sp-font-family, Inter, sans-serif); }
.flyer-planning p { line-height: 1.5; margin: .5rem 0; }
.flyer-planning h3 { margin: 1.8rem 0 .6rem; font-size: 1.1rem; }
.flyer-planning h4 { margin: 0 0 .65rem; font-size: 1rem; overflow-wrap: anywhere; }
.flyer-planning a:not(.calendar-btn):not(.btn-pri) { color: var(--red, #E4002B); }
.flyer-plan-intro { padding: 1.1rem; background: var(--card, #fff); border: 1px solid var(--line, #EBEBEB); border-radius: 14px; }
.flyer-plan-intro h2 { margin: 0 0 .8rem; }
.flyer-guide-link { display: inline-block; margin: .6rem 0 0 .8rem; font-weight: 600; }
.flyer-plan-intro .calendar-btn { display: inline-block; margin-top: .6rem; color: #fff; background: #E4002B; padding: .8rem 1rem; border-radius: 10px; text-decoration: none; }
.flyer-plan-toolbar, .flyer-plan-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: .8rem; }
.flyer-planning .btn-sec, .flyer-planning .btn-pri { width: auto; min-height: 44px; margin: 0; padding: .65rem .9rem; border-radius: 9px; font: inherit; cursor: pointer; }
.flyer-planning .btn-sec { color: var(--ink, #242424); background: var(--card, #fff); border: 1px solid var(--line, #EBEBEB); }
.flyer-planning .btn-pri { color: white !important; background: #E4002B; border: 0; }
.flyer-planning .btn-sec:focus-visible, .flyer-planning a:focus-visible { outline: 3px solid #E4002B; outline-offset: 2px; }
.flyer-district-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: .75rem; }
.flyer-district-card, .flyer-own-plan { padding: 1rem; border: 1px solid var(--line, #EBEBEB); border-radius: 12px; background: var(--card, #fff); }
.flyer-district-card p { font-size: .86rem; }
.flyer-district-card progress { width: 100%; height: 9px; accent-color: #E4002B; }
.flyer-own-plans { display: grid; gap: .75rem; }
.flyer-plan-sources { margin-top: 1rem; font-size: .82rem; color: var(--muted, #565656); }
.flyer-plan-sources summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; }
.flyer-plan-form-panel { margin: 1.3rem 0; padding: 1rem; background: var(--card, #fff); border: 1px solid var(--line, #EBEBEB); border-radius: 14px; scroll-margin-top: 110px; }
.flyer-plan-form-panel h3 { margin-top: 0; }
.flyer-plan-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.flyer-plan-fields label, .flyer-plan-toolbar label { display: flex; flex-direction: column; gap: .4rem; font-size: .85rem; font-weight: 600; min-width: 0; }
.flyer-plan-fields input, .flyer-plan-fields select, .flyer-plan-fields textarea, .flyer-plan-toolbar select { width: 100%; min-width: 0; min-height: 44px; padding: .7rem; border: 1px solid var(--line, #EBEBEB); border-radius: 9px; background: var(--card, #fff); color: var(--ink, #242424); font: inherit; }
.flyer-plan-wide { grid-column: 1 / -1; }
.flyer-pickup-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .3rem .6rem; margin: .8rem 0 .2rem; padding: .75rem; border-radius: 10px; background: var(--bg, #f6f6f6); }
.flyer-pickup-form label { display: flex; flex-direction: column; gap: .35rem; min-width: 0; font-size: .85rem; font-weight: 600; }
.flyer-pickup-form input { width: 100%; min-width: 0; min-height: 44px; padding: .65rem; border: 1px solid var(--line, #EBEBEB); border-radius: 9px; background: var(--card, #fff); color: var(--ink, #242424); font: inherit; }
.flyer-pickup-form small { grid-column: 1 / -1; font-size: .78rem; }
@media (max-width: 520px) { .flyer-pickup-form { grid-template-columns: 1fr; } }
.flyer-plan-fields small { font-weight: 400; color: var(--muted, #565656); }
.support-nav { display: flex; gap: .4rem; overflow-x: auto; margin-bottom: 1.3rem; border-bottom: 1px solid var(--line); }
.support-nav button { flex-shrink: 0; min-height: 44px; padding: .7rem .6rem; color: var(--muted); font: inherit; cursor: pointer; border: 0; border-bottom: 3px solid transparent; background: transparent; }
.support-nav button.on { color: var(--red); border-bottom-color: var(--red); font-weight: 600; }
@media (max-width: 520px) { .flyer-plan-fields { grid-template-columns: 1fr; } }

/* Portal: eigener Weg in drei Phasen, Einsätze, Bedarf */
.fp-journey { padding: 1.2rem; border: 1px solid #dfe5eb; border-radius: 14px; background: var(--card, #fff); box-shadow: 0 10px 30px rgb(31 48 65 / 7%); }
.fp-journey-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .6rem 1rem; }
.fp-kicker { margin: 0 !important; color: var(--red, #E4002B); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.fp-journey h2 { margin: .15rem 0 0; color: #142033; font-size: 1.3rem; letter-spacing: -.02em; }
.fp-phase { display: inline-flex; align-items: center; min-height: 30px; padding: .2rem .7rem; border-radius: 999px; font-size: .8rem; font-weight: 600; white-space: nowrap; }
.fp-phase.is-before { color: #18334d; background: #eaf1f7; }
.fp-phase.is-running { color: #1F8A3B; background: #E7F4EB; }
.fp-phase.is-done { color: #667386; background: #f1f3f6; }
.fp-steps { display: grid; gap: 0; margin: 1.1rem 0 0; padding: 0; list-style: none; }
.fp-step { position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: .8rem; padding: 0 0 1.1rem; }
.fp-step:last-child { padding-bottom: 0; }
.fp-step:not(:last-child)::before { content: ""; position: absolute; top: 36px; bottom: 2px; left: 17px; width: 2px; background: #dfe5eb; }
.fp-dot { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: #667386; background: #f1f3f6; font-weight: 700; }
.fp-step.is-current .fp-dot { color: #fff; background: var(--red, #E4002B); }
.fp-step.is-done .fp-dot { color: #fff; background: #1F8A3B; }
.fp-step strong { display: block; padding-top: .45rem; color: #142033; font-size: 1.02rem; }
.fp-step.is-next strong { color: #667386; }
.fp-step p { margin: .25rem 0 0 !important; }
.fp-step .flyer-plan-actions { margin-top: .6rem; }
.fp-step a.btn-sec, .fp-step a.btn-pri { display: inline-flex; align-items: center; text-decoration: none; }
.fp-link { padding: 0; border: 0; background: none; color: var(--red, #E4002B); font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; }
.fp-guide { font-weight: 600; }
.fp-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1rem; margin: 0; }
.fp-facts dt { color: #667386; font-size: .78rem; }
.fp-facts dd { margin: .1rem 0 0; color: #142033; font-weight: 600; }
.fp-needs { margin-top: 1.4rem; }
.fp-needs > summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .8rem; min-height: 48px; cursor: pointer; list-style: none; }
.fp-needs > summary::-webkit-details-marker { display: none; }
.fp-needs > summary::after { content: "▾"; margin-left: auto; color: #667386; }
.fp-needs[open] > summary::after { content: "▴"; }
.fp-needs > summary h3 { margin: 0; }
.fp-need-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: .6rem; }
.fp-need { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .4rem .8rem; padding: .75rem .9rem; }
.fp-need-head { display: flex; flex-direction: column; min-width: 0; }
.fp-need-head span { color: #667386; font-size: .8rem; }
.fp-need progress { grid-column: 1; width: 100%; height: 8px; accent-color: #1F8A3B; }
.fp-need .btn-sec { grid-column: 2; grid-row: 1 / 3; }
.flyer-plan-form-panel .flyer-plan-actions .btn-sec[data-plan-reset] { display: inline-flex; }
@media (max-width: 520px) {
  .fp-journey { padding: 1rem; }
}
