: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); }
.quick-charge-models { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: .85rem; margin-bottom: .8rem; border: 1px solid #dce5e0; border-radius: 14px; background: #f7faf8; }
.quick-charge-models > small { width: 100%; font-weight: 700; color: var(--forest); }
.quick-charge-models .button { width: auto; }
.particular-charge-details { display: grid; gap: .75rem; padding: 1rem; margin: .5rem 0 1rem; border: 1px solid #dce5e0; border-radius: 14px; background: #f7faf8; }
.charge-reverse-form { display: grid; gap: .35rem; min-width: 180px; }
.charge-reverse-form input { min-height: 36px; padding: .45rem .65rem; font-size: .85rem; }
.unit-charge-card dt small { display: block; margin-top: .2rem; color: var(--muted); font-weight: 400; }
.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; }
.payment-notice-actions { width: min(23rem, 34vw); min-width: 0; gap: .65rem; }
.payment-notice-actions form { display: grid; gap: .45rem; }
.payment-notice-actions input { min-width: 0; }
.payment-notice-row { align-items: start; }
.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: repeat(3, minmax(170px, .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; }
.publish-banner form { display: grid; gap: .65rem; min-width: min(100%, 340px); }
.publish-confirmation { font-size: .82rem; line-height: 1.35; }
.liquidation-review { margin-bottom: 1.25rem; padding: 1.25rem; box-shadow: none; }
.liquidation-review > header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-bottom: 1rem; }
.liquidation-review h2 { margin: .1rem 0 0; }
.review-check-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.review-check-grid article { display: grid; gap: .2rem; padding: .85rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.review-check-grid span { font-size: 1.05rem; font-weight: 700; }
.review-check-grid small, .particular-review-list small { color: var(--muted); line-height: 1.4; }
.review-check-grid .review-alert { color: #8a5600; font-weight: 700; }
.particular-review-list { margin-top: 1rem; border-top: 1px solid var(--line); }
.particular-review-list > div { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--line); }
.particular-review-list span { display: grid; gap: .15rem; }
.auto-reconcile-card { align-content: center; gap: .5rem; }
.auto-reconcile-card small { color: var(--muted); line-height: 1.4; }
.suggestion-badge.reconciliation-alert { color: #7b3f00; background: #fff0d6; border-color: #f0c36a; }
.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; }
.unit-scope-fieldset { margin: 1rem 0 0; padding: 1rem; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: .7rem; }
.unit-scope-fieldset legend { padding: 0 .35rem; color: var(--forest); font-weight: 800; }
.unit-target-grid { max-height: 13rem; overflow: auto; padding: .75rem; border-radius: 10px; background: #f8fbf9; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem .8rem; }
.unit-target-grid .checkbox-label { margin: 0; font-size: .9rem; }
.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-accounts-heading { margin-top: 1.25rem; }
.bank-accounts-layout { display: grid; grid-template-columns: minmax(360px, .75fr) minmax(0, 1.25fr); gap: 1rem; align-items: start; }
.bank-account-create { box-shadow: none; }
.bank-account-list { display: grid; gap: 1rem; }
.bank-account-card { box-shadow: none; }
.bank-account-card header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.bank-account-card h3 { margin: .15rem 0 0; }
.bank-account-inactive { opacity: .72; }
.bank-account-empty { min-height: 240px; }
.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, .review-check-grid { 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-accounts-layout { 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; }
    .payment-notice-actions { width: 100%; }
    .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; }
    .unit-target-grid { grid-template-columns: 1fr; }
    .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)); }
}
/* Residentes, Seguridad y unidades funcionales */
.residents-filter { grid-template-columns: minmax(220px, 1fr) auto auto; }
.unit-summary-row { grid-template-columns: auto minmax(0, 1fr) auto auto; }
.unit-summary-main { display: grid; gap: .2rem; min-width: 0; }
.unit-related { color: var(--muted); font-size: .8rem; overflow-wrap: anywhere; }
.unit-related b { color: #44514b; }
.unit-summary-counts { display: grid; justify-items: end; gap: .35rem; }
.unit-summary-counts small { font-size: .75rem; }
.occupancy-row { grid-template-columns: auto minmax(0, 1fr) auto auto auto; }

@media (max-width: 760px) {
    .residents-filter { grid-template-columns: 1fr; }
    .unit-summary-row { grid-template-columns: auto minmax(0, 1fr) auto; }
    .unit-summary-counts { grid-column: 2; justify-items: start; }
    .unit-summary-row > .text-link { grid-column: 2; }
    .occupancy-row { grid-template-columns: auto minmax(0, 1fr) auto; }
    .occupancy-row > .text-link, .occupancy-row form { grid-column: 2 / -1; }
}

/* Superficies y distribución porcentual */
.unit-area-list { overflow: visible; }
.unit-area-notice { padding: 1.1rem 1.2rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; border-bottom: 1px solid var(--line); background: #f4fbf7; }
.unit-area-notice.is-pending { background: #fff8e8; }
.unit-area-notice > div { display: grid; gap: .2rem; }
.unit-area-notice small { color: var(--muted); }
.unit-area-row { grid-template-columns: auto minmax(240px, 1fr) minmax(150px, .28fr) auto auto; }
.unit-area-row .unit-summary-main { color: inherit; text-decoration: none; }
.unit-area-field { margin: 0; display: grid; gap: .3rem; }
.unit-area-field > span { font-size: .72rem; font-weight: 800; }
.unit-area-field input { min-height: 40px; margin: 0; padding: .55rem .7rem; }
.unit-area-field small { color: var(--muted); font-size: .7rem; }
.unit-area-footer { padding: 1rem 1.2rem; display: flex; justify-content: flex-end; }
.form-help { display: block; margin-top: .45rem; color: var(--muted); line-height: 1.45; }
.form-help a { color: var(--forest); font-weight: 800; }
.inline-warning { margin: .65rem 0 0; padding: .7rem .8rem; border-radius: 10px; color: #72510b; background: #fff4d6; font-size: .78rem; line-height: 1.45; }

@media (max-width: 900px) {
    .unit-area-row { grid-template-columns: auto minmax(0, 1fr) minmax(140px, .35fr); }
    .unit-area-row .unit-summary-counts, .unit-area-row > .text-link { grid-column: 2; justify-items: start; }
}
@media (max-width: 620px) {
    .unit-area-notice { align-items: stretch; flex-direction: column; }
    .unit-area-row { grid-template-columns: auto minmax(0, 1fr); }
    .unit-area-field { grid-column: 2; }
    .unit-area-row .unit-summary-counts, .unit-area-row > .text-link { grid-column: 2; }
    .unit-area-footer .button, .unit-area-notice .button { width: 100%; }
}
/* Edición de conceptos de expensas */
.expense-concept-row { grid-template-columns: auto minmax(220px, 1fr) auto auto auto; }
.expense-concept-main { display: grid; gap: .2rem; min-width: 0; }
.expense-concept-main small { color: var(--muted); overflow-wrap: anywhere; }
.expense-concept-inactive { opacity: .6; background: #f5f6f5; }
.concept-edit-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr); gap: 1.5rem; align-items: start; }
.concept-edit-form { max-width: none; }
.concept-edit-actions { margin-top: 1.5rem; display: flex; justify-content: flex-end; gap: .7rem; }
.concept-guidance { padding: 1.5rem; position: sticky; top: 96px; }
.concept-guidance h2 { margin-top: .35rem; }
.concept-guidance dl { margin: 1.2rem 0 0; }
.concept-guidance dl div { padding: .75rem 0; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); }
.concept-guidance dt { color: var(--muted); }
.concept-guidance dd { margin: 0; font-weight: 800; text-align: right; }

@media (max-width: 900px) {
    .expense-concept-row { grid-template-columns: auto minmax(0, 1fr) auto; }
    .expense-concept-row .status, .expense-concept-row .text-link { grid-column: 2; justify-self: start; }
    .concept-edit-layout { grid-template-columns: 1fr; }
    .concept-guidance { position: static; }
}
@media (max-width: 620px) {
    .expense-concept-row { grid-template-columns: auto minmax(0, 1fr); }
    .expense-concept-row > strong, .expense-concept-row .status, .expense-concept-row .text-link { grid-column: 2; justify-self: start; }
    .concept-edit-actions { flex-direction: column-reverse; }
    .concept-edit-actions .button { width: 100%; }
}
/* Cuotas extraordinarias y previsualización */
.liquidation-form-actions { display: flex; gap: .65rem; align-items: end; }
.preview-summary { margin-bottom: 2rem; padding: 1.4rem; display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .35fr); gap: 1.5rem; align-items: end; }
.preview-summary form { display: grid; gap: .55rem; }
.preview-summary form small { color: var(--muted); line-height: 1.4; }
.preview-concept-row { padding: .75rem 0; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); }
.preview-concept-row > span { display: grid; gap: .2rem; }
.preview-concept-row small { color: var(--muted); }

@media (max-width: 760px) {
    .liquidation-form-actions { width: 100%; flex-direction: column; align-items: stretch; }
    .liquidation-form-actions .button { width: 100%; }
    .preview-summary { grid-template-columns: 1fr; }
}
/* Administración de borradores de liquidación */
.draft-management { margin-bottom: 1.5rem; padding: 1.4rem; display: grid; grid-template-columns: minmax(0, 1fr) minmax(310px, .55fr) auto; gap: 1.2rem; align-items: end; }
.draft-management-copy h2 { margin: .25rem 0 .45rem; }
.draft-management-copy p { margin: 0 0 .55rem; color: var(--muted); }
.draft-recalculate-form { display: grid; grid-template-columns: minmax(155px, 1fr) auto; gap: .65rem; align-items: end; }
.draft-recalculate-form label { margin: 0; }
.draft-recalculate-form input { min-height: 42px; }
.draft-delete-form { align-self: end; }

@media (max-width: 980px) {
    .draft-management { grid-template-columns: 1fr minmax(300px, .7fr); }
    .draft-delete-form { grid-column: 2; }
}
@media (max-width: 680px) {
    .draft-management { grid-template-columns: 1fr; }
    .draft-recalculate-form { grid-template-columns: 1fr; }
    .draft-delete-form { grid-column: 1; }
    .draft-recalculate-form .button, .draft-delete-form .button { width: 100%; }
}
/* Expense records */
.expense-record-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.expense-record-summary .account-stat { padding: 1.15rem; display: grid; gap: .3rem; box-shadow: none; }
.expense-record-summary .account-stat span, .expense-record-summary .account-stat small { color: var(--muted); font-size: .8rem; }
.expense-record-summary .account-stat strong { color: var(--forest); font-size: 1.18rem; overflow-wrap: anywhere; }
.expense-record-filters { margin-bottom: 1rem; padding: 1rem 1.2rem; display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto auto; align-items: end; gap: 1rem; box-shadow: none; }
.expense-record-filters label { margin: 0; }
.expense-record-filters .text-link { align-self: center; }
.expense-record-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; color: inherit; text-decoration: none; border-bottom: 1px solid var(--line); }
.expense-record-row:last-child { border-bottom: 0; }
.expense-record-row:hover { background: #f8fbf9; }
.expense-record-main { min-width: 0; display: grid; gap: .22rem; }
.expense-record-main small { color: var(--muted); overflow-wrap: anywhere; }
.expense-status-draft { color: #795313; background: #fff1cc; }
.expense-status-approved { color: #185b7a; background: #e2f3fb; }
.expense-status-paid { color: #156146; background: #dff4e9; }
.expense-status-cancelled { color: #6f7773; background: #edf0ee; }
.expense-record-form { display: grid; gap: 2rem; }
.form-section { padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.form-section:last-of-type { padding-bottom: 0; border-bottom: 0; }
.form-section h2 { margin-bottom: .3rem; }
.form-section .eyebrow { margin-bottom: .4rem; }
.form-section label small { display: block; margin-top: .4rem; color: var(--muted); font-weight: 500; line-height: 1.45; }
.expense-record-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr); gap: 1.5rem; align-items: start; }
.expense-record-sidebar { position: sticky; top: 96px; display: grid; gap: 1rem; }
.expense-record-sidebar .form-card { padding: 1.5rem; }
.expense-record-sidebar .status { display: inline-flex; margin-bottom: .8rem; }
.expense-record-facts { margin: .5rem 0 0; }
.expense-record-facts div { padding: .65rem 0; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); }
.expense-record-facts dt { color: var(--muted); }
.expense-record-facts dd { margin: 0; font-weight: 780; text-align: right; }
.expense-document-card { margin-top: 1rem; padding: 1rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .25rem 1rem; border-radius: 14px; background: var(--mint); }
.expense-document-card strong { overflow-wrap: anywhere; }
.expense-document-card small { color: var(--muted); }
.expense-document-card .text-link { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
@media (max-width: 900px) {
    .expense-record-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .expense-record-detail-layout { grid-template-columns: 1fr; }
    .expense-record-sidebar { position: static; }
}
@media (max-width: 640px) {
    .expense-record-summary, .expense-record-filters { grid-template-columns: 1fr; }
    .expense-record-row { grid-template-columns: auto minmax(0, 1fr); }
    .expense-record-row > strong, .expense-record-row .status { grid-column: 2; justify-self: start; }
}
/* Expense variance */
.variance-period-filter { margin-bottom: 1rem; padding: 1rem 1.2rem; display: grid; grid-template-columns: minmax(190px, 280px) auto minmax(0, 1fr); align-items: end; gap: 1rem; box-shadow: none; }
.variance-period-filter label { margin: 0; }
.variance-period-filter .text-link { align-self: center; justify-self: end; }
.variance-summary-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.variance-summary-grid .account-stat { padding: 1.15rem; display: grid; gap: .3rem; box-shadow: none; }
.variance-summary-grid .account-stat span, .variance-summary-grid .account-stat small { color: var(--muted); font-size: .8rem; line-height: 1.35; }
.variance-summary-grid .account-stat strong { color: var(--forest); font-size: 1.15rem; overflow-wrap: anywhere; }
.variance-summary-grid .variance-negative { border-color: #efb6b6; background: #fff8f8; }
.variance-summary-grid .variance-negative strong, .variance-negative-text { color: #9a3131; }
.variance-summary-grid .variance-positive { border-color: #b9dfcd; background: #f7fcf9; }
.variance-positive-text { color: #156146; }
.variance-table-wrap { overflow-x: auto; box-shadow: none; }
.variance-table { width: 100%; border-collapse: collapse; min-width: 780px; }
.variance-table th, .variance-table td { padding: 1rem; text-align: right; border-bottom: 1px solid var(--line); white-space: nowrap; }
.variance-table thead th { color: var(--muted); background: #f8faf9; font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; }
.variance-table th:first-child { text-align: left; }
.variance-table tbody tr:last-child th, .variance-table tbody tr:last-child td { border-bottom: 0; }
.variance-table tbody tr:hover { background: #fbfdfc; }
.variance-empty { padding: 3rem !important; color: var(--muted); text-align: center !important; }
.variance-guidance { margin-top: 1rem; padding: 1.25rem; box-shadow: none; border-left: 4px solid var(--forest-2); }
.variance-guidance p { margin: .35rem 0 0; }
@media (max-width: 980px) {
    .variance-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .variance-period-filter, .variance-summary-grid { grid-template-columns: 1fr; }
    .variance-period-filter .text-link { justify-self: start; }
}
/* Payables schedule */
.payables-filter { margin-bottom: 1rem; padding: 1rem 1.2rem; display: grid; grid-template-columns: minmax(190px, 260px) minmax(160px, 220px) auto; align-items: end; gap: 1rem; box-shadow: none; }
.payables-filter label { margin: 0; }
.payables-summary-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.payables-summary-grid .account-stat { padding: 1.15rem; display: grid; gap: .3rem; box-shadow: none; }
.payables-summary-grid .account-stat span, .payables-summary-grid .account-stat small { color: var(--muted); font-size: .8rem; line-height: 1.35; }
.payables-summary-grid .account-stat strong { color: var(--forest); font-size: 1.12rem; overflow-wrap: anywhere; }
.payables-summary-grid .payables-required { border-color: #9fcfba; background: #f5fbf7; }
.payables-summary-grid .payables-alert { border-color: #efb6b6; background: #fff8f8; }
.payables-summary-grid .payables-alert strong { color: #9a3131; }
.payables-section-heading { margin-top: 2.4rem; }
.payable-row { padding: 1rem 1.2rem; display: grid; grid-template-columns: auto minmax(190px, 1fr) minmax(120px, auto) auto auto; gap: 1rem; align-items: center; color: inherit; text-decoration: none; border-bottom: 1px solid var(--line); }
.payable-row:last-child { border-bottom: 0; }
.payable-row:hover { background: #f8fbf9; }
.payable-due { display: grid; gap: .2rem; text-align: right; }
.payable-due small { color: var(--muted); font-size: .78rem; }
.payables-empty { padding: 1.4rem; color: var(--muted); text-align: center; }
.payables-later { margin-top: 1rem; padding: 1.1rem 1.25rem; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; box-shadow: none; }
.payables-later > div { display: grid; gap: .15rem; }
.payables-later .eyebrow { margin: 0; }
@media (max-width: 980px) {
    .payables-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .payable-row { grid-template-columns: auto minmax(0, 1fr) auto; }
    .payable-due { grid-column: 2; text-align: left; }
    .payable-row > strong, .payable-row .status { grid-column: 3; justify-self: end; }
}
@media (max-width: 640px) {
    .payables-filter, .payables-summary-grid, .payables-later { grid-template-columns: 1fr; }
    .payable-row { grid-template-columns: auto minmax(0, 1fr); }
    .payable-due, .payable-row > strong, .payable-row .status { grid-column: 2; justify-self: start; text-align: left; }
}
/* Supplier payments */
.expense-status-partially_paid { color: #76521a; background: #fff0c9; }
.payment-balance { display: grid; gap: .2rem; text-align: right; }
.payment-balance small { color: var(--muted); }
.payment-balance strong { color: var(--forest); font-size: 1.5rem; }
.supplier-payment-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .48fr); gap: 1.5rem; align-items: start; }
.supplier-payment-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); }
.supplier-payment-row:last-child { border-bottom: 0; }
.supplier-payment-form, .supplier-payment-guidance { position: sticky; top: 96px; }
.supplier-payment-form h3 { margin-bottom: 0; }
.balance-debt { color: #9a3131; }
@media (max-width: 800px) {
    .supplier-payment-layout { grid-template-columns: 1fr; }
    .supplier-payment-form, .supplier-payment-guidance { position: static; }
}
@media (max-width: 560px) {
    .supplier-payment-row { grid-template-columns: auto minmax(0, 1fr); }
    .supplier-payment-row > strong, .supplier-payment-row > .text-link, .supplier-payment-row > .muted { grid-column: 2; justify-self: start; }
    .payment-balance { text-align: left; }
}
/* Monthly financial close */
.monthly-close-filter { margin-bottom: 1rem; padding: 1rem 1.2rem; display: grid; grid-template-columns: minmax(190px, 260px) auto minmax(0, 1fr); align-items: end; gap: 1rem; box-shadow: none; }
.monthly-close-filter label { margin: 0; }
.monthly-close-filter .text-link { align-self: center; justify-self: end; }
.monthly-close-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.monthly-close-grid .account-stat { padding: 1.15rem; display: grid; gap: .3rem; box-shadow: none; }
.monthly-close-grid .account-stat span, .monthly-close-grid .account-stat small { color: var(--muted); font-size: .8rem; line-height: 1.35; }
.monthly-close-grid .account-stat strong { color: var(--forest); font-size: 1.15rem; overflow-wrap: anywhere; }
.monthly-close-grid .monthly-close-negative { border-color: #efb6b6; background: #fff8f8; }
.monthly-close-grid .monthly-close-negative strong { color: #9a3131; }
.monthly-close-grid .monthly-close-positive { border-color: #b9dfcd; background: #f7fcf9; }
.monthly-close-grid .monthly-close-warning { border-color: #ead29e; background: #fffbf2; }
.monthly-movements-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.monthly-movements-grid .section-heading { margin-top: 3rem; }
.monthly-movement-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); }
.monthly-movement-row:last-child { border-bottom: 0; }
.monthly-movement-row > span:nth-child(2) { display: grid; gap: .2rem; min-width: 0; }
.monthly-movement-row small { color: var(--muted); overflow-wrap: anywhere; }
@media (max-width: 900px) {
    .monthly-close-grid, .monthly-movements-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .monthly-movements-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .monthly-close-filter, .monthly-close-grid { grid-template-columns: 1fr; }
    .monthly-close-filter .text-link { justify-self: start; }
    .monthly-movement-row { grid-template-columns: auto minmax(0, 1fr); }
    .monthly-movement-row > strong, .monthly-movement-row > .text-link, .monthly-movement-row > span:last-child { grid-column: 2; justify-self: start; }
}
/* Payment references */
.unit-payment-reference { color: var(--forest-2); font-size: .78rem; font-weight: 750; }
.unit-payment-reference code { padding: .18rem .4rem; border-radius: 6px; background: #edf6f1; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; color: var(--forest); }
.payment-reference-banner { margin-bottom: 1.5rem; padding: 1.35rem 1.5rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; box-shadow: none; border-left: 4px solid var(--forest-2); }
.payment-reference-banner h2 { margin: 0 0 .35rem; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .06em; }
.payment-reference-banner p { margin: 0; }
.payment-reference-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.payment-reference-card { padding: 1.25rem; box-shadow: none; }
.payment-reference-card strong { display: block; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 1.25rem; letter-spacing: .06em; color: var(--forest); }
.payment-reference-card p { margin: .55rem 0 0; font-size: .86rem; }
.payment-reference-admin-note { margin-bottom: 1rem; padding: 1rem 1.2rem; display: flex; justify-content: space-between; gap: 1rem; box-shadow: none; }
.bank-reference-help { margin: .75rem 0 0; padding: .75rem; border-radius: 10px; background: var(--mint); font-size: .84rem; }
@media (max-width: 640px) {
    .payment-reference-banner, .payment-reference-admin-note { flex-direction: column; align-items: flex-start; }
}
/* Mercado Pago checkout */
.mercado-pago-layout { display: grid; grid-template-columns: minmax(320px, .72fr) minmax(0, 1fr); gap: 1rem; margin: 1rem 0; align-items: start; }
.mercado-pago-card, .mercado-pago-history { padding: 1.25rem; box-shadow: none; }
.mercado-pago-card header { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.mercado-pago-card header h2, .mercado-pago-history h2 { margin-bottom: .45rem; }
.mercado-pago-card > p { margin: 0 0 1rem; color: var(--muted); font-size: .88rem; }
.mercado-pago-card button:disabled { cursor: not-allowed; opacity: .58; }
.mercado-pago-card .form-guidance { display: block; margin-top: .65rem; color: var(--muted); line-height: 1.45; }
.mercado-pago-request-row { padding: .85rem 0; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.mercado-pago-request-row:last-child { border-bottom: 0; }
.mercado-pago-request-row > span { display: grid; gap: .18rem; }
.mercado-pago-request-row small { color: var(--muted); font-size: .76rem; overflow-wrap: anywhere; }
.compact-empty { padding: 1.2rem .5rem; }
.compact-empty p { margin: 0; }
@media (max-width: 850px) {
    .mercado-pago-layout { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .mercado-pago-card header { flex-direction: column; }
    .mercado-pago-request-row { grid-template-columns: minmax(0, 1fr) auto; }
    .mercado-pago-request-row .text-link { grid-column: 1 / -1; }
}

/* Public commercial landing */
.landing-shell { width: 100%; max-width: none; margin: 0; padding: 0; }
.landing-page { --landing-dark: #103c34; --landing-teal: #2b8068; --landing-gold: #e6bd69; overflow: hidden; background: #f8faf7; }
.landing-nav { position: sticky; top: 0; z-index: 20; width: min(1180px, calc(100% - 2rem)); min-height: 76px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: rgba(248,250,247,.9); backdrop-filter: blur(16px); }
.landing-nav::after { content: ''; position: absolute; inset: 0 -100vw; z-index: -1; border-bottom: 1px solid rgba(16,60,52,.1); background: rgba(248,250,247,.9); }
.landing-menu { display: flex; align-items: center; gap: .15rem; }
.landing-menu > a:not(.button) { padding: .65rem .75rem; color: #4b5b55; font-size: .83rem; font-weight: 700; text-decoration: none; border-radius: 999px; }
.landing-menu > a:not(.button):hover { color: var(--landing-dark); background: #e3f1e9; }
.landing-login { margin-left: .35rem; color: var(--landing-dark) !important; }
.landing-demo-nav { margin-left: .35rem; min-height: 40px; padding: .55rem .85rem; font-size: .78rem; }
.landing-menu-toggle { display: none; padding: .5rem; border: 0; background: transparent; cursor: pointer; }
.landing-menu-toggle > span:not(.sr-only) { display: block; width: 1.45rem; height: 2px; margin: .25rem; background: var(--landing-dark); transition: transform .2s ease, opacity .2s ease; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.landing-page main { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; }
.landing-hero { min-height: min(700px, calc(100vh - 76px)); display: grid; grid-template-columns: minmax(0, .92fr) minmax(420px, .85fr); align-items: center; gap: clamp(2rem, 6vw, 7rem); padding: clamp(4rem, 10vw, 8rem) 0 clamp(4rem, 8vw, 7rem); }
.landing-hero-copy { position: relative; z-index: 1; }
.landing-hero h1 { max-width: 11ch; margin-bottom: 1.35rem; font-size: clamp(3rem, 6.5vw, 5.7rem); line-height: .98; }
.landing-hero h1 em { color: var(--landing-teal); font-style: normal; }
.landing-lead { max-width: 52ch; margin-bottom: .4rem; color: #273b34; font-size: clamp(1.08rem, 2vw, 1.3rem); line-height: 1.5; }
.landing-hero-copy > p:not(.landing-lead):not(.landing-powered) { max-width: 56ch; font-size: .98rem; }
.landing-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.8rem; }
.landing-actions .button { min-height: 50px; padding-inline: 1.25rem; }
.landing-powered { margin: 1.25rem 0 0; font-size: .78rem; color: #75827c; }
.landing-powered a, .landing-footer a { color: inherit; font-weight: 800; }
.landing-hero-art { position: relative; min-height: 480px; display: grid; place-items: center; }
.hero-orbit { position: absolute; border: 1px solid rgba(43,128,104,.2); border-radius: 50%; transform: rotate(-20deg); }
.hero-orbit-one { width: min(34rem, 90%); height: 19rem; }
.hero-orbit-two { width: min(27rem, 78%); height: 27rem; transform: rotate(48deg); border-color: rgba(230,189,105,.32); }
.hero-core { position: relative; width: 210px; min-height: 210px; display: grid; place-items: center; align-content: center; gap: .7rem; padding: 1.5rem; text-align: center; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; background: radial-gradient(circle at 35% 25%, #4da58a, var(--landing-dark) 70%); color: #fff; box-shadow: 0 30px 70px rgba(16,60,52,.23); }
.hero-core .brand-mark { background: #e6bd69; color: var(--landing-dark); }
.hero-core strong { font-size: 1.2rem; letter-spacing: -.03em; }
.hero-core small { color: #cfe4d9; font-size: .75rem; line-height: 1.45; }
.hero-pulse { position: absolute; display: flex; align-items: center; gap: .55rem; padding: .65rem .8rem; border: 1px solid rgba(16,60,52,.1); border-radius: 999px; background: rgba(255,255,255,.9); color: var(--landing-dark); box-shadow: 0 12px 30px rgba(16,60,52,.1); font-size: .76rem; }
.hero-pulse span { width: 1.65rem; height: 1.65rem; display: grid; place-items: center; border-radius: 50%; background: #e2f2e9; font-weight: 800; }
.hero-pulse-one { top: 17%; right: 3%; }
.hero-pulse-two { bottom: 18%; left: 3%; }
.hero-pulse-three { right: 7%; bottom: 4%; }
.landing-trust-strip { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: 1rem 0; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: #65736c; font-size: .8rem; font-weight: 700; }
.landing-trust-strip b { margin-right: .45rem; color: var(--landing-teal); }
.landing-section { padding: clamp(5rem, 10vw, 9rem) 0; }
.landing-section h2 { max-width: 17ch; margin-bottom: 1rem; font-size: clamp(2rem, 4vw, 3.55rem); line-height: 1.04; }
.landing-section-intro { max-width: 680px; }
.landing-problem { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem, 8vw, 8rem); align-items: end; }
.landing-problem-copy { padding-bottom: .2rem; }
.landing-problem-copy p { max-width: 48ch; font-size: 1.04rem; }
.landing-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.landing-section-heading > p { max-width: 38ch; margin-bottom: .35rem; font-size: .96rem; }
.solution-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.solution-card { min-height: 220px; padding: 1.5rem; border: 1px solid rgba(16,60,52,.1); border-radius: 20px; background: #fff; box-shadow: 0 14px 35px rgba(16,60,52,.05); transition: transform .2s ease, box-shadow .2s ease; }
.solution-card:hover { transform: translateY(-4px); box-shadow: 0 20px 45px rgba(16,60,52,.1); }
.solution-icon { width: 2.8rem; height: 2.8rem; margin-bottom: 1.15rem; display: grid; place-items: center; border-radius: 14px; background: #e2f2e9; color: var(--landing-teal); font-size: 1.25rem; font-weight: 850; }
.solution-card:nth-child(2n) .solution-icon { background: #fff1d3; color: #956c1e; }
.solution-card h3 { margin-bottom: .5rem; font-size: 1.15rem; }
.solution-card p { margin-bottom: 0; font-size: .88rem; line-height: 1.55; }
.landing-admin { display: grid; grid-template-columns: 1.12fr .88fr; gap: 0; padding-top: 0; }
.admin-panel { padding: clamp(2rem, 5vw, 5rem); border-radius: 28px 0 0 28px; background: var(--landing-dark); color: #fff; }
.admin-panel .eyebrow { color: #9dd3bb; }
.admin-panel h2 { max-width: 11ch; }
.admin-panel p { max-width: 52ch; color: #c8ddd3; }
.admin-panel strong { color: #fff; }
.button-light { background: #fff; color: var(--landing-dark); box-shadow: 0 8px 20px rgba(0,0,0,.12); }
.button-light:hover { background: #e6f3eb; }
.admin-panel .button { margin-top: 1.25rem; }
.admin-growth { position: relative; padding: clamp(2rem, 5vw, 5rem); overflow: hidden; border-radius: 0 28px 28px 0; background: #dcefe5; }
.growth-mark { color: #7bb999; font: 900 9rem/.7 Georgia, serif; opacity: .55; }
.admin-growth h3 { position: relative; margin: 1rem 0 2rem; color: var(--landing-dark); font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.05; }
.admin-growth ul { position: relative; display: grid; gap: .85rem; margin: 0; padding: 0; list-style: none; color: #315b4b; font-size: .9rem; }
.admin-growth li::before { content: '✓'; margin-right: .6rem; color: var(--landing-teal); font-weight: 900; }
.landing-commercial { display: grid; grid-template-columns: .88fr 1.12fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.landing-commercial h2 { max-width: 12ch; }
.commercial-visual { position: relative; min-height: 360px; display: grid; place-items: center; border: 1px solid rgba(16,60,52,.1); border-radius: 28px; background: #edf6f0; overflow: hidden; }
.commercial-line { position: absolute; width: 75%; height: 1px; background: #b7d4c4; transform-origin: center; }
.line-one { transform: rotate(26deg); }.line-two { transform: rotate(-26deg); }
.commercial-node, .commercial-result { position: absolute; padding: .8rem 1rem; border-radius: 12px; background: #fff; color: var(--landing-dark); box-shadow: 0 12px 28px rgba(16,60,52,.1); font-size: .8rem; font-weight: 800; }
.node-one { top: 22%; left: 9%; }.node-two { top: 22%; right: 7%; background: #fff2d5; }.commercial-result { bottom: 18%; left: 50%; transform: translateX(-50%); text-align: center; }.commercial-result strong { color: var(--landing-teal); }
.commercial-highlight { margin-top: 1.5rem; color: var(--landing-dark); font-size: 1.35rem; font-weight: 800; letter-spacing: -.025em; }.commercial-highlight span { color: var(--landing-gold); }
.steps-list { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; margin: 3rem 0 0; padding: 0; list-style: none; }
.steps-list li { position: relative; padding: 1.3rem 1rem 0 0; border-top: 2px solid #b9d4c5; }
.steps-list li:not(:last-child)::after { content: '→'; position: absolute; top: -.85rem; right: .65rem; color: var(--landing-teal); font-size: 1.2rem; }
.steps-list li > span { display: block; margin-bottom: 1.25rem; color: var(--landing-teal); font: 800 1.25rem/1 ui-monospace, monospace; }
.steps-list h3 { margin-bottom: .45rem; font-size: 1rem; }.steps-list p { margin: 0; padding-right: .7rem; font-size: .82rem; line-height: 1.5; }
.landing-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin: 1rem 0 5rem; padding: clamp(2rem, 5vw, 4.5rem); border-radius: 28px; background: linear-gradient(125deg, var(--landing-teal), var(--landing-dark)); color: #fff; }
.landing-cta .eyebrow { color: #a8dbc3; }.landing-cta h2 { max-width: 14ch; margin-bottom: .7rem; }.landing-cta p { max-width: 55ch; margin: 0; color: #d1e7dc; }.landing-cta-action { min-width: 245px; display: grid; justify-items: center; gap: .65rem; }.landing-cta-action small { color: #c1ded0; }
.landing-footer { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: 2.5rem 0 1.5rem; display: grid; grid-template-columns: 1.5fr 1fr .9fr; gap: 2rem; border-top: 1px solid var(--line); color: #607069; font-size: .82rem; }
.footer-brand p { margin: .75rem 0 .35rem; font-size: .84rem; }.footer-brand > span { color: #87948e; font-size: .76rem; }.landing-footer nav, .footer-contact { display: grid; align-content: start; gap: .55rem; }.landing-footer nav a, .footer-contact a { text-decoration: none; }.landing-footer nav a:hover, .footer-contact a:hover { color: var(--landing-teal); }.footer-bottom { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 1rem; padding-top: 1.2rem; border-top: 1px solid var(--line); color: #96a19c; font-size: .74rem; }
.floating-whatsapp { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 15; display: inline-flex; align-items: center; gap: .45rem; padding: .7rem .9rem; border-radius: 999px; color: #fff; background: #1d9c66; box-shadow: 0 10px 25px rgba(13,93,59,.28); font-size: .8rem; font-weight: 800; text-decoration: none; }.floating-whatsapp:hover { background: #137b4e; }.floating-whatsapp:first-letter { font-size: 1.2rem; }
@media (max-width: 980px) {
    .landing-menu > a:not(.button) { padding-inline: .5rem; font-size: .76rem; }.landing-hero { grid-template-columns: minmax(0, 1fr) minmax(330px, .8fr); gap: 2rem; }.landing-hero-art { min-height: 390px; }.solution-grid { grid-template-columns: repeat(2, 1fr); }.landing-footer { grid-template-columns: 1.2fr 1fr 1fr; }
}
@media (max-width: 820px) {
    .landing-menu-toggle { display: block; }.landing-menu { position: absolute; top: 70px; right: 0; left: 0; display: none; padding: .8rem; flex-direction: column; align-items: stretch; border: 1px solid rgba(16,60,52,.1); border-radius: 18px; background: #fff; box-shadow: 0 18px 40px rgba(16,60,52,.12); }.landing-menu.is-open { display: flex; }.landing-menu > a:not(.button), .landing-demo-nav { width: 100%; margin: 0; text-align: center; }.landing-hero { grid-template-columns: 1fr; padding-top: 5rem; }.landing-hero-art { max-width: 600px; width: 100%; margin: 0 auto; }.landing-problem, .landing-commercial { grid-template-columns: 1fr; gap: 2rem; }.landing-admin { grid-template-columns: 1fr; }.admin-panel { border-radius: 28px 28px 0 0; }.admin-growth { border-radius: 0 0 28px 28px; }.landing-section-heading { display: block; }.landing-section-heading > p { margin-top: 1rem; }.steps-list { grid-template-columns: 1fr; gap: 1rem; }.steps-list li { display: grid; grid-template-columns: 3rem 1fr; gap: .8rem; padding: 1rem 0 0; }.steps-list li:not(:last-child)::after { content: '↓'; top: auto; right: auto; bottom: -.75rem; left: 1rem; }.steps-list li > span { margin: 0; }.landing-cta { align-items: flex-start; flex-direction: column; }.landing-cta-action { justify-items: start; }
}
@media (max-width: 600px) {
    .landing-nav, .landing-page main, .landing-trust-strip, .landing-footer { width: min(100% - 1.25rem, 1180px); }.landing-hero { padding-top: 3.8rem; }.landing-hero h1 { font-size: clamp(2.7rem, 13vw, 4.4rem); }.landing-actions { display: grid; }.landing-actions .button { width: 100%; }.landing-hero-art { min-height: 300px; transform: scale(.88); margin-top: -1rem; margin-bottom: -1rem; }.hero-pulse-one { right: 0; }.hero-pulse-two { left: 0; }.landing-trust-strip { display: grid; gap: .7rem; padding: 1rem 0; }.landing-section { padding: 4.5rem 0; }.landing-section h2 { font-size: 2.35rem; }.solution-grid { grid-template-columns: 1fr; }.solution-card { min-height: auto; }.commercial-visual { min-height: 290px; }.landing-footer { grid-template-columns: 1fr 1fr; }.footer-brand, .footer-bottom { grid-column: 1 / -1; }.footer-bottom { flex-direction: column; gap: .4rem; }.floating-whatsapp { right: .75rem; bottom: .75rem; }.floating-whatsapp span { display: none; }
}
