/* Hidden Valley Airpark — Option 1: Airpark as Place / Portal as Utility */
:root {
  --pine-950: #10281d;
  --pine-900: #173c2b;
  --pine-800: #205039;
  --pine-700: #2d674a;
  --pine-600: #3f7b5c;
  --pine-100: #e5efe8;
  --pine-050: #f1f6f2;
  --ink: #17211c;
  --ink-soft: #33423a;
  --muted: #657169;
  --muted-strong: #4c5a52;
  --paper: #f4f2eb;
  --paper-deep: #eae6db;
  --surface: #fffefa;
  --surface-soft: #f8f8f3;
  --surface-cool: #f3f6f3;
  --line: #d9ddd6;
  --line-strong: #b9c2ba;
  --sky: #dce8ec;
  --sky-deep: #a7c1ca;
  --gold: #b88a39;
  --gold-soft: #f6ecd5;
  --danger: #a53a32;
  --danger-dark: #7d2924;
  --danger-soft: #fbe9e6;
  --notice: #8a651e;
  --notice-soft: #fff4d8;
  --success: #2c6748;
  --success-soft: #e5f2e9;
  --shadow-sm: 0 1px 2px rgba(16, 40, 29, .05), 0 5px 16px rgba(16, 40, 29, .045);
  --shadow-md: 0 18px 45px rgba(16, 40, 29, .10);
  --shadow-lg: 0 30px 80px rgba(16, 40, 29, .14);
  --radius-sm: .45rem;
  --radius: .8rem;
  --radius-lg: 1.35rem;
  --display-font: ui-serif, Georgia, Cambria, "Times New Roman", serif;
  --ui-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --content: 76rem;
  --reading: 46rem;
  --transition: 160ms ease;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  display: flex;
  flex-direction: column;
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--ui-font);
  font-size: 1rem;
  line-height: 1.58;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.portal-shell { background: #f1f3ef; }
img, svg { max-width: 100%; }
a { color: var(--pine-800); text-underline-offset: .18em; }
a:hover { color: var(--pine-950); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #3a7fa0; outline-offset: 3px; }
::selection { color: #fff; background: var(--pine-700); }

.skip-link {
  position: fixed;
  z-index: 1000;
  top: .75rem;
  left: .75rem;
  transform: translateY(-160%);
  padding: .65rem .9rem;
  border-radius: var(--radius-sm);
  color: #fff;
  background: var(--pine-950);
  font-weight: 800;
  text-decoration: none;
}
.skip-link:focus { transform: translateY(0); }

/* Global shell */
.messages { border-bottom: 1px solid #bad2c1; background: var(--success-soft); }
.messages-inner { width: min(var(--content), calc(100% - 2rem)); margin: auto; padding: .65rem 0; }
.messages p { margin: 0; color: var(--pine-950); font-weight: 700; }
.critical-announcement-banner { position: relative; z-index: 50; width: 100%; overflow: hidden; background: #a51d20; color: #fff; box-shadow: 0 1px 0 rgba(72, 5, 7, .35); }
.critical-announcement-viewport { width: 100%; }
.critical-announcement-track { display: flex; width: max-content; min-width: 100%; }
.critical-announcement-group { display: flex; flex: none; align-items: center; justify-content: center; gap: 1.5rem; min-width: 100%; padding: .62rem max(1rem, calc((100vw - var(--content)) / 2)); white-space: normal; }
.critical-announcement-banner.ticker-enabled .critical-announcement-viewport { overflow: hidden; }
.critical-announcement-banner.ticker-enabled .critical-announcement-group { white-space: nowrap; }
.critical-announcement-group a { color: #fff; font-weight: 650; text-decoration: none; }
.critical-announcement-group a:hover, .critical-announcement-group a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: .18em; }
.critical-announcement-group strong { text-transform: uppercase; letter-spacing: .08em; font-size: .78em; }
.critical-announcement-separator { color: #f2b8b8; }
.critical-announcement-track.is-scrolling { animation: critical-announcement-ticker var(--ticker-duration, 22s) linear infinite; }
.critical-announcement-banner:hover .critical-announcement-track, .critical-announcement-banner:focus-within .critical-announcement-track { animation-play-state: paused; }
@keyframes critical-announcement-ticker { to { transform: translateX(calc(-1 * var(--ticker-distance))); } }
.announcement-type-label { display: inline-block; margin-bottom: .45rem; color: var(--pine-700); font-size: .7rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.announcement-placement-preview, .announcement-placement-summary, .announcement-source-note { margin: .8rem 0 1rem; padding: .75rem .9rem; border-left: 4px solid var(--sky-deep); border-radius: .35rem; background: var(--surface-cool); color: var(--muted-strong); }
.announcement-editor #id_audience_helptext { white-space: pre-line; }
.announcement-editor-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; }
.announcement-preview-dialog { width: min(48rem,calc(100% - 2rem)); }
.announcement-preview-dialog .management-dialog-form { gap: .85rem; }
.announcement-preview-dialog .dialog-actions form { display: block; margin: 0; }
.announcement-preview-card h3 { margin: .45rem 0 .65rem; }
.announcement-preview-card .announcement-body p { white-space: normal; }
.announcement-preview-facts { display: grid; grid-template-columns: 7rem minmax(0,1fr); gap: .35rem .8rem; margin: 0; }
.announcement-preview-facts dt { font-weight: 700; color: var(--pine-900); }
.announcement-preview-facts dd { margin: 0; overflow-wrap: anywhere; }
@media(max-width:480px) {
  .announcement-editor-actions, .announcement-preview-dialog .dialog-actions { align-items: stretch; flex-direction: column; }
  .announcement-editor-actions .button, .announcement-preview-dialog .dialog-actions form, .announcement-preview-dialog .dialog-actions .button { width: 100%; }
  .announcement-preview-facts { grid-template-columns: 1fr; gap: .1rem; }
  .announcement-preview-facts dd + dt { margin-top: .4rem; }
}

.announcement-placement-preview:empty { display: none; }
.airfield-notices { margin-top: clamp(2rem,5vw,4rem); }
.airfield-notice-list { display: grid; gap: .8rem; }
.airfield-notice-card { margin: 0; }
.airfield-notice-card .meta { margin-top: .7rem; }
.airfield-notice-disclaimer { margin-bottom: 1rem; }
.site-header {
  position: sticky;
  z-index: 50;
  top: 0;
  border-bottom: 1px solid rgba(23, 60, 43, .13);
  background: rgba(255, 254, 250, .94);
  box-shadow: 0 1px 0 rgba(255,255,255,.75);
  backdrop-filter: blur(16px) saturate(135%);
}
.portal-shell .site-header { background: rgba(248, 250, 247, .96); }
.site-header-inner {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 3vw, 2.5rem);
  width: min(88rem, calc(100% - clamp(2rem, 6vw, 6rem)));
  min-height: 4.75rem;
  margin: auto;
}
.brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--ink); text-decoration: none; }
.brand:hover { color: var(--ink); }
.brand-mark {
  position: relative;
  display: grid;
  place-items: center;
  width: 2.45rem;
  height: 2.45rem;
  overflow: hidden;
  border-radius: 50%;
  background: linear-gradient(160deg, var(--sky) 0 47%, var(--pine-700) 48% 100%);
  box-shadow: inset 0 0 0 1px rgba(16,40,29,.12);
}
.brand-mark::before {
  position: absolute;
  bottom: -.4rem;
  left: 50%;
  width: .42rem;
  height: 2rem;
  transform: translateX(-50%) perspective(40px) rotateX(15deg);
  background: #d9ddd7;
  content: "";
  clip-path: polygon(38% 0, 62% 0, 100% 100%, 0 100%);
}
.brand-mark span::before, .brand-mark span::after {
  position: absolute;
  left: calc(50% - 1px);
  width: 2px;
  height: .35rem;
  background: #fff;
  content: "";
}
.brand-mark span::before { top: 1.2rem; }
.brand-mark span::after { top: 1.75rem; }
.brand-copy { display: grid; line-height: 1; }
.brand-copy strong { font-family: var(--display-font); font-size: 1.16rem; letter-spacing: -.01em; }
.brand-copy small { margin-top: .25rem; color: var(--pine-700); font-size: .66rem; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }
.desktop-nav { display: flex; align-items: center; gap: .15rem; margin-left: auto; }
.desktop-nav a, .link-button {
  display: inline-flex;
  align-items: center;
  min-height: 2.65rem;
  padding: .52rem .7rem;
  border: 0;
  border-radius: .45rem;
  color: var(--ink-soft);
  background: transparent;
  font: inherit;
  font-size: .88rem;
  font-weight: 720;
  text-decoration: none;
  cursor: pointer;
  transition: color var(--transition), background var(--transition);
}
.desktop-nav a:hover, .desktop-nav .link-button:hover, .desktop-nav a[aria-current="page"] { color: var(--pine-950); background: var(--pine-050); }
.desktop-nav a[aria-current="page"] { box-shadow: inset 0 -2px var(--pine-700); }
.desktop-nav form { margin: 0; }
.desktop-nav .profile-nav-link { margin-left: .35rem; }
.desktop-nav .nav-login { margin-left: .45rem; padding-inline: .9rem; color: #fff; background: var(--pine-800); }
.desktop-nav .nav-login:hover { color: #fff; background: var(--pine-950); }
.mobile-nav { display: none; margin-left: auto; }
.site-main {
  flex: 1;
  width: min(var(--content), calc(100% - clamp(2rem, 7vw, 6rem)));
  margin: 0 auto;
  padding: clamp(2.5rem, 5vw, 5.5rem) 0 clamp(4rem, 8vw, 7rem);
}
.portal-shell .site-main { padding-top: clamp(2rem, 4vw, 3.75rem); }
.site-footer { border-top: 1px solid rgba(23,60,43,.12); background: var(--pine-950); color: #dce8df; }
.site-footer-inner {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  width: min(var(--content), calc(100% - clamp(2rem, 7vw, 6rem)));
  margin: auto;
  padding: 2.35rem 0;
}
.site-footer-inner div { display: grid; gap: .15rem; }
.site-footer strong { color: #fff; font-family: var(--display-font); font-size: 1.15rem; }
.site-footer span, .site-footer p { margin: 0; color: #afc3b5; font-size: .82rem; }

/* Typography and content rhythm */
h1, h2, h3, h4 { color: var(--ink); font-family: var(--display-font); font-weight: 680; letter-spacing: -.025em; }
h1 { margin: .18rem 0 1rem; font-size: clamp(2.55rem, 6vw, 5rem); line-height: .98; }
h2 { margin: .2rem 0 .75rem; font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.08; }
h3 { margin: .2rem 0 .6rem; font-size: 1.28rem; line-height: 1.2; }
h4 { margin: 1.15rem 0 .45rem; font-family: var(--ui-font); font-size: .88rem; letter-spacing: .02em; text-transform: uppercase; }
p { margin: 0 0 1rem; }
ul, ol { padding-left: 1.25rem; }
.eyebrow {
  margin: 0 0 .58rem;
  color: var(--pine-700);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .16em;
  line-height: 1.35;
  text-transform: uppercase;
}
.lede { max-width: 44rem; margin: 0; color: var(--muted-strong); font-size: clamp(1.12rem, 2.2vw, 1.38rem); line-height: 1.52; }
.muted-copy, .meta { color: var(--muted); }
.meta { font-size: .86rem; }
.text-link { color: var(--pine-800); font-weight: 780; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.page-heading { max-width: 62rem; margin: 0 0 clamp(2rem, 5vw, 3.5rem); }
.page-heading.section-heading { max-width: none; }
.page-heading h1 { max-width: 14ch; }
.page-heading .button { flex: none; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.section-heading > div:first-child { min-width: 0; }
.section-heading p:last-child { margin-bottom: 0; }

/* Controls and forms */
.button, button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 2.8rem;
  padding: .68rem 1rem;
  border: 1px solid var(--pine-800);
  border-radius: .52rem;
  color: #fff;
  background: var(--pine-800);
  box-shadow: 0 1px 1px rgba(16,40,29,.08);
  font-weight: 790;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition);
}
.button:hover, button[type="submit"]:hover { color: #fff; border-color: var(--pine-950); background: var(--pine-950); box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.button:active, button[type="submit"]:active { transform: translateY(0); }
.button-secondary { color: var(--pine-950); border-color: #c4d2c8; background: var(--pine-100); }
.button-secondary:hover { color: var(--pine-950); border-color: #9cb2a3; background: #d7e6dc; }
.button-light { color: var(--pine-950); border-color: #fff; background: #fff; }
.button-light:hover { color: var(--pine-950); border-color: var(--paper); background: var(--paper); }
.button-full { width: 100%; }
.button-row, .actions { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; }
button:disabled, .button[aria-disabled="true"] { opacity: .5; cursor: not-allowed; transform: none; }
input:disabled, select:disabled, textarea:disabled { color: var(--muted); background: var(--surface-cool); border-color: var(--line); cursor: not-allowed; opacity: .7; }
.invite-field-disabled, .conditional-disabled { opacity: .42; transition: opacity .15s ease; }
.conditional-disabled { filter: saturate(.65); }
.conditional-disabled input, .conditional-disabled select, .conditional-disabled textarea { pointer-events: none; }
.disabled-action-note { color: var(--muted); display: block; font-size: .82rem; margin-top: .35rem; max-width: 42rem; }
.readonly-confirmation { background: var(--surface-cool); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: .8rem 1rem; }
.readonly-confirmation dt { color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.readonly-confirmation dd { margin: 0 0 .65rem; }
label { color: var(--ink-soft); font-size: .89rem; font-weight: 760; }
input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), textarea, select {
  width: 100%;
  min-height: 2.85rem;
  padding: .7rem .78rem;
  border: 1px solid var(--line-strong);
  border-radius: .48rem;
  color: var(--ink);
  background: #fff;
  box-shadow: inset 0 1px 2px rgba(16,40,29,.035);
  transition: border-color var(--transition), box-shadow var(--transition), background var(--transition);
}
textarea { min-height: 8rem; resize: vertical; }
input:hover, textarea:hover, select:hover { border-color: #8fa096; }
input:focus, textarea:focus, select:focus { border-color: #4c7f9a; outline: 0; box-shadow: 0 0 0 3px rgba(76,127,154,.18); }
input[type="checkbox"], input[type="radio"] { width: 1.05rem; height: 1.05rem; accent-color: var(--pine-700); }
form p { margin: 0; }
form p + p { margin-top: .9rem; }
form p > label:first-child { display: block; margin-bottom: .28rem; }
form ul { margin: .35rem 0 0; color: var(--muted); font-size: .83rem; }
.helptext, form small, .document-editor-form small { display: block; margin-top: .28rem; color: var(--muted); font-size: .82rem; }
.errorlist, .form-error { color: var(--danger-dark); }
.errorlist { margin: .3rem 0 0; padding-left: 1.1rem; font-size: .86rem; }
.form-error { padding: .7rem .8rem; border: 1px solid #dfaaa5; border-radius: var(--radius-sm); background: var(--danger-soft); font-weight: 700; }

/* Shared surfaces */
.policy-group { margin: 0 0 1rem; padding: 0; border: 0; }
.policy-group legend, .policy-readonly-group h3 { margin: 0 0 .55rem; font-size: 1rem; font-weight: 800; }
.policy-list { display: grid; gap: .55rem; }
.policy-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: .75rem .85rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; }
.policy-row p { margin: .2rem 0 0; }
.policy-row-locked { background: var(--surface-soft); }
.policy-toggle { display: flex; gap: .45rem; align-items: center; white-space: nowrap; }
.policy-toggle input { width: auto; }
.policy-reason { margin-top: 1rem; }
.policy-readonly-group + .policy-readonly-group { margin-top: 1rem; }
@media (max-width: 700px) { .policy-row { grid-template-columns: 1fr; } .policy-toggle { white-space: normal; } }
.auth-card, .editor-card, .record-card, .detail-card, .profile-panel, .calendar-section, .landing-section, .document-library-section, .review-hold, .safety-notice, .contact-status, .document-history {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}
.auth-card { width: min(31rem, 100%); margin: clamp(1rem, 4vw, 3rem) auto; padding: clamp(1.5rem, 4vw, 2.5rem); }
.auth-card::before { display: block; width: 2.75rem; height: .2rem; margin-bottom: 1.35rem; border-radius: 9px; background: var(--gold); content: ""; }
.auth-card h1 { font-size: clamp(2.2rem, 5vw, 3.3rem); }
.auth-card > p:not(.form-error) { color: var(--muted-strong); }
.auth-card form { display: grid; gap: .85rem; margin-top: 1.35rem; }
.auth-card form p { margin: 0; }
.auth-card .link-button { min-height: auto; padding: 0; color: var(--pine-800); background: transparent; box-shadow: none; }
.auth-card .link-button:hover { color: var(--pine-950); text-decoration: underline; transform: none; }
.activation-card { width: min(48rem,100%); }
.activation-email, .legal-name-setting { display: grid; grid-template-columns: max-content 1fr; align-items: center; gap: .2rem .8rem; padding: 1rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--surface-cool); }
.activation-email { margin-top: 1rem; }
.activation-email span, .legal-name-setting span { color: var(--ink-soft); }
.legal-name-setting { max-width: 54rem; margin-bottom: 1rem; }
.legal-name-setting small { grid-column: 1/-1; color: var(--muted); }
.activation-name-grid, .activation-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem 1rem; }
.activation-field-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.activation-form > p:has(textarea) { grid-column: 1/-1; }
.editor-card { width: min(50rem, 100%); margin: 0 auto; padding: clamp(1.35rem, 4vw, 2.5rem); }
.editor-card h1 { font-size: clamp(2.35rem, 5vw, 3.8rem); }
.editor-card > p { color: var(--muted-strong); }
.editor-card form { display: grid; gap: .95rem; margin-top: 1.5rem; }
.editor-card form p { margin: 0; }
.record-list { display: grid; gap: .85rem; }
.record-card { padding: clamp(1rem, 2.4vw, 1.5rem); transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition); }
.record-card:hover { border-color: #bcc8bf; box-shadow: 0 10px 28px rgba(16,40,29,.07); }
.record-card h2 { margin: .12rem 0 .45rem; font-size: clamp(1.35rem, 2.4vw, 1.75rem); }
.record-card h2 a, .record-card h3 a { color: var(--ink); text-decoration: none; }
.record-card h2 a:hover, .record-card h3 a:hover { color: var(--pine-700); }
.detail-card { padding: clamp(1.25rem, 3.5vw, 2.4rem); }
.detail-card + .detail-card, .detail-card + .document-history, .document-history + .detail-card { margin-top: 1rem; }
.detail-card h1 { font-size: clamp(2.35rem, 5vw, 4.1rem); }
.content-grid, .prose-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.content-grid article, .prose-grid article {
  position: relative;
  overflow: hidden;
  padding: clamp(1.2rem, 3vw, 2rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}
.content-grid article::before, .prose-grid article::before { position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--pine-600); content: ""; }
.content-grid article p, .prose-grid article p { color: var(--muted-strong); }
.empty-state { padding: 1.25rem; border: 1px dashed #abb8ae; border-radius: .65rem; background: var(--surface-cool); }
.empty-state p { margin: .3rem 0 0; color: var(--muted); }
.alert { margin: 0; padding: 1rem 1.15rem; border: 1px solid #cad8ce; border-left: 4px solid var(--pine-600); border-radius: .62rem; background: var(--surface); }
.alert + .alert { margin-top: .7rem; }
.alert p { margin: .3rem 0 0; color: var(--ink-soft); }
.alert-notice { border-color: #dfca91; border-left-color: var(--notice); background: var(--notice-soft); }
.alert-urgent { border-color: #e2b4af; border-left-color: var(--danger); background: var(--danger-soft); }
.alert-quiet { color: var(--muted); border-left-color: var(--line-strong); }
.announcement-card-link { display: block; color: inherit; text-decoration: none; border-radius: .62rem; }
.announcement-card-link:hover .alert, .announcement-card-link:focus-visible .alert { border-color: var(--pine-600); box-shadow: 0 8px 24px rgba(20, 54, 38, .1); transform: translateY(-1px); }
.announcement-card-link:focus-visible { outline: 3px solid var(--pine-700); outline-offset: 3px; }
.announcement-card-link .alert { transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.announcement-card-link .text-link { display: inline-block; margin-top: .65rem; }
.announcement-detail { border-top: 4px solid var(--danger); }
.announcement-detail .announcement-body { max-width: 76ch; margin-top: 1.5rem; font-size: 1.05rem; }

/* Public information */
.review-notice {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  margin: 0 0 clamp(2rem, 4vw, 3.25rem);
  padding: .75rem .9rem;
  border: 1px solid #dfc880;
  border-radius: .6rem;
  color: #67501f;
  background: var(--notice-soft);
  font-size: .82rem;
}
.review-notice strong { flex: none; color: #5e4718; }
.public-announcements { margin-bottom: 1rem; }
.public-events { margin-bottom: 1rem; }
.home-hero { padding: clamp(.5rem, 2vw, 1.5rem) 0 clamp(4rem, 8vw, 7rem); }
.hero-layout { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(23rem, .98fr); gap: clamp(2.5rem, 6vw, 6.5rem); align-items: center; }
.hero-copy h1 { max-width: 11ch; font-size: clamp(3.35rem, 7.5vw, 6.6rem); }
.hero-copy .lede { max-width: 39rem; }
.hero-copy .actions { margin-top: 1.7rem; }
.hero-stage {
  position: relative;
  min-height: clamp(28rem, 48vw, 39rem);
  overflow: hidden;
  border: 1px solid rgba(23,60,43,.18);
  border-radius: 1.6rem;
  background: #d7e3e4;
  box-shadow: var(--shadow-lg);
  isolation: isolate;
}
.hero-stage::before {
  position: absolute;
  z-index: 2;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(16,40,29,.18) 100%);
  content: "";
}
.hero-stage::after {
  position: absolute;
  z-index: 4;
  top: 1.4rem;
  right: 1.4rem;
  width: 4.5rem;
  height: 1px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 .38rem 0 rgba(255,255,255,.55), 0 .76rem 0 rgba(255,255,255,.32);
  content: "";
}
.hero-stage-sky { position: absolute; inset: 0 0 40%; background: radial-gradient(circle at 68% 24%, rgba(255,255,255,.82), transparent 23%), linear-gradient(155deg, #eef3f1 0%, #cbdadd 62%, #b9cbd0 100%); }
.hero-stage-ground { position: absolute; inset: 58% 0 0; background: linear-gradient(155deg, #8ca294 0%, #5f7969 46%, #3e5b49 100%); }
.hero-stage-ground::before, .hero-stage-ground::after { position: absolute; top: -18%; width: 44%; height: 28%; border-radius: 50% 50% 0 0; background: #6d8777; content: ""; }
.hero-stage-ground::before { left: -8%; transform: rotate(4deg); }
.hero-stage-ground::after { right: -12%; transform: rotate(-6deg); background: #789080; }
.runway { position: absolute; z-index: 3; bottom: -15%; left: 50%; width: 25%; height: 72%; transform: translateX(-50%) perspective(420px) rotateX(28deg); background: #3d4441; border: 3px solid rgba(255,255,255,.6); clip-path: polygon(38% 0, 62% 0, 100% 100%, 0 100%); }
.runway span { position: absolute; left: calc(50% - 2px); width: 4px; height: 15%; background: rgba(255,255,255,.9); }
.runway span:nth-child(1) { top: 14%; }
.runway span:nth-child(2) { top: 42%; }
.runway span:nth-child(3) { top: 72%; }
.hero-stage-label { position: absolute; z-index: 5; right: 1.35rem; bottom: 1.35rem; left: 1.35rem; display: grid; gap: .15rem; padding: 1rem 1.1rem; border: 1px solid rgba(255,255,255,.68); border-radius: .8rem; background: rgba(255,254,250,.88); box-shadow: 0 10px 30px rgba(16,40,29,.12); backdrop-filter: blur(12px); }
.hero-stage-label span { color: var(--muted); font-size: .68rem; font-weight: 820; letter-spacing: .12em; text-transform: uppercase; }
.home-intro { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: clamp(2rem, 7vw, 7rem); padding: clamp(3.5rem, 7vw, 6.5rem) 0; border-top: 1px solid var(--line-strong); }
.home-intro > p { margin: 0; color: var(--muted-strong); font-size: 1.12rem; }
.feature-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .9rem; }
.feature-card { position: relative; display: flex; min-height: 23rem; overflow: hidden; flex-direction: column; justify-content: space-between; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: 1rem; color: var(--ink); background: var(--surface); box-shadow: var(--shadow-sm); text-decoration: none; transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition); }
.feature-card::after { position: absolute; right: -2rem; bottom: -2rem; width: 6rem; height: 6rem; border-radius: 50%; background: var(--pine-050); content: ""; transition: transform 260ms ease; }
.feature-card:hover { color: var(--ink); border-color: #aec0b3; box-shadow: var(--shadow-md); transform: translateY(-4px); }
.feature-card:hover::after { transform: scale(1.5); }
.feature-number { color: #b8c2ba; font-family: var(--display-font); font-size: 2.35rem; line-height: 1; }
.feature-card h2 { font-size: 1.7rem; }
.feature-card p { color: var(--muted); }
.feature-link { position: relative; z-index: 2; color: var(--pine-800); font-weight: 800; }
.member-band { display: flex; align-items: center; justify-content: space-between; gap: 2.5rem; margin: clamp(4rem, 8vw, 7rem) 0 1.25rem; padding: clamp(2rem, 5vw, 4rem); border-radius: var(--radius-lg); color: #fff; background: linear-gradient(135deg, var(--pine-950), #224f39); box-shadow: var(--shadow-md); }
.member-band h2 { color: #fff; }
.member-band .eyebrow { color: #aed1ba; }
.member-band p { max-width: 42rem; color: #d8e4dc; }
.review-hold, .safety-notice, .contact-status { padding: clamp(1.25rem, 3vw, 2rem); margin-top: 1rem; }
.review-hold { border-left: 4px solid var(--gold); }
.safety-notice { margin-bottom: 1rem; border-left: 4px solid var(--danger); }
.contact-status { max-width: 52rem; }
.contact-status h2:not(:first-child) { margin-top: 2rem; }
.fact-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .8rem; margin: 0; }
.fact-grid div { padding: 1.15rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
.fact-grid dt { color: var(--muted); font-size: .69rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.fact-grid dd { margin: .35rem 0 0; color: var(--ink); font-size: 1.15rem; font-weight: 780; }
.faq-list { display: grid; gap: .65rem; max-width: 58rem; }
.faq-list details { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
.faq-list summary { padding: 1rem 1.2rem; color: var(--ink); font-weight: 790; cursor: pointer; }
.faq-list summary:hover { background: var(--surface-cool); }
.faq-list details p { padding: 0 1.2rem 1.1rem; margin: 0; color: var(--muted-strong); }

/* Community portal */
.portal-shell .page-heading h1, .portal-shell .landing-announcements h1, .profile-header h1 { font-size: clamp(2.5rem, 5vw, 4rem); }
.landing-section { padding: clamp(1.25rem, 3vw, 2rem); }
.landing-section + .landing-section { margin-top: 1rem; }
.landing-section .section-heading, .calendar-section .section-heading { margin-bottom: 1.2rem; }
.landing-announcements { border-top: 3px solid var(--pine-700); }
.announcement-list { display: grid; gap: .7rem; }
.dashboard-calendar { margin-top: 1rem; padding: clamp(1.1rem, 3vw, 2rem); }
.calendar-month-nav { display: flex; align-items: center; gap: .6rem; }
.calendar-month-nav h2 { min-width: 10rem; margin: 0; text-align: center; }
.calendar-nav-button { display: inline-flex; align-items: center; gap: .3rem; min-height: 2.25rem; padding: .35rem .55rem; border: 1px solid var(--line); border-radius: .42rem; color: var(--pine-800); background: var(--surface-soft); font-size: .78rem; font-weight: 780; text-decoration: none; }
.calendar-nav-button:hover { border-color: #a8b7ac; background: var(--pine-050); }
.calendar-today-link { display: inline-block; margin-top: .4rem; font-size: .8rem; }
.calendar-scroll { overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-color: #91a398 transparent; }
.calendar { display: grid; min-width: 46rem; grid-template-columns: repeat(7,minmax(0,1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: .65rem; background: #fff; }
.weekday, .calendar-day { min-height: 7.4rem; padding: .55rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.weekday:nth-child(7), .calendar-day:nth-child(7n) { border-right: 0; }
.weekday { min-height: auto; color: var(--muted-strong); background: #edf1ed; font-size: .69rem; font-weight: 850; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.calendar-day { background: #fff; }
.calendar-empty { background: #f2f3ef; }
.day-number { display: inline-grid; place-items: center; width: 1.55rem; height: 1.55rem; color: var(--ink-soft); font-size: .78rem; font-weight: 800; }
.event { margin-top: .3rem; padding: .28rem .38rem; border-left: 3px solid var(--pine-600); border-radius: .24rem; background: var(--pine-050); font-size: .72rem; line-height: 1.3; }
.event a { color: var(--pine-950); text-decoration: none; }
.event-cancelled { border-left-color: #9c9385; color: var(--muted); background: #f0eeea; text-decoration: line-through; }
.upcoming-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.upcoming-grid > a { display: grid; grid-template-columns: 4rem 1fr; gap: .9rem; padding: .95rem; border: 1px solid var(--line); border-radius: .62rem; color: var(--ink); background: var(--surface-soft); text-decoration: none; transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition); }
.upcoming-grid > a:hover { color: var(--ink); border-color: #aebeb2; box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.upcoming-grid time { display: grid; align-content: start; color: var(--pine-800); }
.upcoming-grid time strong { font-size: 1.08rem; }
.upcoming-grid time span, .upcoming-grid small { color: var(--muted); font-size: .75rem; }
.upcoming-grid > a > span { display: grid; align-content: start; }
.upcoming-grid > .empty-state { grid-column: 1/-1; }

/* Workflow and management screens */
.workflow-actions { display: flex; align-items: flex-end; gap: .65rem; flex-wrap: wrap; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.workflow-actions form { display: grid; min-width: 9rem; gap: .35rem; }
.workflow-actions form:has(input:not([type="hidden"])) { min-width: min(18rem, 100%); }
.workflow-actions input { min-height: 2.55rem !important; }
.workflow-actions button { min-height: 2.55rem; padding: .58rem .85rem; border-color: var(--line-strong); color: var(--ink-soft); background: var(--surface-cool); box-shadow: none; }
.workflow-actions button:hover { color: var(--pine-950); border-color: #9eaea2; background: var(--pine-100); }
.danger-zone { margin-top: 1.25rem; padding: 1rem; border: 1px solid #deb4ae; border-radius: .65rem; background: var(--danger-soft); }
.workflow-actions .danger-zone { margin-top: 0; }
.record-card > .danger-zone, .detail-card > .danger-zone { max-width: 32rem; }
.danger-zone summary { color: var(--danger-dark); font-weight: 800; cursor: pointer; }
.danger-zone[open] summary { margin-bottom: .7rem; }
.danger-zone > p { color: #6f403b; font-size: .88rem; }
.danger-zone > form { max-width: 32rem; }
.danger-zone h3 { color: var(--danger-dark); }
.danger-zone form { display: grid; gap: .7rem; }
.danger-zone button, .danger-zone button[type="submit"] { border-color: var(--danger); color: #fff; background: var(--danger); }
.danger-zone button:hover { border-color: var(--danger-dark); background: var(--danger-dark); }
.relationship-admin { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }

/* First-party administration */
.administration-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.administration-card { display: flex; align-items: flex-start; flex-direction: column; min-height: 14rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); box-shadow: var(--shadow-sm); }
.administration-card p { color: var(--muted); }
.administration-card .button { margin-top: auto; }
.advanced-maintenance { margin-top: 2rem; padding: 1.25rem; border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: .75rem; background: var(--gold-soft); }
.lot-toolbar { display: flex; align-items: end; gap: .7rem; margin-bottom: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); }
.lot-toolbar p { min-width: 12rem; margin: 0; }
.lot-management-list { overflow: hidden; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); box-shadow: var(--shadow-sm); }
.lot-list-header, .lot-list-row { display: grid; grid-template-columns: .75fr 1.25fr 1.7fr .7fr auto; align-items: center; gap: 1rem; padding: .8rem 1rem; }
.lot-list-header { color: var(--muted-strong); background: #e9eee9; font-size: .7rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.lot-list-row + .lot-list-row { border-top: 1px solid var(--line); }
.lot-list-row:hover { background: var(--pine-050); }
.lot-list-row-muted { color: var(--muted); background: var(--surface-cool); }
.lot-list-row small { display: block; color: var(--muted); }
.status-chip { display: inline-flex; width: fit-content; padding: .22rem .48rem; border-radius: 999px; color: var(--pine-950); background: var(--pine-100); font-size: .78rem; font-weight: 760; }
.warning-text { color: var(--notice); }
.warning-state { border-color: #dec98f; background: var(--notice-soft); }
.mobile-field-label { display: none; color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.lot-detail-columns { display: grid; grid-template-columns: minmax(0,34rem) minmax(0,1fr); align-items: start; gap: 1.25rem; }
.lot-detail-column { display: grid; align-content: start; gap: 1.25rem; min-width: 0; }
.lot-people-panel > h2, .lot-manage-panel > h2 { margin-bottom: 1rem; }
.lot-people-row { padding: 1rem 0; border-top: 1px solid var(--line); }
.lot-people-label { margin-bottom: .6rem; color: var(--muted-strong); font-size: .85rem; font-weight: 800; }
.lot-people-content { min-width: 0; }
.lot-people-list { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.lot-person-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .75rem; min-width: 0; padding: .65rem .8rem; border-radius: .5rem; background: var(--surface-cool); }
.lot-person-name { min-width: 0; overflow-wrap: anywhere; }
.lot-person-name p { margin: .15rem 0 0; color: var(--muted); font-size: .82rem; }
.lot-person-row .button { margin: 0; white-space: nowrap; }
.lot-person-empty { color: var(--muted); padding: .5rem 0; }
.lot-management-form { display: grid; max-width: 42rem; gap: .65rem; padding: 1.2rem 0; border-top: 1px solid var(--line); }
.lot-management-form h3, .lot-management-form p { margin: 0; }
.lot-management-form .user-picker { margin: .25rem 0; }
.lot-management-form input, .lot-management-form textarea { max-width: 100%; }
.lot-management-form > .button { justify-self: start; }
.lot-history { margin-top: 1rem; }
.lot-history summary { display: flex; justify-content: space-between; gap: 1rem; color: var(--pine-900); cursor: pointer; }
.lot-history summary span { color: var(--muted); font-weight: 500; }
.lot-history[open] summary { margin-bottom: 1rem; }
.lot-status-panel, .lot-history-panel { min-width: 0; }
.lot-merge-target { transition: opacity .16s ease; }
.lot-merge-target.is-disabled { opacity: .58; }
.lot-merge-target select:disabled { color: var(--muted); background: var(--surface-cool); cursor: not-allowed; }
.lot-history-entry { display: block; overflow-wrap: anywhere; }
.lot-history-entry > .muted-copy { margin: .75rem 0 0; white-space: normal; text-align: left; font-size: .82rem; }
.management-dialog { width: min(42rem,calc(100% - 2rem)); max-height: calc(100vh - 2rem); padding: 0; overflow: auto; border: 0; border-radius: .85rem; background: var(--surface); box-shadow: 0 1.5rem 4rem rgba(16,39,28,.3); }
.management-dialog::backdrop { background: rgba(12,29,21,.58); backdrop-filter: blur(2px); }
.management-dialog-form { display: grid; gap: 1rem; padding: clamp(1.2rem,4vw,2rem); }
.dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.dialog-heading h2 { margin-bottom: 0; }
.dialog-close { width: 2.4rem; height: 2.4rem; padding: 0; border: 1px solid var(--line); border-radius: 999px; color: var(--muted-strong); background: var(--surface-cool); box-shadow: none; font-size: 1.5rem; line-height: 1; }
.dialog-close:hover { color: var(--pine-950); background: var(--pine-050); }
.field-help { display: block; color: var(--muted); font-size: .78rem; }
.dialog-field-grid { display: grid; max-width: 32rem; gap: 1rem; }
.dialog-field-grid p { display: grid; gap: .35rem; margin: 0; }
.dialog-field-grid p > label:first-child, .dialog-field-grid small { margin: 0; }
.dialog-field-grid small { color: var(--muted); font-size: .78rem; }
.dialog-field-grid input[type="date"] { max-width: 16rem; }
.management-dialog-fields { display: grid; gap: 1rem; }
.management-dialog-fields > p, .management-dialog-fields > small { margin: 0; }
.management-dialog-field { display: grid; gap: .35rem; margin: 0; }
.management-dialog-field input, .management-dialog-field select { width: 100%; }
.dialog-actions { display: flex; justify-content: flex-end; gap: .65rem; padding-top: .5rem; }
.dialog-actions .danger-button { border-color: var(--danger); color: #fff; background: var(--danger); }
.dialog-actions .danger-button:hover { border-color: var(--danger-dark); background: var(--danger-dark); }
.association-search-results { display: grid; gap: .35rem; max-height: 17rem; overflow-y: auto; }
.association-search-result { display: grid; width: 100%; gap: .1rem; padding: .72rem .8rem; border: 1px solid var(--line); border-radius: .5rem; color: var(--ink); background: var(--surface); box-shadow: none; text-align: left; }
.association-search-result:hover, .association-search-result:focus { border-color: var(--pine-600); color: var(--ink); background: var(--pine-050); }
.association-search-result span, .association-search-result small { color: var(--muted); font-size: .78rem; }
.association-search-result:disabled { border-color: var(--line); color: var(--muted); background: var(--surface-cool); cursor: not-allowed; opacity: 1; }
.association-search-empty { margin: 0; padding: .75rem; color: var(--muted); border: 1px dashed var(--line); border-radius: .5rem; background: var(--surface-cool); }
.user-picker { display: grid; gap: .4rem; margin: .8rem 0; }
.user-picker-input { width: 100%; max-width: 34rem; }
.user-picker-results { max-width: 34rem; }
.user-picker-selected { max-width: 34rem; }
.association-selected-user { display: grid; gap: .08rem; padding: .75rem .85rem; border: 1px solid var(--pine-700); border-radius: .5rem; background: var(--pine-050); }
.association-selected-user span, .association-selected-user small { color: var(--muted); font-size: .8rem; }

/* Directory and profile */
.search-form { display: flex; gap: .6rem; max-width: 39rem; margin-top: 1.2rem; }
.search-form input { flex: 1; }
.profile-grid { display: grid; grid-template-columns: minmax(8rem,max-content) 1fr; gap: .68rem 1.25rem; margin: 1rem 0; }
.profile-grid dt { color: var(--muted-strong); font-size: .82rem; font-weight: 790; }
.profile-grid dd { margin: 0; }
.profile-header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.3rem; }
.profile-header h1 { margin-bottom: .45rem; }
.profile-tabs { display: flex; gap: .3rem; overflow-x: auto; margin-bottom: 1rem; padding: .32rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); box-shadow: var(--shadow-sm); }
.profile-tabs a { flex: 1; min-width: max-content; padding: .68rem .9rem; border-radius: .47rem; color: var(--ink-soft); font-size: .86rem; font-weight: 760; text-align: center; text-decoration: none; }
.profile-tabs a:hover { background: var(--pine-050); }
.profile-tabs a[aria-current="page"] { color: #fff; background: var(--pine-800); }
.profile-panel { padding: clamp(1.25rem,3vw,2rem); }
.profile-panel > .section-heading { margin-bottom: 1rem; }
.profile-form { display: grid; max-width: 54rem; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .9rem 1rem; }
.profile-form p { margin: 0; }
.profile-form p:has(textarea), .profile-form > .button, .profile-form > .errorlist, .email-setting { grid-column: 1/-1; }
.email-setting { display: grid; grid-template-columns: max-content 1fr max-content; align-items: center; gap: .8rem; padding: 1rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--surface-cool); }
.mail-preference-setting { display: flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 54rem; margin-top: 1.25rem; padding: 1rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--surface-cool); }
.mail-preference-setting small { max-width: 38rem; }
.mail-preference-switch { position: relative; display: inline-flex; flex: none; align-items: center; width: 3.1rem; height: 1.8rem; cursor: pointer; }
.mail-preference-switch input { position: absolute; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.mail-preference-switch span { width: 100%; height: 100%; border-radius: 999px; background: var(--line-strong); transition: background var(--transition); }
.mail-preference-switch span::before { position: absolute; top: .22rem; left: .22rem; width: 1.36rem; height: 1.36rem; border-radius: 50%; background: white; box-shadow: var(--shadow-sm); content: ""; transition: transform var(--transition); }
.mail-preference-switch input:checked + span { background: var(--pine-700); }
.mail-preference-switch input:checked + span::before { transform: translateX(1.3rem); }
.mail-preference-switch input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 3px; }
.profile-visibility-settings { display: grid; grid-column: 1/-1; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; min-width: 0; margin: 0; padding: .75rem 1rem 1rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--surface-cool); }
.profile-visibility-settings legend { padding: 0 .25rem; color: var(--ink); font-size: .9rem; font-weight: 800; }
.profile-visibility-settings select { width: 100%; }
.property-card, .security-card, .security-activity, .gate-code-card, .contractor-access-card { padding: 1.1rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--surface-soft); }
.property-card + .property-card { margin-top: .8rem; }
.plain-list { display: grid; gap: .42rem; margin: .7rem 0; padding: 0; list-style: none; }
.plain-list li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem .65rem; border-radius: .4rem; background: #edf1ed; }
.plain-list li span { color: var(--muted); font-size: .84rem; }
.security-grid, .gate-code-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; gap: .8rem; }
.security-card { display: flex; align-items: stretch; min-width: 0; flex-direction: column; }
.security-card > h3 { margin-bottom: .35rem; }
.security-card > p { color: var(--muted-strong); }
.security-card-actions { display: flex; align-items: stretch; margin-top: auto; padding-top: .8rem; }
.security-card-actions > .button, .security-card-actions form, .security-card-actions button { width: 100%; margin: 0; }
.contractor-access-card { margin-top: .8rem; }
.contractor-profile-codes { display: flex; flex-wrap: wrap; gap: .5rem; }
.contractor-profile-code { display: inline-flex; align-items: center; gap: .6rem; padding: .4rem .6rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--surface-soft); }
.contractor-profile-code strong { font-size: .85rem; white-space: nowrap; }
.contractor-profile-code code { padding: .15rem .35rem; border: 1px solid var(--line); border-radius: .3rem; background: #fff; font-size: 1rem; letter-spacing: .06em; }
.activity-list { display: grid; gap: .5rem; margin-bottom: 0; padding: 0; list-style: none; }
.activity-list li { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .5rem; border-bottom: 1px solid var(--line); }
.activity-list time { color: var(--muted); }
.gate-code-card code { display: inline-block; padding: .32rem .48rem; border: 1px solid var(--line); border-radius: .35rem; background: #fff; font-size: 1.05rem; letter-spacing: .06em; }
.protected-record { border-left: 4px solid var(--pine-800); }
.protected-record pre, .contractor-access-card pre { white-space: pre-wrap; overflow-wrap: anywhere; padding: 1rem; border: 1px solid var(--line); border-radius: .5rem; background: #fff; font: inherit; }
.gate-access-summary { margin-bottom: 1rem; }
.gate-admin-section + .gate-admin-section { margin-top: 1rem; }
.gate-lot-list { overflow: hidden; border: 1px solid var(--line); border-radius: .65rem; }
.gate-lot-row { display: grid; grid-template-columns: minmax(5.5rem,.45fr) minmax(11rem,1.2fr) minmax(10rem,1fr) auto; align-items: center; gap: .75rem; min-height: 2.8rem; padding: .42rem .7rem; background: var(--surface); }
.gate-lot-row + .gate-lot-row { border-top: 1px solid var(--line); }
.gate-lot-row small { display: none; color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.gate-lot-row .button { min-height: auto; padding: .34rem .65rem; }
.gate-lot-header { min-height: auto; padding-block: .34rem; color: var(--muted-strong); background: var(--surface-cool); font-size: .68rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.contractor-year-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.contractor-year-card { overflow: hidden; border: 1px solid var(--line); border-radius: .65rem; background: var(--surface); }
.contractor-year-card > h2, .contractor-year-card > h3 { margin: 0; padding: .65rem .8rem; color: var(--pine-900); background: var(--surface-cool); font-size: 1rem; }
.contractor-month-list { display: grid; }
.contractor-month-list > div, .contractor-month-list > label { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 2.35rem; margin: 0; padding: .32rem .72rem; border-top: 1px solid var(--line); }
.contractor-month-list code, .large-code { padding: .18rem .42rem; border: 1px solid var(--line); border-radius: .3rem; background: #fff; font-size: 1rem; letter-spacing: .08em; }
.contractor-month-inputs input { width: 6.5rem; padding: .4rem .55rem; font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: 1rem; letter-spacing: .08em; text-align: center; }
.contractor-month-inputs .errorlist { margin: 0; font-size: .72rem; }
.contractor-schedule-form .form-actions { display: flex; justify-content: flex-end; margin-top: 1rem; }
.directory-search-actions { margin: 1rem 0 0; }
.directory-airpark-roster { max-width: 48rem; margin: 1.4rem 0; }
.directory-airpark-roster h2 { margin: 0 0 .65rem; }
.directory-roster-role { padding: .75rem 0; border-top: 1px solid var(--line); }
.directory-roster-role h3 { margin: 0 0 .3rem; font-size: 1rem; }
.directory-roster-role ul { margin: 0; padding: 0; list-style: none; }
.directory-roster-role li { margin: .16rem 0; line-height: 1.45; }
.full-directory-page { max-width: 72rem; margin-inline: auto; }
.full-directory-heading { align-items: end; margin-bottom: 1.5rem; }
.full-directory-heading h1 { max-width: none; }
.full-directory-heading p { max-width: 42rem; color: var(--muted-strong); }
.full-directory-actions { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: .4rem .65rem; }
.full-directory-actions form { margin: 0; }
.full-directory-actions small { flex-basis: 100%; color: var(--muted); text-align: right; }
.full-directory-actions button:disabled, .full-directory-actions button:disabled:hover { color: var(--muted); border-color: var(--line); background: var(--surface-cool); box-shadow: none; }
.full-directory-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; gap: .85rem; }
.full-directory-card { min-width: 0; padding: 1.1rem 1.25rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); box-shadow: var(--shadow-sm); }
.full-directory-card h2 { margin: 0 0 .65rem; font-size: clamp(1.3rem,2vw,1.6rem); }
.full-directory-card h2 a { color: var(--ink); text-decoration: none; }
.full-directory-card h2 a:hover { color: var(--pine-700); text-decoration: underline; }
.full-directory-lots { display: grid; gap: .28rem; margin: 0; padding: 0; list-style: none; }
.full-directory-lots li { display: flex; flex-wrap: wrap; gap: .3rem; line-height: 1.35; }
.full-directory-lots li span { color: var(--muted-strong); }
.full-directory-contact { margin-top: .85rem; padding-top: .75rem; border-top: 1px solid var(--line); overflow-wrap: anywhere; }
.full-directory-contact p { margin: 0 0 .4rem; line-height: 1.4; }
.full-directory-contact p:last-child { margin-bottom: 0; }
.full-directory-mailing-label, .full-directory-mailing-address { display: block; }
.full-directory-mailing-address { margin-top: .15rem; }

/* Documents */
.document-library-grid { display: grid; gap: 1rem; }
.document-section { margin: 1rem 0; }
.document-library-section { padding: clamp(1.1rem,2.5vw,1.65rem); }
.document-library-section > .section-heading { margin-bottom: .85rem; }
.document-library-section > .section-heading h2 { margin: 0 0 .25rem; }
.document-library-section > .section-heading p { margin: 0; color: var(--muted); }
.document-card-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.document-card { padding: 1rem 1.1rem; box-shadow: none; }
.document-card h3 { margin: 0 0 .35rem; }
.document-summary { margin: .25rem 0 0; color: var(--muted); }
.document-card-list-compact { display: block; border-top: 1px solid var(--line); }
.minutes-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: .35rem 0 .8rem; }
.minutes-toolbar form { display: flex; align-items: end; gap: .5rem; }
.minutes-toolbar select { min-width: 9rem; }
.minutes-toolbar p { margin: 0; color: var(--muted); font-size: .85rem; }
.minutes-year-group > h3 { position: sticky; z-index: 3; top: 4.75rem; margin: 0; padding: .65rem .2rem .35rem; color: var(--pine-800); background: var(--surface); font-family: var(--ui-font); font-size: .75rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.document-minute-row { border-bottom: 1px solid var(--line); }
.document-minute-row > a { display: grid; grid-template-columns: 5rem minmax(0,1fr); align-items: baseline; gap: .8rem; padding: .62rem .2rem; color: var(--ink); text-decoration: none; }
.document-minute-row > a:hover { color: var(--pine-700); background: linear-gradient(90deg, transparent, var(--pine-050), transparent); }
.document-minute-row time { color: var(--muted); font-size: .85rem; font-variant-numeric: tabular-nums; }
.document-minute-row span { font-weight: 720; }
.document-minute-row small { display: block; margin: -.32rem 0 .48rem 5.98rem; color: var(--muted); font-size: .75rem; }
.minutes-load-more { display: flex; justify-content: center; padding-top: 1rem; }
.document-history { padding: 1rem 1.4rem; }
.document-history ol { margin-bottom: 0; }
.document-summary-card { padding: 1rem 1.2rem; }
.document-download-action { margin-bottom: .72rem; }
.document-metadata { display: grid; grid-template-columns: max-content minmax(0,1fr); gap: .18rem .8rem; margin: 0; font-size: .88rem; line-height: 1.28; }
.document-metadata dt { color: var(--muted); font-weight: 780; }
.document-metadata dd { margin: 0; color: var(--ink-soft); overflow-wrap: anywhere; }
.document-preview { display: none; margin-top: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
.document-preview-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.document-preview-heading .eyebrow { margin-bottom: .1rem; }
.document-preview-heading h2 { margin: 0; font-size: clamp(1.35rem,2.2vw,1.7rem); }
.document-preview iframe { display: block; width: 100%; height: 76vh; min-height: 38rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--surface-cool); }
@media(min-width:900px) { .document-preview { display: block; } }
@media(max-width:760px) { .document-download-action .button { width: 100%; } .document-metadata { grid-template-columns: 1fr; gap: .08rem; } .document-metadata dd + dt { margin-top: .38rem; } }
.management-note { border-left: 4px solid var(--gold); }
.document-editor-form small { color: var(--muted); }
.document-field[hidden] { display: none; }

/* People & Access administration */
.people-access-filters { display: flex; align-items: end; flex-wrap: wrap; gap: .8rem; margin-bottom: 1.25rem; padding: 1rem 1.2rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); box-shadow: var(--shadow-sm); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.role-roster-panel { margin-bottom: 1.25rem; }
.role-roster-list { display: grid; gap: .65rem; }
.role-roster-row { display: grid; grid-template-columns: minmax(12rem,.65fr) minmax(0,1.6fr); align-items: start; gap: 1rem; padding: .9rem 0; border-top: 1px solid var(--line); }
.role-roster-heading { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; }
.role-roster-heading h3 { margin: 0; }
.role-mailing-holders { margin: 0; }
.role-mailing-note { margin: .8rem 0 0; font-size: .84rem; }
.role-primary-form { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 0; }
.role-primary-form fieldset { display: grid; flex: 1; gap: .35rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.role-holder-choice { display: flex; align-items: center; gap: .55rem; margin: 0; padding: .4rem .5rem; border-radius: .4rem; }
.role-holder-choice:has(input:checked) { background: var(--pine-050); }
.primary-label { display: inline-block; margin-left: .35rem; padding: .08rem .38rem; border-radius: 999px; color: var(--pine-950); background: var(--pine-100); font-size: .72rem; font-weight: 780; vertical-align: middle; }
.people-access-filters label { min-width: min(18rem,100%); margin: 0; }
.people-access-list { display: grid; gap: .65rem; }
.people-access-row { display: grid; grid-template-columns: minmax(13rem,1.25fr) minmax(8rem,.55fr) minmax(11rem,1fr) minmax(12rem,1fr) auto; align-items: center; gap: 1rem; padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); box-shadow: var(--shadow-sm); }
.people-access-row h2 { margin: 0; font-size: 1.05rem; }
.people-access-row p { margin: .2rem 0 0; color: var(--muted); font-size: .88rem; }
.status-chip { display: inline-flex; align-items: center; width: fit-content; padding: .24rem .55rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface-cool); font-size: .75rem; font-weight: 800; }
.status-chip-active { border-color: #9cc7a7; color: #18592b; background: #eef8f0; }
.status-chip-pending { border-color: #d9c27c; color: #6b5110; background: #fff8df; }
.status-chip-disabled { border-color: #d3a3a3; color: #7a2424; background: #fff1f1; }
.status-chip-archived { color: var(--muted); background: var(--surface-cool); }
.status-note { display: inline-block; margin-top: .3rem; color: var(--pine-700); font-size: .78rem; font-weight: 750; }
.status-note-warning { color: #8a4f0f; }
.person-detail-stack { display: grid; gap: 1rem; }
.people-access-card { margin: 0; padding: clamp(1rem,2.5vw,1.4rem); }
.people-access-card > h2 { margin: 0 0 .85rem; font-size: clamp(1.45rem,2.5vw,1.9rem); }
.people-access-confirmation { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.people-access-confirmation .button { flex: none; }
.people-access-workflow { margin-top: 1rem; }
.people-access-compact { padding: 1rem 1.2rem; }
.people-access-compact > .eyebrow { margin-bottom: .12rem; }
.people-access-compact > h2 { margin-bottom: .55rem; font-size: clamp(1.45rem,2.5vw,1.9rem); }
.people-access-compact > p:last-child, .people-access-compact > ol:last-child, .people-access-compact > div:last-child, .people-access-compact > form:last-child { margin-bottom: 0; }
.people-access-compact .workflow-columns { gap: .65rem; }
.people-access-compact .workflow-panel { padding: .75rem .85rem; }
.people-access-compact .role-assignment-row { padding: .55rem 0; }
.people-access-compact .audit-list { gap: .4rem; margin-bottom: 0; }
.directory-lot-list { margin: 0; }
.directory-card .directory-lot-list li { justify-content: flex-start; align-items: baseline; flex-direction: row; flex-wrap: wrap; gap: .3rem; }
.directory-back { max-width: 58rem; margin: 0 auto .75rem; }
.directory-card { max-width: 58rem; margin-inline: auto; }
.directory-card h1 { font-size: clamp(2rem, 4vw, 3rem); }
.directory-card-section { padding-top: 1rem; border-top: 1px solid var(--line); }
.directory-card-section + .directory-card-section { margin-top: 1rem; }
.directory-card-section h2 { margin: 0 0 .65rem; font-size: clamp(1.3rem, 2.4vw, 1.7rem); }
.directory-card-section p:last-child { margin-bottom: 0; }
.directory-card .profile-grid { margin: .5rem 0 0; }
.directory-card .profile-grid dd { min-width: 0; overflow-wrap: anywhere; }
.directory-resident-list { list-style: none; margin: 0; padding: 0; }
.directory-resident-list li { padding: .85rem 0; border-top: 1px solid var(--line); }
.directory-resident-list li:first-child { border-top: 0; }
.directory-resident-name { font-weight: 750; }
.owner-controls-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; gap: 1rem; margin-bottom: 1rem; }
.owner-controls-grid > .owner-controls-summary-card { height: 100%; margin-top: 0; }
.owner-transfer-status { display: grid; grid-template-columns: minmax(0,1fr) minmax(18rem,.8fr); gap: 1rem; margin: 1rem 0; padding: 1rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface-cool); }
.owner-transfer-status h3, .owner-transfer-incoming h3 { margin-top: 0; }
.owner-transfer-form { max-width: 48rem; }
.owner-transfer-expired { border-color: #d9c27c; background: #fff8df; }
.owner-transfer-incoming { margin-bottom: 1rem; padding: 1.1rem; border: 2px solid var(--gold); border-radius: .75rem; background: #fffaf0; }
.owner-transfer-incoming blockquote { margin: .8rem 0; padding: .75rem 1rem; border-left: 4px solid var(--gold); background: var(--surface); }
.workflow-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.workflow-panel { padding: 1rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--surface-cool); }
.workflow-panel h3 { margin-top: 0; }
.workflow-panel p { color: var(--muted); }
.role-assignment-list { display: grid; gap: .6rem; margin-bottom: 1rem; }
.role-assignment-row { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--line); }
.role-assignment-row > form { display: flex; align-items: end; gap: .55rem; margin: 0; }
.role-assignment-row > form label { margin: 0; }
.role-assignment-form { max-width: 44rem; }
.people-tag-chip { display: inline-block; padding: .2rem .55rem; border-left: .45rem solid var(--tag-color); border-radius: .3rem; background: var(--surface-cool); font-weight: 700; }
.people-tag-list { display: grid; gap: 1rem; }
.people-tag-row { padding: .55rem 0; border-top: 1px solid var(--line); }
.people-tag-accordion > summary { display: flex; align-items: center; gap: .7rem; padding: .25rem .1rem; cursor: pointer; list-style: none; }
.people-tag-accordion > summary::-webkit-details-marker { display: none; }
.people-tag-accordion > summary::after { content: "▾"; margin-left: auto; color: var(--muted); }
.people-tag-accordion[open] > summary::after { content: "▴"; }
.people-tag-accordion > summary:hover .people-tag-chip, .people-tag-accordion > summary:focus-visible .people-tag-chip { text-decoration: underline; }
.people-tag-expanded { display: grid; gap: .8rem; padding: .65rem .25rem .35rem 1rem; }
.people-tag-members { display: grid; gap: .35rem; margin: 0; }
.people-tag-form { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; }
.people-tag-form p { margin: 0; }
.people-tag-form label { display: block; }
.management-dialog-field input[type="color"] { width: 7rem; height: 2.5rem; padding: .15rem; }
.people-tag-remove summary { cursor: pointer; }
.people-tag-remove form { display: grid; gap: .55rem; margin-top: .6rem; }
.people-tag-remove input { display: block; width: min(18rem,100%); }

.role-revoke-trigger { min-height: 2.35rem; padding: .48rem .78rem; }
.account-current-status { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.account-status-block { padding-top: 1rem; border-top: 1px solid var(--line); }
.account-status-block + .account-status-block { margin-top: 1rem; }
.account-status-block > p:last-child { margin-bottom: 0; }
.account-status-form { max-width: 48rem; }
.account-status-form fieldset { display: grid; gap: .9rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.account-status-form fieldset > p { margin: 0; }
.account-recovery-panel h3 { margin-top: 0; }
.audit-list { display: grid; gap: .65rem; padding-left: 1.3rem; }
.pagination { display: flex; justify-content: center; gap: 1rem; margin-top: 1rem; }

/* Security helpers */
.mfa-qr { display: block; width: min(16rem,100%); height: auto; margin: 1rem auto; padding: .5rem; border: 1px solid var(--line); background: #fff; }
.setup-key { display: block; overflow-wrap: anywhere; padding: .65rem; border: 1px solid var(--line); border-radius: .4rem; background: var(--surface-cool); letter-spacing: .08em; }

@media(max-width:1050px) {
  .desktop-nav a, .desktop-nav .link-button { padding-inline: .48rem; font-size: .82rem; }
  .feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .administration-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lot-detail-columns { display: flex; flex-direction: column; max-width: 48rem; }
  .lot-detail-column { display: contents; }
  .lot-people-panel { order: 1; }
  .lot-manage-panel { order: 2; }
  .lot-status-panel { order: 3; }
  .lot-history-panel, .lot-history { order: 4; margin-top: 0; }
  .lot-detail-columns > .lot-detail-column > * { width: 100%; }
}

@media(max-width:920px) {
  .desktop-nav { display: none; }
  .mobile-nav { display: block; }
  .mobile-nav > summary { display: flex; align-items: center; gap: .6rem; min-height: 2.7rem; padding: .48rem .72rem; border: 1px solid var(--line); border-radius: .5rem; color: var(--pine-950); background: var(--surface); font-weight: 780; cursor: pointer; list-style: none; }
  .mobile-nav > summary::-webkit-details-marker { display: none; }
  .menu-icon { display: grid; gap: 3px; width: 1rem; }
  .menu-icon i { display: block; height: 2px; border-radius: 2px; background: currentColor; transition: transform var(--transition), opacity var(--transition); }
  .mobile-nav[open] .menu-icon i:nth-child(1) { transform: translateY(5px) rotate(45deg); }
  .mobile-nav[open] .menu-icon i:nth-child(2) { opacity: 0; }
  .mobile-nav[open] .menu-icon i:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
  .mobile-nav nav { position: absolute; z-index: 60; top: calc(100% + 1px); right: 0; left: 0; display: grid; grid-template-columns: 1fr; gap: .25rem; padding: .75rem max(1rem,calc((100vw - var(--content))/2)); border-bottom: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow-md); }
  .mobile-nav nav a, .mobile-nav nav .link-button { display: block; width: 100%; padding: .72rem; border: 0; border-radius: .4rem; color: var(--ink-soft); background: transparent; box-shadow: none; font-size: .9rem; font-weight: 740; text-align: left; text-decoration: none; }
  .mobile-nav nav a:hover, .mobile-nav nav .link-button:hover, .mobile-nav nav a[aria-current="page"] { color: var(--pine-950); background: var(--pine-050); transform: none; }
  .mobile-nav nav form { margin: 0; }
  .mobile-nav nav .nav-login { color: #fff; background: var(--pine-800); }
  .hero-layout { grid-template-columns: 1fr; }
  .hero-copy { max-width: 46rem; }
  .hero-stage { min-height: 27rem; }
  .people-access-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .people-access-row > div:last-child { grid-column: 1/-1; }
}

@media(max-width:760px) {
  .site-header-inner { width: min(100% - 2rem, var(--content)); min-height: 4.2rem; }
  .site-main, .site-footer-inner { width: min(100% - 2rem, var(--content)); }
  .site-main { padding-top: 2rem; }
  .site-footer-inner { align-items: flex-start; flex-direction: column; gap: .75rem; }
  h1 { overflow-wrap: anywhere; }
  .section-heading { flex-direction: column; gap: 1rem; }
  .button-row { width: 100%; }
  .button-row .button { flex: 1; }
  .content-grid, .prose-grid, .fact-grid { grid-template-columns: 1fr; }
  .home-intro { grid-template-columns: 1fr; gap: 1rem; }
  .member-band { align-items: flex-start; flex-direction: column; }
  .member-band .button { width: 100%; }
  .upcoming-grid, .document-card-list, .security-grid, .gate-code-grid, .full-directory-grid, .contractor-year-grid { grid-template-columns: 1fr; }
  .full-directory-heading { align-items: stretch; }
  .full-directory-actions { justify-content: flex-start; }
  .full-directory-actions small { text-align: left; }
  .gate-lot-header { display: none; }
  .gate-lot-row { grid-template-columns: minmax(5rem,.55fr) minmax(0,1fr) minmax(0,1fr) auto; }
  .gate-lot-row small { display: block; }
  .dialog-actions { align-items: stretch; flex-direction: column-reverse; }
  .dialog-actions .button { width: 100%; }
  .lot-toolbar { align-items: stretch; flex-direction: column; }
  .lot-toolbar p, .lot-toolbar button { width: 100%; }
  .lot-list-header { display: none; }
  .lot-list-row { grid-template-columns: 1fr 1fr; align-items: start; }
  .lot-list-row > div:last-child { grid-column: 1/-1; }
  .mobile-field-label { display: block; }
  .calendar-section { padding: 1rem; }
  .calendar { min-width: 40rem; }
  .weekday, .calendar-day { min-height: 6rem; padding: .4rem; }
  .calendar-month-nav { width: 100%; justify-content: space-between; }
  .workflow-actions { align-items: stretch; flex-direction: column; }
  .workflow-actions form, .workflow-actions form:has(input:not([type="hidden"])) { width: 100%; min-width: 0; }
  .workflow-actions button { width: 100%; }
  .record-card > .danger-zone, .detail-card > .danger-zone { max-width: none; }
  .search-form { align-items: stretch; flex-direction: column; }
  .profile-grid { grid-template-columns: 1fr; gap: .2rem; }
  .profile-grid dd + dt { margin-top: .7rem; }
  .profile-form { grid-template-columns: 1fr; }
  .profile-form p:has(textarea), .profile-form > .button, .profile-form > .errorlist, .email-setting { grid-column: auto; }
  .profile-visibility-settings { grid-column: auto; grid-template-columns: 1fr; }
  .activation-name-grid, .activation-field-grid { grid-template-columns: 1fr; }
  .activation-email, .legal-name-setting { grid-template-columns: 1fr; }
  .legal-name-setting small { grid-column: auto; }
  .email-setting { grid-template-columns: 1fr; }
  .minutes-toolbar { align-items: stretch; flex-direction: column; }
  .minutes-toolbar form { align-items: stretch; flex-direction: column; }
  .document-minute-row > a { grid-template-columns: 1fr; gap: .05rem; padding: .6rem 0; }
  .document-minute-row small { margin: -.2rem 0 .48rem; }
  .review-notice { flex-direction: column; gap: .2rem; }
  .workflow-columns, .owner-controls-grid, .owner-transfer-status { grid-template-columns: 1fr; }
  .role-roster-row { grid-template-columns: 1fr; }
  .role-primary-form { align-items: stretch; flex-direction: column; }
  .people-access-confirmation { align-items: stretch; flex-direction: column; }
  .people-access-filters { align-items: stretch; flex-direction: column; }
  .people-tag-row { grid-template-columns: 1fr; }
  .role-assignment-row { align-items: stretch; flex-direction: column; }
  .role-assignment-row > form { align-items: stretch; flex-direction: column; }
}

@media(max-width:600px) {
  .brand-copy strong { font-size: 1.05rem; }
  .brand-mark { width: 2.2rem; height: 2.2rem; }
  .feature-grid { grid-template-columns: 1fr; }
  .administration-grid { grid-template-columns: 1fr; }
  .lot-list-row { grid-template-columns: 1fr; }
  .lot-list-row > div:last-child { grid-column: auto; }
  .feature-card { min-height: 15rem; }
  .profile-tabs a { flex: none; }
  .activity-list li { align-items: flex-start; flex-direction: column; gap: .2rem; }
  .hero-stage { min-height: 23rem; border-radius: 1rem; }
  .hero-stage-label { right: .85rem; bottom: .85rem; left: .85rem; }
}

@media(max-width:480px) {
  .directory-search-actions .button { width: 100%; }
  .full-directory-actions { align-items: stretch; flex-direction: column; }
  .full-directory-actions form, .full-directory-actions .button { width: 100%; }
  .site-header-inner, .site-main, .site-footer-inner, .messages-inner { width: min(100% - 1.25rem, var(--content)); }
  .brand-copy small { letter-spacing: .13em; }
  .mobile-nav nav { grid-template-columns: 1fr; padding-inline: .65rem; }
  .auth-card, .editor-card, .detail-card, .profile-panel, .landing-section, .calendar-section, .document-library-section { padding: 1rem; }
  .button-row { align-items: stretch; flex-direction: column; }
  .button-row .button { width: 100%; }
  .actions { align-items: stretch; flex-direction: column; }
  .actions .button { width: 100%; }
  .calendar-nav-button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .calendar-month-nav h2 { min-width: 8rem; font-size: 1.45rem; }
  .upcoming-grid > a { grid-template-columns: 3.7rem 1fr; }
  .plain-list li { align-items: flex-start; flex-direction: column; gap: .2rem; }
  .people-access-row { grid-template-columns: 1fr; }
  .people-access-row > div:last-child { grid-column: auto; }
  .gate-lot-row { grid-template-columns: 1fr 1fr; align-items: start; padding: .65rem .7rem; }
  .gate-lot-row > strong, .gate-lot-row > .button { grid-column: 1 / -1; }
  .gate-lot-row > .button { width: 100%; }
}

@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .critical-announcement-track { width: 100%; }
  .critical-announcement-group { width: 100%; white-space: normal; }
}

@media print {
  .site-header, .site-footer, .messages, .critical-announcement-banner, .no-print, .review-notice { display: none !important; }
  body { color: #000; background: #fff; font-size: 10pt; }
  .site-main { width: 100%; padding: 0; }
}

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(17rem, .75fr);
  gap: 1.25rem;
  align-items: start;
}
.public-inquiry-form .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 1rem;
}
.public-inquiry-form input,
.public-inquiry-form select,
.public-inquiry-form textarea,
.outbound-email-form input,
.outbound-email-form select {
  width: 100%;
}
.honeypot-field {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.recipient-list {
  display: grid;
  gap: .75rem;
}
.recipient-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: end;
  padding: .9rem 0;
  border-top: 1px solid var(--line);
}
.recipient-row:first-child { border-top: 0; }
.recipient-row .inline-form {
  display: grid;
  grid-template-columns: minmax(10rem, 1fr) auto;
  gap: .5rem;
  align-items: end;
  margin: 0;
}
.recipient-row .inline-form label { grid-column: 1 / -1; }
.settings-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: 1rem 0;
}
.settings-summary div {
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}
.settings-summary dt { font-weight: 700; }
.settings-summary dd { margin: .25rem 0 0; }
@media (max-width: 760px) {
  .contact-layout,
  .public-inquiry-form .form-grid,
  .settings-summary { grid-template-columns: 1fr; }
  .recipient-row { align-items: stretch; flex-direction: column; }
}

.auth-divider { display: flex; align-items: center; gap: .75rem; margin: 1rem 0; color: var(--muted); }
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; border-top: 1px solid var(--line); }
.credential-list { width: 100%; margin: .7rem 0; }
.credential-list > li { display: grid; width: 100%; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .75rem; padding: .65rem .75rem; border: 1px solid var(--line); background: var(--surface); }
.credential-list > li div { display: grid; min-width: 0; gap: .08rem; }
.credential-list > li strong { overflow-wrap: anywhere; }
.credential-list > li span { color: var(--muted); font-size: .82rem; }
.security-card .credential-remove-form { align-self: center; margin: 0; }
.credential-remove-button[type="submit"] { min-height: auto; padding: .3rem .55rem; border: 1px solid #d7aaa5; border-radius: .4rem; color: var(--danger-dark); background: #fff; box-shadow: none; font-size: .76rem; font-weight: 780; line-height: 1.2; }
.credential-remove-button[type="submit"]:hover { color: #fff; border-color: var(--danger-dark); background: var(--danger-dark); box-shadow: none; transform: none; }
.credential-management-panel { display: grid; width: 100%; gap: .55rem; margin: .15rem 0 .7rem; padding: .75rem; border: 1px solid #c8d6cc; border-radius: .5rem; background: var(--pine-050); }
.credential-management-panel p, .credential-management-note { margin: 0; color: var(--muted-strong); font-size: .84rem; }
.credential-management-panel .button { width: 100%; margin: 0; }
.credential-management-note { width: 100%; margin: .15rem 0 .7rem; padding: .7rem .75rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--surface); }
.credential-enrollment-actions { display: grid; width: 100%; gap: .55rem; margin-top: auto; padding-top: .2rem; }
.credential-enrollment-actions .button { width: 100%; margin: 0; }

/* Explicit document access policy */
.policy-matrix { display: grid; gap: .55rem; margin: 1rem 0; padding: 1rem; border: 1px solid var(--line); border-radius: .7rem; }
.policy-matrix > h2 { margin: .8rem 0 0; font-size: 1rem; }
.policy-row { display: grid; grid-template-columns: minmax(12rem,1fr) minmax(12rem,1fr); align-items: center; gap: 1rem; margin: 0; padding: .55rem .7rem; border: 1px solid var(--line); border-radius: .45rem; background: var(--surface); }
.policy-row-locked { grid-template-columns: minmax(12rem,1fr) minmax(10rem,1fr) auto; background: var(--surface-cool); }
.policy-role-row ul { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.policy-role-row li label { display: inline-flex; align-items: center; gap: .3rem; margin: 0; }
.advanced-access { margin: 1rem 0; border: 1px solid var(--line); border-radius: .65rem; background: var(--surface-cool); }
.advanced-access > summary { cursor: pointer; padding: .8rem 1rem; font-weight: 800; }
.advanced-access-body { padding: 0 1rem 1rem; }
.previous-code-years { margin-top: 1rem; }
.previous-year-block { margin: .55rem 0; border: 1px solid var(--line); border-radius: .55rem; background: var(--surface); }
.previous-year-block > summary { cursor: pointer; padding: .65rem .8rem; font-weight: 800; }
.contractor-month-inputs input[type="text"] { flex: 0 0 8ch; width: 8ch; min-width: 8ch; max-width: 8ch; box-sizing: content-box; }
@media(max-width:760px) { .policy-row, .policy-row-locked { grid-template-columns: 1fr; gap: .4rem; } }
.contractor-month-inputs > label { min-height: 1.8rem; padding-block: .12rem; }
.contractor-month-inputs input[type="text"] { min-height: 1.55rem; padding: .16rem .42rem; line-height: 1.15; }

.policy-row-locked { background: var(--surface-cool); color: var(--muted-strong); }
.policy-row-locked input { cursor: not-allowed; opacity: .58; }
.policy-row-locked label { cursor: not-allowed; }

/* Approved public information architecture — September 2026 */
.nav-dropdown { position: relative; }
.nav-dropdown > summary {
  display: inline-flex;
  align-items: center;
  min-height: 2.65rem;
  padding: .52rem .7rem;
  border: 0;
  border-radius: .45rem;
  color: var(--ink-soft);
  background: transparent;
  font-size: .88rem;
  font-weight: 720;
  cursor: pointer;
  list-style: none;
}
.nav-dropdown > summary::-webkit-details-marker { display: none; }
.nav-dropdown > summary::marker { content: ""; }
.nav-dropdown > summary:hover, .nav-dropdown[open] > summary, .nav-dropdown.is-active > summary { color: var(--pine-950); background: var(--pine-050); }
.nav-dropdown.is-active > summary { box-shadow: inset 0 -2px var(--pine-700); }
.nav-dropdown-menu { position: absolute; z-index: 80; top: calc(100% + .35rem); right: 0; display: grid; min-width: 13rem; gap: .15rem; padding: .45rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--surface); box-shadow: var(--shadow-md); }
.desktop-nav .nav-dropdown-menu a { width: 100%; justify-content: flex-start; }
.amenity-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .9rem; margin-bottom: clamp(3.5rem,7vw,6rem); }
.amenity-grid article { padding: clamp(1.25rem,3vw,2rem); border: 1px solid var(--line); border-radius: 1rem; background: var(--surface-cool); }
.amenity-grid h2 { font-size: 1.65rem; }
.amenity-grid p:last-child { color: var(--muted-strong); }
.public-action-panel { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 1rem; padding: clamp(1.25rem,3vw,2rem); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface-cool); }
.public-action-panel h2 { margin-bottom: .35rem; }
.public-action-panel p:last-child { margin-bottom: 0; }
.location-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(18rem,.85fr); gap: 1rem; margin-bottom: 1rem; }
.location-map-card { overflow: hidden; margin: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-sm); }
.location-map-card img { display: block; width: 100%; height: auto; }
.location-map-card figcaption { padding: .8rem 1rem; color: var(--muted); font-size: .85rem; }
.location-details { align-self: stretch; }
.location-details address { margin: 1rem 0; color: var(--ink); font-size: 1.12rem; font-style: normal; font-weight: 760; line-height: 1.55; }
@media(max-width:1050px) {
  .desktop-nav .nav-dropdown > summary { padding-inline: .48rem; font-size: .82rem; }
}
@media(max-width:920px) {
  .mobile-nav nav .nav-dropdown { grid-column: 1/-1; }
  .mobile-nav nav .nav-dropdown > summary { display: block; width: 100%; min-height: auto; padding: .72rem; border-radius: .4rem; color: var(--ink-soft); font-size: .9rem; font-weight: 740; }
  .mobile-nav nav .nav-dropdown-menu { position: static; display: grid; grid-template-columns: 1fr; width: calc(100% - .75rem); min-width: 0; margin: .25rem 0 0 .75rem; padding: 0 0 0 .65rem; gap: .25rem; border: 0; border-left: 2px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; }
  .mobile-nav nav .nav-dropdown-menu a { padding: .65rem .72rem; }
}
@media(max-width:760px) {
  .amenity-grid, .location-layout { grid-template-columns: 1fr; }
  .public-action-panel { align-items: flex-start; flex-direction: column; }
  .public-action-panel .button { width: 100%; }
}
@media(max-width:520px) {
  .mobile-nav nav .nav-dropdown-menu { grid-template-columns: 1fr; }
}
.mail-panel { max-width: 74rem; margin-bottom: 1rem; }
.mail-panel > h2 { margin: 0 0 .6rem; }
.mail-panel > .muted-copy { margin: 0 0 1rem; }
.mail-panel .profile-form { max-width: 48rem; }
.mail-panel .mail-compose-form { grid-template-columns: minmax(0, 1fr); max-width: 52rem; gap: 1rem; }
.mail-compose-form > p, .mail-compose-form > .button-row { min-width: 0; margin: 0; }
.mail-compose-form > p select, .mail-compose-form > p input { width: 100%; }
.mail-panel input[type="text"], .mail-panel input[type="email"], .mail-panel select, .mail-panel textarea { width: 100%; }
.mail-preview { border-top: 1px solid var(--line); margin-top: 1.25rem; padding-top: 1.25rem; }
.mail-preview h2 { margin: 0 0 .7rem; }
.mail-body { white-space: normal; overflow-wrap: anywhere; }
.mail-record-list li, .mail-policy-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .75rem; border: 1px solid var(--line); }
.mail-record-list li span { min-width: 0; overflow-wrap: anywhere; }
.mail-record-list li > div:first-child { min-width: 0; }
.mail-record-list li .button-row { flex: none; }
.mail-record-list li p { margin: .2rem 0 0; }
.mail-list-summary { display: grid; gap: .35rem; min-width: 0; }
.mail-source-summary { display: flex; flex-wrap: wrap; gap: .35rem; }
.mail-source-summary span { padding: .25rem .5rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--muted-strong); font-size: .82rem; }
.mail-detail-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin: 0 0 1rem; }
.mail-detail-meta > div { min-width: 0; padding: .75rem .85rem; border: 1px solid var(--line); border-radius: .55rem; background: var(--surface-cool); }
.mail-detail-meta dt { color: var(--muted-strong); font-size: .8rem; font-weight: 700; }
.mail-detail-meta dd { margin: .15rem 0 0; overflow-wrap: anywhere; font-weight: 600; }
.mail-preview + .button-row { margin-top: 1.25rem; }
.mail-policy-row { max-width: 48rem; }
@media(max-width:640px) { .mail-record-list li, .mail-policy-row { align-items: flex-start; flex-direction: column; } .mail-record-list li .button-row { width: 100%; } .mail-detail-meta { grid-template-columns: 1fr; } }
.mail-list-form { display: grid; gap: .9rem; max-width: 40rem; }
.mail-list-form > p { margin: 0; }
.mail-list-selector { border: 1px solid var(--line); border-radius: .65rem; }
.mail-list-selector > summary { cursor: pointer; padding: .7rem .9rem; font-weight: 700; }
.mail-list-selector[open] > summary { border-bottom: 1px solid var(--line); }
.mail-list-options { max-height: 13rem; overflow: auto; padding: .7rem .9rem; }
.mail-list-options label { display: block; margin: .35rem 0; }
.mail-list-options input { margin-right: .5rem; }
.mail-field-disabled { opacity: .5; }
.mail-field-disabled input { background: var(--surface-cool); cursor: not-allowed; }

.mail-panel .mail-editor-field { grid-column: 1 / -1; min-width: 0; width: 100%; }
.mail-editor-field > label { display: block; margin-bottom: .4rem; font-weight: 700; }
.mail-editor-field .ql-toolbar, .mail-editor-field .ql-container { max-width: 100%; background: var(--surface); }
.mail-editor-field .ql-toolbar { display: flex; flex-wrap: wrap; gap: .25rem; }
.mail-editor-field .ql-container { height: auto; min-height: 15rem; }
.mail-editor-field .ql-editor { min-height: 15rem; height: auto; overflow-wrap: anywhere; font-size: 1rem; line-height: 1.5; }
.mail-editor-field .ql-editor img, .mail-body img { display: block; max-width: 100%; height: auto; margin: .7rem 0; }
.mail-body { line-height: 1.55; }
.mail-recipient-trigger { margin-left: .5rem; }
.mail-recipient-dialog { width: min(42rem, calc(100% - 2rem)); }
.mail-recipient-dialog-inner { display: grid; gap: .75rem; padding: clamp(1.2rem, 4vw, 2rem); }
.mail-recipient-dialog-inner > p { margin: 0; }
.mail-recipient-list { max-height: min(55vh, 30rem); overflow: auto; margin: 0; }
.mail-recipient-list li { min-width: 0; align-items: baseline; }
.mail-recipient-list .mail-recipient-address { min-width: 0; overflow-wrap: anywhere; color: var(--ink); font-size: 1rem; }
.mail-recipient-list small { flex: none; color: var(--muted); }
.mail-recipient-list .mail-recipient-excluded { color: var(--muted); background: var(--surface-cool); }
.mail-recipient-list .mail-recipient-excluded .mail-recipient-address { color: var(--muted); text-decoration: line-through; }

/* Provisional Member/Renter accounts need an unmistakable, compact review cue. */
.onboarding-alert { margin: 1rem 0; padding: .85rem 1rem; border: 1px solid var(--gold); border-left: 4px solid var(--notice); border-radius: var(--radius-sm); background: var(--notice-soft); color: var(--ink); }
.onboarding-alert strong { color: var(--notice); }

/* Read-only audit explorer */
.audit-explorer { margin-bottom: 1rem; }
.audit-explorer > h2, .audit-results-heading h2 { margin: 0 0 .4rem; }
.audit-filter-form { display: grid; gap: 1rem; }
.audit-filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem 1rem; }
.audit-filter-field { min-width: 0; }
.audit-filter-field label { display: block; margin-bottom: .25rem; font-size: .85rem; font-weight: 750; }
.audit-filter-field input, .audit-filter-field select { width: 100%; }
.audit-filter-field .errorlist { color: var(--danger); margin: .25rem 0 0; }
.audit-results-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.audit-results-heading p { margin: 0; }
.audit-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.audit-table { width: 100%; min-width: 62rem; border-collapse: collapse; background: var(--surface); }
.audit-table th, .audit-table td { padding: .75rem .85rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.audit-table th { background: var(--surface-cool); font-size: .8rem; }
.audit-table td { overflow-wrap: anywhere; }
.audit-table tr:last-child td { border-bottom: 0; }
.audit-table td small { display: block; color: var(--muted); font-size: .76rem; }
.audit-table code { font-size: .81rem; }
.audit-table summary { cursor: pointer; color: var(--pine-800); font-weight: 750; }
.audit-event-details { min-width: 15rem; max-width: 25rem; }
.audit-event-details p { margin: .4rem 0; }
.audit-event-details pre { max-height: 15rem; overflow: auto; margin: .3rem 0 0; padding: .6rem; border-radius: .3rem; background: var(--surface-cool); white-space: pre-wrap; overflow-wrap: anywhere; font-size: .76rem; }
.audit-pagination { display: flex; gap: 1rem; align-items: center; justify-content: center; margin-top: 1rem; }
@media (max-width: 800px) { .audit-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .audit-filter-grid { grid-template-columns: 1fr; } .audit-results-heading { flex-direction: column; } }
