:root {
    color-scheme: dark;
    --bg: #0b0f18;
    --panel: #131b29;
    --panel-deep: #0f1623;
    --ink: #f2f5fc;
    --muted: #a9b7ca;
    --line: #2c3a50;
    --blue: #8aafff;
    --primary: #2863e9;
    --radius: 16px;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-height: 100dvh; color: var(--ink); background: var(--bg); font: 16px/1.55 system-ui, sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
h1, h2, h3, p { margin: 0 0 .65em; }
h1, h2, h3 { line-height: 1.1; letter-spacing: -.04em; overflow-wrap: anywhere; }
h1 { font-size: clamp(2.3rem, 7vw, 4rem); }
h2 { font-size: clamp(1.35rem, 4vw, 2.05rem); }
p:last-child { margin-bottom: 0; }
.container, .topbar-inner, .site-footer { width: min(1140px, 92%); margin-inline: auto; }
.container { min-height: calc(100dvh - 160px); padding: 36px 0 72px; }
.topbar { border-bottom: 1px solid var(--line); background: #0d1420; }
.topbar-inner { min-height: 70px; display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.brand { display: inline-flex; align-items: center; gap: 9px; font-size: 1.36rem; font-weight: 900; font-style: italic; letter-spacing: -.07em; }
.brand b { color: var(--blue); }
.topbar nav { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.topbar nav a, .link-button, .nav-toggle { padding: 8px 12px; border-radius: 8px; color: var(--muted); font-weight: 650; font-size: .9rem; }
.topbar nav a:hover, .link-button:hover { background: var(--panel); color: white; }
.topbar nav .nav-account { color: var(--ink); border: 1px solid var(--line); max-width: 210px; overflow-wrap: anywhere; }
.link-button { border: 0; background: transparent; }
.nav-toggle { display: none; border: 1px solid var(--line); background: var(--panel); color: var(--ink); }
.hero { display: grid; grid-template-columns: 1fr minmax(0, .86fr); gap: clamp(24px, 5vw, 60px); align-items: center; margin: 28px 0 28px; }
.eyebrow { color: var(--blue); font-size: .73rem; font-weight: 850; letter-spacing: .14em; margin-bottom: .9rem; }
.eyebrow span { display: inline-block; width: 19px; height: 7px; margin-right: 5px; background: #4c83ff; transform: skewX(-30deg); }
.hero h1 { font-size: clamp(2.45rem, 6.3vw, 5.2rem); font-weight: 900; line-height: .99; letter-spacing: -.075em; margin-bottom: .3em; }
.hero h1 em { color: var(--blue); }
.hero-description { max-width: 44ch; margin-bottom: 1.45rem; color: var(--muted); font-size: clamp(1rem, 2vw, 1.125rem); }
.hero-visual { margin: 0; border: 1px solid #3b5072; border-radius: var(--radius); overflow: hidden; box-shadow: 0 20px 55px #0005; }
.hero-visual img { display: block; width: 100%; height: auto; }
.hero-visual figcaption { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; padding: 12px 16px; font-size: .67rem; letter-spacing: .12em; font-weight: 800; color: var(--blue); background: var(--panel); }
.quick-filters { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 52px; }
.quick-filters a { display: flex; justify-content: space-between; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: 12px; padding: 13px 16px; background: var(--panel-deep); font-weight: 750; }
.quick-filters a:hover, .list-item:hover { border-color: var(--blue); }
.quick-filters span, .text-link { color: var(--blue); }
.text-link { font-weight: 750; }
.text-link:hover, .event-bottom a:hover { text-decoration: underline; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.btn { display: inline-flex; min-height: 43px; align-items: center; justify-content: center; gap: .55rem; padding: .65rem 1rem; border: 1px solid transparent; border-radius: 9px; color: white; font-weight: 750; line-height: 1.25; text-align: center; }
.btn.primary { background: var(--primary); }
.btn.primary:hover { background: #2056d2; }
.btn.ghost { border-color: #4a5b73; background: var(--panel-deep); }
.btn.ghost:hover { border-color: var(--blue); }
.section-head { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 15px; margin: 20px 0; }
.section-head h1, .section-head h2 { margin: 0; }
.page-head { margin-top: 8px; margin-bottom: 28px; }
.page-head p.muted { margin-top: .5rem; }
.muted, .empty p, .event-body p { color: var(--muted); }
.grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.card { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); overflow-wrap: anywhere; }
.card h2 { font-size: 1.4rem; }
.empty { padding: 34px 24px; }
.event-card, .detail { padding: 0; overflow: hidden; }
.event-card { display: flex; flex-direction: column; }
.event-strip { min-height: 72px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 14px 18px; color: white; background: linear-gradient(115deg, #102e74, #142340 75%, #1e4397); }
.event-strip.event-motorcycle { background: linear-gradient(115deg, #412257, #221d40 75%, #683273); }
.event-strip.event-mixed { background: linear-gradient(115deg, #18444d, #172944 75%, #265177); }
.event-strip span, .tag { padding: 4px 9px; border: 1px solid #ffffff3b; border-radius: 999px; background: #0b0f185c; font-size: .78rem; font-weight: 700; }
.tag { display: inline-block; margin-bottom: .65rem; }
.event-body, .detail-body { padding: 20px; }
.event-body { display: flex; flex-direction: column; flex: 1; }
.event-body time { margin-bottom: .55rem; color: var(--blue); font-size: .85rem; font-weight: 750; }
.event-body h3 { font-size: 1.38rem; }
.event-bottom { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: .83rem; }
.event-bottom a { color: var(--blue); font-weight: 700; }
.form-card { width: min(100%, 650px); margin: 24px auto; padding: clamp(20px, 5vw, 36px); }
.auth-card { max-width: 480px; }
.auth-card form { margin-bottom: 16px; }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.field { display: grid; gap: 6px; margin-bottom: 14px; color: var(--muted); font-size: .9rem; font-weight: 650; }
.field input, .field select, .field textarea { width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid #40516b; border-radius: 8px; background: var(--panel-deep); color: var(--ink); }
.field textarea { min-height: 105px; resize: vertical; }
details { margin-bottom: 18px; }
summary { color: var(--blue); cursor: pointer; margin-bottom: 8px; }
.filter-bar { display: grid; grid-template-columns: 1fr 1fr auto auto; align-items: end; gap: 12px; margin-bottom: 20px; }
.filter-bar .field { margin: 0; }
.filter-bar .text-link { align-self: center; }
.alert { padding: 11px 15px; border-radius: 9px; margin-bottom: 16px; }
.alert.ok { color: #c0f9d9; background: #113d30; }
.alert.error { color: #ffd0d0; background: #4b1c28; }
.back { display: inline-block; margin-bottom: 14px; }
.detail { max-width: 860px; }
.detail-body { padding: clamp(20px, 5vw, 38px); }
.detail-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding: 18px 0; border-block: 1px solid var(--line); }
.detail-facts dt { color: var(--muted); font-size: .84rem; }
.detail-facts dd { margin: .3rem 0 0; font-weight: 750; }
.description { margin-block: 24px; }
.attendance-note { color: var(--muted); font-weight: 650; }
.list { display: grid; gap: 9px; }
.list-item { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; }
.list-item .tag { margin: 0; }
.map { width: 100%; height: min(55vh, 530px); min-height: 320px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.meeting-point { margin-bottom: 16px; }
.meeting-point #meeting-point-label { font-weight: 750; margin-bottom: 4px; }
.meeting-point .map { height: 320px; min-height: 260px; cursor: crosshair; }
.meeting-point .actions { margin-top: 8px; }
.organizer-actions, #route-editor, .notice-pages { margin-top: 20px; }
.organizer-actions details { margin-top: 12px; }
.meeting-point .route-mode { margin-bottom: 8px; }
.route-mode[aria-pressed="true"] { border-color: var(--blue); color: var(--blue); }
.route-stops { margin-block: 12px; padding-left: 25px; }
#route-stops li { margin-bottom: 8px; }
#route-stops input { width: 100%; padding: 8px 10px; margin-bottom: 5px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--panel-deep); }
#route-stops button { margin-right: 5px; min-height: 36px; }
#route-stops button:disabled { opacity: .45; cursor: default; }
.site-footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 22px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: .84rem; }
.site-footer a { color: var(--ink); font-weight: 750; }
@media (max-width: 800px) {
    .container { padding-top: 24px; }
    .hero { grid-template-columns: 1fr; margin-top: 10px; }
    .hero-visual { width: min(100%, 550px); }
    .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .topbar-inner { position: relative; }
    .nav-toggle { display: block; }
    .topbar nav { display: none; position: absolute; top: 62px; right: 0; z-index: 1001; width: min(285px, 92vw); padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-deep); }
    .topbar nav.show { display: grid; }
    .topbar nav .nav-account { max-width: none; }
}
@media (max-width: 520px) {
    .grid, .form-row, .detail-facts { grid-template-columns: 1fr; }
    .filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .quick-filters a { padding: 10px; }
    .quick-filters { margin-bottom: 34px; }
}

.small { font-size: .82rem; }
.avatar-small { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.profile-avatar { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; }
.avatar-editor, .message-inbox, .chat-panel { margin-bottom: 24px; }
.avatar-editor { max-width: 600px; }
.avatar-editor form { margin-top: 12px; }
.photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.photo-grid figure { margin: 0; }
.photo-grid img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }
.photo-upload { margin-top: 16px; }
.chat-panel { max-width: 900px; margin-top: 16px; }
.chat-messages { max-height: 55vh; min-height: 80px; overflow-y: auto; padding: 4px; }
.chat-message { border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin-bottom: 10px; background: var(--panel-deep); overflow-wrap: anywhere; }
.chat-message.mine { border-left: 3px solid var(--blue); }
.chat-author { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 8px; }
.chat-author time { color: var(--muted); font-size: .78rem; margin-left: auto; }
.chat-message .small { margin-right: 14px; }
.chat-compose { margin-top: 18px; }
.chat-compose textarea { min-height: 80px; }
.admin-tabs { margin-bottom: 20px; }
.admin-row .actions { margin-top: 12px; }
.admin-photo { display: block; max-width: 100%; max-height: 300px; object-fit: contain; margin-block: 12px; }

.club-heading { margin-block: 18px 24px; }
.club-heading .actions { margin-top: 16px; }
.club-logo { width: 84px; height: 84px; object-fit: contain; border-radius: 12px; margin-bottom: 12px; background: white; }
.club-settings { margin-bottom: 24px; }
.club-settings form { margin-top: 12px; }
.poll-option { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 8px; margin-block: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.poll-option input { margin-top: 5px; }
.poll-option strong, .poll-option progress { grid-column: 1 / -1; }
.poll-option progress { width: 100%; height: 10px; accent-color: var(--primary); }
.poll-close { margin-top: 20px; }
/* Notification preferences */
.notification-choice { display:flex; gap:.75rem; align-items:center; margin:1rem 0; cursor:pointer; }
.notification-choice input { width:1.2rem; height:1.2rem; flex:0 0 auto; accent-color:var(--accent,#ff5722); }

/* 1.5: a personal agenda and navigation within reach. */
.ui-icon { flex:0 0 auto; vertical-align:middle; }
.skip-link { position:absolute; left:16px; top:-100px; z-index:2000; padding:12px 18px; border-radius:8px; background:var(--ink); color:var(--bg); }
.skip-link:focus { top:12px; }
.mobile-nav { display:none; }
.home-welcome { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(200px,.7fr); gap:32px; align-items:center; margin-bottom:28px; }
.home-welcome h1 { font-size:clamp(2.2rem,5vw,3.7rem); }
.home-welcome img { display:block; width:100%; height:auto; border-radius:14px; border:1px solid var(--line); }
.home-welcome .actions { margin-top:22px; }
.home-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:26px; }
.home-shortcuts a { display:flex; align-items:center; gap:13px; padding:18px; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.home-shortcuts .ui-icon { width:24px; height:24px; color:var(--blue); }
.home-shortcuts span { font-weight:750; }
.home-shortcuts small { display:block; font-size:.78rem; color:var(--muted); font-weight:400; margin-top:3px; }
.home-shortcuts b { margin-left:auto; color:var(--blue); }
.home-shortcuts a:hover { border-color:var(--blue); }
.next-plan { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; margin-bottom:28px; border-left:3px solid var(--blue); }
.next-plan h2 { font-size:1.5rem; }
.agenda-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 24px; }
.agenda-tabs a { display:inline-flex; min-height:44px; align-items:center; padding:10px 16px; border:1px solid var(--line); border-radius:10px; font-weight:700; color:var(--muted); }
.agenda-tabs a[aria-current] { color:var(--ink); border-color:var(--blue); background:#204382; }
.agenda-tabs a:hover { border-color:var(--blue); }
.saved-note { margin:-8px 0 22px; }
.event-state { display:flex; flex-wrap:wrap; gap:6px; }
.event-state:empty { display:none; }
.event-state .tag { margin-bottom:10px; }
.state-going { color:#b8f0d5; border-color:#3a7561; }
.state-closed { color:#ffced1; border-color:#8a4f5d; }
.event-body .availability { color:var(--blue); }
.bookmark-form { margin-top:12px; }
.bookmark { display:inline-flex; gap:6px; align-items:center; min-height:44px; border:1px solid var(--line); border-radius:8px; background:var(--panel-deep); padding:8px 12px; color:var(--muted); font-size:.85rem; font-weight:700; }
.bookmark:hover { border-color:var(--blue); }
.bookmark[aria-pressed="true"] { color:var(--blue); border-color:#4b70a9; }
.bookmark[aria-pressed="true"] svg { fill:currentColor; fill-opacity:.18; }
.detail-tools { margin-block:20px 10px; }
.calendar-note { margin-bottom:22px; max-width:65ch; }
.profile-links { margin-bottom:24px; }
.pagination { margin-top:26px; }
.discovery-filters { grid-template-columns:repeat(3,minmax(0,1fr)); }
.discovery-filters .search-field { grid-column:1/-1; }
.discovery-filters .places-choice { margin:0; align-self:center; }
.discovery-filters .filter-actions { grid-column:2/-1; justify-content:flex-end; }
.result-heading { margin-bottom:18px; }
.result-heading p { margin:0; }
.result-heading .text-link { display:inline-flex; align-items:center; gap:7px; }
button:disabled { cursor:default; opacity:.6; }
@media (max-width:800px) {
    html { scroll-padding-bottom:100px; }
    body { padding-bottom:calc(76px + env(safe-area-inset-bottom,0px)); }
    .mobile-nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); position:fixed; left:0; bottom:0; width:100%; z-index:1100; gap:2px; padding:7px max(8px,env(safe-area-inset-right,0px)) calc(7px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px)); background:#0d1420; border-top:1px solid #3a4960; box-shadow:0 -8px 28px #0004; }
    .mobile-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:56px; gap:5px; padding:4px 0; border-radius:10px; color:var(--muted); font-size:.65rem; font-weight:650; text-align:center; line-height:1.2; }
    .mobile-nav .ui-icon { width:22px; height:22px; }
    .mobile-nav a[aria-current] { color:var(--blue); background:#172640; }
    .mobile-nav .mobile-create .ui-icon { width:30px; height:30px; padding:4px; border-radius:9px; color:white; background:var(--primary); }
    .mobile-nav .mobile-unread { font-variant-numeric:tabular-nums; }
    .home-welcome { gap:22px; grid-template-columns:minmax(0,1fr) 30%; }
    .home-shortcuts a { padding:14px; gap:9px; }
    .home-shortcuts b { display:none; }
    .home-shortcuts small { font-size:.7rem; }
    .chat-compose textarea { scroll-margin-bottom:100px; }
}
@media (max-width:520px) {
    .home-welcome { grid-template-columns:1fr; gap:18px; }
    .home-welcome img { width:min(100%,340px); }
    .home-shortcuts { gap:7px; }
    .home-shortcuts a { flex-direction:column; align-items:flex-start; gap:9px; padding:13px 10px; }
    .home-shortcuts span { font-size:.85rem; }
    .home-shortcuts small { font-size:.66rem; }
    .agenda-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .agenda-tabs a { justify-content:center; padding-inline:8px; }
    .discovery-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .discovery-filters .date-field { grid-column:1/-1; }
    .discovery-filters .places-choice { grid-column:1/-1; }
    .discovery-filters .filter-actions { grid-column:1/-1; justify-content:flex-start; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; } }

@media (max-width:360px) { .discovery-filters { grid-template-columns:1fr; } }

/* 1.6: people, machines and deliberate sharing. */
.person-link { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.person-link:hover { color:var(--ink); }
.privacy-box { border:1px solid var(--line); border-radius:12px; padding:18px; margin:20px 0; min-width:0; }
.privacy-box legend { color:var(--ink); font-weight:750; padding:0 6px; }
.profile-editor { margin-left:0; }
.community-profile { display:grid; grid-template-columns:110px minmax(0,1fr); align-items:start; gap:28px; padding:clamp(22px,5vw,42px); margin-bottom:36px; }
.person-avatar { width:110px; height:110px; border-radius:24px; background:#20375b; color:var(--blue); display:grid; place-items:center; font-size:2.8rem; font-weight:850; overflow:hidden; }
.person-avatar img { width:100%; height:100%; object-fit:cover; }
.person-bio { white-space:normal; overflow-wrap:anywhere; max-width:65ch; margin:20px 0; }
.public-vehicle-card { padding:0; overflow:hidden; }
.vehicle-cover { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.vehicle-placeholder { display:grid; place-items:center; width:100%; aspect-ratio:4/3; background:linear-gradient(140deg,#182b47,#122032); color:var(--blue); }
.vehicle-placeholder svg { width:68px; height:68px; stroke-width:1; }
.vehicle-card-body { padding:20px; }
.vehicle-card-body h3 { font-size:1.4rem; }
.vehicle-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; padding:clamp(22px,5vw,38px); }
.vehicle-heading h1 { font-size:clamp(2.1rem,6vw,3.7rem); }
.vehicle-specs { display:flex; gap:8px; flex-wrap:wrap; }
.vehicle-specs .tag { margin:0; }
.vehicle-mods { margin-bottom:26px; }
.vehicle-mods p { white-space:normal; }
.public-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.public-photo-grid figure { margin:0; padding:12px; }
.public-photo-grid img { display:block; width:100%; max-height:520px; object-fit:contain; background:var(--panel-deep); border-radius:10px; }
.public-photo-grid figcaption { margin-top:12px; }
.public-photo-grid .text-link { display:inline-block; padding-top:12px; }
.photo-editor { max-width:860px; margin-top:32px; }
.photo-editor .photo-grid { margin-top:24px; }
.photo-editor .photo-grid form { display:flex; flex-wrap:wrap; gap:8px; }
.photo-editor .photo-grid p { margin:10px 0; }
.vehicle-actions { margin:14px 0 18px; }
.participants { max-width:860px; margin-top:24px; }
.participants .section-head { margin-top:0; }
.participant-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:18px; }
.participant { display:flex; align-items:center; gap:10px; min-width:0; overflow-wrap:anywhere; }
.person-initial { display:grid; place-items:center; flex:0 0 auto; width:36px; height:36px; border-radius:12px; background:#20375b; color:var(--blue); font-weight:850; }
@media(max-width:800px) { .participant-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:520px) {
    .community-profile { grid-template-columns:1fr; gap:20px; }
    .person-avatar { width:84px; height:84px; border-radius:20px; }
    .public-photo-grid { grid-template-columns:1fr; }
    .photo-editor .photo-grid { grid-template-columns:1fr; }
    .participant-grid { grid-template-columns:1fr; }
    .privacy-box { padding:14px; }
}

/* 1.7: covers and shared memories. */
.event-cover { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:var(--panel-deep); }
.detail-cover { display:block; width:100%; aspect-ratio:16/7; max-height:380px; object-fit:cover; background:var(--panel-deep); }
.album-cover-editor,.album-upload { max-width:860px; margin-bottom:24px; }
.album-cover-preview { display:block; width:100%; max-height:360px; object-fit:cover; aspect-ratio:16/7; border-radius:12px; margin:18px 0; }
.album-cover-editor form,.album-upload form { margin-top:16px; }
.album-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.album-photo { padding:0; overflow:hidden; }
.album-photo>a>img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--panel-deep); }
.album-placeholder { display:grid; place-items:center; aspect-ratio:4/3; color:var(--muted); background:var(--panel-deep); padding:24px; text-align:center; }
.album-photo-body { padding:18px; }
.album-privacy { border-top:1px solid var(--line); padding-top:15px; margin-top:14px; }
.album-privacy .field { margin-bottom:10px; }
.album-privacy .link-button { padding-left:0; }
.album-moderation { margin:14px 0; }
.album-photo-body>.text-link { display:inline-block; margin-top:12px; }
@media(max-width:800px) { .album-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:520px) { .album-grid { grid-template-columns:1fr; } .detail-cover,.album-cover-preview { aspect-ratio:16/9; } }

/* 1.8: sharing and downloadable posters. */
.sharing-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:24px; align-items:start; margin-top:30px; }
.sharing-options { display:grid; gap:22px; min-width:0; }
.share-panel { min-width:0; padding:clamp(18px,3vw,28px); }
.share-panel h2 { font-size:clamp(1.35rem,2.3vw,1.85rem); line-height:1.2; }
.share-panel label { display:block; margin-top:22px; margin-bottom:8px; font-size:.87rem; font-weight:750; }
.share-panel input[type=url] { display:block; width:100%; min-width:0; border:1px solid var(--line); border-radius:10px; background:var(--panel-deep); color:var(--text); font:inherit; padding:12px; }
.share-panel .actions { margin-top:18px; }
.share-panel [role=status] { min-height:2.7em; margin-bottom:0; }
.share-qr-panel { display:flex; flex-direction:column; gap:18px; }
.share-qr { background:#fff; padding:12px; width:fit-content; max-width:100%; border-radius:16px; }
.share-qr img { display:block; width:224px; height:auto; max-width:100%; }
.poster-preview { display:block; width:100%; height:auto; border:1px solid var(--line); border-radius:14px; margin:22px 0; background:#0b0f18; }
@media(max-width:820px) { .sharing-grid { grid-template-columns:1fr; } .poster-panel { max-width:600px; width:100%; } }

/* 1.9: reserved places and arrival control. */
.attendance-choice { margin:26px 0; border-top:1px solid var(--line); padding-top:24px; }
.attendance-choice h2 { font-size:1.5rem; }
.offer-box { border:1px solid #476ef2; background:#142341; border-radius:14px; padding:22px; margin:16px 0; }
.attendance-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:28px 0; }
.attendance-stats .card { padding:20px; }
.attendance-stats strong { display:block; color:#91aeff; font-size:2.25rem; line-height:1.3; }
.attendance-stats span { display:block; color:var(--muted); font-size:.88rem; margin-top:8px; }
.checkin-scanner,.checkin-preview,.ticket-card { max-width:860px; padding:clamp(20px,4vw,32px); margin:24px 0; }
.checkin-scanner h2,.ticket-card h2 { font-size:clamp(1.5rem,3vw,2.1rem); }
.checkin-scanner video { width:100%; max-height:400px; background:#06090e; border-radius:14px; margin-top:18px; }
.checkin-scanner video[hidden] { display:none; }
.checkin-scanner .actions { margin-top:16px; }
.checkin-scanner form { margin-top:20px; }
.checkin-preview { border-color:#476ef2; }
.checkin-roster .list-item { gap:20px; }
.ticket-card { max-width:620px; }
.ticket-card h2 { margin-top:18px; }
.ticket-qr { background:#fff; border-radius:18px; padding:14px; width:fit-content; max-width:100%; margin:26px 0; }
.ticket-qr img { display:block; width:300px; max-width:100%; height:auto; }
.ticket-renew { margin:24px 0; }
.ticket-renew summary { cursor:pointer; color:#a1bbff; }
@media(max-width:800px) { .attendance-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:520px) { .attendance-stats { gap:10px; } .attendance-stats .card { padding:16px; } .checkin-roster .list-item { align-items:start; flex-direction:column; } }
