:root{--bg:#fffcf6;--surface:#fff;--sand:#f7f2e8;--ink:#201a14;--muted:#594d42;--line:#ded2c0;--line-strong:#c4b49c;--accent:#a8431e;--accent-deep:#7d3115;--accent-wash:#f6e6dd;--accent-ink:#fff;--sun:#d9922b;--good:#3c5a32;--bad:#8a1c00;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--display:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--r:10px;--r-btn:6px;--shadow:0 1px 2px #201a140f, 0 10px 28px -16px #201a1447;--ease:cubic-bezier(.2, .7, .3, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-brand=buyus]{--bg:#fffcf6;--accent:#1f2a52;--accent-deep:#141c3a;--accent-wash:#e8e9f1;--sun:#f0b23a;--font:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--display:"Fraunces", "Iowan Old Style", Georgia, serif;--r:18px;--r-btn:999px}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font:16px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}[hidden]{display:none!important}main{max-width:46rem;margin:0 auto;padding:1rem 1rem 0}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;font-weight:500;line-height:1.15}h1{margin:0 0 .35rem;font-size:clamp(1.5rem,1.2rem + 1.4vw,2.1rem)}h2{outline:none;margin:0 0 1rem;font-size:clamp(1.3rem,1.15rem + .7vw,1.65rem)}h3{margin:0 0 .75rem;font-size:1.25rem}h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:1.25rem 0 .5rem;font-size:.8rem}.intro p{color:var(--muted);margin:0 0 1rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.banner,.note{background:var(--accent-wash);border-left:4px solid var(--accent);border-radius:4px;padding:.6rem .8rem;font-size:.92rem}.banner{margin:0 0 1rem;font-weight:600}.progress{counter-reset:s;gap:.25rem;margin:0 0 1.25rem;padding:0;list-style:none;display:flex}.progress li{flex:1;position:relative}.progress li:after{content:"";background:var(--line);border-radius:4px;height:4px;position:absolute;bottom:0;left:0;right:0}.progress li.done:after,.progress li.current:after{background:var(--accent)}.progress span,.progress button{font:inherit;color:var(--muted);text-align:left;background:0 0;border:0;align-items:center;gap:.4rem;width:100%;padding:0 0 .55rem;font-size:.82rem;display:flex}.progress button{cursor:pointer;color:var(--ink);min-height:44px;padding-bottom:.55rem}.progress button:hover .lbl{text-decoration:underline}.progress .dot{border:1.5px solid var(--line-strong);background:var(--surface);border-radius:50%;flex:none;place-items:center;width:1.6rem;height:1.6rem;padding:0;font-size:.78rem;font-weight:700;display:grid}.progress .current span{color:var(--ink);font-weight:600}.progress .current .dot,.progress .done .dot{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}@media (width<=30rem){.progress li:not(.current) .lbl{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}}.step{animation:step-in .28s var(--ease)}@keyframes step-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.step,.spinner{animation:none!important}*{transition:none!important}}.cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));gap:.75rem;display:grid}.card{cursor:pointer;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);min-height:7.5rem;box-shadow:var(--shadow);transition:border-color .15s, transform .15s var(--ease), background .15s;align-content:start;gap:.2rem;padding:1rem 1.1rem;display:grid;position:relative}.card:hover{border-color:var(--line-strong);transform:translateY(-1px)}.card input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.card .icon{width:2rem;height:2rem;color:var(--accent);margin-bottom:.35rem}.card span{color:var(--muted);font-size:.9rem}.card:has(input:checked){border-color:var(--accent);background:var(--accent-wash);box-shadow:0 0 0 1.5px var(--accent) inset, var(--shadow)}.card:has(input:checked):after{content:"✓";background:var(--accent);width:1.5rem;height:1.5rem;color:var(--accent-ink);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid;position:absolute;top:.7rem;right:.8rem}.card:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.2em;height:1.2em}.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.9rem 1rem;display:grid}.field{align-content:end;gap:.3rem;display:grid}.lbl{font-size:.92rem;font-weight:600;display:block}.field.units{max-width:15rem;margin-bottom:1rem}input:not([type=radio]),select{width:100%;min-height:48px;font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line-strong);border-radius:8px;padding:.6rem .75rem}input:focus-visible,select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}input:user-invalid{border-color:var(--bad)}.inputgroup{display:flex}.inputgroup input{flex:1;min-width:0}.inputgroup:has(.unit) input{border-radius:8px 0 0 8px}.unit{border:1.5px solid var(--line-strong);background:var(--sand);color:var(--muted);white-space:nowrap;border-left:0;border-radius:0 8px 8px 0;place-items:center;padding:0 .75rem;font-size:.88rem;display:grid}.advanced{border-top:1px solid var(--line);margin-top:1.1rem;padding-top:.4rem}.advanced summary{cursor:pointer;min-height:44px;color:var(--accent);align-items:center;gap:.4rem;font-weight:600;list-style:none;display:flex}.advanced summary::-webkit-details-marker{display:none}.advanced summary:before{content:"+";border:1.5px solid;border-radius:50%;place-items:center;width:1.3rem;height:1.3rem;font-size:.9rem;line-height:1;display:grid}.advanced[open] summary:before{content:"−"}.advanced[open]>.grid,.advanced[open]>table{margin:.5rem 0 .75rem}.hint{color:var(--muted);margin-top:-.5rem}.search{gap:.5rem;margin:.3rem 0 .4rem;display:flex}.search input{flex:1;min-width:0}.status{color:var(--muted);min-height:1.35em;margin:.25rem 0;font-size:.9rem}.places{border:1px solid var(--line);border-radius:8px;margin:0 0 .5rem;padding:0;list-style:none;overflow:hidden}.places:empty{display:none}.places button{text-align:left;width:100%;min-height:44px;font:inherit;background:var(--surface);border:0;border-top:1px solid var(--line);cursor:pointer;color:var(--ink);padding:.65rem .8rem;font-size:.9rem;display:block}.places li:first-child button{border-top:0}.places button:hover{background:var(--accent-wash)}.map{border-radius:var(--r);border:1.5px solid var(--line);background:var(--sand);z-index:0;height:clamp(16rem,50vw,22rem);overflow:hidden}.leaflet-container{font:inherit;cursor:crosshair}.pin{background:var(--accent);border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 6px #00000059}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin:.6rem 0 0;display:flex}.picked{align-items:center;gap:.35rem;margin:0;font-weight:600;display:flex}.picked .icon{color:var(--accent)}.attrib{color:var(--muted);font-size:.78rem}.btn{min-height:48px;font:600 1rem/1.1 var(--font);border-radius:var(--r-btn);cursor:pointer;transition:background .15s, transform .15s var(--ease), color .15s;border:1.5px solid #0000;justify-content:center;align-items:center;gap:.45rem;padding:.7rem 1.35rem;text-decoration:none;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:var(--accent-deep)}.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn.ghost:hover{border-color:var(--ink)}.btn.ghost[aria-pressed=true]{background:var(--good);border-color:var(--good);color:#fff}.btn.link{color:var(--accent);background:0 0;padding-inline:.5rem;text-decoration:underline}.btn.small{min-height:44px;padding:.5rem .9rem;font-size:.92rem}.btn:disabled{opacity:.6;cursor:progress;transform:none}.stepbar{z-index:2;padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--line);justify-content:space-between;gap:.75rem;margin:1.5rem -1rem 0;display:flex;position:sticky;bottom:0}.stepbar:has(.primary[hidden]):has(.ghost[hidden]){display:none}.stepbar .primary{min-width:8.5rem;margin-left:auto}.error{color:var(--bad);margin:.75rem 0 0;font-weight:600}.error:empty{display:none}.loading{color:var(--muted);align-items:center;gap:.6rem;padding:2rem 0;display:flex}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:1.4rem;height:1.4rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.option{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin:1rem 0;padding:1.1rem}.stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));gap:.6rem;display:grid}.stat{background:var(--sand);border-radius:8px;padding:.6rem .75rem}.stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;display:block}.stat strong{font-size:1.02rem}.parts{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.part{border:1px solid var(--line);border-radius:8px;grid-template-columns:1fr auto;grid-template-areas:"role qty""name qty""sku qty";align-items:center;column-gap:.75rem;padding:.7rem .85rem;display:grid}.part .role{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);grid-area:role;font-size:.74rem;font-weight:700}.part strong{grid-area:name}.part .sku{color:var(--muted);grid-area:sku;font:.78rem ui-monospace,SFMono-Regular,Menlo,monospace}.part .qty{background:var(--accent-wash);color:var(--accent-deep);border-radius:999px;grid-area:qty;padding:.2rem .7rem;font-size:1.05rem;font-weight:700}.messages{color:var(--muted);margin:.75rem 0;padding:0 0 0 1.1rem;font-size:.92rem}.messages li+li{margin-top:.3rem}.messages .warn{color:var(--ink)}.messages .error{color:var(--bad)}.actions{flex-wrap:wrap;gap:.6rem;margin:1.25rem 0 .25rem;display:flex}@media (width<=30rem){.actions .btn:not(.link){flex:100%}}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.3rem .75rem .3rem 0}caption{text-align:left;padding-bottom:.3rem;font-weight:600}
