/* P7 · bestehende Tokens, Bausteine und der vorgegebene Aufbau. */
.p7-access { display:grid; grid-template-columns:1fr 1fr; min-height:100dvh; background:var(--surface); }
.p7-access-art { background:var(--desk); padding:56px clamp(32px,5vw,80px); min-width:0; }
.p7-access-art .brand { display:inline-flex; align-items:center; min-height:32px; margin:0 0 32px; }
.p7-access-art .brand svg { width:32px; height:32px; }
.p7-access-art .brand > span { font-size:28px; line-height:32px; }
.p7-access-story { max-width:520px; margin:auto; }
.p7-access-story h1 { font:700 28px/1.3 var(--head); letter-spacing:-.025em; margin:0 0 20px; }
.p7-access-story > p { color:var(--muted); margin:0 0 24px; }
.p7-access-story > .pill { margin-bottom:16px; background:var(--accent-soft); color:var(--accent-ink); }
.p7-access-form { display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; padding:48px 32px 88px; position:relative; background:var(--surface); }
.p7-access-content { width:100%; max-width:400px; }
.p7-access-content > h2 { font:700 28px/1.3 var(--head); letter-spacing:-.025em; margin:0 0 28px; }
.p7-access-lead { color:var(--muted); margin:-12px 0 28px; }
.p7-access-content .stack { display:flex; flex-direction:column; gap:20px; }
.p7-access-content .stack > * + * { margin-top:0; }
.p7-access-content .stack > [role=alert]:empty { display:none; }
.p7-access-content input:not([type=checkbox]) { min-height:44px; height:44px; width:100%; }
.p7-access-content .field { margin:0; }
.p7-access-content .field-label { display:block; margin-bottom:8px; }
.p7-access-content .btn.primary { width:100%; }
.p7-access-content .notice { margin:16px 0; }
.p7-access-form > footer { position:absolute; bottom:32px; font-size:14px; color:var(--muted); text-align:center; }
.p7-access-form > footer a { color:inherit; }
.p7-password { position:relative; }
.p7-password input { padding-right:48px; }
.p7-password .btn { position:absolute; right:2px; top:2px; width:40px; min-height:40px; padding:8px; color:var(--ink); }
.p7-password .btn svg { width:22px; height:22px; }
.p7-password-hint { display:block; margin-top:6px; }
.p7-password-hint.p7-met { color:var(--safe); }
.p7-password-forgot { margin-top:8px; border-top:1px solid var(--line); padding-top:24px; color:var(--muted); font-size:14px; }
.p7-demo-checks { list-style:none; display:grid; gap:12px; padding:0; margin:32px 0 0; }
.p7-demo-checks li { display:flex; align-items:center; gap:12px; color:var(--text); }
.p7-demo-checks svg { width:20px; height:20px; color:var(--safe); flex:none; }
.p7-demo-note { margin:20px 0; }
.p7-demo-privacy { margin:24px 0 0; }
.p7-demo-privacy summary { color:var(--accent-ink); text-decoration:underline; cursor:pointer; }
.p7-demo-privacy p { font-size:14px; margin:16px 0; }
/* Papier-Inhalt bleibt in beiden Modi hell. Seine festen Tintenfarben sind die P0-Ausnahme. */
.p7-paper { background:var(--paper); color:#0F172A; padding:28px; max-width:440px; margin:36px auto 8px; transform:rotate(-5deg); box-shadow:var(--shadow-pop); font-size:14px; line-height:1.4; }
.p7-paper header { display:grid; margin-bottom:20px; }
.p7-paper header strong { font-size:16px; }
.p7-paper p { margin:0; font-size:14px; color:inherit; }
.p7-paper-meta { display:flex; justify-content:space-between; gap:12px; margin-bottom:20px; }
.p7-paper dl { margin:0; }
.p7-paper dl > div { display:flex; justify-content:space-between; gap:12px; }
.p7-paper dd { margin:0; font-weight:600; white-space:nowrap; }
.p7-paper mark { background:var(--marker); color:#0F172A; padding:2px 4px; font-weight:700; }
.p7-paper .p7-paper-address { border-top:1px solid #CBD5E1; padding-top:14px; margin-bottom:18px; }
.p7-paper h2 { font-size:20px; color:inherit; margin-bottom:8px; }
.p7-paper table { width:100%; border-collapse:collapse; font-size:14px; }
.p7-paper th,.p7-paper td { padding:6px 2px; border-bottom:1px solid #CBD5E1; color:inherit; height:auto; }
.p7-paper th { background:#EEF2F6; text-align:left; font-size:14px; }
.p7-paper td:last-child,.p7-paper th:last-child { text-align:right; white-space:nowrap; }
.p7-paper-total { padding:16px 0 24px 28%; }
.p7-paper-total > div:last-child { border-top:1px solid #CBD5E1; padding-top:8px; margin-top:6px; }
.p7-paper-example { display:block; margin-top:16px; font-size:14px; color:#475569; }
.p7-help .page-head { align-items:flex-start; }
.p7-help .page-head .row { flex-wrap:wrap; justify-content:flex-end; }
.p7-steps { list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; padding:0; margin:0 0 24px; }
.p7-steps > li { position:relative; padding:16px; }
.p7-steps > li:not(:last-child)::after { content:'›'; position:absolute; top:42%; right:-18px; color:var(--muted); font-size:24px; }
.p7-step-number { position:absolute; top:16px; left:16px; display:grid; place-items:center; width:36px; height:36px; border-radius:999px; font:700 20px/1 var(--head); background:var(--sunken); color:var(--ink); }
.p7-step-image { display:block; width:100%; height:104px; color:var(--faint); margin-bottom:12px; }
.p7-step-image .p7-step-badge { fill:var(--accent); stroke:var(--accent); }
.p7-step-image .p7-step-symbol { stroke:var(--on-accent); }
.p7-steps h2 { font:700 20px/1.3 var(--head); margin:0 0 8px; }
.p7-steps p { color:var(--text); margin:0; }
.p7-help-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-bottom:24px; }
.p7-help-card { padding:20px; }
.p7-help-card h2 { margin:0 0 8px; font-size:20px; }
.p7-help-card dl { margin:0; }
.p7-terms > div,.p7-keys > div { display:grid; grid-template-columns:minmax(120px,34%) 1fr; gap:16px; padding:12px 0; border-top:1px solid var(--line); align-items:start; }
.p7-terms dd,.p7-keys dd { margin:0; color:var(--text); font-size:14px; }
.p7-terms .pill { display:inline-flex; gap:6px; font-size:14px; white-space:nowrap; }
.p7-terms .pill svg { width:18px; height:18px; }
.p7-safe { background:var(--safe-bg); color:var(--safe); }
.p7-check { background:var(--check-bg); color:var(--check); }
.p7-paused { background:var(--paused-bg); color:var(--paused); }
.p7-keys kbd,.p7-other-terms kbd { font-size:14px; }
.p7-other-terms { border-top:1px solid var(--line); padding-top:12px; font-size:14px; }
.p7-other-terms summary { cursor:pointer; color:var(--accent-ink); }
.p7-other-terms dl > div { margin-top:16px; }
.p7-other-terms dt { font-weight:600; }
.p7-other-terms dd { margin:4px 0 0; }
.p7-other-terms p { margin-top:12px; }
.p7-faq details { border-top:1px solid var(--line); padding:0; }
.p7-faq summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; cursor:pointer; list-style:none; }
.p7-faq summary::-webkit-details-marker { display:none; }
.p7-faq summary::after { content:'›'; font-size:20px; }
.p7-faq details[open] summary::after { transform:rotate(90deg); }
.p7-faq details p { margin:0 0 16px; max-width:80ch; color:var(--text); }
.p7-more-list { list-style:none; margin:0; padding:0; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card); overflow:hidden; }
.p7-more-list li + li { border-top:1px solid var(--line); }
.p7-more-list a,.p7-more-list button { display:flex; align-items:center; gap:16px; min-height:56px; width:100%; padding:12px 16px; font:500 16px/1.5 var(--body); background:transparent; border:0; border-radius:0; color:var(--ink); text-decoration:none; text-align:left; cursor:pointer; }
.p7-more-list a:hover,.p7-more-list button:hover { background:var(--sunken); }
.p7-more-list svg { width:22px; height:22px; flex:none; color:var(--muted); }
.p7-more-arrow,.p7-more-list .switch-track { margin-left:auto; }
.p7-more-arrow { font-size:24px; color:var(--faint); }
.p7-more h2 { font-size:14px; color:var(--muted); margin:24px 0 8px; }
.p7-more-bottom { margin-top:24px; }
.p7-center { display:flex; flex-direction:column; align-items:center; text-align:center; gap:20px; max-width:640px; padding:32px; margin:auto; }
.p7-center > .brand { margin-bottom:24px; }
.p7-center h1 { font-size:34px; letter-spacing:-.025em; }
.p7-center p { margin:0; color:var(--muted); max-width:56ch; }
.p7-center .p7-contact { font-size:14px; margin-top:12px; }
.p7-closed { min-height:100dvh; display:flex; flex-direction:column; justify-content:center; background:var(--desk); padding:48px 16px; }
.p7-closed .p7-center { margin:auto auto 24px; }
.p7-account-controls { width:100%; max-width:640px; margin:0 auto auto; font-size:14px; }
.p7-account-controls > summary { text-align:center; cursor:pointer; color:var(--accent-ink); }
.p7-account-controls .card { margin-top:16px; }
.p7-notfound { min-height:calc(100dvh - 180px); justify-content:center; }
.p7-feedback { display:grid; gap:20px; }
.p7-moods { border:0; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.p7-moods label { position:relative; cursor:pointer; min-width:0; }
.p7-moods input { position:absolute; opacity:0; width:1px; height:1px; }
.p7-moods label > span { display:flex; flex-direction:column; align-items:center; gap:8px; border:1px solid var(--input-line); border-radius:var(--r-card); padding:16px 8px; color:var(--text); background:var(--surface); font-size:15px; }
.p7-moods input:checked + span { border:2px solid var(--accent-ink); padding:15px 7px; background:var(--accent-soft); color:var(--accent-ink); }
.p7-moods input:focus-visible + span { outline:2px solid var(--accent-ink); outline-offset:2px; }
.p7-moods svg { width:36px; height:36px; }
.p7-feedback textarea { min-height:104px; resize:vertical; }
.p7-feedback-photo { display:flex; align-items:flex-start; gap:10px; font-size:14px; cursor:pointer; }
.p7-feedback-photo input { margin-top:3px; flex:none; }
.p7-photo-preview:empty { display:none; }
.p7-photo-preview img { width:100%; border:1px solid var(--line); border-radius:var(--r-ctl); }
.p7-photo-preview { color:var(--muted); font-size:14px; }
.p7-feedback .field { margin:0; }
.p7-feedback .field-help { margin:0; }
.demo-bar { background:var(--accent-soft); color:var(--ink); border-color:var(--accent-line); }
.demo-bar .demo-pill { color:var(--accent-ink); background:var(--surface); border-color:var(--accent-line); }
@media (min-width:860px) {
  .p7-more { display:none; }
  .p7-access { height:100dvh; min-height:0; }
  .p7-access-art { display:flex; flex-direction:column; min-height:0; padding-bottom:48px; }
  .p7-access-art .brand { flex:none; align-self:flex-start; }
  .p7-access-story { display:flex; flex-direction:column; width:100%; flex:1; min-height:0; margin:0 auto; }
  .p7-access-story > h1,.p7-access-story > p,.p7-access-story > .pill,.p7-demo-checks { flex:none; }
  .p7-access-story > .pill { align-self:flex-start; }
  .p7-paper-space { flex:1; min-height:0; position:relative; margin-top:12px; }
  .p7-paper { position:absolute; top:50%; left:50%; width:440px; max-width:none; margin:0; transform:translate(-50%,-50%) rotate(-5deg) scale(var(--p7-paper-scale,0)); }
  .p7-access-form { height:100dvh; min-height:0; overflow-y:auto; padding:48px 32px 32px; gap:32px; justify-content:flex-start; }
  .p7-access-content { flex:none; margin:auto 0; }
  .p7-access-form > footer { flex:none; position:static; margin:0; }
  .p7-demo-checks { margin-top:16px; }
}
@media (max-width:1100px) and (min-width:860px) { .p7-access-art { padding:40px 24px 48px; } .p7-paper { padding:20px; } .p7-paper-meta { flex-direction:column; } .p7-terms > div { grid-template-columns:1fr; gap:8px; } }
@media (max-width:859px) {
  .p7-access { grid-template-columns:1fr; min-height:100dvh; align-content:start; }
  .p7-access-art { padding:24px; }
  .p7-access-art .brand { margin:0 0 24px; }
  .p7-access-story { max-width:400px; }
  .p7-access-story h1 { font-size:28px; margin-bottom:0; }
  .p7-access-story > p { margin:12px 0 0; }
  .p7-access-story .p7-paper-space,.p7-demo-checks { display:none; }
  .p7-access-form { min-height:0; padding:32px 24px 24px; }
  .p7-access-content > h2 { margin-bottom:24px; }
  .p7-access-form > footer { position:static; margin-top:40px; }
  .p7-help .page-head { gap:16px; flex-direction:column; }
  .p7-help .page-head .row { justify-content:flex-start; }
  .p7-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
  .p7-steps > li { padding:12px; }
  .p7-steps > li::after { display:none; }
  .p7-steps h2 { font-size:20px; overflow-wrap:anywhere; }
  .p7-step-number { width:28px; height:28px; font-size:16px; top:12px; left:12px; }
  .p7-step-image { height:80px; margin:8px 0 12px; }
  .p7-steps p { font-size:14px; }
  .p7-help-grid { grid-template-columns:1fr; gap:16px; margin-bottom:16px; }
  .p7-help-card { padding:16px; }
  .p7-terms > div,.p7-keys > div { grid-template-columns:minmax(110px,38%) 1fr; gap:12px; }
  .p7-center { padding:24px; }
  .p7-center h1 { font-size:34px; }
  .p7-closed { padding:24px 0; }
  .p7-closed .p7-center { margin-top:24px; }
  .p7-account-controls { padding:0 24px; }
  .p7-moods { gap:8px; }
}
@media (prefers-reduced-motion:reduce) { .p7-access * { transition:none; animation:none; } }
/* Tour und Suche: dieselben Dialog-/Statuswerte wie in P0. */
.fd-tour { pointer-events:auto; }
.fd-tour[data-ohne-ziel="true"] { background:var(--overlay); }
.fd-tour__licht { pointer-events:none; border-radius:8px; box-shadow:0 0 0 9999px var(--overlay); outline:0; transition:top 180ms var(--ease),left 180ms var(--ease),width 180ms var(--ease),height 180ms var(--ease); }
.fd-tour__karte { max-height:calc(100dvh - 24px); overflow:visible; width:360px; max-width:calc(100vw - 24px); border:1px solid var(--line); border-radius:var(--r-card); padding:24px; box-shadow:var(--shadow-pop); }
.fd-tour__karte h2 { font-size:20px; margin:8px 0; }
.fd-tour__karte p { font-size:15px; }
.fd-tour__karte .fd-tour__nr { font-size:14px; color:var(--muted); }
.fd-tour__pfeil { position:absolute; width:12px; height:12px; background:var(--surface); border-left:1px solid var(--line); border-top:1px solid var(--line); transform:rotate(-45deg); top:var(--pfeil-y,24px); left:-7px; }
.fd-tour__karte[data-pfeil="oben"] .fd-tour__pfeil { top:-7px; left:var(--pfeil-x,28px); transform:rotate(45deg); }
.fd-tour__karte[data-pfeil="unten"] .fd-tour__pfeil { top:auto; bottom:-7px; left:var(--pfeil-x,28px); transform:rotate(225deg); }
.fd-tour__karte[data-pfeil="rechts"] .fd-tour__pfeil { left:auto; right:-7px; transform:rotate(135deg); }
.fd-tour__punkte { justify-content:flex-start; margin:20px 0; gap:8px; }
.fd-tour__punkte i,.fd-tour__punkte i.an { width:8px; height:8px; border-radius:999px; background:var(--line-strong); }
.fd-tour__punkte i.an { background:var(--accent-ink); }
.fd-tour__knoepfe { gap:8px; margin-top:20px; }
.fd-tour__knoepfe .btn { padding-left:12px; padding-right:12px; }
.fd-tour__knoepfe [data-tour="ende"] { margin-right:auto; padding-left:0; padding-right:4px; font-size:14px; }
.fd-tour--rein { animation:none; }
.fd-search { border:1px solid var(--line); border-radius:var(--r-card); color:var(--ink); background:var(--surface); box-shadow:var(--shadow-pop); }
.fd-search::backdrop { background:var(--overlay); }
.fd-search .search-entry input { flex:1; }
#fd-search-results [role=option] > span { min-width:0; flex:1; }
#fd-search-results small { display:block; color:var(--muted); font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#fd-search-results b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#fd-search-results strong { white-space:nowrap; font-size:15px; font-variant-numeric:tabular-nums; }
#fd-search-results em.pill { font-style:normal; white-space:nowrap; font-size:14px; }
#fd-search-results h3 { margin:0; }
#fd-search-results .search-empty { font-size:15px; color:var(--muted); }
@media (max-width:859px) {
  .fd-search { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; }
  .fd-search .search-entry { padding:16px; }
  #fd-search-results { max-height:calc(100dvh - 124px); padding:8px; }
  #fd-search-results [role=option] { gap:8px; flex-wrap:wrap; }
  #fd-search-results [role=option] > svg { align-self:flex-start; margin-top:4px; }
  #fd-search-results [role=option] > span { flex-basis:calc(100% - 38px); }
  #fd-search-results [role=option] > strong { margin-left:28px; }
  .fd-search footer { position:absolute; bottom:0; width:100%; padding-bottom:max(12px,env(safe-area-inset-bottom)); }
}
@media (max-width:719px) {
  .fd-tour__karte { width:auto; max-width:none; left:12px; right:12px; bottom:12px; top:auto; padding:20px; padding-bottom:max(20px,env(safe-area-inset-bottom)); }
  .fd-tour__pfeil { display:none; }
}
@media (prefers-reduced-motion:reduce) { .fd-tour__licht { transition:none; } .fd-tour--rein { animation:none; } }

.fd-tour__karte[data-pfeil="none"] .fd-tour__pfeil { display:none; }
.p7-released { color:var(--released); background:var(--released-bg); }
.p7-error { color:var(--error); background:var(--error-bg); }
.p7-deferred,.p7-reading { color:var(--paused); background:var(--paused-bg); }
#fd-search-results em.pill { display:inline-flex; align-items:center; gap:4px; }
#fd-search-results em.pill svg { width:16px; height:16px; }

/* Keine schwebende Rückmeldung; die bestehenden Wege in Hilfe, Mehr und Personenmenü bleiben. */
.ffb-knopf { display:none !important; }
@media (max-width:859px) {
  .toast-host, body:has(.review) .toast-host { left:24px; right:24px; bottom:calc(76px + env(safe-area-inset-bottom)); width:auto; max-width:400px; margin-left:auto; pointer-events:none; }
  .toast-host .toast { padding:8px 12px; gap:8px; font-size:14px; line-height:1.4; }
  .toast-host .toast:has(.toast-act) { pointer-events:auto; }
  .page-main > .page, .page-main > .page.wide { padding-bottom:calc(32px + var(--p7-toast-space,0px)); }
}
@media (max-height:420px) { .fd-tour__karte { overflow:auto; } }
