/* The project begins as a conversation, with detail revealed when it is useful. */
body:has(main > .conversation-app){background:#f7f7f4}
body:has(main > .conversation-app) main{background:#f7f7f4}
body:has(main > .conversation-app) .mobile-dock{display:none}
body:has(main > .conversation-app) footer{margin-top:0}
.conversation-app{--chat-ink:#242822;--chat-muted:#697064;--chat-line:#dedfd7;max-width:1120px!important;margin:0 auto!important;padding:0 32px 44px!important;color:var(--chat-ink)}
.conversation-app [hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.chat-topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 0;border-bottom:1px solid var(--chat-line)}
.chat-brand{display:flex;align-items:center;gap:12px}
.chat-brand-mark{display:grid;place-items:center;background:#292e27;color:#fff;width:43px;height:43px;font-size:12px;font-weight:800;letter-spacing:-.7px;border-radius:12px}
.chat-brand strong{display:block;font-size:15px;font-weight:650;line-height:1.4}
.chat-brand div>span{display:block;color:var(--chat-muted);font-size:11px;letter-spacing:.02em;margin-top:3px}
.chat-top-actions{display:flex;align-items:center;gap:10px}
.chat-quiet-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:1px solid transparent;color:var(--chat-ink);padding:10px 13px;border-radius:10px;font:inherit;font-size:13px;line-height:1.35;cursor:pointer;text-decoration:none}
.chat-quiet-button:hover{background:#eeefe8;border-color:var(--chat-line)}
.chat-quiet-button:focus-visible,.chat-suggestion:focus-visible,.chat-starters button:focus-visible{outline:2px solid #b56a12;outline-offset:3px}
#chat-overview-open{border-color:var(--chat-line);background:#fff}
#chat-detail-count{background:#e8ebdf;border-radius:50%;font-size:10px;min-width:20px;height:20px;display:inline-grid;place-items:center}
.chat-workspace{max-width:790px;margin:0 auto;min-height:365px;padding:22px 0 16px}
.chat-welcome{text-align:center;max-width:710px;margin:20px auto 0;padding:7px 0 20px}
.chat-welcome-mark{display:inline-grid;place-items:center;background:#f8e7c7;color:#755223;width:51px;height:51px;border-radius:18px;font-size:28px;transform:rotate(-7deg);margin-bottom:19px}
.chat-welcome .kicker{color:#777f70;font-size:10px;letter-spacing:.15em;margin:0 0 15px}
.chat-welcome h1{font-size:clamp(36px,4.2vw,55px);line-height:1.08;letter-spacing:-.055em;font-weight:500;margin:0 0 20px;color:var(--chat-ink)}
.chat-welcome>p:last-of-type{max-width:500px;margin:0 auto;color:var(--chat-muted);font-size:15px;line-height:1.65}
.chat-starters{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:27px}
.chat-starters button{display:flex;align-items:center;gap:16px;text-align:left;border:1px solid var(--chat-line);border-radius:11px;background:#fff;padding:13px 14px;font:inherit;font-size:12px;color:#41473d;cursor:pointer;transition:background .15s,border-color .15s}
.chat-starters button span{color:#7c806f;font-size:16px}
.chat-starters button:hover{background:#f7efdf;border-color:#c7b58e}
.chat-messages{display:flex;flex-direction:column;gap:28px;padding:8px 0 12px}
.chat-message{max-width:100%;overflow-wrap:anywhere}
.chat-message,.chat-thinking,.chat-recovery{scroll-margin-top:110px;scroll-margin-bottom:240px}
.chat-budget-breakdown{border-top:1px solid var(--chat-line);margin-top:18px;padding-top:14px}
.chat-budget-breakdown>summary{cursor:pointer;font-size:13px;font-weight:600;padding:4px 0}
.chat-budget-review{border-top:1px solid var(--chat-line);padding:23px 0 5px;margin-top:18px}
.chat-budget-review>.kicker{font-size:10px;color:var(--chat-muted);margin-bottom:9px}
.chat-budget-review>p{font-size:14px;line-height:1.7;max-width:650px}
.chat-budget-review>.notice{font-size:11px;color:var(--chat-muted)}
.chat-project-actions{padding:24px 0 4px}
.chat-project-actions h2{font-size:18px;font-weight:600;letter-spacing:-.02em;margin:0 0 15px}
.chat-action-buttons{display:flex;flex-wrap:wrap;gap:10px}
.chat-action-buttons .btn,.chat-budget-review .btn{font-size:13px;min-height:46px}
.chat-project-actions>p{font-size:12px;line-height:1.6;color:var(--chat-muted);margin:12px 0 0}
.chat-visit-preference{margin-bottom:20px}
.chat-price-card[data-current="false"]>.kicker{color:#8b8476}
.chat-message-author{display:block;font-size:10px;color:var(--chat-muted);letter-spacing:.05em;margin:0 0 9px}
.chat-message-content{font-size:15px;line-height:1.8}
.chat-message-content>p{margin:0 0 13px;white-space:pre-wrap}
.chat-message-content>p:last-child{margin-bottom:0}
.chat-message-user{align-self:flex-end;max-width:84%}
.chat-message-user .chat-message-author{text-align:right;margin-right:5px}
.chat-message-user .chat-message-content{background:#e9ede2;border:1px solid #e2e6d9;border-radius:19px 19px 5px 19px;padding:16px 21px;color:#30372b}
.chat-message-assistant{align-self:flex-start;width:100%;padding-right:20px}
.chat-message-files{font-size:11px!important;color:#69705d!important;border-top:1px solid #d6dccc;padding-top:9px;margin-top:12px!important}
.chat-thinking{display:flex;gap:12px;align-items:center;font-size:12px;color:var(--chat-muted);padding:10px 0 26px}
.chat-thinking .thinking-dots{margin:0;width:auto}
.chat-thinking .thinking-dots i{background:#77836a;width:5px;height:5px}
.chat-suggestions{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.chat-suggestion{background:#fff;border:1px solid var(--chat-line);border-radius:18px;padding:9px 13px;font:inherit;font-size:12px;line-height:1.4;color:#4e5846;cursor:pointer;text-align:left}
.chat-suggestion:hover{background:#edf1e7}
.chat-recovery{border-left:3px solid #d38b35;padding:10px 16px;margin-bottom:18px;background:#fcf5e8;font-size:13px;line-height:1.6}
.chat-recovery p{margin:0 0 5px}
.chat-compose-wrap{max-width:830px;margin:0 auto;position:sticky;bottom:0;z-index:3;padding:16px 0 5px;background:linear-gradient(0deg,#f7f7f4 85%,#f7f7f400 100%)}
.chat-composer{background:#fff;border:1px solid #d7dbce;border-radius:21px;padding:17px 19px 12px;box-shadow:0 8px 30px #24311709}
.chat-composer:focus-within{border-color:#a7b298;box-shadow:0 0 0 3px #a7b29814,0 8px 30px #24311709}
.chat-composer textarea{display:block;width:100%;padding:2px 2px 10px;border:0!important;box-shadow:none!important;outline:0!important;background:transparent;color:var(--chat-ink);font:inherit;font-size:15px;line-height:1.6;resize:none;min-height:63px;max-height:200px;border-radius:0}
.chat-composer textarea::placeholder{color:#8a9083}
.chat-compose-tools{display:flex;align-items:center;gap:12px}
.chat-attach{position:relative;display:inline-flex;align-items:center;gap:7px;cursor:pointer;color:#5c6454;font-size:12px;padding:7px 6px;border-radius:8px}
.chat-attach>span:first-child{font-size:24px;line-height:20px;font-weight:300}
.chat-attach:hover,.chat-attach:focus-within{background:#eef1e8;outline:1px solid #d5dccb}
.chat-compose-hint{margin-left:auto;font-size:10px;color:#969c8d}
.chat-send{flex:none;background:#f6a32c;border:0;border-radius:12px;width:41px;height:41px;display:grid;place-items:center;cursor:pointer;margin-left:auto}
.chat-send svg{width:23px;height:23px;stroke:#30291b;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.chat-send:hover{background:#ee921c}
.chat-send:focus-visible{outline:2px solid #6c521c;outline-offset:3px}
.chat-send:disabled{opacity:.45;cursor:wait}
.chat-bottomline{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;color:#888f7e;font-size:10px;padding:11px 10px 3px;line-height:1.5}
.chat-privacy{position:relative;flex:none}
.chat-privacy summary{cursor:pointer;color:#68715f;list-style:none;text-decoration:underline;text-underline-offset:3px}
.chat-privacy[open]{position:absolute;bottom:47px;right:8px;width:min(360px,calc(100% - 16px));padding:18px 21px;background:#fff;border:1px solid var(--chat-line);border-radius:13px;box-shadow:0 12px 50px #202b1930;font-size:12px;z-index:5}
.chat-privacy[open] summary{font-weight:600;margin-bottom:10px}
.chat-privacy p{margin:8px 0;line-height:1.7}
.chat-next{border-top:1px solid var(--chat-line);padding-top:13px;margin-top:22px;color:var(--chat-muted);font-size:12px}
.chat-next-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px}
.chat-next .chat-save-later{background:#ecefe6;color:#3d4b31}
.chat-next button:disabled{opacity:.6;cursor:wait}
.chat-save-feedback{display:flex;flex-wrap:wrap;gap:5px 14px;align-items:baseline;padding:8px 13px 0;font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.chat-save-feedback p{margin:0}
.chat-save-feedback a{color:#536c3f;text-underline-offset:3px}
#chat-save-feedback[data-state="error"]{color:#8a412b}
.chat-file-list{display:flex;gap:9px;overflow-x:auto;margin:0!important;padding:0!important;list-style:none}
.chat-file-list .file-item{display:flex;flex:none;gap:8px;align-items:center;padding:8px;border:1px solid #e2e5db;border-radius:9px;background:#f9faf6;max-width:275px;font-size:10px;margin:0 0 12px}
.chat-file-list .file-item img{width:38px;height:38px;object-fit:cover;border-radius:5px}
.chat-file-list .file-item span{max-width:155px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-file-list .file-item button{font-size:10px;min-width:auto}
.chat-composer .error:empty{display:none}
.chat-composer .error{font-size:12px;margin:0 0 10px}
.chat-dialog{width:min(700px,calc(100% - 30px));max-height:88dvh;border:1px solid #d9dece;border-radius:20px;padding:27px 32px;background:#fafbf7;color:var(--chat-ink);box-shadow:0 25px 100px #14200d3b;overflow:auto}
.chat-dialog::backdrop{background:#1d261b60;backdrop-filter:blur(4px)}
.chat-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}
.chat-dialog-top .kicker{margin:0;font-size:10px;color:var(--chat-muted)}
.chat-dialog h2{font-size:30px;letter-spacing:-.035em;line-height:1.2;margin:0 0 16px;font-weight:500}
.chat-dialog p{font-size:14px;line-height:1.7}
.chat-dialog .request-form{border:0;padding:0;background:transparent;margin:0}
.chat-dialog .request-form h2{font-size:30px}
.chat-dialog .request-form .field input{background:#fff}
.chat-dialog .result-grid{grid-template-columns:1fr 1fr;gap:16px}
.chat-dialog .field span{font-size:12px}
.chat-dialog .request-address{margin-top:18px}
.chat-dialog .request-address h3{font-size:14px;margin-bottom:13px}
.chat-dialog .notice,.chat-dialog .review-consent{font-size:12px}
.chat-overview-section{border-top:1px solid var(--chat-line);margin-top:20px;padding-top:16px}
.chat-overview-section h3{font-size:13px;margin:0 0 10px;font-weight:650}
.chat-overview-section ul{padding:0 0 0 17px;margin:0;color:#535e49;font-size:13px;line-height:1.75}
.chat-overview-section li+li{margin-top:7px}
.chat-save{margin-top:27px;border-top:1px solid var(--chat-line);padding-top:20px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.chat-save .notice{width:100%;margin:0}
.chat-extra-tools{font-size:12px;border-top:1px solid var(--chat-line);padding-top:20px;margin-top:25px}
.chat-extra-tools>summary{cursor:pointer}
.chat-extra-tools .photo-tools{margin-top:15px}
.chat-extra-tools .photo-tools>summary{display:none}
.chat-extra-tools .photo-tools{display:contents}
.chat-extra-tools .photo-tools:not([open])>*:not(summary){display:block}
.chat-contact-summary{background:#eef1e7;border-radius:12px;padding:14px 17px;margin:20px 0 25px}
.chat-contact-summary p{font-size:12px;margin:0 0 8px}
.chat-contact-summary details{font-size:12px}
.chat-contact-summary pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;max-height:240px;overflow:auto}
.chat-estimate-proposal{background:#fffdf5;border:1px solid #e6d7b9;border-radius:16px;padding:24px;margin:26px 0}
.chat-estimate-proposal>.kicker{font-size:10px;color:#8b7041;margin:0 0 11px}
.chat-estimate-proposal h2{font-size:24px;font-weight:500;letter-spacing:-.025em;margin:0 0 20px}
.chat-proposal-line{margin:15px 0}
.chat-proposal-line h3{font-size:14px;line-height:1.6;margin:0 0 6px}
.chat-proposal-line p{font-size:12px;line-height:1.7;margin:5px 0}
.chat-estimate-proposal .choice{margin:20px 0;font-size:12px;line-height:1.6;align-items:flex-start}
.chat-estimate-proposal .notice{font-size:12px}
.chat-price-card{background:#fff;border:1px solid #dce3d0;border-radius:16px;padding:25px 26px}
.chat-price-card>.kicker{font-size:10px;color:#73805f;margin:0 0 12px}
.chat-price-card h2{font-size:clamp(24px,3vw,34px);letter-spacing:-.04em;line-height:1.3;font-weight:550;margin:0}
.chat-price-caption{font-size:12px;color:var(--chat-muted);margin:5px 0 22px}
.chat-price-line{border-top:1px solid var(--chat-line);padding-top:16px;margin-top:16px}
.chat-price-line strong{font-size:13px;line-height:1.6;font-weight:600;display:block}
.chat-price-line>p{margin:7px 0;font-size:15px}
.chat-price-line details{font-size:11px;line-height:1.7;color:#69745d}
.chat-price-line details p{margin:9px 0}
.chat-price-card>.notice{font-size:11px;line-height:1.7;margin:20px 0 0}
.chat-saved-notice{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:12px 16px;margin:18px auto 0;border:1px solid #d3dbc7;background:#edf2e4;border-radius:11px;max-width:790px}
.chat-saved-notice p{font-size:12px;margin:0 auto 0 0}
.chat-saved-notice button{font-size:11px}
@media(min-width:900px){body:has(main > .conversation-app) header{position:relative}.chat-welcome{padding-top:14px}.chat-compose-wrap{bottom:8px}}
@media(max-width:700px){.conversation-app{padding:0 17px 22px!important}.chat-topbar{padding:17px 0;gap:8px}.chat-brand-mark{width:34px;height:34px;font-size:10px;border-radius:9px}.chat-brand{gap:9px}.chat-brand strong{font-size:13px}.chat-brand div>span{font-size:9px}.chat-top-actions{gap:1px}.chat-top-actions .chat-quiet-button{font-size:11px;padding:9px}.chat-top-actions #chat-new{font-size:0}.chat-top-actions #chat-new span{font-size:24px;font-weight:300}.chat-workspace{padding-top:12px;min-height:335px}.chat-welcome{margin:12px auto 0;padding-bottom:12px}.chat-welcome-mark{width:40px;height:40px;font-size:23px;border-radius:13px;margin-bottom:16px}.chat-welcome h1{font-size:38px;margin-bottom:17px}.chat-welcome>p:last-of-type{font-size:13px;max-width:325px}.chat-welcome .kicker{font-size:9px;margin-bottom:12px}.chat-starters{gap:7px;margin-top:22px}.chat-starters button{font-size:11px;padding:11px;gap:9px}.chat-starters button:first-child{flex-basis:auto}.chat-message-content{font-size:14px;line-height:1.75}.chat-message-user{max-width:92%}.chat-message-user .chat-message-content{padding:13px 16px}.chat-message-assistant{padding-right:0}.chat-message-author{font-size:9px}.chat-messages{gap:24px}.chat-compose-wrap{padding-top:12px;padding-bottom:max(5px,env(safe-area-inset-bottom));bottom:0}.chat-composer{padding:13px 13px 10px;border-radius:17px}.chat-composer textarea{font-size:16px;min-height:60px}.chat-compose-hint{display:none}.chat-attach{font-size:11px}.chat-send{width:36px;height:36px;border-radius:10px}.chat-bottomline{font-size:9px;padding:9px 3px 0;gap:10px}.chat-bottomline>span{max-width:230px}.chat-next button{font-size:11px;min-height:44px;padding:10px}.chat-save-feedback{font-size:10px;padding:6px 10px 0}.chat-dialog{padding:21px 20px;max-height:90dvh;border-radius:17px}.chat-dialog h2,.chat-dialog .request-form h2{font-size:26px}.chat-dialog .result-grid{grid-template-columns:1fr}.chat-price-card{padding:20px}.chat-estimate-proposal{padding:20px}.chat-dialog .btn{font-size:12px}.chat-save{gap:12px}}
@media(prefers-reduced-motion:reduce){.conversation-app *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
