/* Identité visuelle Mon Asso Chasse. */
:root {
  font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
  color: #18312e;
  background: #f5f4ef;
  --green: #123b3a;
  --muted: #536661;
  --border: #dbe3dd;
  --copper: #a64d2e;
  --copper-light: #eeae79;
  --surface: #fffefa;
  --soft-green: #e5efea;
  --display-font: Georgia, serif;
}
body { background: #f5f4ef; }
.sidebar { background: var(--green); color: #fcf5eb; border: 0; padding-top: 28px; }
.brand { font-size: 24px; font-weight: 750; letter-spacing: -.8px; line-height: 1; }
.brand-icon { width: 46px; height: 46px; flex: 0 0 auto; }
.sidebar .brand-icon { border: 1px solid #ffffff32; border-radius: 12px; }
.brand-bottom { color: var(--copper-light); font-size: 10px; letter-spacing: .36em; margin-top: 6px; }
.association { background: #ffffff08; border-color: #ffffff24; padding: 17px 10px; border-radius: 12px; }
.association strong { font-size: 11px; color: #faf6ed; }
.association small { color: #b7c8b9; line-height: 1.5; }
.association .avatar { background: #54705a; color: #f9f1da; }
.nav-label { color: #a0b5a6; font-size: 9px; letter-spacing: 1.8px; }
nav a { color: #c2d1c4; font-size: 13px; padding: 14px; border-radius: 9px; position: relative; transition: background .16s, color .16s; }
nav a.active { color: #fff6df; background: #ffffff12; }
nav a.active::before { content: ''; width: 3px; height: 22px; border-radius: 3px; background: var(--copper-light); position: absolute; left: 0; }
nav a.active .nav-icon { color: #e6ba7a; }
nav a:hover { background: #ffffff16; color: #fff; }
.sidebar nav { scrollbar-width: thin; scrollbar-color: #76968d var(--green); }
.nav-toggle { display: none; }
.nav-group + .nav-group { margin-top: 14px; padding-top: 10px; border-top: 1px solid #ffffff22; }
.nav-group-title { margin: 5px 12px 6px; color: #aac3b8; font-size: 10px; font-weight: 650; letter-spacing: .05em; }
.nav-group a { padding-block: 10px; }
.nav-icon { width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; }
.line-icon { display: block; width: 21px; height: 21px; flex-shrink: 0; }
.sidebar-bottom { border-color: #ffffff22; color: #e1e8d9; }
.sidebar-bottom p { color: #a9bdae; font-size: 12px; }
.status-dot { background: #ddb879; box-shadow: 0 0 0 4px #ddb87915; }
.topbar { background: #fbfaf5cc; border-color: #e6e2d9; font-size: 12px; backdrop-filter: blur(12px); }
.season { background: #fffdf7; border-color: #ded9c9; padding: 9px 14px; color: #54644f; }
.season::before { content: ''; display: inline-block; width: 6px; height: 6px; background: #738459; border-radius: 50%; margin-right: 8px; }
.profile { background: #e9d7bf; color: #765339; border: 3px solid #fff; width: 39px; height: 39px; }
main { padding-top: 35px; }
.eyebrow { color: #98613b; font-size: 10px; letter-spacing: 2px; }
h1 { font-family: var(--display-font); font-size: 35px; color: #123b3a; letter-spacing: -.9px; line-height: 1.2; }
h2 { font-weight: 650; letter-spacing: -.3px; }
.intro { font-size: 13px; color: var(--muted); }
.heading { margin-bottom: 27px; }
.button { background: var(--copper); border-radius: 9px; padding: 13px 18px; font-size: 12px; box-shadow: 0 3px 7px #85462414; transition: background .16s, box-shadow .16s; min-height: 42px; }
.button:hover { background: #843b24; box-shadow: 0 4px 12px #85462426; }
.button.secondary { background: #fffdf9; color: #315444; border-color: #dedfd3; box-shadow: none; }
.button.secondary:hover { background: #eef1e5; }
.button.small { min-height: 36px; }
.hero { background: #244a3a; border: 1px solid #365642; border-radius: 16px; padding: 32px; min-height: 194px; isolation: isolate; box-shadow: 0 8px 24px #203d3010; }
.hero::before { content: ''; position: absolute; inset: 0; background: url('/territoire-aube.webp') center 54% / cover no-repeat; z-index: -2; }
.hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #102f2fee 0%, #102f2fbf 49%, #102f2f45 100%); opacity: 1; z-index: -1; }
.hero .eyebrow { color: #e2c395; font-size: 10px; }
.hero h2 { font-size: 29px; max-width: 430px; font-family: var(--display-font); letter-spacing: -.4px; }
.hero p { font-size: 13px; color: #e4e9db; }
.hero .button { background: #f4e7ce; color: #254432; border: 1px solid #fff5df88; box-shadow: 0 4px 15px #102d3225; }
.hero .button:hover { background: #fff2d9; }
.stats { margin: 22px 0 27px; gap: 16px; }
.stat { border: 1px solid var(--border); border-radius: 13px; background: var(--surface); padding: 19px 20px; box-shadow: 0 3px 14px #2d412a03; position: relative; overflow: hidden; }
.stat::after { content: ''; position: absolute; left: 20px; bottom: 0; width: 28px; height: 3px; border-radius: 3px 3px 0 0; background: #6c825b; }
.stat:nth-child(2)::after { background: #b6734b; }
.stat:nth-child(3)::after { background: #ab9558; }
.stat:nth-child(4)::after { background: #78918a; }
.stat-top { color: var(--muted); font-size: 12px; gap: 6px; }
.stat-icon { color: #50715b; background: #edf1e6; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; }
.stat:nth-child(2) .stat-icon { color: #9c603c; background: #f6eadd; }
.stat:nth-child(3) .stat-icon { color: #8d743e; background: #f4efdf; }
.stat:nth-child(4) .stat-icon { color: #547b70; background: #eaf0eb; }
.stat-icon .line-icon { width: 18px; height: 18px; }
.stat strong { font-size: 32px; font-weight: 600; letter-spacing: -1px; margin: 9px 0 6px; color: #2b4737; font-variant-numeric: tabular-nums; }
.stat small { font-size: 11px; color: #6c746a; }
.panel { background: var(--surface); border-color: var(--border); border-radius: 14px; box-shadow: 0 4px 20px #233c2804; }
main:has(> .hero) > .settings { margin-bottom: 16px; }
.panel-heading { padding: 22px 24px; border-color: #eee9de; }
.panel-heading h2 { font-size: 16px; color: #2b4638; }
.text-link { font-size: 12px; color: #8d512e; font-weight: 600; }
.text-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.event-row { border-color: #eeeae1; padding: 23px 24px; }
.date-box { background: var(--soft-green); color: #40553a; border: 1px solid #e1e7d5; border-radius: 10px; min-width: 57px; padding: 10px 11px; }
.date-box strong { font-weight: 600; font-size: 24px; }
.date-box small { color: #5c6b4a; letter-spacing: .7px; font-weight: 600; font-size: 10px; }
.event-info h3 { font-size: 14px; font-weight: 600; color: #294b3c; }
.event-info p { font-size: 12px; color: #677366; }
.badge { color: #42603c; background: var(--soft-green); border-radius: 6px; font-size: 11px; padding: 6px 9px; }
.badge.amber { color: #8d512e; background: #f7e9d8; }
.note { padding: 19px 24px; border-color: #eeeae1; }
.note strong { font-size: 13px; font-weight: 600; }
.note p { font-size: 12px; color: #667064; margin: 8px 0; }
.section-title h2 { font-size: 17px; }
.quick-card { background: var(--surface); border-color: var(--border); border-radius: 12px; padding: 22px; position: relative; transition: border-color .16s, box-shadow .16s; }
.quick-card::after { content: '↗'; position: absolute; top: 22px; right: 20px; color: #99764f; font-size: 18px; }
.quick-card:hover { border-color: #bcbf9e; box-shadow: 0 5px 18px #263c2710; }
.quick-card>span { display: grid; place-items: center; background: #eaf0e3; color: #4b6a48; width: 38px; height: 38px; border-radius: 10px; margin-bottom: 15px; }
.quick-card:nth-child(2)>span { background: #f4ead8; color: #9b6a39; }
.quick-card:nth-child(3)>span { background: #e7eeea; color: #57776b; }
.quick-card strong { font-size: 13px; font-weight: 600; }
.quick-card p { font-size: 12px; color: #687264; margin: 8px 0 0; }
.search, .field input, .field select, .field textarea { background: #fffefa; border-color: #c4d2ca; border-radius: 9px; min-height: 44px; }
.search::placeholder { color: #73796f; }
table { font-size: 13px; }
th { background: #edf2ee; color: #65705f; font-size: 11px; }
td, th { border-color: #eee9df; }
tbody tr:hover { background: #f4f7f4; }
.document-card p { color: #616e61; font-size: 13px; }
.notice { border-color: #e8d9bc; background: #fbf2e2; color: #7d5a32; border-radius: 10px; }
dialog { background: var(--surface); border-color: var(--border); border-radius: 18px; padding: 28px; }
dialog::backdrop { background: #143b3180; backdrop-filter: blur(5px); }
.mail-preview-text { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 250px; overflow: auto; padding: 16px; background: #f1f3e9; border-radius: 10px; font: 13px/1.7 Arial, sans-serif; }
.mail-choice { display: flex; align-items: flex-start; gap: 9px; font-size: 12px; line-height: 1.6; margin-top: 20px; }
#mail-dialog { width: 600px; }
.hunt-upload-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: 16px; margin: 22px 0; }
.hunt-upload { padding: 20px; }
.hunt-upload input[type=file] { max-width: 100%; font-size: 11px; }
.hunt-file-link { display: block; margin: 8px 0; }
.hunt-card { padding: 28px; max-width: 550px; border-left: 5px solid #9d542e; }
.hunt-card h2 { margin: 18px 0; }
.hunt-card small { overflow-wrap: anywhere; }
.hunt-map { position: relative; margin: 20px 0; border: 1px solid var(--border); background: #fff; }
.hunt-map-image { display: block; width: 100%; border: 0; padding: 0; background: transparent; }
.hunt-map-image img { display: block; width: 100%; height: auto; }
.hunt-pin { position: absolute; transform: translate(-50%,-50%); min-width: 34px; min-height: 34px; border-radius: 18px; border: 2px solid white; box-shadow: 0 2px 8px #0005; background: #244b39; color: white; padding: 6px; font-size: 11px; }
.hunt-pin:disabled { opacity: 1; cursor: default; }
.hunt-pin.assigned { background: #a65b30; outline: 3px solid #dfb776; }
.season-selector { max-width: 220px; }
.hunt-members-table { margin-top: 22px; }
.hunt-roster { overflow: auto; }
.hunt-actions { display: flex; flex-wrap: wrap; gap: 8px; }
#hunt-battue-dialog { width: 850px; }
.dialog-heading h2 { font-family: var(--display-font); font-size: 23px; font-weight: 400; }
.field { font-size: 13px; font-weight: 600; color: #435541; }
.field input, .field select, .field textarea { font-weight: 400; }
.pin { background: #315844; width: 42px; height: 42px; }
.pin.selected { background: var(--copper); }
.map-label { color: #42593d; border: 1px solid #e1e5d3; }
footer { color: #6e7769; border-color: #e2ded2; font-size: 11px; }
#toast { background: #244d3d; border: 1px solid #91a385; max-width: calc(100% - 32px); line-height: 1.6; }
@media(min-width:1500px) { .hero { padding: 38px; } }
@media(max-width:1100px) { .stat { padding: 15px; }.stat-top { font-size: 11px; }.stat-icon { width: 28px; height: 28px; }.hero h2 { max-width: 340px; font-size: 26px; } }
@media(max-width:720px) {
  .sidebar { padding: 18px 15px 11px; background: var(--green); }
  .brand { font-size: 21px; }.brand-icon { width: 38px; height: 38px; }
  .brand-bottom { font-size: 9px; letter-spacing: 4px; margin-top: 4px; }
  nav { gap: 5px; padding-bottom: 3px; scrollbar-width: thin; scrollbar-color: #73917c var(--green); }
  nav a { padding: 11px 12px; font-size: 12px; min-height: 42px; }
  nav a.active::before { display: none; }
  .nav-icon, .line-icon { width: 18px; height: 18px; }
  .topbar { height: 59px; }.season { font-size: 11px; }
  main { padding: 26px 18px; }h1 { font-size: 29px; }.heading { margin-bottom: 24px; }
  .hero { padding: 25px; min-height: 240px; }.hero::before { opacity: .5; background-position: 70% center; }.hero::after { background: linear-gradient(90deg,#102f2fee,#102f2f70); }
  .hero h2 { font-size: 26px; max-width: 100%; }.hero .button { margin-top: 10px; }
  .stat { padding: 16px; }.stat-top { font-size: 11px; }.stat strong { font-size: 29px; }.stat small { font-size: 10px; line-height: 1.6; display: block; }
  .panel-heading { padding: 20px 17px; }.panel-heading h2 { font-size: 14px; }.panel-heading .text-link { font-size: 11px; }
  .event-row { padding: 20px 17px; }.event-info h3 { font-size: 13px; }.event-info p { font-size: 11px; }
  .quick-card { padding: 18px; }.quick-card>span { margin: 0 14px 12px 0; }.quick-card strong { padding-right: 20px; display: block; }.quick-card p { margin-top: 6px; }
  .button { min-height: 44px; }.event-card { padding: 20px; }footer { font-size: 10px; }
}
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { transition: none !important; } }
.connection-banner { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 18px; background: #e8eddf; border: 1px solid #d9e0ca; border-radius: 12px; font-size: 12px; line-height: 1.7; margin-bottom: 28px; }
.connection-banner strong { display: block; color: #31533c; }
#account-controls { display: flex; align-items: center; gap: 12px; }
.account-link { border: 0; background: none; color: #53694f; padding: 10px 0; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.auth-tabs { display: flex; gap: 5px; flex-wrap: wrap; margin: 20px 0; background: #eeefe4; padding: 5px; border-radius: 10px; }
.auth-tabs button { border: 0; padding: 10px 8px; flex: 1; background: transparent; border-radius: 7px; color: #546448; font-size: 11px; white-space: nowrap; }
.auth-tabs .selected { background: #fffefa; color: #843b24; box-shadow: 0 2px 8px #243f3010; font-weight: 600; }
.auth-intro, .auth-footnote { font-size: 12px; color: #66725e; line-height: 1.8; }
.auth-footnote { margin: 20px 0 0; font-size: 11px; }
#auth-submit { width: 100%; margin-top: 8px; }
.participants { font-size: 12px; color: #547055; line-height: 1.7; overflow-wrap: anywhere; }
.account-settings { margin-top: 22px; }
.association strong { overflow-wrap: anywhere; }.association>div { min-width: 0; }
button:disabled { opacity: .6; cursor: wait; }
@media(max-width:720px) { .connection-banner { align-items: flex-start; flex-direction: column; padding: 16px; }.topbar>div { gap: 8px; }.topbar .season { display: none; }#account-controls { flex: 1; }.auth-tabs { gap: 0; }.auth-tabs button { font-size: 10px; padding: 10px 6px; } }
.setup-banner { display:flex; align-items:center; justify-content:space-between; gap:16px; border:1px solid #e3d1b5; background:#fbf0df; padding:13px 18px; border-radius:12px; margin-bottom:16px; font-size:12px; }
.platform-form { max-width:none; margin-bottom:28px; }.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 22px; }.table-detail { display:inline-block; color:#677264; font-size:11px; margin-top:7px; }.governance-note { margin-top:22px; }.waiting-title { margin-top:22px; line-height:1.6; }.invitation-result { padding:20px; margin-top:22px; border:1px solid #d5dfca; border-radius:12px; background:#f1f5e9; }.invitation-result input { font-family:Consolas,monospace; font-size:12px; }.table-wrap td .button { margin:3px; }
@media(max-width:720px) { .field-grid { grid-template-columns:1fr; gap:0; }.setup-banner { align-items:flex-start; flex-direction:column; }.platform-form { padding:20px; }.invitation-result { padding:14px; } }
.admin-context { border:1px solid #d5bc94; background:#f8edda; border-left:4px solid var(--copper); display:flex; justify-content:space-between; gap:18px; align-items:center; padding:18px 20px; border-radius:10px; margin-bottom:28px; }
.admin-context strong { display:block; font-size:17px; margin:7px 0; color:#58402a; }.admin-context span:not(.eyebrow) { font-size:12px; color:#80694e; }.document-card>.button { margin:4px; }.sidebar nav { overflow-y:auto; }.sidebar { overflow-y:auto; }.table-wrap small { color:#697463; overflow-wrap:anywhere; }
@media(max-width:720px) { .admin-context { align-items:flex-start; flex-direction:column; padding:16px; }.sidebar nav { overflow-y:hidden; } }

.mobile-install-link{margin:12px 24px 24px;align-self:flex-start}.mobile-install-link[hidden]{display:none}

.public-welcome{max-width:760px}.public-actions{display:flex;gap:12px;flex-wrap:wrap}.public-setup{margin-top:22px}.profile[hidden]{display:none}
.platform-team-entry{display:flex;gap:24px;align-items:center;justify-content:space-between;max-width:none;margin-bottom:24px}.platform-team-entry>div{max-width:660px}.platform-team-entry .button{flex-shrink:0}#platform-team-dialog{width:900px}.platform-team-section{margin-top:28px;padding-top:20px;border-top:1px solid var(--border)}#platform-team-dialog table{font-size:12px}#platform-team-dialog td{overflow-wrap:anywhere}#platform-team-dialog .notice p{line-height:1.7}.auth-tabs[hidden]{display:none}
@media(max-width:720px){.platform-team-entry{align-items:flex-start;flex-direction:column;gap:8px}#platform-team-dialog{padding:18px}.platform-team-entry .button{width:100%}}

/* Public welcome: nature photography and short, non-repeating motion. */
body:has(.landing-home) { --public-gutter: max(24px, calc((100vw - 1320px) / 2)); }
body:has(.landing-home) .sidebar {
  position: absolute;
  inset: 0 auto auto var(--public-gutter);
  z-index: 1;
  width: auto;
  height: 76px;
  padding: 0;
  justify-content: center;
  overflow: visible;
  background: transparent;
  color: var(--green);
}
body:has(.landing-home) .sidebar .brand { padding: 0; }
body:has(.landing-home) .sidebar .brand-bottom { color: var(--copper); }
body:has(.landing-home) .sidebar > :not(.brand),
body:has(.landing-home) .topbar > span,
body:has(.landing-home) .season { display: none; }
body:has(.landing-home) .shell { margin: 0; }
body:has(.landing-home) .topbar {
  height: 76px;
  justify-content: flex-end;
  padding-inline: var(--public-gutter);
  background: var(--surface);
}
body:has(.landing-home) .topbar > div { width: auto; }
body:has(.landing-home) main { max-width: none; padding: 28px var(--public-gutter) 36px; }
body:has(.landing-home) footer { padding-inline: var(--public-gutter); }
body:has(.landing-home) .mobile-install-link { margin-inline: var(--public-gutter); }

.landing-home { max-width: 1320px; margin: 0 auto; }
.landing-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(470px, 44vw, 650px);
  border-radius: 24px;
  background: #102f2f;
  box-shadow: 0 18px 44px #123b3a22;
  display: flex;
  align-items: center;
}
.landing-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 65% 50%;
  z-index: -3;
  animation: landing-photo-in 2.8s ease-out both;
}
.landing-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(90deg,#0d2929f2 0%,#0d2929d9 35%,#0d29295c 68%,#0d292916 100%);
}
.landing-content {
  width: 100%;
  max-width: 765px;
  padding: 64px clamp(30px, 5vw, 76px) 100px;
  animation: landing-rise .55s ease-out both;
}
.landing-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #ffcfaa;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.65;
}
.landing-kicker > span { font-size: 19px; font-weight: 400; }
.landing-content h1 {
  font: 400 clamp(38px,5.1vw,76px)/1.02 var(--display-font);
  color: #fffaf0;
  letter-spacing: -.05em;
  margin: 22px 0;
}
.landing-content h1 em { color: #ffd0a9; }
.landing-content > p { font-size: 16px; line-height: 1.65; color: #eff1e9; margin: 0 0 28px; }
.landing-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.landing-actions .button { min-height: 48px; padding: 12px 19px; font-size: 13px; }
.landing-actions .landing-primary { background: var(--copper-light); color: #2c211a; gap: 18px; }
.landing-actions .landing-primary:hover { background: #ffc495; }
.landing-actions .landing-secondary { background: #102f2f80; color: #fffaf0; border: 1px solid #fffaf0aa; }
.landing-actions .landing-secondary:hover { background: #102f2f; }
.landing-private { margin-top: 18px; display: flex; gap: 8px; align-items: center; color: #eff1e9; font-size: 11px; line-height: 1.55; }
.landing-private svg { width: 14px; height: 14px; flex-shrink: 0; }
.landing-photo-note {
  position: absolute;
  bottom: 30px;
  left: clamp(30px, 5vw, 76px);
  color: #f2e2d0;
  font: italic 13px var(--display-font);
  display: flex;
  align-items: center;
  gap: 10px;
}
.landing-photo-line { width: 28px; height: 1px; background: var(--copper-light); }
.landing-tools{margin:38px 0 26px}
.landing-section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 22px}
.landing-section-heading h2{font-family:var(--display-font);font-weight:400;font-size:26px;line-height:1.3;color:#284c3c;margin:9px 0 0}
.landing-season-tag{border:1px solid #d7dfd0;border-radius:30px;padding:9px 14px;white-space:nowrap;font-size:10px;color:#566d56}
.landing-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.landing-feature{position:relative;display:flex;flex-direction:column;gap:20px;padding:25px 24px 27px;border:1px solid #e1e1d4;border-radius:14px;background:var(--surface);transition:transform .22s,box-shadow .22s;animation:landing-rise .7s .12s ease-out both}
.landing-feature:nth-child(2){animation-delay:.22s}.landing-feature:nth-child(3){animation-delay:.32s}
.landing-feature:hover{transform:translateY(-4px);box-shadow:0 12px 24px #27432e0b}
.landing-feature-icon{width:40px;height:40px;border-radius:12px;background:var(--soft-green);color:#3d654e;display:grid;place-items:center}
.landing-feature:nth-child(2) .landing-feature-icon{background:#f6e8da;color:#a66f44}
.landing-feature:nth-child(3) .landing-feature-icon{background:#f1eddc;color:#8c8052}
.landing-feature-number{position:absolute;right:22px;top:25px;color:#6b7a72;font:italic 18px var(--display-font)}
.landing-feature h3{font-size:14px;line-height:1.5;margin:0 0 9px;color:#2c493b;font-weight:650}
.landing-feature p{font-size:12px;line-height:1.8;color:#6b756a;margin:0}
.landing-invitation{display:flex;align-items:center;gap:20px;background:var(--soft-green);border:1px solid var(--border);border-radius:14px;padding:24px 27px;animation:landing-rise .8s .4s ease-out both}
.landing-invite-icon{display:grid;place-items:center;border:1px solid #bbcdb3;border-radius:50%;width:45px;height:45px;flex-shrink:0;color:#47704e;font-size:22px}
.landing-invitation>div{flex:1}.landing-invitation h2{font-size:16px;margin:0 0 6px;color:#34513d}
.landing-invitation p{font-size:12px;line-height:1.7;margin:0;color:#63725f}
.landing-invitation>.button{flex-shrink:0;display:flex;gap:16px;align-items:center}
.landing-contact { margin-top: 14px; background: var(--surface); }
@keyframes landing-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes landing-photo-in{from{transform:scale(1.055)}to{transform:scale(1)}}
@media(max-width:1100px){.landing-content{max-width:660px}.landing-feature{padding:22px 18px}.landing-section-heading h2{font-size:23px}.landing-season-tag{display:none}}
@media(max-width:720px){
 .sidebar nav:has(.nav-groups) { display: block; }
 .nav-toggle {
   display: inline-flex; align-items: center; justify-content: space-between; gap: 12px;
   min-height: 40px; padding: 7px 10px; margin: 0 0 5px;
   border: 1px solid #ffffff38; border-radius: 8px; background: #ffffff0a;
   color: #fffaf0; font-size: 12px; font-weight: 650;
 }
 .nav-toggle::after { content: '⌄'; color: var(--copper-light); }
 .nav-toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
 .nav-groups { display: flex; gap: 5px; overflow-x: auto; scrollbar-width: thin; }
 .nav-group + .nav-group { margin: 0; padding: 0; border: 0; }
 .nav-group { display: none; }
 .nav-group-current { display: contents; }
 .nav-group-title { display: none; }
 .nav-toggle[aria-expanded="true"] + .nav-groups { display: grid; gap: 6px; overflow: visible; }
 .nav-toggle[aria-expanded="true"] + .nav-groups .nav-group { display: block; border-top: 1px solid #ffffff22; padding-block: 7px; }
 .nav-toggle[aria-expanded="true"] + .nav-groups .nav-group-title { display: block; }
 body:has(.landing-home) { --public-gutter: 16px; }
 body:has(.landing-home) .topbar, body:has(.landing-home) .sidebar { height: 68px; }
 body:has(.landing-home) main { padding-top: 15px; }
 .landing-hero { --photo-height: clamp(310px,60vw,390px); border-radius: 18px; align-items: flex-end; }
 .landing-photo { height: var(--photo-height); object-position: 98% center; }
 .landing-shade { background: linear-gradient(180deg,#102f2f08 0,#102f2f28 100px,#102f2fd1 223px,#102f2f var(--photo-height)); }
 .landing-content{padding:clamp(140px,43vw,240px) 22px 65px;max-width:none}.landing-kicker{font-size:8px;letter-spacing:1.3px;max-width:270px}.landing-kicker>span{font-size:17px}
 .landing-content h1{font-size:clamp(32px,8vw,48px);letter-spacing:-.035em;margin:17px 0}.landing-content>p{font-size:13px;line-height:1.8;margin-bottom:23px}.landing-desktop-break{display:none}
 .landing-actions{gap:10px;align-items:stretch;flex-direction:column}.landing-actions .button{width:100%;min-height:47px}.landing-private{font-size:10px;margin-top:17px;align-items:flex-start}
 .landing-photo-note{left:22px;bottom:25px;font-size:12px}
 .landing-tools{margin-top:29px}.landing-section-heading h2{font-size:25px;max-width:320px}.landing-section-heading .eyebrow{font-size:8px;letter-spacing:1.7px}
 .landing-feature-grid{grid-template-columns:1fr;gap:11px}.landing-feature{padding:20px;flex-direction:row;gap:16px}.landing-feature-icon{flex-shrink:0}.landing-feature h3{padding-right:15px;font-size:13px}.landing-feature-number{font-size:15px;top:17px;right:13px}.landing-feature p{font-size:12px}
 .landing-invitation{padding:22px;flex-wrap:wrap;gap:14px}.landing-invite-icon{width:35px;height:35px}.landing-invitation>div{flex-basis:calc(100% - 50px)}.landing-invitation>.button{width:100%;justify-content:center}.landing-invitation h2{font-size:15px}
}
@media(prefers-reduced-motion:reduce){.landing-photo,.landing-content,.landing-feature,.landing-invitation{animation:none!important}.landing-feature,.landing-actions .button{transition:none}.landing-feature:hover,.landing-actions .button:hover{transform:none}}

.admin-scope-picker{margin-bottom:22px}.admin-scope-picker .field{max-width:560px}.admin-direct-links{display:flex;flex-wrap:wrap;gap:8px;min-width:220px}#association-billing-form{margin-bottom:0}#association-billing-form textarea{min-height:70px}

.legal-checks{border:1px solid #d5ddd6;border-radius:12px;padding:18px;margin:20px 0}.legal-checks legend{font-weight:700;padding:0 6px}.legal-checks label,.legal-publish-check{display:flex;align-items:flex-start;gap:12px;margin:16px 0;font-size:14px;line-height:1.6}.legal-checks input[type=checkbox],.legal-publish-check input{width:18px;height:18px;flex:0 0 18px;margin-top:3px;accent-color:#203f32}.legal-document-section{border-bottom:1px solid #d5ddd6;padding:16px 0}.legal-document-section summary,.legal-owner-settings>summary{cursor:pointer;font-weight:700}.legal-document-section p{white-space:pre-line;font-size:14px;line-height:1.8}.legal-document-section h3{font-size:15px;margin-top:20px}.legal-owner-settings{margin-bottom:22px}.legal-owner-settings textarea{min-height:130px}.legal-footer-links{display:block;margin-top:10px;line-height:1.6}.legal-footer-links a{text-decoration:underline}#legal-preview{margin-top:20px}#registration-legal .legal-checks{font-size:13px}

/* Invitation email preview, scoped to the owner mail dialog. */
#gmail-invitation-dialog{width:min(760px,calc(100vw - 32px));max-height:90dvh;overflow:auto}#gmail-invitation-dialog iframe{display:block}#gmail-created-invitation{margin-top:18px}

.management-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.management-message{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;padding:18px;background:#f4f2eb;border-radius:10px}#mass-mail-recipients{max-height:300px;overflow:auto;margin:14px 0}#mass-mail-recipients label{display:block;padding:8px}
