.app-page, .landing-page { min-height: 100vh; background: radial-gradient(circle at 15% 5%, rgba(244,43,126,.09), transparent 28%), var(--night); }
.app-header { position: sticky; z-index: 80; top: 0; min-height: 82px; padding: 0 clamp(20px,5vw,76px); display: flex; align-items: center; justify-content: space-between; gap: 30px; border-bottom: 1px solid var(--line); background: rgba(7,7,17,.92); backdrop-filter: blur(18px); }
.landing-page .app-header { position: absolute; left: 0; right: 0; background: rgba(7,7,17,.58); }
.app-header .main-nav { gap: clamp(18px,3vw,42px); }
.nav-form { margin: 0; }
.nav-link-button { display: inline-flex; align-items: center; justify-content: center; }
.flash-stack { position: fixed; z-index: 150; top: 96px; right: 22px; width: min(420px, calc(100% - 44px)); display: grid; gap: 10px; }
.flash { padding: 14px 17px; border: 1px solid var(--line); border-radius: 13px; color: var(--ivory); background: #1a1422; box-shadow: 0 18px 50px rgba(0,0,0,.35); }
.flash-success { border-color: rgba(89,230,177,.4); }
.flash-error { border-color: rgba(255,107,86,.5); }
.flash-info { border-color: rgba(212,181,139,.4); }

.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 30px; }
.hero-actions.centered { justify-content: center; }
.primary-action, .secondary-action, .card-action { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 22px; border-radius: 13px; font-weight: 750; transition: transform .18s ease, border-color .18s ease, background .18s ease; }
.primary-action { color: white; border: 0; background: linear-gradient(110deg,var(--pink),var(--coral)); box-shadow: 0 14px 34px rgba(244,43,126,.18); }
.secondary-action { color: var(--ivory); border: 1px solid var(--line); background: rgba(255,255,255,.035); }
.primary-action:hover, .secondary-action:hover, .card-action:hover { transform: translateY(-1px); }
.section-cta { display: flex; justify-content: center; margin-top: 34px; }

.page-shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 82px 0 110px; }
.page-intro { max-width: 830px; margin-bottom: 38px; }
.page-intro h1 { margin: 12px 0 18px; font: 600 clamp(52px,8vw,82px)/.98 Georgia,serif; letter-spacing: -.045em; }
.page-intro p { max-width: 720px; margin: 0; color: var(--muted); font-size: 18px; line-height: 1.65; }
.split-intro { max-width: none; display: grid; grid-template-columns: 1fr .85fr; align-items: end; gap: 48px; }
.split-intro p { padding-bottom: 10px; }
.narrow-shell { width: min(760px, calc(100% - 40px)); }
.narrow-content { width: min(880px, calc(100% - 40px)); }

.form-card { padding: clamp(24px,5vw,46px); border: 1px solid var(--line); border-radius: 24px; background: rgba(21,16,29,.88); box-shadow: 0 30px 90px rgba(0,0,0,.25); }
.form-card h2 { margin: 10px 0 28px; font: 600 38px Georgia,serif; }
.form-grid { display: grid; gap: 20px; }
.form-grid.two-columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
.form-field { display: grid; gap: 8px; margin-bottom: 19px; }
.form-field > label { color: #e5dbe5; font-weight: 700; font-size: 14px; }
.form-field input, .form-field select, .form-field textarea, .filter-bar input, .filter-bar select, .message-composer textarea { width: 100%; border: 1px solid var(--line); border-radius: 12px; outline: 0; color: var(--ivory); background: rgba(255,255,255,.045); }
.form-field input, .form-field select, .filter-bar input, .filter-bar select { min-height: 50px; padding: 0 14px; }
.form-field textarea { min-height: 140px; padding: 14px; resize: vertical; line-height: 1.55; }
.form-field select, .filter-bar select { color-scheme: dark; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus, .filter-bar input:focus, .filter-bar select:focus, .message-composer textarea:focus { border-color: rgba(244,43,126,.62); box-shadow: 0 0 0 3px rgba(244,43,126,.1); }
.form-field small { color: #928794; line-height: 1.45; }
.field-error { display: block; color: #ff8a78; font-size: 13px; line-height: 1.4; }
.has-error input, .has-error select, .has-error textarea { border-color: rgba(255,107,86,.72); }
.check-field { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; margin: 14px 0; color: #c9becb; line-height: 1.5; }
.check-field input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--pink); }
.check-field label { flex: 1; }
.check-field .field-error { flex-basis: 100%; margin-left: 28px; }
.form-submit, .filter-bar button, .message-composer input[type="submit"] { min-height: 52px; padding: 0 24px; border: 0; border-radius: 12px; color: white; background: linear-gradient(110deg,var(--pink),var(--coral)); font-weight: 800; }
.form-submit { width: 100%; margin-top: 18px; }
.form-switch { margin: 23px 0 0; color: var(--muted); text-align: center; }
.form-switch a, .login-hint a { color: #ff8eb0; font-weight: 700; }

.filter-bar { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 14px; margin-bottom: 34px; padding: 17px; border: 1px solid var(--line); border-radius: 18px; background: rgba(21,16,29,.75); }
.filter-bar label { display: grid; gap: 7px; color: #d9ceda; font-weight: 700; font-size: 13px; }
.filter-bar button { min-width: 130px; }

.member-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.member-card { overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: linear-gradient(145deg,rgba(29,20,40,.96),rgba(15,11,24,.95)); box-shadow: 0 26px 75px rgba(0,0,0,.2); }
.member-avatar, .profile-detail-avatar, .conversation-avatar { display: grid; place-items: center; color: white; background: radial-gradient(circle at 30% 20%,rgba(255,255,255,.25),transparent 24%), linear-gradient(135deg,#af1d61,#fa6554); font-family: Georgia,serif; font-weight: 700; }
.member-avatar { min-height: 265px; font-size: 72px; }
.member-card-body { padding: 23px; }
.member-title { display: flex; align-items: center; gap: 10px; }
.member-title h1, .member-title h2, .member-title h3 { margin: 0; font: 600 29px Georgia,serif; }
.status-dot { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: 999px; color: #8bf3cb; background: rgba(89,230,177,.1); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.status-dot::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--mint); }
.member-meta { margin: 9px 0 15px; color: #a99eaa; font-size: 13px; }
.member-card-body > p:not(.member-meta) { min-height: 72px; color: #c6bbc7; line-height: 1.55; }
.card-action { min-height: 44px; padding: 0 16px; color: white; background: linear-gradient(110deg,var(--pink),var(--coral)); font-size: 13px; }
.secondary-card-action { color: var(--ivory); border: 1px solid var(--line); background: rgba(255,255,255,.04); }
.card-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.empty-state { padding: 50px 28px; border: 1px dashed rgba(212,181,139,.25); border-radius: 20px; background: rgba(255,255,255,.02); text-align: center; }
.empty-state h2 { margin: 0 0 12px; font: 600 35px Georgia,serif; }
.empty-state p { max-width: 620px; margin: 0 auto 23px; color: var(--muted); line-height: 1.6; }

.profile-detail-shell { width: min(980px, calc(100% - 40px)); }
.profile-detail-card { display: grid; grid-template-columns: 310px 1fr; overflow: hidden; border: 1px solid var(--line); border-radius: 28px; background: rgba(21,16,29,.9); }
.profile-detail-avatar { min-height: 520px; font-size: 100px; }
.profile-detail-content { padding: clamp(28px,5vw,58px); }
.profile-detail-content .member-title h1 { font-size: clamp(43px,6vw,66px); }
.profile-facts { display: flex; flex-wrap: wrap; gap: 9px; margin: 25px 0 36px; }
.profile-facts span, .visibility-badge { padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; color: #d9ced9; background: rgba(255,255,255,.035); font-size: 12px; }
.profile-detail-content h2 { margin: 0 0 12px; font: 600 27px Georgia,serif; }
.profile-bio { margin: 0 0 35px; color: #c7bcc8; line-height: 1.75; white-space: pre-line; }
.login-hint { color: var(--muted); }

.dashboard-shell { display: grid; grid-template-columns: 330px 1fr; align-items: start; gap: 28px; }
.dashboard-summary { position: sticky; top: 108px; display: grid; gap: 14px; padding: 25px; border: 1px solid var(--line); border-radius: 22px; background: rgba(21,16,29,.9); }
.dashboard-summary .profile-detail-avatar { min-height: 240px; border-radius: 17px; font-size: 68px; }
.dashboard-summary h1 { margin: 7px 0 0; font: 600 34px Georgia,serif; }
.dashboard-summary p { margin: 0; color: var(--muted); }
.dashboard-form-card { min-width: 0; }

.conversation-list { display: grid; gap: 11px; }
.conversation-row { display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 15px; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: rgba(21,16,29,.83); }
.conversation-avatar { width: 58px; height: 58px; border-radius: 16px; font-size: 20px; }
.conversation-copy { min-width: 0; display: grid; gap: 6px; }
.conversation-copy small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.unread-badge { display: grid; place-items: center; min-width: 25px; height: 25px; padding: 0 7px; border-radius: 999px; color: white; background: var(--pink); font-size: 12px; font-weight: 800; }

.chat-page-shell { width: min(900px, calc(100% - 40px)); }
.chat-page { overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: rgba(21,16,29,.92); }
.chat-page-header { display: flex; align-items: center; gap: 16px; padding: 20px; border-bottom: 1px solid var(--line); }
.chat-page-header h1 { margin: 0; font: 600 30px Georgia,serif; }
.chat-page-header p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.consent-note { padding: 11px 18px; color: #aaa0aa; background: rgba(255,255,255,.025); border-bottom: 1px solid var(--line); font-size: 12px; text-align: center; }
.message-stream { min-height: 440px; max-height: 620px; overflow-y: auto; padding: 24px; }
.message-bubble { width: fit-content; max-width: min(76%,620px); margin: 12px 0; padding: 12px 15px 9px; border-radius: 16px; }
.message-bubble p { margin: 0; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.message-bubble small { display: block; margin-top: 6px; font-size: 9px; opacity: .7; }
.message-own { margin-left: auto; color: white; background: linear-gradient(115deg,#c82067,#eb5f52); border-bottom-right-radius: 4px; }
.message-own small { text-align: right; }
.message-other { color: #e7dde7; background: rgba(255,255,255,.07); border-bottom-left-radius: 4px; }
.message-composer { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 16px; border-top: 1px solid var(--line); }
.message-composer textarea { min-height: 58px; max-height: 170px; padding: 14px; resize: vertical; }
.message-composer input[type="submit"] { align-self: end; }
.message-composer .field-error { grid-column: 1 / -1; }

.app-footer { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 50px 0; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 26px; border-top: 1px solid var(--line); }
.app-footer p { margin: 0; color: var(--muted); }
.app-footer > div { display: flex; gap: 20px; }
.app-footer > div a { color: #c7bcc7; }
.app-footer small { grid-column: 1 / -1; color: #7f7580; }

@media (max-width: 980px) {
  .member-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-shell { grid-template-columns: 1fr; }
  .dashboard-summary { position: static; }
  .profile-detail-card { grid-template-columns: 240px 1fr; }
  .profile-detail-avatar { min-height: 470px; }
}

@media (max-width: 760px) {
  .app-header { min-height: 76px; padding-inline: 20px; }
  .landing-page .app-header { position: absolute; }
  .app-header .menu-button { display: flex; }
  .app-header .main-nav { position: absolute; top: 76px; left: 12px; right: 12px; display: none; align-items: stretch; flex-direction: column; gap: 3px; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: #15101d; box-shadow: 0 25px 60px rgba(0,0,0,.55); }
  .app-header .main-nav.is-open { display: flex; }
  .nav-form, .nav-form button, .nav-link-button { width: 100%; }
  .page-shell { width: min(100% - 28px,1180px); padding: 55px 0 80px; }
  .split-intro, .form-grid.two-columns, .filter-bar, .member-grid, .profile-detail-card { grid-template-columns: 1fr; }
  .filter-bar button { width: 100%; }
  .member-avatar { min-height: 235px; }
  .profile-detail-avatar { min-height: 280px; }
  .dashboard-summary .profile-detail-avatar { min-height: 210px; }
  .message-bubble { max-width: 88%; }
  .message-composer { grid-template-columns: 1fr; }
  .app-footer { grid-template-columns: 1fr; }
  .app-footer > div { flex-wrap: wrap; }
  .app-footer small { grid-column: auto; }
  .flash-stack { top: 88px; right: 14px; width: calc(100% - 28px); }
}

/* Profil-Erweiterungen */
.form-field { align-self: start; }
.form-field input:not([type="checkbox"]):not([type="radio"]),
.form-field select { height: 50px; min-height: 50px; max-height: 50px; }
.identity-extra[hidden] { display: none !important; }

.flash { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; transition: opacity .22s ease, transform .22s ease; }
.flash.is-hiding { opacity: 0; transform: translateY(-8px); }
.flash-close { flex: 0 0 auto; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 8px; color: #d9ced9; background: rgba(255,255,255,.07); font-size: 20px; line-height: 1; cursor: pointer; }
.flash-close:hover { background: rgba(255,255,255,.14); }

.dashboard-content { min-width: 0; display: grid; gap: 28px; }
.dashboard-main-photo { overflow: hidden; min-height: 240px; border-radius: 17px; background: #1c1624; }
.dashboard-main-photo img { width: 100%; height: 240px; object-fit: cover; }
.section-heading-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.section-heading-row h2 { margin-bottom: 8px; }
.section-note { max-width: 850px; margin: 0 0 24px; color: var(--muted); line-height: 1.6; }
.photo-counter { display: grid; place-items: center; min-width: 58px; height: 40px; border: 1px solid var(--line); border-radius: 999px; color: #f3e9f2; background: rgba(255,255,255,.04); font-weight: 800; }
.profile-photo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.profile-photo-card { position: relative; overflow: hidden; min-width: 0; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.025); }
.profile-photo-card > img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; }
.profile-photo-badges { position: absolute; top: 10px; left: 10px; right: 10px; display: flex; flex-wrap: wrap; gap: 6px; pointer-events: none; }
.profile-photo-badges span { padding: 5px 8px; border-radius: 999px; color: white; background: rgba(8,7,14,.78); backdrop-filter: blur(10px); font-size: 10px; font-weight: 800; }
.profile-photo-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; padding: 10px; }
.profile-photo-actions form { margin: 0; }
.photo-action { width: 100%; min-height: 38px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 9px; color: #e7dce7; background: rgba(255,255,255,.04); font-size: 11px; font-weight: 750; cursor: pointer; }
.photo-action:hover { border-color: rgba(244,43,126,.5); background: rgba(244,43,126,.08); }
.danger-action { color: #ff9b8d; }
.photo-upload-tile { display: grid; place-items: center; align-content: center; min-height: 280px; padding: 24px; border: 1px dashed rgba(244,43,126,.45); border-radius: 16px; color: #eee3ee; background: rgba(244,43,126,.035); text-align: center; cursor: pointer; }
.photo-upload-tile:hover { border-color: rgba(244,43,126,.8); background: rgba(244,43,126,.07); }
.photo-upload-tile small { margin-top: 7px; color: var(--muted); }
.upload-plus { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 14px; border-radius: 50%; color: white; background: linear-gradient(120deg,var(--pink),var(--coral)); font-size: 34px; }
.photo-upload-error { margin-top: 14px; }

.availability-editor { margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--line); }
.availability-heading { display: grid; grid-template-columns: 1fr .9fr; align-items: end; gap: 28px; margin-bottom: 20px; }
.availability-heading h3 { margin: 8px 0 0; font: 600 31px Georgia,serif; }
.availability-heading p { margin: 0; color: var(--muted); line-height: 1.55; }
.availability-grid { display: grid; gap: 9px; }
.availability-row { display: grid; grid-template-columns: minmax(160px,1fr) minmax(130px,.65fr) minmax(130px,.65fr); align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); }
.availability-row > label:not(.day-toggle) { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; }
.availability-row input[type="time"] { width: 100%; height: 42px; padding: 0 10px; border: 1px solid var(--line); border-radius: 9px; color: var(--ivory); background: rgba(255,255,255,.045); color-scheme: dark; }
.day-toggle { display: flex; align-items: center; gap: 10px; color: #e8dee8; font-weight: 750; }
.day-toggle input { width: 18px; height: 18px; accent-color: var(--pink); }
.schedule-errors { display: grid; gap: 5px; margin-bottom: 14px; }

.photo-editor { position: fixed; z-index: 500; inset: 0; padding: 20px; overflow-y: auto; background: rgba(4,3,9,.88); backdrop-filter: blur(13px); }
.photo-editor[hidden] { display: none; }
.photo-editor-dialog { width: min(1040px,100%); margin: 20px auto; padding: clamp(20px,4vw,34px); border: 1px solid var(--line); border-radius: 24px; background: #15101d; box-shadow: 0 35px 120px rgba(0,0,0,.65); }
.photo-editor-header { display: flex; justify-content: space-between; gap: 20px; }
.photo-editor-header h2 { margin: 7px 0 0; font: 600 38px Georgia,serif; }
.photo-editor-dialog > p { color: var(--muted); line-height: 1.55; }
.editor-close { width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 12px; color: white; background: rgba(255,255,255,.04); font-size: 28px; cursor: pointer; }
.editor-canvas-wrap { display: grid; place-items: center; min-height: 380px; max-height: 66vh; overflow: auto; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: #09070e; }
#photo-editor-canvas { display: block; max-width: 100%; max-height: 62vh; box-shadow: 0 10px 45px rgba(0,0,0,.4); touch-action: none; }
#photo-editor-canvas.is-pixelating { cursor: crosshair; }
.editor-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.editor-toolbar button { min-height: 40px; padding: 0 13px; border: 1px solid var(--line); border-radius: 9px; color: #e8dee8; background: rgba(255,255,255,.04); font-weight: 700; cursor: pointer; }
.editor-toolbar button[aria-pressed="true"] { border-color: var(--pink); background: rgba(244,43,126,.16); }
.brush-control { display: flex; align-items: center; gap: 8px; padding: 0 10px; color: var(--muted); font-size: 12px; }
.brush-control input { accent-color: var(--pink); }
.sensitive-toggle { display: flex; align-items: center; gap: 10px; margin-top: 16px; color: #d7ccd8; }
.sensitive-toggle input { width: 18px; height: 18px; accent-color: var(--pink); }
.editor-status { min-height: 24px; margin-top: 12px; color: #8bf3cb; }
.editor-status.is-error { color: #ff8a78; }
.editor-footer { display: flex; justify-content: flex-end; gap: 10px; margin-top: 12px; }
.editor-footer button { cursor: pointer; }
.editor-footer button:disabled { opacity: .55; cursor: wait; }

.member-avatar img { width: 100%; height: 265px; object-fit: cover; display: block; }
.member-avatar.sensitive-media { position: relative; overflow: hidden; }
.member-avatar.sensitive-media img, .profile-gallery-item.sensitive-media:not(.is-revealed) img { filter: blur(24px) brightness(.7); transform: scale(1.08); }
.sensitive-label { position: absolute; inset: auto 14px 14px; padding: 8px 11px; border-radius: 10px; color: white; background: rgba(8,7,14,.82); font: 700 12px/1.2 system-ui,sans-serif; text-align: center; }
.mini-facts { display: flex; flex-wrap: wrap; gap: 6px; margin: -4px 0 12px; }
.mini-facts span { padding: 5px 8px; border: 1px solid var(--line); border-radius: 999px; color: #cfc3cf; font-size: 10px; }
.expanded-filter { grid-template-columns: 1fr 1fr 1fr auto; }

.profile-detail-card { grid-template-columns: minmax(300px,42%) 1fr; }
.profile-gallery { display: grid; align-content: start; gap: 6px; padding: 6px; background: #0b0811; }
.profile-gallery-item { position: relative; overflow: hidden; min-height: 200px; border-radius: 14px; background: #1a1422; }
.profile-gallery-item:first-child { min-height: 500px; }
.profile-gallery-item img { width: 100%; height: 100%; min-height: inherit; object-fit: cover; display: block; transition: filter .25s ease, transform .25s ease; }
.sensitive-reveal { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%,-50%); min-height: 44px; padding: 0 15px; border: 1px solid rgba(255,255,255,.22); border-radius: 11px; color: white; background: rgba(8,7,14,.84); font-weight: 800; cursor: pointer; }
.profile-gallery-item.is-revealed .sensitive-reveal { display: none; }
.public-availability { margin: 0 0 34px; }
.public-availability > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.public-availability span { display: grid; gap: 3px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 11px; color: var(--muted); font-size: 12px; }
.public-availability strong { color: #e7dce7; }

@media (max-width: 980px) {
  .profile-photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .expanded-filter { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .expanded-filter button { width: 100%; }
}

@media (max-width: 760px) {
  .profile-photo-grid { grid-template-columns: 1fr 1fr; }
  .availability-heading, .availability-row, .expanded-filter { grid-template-columns: 1fr; }
  .availability-row > label:not(.day-toggle) { grid-template-columns: 42px 1fr; }
  .profile-detail-card { grid-template-columns: 1fr; }
  .profile-gallery-item:first-child { min-height: 390px; }
  .public-availability > div { grid-template-columns: 1fr; }
  .editor-toolbar { align-items: stretch; }
  .editor-toolbar button { flex: 1 1 calc(50% - 8px); }
  .brush-control { width: 100%; }
  .editor-footer { flex-direction: column-reverse; }
  .editor-footer .primary-action, .editor-footer .secondary-action { width: 100%; }
}
.expanded-filter { grid-template-columns: repeat(4,minmax(0,1fr)) auto; }
@media (max-width: 1180px) { .expanded-filter { grid-template-columns: repeat(2,minmax(0,1fr)); } }

/* Mitgliedschaft, Verifizierung und Moderation */
.flash-warning { border-color: rgba(255,190,92,.58); background: #211913; }
.member-title { flex-wrap: wrap; }
.profile-badge-row { display: flex; flex-wrap: wrap; gap: 8px; }
.verification-badge, .plan-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 27px; padding: 5px 9px; border: 1px solid var(--line); border-radius: 999px; font-size: 10px; font-weight: 850; letter-spacing: .035em; white-space: nowrap; }
.verification-verified { color: #8bf3cb; border-color: rgba(89,230,177,.38); background: rgba(89,230,177,.09); }
.verification-pending { color: #ffd38f; border-color: rgba(255,190,92,.38); background: rgba(255,190,92,.08); }
.verification-rejected { color: #ff9b8d; border-color: rgba(255,107,86,.38); background: rgba(255,107,86,.08); }
.verification-unverified { color: #b8adb9; background: rgba(255,255,255,.035); }
.plan-premium { color: #ffd5ea; border-color: rgba(244,43,126,.42); background: rgba(244,43,126,.11); }
.plan-vip { color: #ffe1a7; border-color: rgba(212,181,139,.46); background: linear-gradient(120deg,rgba(212,181,139,.13),rgba(244,43,126,.08)); }

.account-status-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.account-status-card { padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: rgba(21,16,29,.87); }
.account-status-card h2 { margin: 8px 0 0; font: 600 30px Georgia,serif; }
.account-status-card p { min-height: 48px; color: var(--muted); line-height: 1.55; }
.account-status-card a { color: #ff91b1; font-weight: 750; }
.status-card-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }

.membership-shell { max-width: 1180px; }
.membership-current { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 28px; padding: 25px; border: 1px solid rgba(89,230,177,.28); border-radius: 20px; background: rgba(89,230,177,.05); }
.membership-current h2 { margin: 10px 0 7px; font: 600 34px Georgia,serif; }
.membership-current p { margin: 0; color: var(--muted); }
.membership-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.membership-card { display: flex; flex-direction: column; padding: 28px; border: 1px solid var(--line); border-radius: 23px; background: rgba(21,16,29,.88); }
.membership-card.featured-membership { border-color: rgba(212,181,139,.35); box-shadow: 0 28px 80px rgba(212,181,139,.07); }
.membership-card h2 { margin: 17px 0 0; font: 600 38px Georgia,serif; }
.membership-price { margin: 13px 0 22px; font-size: 31px; font-weight: 850; }
.membership-price small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; font-weight: 500; }
.membership-card ul { min-height: 120px; margin: 0 0 24px; padding-left: 20px; color: #c9beca; line-height: 1.8; }
.beta-plan-form { margin-top: auto; }
.beta-plan-form .check-field { font-size: 12px; }
.payment-state-note { margin-top: auto; padding: 14px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: rgba(255,255,255,.025); line-height: 1.5; }
.beta-explanation { margin-top: 28px; padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.025); }
.beta-explanation h2 { margin: 0 0 10px; font: 600 29px Georgia,serif; }
.beta-explanation p { margin: 0; color: var(--muted); line-height: 1.7; }

.verification-shell { max-width: 1040px; }
.verification-status-card { margin-bottom: 25px; padding: 26px; border: 1px solid var(--line); border-radius: 21px; background: rgba(21,16,29,.87); }
.verification-status-card h2 { margin: 12px 0 7px; font: 600 34px Georgia,serif; }
.verification-status-card p { margin: 0; color: var(--muted); line-height: 1.6; }
.verification-form-card h2 { margin-bottom: 10px; }
.verification-upload-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.verification-upload-grid input[type="file"] { height: auto !important; min-height: 112px !important; padding: 17px; }

.admin-shell { max-width: 1180px; }
.admin-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 17px; margin-bottom: 24px; }
.admin-stats article { display: grid; gap: 7px; padding: 24px; border: 1px solid var(--line); border-radius: 19px; background: rgba(21,16,29,.87); }
.admin-stats strong { font: 600 46px Georgia,serif; }
.admin-stats span { color: var(--muted); }
.admin-panel { margin-bottom: 24px; padding: 27px; border: 1px solid var(--line); border-radius: 22px; background: rgba(21,16,29,.87); }
.admin-panel h1, .admin-panel h2 { margin: 8px 0 20px; font: 600 38px Georgia,serif; }
.admin-table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th, .admin-table td { padding: 14px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.admin-table th { color: #9d929f; font-size: 11px; text-transform: uppercase; letter-spacing: .07em; }
.back-link { display: inline-flex; margin-bottom: 20px; color: #ff91b1; font-weight: 750; }
.review-meta { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 24px; }
.review-meta span { padding: 8px 10px; border: 1px solid var(--line); border-radius: 999px; color: #c8bdc9; font-size: 12px; }
.verification-doc-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.verification-doc-grid figure { overflow: hidden; margin: 0; border: 1px solid var(--line); border-radius: 16px; background: #0e0b14; }
.verification-doc-grid img { width: 100%; height: 300px; object-fit: contain; background: #050508; }
.verification-doc-grid figcaption { padding: 12px; color: #d8cdd8; text-align: center; font-size: 12px; }
.verification-decision-form { max-width: 760px; margin-top: 28px; }
.verification-decision-form fieldset { display: flex; gap: 20px; margin: 0 0 18px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; }
.verification-decision-form legend { padding: 0 8px; color: #ddd2dd; font-weight: 750; }
.verification-decision-form fieldset label { display: flex; align-items: center; gap: 8px; }
.verification-decision-form input[type="radio"] { width: 18px; height: 18px; accent-color: var(--pink); }
.review-complete { padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.025); }
.review-complete h2 { margin-top: 0; }

@media (max-width: 900px) {
  .membership-grid, .verification-upload-grid, .verification-doc-grid { grid-template-columns: 1fr; }
  .account-status-grid, .admin-stats { grid-template-columns: 1fr; }
  .verification-doc-grid img { height: auto; max-height: 480px; }
}


/* Individuelle, zugängliche Verifizierungs-Uploads */
.secure-upload-field { display: grid; gap: 9px; min-width: 0; }
.secure-upload-title { color: #e8dee8; font-size: 14px; font-weight: 800; }
.visually-hidden-file { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.secure-upload-card { min-height: 238px; padding: 18px; display: grid; grid-template-rows: 82px 1fr auto; gap: 14px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018)); cursor: pointer; transition: border-color .18s ease, transform .18s ease, background .18s ease, box-shadow .18s ease; }
.secure-upload-card:hover, .secure-upload-card:focus-within, .secure-upload-card.is-dragging { transform: translateY(-2px); border-color: rgba(244,43,126,.62); background: rgba(244,43,126,.055); box-shadow: 0 20px 48px rgba(0,0,0,.23), 0 0 0 3px rgba(244,43,126,.08); }
.secure-upload-preview { position: relative; overflow: hidden; display: grid; place-items: center; border: 1px dashed rgba(255,255,255,.18); border-radius: 14px; background: radial-gradient(circle at 50% 0,rgba(244,43,126,.16),transparent 70%),rgba(7,7,17,.55); }
.secure-upload-preview img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.secure-upload-icon { font-size: 32px; color: #ff8eb0; }
.secure-upload-copy { display: grid; align-content: start; gap: 7px; min-width: 0; }
.secure-upload-copy strong { color: var(--ivory); font-size: 17px; }
.secure-upload-copy small { min-height: 38px; color: var(--muted); line-height: 1.45; }
.secure-upload-filename { overflow: hidden; color: #9f93a0; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.secure-upload-action { min-height: 42px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; border-radius: 11px; color: white; background: linear-gradient(110deg,var(--pink),var(--coral)); font-size: 13px; font-weight: 850; }
.secure-upload-field.has-file .secure-upload-card { border-color: rgba(89,230,177,.42); }
.secure-upload-field.has-file .secure-upload-action { color: #bdf9df; background: rgba(89,230,177,.11); }
.secure-upload-field.has-error .secure-upload-card { border-color: rgba(255,107,86,.72); }

.search-index-consent { padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); }
.search-index-consent small { flex-basis: 100%; margin-left: 28px; color: var(--muted); }
.danger-zone { margin-top: 24px; border-color: rgba(255,107,86,.34); }
.danger-zone h2 { margin-bottom: 10px; }
.danger-zone > p { color: var(--muted); line-height: 1.65; }
.danger-zone details { margin-top: 18px; }
.danger-zone summary { width: fit-content; padding: 12px 16px; border: 1px solid rgba(255,107,86,.42); border-radius: 11px; color: #ff9b8d; cursor: pointer; font-weight: 800; }
.danger-zone details[open] summary { margin-bottom: 20px; }
.danger-submit { min-height: 50px; padding: 0 20px; border: 1px solid rgba(255,107,86,.55); border-radius: 12px; color: white; background: linear-gradient(110deg,#a72a38,#ef5a4c); font-weight: 850; cursor: pointer; }
.membership-price-beta { color: #9af0cf; }
.membership-price-pending { color: #d5c9d5; font-size: 26px; }
@media (max-width: 900px) { .secure-upload-card { min-height: 210px; grid-template-columns: 88px 1fr; grid-template-rows: auto auto; } .secure-upload-preview { grid-row: 1 / 3; } .secure-upload-action { grid-column: 2; } }
@media (max-width: 560px) { .secure-upload-card { grid-template-columns: 1fr; grid-template-rows: 110px auto auto; } .secure-upload-preview { grid-row: auto; } .secure-upload-action { grid-column: auto; } }


/* SEO-Landingpages, Ratgeber und indexierbare Ortsseiten */
.seo-page { min-height: 100vh; background: radial-gradient(circle at 82% 8%,rgba(244,43,126,.11),transparent 28%),#09070e; }
.seo-breadcrumbs { width: min(100% - 40px,1280px); margin: 0 auto; padding: 126px 0 18px; display: flex; flex-wrap: wrap; gap: 9px; color: #948997; font-size: 12px; }
.seo-breadcrumbs a { color: #d1c6d1; }
.seo-breadcrumbs a:hover { color: #ff91b1; }
.seo-hero { width: min(100% - 40px,1280px); margin: 0 auto; padding: 58px 0 76px; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); gap: clamp(30px,6vw,90px); align-items: center; }
.seo-hero-copy h1 { max-width: 920px; margin: 0; font: 600 clamp(52px,6.2vw,88px)/.98 Georgia,serif; letter-spacing: -.052em; }
.seo-hero-copy > p { max-width: 760px; margin: 27px 0 0; color: var(--muted); font-size: clamp(17px,1.6vw,21px); line-height: 1.68; }
.seo-hero-copy .hero-actions { margin-top: 32px; }
.seo-trust-card { padding: 30px; border: 1px solid rgba(244,43,126,.28); border-radius: 25px; background: linear-gradient(145deg,rgba(244,43,126,.08),rgba(255,255,255,.025)); box-shadow: 0 30px 80px rgba(0,0,0,.25); }
.seo-trust-card .adult-mark { display: grid; place-items: center; width: 62px; min-width: 62px; height: 62px; padding: 0 10px; border: 1px solid rgba(244,43,126,.45); border-radius: 18px; color: #fff; background: rgba(244,43,126,.12); font-weight: 850; }
.seo-trust-card h2 { margin: 23px 0 15px; font: 600 31px/1.1 Georgia,serif; }
.seo-trust-card p { color: var(--muted); line-height: 1.65; }
.seo-trust-card ul { margin: 0; padding: 0; list-style: none; }
.seo-trust-card li { position: relative; padding: 11px 0 11px 27px; color: #d2c7d2; border-bottom: 1px solid var(--line); line-height: 1.45; }
.seo-trust-card li:last-child { border-bottom: 0; }
.seo-trust-card li::before { content: "✓"; position: absolute; left: 0; color: var(--mint); font-weight: 800; }
.seo-intro { padding: 0 20px 86px; }
.seo-intro p { max-width: 980px; margin: 0 auto; padding: 35px 40px; border: 1px solid var(--line); border-radius: 22px; color: #ded4de; background: rgba(255,255,255,.026); font: 500 clamp(20px,2vw,28px)/1.55 Georgia,serif; text-align: center; }
.seo-content-layout { width: min(100% - 40px,1180px); margin: 0 auto; display: grid; grid-template-columns: minmax(0,1fr) 270px; gap: 75px; align-items: start; }
.seo-article { min-width: 0; }
.seo-article section { position: relative; padding: 0 0 66px 72px; border-left: 1px solid var(--line); }
.seo-article section:last-child { padding-bottom: 0; }
.seo-section-number { position: absolute; left: -23px; top: -3px; display: grid; place-items: center; width: 45px; height: 45px; border: 1px solid rgba(244,43,126,.42); border-radius: 50%; color: #ff9ab7; background: #100b16; font-size: 11px; font-weight: 850; letter-spacing: .09em; }
.seo-article h2 { margin: 0 0 20px; font: 600 clamp(34px,4vw,52px)/1.08 Georgia,serif; letter-spacing: -.035em; }
.seo-article p { margin: 0 0 18px; color: #c1b6c2; font-size: 17px; line-height: 1.78; }
.seo-check-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; margin: 27px 0 0; padding: 0; list-style: none; }
.seo-check-list li { position: relative; min-height: 58px; padding: 17px 17px 17px 46px; border: 1px solid var(--line); border-radius: 14px; color: #ddd3dd; background: rgba(255,255,255,.025); line-height: 1.45; }
.seo-check-list li::before { content: "✓"; position: absolute; left: 17px; color: var(--mint); font-weight: 900; }
.seo-side-nav { position: sticky; top: 112px; display: grid; gap: 4px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: rgba(16,12,23,.94); }
.seo-side-nav strong { margin-bottom: 10px; color: #fff; }
.seo-side-nav a { padding: 10px 11px; border-radius: 9px; color: #a99eaa; font-size: 12px; line-height: 1.4; }
.seo-side-nav a:hover { color: #fff; background: rgba(255,255,255,.045); }
.seo-side-nav .seo-side-cta { margin-top: 12px; color: #fff; background: linear-gradient(110deg,var(--pink),var(--coral)); font-weight: 800; text-align: center; }
.seo-section-heading { max-width: 900px; margin-bottom: 35px; }
.seo-section-heading h2 { margin: 0; font: 600 clamp(40px,5vw,64px)/1 Georgia,serif; letter-spacing: -.045em; }
.seo-section-heading > p { color: var(--muted); line-height: 1.7; }
.seo-faq, .seo-related, .city-profile-section { width: min(100% - 40px,1180px); margin: 110px auto 0; }
.seo-faq-list { display: grid; gap: 12px; }
.seo-faq details { border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.025); }
.seo-faq summary { padding: 21px 25px; color: #eee5ee; cursor: pointer; font-weight: 800; list-style: none; }
.seo-faq summary::-webkit-details-marker { display: none; }
.seo-faq summary::after { content: "+"; float: right; color: #ff8cac; font-size: 21px; }
.seo-faq details[open] summary::after { content: "−"; }
.seo-faq details p { margin: 0; padding: 0 25px 23px; color: var(--muted); line-height: 1.7; }
.seo-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.seo-card-grid article { display: flex; flex-direction: column; min-height: 285px; padding: 26px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(145deg,rgba(255,255,255,.038),rgba(255,255,255,.016)); }
.seo-card-grid article > span { color: #f18ba4; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.seo-card-grid h2, .seo-card-grid h3 { margin: 20px 0 12px; font: 600 30px/1.08 Georgia,serif; }
.seo-card-grid p { color: var(--muted); line-height: 1.65; }
.seo-card-grid a { margin-top: auto; color: #ff91b1; font-weight: 800; }
.seo-final-cta { margin-top: 120px; padding: 105px 20px 115px; border-top: 1px solid var(--line); background: radial-gradient(circle at 50% 45%,rgba(244,43,126,.13),transparent 35%),#08060c; text-align: center; }
.seo-final-cta h2 { max-width: 900px; margin: 0 auto; font: 600 clamp(48px,6vw,76px)/1 Georgia,serif; letter-spacing: -.05em; }
.seo-final-cta p { max-width: 680px; margin: 25px auto 32px; color: var(--muted); line-height: 1.7; }
.seo-hub-hero { padding-bottom: 96px; }
.seo-guide-overview { margin-top: 30px; }
.city-seo-hero { padding-bottom: 55px; }
.city-profile-section .member-grid { margin-top: 30px; }
.seo-city-links { margin: 0 0 28px; padding: 24px; display: grid; grid-template-columns: minmax(220px,.55fr) minmax(0,1.45fr); gap: 28px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.025); }
.seo-city-links h2 { margin: 0; font: 600 29px Georgia,serif; }
.seo-city-chip-list { display: flex; flex-wrap: wrap; gap: 10px; align-content: center; }
.seo-city-chip-list a { display: inline-flex; align-items: center; gap: 9px; min-height: 40px; padding: 8px 12px 8px 15px; border: 1px solid var(--line); border-radius: 999px; color: #ddd3dd; background: rgba(255,255,255,.025); font-size: 12px; }
.seo-city-chip-list a:hover { border-color: rgba(244,43,126,.5); }
.seo-city-chip-list span { display: grid; place-items: center; min-width: 23px; height: 23px; padding: 0 6px; border-radius: 999px; color: #07150f; background: var(--mint); font-size: 10px; font-weight: 900; }
.seo-discovery-section { background: linear-gradient(180deg,#0e0a15,#09070e); }
.seo-home-grid { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.seo-home-grid > a { min-height: 255px; padding: 26px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 21px; background: rgba(255,255,255,.025); transition: transform .2s ease,border-color .2s ease,background .2s ease; }
.seo-home-grid > a:hover { transform: translateY(-4px); border-color: rgba(244,43,126,.38); background: rgba(244,43,126,.045); }
.seo-home-grid > a > span { color: #f18ba4; font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .12em; }
.seo-home-grid h3 { margin: 22px 0 12px; font: 600 31px/1.08 Georgia,serif; }
.seo-home-grid p { color: var(--muted); line-height: 1.6; }
.seo-home-grid b { margin-top: auto; color: #ff91b1; font-size: 13px; }
.app-footer > div { flex-wrap: wrap; justify-content: flex-end; max-width: 720px; }

@media (max-width: 980px) {
  .seo-hero { grid-template-columns: 1fr; }
  .seo-trust-card { max-width: 700px; }
  .seo-content-layout { grid-template-columns: 1fr; }
  .seo-side-nav { position: static; order: -1; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .seo-side-nav strong, .seo-side-nav .seo-side-cta { grid-column: 1 / -1; }
  .seo-card-grid, .seo-home-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .seo-city-links { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .seo-breadcrumbs { padding-top: 105px; }
  .seo-hero { padding-top: 34px; }
  .seo-hero-copy h1 { font-size: clamp(46px,13vw,66px); }
  .seo-intro p { padding: 27px 22px; text-align: left; }
  .seo-article section { padding-left: 43px; }
  .seo-section-number { left: -19px; width: 37px; height: 37px; }
  .seo-check-list, .seo-card-grid, .seo-home-grid { grid-template-columns: 1fr; }
  .seo-side-nav { grid-template-columns: 1fr; }
  .seo-card-grid article { min-height: 240px; }
  .seo-faq, .seo-related, .city-profile-section { margin-top: 80px; }
  .seo-final-cta { margin-top: 90px; padding-top: 80px; }
}
