.service-dialog { position:fixed; inset:0; z-index:110; display:grid; place-items:center; padding:24px; background:rgba(15,35,36,.48); }
.service-dialog[hidden] { display:none; }
.service-dialog .service-form { display:flex; flex-direction:column; width:100%; max-width:640px; max-height:calc(100dvh - 48px); padding:0; overflow:hidden; border:1px solid #d7e3df; border-radius:8px; background:#fff; color:#193333; box-shadow:0 18px 70px rgba(14,34,34,.2); }
.service-form-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:27px 30px 21px; flex-shrink:0; border-bottom:1px solid #e3eae7; }
.service-form-head .brand-eyebrow { margin-bottom:8px; font-size:12px; }
.service-form-head h2 { margin:0; max-width:28ch; font-size:24px; line-height:1.35; font-weight:800; overflow-wrap:anywhere; }
.service-form-head h2:focus { outline:none; }
.service-form-head p { margin:8px 0 0; font-size:14px; line-height:1.5; color:#00777d; font-weight:700; }
.service-form-head .icon-button { flex:0 0 36px; width:36px; height:36px; padding:8px; margin:-4px -8px 0 0; border-radius:5px; color:#617770; }
.service-form-head .icon-button:hover { background:#edf4f1; }
.service-form-head .icon-button svg { width:20px; height:20px; stroke-width:1.7; }
.service-form-steps { display:flex; align-items:center; gap:20px; padding:16px 30px; margin:0; list-style:none; border-bottom:1px solid #e3eae7; flex-shrink:0; }
.service-form-steps li { display:flex; align-items:center; gap:9px; color:#697d76; font-size:13px; }
.service-form-steps li:first-child::after { content:''; width:45px; height:1px; background:#dce5e0; margin-left:9px; }
.service-form-steps b { display:grid; place-items:center; width:25px; height:25px; border:1px solid #d9e4de; border-radius:50%; font-size:12px; font-weight:600; }
.service-form-steps .active { color:#007a80; font-weight:800; }
.service-form-steps .active b { border-color:#007a80; background:#007a80; color:#fff; }
.service-form-body { padding:24px 30px; min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#c4d2cc transparent; }
.service-form .form-hint { margin:0 0 22px; color:#617770; font-size:14px; line-height:1.6; }
.service-form .intake-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:21px 18px; }
.service-form .intake-fields[hidden] { display:none; }
.service-form .intake-fields > label, .service-form .choice-field { display:block; margin:0; min-width:0; }
.service-form .field-wide { grid-column:1 / -1; }
.service-form .intake-fields > label > span, .service-form .choice-field legend, .service-form .project-input-label { display:block; margin:0 0 8px; padding:0; color:#334c44; font-size:14px; line-height:1.5; font-weight:600; }
.service-form input:not([type=radio]):not([type=file]), .service-form textarea, .service-form select { display:block; width:100%; min-width:0; min-height:47px; margin:0; padding:11px 12px; border:1px solid #cbd9d2; border-radius:6px; background:#fff; color:#1d3630; font:inherit; font-size:16px; line-height:1.5; box-shadow:none; }
.service-form textarea { resize:vertical; min-height:86px; max-height:200px; }
.service-form input::placeholder, .service-form textarea::placeholder { color:#77877f; opacity:1; }
.service-form :is(input,select,textarea,button,summary):focus-visible { outline:2px solid #007a80; outline-offset:3px; }
.service-form .choice-field { padding:0; border:0; border-radius:0; background:transparent; }
.service-form .choice-field > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.service-form .choice-field label { display:flex; align-items:center; gap:9px; min-height:48px; padding:11px 12px; border:1px solid #d7e2dc; border-radius:6px; background:#fff; }
.service-form .choice-field label:has(:checked) { border-color:#007a80; background:#edf7f3; }
.service-form .choice-field input { appearance:auto; position:static; opacity:1; width:16px; height:16px; min-height:0; margin:0; padding:0; accent-color:#007a80; flex:0 0 16px; }
.service-form .choice-field span { font-size:14px; font-weight:500; line-height:1.5; color:#29493e; }
.service-form-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 30px; flex-shrink:0; border-top:1px solid #dfe8e2; background:#fff; }
.service-form-footer button { display:flex; align-items:center; justify-content:center; gap:8px; min-height:45px; padding:11px 17px; border-radius:6px; font:inherit; font-size:14px; line-height:1.4; font-weight:700; }
.service-form-footer button[hidden] { display:none; }
.service-form-footer button svg { width:16px; height:16px; }
.service-form-footer .form-primary { border:1px solid #007a80; background:#007a80; color:#fff; }
.service-form-footer .form-primary:hover { background:#005e65; }
.service-form-footer .form-back { border:1px solid transparent; background:transparent; color:#597166; padding-inline:0; }
.service-form-footer .form-back:hover { color:#007a80; }
.service-form .requirements-panel { margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.service-form .requirements-panel h3 { margin:0; color:#193333; font-size:18px; line-height:1.4; }
.service-form .requirements-panel p { margin:8px 0 18px; color:#617770; font-size:14px; line-height:1.6; }
.service-form .requirements-panel ul { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.service-form .requirements-panel li { position:relative; padding:13px 0 13px 23px; margin:0; border-bottom:1px solid #e4ebe5; color:#334e40; font-size:14px; line-height:1.6; }
.service-form .requirements-panel li::before { content:''; position:absolute; top:19px; left:1px; width:7px; height:10px; border:solid #78a493; border-width:0 1.5px 1.5px 0; transform:rotate(45deg); }
.service-attachments { margin-top:26px; padding-top:22px; border-top:1px solid #e4ebe5; }
.attachment-heading { display:flex; align-items:center; gap:9px; margin-bottom:12px; font-size:14px; }
.attachment-heading strong { font-weight:700; }
.attachment-heading > span { font-size:12px; color:#667c6e; }
.attachment-tools { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.attachment-tools button, .attachment-tools .attach-file { display:flex; align-items:center; justify-content:center; gap:8px; min-height:43px; margin:0; padding:10px 12px; border:1px solid #c8dbd2; border-radius:6px; background:#fff; color:#006e70; font-size:14px; line-height:1.4; font-weight:600; cursor:pointer; }
.attachment-tools svg { width:18px; height:18px; stroke-width:1.7; }
.attachment-tools .attach-file { position:relative; border-color:#dde6df; color:#4f6a5b; }
.attachment-tools .attach-file:focus-within { outline:2px solid #007a80; outline-offset:3px; }
.attachment-tools input[type=file] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.attachment-tools .recording { background:#fff3ee; color:#9d3529; border-color:#d09183; }
.record-time { color:#9d3529; font-size:14px; font-weight:700; font-variant-numeric:tabular-nums; }
.record-time[hidden] { display:none; }
.service-form .attachment-status { margin:10px 0 0; color:#61736a; font-size:13px; line-height:1.6; }
.attachment-status:empty { display:none; }
.service-form .attachment-privacy { margin:13px 0 0; font-size:12px; line-height:1.65; color:#64776b; }
.attachment-list { display:grid; gap:12px; margin-top:16px; }
.attachment-list:empty { display:none; }
.attachment-row { display:grid; grid-template-columns:minmax(0,1fr) 32px; gap:12px; padding:14px; border:1px solid #dce7e0; border-radius:6px; background:#f8faf8; }
.attachment-file strong { display:block; font-size:14px; line-height:1.5; overflow-wrap:anywhere; font-weight:600; }
.attachment-file span { display:block; margin-top:4px; color:#62766a; font-size:12px; line-height:1.5; }
.attachment-row button[data-remove-file] { display:grid; place-items:center; padding:0; width:32px; height:32px; border:0; border-radius:4px; background:transparent; color:#64786c; }
.attachment-row button[data-remove-file] svg { width:17px; height:17px; }
.attachment-row audio { grid-column:1 / -1; display:block; width:100%; min-width:0; height:42px; }
.attachment-row .share-note { grid-column:1 / -1; justify-self:start; padding:0; border:0; background:transparent; font-size:13px; color:#007a80; }
.service-form .project-options { margin-bottom:22px; }
.service-form .project-extra-fields:not(:empty) { margin-top:22px; }
.service-form #projectDescription { min-height:130px; }
.service-form .project-documents, .service-form .brief-analysis { margin:22px 0 0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.service-form .brief-analysis[hidden] { display:none; }
.service-form :is(.project-documents,.brief-analysis) summary { font-size:14px; line-height:1.5; color:#3d6352; cursor:pointer; }
.service-form :is(.project-documents,.brief-analysis) ul { margin:12px 0; padding-left:20px; color:#617770; font-size:14px; line-height:1.7; }
.service-form .brief-analysis h3 { font-size:16px; margin:18px 0 0; }
.service-form .brief-analysis p { font-size:13px; line-height:1.6; }
.service-form #intakeDetails > .form-hint { margin:0 0 22px; }
.service-form .service-form-body > .form-hint { margin:20px 0 0; font-size:13px; }
.service-form .form-error { color:#a03c2e; font-size:14px; line-height:1.5; }
.service-form .form-error:empty { display:none; }
.launch-items .launch-attachment { flex-wrap:wrap; gap:12px; }
.launch-attachment > span { min-width:0; overflow-wrap:anywhere; flex:1; }
.launch-attachment audio { flex:0 0 100%; width:100%; min-width:0; height:44px; }
@media(max-width:620px) {
  .service-dialog { padding:0; }
  .service-dialog .service-form { max-height:100dvh; height:100dvh; max-width:none; border:0; border-radius:0; }
  .service-form-head { padding:22px 20px 18px; }
  .service-form-head h2 { font-size:22px; }
  .service-form-steps { padding:14px 20px; }
  .service-form-body { padding:22px 20px; flex:1; }
  .service-form .intake-fields { grid-template-columns:1fr; gap:18px; }
  .service-form-footer { padding:14px 20px max(14px,env(safe-area-inset-bottom)); }
  .service-form-footer button { padding:11px 13px; }
  .service-form .choice-field > div { grid-template-columns:1fr; }
  .attachment-tools { gap:8px; }
  .attachment-tools button, .attachment-tools .attach-file { padding:10px; font-size:13px; }
}
@media(max-height:660px) and (min-width:621px) { .service-dialog { padding:12px; }.service-dialog .service-form { max-height:calc(100dvh - 24px); }.service-form-head { padding:18px 28px; } }
