:root {
    --bg: #0f0e17;
    --surface: #171522;
    --surface-2: #211e2f;
    --surface-3: #2a263b;
    --text: #f5f3ff;
    --muted: #aaa5bd;
    --border: rgba(255,255,255,.09);
    --primary: #8b6cff;
    --primary-2: #6f4fff;
    --success: #45c486;
    --warning: #f6b84a;
    --danger: #ef6274;
    --shadow: 0 18px 50px rgba(0,0,0,.28);
    --radius: 18px;
}

* { box-sizing: border-box; }
html { color-scheme: dark; }
body {
    margin: 0;
    min-height: 100vh;
    background:
      radial-gradient(circle at 20% -20%, rgba(139,108,255,.23), transparent 30rem),
      radial-gradient(circle at 90% 10%, rgba(65,196,134,.09), transparent 28rem),
      var(--bg);
    color: var(--text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.5;
}

a { color: #b7a6ff; text-decoration: none; }
a:hover { color: #d3c9ff; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 max(22px, calc((100vw - 1320px)/2));
    background: rgba(15,14,23,.86);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--border);
}
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--text); font-weight: 850; font-size: 1.2rem; letter-spacing: -.03em; }
.brand:hover { color: var(--text); }
.brand-mark { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: linear-gradient(135deg,var(--primary),#c66cff); box-shadow: 0 8px 22px rgba(139,108,255,.35); }
.topbar-actions { display: flex; align-items: center; gap: 8px; }
details { position: relative; }
details summary { list-style: none; cursor: pointer; }
details summary::-webkit-details-marker { display: none; }
.group-switcher summary, .profile-menu summary { padding: 9px 12px; border-radius: 11px; color: var(--muted); font-weight: 650; }
.group-switcher summary:hover, .profile-menu summary:hover { background: var(--surface-2); color: var(--text); }
.dropdown-panel { position: absolute; left: 0; top: calc(100% + 9px); min-width: 220px; padding: 8px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow); }
.dropdown-panel.right { left: auto; right: 0; }
.dropdown-panel a, .dropdown-button { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 11px; border: 0; background: transparent; color: var(--text); text-align: left; border-radius: 9px; }
.dropdown-panel a:hover, .dropdown-panel a.active, .dropdown-button:hover { background: var(--surface-3); }
.dropdown-panel small { color: var(--muted); }
.dropdown-panel hr { border: 0; border-top: 1px solid var(--border); margin: 7px 0; }

.main-nav {
    position: sticky;
    top: 68px;
    z-index: 40;
    display: flex;
    justify-content: center;
    gap: 5px;
    padding: 8px 15px;
    background: rgba(15,14,23,.76);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--border);
}
.main-nav a { display: flex; align-items: center; gap: 7px; padding: 9px 14px; color: var(--muted); border-radius: 10px; font-weight: 700; }
.main-nav a:hover, .main-nav a.active { background: var(--surface-2); color: var(--text); }
.main-nav .nav-create { color: #fff; background: linear-gradient(135deg,var(--primary),var(--primary-2)); margin-left: 8px; }

.page { width: min(1320px, calc(100% - 36px)); margin: 0 auto; padding: 34px 0 80px; }
.auth-page { width: 100%; padding: 0; }
.card { background: linear-gradient(145deg, rgba(34,31,48,.96), rgba(24,22,35,.96)); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 10px 34px rgba(0,0,0,.14); }

h1,h2,h3,p { margin-top: 0; }
h1 { font-size: clamp(2rem, 5vw, 3.3rem); line-height: 1.05; letter-spacing: -.045em; margin-bottom: 13px; }
h2 { font-size: clamp(1.35rem, 3vw, 1.9rem); letter-spacing: -.03em; margin-bottom: 10px; }
h3 { font-size: 1.05rem; margin-bottom: 9px; }
.eyebrow { display: block; margin-bottom: 7px; color: #a890ff; font-size: .75rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.muted { color: var(--muted); }
.centered { text-align: center; }

.button { border: 1px solid transparent; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; border-radius: 11px; font-weight: 780; color: var(--text); transition: .18s ease; }
.button:hover { transform: translateY(-1px); color: #fff; }
.button.primary { background: linear-gradient(135deg,var(--primary),var(--primary-2)); box-shadow: 0 9px 24px rgba(111,79,255,.25); }
.button.secondary { background: var(--surface-3); border-color: var(--border); }
.button.ghost { background: transparent; border-color: var(--border); color: var(--muted); }
.button.danger { background: rgba(239,98,116,.13); color: #ff9baa; border-color: rgba(239,98,116,.3); }
.button.large { padding: 13px 19px; border-radius: 13px; }
.button.small { padding: 8px 12px; font-size: .9rem; }
.button.tiny { padding: 6px 9px; font-size: .8rem; border-radius: 8px; }
.button.full { width: 100%; }
.button-row { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.button-row.centered { justify-content: center; }
.icon-button { border: 1px solid var(--border); background: var(--surface-3); color: var(--text); border-radius: 9px; padding: 7px 9px; }
.icon-button.large { width: 42px; height: 42px; display: grid; place-items: center; font-size: 1.2rem; }

.flash-stack { position: fixed; z-index: 100; right: 20px; top: 80px; width: min(390px, calc(100vw - 40px)); }
.flash { padding: 13px 15px; margin-bottom: 8px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); box-shadow: var(--shadow); transition: opacity .5s, transform .5s; }
.flash-success { border-color: rgba(69,196,134,.35); }
.flash-danger { border-color: rgba(239,98,116,.4); }
.flash-warning { border-color: rgba(246,184,74,.4); }
.flash.fade { opacity: 0; transform: translateY(-10px); pointer-events: none; }

label { display: flex; flex-direction: column; gap: 7px; color: #ded9ef; font-size: .9rem; font-weight: 700; }
label small { color: var(--muted); font-weight: 500; }
input, select, textarea { width: 100%; min-height: 45px; padding: 10px 12px; color: var(--text); background: #12101b; border: 1px solid rgba(255,255,255,.12); border-radius: 10px; outline: none; }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(139,108,255,.13); }
.form-check { display: flex; flex-direction: row; align-items: center; gap: 11px; min-width: 0; color: #ded9ef; }
.form-check-input { flex: 0 0 auto; width: 19px; height: 19px; min-height: 0; margin: 0; padding: 0; accent-color: var(--primary); }
.form-check-label { display: block; min-width: 0; line-height: 1.35; }
.form-check-label strong, .form-check-label small { display: block; }
.form-check-label small { margin-top: 3px; }
.check-row { flex-direction: row; align-items: center; font-weight: 550; color: var(--muted); }
.check-row input { width: auto; min-height: auto; }

.auth-shell { min-height: 100vh; display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: clamp(30px,8vw,130px); padding: 40px max(28px,calc((100vw - 1180px)/2)); }
.auth-brand span { display: grid; place-items: center; width: 68px; height: 68px; font-size: 2rem; border-radius: 20px; background: linear-gradient(135deg,var(--primary),#c66cff); box-shadow: 0 18px 44px rgba(139,108,255,.32); margin-bottom: 24px; }
.auth-brand h1 { font-size: clamp(3rem,8vw,6rem); margin-bottom: 12px; }
.auth-brand p { color: var(--muted); font-size: 1.15rem; }
.auth-card { padding: clamp(25px,5vw,42px); display: grid; gap: 18px; }
.auth-card h2 { margin-bottom: 5px; }
.form-grid { display: grid; gap: 17px; }
.form-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.form-grid.compact { grid-template-columns: 100px 1fr; }
.form-grid .span-2 { grid-column: span 2; }
.emoji-field input, .emoji-input { text-align: center; font-size: 1.25rem; }

.onboarding { min-height: calc(100vh - 110px); display: grid; place-items: center; }
.hero-card { text-align: center; max-width: 760px; padding: 55px 30px; }
.hero-icon, .big-emoji { font-size: 3rem; }
.hero-card p { color: var(--muted); font-size: 1.08rem; max-width: 600px; margin: 0 auto 26px; }
.narrow-page { width: min(620px,100%); margin: 0 auto; }
.wide-form-page { width: min(920px,100%); margin: 0 auto; }
.back-link { display: inline-block; color: var(--muted); margin-bottom: 15px; font-weight: 650; }
.form-card { padding: clamp(22px,4vw,38px); }
.section-heading, .page-heading, .calendar-header, .section-title-row, .panel-heading, .detail-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.section-heading { margin-bottom: 25px; }
.form-card > label, .form-card > .form-grid, .form-card > p { margin-bottom: 18px; }
.form-actions { margin-top: 24px; display: flex; justify-content: flex-end; gap: 10px; }
.code-input { text-align: center; font-size: 1.7rem; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }

.dashboard-hero { min-height: 180px; padding: 30px 0 26px; display: flex; justify-content: space-between; align-items: center; gap: 25px; }
.dashboard-hero p { color: var(--muted); font-size: 1.05rem; margin-bottom: 0; }
.stats-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-bottom: 40px; }
.stat-card { position: relative; overflow: hidden; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 14px; padding: 19px; border: 1px solid var(--border); border-radius: 15px; background: rgba(31,28,44,.72); }
.stat-card > span { grid-row: span 2; align-self: center; width: 45px; height: 45px; display: grid; place-items: center; border-radius: 12px; background: rgba(139,108,255,.13); font-size: 1.35rem; }
.stat-card strong { font-size: 1.55rem; line-height: 1; }
.stat-card small { color: var(--muted); }
.admin-stats-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(205px,1fr)); gap: 14px; margin: 28px 0 40px; }
.admin-stat-card { min-width: 0; display: flex; align-items: center; gap: 14px; padding: 18px; border: 1px solid var(--border); border-radius: 15px; background: rgba(31,28,44,.72); }
.admin-stat-icon { flex: 0 0 44px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: rgba(139,108,255,.13); font-size: 1.25rem; }
.admin-stat-copy { min-width: 0; display: grid; gap: 2px; }
.admin-stat-label { color: var(--muted); font-size: .78rem; font-weight: 760; text-transform: uppercase; letter-spacing: .045em; }
.admin-stat-copy strong { font-size: 1.45rem; line-height: 1.1; overflow-wrap: anywhere; }
.admin-stat-copy small { color: var(--muted); line-height: 1.25; }
.admin-control-grid { align-items: stretch; }
.admin-control-grid > .panel { height: 100%; }
.admin-page-heading .status-chip { flex: 0 0 auto; }
.content-section { margin: 42px 0; }
.section-title-row { margin-bottom: 17px; }
.section-title-row h2 { margin-bottom: 0; }
.activity-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.activity-card { overflow: hidden; border: 1px solid var(--border); border-radius: 16px; background: linear-gradient(145deg,rgba(34,31,48,.9),rgba(23,21,34,.9)); transition: .18s; }
.activity-card:hover { transform: translateY(-2px); border-color: rgba(139,108,255,.32); box-shadow: 0 15px 35px rgba(0,0,0,.18); }
.activity-card-link { display: block; padding: 17px; color: var(--text); }
.activity-card-link:hover { color: var(--text); }
.activity-topline { display: flex; justify-content: space-between; align-items: center; gap: 9px; margin-bottom: 15px; }
.category-pill { position: relative; display: inline-flex; align-items: center; gap: 5px; max-width: 70%; padding: 5px 9px 5px 12px; border-radius: 999px; background: color-mix(in srgb, var(--category-color,#78909c) 18%, transparent); color: #eeeaf7; font-size: .75rem; font-weight: 750; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.category-pill::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--category-color,#78909c); }
.status-badge { padding: 5px 8px; border-radius: 999px; font-size: .7rem; font-weight: 800; white-space: nowrap; }
.status-idea { background: rgba(246,184,74,.13); color: #ffd384; }
.status-voting { background: rgba(139,108,255,.16); color: #c7b9ff; }
.status-planned { background: rgba(69,196,134,.13); color: #8de0b4; }
.status-cancelled { background: rgba(239,98,116,.13); color: #ff9baa; }
.status-done { background: rgba(170,165,189,.12); color: #c6c1d2; }
.activity-card h3 { font-size: 1.12rem; margin-bottom: 13px; }
.activity-meta { display: flex; flex-wrap: wrap; gap: 6px 12px; color: var(--muted); font-size: .82rem; min-height: 42px; }
.activity-footer { margin-top: 15px; padding-top: 12px; border-top: 1px solid var(--border); display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: .76rem; }
.empty-state { padding: 48px 20px; text-align: center; border: 1px dashed rgba(255,255,255,.14); border-radius: var(--radius); color: var(--muted); }
.empty-state > span { display: block; font-size: 2.2rem; margin-bottom: 10px; }
.empty-state.compact { padding: 25px; }
.empty-state.compact p { margin-bottom: 0; }

.page-heading, .calendar-header { margin-bottom: 22px; }
.page-heading h1, .calendar-header h1 { margin-bottom: 0; }
.filter-bar { display: grid; grid-template-columns: 2fr 1fr 1fr auto; gap: 10px; padding: 13px; margin-bottom: 18px; }
.list-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }

.calendar-nav { display: flex; align-items: center; gap: 7px; }
.week-grid { display: grid; grid-template-columns: repeat(7,minmax(150px,1fr)); gap: 8px; overflow-x: auto; padding-bottom: 10px; }
.day-column { min-height: 430px; position: relative; border: 1px solid var(--border); border-radius: 15px; background: rgba(25,23,36,.72); overflow: hidden; }
.day-column.today { border-color: rgba(139,108,255,.55); box-shadow: inset 0 3px 0 var(--primary); }
.day-column > header { display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 13px; border-bottom: 1px solid var(--border); }
.day-column > header span { color: var(--muted); font-weight: 750; }
.day-column > header strong { font-size: 1.55rem; grid-row: span 2; }
.day-column > header small { color: var(--muted); }
.day-activities { padding: 8px; display: grid; gap: 7px; }
.week-activity { position: relative; display: grid; gap: 3px; padding: 10px 10px 10px 13px; border-radius: 10px; background: var(--surface-2); color: var(--text); overflow: hidden; }
.week-activity::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--category-color); }
.week-activity span, .week-activity small { color: var(--muted); font-size: .72rem; }
.week-activity strong { font-size: .82rem; }
.day-empty { display: block; padding: 15px; color: #565166; text-align: center; }
.day-add { position: absolute; right: 9px; bottom: 9px; width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: var(--surface-3); color: var(--muted); }

.month-calendar { overflow: hidden; }
.month-weekdays, .month-grid { display: grid; grid-template-columns: repeat(7,1fr); }
.month-weekdays > div { padding: 11px; text-align: center; color: var(--muted); font-size: .8rem; font-weight: 780; border-bottom: 1px solid var(--border); }
.month-day { min-height: 132px; padding: 8px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: rgba(22,20,32,.55); }
.month-day:nth-child(7n) { border-right: 0; }
.month-day.outside { background: rgba(10,9,15,.35); }
.month-day.today { background: rgba(139,108,255,.08); box-shadow: inset 0 0 0 1px rgba(139,108,255,.45); }
.month-day-number { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; font-weight: 780; margin-bottom: 5px; }
.month-day.today .month-day-number { background: var(--primary); }
.month-events { display: grid; gap: 4px; }
.month-event { display: block; padding: 4px 6px; border-radius: 6px; border-left: 3px solid var(--category-color); background: color-mix(in srgb,var(--category-color) 12%,transparent); color: #ece8f5; font-size: .69rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.month-event span { color: var(--muted); margin-right: 3px; }

.detail-page { width: min(1080px,100%); margin: 0 auto; }
.activity-detail-hero { padding: clamp(22px,5vw,42px); margin-bottom: 16px; }
.activity-detail-hero h1 { font-size: clamp(2rem,5vw,3.5rem); }
.detail-description { max-width: 800px; color: #d2cde0; white-space: pre-wrap; }
.detail-facts { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin: 27px 0 22px; }
.detail-facts > div { min-width: 0; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: rgba(13,12,19,.35); }
.detail-facts span { display: block; font-size: 1.2rem; margin-bottom: 5px; }
.detail-facts strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.detail-facts small { color: var(--muted); }
.notice { display: inline-block; padding: 8px 11px; border-radius: 9px; background: rgba(139,108,255,.1); color: #cbc0f5; margin-right: 8px; }
.detail-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.panel { padding: 21px; }
.panel-heading { margin-bottom: 17px; }
.panel-heading h2 { margin-bottom: 0; }
.count-bubble, .role-chip { min-width: 32px; height: 32px; display: grid; place-items: center; padding: 0 10px; border-radius: 999px; background: rgba(139,108,255,.14); color: #c8bbff; font-size: .8rem; font-weight: 850; }
.rsvp-buttons { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.rsvp { min-height: 46px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-3); color: var(--muted); font-weight: 750; }
.rsvp.selected, .poll-vote-buttons button.selected { outline: 2px solid var(--primary); color: var(--text); }
.rsvp.yes.selected { background: rgba(69,196,134,.18); }
.rsvp.maybe.selected { background: rgba(246,184,74,.16); }
.rsvp.no.selected { background: rgba(239,98,116,.15); }
.participant-list { display: grid; gap: 7px; margin-top: 17px; }
.participant-list > div { display: flex; justify-content: space-between; padding: 8px 9px; border-bottom: 1px solid var(--border); }
.comment-list { max-height: 300px; overflow-y: auto; display: grid; gap: 9px; }
.comment { padding: 11px; border-radius: 10px; background: rgba(12,11,18,.38); }
.comment-head { display: flex; justify-content: space-between; gap: 10px; }
.comment-head small { color: var(--muted); }
.comment p { margin: 7px 0 0; color: #d2cde0; white-space: pre-wrap; }
.comment-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: end; margin-top: 12px; }
.poll-panel { margin-bottom: 30px; }
.poll-options { display: grid; gap: 9px; }
.poll-option { display: grid; grid-template-columns: minmax(160px,1fr) auto auto auto; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: rgba(12,11,18,.32); }
.poll-option.confirmed { border-color: rgba(69,196,134,.45); background: rgba(69,196,134,.06); }
.poll-date { display: grid; }
.poll-date span { color: var(--muted); font-size: .8rem; }
.poll-results { display: flex; gap: 8px; color: var(--muted); font-size: .8rem; }
.poll-vote-buttons { display: flex; gap: 4px; }
.poll-vote-buttons button { width: 34px; height: 34px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-3); }
.poll-admin-actions { display: flex; gap: 5px; }
.add-option-form { display: grid; grid-template-columns: 1.2fr 1fr 1fr auto; gap: 8px; margin-top: 15px; }
.poll-create-panel { margin-top: 22px; padding: 18px; border: 1px solid var(--border); border-radius: 12px; background: rgba(12,11,18,.34); }
.poll-create-panel.hidden { display: none; }
.inline-option { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 7px; }

.settings-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 16px; }
.settings-section { margin-top: 16px; }
.invite-code { padding: 16px; margin-bottom: 11px; text-align: center; border-radius: 12px; background: #111019; font-size: 1.9rem; font-weight: 900; letter-spacing: .15em; }
.member-table, .category-settings { display: grid; }
.member-row { display: grid; grid-template-columns: 1fr 160px 44px; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.member-name { display: flex; align-items: center; gap: 10px; min-width: 0; }
.avatar { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: var(--surface-3); font-size: 1.2rem; }
.member-name strong, .member-name small { display: block; }
.member-name small { color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.category-row { display: grid; grid-template-columns: 60px 1fr 60px 60px 90px; align-items: center; gap: 9px; padding: 7px 0; border-bottom: 1px solid var(--border); }
.category-row input { min-height: 39px; }
.category-row input[type=color], .add-category-form input[type=color] { padding: 4px; }
.switch { display: inline-flex; }
.switch input { display: none; }
.switch span { width: 42px; height: 24px; border-radius: 999px; background: #3b3748; position: relative; }
.switch span::after { content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#aaa5bd; transition:.15s; }
.switch input:checked + span { background: var(--primary); }
.switch input:checked + span::after { left:21px; background:white; }
.add-category-form { display: grid; grid-template-columns: 60px 1fr 60px auto; gap: 9px; margin-top: 15px; }
.big-emoji.small { font-size: 2rem; }

@media (max-width: 1000px) {
    .activity-grid, .list-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .detail-facts { grid-template-columns: repeat(2,1fr); }
    .settings-grid { grid-template-columns: 1fr 1fr; }
    .poll-option { grid-template-columns: 1fr auto auto; }
    .poll-admin-actions { grid-column: 1/-1; }
}

@media (max-width: 760px) {
    body { padding-bottom: 74px; }
    .topbar { height: 58px; padding: 0 14px; }
    .brand { font-size: 1rem; }
    .brand-mark { width: 31px; height: 31px; }
    .group-switcher summary { max-width: 130px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .profile-menu summary { width: 42px; overflow: hidden; white-space: nowrap; }
    .page { width: min(100% - 24px,1320px); padding-top: 22px; }
    .main-nav { position: fixed; top: auto; left: 0; right: 0; bottom: 0; height: 67px; justify-content: space-around; padding: 7px max(6px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)); background: rgba(20,18,29,.96); border-top: 1px solid var(--border); border-bottom: 0; }
    .main-nav a { flex: 1; flex-direction: column; gap: 1px; padding: 5px; font-size: 1rem; }
    .main-nav a span { font-size: .64rem; }
    .main-nav .nav-create { margin-left: 0; border-radius: 13px; }
    .auth-shell { grid-template-columns: 1fr; min-height: 100vh; padding: 30px 18px; gap: 20px; }
    .auth-brand { text-align: center; }
    .auth-brand span { margin: 0 auto 15px; }
    .auth-brand h1 { font-size: 3rem; }
    .auth-brand p { margin-bottom: 0; }
    .auth-card { padding: 23px; }
    .dashboard-hero { min-height: 0; padding: 12px 0 23px; align-items: flex-end; }
    .dashboard-hero h1 { font-size: 2.35rem; }
    .dashboard-hero .button { padding: 12px; font-size: 0; border-radius: 50%; width: 48px; height: 48px; }
    .dashboard-hero .button::first-letter { font-size: 1.5rem; }
    .stats-grid { grid-template-columns: repeat(2,1fr); margin-bottom: 30px; }
    .activity-grid, .list-grid { grid-template-columns: 1fr; }
    .section-title-row { align-items: flex-end; }
    .section-title-row > a { font-size: .8rem; }
    .form-grid.two, .form-grid.compact { grid-template-columns: 1fr; }
    .form-grid .span-2 { grid-column: span 1; }
    .page-heading, .calendar-header { align-items: flex-end; }
    .page-heading h1, .calendar-header h1 { font-size: 2rem; }
    .filter-bar { grid-template-columns: 1fr 1fr; }
    .filter-bar input { grid-column: span 2; }
    .detail-toolbar { align-items: flex-start; }
    .detail-toolbar .button-row { justify-content: flex-end; }
    .detail-columns { grid-template-columns: 1fr; }
    .detail-facts { grid-template-columns: 1fr 1fr; }
    .rsvp-buttons { grid-template-columns: 1fr; }
    .poll-option { grid-template-columns: 1fr auto; }
    .poll-results { justify-content: flex-end; }
    .poll-vote-buttons { grid-column: 1/-1; }
    .poll-admin-actions { grid-column: 1/-1; }
    .add-option-form { grid-template-columns: 1fr 1fr; }
    .add-option-form input:first-of-type, .add-option-form button { grid-column: span 2; }
    .comment-form { grid-template-columns: 1fr; }
    .month-calendar { overflow-x: auto; }
    .month-weekdays, .month-grid { min-width: 760px; }
    .settings-grid { grid-template-columns: 1fr; }
    .member-row { grid-template-columns: 1fr 120px 40px; }
    .category-row { grid-template-columns: 48px 1fr 48px 48px; }
    .category-row .button { grid-column: 2/-1; }
    .add-category-form { grid-template-columns: 50px 1fr 50px; }
    .add-category-form .button { grid-column: 1/-1; }
}

@media (max-width: 480px) {
    .topbar-actions { gap: 1px; }
    .group-switcher summary { max-width: 105px; font-size: .8rem; }
    .stats-grid { gap: 8px; }
    .stat-card { padding: 13px; column-gap: 9px; }
    .stat-card > span { width: 37px; height: 37px; }
    .stat-card strong { font-size: 1.25rem; }
    .stat-card small { font-size: .7rem; }
    .activity-card-link { padding: 14px; }
    .detail-facts { grid-template-columns: 1fr; }
    .form-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .filter-bar { grid-template-columns: 1fr; }
    .filter-bar input { grid-column: span 1; }
    .member-row { grid-template-columns: 1fr 95px; }
    .member-row form:last-child { grid-column: 2; }
    .section-heading { align-items: flex-start; }
}
.audit-list { display: grid; }
.audit-row { display: grid; grid-template-columns: 140px 180px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--border); align-items: baseline; }
.audit-row span, .audit-row small { color: var(--muted); }
.danger-zone { display: flex; justify-content: flex-end; margin-top: 18px; }
@media (max-width: 760px) { .audit-row { grid-template-columns: 1fr 1fr; } .audit-row small { grid-column: 1/-1; } }

/* Version 1.2: Rückmeldefristen und verbindliche Terminentscheidungen */
.deadline-field { padding: 14px; border: 1px solid rgba(246,184,74,.23); border-radius: 12px; background: rgba(246,184,74,.055); }
.activity-card.is-locked { border-color: rgba(69,196,134,.23); }
.deadline-mini { color: #ffd384; }
.deadline-mini.expired { color: #ff9baa; }
.locked-hero { border-color: rgba(69,196,134,.28); }
.planning-notices { display: grid; gap: 8px; margin: 20px 0; }
.state-notice { margin: 0; padding: 11px 13px; border: 1px solid var(--border); border-radius: 11px; background: rgba(139,108,255,.07); color: #d8d2e8; }
.state-notice.confirmed { border-color: rgba(69,196,134,.32); background: rgba(69,196,134,.09); color: #a9ebc6; }
.state-notice.cancelled, .state-notice.deadline.expired { border-color: rgba(239,98,116,.34); background: rgba(239,98,116,.08); color: #ffabb7; }
.state-notice.done { color: #d0cbdc; }
.state-notice.open { border-color: rgba(246,184,74,.26); color: #ffd384; }
.state-notice.deadline { border-color: rgba(246,184,74,.2); }
.decision-panel { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 16px; }
.decision-panel h2, .decision-panel p { margin-bottom: 4px; }
.decision-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; flex-wrap: wrap; }
.closed-message { padding: 13px; border-radius: 10px; background: rgba(239,98,116,.08); color: #ffabb7; text-align: center; }
.poll-closed { color: var(--muted); font-size: .8rem; white-space: nowrap; }
@media (max-width: 760px) {
    .decision-panel { align-items: stretch; flex-direction: column; }
    .decision-actions { justify-content: stretch; }
    .decision-actions form, .decision-actions .button { width: 100%; }
}
.decision-controls { display: grid; gap: 12px; justify-items: end; min-width: min(100%, 430px); }
.deadline-quick-form { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: 8px; align-items: end; width: 100%; }
.deadline-quick-form label { font-size: .8rem; }
@media (max-width: 760px) {
    .decision-controls { justify-items: stretch; min-width: 0; }
    .deadline-quick-form { grid-template-columns: 1fr; }
    .deadline-quick-form .button { width: 100%; }
}

/* Version 1.3: Verfügbarkeit, Erinnerungen, Kosten, Bilder, Wetter, Archiv */
.hidden { display: none !important; }
.reminder-bell { position: relative; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--surface-2); }
.reminder-bell b { position: absolute; right: -3px; top: -4px; min-width: 18px; height: 18px; display: grid; place-items: center; border-radius: 999px; background: var(--danger); color: white; font-size: .65rem; }
.notification-enable { border: 0; cursor: pointer; text-align: left; }
.reminder-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.reminder-card { display: flex; align-items: center; justify-content: space-between; padding: 0; overflow: hidden; }
.reminder-card > a { flex: 1; display: flex; align-items: center; gap: 12px; padding: 15px; color: inherit; }
.reminder-card > a > span { font-size: 1.5rem; }
.reminder-card strong, .reminder-card small { display: block; }
.reminder-card small { color: var(--muted); margin-top: 3px; }
.reminder-card form { padding-right: 10px; }

.activity-card-image { width: calc(100% + 32px); height: 170px; object-fit: cover; margin: -16px -16px 14px; border-bottom: 1px solid var(--border); }
.template-strip { margin-bottom: 18px; }
.template-strip h2 { margin: 3px 0 12px; }
.template-cards { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.template-card { display: flex; align-items: center; gap: 10px; padding: 13px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); color: inherit; }
.template-card span { font-size: 1.55rem; }
.template-card:hover, .template-card.selected { border-color: var(--primary); background: rgba(124,92,255,.12); }
.availability-suggestions { padding: 17px; margin-bottom: 18px; }
.suggestion-row { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.date-suggestion { flex: 0 0 auto; min-width: 128px; display: grid; gap: 4px; padding: 11px 13px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-3); color: inherit; cursor: pointer; text-align: left; }
.date-suggestion:hover { border-color: var(--primary); }
.date-suggestion span { color: var(--muted); font-size: .76rem; }
.date-suggestion.static { cursor: default; }
.conflict-warning { display: flex; gap: 15px; padding: 18px; margin-bottom: 18px; border-color: rgba(246,184,74,.4); }
.conflict-warning h2 { margin: 0 0 4px; }
.conflict-warning p { margin: 0 0 6px; color: var(--muted); }
.conflict-warning a { display: block; margin-top: 5px; }
.checkbox-card { display: flex !important; flex-direction: row !important; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: rgba(66,165,245,.055); }
.checkbox-card input { width: 22px; min-height: 22px; }
.checkbox-card span, .checkbox-card small { display: block; }

.link-actions { margin-top: 15px; flex-wrap: wrap; }
.conflict-panel { border-color: rgba(246,184,74,.35); }
.conflict-panel > a { display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; padding: 11px 0; border-bottom: 1px solid var(--border); color: inherit; }
.conflict-panel > a small { grid-column: 1/-1; color: var(--muted); }
.weather-card { display: flex; align-items: center; gap: 18px; padding: 20px; margin-bottom: 16px; background: linear-gradient(120deg,rgba(66,165,245,.14),rgba(124,92,255,.08)); }
.weather-card > span { font-size: 3rem; }
.weather-card h2, .weather-card p { margin: 2px 0; }
.guest-fields { display: grid; grid-template-columns: 140px 1fr; gap: 9px; margin-top: 10px; }
.participant-list small { display: block; margin-top: 2px; color: var(--muted); }

.expense-list, .settlement-list { display: grid; margin-top: 10px; }
.expense-row, .settlement-row { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--border); }
.expense-row strong, .expense-row small, .settlement-row strong, .settlement-row small { display: block; }
.expense-row small, .settlement-row small { color: var(--muted); margin-top: 3px; }
.expense-form { display: grid; grid-template-columns: 1.5fr 120px 1fr auto; gap: 8px; margin: 16px 0; }
.balance { font-size: .82rem; font-weight: 800; white-space: nowrap; }
.balance.positive { color: #7de2a8; }
.balance.negative { color: #ffb1bb; }
.payment-toggle { min-width: 98px; padding: 9px 11px; border: 1px solid rgba(246,184,74,.3); border-radius: 9px; background: rgba(246,184,74,.09); color: #ffd384; cursor: pointer; }
.payment-toggle.paid { border-color: rgba(69,196,134,.3); background: rgba(69,196,134,.1); color: #a9ebc6; }
.payment-toggle:disabled { opacity: .65; cursor: default; }

.photo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.photo-grid figure { margin: 0; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: var(--surface-3); }
.photo-grid img { width: 100%; height: 210px; object-fit: cover; display: block; }
.photo-grid figcaption { position: relative; padding: 10px 42px 10px 10px; }
.photo-grid figcaption span, .photo-grid figcaption small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.photo-grid figcaption small { color: var(--muted); margin-top: 3px; }
.photo-grid figcaption form { position: absolute; right: 7px; top: 8px; }
.upload-form { display: grid; grid-template-columns: 1.5fr 1fr auto; gap: 8px; margin-top: 16px; }

.filter-bar.advanced { grid-template-columns: 2fr repeat(3,1fr) 145px 145px auto auto; align-items: end; }
.filter-bar.advanced label { font-size: .75rem; }
.button.ghost { display: inline-flex; align-items: center; justify-content: center; color: var(--muted); }
.view-switch { display: inline-flex; gap: 4px; padding: 4px; margin-top: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); }
.view-switch a { padding: 6px 10px; border-radius: 7px; color: var(--muted); font-size: .78rem; }
.view-switch a.active { background: var(--primary); color: white; }
.day-availability { display: block; padding: 5px; color: var(--muted); font-size: .65rem; text-align: center; border-bottom: 1px solid var(--border); }
.month-availability { color: var(--muted); font-size: .62rem; margin-bottom: 4px; }

.availability-layout { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(360px,.9fr); gap: 16px; align-items: start; }
.availability-days { display: grid; gap: 7px; }
.availability-day { display: grid; grid-template-columns: 90px 180px 1fr; gap: 9px; align-items: center; padding: 8px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-3); }
.availability-day > span { display: flex; justify-content: space-between; gap: 8px; }
.availability-day.today { border-color: var(--primary); }
.availability-day.past { opacity: .66; }
.availability-day select, .availability-day input { min-height: 38px; }
.sticky-save { position: sticky; bottom: 78px; display: flex; justify-content: flex-end; padding-top: 14px; }
.group-availability { position: sticky; top: 126px; max-height: calc(100vh - 150px); overflow: auto; }
.availability-summary-list { display: grid; }
.availability-summary { display: grid; gap: 7px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.availability-summary > div:first-child { display: flex; justify-content: space-between; gap: 10px; }
.availability-summary > div:first-child span { color: var(--muted); font-size: .8rem; }
.availability-summary.today strong { color: #bfaeff; }
.availability-people { display: flex; flex-wrap: wrap; gap: 5px; }
.availability-person { padding: 4px 7px; border-radius: 8px; background: var(--surface-3); font-size: .72rem; }
.availability-person.state-yes { background: rgba(69,196,134,.13); }
.availability-person.state-maybe { background: rgba(246,184,74,.13); }
.availability-person.state-no { background: rgba(239,98,116,.11); }

@media (max-width: 1100px) {
  .filter-bar.advanced { grid-template-columns: repeat(4,1fr); }
  .filter-bar.advanced input[type=search] { grid-column: span 2; }
  .availability-layout { grid-template-columns: 1fr; }
  .group-availability { position: static; max-height: none; }
}
@media (max-width: 760px) {
  .main-nav .desktop-extra { display: none; }
  .reminder-grid { grid-template-columns: 1fr; }
  .template-cards { grid-template-columns: repeat(2,1fr); }
  .activity-card-image { width: calc(100% + 28px); margin: -14px -14px 12px; }
  .guest-fields { grid-template-columns: 1fr; }
  .expense-form, .upload-form { grid-template-columns: 1fr; }
  .expense-form .button, .upload-form .button { width: 100%; }
  .photo-grid { grid-template-columns: repeat(2,1fr); }
  .photo-grid img { height: 160px; }
  .filter-bar.advanced { grid-template-columns: 1fr 1fr; }
  .filter-bar.advanced input[type=search] { grid-column: span 2; }
  .availability-day { grid-template-columns: 92px 1fr; }
  .availability-day input { grid-column: 1/-1; }
  .settlement-row { grid-template-columns: 1fr auto; }
  .settlement-row form { grid-column: 2; }
}
@media (max-width: 480px) {
  .template-cards { grid-template-columns: 1fr 1fr; }
  .template-card { padding: 10px; }
  .photo-grid { grid-template-columns: 1fr; }
  .photo-grid img { height: 220px; }
  .filter-bar.advanced { grid-template-columns: 1fr; }
  .filter-bar.advanced input[type=search] { grid-column: span 1; }
  .availability-day { grid-template-columns: 1fr; }
  .availability-day > span { justify-content: flex-start; }
  .expense-row { grid-template-columns: 1fr auto; }
  .expense-row form { grid-column: 2; }
}

/* Version 1.4: klickbarer Monats-/Wochenkalender für Verfügbarkeiten */
.availability-header { align-items: flex-end; }
.availability-view-switch { margin-top: 8px; }
.availability-toolbar { display: grid; grid-template-columns: minmax(240px,1fr) auto auto; gap: 18px; align-items: center; padding: 17px; margin-bottom: 16px; }
.availability-toolbar h2 { margin: 2px 0 4px; }
.availability-toolbar p { margin: 0; color: var(--muted); font-size: .8rem; }
.availability-status-tools { display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.availability-tool { min-height: 42px; padding: 9px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-3); color: var(--text); cursor: pointer; font: inherit; font-size: .82rem; }
.availability-tool:hover { border-color: var(--primary); }
.availability-tool.active { outline: 2px solid var(--primary); outline-offset: 1px; }
.availability-tool.state-yes.active { background: rgba(69,196,134,.15); }
.availability-tool.state-maybe.active { background: rgba(246,184,74,.15); }
.availability-tool.state-no.active { background: rgba(239,98,116,.14); }
.availability-tool.state-empty.active { background: rgba(255,255,255,.06); }
.availability-save-state { min-width: 94px; color: var(--muted); font-size: .78rem; text-align: right; }
.availability-save-state[data-kind="success"] { color: #8de8b4; }
.availability-save-state[data-kind="error"] { color: #ffabb7; }

.availability-calendar-wrap { overflow: hidden; }
.availability-weekdays, .availability-month-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 7px; }
.availability-weekdays { margin-bottom: 7px; }
.availability-weekdays span { padding: 4px 8px; color: var(--muted); font-size: .72rem; font-weight: 800; text-align: center; }
.availability-calendar-day { position: relative; min-height: 124px; display: flex; flex-direction: column; gap: 7px; padding: 10px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); color: var(--text); cursor: pointer; text-align: left; transition: border-color .14s ease, background .14s ease, opacity .14s ease; }
.availability-calendar-day:hover { border-color: var(--primary); }
.availability-calendar-day:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.availability-calendar-day.outside { opacity: .42; }
.availability-calendar-day.past:not(.today) { filter: saturate(.75); }
.availability-calendar-day.today { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); }
.availability-calendar-day.state-yes { background: rgba(69,196,134,.105); border-color: rgba(69,196,134,.32); }
.availability-calendar-day.state-maybe { background: rgba(246,184,74,.105); border-color: rgba(246,184,74,.32); }
.availability-calendar-day.state-no { background: rgba(239,98,116,.09); border-color: rgba(239,98,116,.3); }
.availability-calendar-day.saving { opacity: .55; }
.availability-day-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.availability-day-top strong { font-size: 1rem; }
.availability-own-state { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: rgba(255,255,255,.055); font-size: 1rem; }
.availability-state-label { min-height: 30px; font-size: .76rem; font-weight: 800; line-height: 1.25; }
.availability-counts { display: flex; flex-wrap: wrap; gap: 5px; margin-top: auto; color: var(--muted); font-size: .68rem; }
.availability-counts span { padding: 3px 5px; border-radius: 7px; background: rgba(255,255,255,.045); }

.availability-week-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 9px; }
.availability-week-day { min-width: 0; padding: 0; overflow: hidden; transition: border-color .14s ease, opacity .14s ease; }
.availability-week-day.state-yes { border-color: rgba(69,196,134,.34); }
.availability-week-day.state-maybe { border-color: rgba(246,184,74,.34); }
.availability-week-day.state-no { border-color: rgba(239,98,116,.34); }
.availability-week-day.today { box-shadow: inset 0 0 0 1px var(--primary); }
.availability-week-day.past:not(.today) { opacity: .72; }
.availability-week-day.saving { opacity: .55; }
.availability-week-day-button { width: 100%; display: grid; gap: 12px; padding: 14px; border: 0; border-bottom: 1px solid var(--border); background: transparent; color: inherit; cursor: pointer; text-align: left; }
.availability-week-day-button:hover { background: rgba(255,255,255,.025); }
.availability-week-day-button > span:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.availability-week-day-button > span:first-child strong { color: var(--muted); font-size: .78rem; }
.availability-week-own { display: grid; justify-items: start; gap: 4px; }
.availability-week-own > span { font-size: 1.55rem; }
.availability-week-own b { font-size: .78rem; }
.availability-week-summary { display: grid; gap: 5px; padding: 11px 13px; border-bottom: 1px solid var(--border); font-size: .68rem; }
.availability-week-summary span { display: flex; align-items: center; justify-content: space-between; gap: 5px; color: var(--muted); }
.availability-week-summary b { color: var(--text); }
.availability-week-members { display: grid; gap: 5px; padding: 10px; }
.availability-member-chip { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 5px; padding: 5px 6px; border-radius: 8px; background: var(--surface-3); font-size: .66rem; }
.availability-member-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.availability-member-chip.state-yes { background: rgba(69,196,134,.12); }
.availability-member-chip.state-maybe { background: rgba(246,184,74,.12); }
.availability-member-chip.state-no { background: rgba(239,98,116,.1); }

@media (max-width: 1100px) {
  .availability-toolbar { grid-template-columns: 1fr; }
  .availability-status-tools { justify-content: flex-start; }
  .availability-save-state { text-align: left; }
  .availability-week-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .availability-header { align-items: stretch; }
  .availability-header .calendar-nav { align-self: flex-end; }
  .availability-toolbar { padding: 14px; gap: 13px; }
  .availability-status-tools { display: grid; grid-template-columns: 1fr 1fr; }
  .availability-tool { width: 100%; }
  .availability-weekdays, .availability-month-grid { gap: 4px; }
  .availability-weekdays span { padding: 3px; font-size: .65rem; }
  .availability-calendar-day { min-height: 91px; gap: 4px; padding: 7px 5px; border-radius: 9px; }
  .availability-day-top strong { font-size: .82rem; }
  .availability-own-state { width: 24px; height: 24px; border-radius: 7px; font-size: .82rem; }
  .availability-state-label { min-height: 0; font-size: .58rem; line-height: 1.1; }
  .availability-counts { gap: 2px; font-size: .54rem; }
  .availability-counts span { padding: 2px 3px; }
  .availability-week-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  .availability-calendar-day { min-height: 80px; padding: 6px 4px; }
  .availability-state-label { display: none; }
  .availability-counts span[data-count="no"] { display: none; }
  .availability-week-grid { grid-template-columns: 1fr; }
  .availability-week-day-button { grid-template-columns: 1fr auto; align-items: center; }
  .availability-week-own { justify-items: end; }
}

/* Version 1.5: Planungshub, Wunschliste, freie Umfragen, Fahrgemeinschaften und PWA */
.main-nav > details { position: relative; }
.main-nav > details > summary { display: flex; align-items: center; gap: 7px; padding: 9px 14px; color: var(--muted); border-radius: 10px; font-weight: 700; }
.main-nav > details > summary:hover, .main-nav > details.active > summary { background: var(--surface-2); color: var(--text); }
.main-nav .nav-create-menu > summary { color: #fff; background: linear-gradient(135deg,var(--primary),var(--primary-2)); margin-left: 8px; }
.nav-more-panel { position: absolute; z-index: 70; left: 0; bottom: auto; top: calc(100% + 8px); min-width: 220px; display: grid; gap: 3px; padding: 8px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-2); box-shadow: var(--shadow); }
.nav-more-panel.right { left: auto; right: 0; }
.nav-more-panel a { padding: 10px 11px; }
.quick-action-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 18px; }
.quick-action { display: flex; align-items: center; gap: 11px; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: rgba(31,28,44,.72); color: var(--text); }
.quick-action:hover { border-color: rgba(139,108,255,.45); color: var(--text); }
.quick-action > span { font-size: 1.45rem; }
.quick-action strong, .quick-action small { display: block; }
.quick-action small { color: var(--muted); }
.quick-action.primary-action { background: rgba(139,108,255,.13); border-color: rgba(139,108,255,.32); }
.quick-create-card { max-width: 880px; display: grid; gap: 14px; }
.quick-create-card textarea { font-size: 1.1rem; }
.example-chips { display: flex; gap: 7px; flex-wrap: wrap; }
.example-chips button { padding: 7px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface-3); color: var(--muted); }
.compact-help { max-width: 880px; margin-top: 12px; }
.compact-help summary, .create-drawer > summary, .inline-drawer > summary { font-weight: 800; cursor: pointer; }
.range-form { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 12px; margin-bottom: 16px; }
.finder-results { display: grid; gap: 12px; }
.finder-result { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; padding: 19px; }
.finder-result.best { border-color: rgba(69,196,134,.42); }
.finder-rank { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; background: var(--surface-3); font-size: 1.35rem; font-weight: 900; }
.create-drawer { margin-bottom: 16px; }
.create-drawer > summary { padding: 17px 20px; }
.drawer-form { padding: 0 20px 20px; }
.wishlist-grid, .poll-board { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.wishlist-card { padding: 19px; }
.wishlist-card h2 { margin-bottom: 7px; }
.wishlist-card p { color: #d2cde0; }
.wishlist-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; color: var(--muted); font-size: .82rem; margin: 14px 0; }
.like-count { color: #ff9baa; font-weight: 800; }
.general-poll { margin: 0; }
.general-options { display: grid; gap: 8px; }
.general-options form { margin: 0; }
.poll-choice { position: relative; overflow: hidden; width: 100%; min-height: 47px; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 11px; background: rgba(12,11,18,.35); color: var(--text); text-align: left; }
.poll-choice i { position: absolute; z-index: 0; left: 0; bottom: 0; width: var(--share); height: 4px; background: var(--primary); }
.poll-choice span, .poll-choice b { position: relative; z-index: 1; }
.poll-choice.selected { border-color: var(--primary); background: rgba(139,108,255,.11); }
.poll-choice:disabled { cursor: not-allowed; opacity: .75; }
.poll-admin { justify-content: flex-end; margin-top: 14px; }
.driver-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 13px; }
.driver-card { display: grid; gap: 8px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: rgba(12,11,18,.32); }
.driver-head { display: flex; justify-content: space-between; gap: 10px; }
.driver-head span { color: #8de0b4; font-weight: 800; }
.driver-card p { margin: 0; }
.ride-passengers { display: flex; flex-wrap: wrap; gap: 6px; }
.ride-passengers > span { display: grid; padding: 6px 9px; border-radius: 9px; background: var(--surface-3); font-size: .82rem; }
.ride-passengers small { color: var(--muted); }
.ride-join-form { display: grid; grid-template-columns: 76px 1fr auto; gap: 7px; }
.driver-offer-form { display: grid; grid-template-columns: 120px 1fr 1fr auto; gap: 8px; align-items: end; margin-top: 12px; }
.inline-drawer { padding-top: 12px; border-top: 1px solid var(--border); }
.invite-layout { display: grid; grid-template-columns: 1fr 140px; gap: 16px; align-items: center; }
.invite-qr { width: 140px; aspect-ratio: 1; padding: 8px; border-radius: 12px; background: white; }

@media (max-width: 900px) {
    .quick-action-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .wishlist-grid, .poll-board { grid-template-columns: 1fr; }
    .driver-offer-form { grid-template-columns: 1fr 1fr; }
    .driver-offer-form .button { grid-column: 1/-1; }
}

@media (max-width: 760px) {
    .main-nav > details { flex: 1; }
    .main-nav > details > summary { flex-direction: column; gap: 1px; padding: 5px; font-size: 1rem; justify-content: center; }
    .main-nav > details > summary span { font-size: .64rem; }
    .main-nav .nav-create-menu > summary { margin-left: 0; border-radius: 13px; }
    .nav-more-panel { position: fixed; left: 10px; right: 10px; top: auto; bottom: calc(72px + env(safe-area-inset-bottom)); grid-template-columns: repeat(2,minmax(0,1fr)); min-width: 0; }
    .nav-more-panel.right { left: 10px; right: 10px; }
    .nav-more-panel a { justify-content: flex-start; }
    .range-form, .finder-result { grid-template-columns: 1fr; }
    .finder-result .button { width: 100%; }
    .driver-grid { grid-template-columns: 1fr; }
    .ride-join-form, .driver-offer-form { grid-template-columns: 1fr; }
    .driver-offer-form .button { grid-column: auto; }
    .invite-layout { grid-template-columns: 1fr; }
    .invite-qr { justify-self: center; }
}

@media (max-width: 480px) {
    .quick-action-grid { grid-template-columns: 1fr; }
    .quick-action { padding: 11px 13px; }
    .quick-action small { font-size: .72rem; }
}
.detail-drawer { margin-bottom: 16px; }
.detail-drawer > summary { margin: 0; cursor: pointer; }
.detail-drawer > summary::after { content: "▾"; margin-left: 8px; color: var(--muted); }
.detail-drawer[open] > summary { padding-bottom: 15px; border-bottom: 1px solid var(--border); }
.detail-drawer[open] > summary::after { transform: rotate(180deg); }
.drawer-content { padding-top: 16px; }
@media (max-width:760px){.nav-more-panel a{flex:initial!important;flex-direction:row!important;font-size:.88rem!important;padding:10px 11px!important}.nav-more-panel a span{font-size:inherit!important}}
.advanced-options { margin-top: 22px; padding: 0; border: 1px solid var(--border); border-radius: 13px; background: rgba(12,11,18,.25); }
.advanced-options > summary { padding: 14px 16px; font-weight: 850; }
.advanced-options-grid { padding: 4px 16px 16px; }
.template-strip.create-drawer { padding: 0; }
.template-strip.create-drawer > summary { padding: 14px 0; }
.template-strip .template-cards { padding-bottom: 15px; }

/* Version 1.5.3: lokale PLZ-Auflösung und robuste Wetterort-Auswahl */
.weather-content { display: grid; gap: 5px; min-width: 0; }
.weather-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.weather-actions form, .weather-refresh-inline { margin: 0; }
.button.small { padding: 8px 12px; font-size: .9rem; }
.link-button { border: 0; background: none; color: var(--primary, #6d5dfc); padding: 0; text-decoration: underline; cursor: pointer; font: inherit; }
@media (max-width: 520px) { .weather-card { align-items: flex-start; } .weather-card > span { font-size: 2.2rem; } }

.weather-location-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 8px; margin-top: 8px; }
.weather-location-form label { display: grid; gap: 4px; }
.weather-location-form input { width: 100%; }
.weather-settings { margin-top: 6px; }
.weather-settings summary { cursor: pointer; color: var(--muted, #667085); }
@media (max-width: 520px) { .weather-location-form { grid-template-columns: 1fr; } }

/* Version 1.6: Organisation, Abrechnung, Chat, Reisen, Fahrten und Benachrichtigungen */
.organizer-page { display: grid; gap: 16px; }
.organizer-heading { align-items: flex-end; margin-bottom: 0; }
.activity-subnav, .section-jump-nav { display: flex; flex-wrap: wrap; gap: 7px; padding: 8px; border: 1px solid var(--border); border-radius: 14px; background: rgba(31,28,44,.72); position: sticky; top: 74px; z-index: 15; }
.activity-subnav a, .section-jump-nav a { padding: 8px 11px; border-radius: 9px; color: var(--muted); font-weight: 750; }
.activity-subnav a:hover, .activity-subnav a.active, .section-jump-nav a:hover { color: var(--text); background: var(--surface-3); }
.organization-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.organization-links a { display: flex; align-items: center; gap: 11px; padding: 13px; border: 1px solid var(--border); border-radius: 12px; background: rgba(12,11,18,.28); color: var(--text); }
.organization-links a:hover { border-color: rgba(139,108,255,.45); }
.organization-links > a > span { font-size: 1.4rem; }
.organization-links strong, .organization-links small { display: block; }
.organization-links small { color: var(--muted); }
.metric-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.metric-card { padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-2); }
.metric-card span { display: block; color: var(--muted); font-size: .82rem; }
.metric-card strong { display: block; margin-top: 4px; font-size: 1.35rem; }
.transfer-list, .expense-detail-list, .notification-list, .chat-stream, .booking-list, .timeline-list, .check-list, .document-grid { display: grid; gap: 10px; }
.transfer-card, .expense-detail-row, .notification-item, .booking-card, .document-card { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: rgba(12,11,18,.3); }
.transfer-card.is-paid { opacity: .65; }
.transfer-people { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.expense-detail-row small, .booking-card small, .document-card small { display: block; color: var(--muted); }
.expense-detail-row p { margin: 5px 0 0; }
.chip-row { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 7px; }
.soft-chip { padding: 4px 7px; border-radius: 999px; background: var(--surface-3); color: var(--muted); font-size: .75rem; }
.warning-chip { color: #ffd29a; }
.organizer-form { display: grid; gap: 13px; }
.member-check-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.participant-share { display: grid; grid-template-columns: 1fr minmax(100px,150px); align-items: center; gap: 7px; padding: 9px; border: 1px solid var(--border); border-radius: 10px; }
.custom-share.hidden { display: none; }
.chat-stream { padding: 4px 0; }
.chat-message { width: min(84%,760px); padding: 13px 15px; border: 1px solid var(--border); border-radius: 15px; background: var(--surface-2); }
.chat-message.own-message { justify-self: end; background: rgba(139,108,255,.12); border-color: rgba(139,108,255,.35); }
.chat-message.system-message { width: min(94%,850px); justify-self: center; background: rgba(255,255,255,.035); text-align: center; color: var(--muted); }
.chat-meta { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 5px; }
.chat-meta small, .legacy-label { color: var(--muted); }
.chat-message p { white-space: pre-wrap; margin: 0; }
.chat-actions { display: flex; gap: 12px; justify-content: flex-end; margin-top: 8px; }
.chat-image-link img { width: min(100%,520px); max-height: 430px; object-fit: cover; border-radius: 11px; margin-top: 8px; }
.chat-composer { position: sticky; bottom: 80px; z-index: 12; padding: 14px; display: grid; gap: 10px; }
.chat-compose-actions { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.file-button { cursor: pointer; color: var(--muted); }
.file-button input { max-width: 230px; }
.pinned-panel { border-color: rgba(255,205,91,.35); }
.personal-summary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.personal-summary-grid .span-two { grid-column: 1/-1; }
.personal-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); color: var(--text); }
.personal-row:last-child { border-bottom: 0; }
.personal-row strong, .personal-row small { display: block; }
.personal-row small { color: var(--muted); }
.notification-item.unread { border-color: rgba(139,108,255,.45); background: rgba(139,108,255,.08); }
.notification-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: var(--surface-3); font-size: 1.2rem; }
.notification-item p { margin: 4px 0; color: #d2cde0; }
.filter-bar { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 10px; padding: 14px; }
.timeline-item, .check-row { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 12px; padding: 12px; border: 1px solid var(--border); border-radius: 11px; background: rgba(12,11,18,.25); }
.timeline-item time { min-width: 64px; font-weight: 850; }
.timeline-item time small, .timeline-item div small, .check-row small { display: block; color: var(--muted); }
.timeline-item p { margin: 5px 0 0; }
.check-row.done { opacity: .58; }
.check-row.done strong { text-decoration: line-through; }
.check-button { border: 0; background: none; font-size: 1.1rem; cursor: pointer; }
.inline-add-form { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)) auto; gap: 8px; margin-top: 12px; align-items: end; }
.document-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.document-card { grid-template-columns: auto 1fr auto auto; }
.ride-leg-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.ride-leg-card { padding: 18px; display: grid; gap: 12px; }
.ride-leg-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.ride-leg-head h2, .ride-leg-head p { margin: 5px 0 0; }
.ride-route { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center; padding: 10px; border-radius: 11px; background: var(--surface-3); }
.passenger-list { display: grid; gap: 7px; }
.passenger-list > div { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--border); }
.passenger-list small { color: var(--muted); text-align: right; }
.danger-text { color: #ff8e9b; }
.compact-form { margin-top: 10px; }

@media (max-width: 900px) {
  .ride-leg-grid, .document-grid { grid-template-columns: 1fr; }
  .inline-add-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .inline-add-form .button { grid-column: 1/-1; }
}
@media (max-width: 760px) {
  .activity-subnav, .section-jump-nav { position: static; overflow-x: auto; flex-wrap: nowrap; }
  .activity-subnav a, .section-jump-nav a { white-space: nowrap; }
  .organization-links, .metric-grid, .personal-summary-grid, .member-check-grid { grid-template-columns: 1fr; }
  .personal-summary-grid .span-two { grid-column: auto; }
  .transfer-card, .expense-detail-row, .notification-item, .booking-card { grid-template-columns: 1fr; align-items: start; }
  .filter-bar, .inline-add-form { grid-template-columns: 1fr; }
  .participant-share { grid-template-columns: 1fr; }
  .chat-message, .chat-message.system-message { width: 100%; }
  .chat-composer { bottom: 73px; }
  .ride-route { grid-template-columns: 1fr; }
  .ride-route > span:nth-child(2) { transform: rotate(90deg); justify-self: start; }
  .passenger-list > div { display: grid; }
  .passenger-list small { text-align: left; }
}
.passenger-admin-row { grid-template-columns: 1fr minmax(120px,1fr) auto; align-items: center; }
@media (max-width:760px){.passenger-admin-row{grid-template-columns:1fr auto}.passenger-admin-row small{grid-column:1/-1}}

/* v1.6 chat mentions */
.mention-row { display:flex; align-items:center; flex-wrap:wrap; gap:.45rem; margin:.5rem 0; }
.mention-row small { margin-right:.2rem; }
.mention-button { border:0; cursor:pointer; font:inherit; }


.button.disabled {
    opacity: .55;
    cursor: not-allowed;
    pointer-events: none;
}

/* Version 1.7: Live-Chat, Gastzugang, Reise-Hub, Medienvorschau */
.live-indicator { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border-radius:999px; background:rgba(68,214,137,.12); color:#8ff0ba; font-weight:800; }
.live-indicator i { width:8px; height:8px; border-radius:50%; background:#56d893; box-shadow:0 0 0 5px rgba(86,216,147,.12); }
.typing-indicator { min-height:24px; padding:0 8px; color:var(--muted); font-size:.9rem; font-style:italic; }
.reply-preview { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:9px 11px; border-left:3px solid var(--primary); background:var(--surface-3); border-radius:9px; }
.reply-preview > div, .chat-reply-quote { display:grid; gap:2px; min-width:0; }
.reply-preview span, .chat-reply-quote span { color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.chat-reply-quote { width:100%; text-align:left; border:0; border-left:3px solid rgba(139,108,255,.65); background:rgba(139,108,255,.08); color:var(--text); padding:8px 10px; border-radius:8px; margin-bottom:8px; cursor:pointer; }
.chat-reactions { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.reaction-button { border:1px solid var(--border); background:var(--surface-3); color:var(--text); border-radius:999px; padding:4px 8px; cursor:pointer; }
.reaction-button.active { border-color:rgba(139,108,255,.7); background:rgba(139,108,255,.18); }
.chat-read-receipt { display:block; margin-top:6px; text-align:right; color:var(--muted); }
.chat-file-card { width:min(100%,520px); display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; margin-top:9px; padding:10px; border:1px solid var(--border); border-radius:10px; background:var(--surface-3); color:var(--text); text-align:left; cursor:pointer; }
.chat-file-card > span { font-size:1.5rem; }
.chat-file-card small { display:block; color:var(--muted); }
.chat-image-link { border:0; padding:0; background:none; cursor:zoom-in; }
.chat-send-state { min-height:18px; color:var(--muted); }
.chat-inbox { display:grid; gap:10px; }
.chat-inbox-row { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:14px; color:var(--text); }
.chat-inbox-row.unread { border-color:rgba(139,108,255,.55); background:rgba(139,108,255,.08); }
.chat-inbox-row p { margin:3px 0; color:#d4cfdf; }
.chat-inbox-row small { color:var(--muted); }
.chat-inbox-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:12px; background:var(--surface-3); font-size:1.35rem; }
.subnav-badge { margin-left:4px; min-width:19px; height:19px; display:inline-grid; place-items:center; border-radius:999px; background:var(--primary); color:white; font-size:.72rem; }

.file-preview-dialog { width:min(980px,94vw); height:min(86vh,780px); padding:0; border:1px solid var(--border); border-radius:16px; background:var(--surface-1); color:var(--text); }
.file-preview-dialog::backdrop { background:rgba(0,0,0,.72); backdrop-filter:blur(3px); }
.file-preview-head { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 14px; border-bottom:1px solid var(--border); }
.file-preview-head > div { display:flex; gap:8px; align-items:center; }
.file-preview-body { height:calc(100% - 62px); display:grid; place-items:center; padding:10px; }
.file-preview-body img { max-width:100%; max-height:100%; object-fit:contain; border-radius:10px; }
.file-preview-body iframe { width:100%; height:100%; border:0; border-radius:10px; background:white; }

.guest-page { width:min(760px,100%); margin:0 auto; display:grid; gap:14px; }
.guest-brand { display:flex; align-items:center; gap:8px; padding:8px 2px; }
.guest-brand small { margin-left:auto; color:var(--muted); }
.guest-hero { padding:22px; }
.guest-expiry, .guest-privacy { color:var(--muted); text-align:center; }
.guest-rsvp-form { display:grid; gap:14px; }
.guest-link-created { display:grid; gap:8px; padding:13px; border:1px solid rgba(86,216,147,.4); border-radius:12px; background:rgba(86,216,147,.08); }
.copy-link-row { display:grid; grid-template-columns:1fr auto; gap:8px; }
.copy-link-row input { min-width:0; }
.guest-link-form { grid-template-columns:2fr 1fr auto; }
.guest-link-form label { display:grid; gap:4px; }
.guest-access-list { display:grid; gap:8px; margin-top:12px; }
.guest-access-list article { display:grid; grid-template-columns:1fr auto auto; gap:10px; align-items:center; padding:11px; border:1px solid var(--border); border-radius:10px; }
.guest-access-list small, .guest-access-list .soft-chip { display:block; margin-top:4px; }
.activity-timeline .timeline-item strong { font-weight:650; }

.trip-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.trip-overview-card { padding:18px; display:grid; gap:14px; }
.trip-card-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.trip-card-head h2, .trip-card-head p { margin:4px 0 0; }
.trip-mini-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.trip-mini-metrics span { padding:9px; border-radius:10px; background:var(--surface-3); color:var(--muted); font-size:.76rem; text-align:center; }
.trip-mini-metrics b { display:block; color:var(--text); font-size:1.05rem; }
.travel-dashboard { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.travel-countdown-card { grid-row:span 2; display:flex; flex-direction:column; justify-content:center; padding:20px; background:linear-gradient(145deg,rgba(139,108,255,.18),rgba(12,11,18,.35)); }
.travel-countdown-card strong { font-size:1.65rem; margin:6px 0; }
.travel-countdown-card small { color:var(--muted); }
.progress-track { height:8px; margin-top:8px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
.progress-track i { display:block; height:100%; background:var(--primary); border-radius:inherit; }

.media-filter-tabs { display:flex; gap:6px; flex-wrap:wrap; }
.media-filter-tabs button { border:1px solid var(--border); border-radius:999px; background:var(--surface-2); color:var(--muted); padding:8px 12px; cursor:pointer; }
.media-filter-tabs button.active { background:var(--primary); border-color:var(--primary); color:white; }
.media-library { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.media-tile { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; padding:11px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); min-width:0; }
.media-tile strong, .media-tile small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.media-tile small { color:var(--muted); }
.media-image { grid-row:span 2; width:62px; height:62px; border:0; padding:0; border-radius:9px; overflow:hidden; cursor:zoom-in; }
.media-image img { width:100%; height:100%; object-fit:cover; }
.media-file-icon { width:52px; height:52px; border:0; border-radius:10px; background:var(--surface-3); font-size:1.5rem; cursor:pointer; }

.availability-day-focus { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.availability-day-focus span { color:var(--muted); font-size:.85rem; }
.availability-day-focus button { border:1px solid var(--border); background:var(--surface-3); color:var(--muted); border-radius:999px; padding:7px 10px; cursor:pointer; }
.availability-day-focus button.active { background:var(--primary); border-color:var(--primary); color:white; }
.availability-month-grid.weekend-focus [data-weekday="0"], .availability-month-grid.weekend-focus [data-weekday="1"], .availability-month-grid.weekend-focus [data-weekday="2"], .availability-month-grid.weekend-focus [data-weekday="3"] { opacity:.3; filter:saturate(.45); }
.availability-month-grid.weekend-focus [data-weekday="4"], .availability-month-grid.weekend-focus [data-weekday="5"], .availability-month-grid.weekend-focus [data-weekday="6"] { outline:2px solid rgba(139,108,255,.35); outline-offset:-2px; }

@media (max-width:900px) {
  .travel-dashboard { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .travel-countdown-card { grid-row:auto; }
  .media-library { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .trip-card-grid, .travel-dashboard, .media-library { grid-template-columns:1fr; }
  .trip-mini-metrics { grid-template-columns:repeat(2,1fr); }
  .guest-link-form, .copy-link-row { grid-template-columns:1fr; }
  .guest-access-list article { grid-template-columns:1fr auto; }
  .guest-access-list article form { grid-column:1/-1; }
  .file-preview-dialog { width:100vw; max-width:100vw; height:92vh; border-radius:14px 14px 0 0; margin:auto 0 0; }
  .chat-inbox-row { grid-template-columns:auto 1fr; }
  .chat-inbox-row > :last-child { grid-column:2; justify-self:start; }
  .main-nav > a span, .main-nav > details > summary span { font-size:.7rem; }
}
.gallery-preview-button { border:0; padding:0; background:none; width:100%; cursor:zoom-in; }
.gallery-preview-button img { display:block; width:100%; }
.reaction-picker { position:relative; }
.reaction-picker > summary { list-style:none; cursor:pointer; border:1px solid var(--border); border-radius:999px; padding:.3rem .55rem; color:var(--muted); font-size:.82rem; }
.reaction-picker > summary::-webkit-details-marker { display:none; }
.reaction-picker > div { position:absolute; z-index:25; left:0; bottom:calc(100% + .35rem); display:flex; gap:.25rem; padding:.4rem; border:1px solid var(--border); border-radius:14px; background:var(--surface); box-shadow:0 12px 30px rgba(0,0,0,.18); }
.reaction-choice { border:0; background:transparent; border-radius:9px; padding:.35rem; cursor:pointer; font-size:1.1rem; }
.reaction-choice:hover,.reaction-choice.active { background:rgba(139,108,255,.16); }
.reaction-button.static { cursor:default; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

/* WasGeht 1.8: organizer center, maps, smart notifications, travel cash and event day */
.compact-stats { margin-bottom:20px; }
.organizer-center-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:16px; align-items:start; }
.issue-list,.change-activity-list,.queued-notification-list,.mute-list,.cash-transaction-list { display:grid; gap:9px; }
.issue-row { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:13px; border:1px solid var(--border); border-radius:13px; color:var(--text); background:var(--surface-2); }
.issue-row:hover { color:var(--text); border-color:rgba(139,108,255,.45); }
.issue-row strong,.issue-row small,.issue-row p { display:block; margin:0; }
.issue-row small { color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:.7rem; }
.issue-row p { color:var(--muted); margin-top:3px; }
.issue-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:11px; background:var(--surface-3); font-size:1.15rem; }
.issue-urgent { border-color:rgba(239,98,116,.45); background:rgba(239,98,116,.08); }
.issue-warning { border-color:rgba(246,184,74,.3); }
.change-activity-list > a { display:grid; gap:5px; padding:12px; border:1px solid var(--border); border-radius:12px; color:var(--text); background:var(--surface-2); }
.change-activity-list span { color:var(--muted); font-size:.9rem; }
.change-list { display:grid; gap:8px; }
.change-list > div { display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:start; padding:9px 0; border-bottom:1px solid var(--border); }
.change-list > div:last-child { border-bottom:0; }
.change-list p { margin:0; }

.smart-notification-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.8fr); gap:20px; }
.compact-heading { margin-bottom:10px; }
.queued-notification-list article,.cash-transaction-list article { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; padding:11px; border:1px solid var(--border); border-radius:11px; background:var(--surface-2); }
.queued-notification-list small,.cash-transaction-list small { display:block; color:var(--muted); margin-top:3px; }
.mute-list form { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:9px; border-bottom:1px solid var(--border); }
.mute-list span { overflow-wrap:anywhere; color:var(--muted); font-size:.85rem; }
.native-input-wrap { display:flex; width:100%; min-width:0; min-height:45px; padding:10px 12px; color:var(--text); background:#12101b; border:1px solid rgba(255,255,255,.12); border-radius:10px; }
.native-input-wrap input { display:block; width:100%; min-width:0; min-height:0; padding:0; border:0; background:transparent; box-shadow:none; }

.map-panel,.travel-map-panel { overflow:hidden; }
.interactive-map { width:100%; height:440px; margin-top:13px; border:1px solid var(--border); border-radius:14px; background:var(--surface-2); z-index:1; }
.map-status { min-height:24px; margin-top:9px; }
.route-summary-list { display:grid; gap:7px; margin-top:10px; }
.route-summary-row { display:flex; justify-content:space-between; gap:15px; padding:10px 12px; border-radius:10px; background:var(--surface-2); }
.route-summary-row span { color:var(--muted); }
.travel-map-controls { display:grid; grid-template-columns:minmax(180px,1fr) minmax(140px,.6fr) auto auto; gap:10px; align-items:end; }
.route-metrics,.cash-balance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.route-warning { margin-top:10px; padding:12px 14px; border:1px solid rgba(246,184,74,.42); border-radius:11px; background:rgba(246,184,74,.09); color:#ffd78c; }

.currency-note { display:block; margin-top:5px; color:#c5b9ff; }
.currency-options.hidden { display:none; }
.two-column-forms { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:14px; }
.cash-balance-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.cash-transaction-list { margin-top:14px; }
.cash-transaction-list p { margin:4px 0 0; color:var(--muted); }

.itinerary-day-board { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; align-items:start; }
.itinerary-day-column { min-height:150px; border:1px solid var(--border); border-radius:13px; background:rgba(255,255,255,.025); overflow:hidden; transition:.16s ease; }
.itinerary-day-column > header { display:flex; justify-content:space-between; padding:10px 12px; background:var(--surface-3); border-bottom:1px solid var(--border); }
.itinerary-day-column.drag-over { border-color:var(--primary); background:rgba(139,108,255,.1); }
.itinerary-dropzone { min-height:100px; padding:8px; display:grid; gap:7px; align-content:start; }
.itinerary-drag-card { display:grid; grid-template-columns:1fr auto; gap:8px; padding:10px; border:1px solid var(--border); border-radius:10px; background:var(--surface-2); cursor:grab; }
.itinerary-drag-card:active { cursor:grabbing; }
.itinerary-drag-card.dragging { opacity:.45; }
.itinerary-drag-card div { display:grid; gap:3px; min-width:0; }
.itinerary-drag-card small,.itinerary-drag-card span { color:var(--muted); }
.itinerary-drag-card strong,.itinerary-drag-card span { overflow-wrap:anywhere; }

.adaptive-note { padding:10px 12px; border-left:3px solid var(--primary); background:rgba(139,108,255,.08); border-radius:9px; }
.decision-list { display:grid; gap:9px; }
.decision-row { display:grid; grid-template-columns:1fr auto; gap:12px; padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); }
.decision-row p,.decision-row small { margin:3px 0 0; color:var(--muted); }

.event-day-page { width:min(980px,100%); margin:0 auto; display:grid; gap:14px; }
.event-day-hero { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px 0; }
.event-day-hero p { color:var(--muted); margin:0; }
.event-day-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.event-day-grid > .card { padding:18px; }
.event-day-primary { background:linear-gradient(145deg,rgba(139,108,255,.17),rgba(24,22,35,.96)); }
.event-day-announcement { padding:14px 16px; border-radius:13px; border:1px solid rgba(246,184,74,.35); background:rgba(246,184,74,.09); }
.attendance-list,.participant-list,.document-mini-list { display:grid; gap:8px; }
.attendance-list > div,.participant-list > div { display:grid; grid-template-columns:auto 1fr; gap:8px; padding:8px 0; border-bottom:1px solid var(--border); }
.attendance-list small,.participant-list small { grid-column:2; color:var(--muted); }
.event-status-form { display:grid; gap:10px; margin-top:12px; }
.event-status-buttons { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.document-mini-list a { padding:9px 10px; border:1px solid var(--border); border-radius:10px; background:var(--surface-2); }
.event-emergency { grid-column:1/-1; display:flex; gap:13px; align-items:center; border-color:rgba(239,98,116,.35); }
.event-emergency > span { font-size:1.7rem; }
.event-emergency small,.event-emergency strong { display:block; }

@media (max-width:980px) {
  .organizer-center-grid,.smart-notification-grid { grid-template-columns:1fr; }
  .travel-map-controls { grid-template-columns:1fr 1fr; }
  .cash-balance-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .interactive-map { height:340px; }
  .travel-map-controls,.route-metrics,.two-column-forms,.cash-balance-grid,.event-day-grid { grid-template-columns:1fr; }
  .event-day-hero { align-items:flex-start; flex-direction:column; }
  .event-emergency { grid-column:auto; }
  .itinerary-day-board { grid-template-columns:1fr; }
  .route-summary-row { align-items:flex-start; flex-direction:column; }
  .queued-notification-list article,.cash-transaction-list article { grid-template-columns:1fr; }
}

.decision-log-list { display:grid; gap:10px; }
.decision-log-list > article { display:grid; grid-template-columns:1fr auto; gap:12px; padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); }
.decision-log-list p { margin:4px 0; }
.decision-log-list small { display:block; color:var(--muted); margin-top:3px; }

.itinerary-card-actions { display:flex; gap:5px; align-items:flex-start; }
.move-day-menu > summary { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--border); border-radius:9px; background:var(--surface-3); cursor:pointer; }
.move-day-menu form { position:absolute; z-index:20; right:0; top:40px; width:220px; display:grid; gap:8px; padding:10px; border:1px solid var(--border); border-radius:11px; background:var(--surface); box-shadow:var(--shadow); }

/* Local WasGeht map renderer (no external JavaScript dependency) */
.wg-map{position:relative;overflow:hidden;min-height:360px;background:#d8e0e6;cursor:grab;touch-action:none;isolation:isolate}
.wg-map.is-dragging{cursor:grabbing}
.wg-map-tiles,.wg-map-overlay,.wg-map-markers{position:absolute;inset:0}
.wg-map-tiles img{position:absolute;width:256px;height:256px;max-width:none;user-select:none;-webkit-user-drag:none}
.wg-map-overlay{width:100%;height:100%;pointer-events:none;z-index:2}
.wg-map-route{fill:none;stroke:var(--primary,#5b63f6);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}
.wg-map-markers{z-index:3;pointer-events:none}
.wg-map-marker{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;border:3px solid #fff;border-radius:999px;background:var(--primary,#5b63f6);color:#fff;font-weight:800;box-shadow:0 2px 7px rgba(0,0,0,.35);pointer-events:auto;cursor:pointer;padding:0}
.wg-map-marker:focus-visible{outline:3px solid #111;outline-offset:2px}
.wg-map-popup{display:none;position:absolute;left:50%;bottom:38px;transform:translateX(-50%);min-width:180px;max-width:260px;padding:10px 12px;border-radius:10px;background:var(--surface,#fff);color:var(--text,#17202a);box-shadow:0 8px 24px rgba(0,0,0,.28);text-align:left;white-space:normal;z-index:5}
.wg-map-popup::after{content:"";position:absolute;top:100%;left:50%;margin-left:-6px;border:6px solid transparent;border-top-color:var(--surface,#fff)}
.wg-map-popup strong,.wg-map-popup small{display:block}.wg-map-popup small{margin-top:3px;color:var(--muted,#5f6b76)}
.wg-map-marker.is-open .wg-map-popup{display:block}
.wg-map-controls{position:absolute;top:10px;left:10px;z-index:4;display:grid;border-radius:9px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.wg-map-controls button{width:38px;height:38px;border:0;border-bottom:1px solid rgba(0,0,0,.12);background:var(--surface,#fff);color:var(--text,#17202a);font-size:22px;line-height:1;cursor:pointer}
.wg-map-controls button:last-child{border-bottom:0}.wg-map-controls button:disabled{opacity:.45;cursor:default}
.wg-map-attribution{position:absolute;right:4px;bottom:3px;z-index:4;padding:2px 5px;background:rgba(255,255,255,.86);color:#223;font-size:11px;text-decoration:none;border-radius:3px}
@media (max-width:640px){.wg-map{min-height:310px}.wg-map-popup{min-width:150px;max-width:210px}}

/* v1.8.1: explicit exchange-rate preview */
.currency-rate-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: .75rem;
}
.currency-rate-result {
  display: block;
  flex: 1 1 18rem;
  min-width: 0;
}
.currency-rate-result.is-success {
  color: var(--success, #287a45);
  font-weight: 600;
}
.currency-rate-result.is-error {
  color: var(--danger, #b42318);
  font-weight: 600;
}
@media (max-width: 560px) {
  .currency-rate-actions {
    align-items: stretch;
  }
  .currency-rate-actions .button,
  .currency-rate-result {
    width: 100%;
  }
}

/* v1.8.2: saved profile addresses and ride autofill */
.saved-address-list { display:grid; gap:.75rem; margin:1rem 0; }
.saved-address-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.75rem 1rem; align-items:start; padding:1rem; border:1px solid var(--border); border-radius:14px; background:var(--surface-2); }
.saved-address-main { min-width:0; }
.saved-address-main p { margin:.45rem 0 0; overflow-wrap:anywhere; }
.saved-address-row > .button-row { justify-content:flex-end; }
.address-edit-drawer { grid-column:1 / -1; }
.address-options { display:grid; gap:.5rem; margin:.75rem 0; }
.privacy-note { padding:.75rem .85rem; border-radius:12px; background:var(--surface-2); color:var(--muted); font-size:.92rem; }
@media (max-width:640px) {
  .saved-address-row { grid-template-columns:1fr; }
  .saved-address-row > .button-row { justify-content:flex-start; }
}

/* v1.8.3: guided first tour and reusable module tours */
.tour-overlay { position:fixed; inset:0; z-index:12000; pointer-events:none; }
.tour-highlight { position:fixed; z-index:12001; border:3px solid var(--primary); border-radius:16px; box-shadow:0 0 0 9999px rgba(10,8,20,.68),0 0 0 7px rgba(124,92,255,.2); transition:top .2s ease,left .2s ease,width .2s ease,height .2s ease; pointer-events:none; }
.tour-popover { position:fixed; z-index:12002; width:min(360px,calc(100vw - 24px)); padding:1.15rem; border:1px solid color-mix(in srgb,var(--primary) 45%,var(--border)); border-radius:18px; background:var(--surface); color:var(--text); box-shadow:0 18px 55px rgba(0,0,0,.36); pointer-events:auto; }
.tour-popover h2 { margin:.35rem 2rem .45rem 0; font-size:1.25rem; }
.tour-popover p { margin:.35rem 0 .95rem; }
.tour-progress { display:block; color:var(--primary); font-size:.78rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.tour-close { position:absolute; top:.75rem; right:.75rem; width:34px; height:34px; border:0; border-radius:999px; background:var(--surface-2); color:var(--text); cursor:pointer; }
.tour-actions { display:flex; align-items:center; gap:.5rem; margin-top:1rem; }
.tour-actions [data-tour-next] { margin-left:auto; }
.tour-action-note { padding:.7rem .8rem; border-radius:12px; background:var(--surface-2); color:var(--muted); font-size:.9rem; }
.tour-active-target { scroll-margin:120px; }
.tour-settings-grid { display:grid; gap:.75rem; margin-top:1rem; }
.tour-setting-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; align-items:center; padding:.9rem; border:1px solid var(--border); border-radius:14px; background:var(--surface-2); }
.tour-setting-row p,.tour-reset-box p { margin:.3rem 0 0; color:var(--muted); }
.tour-reset-box { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; padding:1rem; border-top:1px solid var(--border); }
.tour-preference-row { margin:1rem 0; padding:.85rem; border-radius:12px; background:var(--surface-2); }
.tour-preference-row .form-check-label { display:grid; gap:.2rem; }
.tour-preference-row small { color:var(--muted); }
.soft-chip.success { color:var(--success,#287a45); }
@media (max-width:640px) {
  .tour-popover { max-height:min(52vh,430px); overflow:auto; }
  .tour-actions { flex-wrap:wrap; }
  .tour-actions [data-tour-next] { margin-left:0; flex:1; }
  .tour-setting-row { grid-template-columns:1fr; }
  .tour-setting-row form,.tour-setting-row .button { width:100%; }
  .tour-reset-box { align-items:stretch; flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
  .tour-highlight { transition:none; }
}
.tour-preference-stack { display:grid; gap:.65rem; margin:1rem 0; }
.tour-preference-stack .tour-preference-row { margin:0; }

/* v1.9 – Regeln, Bibliotheken, Datenschutz und Wartung */
.muted-card { opacity: .72; }
.stack-list { display: grid; gap: 16px; }
.button-row.wrap { flex-wrap: wrap; }
.subsection { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 12px; }
.subsection > summary { cursor: pointer; font-weight: 700; margin-bottom: 12px; }
.closeout-checks { display: grid; gap: 12px; margin: 22px 0; }
.closeout-checks .form-check { align-items: flex-start; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.025); }
.closeout-checks .form-check-label { display: grid; gap: 4px; }
.danger-zone { margin-top: 24px; border-color: rgba(255,92,117,.4); }
.danger-zone > summary { color: #ff8da1; cursor: pointer; font-weight: 800; }
.maintenance-state { min-height: 55vh; display: grid; place-content: center; text-align: center; }
.table-wrap { overflow-x: auto; }
.table-wrap table { width: 100%; border-collapse: collapse; }
.table-wrap th, .table-wrap td { padding: 12px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.date-input-wrap { width: 100%; min-width: 0; border: 1px solid var(--border); border-radius: 12px; padding: 10px 12px; background: rgba(255,255,255,.035); }
.date-input-wrap input { display: block; width: 100%; min-width: 0; border: 0; padding: 0; background: transparent; color: inherit; }
.availability-calendar-day .availability-state-label { line-height: 1.15; }
@media (max-width: 720px) {
  .calendar-nav { flex-wrap: wrap; }
  .table-wrap .button-row { min-width: 210px; }
}


/* v1.9.1: responsive maintenance dashboard */
@media (max-width: 760px) {
  .admin-page-heading { align-items: flex-start; }
  .admin-page-heading .status-chip { align-self: flex-start; }
  .admin-stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-bottom: 28px; }
  .admin-stat-card { padding: 13px; gap: 10px; }
  .admin-stat-icon { width: 36px; height: 36px; flex-basis: 36px; border-radius: 10px; font-size: 1rem; }
  .admin-stat-copy strong { font-size: 1.2rem; }
  .admin-stat-copy small { font-size: .72rem; }
}
@media (max-width: 430px) {
  .admin-stats-grid { grid-template-columns: 1fr; }
}

/* v1.9.1: Umfrage-Ergebnisse und verdeckte Resultate */
.poll-heading { align-items: flex-start; }
.poll-meta-chips { margin-top: 9px; }
.poll-choice { display: grid; grid-template-columns: minmax(0,1fr) auto auto; }
.poll-choice em { position: relative; z-index: 1; color: #c7b9ff; font-size: .72rem; font-style: normal; font-weight: 750; white-space: nowrap; }
.poll-results-drawer { margin-top: 14px; border: 1px solid var(--border); border-radius: 13px; background: rgba(255,255,255,.02); }
.poll-results-drawer > summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 13px 14px; cursor: pointer; font-weight: 800; }
.poll-results-content { padding: 0 14px 15px; }
.poll-result-summary { display: grid; gap: 3px; margin-bottom: 13px; }
.poll-result-summary small { color: var(--muted); }
.poll-result-list { display: grid; gap: 11px; }
.poll-result-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px 14px; align-items: end; }
.poll-result-label { min-width: 0; display: grid; gap: 2px; }
.poll-result-label span { overflow-wrap: anywhere; }
.poll-result-label small { color: #c7b9ff; }
.poll-result-numbers { display: flex; align-items: baseline; gap: 7px; }
.poll-result-numbers span { color: var(--muted); font-size: .78rem; }
.poll-result-track { grid-column: 1/-1; height: 9px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.065); }
.poll-result-track i { display: block; height: 100%; max-width: 100%; border-radius: inherit; background: var(--primary); }
.poll-result-row.leading .poll-result-track i { box-shadow: 0 0 0 1px rgba(255,255,255,.12) inset; }

@media (max-width: 520px) {
  .poll-choice { grid-template-columns: minmax(0,1fr) auto; }
  .poll-choice em { grid-column: 1; }
  .poll-choice b { grid-column: 2; grid-row: 1 / span 2; }
  .poll-results-drawer > summary { align-items: flex-start; }
}

/* v1.9.4: clear, local feedback for the activity creation workflow. */
.form-inline-error,
.form-submit-feedback {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    margin: 0 0 1rem;
    padding: .85rem 1rem;
    border: 1px solid color-mix(in srgb, #ef4444 45%, var(--border));
    border-radius: 14px;
    background: color-mix(in srgb, #ef4444 10%, var(--surface));
}
.form-submit-feedback {
    border-color: color-mix(in srgb, var(--primary) 35%, var(--border));
    background: color-mix(in srgb, var(--primary) 8%, var(--surface));
}
.form-inline-error code {
    font-size: .9em;
    overflow-wrap: anywhere;
}
.form-hint-attention {
    font-weight: 650;
    color: var(--warning-text, #9a6700);
}
button[disabled] {
    cursor: wait;
    opacity: .72;
}


/* v2.0 – zentrale Erstellung und reduzierte Formulare */
.new-menu-dialog { width: min(680px, calc(100% - 24px)); border: 1px solid var(--border); border-radius: 22px; padding: 0; background: var(--surface); color: var(--text); box-shadow: 0 24px 80px rgba(0,0,0,.45); }
.new-menu-dialog::backdrop { background: rgba(6,5,12,.72); backdrop-filter: blur(4px); }
.new-menu-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:22px 22px 10px; }
.new-menu-head h2 { margin:.25rem 0 0; }
.new-menu-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:12px 22px 18px; }
.new-menu-grid a { display:grid; grid-template-columns:42px 1fr; column-gap:12px; align-items:center; padding:15px; border:1px solid var(--border); border-radius:16px; color:inherit; background:var(--surface-2); }
.new-menu-grid a:hover { border-color:var(--primary); transform:translateY(-1px); }
.new-menu-grid a > span { grid-row:1/3; font-size:1.7rem; }
.new-menu-grid strong,.new-menu-grid small { display:block; }
.new-menu-grid small { color:var(--muted); margin-top:2px; }
.new-menu-quick-link { display:block; margin:0 22px 22px; padding:12px 14px; text-align:center; border-radius:14px; background:var(--primary-soft); color:var(--text); }
button.nav-create { border:0; font:inherit; cursor:pointer; display:flex; align-items:center; gap:7px; padding:9px 14px; border-radius:10px; font-weight:700; }
@media (max-width:760px) { button.nav-create { flex:1; flex-direction:column; gap:1px; padding:5px; font-size:1rem; } button.nav-create span { font-size:.64rem; } }
.simple-activity-fields { padding-bottom:8px; }
.advanced-options { margin-top:18px; }
.advanced-options > summary { font-weight:700; cursor:pointer; padding:15px 0; }
.quick-actions-panel { scroll-margin-top:90px; }
.quick-actions-row { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.quick-actions-row form { margin:0; }
.activity-picker-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.activity-picker-card { display:flex; flex-direction:column; align-items:flex-start; gap:10px; color:inherit; }
.activity-picker-card h2,.activity-picker-card p { margin:0; }
.travel-quick-complete { display:flex; justify-content:flex-end; margin-bottom:10px; }
@media (max-width:640px) { .new-menu-grid,.activity-picker-grid { grid-template-columns:1fr; } .new-menu-head { padding:18px 16px 8px; } .new-menu-grid { padding:10px 16px 14px; } .new-menu-quick-link { margin:0 16px 16px; } .quick-actions-row { display:grid; grid-template-columns:1fr; } .quick-actions-row .button { width:100%; } }
