@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:ital,opsz,wght@1,9..144,600&display=swap');

:root {
    --ink: #173b3b;
    --muted: #637879;
    --teal: #116466;
    --teal-dark: #0b4d4f;
    --teal-soft: #dcefee;
    --coral: #f06d5b;
    --coral-dark: #dc5948;
    --yellow: #f3b63a;
    --cream: #fffaf2;
    --paper: #ffffff;
    --line: #dfe8e5;
    --soft: #f2f7f5;
    --danger: #bc3d3d;
    --shadow: 0 18px 60px rgba(23, 59, 59, .11);
    --shadow-small: 0 8px 30px rgba(23, 59, 59, .09);
    --radius: 24px;
    --font-sans: 'DM Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-serif: 'Fraunces', Georgia, serif;
    --control-bg: #ffffff;
    --control-border: #d5e1df;
    --control-placeholder: #879795;
    --control-disabled-bg: #edf2f0;
    --control-disabled-text: #879795;
    --select-arrow: 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 1 5 5 5-5' fill='none' stroke='%23637879' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --calendar-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cg fill='none' stroke='%23637879' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.25' y='3.75' width='13.5' height='12' rx='2'/%3E%3Cpath d='M5.25 1.75v4M12.75 1.75v4M2.25 7.25h13.5'/%3E%3C/g%3E%3C/svg%3E");
    --time-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cg fill='none' stroke='%23637879' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='9' r='6.75'/%3E%3Cpath d='M9 5v4.3l2.8 1.7'/%3E%3C/g%3E%3C/svg%3E");
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; margin: 0; color: var(--ink); background: var(--cream); font-family: var(--font-sans); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
main#main { min-width: 0; flex: 1 0 auto; }
.site-header, .site-footer { flex: 0 0 auto; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.12; letter-spacing: -.035em; }
h1 em, h2 em { color: var(--coral); font-family: var(--font-serif); font-weight: 600; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.narrow { max-width: 840px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.skip-link { position: fixed; z-index: 9999; left: 16px; top: -80px; background: var(--paper); padding: 10px 18px; border-radius: 10px; box-shadow: var(--shadow-small); }
.skip-link:focus { top: 12px; }

.site-header { position: relative; z-index: 1000; height: 82px; background: rgba(255, 250, 242, .93); border-bottom: 1px solid rgba(17, 100, 102, .08); backdrop-filter: blur(14px); }
.site-header.scrolled { position: sticky; top: 0; box-shadow: 0 8px 30px rgba(23, 59, 59, .07); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 9px; flex: 0 0 auto; color: var(--ink); font-weight: 700; font-size: 21px; text-decoration: none; letter-spacing: -.04em; }
.brand img { width: 44px; height: 44px; object-fit: contain; }
.brand > span > span { color: var(--coral); }
.main-nav { min-width: 0; display: flex; align-items: center; gap: clamp(12px, 1.5vw, 22px); font-size: 14px; font-weight: 600; }
.main-nav > a { flex: 0 0 auto; white-space: nowrap; text-decoration: none; transition: color .2s; }
.main-nav > a:hover { color: var(--coral); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; border: 0; border-radius: 13px; padding: 13px 22px; background: var(--coral); color: #fff !important; font-weight: 700; text-decoration: none; cursor: pointer; box-shadow: 0 8px 20px rgba(240, 109, 91, .22); transition: transform .2s, background .2s, box-shadow .2s; }
.button:hover { background: var(--coral-dark); transform: translateY(-2px); box-shadow: 0 11px 24px rgba(240, 109, 91, .3); }
.button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid rgba(243, 182, 58, .75); outline-offset: 2px; }
.button-small { padding: 10px 17px; border-radius: 10px; }
.button-large { padding: 15px 25px; min-height: 54px; }
.button-secondary { background: var(--teal); box-shadow: 0 8px 20px rgba(17, 100, 102, .2); }
.button-secondary:hover { background: var(--teal-dark); }
.button-light { background: #fff; color: var(--teal) !important; box-shadow: none; }
.button-full { width: 100%; }
.text-link { display: inline-flex; align-items: center; gap: 9px; color: var(--teal); font-weight: 700; text-decoration: none; }
.text-link:hover { color: var(--coral); }
.play-dot { display: grid; place-items: center; width: 35px; height: 35px; padding-left: 2px; border: 1px solid rgba(17, 100, 102, .25); border-radius: 50%; font-size: 10px; }
.nav-toggle { display: none; width: 42px; height: 42px; border: 0; background: transparent; padding: 9px; }
.nav-toggle > span:not(.sr-only) { display: block; height: 2px; background: var(--ink); margin: 5px 0; }
.nav-profile { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.nav-profile > span:last-child { display: block; max-width: 112px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav-profile img, .avatar-fallback { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; }
.avatar-fallback { display: grid; place-items: center; background: var(--teal-soft); color: var(--teal); }
.nav-account { display: flex; align-items: center; gap: 3px; flex: 0 0 auto; }
.nav-notifications { position: relative; display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 auto; border-radius: 50%; background: var(--soft); color: var(--ink); text-decoration: none; transition: color .2s, background .2s, transform .2s; }
.nav-notifications:hover { background: var(--teal-soft); color: var(--teal); transform: translateY(-1px); }
.nav-notifications-icon { font-size: 17px; line-height: 1; }
.nav-notifications-count { position: absolute; right: -5px; top: -5px; display: grid; place-items: center; width: 24px; height: 20px; border: 2px solid white; border-radius: 11px; background: var(--coral); color: white; font-size: 8px; font-weight: 900; font-variant-numeric: tabular-nums; line-height: 1; opacity: 0; visibility: hidden; }
.nav-notifications-count.is-visible { opacity: 1; visibility: visible; }
.logout-form { margin: 0; }
.link-button { border: 0; background: none; padding: 0; cursor: pointer; color: var(--muted); font-size: 13px; white-space: nowrap; }

.flash-stack { position: fixed; z-index: 3000; right: 24px; top: 96px; width: min(410px, calc(100% - 32px)); }
.flash { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 16px; margin-bottom: 10px; background: white; border-radius: 14px; box-shadow: var(--shadow); border-left: 5px solid var(--teal); font-weight: 600; }
.flash-warning { border-color: var(--yellow); }
.flash button { background: none; border: 0; font-size: 22px; cursor: pointer; color: var(--muted); }

/* Eigene Pull-to-Refresh-Geste für Touchgeräte und installierte PWAs. */
html.pull-to-refresh-enabled,
html.pull-to-refresh-enabled body { overscroll-behavior-y: contain; }
.pull-to-refresh { --pull-distance: 0px; --pull-rotation: 0deg; position: fixed; z-index: 2800; top: calc(env(safe-area-inset-top, 0px) + 8px); left: 50%; min-height: 48px; max-width: min(360px, calc(100% - 28px)); display: flex; align-items: center; gap: 10px; padding: 8px 14px 8px 8px; border: 1px solid var(--line); border-radius: 26px; background: color-mix(in srgb, var(--paper) 94%, transparent); color: var(--ink); box-shadow: 0 10px 32px rgba(12,53,54,.2); opacity: 0; pointer-events: none; transform: translate(-50%, calc(-125% + var(--pull-distance))); transition: opacity .16s ease, transform .16s ease, border-color .16s ease; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.pull-to-refresh[hidden] { display: none; }
.pull-to-refresh.is-visible { opacity: 1; }
.pull-to-refresh.is-pulling { transition: opacity .08s linear, border-color .16s ease; }
.pull-to-refresh.is-ready { border-color: var(--teal); }
.pull-to-refresh.is-offline, .pull-to-refresh.is-blocked { border-color: var(--coral); }
.pull-to-refresh-icon { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--teal-soft); transform: rotate(var(--pull-rotation)); transition: transform .14s ease, background .16s ease; }
.pull-to-refresh-icon img { width: 24px; height: 24px; object-fit: contain; }
.pull-to-refresh.is-ready .pull-to-refresh-icon { background: color-mix(in srgb, var(--teal-soft) 72%, var(--yellow)); }
.pull-to-refresh.is-refreshing .pull-to-refresh-icon { animation: pullRefreshSpin .8s linear infinite; }
.pull-to-refresh.is-offline .pull-to-refresh-icon, .pull-to-refresh.is-blocked .pull-to-refresh-icon { background: color-mix(in srgb, var(--coral) 18%, var(--paper)); }
.pull-to-refresh > [data-pull-to-refresh-label] { overflow: hidden; color: var(--muted); font-size: 11px; font-weight: 800; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.pull-to-refresh.is-ready > [data-pull-to-refresh-label], .pull-to-refresh.is-refreshing > [data-pull-to-refresh-label] { color: var(--teal); }
.pull-to-refresh.is-offline > [data-pull-to-refresh-label], .pull-to-refresh.is-blocked > [data-pull-to-refresh-label] { color: var(--coral-dark); }
@keyframes pullRefreshSpin { to { transform: rotate(360deg); } }

.hero { position: relative; overflow: hidden; padding: 66px 0 74px; min-height: 680px; background: linear-gradient(115deg, #fffaf2 0%, #fffaf2 48%, #f4efe3 100%); }
.hero-grid { display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; gap: 54px; position: relative; z-index: 2; }
.hero-copy { padding: 22px 0; }
.eyebrow { display: flex; align-items: center; gap: 8px; color: var(--coral); font-size: 12px; font-weight: 800; letter-spacing: .105em; text-transform: uppercase; margin-bottom: 15px; }
.eyebrow.light { color: #ffe0a1; }
.hero h1 { max-width: 630px; margin-bottom: 22px; font-size: clamp(46px, 5vw, 75px); }
.hero-lead { max-width: 585px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.hero-actions { display: flex; align-items: center; gap: 28px; margin: 30px 0 34px; }
.hero-proof { display: flex; align-items: center; gap: 15px; }
.hero-proof strong { display: block; font-size: 12px; color: var(--muted); }
.stars { color: var(--yellow); letter-spacing: 2px; font-size: 13px; }
.avatar-stack { display: flex; }
.avatar-stack span { display: grid; place-items: center; width: 36px; height: 36px; margin-left: -8px; border: 3px solid var(--cream); border-radius: 50%; background: var(--teal-soft); color: var(--teal); font-size: 10px; font-weight: 800; }
.avatar-stack span:first-child { margin-left: 0; background: #f3cfb7; }
.avatar-stack span:nth-child(2) { background: #c5e3db; }.avatar-stack span:nth-child(3) { background: #f7d8ab; }.avatar-stack span:last-child { background: var(--teal); color: white; }
.hero-visual { position: relative; padding: 22px 0; }
.hero-image-wrap { overflow: hidden; border: 11px solid white; border-radius: 46% 46% 22px 22px; box-shadow: 0 30px 80px rgba(19, 72, 71, .19); transform: rotate(1deg); }
.hero-image-wrap img { width: 100%; height: 570px; object-fit: cover; object-position: 55% center; }
.floating-card { position: absolute; z-index: 3; display: flex; align-items: center; gap: 11px; min-width: 240px; padding: 12px 14px; background: rgba(255, 255, 255, .95); border: 1px solid rgba(255,255,255,.7); border-radius: 15px; box-shadow: var(--shadow); backdrop-filter: blur(10px); }
.floating-card-top { top: 68px; left: -39px; }.floating-card-bottom { bottom: 65px; right: -14px; }
.float-icon { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 11px; background: var(--teal-soft); font-size: 20px; }.float-icon.coral { background: #ffebe7; }
.floating-card strong, .floating-card small { display: block; }.floating-card strong { font-size: 13px; }.floating-card small { color: var(--muted); font-size: 11px; }
.match-pill { margin-left: auto; padding: 4px 7px; border-radius: 20px; background: #e2f4e8; color: #39724d; font-size: 11px; font-weight: 800; }
.hero-orbit { position: absolute; border-radius: 50%; border: 1px solid rgba(17,100,102,.1); }.hero-orbit-one { width: 520px; height: 520px; right: -300px; top: -180px; }.hero-orbit-two { width: 300px; height: 300px; left: -200px; bottom: -180px; }

.trust-bar { background: var(--teal); color: white; }
.trust-items { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 18px; font-size: 13px; font-weight: 600; }
.trust-items span { display: flex; align-items: center; gap: 8px; }.trust-items b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: rgba(255,255,255,.12); color: #ffe0a1; }
.section { padding: 104px 0; }
.centered-heading { max-width: 760px; text-align: center; }.centered-heading .eyebrow { justify-content: center; }.centered-heading h2, .split-heading h2, .steps-copy h2 { font-size: clamp(38px, 4.2vw, 60px); margin-bottom: 20px; }.centered-heading p { max-width: 680px; margin: 0 auto; color: var(--muted); font-size: 17px; }
.intro-section { background: white; }
.benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 57px; }
.benefit-card { position: relative; overflow: hidden; min-height: 350px; padding: 31px; border-radius: var(--radius); }
.benefit-card::after { content: ''; position: absolute; width: 130px; height: 130px; right: -55px; bottom: -60px; border-radius: 50%; background: rgba(255,255,255,.32); }
.benefit-card > span { position: absolute; top: 25px; right: 27px; font-size: 12px; font-weight: 800; opacity: .55; }.benefit-icon { display: grid; place-items: center; width: 62px; height: 62px; margin-bottom: 34px; border-radius: 18px; background: rgba(255,255,255,.65); font-size: 29px; }.benefit-card h3 { font-size: 23px; }.benefit-card p { min-height: 94px; line-height: 1.65; opacity: .83; }.benefit-card a { font-size: 13px; font-weight: 800; text-decoration: none; }.benefit-teal { background: #d9efec; }.benefit-coral { background: #ffe4df; }.benefit-yellow { background: #fff0c7; }

.steps-section { background: var(--cream); }
.steps-grid { display: grid; grid-template-columns: 1.03fr .97fr; align-items: center; gap: 90px; }
.steps-visual { position: relative; min-height: 570px; }
.map-paper { position: absolute; inset: 15px 20px 15px 0; overflow: hidden; border: 9px solid white; border-radius: 28px; background-color: #ddecdf; background-image: linear-gradient(30deg, rgba(17,100,102,.08) 12%, transparent 12.5%, transparent 87%, rgba(17,100,102,.08) 87.5%), linear-gradient(150deg, rgba(17,100,102,.08) 12%, transparent 12.5%, transparent 87%, rgba(17,100,102,.08) 87.5%); background-size: 80px 140px; box-shadow: var(--shadow); transform: rotate(-2deg); }
.map-paper::before, .map-paper::after { content: ''; position: absolute; border: 3px solid rgba(255,255,255,.85); border-radius: 50%; }.map-paper::before { width: 260px; height: 180px; left: -50px; top: 10px; }.map-paper::after { width: 340px; height: 220px; right: -100px; bottom: -50px; }
.map-route { position: absolute; left: 120px; top: 190px; width: 300px; height: 150px; border: 4px dashed rgba(240,109,91,.65); border-color: transparent transparent var(--coral) var(--coral); border-radius: 50%; transform: rotate(-10deg); }
.map-pin { position: absolute; z-index: 2; display: grid; place-items: center; width: 56px; height: 56px; border: 5px solid white; border-radius: 50% 50% 50% 8px; background: var(--teal); box-shadow: var(--shadow-small); font-size: 23px; transform: rotate(-45deg); }.map-pin::first-letter { transform: rotate(45deg); }.pin-a { left: 80px; top: 100px; }.pin-b { right: 70px; top: 190px; background: var(--coral); }.pin-c { left: 190px; bottom: 75px; background: #688b55; }
.map-family-card { position: absolute; z-index: 4; right: -1px; bottom: 42px; display: flex; align-items: center; gap: 11px; padding: 14px 17px; background: white; border-radius: 15px 0 0 15px; box-shadow: var(--shadow-small); }.mini-avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #f7d7c1; color: var(--coral); font-weight: 800; }.map-family-card strong, .map-family-card small { display: block; }.map-family-card strong { font-size: 13px; }.map-family-card small { color: var(--muted); font-size: 10px; }
.scribble-note { position: absolute; z-index: 5; left: -15px; bottom: -5px; padding: 12px 15px; color: var(--coral); font-family: var(--font-serif); font-style: italic; transform: rotate(-5deg); }.scribble-note span { font-size: 25px; }
.steps-list { list-style: none; padding: 0; margin: 31px 0 38px; }.steps-list li { display: flex; gap: 18px; padding: 0 0 24px; position: relative; }.steps-list li > span { flex: 0 0 auto; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--teal-soft); color: var(--teal); font-size: 13px; font-weight: 800; }.steps-list li:not(:last-child)::after { content: ''; position: absolute; left: 18px; top: 42px; bottom: 3px; border-left: 1px dashed #aac9c7; }.steps-list h3 { margin: 2px 0 5px; font-size: 18px; }.steps-list p { margin: 0; color: var(--muted); font-size: 14px; }

.ideas-section { background: #f0f7f5; overflow: hidden; }.split-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 50px; }.split-heading > p { max-width: 440px; margin-bottom: 20px; color: var(--muted); }.idea-scroller { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; margin-top: 46px; }.idea-card { min-height: 205px; display: flex; flex-direction: column; justify-content: flex-end; padding: 25px; border-radius: 22px; background: white; box-shadow: 0 8px 24px rgba(23,59,59,.06); transition: transform .25s; }.idea-card:hover { transform: translateY(-7px) rotate(-1deg); }.idea-card > span { margin-bottom: auto; font-size: 41px; }.idea-card strong { font-size: 18px; }.idea-card small { margin-top: 4px; color: var(--muted); }
.safety-section { background: white; }.safety-panel { display: grid; grid-template-columns: .55fr 1.25fr .85fr; align-items: center; gap: 55px; padding: 58px; border-radius: 32px; background: var(--teal); color: white; box-shadow: 0 25px 70px rgba(17,100,102,.2); }.safety-panel h2 { font-size: 42px; }.safety-panel p { color: rgba(255,255,255,.78); }.safety-stamp { width: 180px; height: 180px; display: grid; place-content: center; text-align: center; border: 2px dashed rgba(255,255,255,.45); border-radius: 50%; transform: rotate(-8deg); }.safety-stamp span { display: grid; place-items: center; width: 46px; height: 46px; margin: 0 auto 8px; border-radius: 50%; background: var(--yellow); color: var(--teal); font-size: 24px; }.safety-stamp strong { line-height: 1.2; }.safety-points p { display: flex; gap: 11px; margin: 11px 0; font-size: 14px; font-weight: 600; }.safety-points span { color: var(--yellow); }
.final-cta { padding-top: 40px; }.cta-card { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 58px 65px; border: 1px solid #f0dfc7; border-radius: 30px; background: #fff4dc; overflow: hidden; }.cta-card h2 { font-size: 38px; margin-bottom: 10px; }.cta-card p { margin: 0; color: var(--muted); }.cta-doodle { position: absolute; right: 34%; top: -18px; color: rgba(243,182,58,.35); font-size: 90px; }

.site-footer { padding: 70px 0 25px; background: #102f30; color: rgba(255,255,255,.72); }.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 70px; }.brand-footer { color: white; }.footer-grid > div:first-child p { max-width: 390px; margin-top: 20px; }.footer-grid h2 { color: white; font-size: 14px; letter-spacing: .03em; }.footer-grid > div:not(:first-child) { display: flex; flex-direction: column; gap: 9px; }.footer-grid a { text-decoration: none; font-size: 14px; }.footer-grid a:hover { color: white; }.footer-bottom { display: flex; justify-content: space-between; margin-top: 50px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.1); font-size: 12px; }
.footer-social-profiles { display: flex; align-items: center; gap: 9px; margin-top: 22px; }.footer-social-profiles a { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: rgba(255,255,255,.8); transition: color .18s, border-color .18s, background .18s, transform .18s; }.footer-social-profiles a:hover { border-color: var(--yellow); background: rgba(255,255,255,.08); color: var(--yellow); transform: translateY(-2px); }.footer-social-profiles a:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }.footer-social-profiles svg { width: 19px; height: 19px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }.footer-social-profiles [data-social-profile="instagram"] .social-icon-dot { fill: currentColor; stroke: none; }.footer-social-profiles [data-social-profile="x"] svg { fill: currentColor; stroke: none; }

/* Auth */
.auth-page { background: white; }.auth-page .site-footer { display: none; }.auth-shell { min-height: 100vh; display: grid; grid-template-columns: 43% 57%; background: white; }.auth-aside { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: 42px clamp(35px, 5vw, 82px) 55px; background: var(--teal); color: white; }.auth-aside::before { content: ''; position: absolute; width: 520px; height: 520px; left: -250px; bottom: -240px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.02); }.brand-light { color: white; position: relative; z-index: 2; }.auth-aside > div { position: relative; z-index: 2; }.auth-aside h1 { font-size: clamp(47px, 5vw, 70px); color: white; }.auth-aside p { max-width: 510px; color: rgba(255,255,255,.76); font-size: 17px; }.auth-quote { max-width: 480px; padding: 22px; border: 1px solid rgba(255,255,255,.15); border-radius: 18px; background: rgba(255,255,255,.07); }.auth-quote p { margin: 7px 0; color: white; font-family: var(--font-serif); font-style: italic; }.auth-quote span { font-size: 12px; color: rgba(255,255,255,.6); }.auth-card-wrap { display: grid; place-items: center; padding: 60px 30px; }.auth-card { width: min(540px, 100%); }.auth-card-compact { max-width: 470px; }.auth-card-head { margin-bottom: 29px; }.auth-card-head h2 { margin-bottom: 8px; font-size: 36px; }.auth-card-head p { color: var(--muted); }.auth-switch { text-align: center; margin: 25px 0 0; color: var(--muted); }.auth-switch a, .subtle-link { color: var(--teal); font-weight: 700; }.subtle-link { display: block; margin-top: 20px; text-align: center; font-size: 13px; }.auth-mini-map { position: relative; height: 170px; border: 1px solid rgba(255,255,255,.15); border-radius: 20px; background: rgba(255,255,255,.05); }.auth-mini-map span { position: absolute; display: grid; place-items: center; width: 45px; height: 45px; border-radius: 50% 50% 50% 8px; background: white; transform: rotate(-45deg); }.auth-mini-map span:nth-child(1) { left: 18%; top: 25%; }.auth-mini-map span:nth-child(2) { right: 20%; top: 17%; }.auth-mini-map span:nth-child(3) { left: 49%; bottom: 14%; }.auth-mini-map i { position: absolute; left: 24%; top: 52%; width: 55%; border-top: 2px dashed rgba(255,255,255,.45); transform: rotate(7deg); }
.login-remember-choice { padding: 13px 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--soft); color: var(--ink); }.login-remember-choice input { flex: 0 0 auto; }.login-remember-choice strong,.login-remember-choice small { display: block; }.login-remember-choice strong { margin-bottom: 3px; font-size: 13px; }.login-remember-choice small { color: var(--muted); font-size: 11px; font-weight: 500; line-height: 1.45; }

/* Forms */
.form-stack { display: flex; flex-direction: column; gap: 20px; }.form-grid { display: grid; gap: 18px; }.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }.field { display: flex; flex-direction: column; gap: 7px; font-size: 14px; font-weight: 700; }.field > span { color: var(--ink); }.field span i, .field > small:not(.field-error), .char-hint { font-style: normal; font-weight: 500; color: #93a1a1; font-size: 11px; }.field input, .field select, .field textarea { width: 100%; border: 1px solid #d5e1df; border-radius: 11px; background: #fff; padding: 13px 14px; color: var(--ink); transition: border-color .2s, box-shadow .2s; }.field input, .field select { min-height: 49px; }.field textarea { resize: vertical; line-height: 1.55; }.field input:focus, .field select:focus, .field textarea:focus { outline: 0; border-color: var(--teal); box-shadow: 0 0 0 4px rgba(17,100,102,.08); }.field-error { color: var(--danger) !important; font-weight: 600 !important; font-size: 12px !important; }.password-wrap { position: relative; }.password-wrap button { position: absolute; right: 8px; top: 8px; width: 34px; height: 34px; border: 0; background: transparent; cursor: pointer; color: var(--muted); }.password-wrap input { padding-right: 45px; }.check-row { display: flex; gap: 10px; align-items: flex-start; color: var(--muted); font-size: 13px; cursor: pointer; }.check-row input { width: 17px; height: 17px; margin-top: 2px; accent-color: var(--teal); }.check-row a { color: var(--teal); font-weight: 700; }.inline-alert { padding: 12px 15px; border-radius: 10px; font-size: 13px; }.inline-alert.error { background: #fff0ee; border: 1px solid #f5c7c0; color: #9d3930; }
.upload-field { min-height: 70px; display: flex; align-items: center; gap: 12px; padding: 9px 12px; border: 1px dashed #bad0cc; border-radius: 11px; background: #f8fbfa; cursor: pointer; }.upload-field input { position: absolute; opacity: 0; width: 1px; height: 1px; }.upload-field > span { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 9px; background: var(--teal-soft); color: var(--teal); font-size: 19px; }.upload-field strong, .upload-field small { display: block; }.upload-field small { color: var(--muted); font-size: 10px; font-weight: 500; }.upload-field.compact { min-height: 49px; padding-block: 5px; }.upload-field.compact > span { width: 34px; height: 34px; }
.choice-fieldset { padding: 0; margin: 0; border: 0; }.choice-fieldset legend { margin-bottom: 10px; font-size: 14px; font-weight: 700; }.segmented-options { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.segmented-options label { position: relative; cursor: pointer; }.segmented-options input { position: absolute; opacity: 0; }.segmented-options label > span { display: grid; grid-template-columns: auto 1fr; column-gap: 11px; min-height: 85px; padding: 14px; border: 1px solid #d5e1df; border-radius: 12px; }.segmented-options b { grid-row: 1/3; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 9px; background: var(--soft); color: var(--teal); }.segmented-options strong { font-size: 13px; }.segmented-options small { color: var(--muted); font-size: 11px; }.segmented-options input:checked + span { border-color: var(--teal); background: #f1f9f7; box-shadow: 0 0 0 2px rgba(17,100,102,.08); }
.center-page { min-height: 72vh; display: grid; place-items: center; padding: 80px 20px; }.status-card { width: min(560px, 100%); padding: 52px; border-radius: 26px; background: white; text-align: center; box-shadow: var(--shadow); }.status-card .eyebrow { justify-content: center; }.status-card h1 { font-size: 42px; }.status-card p { color: var(--muted); }.status-icon { display: grid; place-items: center; width: 70px; height: 70px; margin: 0 auto 24px; border-radius: 50%; font-size: 30px; font-weight: 800; }.status-icon.success { background: #e2f2e6; color: #38704a; }.status-icon.warning { background: #fff1cf; color: #9a6c0c; }.form-status-card { text-align: left; }.form-status-card .eyebrow { justify-content: flex-start; }.error-code { color: #d9e3df; font-size: 85px; line-height: 1; font-weight: 800; }

/* Wizard */
.wizard-page { background: #f6f8f5; }.wizard-progress-wrap { border-bottom: 1px solid var(--line); background: white; }.wizard-progress { min-height: 94px; display: flex; align-items: center; }.wizard-progress-item { display: flex; align-items: center; gap: 10px; min-width: 155px; opacity: .48; }.wizard-progress-item > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1px solid #b7c8c5; font-size: 12px; font-weight: 800; }.wizard-progress-item strong, .wizard-progress-item small { display: block; line-height: 1.3; }.wizard-progress-item strong { font-size: 13px; }.wizard-progress-item small { color: var(--muted); font-size: 10px; }.wizard-progress-item.active, .wizard-progress-item.done { opacity: 1; }.wizard-progress-item.active > span { background: var(--coral); color: white; border-color: var(--coral); }.wizard-progress-item.done > span { background: var(--teal); color: white; border-color: var(--teal); }.wizard-progress > i { flex: 1; height: 1px; margin: 0 16px; background: var(--line); }
.wizard-section { padding: 62px 0 95px; }.wizard-layout { display: grid; grid-template-columns: 330px minmax(0, 1fr); align-items: start; gap: 60px; }.wizard-intro { position: sticky; top: 115px; padding-top: 15px; }.step-kicker { display: inline-flex; margin-bottom: 17px; padding: 6px 11px; border-radius: 20px; background: var(--teal-soft); color: var(--teal); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }.wizard-intro h1 { font-size: 44px; }.wizard-intro > p { color: var(--muted); }.privacy-note, .tip-note { display: flex; gap: 12px; margin-top: 30px; padding: 17px; border: 1px solid #dce7e4; border-radius: 15px; background: rgba(255,255,255,.66); }.privacy-note > span, .tip-note > span { font-size: 21px; }.privacy-note strong { font-size: 12px; }.privacy-note p, .tip-note p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }.wizard-card { padding: 38px; border: 1px solid rgba(17,100,102,.1); border-radius: 24px; background: white; box-shadow: 0 12px 45px rgba(23,59,59,.07); }.form-section-head { display: flex; align-items: center; gap: 14px; }.form-section-head h2 { margin: 0 0 3px; font-size: 22px; }.form-section-head p { margin: 0; color: var(--muted); font-size: 12px; }.section-number { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: var(--teal-soft); color: var(--teal); font-size: 12px; font-weight: 800; }.form-divider { height: 1px; margin: 12px 0; background: var(--line); }.wizard-actions { display: flex; align-items: center; justify-content: space-between; margin-top: 13px; padding-top: 23px; border-top: 1px solid var(--line); }.wizard-actions > span { color: var(--muted); font-size: 12px; }.wizard-actions > span b { color: var(--teal); }.back-link { color: var(--muted); font-size: 13px; font-weight: 700; text-decoration: none; }.back-link:hover { color: var(--teal); }
.language-grid { display: grid; gap: 9px; max-height: 620px; padding-right: 5px; overflow-y: auto; }.language-row { display: grid; grid-template-columns: 1fr 210px; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; }.language-row.selected { border-color: #9bc4bf; background: #f2faf8; }.language-row label { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; cursor: pointer; }.language-row label input { position: absolute; opacity: 0; }.custom-check { display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid #b6c9c6; border-radius: 7px; color: transparent; }.language-row.selected .custom-check { background: var(--teal); border-color: var(--teal); color: white; }.language-row strong { font-size: 13px; }.language-row label small { color: #9aabaa; font-size: 10px; }.language-row select { min-height: 40px; border: 1px solid #d5e1df; border-radius: 9px; padding: 5px 9px; background: white; color: var(--ink); font-size: 12px; }
.interest-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }.interest-option { position: relative; min-height: 130px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 16px; cursor: pointer; transition: transform .2s, border-color .2s, background .2s; }.interest-option:hover { transform: translateY(-2px); }.interest-option input { position: absolute; opacity: 0; }.interest-option b { font-size: 31px; }.interest-option strong { font-size: 12px; text-align: center; }.interest-check { position: absolute; top: 9px; right: 9px; display: grid; place-items: center; width: 21px; height: 21px; border: 1px solid #cbd9d6; border-radius: 50%; color: transparent; font-size: 10px; }.interest-option:has(input:checked) { border-color: var(--interest); background: color-mix(in srgb, var(--interest) 9%, white); box-shadow: 0 0 0 2px color-mix(in srgb, var(--interest) 12%, transparent); }.interest-option input:checked ~ .interest-check { background: var(--interest); border-color: var(--interest); color: white; }
.child-card { margin-bottom: 18px; padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: #fbfdfc; }.child-card-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }.child-card-head h3 { margin: 4px 0 0; font-size: 19px; }.child-index { color: var(--coral); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.remove-child { width: 32px; height: 32px; border: 0; border-radius: 50%; background: #f5e5e2; color: var(--coral-dark); cursor: pointer; font-size: 20px; }.add-child-button { width: 100%; display: flex; align-items: center; justify-content: center; gap: 13px; padding: 18px; border: 1px dashed #9ebdb8; border-radius: 15px; background: #f4faf8; color: var(--teal); cursor: pointer; }.add-child-button > span { font-size: 24px; }.add-child-button strong, .add-child-button small { display: block; text-align: left; }.add-child-button small { color: var(--muted); font-size: 10px; font-weight: 500; }

/* Portal */
.portal-page { background: #eef4f2; }.portal-page .site-header { background: white; }.portal-hero { padding: 42px 0 20px; background: white; }.portal-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }.portal-heading h1 { margin-bottom: 8px; font-size: clamp(37px, 4vw, 56px); }.portal-heading p { margin: 0; color: var(--muted); }.filter-bar { display: flex; gap: 8px; margin-top: 28px; padding-bottom: 3px; overflow-x: auto; scrollbar-width: thin; }.filter-chip { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; padding: 9px 13px; border: 1px solid var(--line); border-radius: 30px; background: white; cursor: pointer; font-size: 12px; font-weight: 700; }.filter-chip.active { border-color: var(--teal); background: var(--teal); color: white; }.advanced-travel-filters { display: grid; grid-template-columns: minmax(0, 1fr) 220px auto; align-items: end; gap: 14px; margin-top: 16px; padding-top: 15px; border-top: 1px solid var(--line); }.age-filter-group { min-width: 0; margin: 0; padding: 0; border: 0; }.age-filter-group legend, .radius-filter > span { display: block; margin-bottom: 7px; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }.age-filter-group > div { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 2px; }.age-filter-group label { position: relative; flex: 0 0 auto; cursor: pointer; }.age-filter-group input { position: absolute; opacity: 0; }.age-filter-group label span { display: inline-flex; align-items: center; min-height: 37px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 10px; background: white; font-size: 10px; font-weight: 700; }.age-filter-group input:checked + span { border-color: var(--teal); background: var(--teal-soft); color: var(--teal); box-shadow: 0 0 0 2px rgba(17,100,102,.08); }.age-filter-group input:focus-visible + span { outline: 3px solid rgba(243,182,58,.65); outline-offset: 2px; }.radius-filter select { width: 100%; min-height: 37px; padding: 7px 32px 7px 10px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); font-size: 10px; font-weight: 700; }.radius-filter select:disabled { background: var(--soft); color: #9caaa7; cursor: not-allowed; }.filter-summary { min-height: 37px; display: flex; align-items: center; gap: 8px; }.filter-summary > span { padding: 5px 8px; border-radius: 20px; background: #fff1d4; color: #78560e; font-size: 9px; font-weight: 800; white-space: nowrap; }.filter-summary button { border: 0; background: transparent; color: var(--coral); cursor: pointer; font-size: 10px; font-weight: 800; white-space: nowrap; }.region-filter-help { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; margin-top: -4px; color: var(--muted); }.region-filter-help > span { color: var(--coral); }.region-filter-help p { margin: 0; font-size: 9px; }.region-filter-help a { color: var(--teal); font-weight: 800; }.explore-shell { height: 690px; min-height: 70vh; display: grid; grid-template-columns: 390px 1fr; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }.result-panel { position: relative; z-index: 3; overflow: hidden; display: flex; flex-direction: column; border-right: 1px solid var(--line); }.result-panel-head { min-height: 76px; display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; border-bottom: 1px solid var(--line); }.result-panel-head strong, .result-panel-head small { display: block; }.result-panel-head small { color: var(--muted); font-size: 11px; }.result-list { flex: 1; overflow-y: auto; padding: 13px; background: #f6f8f7; }.trip-card { width: 100%; display: block; margin-bottom: 10px; padding: 17px; border: 1px solid transparent; border-radius: 15px; background: white; text-align: left; cursor: pointer; box-shadow: 0 4px 15px rgba(23,59,59,.055); transition: border-color .2s, transform .2s; }.trip-card:hover, .trip-card.active { border-color: var(--coral); transform: translateY(-1px); }.trip-card-top { display: flex; gap: 11px; }.trip-icon { flex: 0 0 auto; display: grid; place-items: center; width: 43px; height: 43px; border-radius: 12px; font-size: 21px; }.trip-card h3 { margin: 1px 0 4px; font-size: 16px; }.trip-destination { color: var(--muted); font-size: 12px; }.trip-card-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 14px 0 12px; color: var(--muted); font-size: 11px; }.trip-card-meta span { display: flex; align-items: center; gap: 5px; }.trip-person { display: flex; align-items: center; gap: 9px; padding-top: 12px; border-top: 1px solid #edf1f0; }.trip-person img, .trip-person-avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }.trip-person-avatar { display: grid; place-items: center; background: var(--teal-soft); color: var(--teal); font-size: 11px; font-weight: 800; }.trip-person strong, .trip-person small { display: block; }.trip-person strong { font-size: 11px; }.trip-person small { color: var(--muted); font-size: 9px; }.map-panel { position: relative; }.map-panel #travel-map { width: 100%; height: 100%; background: #dce9e4; }.map-legend { position: absolute; z-index: 500; left: 18px; bottom: 24px; display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 10px; background: rgba(255,255,255,.93); box-shadow: var(--shadow-small); font-size: 10px; }.map-legend span { display: flex; align-items: center; gap: 5px; }.legend-dot { width: 9px; height: 9px; border-radius: 50%; }.legend-dot.teal { background: var(--teal); }.legend-dot.coral { background: var(--coral); }.map-mobile-toggle { display: none; }
.travel-marker { background: transparent; border: 0; }.marker-pin { position: relative; display: grid; place-items: center; width: 48px; height: 48px; border: 4px solid white; border-radius: 50% 50% 50% 8px; background: var(--marker); box-shadow: 0 6px 17px rgba(23,59,59,.26); font-size: 21px; transform: rotate(-45deg); transition: transform .2s; }.marker-pin span { transform: rotate(45deg); }.marker-waitlist { position: absolute; right: -8px; top: -8px; display: grid; place-items: center; width: 21px; height: 21px; border: 2px solid white; border-radius: 50%; background: var(--yellow); color: var(--ink); font-size: 11px; line-height: 1; transform: rotate(45deg); }.travel-marker-full .marker-pin { filter: saturate(.72); }.travel-marker.selected .marker-pin { background: var(--coral); filter: none; transform: rotate(-45deg) scale(1.15); }.leaflet-popup-content-wrapper { border-radius: 15px; box-shadow: var(--shadow); }.leaflet-popup-content { margin: 16px; font-family: var(--font-sans); }.popup-card { min-width: 210px; }.popup-card small { color: var(--coral); font-weight: 800; }.popup-card strong { display: block; margin: 3px 0 4px; font-size: 15px; }.popup-card p { margin: 0; color: var(--muted); font-size: 11px; }.popup-card .popup-waitlist-badge { display: block; width: fit-content; margin-top: 7px; padding: 4px 7px; border-radius: 20px; background: #fff1d4; color: #78560e; font-size: 8px; }.loading-state, .empty-state { display: grid; place-items: center; min-height: 280px; padding: 30px; color: var(--muted); text-align: center; }.loading-state span { width: 35px; height: 35px; border: 3px solid var(--teal-soft); border-top-color: var(--teal); border-radius: 50%; animation: spin .8s linear infinite; }.loading-state p { margin-top: 10px; font-size: 12px; }.empty-state b { font-size: 40px; }.empty-state strong { margin-top: 8px; }.empty-state p { font-size: 12px; }.empty-state .button { margin-top: 10px; }
.map-close { display: none; }
@keyframes spin { to { transform: rotate(360deg); } }
.own-trips { padding: 70px 0 95px; }.split-heading.compact h2 { font-size: 37px; margin-bottom: 0; }.own-trip-grid { display: grid; gap: 10px; margin-top: 23px; }.own-trip-grid article { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 14px; background: white; }.own-trip-grid article > span { font-size: 26px; }.own-trip-grid article div { flex: 1; }.own-trip-grid strong, .own-trip-grid small { display: block; }.own-trip-grid small { color: var(--muted); font-size: 12px; }.status-pill { padding: 5px 9px; border-radius: 20px; background: #e3f3e8; color: #347249; font-size: 10px; }

.trip-create-section { padding: 62px 0 100px; background: #f5f8f6; }.trip-create-heading { margin-bottom: 35px; text-align: center; }.trip-create-heading .eyebrow { justify-content: center; margin-top: 24px; }.trip-create-heading h1 { margin-bottom: 12px; font-size: 48px; }.trip-create-heading p { color: var(--muted); }.trip-form-layout { display: grid; grid-template-columns: minmax(0, .95fr) minmax(400px, 1.05fr); align-items: start; gap: 24px; }.destination-picker { position: sticky; top: 100px; overflow: hidden; padding: 24px; border: 1px solid rgba(17,100,102,.1); border-radius: 24px; background: white; box-shadow: 0 12px 45px rgba(23,59,59,.07); }.destination-picker-head { display: flex; align-items: center; gap: 12px; margin-bottom: 17px; }.destination-picker-head > span { display: grid; place-items: center; width: 41px; height: 41px; border-radius: 12px; background: #ffe9e5; color: var(--coral); font-weight: 800; }.destination-picker-head h2 { margin: 0 0 2px; font-size: 19px; }.destination-picker-head p { margin: 0; color: var(--muted); font-size: 11px; }.destination-picker #destination-map { height: 460px; margin-top: 12px; border-radius: 15px; background: #dce9e4; }.coordinate-status { display: flex; align-items: center; gap: 9px; padding: 12px 4px 4px; color: var(--muted); font-size: 12px; }.coordinate-status p { margin: 0; }.coordinate-status.active { color: var(--teal); font-weight: 700; }.map-privacy { display: flex; gap: 8px; margin-top: 12px; padding: 11px; border-radius: 10px; background: #f1f7f5; }.map-privacy p { margin: 0; color: var(--muted); font-size: 10px; }

/* Static pages */
.static-hero { padding: 100px 0 80px; background: var(--teal); color: white; text-align: center; }.static-hero .eyebrow { justify-content: center; color: #ffe0a1; }.static-hero h1 { font-size: 58px; }.static-hero p { max-width: 700px; margin: 0 auto; color: rgba(255,255,255,.74); font-size: 18px; }.static-content { padding: 80px 0 110px; background: white; }.principle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }.principle-grid article { padding: 27px; border-radius: 18px; background: var(--soft); }.principle-grid article > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--teal-soft); color: var(--teal); font-weight: 800; }.principle-grid h2 { margin: 18px 0 8px; font-size: 20px; }.principle-grid p, .prose p { color: var(--muted); }.content-callout { margin-top: 35px; padding: 30px; border-radius: 20px; background: #fff3d8; }.content-callout h2 { font-size: 25px; }.content-callout li { margin: 8px 0; }.prose h2 { margin-top: 35px; }

/* Kaffeekasse */
.coffee-fund-hero { background: radial-gradient(circle at 18% 20%,rgba(255,224,161,.15),transparent 24%),radial-gradient(circle at 84% 76%,rgba(255,255,255,.08),transparent 26%),linear-gradient(135deg,#0f5558,#173f42); }
.coffee-fund-content { background: var(--cream); }
.coffee-fund-letter { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 28px; padding: clamp(28px,5vw,50px); border: 1px solid var(--line); border-radius: 28px; background: var(--paper); box-shadow: var(--shadow-small); }
.coffee-fund-letter-icon { display: grid; place-items: center; width: 92px; height: 92px; border-radius: 28px 28px 28px 8px; background: var(--teal-soft); color: var(--teal); font-size: 44px; transform: rotate(-3deg); }
.coffee-fund-letter .eyebrow { margin-bottom: 11px; }
.coffee-fund-letter h2 { max-width: 650px; margin-bottom: 22px; font-size: clamp(28px,4vw,43px); }
.coffee-fund-letter p { color: var(--muted); line-height: 1.78; }
.coffee-fund-letter p:last-child { margin-bottom: 0; color: var(--ink); }
.coffee-fund-reasons { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; margin: 26px 0; }
.coffee-fund-reasons article { padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: var(--soft); }
.coffee-fund-reasons article > span { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 20px; border-radius: 14px; background: var(--paper); font-size: 23px; box-shadow: var(--shadow-small); }
.coffee-fund-reasons h2 { margin-bottom: 8px; font-size: 18px; }
.coffee-fund-reasons p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.coffee-fund-paypal { position: relative; overflow: hidden; display: grid; grid-template-columns: 116px minmax(0,1fr); align-items: center; gap: 34px; padding: clamp(32px,5vw,54px); border-radius: 28px; background: radial-gradient(circle at 92% 5%,rgba(255,255,255,.11),transparent 28%),linear-gradient(135deg,#123f42,#0d5659); color: white; box-shadow: 0 22px 60px rgba(7,55,58,.2); }
.coffee-fund-paypal::after { content: '☕'; position: absolute; right: 28px; bottom: -54px; color: rgba(255,255,255,.055); font-size: 150px; line-height: 1; transform: rotate(-10deg); pointer-events: none; }
.coffee-fund-paypal-mark { position: relative; z-index: 1; display: grid; place-items: center; width: 116px; height: 116px; border: 1px solid rgba(255,255,255,.18); border-radius: 32px; background: linear-gradient(145deg,#169bd7,#0369a7); color: white; font-family: var(--font-serif); font-size: 62px; font-style: italic; box-shadow: inset 0 0 0 8px rgba(255,255,255,.08),0 15px 35px rgba(0,0,0,.2); }
.coffee-fund-paypal-copy { position: relative; z-index: 1; }
.coffee-fund-paypal .eyebrow { color: #ffe0a1; }
.coffee-fund-paypal h2 { max-width: 620px; margin-bottom: 13px; color: white; font-size: clamp(27px,4vw,40px); }
.coffee-fund-paypal p { max-width: 680px; color: rgba(255,255,255,.76); }
.coffee-fund-paypal-button { margin: 11px 0 13px; }
.coffee-fund-paypal-button > span { font-size: 20px; }
.coffee-fund-paypal small { display: block; max-width: 620px; color: rgba(255,255,255,.58); font-size: 10px; line-height: 1.55; }
.coffee-fund-thanks { display: flex; align-items: center; justify-content: center; gap: 11px; margin: 26px 0 0; padding: 17px 20px; border-radius: 16px; background: var(--teal-soft); color: var(--teal); text-align: center; }
.coffee-fund-thanks > span { font-size: 22px; }.coffee-fund-thanks strong { margin-right: 4px; }

@media (max-width: 1050px) {
    .hero-grid { grid-template-columns: 1fr 1fr; gap: 28px; }.hero-image-wrap img { height: 500px; }.floating-card-top { left: -12px; }.floating-card-bottom { right: -5px; }
    .benefit-card { padding: 25px; }.steps-grid { gap: 45px; }.idea-scroller { grid-template-columns: repeat(5, 210px); overflow-x: auto; padding-bottom: 15px; }.safety-panel { grid-template-columns: .5fr 1.4fr; }.safety-points { grid-column: 2; }.cta-card { padding: 45px; }
    .wizard-layout { grid-template-columns: 270px minmax(0, 1fr); gap: 30px; }.wizard-intro h1 { font-size: 38px; }
}

@media (max-width: 1200px) {
    .nav-toggle { display: block; }
    .main-nav { position: absolute; left: 20px; right: 20px; top: 76px; display: none; overflow-y: auto; max-height: calc(100vh - 96px); flex-direction: column; align-items: stretch; gap: 0; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: var(--paper); box-shadow: var(--shadow); }
    .main-nav.open { display: flex; }
    .main-nav > a, .link-button { padding: 12px; text-align: left; }
    .nav-account { width: 100%; padding: 4px 7px 4px 2px; }
    .nav-profile { min-width: 0; flex: 1; padding: 8px; }
    .nav-profile > span:last-child { max-width: none; }
    .nav-notifications { width: 40px; height: 40px; }
    .logout-form { padding: 0 10px; }
}

@media (max-width: 820px) {
    .container { width: min(100% - 28px, 680px); }.site-header { height: 70px; }.nav-toggle { display: block; }.main-nav { position: absolute; left: 14px; right: 14px; top: 64px; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: var(--paper); box-shadow: var(--shadow); }.main-nav.open { display: flex; }.main-nav > a, .link-button { padding: 12px; text-align: left; }.nav-account { width: 100%; padding: 4px 7px 4px 2px; }.nav-profile { min-width: 0; flex: 1; padding: 8px; }.nav-profile > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.nav-notifications { width: 40px; height: 40px; }.logout-form { padding: 0 10px; }
    .hero { padding: 40px 0 60px; }.hero-grid { grid-template-columns: 1fr; }.hero-copy { text-align: center; }.hero-copy .eyebrow, .hero-actions, .hero-proof { justify-content: center; }.hero-lead { margin-inline: auto; }.hero-visual { max-width: 620px; margin: 0 auto; }.hero-image-wrap img { height: 480px; }.floating-card-top { top: 45px; }.trust-items { flex-wrap: wrap; padding: 18px 0; justify-content: center; }.trust-items span { flex: 1 1 220px; justify-content: center; }
    .section { padding: 78px 0; }.benefit-grid { grid-template-columns: 1fr; }.benefit-card { min-height: 300px; }.benefit-card p { min-height: auto; }.steps-grid { grid-template-columns: 1fr; }.steps-visual { min-height: 500px; }.split-heading { display: block; }.safety-panel { grid-template-columns: 1fr; text-align: center; }.safety-stamp { margin: auto; }.safety-panel .eyebrow { justify-content: center; }.safety-points { grid-column: auto; display: grid; grid-template-columns: 1fr 1fr; text-align: left; }.cta-card { display: block; text-align: center; }.cta-card .eyebrow { justify-content: center; }.cta-card .button { margin-top: 25px; }.footer-grid { grid-template-columns: 2fr 1fr 1fr; gap: 25px; }
    .auth-shell { grid-template-columns: 1fr; }.auth-aside { min-height: 530px; padding: 30px; }.auth-aside h1 { font-size: 52px; }.auth-mini-map { display: none; }.auth-card-wrap { padding: 55px 24px; }
    .wizard-progress { overflow-x: auto; padding-block: 13px; }.wizard-progress-item { min-width: 130px; }.wizard-progress-item small { display: none; }.wizard-progress > i { min-width: 25px; margin-inline: 8px; }.wizard-section { padding-top: 35px; }.wizard-layout { grid-template-columns: 1fr; }.wizard-intro { position: static; }.wizard-intro h1 { font-size: 40px; }.wizard-card { padding: 27px; }
    .portal-heading { align-items: flex-start; flex-direction: column; }.explore-shell { height: auto; min-height: calc(100vh - 260px); grid-template-columns: 1fr; }.result-panel { min-height: 580px; border-right: 0; }.map-panel { position: fixed; z-index: 1001; inset: 0; display: none; padding-top: 55px; background: white; }.map-panel.open { display: block; }.map-close { position: absolute; z-index: 1002; right: 12px; top: 10px; display: inline-flex; gap: 6px; align-items: center; padding: 7px 12px; border: 0; border-radius: 9px; background: white; box-shadow: var(--shadow-small); font-size: 12px; font-weight: 800; }.map-mobile-toggle { display: block; border: 1px solid var(--line); border-radius: 9px; padding: 8px 11px; background: white; }.trip-form-layout { grid-template-columns: 1fr; }.destination-picker { position: static; }.destination-picker #destination-map { height: 380px; }
    .coffee-fund-letter { grid-template-columns: 1fr; }.coffee-fund-letter-icon { width: 72px; height: 72px; border-radius: 21px 21px 21px 7px; font-size: 35px; }.coffee-fund-paypal { grid-template-columns: 86px minmax(0,1fr); gap: 24px; }.coffee-fund-paypal-mark { width: 86px; height: 86px; border-radius: 25px; font-size: 46px; }
}

@media (max-width: 560px) {
    .hero h1 { font-size: 47px; }.hero-actions { flex-direction: column; gap: 16px; }.hero-image-wrap { border-width: 7px; }.hero-image-wrap img { height: 400px; object-position: 61% center; }.floating-card { min-width: 205px; }.floating-card-top { left: -3px; }.floating-card-bottom { right: -3px; bottom: 35px; }
    .centered-heading h2, .split-heading h2, .steps-copy h2 { font-size: 39px; }.section { padding: 65px 0; }.steps-visual { min-height: 400px; }.map-paper { inset: 10px 0; }.map-family-card { bottom: 25px; }.safety-panel { padding: 35px 24px; }.safety-panel h2 { font-size: 35px; }.safety-points { grid-template-columns: 1fr; }.cta-card { padding: 39px 20px; }.cta-card h2 { font-size: 32px; }.footer-grid { grid-template-columns: 1fr 1fr; }.footer-grid > div:first-child { grid-column: 1 / -1; }.footer-bottom { flex-direction: column; gap: 5px; }
    .form-grid.two, .segmented-options, .interest-grid { grid-template-columns: 1fr; }.auth-aside { min-height: 470px; }.auth-aside h1 { font-size: 45px; }.auth-quote { display: none; }.auth-card-wrap { padding: 45px 18px; }.auth-card-head h2 { font-size: 32px; }.status-card { padding: 36px 23px; }
    .wizard-card { padding: 20px; }.language-row { grid-template-columns: 1fr; }.language-row select { margin-left: 36px; }.wizard-actions { align-items: stretch; flex-direction: column-reverse; gap: 17px; }.wizard-actions .button { width: 100%; }.wizard-actions .back-link { text-align: center; }.child-card { padding: 18px; }.portal-hero { padding-top: 30px; }.portal-heading .button { width: 100%; }.filter-bar { width: calc(100% - 14px); margin-left: 14px; }.result-panel { min-height: 650px; }.trip-create-heading h1 { font-size: 40px; }.trip-create-section { padding-top: 40px; }.destination-picker { padding: 17px; }.destination-picker #destination-map { height: 330px; }.principle-grid { grid-template-columns: 1fr; }.static-hero { padding: 70px 0 60px; }.static-hero h1 { font-size: 44px; }
    .coffee-fund-reasons { grid-template-columns: 1fr; }.coffee-fund-paypal { grid-template-columns: 1fr; }.coffee-fund-paypal-mark { width: 72px; height: 72px; border-radius: 21px; font-size: 39px; }.coffee-fund-paypal-button { width: 100%; }.coffee-fund-thanks { align-items: flex-start; text-align: left; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/* Profile management */
.nav-profile { color: var(--ink); text-decoration: none; padding: 4px 8px 4px 4px; border-radius: 24px; transition: background .2s; }
.nav-profile:hover { background: var(--soft); }
.profile-page { background: #f3f7f5; }
.profile-hero { padding: 52px 0; background: var(--teal); color: white; }
.profile-hero-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.profile-identity { display: flex; align-items: center; gap: 24px; }
.profile-identity > img, .profile-avatar-large { width: 118px; height: 118px; flex: 0 0 auto; border: 6px solid rgba(255,255,255,.22); border-radius: 32px; object-fit: cover; box-shadow: 0 15px 35px rgba(4,38,39,.2); }
.profile-avatar-large { display: grid; place-items: center; background: #d9efec; color: var(--teal); font-size: 42px; font-weight: 800; }
.profile-identity .eyebrow { margin-bottom: 8px; color: #ffe0a1; }
.profile-identity h1 { margin: 0 0 6px; color: white; font-size: clamp(34px, 5vw, 52px); }
.profile-identity p { margin: 0; color: rgba(255,255,255,.7); }
.profile-content { padding: 52px 0 95px; }
.profile-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(290px, .75fr); align-items: start; gap: 22px; }
.profile-main, .profile-side { display: grid; gap: 22px; }
.profile-panel { padding: 28px; border: 1px solid rgba(17,100,102,.1); border-radius: 21px; background: white; box-shadow: 0 8px 30px rgba(23,59,59,.055); }
.profile-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.profile-panel-head span { color: var(--coral); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.profile-panel-head h2 { margin: 3px 0 0; font-size: 24px; }
.profile-panel-head a { flex: 0 0 auto; color: var(--teal); font-size: 12px; font-weight: 800; text-decoration: none; }
.profile-about > p { color: var(--muted); font-size: 15px; line-height: 1.75; }
.profile-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 25px 0 0; }
.profile-facts div { padding: 13px 15px; border-radius: 12px; background: var(--soft); }
.profile-facts dt { color: var(--muted); font-size: 10px; }
.profile-facts dd { margin: 2px 0 0; font-size: 13px; font-weight: 700; }
.profile-children-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.profile-child { display: flex; align-items: center; gap: 13px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; }
.profile-child > img, .profile-child > span { width: 57px; height: 57px; flex: 0 0 auto; border-radius: 15px; object-fit: cover; }
.profile-child > span { display: grid; place-items: center; background: #fff0d2; color: #9b6a0d; font-weight: 800; }
.profile-child h3 { margin: 0 0 3px; font-size: 16px; }
.profile-child p { margin: 0; color: var(--muted); font-size: 11px; }
.profile-child small { color: var(--teal); font-size: 10px; }
.profile-tag-list { display: grid; gap: 8px; }
.profile-tag-list > span { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 10px; background: var(--soft); }
.profile-tag-list b { font-size: 12px; }.profile-tag-list small { color: var(--muted); font-size: 10px; }
.profile-interest-list { display: flex; flex-wrap: wrap; gap: 8px; }
.profile-interest-list span { display: inline-flex; align-items: center; gap: 7px; padding: 8px 10px; border: 1px solid color-mix(in srgb, var(--tag-color) 30%, white); border-radius: 10px; background: color-mix(in srgb, var(--tag-color) 9%, white); font-size: 11px; font-weight: 700; }
.profile-interest-list b { font-size: 16px; }
.profile-privacy-card { display: flex; gap: 12px; padding: 20px; border-radius: 17px; background: #e3f1ee; }
.profile-privacy-card > span { font-size: 22px; }.profile-privacy-card strong { font-size: 12px; }.profile-privacy-card p { margin: 3px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.profile-edit-nav-wrap { border-bottom: 1px solid var(--line); background: white; }
.profile-edit-nav { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.profile-edit-back { color: var(--muted); font-size: 12px; font-weight: 700; text-decoration: none; }
.profile-edit-nav nav { display: flex; align-items: center; gap: 6px; }
.profile-edit-nav nav a { padding: 8px 12px; border-radius: 9px; color: var(--muted); font-size: 12px; font-weight: 700; text-decoration: none; }
.profile-edit-nav nav a.active { background: var(--teal-soft); color: var(--teal); }
.current-upload { display: flex; align-items: center; gap: 9px; margin-bottom: 7px; padding: 8px; border: 1px solid transparent; border-radius: 10px; background: var(--soft); color: var(--muted); font-size: 10px; transition: border-color .2s,background .2s; }
.current-upload img { width: 42px; height: 42px; border-radius: 9px; object-fit: cover; transition: filter .2s,opacity .2s; }
.current-upload-copy { min-width: 0; flex: 1; }.current-upload-copy strong,.current-upload-copy small { display: block; }.current-upload-copy small[hidden] { display: none; }.current-upload-copy strong { color: var(--ink); font-size: 10px; }.current-upload-copy small { margin-top: 2px; color: var(--danger); font-size: 8px; font-weight: 750; }
.image-remove-choice { position: relative; flex: 0 0 auto; cursor: pointer; }.image-remove-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }.image-remove-choice span { display: inline-flex; align-items: center; min-height: 30px; padding: 6px 9px; border: 1px solid #e5b9b3; border-radius: 8px; background: var(--paper); color: var(--danger); font-size: 8px; font-weight: 800; transition: border-color .2s,background .2s,color .2s; }.image-remove-choice:hover span { border-color: var(--danger); }.image-remove-choice input:focus-visible + span { outline: 3px solid rgba(243,182,58,.65); outline-offset: 2px; }.image-remove-choice input:checked + span { border-color: var(--danger); background: #ffe5e1; color: #9f382f; }
.current-upload.pending-removal { border-color: #e5b9b3; background: #fff2ef; }.current-upload.pending-removal img { filter: grayscale(1); opacity: .35; }
.current-upload.compact { margin-bottom: 6px; padding: 5px; }.current-upload.compact img { width: 34px; height: 34px; }

/* Stable map layout */
.portal-hero { position: relative; z-index: 4; box-shadow: 0 5px 22px rgba(23,59,59,.045); }
.explore-shell { height: clamp(590px, calc(100vh - 350px), 760px); grid-template-columns: minmax(350px, 410px) minmax(0, 1fr); }
.result-panel { background: #f6f8f7; }
.result-panel-head { background: white; }
.result-search { position: relative; display: flex; align-items: center; margin: 12px 13px 3px; }
.result-search b { position: absolute; left: 13px; z-index: 1; color: var(--muted); font-size: 18px; font-weight: 500; }
.result-search input { width: 100%; height: 43px; padding: 9px 40px 9px 39px; border: 1px solid var(--line); border-radius: 12px; background: white; color: var(--ink); font-size: 12px; outline: 0; }
.result-search input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(17,100,102,.08); }
.result-search button { position: absolute; right: 7px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: var(--soft); color: var(--muted); cursor: pointer; }
.result-list { padding-top: 9px; }
.trip-card { padding: 15px; }
.trip-card-top { align-items: flex-start; }
.trip-card-title { min-width: 0; display: block; padding-top: 1px; }
.trip-card-title > strong { display: block; overflow: hidden; margin-bottom: 4px; color: var(--ink); font-size: 15px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.trip-card-full { border-color: #ead59a; }.trip-availability-badge { display: inline-flex; width: fit-content; margin-top: 7px; padding: 4px 7px; border: 1px solid #ead59a; border-radius: 20px; background: #fff4d5; color: #78560e; font-size: 8px; font-weight: 850; }.trip-card-tools a.waitlist-link { background: #fff1d4; color: #78560e; }
.trip-person > i { margin-left: auto; color: var(--coral); font-style: normal; font-weight: 800; }
.map-panel { min-width: 0; overflow: hidden; background: #dbe8e3; }
.map-panel #travel-map { position: absolute; inset: 0; z-index: 1; }
.map-toolbar { position: absolute; z-index: 500; left: 18px; top: 18px; }
.map-toolbar button { display: inline-flex; align-items: center; gap: 7px; padding: 9px 12px; border: 0; border-radius: 10px; background: rgba(255,255,255,.96); box-shadow: var(--shadow-small); color: var(--ink); cursor: pointer; font-size: 11px; font-weight: 800; }
.map-status { position: absolute; z-index: 600; top: 18px; left: 50%; width: min(440px, calc(100% - 190px)); padding: 10px 13px; border-radius: 10px; background: #fff1d4; box-shadow: var(--shadow-small); color: #78560e; font-size: 11px; text-align: center; transform: translateX(-50%); }
.map-fallback { height: 100%; display: grid; place-items: center; color: var(--muted); }
.map-legend { z-index: 500; left: 18px; bottom: 28px; }
.leaflet-control-zoom { border: 0 !important; box-shadow: var(--shadow-small) !important; }
.leaflet-control-zoom a { color: var(--ink) !important; border-color: var(--line) !important; }
.leaflet-control-attribution { padding: 3px 7px !important; background: rgba(255,255,255,.82) !important; font-family: var(--font-sans); font-size: 9px !important; }
.leaflet-popup-content-wrapper { border: 0; }
.popup-card > span { display: block; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.marker-pin { will-change: transform; }
body.map-open { overflow: hidden; }

@media (max-width: 900px) {
    .profile-layout { grid-template-columns: 1fr; }
    .profile-side { grid-template-columns: 1fr 1fr; }
    .profile-privacy-card { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
    .profile-hero-inner { align-items: flex-start; flex-direction: column; }
    .profile-edit-nav { align-items: stretch; flex-direction: column; gap: 7px; padding-block: 12px; }
    .profile-edit-nav nav { width: 100%; overflow-x: auto; }
    .profile-edit-nav nav a { flex: 0 0 auto; }
    .explore-shell { height: auto; grid-template-columns: 1fr; }
    .advanced-travel-filters { grid-template-columns: 1fr 190px; }
    .filter-summary { grid-column: 1 / -1; min-height: 25px; }
    .result-panel { min-height: calc(100vh - 300px); }
    .map-panel { padding-top: 0; }
    .map-panel #travel-map { top: 55px; height: auto; }
    .map-toolbar { top: 69px; }
    .map-status { top: 69px; width: calc(100% - 150px); }
    .map-close { height: 38px; }
}

@media (max-width: 560px) {
    .profile-hero { padding: 38px 0; }
    .profile-identity { align-items: flex-start; gap: 16px; }
    .profile-identity > img, .profile-avatar-large { width: 82px; height: 82px; border-radius: 23px; }
    .profile-avatar-large { font-size: 30px; }
    .profile-identity h1 { font-size: 31px; }
    .profile-hero .button { width: 100%; }
    .profile-content { padding-top: 30px; }
    .profile-panel { padding: 21px; }
    .profile-facts, .profile-children-grid, .profile-side { grid-template-columns: 1fr; }
    .profile-privacy-card { grid-column: auto; }
    .advanced-travel-filters { width: calc(100% - 28px); grid-template-columns: 1fr; align-items: stretch; }
    .age-filter-group > div { margin-right: -14px; }
    .filter-summary { grid-column: auto; }
    .region-filter-help { grid-column: auto; align-items: flex-start; }
    .map-toolbar button span, .map-legend strong { display: none; }
    .map-legend { right: 12px; left: auto; bottom: 18px; }
}

.region-location-ready { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 11px; background: #edf8f2; color: #34734a; }
.region-location-ready > span { width: 27px; height: 27px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #d5eedf; font-size: 11px; font-weight: 800; }
.region-location-ready p { margin: 0; color: #4f6c61; font-size: 9px; line-height: 1.5; }
.region-location-ready strong { color: #28613d; font-size: 10px; }

/* Collapsible family filters */
.travel-filter-toggle-row { display: flex; justify-content: flex-end; margin-top: 12px; }
.advanced-travel-filters { grid-template-columns: minmax(300px, 1.15fr) minmax(245px, .95fr) minmax(180px, .7fr) minmax(180px, .7fr); align-items: stretch; }
.advanced-filter-card { box-sizing: border-box; min-width: 0; min-height: 96px; display: flex; flex-direction: column; margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #f8fbfa; }
.advanced-filter-card > .advanced-filter-label { display: block; margin-bottom: 8px; color: var(--muted); font-size: 9px; font-weight: 800; line-height: 1.2; text-transform: uppercase; letter-spacing: .07em; }
.age-filter-group > div { flex: 1; align-items: center; }
.age-filter-group label span { min-height: 40px; }
.meeting-filter select, .radius-filter select { width: 100%; min-height: 40px; padding: 7px 32px 7px 10px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); font-size: 10px; font-weight: 700; }
.travel-date-filter > div { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.travel-date-filter label { position: relative; min-width: 0; }
.travel-date-filter label > span { position: absolute; z-index: 1; left: 9px; top: 5px; color: var(--muted); font-size: 7px; font-weight: 800; text-transform: uppercase; }
.travel-date-filter input { box-sizing: border-box; width: 100%; min-width: 0; min-height: 40px; padding: 15px 6px 3px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); font: inherit; font-size: 9px; }
.travel-date-filter input:focus { border-color: var(--teal); outline: 3px solid rgba(17,100,102,.08); }
.travel-date-filter > small { display: block; margin-top: 4px; color: var(--muted); font-size: 7px; }
.advanced-travel-filters .filter-summary { grid-column: 1 / -1; min-height: 0; justify-content: flex-end; }
.advanced-filter-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 11px; background: white; color: var(--ink); cursor: pointer; font-size: 11px; }
.advanced-filter-toggle > span { color: var(--teal); font-size: 14px; }
.advanced-filter-toggle strong { font-size: 11px; }
.advanced-filter-toggle b { padding: 3px 7px; border-radius: 20px; background: var(--coral); color: white; font-size: 8px; }
.advanced-filter-toggle i { color: var(--muted); font-size: 13px; font-style: normal; transition: transform .2s; }
.advanced-filter-toggle.open i { transform: rotate(180deg); }
.advanced-filter-toggle.open, .advanced-filter-toggle.has-active-filters { border-color: var(--teal); background: var(--teal-soft); color: var(--teal); }
.advanced-filter-toggle:focus-visible { outline: 3px solid rgba(243,182,58,.65); outline-offset: 2px; }
.advanced-travel-filters[hidden] { display: none; }
.advanced-travel-filters:not([hidden]) { animation: filterReveal .18s ease-out; }
.explore-shell { height: clamp(590px, calc(100vh - 285px), 760px); }
.explore-shell.advanced-filters-visible { height: clamp(590px, calc(100vh - 385px), 760px); }
@keyframes filterReveal { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 1050px) {
    .advanced-travel-filters { grid-template-columns: 1fr 1fr; }
    .age-filter-group { grid-column: auto; }
    .filter-summary, .region-filter-help { grid-column: 1 / -1; }
    .explore-shell.advanced-filters-visible { height: clamp(590px, calc(100vh - 455px), 760px); }
}

/* Travel experience tiers */
.profile-achievement-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 11px; }
.profile-achievement-badge { box-sizing: border-box; height: 38px; display: inline-flex; align-items: center; gap: 8px; padding: 5px 9px 5px 6px; border: 1px solid color-mix(in srgb, var(--achievement-color) 55%, white); border-radius: 20px; background: rgba(255,255,255,.14); color: white; text-decoration: none; }
.profile-achievement-badge > b { width: 26px; height: 26px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: color-mix(in srgb, var(--achievement-color) 75%, white); color: white; font-size: 13px; line-height: 1; }
.profile-achievement-badge > span { display: grid; line-height: 1.05; }
.profile-achievement-badge small { color: rgba(255,255,255,.68); font-size: 7px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.profile-achievement-badge strong { color: white; font-size: 10px; white-space: nowrap; }
.profile-achievement-badge em { padding-left: 7px; border-left: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.75); font-size: 8px; font-style: normal; font-weight: 700; white-space: nowrap; }
.travel-level-panel { overflow: hidden; border-top: 4px solid var(--tier-color); }
.travel-level-panel .profile-panel-head { align-items: center; margin-bottom: 15px; }
.travel-level-panel .profile-panel-head > b { padding: 5px 8px; border-radius: 20px; background: color-mix(in srgb, var(--tier-color) 12%, white); color: var(--tier-color); font-size: 9px; }
.travel-level-panel > p { margin: 0 0 14px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.travel-level-progress { height: 7px; overflow: hidden; border-radius: 10px; background: var(--soft); }
.travel-level-progress i { display: block; height: 100%; border-radius: inherit; background: var(--tier-color); }
.travel-level-panel > small { display: block; margin-top: 7px; color: var(--muted); font-size: 9px; }
.travel-level-max { padding: 9px 11px; border-radius: 10px; background: #fff4ce; color: #7a5b00; font-size: 10px; font-weight: 800; text-align: center; }
.travel-level-list { margin-top: 15px; padding-top: 12px; border-top: 1px solid var(--line); }
.travel-level-list summary { color: var(--teal); cursor: pointer; font-size: 10px; font-weight: 800; }
.travel-level-list ol { display: grid; gap: 5px; margin: 10px 0 0; padding: 0; list-style: none; }
.travel-level-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 8px; border-radius: 8px; color: var(--muted); font-size: 9px; }
.travel-level-list li.current { background: color-mix(in srgb, var(--tier-color) 12%, white); color: var(--tier-color); font-weight: 800; }
.travel-level-list li.reached { color: var(--ink); }
.travel-level-list li > small { font-size: 8px; }
.trip-tier { width: fit-content; display: block; margin-top: 3px; color: var(--tier-color); font-size: 8px; font-weight: 800; }
@media (max-width: 820px) {
    .explore-shell, .explore-shell.advanced-filters-visible { height: auto; }
}
@media (max-width: 560px) {
    .travel-filter-toggle-row { width: calc(100% - 28px); }
    .advanced-filter-toggle { width: 100%; justify-content: center; }
    .advanced-travel-filters { grid-template-columns: 1fr; }
    .age-filter-group, .filter-summary, .region-filter-help { grid-column: auto; }
}

/* Own trip management */
.trip-meeting-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 700px) {
    .trip-meeting-options { grid-template-columns: 1fr; }
}
.own-trip-actions { flex: 0 0 auto !important; display: flex; align-items: center; gap: 9px; }
.own-trip-edit { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 6px 11px; border: 1px solid #c9dbd7; border-radius: 9px; background: white; color: var(--teal); font-size: 11px; font-weight: 800; text-decoration: none; transition: border-color .2s, background .2s; }
.own-trip-edit:hover { border-color: var(--teal); background: var(--teal-soft); }

@media (max-width: 650px) {
    .own-trip-grid article { align-items: flex-start; flex-wrap: wrap; }
    .own-trip-grid article > div:not(.own-trip-actions) { min-width: calc(100% - 50px); }
    .own-trip-actions { width: 100%; justify-content: flex-end; padding-top: 10px; border-top: 1px solid var(--line); }
}

/* Kinder-Reisemodul */
.child-profile-details { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fbfdfc; }
.child-profile-details summary { padding: 15px 17px; cursor: pointer; color: var(--teal); font-size: 12px; font-weight: 850; list-style: none; }
.child-profile-details summary::-webkit-details-marker { display: none; }
.child-profile-details[open] summary { border-bottom: 1px solid var(--line); background: var(--teal-soft); }
.child-details-body { padding: 17px; }
.child-interest-grid,.choice-row { display: flex; flex-wrap: wrap; gap: 7px; }
.choice-chip { position: relative; cursor: pointer; }
.choice-chip input { position: absolute; opacity: 0; pointer-events: none; }
.choice-chip span { display: inline-flex; align-items: center; min-height: 36px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 20px; background: white; color: var(--ink); font-size: 10px; font-weight: 750; }
.choice-chip input:checked + span { border-color: var(--teal); background: var(--teal-soft); color: var(--teal); box-shadow: 0 0 0 2px rgba(17,100,102,.08); }
.choice-chip input:focus-visible + span { outline: 3px solid rgba(243,182,58,.55); outline-offset: 2px; }
.checkbox-line { display: flex; align-items: flex-start; gap: 9px; color: var(--ink); font-size: 10px; font-weight: 700; }
.checkbox-line input { margin-top: 2px; accent-color: var(--teal); }
.privacy-blur { filter: blur(8px); transform: scale(1.08); transition: filter .2s; }
.privacy-blur:hover,.privacy-blur:focus { filter: blur(4px); }
.child-profile-summary { align-items: flex-start; }
.child-profile-summary > div { min-width: 0; }
.child-profile-summary h3 small { display: block; color: var(--muted); font: 700 8px/1.4 inherit; }
.child-mini-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.child-mini-tags span { padding: 4px 7px; border-radius: 12px; background: #edf6f3; color: #315e59; font-size: 8px; font-weight: 750; }
.child-intro-lines { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 12px; }
.child-intro-lines span { padding: 9px 11px; border-radius: 11px; background: var(--soft); font-size: 10px; }
.child-intro-lines small { display: block; margin-bottom: 2px; color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.child-rhythm-facts { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.child-rhythm-facts span { color: #546d69; font-size: 8px; font-weight: 700; }
.child-match-panel { background: linear-gradient(145deg,#fff 40%,#eef8f5); }
.match-score-orb { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--teal); color: white; font-size: 13px; font-weight: 900; }
.child-match-bars { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.child-match-bars span { display: grid; gap: 6px; }
.child-match-bars small { color: var(--muted); font-size: 9px; font-weight: 800; }
.child-match-bars i { overflow: hidden; height: 8px; border-radius: 8px; background: #dfeae7; }
.child-match-bars b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--teal),#54aaa0); }
.match-reason-list { display: grid; gap: 6px; margin: 14px 0 0; padding: 0; list-style: none; color: #41635f; font-size: 10px; }
.child-interest-filter { grid-column: span 2; }
.filter-checkbox-line { display: flex; align-items: center; gap: 8px; min-height: 38px; }
.filter-checkbox-line input { width: 17px; height: 17px; accent-color: var(--teal); }
.filter-checkbox-line b { font-size: 9px; line-height: 1.4; }
.availability-row { grid-template-columns: minmax(145px,1.4fr) repeat(4,minmax(105px,.8fr)) 38px; }
.child-travel-team { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 15px; }
.child-travel-team article { display: flex; align-items: flex-start; gap: 11px; padding: 14px; border: 1px solid var(--line); border-radius: 15px; background: var(--soft); }
.child-travel-team article > span { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 auto; border-radius: 12px; background: white; color: var(--teal); font-size: 19px; font-weight: 900; }
.child-travel-team strong,.child-travel-team small { display: block; }
.child-travel-team small { color: var(--muted); font-size: 8px; }
.child-travel-team p { margin: 7px 0 0; font-size: 9px; }
.activity-suggestions { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 15px; }
.activity-suggestions small { margin-right: 4px; color: var(--muted); font-weight: 800; }
.activity-suggestions span { padding: 5px 8px; border-radius: 15px; background: #fff3d9; color: #765411; font-size: 8px; font-weight: 750; }
.child-activity-list { display: grid; gap: 10px; }
.child-activity-list > article { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; }
.child-activity-list h3 { margin: 3px 0; font-size: 15px; }
.child-activity-list p { margin: 5px 0; color: var(--muted); font-size: 10px; }
.child-votes { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.child-votes span { padding: 4px 7px; border-radius: 10px; background: var(--soft); font-size: 8px; }
.child-votes .vote-yes { background: #e2f4e9; color: #24633c; }.child-votes .vote-no { background: #fff0ed; color: #a34334; }
.child-activity-actions { display: grid; align-content: start; gap: 7px; min-width: 190px; }
.child-activity-actions label { display: grid; grid-template-columns: 1fr 115px; align-items: center; gap: 6px; font-size: 8px; font-weight: 800; }
.child-activity-actions select { min-height: 32px; border: 1px solid var(--line); border-radius: 8px; background: white; font-size: 8px; }
.child-packing-groups,.child-feedback-forms { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.child-packing-groups > article,.child-feedback-forms > form { padding: 15px; border: 1px solid var(--line); border-radius: 15px; background: #fbfdfc; }
.child-packing-groups h3,.child-feedback-forms h3 { margin: 0 0 11px; font-size: 15px; }.child-packing-groups h3 small { color: var(--muted); font-size: 8px; }
.packing-row { display: grid; grid-template-columns: 27px 1fr auto; align-items: center; gap: 7px; padding: 7px 0; border-bottom: 1px solid #edf2f0; font-size: 9px; }
.packing-row button { border: 0; background: transparent; color: var(--teal); cursor: pointer; }.packing-row.completed span { color: var(--muted); text-decoration: line-through; }
.child-consent-list,.child-emergency-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 13px; }
.child-consent-list article,.child-emergency-grid article { padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--soft); }
.child-consent-list article > div { display: grid; gap: 4px; margin: 8px 0; font-size: 9px; }.child-consent-list p,.child-emergency-grid p { margin: 6px 0; font-size: 9px; line-height: 1.55; }.child-consent-list .revoked { opacity: .62; }
.child-diary-grid,.report-child-diary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.child-diary-grid > article,.report-child-diary > article { overflow: hidden; padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: #fffdf9; }
.child-diary-grid article > img,.report-child-diary img { width: calc(100% + 30px); max-height: 280px; margin: 12px -15px; object-fit: cover; }
.child-diary-head { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 9px; }.child-diary-head > span { font-size: 26px; }.child-diary-head h3,.report-child-diary h3 { margin: 2px 0; font-size: 15px; }.child-diary-grid article > p,.report-child-diary p { font-size: 10px; line-height: 1.65; }.diary-consent-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.report-child-diary { margin-top: 16px; }.report-child-diary > article { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); padding: 0; }.report-child-diary img { width: 100%; height: 100%; max-height: none; margin: 0; }.report-child-diary article > div { padding: 18px; }

@media (max-width: 900px) {
    .availability-row { grid-template-columns: 1fr 1fr; }
    .child-interest-filter { grid-column: auto; }
    .child-travel-team,.child-packing-groups,.child-feedback-forms,.child-consent-list,.child-emergency-grid { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
    .child-match-bars,.child-intro-lines,.child-diary-grid,.report-child-diary { grid-template-columns: 1fr; }
    .child-activity-list > article { grid-template-columns: 1fr; }
    .child-activity-actions { min-width: 0; }
    .child-diary-head { grid-template-columns: 34px minmax(0,1fr); }.child-diary-head > b { grid-column: 2; justify-self: start; }
    .report-child-diary img { max-height: 260px; }
}

/* Reisestil, Matching und gemeinsame Reisezentrale */
.inline-alert.success { border: 1px solid #b9dfc5; background: #eaf7ee; color: #2e6b43; }
.compatibility-field-grid { align-items: end; }
.availability-list { display: grid; gap: 12px; }
.availability-row { display: grid; grid-template-columns: minmax(150px, 1.4fr) repeat(2, minmax(125px, .8fr)) minmax(125px, .8fr) 38px; align-items: end; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--soft); }
.availability-row .field { gap: 5px; }.availability-row .field > span { font-size: 10px; }.availability-remove { margin-bottom: 6px; }.availability-add { align-self: flex-start; }
.trust-request-card { display: grid; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 15px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--soft); }
.trust-request-card > span { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: #fff; font-size: 20px; }
.trust-request-card h3 { margin: 0 0 4px; font-size: 15px; }.trust-request-card p { margin: 0 0 6px; color: var(--muted); font-size: 10px; line-height: 1.5; }.trust-request-card.verified { border-color: #b9dfc5; background: #edf8f0; }.trust-check { color: #3f8c78; font-size: 24px; }
.push-settings-card { display: grid; gap: 16px; margin-top: 26px; padding-top: 26px; border-top: 1px solid var(--line); }.push-settings-card > div:first-child { display: flex; align-items: center; gap: 14px; }.push-settings-card h2 { margin: 0 0 4px; font-size: 19px; }.push-settings-card p { margin: 0; color: var(--muted); font-size: 10px; }.push-settings-icon { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 auto; border-radius: 13px; background: var(--teal-soft); }.push-settings-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }.push-settings-actions p.error { color: var(--danger); }.push-diagnostic { display: block !important; padding: 13px 15px; border: 1px solid #edc9a4; border-radius: 11px; background: #fff8eb; color: #725018; }.push-diagnostic strong { font-size: 10px; }.push-diagnostic ul { margin: 8px 0; padding-left: 18px; font-size: 9px; line-height: 1.65; }.push-diagnostic small { color: var(--muted); font-size: 8px; }
.mobile-push-guide { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 12px; padding: 14px; border: 1px solid #cfe3df; border-radius: 13px; background: linear-gradient(135deg,#f1faf7,#fffaf2); }.mobile-push-guide-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: #fff; font-size: 18px; box-shadow: 0 5px 14px rgba(17,100,102,.08); }.mobile-push-guide strong { display: block; margin-bottom: 4px; font-size: 11px; }.mobile-push-guide .button { margin-top: 11px; }.mobile-push-steps { display: grid; gap: 6px; margin: 11px 0 0; padding-left: 20px; color: var(--muted); font-size: 9px; line-height: 1.5; }.mobile-push-steps strong { display: inline; font-size: inherit; }
.match-hero { background: linear-gradient(135deg, #123f40, #1d6260); color: #fff; }.match-hero .back-link,.match-hero p { color: rgba(255,255,255,.75); }.match-hero h1 { color: #fff; }.match-hero-grid { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; }.match-score-large { display: grid; place-items: center; width: 130px; height: 130px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 8px rgba(255,255,255,.05); }.match-score-large strong { font-size: 31px; }.match-score-large span { margin-top: -20px; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }.match-details-grid { display: grid; grid-template-columns: minmax(0,1fr) 340px; align-items: start; gap: 26px; }.match-details-grid main,.match-details-grid aside { display: grid; gap: 20px; }.match-reason-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 17px; }.match-reason-grid span { padding: 10px 12px; border-radius: 10px; background: #eaf7ee; color: #356d49; font-size: 10px; font-weight: 800; }.compatibility-comparison-list { display: grid; gap: 9px; }.compatibility-comparison-list > div { display: grid; grid-template-columns: minmax(100px,.7fr) 1fr; gap: 4px 14px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; }.compatibility-comparison-list span { grid-row: 1/3; color: var(--muted); font-size: 10px; }.compatibility-comparison-list strong,.compatibility-comparison-list small { font-size: 10px; }.compatibility-comparison-list .aligned { border-color: #cbe4d3; background: #f1faf4; }.match-trip-facts dl { display: grid; gap: 9px; }.match-trip-facts dl div { display: flex; justify-content: space-between; gap: 15px; border-bottom: 1px solid var(--line); padding-bottom: 8px; }.match-trip-facts dt { color: var(--muted); font-size: 9px; }.match-trip-facts dd { margin: 0; font-size: 10px; font-weight: 800; text-align: right; }.match-safety-card ul { padding-left: 18px; color: var(--muted); font-size: 10px; line-height: 1.8; }.trip-card-tools a { padding: 4px 7px; border-radius: 8px; background: var(--teal-soft); color: var(--teal); font-size: 8px; font-weight: 800; text-decoration: none; }
.compatibility-profile-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 15px; }.compatibility-profile-list span,.availability-public-list span { display: grid; gap: 2px; padding: 10px; border-radius: 10px; background: var(--soft); }.compatibility-profile-list small,.availability-public-list small { color: var(--muted); font-size: 8px; }.compatibility-profile-list strong,.availability-public-list strong { font-size: 10px; }.availability-public-list { display: grid; gap: 8px; }
.journey-suite-section { padding: 15px 0 100px; background: #f3f7f5; }.journey-anchor-nav { position: sticky; z-index: 20; top: 0; display: flex; gap: 7px; overflow-x: auto; margin: 25px 0; padding: 10px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.96); box-shadow: 0 8px 24px rgba(23,59,59,.06); backdrop-filter: blur(10px); }.journey-anchor-nav a { flex: 0 0 auto; padding: 8px 11px; border-radius: 9px; background: var(--soft); color: var(--teal); font-size: 9px; font-weight: 800; text-decoration: none; }.journey-panel { scroll-margin-top: 85px; margin-top: 22px; padding: 28px; border: 1px solid rgba(17,100,102,.1); border-radius: 23px; background: #fff; box-shadow: 0 10px 32px rgba(23,59,59,.05); }.journey-panel-head { display: flex; align-items: flex-start; gap: 15px; margin-bottom: 22px; }.journey-panel-head > span { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 auto; border-radius: 14px; background: var(--teal-soft); color: var(--teal); font-size: 21px; font-weight: 900; }.journey-panel-head small { color: var(--coral); font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: .1em; }.journey-panel-head h2 { margin: 3px 0; font-size: 23px; }.journey-panel-head p { margin: 0; color: var(--muted); font-size: 10px; }
.journey-person { display: flex; align-items: center; gap: 9px; }.journey-person > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--teal-soft); color: var(--teal); font-size: 11px; font-weight: 900; }.getting-status-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 12px; }.getting-status-grid > article { padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--soft); }.getting-status-grid article > small { display: block; margin: 10px 0 5px; color: var(--coral); font-weight: 800; }.getting-status-grid ul { display: grid; gap: 4px; padding: 0; list-style: none; }.getting-status-grid li { color: var(--muted); font-size: 9px; }.getting-status-grid li::before { content: '○'; margin-right: 6px; }.getting-status-grid li.done { color: #39724d; font-weight: 700; }.getting-status-grid li.done::before { content: '✓'; }.getting-status-grid p { color: var(--muted); font-size: 9px; line-height: 1.55; }
.journey-form-drawer { margin-top: 18px; border-top: 1px solid var(--line); }.journey-form-drawer > summary { padding: 16px 0 0; color: var(--teal); cursor: pointer; font-size: 11px; font-weight: 900; }.journey-form-drawer > form,.journey-form-drawer > .inline-alert { margin-top: 17px; }.checklist-choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.checklist-choice-grid label { display: flex; align-items: flex-start; gap: 9px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); font-size: 9px; }.checklist-choice-grid input { accent-color: var(--teal); }
.group-message-thread { display: grid; gap: 9px; max-height: 420px; overflow-y: auto; padding: 15px; border-radius: 14px; background: var(--soft); }.group-message-thread article { max-width: 75%; padding: 10px 12px; border-radius: 12px 12px 12px 3px; background: #fff; }.group-message-thread article.mine { justify-self: end; border-radius: 12px 12px 3px 12px; background: var(--teal); color: #fff; }.group-message-thread strong,.group-message-thread time { font-size: 8px; }.group-message-thread p { margin: 4px 0; font-size: 10px; line-height: 1.5; }.group-message-thread time { opacity: .65; }.group-message-form { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 12px; margin-top: 13px; }
.balance-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(175px,1fr)); gap: 10px; }.balance-grid article { display: grid; gap: 4px; padding: 14px; border-radius: 13px; background: var(--soft); }.balance-grid small,.balance-grid span { color: var(--muted); font-size: 8px; }.balance-grid strong { font-size: 19px; }.balance-grid strong.positive { color: #39724d; }.balance-grid strong.negative { color: var(--coral); }.expense-list { display: grid; gap: 9px; margin-top: 17px; }.expense-list > article { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 13px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; }.expense-list h3 { margin: 3px 0; font-size: 13px; }.expense-list p,.expense-list small { margin: 0; color: var(--muted); font-size: 8px; }.expense-actions { display: flex; align-items: center; gap: 5px; }.expense-actions .status-pill { border: 0; cursor: pointer; }
.private-album-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(180px,1fr)); gap: 12px; }.private-album-grid figure { overflow: hidden; margin: 0; border: 1px solid var(--line); border-radius: 14px; background: var(--soft); }.private-album-grid img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }.private-album-grid figcaption { display: grid; gap: 3px; padding: 10px; }.private-album-grid figcaption span { font-size: 9px; font-weight: 800; }.private-album-grid figcaption small { color: var(--muted); font-size: 8px; }.private-album-grid figcaption form { justify-self: end; }.private-album-grid figcaption button { border: 0; background: transparent; color: var(--danger); cursor: pointer; font-size: 8px; }
.checkin-grid,.emergency-contact-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 10px; }.checkin-grid article { display: flex; gap: 11px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); }.checkin-grid article > b { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto; border-radius: 50%; background: #fff; }.checkin-grid article div { display: grid; gap: 2px; }.checkin-grid span,.checkin-grid p,.checkin-grid small { margin: 0; color: var(--muted); font-size: 8px; }.checkin-grid article.urgent { border-color: #f0a79e; background: #fff0ee; }.checkin-form { display: grid; grid-template-columns: 180px 1fr auto; align-items: end; gap: 10px; margin-top: 15px; }.journey-subheading { margin: 24px 0 11px; font-size: 14px; }.emergency-contact-grid article { padding: 13px; border-radius: 12px; background: var(--soft); }.emergency-contact-grid p,.emergency-contact-grid small { color: var(--muted); font-size: 9px; line-height: 1.5; }
.private-checklist { display: grid; gap: 7px; }.private-checklist article { display: grid; grid-template-columns: 30px 1fr auto; align-items: center; gap: 9px; padding: 10px; border-radius: 10px; background: var(--soft); }.private-checklist article.completed span { color: var(--muted); text-decoration: line-through; }.private-checklist form button:not(.icon-action) { display: grid; place-items: center; width: 26px; height: 26px; border: 0; border-radius: 50%; background: #fff; color: var(--teal); cursor: pointer; }.private-checklist span { font-size: 10px; font-weight: 700; }.inline-add-form { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 10px; margin-top: 13px; }.waitlist-list,.conflict-status-list { display: grid; gap: 9px; }.waitlist-list article { display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; }.waitlist-list a { color: var(--teal); font-size: 11px; font-weight: 800; }.waitlist-list small { color: var(--muted); font-size: 8px; }.conflict-status-list article { display: grid; gap: 6px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }.conflict-status-list p,.conflict-status-list small { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }.empty-journey-copy { color: var(--muted); font-size: 10px; }

.admin-insight-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 18px 0; }
.admin-funnel { display: grid; gap: 12px; margin-top: 15px; }.admin-funnel div { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 10px; overflow: hidden; padding: 11px 12px 15px; border-radius: 10px; background: var(--soft); }.admin-funnel span,.admin-funnel strong { position: relative; z-index: 1; font-size: 10px; }.admin-funnel i { position: absolute; bottom: 0; left: 0; height: 4px; border-radius: 0 6px 6px 0; background: linear-gradient(90deg,var(--coral),var(--yellow)); }
.admin-activity { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 15px; }.admin-activity span { display: grid; gap: 2px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; color: var(--muted); font-size: 9px; }.admin-activity strong { color: var(--ink); font-family: var(--font-display); font-size: 24px; }
.admin-review-section { margin-top: 24px; }.admin-review-section > h2 { margin-bottom: 12px; }.admin-review-section .feature-card-grid { align-items: start; }.admin-review-meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 9px 0; }.admin-review-meta span { padding: 5px 8px; border-radius: 999px; background: var(--soft); color: var(--muted); font-size: 8px; font-weight: 800; }.admin-review-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }.admin-review-actions .button { flex: 1; }
.waitlist-manage-intro { margin-bottom: 15px; }.waitlist-manage-list { display: grid; gap: 12px; }.waitlist-manage-list > article { display: grid; grid-template-columns: 56px 1fr auto; align-items: center; gap: 15px; }.waitlist-family-avatar img,.waitlist-family-avatar span { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; background: var(--yellow); color: var(--ink); font-family: var(--font-display); font-size: 22px; }.waitlist-family-name { color: var(--ink); font-weight: 850; text-decoration: none; }.waitlist-manage-list p,.waitlist-manage-list small { margin: 3px 0 0; color: var(--muted); font-size: 9px; }

@media (max-width: 850px) {
    .availability-row { grid-template-columns: 1fr 1fr; }.availability-remove { align-self: center; margin: 0; }.match-details-grid { grid-template-columns: 1fr; }.group-message-form,.checkin-form { grid-template-columns: 1fr; }.journey-anchor-nav { top: 0; }
}
@media (max-width: 600px) {
    .compatibility-field-grid,.match-reason-grid,.checklist-choice-grid,.compatibility-profile-list,.admin-insight-grid { grid-template-columns: 1fr; }.availability-row { grid-template-columns: 1fr; }.trust-request-card { grid-template-columns: 40px 1fr; }.trust-request-card > form,.trust-request-card > a,.trust-request-card > .trust-check { grid-column: 2; justify-self: start; }.match-hero-grid { grid-template-columns: 1fr; }.match-score-large { width: 105px; height: 105px; }.journey-panel { padding: 20px 16px; }.expense-list > article { grid-template-columns: 1fr auto; }.expense-actions { grid-column: 1/-1; }.group-message-thread article { max-width: 90%; }.inline-add-form,.waitlist-list article,.waitlist-manage-list > article { grid-template-columns: 1fr; }.journey-panel-head h2 { font-size: 19px; }.push-settings-actions { align-items: stretch; }.push-settings-actions .button { flex: 1 1 100%; }.push-settings-actions p { flex: 1 1 100%; }.mobile-push-guide { grid-template-columns: 36px minmax(0,1fr); padding: 12px; }.mobile-push-guide-icon { width: 36px; height: 36px; }
}

/* Portal feature suite: search, planning, trust and account safety */
.form-grid.three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.form-section-head.compact { margin-top: 12px; padding-top: 22px; border-top: 1px solid var(--line); }
.button-danger { background: var(--danger); box-shadow: 0 8px 20px rgba(188,61,61,.18); }
.text-danger-link { padding: 5px 0; border: 0; background: transparent; color: var(--danger); cursor: pointer; font-size: 10px; font-weight: 800; text-decoration: underline; }
.auth-help-links { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-top: 15px; }
.break-code { display: block; overflow-wrap: anywhere; white-space: normal; }
.recovery-code-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 12px; }
.recovery-code-grid code { padding: 7px; border-radius: 7px; background: white; color: var(--ink); text-align: center; }
.feature-steps { color: var(--muted); font-size: 12px; line-height: 1.8; }
.security-state { display: flex; align-items: center; gap: 13px; padding: 18px; border-radius: 15px; background: #e5f4ea; }
.security-state > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #3f8c78; color: white; font-weight: 900; }
.security-state p { margin: 2px 0 0; color: var(--muted); font-size: 10px; }
.security-card-stack { display: grid; gap: 20px; }
.security-password-form { margin-top: 25px; }
.security-password-note { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border-radius: 11px; background: var(--soft); color: var(--muted); font-size: 10px; }
.security-password-note > span { color: var(--teal); font-weight: 900; }.security-password-note p { margin: 0; }
.remembered-login-state { display: flex; align-items: center; gap: 14px; margin: 22px 0 18px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--soft); }
.remembered-login-state > span { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; border-radius: 50%; background: var(--teal); color: white; font-weight: 900; }
.remembered-login-state p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.remembered-login-card .button:disabled { opacity: .48; cursor: not-allowed; transform: none; box-shadow: none; }
.totp-enrollment { display: grid; grid-template-columns: minmax(220px, 250px) minmax(0, 1fr); gap: 28px; align-items: center; margin: 24px 0; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: #f8fbfa; }
.totp-qr-card { text-align: center; }
.totp-qr-card > strong { display: block; margin-top: 12px; font-size: 13px; }
.totp-qr-card > p, .totp-qr-card noscript p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.totp-qr { display: grid; place-items: center; width: min(100%, 230px); aspect-ratio: 1; margin: 0 auto; padding: 10px; border: 1px solid #d5e1df; border-radius: 14px; background: #fff; color: var(--muted); font-size: 11px; }
.totp-qr svg { display: block; width: 100%; height: 100%; }
.totp-qr-error { padding: 24px; border-color: #efd79c; background: #fff7df; color: #78560e; line-height: 1.5; }
.totp-setup-copy .feature-steps { margin: 0; padding-left: 20px; font-size: 13px; }
.totp-manual { margin-top: 16px; padding-top: 15px; border-top: 1px solid var(--line); }
.totp-manual summary { color: var(--teal); font-size: 12px; font-weight: 800; cursor: pointer; }
.totp-manual p { color: var(--muted); font-size: 11px; }
.totp-secret { display: block; overflow-wrap: anywhere; padding: 11px 12px; border: 1px dashed #b9cfca; border-radius: 9px; background: #fff; color: var(--ink); font-size: 13px; letter-spacing: .08em; }
.totp-confirm-form { padding-top: 22px; border-top: 1px solid var(--line); }
.danger-zone, .danger-zone-form { margin-top: 28px; padding-top: 25px; border-top: 1px solid #f0c7c2; }

.feature-page, .admin-page { background: #f3f7f5; }
.feature-hero { padding: 54px 0 42px; background: linear-gradient(135deg, var(--teal), #0b4d4f); color: white; }
.feature-hero h1 { margin: 8px 0 10px; color: white; font-size: clamp(38px, 5vw, 58px); }
.feature-hero > .container > p { max-width: 760px; margin-bottom: 18px; color: rgba(255,255,255,.76); }
.feature-hero .back-link { color: rgba(255,255,255,.75); }
.feature-hero-actions, .feature-card-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.feature-content { min-height: 430px; padding: 42px 0 90px; }
.feature-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.feature-card { padding: 24px; border: 1px solid var(--line); border-top: 4px solid var(--trip-color, var(--teal)); border-radius: 19px; background: white; box-shadow: var(--shadow-small); }
.feature-card h2 { margin: 5px 0 12px; font-size: 23px; }
.feature-card > p { color: var(--muted); font-size: 11px; line-height: 1.7; }
.feature-card-kicker { color: var(--coral); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.empty-feature-state { padding: 65px 25px; border: 1px dashed #b9cfca; border-radius: 22px; background: white; text-align: center; }
.empty-feature-state.compact { padding: 20px; }
.empty-feature-state > span { font-size: 42px; }
.empty-feature-state h2 { margin: 12px 0 5px; }
.empty-feature-state p { color: var(--muted); }
.filter-token-list { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0; }
.filter-token-list span, .trust-badges span { padding: 5px 8px; border-radius: 20px; background: var(--soft); color: var(--muted); font-size: 8px; font-weight: 800; }
.narrow-content { max-width: 720px; }
.notification-feed { display: grid; gap: 10px; }
.notification-item { display: grid; grid-template-columns: 42px 1fr; gap: 14px; padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: white; color: inherit; text-decoration: none; }
.notification-item.unread { border-left: 5px solid var(--coral); background: #fffdf9; }
.notification-item > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--teal-soft); }
.notification-item p { margin: 2px 0; color: var(--muted); font-size: 10px; }
.notification-item small { color: #91a09e; font-size: 8px; }
.compare-table-wrap { overflow-x: auto; border-radius: 18px; box-shadow: var(--shadow-small); }
.compare-table { width: 100%; min-width: 760px; border-collapse: collapse; background: white; }
.compare-table th, .compare-table td { padding: 15px; border: 1px solid var(--line); text-align: left; vertical-align: top; font-size: 11px; }
.compare-table thead th:not(:first-child) { min-width: 210px; }
.compare-table thead span, .compare-table thead strong, .compare-table thead small { display: block; }
.compare-table thead span { font-size: 25px; }.compare-table thead small { color: var(--muted); }
.planner-grid, .admin-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(280px,.75fr); align-items: start; gap: 22px; }
.planner-grid > aside, .admin-grid > aside, .planner-items { display: grid; gap: 13px; }
.planner-items { margin-top: 16px; }
.planner-item { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.planner-item.completed { opacity: .6; }.planner-item.completed h3 { text-decoration: line-through; }
.planner-item h3 { margin: 2px 0 5px; font-size: 16px; }.planner-item p { margin: 0; color: var(--muted); font-size: 10px; }
.planner-item > div:last-child { display: flex; gap: 4px; }.icon-action { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 8px; background: white; cursor: pointer; }
.change-request { padding: 12px 0; border-top: 1px solid var(--line); }.change-request p { color: var(--muted); font-size: 10px; }
.admin-stats { display: flex; flex-wrap: wrap; gap: 10px; }.admin-stats span { min-width: 105px; padding: 11px 14px; border-radius: 12px; background: rgba(255,255,255,.12); }.admin-stats strong, .admin-stats small { display: block; }.admin-stats strong { font-size: 23px; }.admin-stats small { color: rgba(255,255,255,.7); }
.moderation-card { margin-bottom: 12px; }.moderation-card > div:first-child { display: flex; align-items: center; gap: 9px; }

.portal-shortcuts { display: flex; gap: 8px; margin-top: 16px; }
.portal-shortcuts a, .portal-shortcuts button { min-height: 36px; padding: 7px 12px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--teal); cursor: pointer; font-size: 9px; font-weight: 800; text-decoration: none; }
.advanced-travel-filters { grid-template-columns: repeat(3, minmax(0,1fr)); }
.advanced-filter-card select, .advanced-filter-card > input, .budget-filter-input input { width: 100%; min-height: 40px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); font-size: 10px; font-weight: 700; }
.budget-filter-input { position: relative; }.budget-filter-input b { position: absolute; right: 11px; top: 8px; color: var(--muted); }.budget-filter-input input { padding-right: 30px; }
.advanced-filter-card > small { margin-top: 5px; color: var(--muted); font-size: 7px; }
.trip-card-tools { display: flex; justify-content: space-between; gap: 8px; padding: 9px 0; border-top: 1px solid var(--line); }
.trip-card-tools button, .trip-card-tools label { padding: 4px 7px; border: 0; border-radius: 8px; background: var(--soft); color: var(--teal); cursor: pointer; font-size: 8px; font-weight: 800; }
.trip-card-tools button[aria-pressed="true"] { background: #ffe9e5; color: var(--coral); }.trip-card-tools label input { margin-right: 4px; }
.match-score { width: 100%; align-items: flex-start !important; padding: 7px 9px; border-radius: 9px; background: #e9f5ed; color: #39724d; }.match-score small { color: #547164; }
.compare-floating-bar { position: fixed; z-index: 1800; left: 50%; bottom: 22px; transform: translateX(-50%); display: flex; align-items: center; gap: 13px; padding: 9px 12px; border-radius: 15px; background: var(--ink); color: white; box-shadow: var(--shadow); font-size: 10px; }.compare-floating-bar[hidden] { display: none; }.compare-floating-bar button { border: 0; background: transparent; color: #ffd4ce; cursor: pointer; }
.save-search-dialog { width: min(510px, calc(100% - 28px)); padding: 28px; border: 0; border-radius: 22px; color: var(--ink); background: var(--paper); box-shadow: 0 30px 90px rgba(11,54,55,.35); }.save-search-dialog::backdrop { background: rgba(9,40,41,.58); backdrop-filter: blur(3px); }.dialog-close { position: absolute; right: 14px; top: 12px; border: 0; background: transparent; cursor: pointer; font-size: 24px; }.form-feedback { margin: 0; color: var(--teal); font-size: 10px; font-weight: 800; }
.saved-search-alert-options { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }.saved-search-alert-options legend { margin-bottom: 6px; color: var(--ink); font-size: 11px; font-weight: 800; }.check-line { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }.check-line > input { width: 18px; height: 18px; flex: 0 0 auto; margin: 2px 0 0; accent-color: var(--teal); }.saved-search-alert-options .check-line { padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); }.saved-search-alert-options .check-line span { display: grid; gap: 2px; }.saved-search-alert-options .check-line b { color: var(--ink); font-size: 11px; }.saved-search-alert-options .check-line small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.saved-search-global-note { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }.saved-search-global-note > span { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 auto; border-radius: 12px; background: var(--teal-soft); }.saved-search-global-note p { margin: 0; color: var(--muted); font-size: 10px; }.saved-search-global-note strong { color: var(--ink); }.saved-search-global-note a { color: var(--teal); font-weight: 800; }
.saved-search-card { display: flex; flex-direction: column; }.saved-search-criteria { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 4px 0 18px; }.saved-search-criteria > div { min-width: 0; padding: 10px 11px; border-radius: 11px; background: var(--soft); }.saved-search-criteria dt { margin: 0 0 2px; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }.saved-search-criteria dd { margin: 0; overflow-wrap: anywhere; color: var(--ink); font-size: 10px; font-weight: 750; line-height: 1.45; }.saved-search-no-criteria { margin: 4px 0 18px; padding: 11px 12px; border-radius: 11px; background: var(--soft); color: var(--muted); font-size: 10px; }.saved-search-notification-form { display: grid; gap: 9px; margin: 5px 0 18px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--soft); }.saved-search-notification-form > strong { margin-bottom: 1px; font-size: 10px; }.saved-search-notification-form .check-line { color: var(--muted); font-size: 10px; }.saved-search-notification-form .button { justify-self: start; margin-top: 3px; }.saved-search-card .feature-card-actions { margin-top: auto; }
.trust-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }.trust-badges span.verified { background: #e5f4ea; color: #34734a; }

@media (max-width: 900px) { .form-grid.three, .advanced-travel-filters, .feature-card-grid { grid-template-columns: 1fr 1fr; }.planner-grid, .admin-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .form-grid.three, .advanced-travel-filters, .feature-card-grid, .totp-enrollment { grid-template-columns: 1fr; }.saved-search-criteria { grid-template-columns: 1fr; }.portal-shortcuts { overflow-x: auto; }.portal-shortcuts > * { flex: 0 0 auto; }.compare-floating-bar { width: calc(100% - 24px); justify-content: space-between; }.recovery-code-grid { grid-template-columns: 1fr; }.totp-enrollment { padding: 17px; }.totp-qr { max-width: 220px; } }

/* Erwachsene Mitglieder: Reiselevel als Ring, manuell aufgebaute Vertrauensstufe als Haken */
.member-avatar-shell { position: relative; box-sizing: border-box; width: var(--avatar-size); height: var(--avatar-size); flex: 0 0 var(--avatar-size); display: inline-grid; place-items: center; padding: 3px; border: 3px solid var(--avatar-tier, transparent); border-radius: 29%; background: #fff; box-shadow: 0 5px 16px rgba(4,38,39,.16); vertical-align: middle; }
.member-avatar-shell > img, .member-avatar-shell > .member-avatar-fallback { box-sizing: border-box; width: 100%; height: 100%; min-width: 0; min-height: 0; border: 0; border-radius: 23%; object-fit: cover; }
.member-avatar-fallback { display: grid; place-items: center; background: var(--teal-soft); color: var(--teal); font-size: calc(var(--avatar-size) * .3); font-weight: 900; line-height: 1; }
.member-trust-badge { position: absolute; z-index: 3; right: -5px; bottom: -5px; box-sizing: border-box; width: clamp(17px, calc(var(--avatar-size) * .29), 30px); height: clamp(17px, calc(var(--avatar-size) * .29), 30px); display: grid; place-items: center; border: clamp(2px, calc(var(--avatar-size) * .035), 4px) solid #fff; border-radius: 50%; background: var(--trust-color); color: #fff; box-shadow: 0 2px 8px rgba(4,38,39,.28); font-family: Arial, sans-serif; font-size: clamp(9px, calc(var(--avatar-size) * .14), 16px); font-style: normal; font-weight: 900; line-height: 1; }
.member-avatar-profile { box-shadow: 0 15px 35px rgba(4,38,39,.24); }
.member-avatar-message { border-radius: 29%; }
.member-avatar-map, .member-avatar-compact { border-radius: 50%; }

/* Länderwahl, Flaggen und Reisehinweise */
.country-list-note { display: block; margin-top: 6px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.country-list-note a { color: var(--teal); font-weight: 800; }
.country-advisory-alert { margin-top: -2px; }
.country-advisory-alert strong { color: #805810; }
.country-filter-card { position: relative; z-index: 20; }
.country-picker-toggle { width: 100%; min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); cursor: pointer; font-size: 10px; font-weight: 700; text-align: left; }
.country-picker-toggle b { color: var(--muted); font-size: 14px; transition: transform .18s; }
.country-picker-toggle[aria-expanded="true"] { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(17,100,102,.08); }
.country-picker-toggle[aria-expanded="true"] b { transform: rotate(180deg); }
.country-picker-panel { position: absolute; z-index: 80; top: calc(100% - 4px); left: 10px; right: 10px; overflow: hidden; padding: 9px; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: 0 18px 42px rgba(12,53,54,.2); }
.country-picker-panel[hidden] { display: none; }
.country-picker-search { display: block; margin-bottom: 7px; }
.country-picker-search input { box-sizing: border-box; width: 100%; min-height: 37px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 9px; background: #f8fbfa; color: var(--ink); font-size: 10px; outline: none; }
.country-picker-search input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(17,100,102,.08); }
.country-option-list { max-height: 290px; overflow-y: auto; overscroll-behavior: contain; padding-right: 3px; }
.country-option-list > label { display: block; cursor: pointer; }
.country-option-list > label[hidden] { display: none; }
.country-option-list input { position: absolute; opacity: 0; pointer-events: none; }
.country-option-list label > span { display: grid; grid-template-columns: 25px minmax(0,1fr) auto; align-items: center; gap: 7px; min-height: 38px; padding: 5px 7px; border-radius: 8px; color: var(--ink); }
.country-option-list label > span:hover { background: var(--soft); }
.country-option-list input:checked + span { background: var(--teal-soft); color: var(--teal); font-weight: 800; }
.country-option-list input:focus-visible + span { outline: 3px solid rgba(243,182,58,.6); }
.country-option-list span b { font-size: 18px; line-height: 1; }
.country-option-list span em { overflow: hidden; font-size: 10px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.country-option-list span i { color: #986a10; font-size: 7px; font-style: normal; font-weight: 800; white-space: nowrap; }
.country-picker-panel > small { display: block; margin-top: 7px; color: var(--muted); font-size: 7px; line-height: 1.45; }
.country-picker-panel > small a { color: var(--teal); font-weight: 800; }
.trip-card-meta .country-warning-badge, .popup-card .country-warning-badge { width: fit-content; padding: 4px 7px; border: 1px solid #efd99c; border-radius: 20px; background: #fff6db; color: #805810; font-size: 8px; font-weight: 800; }
.popup-card .country-warning-badge { display: block; margin-top: 7px; }

@media (max-width: 600px) {
    .country-picker-panel { left: 8px; right: 8px; }
    .country-option-list { max-height: 250px; }
}
.member-avatar-map > img, .member-avatar-map > .member-avatar-fallback, .member-avatar-compact > img, .member-avatar-compact > .member-avatar-fallback { border-radius: 50%; }
.trip-person .member-avatar-map { margin: 0 1px; }
.conversation-list-item > .member-avatar-shell, .conversation-header-inner > .member-avatar-shell { width: var(--avatar-size); height: var(--avatar-size); }
.shared-trip-partner > .member-avatar-shell { width: var(--avatar-size); height: var(--avatar-size); }

.trust-level-legend { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.trust-level-legend span { display: flex; align-items: center; gap: 7px; padding: 10px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--muted); font-size: 9px; font-weight: 800; }
.trust-level-legend b { width: 20px; height: 20px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--trust-color); color: #fff; }
.trust-request-card.locked { opacity: .72; }
.trust-prerequisite { display: inline-flex; padding: 4px 7px; border-radius: 12px; background: #fff1d4; color: #78560e; font-size: 8px; font-weight: 800; }
.trust-lock { color: var(--muted); font-size: 17px; }
.trust-level-pill { border: 1px solid color-mix(in srgb, var(--trust-color) 28%, white); background: color-mix(in srgb, var(--trust-color) 9%, white) !important; color: var(--trust-color) !important; }
.trust-disclaimer { display: block; margin-top: 9px; color: var(--muted); font-size: 8px; line-height: 1.5; }

.advanced-filter-final-row { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.advanced-filter-final-row > .advanced-filter-card { height: 100%; }
.tier-filter-card { grid-column: 1 / -1; }
.tier-filter-card > div { flex-wrap: wrap; overflow: visible; }
.age-filter-group.tier-filter-card > div > label { min-width: 0; flex: 1 1 140px; }
.tier-filter-card label span { box-sizing: border-box; width: 100%; justify-content: center; border-left: 3px solid var(--tier-chip-color); text-align: center; }
.trust-filter-card select { border-left: 3px solid #0F766E; }

@media (max-width: 900px) {
    .tier-filter-card { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .advanced-filter-final-row { grid-template-columns: 1fr; }
    .tier-filter-card { grid-column: auto; }
    .profile-identity > .member-avatar-profile { width: 82px; height: 82px; flex-basis: 82px; }
    .trust-level-legend { grid-template-columns: 1fr; }
}

/* Public family profiles and profile links on the map */
.trip-card { padding: 0; overflow: hidden; cursor: default; }
.trip-card-select { width: 100%; display: block; padding: 15px 15px 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.trip-card .trip-person { margin: 0; padding: 12px 15px 14px; border-top: 1px solid #edf1f0; color: inherit; text-decoration: none; transition: background .2s, color .2s; }
.trip-card .trip-person:hover, .trip-card .trip-person:focus-visible { background: var(--soft); color: var(--teal); outline: 0; }
.trip-card .trip-person > i { font-size: 10px; white-space: nowrap; }
.popup-profile-link { display: inline-flex; margin-top: 8px; color: var(--teal); font-size: 10px; font-weight: 800; text-decoration: none; }
.popup-profile-link:hover { text-decoration: underline; }

.public-profile-hero { position: relative; overflow: hidden; }
.public-profile-hero::after { content: ''; position: absolute; right: -90px; bottom: -145px; width: 340px; height: 340px; border: 55px solid rgba(255,255,255,.045); border-radius: 50%; pointer-events: none; }
.public-profile-hero .profile-hero-inner { position: relative; z-index: 1; }
.public-profile-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 9px; }
.public-profile-badge { display: inline-flex; align-items: center; padding: 7px 10px; border-radius: 20px; background: #e2f2e6; color: #39714b !important; font-size: 10px !important; letter-spacing: 0 !important; text-transform: none !important; white-space: nowrap; }
.public-children-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.public-child-card { padding: 15px; border: 1px solid var(--line); border-radius: 15px; background: #fbfdfc; }
.public-child-card .profile-child { padding: 0; border: 0; }
.public-child-bio { margin: 13px 0 0; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; line-height: 1.6; }
.public-trip-list { display: grid; gap: 12px; }
.public-trip-card { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 14px; padding: 17px; border: 1px solid color-mix(in srgb, var(--trip-color) 25%, var(--line)); border-radius: 15px; background: color-mix(in srgb, var(--trip-color) 5%, white); }
.public-trip-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 14px; background: color-mix(in srgb, var(--trip-color) 14%, white); font-size: 24px; }
.public-trip-card small { color: var(--trip-color); font-size: 10px; font-weight: 800; }
.public-trip-card h3 { margin: 2px 0 7px; font-size: 18px; }
.public-trip-card p { margin: 9px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.public-trip-card .public-trip-meta { margin-top: 0; color: var(--ink); font-size: 10px; font-weight: 700; line-height: 1.7; }

@media (max-width: 650px) {
    .public-children-list { grid-template-columns: 1fr; }
    .public-trip-card { grid-template-columns: 42px minmax(0, 1fr); padding: 14px; }
    .public-trip-icon { width: 42px; height: 42px; border-radius: 11px; font-size: 20px; }
}

/* Member contact and messaging */
.nav-messages { display: inline-flex; align-items: center; gap: 6px; }
.nav-messages-count { width: 24px; height: 20px; flex: 0 0 24px; display: inline-grid; place-items: center; border-radius: 12px; background: var(--coral); color: white; font-size: 9px; font-variant-numeric: tabular-nums; line-height: 1; opacity: 0; visibility: hidden; }
.nav-messages-count.is-visible { opacity: 1; visibility: visible; }
.contact-panel { position: relative; overflow: hidden; }
.contact-panel::after { content: ''; position: absolute; right: -48px; top: -48px; width: 130px; height: 130px; border-radius: 50%; background: var(--teal-soft); opacity: .55; pointer-events: none; }
.contact-panel > * { position: relative; z-index: 1; }
.contact-panel-icon { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 17px; border-radius: 14px; background: var(--teal-soft); font-size: 23px; }
.contact-panel .eyebrow { margin-bottom: 7px; font-size: 9px; }
.contact-panel h2 { margin-bottom: 9px; font-size: 25px; }
.contact-panel > p { color: var(--muted); font-size: 12px; line-height: 1.6; }
.contact-panel-active { background: #f0faf7; }
.contact-panel-locked { background: #fafbf9; }
.common-interest-list { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0; }
.common-interest-list span { padding: 7px 9px; border: 1px solid color-mix(in srgb, var(--tag-color) 30%, white); border-radius: 20px; background: color-mix(in srgb, var(--tag-color) 8%, white); font-size: 10px; font-weight: 800; }
.contact-form { display: grid; gap: 14px; margin-top: 17px; }
.contact-safety-note { display: block; margin-top: 12px; color: var(--muted); font-size: 9px; text-align: center; }

.messages-page { min-height: 100vh; background: #f3f7f5; }
.messages-hero { padding: 48px 0 42px; background: white; border-bottom: 1px solid var(--line); }
.messages-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.messages-heading h1 { margin-bottom: 8px; font-size: clamp(38px, 5vw, 58px); }
.messages-heading p { margin: 0; color: var(--muted); }
.messages-content { padding: 38px 0 90px; }
.messages-container { max-width: 900px; }
.messages-empty { padding: 65px 30px; border: 1px solid var(--line); border-radius: 24px; background: white; box-shadow: var(--shadow-small); text-align: center; }
.messages-empty > span { width: 74px; height: 74px; display: grid; place-items: center; margin: 0 auto 20px; border-radius: 23px; background: var(--teal-soft); font-size: 33px; }
.messages-empty h2 { margin-bottom: 9px; font-size: 28px; }
.messages-empty p { max-width: 570px; margin: 0 auto 24px; color: var(--muted); }
.conversation-list { overflow: hidden; border: 1px solid var(--line); border-radius: 21px; background: white; box-shadow: var(--shadow-small); }
.conversation-list-item { position: relative; display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; align-items: center; gap: 17px; min-height: 112px; padding: 20px 22px; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; transition: background .2s; }
.conversation-list-item:last-child { border-bottom: 0; }
.conversation-list-item:hover, .conversation-list-item:focus-visible { background: var(--soft); outline: 0; }
.conversation-list-item.unread { background: #f4fbf9; }
.conversation-list-item.unread::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--coral); }
.conversation-list-item > img, .conversation-list-item > .message-avatar { width: 62px; height: 62px; border-radius: 18px; object-fit: cover; }
.message-avatar { display: grid; place-items: center; background: var(--teal-soft); color: var(--teal); font-size: 22px; font-weight: 800; }
.conversation-preview { min-width: 0; display: block; }
.conversation-preview-top { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; }
.conversation-preview-top strong { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.conversation-preview-top time { flex: 0 0 auto; color: var(--muted); font-size: 9px; }
.conversation-interest { display: block; margin: 3px 0 5px; color: var(--interest-color); font-size: 9px; font-weight: 800; }
.conversation-excerpt { display: block; overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.conversation-list-item > i { color: var(--coral); font-style: normal; font-weight: 800; }
.unread-count { min-width: 26px; height: 26px; display: grid; place-items: center; padding: 0 6px; border-radius: 14px; background: var(--coral); color: white; font-size: 10px; }

.conversation-header { padding: 22px 0; border-bottom: 1px solid var(--line); background: white; }
.conversation-header-inner { max-width: 900px; display: grid; grid-template-columns: 42px 58px minmax(0, 1fr) auto; align-items: center; gap: 14px; }
.conversation-back { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 11px; color: var(--teal); text-decoration: none; }
.conversation-header-inner > img, .conversation-header-inner > .message-avatar { width: 58px; height: 58px; border-radius: 16px; object-fit: cover; }
.conversation-person { min-width: 0; }
.conversation-person > small { color: var(--muted); font-size: 9px; }
.conversation-person h1 { overflow: hidden; margin: 0 0 4px; font-size: 20px; text-overflow: ellipsis; white-space: nowrap; }
.conversation-person > span { display: block; color: var(--interest-color); font-size: 9px; font-weight: 800; }
.conversation-profile-link { font-size: 11px; white-space: nowrap; }
.conversation-content { padding: 27px 0 75px; }
.conversation-container { max-width: 900px; }
.message-safety-note { display: flex; align-items: center; justify-content: center; gap: 9px; margin-bottom: 25px; color: var(--muted); text-align: center; }
.message-safety-note p { margin: 0; font-size: 9px; line-height: 1.45; }
.message-safety-note strong { color: var(--ink); }
.message-thread { display: flex; flex-direction: column; gap: 9px; padding: 6px 0 24px; }
.message-row { display: flex; scroll-margin-bottom: 180px; }
.message-row.mine { justify-content: flex-end; }
.message-bubble { max-width: min(72%, 620px); padding: 12px 15px 9px; border-radius: 17px 17px 17px 5px; background: white; box-shadow: 0 4px 18px rgba(23,59,59,.06); }
.message-row.mine .message-bubble { border-radius: 17px 17px 5px 17px; background: var(--teal); color: white; }
.message-bubble p { margin: 0; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.message-bubble time { display: block; margin-top: 5px; color: var(--muted); font-size: 8px; text-align: right; }
.message-row.mine .message-bubble time { color: rgba(255,255,255,.65); }
.message-composer { position: sticky; bottom: 14px; padding: 17px; border: 1px solid var(--line); border-radius: 19px; background: rgba(255,255,255,.96); box-shadow: var(--shadow); backdrop-filter: blur(12px); }
.message-composer > label { display: block; margin-bottom: 7px; font-size: 11px; font-weight: 800; }
.message-compose-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.message-compose-row textarea { width: 100%; min-height: 74px; resize: vertical; padding: 11px 13px; border: 1px solid #d5e1df; border-radius: 12px; color: var(--ink); line-height: 1.5; }
.message-compose-row .button { min-height: 48px; }
.message-compose-meta { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; color: var(--muted); font-size: 8px; }

@media (max-width: 820px) {
    .main-nav { gap: 0; }
    .nav-messages { justify-content: flex-start; }
    .messages-heading { align-items: flex-start; flex-direction: column; }
    .conversation-profile-link { display: none; }
    .conversation-header-inner { grid-template-columns: 42px 50px minmax(0, 1fr); }
    .conversation-header-inner > img, .conversation-header-inner > .message-avatar { width: 50px; height: 50px; }
}

@media (max-width: 560px) {
    .public-profile-actions { width: 100%; justify-content: stretch; }
    .public-profile-actions .button { width: 100%; }
    .messages-hero { padding: 34px 0 30px; }
    .messages-heading .button { width: 100%; }
    .messages-content { padding-top: 22px; }
    .conversation-list-item { grid-template-columns: 50px minmax(0, 1fr) auto; gap: 11px; min-height: 96px; padding: 15px 13px; }
    .conversation-list-item > img, .conversation-list-item > .message-avatar { width: 50px; height: 50px; border-radius: 14px; }
    .conversation-preview-top time { display: none; }
    .message-bubble { max-width: 88%; }
    .message-compose-row { grid-template-columns: 1fr; }
    .message-compose-row .button { width: 100%; }
    .message-compose-meta { align-items: flex-start; flex-direction: column; }
}

/* Message notification settings */
.notification-status { display: flex; align-items: center; gap: 12px; padding: 13px; border-radius: 13px; background: var(--soft); }
.notification-status > span { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: #dfe7e4; color: var(--muted); font-size: 13px; font-weight: 800; }
.notification-status.enabled { background: #edf8f2; }
.notification-status.enabled > span { background: #d5eedf; color: #34734a; }
.notification-status strong { display: block; font-size: 12px; }
.notification-status p { margin: 2px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.notification-settings-card { align-self: start; }
.notification-choice { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 16px; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fbfdfc; cursor: pointer; }
.notification-choice > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.notification-switch { position: relative; width: 54px; height: 30px; padding: 3px; border-radius: 18px; background: #b7c4c1; transition: background .2s; }
.notification-switch i { width: 24px; height: 24px; display: block; border-radius: 50%; background: white; box-shadow: 0 2px 7px rgba(23,59,59,.22); transition: transform .2s; }
.notification-choice > input:checked + .notification-switch { background: var(--teal); }
.notification-choice > input:checked + .notification-switch i { transform: translateX(24px); }
.notification-choice > input:focus-visible + .notification-switch { outline: 3px solid rgba(243,182,58,.75); outline-offset: 3px; }
.notification-choice-copy strong, .notification-choice-copy small { display: block; }
.notification-choice-copy strong { font-size: 14px; }
.notification-choice-copy small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.notification-example { display: flex; gap: 13px; padding: 18px; border-radius: 15px; background: #fff7e4; }
.notification-example > span { font-size: 25px; }
.notification-example strong { font-size: 12px; }
.notification-example p { margin: 3px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }

@media (max-width: 560px) {
    .notification-choice { align-items: flex-start; padding: 17px; }
    .notification-settings-section .wizard-card { padding: 20px; }
}

/* Shared trip agreements */
.travel-agreement-card { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: center; gap: 17px; margin-bottom: 24px; padding: 21px; border: 1px solid color-mix(in srgb, var(--trip-color) 30%, var(--line)); border-radius: 20px; background: color-mix(in srgb, var(--trip-color) 6%, white); box-shadow: var(--shadow-small); scroll-margin-top: 100px; }
.travel-agreement-card.accepted { border-color: #9ccbb0; background: #edf8f2; }
.travel-agreement-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 17px; background: color-mix(in srgb, var(--trip-color) 16%, white); font-size: 27px; }
.travel-agreement-card.accepted .travel-agreement-icon { background: #d5eedf; }
.travel-agreement-actions { display: grid; gap: 8px; min-width: 178px; }
.travel-agreement-actions .button { width: 100%; }
.travel-agreement-copy { min-width: 0; }
.travel-agreement-copy .eyebrow { margin-bottom: 2px; font-size: 9px; }
.travel-agreement-copy h2 { margin: 0 0 5px; font-size: 22px; }
.travel-agreement-copy > p:not(.travel-agreement-meta) { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.travel-agreement-copy > small { display: block; margin-top: 8px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.travel-agreement-meta { margin: 0; color: var(--ink); font-size: 10px; font-weight: 700; }
.travel-proposal-decision { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 16px; border-top: 1px solid color-mix(in srgb, var(--trip-color) 22%, var(--line)); }
.travel-proposal-decision > p { max-width: 520px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.travel-proposal-decision > div { display: flex; align-items: center; gap: 8px; }
.travel-proposal-decision form { margin: 0; }
.button-decline { min-height: 43px; padding: 9px 15px; border: 1px solid #d8b9b4; border-radius: 11px; background: white; color: var(--danger); cursor: pointer; font-size: 11px; font-weight: 800; }
.travel-proposal-waiting { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; padding-top: 14px; border-top: 1px solid var(--line); }
.travel-proposal-waiting > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: white; color: var(--teal); }
.travel-proposal-waiting p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.travel-proposal-waiting strong { color: var(--ink); }
.travel-proposal-create { margin-bottom: 24px; border: 1px solid var(--line); border-radius: 19px; background: white; box-shadow: 0 5px 20px rgba(23,59,59,.05); }
.travel-proposal-create > summary { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 17px 19px; cursor: pointer; list-style: none; }
.travel-proposal-create > summary::-webkit-details-marker { display: none; }
.travel-proposal-create > summary > span:first-child { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: #fff2d5; color: #986b12; font-size: 20px; }
.travel-proposal-create > summary strong, .travel-proposal-create > summary small { display: block; }
.travel-proposal-create > summary strong { font-size: 13px; }
.travel-proposal-create > summary small { color: var(--muted); font-size: 9px; }
.travel-proposal-create > summary > i { color: var(--coral); font-size: 22px; font-style: normal; transition: transform .2s; }
.travel-proposal-create[open] > summary > i { transform: rotate(45deg); }
.travel-proposal-create-body { padding: 20px; border-top: 1px solid var(--line); }
.travel-proposal-create-body > p { color: var(--muted); font-size: 11px; }
.travel-proposal-empty { display: flex; gap: 13px; padding: 10px; }
.travel-proposal-empty > span { font-size: 30px; }
.travel-proposal-empty strong { font-size: 13px; }
.travel-proposal-empty p { margin: 3px 0 6px; color: var(--muted); font-size: 10px; }

.shared-trips-section { padding: 68px 0; background: #e5f2ef; border-bottom: 1px solid #d4e6e1; }
.shared-trips-section .split-heading > p { margin-bottom: 8px; }
.shared-trip-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 28px; }
.shared-trip-dashboard-card { padding: 24px; border: 1px solid color-mix(in srgb, var(--trip-color) 27%, white); border-radius: 22px; background: white; box-shadow: var(--shadow-small); }
.shared-trip-dashboard-top { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.shared-trip-dashboard-top > span { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 14px; background: color-mix(in srgb, var(--trip-color) 13%, white); font-size: 24px; }
.shared-trip-dashboard-top > b { padding: 6px 9px; border-radius: 20px; background: #dff1e6; color: #34724a; font-size: 9px; }
.shared-trip-dashboard-top > b.completed { background: #e8eeec; color: #536b68; }
.shared-trip-dashboard-card h3 { margin: 18px 0 7px; font-size: 22px; }
.shared-trip-dashboard-meta { color: var(--muted); font-size: 11px; line-height: 1.7; }
.shared-trip-partner { display: flex; align-items: center; gap: 10px; margin: 18px 0; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.shared-trip-partner > img, .shared-trip-partner > span { width: 42px; height: 42px; flex: 0 0 auto; border-radius: 13px; object-fit: cover; }
.shared-trip-partner > span { display: grid; place-items: center; background: var(--teal-soft); color: var(--teal); font-weight: 800; }
.shared-trip-partner small, .shared-trip-partner strong { display: block; }
.shared-trip-partner small { color: var(--muted); font-size: 8px; }
.shared-trip-partner strong { font-size: 12px; }
.status-pill.matched { background: #dff1e6; color: #34724a; }

@media (max-width: 760px) {
    .travel-agreement-card { grid-template-columns: 48px minmax(0, 1fr); }
    .travel-agreement-icon { width: 48px; height: 48px; border-radius: 14px; font-size: 23px; }
    .travel-agreement-card > .button { grid-column: 1 / -1; width: 100%; }
    .travel-agreement-actions { grid-column: 1 / -1; width: 100%; }
    .travel-proposal-decision { align-items: stretch; flex-direction: column; }
    .travel-proposal-decision > div { align-items: stretch; flex-direction: column; }
    .travel-proposal-decision .button, .travel-proposal-decision .button-decline { width: 100%; }
    .shared-trip-grid { grid-template-columns: 1fr; }
}

/* Travel reports */
.inline-alert.warning { border: 1px solid #efd79c; background: #fff7df; color: #78560e; }
.shared-trip-report-actions { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.shared-trip-report-actions .button { grid-column: 1 / -1; width: 100%; }
.shared-trip-report-actions .own-trip-edit { text-align: center; }
.shared-trip-report-actions .needs-review { border-color: var(--coral); background: #fff0ed; color: var(--coral-dark); }
.travelbuddy-review-button { border-color: var(--coral); background: var(--coral); color: white !important; box-shadow: 0 8px 20px rgba(240,109,91,.22); }
.travelbuddy-review-button:hover { background: var(--coral-dark); box-shadow: 0 11px 24px rgba(240,109,91,.3); }
.report-form-page { background: #f4f7f5; }
.report-form-hero { padding: 48px 0 42px; background: var(--teal); color: white; }
.report-form-hero .back-link { display: inline-flex; margin-bottom: 24px; color: rgba(255,255,255,.72); }
.report-form-hero .eyebrow { color: #ffe0a1; }
.report-form-hero h1 { margin-bottom: 12px; color: white; font-size: clamp(40px, 5vw, 60px); }
.report-form-hero p { margin: 0; color: rgba(255,255,255,.72); }
.report-editor-section { padding-top: 45px; }
.report-editor-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr); align-items: start; gap: 25px; }
.report-editor-aside { position: sticky; top: 105px; display: grid; gap: 16px; }
.report-editor-aside .profile-panel h2 { font-size: 24px; }
.report-editor-aside .profile-panel > p { color: var(--muted); font-size: 12px; }
.report-rating-field { padding: 0; border: 0; }
.report-rating-field legend { margin-bottom: 10px; font-size: 14px; font-weight: 700; }
.report-rating-field > div { display: flex; flex-wrap: wrap; gap: 8px; }
.report-rating-field label { cursor: pointer; }
.report-rating-field input { position: absolute; opacity: 0; }
.report-rating-field label > span { display: flex; align-items: center; gap: 7px; min-height: 42px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 10px; background: white; color: #d4ad55; font-size: 12px; letter-spacing: 1px; }
.report-rating-field label small { color: var(--muted); font-size: 9px; letter-spacing: 0; }
.report-rating-field input:checked + span { border-color: var(--yellow); background: #fff7df; box-shadow: 0 0 0 2px rgba(243,182,58,.15); }
.report-rating-field input:focus-visible + span { outline: 3px solid rgba(243,182,58,.75); outline-offset: 2px; }
.report-experience-form { margin-bottom: 16px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: #fbfdfc; }
.current-report-image { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; padding: 8px; border-radius: 11px; background: var(--soft); }
.current-report-image img { width: 80px; height: 62px; border-radius: 9px; object-fit: cover; }
.current-report-image.cover img { width: 130px; height: 80px; }
.current-report-image label { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; cursor: pointer; }
.current-report-image input { accent-color: var(--coral); }
.report-public-choice { display: grid; grid-template-columns: auto 48px minmax(0, 1fr); align-items: center; gap: 14px; padding: 20px; border: 1px solid #b8d6d0; border-radius: 17px; background: #eef8f6; cursor: pointer; }
.report-public-choice > input { width: 20px; height: 20px; accent-color: var(--teal); }
.report-public-choice > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: white; font-size: 23px; }
.report-public-choice strong { font-size: 14px; }
.report-public-choice p { margin: 3px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }

.reports-page { background: #f3f7f5; }
.reports-index-hero { padding: 75px 0 68px; background: var(--teal); color: white; }
.reports-index-hero h1 { margin-bottom: 18px; color: white; font-size: clamp(44px, 6vw, 70px); }
.reports-index-hero .eyebrow { color: #ffe0a1; }
.reports-index-hero p { max-width: 670px; margin: 0; color: rgba(255,255,255,.75); font-size: 17px; }
.reports-index-content { padding: 58px 0 100px; }
.report-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.report-card { overflow: hidden; display: flex; flex-direction: column; min-height: 440px; border: 1px solid var(--line); border-radius: 23px; background: white; box-shadow: var(--shadow-small); color: inherit; text-decoration: none; transition: transform .22s, box-shadow .22s; }
.report-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.report-card > img, .report-card-placeholder { width: 100%; height: 210px; object-fit: cover; }
.report-card-placeholder { display: grid; place-items: center; background: color-mix(in srgb, var(--report-color) 18%, var(--soft)); font-size: 58px; }
.report-card-body { flex: 1; display: flex; flex-direction: column; padding: 22px; }
.report-card-body > span { color: var(--coral); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.report-card-body h2 { margin: 8px 0; font-size: 23px; }
.report-card-body > p { color: var(--muted); font-size: 12px; line-height: 1.65; }
.report-card-travelbuddys { display: flex; align-items: center; gap: 10px; margin: 5px 0 13px; padding: 10px; border-radius: 12px; background: var(--soft); }
.report-buddy-avatars { display: flex; flex: 0 0 auto; }
.report-buddy-avatars img, .report-buddy-avatars i { width: 31px; height: 31px; display: grid; place-items: center; border: 2px solid white; border-radius: 50%; object-fit: cover; background: var(--teal-soft); color: var(--teal); font-size: 10px; font-style: normal; font-weight: 800; }
.report-buddy-avatars > :last-child { margin-left: -9px; }
.report-card-travelbuddys > span:last-child { min-width: 0; }
.report-card-travelbuddys small, .report-card-travelbuddys b { display: block; }
.report-card-travelbuddys small { color: var(--muted); font-size: 7px; text-transform: uppercase; letter-spacing: .06em; }
.report-card-travelbuddys b { overflow: hidden; margin-top: 2px; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.report-card-meta { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 15px; border-top: 1px solid var(--line); }
.report-card-meta strong { color: var(--yellow); font-size: 12px; letter-spacing: 1px; }
.report-card-meta small { color: var(--muted); font-size: 8px; text-align: right; }

.report-detail-hero { position: relative; min-height: 500px; display: flex; align-items: flex-end; overflow: hidden; background: var(--teal); color: white; }
.report-detail-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.report-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,42,43,.1), rgba(9,42,43,.88)); }
.report-detail-hero:not(.with-image) .report-hero-overlay { background: radial-gradient(circle at 80% 15%, rgba(255,255,255,.1), transparent 35%), linear-gradient(135deg, var(--teal), #0b494b); }
.report-detail-heading { position: relative; z-index: 1; padding: 65px 0 52px; }
.report-detail-heading .back-link { display: inline-flex; margin-bottom: 32px; color: rgba(255,255,255,.75); }
.report-detail-heading .eyebrow { margin: 15px 0 7px; color: #ffe0a1; }
.report-detail-heading h1 { max-width: 760px; margin-bottom: 13px; color: white; font-size: clamp(42px, 6vw, 68px); }
.report-detail-heading > p { max-width: 720px; color: rgba(255,255,255,.84); font-size: 17px; line-height: 1.65; }
.report-visibility { display: inline-flex; padding: 7px 10px; border-radius: 20px; background: rgba(255,255,255,.16); font-size: 9px; font-weight: 800; }
.report-visibility.public { background: #dff1e6; color: #28613d; }
.report-visibility.pending { background: #fff0c7; color: #76530c; }
.report-visibility.rejected { background: #ffe0dc; color: #8c3c32; }
.report-byline { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin-top: 22px; }
.report-byline > span { color: #ffd36f; letter-spacing: 2px; }
.report-byline strong { font-size: 11px; }
.report-byline small { color: rgba(255,255,255,.7); font-size: 9px; }
.report-travelbuddys { margin-top: 24px; }
.report-travelbuddys > span { display: block; margin-bottom: 8px; color: rgba(255,255,255,.65); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; }
.report-travelbuddys > div { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.report-travelbuddys a { display: flex; align-items: center; gap: 8px; padding: 6px 11px 6px 6px; border: 1px solid rgba(255,255,255,.22); border-radius: 30px; background: rgba(255,255,255,.12); color: white; text-decoration: none; transition: background .2s, border-color .2s; }
.report-travelbuddys a:hover { border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.2); }
.report-travelbuddys img, .report-travelbuddys i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; object-fit: cover; background: white; color: var(--teal); font-size: 11px; font-style: normal; }
.report-travelbuddys b { font-size: 10px; }
.report-travelbuddys em { color: #ffd36f; font-size: 13px; font-style: normal; font-weight: 800; }
.report-approval-bar { padding: 20px 0; border-bottom: 1px solid #ecd89f; background: #fff7df; }
.report-approval-bar .container { display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.report-approval-bar .container > div { display: flex; align-items: center; gap: 12px; }
.report-approval-bar p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.report-approval-bar p strong { color: var(--ink); font-size: 12px; }
.report-approval-bar form { margin: 0; }
.report-detail-content { padding: 55px 0 100px; }
.report-author-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 35px; padding: 17px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.report-author-actions strong, .report-author-actions small { display: block; }
.report-author-actions small { color: var(--muted); font-size: 9px; }
.report-private-note { margin-bottom: 35px; padding: 13px 16px; border-radius: 12px; background: #e8f2f0; color: var(--muted); font-size: 10px; }
.report-prose { color: #324e4e; font-size: 17px; line-height: 1.95; }
.report-experience-heading { margin: 75px 0 25px; }
.report-experience-heading h2 { font-size: 38px; }
.report-experience-list { display: grid; gap: 25px; }
.report-experience { overflow: hidden; display: grid; grid-template-columns: 1fr; border: 1px solid var(--line); border-radius: 22px; background: white; box-shadow: 0 6px 25px rgba(23,59,59,.05); }
.report-experience.with-image { grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr); }
.report-experience > img { width: 100%; height: 100%; min-height: 300px; object-fit: cover; }
.report-experience > div { padding: 30px; }
.report-experience > div > span { color: var(--coral); font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.report-experience h3 { margin: 8px 0 13px; font-size: 27px; }
.report-experience p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.report-detail-footer { display: flex; align-items: center; gap: 14px; margin-top: 55px; padding: 24px; border-radius: 18px; background: #e6f2ef; }
.report-detail-footer > span { font-size: 30px; }
.report-detail-footer strong { font-size: 13px; }
.report-detail-footer p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }
.report-comments { scroll-margin-top: 105px; margin-top: 75px; padding-top: 58px; border-top: 1px solid var(--line); }
.report-comments-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.report-comments-heading h2 { margin: 4px 0 7px; font-size: 38px; }
.report-comments-heading p { max-width: 620px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.report-comments-heading > span { flex: 0 0 auto; padding: 8px 11px; border-radius: 20px; background: var(--teal-soft); color: var(--teal); font-size: 9px; font-weight: 800; }
.report-comment-compose { margin: 28px 0 0; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: var(--soft); }
.report-comment-compose textarea { min-height: 108px; resize: vertical; }
.report-comment-compose .button { margin-top: 14px; }
.report-comment-blocked { margin-top: 28px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 14px; background: var(--soft); color: var(--muted); font-size: 10px; }
.report-comments-empty { display: flex; align-items: center; gap: 14px; padding: 24px; border: 1px dashed var(--line); border-radius: 18px; color: var(--muted); }
.report-comments-empty > span { font-size: 28px; }
.report-comments-empty strong { display: block; color: var(--ink); font-size: 12px; }
.report-comments-empty p { margin: 4px 0 0; font-size: 10px; }
.report-comment-list { display: grid; gap: 14px; }
.report-comment { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 13px; }
.report-comment-avatar { display: block; margin-top: 9px; }
.report-comment-content { min-width: 0; padding: 18px 20px; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: 0 5px 18px rgba(23,59,59,.04); }
.report-comment.by-report-author .report-comment-content { border-color: color-mix(in srgb, var(--teal) 30%, var(--line)); background: color-mix(in srgb, var(--teal-soft) 45%, white); }
.report-comment-content > header { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 9px; }
.report-comment-content > header a { color: var(--ink); text-decoration: none; }
.report-comment-content > header strong { font-size: 11px; }
.report-comment-content > header time { margin-left: auto; color: var(--muted); font-size: 8px; }
.report-comment-author-badge { padding: 4px 7px; border-radius: 14px; background: var(--teal); color: white; font-size: 7px; font-weight: 800; letter-spacing: .03em; }
.report-comment-content > p { margin: 11px 0 0; color: var(--ink); font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.report-comment-content > small { display: block; margin-top: 6px; color: var(--muted); font-size: 7px; }
.report-comment-actions { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 9px; margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--line); }
.report-comment-actions details { position: relative; }
.report-comment-actions summary { cursor: pointer; color: var(--teal); font-size: 8px; font-weight: 800; list-style: none; }
.report-comment-actions summary::-webkit-details-marker { display: none; }
.report-comment-actions details[open] { width: 100%; }
.report-comment-actions form { margin-top: 11px; padding: 14px; border-radius: 13px; background: var(--soft); }
.report-comment-actions textarea { resize: vertical; }
.report-comment-actions .button { margin-top: 10px; }
.report-comment-delete summary { color: var(--coral); }
.report-comment-delete form p { margin: 0; color: var(--muted); font-size: 9px; }

@media (max-width: 1050px) {
    .main-nav { gap: 0; font-size: 13px; }
    .report-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
    .report-editor-layout { grid-template-columns: 1fr; }
    .report-editor-aside { position: static; }
    .report-approval-bar .container { align-items: stretch; flex-direction: column; }
    .report-approval-bar .container > div:last-child { align-items: stretch; flex-direction: column; width: 100%; }
    .report-approval-bar button { width: 100%; }
    .report-experience.with-image { grid-template-columns: 1fr; }
    .report-experience > img { height: 330px; min-height: 0; }
}
@media (max-width: 560px) {
    .report-card-grid { grid-template-columns: 1fr; }
    .report-public-choice { grid-template-columns: auto 1fr; align-items: start; }
    .report-public-choice > span { display: none; }
    .report-author-actions { align-items: stretch; flex-direction: column; }
    .report-author-actions .button { width: 100%; }
    .report-detail-heading { padding-bottom: 38px; }
    .report-detail-heading > p { font-size: 14px; }
    .report-travelbuddys > div { align-items: stretch; flex-direction: column; }
    .report-travelbuddys a { width: 100%; }
    .report-travelbuddys em { display: none; }
    .report-prose { font-size: 15px; }
    .report-experience > img { height: 240px; }
    .report-experience > div { padding: 22px; }
    .report-comments { margin-top: 55px; padding-top: 42px; }
    .report-comments-heading { align-items: flex-start; flex-direction: column; }
    .report-comments-heading h2 { font-size: 32px; }
    .report-comment-compose { padding: 17px; }
    .report-comment { grid-template-columns: 1fr; }
    .report-comment-avatar { margin: 0 0 -4px 7px; }
    .report-comment-content > header time { width: 100%; margin-left: 0; }
    .shared-trip-report-actions { grid-template-columns: 1fr; }
    .shared-trip-report-actions .button { grid-column: auto; }
}

/* Travelbuddy reviews */
.profile-rating-badge { --achievement-color: #e4a928; }
.travelbuddy-reviews-panel { scroll-margin-top: 110px; }
.profile-review-average { flex: 0 0 auto; text-align: right; }
.profile-review-average b, .profile-review-average small { display: block; }
.profile-review-average b { color: #b37b06; font-size: 18px; }
.profile-review-average small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.profile-review-list { display: grid; gap: 13px; }
.profile-review-card { padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: #fbfdfc; }
.profile-review-card header { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; align-items: center; gap: 11px; }
.profile-review-card header > img, .profile-review-card header > span { width: 46px; height: 46px; border-radius: 13px; object-fit: cover; }
.profile-review-card header > span { display: grid; place-items: center; background: var(--teal-soft); color: var(--teal); font-weight: 800; }
.profile-review-card header strong, .profile-review-card header small { display: block; }
.profile-review-card header strong { font-size: 12px; }
.profile-review-card header small { margin-top: 2px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.profile-review-stars { color: #d6a329; font-size: 11px; letter-spacing: 1px; white-space: nowrap; }
.profile-review-card > p { margin: 15px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: #405a59; font-size: 11px; line-height: 1.7; }
.profile-review-card footer { margin-top: 10px; color: var(--muted); font-size: 8px; }
.profile-review-empty { display: flex; align-items: center; gap: 13px; padding: 16px; border-radius: 14px; background: var(--soft); }
.profile-review-empty > span { color: #d6a329; font-size: 29px; }
.profile-review-empty strong { font-size: 12px; }
.profile-review-empty p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }

.travelbuddy-review-page { background: #f4f7f5; }
.travelbuddy-review-hero { background: linear-gradient(135deg, var(--teal), #0b4d4f); }
.travelbuddy-review-section { padding-top: 46px; }
.review-form-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(270px, .6fr); align-items: start; gap: 24px; }
.review-form-aside { position: sticky; top: 105px; display: grid; gap: 16px; }
.review-form-aside .profile-panel h2 { font-size: 24px; }
.review-form-aside .profile-panel > p { color: var(--muted); font-size: 11px; line-height: 1.65; }
.travelbuddy-rating-field > div { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.travelbuddy-rating-field label > span { justify-content: center; min-height: 54px; flex-direction: column; }
.review-visibility-note { display: flex; align-items: flex-start; gap: 13px; padding: 17px; border-radius: 14px; background: #edf6f4; }
.review-visibility-note > span { font-size: 24px; }
.review-visibility-note strong { font-size: 12px; }
.review-visibility-note p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.55; }

@media (max-width: 820px) {
    .review-form-layout { grid-template-columns: 1fr; }
    .review-form-aside { position: static; }
}
@media (max-width: 620px) {
    .travelbuddy-rating-field > div { grid-template-columns: 1fr; }
    .travelbuddy-rating-field label > span { min-height: 44px; flex-direction: row; }
    .profile-review-card header { grid-template-columns: 42px minmax(0, 1fr); }
    .profile-review-card header > img, .profile-review-card header > span { width: 42px; height: 42px; }
    .profile-review-stars { grid-column: 2; }
    .profile-review-average { text-align: left; }
}

/* Frequently asked questions */
.faq-page { background: #f3f7f5; }
.faq-hero { position: relative; overflow: hidden; padding: 82px 0 68px; background: var(--teal); color: white; text-align: center; }
.faq-hero::before, .faq-hero::after { content: ''; position: absolute; border: 55px solid rgba(255,255,255,.045); border-radius: 50%; pointer-events: none; }
.faq-hero::before { width: 310px; height: 310px; left: -170px; top: -170px; }
.faq-hero::after { width: 390px; height: 390px; right: -230px; bottom: -270px; }
.faq-hero .container { position: relative; z-index: 1; }
.faq-hero .eyebrow { justify-content: center; color: #ffdda0; }
.faq-hero h1 { margin: 11px 0 16px; color: white; font-size: clamp(43px, 6vw, 68px); line-height: 1.02; }
.faq-hero h1 em { color: #ffcf78; }
.faq-hero > .container > p { max-width: 680px; margin: 0 auto; color: rgba(255,255,255,.76); font-size: 16px; line-height: 1.65; }
.faq-search { position: relative; display: flex; align-items: center; max-width: 680px; margin: 31px auto 0; }
.faq-search > span:first-child { position: absolute; z-index: 1; left: 18px; color: var(--teal); font-size: 23px; }
.faq-search input { width: 100%; height: 58px; padding: 12px 54px 12px 52px; border: 0; border-radius: 17px; background: white; box-shadow: 0 14px 34px rgba(4,38,39,.24); color: var(--ink); font-size: 14px; outline: 0; }
.faq-search input:focus { box-shadow: 0 0 0 4px rgba(255,207,120,.58), 0 14px 34px rgba(4,38,39,.24); }
.faq-search button { position: absolute; right: 10px; width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--soft); color: var(--muted); cursor: pointer; font-size: 20px; }
.faq-search-status { margin-top: 13px; color: rgba(255,255,255,.7); font-size: 10px; font-weight: 700; }
.faq-category-nav { position: sticky; z-index: 30; top: 0; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); box-shadow: 0 6px 18px rgba(23,59,59,.045); backdrop-filter: blur(10px); }
.faq-category-nav .container { display: flex; gap: 7px; overflow-x: auto; padding-block: 12px; scrollbar-width: thin; }
.faq-category-nav button { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 22px; background: white; color: var(--muted); cursor: pointer; font-size: 9px; font-weight: 800; }
.faq-category-nav button span { font-size: 13px; }
.faq-category-nav button.active { border-color: var(--teal); background: var(--teal); color: white; }
.faq-category-nav button:focus-visible { outline: 3px solid rgba(243,182,58,.55); outline-offset: 2px; }
.faq-content { padding: 58px 0 95px; }
.faq-layout { display: grid; grid-template-columns: 245px minmax(0, 1fr); align-items: start; gap: 28px; }
.faq-aside { position: sticky; top: 155px; display: grid; gap: 13px; }
.faq-aside-card { padding: 22px; border: 1px solid rgba(17,100,102,.11); border-radius: 19px; background: white; box-shadow: 0 8px 25px rgba(23,59,59,.05); }
.faq-aside-card > span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: #fff2d3; font-size: 19px; }
.faq-aside-card h2 { margin: 15px 0 7px; font-size: 18px; }
.faq-aside-card p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.faq-bulk-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 15px; }
.faq-bulk-actions button { min-height: 34px; padding: 6px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); color: var(--teal); cursor: pointer; font-size: 8px; font-weight: 800; }
.faq-bulk-actions button:hover { border-color: var(--teal); }
.faq-safety-card { background: #e6f2ef; }
.faq-safety-card > span { background: white; color: var(--coral); }
.faq-safety-card a { display: inline-block; margin-top: 13px; color: var(--teal); font-size: 9px; font-weight: 800; text-decoration: none; }
.faq-sections { min-width: 0; display: grid; gap: 23px; }
.faq-section { scroll-margin-top: 170px; padding: 26px; border: 1px solid rgba(17,100,102,.1); border-radius: 22px; background: white; box-shadow: 0 9px 30px rgba(23,59,59,.05); }
.faq-section[hidden], .faq-item[hidden] { display: none; }
.faq-section > header { display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; align-items: center; gap: 14px; margin-bottom: 19px; }
.faq-section > header > span { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 15px; background: var(--teal-soft); font-size: 23px; }
.faq-section > header h2 { margin: 0 0 3px; font-size: 23px; }
.faq-section > header p { margin: 0; color: var(--muted); font-size: 10px; }
.faq-section > header > b { display: grid; place-items: center; min-width: 28px; height: 28px; padding: 0 7px; border-radius: 20px; background: #fff0d2; color: #8b610e; font-size: 9px; }
.faq-items { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 17px 4px; color: var(--ink); cursor: pointer; font-size: 13px; font-weight: 800; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover { color: var(--teal); }
.faq-item summary:focus-visible { border-radius: 8px; outline: 3px solid rgba(243,182,58,.55); outline-offset: 2px; }
.faq-item summary i { position: relative; width: 25px; height: 25px; flex: 0 0 auto; border-radius: 50%; background: var(--soft); }
.faq-item summary i::before, .faq-item summary i::after { content: ''; position: absolute; left: 7px; right: 7px; top: 12px; height: 1.5px; border-radius: 2px; background: var(--teal); }
.faq-item summary i::after { transform: rotate(90deg); transition: transform .2s; }
.faq-item[open] summary { color: var(--teal); }
.faq-item[open] summary i { background: var(--teal-soft); }
.faq-item[open] summary i::after { transform: rotate(0); }
.faq-answer { padding: 0 44px 18px 4px; }
.faq-answer p { margin: 0; color: #526967; font-size: 11px; line-height: 1.75; }
.faq-answer a { color: var(--teal); font-weight: 800; }
.faq-empty { padding: 65px 25px; border: 1px dashed #b9cfca; border-radius: 22px; background: white; text-align: center; }
.faq-empty > span { font-size: 42px; }
.faq-empty h2 { margin: 13px 0 6px; font-size: 25px; }
.faq-empty p { margin: 0 0 18px; color: var(--muted); font-size: 11px; }
.faq-cta { padding: 0 0 95px; background: #f3f7f5; }
.faq-cta-card { display: flex; align-items: center; justify-content: space-between; gap: 35px; padding: 40px 46px; border-radius: 25px; background: var(--coral); color: white; box-shadow: 0 18px 45px rgba(207,88,72,.2); }
.faq-cta-card .eyebrow { color: #ffe3aa; }
.faq-cta-card h2 { max-width: 720px; margin: 8px 0 0; color: white; font-size: clamp(27px, 4vw, 40px); line-height: 1.15; }
.faq-cta-card .button { flex: 0 0 auto; }

@media (max-width: 900px) {
    .faq-layout { grid-template-columns: 1fr; }
    .faq-aside { position: static; grid-template-columns: 1fr 1fr; }
    .faq-category-nav { top: 0; }
}
@media (max-width: 650px) {
    .faq-hero { padding: 60px 0 52px; }
    .faq-hero h1 { font-size: 43px; }
    .faq-hero > .container > p { font-size: 13px; }
    .faq-search input { height: 54px; font-size: 11px; }
    .faq-category-nav .container { width: 100%; padding-inline: 14px; }
    .faq-content { padding-top: 35px; }
    .faq-aside { grid-template-columns: 1fr; }
    .faq-section { padding: 19px; border-radius: 18px; }
    .faq-section > header { grid-template-columns: 43px minmax(0, 1fr) auto; gap: 10px; }
    .faq-section > header > span { width: 43px; height: 43px; border-radius: 12px; font-size: 20px; }
    .faq-section > header h2 { font-size: 18px; }
    .faq-section > header p { display: none; }
    .faq-item summary { padding-block: 15px; font-size: 11px; line-height: 1.45; }
    .faq-answer { padding-right: 3px; }
    .faq-cta-card { align-items: stretch; flex-direction: column; padding: 31px 24px; text-align: center; }
    .faq-cta-card .eyebrow { justify-content: center; }
    .faq-cta-card .button { width: 100%; }
}

/* Finale Spezifitaetskorrekturen fuer Avatare in bestehenden Komponenten. */
.member-avatar-nav, .member-avatar-nav > img, .member-avatar-nav > .member-avatar-fallback { border-radius: 50%; }
.nav-profile > .member-avatar-shell { width: var(--avatar-size); height: var(--avatar-size); flex-basis: var(--avatar-size); padding: 0; border: 0; outline: 3px solid var(--avatar-tier, transparent); outline-offset: 0; box-shadow: none; }
.waitlist-family-avatar .member-avatar-shell { width: var(--avatar-size); height: var(--avatar-size); border-radius: 29%; background: #fff; font-family: inherit; font-size: inherit; }
.waitlist-family-avatar .member-avatar-shell > .member-avatar-fallback,
.report-buddy-avatars .member-avatar-shell > .member-avatar-fallback,
.report-travelbuddys .member-avatar-shell > .member-avatar-fallback,
.profile-review-card .member-avatar-shell > .member-avatar-fallback { width: 100%; height: 100%; }
.waitlist-family-avatar .member-avatar-shell > .member-trust-badge,
.report-buddy-avatars .member-avatar-shell > .member-trust-badge,
.report-travelbuddys .member-avatar-shell > .member-trust-badge,
.profile-review-card .member-avatar-shell > .member-trust-badge,
.shared-trip-partner .member-avatar-shell > .member-trust-badge { width: clamp(17px, calc(var(--avatar-size) * .29), 30px); height: clamp(17px, calc(var(--avatar-size) * .29), 30px); }
.report-buddy-avatars .member-avatar-shell > img,
.report-travelbuddys .member-avatar-shell > img,
.profile-review-card .member-avatar-shell > img,
.shared-trip-partner .member-avatar-shell > img { width: 100%; height: 100%; border: 0; }
.shared-trip-partner > .member-avatar-shell { width: var(--avatar-size); height: var(--avatar-size); border-radius: 50%; background: #fff; }

/* Moderationszentrale */
.admin-command-hero { padding: 58px 0 0; background: radial-gradient(circle at 86% 0, rgba(243,182,58,.2), transparent 27%), linear-gradient(135deg,#0d484b 0%,#123b3e 58%,#173235 100%); color: #fff; }
.admin-command-hero h1 { margin: 4px 0 14px; color: #fff; font-size: clamp(38px,5vw,64px); }
.admin-command-hero p { max-width: 730px; margin-bottom: 0; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.75; }
.admin-command-hero .eyebrow { color: #ffd88e; }
.admin-hero-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; align-items: center; gap: 55px; padding-bottom: 40px; }
.admin-workload { display: grid; grid-template-columns: 54px minmax(0,1fr); align-items: center; gap: 14px; padding: 20px; border: 1px solid rgba(255,255,255,.18); border-radius: 19px; background: rgba(255,255,255,.08); box-shadow: 0 18px 40px rgba(0,0,0,.13); backdrop-filter: blur(10px); }
.admin-workload > span { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 16px; background: #dff3e6; color: #34714b; font-size: 24px; font-weight: 900; }
.admin-workload.has-work > span { background: #ffe1dc; color: #b74738; }
.admin-workload small,.admin-workload strong,.admin-workload p { display: block; }
.admin-workload small { color: rgba(255,255,255,.62); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.admin-workload strong { margin: 2px 0; color: #fff; font-size: 21px; }
.admin-workload p { color: rgba(255,255,255,.62); font-size: 9px; line-height: 1.4; }
.admin-hero-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid rgba(255,255,255,.12); }
.admin-hero-stats a { display: flex; align-items: baseline; gap: 10px; min-height: 82px; padding: 20px 22px; border-right: 1px solid rgba(255,255,255,.12); color: #fff; text-decoration: none; transition: background .2s; }
.admin-hero-stats a:first-child { border-left: 1px solid rgba(255,255,255,.12); }
.admin-hero-stats a:hover { background: rgba(255,255,255,.07); }
.admin-hero-stats strong { color: #ffd88e; font-family: var(--font-serif); font-size: 29px; }
.admin-hero-stats span { color: rgba(255,255,255,.72); font-size: 10px; font-weight: 700; }
.admin-section-nav { position: sticky; z-index: 35; top: 0; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); box-shadow: 0 7px 22px rgba(23,59,59,.06); backdrop-filter: blur(12px); }
.admin-section-nav .container { display: flex; gap: 7px; overflow-x: auto; padding-block: 11px; scrollbar-width: thin; }
.admin-section-nav a { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; min-height: 36px; padding: 7px 12px; border-radius: 20px; color: var(--muted); font-size: 9px; font-weight: 800; text-decoration: none; }
.admin-section-nav a:hover { background: var(--teal-soft); color: var(--teal); }
.admin-section-nav b { display: grid; place-items: center; min-width: 21px; height: 21px; padding: 0 5px; border-radius: 11px; background: #ffe6e1; color: #a94235; font-size: 8px; }
.admin-dashboard { padding-top: 38px; padding-bottom: 100px; }
.admin-section { scroll-margin-top: 76px; margin-top: 45px; }
.admin-dashboard > .admin-section:first-child { margin-top: 0; }
.admin-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 17px; }
.admin-section-heading span,.admin-panel header > div > span,.admin-audit-panel header span { color: var(--coral); font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.admin-section-heading h2,.admin-panel header h2 { margin: 3px 0 0; font-size: 26px; }
.admin-section-heading > p,.admin-panel > header > p { max-width: 520px; margin: 0; color: var(--muted); font-size: 10px; text-align: right; }
.admin-queue-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.admin-queue-card { display: grid; grid-template-columns: 44px minmax(0,1fr); align-items: center; gap: 12px; padding: 17px; border: 1px solid var(--line); border-radius: 17px; background: #fff; color: var(--ink); box-shadow: 0 7px 24px rgba(23,59,59,.045); text-decoration: none; transition: border-color .2s,transform .2s,box-shadow .2s; }
.admin-queue-card:hover { border-color: #b9d6d1; box-shadow: 0 12px 28px rgba(23,59,59,.08); transform: translateY(-2px); }
.admin-queue-card > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: var(--teal-soft); color: var(--teal); font-size: 19px; font-weight: 900; }
.admin-queue-card.urgent { border-color: #f3b2a8; background: #fff9f7; }
.admin-queue-card.urgent > span { background: #ffe4df; color: var(--danger); }
.admin-queue-card.muted > span { background: #eef1f0; color: var(--muted); }
.admin-queue-card small,.admin-queue-card strong,.admin-queue-card p { display: block; }
.admin-queue-card small { color: var(--muted); font-size: 9px; font-weight: 800; }
.admin-queue-card strong { margin: -2px 0; font-size: 26px; }
.admin-queue-card p { color: var(--muted); font-size: 8px; line-height: 1.4; }
.admin-overview-grid { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(280px,.8fr); align-items: stretch; gap: 16px; margin: 16px 0; }
.admin-panel,.admin-audit-panel { padding: 23px; border: 1px solid rgba(17,100,102,.11); border-radius: 20px; background: #fff; box-shadow: 0 8px 28px rgba(23,59,59,.045); }
.admin-panel > header,.admin-audit-panel > header { display: flex; align-items: start; justify-content: space-between; gap: 20px; margin-bottom: 19px; }
.admin-panel header h3,.admin-audit-panel header h3 { margin: 3px 0 0; font-size: 18px; }
.admin-trend-panel > header { align-items: center; }
.admin-chart-legend { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 5px 10px; max-width: 300px; color: var(--muted); font-size: 7px; font-weight: 700; }
.admin-chart-legend i { width: 7px; height: 7px; margin-right: -6px; border-radius: 2px; }
.admin-chart-legend .registrations,.admin-chart-day .registrations { background: var(--teal); }
.admin-chart-legend .trips,.admin-chart-day .trips { background: var(--yellow); }
.admin-chart-legend .matches,.admin-chart-day .matches { background: #73aa88; }
.admin-chart-legend .reports,.admin-chart-day .reports { background: var(--coral); }
.admin-bar-chart { display: grid; grid-template-columns: repeat(14,minmax(18px,1fr)); align-items: end; gap: 6px; min-height: 190px; padding: 12px 5px 0; border-bottom: 1px solid var(--line); background-image: repeating-linear-gradient(to top,transparent 0,transparent 46px,rgba(17,100,102,.055) 47px); }
.admin-chart-day { display: grid; grid-template-rows: 160px 20px; align-items: end; min-width: 0; }
.admin-chart-day > div { display: flex; align-items: end; justify-content: center; gap: 2px; height: 150px; }
.admin-chart-day i { width: min(6px,21%); min-height: 2px; border-radius: 4px 4px 0 0; }
.admin-chart-day small { overflow: hidden; color: var(--muted); font-size: 7px; text-align: center; white-space: nowrap; }
.admin-community-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.admin-community-metrics > div { display: grid; align-content: start; min-height: 104px; padding: 14px; border-radius: 13px; background: var(--soft); }
.admin-community-metrics strong { color: var(--teal); font-family: var(--font-serif); font-size: 28px; }
.admin-community-metrics span { font-size: 9px; font-weight: 850; }
.admin-community-metrics small { margin-top: 5px; color: var(--muted); font-size: 8px; }
.admin-content-panel { scroll-margin-top: 85px; margin: 16px 0; }
.admin-content-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.admin-content-stats > div { display: grid; grid-template-columns: 35px minmax(0,1fr); align-items: center; gap: 1px 10px; min-height: 112px; padding: 15px; border-radius: 14px; background: var(--soft); }
.admin-content-stats > div > span { grid-row: 1/4; display: grid; place-items: center; width: 35px; height: 35px; border-radius: 11px; background: var(--paper); font-size: 16px; }
.admin-content-stats strong { color: var(--teal); font-family: var(--font-serif); font-size: 28px; line-height: 1; }
.admin-content-stats b { font-size: 9px; }
.admin-content-stats small { margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.admin-funnel-panel { margin-top: 16px; }
.admin-funnel-modern { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }
.admin-funnel-modern > div { padding: 14px; border-radius: 13px; background: var(--soft); }
.admin-funnel-modern span { display: flex; justify-content: space-between; gap: 6px; color: var(--muted); font-size: 8px; }
.admin-funnel-modern span b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-funnel-modern span small { color: var(--teal); font-weight: 900; }
.admin-funnel-modern > div > strong { display: block; margin: 7px 0; font-size: 23px; }
.admin-funnel-modern > div > i { display: block; overflow: hidden; height: 6px; border-radius: 5px; background: #dae6e2; }
.admin-funnel-modern > div > i > b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--teal),#6fb09a); }

/* Datenschutzfreundliche Zugriffsstatistik */
.admin-analytics-section { scroll-margin-top: 76px; }
.admin-analytics-filters { display: grid; grid-template-columns: minmax(145px,.9fr) repeat(2,minmax(135px,.8fr)) repeat(2,minmax(150px,1fr)) auto; align-items: end; gap: 12px; padding: 17px 19px; }
.admin-analytics-filters label { display: grid; gap: 5px; color: var(--muted); font-size: 8px; font-weight: 850; }
.admin-analytics-filters select,.admin-analytics-filters input[type="date"] { width: 100%; min-height: 39px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--ink); font-size: 9px; }
.admin-analytics-filters .admin-analytics-check { display: flex; min-height: 39px; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); cursor: pointer; }
.admin-analytics-check input { width: 15px; height: 15px; accent-color: var(--teal); }
.admin-analytics-notice { display: grid; grid-template-columns: 44px minmax(0,1fr); align-items: center; gap: 13px; margin-top: 14px; padding: 16px; border: 1px solid #e2c36e; border-radius: 14px; background: #fff8de; }
.admin-analytics-notice > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #f5cf63; color: #624a0a; font-size: 20px; font-weight: 900; }
.admin-analytics-notice strong { display: block; font-size: 11px; }.admin-analytics-notice p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.admin-analytics-kpis { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.admin-analytics-kpis article { min-height: 142px; padding: 17px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); box-shadow: 0 7px 23px rgba(23,59,59,.04); }
.admin-analytics-kpis small { display: block; min-height: 25px; color: var(--muted); font-size: 8px; font-weight: 850; line-height: 1.35; }
.admin-analytics-kpis strong { display: block; margin: 5px 0 3px; color: var(--teal); font-family: var(--font-serif); font-size: 27px; line-height: 1; }
.admin-analytics-kpis p { min-height: 25px; margin: 0; color: var(--muted); font-size: 7px; line-height: 1.4; }
.admin-analytics-kpis article > span { display: block; margin-top: 8px; color: #31724a; font-size: 7px; font-weight: 850; }.admin-analytics-kpis article > span.down { color: var(--danger); }
.admin-analytics-split { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-top: 10px; }
.admin-analytics-split article { display: grid; grid-template-columns: 13px minmax(0,1fr); align-items: start; gap: 3px 10px; padding: 15px 17px; }
.analytics-type-dot { width: 11px; height: 11px; margin-top: 4px; border-radius: 50%; background: var(--coral); }.analytics-type-dot.member { background: var(--teal); }.analytics-type-dot.moderator { background: #8764b2; }
.admin-analytics-split small,.admin-analytics-split strong,.admin-analytics-split p { display: block; }.admin-analytics-split small { color: var(--muted); font-size: 8px; font-weight: 850; }.admin-analytics-split strong { font-size: 14px; }.admin-analytics-split p { margin: 2px 0 0; color: var(--muted); font-size: 8px; }
.admin-analytics-split article > i { grid-column: 1/-1; display: block; overflow: hidden; height: 5px; margin-top: 8px; border-radius: 5px; background: var(--soft); }.admin-analytics-split article > i b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--teal),#79b8a2); }
.admin-analytics-trend { margin-top: 10px; }.admin-analytics-trend > header { align-items: center; }
.analytics-legend { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 5px 10px; color: var(--muted); font-size: 7px; font-weight: 750; }.analytics-legend i { width: 8px; height: 8px; margin-right: -6px; border-radius: 2px; }
.analytics-legend .guest,.analytics-trend-point .guest { background: var(--coral); }.analytics-legend .member,.analytics-trend-point .member { background: var(--teal); }.analytics-legend .moderator,.analytics-trend-point .moderator { background: #8764b2; }.analytics-legend .bots,.analytics-trend-point .bots { background: #8a9593; }
.analytics-trend-chart { display: flex; align-items: end; gap: 5px; overflow-x: auto; min-height: 210px; padding: 14px 4px 0; border-bottom: 1px solid var(--line); background-image: repeating-linear-gradient(to top,transparent 0,transparent 48px,rgba(17,100,102,.055) 49px); }
.analytics-trend-point { display: grid; grid-template-rows: 170px 22px; align-items: end; min-width: 31px; flex: 1 0 31px; }.analytics-trend-point > div { display: flex; align-items: end; justify-content: center; gap: 2px; height: 165px; }.analytics-trend-point i { width: min(7px,22%); min-height: 2px; border-radius: 4px 4px 0 0; }.analytics-trend-point small { overflow: hidden; color: var(--muted); font-size: 7px; text-align: center; white-space: nowrap; }
.admin-analytics-dimensions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 10px; }
.analytics-ranking > header { margin-bottom: 12px; }.analytics-ranking > div { display: grid; gap: 8px; }
.analytics-ranking-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 2px 12px; align-items: center; }.analytics-ranking-row > span { overflow: hidden; color: var(--ink); font-size: 9px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }.analytics-ranking-row > strong { color: var(--teal); font-size: 9px; font-variant-numeric: tabular-nums; }.analytics-ranking-row > i { grid-column: 1/-1; display: block; overflow: hidden; height: 5px; border-radius: 5px; background: var(--soft); }.analytics-ranking-row > i b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--teal),#7ab8a1); }
.admin-analytics-bottom { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.85fr); gap: 10px; margin-top: 10px; }.admin-analytics-bottom .admin-panel > header { align-items: center; }.admin-analytics-bottom header > p { margin: 0; color: var(--muted); font-size: 8px; }
.admin-analytics-path-note { margin: -3px 0 9px; color: var(--muted); font-size: 9px; }.analytics-error-list { display: grid; gap: 7px; }.analytics-error-list > div { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 9px; background: var(--soft); }.analytics-error-list b { color: var(--danger); font-size: 10px; }.analytics-error-list span { display: grid; min-width: 0; gap: 2px; }.analytics-error-list span small { color: var(--muted); font-size: 8px; }.analytics-error-list code { overflow-wrap: anywhere; color: var(--ink); font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size: 9px; }.analytics-error-list code.muted { color: var(--muted); font-family: inherit; font-style: italic; }.analytics-error-list strong { color: var(--muted); font-size: 9px; }
.admin-analytics-privacy ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }.admin-analytics-privacy li { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 8px; color: var(--muted); font-size: 8px; line-height: 1.5; }.admin-analytics-privacy li > b { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 7px; background: var(--teal-soft); color: var(--teal); }.admin-analytics-privacy > p { margin: 13px 0 0; padding: 10px; border-radius: 9px; background: var(--soft); color: var(--muted); font-size: 8px; line-height: 1.55; }
.admin-analytics-footnote { margin: 12px 0 0; color: var(--muted); font-size: 8px; line-height: 1.6; }
.admin-report-grid,.admin-case-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 14px; }
.admin-case-card { overflow: hidden; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 7px 24px rgba(23,59,59,.04); }
.admin-case-card.open { border-top: 4px solid var(--coral); }
.admin-case-card.handled { border-top: 4px solid #81b695; }
.admin-case-card > header { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.admin-case-card > header > div { display: flex; align-items: center; gap: 8px; }
.admin-case-card > header b,.admin-case-card > header time { color: var(--muted); font-size: 8px; }
.status-pill.needs-review { background: #ffe7e2; color: #a63f34; }
.admin-case-type { display: flex; align-items: center; gap: 9px; margin-bottom: 9px; }
.admin-case-type > span { padding: 4px 8px; border-radius: 8px; background: var(--teal-soft); color: var(--teal); font-size: 8px; font-weight: 900; }
.admin-case-type strong { font-size: 13px; }
.admin-case-parties { margin: 0 0 10px; color: var(--muted); font-size: 9px; }
.admin-case-parties a { color: var(--teal); font-weight: 850; }
.admin-case-parties i { margin-left: 5px; color: var(--danger); font-size: 8px; font-style: normal; font-weight: 850; }
.admin-case-details { min-height: 46px; margin: 0; color: #506765; font-size: 10px; line-height: 1.65; }
.admin-case-warning { margin-top: 11px; padding: 8px 10px; border-radius: 9px; background: #fff1d2; color: #765415; font-size: 8px; font-weight: 850; }
.admin-case-form { margin-top: 15px; padding-top: 14px; border-top: 1px solid var(--line); }
.admin-case-form .field > span { font-size: 9px; }
.admin-case-form textarea { min-height: 72px; }
.admin-case-form .feature-card-actions { margin-top: 0; }
.text-danger-link { margin-top: 10px; padding: 0; border: 0; background: transparent; color: var(--danger); cursor: pointer; font-size: 8px; font-weight: 800; text-decoration: underline; }
.admin-decision-note { margin-top: 14px; padding: 11px; border-radius: 10px; background: var(--soft); }
.admin-decision-note small { color: var(--muted); font-size: 8px; font-weight: 850; }
.admin-decision-note p { margin: 4px 0 0; font-size: 9px; }
.admin-trust-grid { display: grid; gap: 10px; }
.admin-trust-card { display: grid; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.admin-trust-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: #fff0d3; color: #93640a; font-size: 18px; font-weight: 900; }
.admin-trust-icon.identity { background: #e2edff; color: #2463b1; }
.admin-trust-card small { color: var(--coral); font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.admin-trust-card h3 { margin: 2px 0; font-size: 15px; }
.admin-trust-card p { margin: 0; color: var(--muted); font-size: 9px; }
.admin-trust-actions { display: flex; gap: 7px; }
.admin-trust-actions button:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.admin-risk-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; gap: 14px; }
.admin-signal-list { display: grid; }
.admin-signal-list > div { display: grid; grid-template-columns: 31px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 10px 0; border-top: 1px solid var(--line); }
.admin-signal-list > div > span { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 9px; background: #fff0d3; color: #93640a; font-size: 13px; }
.admin-signal-list p { margin: 0; min-width: 0; }
.admin-signal-list strong,.admin-signal-list small { display: block; }
.admin-signal-list strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.admin-signal-list small,.admin-signal-list time { color: var(--muted); font-size: 7px; line-height: 1.5; }
.admin-empty-copy { margin: 0; padding: 16px; border-radius: 11px; background: var(--soft); color: var(--muted); font-size: 9px; text-align: center; }
.admin-operating-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 8px; }
.admin-operating-grid > div { display: grid; align-content: start; min-height: 100px; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.admin-operating-grid span { font-size: 15px; }
.admin-operating-grid strong { margin: 4px 0 1px; font-size: 20px; }
.admin-operating-grid small { color: var(--muted); font-size: 8px; line-height: 1.35; }
.admin-audit-panel { margin-top: 15px; }
.admin-audit-list { display: grid; }
.admin-audit-list > div { display: grid; grid-template-columns: 130px minmax(0,1fr) auto; align-items: center; gap: 13px; padding: 10px 2px; border-top: 1px solid var(--line); }
.admin-audit-list time,.admin-audit-list small { color: var(--muted); font-size: 8px; }
.admin-audit-list p { display: grid; margin: 0; }
.admin-audit-list strong { font-size: 10px; }
.admin-audit-list > div > span { padding: 4px 7px; border-radius: 7px; background: var(--soft); color: var(--teal); font-size: 7px; font-weight: 850; }
.admin-reset-entry { display: grid; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 14px; margin-top: 15px; padding: 17px 19px; border: 1px solid #efc4be; border-radius: 15px; background: #fff8f6; }
.admin-reset-entry > span { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: #ffe4df; color: var(--danger); font-size: 22px; font-weight: 900; }
.admin-reset-entry strong { font-size: 12px; }.admin-reset-entry p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }

/* Geschützter Portal-Reset */
.admin-reset-page { background: var(--cream); }
.admin-reset-hero { padding: 58px 0 52px; background: radial-gradient(circle at 82% 18%,rgba(240,109,91,.2),transparent 26%),linear-gradient(135deg,#143f41,#102f30); color: #fff; }
.admin-reset-hero-layout { display: grid; grid-template-columns: minmax(0,1fr) 190px; align-items: center; gap: 55px; }
.admin-reset-hero .back-link { display: inline-block; margin-bottom: 22px; color: rgba(255,255,255,.72); font-size: 11px; font-weight: 750; text-decoration: none; }
.admin-reset-hero .back-link:hover { color: #fff; }.admin-reset-hero .eyebrow { color: #ffd88e; }
.admin-reset-hero h1 { margin: 5px 0 13px; color: #fff; font-size: clamp(38px,5vw,60px); }.admin-reset-hero h1 em { color: #ffb0a5; }
.admin-reset-hero p { max-width: 710px; margin: 0; color: rgba(255,255,255,.74); font-size: 14px; line-height: 1.7; }
.admin-reset-warning-mark { display: grid; justify-items: center; padding: 25px 16px; border: 1px solid rgba(255,176,165,.3); border-radius: 22px; background: rgba(255,255,255,.06); text-align: center; }
.admin-reset-warning-mark > span { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 10px; border-radius: 50%; background: #ffb0a5; color: #722d27; font-family: var(--font-serif); font-size: 32px; font-weight: 900; }
.admin-reset-warning-mark strong,.admin-reset-warning-mark small { display: block; }.admin-reset-warning-mark strong { color: #fff; font-size: 14px; }.admin-reset-warning-mark small { margin-top: 4px; color: rgba(255,255,255,.61); font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }
.admin-reset-shell { display: grid; gap: 20px; padding-top: 34px; padding-bottom: 70px; }
.admin-reset-section { padding: 26px; border: 1px solid rgba(17,100,102,.12); border-radius: 22px; background: var(--paper); box-shadow: 0 9px 30px rgba(23,59,59,.045); scroll-margin-top: 70px; }
.admin-reset-result { display: grid; grid-template-columns: 50px minmax(0,1fr); align-items: start; gap: 15px; padding: 20px 22px; border: 1px solid #a8d4b5; border-radius: 17px; background: #edf9f0; color: #245c37; }
.admin-reset-result > span { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 15px; background: #d7efdd; font-size: 22px; font-weight: 900; }
.admin-reset-result h2 { margin: 0 0 4px; color: inherit; font-size: 21px; }.admin-reset-result p { margin: 0; font-size: 12px; }.admin-reset-result small { display: block; margin-top: 6px; font-size: 9px; }.admin-reset-result small.warning { color: #8a4c15; }
.admin-reset-totals { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 19px; }
.admin-reset-totals article { display: grid; grid-template-columns: 39px 1fr; align-items: center; gap: 1px 11px; padding: 17px; border-radius: 14px; background: var(--soft); }
.admin-reset-totals article > span { grid-row: 1/3; display: grid; place-items: center; width: 39px; height: 39px; border-radius: 11px; background: var(--paper); color: var(--teal); font-size: 17px; }
.admin-reset-totals strong { font-family: var(--font-serif); font-size: 25px; line-height: 1; }.admin-reset-totals small { color: var(--muted); font-size: 8px; }
.admin-reset-groups { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; margin-top: 12px; }
.admin-reset-groups article { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 12px; }
.admin-reset-groups article > span { font-size: 19px; }.admin-reset-groups article div { min-width: 0; }.admin-reset-groups strong,.admin-reset-groups small { display: block; }.admin-reset-groups strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.admin-reset-groups small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.admin-reset-details { margin-top: 15px; border: 1px solid var(--line); border-radius: 13px; }.admin-reset-details summary { padding: 13px 15px; color: var(--teal); cursor: pointer; font-size: 10px; font-weight: 800; }
.admin-reset-table { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; padding: 0 15px 15px; }.admin-reset-table > div { display: flex; justify-content: space-between; gap: 14px; padding: 7px 2px; border-top: 1px solid var(--line); font-size: 9px; }.admin-reset-table code { color: var(--muted); }.admin-reset-table strong { color: var(--ink); }
.admin-reset-timestamp { margin: 12px 0 0; color: var(--muted); font-size: 8px; text-align: right; }
.admin-reset-preserved { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; margin-top: 18px; }
.admin-reset-preserved article { min-height: 138px; padding: 18px; border: 1px solid #b8d9c4; border-radius: 15px; background: #f3fbf5; }
.admin-reset-preserved span { display: block; font-size: 22px; }.admin-reset-preserved strong { display: block; margin: 7px 0 3px; color: #28603b; font-family: var(--font-serif); font-size: 26px; }.admin-reset-preserved small { color: #5c7666; font-size: 9px; line-height: 1.5; }
.admin-reset-danger-zone { border-color: #e9b9b2; background: linear-gradient(135deg,var(--paper),#fff8f6); }
.admin-reset-before { margin-top: 18px; padding: 17px 19px; border-left: 4px solid var(--coral); border-radius: 0 13px 13px 0; background: #fff0ed; }.admin-reset-before strong { font-size: 11px; }.admin-reset-before ol { margin: 8px 0 0; padding-left: 18px; color: var(--muted); font-size: 10px; line-height: 1.8; }
.admin-reset-form { max-width: 700px; margin-top: 22px; }.admin-reset-form code { color: var(--danger); }.admin-reset-backup { padding: 14px; border: 1px solid #e9b9b2; border-radius: 12px; background: var(--paper); }.admin-reset-backup span { color: var(--ink); font-weight: 700; line-height: 1.5; }
.admin-reset-ready { margin: -4px 0 0; color: var(--muted); font-size: 9px; }.admin-reset-ready.ready { color: #32714a; font-weight: 800; }.admin-reset-form .button-danger { align-self: flex-start; }.admin-reset-form .button-danger:disabled { opacity: .42; cursor: not-allowed; transform: none; }

@media (max-width: 1000px) {
    .admin-hero-layout { grid-template-columns: 1fr 280px; gap: 30px; }
    .admin-queue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-overview-grid { grid-template-columns: 1fr; }
    .admin-community-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); }
    .admin-content-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-analytics-filters { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .admin-analytics-kpis { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .admin-risk-grid { grid-template-columns: 1fr 1fr; }
    .admin-operating-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
    .admin-reset-groups { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .admin-reset-preserved { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
    .admin-command-hero { padding-top: 42px; }
    .admin-hero-layout { grid-template-columns: 1fr; gap: 25px; }
    .admin-workload { max-width: 420px; }
    .admin-hero-stats { grid-template-columns: 1fr 1fr; }
    .admin-hero-stats a:nth-child(odd) { border-left: 1px solid rgba(255,255,255,.12); }
    .admin-hero-stats a:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.12); }
    .admin-section-nav .container { width: 100%; padding-inline: 14px; }
    .admin-section-heading,.admin-panel > header { align-items: flex-start; flex-direction: column; gap: 5px; }
    .admin-section-heading > p,.admin-panel > header > p { text-align: left; }
    .admin-community-metrics { grid-template-columns: 1fr 1fr; }
    .admin-content-stats { grid-template-columns: 1fr 1fr; }
    .admin-analytics-filters { grid-template-columns: 1fr 1fr; }.admin-analytics-filters .button { width: 100%; }
    .admin-analytics-kpis { grid-template-columns: 1fr 1fr; }
    .admin-analytics-dimensions,.admin-analytics-bottom { grid-template-columns: 1fr; }
    .admin-funnel-modern { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-report-grid,.admin-case-grid,.admin-risk-grid { grid-template-columns: 1fr; }
    .admin-operating-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .admin-reset-hero-layout { grid-template-columns: 1fr; }
    .admin-reset-warning-mark { display: none; }
    .admin-reset-totals,.admin-reset-groups { grid-template-columns: 1fr 1fr; }
    .admin-reset-table { grid-template-columns: 1fr; }
    .admin-reset-entry { grid-template-columns: 42px minmax(0,1fr); }
    .admin-reset-entry > a { grid-column: 1/-1; width: 100%; }
}
@media (max-width: 520px) {
    .admin-command-hero h1 { font-size: 38px; }
    .admin-command-hero p { font-size: 12px; }
    .admin-hero-stats a { min-height: 70px; padding: 15px 12px; }
    .admin-hero-stats strong { font-size: 24px; }
    .admin-queue-grid,.admin-community-metrics,.admin-funnel-modern { grid-template-columns: 1fr; }
    .admin-content-stats { grid-template-columns: 1fr; }
    .admin-analytics-filters,.admin-analytics-kpis,.admin-analytics-split { grid-template-columns: 1fr; }
    .admin-bar-chart { gap: 3px; overflow-x: auto; }
    .admin-chart-day { min-width: 24px; }
    .admin-trust-card { grid-template-columns: 42px minmax(0,1fr); }
    .admin-trust-icon { width: 42px; height: 42px; }
    .admin-trust-actions { grid-column: 1/-1; }
    .admin-trust-actions form,.admin-trust-actions button { flex: 1; width: 100%; }
    .admin-case-card { padding: 16px; }
    .admin-operating-grid { grid-template-columns: 1fr 1fr; }
    .admin-audit-list > div { grid-template-columns: 1fr auto; gap: 3px 10px; }
    .admin-audit-list time { grid-column: 1/-1; }
    .admin-reset-totals,.admin-reset-groups,.admin-reset-preserved { grid-template-columns: 1fr; }
    .admin-reset-section { padding: 20px; }
    .admin-reset-form .button-danger { width: 100%; }
}

/* Portalweites Aktuelles und Rich-Text-Editor */
.admin-announcement-layout { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(260px,.75fr); align-items: start; gap: 16px; }
.admin-announcement-form { gap: 18px; }
.wysiwyg-shell { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--paper,#fff); transition: border-color .2s,box-shadow .2s; }
.wysiwyg-shell:focus-within { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(17,100,102,.1); }
.wysiwyg-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; padding: 10px; border-bottom: 1px solid var(--line); background: var(--soft); }
.wysiwyg-toolbar[hidden],.wysiwyg-editor[hidden] { display: none; }
.wysiwyg-toolbar-group { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; padding-right: 7px; border-right: 1px solid var(--line); }
.wysiwyg-toolbar-group:last-child { padding-right: 0; border-right: 0; }
.wysiwyg-toolbar button,.wysiwyg-toolbar select,.wysiwyg-color { min-height: 34px; border: 1px solid color-mix(in srgb,var(--line) 80%,transparent); border-radius: 8px; background: var(--paper,#fff); color: var(--ink); }
.wysiwyg-toolbar button { min-width: 34px; padding: 5px 8px; cursor: pointer; font-size: 10px; font-weight: 800; }
.wysiwyg-toolbar select { max-width: 135px; padding: 4px 26px 4px 8px; font-size: 10px; font-weight: 750; }
.wysiwyg-toolbar button:hover,.wysiwyg-toolbar select:hover,.wysiwyg-color:hover { border-color: #8dbeb6; color: var(--teal); }
.wysiwyg-toolbar button:focus-visible,.wysiwyg-toolbar select:focus-visible,.wysiwyg-color:focus-within { outline: 2px solid var(--teal); outline-offset: 1px; }
.wysiwyg-toolbar button:disabled { opacity: .5; cursor: wait; }
.wysiwyg-color { position: relative; display: grid; place-items: center; width: 36px; cursor: pointer; font-size: 12px; font-weight: 900; }
.wysiwyg-color input { position: absolute; inset: auto 5px 3px; width: 26px; height: 4px; padding: 0; border: 0; opacity: .9; cursor: pointer; }
.wysiwyg-color.highlight input { height: 6px; }
.wysiwyg-editor { min-height: 380px; padding: 22px; overflow-x: auto; color: #314b49; font-size: 15px; line-height: 1.75; outline: 0; }
.wysiwyg-editor:empty::before { color: #8a9b99; content: attr(data-placeholder); pointer-events: none; }
.wysiwyg-editor h2 { margin: 25px 0 10px; font-size: 24px; }.wysiwyg-editor h3 { margin: 21px 0 8px; font-size: 20px; }.wysiwyg-editor h4 { margin: 18px 0 7px; font-size: 17px; }
.wysiwyg-editor p,.wysiwyg-editor > div { margin-bottom: 14px; }.wysiwyg-editor blockquote { margin: 20px 0; padding: 13px 17px; border-left: 4px solid var(--coral); background: #fff7f3; color: #536a68; }
.wysiwyg-editor a { color: var(--teal); font-weight: 800; }.wysiwyg-editor ul,.wysiwyg-editor ol { padding-left: 23px; }
.wysiwyg-editor figure { margin: 22px 0; }.wysiwyg-editor figure img { display: block; width: 100%; max-height: 560px; border-radius: 13px; object-fit: contain; background: var(--soft); }.wysiwyg-editor figcaption { margin-top: 7px; color: var(--muted); font-size: 10px; text-align: center; }
.wysiwyg-editor table,.rich-text-content table,.announcement-article table { width: 100%; margin: 22px 0; border-collapse: collapse; border-spacing: 0; font-size: .9em; }
.wysiwyg-editor th,.wysiwyg-editor td,.rich-text-content th,.rich-text-content td,.announcement-article th,.announcement-article td { min-width: 95px; padding: 10px 12px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.wysiwyg-editor th,.rich-text-content th,.announcement-article th { background: var(--teal-soft); color: var(--ink); font-weight: 850; }
.wysiwyg-editor td:focus,.wysiwyg-editor th:focus { background: color-mix(in srgb,var(--teal-soft) 55%,var(--paper)); outline: 2px solid var(--teal); outline-offset: -2px; }
.wysiwyg-editor hr,.rich-text-content hr { margin: 30px 0; border: 0; border-top: 1px solid var(--line); }
.wysiwyg-shell > textarea { width: 100%; min-height: 330px; margin: 0; border: 0; border-radius: 0; }
.wysiwyg-upload-status { min-height: 16px; color: var(--teal); font-size: 9px; font-weight: 750; }.wysiwyg-upload-status.error { color: var(--danger); }
.report-rich-text-field { display: grid; gap: 7px; }
.rich-text-content { overflow-wrap: anywhere; }
.rich-text-content h2 { margin: 38px 0 13px; font-size: 32px; }.rich-text-content h3 { margin: 31px 0 11px; font-size: 25px; }.rich-text-content h4 { margin: 25px 0 9px; font-size: 20px; }
.rich-text-content p,.rich-text-content > div { margin: 0 0 20px; }.rich-text-content ul,.rich-text-content ol { margin: 20px 0; padding-left: 29px; }.rich-text-content li { margin-bottom: 8px; }
.rich-text-content blockquote { margin: 27px 0; padding: 18px 22px; border-left: 5px solid var(--coral); border-radius: 0 12px 12px 0; background: #fff6f2; color: var(--muted); }
.rich-text-content a { color: var(--teal); font-weight: 800; }.rich-text-content figure { margin: 30px 0; }.rich-text-content figure img { display: block; width: 100%; max-height: 760px; border-radius: 17px; object-fit: contain; background: var(--soft); }.rich-text-content figcaption { margin-top: 9px; color: var(--muted); font-size: 11px; text-align: center; }
.admin-publish-row { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding-top: 17px; border-top: 1px solid var(--line); }
.admin-publish-row p { display: grid; margin: 0; }.admin-publish-row strong { font-size: 11px; }.admin-publish-row small { color: var(--muted); font-size: 8px; }
.admin-publish-row .button { flex: 0 0 auto; }
.admin-announcement-recent > header a { color: var(--teal); font-size: 8px; font-weight: 850; text-decoration: none; }
.admin-announcement-recent > div { display: grid; }
.admin-announcement-recent > div > a { display: grid; gap: 3px; padding: 12px 2px; border-top: 1px solid var(--line); text-decoration: none; }
.admin-announcement-recent > div > a:hover strong { color: var(--teal); }
.admin-announcement-recent time,.admin-announcement-recent small { color: var(--muted); font-size: 8px; }.admin-announcement-recent strong { font-size: 11px; line-height: 1.4; }
.announcements-hero { padding-bottom: 62px; background: radial-gradient(circle at 83% 20%,rgba(243,182,58,.22),transparent 22%),linear-gradient(135deg,#123f40,#1d6260); color: #fff; }
.announcements-hero .back-link,.announcements-hero p { color: rgba(255,255,255,.75); }.announcements-hero h1 { max-width: 820px; color: #fff; }.announcements-hero .eyebrow { color: #ffe0a1; }
.announcements-content { padding: 54px 0 95px; background: #f3f7f5; }
.announcements-list-heading { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 18px; }
.announcements-list-heading span { color: var(--coral); font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }.announcements-list-heading h2 { margin: 3px 0 0; font-size: 27px; }.announcements-list-heading p { margin: 0; color: var(--muted); font-size: 10px; }
.announcements-list { display: grid; gap: 11px; }
.announcements-list > a { display: grid; grid-template-columns: 48px minmax(0,1fr) 34px; align-items: center; gap: 16px; padding: 21px; border: 1px solid rgba(17,100,102,.11); border-radius: 18px; background: #fff; box-shadow: 0 8px 25px rgba(23,59,59,.045); text-decoration: none; transition: border-color .2s,transform .2s,box-shadow .2s; }
.announcements-list > a:hover { border-color: #acd0c9; box-shadow: 0 13px 30px rgba(23,59,59,.08); transform: translateY(-2px); }
.announcements-list > a > span { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--teal-soft); font-size: 21px; }.announcements-list > a > b { color: var(--teal); font-size: 22px; text-align: center; }
.announcements-list h2 { margin: 0 0 5px; font-size: 18px; }.announcements-list p { margin: 0 0 8px; color: var(--muted); font-size: 10px; line-height: 1.6; }.announcements-list small { color: var(--coral); font-size: 8px; font-weight: 850; }
.announcement-detail-hero { padding: 54px 0 72px; border-bottom: 1px solid rgba(17,100,102,.12); background: radial-gradient(circle at 86% 12%,rgba(243,182,58,.2),transparent 24%),linear-gradient(135deg,#f4fbf8 0%,#dcefeb 100%); color: var(--ink); }
.announcement-detail-hero .back-link { color: #176b6b; }.announcement-detail-hero .back-link:hover { color: var(--coral); }.announcement-detail-hero .eyebrow { color: #b7483b; }
.announcement-detail-hero h1 { max-width: 900px; margin: 10px 0 17px; color: #173b3b; font-size: clamp(37px,5vw,61px); text-shadow: none; }.announcement-detail-hero > .container > p { max-width: 760px; color: #405e5b; font-size: 16px; line-height: 1.7; }
.announcement-author { display: flex; align-items: center; margin-top: 26px; }.announcement-author-profile { display: inline-flex; align-items: center; gap: 12px; padding: 9px 15px 9px 9px; border: 1px solid rgba(17,100,102,.14); border-radius: 40px; background: rgba(255,255,255,.78); box-shadow: 0 7px 20px rgba(23,59,59,.06); color: var(--ink); text-decoration: none; }.announcement-author a.announcement-author-profile:hover { border-color: rgba(17,100,102,.35); background: #fff; }.announcement-author-profile > .member-avatar-shell { flex: 0 0 auto; }.announcement-author-profile > span:last-child { display: grid; }.announcement-author small { color: #5b7471; font-size: 8px; }.announcement-author strong { color: #173b3b; font-size: 11px; }
.announcement-detail-content { padding: 0 0 100px; background: #f3f7f5; }
.announcement-article { position: relative; top: -28px; padding: clamp(28px,5vw,58px); border: 1px solid rgba(17,100,102,.1); border-radius: 23px; background: #fff; box-shadow: 0 15px 45px rgba(23,59,59,.08); color: #3d5654; font-size: 14px; line-height: 1.85; }
.announcement-article h2 { margin: 37px 0 13px; color: var(--ink); font-size: 28px; }.announcement-article h3 { margin: 29px 0 10px; color: var(--ink); font-size: 21px; }.announcement-article h2:first-child,.announcement-article h3:first-child { margin-top: 0; }
.announcement-article p { margin-bottom: 18px; }.announcement-article ul,.announcement-article ol { margin: 18px 0; padding-left: 25px; }.announcement-article li { margin-bottom: 7px; }
.announcement-article blockquote { margin: 28px 0; padding: 18px 22px; border-left: 5px solid var(--coral); border-radius: 0 12px 12px 0; background: #fff6f2; color: #526967; font-family: var(--font-serif); font-size: 17px; }
.announcement-article a { color: var(--teal); font-weight: 800; }.announcement-article hr { margin: 33px 0; border: 0; border-top: 1px solid var(--line); }
.announcement-article figure { margin: 30px 0; }.announcement-article figure img { display: block; width: 100%; max-height: 720px; border-radius: 17px; object-fit: contain; background: var(--soft); }.announcement-article figcaption { margin-top: 9px; color: var(--muted); font-size: 10px; text-align: center; }
.announcement-back { text-align: center; }

@media (max-width: 850px) {
    .admin-announcement-layout { grid-template-columns: 1fr; }
    .admin-announcement-recent > div { grid-template-columns: 1fr 1fr; gap: 0 14px; }
}
@media (max-width: 600px) {
    .admin-publish-row,.announcements-list-heading { align-items: stretch; flex-direction: column; }
    .admin-publish-row .button { width: 100%; }
    .admin-announcement-recent > div { grid-template-columns: 1fr; }
    .wysiwyg-editor,.wysiwyg-shell > textarea { min-height: 300px; padding: 16px; }
    .wysiwyg-toolbar { align-items: stretch; gap: 6px; padding: 8px; }
    .wysiwyg-toolbar-group { width: 100%; padding: 0 0 6px; border-right: 0; border-bottom: 1px solid var(--line); }
    .wysiwyg-toolbar-group:last-child { padding-bottom: 0; border-bottom: 0; }
    .wysiwyg-toolbar-selects label { flex: 1 1 105px; }.wysiwyg-toolbar select { width: 100%; max-width: none; }
    .announcements-list > a { grid-template-columns: 42px minmax(0,1fr); padding: 17px; }.announcements-list > a > span { width: 42px; height: 42px; }.announcements-list > a > b { display: none; }
    .announcements-list h2 { font-size: 16px; }
    .announcement-detail-hero { padding-top: 43px; }.announcement-detail-hero > .container > p { font-size: 13px; }
    .announcement-article { top: -20px; border-radius: 18px; font-size: 12px; }.announcement-article h2 { font-size: 22px; }.announcement-article h3 { font-size: 18px; }
}

/* Darstellung: Hell, Dunkel oder Systemeinstellung */
.theme-choice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; margin: 0; padding: 0; border: 0; }
.theme-choice { position: relative; cursor: pointer; }
.theme-choice > input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.theme-choice-card { display: flex; min-height: 218px; height: 100%; flex-direction: column; padding: 13px; border: 2px solid var(--line); border-radius: 16px; background: var(--paper); transition: border-color .2s,box-shadow .2s,transform .2s; }
.theme-choice:hover .theme-choice-card { border-color: color-mix(in srgb,var(--teal) 45%,var(--line)); transform: translateY(-2px); }
.theme-choice > input:focus-visible + .theme-choice-card { outline: 3px solid rgba(243,182,58,.75); outline-offset: 2px; }
.theme-choice > input:checked + .theme-choice-card { border-color: var(--teal); box-shadow: 0 0 0 3px color-mix(in srgb,var(--teal) 13%,transparent); }
.theme-choice-preview { position: relative; overflow: hidden; display: grid; place-items: center; height: 92px; margin-bottom: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fffaf2; color: #173b3b; }
.theme-choice-preview::before { content: ''; position: absolute; inset: 0 0 auto; height: 18px; border-bottom: 1px solid rgba(23,59,59,.12); background: #fff; }
.theme-choice-preview i { position: absolute; left: 10px; right: 36%; height: 8px; border-radius: 7px; background: #dcefee; }
.theme-choice-preview i:first-child { top: 31px; }.theme-choice-preview i:nth-child(2) { top: 48px; right: 18%; }
.theme-choice-preview b { position: absolute; right: 11px; bottom: 9px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; background: #f06d5b; color: #fff; }
.theme-choice-dark .theme-choice-preview { border-color: #304544; background: #101c1c; color: #e6f2f0; }
.theme-choice-dark .theme-choice-preview::before { border-color: #304544; background: #182727; }
.theme-choice-dark .theme-choice-preview i { background: #294342; }
.theme-choice-system .theme-choice-preview { background: linear-gradient(110deg,#fffaf2 0 50%,#101c1c 50%); }
.theme-choice-system .theme-choice-preview::before { background: linear-gradient(110deg,#fff 0 50%,#182727 50%); }
.theme-choice-system .theme-choice-preview i { background: linear-gradient(110deg,#dcefee 0 50%,#294342 50%); }
.theme-choice-card > strong { font-size: 13px; }.theme-choice-card > small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.theme-choice-card > em { display: none; margin-top: auto; padding-top: 10px; color: var(--teal); font-size: 9px; font-style: normal; font-weight: 850; }
.theme-choice > input:checked + .theme-choice-card > em { display: block; }
.theme-live-note,.appearance-summary-state { display: flex; align-items: center; gap: 13px; padding: 14px 16px; border-radius: 13px; background: var(--soft); }
.theme-live-note > span,.appearance-summary-state > span { display: grid; place-items: center; width: 39px; height: 39px; flex: 0 0 auto; border-radius: 11px; background: var(--teal-soft); color: var(--teal); font-size: 20px; }
.theme-live-note p,.appearance-summary-state p { margin: 0; }.theme-live-note strong,.appearance-summary-state strong { display: block; font-size: 11px; }.theme-live-note small,.appearance-summary-state p { display: block; color: var(--muted); font-size: 9px; line-height: 1.5; }
.appearance-settings-stack { display: grid; gap: 22px; min-width: 0; }
.language-choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; margin: 0; padding: 0; border: 0; }
.language-choice { position: relative; cursor: pointer; }
.language-choice > input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.language-choice > span { display: grid; grid-template-columns: 44px minmax(0,1fr); align-items: center; gap: 1px 12px; min-height: 92px; padding: 15px; border: 2px solid var(--line); border-radius: 15px; background: var(--paper); transition: border-color .2s,box-shadow .2s,transform .2s; }
.language-choice:hover > span { border-color: color-mix(in srgb,var(--teal) 45%,var(--line)); transform: translateY(-2px); }
.language-choice > input:focus-visible + span { outline: 3px solid rgba(243,182,58,.75); outline-offset: 2px; }
.language-choice > input:checked + span { border-color: var(--teal); box-shadow: 0 0 0 3px color-mix(in srgb,var(--teal) 13%,transparent); }
.language-choice b { grid-row: 1 / 4; font-size: 28px; }.language-choice strong { font-size: 13px; }.language-choice small { color: var(--muted); font-size: 9px; }.language-choice em { display: none; color: var(--teal); font-size: 9px; font-style: normal; font-weight: 850; }.language-choice > input:checked + span em { display: block; }
.appearance-summary .appearance-summary-state + .appearance-summary-state { margin-top: 9px; }
.footer-language { display: grid; gap: 6px; margin-top: 8px; }.footer-language > span { color: #fff; font-size: 12px; font-weight: 800; }.footer-language form { display: flex; gap: 6px; }.footer-language button { min-width: 38px; padding: 6px 9px; border: 1px solid rgba(255,255,255,.25); border-radius: 8px; background: transparent; color: rgba(255,255,255,.75); cursor: pointer; font: inherit; font-size: 11px; font-weight: 800; }.footer-language button:hover,.footer-language button.active { border-color: var(--yellow); background: var(--yellow); color: #173b3b; }
.auth-language-switch { position: fixed; z-index: 30; top: 16px; right: 18px; display: flex; gap: 5px; padding: 5px; border: 1px solid var(--line); border-radius: 11px; background: color-mix(in srgb,var(--paper) 90%,transparent); box-shadow: var(--shadow-small); backdrop-filter: blur(10px); }.auth-language-switch button { min-width: 38px; padding: 7px 9px; border: 0; border-radius: 7px; background: transparent; color: var(--muted); cursor: pointer; font: inherit; font-size: 10px; font-weight: 850; }.auth-language-switch button:hover,.auth-language-switch button.active { background: var(--teal); color: #fff; }
@media (max-width: 600px) { .language-choice-grid { grid-template-columns: 1fr; } }
.registration-language-field { min-width: 0; margin: 0; padding: 0; border: 0; }.registration-language-field > legend { margin-bottom: 4px; color: var(--ink); font-size: 12px; font-weight: 800; }.registration-language-field > p { margin: 0 0 10px; color: var(--muted); font-size: 10px; line-height: 1.55; }.registration-language-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }.registration-language-grid .language-choice > span { min-height: 76px; padding: 11px 12px; }.registration-language-grid .language-choice b { font-size: 23px; }.registration-language-grid .language-choice strong { font-size: 12px; }.registration-language-grid .language-choice small,.registration-language-grid .language-choice em { font-size: 8px; }
@media (max-width: 370px) { .registration-language-grid { grid-template-columns: 1fr; } }

/* Dunkles Farbschema. data-theme wird vor dem Stylesheet im Dokumentkopf gesetzt. */
html[data-theme="dark"] {
    color-scheme: dark;
    --ink: #e7f1ef;
    --muted: #a5b8b5;
    --teal: #67cbc5;
    --teal-dark: #4db2ad;
    --teal-soft: #203d3c;
    --coral: #ff8b79;
    --coral-dark: #e97564;
    --yellow: #f2c45d;
    --cream: #101b1b;
    --paper: #182727;
    --line: #304544;
    --soft: #1e3130;
    --danger: #ff9292;
    --shadow: 0 18px 60px rgba(0,0,0,.3);
    --shadow-small: 0 8px 30px rgba(0,0,0,.24);
    --control-bg: #182727;
    --control-border: #304544;
    --control-placeholder: #829792;
    --control-disabled-bg: #1e3130;
    --control-disabled-text: #768a86;
    --select-arrow: 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 1 5 5 5-5' fill='none' stroke='%23a5b8b5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --calendar-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cg fill='none' stroke='%23a5b8b5' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.25' y='3.75' width='13.5' height='12' rx='2'/%3E%3Cpath d='M5.25 1.75v4M12.75 1.75v4M2.25 7.25h13.5'/%3E%3C/g%3E%3C/svg%3E");
    --time-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cg fill='none' stroke='%23a5b8b5' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='9' r='6.75'/%3E%3Cpath d='M9 5v4.3l2.8 1.7'/%3E%3C/g%3E%3C/svg%3E");
}
html[data-theme="dark"] body { background: var(--cream); color: var(--ink); }
html[data-theme="dark"] .site-header { border-color: rgba(103,203,197,.12); background: rgba(16,27,27,.94); }
html[data-theme="dark"] .site-header.scrolled { box-shadow: 0 8px 30px rgba(0,0,0,.28); }
html[data-theme="dark"] .nav-notifications-count { border-color: var(--cream); }
html[data-theme="dark"] .flash,
html[data-theme="dark"] .floating-card,
html[data-theme="dark"] .map-family-card,
html[data-theme="dark"] .idea-card { border-color: var(--line); background: var(--paper); }
html[data-theme="dark"] .hero { background: radial-gradient(circle at 82% 16%,rgba(103,203,197,.09),transparent 27%),linear-gradient(115deg,#101b1b 0%,#132222 48%,#172525 100%); }
html[data-theme="dark"] .hero-image-wrap { border-color: #263b3a; box-shadow: 0 30px 80px rgba(0,0,0,.38); }
html[data-theme="dark"] .float-icon.coral { background: #482d2a; }
html[data-theme="dark"] .match-pill { background: #213f31; color: #8bd4a2; }
html[data-theme="dark"] .avatar-stack span { border-color: var(--cream); }
html[data-theme="dark"] .intro-section,
html[data-theme="dark"] .safety-section,
html[data-theme="dark"] .auth-page,
html[data-theme="dark"] .auth-shell { background: var(--paper); }
html[data-theme="dark"] .ideas-section { background: #142322; }
html[data-theme="dark"] .benefit-teal { background: #173a38; }
html[data-theme="dark"] .benefit-coral { background: #3b2927; }
html[data-theme="dark"] .benefit-yellow { background: #3c341f; }
html[data-theme="dark"] .map-paper { border-color: #263b3a; background-color: #20362e; }
html[data-theme="dark"] .cta-card { border-color: #55492d; background: #312b1e; }
html[data-theme="dark"] .site-footer { background: #091313; }

html[data-theme="dark"] .trust-bar,
html[data-theme="dark"] .auth-aside,
html[data-theme="dark"] .safety-panel,
html[data-theme="dark"] .static-hero,
html[data-theme="dark"] .profile-hero,
html[data-theme="dark"] .feature-hero,
html[data-theme="dark"] .reports-index-hero,
html[data-theme="dark"] .report-detail-hero,
html[data-theme="dark"] .report-form-hero,
html[data-theme="dark"] .faq-hero,
html[data-theme="dark"] .messages-hero { background-color: #15595a; }
html[data-theme="dark"] .button-secondary { background: #176b6d; }
html[data-theme="dark"] .button-secondary:hover { background: #125557; }
html[data-theme="dark"] .button-light { border: 1px solid var(--line); background: var(--paper); color: var(--teal) !important; }
html[data-theme="dark"] .button:not(.button-light):not(.button-secondary):not(.button-danger) { background: #c95647; }
html[data-theme="dark"] .button:not(.button-light):not(.button-secondary):not(.button-danger):hover { background: #b74639; }
html[data-theme="dark"] .button-danger { background: #a83f3f; }

html[data-theme="dark"] :is(
    .profile-page,.feature-page,.admin-page,.messages-page,.report-form-page,.reports-page,.travelbuddy-review-page,.faq-page,
    .announcements-content,.announcement-detail-content,.trip-create-section,.static-content,.wizard-page,.portal-page
) { background: var(--cream); }
html[data-theme="dark"] :is(
    .wizard-progress-wrap,.profile-edit-nav-wrap,.portal-hero,.result-panel-head,.explore-shell,.wizard-card,.profile-panel,
    .feature-card,.notification-item,.compare-table,.planner-item,.empty-feature-state,.trip-card,.messages-empty,
    .message-bubble,.message-composer,.report-card,.report-author-actions,.report-experience,.report-comment-content,.faq-category-nav,
    .faq-category-nav button,.faq-aside-card,.faq-section,.faq-empty,.admin-section-nav,.admin-panel,.admin-audit-panel,
    .admin-queue-card,.admin-case-card,.admin-trust-card,.admin-operating-grid > div,.wysiwyg-shell,.wysiwyg-toolbar button,
    .announcements-list > a,.announcement-article,.announcement-author-profile,.status-card,.destination-picker,
    .own-trip-grid article,.country-picker-panel,.save-search-dialog,.report-experience-form,.group-message-thread article,
    .child-diary-grid > article,.report-child-diary > article,.current-upload,.profile-review-card
) { border-color: var(--line); background-color: var(--paper); box-shadow: var(--shadow-small); }
html[data-theme="dark"] .result-panel { background: #132221; }
html[data-theme="dark"] .notification-item.unread { background: #1b3432; }
html[data-theme="dark"] :is(.portal-shortcuts a,.portal-shortcuts button,.profile-facts div,.profile-tag-list > span,.nav-notifications,.theme-live-note,.appearance-summary-state) { background: var(--soft); }
html[data-theme="dark"] :is(.profile-privacy-card,.faq-safety-card,.report-private-note,.report-detail-footer,.notification-example,.content-callout) { background: #193837; }
html[data-theme="dark"] :is(.report-comment-compose,.report-comment-actions form,.report-comment-blocked) { border-color: var(--line); background: var(--soft); }
html[data-theme="dark"] .report-comment.by-report-author .report-comment-content { border-color: #286766; background: #173a38; }
html[data-theme="dark"] .report-comment-author-badge { background: #176b6d; color: #fff; }
html[data-theme="dark"] :is(.privacy-note,.tip-note) { border-color: #36504e; background: rgba(103,203,197,.08); }

html[data-theme="dark"] :is(
    .field input,.field select,.field textarea,.language-row select,.radius-filter select,.advanced-filter-card select,
    .advanced-filter-card > input,.budget-filter-input input,.message-compose-row textarea,.faq-search input,
    .country-picker-toggle,.country-picker-search input,.wysiwyg-shell > textarea
) { border-color: var(--line); background: var(--paper); color: var(--ink); }
html[data-theme="dark"] :is(input,textarea)::placeholder { color: #718683; }
html[data-theme="dark"] :is(.upload-field,.segmented-options label > span,.notification-choice,.report-public-choice,.child-card,.advanced-filter-card) { border-color: var(--line); background: var(--soft); }
html[data-theme="dark"] .segmented-options input:checked + span { border-color: var(--teal); background: var(--teal-soft); color: var(--teal); }
html[data-theme="dark"] .inline-alert.error { border-color: #6c4141; background: #3a2424; color: #ffb0b0; }
html[data-theme="dark"] .inline-alert.warning { border-color: #695a31; background: #39311d; color: #f4d487; }
html[data-theme="dark"] .wysiwyg-toolbar { background: var(--soft); }
html[data-theme="dark"] .wysiwyg-editor { color: var(--ink); }
html[data-theme="dark"] :is(.wysiwyg-toolbar button,.wysiwyg-toolbar select,.wysiwyg-color) { border-color: var(--line); background: var(--paper); color: var(--ink); }
html[data-theme="dark"] :is(.wysiwyg-editor blockquote,.announcement-article blockquote,.rich-text-content blockquote) { background: #342725; color: var(--muted); }
html[data-theme="dark"] :is(.wysiwyg-editor th,.rich-text-content th,.announcement-article th) { background: var(--teal-soft); color: var(--ink); }
html[data-theme="dark"] .security-state { background: #1c3b30; }
html[data-theme="dark"] :is(.totp-enrollment,.totp-secret,.recovery-code-grid code) { border-color: var(--line); background: var(--paper); color: var(--ink); }

/* Vollständige dunkle Flächen für Portal- und Planungsfunktionen */
html[data-theme="dark"] :is(
    .filter-chip,.age-filter-group label span,.result-search input,.map-toolbar button,.advanced-filter-toggle,
    .own-trip-edit,.choice-chip span,.child-profile-details,.child-travel-team article > span,
    .child-activity-actions select,.child-packing-groups > article,.child-feedback-forms > form,
    .journey-anchor-nav,.journey-panel,.icon-action,.trust-level-legend span,.public-child-card,
    .conversation-list,.conversation-header,.travel-proposal-create,.shared-trip-dashboard-card,.button-decline,
    .report-rating-field label > span,.report-public-choice > span
) { border-color: var(--line); background: var(--paper); color: var(--ink); }
html[data-theme="dark"] :is(
    .result-list,.journey-suite-section,.shared-trips-section
) { border-color: var(--line); background: var(--cream); }
html[data-theme="dark"] :is(
    .meeting-filter select,.travel-date-filter input,.result-search input,.child-activity-actions select
) { border-color: var(--line); background: var(--paper); color: var(--ink); }
html[data-theme="dark"] :is(
    .language-row.selected,.add-child-button,.map-privacy,.contact-panel-active,.contact-panel-locked,
    .conversation-list-item.unread,.notification-status,.review-visibility-note,.report-public-choice,
    .child-profile-details[open] summary
) { border-color: var(--line); background: var(--soft); }
html[data-theme="dark"] :is(.result-search button,.trip-card-tools button,.trip-card-tools label) { background: var(--soft); color: var(--teal); }
html[data-theme="dark"] :is(.message-row.mine .message-bubble,.group-message-thread article.mine) { background: #176b6d; color: #fff; }
html[data-theme="dark"] :is(.filter-chip.active,.faq-category-nav button.active,.language-row.selected .custom-check,.notification-choice > input:checked + .notification-switch,.wizard-progress-item.done > span,.match-score-orb) { border-color: #176b6d; background: #176b6d; color: #fff; }
html[data-theme="dark"] .choice-chip input:checked + span { border-color: var(--teal); background: var(--teal-soft); color: var(--teal); }
html[data-theme="dark"] :is(.trip-person,.trip-card .trip-person,.packing-row) { border-color: var(--line); }
html[data-theme="dark"] .result-list { background: #132221; }
html[data-theme="dark"] .map-panel { background: #172928; }
html[data-theme="dark"] .map-status { box-shadow: var(--shadow-small); }
html[data-theme="dark"] .shared-trips-section { background: #142624; }
html[data-theme="dark"] .faq-cta { background: var(--cream); }
html[data-theme="dark"] :is(.feature-hero,.travelbuddy-review-hero) { background: linear-gradient(135deg,#15595a,#0e4142); }
html[data-theme="dark"] .report-detail-hero:not(.with-image) .report-hero-overlay { background: radial-gradient(circle at 80% 15%,rgba(255,255,255,.07),transparent 35%),linear-gradient(135deg,#15595a,#0e4142); }

/* Farbig getönte Karten verwenden im Darkmode dunkles Papier statt Weiß. */
html[data-theme="dark"] .interest-option:has(input:checked) { background: color-mix(in srgb,var(--interest) 18%,var(--paper)); }
html[data-theme="dark"] :is(.profile-interest-list span,.common-interest-list span) {
    border-color: color-mix(in srgb,var(--tag-color) 38%,var(--line));
    background: color-mix(in srgb,var(--tag-color) 15%,var(--paper));
}
html[data-theme="dark"] .trust-level-pill {
    border-color: color-mix(in srgb,var(--trust-color) 38%,var(--line));
    background: color-mix(in srgb,var(--trust-color) 15%,var(--paper)) !important;
}
html[data-theme="dark"] :is(.public-trip-card,.travel-agreement-card) {
    border-color: color-mix(in srgb,var(--trip-color) 38%,var(--line));
    background: color-mix(in srgb,var(--trip-color) 10%,var(--paper));
}
html[data-theme="dark"] :is(.public-trip-icon,.travel-agreement-icon,.shared-trip-dashboard-top > span) { background: color-mix(in srgb,var(--trip-color) 22%,var(--paper)); }
html[data-theme="dark"] .shared-trip-dashboard-card { border-color: color-mix(in srgb,var(--trip-color) 38%,var(--line)); }
html[data-theme="dark"] .child-match-panel { background: linear-gradient(145deg,var(--paper) 40%,var(--soft)); }
html[data-theme="dark"] .mobile-push-guide { border-color: var(--line); background: linear-gradient(135deg,var(--soft),var(--paper)); }
html[data-theme="dark"] .mobile-push-guide-icon { background: var(--paper); box-shadow: var(--shadow-small); }
html[data-theme="dark"] .trip-card-tools button[aria-pressed="true"] { background: #482d2a; color: var(--coral); }
html[data-theme="dark"] :is(.trip-availability-badge,.trip-card-tools a.waitlist-link,.popup-card .popup-waitlist-badge) { border-color: #66562c; background: #39311d; color: #f1cf7b; }
html[data-theme="dark"] .trip-card-full { border-color: #66562c; }

/* Status-, Warn- und Erfolgsmeldungen mit ausreichendem Kontrast */
html[data-theme="dark"] :is(
    .status-pill,.region-location-ready,.inline-alert.success,.trust-badges span.verified,.public-profile-badge,
    .notification-status.enabled,.shared-trip-dashboard-top > b,.status-pill.matched,.report-visibility.public,
    .travel-agreement-card.accepted,.compatibility-comparison-list .aligned,.match-reason-grid span,.match-score,
    .status-icon.success,.trust-request-card.verified,.child-votes .vote-yes
) { border-color: #315b48; background: #1c3b30; color: #9ad8ac !important; }
html[data-theme="dark"] :is(.region-location-ready > span,.notification-status.enabled > span,.travel-agreement-card.accepted .travel-agreement-icon) { background: #284b3b; color: #9ad8ac; }
html[data-theme="dark"] :is(.region-location-ready p,.region-location-ready strong,.match-score small) { color: #b4c9c3; }
html[data-theme="dark"] :is(.getting-status-grid li.done,.balance-grid strong.positive,.trust-check) { color: #9ad8ac; }

html[data-theme="dark"] :is(
    .filter-summary > span,.map-status,.travel-level-max,.activity-suggestions span,.push-diagnostic,
    .totp-qr-error,.trip-card-meta .country-warning-badge,.popup-card .country-warning-badge,
    .trust-prerequisite,.report-visibility.pending,.report-approval-bar,.faq-section > header > b,.admin-case-warning,
    .status-icon.warning,.report-rating-field input:checked + span
) { border-color: #66562c; background: #39311d; color: #f1cf7b; }
html[data-theme="dark"] :is(.country-advisory-alert strong,.admin-case-warning,.report-approval-bar p strong) { color: #f1cf7b; }
html[data-theme="dark"] :is(
    .remove-child,.child-votes .vote-no,.shared-trip-report-actions .needs-review,.report-visibility.rejected,
    .admin-queue-card.urgent,.status-pill.needs-review,.admin-section-nav b,.admin-queue-card.urgent > span
) { border-color: #69403c; background: #3b2523; color: #ffaaa0 !important; }
html[data-theme="dark"] .admin-queue-card.urgent { box-shadow: var(--shadow-small); }
html[data-theme="dark"] :is(.admin-trust-icon,.admin-signal-list > div > span,.travel-proposal-create > summary > span:first-child,.faq-aside-card > span,.profile-child > span,.destination-picker-head > span) { background: #3a311d; color: #f1cf7b; }
html[data-theme="dark"] .admin-trust-icon.identity { background: #1e3048; color: #8fc2ff; }

/* Lesbarkeit längerer Texte, Listen und Profilrahmen */
html[data-theme="dark"] :is(
    .report-prose,.profile-review-card > p,.faq-answer p,.admin-case-details,.match-reason-list,
    .child-rhythm-facts span,.child-mini-tags span
) { color: var(--muted); }
html[data-theme="dark"] .report-prose { color: var(--ink); }
html[data-theme="dark"] .child-mini-tags span { background: var(--soft); }
html[data-theme="dark"] :is(.member-avatar-shell,.waitlist-family-avatar .member-avatar-shell,.shared-trip-partner > .member-avatar-shell) { background: var(--paper); box-shadow: var(--shadow-small); }
html[data-theme="dark"] .member-trust-badge { border-color: var(--paper); }
html[data-theme="dark"] .report-buddy-avatars img,
html[data-theme="dark"] .report-buddy-avatars i,
html[data-theme="dark"] .report-travelbuddys img,
html[data-theme="dark"] .report-travelbuddys i { border-color: var(--paper); background: var(--paper); }
html[data-theme="dark"] .profile-avatar-large { background: var(--teal-soft); color: var(--teal); }
html[data-theme="dark"] .notification-switch i { background: #d4e2df; }
html[data-theme="dark"] .notification-status > span { background: var(--paper); color: var(--muted); }
html[data-theme="dark"] .shared-trip-dashboard-top > b.completed { border-color: var(--line); background: var(--soft); color: var(--muted) !important; }
html[data-theme="dark"] button.button-decline {
    border-color: #69403c !important;
    background: var(--paper);
    color: #ffaaa0 !important;
}
html[data-theme="dark"] .travel-proposal-waiting > span,
html[data-theme="dark"] .private-checklist form button:not(.icon-action),
html[data-theme="dark"] .checkin-grid article > b,
html[data-theme="dark"] .trust-request-card > span { background: var(--paper); color: var(--teal); }
html[data-theme="dark"] .checkin-grid article.urgent { border-color: #69403c; background: #3b2523; }
html[data-theme="dark"] .profile-achievement-badge > b { background: color-mix(in srgb,var(--achievement-color) 72%,var(--paper)); }
html[data-theme="dark"] .travel-level-panel .profile-panel-head > b,
html[data-theme="dark"] .travel-level-list li.current { background: color-mix(in srgb,var(--tier-color) 20%,var(--paper)); }
html[data-theme="dark"] .report-approval-bar { border-color: #66562c; }
html[data-theme="dark"] .admin-workload > span { background: #284b3b; color: #9ad8ac; }
html[data-theme="dark"] .admin-workload.has-work > span { background: #3b2523; color: #ffaaa0; }
html[data-theme="dark"] .admin-queue-card.muted > span { background: var(--soft); color: var(--muted); }
html[data-theme="dark"] .admin-funnel-modern > div > i { background: var(--line); }
html[data-theme="dark"] .admin-analytics-notice { border-color: #66562c; background: #39311d; }
html[data-theme="dark"] .admin-analytics-notice > span { background: #51451f; color: #f1cf7b; }
html[data-theme="dark"] :is(.admin-analytics-filters select,.admin-analytics-filters input[type="date"],.admin-analytics-kpis article) { border-color: var(--line); background: var(--paper); color: var(--ink); }
html[data-theme="dark"] :is(.admin-analytics-filters .admin-analytics-check,.analytics-ranking-row > i,.admin-analytics-split article > i,.analytics-error-list > div,.admin-analytics-privacy > p) { border-color: var(--line); background: var(--soft); }
html[data-theme="dark"] .admin-analytics-kpis article > span.up { color: #9ad8ac; }
html[data-theme="dark"] .admin-reset-entry { border-color: #69403c; background: #302321; }
html[data-theme="dark"] .admin-reset-entry > span { background: #3b2523; color: #ffaaa0; }
html[data-theme="dark"] .admin-reset-result { border-color: #315b48; background: #1c3b30; color: #9ad8ac; }
html[data-theme="dark"] .admin-reset-result > span { background: #284b3b; }
html[data-theme="dark"] .admin-reset-preserved article { border-color: #315b48; background: #1a3228; }
html[data-theme="dark"] .admin-reset-preserved strong { color: #9ad8ac; }
html[data-theme="dark"] .admin-reset-preserved small { color: var(--muted); }
html[data-theme="dark"] .admin-reset-danger-zone { border-color: #69403c; background: linear-gradient(135deg,var(--paper),#2b2220); }
html[data-theme="dark"] .admin-reset-before { background: #3b2523; }
html[data-theme="dark"] .admin-reset-backup { border-color: #69403c; }
html[data-theme="dark"] .image-remove-choice span { border-color: #69403c; background: var(--paper); color: #ffaaa0; }
html[data-theme="dark"] .image-remove-choice input:checked + span,
html[data-theme="dark"] .current-upload.pending-removal { border-color: #69403c; background: #3b2523; color: #ffaaa0; }

html[data-theme="dark"] .announcement-detail-hero { border-color: var(--line); background: radial-gradient(circle at 86% 12%,rgba(242,196,93,.09),transparent 24%),linear-gradient(135deg,#142525 0%,#1c3836 100%); }
html[data-theme="dark"] .announcement-detail-hero h1,
html[data-theme="dark"] .announcement-author strong { color: var(--ink); }
html[data-theme="dark"] .announcement-detail-hero > .container > p,
html[data-theme="dark"] .announcement-author small,
html[data-theme="dark"] .announcement-article { color: var(--muted); }
html[data-theme="dark"] .announcement-detail-hero .back-link { color: var(--teal); }
html[data-theme="dark"] .announcement-author-profile { background: rgba(24,39,39,.88); }
html[data-theme="dark"] .announcement-author a.announcement-author-profile:hover { border-color: var(--teal); background: var(--paper); }

html[data-theme="dark"] .leaflet-popup-content-wrapper,
html[data-theme="dark"] .leaflet-popup-tip,
html[data-theme="dark"] .map-legend { background: var(--paper); color: var(--ink); }
html[data-theme="dark"] .leaflet-control-zoom a { border-color: var(--line); background: var(--paper); color: var(--ink); }
html[data-theme="dark"] .leaflet-tile-pane { filter: brightness(.7) saturate(.72) contrast(1.12); }
html[data-theme="dark"] .leaflet-control-attribution { background: rgba(16,27,27,.88) !important; color: var(--muted); }
html[data-theme="dark"] .leaflet-control-attribution a { color: var(--teal); }

@media (max-width: 760px) {
    .theme-choice-grid { grid-template-columns: 1fr; }
    .theme-choice-card { min-height: 0; }
    .theme-choice-preview { height: 72px; }
    html[data-theme="dark"] .main-nav { border-color: var(--line); background: var(--paper); }
    html[data-theme="dark"] .map-panel { background: var(--cream); }
    html[data-theme="dark"] :is(.map-close,.map-mobile-toggle) { border-color: var(--line); background: var(--paper); color: var(--ink); }
}

/* Browserübergreifend einheitliche Formularfelder (Chromium, Safari/WebKit und Firefox). */
button,
input,
select,
textarea {
    border-style: solid;
    font-family: var(--font-sans);
    letter-spacing: inherit;
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: none;
    appearance: none;
}

:where(
    input:not([type]),
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    input[type="datetime-local"],
    input[type="file"],
    select,
    textarea
) {
    background-clip: padding-box;
    box-sizing: border-box;
    border-color: var(--control-border);
    background-color: var(--control-bg);
    color: var(--ink);
    caret-color: var(--teal);
    opacity: 1;
    -webkit-text-fill-color: currentColor;
}

:where(
    input:not([type]),
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    input[type="datetime-local"],
    textarea
) {
    -webkit-appearance: none;
    appearance: none;
}

:where(input, textarea)::placeholder {
    color: var(--control-placeholder);
    opacity: 1;
    -webkit-text-fill-color: var(--control-placeholder);
}

:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea):disabled,
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), textarea)[readonly] {
    border-color: var(--control-border);
    background-color: var(--control-disabled-bg);
    color: var(--control-disabled-text);
    cursor: not-allowed;
    opacity: 1;
    -webkit-text-fill-color: var(--control-disabled-text);
}

/* Das Pfeilsymbol stammt aus dem Portal statt aus dem jeweiligen Betriebssystem. */
:root select:not([multiple]):not([size]) {
    -webkit-appearance: none;
    appearance: none;
    overflow: hidden;
    padding-inline-end: 36px;
    background-color: var(--control-bg);
    background-image: var(--select-arrow);
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px 8px;
    color: var(--ink);
    cursor: pointer;
    line-height: 1.35;
    text-overflow: ellipsis;
    -webkit-text-fill-color: currentColor;
}

:root select:not([multiple]):not([size]):disabled {
    background-color: var(--control-disabled-bg);
    color: var(--control-disabled-text);
    cursor: not-allowed;
    -webkit-text-fill-color: var(--control-disabled-text);
}

:root select:is([multiple], [size]) {
    -webkit-appearance: auto;
    appearance: auto;
    padding-inline-end: 14px;
    background-color: var(--control-bg);
    background-image: none;
}

select option,
select optgroup {
    background-color: var(--control-bg);
    color: var(--ink);
    font: inherit;
}

select optgroup { font-weight: 800; }

/* Einheitlicher Kalenderknopf; die native Picker-Funktion bleibt in Chromium/WebKit erhalten. */
:root input:is([type="date"], [type="time"], [type="datetime-local"]) {
    -webkit-appearance: auto;
    appearance: auto;
    min-width: 0;
    padding-inline-end: 40px;
    background-color: var(--control-bg);
    background-image: var(--calendar-icon);
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 18px 18px;
    color: var(--ink);
    line-height: 1.35;
    -webkit-text-fill-color: currentColor;
}

:root input[type="time"] { background-image: var(--time-icon); }

html[data-theme="dark"] input:is([type="date"], [type="time"], [type="datetime-local"]) {
    background-color: var(--control-bg);
    background-image: var(--calendar-icon);
    color: var(--ink);
}

html[data-theme="dark"] input[type="time"] { background-image: var(--time-icon); }

input:is([type="date"], [type="time"], [type="datetime-local"])::-webkit-calendar-picker-indicator {
    display: block;
    flex: 0 0 24px;
    width: 24px;
    height: 100%;
    margin: 0 -5px 0 0;
    padding: 0;
    cursor: pointer;
    opacity: 0;
    pointer-events: auto;
}

input:is([type="date"], [type="time"], [type="datetime-local"])::-webkit-date-and-time-value {
    min-height: 1.35em;
    margin: 0;
    text-align: left;
}

input:is([type="date"], [type="time"], [type="datetime-local"])::-webkit-datetime-edit {
    padding: 0;
}

/* Browserabhängige Such- und Zahlenknöpfe werden nicht zusätzlich eingeblendet. */
input[type="search"] {
    -webkit-appearance: none;
    appearance: none;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
    appearance: none;
}

input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
    appearance: none;
}

/* Sichtbare Checkboxen und Radiobuttons erhalten dieselbe Geometrie in allen Browsern. */
:where(input[type="checkbox"], input[type="radio"]) {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin: 0;
    border: 1.5px solid var(--control-border);
    background-color: var(--control-bg);
    background-position: center;
    background-repeat: no-repeat;
    cursor: pointer;
    vertical-align: middle;
    transition: border-color .18s, background-color .18s, box-shadow .18s;
}

:where(input[type="checkbox"]) { border-radius: 5px; }
:where(input[type="radio"]) { border-radius: 50%; }

:where(input[type="checkbox"]):checked {
    border-color: var(--teal);
    background-color: var(--teal);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m2.5 7.2 2.8 2.8 6.2-6.2' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

:where(input[type="checkbox"]):indeterminate {
    border-color: var(--teal);
    background-color: var(--teal);
    background-image: linear-gradient(#fff, #fff);
    background-position: center;
    background-size: 9px 2px;
}

:where(input[type="radio"]):checked {
    border-color: var(--teal);
    background-color: var(--control-bg);
    background-image: radial-gradient(circle, var(--teal) 0 43%, transparent 46%);
}

:where(input[type="checkbox"], input[type="radio"]):hover:not(:disabled) {
    border-color: var(--teal);
}

:where(input[type="checkbox"], input[type="radio"]):disabled {
    border-color: var(--control-border);
    background-color: var(--control-disabled-bg);
    cursor: not-allowed;
    opacity: .7;
}

/* Native Dateiauswahl-Schaltflächen werden in WebKit und Firefox gleich gestaltet. */
:root input[type="file"] {
    -webkit-appearance: none;
    appearance: none;
    padding: 7px;
    border-color: var(--control-border);
    border-radius: 11px;
    background-color: var(--control-bg);
    color: var(--ink);
    cursor: pointer;
}

input[type="file"]::file-selector-button {
    min-height: 34px;
    margin: 0 10px 0 0;
    padding: 7px 12px;
    border: 0;
    border-radius: 8px;
    background: var(--teal-soft);
    color: var(--teal);
    cursor: pointer;
    font: inherit;
    font-weight: 800;
}

input[type="file"]::-webkit-file-upload-button {
    min-height: 34px;
    margin: 0 10px 0 0;
    padding: 7px 12px;
    border: 0;
    border-radius: 8px;
    background: var(--teal-soft);
    color: var(--teal);
    cursor: pointer;
    font: inherit;
    font-weight: 800;
}

/* Verhindert gelbe bzw. blaue Browser-Autofill-Flächen im jeweiligen Theme. */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px var(--control-bg) inset;
    box-shadow: 0 0 0 1000px var(--control-bg) inset;
    caret-color: var(--teal);
    -webkit-text-fill-color: var(--ink);
}

input:autofill,
textarea:autofill,
select:autofill {
    box-shadow: 0 0 0 1000px var(--control-bg) inset;
    color: var(--ink);
}

html[data-theme="dark"] :where(
    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]),
    select,
    textarea
) {
    border-color: var(--control-border);
    background-color: var(--control-bg);
    color: var(--ink);
    -webkit-text-fill-color: currentColor;
}

html[data-theme="dark"] :where(
    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    select,
    textarea
):disabled,
html[data-theme="dark"] :where(
    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    textarea
)[readonly] {
    border-color: var(--control-border);
    background-color: var(--control-disabled-bg);
    color: var(--control-disabled-text);
    -webkit-text-fill-color: var(--control-disabled-text);
}

html[data-theme="dark"] .trust-filter-card select { border-left-color: #0f8f85; }

@media (forced-colors: active) {
    :root select:not([multiple]):not([size]),
    :root input:is([type="date"], [type="time"], [type="datetime-local"]),
    :where(input[type="checkbox"], input[type="radio"]) {
        -webkit-appearance: auto;
        appearance: auto;
        background-image: none;
    }
}

/* Reise-Sichtbarkeit, Bedürfnisse und private Entwürfe */
.requirement-tag-fieldset { margin: 2px 0 0; }
.requirement-tag-fieldset > p { margin: -4px 0 13px; color: var(--muted); font-size: 12px; }
.requirement-tag-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.requirement-tag-grid label { min-width: 0; cursor: pointer; }
.requirement-tag-grid label span { min-height: 46px; display: flex; align-items: center; padding: 9px 11px; border: 1px solid var(--line); border-radius: 11px; background: var(--paper); color: var(--muted); font-size: 11px; font-weight: 700; line-height: 1.3; transition: border-color .18s,background .18s,color .18s; }
.requirement-tag-grid input { position: absolute; opacity: 0; pointer-events: none; }
.requirement-tag-grid input:checked + span { border-color: var(--teal); background: var(--teal-soft); color: var(--teal); box-shadow: inset 0 0 0 1px var(--teal); }
.requirement-tag-grid input:focus-visible + span { outline: 3px solid rgba(243,182,58,.75); outline-offset: 2px; }
.requirement-filter-card { grid-column: 1/-1; }
.requirement-filter-card > div { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px !important; }
.requirement-filter-card > div label { min-width: 0; }
.requirement-filter-card > div label span { width: 100%; min-height: 34px; justify-content: flex-start; line-height: 1.25; }

/* Stammgruppen */
.circles-hero { background: radial-gradient(circle at 82% 12%,rgba(243,182,58,.2),transparent 26%),linear-gradient(135deg,#103f42,#176765); color: #fff; }
.circles-layout { display: grid; grid-template-columns: minmax(250px,.72fr) minmax(0,1.7fr); align-items: start; gap: 24px; }
.circles-layout > aside { position: sticky; top: 98px; }
.circle-create-card,.circle-card { background: var(--paper); }
.circle-create-card .privacy-note { margin-top: 20px; }
.circle-list { display: grid; gap: 18px; }
.circle-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.circle-card > header small { color: var(--coral); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.circle-card > header h2 { margin: 4px 0 7px; font-size: 24px; }
.circle-card > header p { margin: 0; color: var(--muted); font-size: 12px; }
.circle-card.invited { border-color: color-mix(in srgb,var(--yellow) 55%,var(--line)); }
.circle-invitation-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding-top: 19px; }
.circle-invitation-actions > p { flex: 1 1 100%; margin: 0; }
.circle-invitation-actions form { margin: 0; }
.circle-members { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 19px 0; }
.circle-members > h3,.circle-trips > h3 { grid-column: 1/-1; margin: 0 0 3px; font-size: 15px; }
.circle-member { min-width: 0; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 9px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); }
.circle-member.pending { opacity: .68; }
.circle-member-avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--teal-soft); color: var(--teal); font-size: 12px; font-weight: 900; }
.circle-member strong,.circle-member small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.circle-member strong { font-size: 12px; }.circle-member small { color: var(--muted); font-size: 9px; }
.circle-invite-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 10px; padding: 17px; border-radius: 14px; background: var(--teal-soft); }
.circle-invite-form .field { margin: 0; }
.circle-trips { display: grid; gap: 7px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.circle-trips > a:not(.text-link) { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; color: inherit; text-decoration: none; }
.circle-trips > a:not(.text-link):hover { border-color: var(--teal); }
.circle-trips b { font-size: 11px; }.circle-trips small { color: var(--muted); font-size: 9px; }
.circle-card-footer { display: flex; justify-content: flex-end; margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }

/* Verbindlicher Entscheidungsstand und Abstimmungen */
.planner-decisions-section { padding: 26px 0 8px; background: var(--soft); }
.planner-decisions-section .journey-panel { background: var(--paper); }
.decision-current-badge { margin-left: auto; padding: 8px 12px; border-radius: 20px; background: var(--teal); color: #fff; font-size: 10px; white-space: nowrap; }
.decision-stage-track { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 6px; margin: 0 0 20px; padding: 0; list-style: none; }
.decision-stage-track li { position: relative; min-width: 0; padding: 12px 9px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); opacity: .55; }
.decision-stage-track li.reached,.decision-stage-track li.current { opacity: 1; }
.decision-stage-track li.reached { border-color: color-mix(in srgb,var(--teal) 35%,var(--line)); }
.decision-stage-track li.current { border-color: var(--coral); background: color-mix(in srgb,var(--coral) 9%,var(--paper)); box-shadow: inset 0 0 0 1px var(--coral); }
.decision-stage-track li > span { display: block; margin-bottom: 7px; font-size: 18px; }
.decision-stage-track strong,.decision-stage-track small { display: block; }
.decision-stage-track strong { font-size: 10px; line-height: 1.25; }.decision-stage-track small { margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.decision-history { margin-top: 13px; }.decision-history summary { color: var(--teal); cursor: pointer; font-size: 11px; font-weight: 800; }
.decision-history > div { display: grid; gap: 7px; margin-top: 10px; }
.decision-history article { display: flex; align-items: flex-start; gap: 9px; padding: 9px 11px; border-left: 3px solid var(--teal-soft); background: var(--soft); }
.decision-history article p,.decision-history article strong,.decision-history article small,.decision-history article em { display: block; margin: 0; }
.decision-history article strong { font-size: 11px; }.decision-history article small { color: var(--muted); font-size: 8px; }.decision-history article em { margin-top: 2px; color: var(--muted); font-size: 9px; }
.planner-poll-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.planner-poll-card { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: var(--soft); }
.planner-poll-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.planner-poll-card > header small { color: var(--muted); font-size: 8px; }.planner-poll-card > header h3 { margin: 3px 0 0; font-size: 15px; }
.poll-options { display: grid; gap: 7px; }.poll-options > label { position: relative; cursor: pointer; }.poll-options > label > input { position: absolute; top: 12px; left: 11px; z-index: 1; }
.poll-options > label > span { position: relative; overflow: hidden; display: block; min-height: 57px; padding: 9px 9px 8px 39px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); }
.poll-options label.selected > span { border-color: var(--teal); }.poll-options label.winner > span { border-color: var(--yellow); box-shadow: inset 0 0 0 1px var(--yellow); }
.poll-options b,.poll-options small { position: relative; z-index: 1; display: block; }.poll-options b { font-size: 10px; }.poll-options small { color: var(--muted); font-size: 8px; }
.poll-options i { position: absolute; inset: 0 auto 0 0; width: var(--poll-result); background: color-mix(in srgb,var(--teal-soft) 72%,transparent); }
.poll-deadline { display: block; margin-top: 8px; color: var(--muted); font-size: 8px; }
.poll-close-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 8px; margin-top: 11px; padding-top: 11px; border-top: 1px solid var(--line); }.poll-close-form .field { margin: 0; }

/* Benachrichtigungs-Kontrollzentrum */
.notification-delivery-options .segmented-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
.notification-schedule-grid { align-items: end; }
.notification-schedule-grid .field { margin-bottom: 0; }

/* Betriebszustand */
.admin-moderator-alert-form { overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); box-shadow: 0 16px 38px rgba(19,59,59,.06); }
.admin-moderator-alert-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.admin-moderator-alert-grid > article { padding: 22px; }
.admin-moderator-alert-grid > article + article { border-left: 1px solid var(--line); }
.admin-moderator-alert-grid > article > header { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 17px; }
.admin-moderator-alert-grid > article > header > span { display: grid; flex: 0 0 42px; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: var(--teal-soft); color: var(--teal); font-size: 20px; font-weight: 900; }
.admin-moderator-alert-grid header small { color: var(--coral); font-size: 8px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.admin-moderator-alert-grid header h3 { margin: 2px 0 3px; font-size: 17px; }
.admin-moderator-alert-grid header p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.admin-moderator-alert-channels { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.admin-moderator-alert-channels label { position: relative; cursor: pointer; }
.admin-moderator-alert-channels input { position: absolute; opacity: 0; pointer-events: none; }
.admin-moderator-alert-channels label > span { display: grid; grid-template-columns: 31px 1fr; align-items: center; min-height: 78px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); transition: border-color .18s ease,background .18s ease,transform .18s ease; }
.admin-moderator-alert-channels label > span b { grid-row: 1/3; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 9px; background: var(--paper); color: var(--muted); }
.admin-moderator-alert-channels label > span strong { font-size: 11px; }
.admin-moderator-alert-channels label > span small { align-self: start; color: var(--muted); font-size: 8px; line-height: 1.45; }
.admin-moderator-alert-channels input:checked + span { border-color: var(--teal); background: color-mix(in srgb,var(--teal) 9%,var(--paper)); transform: translateY(-1px); }
.admin-moderator-alert-channels input:checked + span b { background: var(--teal); color: #fff; }
.admin-moderator-alert-channels input:disabled + span { cursor: not-allowed; opacity: .55; transform: none; }
.admin-moderator-alert-channels input:focus-visible + span { outline: 3px solid color-mix(in srgb,var(--teal) 25%,transparent); outline-offset: 2px; }
.admin-moderator-alert-form > footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 22px; border-top: 1px solid var(--line); background: var(--surface); }
.admin-moderator-alert-form > footer p { display: flex; align-items: center; gap: 9px; margin: 0; }
.admin-moderator-alert-form > footer p > span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font-weight: 900; }
.admin-moderator-alert-form > footer p.ready > span { background: var(--teal-soft); color: var(--teal); }
.admin-moderator-alert-form > footer p.warning > span { background: color-mix(in srgb,var(--coral) 14%,var(--paper)); color: var(--danger); }
.admin-moderator-alert-form > footer small { color: var(--muted); font-size: 8px; line-height: 1.45; }
.admin-system-status { margin-bottom: 22px; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); }
.admin-system-status > header { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.admin-system-status > header > div { display: flex; align-items: center; gap: 11px; }
.admin-system-status > header > div > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--teal-soft); color: var(--teal); font-weight: 900; }
.admin-system-status.attention > header > div > span { background: color-mix(in srgb,var(--coral) 15%,var(--paper)); color: var(--danger); }
.admin-system-status > header small { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }.admin-system-status > header h3 { margin: 2px 0 0; font-size: 16px; }.admin-system-status > header time { color: var(--muted); font-size: 9px; }
.admin-system-checks { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.admin-system-checks article,.admin-job-status article { min-width: 0; display: flex; align-items: flex-start; gap: 9px; padding: 10px; border: 1px solid var(--line); border-radius: 11px; background: var(--soft); }
.admin-system-checks article > span,.admin-job-status article > span { width: 22px; height: 22px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--teal); color: white; font-size: 9px; font-weight: 900; }
.admin-system-checks article.failed > span,.admin-job-status article.failed > span { background: var(--danger); }
.admin-system-checks strong,.admin-system-checks small,.admin-job-status strong,.admin-job-status small { display: block; }.admin-system-checks strong,.admin-job-status strong { font-size: 10px; }.admin-system-checks small,.admin-job-status small { overflow-wrap: anywhere; color: var(--muted); font-size: 8px; line-height: 1.4; }
.admin-job-status { display: grid; gap: 7px; margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--line); }.admin-job-status > h3 { margin: 0; font-size: 13px; }.admin-job-status > p { margin: 0; color: var(--muted); font-size: 10px; }.admin-job-status article { display: grid; grid-template-columns: 22px minmax(0,1fr) auto; }.admin-job-status time { color: var(--muted); font-size: 8px; text-align: right; }

@media (max-width: 900px) {
    .requirement-tag-grid,.requirement-filter-card > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .circles-layout { grid-template-columns: 1fr; }.circles-layout > aside { position: static; }
    .decision-stage-track { grid-template-columns: repeat(4,minmax(0,1fr)); }
    .admin-system-checks { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
    .admin-moderator-alert-grid { grid-template-columns: 1fr; }
    .admin-moderator-alert-grid > article + article { border-top: 1px solid var(--line); border-left: 0; }
    .admin-moderator-alert-form > footer { align-items: stretch; flex-direction: column; }
    .admin-moderator-alert-form > footer .button { width: 100%; }
    .admin-moderator-alert-channels { grid-template-columns: 1fr; }
    .requirement-tag-grid,.requirement-filter-card > div,.circle-members,.planner-poll-list,.admin-system-checks { grid-template-columns: 1fr; }
    .circle-invite-form,.poll-close-form { grid-template-columns: 1fr; }
    .circle-card > header,.admin-system-status > header { display: grid; }.circle-card > header .status-pill { justify-self: start; }
    .circle-trips > a:not(.text-link) { grid-template-columns: 28px minmax(0,1fr); }.circle-trips > a:not(.text-link) small { grid-column: 2; }
    .decision-current-badge { margin-left: 0; }.decision-stage-track { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .notification-delivery-options .segmented-options { grid-template-columns: 1fr; }
    .admin-job-status article { grid-template-columns: 22px minmax(0,1fr); }.admin-job-status time { grid-column: 2; text-align: left; }
}
