/* 색과 글자 바탕은 ds.css를 재사용한다. */
.ws-head{max-width:1200px;margin-inline:auto;display:flex;align-items:center;gap:28px;padding:24px 28px;border-bottom:1px solid var(--line)}
.ws-head>a{font-size:24px;font-weight:800;color:var(--ink);text-decoration:none;white-space:nowrap}
.ws-head nav{display:flex;flex-wrap:wrap;gap:20px;margin-inline-end:auto}
.ws-head nav a{display:flex;align-items:center;min-height:44px;font-size:14px}
.ws-lang{display:flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap}.ws-lang select{width:110px;min-height:44px}
.ws-wrap{width:min(1120px,calc(100% - 48px));margin:42px auto 64px;overflow-wrap:anywhere}
/* 관리 틀 안(admin.html .ws-embed) = 겉 여백·제목은 관리 틀 것 · 관리 화면 이름표 꼴(.field>label flex)은 여기서 되돌림 */
.ws-embed .field>label{display:block}
/* 관리 틀 안 견적·지원(걸어보기 7, 10-30): 다른 관리 화면과 같은 꼴 — 목록 = .rowi 줄(굵은 이름 · 회색 작은 줄 · 오른쪽 꺾쇠 · 고른 줄 옅은 칠) ·
   접는 칸 = 관리 화면 꺾쇠(details.gone 과 같음) · 목록 칸 제목은 위 띠 제목(「견적」)과 겹쳐 눈에서만 숨김(읽기 프로그램엔 남김) · 「골라 주세요」는 휴대폰에선 숨김(목록이 바로 위) */
.ws-embed .ws-grid>.ws-panel>h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ws-embed .ws-grid>.ws-panel{padding:18px}
.ws-embed .ws-tools{margin-bottom:10px}.ws-embed .ws-tools .btn{min-height:40px;font-size:14px}
.ws-embed .ws-row{padding-block:0;gap:0}
.ws-embed .ws-row button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;min-height:62px;padding:10px 12px;border-radius:var(--r-s)}
.ws-embed .ws-row button::after{content:"";grid-column:2;grid-row:1/span 2;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg)}
[dir=rtl] .ws-embed .ws-row button::after{transform:rotate(135deg)}
.ws-embed .ws-row button strong{font-size:16px;font-weight:700;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-embed .ws-row button small{font-size:13px}.ws-embed .ws-row button>*{grid-column:1}
.ws-embed .ws-row button:hover{background:var(--surface-2)}.ws-embed .ws-row button:hover strong{text-decoration:none}
.ws-embed .ws-row button[aria-current="true"]{background:var(--act-soft)}
.ws-embed .ws-details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none}
.ws-embed .ws-details>summary::-webkit-details-marker{display:none}
.ws-embed .ws-details>summary::after{content:"";flex:none;width:8px;height:8px;margin-inline-end:4px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-2px) rotate(45deg);transition:transform .15s}
.ws-embed .ws-details[open]>summary::after{transform:translateY(2px) rotate(-135deg)}
@media (prefers-reduced-motion:reduce){.ws-embed .ws-details>summary::after{transition:none}}
@media(max-width:760px){.ws-embed .ws-pick{display:none}.ws-embed .ws-grid>.ws-panel{padding:14px;margin-bottom:16px}}
/* 사장님 견적 「더 보기」 안(10-28 심플하게): 기록·지난 제안 = 접지 않고 작은 제목 · 파일 칸은 위 줄 없이 */
.ws-more-sec{margin-top:18px}.ws-more-sec h3{font-size:15px;margin-bottom:8px}.ws-more>.ws-files{margin-top:18px}.ws-offer-more{margin-top:4px;padding-top:12px}
.ws-wrap h1{font-size:32px;line-height:1.3;margin-bottom:12px}.ws-intro{color:var(--muted);line-height:1.7;max-width:800px;margin-bottom:28px}
.ws-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.5fr);gap:28px;align-items:start}
.ws-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:28px;margin-bottom:24px}
.ws-panel h2{font-size:22px;margin-bottom:20px}.ws-panel h3{font-size:17px;line-height:1.5;margin-block:16px 8px}
.ws-panel>p{white-space:pre-wrap;line-height:1.8}.ws-stack{display:grid;gap:18px}.ws-stack .field{gap:7px}.ws-stack textarea{min-height:110px}
.ws-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:22px}.ws-actions .btn{white-space:normal}
.ws-row{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding-block:18px}.ws-row:last-child{border-bottom:0}.ws-row button{text-align:start;border:0;background:transparent;padding:4px;color:var(--ink);flex:1;min-height:48px}.ws-row button strong{display:block;font-size:17px;margin-bottom:7px}.ws-row button:hover strong{text-decoration:underline}.ws-row small{color:var(--muted)}
.ws-status{display:inline-flex;font-size:13px;font-weight:650;border-radius:8px;padding:5px 10px;background:var(--st-pend-bg);color:var(--st-pend);margin-bottom:16px}.ws-status.completed,.ws-status.accepted,.ws-status.scheduled,.ws-status.delivered{background:var(--st-seat-bg);color:var(--st-seat)}.ws-status.cancelled,.ws-status.declined,.ws-status.withdrawn,.ws-status.expired{background:var(--st-dim-bg);color:var(--st-dim)}
.ws-facts{display:grid;grid-template-columns:140px minmax(0,1fr);gap:10px 18px;margin:0}.ws-facts dt{font-size:14px;color:var(--muted)}.ws-facts dd{margin:0;white-space:pre-wrap;line-height:1.7}
.ws-note{padding:16px 18px;border-inline-start:3px solid var(--act);background:var(--act-soft);line-height:1.8;margin-block:18px;color:var(--ink);white-space:pre-wrap}.ws-error{padding:16px;background:var(--st-bad-bg);color:var(--st-bad);border-radius:var(--r-s);line-height:1.6}.ws-linkrow{margin-top:8px}
.ws-muted{font-size:14px;color:var(--muted);line-height:1.75;white-space:pre-wrap}
.ws-offer{border:1px solid var(--line-2);background:var(--surface-2);padding:22px;border-radius:var(--r);margin-top:18px}.ws-price{font-size:28px;font-weight:750;margin-bottom:18px}.ws-check{display:flex;gap:10px;align-items:flex-start;line-height:1.7;padding-block:10px}.ws-check input{width:20px;height:20px;flex-shrink:0;margin-top:4px;accent-color:var(--act)}
.ws-thread{list-style:none;margin:0;padding:0}.ws-thread li{padding:16px 0;border-top:1px solid var(--line)}.ws-thread li p{white-space:pre-wrap;line-height:1.7;margin-top:7px}.ws-thread small{color:var(--muted)}
.ws-details{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.ws-details summary{min-height:44px;cursor:pointer;font-weight:650;line-height:1.6}.ws-details[open]>form{margin-top:16px}.ws-files{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}.ws-files ul{padding-inline-start:20px}.ws-files li{padding-block:10px}.ws-files a{overflow-wrap:anywhere}.ws-files input[type=file]{width:100%;padding:12px 0}.ws-footer{max-width:1120px;margin:0 auto;padding:24px;border-top:1px solid var(--line);font-size:14px}.ws-footer a{min-height:44px;display:inline-flex;align-items:center}.ws-back{margin-bottom:22px}.ws-loading{color:var(--muted)}
@media(max-width:760px){.ws-head{padding:18px 20px;gap:14px;flex-wrap:wrap}.ws-head nav{order:3;width:100%;gap:18px}.ws-lang{margin-inline-start:auto}.ws-lang>span{display:none}.ws-wrap{width:calc(100% - 32px);margin-top:28px}.ws-wrap h1{font-size:26px}.ws-grid{grid-template-columns:1fr;gap:0}.ws-panel{padding:22px}.ws-facts{grid-template-columns:1fr;gap:4px}.ws-facts dd{margin-bottom:12px}.ws-actions .btn{flex:1}.ws-offer{padding:16px}.ws-row{padding-block:12px}}
.ws-head nav a[aria-current="page"]{color:var(--act);font-weight:800}

/* ── 손님 쪽(견적 요청 /q/{slug} · 내 견적 /q/t/{t} · 시간 예약 /book/{slug}) = 손님 흐름 옷(<html class="cust">, ds.css) — 사장님·운영 화면은 위 그대로 ──
   한 줄(최대 560px) 가운데 · 위 줄 = 가게 이름 알약 + 언어 알약(유리) · 판 = 유리 카드 · 안내 = 옅은 그라데이션 칠 · 아래 작은 글 */
.cust .ws-head{max-width:560px;gap:10px;padding:max(10px,env(safe-area-inset-top,0px)) 20px 0;min-height:60px;border-bottom:0;flex-wrap:nowrap}
.cust .ws-head>a{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:12.5px;font-weight:650;padding:7px 12px;border-radius:999px;margin-inline-end:auto}
.cust .ws-head>a,.cust .ws-lang select{background-color:var(--surface);border:1px solid var(--line)}
.cust .ws-head nav:empty{display:none}
.cust .ws-lang{margin-inline-start:0;flex:none}
.cust .ws-lang>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cust .ws-lang select{width:auto;min-height:40px;padding-block:6px;font-size:13px;font-weight:650;border-radius:999px}
/* 손님 견적 보기 = 손님 화면과 같은 지구 단추(guest.css .langbtn · 유리 알약 ds.css .cust .langbtn) */
.ws-globe{flex:none;display:flex}.ws-globe .langbtn{min-height:40px;font-size:13px}
.cust .ws-wrap{width:auto;max-width:560px;margin:4px auto 24px;padding:0 20px}
@media (max-width:374px){.cust .ws-head{padding-inline:16px}.cust .ws-wrap{padding:0 16px}}
.cust .ws-wrap>h1{font-size:25px;font-weight:780;letter-spacing:-.04em;line-height:1.3;margin:24px 0 8px}
.cust .ws-intro{font-size:14.5px;line-height:1.6;margin-bottom:20px}
.cust .ws-grid{grid-template-columns:1fr;gap:0}
.cust .ws-panel{padding:22px 20px;border-radius:24px;background:var(--surface);border:1px solid var(--line)}
.cust .ws-panel h2{font-size:19px;font-weight:760;letter-spacing:-.03em;margin-bottom:16px}
.cust .ws-note{border-inline-start:0;border-radius:var(--r);padding:12px 14px;font-size:14.5px;line-height:1.6;background:linear-gradient(120deg,var(--s1,var(--surface-2)),var(--s2,var(--surface-2)))}
.cust .ws-offer{background:var(--surface);border-color:var(--line);border-radius:20px}
.cust .ws-price{font-size:30px;font-weight:800;letter-spacing:-.04em}
.cust .ws-check{font-size:14.5px;line-height:1.55}
.cust .ws-check input{accent-color:var(--g1,var(--brand))}
.cust .ws-actions .btn,.cust .ws-stack>.btn{min-height:52px}
.cust .ws-stack>button[type=submit]{min-height:54px;font-size:17px}
.cust .ws-details,.cust .ws-files,.cust .ws-thread li{border-color:var(--line)}
.cust .ws-facts dt{color:var(--muted)}
.cust .ws-footer{max-width:560px;border-top:0;text-align:center;font-size:12.5px;color:var(--muted)}
.cust .ws-footer a{color:inherit}
.cust .ws-wrap>.btn.line{margin-bottom:14px}
.ws-strow{display:flex;align-items:center;gap:10px;margin-bottom:12px}.ws-strow .ws-status{margin:0}
.ws-strow>.btn{margin-inline-start:auto;flex:none;min-height:40px}
.ws-done{width:36px;height:36px;box-shadow:0 0 0 5px color-mix(in srgb,var(--g2,var(--brand)) 12%,transparent)}.ws-done::after{left:13px;top:7px;width:8px;height:15px;border-width:0 3px 3px 0}  /* 막 보낸 견적(접수됨) = 상태 칩 옆 작은 표시(10-28 공간 줄이기) */
@media(max-width:760px){.cust .ws-head{padding-top:max(10px,env(safe-area-inset-top,0px));gap:10px}.cust .ws-wrap{width:auto;margin-top:4px}.cust .ws-panel{padding:20px 18px}}
/* 목록 위 단추 줄(「새로 확인」·「새 지원 의뢰」) — 붙어 있던 것 띄움(workspace.js) */
.ws-tools{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:6px}
/* 손님 견적: 「동의하지 않기」 = 동의 단추 아래 한 줄 띄워 보이게(접힌 칸에서 꺼냄, workspace.js) · 파일 고르기 단추 = 다른 선 단추와 같은 모양 */
.ws-decline{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
/* 되는 날짜·시간(동의 뒤, C3) — 견적 카드와 떨어지게 */
.ws-panel [data-form="times"]{margin-top:18px}
.ws-files input[type=file]::file-selector-button{min-height:var(--tap);padding:0 18px;margin-inline-end:12px;border-radius:var(--r-s);border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.cust .ws-files input[type=file]::file-selector-button{background:color-mix(in srgb,var(--surface) 78%,transparent)}
/* 손님 견적 화면 알림 켜기 카드(공용 notify.js · guest.css .ncard) — 아래 사실 목록과 띄움 */
.ws-panel>.ncard{margin-block:4px 18px}
/* 상대가 쓴 글의 자동 번역(2026-10-29): 번역 + 「자동 번역 · 원문 보기」 작은 줄(누르는 자리 48px, 줄 높이는 그대로 — customer.css .autotr 와 같은 꼴) · 위험한 말 = ⚠ 줄 + 원문 먼저 */
.ws-tr p{margin:0;white-space:pre-wrap;line-height:1.7}.ws-thread li .ws-tr{margin-top:7px}.ws-thread li .ws-tr p{margin-top:0}
.ws-tr-line{margin-top:2px!important;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap;line-height:1.4!important}
.ws-tr-line button{background:none;border:0;padding:0 4px;margin-block:-16px;min-height:48px;color:inherit;font:inherit;font-weight:650;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ws-tr-risk{font-size:14px;font-weight:740;color:var(--st-bad)}
.ws-tr-alt{margin-top:4px!important;font-size:13px;color:var(--muted)}.ws-tr-alt b{font-size:12px;font-weight:700;margin-inline-end:2px}
.ws-panel>.work-flow{margin-block:16px;padding-block:16px;border-block:1px solid var(--line)}
.ws-panel>.work-flow h3{margin:0;font-size:15px}
.ws-panel>.work-flow p{line-height:1.6}
.ws-panel>.work-flow .ws-actions{display:flex;flex-wrap:wrap;gap:8px}
.ws-files li{overflow-wrap:anywhere}
.ws-files li .btn{margin-inline-start:8px;white-space:normal}
