:root{--primary:#0D5F63;--primary-hover:#064C54;--primary-deep:#0B3F46;--primary-tint:#E3F0EE;--on-primary:#FFFFFF;--on-primary-soft:#CFE3E0;--accent:#B74535;--accent-hover:#9C3729;--on-accent:#FFFFFF;--accent-tint:#FFF0EB;--accent-ink:#702B25;--ink:#102D36;--muted:#52636B;--surface:#FFFFFF;--canvas:#F4F8F7;--tint:#D8E5E2;--line:#D3E0DD;--field:#6B817E;--success:#0B6B45;--success-tint:#E4F4EA;--success-ink:#0B5637;--warning:#8A4B05;--warning-tint:#FFF2D8;--warning-ink:#734006;--error:#A62C3A;--error-tint:#FCE9ED;--error-ink:#8E2532;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-pill:999px;--shadow-card:0 1px 2px rgb(16 45 54 / .06),0 12px 28px -16px rgb(16 45 54 / .28);--shadow-lift:0 2px 4px rgb(16 45 54 / .08),0 18px 36px -16px rgb(16 45 54 / .34);--font-display:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-body:"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-family:var(--font-body);color:var(--ink);background:var(--canvas);font-size:16px;line-height:1.6}
*{box-sizing:border-box}body{margin:0}a{color:var(--primary);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.65}a,button,input,select,textarea,summary{touch-action:manipulation}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin:0 0 var(--space-4)}h1,h2,h3{font-family:var(--font-display);line-height:1.2;letter-spacing:-.02em;font-weight:700}h1{font-size:clamp(2rem,3.4vw,3.1rem);font-weight:800;max-width:920px}h2{font-size:1.5rem}h3{font-size:1.1875rem}p:last-child{margin-bottom:0}small,.quiet{font-size:.875rem;color:var(--muted)}strong{font-weight:700}img{max-width:100%}[hidden]{display:none!important}.sprite{position:absolute;width:0;height:0;overflow:hidden}.icon{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.container{width:min(1200px,calc(100% - 64px));margin-inline:auto}main.container{padding-block:var(--space-6) var(--space-8);min-height:62vh}.site-header{background:var(--surface);border-bottom:1px solid var(--line)}.header-inner{width:min(1200px,calc(100% - 64px));margin:auto;min-height:76px;display:flex;align-items:center;gap:var(--space-6)}.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.4rem;color:var(--ink);font-weight:800;text-decoration:none;letter-spacing:-.03em;min-height:44px}.brand-mark{width:38px;height:38px;flex:none;display:block}.brand-mark-sm{width:30px;height:30px}.site-header nav{display:flex;gap:var(--space-5);flex:1}.site-header nav a{color:var(--muted);text-decoration:none;display:flex;align-items:center;min-height:44px;font-size:.9375rem;font-weight:500}.site-header nav a:hover{color:var(--primary)}.site-header nav a[aria-current]{color:var(--primary);font-weight:700;box-shadow:inset 0 -3px var(--primary)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:46px;padding:10px 20px;border:2px solid var(--primary);border-radius:12px;background:var(--primary);color:var(--on-primary);text-decoration:none;font-weight:600;font-size:.9375rem;line-height:1.4;transition:background-color .15s,border-color .15s}.button:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--on-primary)}.button-outline{background:var(--surface);color:var(--primary)}.button-outline:hover{background:var(--primary-tint);border-color:var(--primary);color:var(--primary-hover)}.button-quiet{background:none;border-color:transparent;color:var(--primary)}.button-quiet:hover{background:var(--primary-tint);border-color:transparent;color:var(--primary-hover)}.button-accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.button-lg{min-height:54px;padding:12px 28px;font-size:1.0625rem}
.preview-banner{background:var(--primary-deep);color:var(--on-primary-soft);font-size:.8125rem}.preview-banner .container{display:flex;align-items:center;gap:var(--space-3);padding-block:10px}.preview-banner strong{white-space:nowrap;color:var(--on-primary)}.preview-banner .icon{width:1.1em;height:1.1em}.page-heading{margin-bottom:var(--space-6)}.eyebrow{font-size:.8125rem;font-weight:700;color:var(--primary);margin-bottom:var(--space-2)}.lede{font-size:1.125rem;color:var(--muted);max-width:650px;margin-bottom:var(--space-5);line-height:1.6}
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-7);align-items:center;background:var(--primary-tint);border-radius:var(--radius-lg);padding:var(--space-7) var(--space-7) var(--space-6);margin-bottom:var(--space-7)}.hero h1{margin-bottom:var(--space-4)}.hero .lede{color:var(--ink)}.hero-art{width:100%;height:auto;max-height:380px;display:block}.chip-row{list-style:none;margin:var(--space-5) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-pill);padding:6px 14px 6px 10px;font-size:.8125rem;font-weight:500}.chip .icon{color:var(--primary)}
.how{margin-bottom:var(--space-7)}.how h2{margin-bottom:var(--space-5)}.how-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5);position:relative}.how-steps li{position:relative;padding-top:0}.how-steps li:not(:last-child)::after{content:"";position:absolute;top:26px;left:68px;right:calc(var(--space-5) * -1 + 8px);border-top:2px dashed #9DBFC0}.step-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--primary);color:var(--on-primary);margin-bottom:var(--space-4);position:relative;z-index:1}.step-icon .icon{width:24px;height:24px}.how-steps h3{margin-bottom:var(--space-1)}.how-steps p{color:var(--muted);font-size:.9375rem;max-width:30ch}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5);margin-block:var(--space-6) var(--space-5)}.section-heading h2{margin:0}.filter-bar,.compare-controls{display:flex;align-items:end;gap:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-5);margin-bottom:var(--space-5);box-shadow:var(--shadow-card)}.filter-bar>div{min-width:245px}.profile-note{font-size:.8125rem;color:var(--muted);margin:auto 0 auto auto;max-width:350px}.profile-note .sample-label{margin-right:6px}label,legend{display:block;font-weight:600;font-size:.875rem;margin-bottom:var(--space-2)}input,select,textarea{width:100%;max-width:100%;min-width:0;border:1.5px solid var(--field);border-radius:10px;min-height:46px;background:var(--surface);color:var(--ink);padding:10px 12px}select{padding-right:30px}textarea{resize:vertical}::placeholder{color:var(--muted);opacity:1}input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:var(--error);border-width:2px}
.request-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}.request-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);display:flex;flex-direction:column;position:relative;padding:var(--space-5);box-shadow:var(--shadow-card);transition:box-shadow .18s,border-color .18s}.request-card:hover{border-color:var(--primary);box-shadow:var(--shadow-lift)}.request-card:focus-within{outline:3px solid var(--accent);outline-offset:3px}.card-topline{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.sample-label{display:inline-flex;align-items:center;background:var(--accent-tint);color:var(--accent-ink);border:1px solid #F0C9BE;border-radius:var(--radius-sm);font-size:.75rem;line-height:1.5;font-weight:700;padding:2px 8px;vertical-align:middle}
.status-pill{display:inline-flex;align-items:center;gap:5px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;padding:3px 10px 3px 8px;background:var(--tint);color:var(--ink)}.status-pill .icon{width:14px;height:14px}.status-pill[data-status="received"]{background:var(--success-tint);color:var(--success-ink)}.status-pill[data-status="closing"]{background:var(--accent-tint);color:var(--accent-ink)}.status-pill[data-status="waiting"]{background:var(--warning-tint);color:var(--warning-ink)}.card-category{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.category-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--primary-tint);color:var(--primary);flex:none}.category-icon .icon{width:22px;height:22px}.category-label{font-size:.8125rem;font-weight:600;color:var(--muted);margin:0}.request-card h3{line-height:1.3;font-size:1.25rem}.request-card-link{color:var(--ink);text-decoration:none}.request-card-link::after{content:"";position:absolute;inset:0;border-radius:var(--radius-md)}.request-card-link:focus-visible{outline:none}.request-card-link:hover{color:var(--primary);text-decoration:underline}
.card-description{font-size:.9375rem;color:var(--muted);margin-bottom:var(--space-4);flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.location{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem;font-weight:500;color:var(--ink);margin-bottom:var(--space-3)}.location .icon{color:var(--primary)}.budget{display:flex;gap:var(--space-3);align-items:flex-start;background:var(--primary-tint);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.budget-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--surface);color:var(--primary);flex:none}.budget p{margin:0}.budget-label{font-size:.8125rem;font-weight:600;color:var(--muted)}.budget-value{font-family:var(--font-display);font-size:1.375rem;font-weight:800;letter-spacing:-.02em;line-height:1.25;color:var(--ink);font-variant-numeric:tabular-nums}.budget-help{font-size:.75rem;color:var(--muted);margin-top:2px!important}.budget-feature{padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5)}.budget-feature .budget-value{font-size:1.75rem}.budget-inline{margin:0;padding:var(--space-2) var(--space-4) var(--space-2) var(--space-3)}.match-label{display:inline-flex;align-items:center;gap:7px;font-size:.75rem;color:var(--success-ink);background:var(--success-tint);border-radius:var(--radius-pill);padding:2px 10px;font-weight:700;margin:0 0 var(--space-3);align-self:flex-start}.match-label:before{content:"";display:inline-block;width:6px;height:6px;background:var(--success);border-radius:100%}
.card-bottom{display:flex;justify-content:space-between;gap:var(--space-2);font-size:.8125rem;color:var(--muted);padding-top:var(--space-3);border-top:1px solid var(--line)}.card-bottom span{display:inline-flex;align-items:center;gap:6px}.card-bottom .icon{width:16px;height:16px;color:var(--primary)}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;font-size:.875rem;font-weight:600;margin-bottom:var(--space-3);text-decoration:none}.back-link:hover{text-decoration:underline}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-card)}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:var(--space-4)}.panel-heading h2{font-size:1.3rem}.form-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--space-7);align-items:start}.field{margin-bottom:var(--space-5);min-width:0}.field small{display:block;margin-top:6px;font-size:.75rem}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}fieldset{border:0;padding:0;margin:0 0 var(--space-5);min-width:0}fieldset .field{margin-bottom:var(--space-2)}fieldset legend{padding:0;margin-bottom:var(--space-3)}.field-help{font-size:.75rem;color:var(--muted);margin:0}.form-actions{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;padding-top:var(--space-2)}.form-actions .quiet{font-size:.75rem}
.brief-guide h2{font-size:1.5rem}.brief-guide ol{list-style:none;padding:0;margin-block:var(--space-5)}.brief-guide li{display:flex;gap:var(--space-4);margin-bottom:var(--space-5)}.brief-guide .step-icon{width:44px;height:44px;margin:0}.brief-guide .step-icon .icon{width:22px;height:22px}.brief-guide li p{font-size:.875rem;color:var(--muted);margin-top:2px}.notice{font-size:.8125rem;color:var(--muted);border-top:1px solid var(--line);padding-top:var(--space-4)}.error-summary{border:1px solid var(--error);border-left-width:5px;background:var(--error-tint);color:var(--error-ink);padding:var(--space-4) var(--space-5);margin-block:var(--space-5);border-radius:var(--radius-sm)}.error-summary a{color:var(--error-ink)}.error-summary ul{padding-left:20px}.state-panel{padding:var(--space-6);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);margin-block:var(--space-5);box-shadow:var(--shadow-card)}.state-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--primary-tint);color:var(--primary);margin-bottom:var(--space-3)}.state-label{font-size:.8125rem;font-weight:600;color:var(--muted);margin-bottom:var(--space-1)}.state-switcher{margin-top:var(--space-6);font-size:.8125rem;color:var(--muted)}summary{min-height:44px;cursor:pointer;display:list-item;padding-block:12px}.state-switcher nav{display:flex;gap:var(--space-5);flex-wrap:wrap}.state-switcher nav a{display:flex;align-items:center;min-height:44px}
.detail-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--space-5);align-items:start}.brief-text{font-size:1.0625rem;line-height:1.8}.request-facts{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-card)}.request-facts dl{margin:0;display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr}.request-facts dl>div:first-child,.request-facts dl>div:nth-child(3){grid-column:1/-1;order:5}dt{display:flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--muted);margin-bottom:2px}dt .icon{width:16px;height:16px;color:var(--primary)}dd{margin:0;font-size:.9375rem;font-weight:600}.page-heading .category-label{font-size:.875rem}.page-heading .card-category{margin-bottom:var(--space-3)}.summary-line{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem;color:var(--muted)}.request-summary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);margin-top:var(--space-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-card)}.request-summary .budget-inline{background:var(--primary-tint)}.summary-fact{display:flex;align-items:center;gap:var(--space-2);margin:0;font-size:.875rem;font-weight:500}.summary-fact .icon{color:var(--primary)}.avatar{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--primary);color:var(--on-primary);font-family:var(--font-display);font-weight:700;font-size:.9375rem;flex:none}.provider{display:flex;align-items:center;gap:var(--space-3)}.provider h3{margin:0}.price{font-family:var(--font-display);font-size:1.75rem;font-weight:700;letter-spacing:-.03em;line-height:1.3;color:var(--ink);font-variant-numeric:tabular-nums}.price small{font-size:1rem;color:var(--muted)}.quote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}.quote-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-card)}.quote-card .price{margin-top:var(--space-4)}.quote-card>p:not(.price){font-size:.9375rem}.quote-facts{display:flex;gap:var(--space-7);margin:var(--space-4) 0}.settlement{font-size:.75rem!important;line-height:1.6;color:var(--muted);border-top:1px solid var(--line);padding-top:var(--space-4);margin-top:var(--space-5)}.compare-controls>div{flex:1;min-width:0}.compare-controls button{flex-shrink:0}
.comparison{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;font-size:.9375rem;box-shadow:var(--shadow-card)}.comparison th{text-align:left;background:var(--primary-tint);color:var(--ink);font-size:.8125rem;padding:var(--space-4) var(--space-5);font-weight:700}.comparison th:nth-child(1){width:21%}.comparison th:nth-child(2){width:15%}.comparison th:nth-child(3){width:15%}.comparison th:nth-child(4){width:13%}.comparison th:nth-child(5){width:36%}.comparison td{vertical-align:top;padding:var(--space-5);border-top:1px solid var(--line);overflow-wrap:break-word}.comparison .price{font-size:1.5rem;white-space:nowrap;display:block}.comparison .provider{margin-top:var(--space-3)}.provider-name{line-height:1.4}.fact-badge{display:inline-flex;max-width:100%;white-space:nowrap;align-items:center;gap:4px;font-size:.75rem;color:var(--success-ink);background:var(--success-tint);border-radius:var(--radius-pill);padding:2px 10px 2px 6px;margin-top:var(--space-2);font-weight:700}.fact-badge .icon{width:14px;height:14px}.comparison td>p{margin:0 0 var(--space-4)}.comparison td>p.settlement{margin-top:var(--space-4)}.comparison .button{font-size:.875rem}
.info-page{max-width:740px;margin:var(--space-5) auto var(--space-6)}.info-eyebrow{display:inline-flex;align-items:center;gap:6px;background:var(--primary-tint);color:var(--primary-hover);border-radius:var(--radius-pill);padding:4px 12px;font-size:.8125rem;font-weight:600}.info-page h2{font-size:1.35rem;margin-top:var(--space-6)}.info-page .button{margin-top:var(--space-5)}.info-steps{padding-left:24px}.info-steps li{padding-left:8px}
.site-footer{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-5);padding-block:var(--space-6);border-top:1px solid var(--line)}.site-footer .brand{font-size:1.15rem}.site-footer p{font-size:.8125rem;color:var(--muted);margin-bottom:var(--space-2)}.site-footer .pi-note{display:inline-flex;align-items:center;gap:6px;background:var(--primary-tint);color:var(--ink);border-radius:var(--radius-pill);padding:3px 12px 3px 8px;font-weight:600;font-size:.75rem}.site-footer .pi-note .icon{color:var(--primary);width:14px;height:14px}.site-footer nav{display:flex;gap:var(--space-5);flex-wrap:wrap}.site-footer nav a{display:inline-flex;align-items:center;min-width:44px;min-height:44px;padding-inline:6px;font-size:.875rem;color:var(--muted)}.site-footer nav a:hover{color:var(--primary)}.site-footer small{font-size:.75rem;color:var(--muted)}
dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-6);color:var(--ink);background:var(--surface);box-shadow:var(--shadow-lift)}dialog::backdrop{background:rgb(11 63 70 / .55)}dialog .card-topline{margin-bottom:var(--space-4)}.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}.skip-link{position:fixed;left:16px;top:-100px;z-index:10;padding:12px;background:var(--surface);color:var(--primary)}.skip-link:focus{top:8px}#request-preview-content p{overflow-wrap:anywhere}
.sign-in .label-short{display:none}
@media(min-width:1500px){.container,.header-inner{width:min(1320px,calc(100% - 96px))}}
@media(max-width:1050px){.hero{gap:var(--space-5);padding:var(--space-6)}.request-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header-inner{gap:var(--space-5)}.site-header nav{gap:var(--space-4)}.form-layout{gap:var(--space-6)}.filter-bar{flex-wrap:wrap}.profile-note{max-width:none;flex-basis:100%;margin:0}.compare-controls{flex-wrap:wrap}.compare-controls>div{flex:1 1 190px}.detail-layout{grid-template-columns:1.3fr 1fr}.how-steps li:not(:last-child)::after{display:none}}
@media(max-width:760px){.container,.header-inner{width:calc(100% - 40px)}main.container{padding-top:var(--space-5)}.header-inner{min-height:112px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;padding-block:14px 0}.brand{font-size:1.2rem}.brand-mark{width:34px;height:34px}.sign-in{font-size:.8125rem;padding:8px 12px;white-space:nowrap;justify-self:end}.site-header nav{grid-column:1/-1;grid-row:2;gap:var(--space-5)}.site-header nav a{font-size:.875rem;min-height:44px}.preview-banner .container{align-items:flex-start;font-size:.75rem;padding-block:10px;flex-wrap:wrap}.preview-banner .container span{flex:1 1 100%}.hero{display:block;padding:var(--space-5);margin-bottom:var(--space-6)}.hero h1{font-size:2rem}.hero-art{margin-top:var(--space-5);max-height:260px}.lede{font-size:1rem}.button-lg{width:100%}.how-steps{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}.how-steps li{display:grid;grid-template-columns:52px 1fr;column-gap:var(--space-4)}.how-steps .step-icon{grid-row:span 2;margin:0}.how-steps p{max-width:none}.section-heading{align-items:start;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.section-heading h2{font-size:1.35rem}.section-heading>.quiet{font-size:.75rem}.filter-bar{padding:var(--space-4);gap:var(--space-3)}.filter-bar>div{min-width:0;flex:1 1 100%}.filter-bar .button{width:100%}.profile-note{font-size:.75rem}.request-grid,.quote-grid,.form-layout,.detail-layout{grid-template-columns:minmax(0,1fr)}.request-card{padding:var(--space-5)}.panel,.quote-card{padding:var(--space-5)}.panel-heading h2{font-size:1.25rem}.page-heading{margin-bottom:var(--space-5)}.page-heading h1{font-size:2rem}.field-grid{grid-template-columns:minmax(0,1fr);gap:0}.brief-guide{padding:var(--space-2) 0}.form-actions{gap:var(--space-3)}.form-actions .button{width:100%}.request-facts{padding:var(--space-4)}.request-facts dl{gap:var(--space-4)}.quote-facts{gap:var(--space-6)}.request-summary{align-items:flex-start}.compare-controls{display:grid;grid-template-columns:minmax(0,1fr);padding:var(--space-4);gap:var(--space-4)}
.site-footer{gap:var(--space-4)}.site-footer>div,.site-footer nav{width:100%}.site-footer nav{gap:4px var(--space-5)}.site-footer small{display:block}.state-panel{padding:var(--space-5)}.info-page{margin-top:var(--space-2)}.info-page h1{font-size:2rem}dialog{padding:var(--space-5)}}
@media(max-width:1099px){.comparison{display:block;background:transparent;border:0;box-shadow:none;overflow:visible}.comparison thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.comparison tbody{display:grid;gap:var(--space-5)}.comparison tr{display:block;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-2) var(--space-5);box-shadow:var(--shadow-card)}.comparison td{display:block;padding:var(--space-4) 0;border:0;border-bottom:1px solid var(--line)}.comparison td:last-child{border-bottom:0;padding-bottom:var(--space-5)}.comparison td:not(:first-child):before{content:attr(data-label);display:block;color:var(--muted);font-size:.8125rem;margin-bottom:var(--space-1);font-weight:500}.comparison .provider-name{font-size:1rem}.comparison .price{font-size:1.5rem}.comparison .fact-badge{display:flex;width:fit-content;margin:var(--space-2) 0 0}.comparison td:last-child>p:first-child{margin-top:var(--space-2)}.comparison .button{width:100%}}
@media(max-width:767px){.site-footer nav a{margin-inline-start:-6px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.nowrap{white-space:nowrap}

.avatar[data-tone="1"]{background:var(--primary);color:var(--on-primary)}.avatar[data-tone="2"]{background:var(--accent);color:var(--on-accent)}.avatar[data-tone="3"]{background:var(--primary-deep);color:var(--on-primary)}.avatar[data-tone="4"]{background:var(--accent-ink);color:var(--on-accent)}
.ai-help{margin:var(--space-4) 0;font-size:.875rem;color:var(--muted)}.ai-help summary{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;cursor:pointer;font-weight:600;color:var(--muted);border-radius:var(--radius-pill);padding:0 var(--space-3)}.ai-help summary:hover{background:var(--primary-tint);color:var(--ink)}.ai-help summary:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.ai-help .icon{width:16px;height:16px;color:var(--primary)}.ai-help p{margin:var(--space-1) var(--space-3) var(--space-3)}.note-line{margin-top:var(--space-2)}
.summary-category{display:inline-flex;align-items:center;gap:var(--space-3);margin:0;font-weight:600;color:var(--ink)}.summary-category .category-icon{width:36px;height:36px}
@media(max-width:360px){.sign-in .label-long{display:none}.sign-in .label-short{display:inline}.sign-in{padding:8px 10px}.brand{font-size:1.05rem;gap:8px}.brand-mark{width:30px;height:30px}}
/* Slice 2: account bar, sign-in, onboarding and profile. Same tokens as slice 1. */
.account-bar{display:flex;align-items:center;gap:var(--space-2);min-width:0}.account-chip{display:inline-flex;flex-direction:column;justify-content:center;min-height:44px;padding:4px 12px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;line-height:1.25;min-width:5.5rem}.account-chip:hover{border-color:var(--primary);background:var(--primary-tint)}.account-chip[aria-current="page"]{border-color:var(--primary)}.account-name{font-weight:700;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-role{font-size:.75rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-bar{flex:0 1 auto}.account-chip{flex:0 1 auto;max-width:100%}.account-icon{display:none}.account-icon .icon{width:22px;height:22px;display:block}.site-header .brand{flex:none}.site-header nav a{white-space:nowrap}.sign-out{margin:0;flex:none}.sign-out .button{min-height:44px;padding:8px 12px;white-space:nowrap}
.account-panel{display:flex;align-items:center;gap:var(--space-4);background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-6);box-shadow:var(--shadow-card)}.account-panel>div{flex:1;min-width:0}.account-panel .step-icon{width:44px;height:44px;margin:0;flex:none}.account-title{margin:0;font-weight:700;overflow-wrap:break-word}.account-panel .quiet{margin:2px 0 0}
.auth-layout{max-width:640px;margin:0 auto}.auth-panel h1{margin-top:0}.auth-form-panel{max-width:720px}.auth-state{display:flex;gap:var(--space-3);align-items:flex-start;border:1px solid var(--line);border-left-width:5px;border-radius:var(--radius-sm);padding:var(--space-4);margin-bottom:var(--space-5);background:var(--primary-tint);color:var(--ink)}.auth-state .icon{flex:none;width:22px;height:22px;margin-top:2px;color:var(--primary)}.auth-state p{margin:0}.auth-state-title{font-weight:700;margin-bottom:2px}.auth-state[data-state="cancelled"],.auth-state[data-state="expired"],.auth-state[data-state="rejected"]{border-left-color:var(--warning);background:var(--warning-tint);color:var(--warning-ink)}.auth-state[data-state="cancelled"] .icon,.auth-state[data-state="expired"] .icon,.auth-state[data-state="rejected"] .icon{color:var(--warning)}.auth-state[data-state="disabled"],.auth-state[data-state="unreachable"]{border-left-color:var(--error);background:var(--error-tint);color:var(--error-ink)}.auth-state[data-state="disabled"] .icon,.auth-state[data-state="unreachable"] .icon{color:var(--error)}.auth-state[data-state="unavailable"],.auth-state[data-state="notconfigured"]{border-left-color:var(--primary)}
.sandbox-note{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.8125rem;color:var(--warning-ink);background:var(--warning-tint);border-radius:var(--radius-pill);padding:4px 12px;margin-top:var(--space-4)}.sandbox-note .icon{width:16px;height:16px}
.test-panel{border:1.5px dashed var(--field);border-radius:var(--radius-sm);padding:var(--space-4);margin-bottom:var(--space-5)}.test-legend{font-weight:600;font-size:.875rem;margin:var(--space-3) 0 var(--space-2)}
.check-list{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);margin-top:var(--space-2)}.check{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:6px 14px 6px 10px;border:1.5px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);font-weight:500;font-size:.9375rem;margin:0;cursor:pointer}.check:has(input:checked){border-color:var(--primary);background:var(--primary-tint)}.check input,.role-card input{width:20px;height:20px;min-height:0;margin:0;padding:0;flex:none;accent-color:var(--primary)}
.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-2)}.role-card{display:grid;grid-template-columns:auto auto 1fr;align-items:start;gap:var(--space-3);padding:var(--space-4);border:1.5px solid var(--line);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;margin:0;font-weight:400}.role-card:has(input:checked){border-color:var(--primary);background:var(--primary-tint);box-shadow:var(--shadow-card)}.role-card .step-icon{width:40px;height:40px;margin:0}.role-card .step-icon .icon{width:20px;height:20px}.role-text{display:grid;gap:2px;min-width:0}.role-text strong{font-size:1rem}.role-text span{font-size:.875rem;color:var(--muted)}.role-card input{margin-top:10px}
.field-error{color:var(--error-ink);font-size:.8125rem;font-weight:600;margin:6px 0 0}.has-error input:not([type="checkbox"]):not([type="radio"]),.has-error textarea{border-color:var(--error)}.has-error .check,.has-error .role-card{border-color:var(--error)}.profile-name{font-family:var(--font-display);font-weight:700;font-size:1.25rem;margin:0;overflow-wrap:anywhere}
@media(max-width:760px){.account-bar{grid-column:2;grid-row:1;justify-self:end}.account-chip{padding:4px 10px}.sign-out .button{padding:8px 10px;font-size:.8125rem}.role-grid{grid-template-columns:1fr}.account-panel{flex-wrap:wrap;padding:var(--space-4)}.account-panel .button{width:100%}}
@media(max-width:400px){.account-chip{position:relative;width:44px;min-width:44px;padding:0;align-items:center}.account-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--primary)}.account-name{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.account-role{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}
.panel>form:first-child>.error-summary:first-child{margin-top:0}
/* Slice 3: live board, request, quote form and comparison. Same tokens and components as slices 1-2. */
.status-pill[data-status="closed"]{background:var(--tint);color:var(--muted)}
.has-error select{border-color:var(--error)}
.quote-status{display:inline-flex;align-items:center;border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;padding:3px 10px;background:var(--tint);color:var(--ink)}
.quote-status[data-quote-status="submitted"]{background:var(--success-tint);color:var(--success-ink)}
.quote-status[data-quote-status="withdrawn"],.quote-status[data-quote-status="expired"],.quote-status[data-quote-status="not_selected"]{background:var(--tint);color:var(--muted)}
.comparison .quote-status{margin-bottom:var(--space-2)}
.own-requests{margin-bottom:var(--space-6)}
.own-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}
.own-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-card)}
.own-main{min-width:0;flex:1 1 260px}.own-main .quiet{margin:4px 0 0}
.own-title{font-weight:700;color:var(--ink);overflow-wrap:anywhere}.own-title:hover{color:var(--primary)}
.own-side{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.own-count{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--muted)}.own-count .icon{width:16px;height:16px}
.own-quote-line{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:600;color:var(--primary-deep);margin:0 0 var(--space-3)}.own-quote-line .icon{width:16px;height:16px}
.request-card h3,.request-detail h1,.card-description,.brief-text,.quote-note,.comparison td p{overflow-wrap:anywhere}
.owner-actions,.quote-panel{margin-block:var(--space-5)}
.field-narrow{max-width:12rem}.board-pager{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-5)}
.owner-actions h2,.quote-panel h2{font-size:1.25rem;margin:0 0 var(--space-3)}
.inline-form{margin-top:var(--space-4);border-top:1px solid var(--line);padding-top:var(--space-4)}
.inline-form .quiet{margin:0 0 var(--space-3)}
.ai-unavailable{display:flex;align-items:flex-start;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--tint);color:var(--ink);padding:var(--space-3) var(--space-4)}
.ai-unavailable .icon{width:18px;height:18px;flex:none;margin-top:2px;color:var(--primary)}
.live-error h1{font-size:1.5rem;margin:var(--space-3) 0}

/* ---- Slice 4: choosing a quote, the job and the dashboards (same tokens and components as slices 1-3) ---- */
.choose-button{margin-top:var(--space-4);min-height:44px}
.award-dialog h2{font-size:1.35rem;margin-bottom:var(--space-3)}
.award-summary{font-weight:600;color:var(--ink)}
.award-status{min-height:1.5em;font-size:.875rem;font-weight:600;color:var(--primary-deep);margin:var(--space-3) 0 0}
.award-dialog[aria-busy="true"] .button{cursor:progress}
.award-result{border-color:var(--success);border-left-width:5px}
.award-result .state-icon{background:var(--success-tint);color:var(--success-ink)}
.award-result h2{font-size:1.35rem;margin:var(--space-3) 0}
.work-panel{margin-block:var(--space-6)}
.work-panel .section-heading{margin-top:0}
.work-party{margin-bottom:var(--space-2);color:var(--muted)}
.work-terms{font-size:1.0625rem}
.work-steps{list-style:none;counter-reset:step;display:flex;gap:var(--space-2);padding:0;margin:var(--space-5) 0}
.work-steps li{counter-increment:step;flex:1 1 0;min-width:0;display:flex;align-items:center;gap:var(--space-2);font-size:.8125rem;font-weight:600;color:var(--muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--canvas);border:1px solid var(--line)}
.work-steps li::before{content:counter(step);flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface);border:1.5px solid var(--line);font-size:.75rem}
.work-steps li[data-step-done="true"]{color:var(--primary-deep);background:var(--primary-tint);border-color:var(--primary-tint)}
.work-steps li[data-step-done="true"]::before{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.work-steps li[aria-current="step"]{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}
.work-wait{font-weight:600}
.work-form textarea{width:100%}
.report-problem{margin-top:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);background:var(--canvas)}
.report-problem summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}
.report-problem p{margin:var(--space-2) 0 0;font-size:.875rem;color:var(--muted)}
.work-history{margin-top:var(--space-6);border-top:1px solid var(--line);padding-top:var(--space-5)}
.work-history h3{font-size:1.1rem;margin-bottom:var(--space-3)}
.work-history ol{list-style:none;padding:0;margin:0;border-left:2px solid var(--line)}
.work-history li{position:relative;padding:0 0 var(--space-4) var(--space-5)}
.work-history li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--primary)}
.work-history li p{margin:0;font-size:.875rem;overflow-wrap:anywhere}
.work-reason{color:var(--muted);margin-top:var(--space-1)!important}
.dash-tabs{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-5)}
.dash-tabs a{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-weight:600;font-size:.9375rem;white-space:nowrap}
.dash-tabs a:hover{border-color:var(--primary);color:var(--primary)}
.dash-tabs a[aria-current="page"]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.dash-count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:var(--radius-pill);background:var(--tint);color:var(--ink);font-size:.75rem;font-weight:700}
.dash-tabs a[aria-current="page"] .dash-count{background:var(--surface);color:var(--primary-deep)}
.dash-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}
.dash-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-card);min-width:0}
.dash-item h3{font-size:1.125rem;line-height:1.35;margin-bottom:var(--space-3);overflow-wrap:anywhere}.dash-item h3 a{display:inline-block;min-height:24px}
.dash-facts{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);font-size:.875rem;margin-bottom:var(--space-2)}
.dash-item .quiet{font-size:.8125rem;margin:0}
@media(max-width:760px){.site-header nav{flex-wrap:wrap;row-gap:0}.dash-list{grid-template-columns:minmax(0,1fr)}.work-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dash-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dash-tabs a{justify-content:space-between}}
/* Header, review V-M1/V-L2: from 761 to 960 px the one-row header cannot hold brand, three links, the account chip and Sign out, so it uses the two-row layout of phones (brand and account on row 1, links on row 2). At 320-376 px the three links stay on one row and their text wraps inside each link, so no link sits alone on a second row. */
@media(min-width:761px) and (max-width:960px){.header-inner{min-height:112px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;padding-block:14px 0}.site-header nav{grid-column:1/-1;grid-row:2;gap:var(--space-5)}.account-bar,.sign-in{grid-column:2;grid-row:1;justify-self:end}}
@media(max-width:376px){.site-header nav{flex-wrap:nowrap;gap:var(--space-3)}.site-header nav a{white-space:normal;line-height:1.25;min-width:0}}

/* Slice 5: AI draft helper above the posting form (templates/ai-draft.php). Same tokens and components as slices 1-4:
   one containment layer: the helper sits flat in the form panel (a rule below it), the AI result is the single tinted box;
   the shared field, button and notice styles; AI output carries its labels. */
.ai-draft{margin:var(--space-5) 0 var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--line);color:var(--ink)}
.ai-draft h2{margin:0 0 var(--space-1);font-family:var(--font-display);font-size:1.125rem;line-height:1.35}
.ai-draft>.quiet{margin:0 0 var(--space-4)}
.ai-draft textarea{width:100%}
.ai-count{display:block;margin-top:2px;font-size:.8125rem;color:var(--muted);font-variant-numeric:tabular-nums}
.ai-count.is-over{color:var(--error-ink);font-weight:600}
.ai-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-2)}
.ai-actions .button{margin-top:0}
.ai-actions .button .icon{width:18px;height:18px}
.ai-status{margin:0}
.ai-status:not(:empty){margin-top:var(--space-3)}
.ai-draft .ai-unavailable{margin-top:var(--space-3)}
.ai-result{margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--primary-tint);color:var(--ink)}
.ai-result:focus-visible,.ai-unavailable:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.ai-label{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;font-size:.9375rem}
.ai-label .icon{width:18px;height:18px;flex:none;margin-top:3px;color:var(--primary)}
.ai-label-draft{margin:var(--space-1) 0 0;font-size:.875rem}
.ai-questions{margin-top:var(--space-4)}
.ai-questions h3{margin:0 0 var(--space-2);font-size:.9375rem}
.ai-questions li{font-size:.9375rem}
.ai-questions ul{margin:0;padding-left:1.25rem}
.ai-questions li+li{margin-top:var(--space-1)}
.ai-followup{margin-top:var(--space-4)}
.ai-followup .button{margin-top:0}
[data-ai-filled] label::after{content:"";display:inline-block;width:8px;height:8px;margin-left:var(--space-2);border-radius:var(--radius-pill);background:var(--primary);vertical-align:middle}
@media(max-width:760px){.ai-actions .button{width:100%}}
/* Slice 6: AI comparison below the plain table (templates/ai-compare.php). Same tokens and components as slices 1-5:
   a flat section under a rule (no card in a card), the one tinted .ai-result box, the AI label, the shared notice. */
.ai-compare{margin:var(--space-6) 0 var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--line);color:var(--ink)}
.ai-compare h2{margin:0 0 var(--space-1);font-family:var(--font-display);font-size:1.125rem;line-height:1.35}
.ai-compare>.quiet{margin:0 0 var(--space-4);max-width:72ch}
.ai-compare .ai-result{margin-top:0}
.ai-compare .ai-actions{margin-top:var(--space-4)}
.ai-compare>.ai-unavailable{margin-top:var(--space-4)}
.ai-block{margin-top:var(--space-4)}
.ai-block h3{margin:0 0 var(--space-2);font-size:.9375rem}
.ai-block ul{margin:0;padding-left:1.25rem}
.ai-block li{font-size:.9375rem;overflow-wrap:break-word}
.ai-block li+li{margin-top:var(--space-1)}
.ai-block .quiet{margin:0}
.ai-cite{font-weight:600}
.ai-stale{margin:var(--space-3) 0 0;font-size:.9375rem}
.ai-dropped,.ai-saved{margin:var(--space-4) 0 0;font-size:.875rem}
.ai-flag-note{display:flex;align-items:flex-start;gap:var(--space-2);margin:var(--space-2) 0 0;font-size:.875rem;color:var(--warning-ink)}
.ai-flag-note .icon{width:16px;height:16px;flex:none;margin-top:2px}
.ai-compare-result .ai-flag-note{margin-top:var(--space-3)}

/* Slice 6b: gentle low-budget hint (never an error, never blocks). */
.budget-low-hint{margin-top:var(--space-2);font-size:.875rem;color:var(--warning-ink)}
.budget-low-hint[hidden]{display:none}
/* Language switch in the footer (task qd-vi-language-0811): one 44 px tap target per language, a gap between them, the current one bold */
.lang-switch{display:flex;flex-wrap:wrap;gap:4px var(--space-4);margin:0}.lang-switch a{display:inline-flex;align-items:center;min-width:44px;min-height:44px;padding-inline:6px;font-size:.875rem;color:var(--muted)}.lang-switch a:hover{color:var(--primary)}.lang-switch a[aria-current]{font-weight:700;color:var(--ink);text-decoration:none}
@media(max-width:760px){.lang-switch{width:100%}}@media(max-width:767px){.lang-switch a{margin-inline-start:-6px}}
/* Dashboard tabs below 761px (task qd-vi-language-0811): longer Vietnamese labels wrap inside their tab instead of being cut */
@media(max-width:760px){.dash-tabs a{white-space:normal;line-height:1.25;text-align:start;border-radius:14px;padding-inline:var(--space-3)}.dash-tabs .dash-count{flex:none}}
/* Header links at 376px and below (task qd-vi-language-0811): a one-word link ("Dashboard") never shrinks under its word; longer labels wrap instead */
@media(max-width:376px){.site-header nav a{min-width:min-content}}
