:root { color-scheme: light; --ink:#17211d; --muted:#66736d; --line:#d9e0dc; --paper:#fff; --bg:#f4f7f5; --green:#0f7a5f; --green-dark:#095842; --soft:#e6f3ee; --danger:#a43a35; font-family:"Yu Gothic UI","Hiragino Kaku Gothic ProN",Meiryo,sans-serif; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; background:var(--bg); color:var(--ink); }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.app-shell { width:min(1480px,100%); margin:auto; min-height:100vh; padding:24px; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.brand { display:flex; align-items:center; gap:14px; }
.brand-mark { width:46px; aspect-ratio:1; display:grid; place-items:center; background:var(--ink); color:white; border-radius:8px; font-weight:800; }
h1,h2,h3,p { margin:0; }
h1 { font-size:21px; }
.brand p,.panel-header p { margin-top:4px; color:var(--muted); font-size:13px; }
.status-pill { border:1px solid #b9d9cc; background:var(--soft); color:var(--green-dark); padding:8px 12px; border-radius:999px; font-size:13px; font-weight:700; white-space:nowrap; }
.notice { padding:12px 16px; margin-bottom:16px; border:1px solid #a8d4c3; background:#e7f6f0; color:#07513d; border-radius:6px; }
.workspace { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr); gap:20px; align-items:start; }
.panel,.queue { background:var(--paper); border:1px solid var(--line); border-radius:8px; }
.panel { padding:24px; }
.panel-header,.queue-header { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }
.panel-header h2,.queue-header h2 { font-size:20px; }
.estimate-box { min-width:126px; padding:11px 14px; background:var(--ink); color:#fff; border-radius:6px; }
.estimate-box span { display:block; font-size:11px; color:#cbd6d1; }
.estimate-box strong { display:block; margin-top:3px; font-size:22px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:17px; margin-top:24px; }
.field { min-width:0; }
.field.full { grid-column:1 / -1; }
.field:where(fieldset) { border:0; padding:0; margin:0; }
label,legend { display:block; margin-bottom:7px; font-size:13px; font-weight:700; }
input,select,textarea { width:100%; border:1px solid #bdc8c2; border-radius:5px; padding:11px 12px; background:#fff; color:var(--ink); }
textarea { resize:vertical; }
input:focus,select:focus,textarea:focus { outline:3px solid #cce9de; border-color:var(--green); }
.quick-row { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.choice { min-height:43px; border:1px solid #bdc8c2; background:#fff; border-radius:5px; color:var(--ink); font-weight:700; }
.choice[aria-pressed="true"] { border-color:var(--green); background:var(--soft); color:var(--green-dark); }
.form-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:22px; }
.primary,.secondary { min-height:44px; padding:0 20px; border-radius:5px; font-weight:800; white-space:nowrap; }
.primary { border:1px solid var(--green); background:var(--green); color:white; }
.primary:hover { background:var(--green-dark); }
.secondary { border:1px solid #bdc8c2; background:#fff; color:var(--ink); }
.queue { overflow:hidden; }
.queue-header { align-items:center; padding:20px 20px 14px; }
.eyebrow { color:var(--green); font-size:10px; font-weight:800; }
.queue-header > span { font-size:13px; color:var(--muted); }
.metrics { display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid var(--line); background:#f9fbfa; }
.metrics div { padding:13px 16px; border-right:1px solid var(--line); }
.metrics div:last-child { border-right:0; }
.metrics span,.metrics strong { display:block; }
.metrics span { color:var(--muted); font-size:11px; }
.metrics strong { margin-top:3px; font-size:16px; }
.request-list { max-height:680px; overflow:auto; padding:14px; }
.request-card { padding:16px; border:1px solid var(--line); border-radius:6px; margin-bottom:10px; }
.request-card header { display:flex; justify-content:space-between; gap:12px; }
.request-card h3 { font-size:16px; }
.helper-text { color:var(--muted); font-size:11px; }
.badge { align-self:start; padding:4px 7px; border-radius:4px; background:var(--soft); color:var(--green-dark); font-size:11px; font-weight:800; }
dl { display:grid; grid-template-columns:66px 1fr; gap:7px 10px; margin:15px 0; font-size:13px; }
dt { color:var(--muted); }
dd { margin:0; overflow-wrap:anywhere; }
.card-actions { display:flex; justify-content:flex-end; gap:8px; }
.card-actions form { margin:0; }
.tiny-button { border:1px solid #bdc8c2; background:#fff; border-radius:4px; padding:7px 10px; font-size:12px; }
.tiny-button.danger { color:var(--danger); }
.admin-photo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin:12px 0; }
.admin-photo-grid a { aspect-ratio:1; overflow:hidden; border:1px solid var(--line); border-radius:4px; }
.admin-photo-grid img { width:100%; height:100%; display:block; object-fit:cover; }
.admin-cooking-details { margin:12px 0; padding:12px; border:1px solid #ead8cc; border-radius:5px; background:#fffaf7; }
.admin-cooking-details > strong { font-size:12px; }
.admin-cooking-details dl { margin-bottom:0; }
.empty-state { padding:44px 16px; text-align:center; color:var(--muted); }
.empty-state strong,.empty-state span { display:block; }
.empty-state span { margin-top:5px; font-size:13px; }
@media (max-width:960px) { .workspace { grid-template-columns:1fr; } .request-list { max-height:none; } }
@media (max-width:600px) { .app-shell { padding:14px; } .topbar { align-items:flex-start; } .brand p { display:none; } .workspace { gap:14px; } .panel { padding:17px; } .panel-header { display:block; } .estimate-box { margin-top:14px; width:100%; } .form-grid { grid-template-columns:1fr; } .field.full { grid-column:auto; } .quick-row { grid-template-columns:1fr 1fr; } .form-actions { display:grid; grid-template-columns:1fr 1fr; } .metrics div { padding:11px; } }

/* Customer request screen */
.customer-body { background:#fff; }
.customer-shell { width:min(920px,100%); margin:auto; padding:22px 24px 48px; }
.customer-header { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.customer-brand { display:flex; align-items:center; gap:11px; color:var(--ink); text-decoration:none; font-weight:800; }
.customer-brand .brand-mark { width:39px; }
.site-logo { display:block; width:150px; height:auto; }
.customer-brand { flex:none; }
.open-status { display:flex; align-items:center; gap:7px; color:var(--green-dark); font-size:13px; font-weight:700; }
.open-status i { width:8px; height:8px; border-radius:50%; background:#26a679; }
.success-panel { display:flex; flex-direction:column; gap:3px; margin-top:20px; padding:16px 18px; border:1px solid #9fd0bd; border-radius:7px; background:#e8f7f1; color:#07513d; }
.success-panel span { font-size:13px; }
.order-intro { padding:58px 0 35px; max-width:650px; }
.order-intro h1 { margin-top:7px; font-size:clamp(38px,7vw,64px); line-height:1.15; }
.order-intro p { margin-top:17px; color:var(--muted); line-height:1.8; }
.customer-form { display:grid; gap:16px; }
.order-step { padding:25px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.step-heading { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.step-heading > span { width:34px; aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:#fff; font-weight:800; }
.step-heading h2 { font-size:18px; }
.step-heading p { margin-top:2px; color:var(--muted); font-size:12px; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.service-choice { min-width:0; padding:17px 13px; border:1px solid #c7d0cc; border-radius:6px; background:#fff; text-align:left; }
.service-choice b,.service-choice small,.service-choice strong { display:block; }
.service-choice b { font-size:15px; }
.service-choice small { min-height:34px; margin-top:5px; color:var(--muted); font-size:11px; line-height:1.5; }
.service-choice strong { margin-top:10px; color:var(--green-dark); font-size:13px; }
.service-choice[aria-pressed="true"] { border:2px solid var(--green); padding:16px 12px; background:var(--soft); }
.two-column-step { display:grid; grid-template-columns:1fr 270px; gap:25px; align-items:center; }
.compact-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.compact-fields label,.customer-fields label { font-size:13px; font-weight:700; }
.compact-fields select,.customer-fields input,.customer-fields select,.customer-fields textarea { margin-top:7px; }
.customer-estimate { padding:20px; border-left:1px solid var(--line); }
.customer-estimate span,.customer-estimate strong,.customer-estimate small { display:block; }
.customer-estimate span { color:var(--muted); font-size:12px; }
.customer-estimate strong { margin:6px 0; font-size:30px; }
.customer-estimate small { color:var(--muted); font-size:10px; line-height:1.5; }
.customer-fields { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.customer-fields .wide { grid-column:1 / -1; }
.request-submit { position:sticky; bottom:14px; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:15px 16px 15px 20px; border:1px solid #263b32; border-radius:8px; background:rgba(23,33,29,.97); color:#fff; box-shadow:0 10px 30px rgba(23,33,29,.18); }
.request-submit span,.request-submit strong { display:block; }
.request-submit span { color:#b9c7c1; font-size:10px; }
.request-submit strong { margin-top:3px; }
.request-submit em { font-style:normal; }
.onepush-button { min-height:50px; border:0; border-radius:6px; padding:0 25px; background:#29a97b; color:#fff; font-weight:800; }
.onepush-button:hover { background:#35b98a; }
.customer-footer { padding-top:24px; text-align:center; }
.customer-footer a { color:#87918d; font-size:12px; }
@media (max-width:720px) { .customer-shell { padding:16px 14px 34px; } .order-intro { padding:42px 2px 26px; } .order-intro h1 { font-size:40px; } .service-grid { grid-template-columns:1fr 1fr; } .two-column-step { grid-template-columns:1fr; } .customer-estimate { border-left:0; border-top:1px solid var(--line); padding:18px 0 0; } .customer-fields { grid-template-columns:1fr; } .customer-fields .wide { grid-column:auto; } .request-submit { align-items:stretch; flex-direction:column; } .onepush-button { width:100%; } }
@media (max-width:420px) { .customer-brand > span:last-child { font-size:13px; } .open-status { font-size:11px; } .order-step { padding:19px; } .compact-fields { grid-template-columns:1fr; } }

/* One-push request app */
.push-app { width:min(1120px,100%); min-height:100vh; margin:auto; padding:24px 28px 44px; }
.push-header { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:18px; }
.push-header .customer-brand { justify-self:start; }
.push-header .open-status { justify-self:center; }
.push-header .header-auth { justify-self:end; }
.header-auth { display:flex; align-items:center; gap:8px; }
.header-auth-button { min-height:36px; padding:0 13px; border:1px solid #b8c5bf; border-radius:5px; background:#fff; color:var(--ink); font-size:12px; font-weight:800; }
.header-auth-button.primary { border-color:var(--green); background:var(--green); color:#fff; }
.account-avatar { position:relative; display:inline-grid; width:34px; height:34px; padding:0; place-items:center; border:1px solid #357762; border-radius:50%; background:var(--green); color:transparent; font-size:0; cursor:pointer; overflow:hidden; }
.account-avatar::after { content:attr(data-account-initial); color:#fff; font-size:14px; font-weight:900; line-height:1; }
.account-avatar:has(img)::after { display:none; }
.account-avatar img { width:100%; height:100%; object-fit:cover; }
.account-avatar span { display:none; }
.account-logout-icon { position:relative; display:inline-grid; width:34px; height:34px; place-items:center; padding:0; border:0; border-radius:50%; background:transparent; color:transparent; font-size:0; cursor:pointer; overflow:hidden; }
.account-logout-icon::after { content:""; position:absolute; top:50%; left:50%; width:25px; height:25px; background:url("logout-icon.png") center/contain no-repeat; transform:translate(-50%,-50%); }
.account-logout-icon:hover { background:#edf5f1; }
.account-avatar:focus-visible,.account-logout-icon:focus-visible { outline:3px solid rgba(37,126,96,.25); outline-offset:2px; }
.profile-dialog { width:min(560px,calc(100% - 28px)); padding:0; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); box-shadow:0 18px 55px rgba(20,39,33,.2); }
.profile-dialog::backdrop { background:rgba(20,31,27,.48); }
.profile-form { padding:24px; }
.profile-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.profile-dialog-header h2 { margin:0; font-size:22px; }
.profile-dialog-header p { margin:4px 0 0; color:var(--muted); font-size:13px; }
.dialog-close { width:34px; height:34px; padding:0; border:0; border-radius:50%; background:#f1f4f2; color:var(--ink); font-size:21px; cursor:pointer; }
.avatar-editor { display:grid; grid-template-columns:56px 1fr auto; align-items:center; gap:13px; margin-top:22px; padding:14px; border:1px solid var(--line); border-radius:6px; cursor:pointer; }
.avatar-editor strong,.avatar-editor small { display:block; }
.avatar-editor small { margin-top:3px; color:var(--muted); font-size:11px; }
.avatar-preview { position:relative; display:grid; width:56px; height:56px; place-items:center; border:1px solid #357762; border-radius:50%; background:var(--green); overflow:hidden; }
.avatar-preview::after { content:attr(data-account-initial); color:#fff; font-weight:900; }
.avatar-preview:has(img)::after { display:none; }
.avatar-preview img { width:100%; height:100%; object-fit:cover; }
.avatar-select { padding:8px 10px; border:1px solid #b8c5bf; border-radius:5px; font-size:12px; font-weight:800; }
.profile-fields { display:grid; grid-template-columns:1fr 1fr; gap:15px; margin-top:18px; }
.profile-fields label { min-width:0; font-size:12px; font-weight:800; }
.profile-fields input,.profile-fields select { width:100%; margin-top:6px; }
.profile-fields small { display:block; margin-top:5px; color:var(--muted); font-size:10px; font-weight:500; }
.profile-fields-heading { grid-column:1 / -1; margin:7px 0 -2px; padding-top:14px; border-top:1px solid var(--line); font-size:13px; }
.profile-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }
.secondary-button { padding:0 16px; border:1px solid #b8c5bf; border-radius:5px; background:#fff; color:var(--ink); font-weight:800; cursor:pointer; }
@media (max-width:560px) { .profile-form { padding:18px; } .profile-fields { grid-template-columns:1fr; } .avatar-editor { grid-template-columns:50px 1fr; } .avatar-select { grid-column:1 / -1; text-align:center; } }
.confirm-dialog { width:min(620px,calc(100% - 28px)); max-height:calc(100vh - 40px); padding:0; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); box-shadow:0 18px 55px rgba(20,39,33,.2); }
.confirm-dialog::backdrop { background:rgba(20,31,27,.48); }
.confirm-shell { padding:24px; }
.confirm-list { display:grid; grid-template-columns:140px 1fr; margin:22px 0 0; border-top:1px solid var(--line); }
.confirm-list dt,.confirm-list dd { margin:0; padding:12px 8px; border-bottom:1px solid var(--line); }
.confirm-list dt { color:var(--muted); font-size:12px; font-weight:800; }
.confirm-list dd { white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; font-weight:700; }
.confirm-photos { margin-top:18px; }
.confirm-photos > strong { display:block; margin-bottom:9px; font-size:12px; }
.confirm-photos > div { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.confirm-photos figure { margin:0; min-width:0; }
.confirm-photos img { display:block; width:100%; aspect-ratio:1; object-fit:cover; border:1px solid var(--line); border-radius:5px; }
.confirm-photos figcaption { margin-top:4px; overflow:hidden; color:var(--muted); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.confirm-account { margin-top:18px; padding:12px 14px; border:1px solid #bad8cc; border-radius:6px; background:#edf8f3; }
.confirm-account span,.confirm-account strong,.confirm-account small { display:block; }
.confirm-account span { color:var(--green-dark); font-size:10px; }
.confirm-account small { margin-top:2px; color:var(--muted); }
@media (max-width:560px) { .confirm-shell { padding:18px; } .confirm-list { grid-template-columns:100px 1fr; } .confirm-photos > div { grid-template-columns:repeat(3,1fr); } .confirm-dialog .profile-actions { display:grid; grid-template-columns:1fr; } .confirm-dialog .secondary-button,.confirm-dialog .onepush-button { min-height:48px; } }
.push-main { padding-top:68px; }
.push-title { width:min(720px,100%); margin:0 auto 34px; text-align:center; }
.push-title .push-kicker { display:block; color:var(--green-dark); font-size:13px; font-weight:800; }
.push-title h1 { margin-top:8px; font-size:36px; line-height:1.3; }
.push-title p { margin-top:12px; color:var(--muted); font-size:14px; line-height:1.8; }
.service-search { width:min(760px,100%); margin:0 auto 36px; }
.service-search > h2 { margin-bottom:9px; font-size:14px; }
.service-search-form { height:58px; display:grid; grid-template-columns:24px minmax(0,1fr) 44px; align-items:center; gap:9px; padding:6px 7px 6px 17px; border:2px solid #9cb9ad; border-radius:7px; background:#fff; box-shadow:0 5px 18px rgba(23,33,29,.06); }
.service-search-form:focus-within { border-color:var(--green); box-shadow:0 0 0 3px rgba(15,122,95,.1); }
.service-search-form > svg { width:21px; color:#62736c; }
.service-search-form input { min-width:0; height:100%; padding:0; border:0; outline:0; background:transparent; color:var(--ink); font-size:15px; }
.service-search-form input::placeholder { color:#8b9691; }
.service-search-form input::-webkit-search-cancel-button { display:none; }
.service-search-submit { width:44px; height:44px; display:grid; place-items:center; padding:0; border:0; border-radius:6px; background:var(--green); color:#fff; }
.service-search-submit:hover,.service-search-submit:focus-visible { background:var(--green-dark); }
.service-search-submit svg { width:20px; height:20px; }
.popular-searches { display:flex; align-items:center; flex-wrap:wrap; gap:7px 13px; margin-top:10px; }
.popular-searches > span { color:var(--muted); font-size:11px; font-weight:700; }
.popular-searches button { padding:2px 0; border:0; border-bottom:1px solid #aebbb5; background:transparent; color:#40534b; font-size:11px; }
.popular-searches button:hover,.popular-searches button:focus-visible { border-color:var(--green); color:var(--green-dark); }
.service-search-results { margin-top:15px; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:0 10px 30px rgba(23,33,29,.08); overflow:hidden; }
.service-search-results[hidden] { display:none; }
.search-results-heading { display:flex; align-items:center; justify-content:space-between; padding:12px 15px; border-bottom:1px solid var(--line); background:#f6f8f7; }
.search-results-heading strong { font-size:12px; }
.search-results-heading span { color:var(--muted); font-size:11px; }
.search-results-list { display:grid; }
.search-result-button { position:relative; min-height:76px; display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; gap:14px; padding:13px 45px 13px 15px; border:0; border-bottom:1px solid #e5eae7; background:#fff; color:var(--ink); text-align:left; }
.search-result-button:last-child { border-bottom:0; }
.search-result-button::after { content:"→"; position:absolute; right:18px; color:var(--green); font-size:18px; }
.search-result-button:hover,.search-result-button:focus-visible { background:#f1f8f5; }
.search-result-category { color:var(--green-dark); font-size:10px; font-weight:800; }
.search-result-button strong,.search-result-button small { display:block; }
.search-result-button strong { font-size:14px; }
.search-result-button small { margin-top:4px; color:var(--muted); font-size:11px; line-height:1.45; }
.search-empty { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px; }
.search-empty p { color:var(--muted); font-size:12px; line-height:1.6; }
.search-consult-button { flex:none; min-height:40px; padding:0 14px; border:1px solid var(--green); border-radius:5px; background:#fff; color:var(--green-dark); font-size:12px; font-weight:800; }
.search-consult-button:hover,.search-consult-button:focus-visible { background:var(--soft); }
.category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.category-button { min-width:0; min-height:138px; display:grid; grid-template-columns:58px minmax(0,1fr) 20px; align-items:center; gap:14px; padding:20px; border:1px solid #d3dad6; border-radius:8px; background:#fff; color:var(--ink); text-align:left; transition:border-color .18s,box-shadow .18s,transform .18s; }
.category-button:hover { border-color:#8eb5a6; box-shadow:0 8px 24px rgba(23,33,29,.08); transform:translateY(-2px); }
.category-button.is-active { border:2px solid var(--green); padding:19px; background:#f1f9f6; box-shadow:0 8px 24px rgba(15,122,95,.1); }
.category-icon { width:58px; aspect-ratio:1; display:grid; place-items:center; border-radius:8px; background:#e4ece8; color:#33463e; }
.category-icon svg { width:27px; height:27px; stroke-width:1.8; }
.category-button.home .category-icon { background:#dff0f5; color:#17657a; }
.category-button.life .category-icon { background:#e2f1e8; color:#2c7049; }
.category-button.vehicle .category-icon { background:#fff0d8; color:#8b5a10; }
.category-button.digital .category-icon { background:#e8edfa; color:#425e9a; }
.category-button.legal .category-icon { background:#f3e8f1; color:#805273; }
.category-button.pet .category-icon { background:#fae8e5; color:#9a4e43; }
.category-copy { min-width:0; }
.category-copy strong,.category-copy small { display:block; }
.category-copy strong { font-size:16px; line-height:1.45; }
.category-copy small { margin-top:7px; color:var(--muted); font-size:11px; line-height:1.55; }
.category-arrow { width:18px; color:#84918b; }
.category-button.is-active .category-arrow { color:var(--green); transform:rotate(90deg); }
.subservice-panel { margin-top:34px; padding-top:28px; border-top:1px solid var(--line); }
.subservice-panel[hidden],.request-details[hidden] { display:none; }
.subservice-heading { margin-bottom:18px; }
.subservice-heading span { color:var(--green-dark); font-size:11px; font-weight:800; }
.subservice-heading h2 { margin-top:4px; font-size:22px; }
.subservice-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:10px; }
.subservice-grid button { min-width:0; min-height:118px; display:grid; grid-template-columns:42px minmax(0,1fr); align-items:start; gap:13px; padding:17px; border:1px solid #d1d9d5; border-radius:7px; background:#fff; color:var(--ink); text-align:left; }
.subservice-grid button:hover { border-color:#7fae9c; background:#f7fbf9; }
.subservice-grid button.is-selected { border-color:var(--green); background:#eaf6f1; box-shadow:inset 0 0 0 1px var(--green); }
.service-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:7px; background:#edf2ef; color:#426156; }
.service-icon svg { width:21px; height:21px; stroke-width:1.8; }
.subservice-grid button > span:last-child { min-width:0; }
.subservice-grid strong,.subservice-grid small { display:block; }
.subservice-grid strong { font-size:14px; line-height:1.45; }
.subservice-grid small { margin-top:6px; color:var(--muted); font-size:11px; font-weight:500; line-height:1.55; }
.service-providers { margin-top:18px; padding:20px; border-left:4px solid var(--green); background:#f4faf7; }
.service-providers[hidden],.service-reviews[hidden] { display:none; }
.service-providers-heading { display:flex; align-items:end; justify-content:space-between; gap:15px; }
.service-providers-heading span { color:var(--green-dark); font-size:9px; font-weight:800; }
.service-providers-heading h2 { margin-top:3px; font-size:18px; }
.service-providers-heading > strong { flex:none; color:var(--green-dark); font-size:12px; }
.service-provider-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-top:13px; }
.service-provider-list article { display:grid; grid-template-columns:58px minmax(0,1fr); align-items:center; gap:11px; min-width:0; padding:13px; border:1px solid #cfe1d9; border-radius:6px; background:#fff; }
.service-provider-avatar { display:grid; width:58px; height:58px; place-items:center; border:1px solid #3b806a; border-radius:50%; background:var(--green); color:#fff; font-size:19px; font-weight:900; overflow:hidden; }
.service-provider-avatar img { width:100%; height:100%; object-fit:cover; }
.service-provider-list article > div { min-width:0; }
.service-provider-list article strong { display:block; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
.service-provider-rating { display:block; margin-top:4px; color:#c98700; font-size:11px; font-weight:900; letter-spacing:0; }
.service-provider-rating.is-empty { color:#78847f; font-weight:700; }
.service-provider-list article small { display:block; margin-top:4px; color:var(--green-dark); font-size:9px; line-height:1.5; }
.service-provider-list article p { display:-webkit-box; margin-top:5px; color:var(--muted); font-size:10px; line-height:1.55; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.service-provider-empty { grid-column:1 / -1; margin:0; padding:15px; border:1px solid #cfe1d9; border-radius:6px; background:#fff; color:var(--muted); font-size:12px; text-align:center; }
.service-reviews { margin-top:18px; padding:20px; border-left:4px solid #d8a931; background:#fffdf7; }
.service-reviews-heading { display:flex; align-items:end; justify-content:space-between; gap:15px; }
.service-reviews-heading span { color:#87610e; font-size:9px; font-weight:800; }
.service-reviews-heading h2 { margin-top:3px; font-size:18px; }
.service-reviews-heading > strong { flex:none; color:#6f500d; font-size:12px; }
.service-review-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-top:13px; }
.service-review-list article { min-width:0; padding:13px; border:1px solid #e6d8af; border-radius:6px; background:#fff; }
.service-review-list strong,.service-review-list small { display:block; }
.service-review-list strong { color:#79570e; font-size:11px; }
.service-review-list .review-stars { color:#d99b00; font-size:17px; line-height:1; letter-spacing:0; }
.service-review-list p { margin-top:7px; font-size:12px; line-height:1.65; overflow-wrap:anywhere; }
.service-review-list small { margin-top:8px; color:var(--muted); font-size:9px; }
.service-review-list .service-review-empty { grid-column:1 / -1; margin:0; padding:15px; border:1px solid #e6d8af; border-radius:6px; background:#fff; color:var(--muted); font-size:12px; text-align:center; }
.service-review-provider-reply { display:grid; grid-template-columns:38px minmax(0,1fr); gap:9px; margin-top:12px; padding-top:11px; border-top:1px solid #ece3ca; }
.service-review-provider-avatar { display:grid; width:38px; height:38px; place-items:center; border-radius:50%; background:var(--green); color:#fff; font-size:14px; font-weight:900; overflow:hidden; }
.service-review-provider-avatar img { width:100%; height:100%; object-fit:cover; }
.service-review-provider-reply strong { color:var(--ink); font-size:10px; }
.service-review-provider-reply p { margin-top:3px; color:#4f5d57; font-size:11px; line-height:1.6; }
.request-details { margin-top:18px; padding:26px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.request-details > h2 { margin:26px 0 18px; font-size:19px; }
.selected-request { display:flex; align-items:center; gap:12px; padding:15px 17px; border-radius:6px; background:#e9f5f0; }
.selected-request[hidden] { display:none; }
.photo-upload { margin-top:20px; padding:20px; border:1px solid var(--line); border-radius:7px; background:#fafcfb; }
.photo-upload[hidden] { display:none; }
.cooking-preferences { margin-top:20px; padding:20px; border:1px solid #dfc8b9; border-radius:7px; background:#fffaf7; }
.cooking-preferences[hidden] { display:none; }
.cooking-heading h2 { font-size:17px; }
.cooking-heading p { margin-top:4px; color:var(--muted); font-size:12px; }
.cooking-fields { display:grid; grid-template-columns:1fr 1fr; gap:15px; margin-top:17px; }
.cooking-fields label { margin:0; font-size:13px; font-weight:700; }
.cooking-fields input,.cooking-fields select,.cooking-fields textarea { margin-top:7px; background:#fff; }
.cooking-fields .wide { grid-column:1 / -1; }
.photo-upload-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }
.photo-upload-heading h2 { font-size:17px; }
.photo-upload-heading p { margin-top:4px; color:var(--muted); font-size:12px; }
.photo-upload-heading > span { flex:none; padding:4px 7px; border-radius:4px; background:#e7eee9; color:var(--muted); font-size:10px; font-weight:800; }
.photo-picker { min-height:92px; display:flex; flex-direction:column; align-items:center; justify-content:center; margin-top:15px; border:1px dashed #9baea5; border-radius:6px; background:#fff; cursor:pointer; }
.photo-picker:hover { border-color:var(--green); background:#f3faf7; }
.photo-plus { font-size:24px; color:var(--green); line-height:1; }
.photo-picker strong { margin-top:5px; font-size:13px; }
.photo-picker small { margin-top:2px; color:var(--muted); font-size:10px; }
.photo-preview { display:grid; grid-template-columns:repeat(5,1fr); gap:9px; margin-top:12px; }
.photo-preview:empty { display:none; }
.photo-thumb { position:relative; aspect-ratio:1; overflow:hidden; border:1px solid var(--line); border-radius:5px; background:#edf1ef; }
.photo-thumb img { width:100%; height:100%; display:block; object-fit:cover; }
.photo-thumb button { position:absolute; top:5px; right:5px; width:25px; height:25px; display:grid; place-items:center; border:0; border-radius:50%; background:rgba(23,33,29,.82); color:#fff; font-size:17px; line-height:1; }
.photo-error { margin-top:9px; color:var(--danger); font-size:12px; }
.selected-request span { color:var(--green-dark); font-size:12px; }
.selected-request strong { flex:1; font-size:17px; }
.selected-request button { border:0; background:transparent; color:var(--green-dark); text-decoration:underline; }
.onepush-button.large { display:block; width:100%; min-height:58px; margin-top:20px; font-size:17px; }
@media (max-width:800px) { .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .subservice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:800px) { .service-review-list,.service-provider-list { grid-template-columns:1fr; } }
@media (max-width:620px) { .push-header { grid-template-columns:1fr auto; } .push-header .open-status { display:none; } .push-main { padding-top:46px; } }
@media (max-width:520px) { .push-app { padding:16px 14px 34px; } .push-title { margin-bottom:24px; } .push-title h1 { font-size:28px; } .push-title p { font-size:13px; } .service-search { margin-bottom:30px; } .service-search-form { height:54px; padding-left:13px; } .service-search-form input { font-size:13px; } .popular-searches { gap:7px 11px; } .search-result-button { grid-template-columns:1fr; gap:4px; min-height:84px; padding:13px 42px 13px 14px; } .search-empty { align-items:stretch; flex-direction:column; } .category-grid { gap:8px; } .category-button { min-height:156px; grid-template-columns:1fr; grid-template-rows:48px auto; justify-items:center; gap:10px; padding:14px 8px; text-align:center; } .category-button.is-active { padding:13px 7px; } .category-icon { width:48px; } .category-icon svg { width:23px; height:23px; } .category-arrow { display:none; } .category-copy strong { font-size:13px; } .category-copy small { margin-top:5px; font-size:10px; } .subservice-panel { padding:22px 0 0; } .subservice-heading h2 { font-size:19px; } .subservice-grid { grid-template-columns:1fr; } .subservice-grid button { min-height:104px; } .request-details { padding:18px; } .selected-request { align-items:flex-start; flex-wrap:wrap; } .selected-request strong { flex-basis:70%; } }
@media (max-width:520px) { .push-header { gap:8px; } .customer-brand .brand-mark { width:34px; } .customer-brand > span:last-child { font-size:13px; } .header-auth-button { padding:0 9px; font-size:11px; } }
@media (max-width:520px) { .customer-brand .site-logo { width:118px; } }
@media (max-width:520px) { .destination-options { grid-template-columns:1fr; } .saved-destination,.destination-missing { align-items:flex-start; flex-direction:column; gap:4px; } }
@media (max-width:520px) { .photo-preview { grid-template-columns:repeat(3,1fr); } .photo-upload { padding:15px; } }
@media (max-width:520px) { .cooking-preferences { padding:15px; } .cooking-fields { grid-template-columns:1fr; } .cooking-fields .wide { grid-column:auto; } }

.auth-box { width:min(520px,100%); margin:26px auto 0; }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; padding:4px; border:1px solid var(--line); border-radius:7px; background:#f3f6f4; }
.auth-tab { min-height:44px; border:0; border-radius:5px; background:transparent; color:var(--muted); font-weight:800; }
.auth-tab.is-active { background:#fff; color:var(--ink); box-shadow:0 1px 5px rgba(23,33,29,.12); }
.auth-panel { padding-top:25px; }
.auth-panel[hidden] { display:none; }
.auth-panel > h2 { font-size:21px; }
.auth-panel > p { margin-top:5px; color:var(--muted); font-size:13px; }
.auth-form { display:grid; gap:16px; margin-top:20px; }
.auth-form label { margin:0; }
.auth-form input { margin-top:7px; }
.auth-form label > small { display:block; margin-top:5px; color:var(--muted); font-size:11px; }
.password-field { position:relative; display:block; width:100%; min-width:0; }
.password-field input { padding-right:50px; }
.password-toggle { position:absolute; top:50%; right:8px; display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--muted); cursor:pointer; transform:translateY(-50%); }
.password-toggle:hover,.password-toggle:focus-visible { background:#edf1ef; color:var(--ink); }
.password-toggle span { position:relative; display:block; width:21px; height:13px; border:2px solid currentColor; border-radius:50%; }
.password-toggle span::before { content:""; position:absolute; top:50%; left:50%; width:6px; height:6px; border-radius:50%; background:currentColor; transform:translate(-50%,-50%); }
.password-toggle span::after { content:""; position:absolute; top:50%; left:50%; width:26px; height:2px; border-radius:999px; background:currentColor; transform:translate(-50%,-50%) rotate(-38deg); opacity:0; }
.password-toggle:not(.is-visible) span::after { opacity:1; }
.auth-message { padding:11px 13px; border-radius:5px; background:#e7f6f0; color:var(--green-dark); font-size:13px; }
.local-verification-link { min-height:42px; display:grid; place-items:center; margin-top:10px; padding:0 12px; border-radius:5px; background:var(--green); color:#fff; font-size:12px; font-weight:800; text-decoration:none; }
.auth-message.is-error { background:#fae9e7; color:#8d2e29; }
.member-bar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:20px; padding:14px 16px; border:1px solid #bad8cc; border-radius:6px; background:#edf8f3; }
.member-bar span,.member-bar strong,.member-bar small { display:block; }
.member-bar span { color:var(--green-dark); font-size:10px; }
.member-bar strong { margin-top:2px; }
.member-bar small { color:var(--muted); }
.member-bar button { border:0; background:transparent; color:var(--green-dark); text-decoration:underline; }
.destination-form > h2 { margin:26px 0 18px; font-size:19px; }
.destination-options { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.destination-options label { display:flex; align-items:center; gap:10px; margin:0; padding:13px 14px; border:1px solid #bdc8c2; border-radius:6px; cursor:pointer; }
.destination-options label:has(input:checked) { border-color:var(--green); background:#edf8f3; box-shadow:inset 0 0 0 1px var(--green); }
.destination-options input { width:17px; height:17px; flex:none; margin:0; accent-color:var(--green); }
.destination-options strong,.destination-options small { display:block; }
.destination-options small { margin-top:2px; color:var(--muted); font-size:10px; font-weight:500; }
.saved-destination,.destination-missing { display:flex; justify-content:space-between; gap:16px; margin-top:10px; padding:13px 15px; border-left:3px solid var(--green); background:#f1f8f5; }
.saved-destination span,.destination-missing span { color:var(--muted); font-size:11px; }
.destination-fields { margin-top:13px; }
.destination-note { margin-top:15px; }
.destination-note textarea { margin-top:7px; }
.verify-shell { min-height:100vh; display:grid; place-items:center; padding:20px; }
.verify-card { width:min(480px,100%); padding:38px; border:1px solid var(--line); border-radius:8px; background:#fff; text-align:center; }
.verify-mark { width:52px; aspect-ratio:1; display:grid; place-items:center; margin:0 auto 18px; border-radius:50%; background:var(--soft); color:var(--green-dark); font-size:25px; font-weight:800; }
.verify-card p { margin:12px 0 24px; color:var(--muted); }
.verify-link { display:inline-grid; place-items:center; text-decoration:none; }

/* Member page */
.mypage-body { background:#f3f6f4; }
.mypage-shell { width:min(1100px,100%); min-height:100vh; margin:auto; padding:24px 28px 60px; }
.mypage-header { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.mypage-header-actions { display:flex; align-items:center; gap:9px; }
.mypage-header-actions button,.mypage-new-request,.mypage-profile-button { min-height:39px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:0 13px; border:1px solid #b7c4be; border-radius:5px; background:#fff; color:var(--ink); font-size:12px; font-weight:800; text-decoration:none; }
.mypage-new-request { border-color:var(--green); background:var(--green); color:#fff; }
.mypage-new-request svg,.mypage-profile-button svg { width:15px; height:15px; }
.mypage-welcome { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:34px; padding:26px 0; border-block:1px solid #cdd7d2; }
.mypage-notice,.mypage-error { margin:18px 0 0; }
.mypage-error { padding:12px 16px; border:1px solid #e1b4b1; border-radius:6px; background:#fff1f0; color:var(--danger); font-size:13px; }
.mypage-identity { min-width:0; display:flex; align-items:center; gap:16px; }
.mypage-avatar { position:relative; flex:none; width:68px; height:68px; display:grid; place-items:center; border:1px solid #357762; border-radius:50%; background:var(--green); overflow:hidden; }
.mypage-avatar::after { content:attr(data-account-initial); color:#fff; font-size:25px; font-weight:900; }
.mypage-avatar:has(img)::after { display:none; }
.mypage-avatar img { width:100%; height:100%; object-fit:cover; }
.mypage-identity > div > span { color:var(--green-dark); font-size:11px; font-weight:800; }
.mypage-identity h1 { margin-top:3px; font-size:25px; }
.mypage-identity p { margin-top:4px; color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.mypage-summary { display:grid; grid-template-columns:repeat(3,1fr); margin-top:20px; border:1px solid var(--line); border-radius:7px; background:#fff; overflow:hidden; }
.mypage-contact { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:20px; padding:15px 17px; border-left:3px solid var(--green); background:#fff; }
.mypage-contact span,.mypage-contact strong,.mypage-contact small { display:block; }
.mypage-contact span { color:var(--green-dark); font-size:9px; font-weight:800; }
.mypage-contact strong { margin-top:3px; font-size:13px; }
.mypage-contact small { margin-top:3px; color:var(--muted); font-size:10px; }
.mypage-contact button { flex:none; min-height:36px; padding:0 12px; border:1px solid #b7c4be; border-radius:5px; background:#fff; color:var(--ink); font-size:11px; font-weight:800; }
.mypage-summary > div { padding:17px 19px; border-right:1px solid var(--line); }
.mypage-summary > div:last-child { border-right:0; }
.mypage-summary span,.mypage-summary strong { display:block; }
.mypage-summary span { color:var(--muted); font-size:11px; }
.mypage-summary strong { margin-top:4px; font-size:22px; }
.mypage-requests { margin-top:30px; }
.mypage-section-heading { display:flex; align-items:end; justify-content:space-between; gap:15px; margin-bottom:13px; }
.mypage-section-heading span { color:var(--green); font-size:9px; font-weight:800; }
.mypage-section-heading h2 { margin-top:3px; font-size:20px; }
.mypage-section-heading small { color:var(--muted); }
.mypage-request-list { display:grid; gap:12px; }
.mypage-request-item { padding:19px 20px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.mypage-request-top { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.mypage-category { color:var(--green-dark); font-size:10px; font-weight:800; }
.mypage-request-top h3 { margin-top:3px; font-size:18px; }
.mypage-provider-name { margin-top:4px; color:var(--green-dark); font-size:11px; font-weight:700; }
.request-progress { display:grid; grid-template-columns:repeat(5,1fr); margin:17px 0 0; padding:0; list-style:none; }
.request-progress li { position:relative; display:flex; align-items:center; gap:6px; color:#85918b; font-size:10px; font-weight:700; }
.request-progress li::before { content:""; position:absolute; left:0; right:0; top:10px; height:2px; background:#dbe1de; z-index:0; }
.request-progress li:first-child::before { left:10px; }
.request-progress li:last-child::before { right:calc(100% - 10px); }
.request-progress li span { position:relative; z-index:1; width:21px; height:21px; display:grid; place-items:center; border:2px solid #c6cfca; border-radius:50%; background:#fff; font-size:9px; }
.request-progress li.is-done { color:var(--green-dark); }
.request-progress li.is-done::before { background:#8fc4af; }
.request-progress li.is-done span { border-color:var(--green); background:var(--green); color:#fff; }
.request-quote { display:grid; grid-template-columns:180px 1fr; align-items:center; gap:16px; margin-top:14px; padding:12px 14px; border-left:3px solid #aeb9b4; background:#f5f7f6; }
.request-quote.is-ready { border-left-color:var(--green); background:#edf8f3; }
.request-quote span,.request-quote strong { display:block; }
.request-quote span { color:var(--muted); font-size:9px; }
.request-quote strong { margin-top:2px; font-size:15px; }
.request-quote p { color:#4e5d56; font-size:11px; line-height:1.55; }
.request-candidates { margin-top:14px; padding:14px; border:1px solid #bfd9ce; border-radius:6px; background:#f5faf8; }
.request-candidates-heading { display:flex; align-items:end; justify-content:space-between; gap:14px; }
.request-candidates-heading span { color:var(--green-dark); font-size:9px; font-weight:800; }
.request-candidates-heading h4 { margin-top:2px; font-size:15px; }
.request-candidates-heading > strong { color:var(--green-dark); font-size:12px; }
.request-candidate-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:11px; }
.request-candidate { min-width:0; padding:13px; border:1px solid #d2dfd9; border-radius:6px; background:#fff; }
.request-candidate > header { display:flex; align-items:center; justify-content:space-between; gap:9px; }
.request-candidate-company { display:flex; min-width:0; align-items:center; gap:9px; padding:0; border:0; background:transparent; color:var(--ink); text-align:left; cursor:pointer; }
.request-candidate-company:hover strong,.request-candidate-company:focus-visible strong { color:var(--green-dark); text-decoration:underline; }
.request-candidate-company > span:last-child { min-width:0; }
.request-candidate-company strong,.request-candidate-company small { display:block; }
.request-candidate-company strong { font-size:13px; overflow-wrap:anywhere; }
.request-candidate-company small { margin-top:2px; color:var(--muted); font-size:8px; }
.request-candidate-avatar { display:grid; width:44px; height:44px; flex:none; place-items:center; border-radius:50%; background:var(--green); color:#fff; font-weight:900; overflow:hidden; }
.request-candidate-avatar.large { width:64px; height:64px; font-size:20px; }
.request-candidate-avatar img { width:100%; height:100%; object-fit:cover; }
.request-candidate-rating { flex:none; padding:5px 6px; border:0; border-radius:4px; background:#fff9e9; color:#b77b00; font-size:10px; font-weight:800; cursor:pointer; }
.request-candidate-rating:hover,.request-candidate-rating:focus-visible { background:#fff1c9; }
.request-candidate-rating small { display:block; margin-top:2px; color:#766540; font-size:8px; font-weight:600; }
.request-candidate-quote { margin-top:11px; padding-top:10px; border-top:1px solid #e1e7e4; }
.request-candidate-quote > span { display:block; color:var(--muted); font-size:9px; }
.request-candidate-quote > strong { display:block; margin-top:2px; font-size:18px; }
.request-candidate-quote p { margin-top:7px; color:#4e5d56; font-size:11px; line-height:1.6; }
.request-candidate form { margin-top:11px; }
.request-candidate form button { width:100%; min-height:42px; border:1px solid var(--green); border-radius:5px; background:var(--green); color:#fff; font-size:11px; font-weight:800; }
.request-candidate-waiting,.request-candidates-empty { margin-top:10px; padding:10px; background:#f4f6f5; color:var(--muted); font-size:11px; text-align:center; }
.request-candidates-empty { border:1px dashed #c8d2cd; }
.candidate-detail-dialog { width:min(640px,calc(100% - 28px)); max-height:calc(100vh - 36px); padding:0; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); box-shadow:0 18px 55px rgba(20,39,33,.22); }
.candidate-detail-dialog::backdrop { background:rgba(20,31,27,.5); }
.candidate-dialog-shell { padding:22px; }
.candidate-dialog-kicker { display:block; margin-bottom:3px; color:var(--green-dark); font-size:9px; font-weight:800; }
.candidate-company-summary { display:grid; grid-template-columns:64px minmax(0,1fr); align-items:center; gap:13px; margin-top:18px; padding-bottom:16px; border-bottom:1px solid var(--line); }
.candidate-company-summary p { font-size:12px; line-height:1.7; }
.candidate-company-details { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; margin-top:4px; }
.candidate-company-details > div { min-width:0; padding:13px 0; border-bottom:1px solid #e6ebe8; }
.candidate-company-details dt { color:var(--muted); font-size:9px; font-weight:700; }
.candidate-company-details dd { margin-top:4px; font-size:12px; line-height:1.65; overflow-wrap:anywhere; }
.candidate-dialog-close-button { display:block; min-width:110px; min-height:40px; margin:18px 0 0 auto; }
.candidate-review-summary { display:flex; align-items:end; gap:9px; margin-top:18px; padding:13px 14px; border-left:4px solid #d5a226; background:#fffaf0; }
.candidate-review-summary strong { color:#b77900; font-size:22px; }
.candidate-review-summary span { color:var(--muted); font-size:10px; }
.candidate-review-list { display:grid; gap:8px; margin-top:12px; }
.candidate-review-list article { padding:12px 13px; border:1px solid #e4dcc5; border-radius:5px; }
.candidate-review-list .review-stars { color:#d99b00; font-size:16px; letter-spacing:0; }
.candidate-review-list p { margin-top:6px; font-size:12px; line-height:1.65; }
.candidate-review-list small { display:block; margin-top:7px; color:var(--muted); font-size:9px; }
.candidate-review-empty { padding:24px 12px; border:1px dashed #d4dcd8; color:var(--muted); font-size:11px; text-align:center; }
@media (max-width:650px) {
  .request-candidate > header { align-items:flex-start; flex-wrap:wrap; }
  .request-candidate-rating { margin-left:53px; }
  .candidate-dialog-shell { padding:18px; }
  .candidate-company-summary { align-items:start; }
  .candidate-company-details { grid-template-columns:1fr; }
}
.quote-file-link { display:flex; grid-column:1 / -1; align-items:center; gap:6px; width:fit-content; max-width:100%; margin-top:5px; color:#087b66; font-size:12px; font-weight:800; overflow-wrap:anywhere; }
.quote-file-link svg { flex:0 0 auto; width:16px; height:16px; }
.request-confirmation,.provider-workflow { display:flex; align-items:center; gap:14px; margin-top:12px; padding:13px 14px; border:1px solid #bed8cc; border-left:4px solid var(--green); border-radius:5px; background:#f5fbf8; }
.request-confirmation > div,.provider-workflow > div { min-width:0; flex:1; }
.request-confirmation h4,.provider-workflow h4 { margin:0; font-size:13px; }
.request-confirmation p,.provider-workflow p { margin-top:3px; color:var(--muted); font-size:11px; line-height:1.5; }
.request-confirmation form,.provider-workflow form { flex:none; }
.request-confirmation button,.provider-workflow form:not(.provider-cancel-form) button { min-height:40px; padding:0 14px; border:1px solid var(--green); border-radius:5px; background:var(--green); color:#fff; font-size:11px; font-weight:800; }
.confirmation-waiting,.workflow-complete,.request-confirmation.is-confirmed > span { flex:none; padding:8px 10px; border-radius:4px; background:#dfeee7; color:var(--green-dark); font-size:10px; font-weight:800; }
.completion-confirmation { border-color:#d6c594; border-left-color:#a97714; background:#fffaf0; }
.provider-workflow { margin:0; border-width:1px 0 0; border-left-width:4px; border-radius:0; }
.provider-fee-breakdown { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:10px; }
.provider-fee-breakdown > div { padding:8px 9px; border:1px solid #d6e2dc; border-radius:4px; background:#fff; }
.provider-fee-breakdown dt { color:var(--muted); font-size:8px; }
.provider-fee-breakdown dd { margin-top:2px; font-size:12px; font-weight:800; }
.provider-fee-help { display:block; max-width:190px; margin-top:5px; color:var(--muted); font-size:8px; line-height:1.45; text-align:center; }
.provider-fee-paid { display:inline-block; margin-top:8px; color:var(--green-dark); font-size:10px; }
.provider-cancel-form button { min-height:34px; padding:0 10px; border:1px solid #c5ceca; border-radius:4px; background:#fff; color:#68736e; font-size:10px; font-weight:700; }
.provider-quote-summary { display:grid; grid-template-columns:160px 1fr; gap:4px 14px; padding:14px 19px; border-top:1px solid var(--line); background:#f8faf9; }
.provider-quote-summary span { color:var(--muted); font-size:10px; }
.provider-quote-summary strong { font-size:15px; }
.provider-quote-summary p { grid-column:1 / -1; font-size:12px; line-height:1.65; }
.mypage-request-item dl { display:grid; grid-template-columns:1fr 1fr; gap:0; margin:15px 0 0; border-top:1px solid #e8ecea; }
.mypage-request-item dl > div { min-width:0; padding:11px 12px 0 0; }
.mypage-request-item dl > div:last-child { grid-column:1 / -1; }
.mypage-request-item dt { font-size:10px; }
.mypage-request-item dd { margin-top:3px; font-size:12px; line-height:1.6; }
.mypage-photo-list { display:flex; gap:7px; margin-top:13px; }
.mypage-photo-list a { width:64px; aspect-ratio:1; border:1px solid var(--line); border-radius:5px; overflow:hidden; }
.mypage-photo-list img { width:100%; height:100%; display:block; object-fit:cover; }
.request-conversation,.request-review { margin-top:17px; padding-top:16px; border-top:1px solid var(--line); }
.request-conversation h4,.request-review h4,.admin-conversation h3 { margin:0 0 10px; font-size:13px; }
.message-accordion summary { display:flex; align-items:center; gap:8px; min-height:38px; padding:2px 0; color:var(--ink); cursor:pointer; list-style:none; }
.message-accordion summary::-webkit-details-marker { display:none; }
.message-accordion summary span { font-size:13px; font-weight:800; }
.message-accordion summary small { margin-left:auto; color:var(--muted); font-size:10px; font-weight:700; }
.message-accordion summary svg { width:17px; height:17px; color:var(--muted); transition:transform .18s ease; }
.message-accordion[open] summary { margin-bottom:10px; }
.message-accordion[open] summary svg { transform:rotate(180deg); }
.message-thread { display:grid; gap:8px; }
.message-bubble { width:min(82%,620px); padding:10px 12px; border-radius:6px; background:#eef2f0; }
.message-bubble.member { justify-self:end; background:#e5f5ee; }
.request-conversation .message-bubble.provider { justify-self:start; }
.provider-messages .message-bubble.member { justify-self:start; border:1px solid #d9e0dc; background:#fff; }
.provider-messages .message-bubble.provider { justify-self:end; border:1px solid #c5e4d6; background:#e5f5ee; }
.message-bubble span,.message-bubble time { display:block; color:var(--muted); font-size:9px; }
.message-bubble p { margin:4px 0; font-size:12px; line-height:1.55; }
.message-empty { color:var(--muted); font-size:11px; }
.message-form,.admin-message-form { display:grid; grid-template-columns:1fr auto; gap:8px; margin-top:10px; }
.message-form textarea,.admin-message-form textarea { min-height:52px; margin:0; padding:9px 10px; }
.message-form button,.admin-message-form button,.request-review button { min-width:78px; border:1px solid var(--green); border-radius:5px; background:var(--green); color:#fff; font-size:11px; font-weight:800; }
.request-review form { display:grid; grid-template-columns:170px 1fr auto; align-items:end; gap:9px; }
.request-review label { margin:0; font-size:10px; }
.request-review select,.request-review textarea { margin-top:5px; padding:8px 9px; }
.request-review textarea { min-height:67px; }
.review-public-consent { grid-column:1 / -1; display:flex; align-items:flex-start; gap:9px; padding:10px 11px; border:1px solid #d6dfda; border-radius:5px; background:#f8faf9; }
.review-public-consent input { width:17px; height:17px; min-height:0; margin:1px 0 0; accent-color:var(--green); }
.review-public-consent span,.review-public-consent strong,.review-public-consent small { display:block; }
.review-public-consent strong { font-size:11px; }
.review-public-consent small { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.5; }
.request-review form > button { grid-column:3; }
.request-review-provider-reply { display:grid; grid-template-columns:38px minmax(0,1fr); gap:10px; margin-top:13px; padding:12px; border-left:3px solid var(--green); background:#f3f8f5; }
.request-review-provider-reply strong { display:block; font-size:11px; }
.request-review-provider-reply p { margin-top:4px; font-size:12px; line-height:1.65; }
.mypage-empty { padding:65px 20px; border:1px solid var(--line); border-radius:7px; background:#fff; text-align:center; }
.mypage-empty svg { width:30px; height:30px; color:#6d7d75; }
.mypage-empty strong,.mypage-empty p { display:block; }
.mypage-empty strong { margin-top:11px; }
.mypage-empty p { margin-top:5px; color:var(--muted); font-size:12px; }
.mypage-empty a { display:inline-grid; min-height:40px; margin-top:18px; padding:0 16px; place-items:center; border-radius:5px; background:var(--green); color:#fff; font-size:12px; font-weight:800; text-decoration:none; }
@media (max-width:650px) { .mypage-shell { padding:18px 14px 42px; } .mypage-header { align-items:flex-start; } .mypage-header-actions { align-items:stretch; flex-direction:column; } .mypage-header-actions button,.mypage-new-request { min-height:35px; } .mypage-welcome { align-items:stretch; flex-direction:column; margin-top:22px; } .mypage-avatar { width:52px; height:52px; } .mypage-avatar::after { font-size:20px; } .mypage-identity { gap:12px; } .mypage-identity h1 { font-size:19px; } .mypage-profile-button { width:100%; } .mypage-contact { align-items:stretch; flex-direction:column; } .mypage-contact button { width:100%; } .mypage-summary > div { padding:14px 11px; } .mypage-summary strong { font-size:19px; } .mypage-request-item { padding:16px; } .request-progress li { display:grid; justify-items:start; gap:3px; } .request-progress li::before { top:10px; } .request-quote,.request-candidate-list { grid-template-columns:1fr; gap:5px; } .mypage-request-item dl { grid-template-columns:1fr; } .mypage-request-item dl > div:last-child { grid-column:auto; } .message-form,.admin-message-form { grid-template-columns:1fr; } .message-form button,.admin-message-form button { min-height:39px; } .request-review form { grid-template-columns:1fr; } .request-review button,.request-review form > button { min-height:42px; grid-column:auto; } }
@media (max-width:650px) { .request-confirmation,.provider-workflow { align-items:stretch; flex-direction:column; } .request-confirmation form,.request-confirmation button,.provider-workflow form:not(.provider-cancel-form),.provider-workflow form:not(.provider-cancel-form) button { width:100%; } .confirmation-waiting,.workflow-complete,.request-confirmation.is-confirmed > span { text-align:center; } .provider-cancel-form { align-self:flex-end; } .provider-quote-summary { grid-template-columns:1fr; } .provider-quote-summary p { grid-column:auto; } .provider-fee-breakdown { grid-template-columns:1fr; } .provider-fee-help { max-width:none; } }

/* Provider portal */
.provider-body { background:#f2f5f3; }
.provider-auth-shell { width:min(560px,100%); min-height:100vh; margin:auto; padding:28px 18px 50px; }
.provider-auth-panel { margin-top:24px; padding:27px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.provider-auth-panel h1 { margin-top:5px; font-size:25px; }
.provider-auth-panel > p { margin-top:7px; color:var(--muted); font-size:12px; line-height:1.7; }
.provider-auth-tabs { display:grid; grid-template-columns:1fr 1fr; margin:21px 0 18px; border-bottom:1px solid var(--line); }
.provider-auth-tabs button { padding:11px; border:0; border-bottom:3px solid transparent; background:transparent; font-weight:800; }
.provider-auth-tabs button.is-active { border-bottom-color:var(--green); color:var(--green-dark); }
.provider-auth-panel form { display:grid; gap:14px; }
.provider-auth-panel form label { margin:0; }
.provider-auth-panel form input,.provider-auth-panel form select { margin-top:6px; }
.provider-signup-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.provider-signup-grid .wide { grid-column:1 / -1; }
.provider-signup-grid small { display:block; margin-top:4px; color:var(--muted); font-size:10px; }
.provider-check-field { min-width:0; margin:0; padding:13px; border:1px solid #c7d0cc; border-radius:6px; }
.provider-check-field legend { padding:0 5px; color:var(--ink); font-size:12px; font-weight:800; }
.provider-check-field legend small { display:inline; margin-left:4px; font-weight:500; }
.provider-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.provider-check-grid.area-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.provider-check-grid label { display:flex; align-items:center; gap:7px; min-width:0; min-height:36px; margin:0; padding:7px 8px; border:1px solid #d7dfdb; border-radius:4px; background:#fff; cursor:pointer; }
.provider-check-grid input { width:16px; height:16px; min-height:0; margin:0 !important; accent-color:var(--green); }
.provider-check-grid span { min-width:0; font-size:10px; font-weight:700; overflow-wrap:anywhere; }
.provider-check-grid label:has(input:checked) { border-color:var(--green); background:var(--soft); color:var(--green-dark); }
.provider-service-groups { display:grid; gap:16px; }
.provider-service-groups section { min-width:0; }
.provider-service-groups section > strong { display:block; margin-bottom:7px; color:var(--green-dark); font-size:11px; }
.provider-profile-dialog { width:min(760px,calc(100% - 28px)); }
.provider-shell { width:min(1220px,100%); min-height:100vh; margin:auto; padding:24px 28px 60px; }
.provider-header { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.provider-header > div { display:flex; gap:8px; }
.provider-header button { min-height:38px; padding:0 12px; border:1px solid #b7c4be; border-radius:5px; background:#fff; font-size:11px; font-weight:800; }
.provider-welcome { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:25px; padding:24px 0; border-block:1px solid #ccd6d1; }
.provider-welcome-identity { display:flex; align-items:center; gap:14px; min-width:0; }
.provider-welcome-identity > div > span,.provider-section-heading span { color:var(--green-dark); font-size:9px; font-weight:800; }
.provider-avatar { display:grid; flex:0 0 auto; width:58px; height:58px; place-items:center; border:1px solid #3b806a; border-radius:50%; background:var(--green); overflow:hidden; }
.provider-avatar::after { content:attr(data-provider-initial); color:#fff; font-size:20px; font-weight:900; }
.provider-avatar:has(img)::after { display:none; }
.provider-avatar img { width:100%; height:100%; object-fit:cover; }
.provider-welcome h1 { margin-top:3px; font-size:24px; }
.provider-welcome p { margin-top:4px; color:var(--muted); font-size:12px; }
.provider-approval { padding:7px 10px; border-radius:4px; font-size:11px; font-weight:800; }
.provider-approval.status-approved { background:#e1f3ea; color:#116147; }
.provider-approval.status-pending { background:#fff0d7; color:#80530d; }
.provider-pending { margin-top:20px; padding:22px; border:1px solid #e7c98e; border-radius:7px; background:#fffaf0; }
.provider-pending p { margin-top:5px; color:var(--muted); font-size:12px; }
.provider-metrics { display:grid; grid-template-columns:180px 180px 1fr; margin-top:18px; border:1px solid var(--line); border-radius:7px; background:#fff; overflow:hidden; }
.provider-metrics > div { min-width:0; padding:15px 17px; border-right:1px solid var(--line); }
.provider-metrics > div:last-child { border-right:0; }
.provider-metrics span,.provider-metrics strong { display:block; }
.provider-metrics span { color:var(--muted); font-size:9px; }
.provider-metrics strong { margin-top:4px; font-size:18px; overflow-wrap:anywhere; }
.provider-section { margin-top:28px; }
.provider-section-heading { display:flex; align-items:end; justify-content:space-between; gap:15px; margin-bottom:12px; }
.provider-section-heading h2 { margin-top:3px; font-size:20px; }
.provider-section-heading small { color:var(--muted); font-size:10px; }
.provider-leads,.provider-job-list { display:grid; gap:11px; }
.provider-lead { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:15px 22px; padding:17px 19px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.provider-lead.is-candidate { border-color:#9fc8b7; }
.provider-lead-main { min-width:0; }
.provider-lead span { color:var(--green-dark); font-size:10px; font-weight:800; }
.provider-lead h3 { margin-top:2px; font-size:17px; }
.provider-lead p { margin-top:6px; color:#4e5b55; font-size:12px; line-height:1.5; }
.provider-lead-photo-block { margin-top:12px; }
.provider-lead-photo-block > strong { display:block; margin-bottom:7px; font-size:10px; }
.provider-lead-photos { display:flex; flex-wrap:wrap; gap:7px; }
.provider-lead-photos a { display:block; width:82px; aspect-ratio:1; overflow:hidden; border:1px solid #c5d2cc; border-radius:5px; background:#edf2ef; }
.provider-lead-photos a:hover,.provider-lead-photos a:focus-visible { border-color:var(--green); box-shadow:0 0 0 2px rgba(18,129,95,.14); }
.provider-lead-photos img { display:block; width:100%; height:100%; object-fit:cover; }
.provider-lead time { display:block; margin-top:5px; color:var(--muted); font-size:9px; }
.provider-candidate-entry { flex:none; }
.provider-candidate-badge { align-self:start; padding:7px 9px; border-radius:4px; background:#dff1e9; color:var(--green-dark) !important; font-size:10px !important; }
.provider-candidate-quote { display:grid; grid-column:1 / -1; grid-template-columns:180px minmax(0,1fr) auto; align-items:end; gap:11px; padding-top:15px; border-top:1px solid #dce7e2; }
.provider-candidate-quote label { margin:0; color:var(--ink); font-size:12px; font-weight:800; }
.provider-candidate-quote input,.provider-candidate-quote textarea { width:100%; min-height:44px; margin-top:6px; padding:9px 10px; background:#fff; font-size:14px; }
.provider-candidate-quote textarea { min-height:92px; resize:vertical; }
.provider-candidate-quote .candidate-quote-note { grid-column:2 / -1; }
.candidate-quote-file { grid-column:1 / 3; }
.candidate-quote-file small { color:var(--muted); font-size:10px; font-weight:500; }
.candidate-quote-file input[type="file"] { min-height:0; border:1px dashed #afbeb7; font-size:11px; font-weight:500; }
.candidate-quote-file > span { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:6px; padding:7px 9px; background:#f4f8f6; }
.candidate-quote-file > span a { color:var(--green-dark); font-size:11px; font-weight:700; overflow-wrap:anywhere; }
.candidate-quote-file > span label { display:flex; align-items:center; gap:5px; font-size:10px; }
.candidate-quote-file > span input { width:15px; min-height:15px; margin:0; }
.provider-lead button,.provider-status-form button,.provider-quote-form button { min-height:39px; padding:0 13px; border:1px solid var(--green); border-radius:5px; background:var(--green); color:#fff; font-size:11px; font-weight:800; }
.provider-empty { padding:45px 18px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--muted); text-align:center; font-size:12px; }
.provider-job { border:1px solid var(--line); border-radius:7px; background:#fff; overflow:hidden; }
.provider-job > header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:17px 19px; border-bottom:1px solid var(--line); }
.provider-job > header span:first-child { color:var(--green-dark); font-size:9px; font-weight:800; }
.provider-job > header h3 { margin-top:3px; font-size:18px; }
.provider-job > header p { margin-top:4px; color:var(--muted); font-size:11px; }
.provider-job-detail { display:grid; grid-template-columns:1fr auto; align-items:center; gap:20px; padding:16px 19px; }
.provider-job-detail dl { margin:0; }
.provider-job-detail a { color:var(--green-dark); }
.provider-address { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.provider-map-link { display:inline-grid; width:32px; height:32px; flex:none; place-items:center; border:1px solid #aac6b9; border-radius:5px; background:#fff; color:var(--green-dark); }
.provider-map-link:hover { border-color:var(--green); background:var(--soft); }
.provider-map-link svg { width:17px; height:17px; }
.provider-status-form { display:flex; align-items:end; gap:7px; }
.provider-status-form label { margin:0; color:var(--muted); font-size:9px; }
.provider-status-form select { min-width:115px; margin-top:4px; padding:8px; }
.provider-quote-form { display:grid; grid-template-columns:180px minmax(0,1fr) auto; align-items:end; gap:12px; padding:16px 19px; border-top:1px solid var(--line); background:#f8faf9; }
.provider-quote-form label { margin:0; color:var(--ink); font-size:13px; font-weight:800; line-height:1.45; }
.provider-quote-form input,.provider-quote-form textarea { width:100%; min-height:46px; margin-top:6px; padding:10px 12px; color:var(--ink); background:#fff; font-size:15px; font-weight:600; line-height:1.5; }
.provider-quote-form textarea { min-height:120px; resize:vertical; }
.provider-quote-form .quote-detail-field { grid-column:2 / -1; }
.provider-quote-form .quote-file-field { grid-column:1 / 3; min-width:0; }
.quote-file-field > label { display:block; }
.quote-file-field small { margin-left:5px; color:var(--muted); font-size:11px; font-weight:500; }
.provider-quote-form input[type="file"] { min-height:0; padding:9px; border:1px dashed #aebdb6; font-size:12px; font-weight:500; }
.quote-current-file { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; padding:8px 10px; border:1px solid #d6e3dd; border-radius:5px; background:#fff; }
.quote-current-file a { display:flex; min-width:0; align-items:center; gap:5px; color:#087b66; font-size:12px; font-weight:700; overflow-wrap:anywhere; }
.quote-current-file svg { flex:0 0 auto; width:15px; height:15px; }
.quote-current-file label { display:flex; flex:0 0 auto; align-items:center; gap:5px; font-size:11px; font-weight:600; }
.quote-current-file input[type="checkbox"] { width:16px; min-height:16px; margin:0; padding:0; }
.admin-quote-file { margin:0 0 13px; }
.provider-messages { padding:16px 19px; border-top:1px solid var(--line); }
.provider-messages h4 { margin:0 0 10px; font-size:12px; }
.provider-messages.message-accordion summary span { font-size:12px; }
.provider-review { padding:16px 19px; border-top:1px solid var(--line); background:#fffdf7; }
.provider-review-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.provider-review h4 { margin:0; font-size:13px; }
.provider-review-heading strong { flex:none; padding:6px 9px; border-radius:4px; background:#fff0c7; color:#78540d; font-size:11px; }
.provider-review blockquote { margin:10px 0 0; padding:11px 13px; border-left:3px solid #d9ad43; background:#fff; color:var(--ink); font-size:12px; line-height:1.7; }
.provider-review time { display:block; margin-top:6px; color:var(--muted); font-size:9px; }
.provider-review-saved-reply { margin-top:12px; padding:11px 13px; border-left:3px solid var(--green); background:#f3f8f5; }
.provider-review-saved-reply strong { font-size:10px; }
.provider-review-saved-reply p { margin-top:4px; font-size:12px; line-height:1.65; }
.provider-review-reply-form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:9px; margin-top:13px; padding-top:13px; border-top:1px solid #e3dcc8; }
.provider-review-reply-form label { min-width:0; font-size:11px; font-weight:800; }
.provider-review-reply-form textarea { width:100%; min-height:76px; margin-top:6px; padding:9px 10px; resize:vertical; font-size:13px; line-height:1.55; }
.provider-review-reply-form > div { display:flex; max-width:190px; align-items:flex-end; flex-direction:column; gap:7px; }
.provider-review-reply-form small { color:var(--muted); font-size:9px; line-height:1.45; }
.provider-review-reply-form button { min-height:38px; padding:0 13px; border:1px solid var(--green); border-radius:5px; background:var(--green); color:#fff; font-size:11px; font-weight:800; }
.provider-review.is-empty { background:#fafbfa; }
.provider-review.is-empty p { margin-top:5px; color:var(--muted); font-size:11px; }
@media (max-width:700px) { .provider-signup-grid { grid-template-columns:1fr; } .provider-signup-grid .wide { grid-column:auto; } .provider-check-grid.area-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .provider-shell { padding:18px 14px 45px; } .provider-header { align-items:flex-start; } .provider-header > div { flex-direction:column; } .provider-welcome { align-items:flex-start; } .provider-welcome-identity { align-items:flex-start; } .provider-avatar { width:48px; height:48px; } .provider-metrics { grid-template-columns:1fr 1fr; } .provider-metrics > div:last-child { grid-column:1 / -1; border-top:1px solid var(--line); } .provider-lead { grid-template-columns:1fr; align-items:stretch; } .provider-candidate-badge { justify-self:start; } .provider-candidate-quote { grid-column:auto; grid-template-columns:1fr; } .provider-candidate-quote .candidate-quote-note,.candidate-quote-file { grid-column:auto; } .provider-lead button { width:100%; } .provider-job-detail { grid-template-columns:1fr; } .provider-status-form { justify-content:space-between; } .provider-quote-form { grid-template-columns:1fr; } .provider-quote-form .quote-detail-field,.provider-quote-form .quote-file-field { grid-column:auto; } .quote-current-file { align-items:flex-start; flex-direction:column; } .provider-review-reply-form { grid-template-columns:1fr; } .provider-review-reply-form > div { max-width:none; align-items:stretch; } .provider-section-heading { align-items:flex-start; flex-direction:column; } }

/* Request administration */
.admin-body { background:#f3f5f4; }
.admin-shell { width:min(1440px,100%); margin:auto; padding:26px 28px 60px; }
.admin-header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.admin-title-group { display:flex; align-items:center; gap:18px; }
.admin-header-logo { flex:none; }
.admin-header-logo .site-logo { width:132px; }
.admin-kicker { color:var(--green); font-size:10px; font-weight:800; }
.admin-header h1 { margin-top:3px; font-size:24px; }
.admin-customer-link { padding:10px 14px; border:1px solid #b7c4be; border-radius:5px; background:#fff; color:var(--ink); font-size:13px; font-weight:800; text-decoration:none; }
.admin-stats { display:grid; grid-template-columns:repeat(6,1fr); border:1px solid var(--line); border-radius:7px; overflow:hidden; background:#fff; }
.admin-stat { min-width:0; padding:17px 18px; border-right:1px solid var(--line); color:var(--ink); text-decoration:none; }
.admin-stat:last-child { border-right:0; }
.admin-stat:hover { background:#f7faf8; }
.admin-stat.urgent { box-shadow:inset 0 3px 0 #d7564e; }
.admin-stat span,.admin-stat strong,.admin-stat small { display:block; }
.admin-stat span { color:var(--muted); font-size:11px; }
.admin-stat strong { margin-top:4px; font-size:24px; }
.admin-stat small { margin-top:2px; color:#88938e; font-size:10px; }
.admin-providers { margin-top:18px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.admin-providers summary { padding:13px 16px; cursor:pointer; font-size:12px; font-weight:800; }
.admin-providers summary strong { color:var(--green-dark); }
.admin-provider-list { border-top:1px solid var(--line); }
.admin-provider-list article { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:13px 16px; border-bottom:1px solid #edf0ee; }
.admin-provider-list article:last-child { border-bottom:0; }
.admin-provider-list article > div { min-width:0; }
.admin-provider-list span { color:var(--green-dark); font-size:9px; font-weight:800; }
.admin-provider-list h3 { margin-top:2px; font-size:15px; }
.admin-provider-list p,.admin-provider-list small { display:block; margin-top:2px; color:var(--muted); font-size:10px; overflow-wrap:anywhere; }
.admin-provider-list form { flex:none; display:flex; gap:7px; }
.admin-provider-list select { min-height:36px; padding:6px 8px; }
.admin-provider-list button { min-height:36px; padding:0 11px; border:1px solid var(--green); border-radius:4px; background:var(--green); color:#fff; font-size:11px; font-weight:800; }
.admin-provider-empty { padding:24px 16px; color:var(--muted); font-size:12px; }
.search-analytics { margin-top:22px; padding:22px 0 4px; border-top:1px solid #cfd8d3; }
.search-analytics-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:14px; }
.search-analytics-heading h2 { margin-top:3px; font-size:20px; }
.search-analytics-heading > span { color:var(--muted); font-size:11px; }
.search-metrics { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:7px; overflow:hidden; background:#fff; }
.search-metrics > div { min-width:0; padding:14px 16px; border-right:1px solid var(--line); }
.search-metrics > div:last-child { border-right:0; }
.search-metrics span,.search-metrics strong { display:block; }
.search-metrics span { color:var(--muted); font-size:10px; }
.search-metrics strong { margin-top:4px; font-size:20px; }
.search-insight-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:12px; }
.search-insight-panel { min-width:0; padding:16px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.search-insight-panel h3 { margin-bottom:11px; font-size:13px; }
.search-ranking { margin:0; padding:0; list-style:none; }
.search-ranking li { min-height:33px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:7px 0; border-top:1px solid #edf0ee; font-size:12px; }
.search-ranking li:first-child { border-top:0; }
.search-ranking li > span { min-width:0; overflow-wrap:anywhere; }
.search-ranking li > span small { display:block; color:var(--muted); font-size:9px; }
.search-ranking li > strong { flex:none; color:var(--green-dark); font-size:11px; }
.search-ranking.no-result li > strong,.search-no-result-label { color:#a3433d; }
.search-ranking .search-insight-empty { justify-content:flex-start; color:var(--muted); }
.search-daily-list { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.search-daily-list > div { min-width:0; padding:8px 3px; border-left:2px solid #80ab94; background:#f5f8f6; text-align:center; }
.search-daily-list time,.search-daily-list strong,.search-daily-list small { display:block; }
.search-daily-list time { color:var(--muted); font-size:9px; }
.search-daily-list strong { margin-top:4px; font-size:13px; }
.search-daily-list small { margin-top:2px; color:#8d514d; font-size:8px; line-height:1.35; }
.search-history { margin-top:12px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.search-history summary { padding:13px 16px; color:var(--green-dark); cursor:pointer; font-size:12px; font-weight:800; }
.search-history-scroll { overflow-x:auto; border-top:1px solid var(--line); }
.search-history table { width:100%; border-collapse:collapse; font-size:11px; }
.search-history th,.search-history td { padding:10px 12px; border-bottom:1px solid #edf0ee; text-align:left; white-space:nowrap; }
.search-history th { color:var(--muted); font-size:9px; }
.search-history td:nth-child(2),.search-history td:nth-child(4) { white-space:normal; }
.search-not-selected { color:var(--muted); }
.search-history-empty { color:var(--muted); text-align:center !important; }
.admin-toolbar { display:flex; align-items:end; justify-content:space-between; gap:20px; margin:18px 0; }
.admin-filters { flex:1; display:flex; align-items:end; gap:10px; }
.admin-filters label { min-width:150px; margin:0; }
.admin-filters label > span { display:block; margin-bottom:5px; color:var(--muted); font-size:10px; }
.admin-search { flex:1; max-width:370px; }
.admin-filters input,.admin-filters select { min-height:40px; padding:8px 10px; background:#fff; }
.admin-filter-button { min-height:40px; padding:0 16px; border:1px solid var(--green); border-radius:5px; background:var(--green); color:#fff; font-weight:800; }
.admin-clear { min-height:40px; display:grid; place-items:center; padding:0 8px; color:var(--muted); font-size:12px; }
.admin-result-count { flex:none; padding-bottom:10px; color:var(--muted); font-size:12px; }
.admin-request-list { display:grid; gap:12px; }
.admin-request-card { border:1px solid var(--line); border-radius:7px; background:#fff; overflow:hidden; }
.admin-request-summary { display:flex; justify-content:space-between; gap:20px; padding:18px 20px 15px; border-bottom:1px solid var(--line); }
.admin-category { color:var(--green-dark); font-size:11px; font-weight:800; }
.admin-request-main h2 { margin-top:3px; font-size:20px; }
.admin-request-main p { margin-top:5px; color:var(--muted); font-size:12px; }
.admin-request-meta { text-align:right; }
.admin-request-meta time { display:block; margin-top:7px; color:var(--muted); font-size:11px; }
.admin-status { display:inline-block; padding:5px 9px; border-radius:4px; background:#edf1ef; color:#425149; font-size:11px; font-weight:800; }
.status-新規 { background:#fbe8e6; color:#9b352f; }
.status-受付済み { background:#e6f1f7; color:#28647e; }
.status-依頼成立 { background:#e4f3eb; color:#176047; }
.status-作業中 { background:#fff0d7; color:#8b5b0b; }
.status-完了 { background:#e4f3eb; color:#176047; }
.status-キャンセル { background:#eceeed; color:#68736e; }
.admin-request-content { display:grid; grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr); gap:24px; padding:20px; }
.admin-request-content h3 { margin-bottom:12px; font-size:13px; }
.admin-request-content dl { grid-template-columns:80px 1fr; margin:0; }
.admin-request-content dd { line-height:1.55; }
.admin-request-content a { color:var(--green-dark); }
.admin-detail-block { border-left:1px solid var(--line); padding-left:24px; }
.admin-detail-block.cooking { border-left-color:#e5cdbd; }
.admin-detail-block.empty-detail p { color:var(--muted); font-size:12px; }
.admin-photo-grid.large { grid-template-columns:repeat(5,minmax(70px,120px)); margin:0; }
.admin-request-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:12px 20px; border-top:1px solid var(--line); background:#fafbfa; }
.admin-conversation { padding:17px 20px; border-top:1px solid var(--line); background:#fcfdfc; }
.admin-conversation-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.admin-review-score { padding:4px 7px; border-radius:4px; background:#fff0d7; color:#7a540f; font-size:10px; font-weight:800; }
.admin-conversation blockquote { margin:0 0 12px; padding:10px 12px; border-left:3px solid #e0ac43; background:#fffaf0; font-size:12px; line-height:1.6; }
.admin-review-publication { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:-4px 0 13px; padding:10px 12px; border:1px solid #ded8c6; background:#fffdf7; }
.admin-review-publication strong,.admin-review-publication small { display:block; }
.admin-review-publication strong { font-size:11px; }
.admin-review-publication small { margin-top:3px; color:var(--muted); font-size:9px; }
.admin-review-publication button { min-height:34px; padding:0 11px; border:1px solid var(--green); border-radius:4px; background:var(--green); color:#fff; font-size:10px; font-weight:800; }
.admin-review-reply { margin:-5px 0 13px; padding:10px 12px; border-left:3px solid var(--green); background:#f3f8f5; }
.admin-review-reply strong { display:block; font-size:10px; }
.admin-review-reply p { margin-top:4px; font-size:11px; line-height:1.6; }
.admin-quote-form { display:grid; grid-template-columns:180px 1fr auto; align-items:end; gap:8px; margin-bottom:13px; padding:11px; border:1px solid #dce4e0; border-radius:6px; background:#f6f9f7; }
.admin-quote-form label { min-width:0; margin:0; color:var(--muted); font-size:9px; }
.admin-quote-form input,.admin-quote-form textarea { min-height:37px; margin-top:4px; padding:7px 9px; }
.admin-quote-form textarea { width:100%; resize:vertical; font:inherit; line-height:1.5; }
.admin-quote-form button { min-height:37px; padding:0 12px; border:1px solid var(--green); border-radius:5px; background:var(--green); color:#fff; font-size:11px; font-weight:800; }
.admin-provider-fee { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 13px; padding:12px 13px; border:1px solid #d8dfdc; border-left:4px solid #9aa8a1; background:#f7f9f8; }
.admin-provider-fee > div { min-width:0; }
.admin-provider-fee span { color:var(--muted); font-size:9px; font-weight:800; }
.admin-provider-fee h4 { margin-top:2px; font-size:17px; }
.admin-provider-fee h4 small { margin-left:5px; color:var(--muted); font-size:9px; font-weight:600; }
.admin-provider-fee p { margin-top:4px; color:#516059; font-size:10px; line-height:1.5; }
.admin-provider-fee.status-reported { border-left-color:#d19a22; background:#fffaf0; }
.admin-provider-fee.status-paid { border-left-color:var(--green); background:#f1faf6; }
.admin-provider-fee.status-refund_required { border-left-color:#b24e47; background:#fff3f2; }
.admin-provider-fee form { flex:none; }
.admin-provider-fee button { min-height:38px; padding:0 12px; border:1px solid var(--green); border-radius:4px; background:var(--green); color:#fff; font-size:10px; font-weight:800; }
.admin-thread { max-height:260px; overflow:auto; }
.status-form { display:flex; align-items:center; gap:8px; }
.status-form label { display:flex; align-items:center; gap:8px; margin:0; color:var(--muted); font-size:11px; }
.status-form select { width:120px; min-height:35px; padding:6px 8px; }
.status-form button,.admin-delete { min-height:35px; padding:0 13px; border:1px solid #b7c4be; border-radius:4px; background:#fff; color:var(--ink); font-weight:700; }
.status-form button { border-color:var(--green); background:var(--green); color:#fff; }
.admin-delete { color:var(--danger); }
.admin-empty { padding:65px 20px; border:1px solid var(--line); border-radius:7px; background:#fff; text-align:center; }
.admin-empty p { margin-top:5px; color:var(--muted); font-size:13px; }
@media (max-width:1100px) { .search-insight-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:980px) { .admin-stats { grid-template-columns:repeat(3,1fr); } .admin-stat { border-bottom:1px solid var(--line); } .admin-toolbar { align-items:stretch; flex-direction:column; } .admin-filters { flex-wrap:wrap; } .admin-result-count { padding:0; } }
@media (max-width:700px) { .admin-shell { padding:18px 14px 40px; } .admin-header h1 { font-size:20px; } .admin-stats { grid-template-columns:1fr 1fr; } .admin-stat { padding:13px; } .search-analytics-heading { align-items:flex-start; flex-direction:column; gap:4px; } .search-metrics { grid-template-columns:1fr 1fr; } .search-metrics > div { border-bottom:1px solid var(--line); } .search-metrics > div:nth-child(2) { border-right:0; } .search-insight-grid { grid-template-columns:1fr; } .admin-filters { display:grid; grid-template-columns:1fr 1fr; } .admin-filters label,.admin-search { min-width:0; max-width:none; } .admin-search { grid-column:1 / -1; } .admin-request-content { grid-template-columns:1fr; } .admin-detail-block { border-left:0; border-top:1px solid var(--line); padding:18px 0 0; } .admin-request-summary { align-items:flex-start; } .admin-request-actions { align-items:stretch; flex-direction:column; } .status-form { justify-content:space-between; } .status-form label { flex:1; } .status-form select { flex:1; } .admin-delete { width:100%; } }
@media (max-width:700px) { .admin-quote-form { grid-template-columns:1fr; } .admin-quote-form button { min-height:40px; } }
@media (max-width:700px) { .admin-provider-fee { align-items:stretch; flex-direction:column; } .admin-provider-fee form,.admin-provider-fee button { width:100%; } .admin-provider-fee h4 small { display:block; margin:3px 0 0; } }
@media (max-width:700px) { .admin-provider-list article { align-items:stretch; flex-direction:column; } .admin-provider-list form { display:grid; grid-template-columns:1fr auto; } }
.admin-header-actions { display:flex; align-items:center; gap:10px; }
.admin-header-actions form { margin:0; }
.admin-logout { min-height:38px; padding:0 12px; border:1px solid #b8c5bf; border-radius:5px; background:#fff; color:var(--ink); font-size:12px; font-weight:800; }
.admin-login-body { min-height:100vh; display:grid; place-items:center; padding:20px; background:#f4f7f5; }
.admin-login-shell { width:min(430px,100%); }
.admin-login-panel { padding:30px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.admin-login-logo { display:inline-block; margin-bottom:22px; }
.admin-login-logo .site-logo { width:150px; }
.admin-login-panel h1 { margin-top:7px; font-size:24px; }
.admin-login-panel > p { margin-top:8px; color:var(--muted); font-size:13px; line-height:1.7; }
.admin-login-error { margin-top:18px; padding:11px 13px; border:1px solid #e1b4b1; border-radius:5px; background:#fff1f0; color:var(--danger); font-size:12px; }
.local-admin-hint { display:grid; gap:3px; margin-top:17px; padding:12px 13px; border-left:3px solid var(--green); background:#edf8f3; font-size:12px; }
.local-admin-hint strong { color:var(--green-dark); }
.local-admin-hint span { overflow-wrap:anywhere; }
.admin-login-form { display:grid; gap:17px; margin-top:24px; }
.admin-login-form label { margin:0; }
.admin-login-form input { margin-top:7px; }
.admin-login-form .password-field input { margin-top:0; }
.admin-login-form .onepush-button { width:100%; margin-top:3px; }
.admin-login-back { display:block; margin-top:18px; color:var(--muted); font-size:12px; text-align:center; }
@media (max-width:520px) { .admin-login-panel { padding:23px 18px; } .admin-header-actions { align-items:stretch; flex-direction:column; } .admin-header-actions a,.admin-header-actions button { width:100%; text-align:center; } }
@media (max-width:700px) { .admin-header { align-items:stretch; flex-direction:column; } .admin-title-group { gap:12px; } .admin-header-logo .site-logo { width:118px; } }
