: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 { position:sticky; top:0; z-index:100; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:18px; margin:-24px -28px 0; padding:14px 28px; border-bottom:1px solid rgba(207,216,212,.9); background:rgba(255,255,255,.96); box-shadow:0 5px 16px rgba(23,49,39,.07); backdrop-filter:blur(10px); }
.push-header .customer-brand { justify-self:start; }
.push-header .open-status { justify-self:center; }
.push-header .header-auth { justify-self:end; }
.consult-hero { margin:0 -28px; scroll-margin-top:74px; background:#f8fbfa; overflow:hidden; }
.consult-hero-visual { position:relative; height:auto; background:#fff; overflow:hidden; }
.consult-hero-picture,.consult-hero-picture img { display:block; width:100%; }
.consult-hero-picture img { height:auto; }
.consult-strengths-visual { padding:46px 28px 52px; background:#fff; text-align:center; }
.consult-strengths-title-image { display:block; width:min(437px,80%); height:auto; margin:0 auto; }
.consult-strengths-image-grid { display:grid; grid-template-columns:repeat(3,minmax(0,320px)); justify-content:center; gap:22px; width:min(100%,1020px); margin:25px auto 0; }
.consult-strength-card { overflow:hidden; border:1px solid #dce6e2; border-radius:8px; background:#fff; box-shadow:0 8px 22px rgba(27,55,45,.07); }
.consult-strength-illustration { aspect-ratio:320 / 124; overflow:hidden; }
.consult-strength-illustration img { display:block; width:100%; height:auto; }
.consult-strength-copy { display:flex; min-height:180px; flex-direction:column; justify-content:center; padding:20px 17px 22px; background:#fff; }
.consult-strength-copy h3 { color:#073d4d; font-size:20px; line-height:1.45; }
.consult-strength-copy p { margin-top:12px; color:#283b34; font-size:15px; line-height:1.75; }
.consult-people-background { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; object-position:center center; }
.consult-hero-visual::after { display:none; }
.consult-headline-image { position:absolute; top:18px; left:50%; z-index:4; width:53%; height:auto; transform:translateX(-50%); }
.consult-bubble-list { display:contents; }
.consult-bubble { position:absolute; z-index:3; width:26%; height:auto; }
.bubble-aircon,.bubble-water,.bubble-garden,.bubble-pet { left:.75%; }
.bubble-lightbulb,.bubble-car,.bubble-pc,.bubble-cityhall { right:.75%; }
.bubble-aircon,.bubble-lightbulb { top:118px; }
.bubble-water,.bubble-car { top:238px; }
.bubble-garden,.bubble-pc { top:358px; }
.bubble-pet,.bubble-cityhall { top:478px; }
.consult-visual-message { position:absolute; top:225px; left:50%; z-index:4; display:flex; align-items:center; gap:9px; padding:6px 13px; border-radius:5px; background:rgba(255,255,255,.83); color:#352d2a; transform:translateX(-50%) rotate(-2deg); white-space:nowrap; }
.consult-visual-message span { font-size:17px; font-weight:800; }
.consult-visual-message strong { color:#009f94; font-size:28px; }
.consult-town-image { position:absolute; right:0; bottom:-1px; left:0; z-index:2; width:100%; height:auto; pointer-events:none; }
.consult-visual-brand { position:absolute; bottom:35px; left:50%; z-index:5; display:flex; align-items:center; flex-direction:column; gap:5px; transform:translateX(-50%); white-space:nowrap; }
.consult-visual-brand img { width:145px; height:auto; }
.consult-visual-brand span { color:#342c29; font-size:13px; font-weight:900; }
.consult-hero-action { position:relative; z-index:6; width:min(820px,calc(100% - 44px)); margin:0 auto; padding:36px 0 42px; }
.consult-action-heading { text-align:center; }
.consult-action-heading > span { color:var(--green-dark); font-size:11px; font-weight:900; }
.consult-action-heading h2 { margin-top:5px; font-size:27px; }
.consult-action-heading p { margin-top:8px; color:var(--muted); font-size:13px; line-height:1.7; }
.consult-quick-form { width:100%; margin-top:18px; padding:18px; border:1px solid rgba(115,151,139,.55); border-radius:8px; background:#fff; box-shadow:0 12px 32px rgba(25,57,47,.12); }
.consult-form-heading { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.consult-form-heading > svg { width:24px; height:24px; color:#079985; }
.consult-form-heading span,.consult-form-heading h2 { display:block; }
.consult-form-heading span { color:var(--green-dark); font-size:10px; font-weight:900; }
.consult-form-heading h2 { margin-top:2px; font-size:18px; }
.consult-quick-form textarea { min-height:94px; padding:13px 14px; border:2px solid #a8bbb3; border-radius:6px; background:#fff; font-size:15px; line-height:1.65; }
.consult-quick-form textarea::placeholder { color:#84918b; }
.consult-quick-actions { display:grid; grid-template-columns:1fr; gap:10px; margin-top:10px; }
.consult-photo-button,.consult-submit-button { min-height:48px; display:flex; align-items:center; justify-content:center; gap:8px; margin:0; border-radius:6px; font-size:13px; font-weight:900; }
.consult-photo-button { padding:0 15px; border:1px solid #8fa69d; background:#fff; color:#315248; cursor:pointer; }
.consult-photo-button:hover,.consult-photo-button:focus-within { border-color:var(--green); background:#f0f8f5; }
.consult-submit-button { padding:0 18px; border:0; background:#ef6b35; color:#fff; }
.consult-submit-button:hover,.consult-submit-button:focus-visible { background:#d95421; }
.consult-photo-button svg,.consult-submit-button svg { width:19px; height:19px; }
.consult-photo-preview { display:grid; grid-template-columns:repeat(5,68px); gap:8px; margin-top:9px; }
.consult-photo-preview figure { position:relative; width:68px; height:68px; margin:0; }
.consult-photo-preview img { display:block; width:68px; height:68px; border:1px solid #bdc9c4; border-radius:5px; object-fit:cover; }
.consult-photo-preview button { position:absolute; top:-6px; right:-6px; width:23px; height:23px; padding:0; border:2px solid #fff; border-radius:50%; background:#283b34; color:#fff; font-size:15px; line-height:18px; }
.consult-photo-preview .photo-slot-add { position:static; display:grid; place-items:center; align-content:center; gap:2px; width:68px; height:68px; border:1px dashed #91a69d; border-radius:5px; background:#fff; color:var(--green-dark); line-height:1; }
.consult-photo-preview .photo-slot-add span { font-size:21px; }
.consult-photo-preview .photo-slot-add small { color:#71817b; font-size:8px; }
.consult-photo-error { margin-top:8px; color:var(--danger); font-size:12px; font-weight:700; }
.consult-assurances { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 20px; margin-top:15px; color:#315248; font-size:14px; font-weight:800; line-height:1.5; }
.consult-assurances span { display:flex; align-items:center; gap:6px; }
.consult-assurances svg { flex:none; width:18px; height:18px; color:#079985; fill:#e3f7f3; }
.consult-quick-form .popular-searches { gap:9px 14px; margin-top:14px; }
.consult-quick-form .popular-searches > span { font-size:13px; font-weight:800; }
.consult-quick-form .popular-searches button { min-height:32px; padding:4px 2px; font-size:14px; font-weight:700; }
.consult-quick-form .service-search-results { max-height:330px; overflow:auto; box-shadow:none; }
.consult-category-link { display:flex; width:max-content; align-items:center; gap:7px; margin:14px auto 0; padding:8px 11px; border-radius:5px; background:#fff; color:var(--green-dark); font-size:12px; font-weight:900; text-decoration:none; }
.consult-category-link svg { width:17px; height:17px; }
.consult-strengths { padding:52px 0 34px; }
.consult-section-heading,.category-browse-heading { text-align:center; }
.consult-section-heading > span,.category-browse-heading > span { color:var(--green-dark); font-size:11px; font-weight:900; }
.consult-section-heading h2,.category-browse-heading h2 { margin-top:5px; font-size:27px; }
.consult-strength-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:24px; }
.consult-strength-grid article { position:relative; min-height:220px; padding:25px 22px 22px; border:1px solid #d6e2dd; border-radius:8px; background:#fff; text-align:center; }
.consult-strength-grid article:nth-child(1) { border-top:4px solid #e96e73; }
.consult-strength-grid article:nth-child(2) { border-top:4px solid #29a97b; }
.consult-strength-grid article:nth-child(3) { border-top:4px solid #268fc0; }
.consult-strength-number { position:absolute; top:12px; left:13px; color:#86928d; font-size:12px; font-weight:900; }
.consult-strength-grid article > svg { width:42px; height:42px; margin:5px auto 14px; color:#079985; stroke-width:1.7; }
.consult-strength-grid h3 { font-size:16px; line-height:1.55; }
.consult-strength-grid p { margin-top:9px; color:var(--muted); font-size:12px; line-height:1.75; }
.category-browse-heading { margin-bottom:22px; scroll-margin-top:86px; }
.category-browse-heading p { margin-top:8px; color:var(--muted); font-size:12px; }
.header-auth { display:flex; align-items:center; gap:8px; }
.header-blog-link { display:flex; align-items:center; gap:5px; min-height:36px; padding:0 10px; color:#33423d; font-size:11px; font-weight:800; text-decoration:none; white-space:nowrap; }
.header-blog-link svg { width:16px; color:#13815f; }
.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; }
.market-region { display:grid; grid-template-columns:minmax(150px,.7fr) minmax(230px,1fr) minmax(260px,1.4fr); align-items:center; gap:18px; margin-top:18px; padding:13px 0; border-block:1px solid #cfd8d4; }
.market-region-copy > span,.market-region-copy > strong { display:block; }
.market-region-copy > span { display:flex; align-items:center; gap:5px; color:var(--green-dark); font-size:9px; font-weight:800; }
.market-region-copy > span svg { width:13px; height:13px; }
.market-region-copy > strong { margin-top:3px; font-size:17px; }
.market-region-select { margin:0; color:var(--muted); font-size:9px; font-weight:800; }
.market-region-select select { min-height:40px; margin-top:4px; padding:7px 10px; background:#fff; color:var(--ink); font-size:12px; font-weight:700; }
.market-region-status { min-width:0; padding:8px 0 8px 13px; border-left:3px solid var(--green); }
.market-region-status strong,.market-region-status span { display:block; }
.market-region-status strong { color:var(--green-dark); font-size:11px; }
.market-region-status span { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.5; }
.market-region-status.is-preparing { border-left-color:#c18513; }
.market-region-status.is-preparing strong { color:#81570b; }
.header-market-region { display:flex; width:auto; min-width:0; align-items:center; justify-self:center; gap:12px; margin:0; padding:0; border:0; }
.header-market-region .market-region-copy > strong { margin:0; font-size:14px; white-space:nowrap; }
.header-market-region .market-region-select { flex:none; }
.header-market-region .market-region-select select { width:158px; min-height:36px; margin:0; padding:6px 28px 6px 9px; font-size:11px; }
.header-market-region .market-region-status { flex:none; max-width:150px; padding:5px 0 5px 10px; }
.header-market-region .market-region-status strong { font-size:10px; white-space:nowrap; }
.header-market-region .market-region-status span { display:none; }
.region-confirm-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,.22); }
.region-confirm-dialog::backdrop { background:rgba(20,31,27,.52); }
.region-confirm-shell { display:grid; grid-template-columns:44px minmax(0,1fr); gap:14px; padding:24px; }
.region-confirm-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:50%; background:#e6f3ee; color:var(--green-dark); }
.region-confirm-icon svg { width:22px; height:22px; }
.region-confirm-shell > div > span { color:var(--green-dark); font-size:9px; font-weight:800; }
.region-confirm-shell h2 { margin-top:3px; font-size:21px; line-height:1.45; }
.region-confirm-shell p { margin-top:8px; color:var(--muted); font-size:11px; line-height:1.7; }
.region-confirm-actions { grid-column:1 / -1; display:flex; justify-content:flex-end; gap:9px; margin-top:5px; }
.region-confirm-actions button { min-height:43px; }
.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:52px; }
.push-title { width:min(720px,100%); margin:0 auto 34px; text-align:center; scroll-margin-top:86px; }
.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:12px; font-size:16px; line-height:1.5; text-align:center; }
.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; justify-content: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-grid.has-active::after { content:""; grid-column:1 / -1; justify-self:center; width:0; height:0; margin:3px 0 -18px; border-right:10px solid transparent; border-left:10px solid transparent; border-top:16px solid #e53935; animation:categoryPointer .75s ease-in-out infinite alternate; }
.category-button { position:relative; 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; transition:color .2s ease,transform .28s ease; }
.category-button.is-active .category-arrow { color:var(--green); transform:rotate(90deg) translateX(2px); }
.subservice-panel { display:grid; grid-template-rows:1fr; margin-top:34px; border-top:1px solid var(--line); animation:subserviceReveal .72s cubic-bezier(.2,.75,.25,1) both; }
.subservice-panel[hidden],.request-details[hidden] { display:none; }
.subservice-panel-inner { min-height:0; padding-top:28px; overflow:hidden; }
@keyframes categoryPointer { from { transform:translateY(0); } to { transform:translateY(4px); } }
@keyframes subserviceReveal { 0% { grid-template-rows:0fr; opacity:0; transform:translateY(-10px); } 38% { opacity:.42; } 100% { grid-template-rows:1fr; opacity:1; transform:translateY(0); } }
.subservice-panel:not([hidden]) .subservice-grid button { animation:subserviceItemReveal .42s ease-out both; }
.subservice-panel:not([hidden]) .subservice-grid button:nth-child(2) { animation-delay:.05s; }
.subservice-panel:not([hidden]) .subservice-grid button:nth-child(3) { animation-delay:.1s; }
.subservice-panel:not([hidden]) .subservice-grid button:nth-child(4) { animation-delay:.15s; }
.subservice-panel:not([hidden]) .subservice-grid button:nth-child(5) { animation-delay:.2s; }
.subservice-panel:not([hidden]) .subservice-grid button:nth-child(6) { animation-delay:.25s; }
.subservice-panel:not([hidden]) .subservice-grid button:nth-child(n+7) { animation-delay:.3s; }
@keyframes subserviceItemReveal { from { opacity:0; transform:translateY(-9px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) { .category-grid.has-active::after,.subservice-grid.has-selection::after,.subservice-panel,.subservice-panel:not([hidden]) .subservice-grid button,.service-providers.is-revealing,.service-reviews.is-revealing,.request-details.is-revealing { animation:none; } .category-arrow { transition:none; } }
.subservice-heading { margin-bottom:18px; text-align:center; }
.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.has-selection { padding-bottom:18px; }
.subservice-grid.has-selection::after { content:""; grid-column:1 / -1; justify-self:center; width:0; height:0; margin:5px 0 0; border-right:10px solid transparent; border-left:10px solid transparent; border-top:16px solid #e53935; animation:categoryPointer .75s ease-in-out infinite alternate; }
.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 { display:grid; grid-template-rows:1fr; margin-top:18px; }
.service-providers > .selection-reveal-inner { min-height:0; padding:20px; border-left:4px solid var(--green); background:#f4faf7; overflow:hidden; }
.service-providers[hidden],.service-reviews[hidden] { display:none; }
.service-providers.is-revealing,.service-reviews.is-revealing,.request-details.is-revealing { animation:selectionSurfaceReveal .64s cubic-bezier(.2,.75,.25,1) both; }
.service-reviews.is-revealing { animation-delay:.1s; }
.request-details.is-revealing { animation-delay:.2s; }
@keyframes selectionSurfaceReveal { 0% { grid-template-rows:0fr; opacity:0; transform:translateY(-10px); } 45% { opacity:.48; } 100% { grid-template-rows:1fr; opacity:1; transform:translateY(0); } }
.service-providers-heading { display:grid; grid-template-columns:minmax(90px,1fr) auto minmax(90px,1fr); align-items:end; gap:15px; }
.service-providers-heading > div { grid-column:2; text-align:center; }
.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 { grid-column:3; justify-self:end; color:var(--green-dark); font-size:12px; }
.provider-region-filter { display:flex; align-items:center; gap:9px; margin-top:13px; color:var(--muted); font-size:11px; font-weight:700; }
.provider-region-filter select { width:auto; min-width:130px; min-height:34px; padding:0 28px 0 9px; border:1px solid var(--line); border-radius:5px; background:#fff; }
.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 { display:grid; grid-template-rows:1fr; margin-top:18px; }
.service-reviews > .selection-reveal-inner { min-height:0; padding:20px; border-left:4px solid #d8a931; background:#fffdf7; overflow:hidden; }
.service-reviews-heading { display:grid; grid-template-columns:minmax(90px,1fr) auto minmax(90px,1fr); align-items:end; gap:15px; }
.service-reviews-heading > div { grid-column:2; text-align:center; }
.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 { grid-column:3; justify-self:end; color:#6f500d; font-size:12px; }
@media (max-width:600px) { .service-providers-heading,.service-reviews-heading { grid-template-columns:1fr; gap:5px; } .service-providers-heading > div,.service-providers-heading > strong,.service-reviews-heading > div,.service-reviews-heading > strong { grid-column:1; justify-self:center; text-align:center; } }
.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; }
.extended-service-catalog { margin-top:72px; padding-top:34px; border-top:1px solid var(--line); }
.extended-catalog-heading { display:block; text-align:center; }
.extended-catalog-heading > div > span { color:var(--green-dark); font-size:9px; font-weight:800; }
.extended-catalog-heading h2 { margin-top:4px; font-size:24px; }
.extended-catalog-heading p { margin-top:7px; color:var(--muted); font-size:12px; }
.extended-catalog-heading > small { display:block; margin-top:8px; color:var(--muted); font-size:9px; }
.extended-catalog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:20px; padding:12px 0; border-block:1px solid var(--line); }
.extended-catalog-tabs { display:flex; gap:5px; }
.extended-catalog-tabs button { min-height:40px; padding:0 13px; border:1px solid #c4cec9; border-radius:5px; background:#fff; color:#526059; font-size:11px; font-weight:800; }
.extended-catalog-tabs button span { margin-left:6px; color:#7b8781; font-size:8px; font-weight:600; }
.extended-catalog-tabs button.is-active { border-color:var(--green); background:var(--green); color:#fff; }
.extended-catalog-tabs button.is-active span { color:#d8eee5; }
.extended-catalog-search { width:min(300px,100%); min-height:40px; display:grid; grid-template-columns:18px minmax(0,1fr); align-items:center; gap:7px; padding:0 11px; border:1px solid #aebdb6; border-radius:5px; background:#fff; }
.extended-catalog-search:focus-within { border-color:var(--green); box-shadow:0 0 0 3px rgba(15,122,95,.09); }
.extended-catalog-search svg { width:17px; color:#607069; }
.extended-catalog-search input { min-width:0; height:38px; padding:0; border:0; outline:0; background:transparent; font-size:12px; }
.extended-catalog-panel[hidden] { display:none; }
.extended-catalog-summary { display:flex; align-items:baseline; justify-content:space-between; gap:15px; padding:17px 0 10px; }
.extended-catalog-summary strong { font-size:14px; }
.extended-catalog-summary span { color:var(--muted); font-size:10px; }
.extended-category-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.extended-category { min-width:0; border:1px solid #d5dcd8; border-radius:6px; background:#fff; }
.extended-category.is-filtered-out { display:none; }
.extended-category summary { min-height:48px; display:grid; grid-template-columns:minmax(0,1fr) auto 18px; align-items:center; gap:9px; padding:10px 12px; cursor:pointer; list-style:none; }
.extended-category summary::-webkit-details-marker { display:none; }
.extended-category summary > span { min-width:0; font-size:12px; font-weight:800; overflow-wrap:anywhere; }
.extended-category summary small { color:var(--muted); font-size:9px; }
.extended-category summary svg { width:17px; color:#66746d; transition:transform .18s ease; }
.extended-category[open] summary { border-bottom:1px solid #e3e8e5; background:#f6faf8; }
.extended-category[open] summary svg { transform:rotate(180deg); }
.extended-category ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; margin:0; padding:10px; list-style:none; }
.extended-category li { min-width:0; }
.extended-service-button { width:100%; min-height:38px; display:grid; grid-template-columns:minmax(0,1fr) 15px; align-items:center; gap:7px; padding:7px 8px; border:1px solid transparent; border-radius:4px; background:transparent; color:#45534c; font-size:10px; line-height:1.5; text-align:left; }
.extended-service-button:hover,.extended-service-button:focus-visible { border-color:#b8cec4; background:#f2f8f5; color:var(--green-dark); outline:0; }
.extended-service-button.is-selected { border-color:var(--green); background:#e9f5f0; color:var(--green-dark); font-weight:800; }
.extended-service-button svg { width:14px; height:14px; }
.extended-catalog-empty { margin-top:12px; padding:20px; border:1px dashed #c7d1cc; color:var(--muted); font-size:11px; text-align:center; }
.catalog-service-guide { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:20px; margin-top:16px; padding:18px; border:1px solid #9ec8b7; border-left:4px solid var(--green); border-radius:6px; background:#f4faf7; }
.catalog-service-guide[hidden] { display:none; }
.catalog-service-guide-main { min-width:0; }
.catalog-service-guide-main > span { color:var(--green-dark); font-size:9px; font-weight:800; }
.catalog-service-guide-main h3 { margin-top:3px; font-size:17px; overflow-wrap:anywhere; }
.catalog-service-guide-main p { margin-top:6px; color:#52625b; font-size:11px; line-height:1.6; }
.catalog-service-guide-status { min-width:150px; padding-left:18px; border-left:1px solid #c9ddd4; }
.catalog-service-guide-status strong,.catalog-service-guide-status span { display:block; }
.catalog-service-guide-status strong { color:var(--green-dark); font-size:12px; }
.catalog-service-guide-status span { margin-top:5px; color:var(--muted); font-size:10px; }
.catalog-service-guide > button { white-space:nowrap; }
.extended-catalog-footer { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); }
.extended-catalog-footer span { color:var(--muted); font-size:10px; }
.extended-catalog-footer a { display:flex; align-items:center; gap:5px; color:var(--green-dark); font-size:10px; font-weight:800; text-decoration:none; }
.extended-catalog-footer a svg { width:14px; }
@media (max-width:700px) { .extended-service-catalog { margin-top:52px; } .extended-catalog-heading,.extended-catalog-toolbar,.extended-catalog-footer { align-items:stretch; flex-direction:column; } .extended-catalog-tabs { display:grid; grid-template-columns:1fr 1fr; } .extended-catalog-tabs button { padding:0 8px; } .extended-catalog-search { width:100%; } .extended-category-list { grid-template-columns:1fr; } .extended-category ul { grid-template-columns:1fr; } .catalog-service-guide { grid-template-columns:1fr; gap:13px; } .catalog-service-guide-status { padding:12px 0 0; border-top:1px solid #c9ddd4; border-left:0; } .catalog-service-guide > button { width:100%; } }
.request-details { display:grid; grid-template-rows:1fr; margin-top:18px; }
.request-details > .selection-reveal-inner { min-height:0; padding:26px; border:1px solid var(--line); border-radius:8px; background:#fff; overflow:hidden; }
.request-details > .selection-reveal-inner > h2 { margin:26px 0 18px; font-size:19px; }
.selected-request { display:flex; align-items:center; justify-content:center; gap:14px; padding:13px 17px; border-radius:6px; background:#e9f5f0; text-align:center; }
.selected-request[hidden] { display:none; }
.service-selection-summary { margin-top:26px; scroll-margin-top:86px; }
.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:grid; grid-template-columns:1fr auto 1fr; align-items:start; gap:15px; }
.photo-upload-heading > div { grid-column:2; text-align:center; }
.photo-upload-heading h2 { font-size:17px; }
.photo-upload-heading p { margin-top:4px; color:var(--muted); font-size:12px; }
.photo-upload-heading > span { grid-column:3; justify-self:end; 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-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-preview > .photo-slot-add { display:grid; place-items:center; align-content:center; gap:6px; width:100%; padding:0; border:1px dashed #91a69d; background:#fff; color:var(--green-dark); cursor:pointer; }
.photo-preview > .photo-slot-add:hover { border-color:var(--green); background:#f1faf6; }
.photo-preview > .photo-slot-add span { font-size:27px; line-height:1; }
.photo-preview > .photo-slot-add small { color:#71817b; font-size:9px; font-weight:800; }
.photo-error { margin-top:9px; color:var(--danger); font-size:12px; }
.selected-request span { color:var(--green-dark); font-size:12px; }
.selected-request strong { font-size:17px; }
.selected-request button { flex:0 0 auto; min-height:36px; padding:7px 15px; border:1px solid var(--green-dark); border-radius:5px; background:#fff; color:var(--green-dark); font-weight:700; text-decoration:none; }
.selected-request button:hover { background:var(--green-dark); color:#fff; }
.selected-request-change { flex:0 0 auto; min-height:36px; display:inline-flex; align-items:center; padding:7px 15px; border:1px solid var(--green-dark); border-radius:5px; background:#fff; color:var(--green-dark); font-size:13px; font-weight:700; text-decoration:none; }
.selected-request-change:hover { background:var(--green-dark); color:#fff; }
.request-handoff { margin-top:18px; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:16px; padding:22px; border:1px solid #b9d9cc; border-radius:7px; background:#f5fbf8; text-align:center; }
.request-handoff div { display:grid; justify-items:center; gap:4px; }
.request-handoff span { color:var(--green-dark); font-size:11px; font-weight:800; }
.request-handoff strong { font-size:18px; }
.request-handoff p { color:var(--muted); font-size:13px; }
.request-handoff a { min-height:50px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; line-height:1.4; text-align:center; text-decoration:none; }
.customer-body #requestDetails > .selection-reveal-inner > .photo-upload,.customer-body #requestDetails > .selection-reveal-inner > .cooking-preferences,.customer-body #requestDetails > .selection-reveal-inner > .member-bar,.customer-body #requestDetails > .selection-reveal-inner > .destination-form { display:none !important; }
.customer-body #consultationRouting .consultation-routing-check { display:none; }
.mypage-new-request-panel { margin-top:22px; padding:24px; border:1px solid var(--line); border-radius:8px; background:#fff; scroll-margin-top:18px; }
.new-request-heading { margin-bottom:18px; }
.new-request-heading a { color:var(--green-dark); font-size:13px; font-weight:700; }
.mypage-new-request-form { display:grid; gap:18px; }
.mypage-new-request-form .photo-upload,.mypage-new-request-form .cooking-preferences,.mypage-new-request-form .destination-form,.mypage-new-request-form .consultation-routing { margin-top:0; }
.new-request-repeat { display:flex; align-items:center; gap:12px; padding:14px 17px; border-left:4px solid var(--green); background:#f2faf6; }
.new-request-repeat svg { width:21px; color:var(--green-dark); }
.new-request-repeat div { display:grid; gap:2px; }
.new-request-repeat span { color:var(--green-dark); font-size:11px; font-weight:800; }
.mypage-new-destination { padding-top:20px; border-top:1px solid var(--line); }
@media (max-width:600px) { .selected-request { flex-wrap:wrap; gap:7px 10px; } .selected-request span { width:100%; } .photo-upload-heading { grid-template-columns:1fr; gap:7px; } .photo-upload-heading > div,.photo-upload-heading > span { grid-column:1; justify-self:center; text-align:center; } .request-handoff { align-items:stretch; flex-direction:column; text-align:center; } .request-handoff a { justify-content:center; } .mypage-new-request-panel { padding:17px; } }
.consultation-routing { margin-top:12px; padding:19px; border:2px solid #d59618; border-radius:6px; background:#fffaf0; color:#42340f; }
.consultation-routing[hidden] { display:none; }
.consultation-routing-heading { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:start; gap:11px; }
.consultation-routing-heading > svg { width:27px; height:27px; color:#a56800; }
.consultation-routing-heading span,.consultation-routing-heading h2 { display:block; }
.consultation-routing-heading span { color:#8a5c08; font-size:10px; font-weight:900; }
.consultation-routing-heading h2 { margin-top:3px; font-size:19px; line-height:1.45; }
.consultation-routing-topic { display:flex; align-items:center; gap:10px; margin-top:15px; padding:12px 14px; border-left:4px solid #d59618; background:#fff; }
.consultation-routing-topic span { flex:none; color:#76540a; font-size:10px; font-weight:800; }
.consultation-routing-topic strong { font-size:16px; overflow-wrap:anywhere; }
.consultation-routing-lead { margin-top:12px; font-size:12px; line-height:1.75; }
.consultation-routing-lead strong { color:#873832; }
.consultation-routing-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:13px 0 0; padding:0; list-style:none; }
.consultation-routing-steps li { min-width:0; display:grid; grid-template-columns:25px minmax(0,1fr); align-items:center; gap:7px; padding:9px; border:1px solid #ead7ae; background:#fff; }
.consultation-routing-steps li > span { width:25px; height:25px; display:grid; place-items:center; border-radius:50%; background:#a56800; color:#fff; font-size:10px; font-weight:900; }
.consultation-routing-steps li > strong { font-size:10px; line-height:1.5; }
.consultation-routing-check { display:grid; grid-template-columns:20px minmax(0,1fr); align-items:start; gap:9px; margin:14px 0 0; padding:12px; border:1px solid #c99d46; background:#fff; cursor:pointer; }
.consultation-routing-check input { width:19px; height:19px; min-height:0; margin:1px 0 0; accent-color:#a56800; }
.consultation-routing-check strong,.consultation-routing-check small { display:block; }
.consultation-routing-check strong { font-size:12px; line-height:1.55; }
.consultation-routing-check small { margin-top:3px; color:#6e6042; font-size:9px; line-height:1.5; }
.search-empty p strong,.search-empty p span { display:block; }
.search-empty p span { margin-top:5px; color:var(--muted); font-size:10px; line-height:1.6; }
.onepush-button.is-consultation { background:#9a6200; }
.onepush-button.is-consultation:hover { background:#7d4f00; }
.confirm-consultation-notice { margin:15px 0; padding:12px 14px; border-left:4px solid #d59618; background:#fff8e9; }
.confirm-consultation-notice strong,.confirm-consultation-notice span { display:block; }
.confirm-consultation-notice strong { color:#78362f; font-size:12px; }
.confirm-consultation-notice span { margin-top:4px; color:#64583f; font-size:10px; line-height:1.6; }
.postal-lookup-button { width:auto; min-height:32px; margin-top:7px; padding:0 11px; border:1px solid var(--green); border-radius:5px; background:#fff; color:var(--green-dark); font-size:11px; font-weight:800; }
.postal-lookup-button:disabled { opacity:.55; }
.postal-lookup-message { display:block; margin-top:5px; color:var(--muted); font-size:10px; line-height:1.5; }
.onepush-button.large { display:block; width:100%; min-height:58px; margin-top:20px; font-size:17px; }
@media (max-width:620px) { .consultation-routing { padding:15px; } .consultation-routing-heading h2 { font-size:16px; } .consultation-routing-topic { align-items:flex-start; flex-direction:column; gap:3px; } .consultation-routing-steps { grid-template-columns:1fr; } }
@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 .customer-brand { grid-row:1; grid-column:1; } .push-header .header-auth { grid-row:1; grid-column:2; } .push-header .open-status { display:none; } .push-main { padding-top:46px; } .header-market-region { grid-row:2; grid-column:1 / -1; width:100%; justify-content:center; padding-top:8px; border-top:1px solid #e1e7e4; } .header-market-region .market-region-status { display:none; } }
@media (max-width:760px) { .market-region { grid-template-columns:1fr 1fr; } .market-region-status { grid-column:1 / -1; } }
@media (max-width:520px) { .market-region { grid-template-columns:1fr; gap:10px; } .market-region-status { grid-column:auto; } .region-confirm-shell { grid-template-columns:38px minmax(0,1fr); padding:19px; } .region-confirm-icon { width:38px; height:38px; } .region-confirm-shell h2 { font-size:17px; } .region-confirm-actions { display:grid; grid-template-columns:1fr; } .region-confirm-actions .secondary-button { min-height:43px; order:2; } }
@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-grid.has-active::after { margin-top:5px; } .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 { position:absolute; right:8px; bottom:8px; display:block; width:15px; } .category-copy strong { font-size:13px; } .category-copy small { margin-top:5px; font-size:10px; } .subservice-panel-inner { padding-top:22px; } .subservice-heading h2 { font-size:19px; } .subservice-grid { grid-template-columns:1fr; } .subservice-grid button { min-height:104px; } .request-details > .selection-reveal-inner { padding:18px; } }
@media (max-width:520px) { .push-header { gap:8px; margin:-16px -14px 0; padding:10px 14px; } .customer-brand .brand-mark { width:34px; } .customer-brand > span:last-child { font-size:13px; } .header-auth-button { padding:0 9px; font-size:11px; } .header-market-region { gap:9px; } .header-market-region .market-region-copy > strong { font-size:13px; } .header-market-region .market-region-select select { width:148px; } }
@media (max-width:520px) { .header-blog-link { width:36px; padding:0; justify-content:center; } .header-blog-link span { display:none; } }
@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:420px) { .consult-photo-preview { grid-template-columns:repeat(5,minmax(0,1fr)); } .consult-photo-preview figure,.consult-photo-preview img,.consult-photo-preview .photo-slot-add { width:100%; height:auto; aspect-ratio:1; } }
@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; }
.mypage-provider-name em { display:inline-block; margin-left:7px; padding:3px 5px; border-radius:4px; background:#fff1c9; color:#79530c; font-size:8px; font-style:normal; }
.repeat-request-offer { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:14px; padding:13px 14px; border:1px solid #d9c486; border-left:4px solid #b98113; border-radius:6px; background:#fffaf0; }
.repeat-request-offer span,.repeat-request-offer strong,.repeat-request-offer small { display:block; }
.repeat-request-offer span { display:flex; align-items:center; gap:5px; color:#8b5b0b; font-size:9px; font-weight:800; }
.repeat-request-offer span svg { width:13px; height:13px; }
.repeat-request-offer strong { margin-top:3px; font-size:12px; }
.repeat-request-offer small { margin-top:3px; color:var(--muted); font-size:9px; }
.repeat-request-offer a { min-height:39px; display:grid; flex:none; place-items:center; padding:0 13px; border:1px solid #a97714; border-radius:5px; background:#fff; color:#79530c; font-size:10px; font-weight:800; text-decoration:none; }
.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; }
.consultation-status { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-top:14px; padding:14px; border:1px solid #d8b95f; border-radius:6px; background:#fffbef; }
.consultation-status > div > span { color:#775707; font-size:9px; font-weight:800; }
.consultation-status h4 { margin-top:3px; font-size:15px; }
.consultation-status p { margin-top:5px; color:#635b47; font-size:11px; line-height:1.65; }
.consultation-status.needs-review { border-color:#dfa198; background:#fff7f5; }
.consultation-deadline { flex:none; padding:5px 7px; border-radius:4px; background:#fff; color:#775707; font-size:10px; font-weight:800; }
.consultation-deadline.is-overdue { background:#a6342d; color:#fff; }
.consultation-result { margin-top:14px; padding:14px; border:1px solid #d7a29c; border-radius:6px; background:#fff7f5; }
.consultation-result span { color:#8d342e; font-size:9px; font-weight:800; }
.consultation-result h4 { margin-top:3px; font-size:15px; }
.consultation-result p { margin-top:5px; color:#665451; font-size:11px; line-height:1.65; }
.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; }
.request-cancel-panel { margin-top:13px; border:1px solid #d7dedb; border-radius:6px; background:#fafbfa; }
.request-cancel-panel > summary { min-height:42px; display:flex; align-items:center; padding:0 14px; color:#6b302c; font-size:11px; font-weight:800; cursor:pointer; }
.request-cancel-panel > summary::marker { color:#9a4a44; }
.request-cancel-panel form { display:grid; grid-template-columns:minmax(210px,1fr) minmax(280px,1.3fr); align-items:end; gap:11px; padding:14px; border-top:1px solid #e0e5e2; }
.request-cancel-panel label { margin:0; color:#4c5953; font-size:10px; font-weight:700; }
.request-cancel-panel select,.request-cancel-panel textarea { margin-top:6px; background:#fff; }
.request-cancel-panel [data-cancellation-detail] { grid-column:1 / -1; }
.request-cancel-warning { grid-column:1 / -1; margin:0; padding:9px 10px; border-left:3px solid #c47b30; background:#fff8ed; color:#665746; font-size:10px; line-height:1.6; }
.request-cancel-submit { grid-column:2; min-height:41px; border:1px solid #943b35; border-radius:5px; background:#a43a35; color:#fff; font-size:11px; font-weight:800; }
.request-cancel-result { margin-top:13px; padding:12px 14px; border-left:4px solid #8d9692; background:#f2f4f3; }
.request-cancel-result span,.request-cancel-result strong { display:block; }
.request-cancel-result span { color:var(--muted); font-size:9px; font-weight:800; }
.request-cancel-result strong { margin-top:3px; font-size:12px; }
.request-cancel-result p { margin-top:5px; color:#526059; font-size:11px; line-height:1.6; }
.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 { color:var(--muted); font-size:13px; font-weight:800; }
.mypage-request-item dd { margin-top:5px; font-size:14px; line-height:1.7; }
.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 12px; font-size:16px; }
.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; white-space:pre-wrap; }
.message-empty { color:var(--muted); font-size:11px; }
.additional-work-panel,.admin-additional-work { margin-top:16px; padding:17px 0 0; border-top:1px solid var(--line); }
.additional-work-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.additional-work-heading span,.additional-work-heading h4 { display:block; }
.additional-work-heading span { color:#8b5b0b; font-size:9px; font-weight:800; }
.additional-work-heading h4 { margin-top:3px; font-size:14px; }
.additional-work-heading > strong { flex:none; padding:5px 8px; border-radius:4px; background:#edf7f2; color:var(--green-dark); font-size:10px; }
.additional-work-heading > strong.needs-response { background:#fff0d7; color:#895a08; }
.additional-work-guidance { margin-top:7px; color:#53615a; font-size:10px; line-height:1.65; }
.additional-work-list { display:grid; gap:9px; margin-top:12px; }
.additional-work-item { padding:12px 13px; border:1px solid #d9e1dd; border-left:4px solid #9ba9a2; border-radius:5px; background:#fff; }
.additional-work-item.status-pending { border-left-color:#d79b20; background:#fffdf7; }
.additional-work-item.status-approved { border-left-color:var(--green); background:#f7fbf9; }
.additional-work-item.status-rejected,.additional-work-item.status-cancelled { opacity:.74; }
.additional-work-item header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.additional-work-item header span,.additional-work-item header strong { display:block; }
.additional-work-item header span { color:var(--muted); font-size:9px; font-weight:800; }
.additional-work-item header strong { margin-top:3px; font-size:12px; line-height:1.5; }
.additional-work-item header b { flex:none; color:#1f3b2f; font-size:15px; }
.additional-work-item > p { margin-top:8px; color:#4f5c56; font-size:11px; line-height:1.65; white-space:pre-wrap; }
.additional-work-item > p em { display:block; margin-bottom:2px; color:var(--muted); font-size:9px; font-style:normal; font-weight:800; }
.additional-work-item > time { display:block; margin-top:7px; color:var(--muted); font-size:9px; }
.additional-work-item > form { margin-top:9px; text-align:right; }
.additional-work-item button,.additional-work-form button,.additional-fee button { min-height:36px; padding:0 12px; border:1px solid var(--green); border-radius:4px; background:var(--green); color:#fff; font-size:10px; font-weight:800; }
.additional-work-secondary { border-color:#b8c4be !important; background:#fff !important; color:#526059 !important; }
.additional-work-response { display:flex; justify-content:flex-end; gap:8px; }
.additional-fee { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; padding:9px 10px; border:1px solid #d9e1dd; background:#f6f8f7; }
.additional-fee span,.additional-fee strong { font-size:10px; }
.additional-fee.status-reported { border-color:#e0be72; background:#fff9eb; }
.additional-fee.status-paid { border-color:#a9d1bd; background:#eef8f3; }
.additional-work-form { margin-top:12px; border:1px solid #cdd8d2; border-radius:5px; background:#f8faf9; }
.additional-work-form summary { display:flex; align-items:center; gap:7px; min-height:42px; padding:0 12px; cursor:pointer; font-size:11px; font-weight:800; list-style:none; }
.additional-work-form summary::-webkit-details-marker { display:none; }
.additional-work-form summary svg { width:16px; height:16px; color:var(--green); }
.additional-work-form form { display:grid; grid-template-columns:1fr 1fr; gap:11px; padding:13px; border-top:1px solid #dce4e0; }
.additional-work-form label { margin:0; color:var(--muted); font-size:10px; font-weight:700; }
.additional-work-form textarea,.additional-work-form input { margin-top:5px; padding:9px 10px; }
.additional-work-form label:nth-of-type(3),.additional-work-form form > p,.additional-work-form form > button { grid-column:1 / -1; }
.additional-work-form form > p { color:#80580d; font-size:10px; }
.additional-work-form form > button { justify-self:end; }
.additional-work-total { display:grid; grid-template-columns:1fr auto; align-items:end; gap:2px 14px; margin-top:12px; padding:11px 13px; border-left:4px solid var(--green); background:#eef8f3; }
.additional-work-total span { font-size:10px; font-weight:800; }
.additional-work-total strong { grid-row:1 / 3; grid-column:2; font-size:19px; }
.additional-work-total small { color:var(--muted); font-size:9px; }
.completion-confirmation-form { display:grid; justify-items:end; gap:8px; }
.completion-confirmation-form label { display:flex; align-items:flex-start; gap:7px; max-width:310px; margin:0; color:#4e5b55; font-size:10px; font-weight:700; line-height:1.45; }
.completion-confirmation-form input { width:16px; height:16px; min-height:0; margin:0; accent-color:var(--green); }
.admin-additional-work { margin-bottom:13px; }
@media (max-width:650px) { .additional-work-heading,.additional-work-item header,.additional-fee { align-items:stretch; flex-direction:column; } .additional-work-heading > strong { align-self:flex-start; } .additional-work-item header b { align-self:flex-start; } .additional-work-response { display:grid; grid-template-columns:1fr; } .additional-work-response button { width:100%; } .additional-work-form form { grid-template-columns:1fr; } .additional-work-form label:nth-of-type(3),.additional-work-form form > p,.additional-work-form form > button { grid-column:1; } .additional-work-form form > button { width:100%; } .additional-work-total { grid-template-columns:1fr; } .additional-work-total strong { grid-row:auto; grid-column:auto; } }
.live-notification-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; color:var(--green-dark); }
.live-notification-button[hidden] { display:none; }
.live-notification-button svg { width:15px; height:15px; }
.live-message-unread { flex:none; margin-left:7px; padding:3px 6px; border-radius:999px; background:#c7433c; color:#fff; font-size:9px; font-style:normal; font-weight:800; line-height:1.2; }
.message-accordion summary .live-message-unread { margin-left:0; }
.live-message-toast { position:fixed; z-index:1200; right:20px; bottom:20px; width:min(360px,calc(100vw - 28px)); padding:13px 15px; border:1px solid #9bcdb7; border-left:4px solid var(--green); border-radius:6px; box-shadow:0 12px 32px rgba(28,54,43,.2); background:#fff; color:var(--ink); text-align:left; cursor:pointer; animation:live-message-in .2s ease-out; }
.live-message-toast strong,.live-message-toast span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.live-message-toast strong { font-size:12px; }
.live-message-toast span { margin-top:4px; color:var(--muted); font-size:11px; }
@keyframes live-message-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:650px) { .live-message-toast { right:14px; bottom:14px; } }
@media (prefers-reduced-motion:reduce) { .live-message-toast { animation:none; } }
.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:13px; 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:13px; font-weight:800; }
.request-review select,.request-review textarea { margin-top:7px; padding:11px 12px; font-size:14px; line-height:1.6; }
.request-review select { min-height:46px; }
.request-review textarea { min-height:96px; }
.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:13px; }
.review-public-consent small { margin-top:4px; color:var(--muted); font-size:11px; line-height:1.6; }
.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; } .consultation-status { align-items:stretch; flex-direction:column; } .consultation-deadline { align-self:flex-start; order:-1; } .request-quote,.request-candidate-list { grid-template-columns:1fr; gap:5px; } .request-cancel-panel form { grid-template-columns:1fr; } .request-cancel-panel [data-cancellation-detail],.request-cancel-warning,.request-cancel-submit { grid-column:1; } .request-cancel-submit { width:100%; } .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; } }
.repeat-booking-banner { display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:12px; margin-bottom:14px; padding:13px 14px; border:1px solid #d9c486; border-left:4px solid #b98113; border-radius:6px; background:#fffaf0; }
.repeat-booking-banner[hidden] { display:none; }
.repeat-booking-avatar { width:46px; height:46px; display:grid; place-items:center; border-radius:50%; background:#fff1c9; color:#8b5b0b; overflow:hidden; }
.repeat-booking-avatar img { width:100%; height:100%; object-fit:cover; }
.repeat-booking-avatar svg { width:20px; height:20px; }
.repeat-booking-banner div > span,.repeat-booking-banner div > strong,.repeat-booking-banner div > small { display:block; }
.repeat-booking-banner div > span { color:#8b5b0b; font-size:9px; font-weight:800; }
.repeat-booking-banner div > strong { margin-top:2px; font-size:13px; }
.repeat-booking-banner div > small { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.5; }
.repeat-booking-banner > a { color:#79530c; font-size:9px; font-weight:800; }
.provider-repeat-badge { display:inline-block; margin-left:8px; padding:3px 6px; border-radius:4px; background:#fff1c9; color:#79530c; font-size:8px; }
.provider-repeat-fee-note { grid-column:1 / -1; display:flex; align-items:center; gap:6px; margin:0; padding:9px 10px; border:1px solid #d9c486; border-radius:5px; background:#fffaf0; color:#79530c; font-size:10px; font-weight:800; }
.provider-repeat-fee-note svg { width:15px; height:15px; }
.admin-repeat-label { display:inline-block; margin-left:7px; padding:3px 6px; border-radius:4px; background:#fff1c9; color:#79530c; font-size:8px; }
@media (max-width:650px) { .repeat-request-offer { align-items:stretch; flex-direction:column; } .repeat-request-offer a { width:100%; } .repeat-booking-banner { grid-template-columns:42px minmax(0,1fr); } .repeat-booking-avatar { width:42px; height:42px; } .repeat-booking-banner > a { grid-column:1 / -1; } }
@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.area-grid { max-height:280px; overflow:auto; padding:8px; border:1px solid var(--line); border-radius:6px; background:#fafcfa; }
.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; }
.provider-member-reputation { max-width:680px; margin-top:14px; padding:12px 14px; border:1px solid #cbd8d1; border-left:3px solid #557a68; border-radius:6px; background:#f8faf9; }
.provider-reputation-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.provider-reputation-heading > span { display:flex; align-items:center; gap:6px; color:#315848; font-size:11px; font-weight:800; }
.provider-reputation-heading svg { width:14px; height:14px; }
.provider-reputation-heading small,.provider-reputation-note { color:var(--muted); font-size:9px; }
.provider-reputation-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:10px; border-block:1px solid #dbe4df; }
.provider-reputation-metrics > div { min-width:0; padding:9px 8px; border-right:1px solid #dbe4df; }
.provider-reputation-metrics > div:last-child { border-right:0; }
.provider-reputation-metrics span,.provider-reputation-metrics strong { display:block; }
.provider-reputation-metrics span { color:var(--muted); font-size:9px; }
.provider-reputation-metrics strong { margin-top:2px; font-size:14px; }
.provider-reputation-metrics .has-warning strong { color:#a13f38; }
.provider-reputation-score { display:flex; align-items:baseline; gap:8px; margin-top:8px; }
.provider-reputation-score strong { color:#8b5b0b; font-size:18px; }
.provider-reputation-score span,.provider-member-reputation > p { color:#4d5a54; font-size:10px; }
.provider-member-reputation > p { margin-top:7px; }
.provider-reputation-empty { display:block; font-size:10px; }
.provider-reputation-warning { margin-top:9px; }
.provider-reputation-warning > strong { color:#853a34; font-size:10px; }
.provider-reputation-warning > small { display:block; margin-top:5px; color:var(--muted); font-size:9px; }
.provider-reputation-clear { color:#315848 !important; font-weight:700; }
.provider-reputation-cancel { color:#7b4b23 !important; font-weight:700; }
.provider-reputation-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
.provider-reputation-tags span { padding:4px 7px; border:1px solid #e1b9b5; border-radius:4px; background:#fff2f0; color:#913d37; font-size:9px; font-weight:700; }
.admin-member-review-tags span { padding:4px 7px; border:1px solid #b9d4c5; border-radius:4px; background:#edf7f1; color:#315848; font-size:9px; font-weight:700; }
.provider-reputation-tags .is-warning,.admin-member-review-tags .is-warning { border-color:#e1b9b5; background:#fff2f0; color:#913d37; }
.provider-reputation-note { display:block; margin-top:8px; }
@media (max-width:700px) { .provider-reputation-heading { align-items:flex-start; flex-direction:column; gap:3px; } .provider-reputation-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } .provider-reputation-metrics > div { border-bottom:1px solid #dbe4df; } .provider-reputation-metrics > div:nth-child(2n) { border-right:0; } .provider-reputation-metrics > div:last-child { border-bottom:0; } }
.provider-member-review { padding:18px 20px; border-top:1px solid var(--line); background:#f8faf9; }
.provider-member-review-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.provider-member-review-heading span { display:flex; align-items:center; gap:5px; color:#315848; font-size:9px; font-weight:800; }
.provider-member-review-heading svg { width:12px; height:12px; }
.provider-member-review-heading h4 { margin-top:3px; font-size:15px; }
.provider-member-review-heading > strong { padding:4px 7px; border-radius:4px; background:#e4f3eb; color:#176047; font-size:9px; }
.provider-member-review > p { margin-top:6px; color:var(--muted); font-size:10px; line-height:1.6; }
.provider-member-review form { display:grid; grid-template-columns:minmax(180px,.35fr) minmax(0,1fr); gap:14px 18px; margin-top:15px; }
.provider-member-review label,.provider-member-review legend { color:var(--ink); font-size:11px; font-weight:800; }
.provider-member-review label small,.provider-member-review legend small { color:var(--muted); font-size:9px; font-weight:400; }
.provider-member-rating select { width:100%; min-height:42px; margin-top:6px; padding:8px 10px; background:#fff; font-size:12px; }
.provider-member-review fieldset { min-width:0; margin:0; padding:0; border:0; }
.provider-member-review-tags { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin-top:6px; }
.provider-member-review-tags label { min-width:0; }
.provider-member-review-tags input { position:absolute; width:1px; height:1px; margin:0; opacity:0; pointer-events:none; }
.provider-member-review-tags span { min-height:36px; display:flex; align-items:center; padding:7px 9px; border:1px solid #cbd8d1; border-radius:5px; background:#fff; color:#46534d; font-size:10px; line-height:1.35; cursor:pointer; }
.provider-member-review-tags input:checked + span { border-color:#4e8068; box-shadow:inset 3px 0 0 #4e8068; background:#eaf5ef; color:#244c3a; }
.provider-member-review-tags .is-warning input:checked + span { border-color:#b75a53; box-shadow:inset 3px 0 0 #b75a53; background:#fff0ee; color:#873832; }
.provider-member-private-comment { grid-column:1 / -1; }
.provider-member-private-comment textarea { width:100%; min-height:76px; margin-top:6px; padding:9px 10px; resize:vertical; background:#fff; font-size:12px; line-height:1.55; }
.provider-member-review-submit { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:15px; }
.provider-member-review-submit small { max-width:620px; color:var(--muted); font-size:9px; line-height:1.5; }
.provider-member-review-submit button { min-height:40px; flex:none; padding:0 15px; border:1px solid var(--green); border-radius:5px; background:var(--green); color:#fff; font-size:11px; font-weight:800; }
@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; } .provider-member-review form { grid-template-columns:1fr; } .provider-member-review-tags { grid-template-columns:1fr; } .provider-member-private-comment,.provider-member-review-submit { grid-column:auto; } .provider-member-review-submit { align-items:stretch; flex-direction:column; } .provider-member-review-submit button { width:100%; } }

/* 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-status-tabs { display:flex; gap:6px; margin-top:22px; padding-bottom:2px; overflow-x:auto; scrollbar-width:thin; }
.admin-status-tabs a { min-width:max-content; display:flex; align-items:center; gap:7px; min-height:42px; padding:0 13px; border:1px solid #ccd6d1; border-radius:5px 5px 0 0; background:#f7f9f8; color:#4d5a54; font-size:11px; font-weight:800; }
.admin-status-tabs a:hover { border-color:#7da895; background:#f1f8f4; }
.admin-status-tabs a:focus-visible { outline:3px solid rgba(19,131,96,.22); outline-offset:-3px; }
.admin-status-tabs a.is-active { border-color:var(--green); background:var(--green); color:#fff; }
.admin-status-tabs strong { min-width:24px; padding:2px 5px; border-radius:4px; background:rgba(255,255,255,.78); color:#45534c; font-size:9px; text-align:center; }
.admin-status-tabs a.is-active strong { background:#fff; color:var(--green-dark); }
.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 { position:relative; display:flex; justify-content:space-between; gap:20px; padding:18px 54px 15px 20px; cursor:pointer; list-style:none; }
.admin-request-summary::-webkit-details-marker { display:none; }
.admin-request-summary::after { content:""; position:absolute; top:50%; right:22px; width:9px; height:9px; border-right:2px solid #66746d; border-bottom:2px solid #66746d; transform:translateY(-65%) rotate(45deg); transition:transform .18s ease; }
.admin-request-card[open] > .admin-request-summary { border-bottom:1px solid var(--line); background:#fbfcfb; }
.admin-request-card[open] > .admin-request-summary::after { transform:translateY(-35%) rotate(225deg); }
.admin-request-summary:hover { background:#f6faf8; }
.admin-request-summary:focus-visible { outline:3px solid rgba(19,131,96,.2); outline-offset:-3px; }
.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-consultation-alert { display:flex; align-items:center; gap:8px; margin-top:8px; color:#765504; }
.admin-consultation-alert strong { padding:5px 7px; border-radius:4px; background:#fff1bd; font-size:11px; }
.admin-consultation-alert span { font-size:11px; font-weight:700; }
.admin-consultation-alert.is-overdue strong { background:#a6342d; color:#fff; }
.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-cancel-alert { display:flex; align-items:center; gap:9px; margin-bottom:14px; padding:10px 12px; border-left:4px solid #8d9692; background:#f0f3f1; color:#4d5953; }
.admin-cancel-alert strong { font-size:11px; }
.admin-cancel-alert span { font-size:10px; }
.admin-cancel-alert.is-direct-trade { border-left-color:#a43a35; background:#fff0ef; color:#792e29; }
.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-member-review { margin-top:14px; padding:14px; border:1px solid #d2d9d5; border-left:3px solid #557a68; border-radius:6px; background:#f8faf9; }
.admin-member-review-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.admin-member-review-heading > div span,.admin-member-review-heading > div strong { display:block; }
.admin-member-review-heading > div span { color:#315848; font-size:10px; font-weight:800; }
.admin-member-review-heading > div strong { margin-top:3px; color:#8b5b0b; font-size:15px; }
.admin-member-review-heading > small { padding:4px 7px; border-radius:4px; background:#eef1ef; color:#526059; font-size:9px; font-weight:700; }
.admin-member-review > p { margin-top:7px; color:#4d5a54; font-size:10px; }
.admin-member-review-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.admin-member-review-comment { margin-top:10px; padding:10px 11px; border:1px solid #e0e5e2; background:#fff; }
.admin-member-review-comment strong { font-size:9px; }
.admin-member-review-comment p { margin-top:4px; font-size:11px; line-height:1.6; }
.admin-member-review > time { display:block; margin-top:7px; color:var(--muted); font-size:9px; }
.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-status-tabs { margin-inline:-14px; padding-inline:14px; } .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; padding:15px 44px 14px 15px; } .admin-request-summary::after { right:18px; } .admin-request-main h2 { font-size:17px; } .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; } }

/* Provider workspace */
.provider-dashboard { --provider-sidebar-width:246px; min-height:100vh; background:#f4f6f5; }
.provider-sidebar { position:fixed; inset:0 auto 0 0; z-index:40; display:flex; width:var(--provider-sidebar-width); flex-direction:column; background:#25332f; color:#fff; box-shadow:1px 0 0 rgba(0,0,0,.12); }
.provider-sidebar-brand { display:flex; align-items:center; justify-content:space-between; min-height:74px; padding:0 22px; border-bottom:1px solid rgba(255,255,255,.1); }
.provider-sidebar-brand img { display:block; width:128px; filter:brightness(0) invert(1); }
.provider-sidebar-brand button { display:none; width:36px; height:36px; padding:0; border:0; background:transparent; color:#fff; }
.provider-sidebar-account { display:grid; grid-template-columns:42px minmax(0,1fr); align-items:center; gap:11px; padding:18px 20px; border-bottom:1px solid rgba(255,255,255,.1); }
.provider-sidebar-account .provider-avatar { width:42px; height:42px; border-color:rgba(255,255,255,.2); }
.provider-sidebar-account strong,.provider-sidebar-account small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.provider-sidebar-account strong { font-size:13px; }
.provider-sidebar-account small { margin-top:3px; color:#a9bbb5; font-size:10px; }
.provider-sidebar-nav { display:grid; gap:3px; padding:13px 10px; }
.provider-sidebar-nav a,.provider-sidebar-nav button,.provider-sidebar-footer a,.provider-sidebar-footer button { display:grid; grid-template-columns:21px minmax(0,1fr) auto; align-items:center; gap:11px; width:100%; min-height:47px; padding:0 13px; border:0; border-radius:5px; background:transparent; color:#dbe4e1; font:inherit; font-size:12px; font-weight:800; text-align:left; text-decoration:none; cursor:pointer; }
.provider-sidebar-nav svg,.provider-sidebar-footer svg { width:18px; height:18px; }
.provider-sidebar-nav b { display:grid; place-items:center; min-width:22px; height:22px; padding:0 6px; border-radius:11px; background:#40534d; color:#fff; font-size:10px; }
.provider-sidebar-nav a:hover,.provider-sidebar-nav button:hover,.provider-sidebar-nav a.is-active { background:#101916; color:#fff; }
.provider-sidebar-nav a.is-active { box-shadow:inset 3px 0 0 #28b58a; }
.provider-sidebar-nav a.is-active b { background:#15956f; }
.provider-sidebar-footer { display:grid; gap:3px; margin-top:auto; padding:12px 10px 20px; border-top:1px solid rgba(255,255,255,.1); }
.provider-sidebar-footer a,.provider-sidebar-footer button { color:#aebdb8; }
.provider-workspace { min-height:100vh; margin-left:var(--provider-sidebar-width); }
.provider-dashboard .provider-header { position:sticky; top:0; z-index:25; min-height:66px; padding:0 34px; border-bottom:1px solid #dce3df; background:rgba(255,255,255,.96); box-shadow:0 1px 5px rgba(20,43,35,.04); }
.provider-dashboard .provider-header > div:last-child { align-items:center; }
.provider-menu-button { display:none; }
.provider-header-title { display:grid; gap:1px; }
.provider-header-title strong { font-size:14px; }
.provider-header-title small { color:var(--muted); font-size:9px; }
.provider-header-profile { display:flex !important; align-items:center; gap:8px; border:0 !important; }
.provider-header-profile .provider-avatar { width:32px; height:32px; }
.provider-header-profile svg { width:14px; }
.provider-dashboard .provider-shell { width:min(1280px,100%); min-height:auto; margin:0 auto; padding:32px 42px 64px; }
.provider-view[hidden] { display:none !important; }
.provider-page-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid #d6ded9; }
.provider-page-heading span { color:#13815f; font-size:9px; font-weight:900; }
.provider-page-heading h1 { margin-top:3px; font-size:25px; }
.provider-page-heading p { max-width:460px; color:var(--muted); font-size:11px; text-align:right; }
.provider-dashboard .provider-welcome { margin-top:0; padding:22px 24px; border:1px solid #d9e1dd; background:#fff; }
.provider-dashboard .provider-welcome h2 { margin-top:3px; font-size:21px; }
.provider-dashboard .provider-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:16px; }
.provider-dashboard .provider-metrics > a,.provider-dashboard .provider-metrics > button { display:block; min-width:0; padding:18px 20px; border:0; border-right:1px solid var(--line); border-radius:0; background:#fff; color:inherit; font:inherit; text-align:left; text-decoration:none; cursor:pointer; }
.provider-dashboard .provider-metrics > :last-child { border-right:0; }
.provider-dashboard .provider-metrics span,.provider-dashboard .provider-metrics strong,.provider-dashboard .provider-metrics small { display:block; }
.provider-dashboard .provider-metrics span { color:var(--muted); font-size:10px; }
.provider-dashboard .provider-metrics strong { margin-top:5px; font-size:24px; }
.provider-dashboard .provider-metrics small { display:flex; align-items:center; gap:5px; margin-top:10px; color:#15795e; font-size:10px; font-weight:800; }
.provider-dashboard .provider-metrics small svg { width:13px; }
.provider-home-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:16px; }
.provider-home-actions a { display:grid; grid-template-columns:42px minmax(0,1fr) 18px; align-items:center; gap:13px; min-height:78px; padding:14px 17px; border:1px solid #d9e1dd; background:#fff; color:#25332f; text-decoration:none; }
.provider-home-actions > a > svg:first-child { width:22px; height:22px; padding:9px; box-sizing:content-box; background:#e6f6f0; color:#12815f; }
.provider-home-actions strong,.provider-home-actions small { display:block; }
.provider-home-actions strong { font-size:13px; }
.provider-home-actions small { margin-top:4px; color:var(--muted); font-size:10px; }
.provider-home-actions > a > svg:last-child { width:16px; color:#8da099; }
.provider-dashboard .provider-section { margin-top:0; }
.provider-dashboard .provider-section-heading { margin:0 0 12px; }
.provider-dashboard .provider-lead,.provider-dashboard .provider-job { box-shadow:0 2px 10px rgba(30,54,45,.035); }
.provider-message-index { border:1px solid #d9e1dd; background:#fff; }
.provider-message-index > a { display:grid; grid-template-columns:40px minmax(0,1fr) auto 18px; align-items:center; gap:14px; min-height:72px; padding:12px 18px; border-bottom:1px solid #e1e6e3; color:#26332f; text-decoration:none; }
.provider-message-index > a:last-child { border-bottom:0; }
.provider-message-index > a:hover { background:#f3faf7; }
.provider-message-index-icon { display:grid; place-items:center; width:40px; height:40px; background:#e6f6f0; color:#12815f; }
.provider-message-index-icon svg { width:19px; }
.provider-message-index strong,.provider-message-index small { display:block; }
.provider-message-index strong { font-size:13px; }
.provider-message-index small { margin-top:4px; color:var(--muted); font-size:10px; }
.provider-message-index b { color:#52635d; font-size:10px; }
.provider-message-index > a > svg { width:16px; color:#8da099; }
.provider-intake-settings { display:grid; grid-template-columns:minmax(280px,1fr) 170px auto; align-items:end; gap:16px; margin-bottom:24px; padding:18px 20px; border:1px solid #d9e1dd; background:#fff; }
.provider-intake-settings > label:not(.provider-guest-toggle) { display:grid; gap:7px; color:#43534d; font-size:11px; font-weight:800; }
.provider-intake-settings input[type="number"] { min-height:42px; }
.provider-intake-settings label small { color:var(--muted); font-size:9px; font-weight:500; }
.provider-intake-settings > button,.availability-add-form > button { min-height:42px; padding:0 18px; border:0; background:#13815f; color:#fff; font-weight:900; }
.provider-guest-toggle { display:flex; align-items:center; gap:13px; min-height:54px; margin:0; cursor:pointer; }
.provider-guest-toggle input { width:20px; height:20px; margin:0; accent-color:#13815f; }
.provider-guest-toggle span,.provider-guest-toggle strong,.provider-guest-toggle small { display:block; }
.provider-guest-toggle strong { color:#26332f; font-size:13px; }
.provider-guest-toggle small { margin-top:4px; }
.availability-toolbar { display:grid; grid-template-columns:42px minmax(170px,auto) 42px; justify-content:center; align-items:center; margin-top:4px; border:1px solid #d9e1dd; border-bottom:0; background:#fff; }
.availability-toolbar a { display:grid; place-items:center; min-height:46px; color:#13815f; }
.availability-toolbar a:first-child { border-right:1px solid #e1e6e3; }
.availability-toolbar a:last-child { border-left:1px solid #e1e6e3; }
.availability-toolbar svg { width:17px; }
.availability-toolbar strong { padding:0 28px; font-size:14px; text-align:center; }
.availability-weekdays,.availability-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); min-width:700px; }
.availability-weekdays { border:1px solid #d9e1dd; border-bottom:0; background:#f7f9f8; }
.availability-weekdays span { padding:8px; border-right:1px solid #e1e6e3; color:#687770; font-size:10px; font-weight:800; text-align:center; }
.availability-weekdays span:first-child { color:#bb5353; }
.availability-weekdays span:last-child { border-right:0; color:#407da8; }
.availability-calendar { border-top:1px solid #d9e1dd; border-left:1px solid #d9e1dd; background:#fff; }
.availability-day { min-height:112px; padding:8px; border-right:1px solid #d9e1dd; border-bottom:1px solid #d9e1dd; background:#fff; overflow:hidden; }
.availability-day > strong { display:block; margin-bottom:6px; color:#33423d; font-size:11px; }
.availability-day.is-past { background:#f3f5f4; }
.availability-day.is-past > strong { color:#a7b1ad; }
.availability-day.is-empty { background:#f7f8f8; }
.availability-day.is-blocked { background:#fff8f3; }
.availability-booked { display:block; margin-bottom:5px; padding:4px 5px; background:#e5f5ef; color:#106f54; font-size:9px; font-weight:900; }
.availability-block { display:grid; grid-template-columns:minmax(0,1fr) 22px; align-items:start; gap:3px; margin-top:4px; padding:5px; background:#f9e4dc; color:#944a35; font-size:9px; }
.availability-block span,.availability-block small { display:block; min-width:0; overflow-wrap:anywhere; }
.availability-block small { margin-top:2px; opacity:.8; }
.availability-block button { display:grid; place-items:center; width:22px; height:22px; padding:0; border:0; background:transparent; color:#944a35; }
.availability-block svg { width:13px; }
.availability-add-form { display:grid; grid-template-columns:minmax(150px,1fr) auto minmax(110px,.65fr) minmax(110px,.65fr) minmax(190px,1.2fr) auto; align-items:end; gap:12px; margin-top:16px; padding:18px 20px; border:1px solid #d9e1dd; background:#fff; }
.availability-add-form > label { display:grid; gap:7px; color:#43534d; font-size:10px; font-weight:800; }
.availability-add-form input { min-width:0; min-height:42px; }
.availability-all-day { display:flex !important; align-items:center; gap:7px; min-height:42px; padding:0 4px; white-space:nowrap; }
.availability-all-day input { width:18px; min-height:0; height:18px; margin:0; accent-color:#13815f; }
.availability-note small { color:var(--muted); font-weight:500; }
.provider-request-schedule { display:flex; align-items:center; gap:8px; margin:0 0 12px; padding:9px 11px; border-left:3px solid #15956f; background:#edf8f3; color:#275246; font-size:10px; }
.provider-request-schedule small { margin-left:auto; color:#687770; }
.provider-blog-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:20px; align-items:start; }
.provider-blog-editor,.provider-blog-index { padding:20px; border:1px solid #d9e1dd; background:#fff; }
.provider-blog-editor { display:grid; gap:15px; }
.provider-blog-editor > label,.provider-blog-edit-form > label { display:grid; gap:7px; color:#43534d; font-size:11px; font-weight:800; }
.provider-blog-editor label small { color:var(--muted); font-weight:500; }
.provider-blog-editor textarea,.provider-blog-edit-form textarea { resize:vertical; line-height:1.7; }
.provider-blog-publish { display:grid; grid-template-columns:180px 1fr; align-items:end; gap:12px; }
.provider-blog-publish label { display:grid; gap:7px; color:#43534d; font-size:11px; font-weight:800; }
.provider-blog-publish button { min-height:42px; border:0; background:#13815f; color:#fff; font-weight:900; }
.provider-blog-index .provider-section-heading a { color:#13815f; font-size:10px; font-weight:800; }
.provider-blog-row { display:grid; grid-template-columns:92px minmax(0,1fr) auto; gap:14px; align-items:start; padding:15px 0; border-top:1px solid #e1e6e3; }
.provider-blog-row > img,.provider-blog-placeholder { width:92px; aspect-ratio:4/3; object-fit:cover; background:#edf2ef; }
.provider-blog-placeholder { display:grid; place-items:center; color:#8da099; }
.provider-blog-placeholder svg { width:24px; }
.provider-blog-row h3 { margin:5px 0; font-size:14px; line-height:1.5; }
.provider-blog-row small,.provider-blog-row > div > a { display:block; color:var(--muted); font-size:9px; }
.provider-blog-row > div > a { margin-top:7px; color:#13815f; font-weight:800; }
.provider-blog-status { display:inline-block; padding:3px 6px; background:#e9eeeb; color:#52635d; font-size:8px; font-weight:900; }
.provider-blog-status.status-published { background:#ddf4eb; color:#107254; }
.provider-blog-row details { position:relative; }
.provider-blog-row summary { padding:7px 10px; border:1px solid #cbd6d1; color:#33423d; font-size:10px; font-weight:800; cursor:pointer; list-style:none; }
.provider-blog-row details[open] { grid-column:1 / -1; }
.provider-blog-row details[open] summary { width:max-content; margin:0 0 12px auto; }
.provider-blog-edit-form { display:grid; gap:13px; padding:16px; background:#f6f8f7; }
.provider-blog-remove { display:flex !important; grid-template-columns:none !important; align-items:center; gap:7px !important; }
.provider-blog-remove input { width:17px; height:17px; }
.provider-blog-delete { margin-top:8px; text-align:right; }
.provider-blog-delete button { min-height:34px; padding:0 11px; border:1px solid #dca7a3; background:#fff; color:#a23d37; font-size:10px; font-weight:800; }
.provider-sidebar-scrim { position:fixed; inset:0; z-index:35; background:rgba(10,20,17,.48); }

@media (max-width:900px) {
  .provider-dashboard { --provider-sidebar-width:0px; }
  .provider-sidebar { width:min(300px,86vw); transform:translateX(-105%); transition:transform .2s ease; }
  .provider-dashboard.is-menu-open .provider-sidebar { transform:translateX(0); }
  .provider-sidebar-brand button,.provider-menu-button { display:grid; place-items:center; }
  .provider-menu-button { width:38px; height:38px; padding:0; border:1px solid #d4ddd8; background:#fff; color:#26332f; }
  .provider-dashboard .provider-header { justify-content:flex-start; padding:0 18px; }
  .provider-dashboard .provider-header > div:last-child { margin-left:auto; }
  .provider-dashboard .provider-shell { padding:26px 22px 50px; }
  .provider-home-actions { grid-template-columns:1fr; }
  .provider-intake-settings { grid-template-columns:minmax(0,1fr) 150px; }
  .provider-intake-settings > button { grid-column:1 / -1; }
  .provider-availability { overflow-x:auto; }
  .availability-add-form { grid-template-columns:1fr 1fr 1fr; min-width:700px; }
  .availability-note { grid-column:1 / 3; }
  .provider-blog-layout { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .provider-dashboard .provider-header { min-height:58px; padding:0 12px; }
  .provider-header-title small,.provider-header-profile > span:not(.provider-avatar) { display:none; }
  .provider-dashboard .provider-header .live-notification-button { width:38px; overflow:hidden; padding:0; font-size:0; }
  .provider-dashboard .provider-shell { padding:20px 13px 42px; }
  .provider-page-heading { display:block; margin-bottom:15px; padding-bottom:12px; }
  .provider-page-heading h1 { font-size:21px; }
  .provider-page-heading p { margin-top:6px; text-align:left; }
  .provider-dashboard .provider-welcome { align-items:flex-start; padding:16px; }
  .provider-dashboard .provider-welcome h2 { font-size:17px; }
  .provider-dashboard .provider-metrics { grid-template-columns:1fr 1fr; }
  .provider-dashboard .provider-metrics > a,.provider-dashboard .provider-metrics > button { padding:14px; }
  .provider-dashboard .provider-metrics > :nth-child(2) { border-right:0; }
  .provider-dashboard .provider-metrics > :last-child { grid-column:1 / -1; border-top:1px solid var(--line); }
  .provider-dashboard .provider-metrics strong { font-size:20px; }
  .provider-home-actions { grid-template-columns:1fr; }
  .provider-message-index > a { grid-template-columns:36px minmax(0,1fr) auto; gap:10px; padding:10px 12px; }
  .provider-message-index-icon { width:36px; height:36px; }
  .provider-message-index > a > svg { display:none; }
  .provider-intake-settings { grid-template-columns:1fr; }
  .provider-intake-settings > button { grid-column:auto; }
  .provider-request-schedule { align-items:flex-start; flex-direction:column; }
  .provider-request-schedule small { margin-left:0; }
  .provider-blog-editor,.provider-blog-index { padding:15px; }
  .provider-blog-publish { grid-template-columns:1fr; }
  .provider-blog-row { grid-template-columns:72px minmax(0,1fr) auto; gap:10px; }
  .provider-blog-row > img,.provider-blog-placeholder { width:72px; }
}
@media (prefers-reduced-motion:reduce) { .provider-sidebar { transition:none; } }

/* Public provider blog */
.public-blog-body { min-height:100vh; margin:0; background:#f5f7f6; color:#26332f; }
.public-blog-header { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; min-height:68px; padding:0 max(24px,calc((100vw - 1160px)/2)); border-bottom:1px solid #dce3df; background:rgba(255,255,255,.97); }
.public-blog-header img { display:block; width:132px; }
.public-blog-header nav { display:flex; align-items:center; gap:20px; }
.public-blog-header nav a { padding:8px 0; color:#51615b; font-size:12px; font-weight:800; text-decoration:none; }
.public-blog-header nav a.is-active { border-bottom:2px solid #15956f; color:#106f54; }
.public-blog-main { width:min(1160px,calc(100% - 40px)); min-height:70vh; margin:0 auto; padding:50px 0 72px; }
.public-blog-heading { padding:10px 0 32px; border-bottom:1px solid #d5ded9; }
.public-blog-heading span { color:#13815f; font-size:10px; font-weight:900; }
.public-blog-heading h1 { margin:8px 0 6px; font-size:32px; letter-spacing:0; }
.public-blog-heading p { color:#61716b; font-size:13px; }
.public-blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:28px; }
.public-blog-card { border:1px solid #d9e1dd; background:#fff; }
.public-blog-card > a { display:block; height:100%; color:inherit; text-decoration:none; }
.public-blog-card > a > img,.public-blog-card-placeholder { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:#e9f2ee; }
.public-blog-card-placeholder { display:grid; place-items:center; color:#6f9387; }
.public-blog-card-placeholder svg { width:36px; height:36px; }
.public-blog-card > a > div { padding:18px; }
.public-blog-card div > span { color:#13815f; font-size:9px; font-weight:900; }
.public-blog-card h2 { margin:7px 0 8px; font-size:17px; line-height:1.55; }
.public-blog-card p { min-height:4.8em; color:#61716b; font-size:11px; line-height:1.6; }
.public-blog-card footer { display:flex; justify-content:space-between; gap:10px; margin-top:18px; padding-top:12px; border-top:1px solid #e3e8e5; color:#71817b; font-size:9px; }
.public-blog-card footer strong { color:#40514b; }
.public-blog-article { width:min(820px,100%); margin:0 auto; }
.public-blog-back { display:inline-flex; align-items:center; gap:6px; margin-bottom:20px; color:#13815f; font-size:11px; font-weight:800; text-decoration:none; }
.public-blog-back svg { width:15px; }
.public-blog-cover { display:block; width:100%; max-height:470px; object-fit:cover; }
.public-blog-article > header { padding:30px 0; border-bottom:1px solid #d5ded9; }
.public-blog-article > header > span { color:#13815f; font-size:10px; font-weight:900; }
.public-blog-article h1 { margin:9px 0 18px; font-size:32px; line-height:1.45; letter-spacing:0; }
.public-blog-byline { display:flex; align-items:center; gap:9px; color:#687770; font-size:10px; }
.public-blog-avatar { display:grid; place-items:center; width:34px; height:34px; overflow:hidden; border-radius:50%; background:#13815f; color:#fff; font-weight:900; }
.public-blog-avatar img { width:100%; height:100%; object-fit:cover; }
.public-blog-byline time { margin-left:auto; }
.public-blog-lead { margin-top:22px; padding:16px 18px; border-left:3px solid #15956f; background:#eaf6f1; color:#40514b; font-size:13px; line-height:1.8; }
.public-blog-content { padding:34px 0; color:#33423d; font-size:14px; line-height:2; }
.public-blog-article > footer { padding:24px 0; border-top:1px solid #d5ded9; text-align:center; }
.public-blog-article > footer a,.public-blog-empty a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 22px; background:#13815f; color:#fff; font-size:12px; font-weight:900; text-decoration:none; }
.public-blog-empty { grid-column:1 / -1; padding:70px 20px; border:1px solid #d9e1dd; background:#fff; text-align:center; }
.public-blog-empty svg { width:40px; height:40px; color:#7a9289; }
.public-blog-empty h1,.public-blog-empty h2 { margin:14px 0 6px; font-size:22px; }
.public-blog-empty p { margin-bottom:22px; color:#687770; font-size:12px; }
.public-blog-site-footer { display:flex; align-items:center; justify-content:center; gap:18px; padding:30px 20px; border-top:1px solid #dce3df; background:#fff; }
.public-blog-site-footer img { width:110px; }
.public-blog-site-footer p { color:#687770; font-size:10px; }
@media (max-width:850px) { .public-blog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .public-blog-header { min-height:60px; padding:0 14px; } .public-blog-header img { width:112px; } .public-blog-header nav a:first-child { display:none; } .public-blog-main { width:calc(100% - 28px); padding:32px 0 54px; } .public-blog-heading h1,.public-blog-article h1 { font-size:24px; } .public-blog-grid { grid-template-columns:1fr; gap:14px; } .public-blog-card p { min-height:0; } .public-blog-article > header { padding:22px 0; } .public-blog-content { padding:25px 0; font-size:13px; } }
@media (max-width:700px) { .admin-header { align-items:stretch; flex-direction:column; } .admin-title-group { gap:12px; } .admin-header-logo .site-logo { width:118px; } }

@media (max-width:800px) {
  .consult-hero-visual { height:auto; }
  .consult-strengths-visual { padding:38px 22px 44px; }
  .consult-strengths-image-grid { gap:12px; }
  .consult-headline-image { top:16px; width:61%; }
  .consult-bubble { width:31%; }
  .bubble-aircon,.bubble-lightbulb { top:120px; }
  .bubble-water,.bubble-car { top:220px; }
  .bubble-garden,.bubble-pc { top:320px; }
  .bubble-pet,.bubble-cityhall { top:420px; }
  .consult-visual-message { top:205px; }
  .consult-visual-brand { bottom:25px; }
  .consult-hero-action { width:min(720px,calc(100% - 36px)); }
  .consult-strength-grid { grid-template-columns:1fr; }
  .consult-strength-grid article { min-height:0; }
}

@media (max-width:520px) {
  .consult-hero { margin:0 -14px; }
  .consult-hero-visual { height:auto; }
  .consult-strengths-visual { padding:34px 20px 40px; }
  .consult-strengths-title-image { width:min(100%,437px); }
  .consult-strengths-image-grid { grid-template-columns:minmax(0,320px); gap:16px; margin-top:22px; }
  .consult-people-background { object-position:center bottom; }
  .consult-headline-image { top:16px; width:94%; }
  .consult-visual-message { top:140px; padding:4px 9px; }
  .consult-visual-message span { font-size:12px; }
  .consult-visual-message strong { font-size:20px; }
  .consult-bubble-list { position:absolute; right:0; bottom:15px; left:0; z-index:6; display:flex; gap:8px; padding:8px 14px 14px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .consult-bubble-list::-webkit-scrollbar { display:none; }
  .consult-bubble { position:static; flex:0 0 78%; width:78%; max-width:310px; scroll-snap-align:center; }
  .consult-town-image,.consult-visual-brand { display:none; }
  .consult-hero-action { width:calc(100% - 28px); padding:30px 0 34px; }
  .consult-action-heading h2 { font-size:20px; }
  .consult-action-heading p { font-size:12px; }
  .consult-quick-form { padding:14px; }
  .consult-quick-form textarea { min-height:112px; font-size:14px; }
  .consult-quick-actions { grid-template-columns:1fr; }
  .consult-photo-button,.consult-submit-button { min-height:50px; }
  .consult-assurances { align-items:flex-start; flex-direction:column; padding-left:4px; }
  .consult-category-link { margin-inline:auto; }
  .consult-strengths { padding:40px 0 28px; }
  .consult-section-heading h2,.category-browse-heading h2 { font-size:22px; }
  .consult-strength-grid { gap:10px; margin-top:18px; }
  .consult-strength-grid article { padding:22px 18px 18px; }
  .category-browse-heading { margin-bottom:18px; }
  .push-main { padding-top:42px; }
}
