:root {
    --ink: #17211d;
    --muted: #66736d;
    --forest: #17463b;
    --forest-2: #236b58;
    --mint: #dff3e8;
    --cream: #f6f5ef;
    --paper: #fff;
    --line: #dfe5e1;
    --danger: #a23a3a;
    --shadow: 0 18px 48px rgba(30, 55, 47, .09);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--ink);
    background: var(--cream);
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 90% 0, #e4f0e8 0, transparent 27rem), var(--cream); }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(2rem, 5vw, 3.7rem); line-height: 1.02; letter-spacing: -.045em; margin-bottom: 1rem; }
h2 { font-size: clamp(1.5rem, 3vw, 2.25rem); letter-spacing: -.025em; margin-bottom: .6rem; }
p { color: var(--muted); line-height: 1.7; }

.page-shell { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: 3.5rem 0 6rem; }
.topbar { min-height: 76px; padding: 0 max(1rem, calc((100vw - 1180px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: rgba(255,255,255,.88); border-bottom: 1px solid rgba(23,70,59,.1); backdrop-filter: blur(14px); position: sticky; top: 0; z-index: 10; }
.topbar nav { display: flex; align-items: center; gap: .5rem; }
.topbar nav a { padding: .7rem .9rem; text-decoration: none; border-radius: 999px; color: #44514b; font-weight: 650; }
.topbar nav a:hover { background: var(--mint); color: var(--forest); }
.brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; font-size: 1.18rem; font-weight: 800; letter-spacing: -.025em; }
.brand-mark { width: 2.1rem; height: 2.1rem; display: grid; place-items: center; border-radius: 11px; background: var(--forest); color: #fff; font-family: Georgia, serif; }
.brand-login { margin-bottom: 2.5rem; }
.card { background: rgba(255,255,255,.94); border: 1px solid rgba(23,70,59,.1); border-radius: 22px; box-shadow: var(--shadow); }
.eyebrow { display: block; margin-bottom: .7rem; color: var(--forest-2); font-size: .76rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.muted { color: var(--muted); }

.auth-layout { min-height: calc(100vh - 9.5rem); display: grid; grid-template-columns: 1.1fr .8fr; align-items: center; gap: clamp(3rem, 8vw, 8rem); }
.auth-story { padding: 3rem 0; }
.auth-story h1 { max-width: 13ch; }
.auth-story p { max-width: 50ch; font-size: 1.1rem; }
.story-detail { display: flex; gap: .7rem; align-items: center; margin-top: 2rem; color: #435048; font-weight: 650; }
.story-detail span { width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border-radius: 50%; background: var(--mint); color: var(--forest); }
.auth-card, .form-card { padding: clamp(1.6rem, 5vw, 3rem); }
label { display: block; margin: 1.15rem 0 .45rem; font-weight: 730; font-size: .9rem; }
label span { font-weight: 500; color: var(--muted); }
input, select, textarea { width: 100%; min-height: 48px; padding: .75rem .9rem; border: 1px solid #cad4cf; border-radius: 12px; color: var(--ink); background: #fff; outline: none; }
textarea { resize: vertical; line-height: 1.55; }
input:focus, select:focus, textarea:focus { border-color: var(--forest-2); box-shadow: 0 0 0 4px rgba(35,107,88,.12); }
.button { min-height: 46px; padding: .75rem 1.1rem; display: inline-flex; justify-content: center; align-items: center; border: 0; border-radius: 12px; text-decoration: none; font-weight: 780; cursor: pointer; }
.button-primary { background: var(--forest); color: #fff; box-shadow: 0 8px 20px rgba(23,70,59,.18); }
.button-primary:hover { background: #0e352c; }
.button-secondary { background: #e8efeb; color: var(--forest); }
.button-danger { color: #8f2929; background: #fff0f0; border: 1px solid #efc2c2; }
.button:disabled { cursor: not-allowed; opacity: .42; box-shadow: none; }
.button-wide { width: 100%; margin-top: 1.5rem; }
.button-small { min-height: 38px; padding: .5rem .75rem; font-size: .82rem; }
.form-footnote { margin: 1rem 0 0; font-size: .78rem; text-align: center; }
.preferences-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .75fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.notification-preferences { padding: 1.5rem; }
.preference-option { margin: 0; padding: 1rem; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .85rem; border-bottom: 1px solid var(--line); cursor: pointer; }
.preference-option:last-of-type { border-bottom: 0; }
.preference-option input { width: 20px; min-height: 20px; margin-top: .1rem; accent-color: var(--forest); }
.preference-option > span { display: grid; gap: .25rem; }
.preference-option strong { color: var(--ink); }
.preference-option small { color: var(--muted); line-height: 1.45; }
.preference-coming-soon { opacity: .58; cursor: default; }
.preference-channel-heading { margin: 1.5rem 1rem .35rem; }
.push-device-settings { margin-top: 1rem; padding: 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-radius: 14px; background: var(--mint); }
.push-device-settings > div:first-child { display: grid; gap: .25rem; }
.push-device-settings small { color: var(--muted); line-height: 1.4; }
.push-device-actions { display: flex; align-items: center; gap: .75rem; }

.hero { display: flex; justify-content: space-between; gap: 2rem; align-items: end; padding: 1.5rem 0 2.5rem; }
.hero h1 { margin-bottom: .55rem; }
.hero p { margin-bottom: 0; font-size: 1.05rem; }
.community-switcher { position: relative; }
.community-switcher summary { cursor: pointer; color: var(--forest); font-weight: 750; }
.community-switcher form button { width: 100%; padding: .5rem; border: 0; background: transparent; text-align: left; cursor: pointer; }
.stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.stat-card { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; padding: 1.35rem; }
.stat-card .stat-icon { grid-row: span 2; width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 14px; background: var(--mint); color: var(--forest); font-weight: 900; }
.stat-card strong { font-size: 1.25rem; }
.stat-card > span:last-child { color: var(--muted); font-size: .86rem; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 3.5rem 0 1.2rem; }
.section-heading h1, .section-heading h2, .section-heading p { margin-bottom: 0; }
.heading-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.page-heading { align-items: center; margin-top: 0; }
.feature-card { padding: 1.5rem; display: grid; grid-template-columns: 170px 1fr; gap: 2rem; align-items: center; overflow: hidden; }
.feature-visual { min-height: 150px; display: grid; place-items: center; border-radius: 17px; color: var(--forest); background: linear-gradient(135deg, #cdebdc, #f3dca9); font: 800 2.5rem/1 Georgia, serif; letter-spacing: .08em; }
.feature-card h3 { font-size: 1.35rem; margin-bottom: .35rem; }
.feature-card p { margin-bottom: .5rem; }
.text-link { color: var(--forest); font-weight: 780; text-decoration: none; }
.text-button { padding: 0; border: 0; color: var(--forest); background: transparent; font: inherit; font-size: .76rem; font-weight: 780; cursor: pointer; }
.text-button:hover, .text-link:hover { text-decoration: underline; }
.text-button-danger { color: #a43d35; }
.module-grid { margin-top: 1rem; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.module-card { display: flex; gap: .9rem; align-items: center; padding: 1.1rem; box-shadow: none; }
.module-grid a.module-card { color: inherit; text-decoration: none; }
.module-card > span { width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border-radius: 12px; background: #eef2ef; color: var(--forest); font-weight: 900; }
.module-card div { display: grid; }
.module-card small { color: var(--muted); margin-top: .15rem; }
.compact-feature { grid-template-columns: 110px 1fr; }
.compact-feature .feature-visual { min-height: 100px; }

.list-card { overflow: hidden; box-shadow: none; }
.visit-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.visit-row:last-child { border-bottom: 0; }
.visit-row-link { color: inherit; text-decoration: none; }
.visit-row-link:hover { background: #f8fbf9; }
.avatar { width: 2.8rem; height: 2.8rem; display: grid; place-items: center; border-radius: 50%; background: var(--mint); color: var(--forest); font-weight: 850; }
.visit-main, .visit-date { display: grid; gap: .2rem; }
.visit-main span, .visit-date span { color: var(--muted); font-size: .84rem; }
.visit-date { text-align: right; }
.status { padding: .38rem .6rem; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.status-active { color: #156146; background: #dff4e9; }
.status-pending { color: #795313; background: #fff1cc; }
.status-inactive { color: #6f7773; background: #edf0ee; }
.empty-state { padding: 4rem 1rem; text-align: center; }
.empty-state > span { width: 3.5rem; height: 3.5rem; margin: 0 auto 1rem; display: grid; place-items: center; background: var(--mint); border-radius: 50%; color: var(--forest); font-size: 1.4rem; }
.unit-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.unit-row:last-child { border-bottom: 0; }
.unit-row:hover { background: #f8fbf9; }
.unit-row > span:nth-child(2) { display: grid; gap: .2rem; }
.unit-row small { color: var(--muted); }
.unit-icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 14px; color: var(--forest); background: var(--mint); font-size: 1.25rem; }
.unit-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr); gap: 1.5rem; align-items: start; }
.compact-heading { margin-top: 0; }
.unit-form-card { position: sticky; top: 96px; }
.occupancy-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.occupancy-row:last-child { border-bottom: 0; }
.audit-filter { width: min(290px, 100%); }
.audit-filter label { margin-top: 0; }
.audit-row { padding: 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: start; border-bottom: 1px solid var(--line); }
.audit-row:last-child { border-bottom: 0; }
.audit-icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 14px; color: var(--forest); background: var(--mint); font-weight: 900; }
.audit-main .eyebrow { margin-bottom: .25rem; }
.audit-main p { margin: .4rem 0; }
.audit-main details { color: var(--muted); font-size: .84rem; }
.audit-main summary { cursor: pointer; font-weight: 700; }
.audit-context { margin: .6rem 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem 1rem; }
.audit-context > div { display: grid; grid-template-columns: auto 1fr; gap: .4rem; }
.audit-context dt { font-weight: 700; }
.audit-context dd { margin: 0; overflow-wrap: anywhere; }
.audit-meta { display: grid; gap: .25rem; min-width: 170px; text-align: right; }
.audit-meta span, .audit-meta small { color: var(--muted); }
.announcement-list { display: grid; gap: 1rem; }
.announcement-card { padding: clamp(1.3rem, 4vw, 2rem); box-shadow: none; }
.announcement-card h2 { margin: .9rem 0 .55rem; }
.announcement-card small, .announcement-card time { color: var(--muted); }
.announcement-important { border-left: 5px solid #d19b35; }
.announcement-meta { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.announcement-body { margin-bottom: 1rem; color: #405049; line-height: 1.7; overflow-wrap: anywhere; }
.announcement-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.heading-actions, .batch-toolbar-actions { display: flex; align-items: center; gap: .65rem; }
.announcement-preview-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.announcement-preview { padding: 1.25rem; box-shadow: none; }
.announcement-preview h3 { margin-bottom: .35rem; }
.announcement-preview p { margin-bottom: .65rem; }
.announcement-preview time { color: var(--muted); font-size: .78rem; }
.empty-preview { grid-column: 1 / -1; padding: 1.25rem; box-shadow: none; }
.empty-preview p { margin: 0; }

.expense-management-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .55fr); gap: 1.5rem; align-items: start; }
.expense-form { position: sticky; top: 96px; }
.expense-row, .account-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.expense-row:last-child, .account-row:last-child { border-bottom: 0; }
a.expense-row:hover { background: #f8fbf9; }
.expense-row > span:nth-child(2), .account-row > span:nth-child(2) { display: grid; gap: .2rem; }
.expense-row small, .account-row small { color: var(--muted); }
.receipt-link { margin-top: .25rem; color: var(--forest); font-size: .78rem; font-weight: 780; text-decoration: none; }
.receipt-link:hover { text-decoration: underline; }
.batch-receipt-form { display: block; }
.batch-receipt-toolbar { padding: .85rem 1.2rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: var(--mint); border-bottom: 1px solid var(--line); }
.batch-receipt-toolbar > span { display: grid; gap: .15rem; }
.batch-receipt-toolbar small { color: var(--muted); }
.receipt-checkbox { display: flex; align-items: center; gap: .35rem; margin: 0; color: var(--muted); font-size: .76rem; font-weight: 760; cursor: pointer; }
.receipt-checkbox input { width: 18px; height: 18px; accent-color: var(--forest); }
.receipt-actions { display: grid; justify-items: start; gap: .3rem; }
.receipt-actions form { margin: 0; }
.delivery-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.delivery-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.delivery-row:last-child { border-bottom: 0; }
.delivery-row > span:nth-child(2) { display: grid; gap: .2rem; }
.delivery-row small, .delivery-row time { color: var(--muted); }
.delivery-error { color: #a43d35 !important; overflow-wrap: anywhere; }
.liquidation-form, .account-filter { padding: 1rem 1.2rem; display: grid; grid-template-columns: minmax(190px, .5fr) minmax(190px, .5fr) auto; gap: 1rem; align-items: end; box-shadow: none; }
.liquidation-form label, .account-filter label { margin-top: 0; }
.expense-liquidations { margin-top: 1rem; }
.liquidation-total { min-width: 220px; display: grid; gap: .2rem; text-align: right; }
.liquidation-total small { color: var(--muted); }
.liquidation-total strong { color: var(--forest); font-size: 1.8rem; }
.publish-banner { margin-bottom: 1.5rem; padding: 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; box-shadow: none; }
.publish-banner p { margin: .25rem 0 0; }
.liquidation-unit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.unit-charge-card { padding: 1.25rem; box-shadow: none; }
.unit-charge-card header { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.unit-charge-card header h2 { margin: 0; }
.unit-charge-card header > strong { color: var(--forest); font-size: 1.25rem; }
.unit-charge-card dl { margin: 1rem 0 0; }
.unit-charge-card dl div { padding: .55rem 0; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); }
.unit-charge-card dt { color: var(--muted); }
.unit-charge-card dd { margin: 0; font-weight: 750; }
.account-filter { grid-template-columns: minmax(220px, 1fr) auto; margin-bottom: 1rem; }
.account-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1rem; }
.dashboard-financial-summary .account-stat { color: inherit; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.dashboard-financial-summary .account-stat:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(26, 54, 45, .12); }
.dashboard-financial-summary .account-stat small { color: var(--muted); font-weight: 500; }
.dashboard-next-due { margin-top: 1rem; }
.incident-filter { margin: 1rem 0; padding: 1rem; display: grid; grid-template-columns: minmax(180px, 280px) auto; gap: .75rem; align-items: end; box-shadow: none; }
.incident-filter label { grid-column: 1 / -1; margin: 0; }
.incident-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 1rem; align-items: center; color: inherit; text-decoration: none; border-bottom: 1px solid var(--line); }
.incident-row:hover { background: #f8fbf9; }
.incident-row small { display: block; margin-top: .25rem; color: var(--muted); }
.incident-priority { min-width: 5rem; padding: .35rem .55rem; border-radius: 999px; text-align: center; font-size: .72rem; font-weight: 800; background: #edf0ee; }
.priority-high { color: #8a5417; background: #fff1cc; } .priority-urgent { color: #962c2c; background: #ffe0e0; }
.incident-detail-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.42fr); gap: 1.5rem; align-items: start; }
.incident-description { padding: 1.5rem; }.incident-management { position: sticky; top: 96px; }
.incident-photos { display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; margin: 1rem 0; }.incident-photos img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 14px; }
.incident-timeline { margin-bottom: 1rem; overflow: hidden; }.incident-comment { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto 1fr; gap: .8rem; border-bottom: 1px solid var(--line); }.incident-comment p { margin: .35rem 0; }.incident-comment time { color: var(--muted); font-size: .76rem; }.incident-comment-internal { background: #fff8e6; }
.provider-row { padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); }.provider-row summary { display: flex; justify-content: space-between; gap: 1rem; cursor: pointer; }.provider-row summary > span:first-child { display: grid; gap: .2rem; }.provider-row summary small { color: var(--muted); }.provider-row form { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.work-order-cards { display: grid; gap: 1rem; margin-bottom: 1.5rem; }.work-order-card { padding: 1.2rem; box-shadow: none; }.work-order-heading { display: flex; justify-content: space-between; gap: 1rem; }.work-order-heading > div { display: grid; gap: .3rem; }.work-order-heading small { color: var(--muted); }.work-order-card details { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }.work-order-card summary { cursor: pointer; color: var(--forest); font-weight: 750; }
.work-order-finance-list { display: grid; gap: 1rem; margin-bottom: 1.5rem; }.work-order-finance-card { padding: 1.2rem; box-shadow: none; }.work-order-finance-card details { margin-top: .85rem; padding-top: .85rem; border-top: 1px solid var(--line); }.work-order-finance-card summary { cursor: pointer; color: var(--forest); font-weight: 750; }.work-order-documents { margin-top: 1rem; }.work-order-document { padding: .75rem 0; display: flex; justify-content: space-between; gap: 1rem; align-items: center; border-top: 1px solid var(--line); }.work-order-document > span { display: grid; gap: .2rem; }.work-order-document small { color: var(--muted); }
.account-stat { padding: 1.2rem; display: grid; gap: .35rem; box-shadow: none; }
.account-stat span { color: var(--muted); font-size: .82rem; font-weight: 700; }
.account-stat strong { font-size: 1.25rem; }
.balance-credit { color: #147052 !important; }
.financial-actions-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.5rem 0; }
.financial-actions-grid .form-card { box-shadow: none; }
.movement-icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 14px; font-weight: 900; }
.movement-charge { color: #795313; background: #fff1cc; }
.movement-payment { color: #156146; background: #dff4e9; }
.movement-adjustment { color: #46546f; background: #e9edf6; }
.movement-fee { color: #8a3f1f; background: #fbe9dd; }
.period-status-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.period-status-card { padding: 1.15rem; box-shadow: none; }
.period-status-card header, .allocation-card header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.period-status-card h3, .allocation-card h3 { margin: 0; font-size: 1.25rem; }
.period-status-card dl { margin: 1rem 0 0; }
.period-status-card dl div { padding: .45rem 0; display: flex; justify-content: space-between; border-top: 1px solid var(--line); }
.period-status-card dt { color: var(--muted); }
.period-status-card dd { margin: 0; font-weight: 750; }
.allocation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.allocation-card { padding: 1.25rem; box-shadow: none; }
.allocation-card header > strong { color: var(--forest); font-size: .9rem; }
.interest-policy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.interest-policy-grid .form-card { box-shadow: none; }
.checkbox-label { display: flex; align-items: center; gap: .6rem; }
.checkbox-label input { width: 1.2rem; min-height: 1.2rem; }
.delinquency-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1rem; }
.delinquency-total { color: var(--danger); }
.delinquency-filter { padding: 1rem; display: grid; grid-template-columns: minmax(180px, 1fr) repeat(3, minmax(145px, .55fr)) auto auto; gap: .75rem; align-items: end; box-shadow: none; margin-bottom: 1rem; }
.delinquency-filter label { margin-top: 0; }
.delinquency-filter .text-link { padding: .75rem .35rem; }
.delinquency-table-wrap { overflow-x: auto; box-shadow: none; }
.delinquency-table { width: 100%; border-collapse: collapse; min-width: 880px; }
.delinquency-table th { padding: .85rem 1rem; color: var(--muted); background: #f4f7f5; font-size: .72rem; letter-spacing: .06em; text-align: left; text-transform: uppercase; }
.delinquency-table td { padding: 1rem; border-top: 1px solid var(--line); vertical-align: middle; }
.delinquency-table td:first-child, .delinquency-table td:nth-child(6) { display: grid; gap: .2rem; }
.delinquency-table small { color: var(--muted); }
.aging { width: max-content; padding: .34rem .52rem; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.aging-low { color: #4d5d56; background: #edf0ee; }
.aging-medium { color: #795313; background: #fff1cc; }
.aging-high { color: #9a4d20; background: #fbe9dd; }
.aging-critical { color: #8f2929; background: #fff0f0; }
.reconciliation-overview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .7fr); gap: 1rem; align-items: start; }
.reconciliation-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.bank-import-card { box-shadow: none; }
.bank-template-link { display: block; margin-top: .85rem; text-align: center; font-size: .84rem; }
.bank-rules-heading { margin-top: 2rem; }
.bank-rules-layout { display: grid; grid-template-columns: minmax(280px, .65fr) minmax(0, 1.35fr); gap: 1rem; align-items: start; }
.bank-rule-create { box-shadow: none; }
.bank-rule-create h3 { margin-top: 0; }
.bank-rule-list { display: grid; gap: .65rem; }
.bank-rule-card { padding: .75rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .75rem; box-shadow: none; }
.bank-rule-card > form:first-child { display: grid; grid-template-columns: minmax(170px, 1.5fr) minmax(90px, .6fr) 90px auto auto; align-items: center; gap: .5rem; }
.bank-rule-card input, .bank-rule-card select { min-height: 38px; padding: .45rem .6rem; }
.bank-rule-card .check-label { display: flex; align-items: center; gap: .35rem; white-space: nowrap; }
.bank-rule-card .check-label input { min-height: auto; }
.bank-rule-inactive { opacity: .62; }
.bank-rule-empty { min-height: 160px; }
.import-chip-list { display: flex; gap: .75rem; overflow-x: auto; padding-bottom: .35rem; }
.import-chip { min-width: 240px; padding: 1rem; display: grid; gap: .25rem; box-shadow: none; }
.import-chip span { color: var(--muted); font-size: .8rem; }
.bank-movement-list { display: grid; gap: .75rem; }
.bank-movement-card { padding: 1rem 1.15rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto minmax(230px, .65fr); align-items: center; gap: 1rem; box-shadow: none; }
.bank-expense { opacity: .76; }
.bank-movement-main { display: grid; gap: .2rem; min-width: 0; }
.bank-movement-main .eyebrow { margin: 0; }
.bank-movement-main small { color: var(--muted); overflow-wrap: anywhere; }
.suggestion-badge { width: max-content; max-width: 100%; margin-top: .15rem; padding: .3rem .5rem; border-radius: 999px; color: var(--forest); background: var(--mint); font-size: .7rem; font-weight: 780; }
.bank-amount { white-space: nowrap; font-size: 1.05rem; }
.bank-movement-action { display: grid; justify-items: end; gap: .35rem; }
.bank-movement-action form { width: 100%; display: grid; grid-template-columns: 1fr 1fr auto; gap: .5rem; }
.bank-movement-action select { min-height: 38px; padding: .45rem .6rem; }

.system-hero h1 { max-width: 12ch; }
.system-overview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.system-overview-grid .section-heading { margin-top: 3rem; }
.system-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.system-row:last-child { border-bottom: 0; }
.system-row > span:last-child { display: grid; gap: .2rem; }
.system-row small { color: var(--muted); }
.compact-empty { padding: 1.5rem; }
.compact-empty p { margin: 0; }
.system-management-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .62fr); gap: 1.5rem; align-items: start; }
.system-form-card { position: sticky; top: 96px; }
.administrator-row { padding: 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: start; border-bottom: 1px solid var(--line); }
.administrator-row:last-child { border-bottom: 0; }
.administrator-main { display: grid; gap: .25rem; min-width: 0; }
.administrator-main > span { color: var(--muted); font-size: .86rem; overflow-wrap: anywhere; }
.record-controls { display: grid; justify-items: end; gap: .55rem; }
.record-actions { position: relative; }
.record-actions summary { cursor: pointer; color: var(--forest); font-size: .82rem; font-weight: 780; list-style: none; }
.record-actions summary::-webkit-details-marker { display: none; }
.record-actions summary::after { content: ' ···'; }
.record-actions-panel { position: absolute; z-index: 8; top: calc(100% + .55rem); right: 0; width: min(380px, calc(100vw - 3rem)); padding: 1rem; display: grid; gap: 1rem; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow); text-align: left; }
.record-actions-panel form + form { padding-top: 1rem; border-top: 1px solid var(--line); }
.record-actions-panel label { margin-top: .7rem; }
.record-actions-panel .button-wide { margin-top: .8rem; }
.compact-fields { gap: .65rem; }
.system-management-grid > .list-card { overflow: visible; }
.assignment-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .55rem; }
.assignment-chips span { padding: .35rem .55rem; border-radius: 999px; color: var(--forest); background: var(--mint); font-size: .72rem; font-weight: 750; }
.assignment-chips small { color: var(--muted); }
.community-admin-list { display: grid; gap: 1rem; }
.community-admin-card { padding: 1.3rem; box-shadow: none; }
.community-admin-card > header { display: flex; justify-content: space-between; gap: 1rem; align-items: start; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.community-admin-card h2 { margin-bottom: .15rem; }
.community-admin-card header small { color: var(--muted); }
.assignment-list { margin-top: .35rem; }
.assignment-row { padding: .9rem 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .8rem; align-items: center; border-bottom: 1px solid var(--line); }
.assignment-row > span:nth-child(2) { display: grid; gap: .15rem; }
.assignment-row small { color: var(--muted); overflow-wrap: anywhere; }
.assignment-form { margin-top: 1rem; }
select[multiple] { min-height: 120px; }
.people-filter { margin-bottom: 1.5rem; padding: 1rem; display: grid; grid-template-columns: minmax(220px, 1fr) minmax(170px, .4fr) auto auto; gap: .8rem; align-items: end; box-shadow: none; }
.people-filter label { margin-top: 0; }
.people-filter .text-link { align-self: center; padding: .7rem; }
.person-row { padding: 1.05rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.person-row:last-child { border-bottom: 0; }
.person-row:hover { background: #f8fbf9; }
.person-main { display: grid; gap: .2rem; min-width: 0; }
.person-main small { color: var(--muted); overflow-wrap: anywhere; }
.person-profile-hero { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1.2rem; align-items: center; margin-bottom: 3rem; }
.person-profile-hero h1 { margin-bottom: .4rem; }
.person-profile-hero p { margin-bottom: 0; }
.avatar-profile { width: 5rem; height: 5rem; font-size: 1.45rem; }
.person-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .62fr); gap: 1.5rem; align-items: start; }
.people-actions-stack { display: grid; gap: 1rem; }
.person-unit-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.person-unit-row:last-child { border-bottom: 0; }
.person-unit-row > span:nth-child(2) { display: grid; gap: .2rem; }
.person-unit-row small { color: var(--muted); }
.person-unit-form { margin-top: 1rem; padding: 1.2rem; }
.person-unit-form h2 { font-size: 1.35rem; }
.person-unit-fields { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(150px, .55fr) auto; gap: .8rem; align-items: end; }
.person-unit-fields label { margin-top: 0; }

.form-layout { display: grid; grid-template-columns: .75fr 1fr; gap: clamp(2rem, 7vw, 7rem); align-items: start; }
.form-layout > div { padding-top: 2rem; }
.form-layout h1 { max-width: 10ch; }
.back-link { display: block; margin-bottom: 3rem; color: var(--muted); text-decoration: none; font-weight: 700; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.detail-layout { display: grid; grid-template-columns: minmax(260px, .65fr) 1fr; gap: 1.5rem; align-items: start; }
.qr-card, .detail-card { padding: clamp(1.4rem, 4vw, 2.2rem); }
.qr-card { text-align: center; }
.qr-card .eyebrow { text-align: left; }
.qr-card p { margin: 1rem auto 0; max-width: 38ch; font-size: .88rem; }
.qr-image { display: block; width: min(100%, 340px); margin: 0 auto; border-radius: 14px; }
.detail-title { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.detail-title h1 { font-size: clamp(2rem, 5vw, 3rem); }
.detail-list { display: grid; margin: 1rem 0 2rem; border-top: 1px solid var(--line); }
.detail-list > div { padding: .9rem 0; display: grid; grid-template-columns: 130px 1fr; gap: 1rem; border-bottom: 1px solid var(--line); }
.detail-list dt { color: var(--muted); font-size: .82rem; font-weight: 700; }
.detail-list dd { margin: 0; font-weight: 700; }
.guard-hero { display: grid; grid-template-columns: .75fr 1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.guard-search { padding: 1.5rem; }
.guard-search label { margin-top: 0; }
.guard-search small { display: block; margin-top: .65rem; color: var(--muted); }
.inline-form { display: grid; grid-template-columns: 1fr auto; gap: .65rem; }
.access-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.access-row:last-child { border-bottom: 0; }
.access-row > div:nth-child(2) { display: grid; gap: .2rem; }
.access-row > div:nth-child(2) span { color: var(--muted); font-size: .84rem; }
.access-icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 14px; font-size: .68rem; font-weight: 900; }
.access-entry { color: #155e45; background: #dff4e9; }
.access-exit { color: #46546f; background: #e9edf6; }
.scan-card { width: min(760px, 100%); margin: 0 auto; padding: clamp(1.5rem, 5vw, 3rem); border-top: 8px solid var(--line); }
.scan-active { border-top-color: #2d9a70; }
.scan-pending { border-top-color: #d19b35; }
.scan-inactive { border-top-color: #8a9490; }
.scan-verdict { display: flex; gap: 1rem; align-items: center; }
.scan-verdict > span { width: 4rem; height: 4rem; display: grid; place-items: center; border-radius: 50%; background: var(--mint); color: var(--forest); font-size: 2rem; font-weight: 900; }
.scan-verdict h1 { margin-bottom: 0; }
.scan-person { display: flex; align-items: center; gap: 1rem; margin: 2rem 0 1rem; padding: 1.2rem; background: #f5f8f6; border-radius: 18px; }
.scan-person h2, .scan-person p { margin-bottom: .15rem; }
.avatar-large { width: 4rem; height: 4rem; font-size: 1.35rem; }
.detail-list.compact { margin-bottom: 1rem; }
.action-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.action-grid .button-wide { margin-top: 0; }
.blocked-note { margin-top: 1rem; padding: 1rem; border-radius: 12px; color: #6c3939; background: #fff0f0; text-align: center; font-weight: 700; }
.flash-stack { position: fixed; top: 90px; right: 1rem; z-index: 20; width: min(380px, calc(100% - 2rem)); }
.flash { padding: .9rem 1rem; margin-bottom: .6rem; border-radius: 12px; font-weight: 650; }
.flash-success { color: #155e45; background: #dff4e9; border: 1px solid #a9dfc5; }
.flash-error { color: var(--danger); background: #fff0f0; border: 1px solid #efc2c2; }

@media (max-width: 760px) {
    .page-shell { width: min(100% - 1.25rem, 640px); padding-top: 2rem; }
    .topbar { min-height: 66px; padding-inline: .75rem; gap: .5rem; overflow: hidden; }
    .topbar .brand { flex: 0 0 auto; }
    .topbar .brand > span:last-child { display: none; }
    .topbar nav { min-width: 0; flex: 1 1 auto; justify-content: flex-start; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; }
    .topbar nav::-webkit-scrollbar { display: none; }
    .topbar nav a { flex: 0 0 auto; padding: .65rem .55rem; font-size: .86rem; }
    .topbar nav a:first-child { display: none; }
    .auth-layout, .form-layout, .detail-layout, .guard-hero, .unit-layout, .system-overview-grid, .system-management-grid, .person-detail-grid, .expense-management-grid, .liquidation-unit-grid, .financial-actions-grid, .preferences-layout { grid-template-columns: 1fr; gap: 1.5rem; }
    .account-summary-grid { grid-template-columns: 1fr; }
    .incident-detail-grid { grid-template-columns: 1fr; }.incident-management { position: static; }.incident-photos { grid-template-columns: repeat(2,1fr); }.incident-row { grid-template-columns: 1fr auto; }.incident-priority { grid-column: 1 / -1; justify-self: start; }
    .period-status-grid, .allocation-grid, .interest-policy-grid { grid-template-columns: 1fr; }
    .delinquency-summary-grid { grid-template-columns: repeat(2, 1fr); }
    .delinquency-filter { grid-template-columns: 1fr; }
    .reconciliation-overview { grid-template-columns: 1fr; }
    .bank-rules-layout { grid-template-columns: 1fr; }
    .bank-rule-card > form:first-child { grid-template-columns: 1fr 1fr; }
    .bank-movement-card { grid-template-columns: auto minmax(0, 1fr) auto; }
    .bank-movement-action { grid-column: 2 / -1; justify-items: stretch; }
    .liquidation-form { grid-template-columns: 1fr; }
    .expense-row, .account-row { grid-template-columns: auto minmax(0, 1fr) auto; }
    .receipt-actions { grid-column: 2 / -1; justify-self: start; }
    .batch-receipt-toolbar { align-items: stretch; flex-direction: column; }
    .batch-toolbar-actions, .heading-actions, .announcement-footer { align-items: stretch; flex-direction: column; }
    .delivery-row { grid-template-columns: auto minmax(0, 1fr); }
    .expense-row .status { grid-column: 2 / -1; justify-self: start; }
    .publish-banner { align-items: stretch; flex-direction: column; }
    .auth-story { padding: 1rem .3rem 0; }
    .auth-story h1 { font-size: 2.5rem; }
    .stat-grid { grid-template-columns: 1fr; }
    .hero, .section-heading { align-items: start; flex-direction: column; }
    .feature-card { grid-template-columns: 1fr; gap: 1.2rem; }
    .feature-visual { min-height: 110px; }
    .module-grid { grid-template-columns: 1fr 1fr; }
    .visit-row { grid-template-columns: auto 1fr auto; }
    .visit-date { grid-column: 2; text-align: left; }
    .status { grid-column: 3; grid-row: 1; }
    .field-grid { grid-template-columns: 1fr; gap: 0; }
    .detail-list > div { grid-template-columns: 100px 1fr; }
    .action-grid { grid-template-columns: 1fr; }
    .inline-form { grid-template-columns: 1fr; }
    .unit-form-card { position: static; }
    .system-form-card { position: static; }
    .occupancy-row { grid-template-columns: auto 1fr auto; }
    .occupancy-row form { grid-column: 2 / -1; }
    .heading-actions { width: 100%; }
    .heading-actions .button { flex: 1; }
    .audit-row { grid-template-columns: auto 1fr; }
    .audit-meta { grid-column: 2; text-align: left; }
    .audit-context { grid-template-columns: 1fr; }
    .announcement-preview-grid { grid-template-columns: 1fr; }
    .people-filter { grid-template-columns: 1fr; }
    .person-row { grid-template-columns: auto 1fr auto; }
    .person-row > .text-link { grid-column: 2; }
    .person-profile-hero { grid-template-columns: auto 1fr; }
    .person-profile-hero > .status { grid-column: 2; justify-self: start; }
    .person-unit-row { grid-template-columns: auto 1fr auto; }
    .person-unit-row form { grid-column: 2 / -1; }
    .person-unit-fields { grid-template-columns: 1fr; }
    .administrator-row { grid-template-columns: auto 1fr; }
    .administrator-row > .status { grid-column: 2; grid-row: auto; justify-self: start; }
    .assignment-row { grid-template-columns: auto 1fr; }
    .assignment-row form { grid-column: 2; }
}

.amenity-summary { grid-template-columns: repeat(3, 1fr); }
.amenity-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.amenity-card { padding: 1.3rem; display: grid; align-content: space-between; gap: 1rem; box-shadow: none; }
.amenity-card h2 { font-size: 1.45rem; }
.amenity-card dl { margin: 0; }
.amenity-card dl div { padding: .45rem 0; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); }
.amenity-card dt { color: var(--muted); }
.amenity-card dd { margin: 0; font-weight: 700; text-align: right; }
.amenity-inactive { opacity: .62; }
.amenity-reservation-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.amenity-date { width: 3.2rem; display: grid; place-items: center; padding: .5rem; border-radius: 12px; background: var(--mint); color: var(--forest); }
.amenity-date strong { font-size: 1.25rem; }
.amenity-date span { font-size: .7rem; }
.amenity-reservation-main { display: grid; gap: .2rem; }
.amenity-reservation-main small { color: var(--muted); }
.amenity-actions { display: flex; align-items: center; gap: .45rem; }
.amenity-management { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .6fr); gap: 1.5rem; align-items: start; }
.amenity-config-list { display: grid; gap: 1rem; }
.amenity-config { padding: 1.4rem; box-shadow: none; }
.amenity-create { position: sticky; top: 96px; }

@media (max-width: 760px) {
    .amenity-grid, .amenity-management { grid-template-columns: 1fr; }
    .amenity-create { position: static; }
    .amenity-reservation-row { grid-template-columns: auto minmax(0, 1fr) auto; }
    .amenity-actions { grid-column: 2 / -1; flex-wrap: wrap; }
}

.form-subheading { margin: 1.6rem 0 .2rem; padding-top: 1.2rem; border-top: 1px solid var(--line); font-size: 1.05rem; }
.policy-list { padding-left: 1.2rem; color: var(--muted); line-height: 1.65; }
.amenity-block-layout { display: grid; grid-template-columns: minmax(300px, .55fr) minmax(0, 1fr); gap: 1rem; align-items: start; }
.amenity-block-layout > .form-card { box-shadow: none; }
.amenity-block-row { padding: 1rem 1.2rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); }
.amenity-block-row > div { display: grid; gap: .2rem; }
.amenity-block-row small { color: var(--muted); }
@media (max-width: 760px) { .amenity-block-layout { grid-template-columns: 1fr; } }

.amenity-booking-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .65fr); gap: 2rem; align-items: end; margin-bottom: 1.5rem; }
.amenity-booking-heading h1 { margin-bottom: .45rem; }
.amenity-booking-heading p { margin-bottom: 0; }
.booking-calendar { padding: 1.2rem; box-shadow: none; }
.booking-calendar-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.booking-calendar-toolbar form { width: min(230px, 100%); }
.booking-calendar-toolbar label { margin-top: 0; }
.booking-calendar-toolbar input { min-height: 40px; padding: .5rem .7rem; }
.booking-days { display: grid; grid-template-columns: repeat(7, minmax(88px, 1fr)); gap: .5rem; margin: 1.2rem 0; overflow-x: auto; }
.booking-day { min-width: 88px; padding: .75rem .55rem; display: grid; place-items: center; gap: .2rem; border: 1px solid var(--line); border-radius: 14px; color: inherit; background: #fff; text-decoration: none; }
.booking-day > span { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.booking-day > strong { font-size: 1.35rem; }
.booking-day > small { color: var(--forest-2); font-size: .7rem; }
.booking-day:hover, .booking-day-selected { border-color: var(--forest); background: var(--mint); }
.booking-day-unavailable { opacity: .55; }
.booking-slots { padding-top: 1.2rem; display: grid; grid-template-columns: minmax(230px, .42fr) minmax(0, 1fr); gap: 1.5rem; border-top: 1px solid var(--line); }
.booking-slot-grid { display: grid; grid-template-columns: repeat(4, minmax(100px, 1fr)); gap: .6rem; }
.booking-slot { min-height: 66px; padding: .6rem; display: grid; place-items: center; gap: .15rem; border-radius: 12px; font: inherit; }
.booking-slot span { font-size: .68rem; }
.booking-slot-free { border: 1px solid #9cd7bd; color: var(--forest); background: #effaf4; cursor: pointer; }
.booking-slot-free:hover { color: #fff; background: var(--forest); }
.booking-slot-free:disabled { cursor: not-allowed; opacity: .45; }
.booking-slot-busy { border: 1px solid var(--line); color: #737d78; background: #f1f3f2; }
.amenity-reservation-form { max-width: 760px; box-shadow: none; }
@media (max-width: 760px) {
    .amenity-booking-heading, .booking-slots { grid-template-columns: 1fr; }
    .booking-calendar-toolbar { align-items: stretch; flex-wrap: wrap; }
    .booking-calendar-toolbar form { order: -1; width: 100%; }
    .booking-days { grid-template-columns: repeat(7, 88px); }
    .booking-slot-grid { grid-template-columns: repeat(3, 1fr); }
}

.notification-nav-link { display: inline-flex !important; align-items: center; gap: .35rem; }
.notification-badge { min-width: 1.3rem; height: 1.3rem; padding: 0 .3rem; display: inline-grid; place-items: center; border-radius: 999px; color: #fff; background: var(--danger); font-size: .66rem; font-weight: 850; }
.notification-row { padding: 1.15rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.notification-kind { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 14px; color: var(--forest); background: var(--mint); font-weight: 900; }
.notification-main { display: grid; gap: .2rem; }
.notification-main .eyebrow { margin: 0; }
.notification-main p { margin: .2rem 0; }
.notification-main time { color: var(--muted); font-size: .74rem; }
.notification-unread { background: #f4fbf7; }
.notification-unread .notification-main > strong { color: var(--forest); }
.notification-read { opacity: .72; }
@media (max-width: 760px) { .notification-row { grid-template-columns: auto minmax(0, 1fr); }.notification-row form { grid-column: 2; }.notification-nav-link { order: -1; } }

@media (display-mode: standalone) {
    .topbar { padding-top: env(safe-area-inset-top); }
    .page-shell { padding-bottom: calc(5rem + env(safe-area-inset-bottom)); }
}
