*{box-sizing:border-box}
body{margin:0;background:#f4f3ee;color:#21352e;font:17px/1.55 system-ui,sans-serif}
main{width:100%;max-width:800px;min-width:0;margin:32px auto;padding:28px;background:white;border-radius:18px}
h1{line-height:1.15;font-size:clamp(1.8rem,5vw,2.4rem);overflow-wrap:anywhere}
fieldset{min-width:0;min-inline-size:0;max-width:100%;border:1px solid #cbd4cd;border-radius:10px;margin:24px 0;padding:20px}
legend{max-width:100%;font-weight:700;padding:0 8px;white-space:normal;overflow-wrap:anywhere}
label{display:block;margin:14px 0;overflow-wrap:anywhere}
input,select,textarea{display:block;min-width:0;max-width:100%;width:100%;padding:12px;margin-top:6px;border:1px solid #83988b;border-radius:6px;font:inherit;background:#fff;color:#21352e}
textarea{min-height:110px;resize:vertical}
input[type="file"]{overflow:hidden}
button{max-width:100%;min-height:48px;background:#215841;color:white;border:0;padding:14px 24px;border-radius:8px;font:inherit;white-space:normal;overflow-wrap:anywhere;cursor:pointer;touch-action:manipulation}
button:disabled{opacity:.55;cursor:wait}
a{color:#215841;overflow-wrap:anywhere}
p{overflow-wrap:anywhere}
#price,#route{font-weight:600}
.trap,[hidden]{display:none!important}
:focus-visible{outline:3px solid #a96b12;outline-offset:3px}
.request-field{white-space:pre-wrap;overflow-wrap:anywhere}
.private-note{font-size:.9em}
.photo-item{margin:20px 0}
.project-photo{display:block;width:auto;max-width:100%;height:auto;border-radius:8px}
#open-link{margin:24px 0}
#retry,#close-request{margin:12px 0}
@media(max-width:600px){main{margin:0;padding:18px;border-radius:0}fieldset{padding:14px}button{padding:12px 18px}}
