:root {
  --brand-navy: #0D1B2A;
  --brand-teal: #17B2A6;
  --brand-sky: #30BDF6;
  --brand-coral: #FF7A59;
  --brand-soft-gray: #F1F3F6;
  --brand-surface: #FFFFFF;
  --brand-border: #D7DEE7;
  --brand-text: var(--brand-navy);
  --brand-muted: #596979;
  --brand-focus: var(--brand-navy);
  --module-nav: var(--brand-teal);
  --module-nav-hover: #72D8D0;
  --module-nav-text: var(--brand-navy);
  --color-background: var(--brand-soft-gray);
  --color-surface: var(--brand-surface);
  --color-text: var(--brand-text);
  --color-text-muted: var(--brand-muted);
  --color-border: var(--brand-border);
  --color-border-strong: #9AA8B7;
  --color-primary: var(--brand-navy);
  --color-primary-hover: #162D43;
  --color-primary-text: #fff;
  --color-subtle: var(--brand-soft-gray);
  --bg: var(--color-background);
  --surface: var(--color-surface);
  --text: var(--color-text);
  --muted: var(--color-text-muted);
  --line: var(--color-border);
  --border: var(--color-border);
  --brand: var(--color-primary);
  --brand-dark: var(--color-primary-hover);
  --ink: var(--color-text);
  --focus: var(--brand-focus);
  --radius: 5px;
  --surface-muted: var(--color-subtle);
  --danger: #a33a3a;
  --shadow: 0 1px 3px rgba(0, 0, 0, .05);
  font-family: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--bg);
  font-synthesis: none;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: var(--bg); }
.print-only { display: none; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
h1, h2, p { margin-top: 0; }
h1, h2, h3, h4, legend { font-family: "Outfit", "Inter", ui-sans-serif, system-ui, sans-serif; }
h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); letter-spacing: -.04em; margin-bottom: .4rem; }
h2 { font-size: 1rem; }
.site-header { min-height: 68px; padding: .55rem clamp(1rem, 3vw, 2.5rem); display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: var(--surface); border-bottom: 1px solid var(--line); }
.site-header nav, .button-row { display: flex; align-items: center; gap: .5rem; }
.site-header nav { flex-wrap: wrap; justify-content: flex-end; }
.site-header form { margin: 0; }
.brand { display: inline-flex; align-items: center; color: var(--text); text-decoration: none; }
.brand:focus-visible { outline: 3px solid var(--brand-focus); outline-offset: 4px; }
.brand-lockup { display: inline-flex; align-items: center; flex: 0 0 auto; }
.brand-logo-horizontal { display: block; width: 132px; height: auto; }
.brand-logo-icon { display: none; width: 32px; height: 32px; object-fit: contain; }
.brand-large { margin-bottom: 2rem; }
.brand-lockup-large .brand-logo-horizontal { width: min(250px, 70vw); }
.site-header nav .module-nav-link,
.site-header nav form .button { min-height: 34px; padding: .4rem .62rem; white-space: nowrap; }
.site-header nav .module-nav-link { border-color: var(--module-nav); background: var(--module-nav); color: var(--module-nav-text); }
.site-header nav .module-nav-link:hover { border-color: var(--brand-navy); background: var(--module-nav-hover); }
.site-header nav .module-nav-link[aria-current="page"] { border-color: var(--brand-navy); background: var(--module-nav); box-shadow: inset 0 -3px 0 var(--brand-navy); font-weight: 800; }
.site-header nav .module-nav-link:focus-visible { outline-color: var(--brand-navy); }
.user-email { color: var(--muted); font-size: .85rem; }
@media (max-width: 1180px) { .site-header .user-email { display: none; } }
.page { max-width: 1540px; margin: 0 auto; padding: 2.5rem clamp(1rem, 3vw, 2.5rem) 5rem; }
.narrow-page { max-width: 900px; margin: 0 auto; }
.wide-form-page { max-width: 1200px; margin: 0 auto; }
.page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; margin-bottom: 2rem; }
.eyebrow { margin-bottom: .45rem; color: var(--brand); font-weight: 750; font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; }
.muted { color: var(--muted); }
.fine-print { color: var(--muted); font-size: .8rem; line-height: 1.5; margin: 1rem 0 0; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 40px; padding: .6rem .95rem; border: 1px solid var(--brand-navy); border-radius: 5px; background: var(--surface); color: var(--brand-navy); text-decoration: none; font-weight: 680; font-size: .88rem; }
.button:hover { border-color: var(--brand-navy); background: var(--brand-soft-gray); }
.button-primary { color: #fff; background: var(--brand); border-color: var(--brand); }
.button-primary:hover { background: var(--brand-dark); border-color: var(--brand-dark); }
.button-quiet { background: transparent; }
.button-danger { color: var(--danger); border-color: var(--brand-coral); background: #FFF7F4; }
.button-danger:hover { color: #7F2424; border-color: var(--danger); background: #FFF0EC; }
.button:disabled, .button[aria-disabled="true"] { cursor: not-allowed; opacity: .48; }
.button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid var(--brand-focus); outline-offset: 2px; }
.button-small { min-height: 34px; padding: .4rem .65rem; font-size: .78rem; }
.button-full { width: 100%; }
.workflow-sections { display: grid; gap: 1.8rem; }
.status-section { border-top: 1px solid var(--line); padding-top: .9rem; }
.status-section-header { display: flex; align-items: center; gap: .7rem; margin-bottom: .7rem; }
.status-section-header h2 { margin: 0; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.count { color: var(--muted); font-size: .75rem; }
.property-summary-list { display: grid; gap: .65rem; }
.section-empty { margin: 0; padding: .55rem 0; color: #89938d; font-size: .8rem; }
.property-card { display: grid; grid-template-columns: 160px minmax(260px, 1fr) minmax(360px, auto); grid-template-areas: "thumbnail summary side"; gap: 1rem; align-items: stretch; background: var(--surface); border: 1px solid var(--line); border-radius: 7px; padding: .75rem; overflow: hidden; }
.property-card-media { grid-area: thumbnail; width: 160px; height: 110px; align-self: start; }
.property-image-frame { position: relative; overflow: hidden; border: 1px solid var(--line); background: var(--color-subtle); }
.property-image-frame img, .property-image-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; }
.property-image-frame img { z-index: 1; display: block; object-fit: cover; object-position: center; }
.property-image-placeholder { display: grid; place-items: center; color: #8a8a86; background: linear-gradient(135deg, #f4f4f2, #e7e7e4); }
.property-image-placeholder span { font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.property-thumbnail { width: 100%; height: 100%; border-radius: 7px; }
.property-thumbnail img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.property-card-content { grid-area: summary; min-width: 0; align-self: center; }
.card-topline { display: flex; align-items: center; gap: .55rem; margin-bottom: .45rem; }
.updated-date { color: var(--muted); font-size: .68rem; }
.card-address { display: block; font-weight: 800; font-size: 1.02rem; text-decoration: none; line-height: 1.3; }
.card-address:hover { color: var(--brand); }
.card-location { margin: .2rem 0 0; color: var(--muted); font-size: .78rem; line-height: 1.35; }
.status { display: inline-flex; padding: .22rem .48rem; border-radius: 999px; background: #e8ece9; color: #44514a; font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.status-new { background: #e8eef8; color: #34557f; }
.status-review { background: #f4edd7; color: #715a18; }
.status-strong_candidate { background: #dff2e8; color: #176344; }
.status-inspect { background: #e9e2f5; color: #5c3e88; }
.status-offer { background: #dfeef2; color: #225f6d; }
.status-passed, .status-archived { background: #ececec; color: #616161; }
.summary-facts { display: flex; flex-wrap: wrap; gap: .3rem .85rem; margin-top: .45rem; color: #454545; font-size: .77rem; }
.summary-facts span { white-space: nowrap; }
.notes-preview { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: .45rem 0 0; color: #535353; font-size: .75rem; line-height: 1.35; }
.missing-details { margin: .4rem 0 0; color: #705d1d; font-size: .7rem; line-height: 1.35; }
.property-card-side { grid-area: side; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end; gap: .7rem; }
.asking-price { margin: 0; text-align: right; }
.asking-price dt { color: var(--muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; }
.asking-price dd { margin: .12rem 0 0; color: var(--text); font-size: 1.22rem; font-weight: 800; white-space: nowrap; }
.asking-price .price-unavailable { color: var(--muted); font-size: .78rem; font-weight: 600; }
.summary-actions { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: .4rem; }
.card-links, .status-form { display: flex; align-items: center; gap: .4rem; }
.status-form select { width: auto; min-width: 120px; padding: .4rem .5rem; font-size: .76rem; }
.login-shell { display: grid; place-items: center; min-height: 100vh; padding: 1rem; background: var(--bg); }
.login-card, .form-card, .panel { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow); }
.login-card { width: min(100%, 420px); padding: clamp(1.5rem, 5vw, 2.5rem); }
.stack { display: grid; gap: 1rem; margin-top: 1.6rem; }
label > span { display: block; font-size: .8rem; font-weight: 700; margin-bottom: .4rem; }
input, select, textarea { width: 100%; border: 1px solid var(--color-border-strong); border-radius: 5px; background: white; padding: .68rem .75rem; color: var(--text); accent-color: var(--brand-teal); }
input:focus, select:focus, textarea:focus { outline: 3px solid color-mix(in srgb, var(--brand-focus) 32%, transparent); border-color: var(--brand-navy); }
textarea { resize: vertical; line-height: 1.5; }
.alert { border: 1px solid #e7bcbc; border-radius: 8px; background: #fff0f0; color: #812f2f; padding: .75rem; margin-top: 1.2rem; font-size: .85rem; }
.notice, .review-warnings { border: 1px solid #cbded2; border-radius: 10px; background: #edf7f1; color: #315843; padding: .9rem 1rem; margin-bottom: 1rem; font-size: .86rem; line-height: 1.5; }
.review-warnings { border-color: #e6d7aa; background: #fff9e8; color: #65551d; }
.review-warnings ul { margin: .5rem 0 0; padding-left: 1.2rem; }
.back-link { display: inline-block; color: var(--muted); font-size: .85rem; text-decoration: none; margin-bottom: 1.5rem; }
.form-card { padding: clamp(1rem, 3vw, 2rem); }
.import-form { display: grid; gap: 1.2rem; }
.provider-import-form { margin-bottom: 1rem; }
.provider-import-form h2 { margin: .2rem 0; font-size: 1.15rem; }
.provider-alert p { margin: .45rem 0 0; }
.import-divider { display: flex; align-items: center; gap: .8rem; margin: 1.4rem 0; color: var(--muted); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.import-divider::before, .import-divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }
fieldset { border: 0; padding: 0 0 2rem; margin: 0 0 2rem; border-bottom: 1px solid var(--line); }
fieldset:last-of-type { margin-bottom: 0; }
legend { width: 100%; padding: 0; margin-bottom: 1rem; font-size: 1rem; font-weight: 800; }
legend small, label small { color: var(--muted); font-weight: 500; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.span-2 { grid-column: span 2; }
.money-input { display: flex; align-items: center; border: 1px solid var(--color-border-strong); border-radius: 5px; overflow: hidden; }
.money-input:focus-within { outline: 3px solid rgba(17,17,17,.14); border-color: var(--text); }
.money-input span { padding-left: .75rem; color: var(--muted); }
.money-input input { border: 0; outline: 0; }
.field-error { color: var(--danger); font-weight: 500; margin: .35rem 0 0; }
.form-actions { display: flex; justify-content: flex-end; gap: .75rem; }
.hidden-source { display: none; }
.source-preview { margin: 0 0 1.5rem; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.source-preview summary { cursor: pointer; padding: .8rem 1rem; color: var(--muted); font-weight: 700; font-size: .82rem; }
.source-preview pre { margin: 0; padding: 1rem; border-top: 1px solid var(--line); background: #f8faf8; white-space: pre-wrap; overflow-wrap: anywhere; font: .78rem/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; max-height: 300px; overflow: auto; }
.bulk-review-list { display: grid; gap: 1rem; }
.review-primary-image { width: min(100%, 720px); height: clamp(220px, 42vw, 420px); margin: 0 0 1rem; border-radius: 5px; }
.bulk-review-card { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 1rem; }
.bulk-review-card.duplicate-row { background: #fafafa; }
.bulk-review-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.selection-control { display: flex; align-items: center; gap: .55rem; font-weight: 750; font-size: .82rem; }
.selection-control input { width: 18px; height: 18px; margin: 0; }
.selection-control span { margin: 0; }
.row-number { color: var(--muted); font-size: .75rem; }
.duplicate-notice, .row-warnings { margin-bottom: .8rem; padding: .6rem .75rem; border-radius: 8px; background: #f1f1f1; color: #5a625d; font-size: .76rem; line-height: 1.45; }
.row-warnings { background: #fff9e8; color: #65551d; }
.bulk-fields { display: grid; grid-template-columns: repeat(6, minmax(100px, 1fr)); gap: .7rem; }
.bulk-fields .field-title, .bulk-fields .field-address, .bulk-fields .field-url { grid-column: span 3; }
.bulk-fields label > span { font-size: .7rem; }
.bulk-fields input, .bulk-fields select { padding: .55rem .6rem; font-size: .8rem; }
.compact-source { margin: .8rem 0 0; }
.sticky-actions { position: sticky; bottom: 0; display: flex; justify-content: flex-end; gap: .75rem; margin-top: 1rem; padding: .85rem; border: 1px solid var(--line); border-radius: 10px; background: rgba(244,246,243,.96); backdrop-filter: blur(8px); }
.result-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; margin: 0 0 1.5rem; }
.result-summary div { padding: 1rem; border-radius: 9px; background: #f3f6f3; }
.result-summary dt { color: var(--muted); font-size: .75rem; }
.result-summary dd { margin: .25rem 0 0; font-size: 1.5rem; font-weight: 800; }
.property-workspace { max-width: 1280px; margin: 0 auto; }
.workspace-hero { width: 100%; aspect-ratio: 16 / 9; border-radius: 10px; }
.workspace-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.workspace-heading { min-width: 0; }
.heading-badge { margin-bottom: .75rem; }
.workspace-heading h1 { max-width: 850px; margin-bottom: .5rem; }
.workspace-location { margin-bottom: .4rem; color: var(--muted); font-size: 1rem; }
.workspace-property-type { margin-bottom: .65rem; font-size: .82rem; font-weight: 750; }
.workspace-features { display: flex; flex-wrap: wrap; gap: .35rem 1rem; color: #414141; font-size: .88rem; }
.workspace-features span:not(:last-child)::after { content: "•"; margin-left: 1rem; color: var(--color-border-strong); }
.workspace-asking { flex: 0 0 auto; margin: 0; text-align: right; }
.workspace-asking dt { color: var(--muted); font-size: .72rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.workspace-asking dd { margin: .2rem 0 0; font-size: clamp(1.7rem, 4vw, 2.5rem); font-weight: 850; letter-spacing: -.04em; white-space: nowrap; }
.workspace-columns { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .85fr); gap: 1.25rem; padding-top: 1.25rem; align-items: start; }
.workspace-main, .workspace-sidebar { display: grid; gap: 1.25rem; }
.workspace-section { padding: 1.4rem 0; }
.workspace-section h2, .workspace-card h2 { margin-bottom: 1rem; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; }
.description-section { max-width: 780px; }
.workspace-description { color: #333; font-size: .98rem; line-height: 1.75; white-space: pre-wrap; }
.workspace-card { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 1.25rem; box-shadow: var(--shadow); }
.workspace-action-row { display: flex; flex-wrap: wrap; gap: .65rem; }
.workspace-action-row form { margin: 0; }
.renovation-budget-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.workspace-card .renovation-budget-heading h2 { margin-bottom: 0; }
.renovation-budget-heading span { color: var(--muted); font-size: .72rem; font-weight: 750; }
.renovation-duration-form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; margin-top: .75rem; }
.renovation-duration-form label { flex: 1 1 220px; }
.renovation-budget-list { display: grid; gap: 0; margin: .75rem 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.renovation-budget-item { min-width: 0; padding: .5rem .15rem; border-bottom: 1px solid var(--line); }
.renovation-budget-item header { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(160px, .8fr) auto auto; gap: .65rem; align-items: center; }
.renovation-budget-item header > div { min-width: 0; }
.renovation-position { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-right: .4rem; border-radius: 50%; background: var(--color-subtle); color: var(--muted); font-size: .66rem; font-weight: 800; }
.renovation-cost { flex: 0 0 auto; font-weight: 800; white-space: nowrap; }
.renovation-account { color: var(--muted); font-size: .74rem; }
.renovation-note { margin: .25rem 0 0 1.9rem; color: var(--muted); font-size: .72rem; line-height: 1.4; overflow-wrap: anywhere; white-space: pre-wrap; }
.renovation-actions { display: flex; gap: .35rem; align-items: center; }
.renovation-actions summary, .renovation-add summary { list-style: none; cursor: pointer; }
.renovation-actions summary::-webkit-details-marker, .renovation-add summary::-webkit-details-marker { display: none; }
.renovation-item-form { margin-top: .75rem; padding: .85rem; border: 1px solid var(--line); border-radius: 5px; background: var(--color-subtle); }
.renovation-edit-form { width: min(620px, calc(100vw - 7rem)); }
.renovation-form-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(140px, .45fr) 90px minmax(170px, .6fr); gap: .7rem; margin-bottom: .75rem; }
.renovation-note-field { grid-column: 1 / -1; }
.renovation-budget-total { display: flex; justify-content: space-between; gap: 1rem; margin: 1rem 0 0; padding-top: 1rem; border-top: 2px solid var(--text); }
.renovation-budget-total dt, .renovation-budget-total dd { font-weight: 850; }
.renovation-budget-total dd { margin: 0; font-size: 1.1rem; }
.renovation-add { margin-top: 1rem; }
.renovation-empty, .renovation-limit { margin: 1rem 0 0; padding: .8rem; border-radius: 5px; background: var(--color-subtle); color: var(--muted); font-size: .8rem; text-align: center; }
.managed-field-help { display: block; margin-top: .4rem; color: var(--muted); line-height: 1.4; }
.managed-field-help a { color: var(--text); font-weight: 700; }
.comparable-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.workspace-card .comparable-heading h2 { margin-bottom: 0; }
.comparable-heading > span { color: var(--muted); font-size: .72rem; font-weight: 750; }
.comparable-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .5rem; margin-top: 1rem; }
.comparable-summary dl { min-width: 0; margin: 0; padding: .7rem; background: var(--color-subtle); border-radius: 5px; }
.comparable-summary dt { color: var(--muted); font-size: .66rem; }
.comparable-summary dd { margin: .2rem 0 0; font-size: .82rem; font-weight: 800; overflow-wrap: anywhere; }
.comparable-guidance { margin: .85rem 0 0; color: #3c3c3c; font-size: .78rem; line-height: 1.5; }
.comparable-estimate-actions, .comparable-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .75rem; }
.comparable-estimate-actions form, .comparable-actions form { margin: 0; }
.comparable-list { display: grid; gap: .55rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.comparable-row { padding: .8rem; border: 1px solid var(--line); border-radius: 5px; }
.comparable-excluded { background: var(--color-subtle); opacity: .75; }
.comparable-row-header { display: flex; justify-content: space-between; gap: 1rem; }
.comparable-row-header > div { min-width: 0; }
.comparable-status { display: inline-flex; margin-right: .4rem; padding: .12rem .38rem; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.comparable-location { display: block; margin-top: .2rem; color: var(--muted); font-size: .74rem; overflow-wrap: anywhere; }
.comparable-price { flex: 0 0 auto; text-align: right; }
.comparable-price time { display: block; margin-top: .15rem; color: var(--muted); font-size: .7rem; }
.comparable-facts { display: flex; flex-wrap: wrap; gap: .3rem .8rem; margin-top: .6rem; color: var(--muted); font-size: .74rem; }
.comparable-note { margin-top: .55rem; font-size: .78rem; line-height: 1.45; overflow-wrap: anywhere; white-space: pre-wrap; }
.comparable-actions details { min-width: 0; }
.comparable-edit-form { margin-top: .75rem; padding: .8rem; border: 1px solid var(--line); border-radius: 5px; background: var(--color-subtle); }
.comparable-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; margin-bottom: .75rem; }
.comparable-address, .comparable-source, .comparable-notes { grid-column: span 2; }
.comparable-add { margin-top: 1rem; }
.due-diligence-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.workspace-card .due-diligence-heading h2 { margin-bottom: .3rem; }
.due-diligence-heading p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.due-diligence-heading > span { flex: 0 0 auto; color: var(--muted); font-size: .72rem; font-weight: 750; }
.due-diligence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: 1rem; }
.due-diligence-card { min-width: 0; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); overflow: hidden; }
.due-diligence-card-priority { grid-column: 1 / -1; border-color: var(--color-border-strong); }
.due-diligence-card-priority > summary { padding: 1rem; }
.due-diligence-card-priority .due-diligence-title { font-size: .92rem; }
.due-diligence-card-priority .due-diligence-snapshot { aspect-ratio: auto; object-fit: contain; }
.due-diligence-card summary { display: flex; justify-content: space-between; align-items: center; gap: .7rem; padding: .8rem; cursor: pointer; list-style: none; }
.due-diligence-card summary::-webkit-details-marker { display: none; }
.due-diligence-title { min-width: 0; font-size: .82rem; font-weight: 800; overflow-wrap: anywhere; }
.due-status { display: inline-flex; flex: 0 0 auto; padding: .18rem .45rem; border: 1px solid var(--line); border-radius: 999px; font-size: .62rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.due-status-unknown, .due-status-checking { color: var(--muted); background: var(--color-subtle); }
.due-status-passed { color: #245d3d; border-color: #8eb7a0; background: #edf5f0; }
.due-status-warning { color: #685515; border-color: #c8b978; background: #f8f4e7; }
.due-status-issue, .due-status-failed { color: var(--danger); border-color: #d2a0a0; background: #fbefef; }
.due-diligence-body { padding: 0 .8rem .8rem; border-top: 1px solid var(--line); }
.due-diligence-snapshot { display: block; width: 100%; aspect-ratio: 16 / 9; margin-top: .8rem; border: 1px solid var(--line); border-radius: 5px; object-fit: cover; }
.due-diligence-map { margin: 0; }
.due-diligence-map figcaption { margin-top: .3rem; color: var(--muted); font-size: .68rem; }
.flood-property-context { display: grid; gap: .2rem; margin-top: .8rem; padding: .75rem .85rem; border: 1px solid var(--line); border-radius: 5px; background: var(--color-subtle); font-size: .75rem; }
.flood-property-context strong { font-size: .86rem; }
.flood-property-context span { color: var(--muted); overflow-wrap: anywhere; }
.flood-result-banner { margin: .7rem 0 0; padding: .7rem .85rem; border: 2px solid var(--color-border-strong); border-radius: 5px; font-size: .8rem; font-weight: 800; }
.flood-result-direct { border-style: solid; background: #fbefef; color: var(--danger); }
.flood-result-nearby { border-style: dashed; background: #f5f3e9; }
.flood-result-none { background: var(--color-subtle); }
.flood-result-unavailable { border-style: dotted; color: var(--muted); }
.flood-point-limitation { margin: .85rem 0; padding: .7rem .8rem; border-left: 4px solid var(--text); background: var(--color-subtle); font-size: .75rem; font-weight: 700; line-height: 1.45; }
.flood-dataset-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; margin-top: .45rem; }
.flood-dataset-result { min-width: 0; margin: 0; padding: .65rem; border: 1px solid var(--line); border-radius: 5px; }
.flood-dataset-result div { display: flex; justify-content: space-between; gap: .5rem; padding: .25rem 0; font-size: .68rem; }
.flood-dataset-result dt { color: var(--muted); }
.flood-dataset-result dd { margin: 0; text-align: right; overflow-wrap: anywhere; }
.due-diligence-snapshot-empty { display: grid; place-items: center; color: var(--muted); background: var(--color-subtle); font-size: .7rem; }
.property-map-primary { width: 100%; min-height: 360px; aspect-ratio: 16 / 9; margin-top: .8rem; overflow: hidden; border: 1px solid var(--line); border-radius: 5px; }
.property-map-leaflet { z-index: 0; background: var(--color-subtle); }
.property-map-workspace { width: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
.property-map-workspace .property-map-primary { margin-top: 0; border-right: 0; border-left: 0; border-radius: 0; }
.property-map-toolbar { display: flex; flex-wrap: wrap; gap: .4rem; padding: .65rem; border-bottom: 1px solid var(--line); background: var(--color-subtle); }
.map-tool { min-height: 2.25rem; padding: .4rem .65rem; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); color: var(--text); font: inherit; font-size: .75rem; font-weight: 700; cursor: pointer; }
.map-tool:hover { border-color: var(--text); }
.map-tool.is-active, .map-tool[aria-pressed="true"] { border-color: var(--text); background: var(--text); color: var(--surface); }
.map-tool:disabled { cursor: not-allowed; opacity: .5; }
.map-tool:focus-visible, .property-map-layer-panel input:focus-visible, .property-map-panels summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.property-map-measurement { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; padding: .45rem .75rem; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .72rem; }
.property-map-measurement [data-map-measurement-result] { color: var(--text); font-weight: 800; }
.property-map-workspace.is-measuring .property-map-leaflet { cursor: crosshair; }
.property-map-status-strip { display: flex; flex-wrap: wrap; gap: .45rem 1rem; padding: .6rem .75rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .7rem; }
.property-map-status-strip strong { color: var(--text); }
.property-map-panels { display: grid; grid-template-columns: minmax(0, 2fr) minmax(12rem, 1fr); border-top: 1px solid var(--line); }
.property-map-panels details + details { border-left: 1px solid var(--line); }
.property-map-panels summary { padding: .65rem .75rem; font-size: .74rem; font-weight: 800; cursor: pointer; }
.property-map-layer-panel [data-map-layer-controls] { display: flex; flex-wrap: wrap; gap: .5rem 1rem; padding: 0 .75rem .75rem; }
.property-map-layer-panel label { display: inline-flex; align-items: center; gap: .4rem; font-size: .72rem; font-weight: 650; }
.property-map-layer-panel input { accent-color: var(--text); }
.property-map-legend ul { display: grid; gap: .45rem; margin: 0; padding: 0 .75rem .75rem; list-style: none; }
.property-map-legend li { display: flex; align-items: center; gap: .55rem; font-size: .7rem; }
.map-legend-symbol { display: inline-block; flex: 0 0 2rem; width: 2rem; height: .7rem; border: 2px solid #555; background: repeating-linear-gradient(45deg, transparent, transparent 3px, #ddd 3px, #ddd 5px); }
.map-legend-symbol.marker { width: .85rem; height: .85rem; margin-inline: .55rem; border-radius: 50%; border-color: #111; background: #fff; box-shadow: 0 0 0 3px rgba(17,17,17,.2); }
.map-legend-symbol.parcel { border-color: #111; border-style: dashed; background: transparent; }
.map-legend-symbol.direct { border-color: #8b1e1e; background: repeating-linear-gradient(45deg, rgba(139,30,30,.18), rgba(139,30,30,.18) 3px, transparent 3px, transparent 6px); }
.map-legend-symbol.nearby { border-color: #555; border-style: dotted; background: transparent; }
.map-legend-symbol.context { border-color: #4b5563; background: rgba(75,85,99,.08); }
.property-map-workspace:fullscreen { display: flex; flex-direction: column; width: 100vw; height: 100vh; border: 0; border-radius: 0; background: var(--surface); }
.property-map-workspace:fullscreen .property-map-primary { flex: 1 1 auto; min-height: 0; aspect-ratio: auto; }
.flipfinder-property-marker { display: grid; place-items: center; border: 2px solid #fff; border-radius: 50%; background: #111; box-shadow: 0 0 0 2px #111; }
.flipfinder-property-marker span { width: 6px; height: 6px; border-radius: 50%; background: #fff; }
.property-map-popup p { margin: .25rem 0; line-height: 1.35; }
.property-map-placeholder { display: grid; place-items: center; padding: 2rem; background: #fff; text-align: center; }
.property-map-placeholder > div { max-width: 38rem; }
.property-map-placeholder strong { display: block; font-size: 1rem; }
.property-map-placeholder p { margin: .55rem 0; color: var(--muted); line-height: 1.55; }
.property-map-context { margin: .75rem 0 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.property-map-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .85rem; }
.property-map-section { min-width: 0; overflow: hidden; }
.property-map-section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.property-map-section-heading h2 { margin-bottom: .35rem; }
.property-map-section-heading p { max-width: 70ch; margin: 0; color: var(--muted); line-height: 1.5; }
.property-map-section .property-map-primary { min-height: 480px; }
.property-map-context-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 1rem 0 0; border: 1px solid var(--line); border-radius: 5px; }
.property-map-context-grid div { min-width: 0; padding: .75rem; }
.property-map-context-grid div + div { border-left: 1px solid var(--line); }
.property-map-context-grid dt { color: var(--muted); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; }
.property-map-context-grid dd { margin: .3rem 0 0; overflow-wrap: anywhere; font-size: .78rem; font-weight: 700; }
.property-map-details { margin-top: 1rem; border-top: 1px solid var(--line); padding-top: .9rem; }
.property-map-details > summary { cursor: pointer; font-weight: 800; }
.property-map-details[open] > summary { margin-bottom: 1rem; }
.property-map-technical { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.property-map-technical > div { min-width: 0; padding-top: .8rem; border-top: 1px solid var(--line); }
.property-map-technical h3 { margin: 0 0 .45rem; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.property-map-technical p, .property-map-technical ul { overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .property-map-actions .button { flex: 1 1 12rem; text-align: center; }
  .property-map-section-heading { align-items: stretch; flex-direction: column; }
  .property-map-section .property-map-primary { min-height: 300px; }
  .property-map-toolbar { gap: .35rem; padding: .5rem; }
  .map-tool { flex: 1 1 8.5rem; }
  .property-map-panels { grid-template-columns: 1fr; }
  .property-map-panels details + details { border-top: 1px solid var(--line); border-left: 0; }
  .property-map-status-strip span { flex: 1 1 9rem; }
  .property-map-context-grid, .property-map-technical { grid-template-columns: 1fr; }
  .property-map-context-grid div + div { border-top: 1px solid var(--line); border-left: 0; }
}
.due-diligence-meta { margin: .7rem 0 0; }
.due-diligence-meta div { display: flex; justify-content: space-between; gap: .8rem; padding: .4rem 0; border-bottom: 1px solid var(--line); font-size: .72rem; }
.due-diligence-meta dt { color: var(--muted); }
.due-diligence-meta dd { min-width: 0; margin: 0; text-align: right; overflow-wrap: anywhere; }
.due-diligence-summary { margin-top: .7rem; }
.due-diligence-summary h3 { margin: 0 0 .25rem; font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; }
.due-diligence-summary p { margin: 0; font-size: .76rem; line-height: 1.5; overflow-wrap: anywhere; }
.due-diligence-summary h3:not(:first-child) { margin-top: .85rem; }
.due-source-list { margin: .25rem 0 0; padding-left: 1.1rem; font-size: .74rem; line-height: 1.5; }
.due-diligence-summary .fine-print { margin-top: .45rem; }
.due-diligence-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; margin-top: .75rem; }
.due-diligence-actions form { margin: 0; }
@media (max-width: 820px) { .flood-dataset-grid { grid-template-columns: 1fr; } }
.positive-value { color: #247047 !important; }
.card-comparison-metrics { display: grid; grid-template-columns: repeat(3, auto); gap: .5rem .8rem; margin: 0; }
.card-comparison-metrics div { text-align: right; }
.card-comparison-metrics dt { color: var(--muted); font-size: .64rem; }
.card-comparison-metrics dd { margin: .12rem 0 0; font-size: .78rem; font-weight: 800; white-space: nowrap; }
.deal-finder-summary { margin: 0 0 1rem; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
.deal-finder-summary dl { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0; }
.deal-finder-summary div { min-width: 0; padding: .75rem; }
.deal-finder-summary div + div { border-left: 1px solid var(--line); }
.deal-finder-summary dt { color: var(--muted); font-size: .64rem; letter-spacing: .04em; text-transform: uppercase; }
.deal-finder-summary dd { margin: .2rem 0 0; overflow-wrap: anywhere; font-size: 1rem; font-weight: 850; }
.deal-finder-summary small { margin-left: .15rem; color: var(--muted); font-size: .65rem; }
.deal-finder-controls { margin-bottom: 1.25rem; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
.deal-finder-controls > summary { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem .85rem; cursor: pointer; font-size: .78rem; font-weight: 800; }
.deal-finder-controls[open] > summary { border-bottom: 1px solid var(--line); }
.deal-filter-form { display: grid; grid-template-columns: repeat(7, minmax(110px, 1fr)) auto; gap: .6rem; align-items: end; padding: .75rem; }
.deal-filter-form label { min-width: 0; }
.deal-filter-form label > span { font-size: .66rem; }
.deal-filter-form select, .deal-filter-form input { min-width: 0; }
.deal-filter-actions { display: flex; gap: .4rem; }
.deal-recommendation { display: inline-flex; align-items: center; min-height: 22px; padding: .15rem .45rem; border: 1px solid var(--line); border-radius: 999px; background: var(--color-subtle); color: var(--text); font-size: .6rem; font-weight: 850; letter-spacing: .04em; line-height: 1.1; text-transform: uppercase; }
.deal-recommendation-excellent, .deal-recommendation-strong_candidate { border-color: var(--brand-teal); }
.deal-recommendation-weak, .deal-recommendation-pass { border-color: #d2a0a0; }
.deal-card-score { display: flex; align-items: baseline; gap: .45rem; color: var(--muted); font-size: .64rem; }
.deal-score-value { color: var(--text); font-family: "Outfit", "Inter", sans-serif; font-size: 1.35rem; font-weight: 850; line-height: 1; }
.deal-score-value small { margin-left: .1rem; color: var(--muted); font-size: .58rem; }
.deal-analysis-header { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.deal-analysis-header h2 { margin-bottom: .35rem; }
.deal-analysis-header p { max-width: 66ch; margin-bottom: 0; }
.deal-analysis-rating { display: flex; flex: 0 0 auto; flex-direction: column; align-items: flex-end; gap: .4rem; }
.analysis-completeness { color: var(--muted); font-size: .68rem; font-weight: 750; }
.deal-analysis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.deal-analysis-grid > section { min-width: 0; }
.deal-analysis h3 { margin: 0 0 .55rem; color: var(--muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.deal-analysis-values, .deal-decision-tools dl { margin: 0; }
.deal-analysis-values div, .deal-decision-tools dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .48rem 0; border-bottom: 1px solid var(--line); }
.deal-analysis-values dt, .deal-decision-tools dt { color: var(--muted); font-size: .76rem; }
.deal-analysis-values dd, .deal-decision-tools dd { margin: 0; text-align: right; font-size: .78rem; font-weight: 800; }
.deal-analysis-values .deal-analysis-total { border-top: 2px solid var(--text); }
.deal-analysis-values .deal-analysis-total dt, .deal-analysis-values .deal-analysis-result dt { color: var(--text); font-weight: 800; }
.deal-analysis-values .deal-analysis-total dd, .deal-analysis-values .deal-analysis-result dd { font-size: .92rem; }
.deal-score-components { border-top: 1px solid var(--line); }
.deal-score-component { padding: .5rem 0; border-bottom: 1px solid var(--line); }
.deal-score-component > div { display: flex; justify-content: space-between; gap: .75rem; font-size: .76rem; }
.deal-score-component > div span { flex: 0 0 auto; font-weight: 850; }
.deal-score-component p { margin: .2rem 0 0; color: var(--muted); font-size: .7rem; line-height: 1.4; }
.deal-analysis-findings { margin-top: 1rem; }
.deal-analysis-findings section { padding: .75rem; border: 1px solid var(--line); border-radius: 5px; background: var(--color-subtle); }
.deal-analysis-findings ul { margin: 0; padding-left: 1rem; font-size: .75rem; line-height: 1.5; }
.deal-analysis-findings li + li { margin-top: .25rem; }
.deal-decision-tools { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.deal-analysis-disclaimer { margin-top: .8rem; }
@media (max-width: 1180px) {
  .deal-finder-summary dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .deal-finder-summary div:nth-child(4) { border-left: 0; }
  .deal-finder-summary div:nth-child(n+4) { border-top: 1px solid var(--line); }
  .deal-filter-form { grid-template-columns: repeat(4, minmax(130px, 1fr)); }
}
@media (max-width: 760px) {
  .deal-finder-summary dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .deal-finder-summary div:nth-child(odd) { border-left: 0; }
  .deal-finder-summary div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .deal-filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .deal-filter-actions { grid-column: 1 / -1; }
  .deal-analysis-header { align-items: flex-start; flex-direction: column; }
  .deal-analysis-rating { align-items: flex-start; }
  .deal-analysis-grid { grid-template-columns: 1fr; }
}
.settings-account-form { display: grid; grid-template-columns: 140px minmax(220px,1fr) auto; gap: .35rem; align-items: end; margin: .4rem 0; }
.settings-account-list { display: grid; gap: .2rem; }
.settings-account-row { display: grid; grid-template-columns: 1fr auto auto auto; gap: .35rem; align-items: center; padding: .28rem 0; border-top: 1px solid var(--line); }
.settings-account-row form { display: flex; gap: .4rem; }
.snapshot-heading { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.workspace-card .snapshot-heading h2 { margin-bottom: 0; }
.deal-signal { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 24px; padding: .2rem .55rem; border: 1px solid var(--color-border-strong); border-radius: 999px; background: var(--color-subtle); font-size: .66rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.deal-signal-strong { color: #245d3d; border-color: #8eb7a0; background: #edf5f0; }
.deal-signal-moderate { color: #685515; border-color: #c8b978; background: #f8f4e7; }
.deal-signal-weak { color: #873636; border-color: #d2a0a0; background: #fbefef; }
.deal-signal-incomplete { color: var(--muted); }
.snapshot-list { margin: 0; }
.snapshot-group + .snapshot-group { margin-top: 1.25rem; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.snapshot-group h3 { margin: 0 0 .45rem; color: var(--muted); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.snapshot-list div { display: flex; justify-content: space-between; gap: 1rem; padding: .68rem 0; border-bottom: 1px solid #ececea; }
.snapshot-list div:last-child { border-bottom: 0; }
.snapshot-list dt { color: var(--muted); font-size: .84rem; }
.snapshot-list dd { margin: 0; font-weight: 750; text-align: right; }
.snapshot-list .snapshot-spacer-before { margin-top: .45rem; padding-top: 1rem; border-top: 1px solid var(--color-border-strong); }
.snapshot-list .snapshot-subtotal { padding-right: .55rem; padding-left: .55rem; background: var(--color-subtle); border-radius: 4px; }
.snapshot-list .snapshot-subtotal dt, .snapshot-list .snapshot-prominent dt, .snapshot-list .snapshot-strongest dt, .snapshot-list .snapshot-dominant dt { color: var(--text); font-weight: 750; }
.snapshot-list .snapshot-prominent dd { font-size: .96rem; }
.snapshot-list .snapshot-strongest { border-top: 2px solid var(--text); }
.snapshot-list .snapshot-strongest dt { font-weight: 850; }
.snapshot-list .snapshot-strongest dd { font-size: 1.08rem; font-weight: 850; }
.snapshot-list .snapshot-dominant { padding-right: .55rem; padding-left: .55rem; background: var(--color-subtle); }
.snapshot-list .snapshot-dominant dd { font-size: 1.08rem; font-weight: 850; }
.snapshot-list .snapshot-secondary dt { color: #777; }
.negative-value { color: var(--danger) !important; }
.snapshot-guidance, .snapshot-warnings { margin-top: 1.25rem; padding: .85rem .9rem; border: 1px solid var(--line); border-radius: 5px; font-size: .78rem; line-height: 1.45; }
.snapshot-guidance { background: var(--color-subtle); }
.snapshot-warnings { border-color: #d6b2b2; background: #fcf4f4; }
.snapshot-guidance h3, .snapshot-warnings h3 { margin: 0 0 .35rem; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.snapshot-guidance p { margin: 0 0 .35rem; color: var(--muted); }
.snapshot-guidance ul, .snapshot-warnings ul { margin: 0; padding-left: 1.1rem; }
.snapshot-guidance li + li, .snapshot-warnings li + li { margin-top: .2rem; }
.financial-details form { display: grid; gap: 1rem; }
.financial-field-group { margin: 0; padding: 0 0 1rem; border: 0; border-bottom: 1px solid var(--line); }
.financial-field-group legend { margin-bottom: .75rem; font-size: .76rem; letter-spacing: .06em; text-transform: uppercase; }
.financial-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.financial-details label > span { font-size: .75rem; }
.financial-details input { min-width: 0; }
.financial-details textarea { width: 100%; resize: vertical; }
.valuation-notes { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.valuation-notes p { margin: .35rem 0 0; white-space: pre-wrap; }
.project-portfolio-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 0 0 1.25rem; }
.project-portfolio-summary div { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
.project-portfolio-summary dt, .project-card-metrics dt, .project-overview-grid dt { color: var(--muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; }
.project-portfolio-summary dd { margin: .25rem 0 0; font-size: 1.25rem; font-weight: 850; overflow-wrap: anywhere; }
.project-portfolio-summary small { color: var(--muted); }
.project-filters { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.25rem; }
.project-list { display: grid; gap: .8rem; }
.project-card header, .project-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.project-card h2 { margin: .65rem 0 .2rem; font-size: 1.05rem; letter-spacing: 0; text-transform: none; }
.project-card header p { margin: 0; color: var(--muted); }
.project-card-metrics, .project-overview-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0 0; }
.project-card-metrics div, .project-overview-grid div { padding-top: .65rem; border-top: 1px solid var(--line); }
.project-card-metrics dd, .project-overview-grid dd { margin: .25rem 0 0; font-weight: 800; overflow-wrap: anywhere; }
.project-empty { padding: 3rem 1.5rem; text-align: center; }
.project-workspace { max-width: 1280px; margin: 0 auto; }
.project-header { padding-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
.project-header h1 { margin-top: .55rem; }
.project-header-meta { font-size: .8rem; color: var(--muted); }
.project-workspace-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, .8fr); gap: 1.25rem; padding-top: 1.25rem; align-items: start; }
.milestone-form { padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); }
.milestone-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; margin-bottom: .75rem; }
.milestone-form-grid .span-2 { grid-column: span 2; }
.milestone-list { display: grid; gap: .75rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.milestone-list article { padding: .85rem; border: 1px solid var(--line); border-radius: 6px; }
.milestone-list header { display: flex; justify-content: space-between; gap: 1rem; }
.milestone-list h3 { margin: .4rem 0 0; }
.milestone-list time { color: var(--muted); font-size: .78rem; }
.milestone-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .75rem; }
.milestone-actions form { margin: 0; }
.milestone-edit-form { display: grid; gap: .55rem; width: min(480px, calc(100vw - 5rem)); margin-top: .5rem; padding: .75rem; background: var(--color-subtle); }
.future-module-list { margin: 0; padding-left: 1.1rem; color: var(--muted); line-height: 1.8; }
.wbs-heading, .wbs-stage-header, .wbs-task header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.wbs-heading h2 { margin-bottom: .25rem; }
.wbs-progress { display: grid; text-align: right; }
.wbs-progress strong { font-size: 1.2rem; }
.wbs-progress span { color: var(--muted); font-size: .7rem; }
.progress-track { height: 9px; margin: .85rem 0; overflow: hidden; border-radius: 999px; background: var(--color-subtle); }
.progress-track span { display: block; height: 100%; background: var(--brand); }
.progress-track.compact { height: 6px; margin: .7rem 0; }
.wbs-project-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .55rem; margin: 0 0 1rem; }
.wbs-project-summary div, .wbs-stage-summary div { padding: .55rem; border: 1px solid var(--line); background: var(--color-subtle); }
.wbs-project-summary dt, .wbs-stage-summary dt, .wbs-task-meta dt { color: var(--muted); font-size: .65rem; text-transform: uppercase; }
.wbs-project-summary dd, .wbs-stage-summary dd, .wbs-task-meta dd { margin: .2rem 0 0; font-weight: 800; overflow-wrap: anywhere; }
.wbs-add-stage, .wbs-add-task { margin: .75rem 0; }
.wbs-add-stage > summary, .wbs-add-task > summary { width: fit-content; cursor: pointer; list-style: none; }
.wbs-add-stage form, .wbs-add-task > form, .wbs-stage-actions details form { display: grid; gap: .65rem; margin-top: .6rem; padding: .75rem; border: 1px solid var(--line); background: var(--color-subtle); }
.wbs-stage-form { display: grid; grid-template-columns: 1fr 120px; gap: .65rem; }
.wbs-stage-form .span-2 { grid-column: span 2; }
.wbs-stage-list { display: grid; gap: 1rem; margin-top: 1rem; }
.wbs-stage-card { padding: 1rem; border: 1px solid var(--line); border-radius: 7px; }
.wbs-stage-header h3 { display: inline; margin: 0 .35rem; }
.wbs-stage-header p { margin: .35rem 0 0; color: var(--muted); }
.wbs-order { display: inline-grid; place-items: center; min-width: 24px; height: 24px; border-radius: 50%; background: var(--brand); color: #fff; font-size: .7rem; font-weight: 800; }
.wbs-stage-actions, .wbs-task-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; align-items: flex-start; }
.wbs-stage-actions > span { color: var(--muted); font-size: .7rem; }
.wbs-stage-actions form, .wbs-task-actions form { margin: 0; }
.wbs-stage-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .4rem; margin: 0; }
.wbs-task-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
.wbs-task-form-grid .span-2 { grid-column: span 2; }
.task-dependency-field { margin: 0; padding: .65rem; border: 1px solid var(--line); }
.task-dependency-field legend { margin-bottom: .4rem; font-size: .75rem; }
.task-dependency-field .checkbox-row { display: flex; gap: .45rem; align-items: center; margin: .25rem 0; }
.task-dependency-field input { width: auto; }
.task-dependency-field span { margin: 0; }
.wbs-task-list { display: grid; gap: .6rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.wbs-task { padding: .8rem; border: 1px solid var(--line); border-radius: 6px; }
.wbs-task-complete { background: var(--color-subtle); }
.wbs-task h4 { margin: .5rem 0 0; }
.task-priority { display: inline-flex; padding: .18rem .4rem; border: 1px solid var(--line); border-radius: 999px; font-size: .65rem; font-weight: 800; }
.task-priority-critical, .task-priority-high { color: var(--danger); border-color: #d2a0a0; }
.wbs-task-meta { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .5rem; margin: .65rem 0; }
.task-dependencies { color: var(--muted); font-size: .75rem; }
.wbs-task-actions details { min-width: 0; }
.wbs-task-actions .wbs-task-form { width: min(620px,calc(100vw - 7rem)); margin-top: .5rem; padding: .75rem; border: 1px solid var(--line); background: var(--color-subtle); }
.journal-add-form { padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); }
.journal-task-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin: 1rem 0; }
.journal-task-summary div { padding: .65rem; border: 1px solid var(--line); border-radius: 5px; background: var(--color-subtle); }
.journal-task-summary dt { color: var(--muted); font-size: .68rem; }
.journal-task-summary dd { margin: .18rem 0 0; font-size: 1rem; font-weight: 850; }
.journal-filters { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; }
.journal-filter { display: inline-flex; align-items: center; min-height: 30px; padding: .28rem .58rem; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .72rem; font-weight: 700; text-decoration: none; }
.journal-filter:hover { color: var(--text); border-color: var(--color-border-strong); }
.journal-filter-active { color: var(--color-primary-text); border-color: var(--color-primary); background: var(--color-primary); }
.journal-filter-active:hover { color: var(--color-primary-text); border-color: var(--color-primary-hover); background: var(--color-primary-hover); }
.journal-search { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .5rem; align-items: end; margin-bottom: .65rem; }
.journal-search label { min-width: 0; }
.journal-result-context { margin: 0 0 .8rem; color: var(--muted); font-size: .75rem; }
.journal-form-grid { display: grid; grid-template-columns: minmax(140px, .35fr) minmax(0, 1fr); gap: .75rem; align-items: start; margin-bottom: .75rem; }
.journal-content-field { min-width: 0; }
.journal-due-date-field { min-width: 0; }
.journal-list { display: grid; gap: 1rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.journal-entry { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.journal-entry-completed { background: var(--color-subtle); }
.journal-entry-completed .journal-content { color: var(--muted); }
.journal-entry-header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.journal-type { font-size: .7rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.journal-dates { display: grid; gap: .15rem; color: var(--muted); font-size: .7rem; text-align: right; }
.journal-content { margin-top: .75rem; color: #333; font-size: .9rem; line-height: 1.6; overflow-wrap: anywhere; white-space: pre-wrap; }
.journal-task-meta { display: flex; flex-wrap: wrap; gap: .35rem .75rem; align-items: center; margin-top: .65rem; color: var(--muted); font-size: .72rem; }
.task-status, .task-overdue { display: inline-flex; padding: .14rem .42rem; border: 1px solid var(--color-border-strong); border-radius: 999px; color: var(--text); font-weight: 800; }
.task-status-completed { color: #315843; border-color: #9ebaaa; background: #edf5f0; }
.task-overdue { color: var(--danger); border-color: #d2a0a0; background: #fbefef; }
.journal-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: flex-start; margin-top: .85rem; }
.journal-actions details { min-width: 0; }
.journal-actions summary { list-style: none; cursor: pointer; }
.journal-actions summary::-webkit-details-marker { display: none; }
.journal-edit-form { display: grid; gap: .7rem; width: min(520px, calc(100vw - 6rem)); margin-top: .65rem; padding: .85rem; border: 1px solid var(--line); border-radius: 5px; background: var(--color-subtle); }
.journal-empty { display: grid; place-items: center; min-height: 100px; margin: 1.25rem 0 0; color: var(--muted); text-align: center; }
.journal-pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .65rem; margin-top: 1rem; }
.pagination-position { color: var(--muted); font-size: .76rem; font-weight: 700; }
.pagination-disabled { color: #999; pointer-events: none; opacity: .65; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.workspace-timeline { list-style: none; padding: 0; margin: 0; }
.workspace-timeline li { position: relative; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: .65rem; padding-bottom: 1.25rem; }
.workspace-timeline li:last-child { padding-bottom: 0; }
.workspace-timeline li:not(:last-child)::before { content: ""; position: absolute; left: 5px; top: 12px; bottom: 0; width: 1px; background: var(--line); }
.workspace-timeline strong { font-size: .86rem; }
.workspace-timeline p { margin: .2rem 0 0; color: var(--muted); font-size: .78rem; }
.panel { padding: 1.3rem; }
.panel h2 { margin-bottom: 1.2rem; }
.financial-list, .meta-list { margin: 0; }
.financial-list div, .meta-list div { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid #edf0ed; }
.financial-list dt, .meta-list dt { color: var(--muted); font-size: .85rem; }
.financial-list dd, .meta-list dd { margin: 0; font-weight: 700; text-align: right; }
.financial-total { margin-top: .4rem; border-bottom: 0 !important; font-size: 1.05rem; }
.financial-total dd { color: var(--text); }
.notes { white-space: pre-wrap; line-height: 1.65; color: #3d4942; }
.timeline-panel { grid-row: span 2; }
.timeline { list-style: none; padding: 0; margin: 0; }
.timeline li { position: relative; display: grid; grid-template-columns: 18px 1fr; gap: .6rem; padding-bottom: 1.2rem; }
.timeline li:not(:last-child)::before { content: ""; position: absolute; left: 5px; top: 12px; bottom: 0; width: 1px; background: var(--line); }
.timeline-dot { width: 11px; height: 11px; margin-top: 3px; border-radius: 50%; background: var(--brand); }
.timeline strong { font-size: .86rem; }
.timeline p { color: var(--muted); font-size: .75rem; margin: .25rem 0 0; }
.record-panel form { margin-top: 1.2rem; }
.empty { color: var(--muted); font-style: italic; }
.empty-page { text-align: center; padding: 15vh 1rem; }
.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; }
@media (max-width: 760px) {
  .user-email { display: none; }
  .page { padding-top: 1.5rem; }
  .page-heading { align-items: stretch; flex-direction: column; }
  .page-heading > .button { width: 100%; }
  .form-grid { grid-template-columns: 1fr; }
  .span-2 { grid-column: span 1; }
  .money-grid { grid-template-columns: 1fr; }
  .button-row { width: 100%; }
  .button-row .button { flex: 1; }
  .property-card { grid-template-columns: minmax(0, 1fr); grid-template-areas: "thumbnail" "summary" "side"; gap: .8rem; }
  .property-card-media { width: 100%; height: auto; aspect-ratio: 16 / 9; }
  .property-thumbnail { width: 100%; height: 100%; }
  .property-card-side { align-items: stretch; }
  .asking-price { text-align: left; }
  .summary-actions { justify-content: flex-start; }
  .card-links, .status-form { width: 100%; }
  .card-links .button { flex: 1; }
  .status-form select { flex: 1; min-width: 0; }
  .bulk-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bulk-fields .field-title, .bulk-fields .field-address, .bulk-fields .field-url { grid-column: span 2; }
  .result-summary { grid-template-columns: repeat(2, 1fr); }
  .sticky-actions { position: static; flex-direction: column-reverse; }
  .sticky-actions .button { width: 100%; }
  .workspace-header { align-items: stretch; flex-direction: column; gap: 1.25rem; padding: 1.4rem 0; }
  .workspace-asking { text-align: left; }
  .workspace-columns { grid-template-columns: minmax(0, 1fr); }
  .workspace-action-row, .workspace-action-row form, .workspace-action-row .button { width: 100%; }
  .workspace-features span::after { display: none; }
  .financial-field-grid { grid-template-columns: minmax(0, 1fr); }
  .site-header { height: auto; min-height: 68px; align-items: flex-start; gap: .75rem; padding-top: .7rem; padding-bottom: .7rem; }
  .site-header .brand-logo-horizontal { display: none; }
  .site-header .brand-logo-icon { display: block; }
  .site-header nav { flex-wrap: wrap; justify-content: flex-end; }
  .project-portfolio-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-card header, .project-header { flex-direction: column; }
  .project-card header .button, .project-header .button-row, .project-header .button { width: 100%; }
  .project-card-metrics, .project-overview-grid, .milestone-form-grid, .project-workspace-grid { grid-template-columns: minmax(0, 1fr); }
  .wbs-heading, .wbs-stage-header, .wbs-task header { flex-direction: column; }
  .wbs-progress { text-align: left; }
  .wbs-project-summary, .wbs-stage-summary, .wbs-task-meta { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .wbs-stage-form, .wbs-task-form-grid { grid-template-columns: minmax(0,1fr); }
  .wbs-stage-form .span-2, .wbs-task-form-grid .span-2 { grid-column: auto; }
  .wbs-stage-actions, .wbs-stage-actions form, .wbs-stage-actions details, .wbs-stage-actions .button, .wbs-task-actions, .wbs-task-actions form, .wbs-task-actions details, .wbs-task-actions .button { width: 100%; }
  .wbs-task-actions .wbs-task-form { width: 100%; }
  .milestone-form-grid .span-2 { grid-column: auto; }
  .milestone-actions, .milestone-actions form, .milestone-actions details, .milestone-actions .button { width: 100%; }
  .milestone-edit-form { width: 100%; }
  .renovation-form-grid { grid-template-columns: minmax(0, 1fr); }
  .renovation-note-field { grid-column: auto; }
  .renovation-edit-form { width: 100%; }
  .renovation-budget-item header { align-items: flex-start; flex-direction: column; gap: .4rem; }
  .renovation-budget-item header { display: flex; }
  .renovation-note { margin-left: 0; }
  .renovation-actions, .renovation-actions details, .renovation-actions form, .renovation-actions .button { width: 100%; }
  .settings-account-form, .settings-account-row { grid-template-columns: minmax(0, 1fr); }
  .card-comparison-metrics { grid-template-columns: repeat(3, minmax(0,1fr)); width: 100%; }
  .journal-form-grid { grid-template-columns: minmax(0, 1fr); }
  .journal-task-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .journal-task-summary div { padding: .5rem; }
  .journal-task-summary dt { font-size: .62rem; }
  .journal-search { grid-template-columns: minmax(0, 1fr); }
  .journal-search .button { width: 100%; }
  .journal-pagination { justify-content: stretch; }
  .journal-pagination .button { flex: 1; }
  .journal-entry-header { flex-direction: column; gap: .35rem; }
  .journal-dates { text-align: left; }
  .journal-actions, .journal-actions details, .journal-actions form, .journal-actions .button { width: 100%; }
  .journal-edit-form { width: 100%; }
  .comparable-heading, .comparable-row-header { align-items: flex-start; flex-direction: column; }
  .comparable-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comparable-price { text-align: left; }
  .comparable-form-grid { grid-template-columns: minmax(0, 1fr); }
  .comparable-address, .comparable-source, .comparable-notes { grid-column: auto; }
  .comparable-actions, .comparable-actions details, .comparable-actions form, .comparable-actions .button { width: 100%; }
  .due-diligence-heading { flex-direction: column; }
  .due-diligence-grid { grid-template-columns: minmax(0, 1fr); }
  .due-diligence-actions, .due-diligence-actions form, .due-diligence-actions .button { width: 100%; }
}

@media (min-width: 761px) and (max-width: 1100px) {
  .property-card { grid-template-columns: 140px minmax(220px, 1fr); grid-template-areas: "thumbnail summary" "side side"; }
  .property-card-media { width: 140px; height: 96px; }
  .property-card-side { flex-direction: row; align-items: flex-end; }
  .summary-actions { justify-content: flex-end; }
  .bulk-fields { grid-template-columns: repeat(4, minmax(100px, 1fr)); }
  .bulk-fields .field-title, .bulk-fields .field-address, .bulk-fields .field-url { grid-column: span 2; }
  .workspace-columns { grid-template-columns: minmax(0, 1fr); }
  .workspace-sidebar { grid-template-columns: minmax(0, 1fr); }
}
.due-freshness {
  display: inline-flex;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.15rem 0.5rem;
  font-size: 0.75rem;
}

.due-freshness-stale {
  border-style: dashed;
  font-weight: 700;
}

.due-limitations summary {
  cursor: pointer;
  font-weight: 650;
}

.due-summary {
  border-color: var(--brand);
  display: grid;
  gap: 1.25rem;
}

.due-summary-header,
.due-summary-footer {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.due-summary-header h2,
.due-summary-primary h3,
.due-summary-detail-grid h3 {
  margin-top: 0;
}

.due-summary-eyebrow {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .08em;
  margin: 0 0 .35rem;
  text-transform: uppercase;
}

.due-summary-status {
  border: 1px solid var(--brand);
  border-radius: 999px;
  flex: 0 0 auto;
  font-size: .78rem;
  font-weight: 800;
  padding: .45rem .7rem;
  text-transform: uppercase;
}

.due-summary-status-critical,
.due-summary-status-attention_required {
  background: var(--brand);
  color: var(--surface);
}

.due-summary-status-incomplete {
  border-style: dashed;
}

.due-summary-counts {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}

.due-summary-counts div {
  border: 1px solid var(--line);
  padding: .75rem;
}

.due-summary-counts dt {
  color: var(--muted);
  font-size: .72rem;
  text-transform: uppercase;
}

.due-summary-counts dd {
  font-size: 1.35rem;
  font-weight: 800;
  margin: .2rem 0 0;
}

.due-summary-primary,
.due-summary-detail-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.due-summary-primary section,
.due-summary-detail-grid section,
.due-summary-attention article,
.due-summary-detail-grid article {
  border-top: 1px solid var(--line);
  padding-top: 1rem;
}

.due-summary-attention article + article,
.due-summary-detail-grid article + article {
  margin-top: 1rem;
}

.due-summary-attention h4,
.due-summary-detail-grid h4 {
  margin: 0 0 .4rem;
}

.due-summary-details > summary {
  cursor: pointer;
  font-weight: 750;
  padding: .65rem 0;
}

.due-summary-detail-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding-top: .5rem;
}

.due-summary-freshness {
  margin: 0;
}

.due-summary-freshness div {
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  padding: .5rem 0;
}

.due-summary-freshness dd {
  margin: 0;
  text-align: right;
}

.due-summary-footer {
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .78rem;
  padding-top: 1rem;
}

@media (max-width: 760px) {
  .due-summary-header,
  .due-summary-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .due-summary-status {
    align-self: flex-start;
  }

  .due-summary-counts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .due-summary-primary,
  .due-summary-detail-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Manual title/easement verification */
.easement-guidance {
  margin: 1rem 0;
  padding: 0.875rem 1rem;
  border-left: 3px solid var(--ink, #111);
  background: var(--surface-muted, #f5f5f5);
  line-height: 1.5;
}

.easement-details,
.easement-form {
  display: grid;
  gap: 1rem;
}

.easement-details {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}

.easement-form-disclosure {
  margin-top: 1.25rem;
  border-top: 1px solid var(--border, #d8d8d8);
  padding-top: 1rem;
}

.easement-form-disclosure > summary {
  cursor: pointer;
  font-weight: 700;
}

.easement-form {
  margin-top: 1rem;
}

.easement-form fieldset {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.875rem;
  min-width: 0;
  margin: 0;
  padding: 1rem;
  border: 1px solid var(--border, #d8d8d8);
}

.easement-form legend {
  padding: 0 0.35rem;
  font-weight: 700;
}

.easement-form label {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
}

.easement-form textarea {
  resize: vertical;
}

.easement-form .checkbox-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.preserve-lines {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

@media (max-width: 720px) {
  .easement-details,
  .easement-form fieldset {
    grid-template-columns: 1fr;
  }
}

/* Renovation commercial management */
.commercial-workspace,
.commercial-detail,
.commercial-record-list { display: grid; gap: 1rem; }
.commercial-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 0; }
.commercial-summary > div { min-width: 0; padding: .85rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.commercial-summary dt { color: var(--muted); font-size: .78rem; }
.commercial-summary dd { margin: .25rem 0 0; font-size: 1.05rem; font-weight: 700; overflow-wrap: anywhere; }
.commercial-warnings { padding: .9rem 1rem; border-left: 3px solid var(--ink); background: var(--surface-muted); }
.commercial-warnings ul { margin: .4rem 0 0; }
.commercial-create > summary, .commercial-record-section > details > summary { width: fit-content; cursor: pointer; list-style: none; }
.commercial-form { display: grid; gap: 1rem; margin-top: 1rem; }
.commercial-form fieldset, .commercial-form.compact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; min-width: 0; padding: 1rem; border: 1px solid var(--border); }
.commercial-form label { display: grid; gap: .35rem; min-width: 0; }
.commercial-form .span-2 { grid-column: 1 / -1; }
.commercial-filters { display: flex; align-items: end; flex-wrap: wrap; gap: .7rem; padding-block: 1rem; border-block: 1px solid var(--border); }
.commercial-filters label { display: grid; gap: .3rem; }
.commercial-filters .checkbox-row { display: flex; align-items: center; min-height: 2.5rem; }
.commercial-items { display: grid; gap: .75rem; }
.commercial-item-card, .commercial-record-list article { padding: 1rem; border: 1px solid var(--border); border-radius: var(--radius); }
.commercial-item-card header { display: flex; justify-content: space-between; gap: 1rem; }
.commercial-item-card h3, .commercial-record-list h3 { margin: .35rem 0; }
.commercial-item-card dl { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .6rem; margin: .8rem 0 0; }
.commercial-item-card dt { color: var(--muted); font-size: .75rem; }
.commercial-item-card dd { margin: .2rem 0 0; font-weight: 650; }
.commercial-item-warning { margin-bottom: 0; padding-top: .65rem; border-top: 1px solid var(--border); }
.commercial-record-section { display: grid; gap: .8rem; }
.inline-form { display: inline; }
@media (max-width: 900px) {
  .commercial-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .commercial-item-card dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .commercial-summary, .commercial-form fieldset, .commercial-form.compact, .commercial-item-card dl { grid-template-columns: 1fr; }
  .commercial-form .span-2 { grid-column: auto; }
  .commercial-item-card header { align-items: flex-start; }
  .commercial-filters > * { width: 100%; }
}

/* Day-based team scheduling */
.schedule-summary,.today-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:0}
.schedule-summary>div,.today-counts>div{padding:.8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}
.schedule-summary dt,.today-counts dt{color:var(--muted);font-size:.78rem}.schedule-summary dd,.today-counts dd{margin:.25rem 0 0;font-weight:700}
.schedule-stage-list,.team-schedule-groups,.team-member-list{display:grid;gap:1rem}.schedule-stage-list article,.team-schedule-groups article,.team-member-list article{padding:1rem;border:1px solid var(--border);border-radius:var(--radius)}
.schedule-stage-list ul,.schedule-list,.team-schedule-groups ul{display:grid;gap:.65rem;margin:0;padding:0;list-style:none}.schedule-task-row,.schedule-list li,.team-schedule-groups li{display:grid;grid-template-columns:minmax(12rem,2fr) minmax(10rem,1fr) minmax(10rem,1fr) auto;align-items:center;gap:.75rem;padding:.75rem;border-top:1px solid var(--border)}
.schedule-task-row:first-child,.schedule-list li:first-child{border-top:0}.schedule-task-row>div,.team-schedule-groups li{min-width:0}.schedule-task-row span,.schedule-list span,.team-schedule-groups span{color:var(--muted)}
.team-member-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.team-member-form label{display:grid;gap:.35rem}.team-member-form .span-2{grid-column:1/-1}.team-member-list{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1rem}.team-schedule-groups{grid-template-columns:repeat(2,minmax(0,1fr))}
.wbs-task-form select[multiple]{min-height:8rem}
.quick-schedule-form{display:flex;flex-wrap:wrap;align-items:end;gap:.6rem}.quick-schedule-form label{display:grid;gap:.3rem;min-width:9rem}.quick-schedule-form select{min-height:4.5rem}
@media(max-width:850px){.schedule-summary,.today-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-task-row,.schedule-list li{grid-template-columns:1fr}.team-member-list,.team-schedule-groups{grid-template-columns:1fr}}
@media(max-width:600px){.schedule-summary,.today-counts,.team-member-form{grid-template-columns:1fr}.team-member-form .span-2{grid-column:auto}}

/* Renovation workspace usability pass: desktop-first, dense, row-based */
.project-workspace-compact{max-width:1440px}.project-primary-workspace{display:grid;gap:.65rem}.compact-project-header{margin:.35rem 0 .65rem;padding:.65rem 0;border-bottom:2px solid var(--ink);align-items:center}.compact-project-header h1{margin:0;font-size:1.65rem}.compact-project-header p{margin:.2rem 0 0}.project-title-line{display:flex;align-items:center;gap:.65rem}.project-strip{padding:.7rem .85rem;border:1px solid var(--line);background:var(--surface)}.project-strip>header,.section-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem}.project-strip h2,.section-summary h2{margin:0;font-size:.8rem;letter-spacing:.07em;text-transform:uppercase}.project-strip header p{margin:.15rem 0 0;color:var(--muted);font-size:.78rem}
.today-work{border-top:3px solid var(--ink)}.today-work-columns{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:1px solid var(--line);margin-top:.55rem}.today-work-columns>div{min-width:0;padding:.5rem .65rem;border-right:1px solid var(--line)}.today-work-columns>div:last-child{border-right:0}.today-work-columns h3{display:flex;justify-content:space-between;margin:0 0 .35rem;font-size:.72rem;text-transform:uppercase}.today-work-list{display:grid;gap:.25rem;margin:0;padding:0;list-style:none}.today-work-list li{display:grid;min-width:0}.today-work-list a{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-work-list span,.compact-empty{margin:0;color:var(--muted);font-size:.72rem}.inline-kpis{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:.45rem}.inline-kpis span{font-size:.75rem}.inline-kpis strong{font-size:.92rem}
.simple-timeline{display:grid;gap:.35rem;margin-top:.55rem}.timeline-stage h3{margin:.45rem 0 .2rem;font-size:.78rem}.timeline-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(180px,3fr) 58px 58px 36px 115px;align-items:center;gap:.5rem;min-height:30px;border-top:1px solid var(--line);font-size:.73rem}.timeline-row>div:first-child{display:grid}.timeline-row small{color:var(--muted)}.timeline-track{height:8px;background:var(--color-subtle)}.timeline-bar{display:block;height:100%;min-width:8px;background:#555}.timeline-bar-complete{background:#111}.timeline-bar-blocked,.timeline-bar-waiting{background:#999}
.compact-wbs>header{margin-bottom:.45rem}.explorer-stages{border:1px solid var(--line)}.explorer-stage{border-bottom:1px solid var(--line)}.explorer-stage:last-child{border-bottom:0}.explorer-stage>summary{display:grid;grid-template-columns:18px minmax(180px,1fr) 90px 100px;align-items:center;gap:.4rem;padding:.4rem .55rem;cursor:pointer;background:var(--color-subtle);list-style:none}.explorer-stage[open] .explorer-chevron{transform:rotate(90deg)}.explorer-stage-body{padding:.3rem .55rem .45rem}.stage-toolbar{display:flex;gap:.35rem;margin:.2rem 0}.compact-stage-form{display:flex;align-items:end;gap:.4rem;padding:.45rem;background:var(--color-subtle)}.explorer-task-list{margin:0;padding:0;list-style:none}.explorer-task-row{display:grid;grid-template-columns:22px 1fr;align-items:start;border-top:1px solid var(--line)}.task-check{padding:.43rem .1rem}.explorer-task-row>details>summary{display:grid;grid-template-columns:minmax(200px,2fr) minmax(140px,1fr) 105px 110px;align-items:center;gap:.5rem;padding:.4rem 0;cursor:pointer;list-style:none;font-size:.75rem}.explorer-task-row>details>summary>span{color:var(--muted)}.explorer-task-row.is-complete strong{text-decoration:line-through;color:var(--muted)}.compact-task-form{display:grid;grid-template-columns:minmax(180px,2fr) minmax(150px,1.5fr) 130px 75px 130px auto;align-items:end;gap:.45rem;padding:.55rem;margin-bottom:.4rem;background:var(--color-subtle)}.compact-task-form label{display:grid;gap:.2rem;font-size:.7rem}.compact-task-form select[multiple]{min-height:58px}.compact-task-form .field-error{grid-column:1/-1}.conflict-override{grid-column:1/-1}.conflict-override>summary{font-size:.7rem;cursor:pointer}.task-row-actions{display:flex;gap:.35rem;margin:.3rem 0}.task-row-actions form{margin:0}
.compact-commercial .commercial-kpi-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:.5rem 0 0;border:1px solid var(--line)}.commercial-kpi-row>div{padding:.45rem .55rem;border-right:1px solid var(--line)}.commercial-kpi-row>div:last-child{border:0}.commercial-kpi-row dt{font-size:.65rem;color:var(--muted);text-transform:uppercase}.commercial-kpi-row dd{margin:.15rem 0 0;font-weight:800}.compact-warning{margin-top:.4rem;font-size:.75rem}.compact-commercial-form{display:flex;align-items:end;gap:.4rem;padding:.5rem;background:var(--color-subtle)}.compact-commercial-form label{display:grid;gap:.2rem}.commercial-table{margin-top:.5rem;border:1px solid var(--line)}.commercial-table-head,.commercial-table-row{display:grid;grid-template-columns:minmax(180px,2fr) minmax(100px,1fr) repeat(5,minmax(85px,1fr)) 56px;align-items:center;gap:.45rem;padding:.4rem .5rem}.commercial-table-head{background:var(--color-subtle);font-size:.65rem;text-transform:uppercase}.commercial-table-row{border-top:1px solid var(--line);font-size:.74rem}.commercial-table-row>span:first-child{display:grid}.commercial-table-row small{color:var(--muted)}.section-summary{cursor:pointer;list-style:none}.project-footer-actions{display:flex;justify-content:space-between;align-items:center;padding:.45rem 0}.project-footer-actions form{margin:0}.compact-heading{margin-bottom:.5rem}.compact-team-form,.compact-team-list>div,.team-week-list>div{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,1fr) auto;align-items:end;gap:.5rem;padding:.4rem;border-top:1px solid var(--line)}.compact-team-form label{display:grid;gap:.2rem}.compact-team-list form{margin:0}.team-week-list>div{grid-template-columns:130px minmax(220px,1fr) 130px auto}
