:root { --client-green: #173d3b; --client-green-deep: #0e302e; --client-rust: #be8657; --client-paper: #f6f1e8; --client-line: #d9d4ca; --client-muted: #696b67; }
* { box-sizing: border-box; }
body { margin: 0; color: #172c2b; background: var(--client-paper); }
.hidden { display: none !important; }
.client-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 94px; padding: 14px clamp(24px, 6vw, 90px); background: #fbf8f2; border-bottom: 1px solid var(--client-line); flex-wrap: wrap; }
.client-brand img { width: min(230px, 48vw); display: block; }
.client-header .header-tools { margin-left: auto; }
.client-header nav { display: flex; align-items: center; gap: 24px; }
.client-header nav a { color: var(--client-green); font-size: .78rem; font-weight: 700; text-decoration: none; }
.client-auth { min-height: calc(100vh - 94px); display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: clamp(35px, 8vw, 120px); padding: clamp(55px, 8vw, 115px) clamp(24px, 8vw, 130px); color: white; background: var(--client-green); }
.client-auth h1 { max-width: 760px; margin: 18px 0; color: white; font-size: clamp(3.2rem, 7vw, 7rem); line-height: .93; }
.client-auth h1 em { color: #deb48f; }
.client-auth > div > p:not(.eyebrow) { max-width: 620px; color: rgba(255,255,255,.74); font-size: 1.05rem; }
.client-access-scene { position: relative; width: min(280px, 45vw); height: 140px; margin: 0 0 15px; }
.client-access-scene .access-mark { display: block; width: min(320px, 50vw); height: auto; max-height: 100px; object-fit: contain; object-position: left center; }
.client-access-scene.unlocked .access-mark { animation: client-mark-unlock .55s ease both; }
.client-access-scene.denied .access-mark { animation: client-mark-denied .4s ease; }
@keyframes client-mark-unlock { from { transform: scale(1); } 50% { transform: scale(1.035); } to { transform: scale(1); } }
@keyframes client-mark-denied { 0%, 100% { transform: translateX(0); } 35% { transform: translateX(-5px); } 70% { transform: translateX(5px); } }
.client-auth-form { display: grid; gap: 17px; padding: clamp(28px, 4vw, 48px); color: #172c2b; background: #fff; }
.client-auth-form h2 { margin: 0 0 8px; color: var(--client-green); font-size: 2.4rem; }
.client-auth-form label, .client-upload-form label, .client-message-form label, .client-electronic-signature label, .client-manual-signature label { display: grid; gap: 7px; color: var(--client-green); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.client-auth-form input, .client-upload-form input, .client-upload-form select, .client-message-form textarea, .client-electronic-signature input, .client-manual-signature input { width: 100%; padding: 13px; color: #172c2b; background: #fbf8f2; border: 1px solid var(--client-line); font: 1rem sans-serif; }
.client-auth-form small { color: var(--client-muted); }
.client-text-button { justify-self: start; padding: 0; color: var(--client-green); background: none; border: 0; font: 700 .82rem sans-serif; text-decoration: underline; cursor: pointer; }
.client-auth :focus-visible, .client-app :focus-visible, .client-account-dialog :focus-visible { outline: 3px solid #e0a16e; outline-offset: 3px; }
.invitation-summary { padding: 16px; color: var(--client-green); background: var(--client-paper); border-left: 3px solid var(--client-rust); }
.invitation-summary strong, .invitation-summary span { display: block; }

.client-app { min-height: 80vh; }
.client-welcome { display: flex; align-items: center; justify-content: space-between; gap: 35px; padding: clamp(42px, 6vw, 80px) clamp(24px, 6vw, 90px); color: white; background: var(--client-green); }
.client-welcome h1 { margin: 7px 0; color: white; font-size: clamp(2.8rem, 5vw, 5rem); }
.client-welcome p:last-child { color: rgba(255,255,255,.65); }
.client-welcome .button.secondary { color: var(--client-green); background: white; }
.client-account-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.client-service-hub { margin: 30px clamp(20px,4vw,65px) 0; padding: clamp(24px,4vw,44px); color: var(--client-green); background: linear-gradient(135deg,#f5f0e7,#fff); border: 1px solid var(--client-line); }
.client-service-intro { max-width: 820px; }
.client-service-intro h2 { margin: 6px 0 12px; font: 400 clamp(2rem,4vw,3.3rem) Georgia,serif; }
.client-service-intro p:not(.eyebrow) { color: var(--client-muted); line-height: 1.65; }
.client-service-note { padding-left: 14px; border-left: 3px solid var(--client-rust); }
.client-service-groups { display: grid; gap: 24px; margin-top: 30px; }
.client-service-group-title { display: block; margin-bottom: 10px; color: var(--client-rust); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.client-service-cards { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; }
.client-service-cards button { min-height: 126px; padding: 16px; color: var(--client-green); text-align: left; background: #fff; border: 1px solid var(--client-line); cursor: pointer; transition: transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.client-service-cards button:hover,.client-service-cards button:focus-visible { border-color: var(--client-rust); box-shadow: 0 8px 24px rgba(23,61,59,.1); transform: translateY(-2px); }
.client-service-cards strong,.client-service-cards span { display: block; }
.client-service-cards strong { margin-bottom: 8px; font: 400 1.1rem Georgia,serif; }
.client-service-cards span { color: var(--client-muted); font-size: .82rem; line-height: 1.4; }
.client-service-request { margin-top: 24px; padding: 22px; background: #fff; border: 1px solid var(--client-green); }
.client-service-request-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.client-service-request-head h3 { margin: 5px 0 14px; font: 400 1.8rem Georgia,serif; }
.client-service-request-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.client-service-request-grid label { display:grid; gap:7px; color:var(--client-green); font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.client-service-request-grid .span-2 { grid-column:1 / -1; }
.client-service-request-grid input,.client-service-request-grid select,.client-service-request-grid textarea { width:100%; padding:12px; color:var(--client-green); background:var(--client-paper); border:1px solid var(--client-line); font:inherit; text-transform:none; letter-spacing:normal; }
.client-service-price { margin: 15px 0 8px; color:var(--client-muted); font-size:.9rem; }
.client-service-request .form-status { min-height: 1.3em; }
.client-layout { display: grid; grid-template-columns: minmax(260px, .3fr) minmax(0, 1fr); gap: 24px; padding: 30px clamp(20px, 4vw, 65px) 70px; }
.client-processes { align-self: start; position: sticky; top: 20px; padding: 18px; background: #fff; border: 1px solid var(--client-line); }
.client-section-title { display: flex; justify-content: space-between; padding: 6px 5px 16px; color: var(--client-green); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.client-section-title b { display: grid; place-items: center; min-width: 25px; height: 25px; color: white; background: var(--client-rust); border-radius: 50%; }
#client-process-list { display: grid; gap: 8px; }
.client-process-button { width: 100%; padding: 15px; text-align: left; background: var(--client-paper); border: 1px solid transparent; cursor: pointer; }
.client-process-button.active { background: #e8efeb; border-color: var(--client-green); }
.client-process-button strong, .client-process-button small { display: block; }
.client-process-button strong { margin: 5px 0; color: var(--client-green); font: 400 1.08rem Georgia, serif; }
.client-process-button small { color: var(--client-muted); }
.client-detail { min-width: 0; padding: clamp(24px, 4vw, 45px); background: #fff; border: 1px solid var(--client-line); }
.client-empty { padding: 65px 20px; color: var(--client-muted); text-align: center; border: 1px dashed var(--client-line); }
.client-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; padding-bottom: 28px; border-bottom: 1px solid var(--client-line); }
.client-detail-head h2 { margin: 6px 0 4px; color: var(--client-green); font-size: clamp(2.1rem, 4vw, 3.8rem); }
.client-status { display: inline-block; padding: 6px 9px; color: var(--client-green); background: #e4f0e7; font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.client-location { color: var(--client-muted); }
.client-total { min-width: 190px; padding: 18px; color: white; background: var(--client-green); }
.client-total small, .client-total strong, .client-total span { display: block; }
.client-total strong { margin: 7px 0; font: 400 1.8rem Georgia, serif; }
.client-total span { color: rgba(255,255,255,.66); font-size: .72rem; }
.client-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 24px 0; }
.client-info-grid article { padding: 17px; background: var(--client-paper); }
.client-info-grid small, .client-info-grid strong, .client-info-grid span { display: block; }
.client-info-grid small { color: var(--client-rust); font-size: .64rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.client-info-grid strong { margin: 7px 0; color: var(--client-green); }
.client-info-grid span { color: var(--client-muted); font-size: .72rem; }
.client-next-step { margin: 0 0 22px; padding: 20px; color: white; background: var(--client-green); border-left: 5px solid var(--client-rust); }
.client-next-step h3 { margin: 0 0 7px; color: white; }
.client-next-step p { margin: 0; color: rgba(255,255,255,.78); }
.client-contract-panel { margin: 20px 0; padding: 24px; color: white; background: var(--client-green); }
.client-contract-panel h3 { margin: 6px 0; color: white; font-size: 1.7rem; }
.client-contract-panel p:not(.eyebrow) { color: rgba(255,255,255,.72); }
.client-contract-panel .inline-link { color: #f1bd90; }
.client-contract-panel .client-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.client-contract-panel .client-panel-head h3 { margin: 6px 0; color: white; }
.client-contract-status { flex: 0 0 auto; padding: 7px 10px; color: var(--client-green); background: #f1bd90; font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.client-contract-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }
.client-electronic-signature, .client-manual-signature { display: grid; gap: 13px; margin-top: 18px; padding: 20px; color: var(--client-green); background: white; }
.client-electronic-signature .client-signature-consent { grid-template-columns: auto 1fr; align-items: start; color: var(--client-muted); font-size: .72rem; font-weight: 500; letter-spacing: 0; line-height: 1.55; text-transform: none; }
.client-electronic-signature .client-signature-consent input { width: auto; margin-top: 3px; }
.client-notes { margin: 22px 0; padding: 20px; background: #fbf8f2; border-left: 3px solid var(--client-rust); }
.client-notes h3 { margin-top: 0; color: var(--client-green); }
.client-notes p { margin-bottom: 0; color: var(--client-muted); white-space: pre-wrap; }
.client-requirements-panel { margin: 22px 0; padding: 22px; background: #fbf8f2; border: 1px solid var(--client-line); }
.client-requirement-list { display: grid; gap: 10px; }
.client-quotes-panel { margin: 22px 0; padding: 22px; background: white; border: 1px solid var(--client-line); }
.client-quote-list { display: grid; gap: 10px; }
.client-quote { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px; background: var(--client-paper); border-left: 4px solid var(--client-rust); }
.client-quote span { color: var(--client-rust); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.client-quote h4 { margin: 6px 0; color: var(--client-green); font: 400 1.25rem Georgia,serif; }
.client-quote p { margin: 0 0 8px; color: var(--client-muted); font-size: .76rem; }
.client-quote > div > strong { color: var(--client-green); font: 400 1.35rem Georgia,serif; }
.client-quote-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.client-requirement { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 16px; background: white; border-left: 4px solid var(--client-rust); }
.client-requirement.valid, .client-requirement.obtained_by_team { border-left-color: #3b806a; }
.client-requirement.incorrect, .client-requirement.illegible, .client-requirement.expired { border-left-color: #ad543e; }
.client-requirement span { color: var(--client-rust); font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.client-requirement h4 { margin: 5px 0; color: var(--client-green); font: 400 1.2rem Georgia, serif; }
.client-requirement p { margin: 0 0 7px; color: var(--client-muted); white-space: pre-wrap; }
.client-requirement small { color: var(--client-muted); }
.client-requirement .button { flex: 0 0 auto; }
.delegated-state { flex: 0 0 auto; max-width: 210px; padding: 10px 12px; color: var(--client-green); background: #e4f0e7; font-size: .72rem; text-align: center; }
.client-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.client-documents-panel, .client-messages-panel { min-width: 0; padding: 22px; border: 1px solid var(--client-line); }
.client-panel-head h3 { margin: 4px 0 20px; color: var(--client-green); font-size: 1.8rem; }
.client-document-list, .client-messages { display: grid; gap: 9px; max-height: 330px; overflow-y: auto; }
.client-document { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px; background: var(--client-paper); }
.client-document strong, .client-document small { display: block; }
.client-document small { margin-top: 3px; color: var(--client-muted); }
.client-document a { flex: 0 0 auto; color: var(--client-green); font-size: .72rem; font-weight: 800; }
.client-upload-form, .client-message-form { display: grid; gap: 12px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--client-line); }
.client-message { max-width: 88%; padding: 12px; background: var(--client-paper); }
.client-message.client { justify-self: end; background: #e8efeb; }
.client-message strong, .client-message time { display: block; }
.client-message p { margin: 6px 0; white-space: pre-wrap; }
.client-message time { color: var(--client-muted); font-size: .66rem; }
.client-investor-area { margin: 30px clamp(20px,4vw,65px) 0; padding: clamp(24px,4vw,44px); background: white; border: 1px solid var(--client-line); }
.client-investor-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; }
.client-investor-head h2 { margin: 6px 0 12px; color: var(--client-green); font-size: clamp(2rem,4vw,3.5rem); }
.client-investor-head p:not(.eyebrow) { max-width: 760px; color: var(--client-muted); line-height: 1.65; }
.client-investor-form { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin: 28px 0; padding: 23px; background: var(--client-paper); }
.client-investor-form label { display: grid; gap: 7px; color: var(--client-green); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.client-investor-form .span-2 { grid-column: span 2; }
.client-investor-form .span-4 { grid-column: 1 / -1; }
.client-investor-form .client-check { display: flex; align-items: center; align-self: end; min-height: 43px; text-transform: none; letter-spacing: 0; }
.client-investor-form .client-check input { width: auto; }
.client-investor-submit { display: flex; align-items: center; justify-content: flex-end; gap: 15px; }
.client-investor-submit .form-status { flex: 1; margin: 0; }
.client-investor-match-list, #client-investor-match-list { display: grid; gap: 10px; }
.client-investor-match { display: grid; grid-template-columns: 78px minmax(0,1fr) auto; gap: 18px; align-items: center; padding: 18px; background: var(--client-paper); border-left: 4px solid var(--client-rust); }
.client-investor-score { display: grid; place-items: center; width: 64px; height: 64px; color: white; background: var(--client-green); border-radius: 50%; font: 400 1.1rem Georgia,serif; }
.client-investor-match h4 { margin: 0 0 5px; color: var(--client-green); font: 400 1.25rem Georgia,serif; }
.client-investor-match p, .client-investor-match small { margin: 0; color: var(--client-muted); }
.client-investor-match .reserved-badge { display: inline-block; margin-top: 7px; padding: 5px 8px; color: var(--client-green); background: #e4f0e7; font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.client-owner-area { margin: 30px clamp(20px,4vw,65px) 0; padding: clamp(24px,4vw,44px); background: #fff; border: 1px solid var(--client-line); }
.client-owner-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.client-owner-head h2 { margin: 6px 0 10px; color: var(--client-green); font-size: clamp(2rem,4vw,3.5rem); }
.client-owner-head p:not(.eyebrow) { max-width: 720px; color: var(--client-muted); line-height: 1.6; }
.client-owner-indicators { display: grid; grid-template-columns: repeat(2,minmax(112px,1fr)); gap: 8px; }
.client-owner-indicators article { padding: 13px; background: var(--client-paper); }
.client-owner-indicators strong, .client-owner-indicators span { display: block; }
.client-owner-indicators strong { color: var(--client-green); font: 400 1.55rem Georgia,serif; }
.client-owner-indicators span { color: var(--client-muted); font-size: .68rem; }
.client-owner-layout { display: grid; grid-template-columns: minmax(250px,.3fr) minmax(0,1fr); gap: 20px; }
.client-owner-properties { align-self: start; padding: 16px; background: var(--client-paper); }
#client-owner-property-list { display: grid; gap: 8px; }
.client-owner-property { width: 100%; padding: 14px; color: #172c2b; text-align: left; background: #fff; border: 1px solid transparent; cursor: pointer; }
.client-owner-property.active { background: #e8efeb; border-color: var(--client-green); }
.client-owner-property small, .client-owner-property strong, .client-owner-property span { display: block; }
.client-owner-property small { color: var(--client-rust); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.client-owner-property strong { margin: 6px 0; color: var(--client-green); font: 400 1rem Georgia,serif; }
.client-owner-property span { color: var(--client-muted); font-size: .72rem; }
.client-owner-detail { min-width: 0; padding: clamp(20px,3vw,34px); border: 1px solid var(--client-line); }
.client-owner-detail-head { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--client-line); }
.client-owner-detail-head h2 { margin: 6px 0; color: var(--client-green); font-size: clamp(1.8rem,3vw,3rem); }
.client-owner-detail-head p, .client-owner-detail-head small { color: var(--client-muted); }
.client-owner-detail-head div:last-child { min-width: 170px; padding: 15px; background: var(--client-paper); }
.client-owner-detail-head div:last-child small, .client-owner-detail-head div:last-child strong { display: block; }
.client-owner-next { padding: 17px; color: #fff; background: var(--client-green); border-left: 4px solid var(--client-rust); }
.client-owner-preview { margin: 18px 0; padding: 20px; color: #fff; background: linear-gradient(135deg,var(--client-green),#255652); }
.client-owner-preview.muted { color: #172c2b; background: var(--client-paper); }
.client-owner-preview:not(.muted) { display: grid; grid-template-columns: minmax(150px,.35fr) minmax(0,1fr); gap: 20px; }
.client-owner-preview > img { width: 100%; height: 100%; min-height: 180px; object-fit: cover; }
.client-owner-preview-copy { min-width: 0; }
.client-owner-preview h3 { margin: 5px 0 8px; color: inherit; font-size: 1.6rem; }
.client-owner-preview-copy > div { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.client-owner-preview-copy > div strong { margin-left: auto; font: 400 1.35rem Georgia,serif; }
.client-owner-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px; }
.client-owner-columns > section { min-width: 0; padding: 18px; background: #fbf8f2; }
.client-owner-columns h3, .client-owner-request h3 { margin-top: 0; color: var(--client-green); }
.owner-activity, .owner-proposal { margin-bottom: 10px; padding: 14px; background: #fff; border-left: 3px solid var(--client-rust); }
.owner-activity div { display: flex; justify-content: space-between; gap: 10px; }
.owner-activity span, .owner-proposal span { color: var(--client-rust); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.owner-activity p, .owner-proposal p { color: var(--client-muted); white-space: pre-wrap; }
.owner-proposal h4 { margin: 6px 0; color: var(--client-green); font-size: 1.45rem; }
.owner-proposal-form, .client-owner-request { display: grid; gap: 11px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--client-line); }
.owner-proposal-form label, .client-owner-request label { display: grid; gap: 6px; color: var(--client-green); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.owner-proposal-form input, .owner-proposal-form select, .owner-proposal-form textarea, .client-owner-request textarea { width: 100%; padding: 11px; color: #172c2b; background: #fff; border: 1px solid var(--client-line); font: 1rem sans-serif; }
.owner-proposal-form .owner-confirm { grid-template-columns: auto 1fr; align-items: start; color: var(--client-muted); font-weight: 500; letter-spacing: 0; line-height: 1.45; text-transform: none; }
.owner-proposal-form .owner-confirm input { width: auto; margin-top: 3px; }
.owner-decision-recorded { padding: 10px; background: #e8efeb; }
.client-owner-timeline { display: grid; gap: 12px; margin: 0; padding-left: 22px; }
.client-owner-timeline li { padding-left: 5px; }
.client-owner-timeline time, .client-owner-timeline strong, .client-owner-timeline span { display: block; }
.client-owner-timeline time { color: var(--client-rust); font-size: .65rem; }
.client-owner-timeline span { margin-top: 3px; color: var(--client-muted); font-size: .78rem; }
.client-owner-request { margin-top: 18px; padding: 20px; background: var(--client-paper); border-top: 0; }
.client-buyer-area { margin: 30px clamp(20px,4vw,65px) 0; padding: clamp(24px,4vw,44px); background: #fff; border: 1px solid var(--client-line); }
.client-buyer-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.client-buyer-head h2 { margin: 6px 0 10px; color: var(--client-green); font-size: clamp(2rem,4vw,3.5rem); }
.client-buyer-head p:not(.eyebrow) { max-width: 760px; color: var(--client-muted); line-height: 1.6; }
.client-buyer-layout { display: grid; grid-template-columns: minmax(250px,.3fr) minmax(0,1fr); gap: 20px; }
.client-buyer-profiles { align-self: start; padding: 16px; background: var(--client-paper); }
#client-buyer-profile-list { display: grid; gap: 8px; }
.client-buyer-content { min-width: 0; display: grid; gap: 18px; padding: clamp(20px,3vw,34px); border: 1px solid var(--client-line); }
.buyer-criteria-form, .buyer-properties { min-width: 0; padding: 20px; background: #fbf8f2; border: 1px solid var(--client-line); }
.buyer-criteria-form .client-panel-head, .buyer-properties .client-panel-head { display: flex; justify-content: space-between; gap: 18px; }
.buyer-criteria-form h3, .buyer-properties h3, .buyer-proposal-card h4 { margin: 5px 0 12px; color: var(--client-green); }
.buyer-criteria-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; }
.buyer-criteria-grid label, .buyer-property-card form label, .buyer-visit-feedback-form label, .buyer-proposal-response-form label { display: grid; gap: 6px; color: var(--client-green); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.buyer-criteria-grid .span-2, .buyer-property-card form .span-2 { grid-column: span 2; }
.buyer-criteria-grid input, .buyer-criteria-grid select, .buyer-property-card input, .buyer-property-card select, .buyer-property-card textarea, .buyer-visit-feedback-form select, .buyer-visit-feedback-form textarea, .buyer-proposal-response-form select, .buyer-proposal-response-form textarea { width: 100%; min-width: 0; padding: 11px; color: #172c2b; background: #fff; border: 1px solid var(--client-line); font: 1rem sans-serif; }
.buyer-form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 16px; }
.buyer-form-actions .form-status { flex: 1; }
.buyer-scope-note, .buyer-legal-note { padding: 12px 14px; color: var(--client-muted); background: #f2ece2; border-left: 3px solid var(--client-rust); font-size: .76rem; line-height: 1.55; }
.buyer-property-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.buyer-property-card { min-width: 0; overflow: hidden; background: #fff; border: 1px solid var(--client-line); }
.buyer-property-media { position: relative; display: grid; place-items: center; min-height: 165px; color: #fff; background: linear-gradient(135deg,var(--client-green),#2c6661); }
.buyer-property-media img { width: 100%; height: 185px; object-fit: cover; }
.buyer-property-media > span { font-size: 3rem; }
.buyer-property-media small { position: absolute; left: 12px; bottom: 12px; padding: 6px 8px; color: var(--client-green); background: rgba(255,255,255,.92); font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.buyer-property-copy { padding: 18px; }
.buyer-property-copy h4 { margin: 10px 0 7px; color: var(--client-green); font: 400 1.35rem Georgia,serif; }
.buyer-property-copy > p { color: var(--client-muted); line-height: 1.5; }
.buyer-property-actions { display: flex; flex-wrap: wrap; gap: 9px; margin: 14px 0; }
.buyer-property-card details { padding-top: 12px; border-top: 1px solid var(--client-line); }
.buyer-property-card summary { color: var(--client-green); font-size: .78rem; font-weight: 800; cursor: pointer; }
.buyer-property-card form, .buyer-visit-feedback-form, .buyer-proposal-response-form { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin-top: 13px; padding: 14px; background: var(--client-paper); }
.buyer-property-card form .form-status, .buyer-visit-feedback-form .form-status, .buyer-proposal-response-form .form-status { align-self: center; margin: 0; }
.buyer-confirm { grid-template-columns: auto minmax(0,1fr) !important; align-items: start; color: var(--client-muted) !important; font-weight: 500 !important; letter-spacing: 0 !important; line-height: 1.45; text-transform: none !important; }
.buyer-confirm input { width: auto !important; margin-top: 3px; }
.buyer-proposal-card { margin-bottom: 10px; padding: 15px; background: #fff; border-left: 3px solid var(--client-rust); }
.buyer-proposal-card p { color: var(--client-muted); white-space: pre-wrap; }
.buyer-proposal-card small { color: var(--client-muted); }
.buyer-document-link { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 11px; background: var(--client-paper); }
.buyer-document-link a { color: var(--client-green); font-weight: 800; }
.client-footer { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 28px; padding: 35px clamp(24px, 6vw, 90px); color: var(--client-muted); background: #e9e1d4; border-top: 1px solid var(--client-line); font-size: .75rem; }
.client-footer img { width: 220px; }
.client-account-dialog { width: min(560px,calc(100% - 28px)); padding: 0; border: 0; color: #172c2b; background: white; box-shadow: 0 30px 100px rgba(14,44,43,.32); }
.client-account-dialog::backdrop { background: rgba(14,44,43,.76); }
.client-dialog-actions { display: flex; justify-content: flex-end; gap: 10px; }

@media (max-width: 980px) {
  .client-auth { grid-template-columns: 1fr; }
  .client-layout { grid-template-columns: 1fr; }
  .client-processes { position: static; }
  .client-columns { grid-template-columns: 1fr; }
  .client-owner-head { align-items: flex-start; flex-direction: column; }
  .client-owner-layout, .client-owner-columns { grid-template-columns: 1fr; }
  .client-buyer-head { align-items: flex-start; flex-direction: column; }
  .client-buyer-layout { grid-template-columns: 1fr; }
  .buyer-criteria-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .client-investor-form { grid-template-columns: 1fr 1fr; }
  .client-investor-form .span-4 { grid-column: 1 / -1; }
  .client-service-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 680px) {
  .client-header nav a:not(:last-child) { display: none; }
  .client-auth { padding: 50px 24px; }
  .client-welcome, .client-detail-head { align-items: flex-start; flex-direction: column; }
  .client-account-actions { width: 100%; justify-content: stretch; }
  .client-account-actions .button { flex: 1; }
  .client-info-grid { grid-template-columns: 1fr; }
  .client-requirement { align-items: flex-start; flex-direction: column; }
  .client-requirement .button, .delegated-state { width: 100%; max-width: none; }
  .client-quote { align-items: stretch; flex-direction: column; }
  .client-quote-actions { justify-content: stretch; }
  .client-quote-actions .button { width: 100%; text-align: center; }
  .client-contract-panel .client-panel-head { flex-direction: column; }
  .client-contract-actions .button { width: 100%; text-align: center; }
  .client-total { width: 100%; }
  .client-investor-head { flex-direction: column; }
  .client-investor-form { grid-template-columns: 1fr; padding: 18px; }
  .client-investor-form .span-2, .client-investor-form .span-4 { grid-column: 1; }
  .client-service-cards, .client-service-request-grid { grid-template-columns: 1fr; }
  .client-service-request-grid .span-2 { grid-column: 1; }
  .client-investor-submit, .client-investor-match { align-items: stretch; flex-direction: column; }
  .client-investor-match { grid-template-columns: 1fr; }
  .client-owner-detail-head { flex-direction: column; }
  .client-owner-detail-head div:last-child { width: 100%; }
  .client-owner-indicators { width: 100%; }
  .client-owner-preview:not(.muted) { grid-template-columns: 1fr; }
  .client-owner-preview-copy > div strong { width: 100%; margin-left: 0; }
  .buyer-criteria-grid, .buyer-property-grid { grid-template-columns: 1fr; }
  .buyer-criteria-grid .span-2, .buyer-property-card form .span-2 { grid-column: 1; }
  .buyer-property-card form, .buyer-visit-feedback-form, .buyer-proposal-response-form { grid-template-columns: 1fr; }
  .buyer-form-actions { align-items: stretch; flex-direction: column; }
  .buyer-form-actions .button, .buyer-property-actions .button { width: 100%; }
  .client-buyer-indicators { width: 100%; }
  .client-footer { grid-template-columns: 1fr; }
  .client-footer img { width: 205px; }
}
@media (prefers-reduced-motion: reduce) {
  .client-access-scene .access-mark, .client-access-scene.unlocked .access-mark, .client-access-scene.denied .access-mark { animation: none; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

.client-market-study { padding: 24px; margin-bottom: 24px; border: 1px solid #d6dfdb; border-radius: 12px; background: #f5f8f5; }
.client-study-report { max-width: 860px; margin: 32px auto; padding: 24px; font-family: Arial,sans-serif; color: #173d3b; line-height: 1.6; }
.client-study-report > img { width: 230px; max-width: 100%; }
.client-study-report dl { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 16px; }
.client-study-report dd { margin: 0; font-size: 1.4rem; font-weight: bold; }
@media print { .client-study-report > a { display: none; } }
