/* HOA Design A: portfolio first. Scoped layout rules keep wrapped controls and
   nested home cards 14px apart instead of inheriting unrelated card margins. */
.hoa { display:grid; gap:20px; max-width:1200px; }
.hoa-stack { display:grid; gap:14px; min-width:0; }
.hoa-stack:empty { display:none; }
/* Measured HOA forms inherited a 26px section margin on top of the grid gap. */
.hoa-panel { margin:0; display:grid; gap:14px; min-width:0; padding:20px; border:1px solid var(--hair); border-radius:14px; background:var(--white); }
.hoa h2,.hoa h3,.hoa p { margin:0; }
.hoa h2 { font-size:18px; }
.hoa h3 { font-size:16px; overflow-wrap:anywhere; }
.hoa-note { color:var(--steel); line-height:1.6; overflow-wrap:anywhere; }
.hoa-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.hoa-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr)); gap:14px; }
.hoa-association { display:grid; gap:14px; padding:20px; border:1px solid var(--hair); border-radius:14px; background:var(--white); color:var(--ink); text-decoration:none; min-width:0; }
.hoa-association:hover { border-color:var(--accent); }
.hoa-count { font-size:24px; font-variant-numeric:tabular-nums; }
.hoa-home { display:grid; gap:14px; padding:20px; border:1px solid var(--hair); border-radius:10px; min-width:0; }
.hoa-form { display:grid; gap:14px; max-width:640px; }
.hoa-form .field { margin:0; min-width:0; }
.hoa-form input,.hoa-form select { width:100%; min-height:44px; font-size:16px; }
.hoa button { min-height:44px; white-space:normal; }
.hoa a:focus-visible,.hoa button:focus-visible,.hoa input:focus-visible,.hoa select:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.hoa-error { color:var(--red); overflow-wrap:anywhere; }
.hoa-error:empty { display:none; }
.hoa-members { display:grid; gap:14px; margin:0; padding-left:20px; }
.hoa-members li { overflow-wrap:anywhere; }
.hoa-members span { display:block; margin-top:6px; color:var(--steel); }
@media(max-width:600px) { .hoa-panel,.hoa-home,.hoa-association { padding:14px; } .hoa-actions>button { width:100%; } }

.hoa-family { max-width:1100px; margin:0 auto; padding:20px; }
/* Governance evidence and minutes remain plain text with explicit whitespace. */
.hoa-record-text { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.6; }
.hoa-form textarea { width:100%; min-height:120px; font-size:16px; resize:vertical; }
.hoa textarea:focus-visible,.hoa summary:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.hoa-history { display:block; min-width:0; }
.hoa-history>summary { cursor:pointer; min-height:44px; padding:10px 0; font-weight:600; }
.hoa-history[open]>.hoa-stack { margin-top:14px; }
/* Association books keep debit/credit figures aligned without a wide mobile table. */
.hoa-book-line { display:grid; grid-template-columns:minmax(0,1fr) minmax(80px,auto) minmax(80px,auto); gap:14px; align-items:start; padding-bottom:14px; border-bottom:1px solid var(--hair); font-variant-numeric:tabular-nums; }
.hoa-book-line>div { display:grid; gap:6px; min-width:0; overflow-wrap:anywhere; }
.hoa-book-line>div:not(:first-child) { text-align:right; }
.hoa-book-line span { color:var(--steel); font-size:12px; }
.hoa-notice { padding:14px; border:1px solid var(--accent); border-radius:10px; line-height:1.6; }
@media(max-width:480px) { .hoa-book-line { grid-template-columns:1fr 1fr; } .hoa-book-line>div:first-child { grid-column:1/-1; } .hoa-book-line>div:not(:first-child) { text-align:left; } }

/* Card entry lives in an association-specific frame so the provider key never leaks across homes. */
.hoa-card-frame { display:block; width:100%; min-height:260px; border:1px solid var(--hair); border-radius:8px; background:var(--paper); }
/* Consent controls keep their native-sized hit box within the form grid. */
.hoa-form input[type="checkbox"],.hoa-form input[type="radio"] { width:20px; height:20px; min-height:20px; flex:0 0 20px; padding:0; }
.hoa-form label:has(>input[type="checkbox"]),.hoa-form label:has(>input[type="radio"]) { display:flex; align-items:flex-start; gap:10px; line-height:1.5; }
.hoa-form>[role="status"]:empty,.hoa-form>.hoa-error:empty { display:none; }
.hoa-form label:has(>input[type="checkbox"]),.hoa-form label:has(>input[type="radio"]) { text-transform:none; letter-spacing:normal; font-size:14px; font-weight:400; color:var(--ink); }
