/* Shared finishing rules, loaded after the page styles. */
:root { --primary: #087f73; --primary-dark: #06665d; }
body { color: #202825; background: #f7f9f8; }
body * { letter-spacing: 0; }
[id] { scroll-margin-top: 92px; }
body .container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
body .site-header { border-bottom: 1px solid #dce7e2; box-shadow: 0 2px 14px rgba(16,42,42,.05); }
body .site-header a { transition: color .18s ease, background-color .18s ease, border-color .18s ease; }
body .site-header nav a.active, body .site-header nav a:hover { color: #087f73; }
body .site-footer { background: #102a2a; }
body .site-footer a:hover { color: #e8c16c; }
body .btn, body button, body input, body select, body textarea { font-family: inherit; }
body .btn { border-radius: 7px; min-height: 42px; }
body .btn-primary, body .btn-primary:hover { background: #087f73; border-color: #087f73; color: #fff; }
body .empty-state { border: 1px dashed #bcd3cc; border-radius: 10px; background: #fff; padding: 44px 24px; text-align: center; }
body .section-header { margin-bottom: 28px; }
body .section-link { font-weight: 800; }
body :is(input, select, textarea)::placeholder { color: #8ba09a; opacity: 1; }
body :is(input, select, textarea):disabled { background: #eef3f0; color: #78908a; cursor: not-allowed; }
body .form-alert-error { border-left: 4px solid #b52f3d; }
body .form-alert-success { border-left: 4px solid #087f73; }
[hidden], .form-group[hidden], .admin-form-group[hidden] { display: none !important; }
:where(a, button, input, select, textarea):focus-visible { outline: 3px solid #0b887a; outline-offset: 3px; }
body .form-page { padding-block: 28px 48px; }
body .form-page-header { border: 0; border-bottom: 1px solid #dce4df; border-radius: 0; background: transparent; box-shadow: none; padding: 0 0 24px; }
body .form-page-header::after { content: none; }
body .form-page-header h1 { font-size: 30px; line-height: 1.25; font-weight: 700; }
body .form-page-header p { max-width: 65ch; color: #56615c; }
body .form-layout { grid-template-columns: minmax(0, 1fr) 280px; gap: 32px; }
body .form-card, body .form-main-card { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; min-width: 0; }
body .form-section { padding: 24px 0; border: 0; border-bottom: 1px solid #dce4df; border-radius: 0; background: transparent; box-shadow: none; }
body .form-section:first-child { padding-top: 0; }
body .form-section-heading h2 { font-size: 19px; line-height: 1.4; }
body .form-section-number { background: #e4f2ed; color: #096552; border-radius: 6px; width: 32px; height: 32px; flex: 0 0 32px; }
body .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
body .form-group { min-width: 0; }
body .form-group-full { grid-column: 1 / -1; }
body .form-group > label { font-size: 14px; font-weight: 600; color: #273b31; }
body .form-group :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea) { width: 100%; min-height: 46px; border: 1px solid #bdcbc2; border-radius: 6px; background: #fff; color: #202825; box-shadow: none; font-size: 16px; }
body .form-group textarea { min-height: 128px; resize: vertical; }
body .form-group .has-error, body .has-error :is(input, select, textarea) { border-color: #b52f3d; }
body .form-field-error { color: #a31f2c; font-size: 13px; }
body .field-help { color: #5d6b62; }
body .form-radio-cards, body .requirement-type-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
body .radio-card-content { border-radius: 6px; box-shadow: none; min-height: 76px; }
body .radio-card input:checked + .radio-card-content { background: #e9f5ef; border-color: #087f73; box-shadow: inset 0 0 0 1px #087f73; }
body .form-sidebar-card, body .sidebar-card { border-radius: 0; box-shadow: none; border: 0; border-left: 2px solid #d6e6dd; background: transparent; }
body .form-alert { border-radius: 6px; box-shadow: none; overflow-wrap: anywhere; }
body .form-submit-button { min-height: 48px; background: #087f73; border-radius: 6px; box-shadow: none; }
body .form-submit-button:hover { background: #06665d; transform: none; }
body .form-radio-card, body .requirement-type-card { min-width: 0; border-radius: 6px; box-shadow: none; background: #fff; }
body .form-radio-card:has(input:checked), body .requirement-type-card:has(input:checked) { background: #e9f5ef; border-color: #087f73; box-shadow: inset 0 0 0 1px #087f73; }
body .form-radio-card:has(input:focus-visible), body .requirement-type-card:has(input:focus-visible) { outline: 3px solid #087f73; outline-offset: 3px; }
body .property-card { border-radius: 8px; box-shadow: 0 2px 8px #183c2510; overflow: hidden; }
body .property-card img { max-width: 100%; }
body .property-card-title, body .property-details-title { overflow-wrap: anywhere; }
body .property-details-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body .property-detail-row { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 900px) {
    body .form-layout { grid-template-columns: minmax(0, 1fr); }
    body .form-sidebar { position: static; }
}
@media (max-width: 600px) {
    body .form-page-header h1 { font-size: 26px; }
    body .form-grid, body .form-grid-3, body .property-details-grid { grid-template-columns: minmax(0, 1fr) !important; }
    body .form-radio-cards, body .requirement-type-cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    body .form-section { padding-block: 20px; }
    body .form-card { padding: 0; }
    body .form-submit-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
