:root{--primary:#91d891;--primary-hover:#7cc67c;--primary-foreground:#fff;--secondary:#b4dead;--secondary-foreground:#202020;--accent:#e8f8e9;--accent-foreground:#202020;--ring:#5542d3;--surface-tertiary:#e8f8e9;--surface-page:#f4faf4;--border-subtle:#20202014;--text-muted:#2020209e;--shadow-soft:0 4px 24px #2020200f;--shadow-sheet:0 -8px 32px #2020201f;--radius-lg:16px;--radius-md:12px;--radius-sm:10px;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent}body{min-height:100dvh;font-family:var(--font-sans);color:var(--secondary-foreground);background:var(--surface-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.5}#root{min-height:100dvh}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}button{font-family:inherit}.sheet-root{z-index:50;padding:16px;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));padding-bottom:max(16px, env(safe-area-inset-bottom));background:#20202073;justify-content:center;align-items:center;animation:.2s sheet-backdrop-in;display:flex;position:fixed;inset:0}@keyframes sheet-backdrop-in{0%{opacity:0}}.sheet-panel{border-radius:var(--radius-lg);background:#fff;width:100%;max-width:min(400px,100vw - 32px);padding:20px 18px 18px;animation:.34s cubic-bezier(.22,1,.36,1) sheet-modal-enter;box-shadow:0 16px 48px #20202029,0 4px 12px #20202014}@keyframes sheet-modal-enter{0%{opacity:0;transform:translate(36px)scale(.96)}to{opacity:1;transform:translate(0)scale(1)}}@media (prefers-reduced-motion:reduce){.sheet-root,.sheet-panel{animation:none}}.sheet-title{letter-spacing:.02em;color:var(--secondary-foreground);text-align:center;margin:0 0 14px;font-size:.9375rem;font-weight:600}.sheet-list{border-radius:var(--radius-md);border:1px solid var(--border-subtle);margin:0;padding:0;list-style:none;overflow:hidden}.sheet-list li+li{border-top:1px solid var(--border-subtle)}.sheet-option{background:var(--accent);width:100%;color:var(--accent-foreground);text-align:left;cursor:pointer;border:none;align-items:center;gap:14px;padding:16px 18px;font-size:1rem;font-weight:500;transition:background .15s;display:flex}.sheet-option:hover{background:var(--surface-tertiary)}.sheet-option:focus-visible{z-index:1;position:relative}.sheet-option-icon{color:var(--secondary-foreground);opacity:.85;display:flex}.sheet-cancel{border-radius:var(--radius-md);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-top:12px;padding:14px;font-size:1rem;font-weight:500}.sheet-cancel:hover{color:var(--secondary-foreground)}.estimating-overlay{z-index:100;background:#000;justify-content:center;align-items:center;animation:.5s forwards est-backdrop-in;display:flex;position:fixed;inset:0}@keyframes est-backdrop-in{0%{opacity:0}to{opacity:1}}.estimating-content{z-index:1;flex-direction:column;justify-content:flex-end;align-items:center;width:100%;height:100%;animation:.6s cubic-bezier(.22,1,.36,1) .15s both est-content-in;display:flex;position:relative}@keyframes est-content-in{0%{opacity:0}to{opacity:1}}.estimating-spline-wrap{z-index:0;position:absolute;inset:0}.estimating-spline-iframe{border:none;width:100%;height:100%;display:block}.estimating-brand{z-index:2;align-items:center;gap:8px;display:inline-flex;position:absolute;top:64px;left:50%;transform:translate(-50%)}.estimating-brand-mark{justify-content:center;align-items:center;display:inline-flex}.estimating-brand-icon{width:32px;height:32px;display:block}.estimating-brand-text{letter-spacing:-.02em;color:#fff;align-items:baseline;font-size:1.35rem;line-height:1;display:inline-flex}.estimating-brand-store{font-weight:400}.estimating-brand-more{font-weight:700}.estimating-logo-wrap{width:160px;height:160px;position:relative}.estimating-logo{width:100%;height:100%;display:block}.estimating-hex-dot{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.estimating-text{z-index:2;color:#fff;letter-spacing:.01em;text-align:center;margin:0 0 32px;font-size:1.3rem;font-weight:700;position:relative}.estimating-bottom-bar{z-index:2;background:#b4dead;flex-shrink:0;width:100%;height:60px;position:relative}@media (prefers-reduced-motion:reduce){.estimating-overlay,.estimating-content{animation:none}.estimating-hex-dot{display:none}}.upload-page{max-width:480px;min-height:100dvh;padding:env(safe-area-inset-top,0) 20px env(safe-area-inset-bottom,24px);flex-direction:column;margin:0 auto;display:flex}.upload-header{justify-content:center;align-items:center;padding:16px 0 8px;display:flex}.upload-brand{align-items:center;gap:10px;display:inline-flex}.upload-brand-icon{object-fit:contain;width:32px;height:32px;display:block}.upload-brand-text{letter-spacing:-.03em;font-size:1.375rem;font-weight:700}.upload-brand-store{color:var(--secondary-foreground)}.upload-brand-more{color:var(--primary-hover)}.upload-main{text-align:center;flex-direction:column;flex:1;align-items:center;padding-bottom:24px;display:flex}.upload-hero-icon{background:linear-gradient(145deg, #fff 0%, var(--accent) 100%);width:88px;height:88px;box-shadow:var(--shadow-soft);border-radius:50%;justify-content:center;align-items:center;margin:12px 0 20px;display:flex}.upload-hero-brand-icon{object-fit:contain;width:58px;height:58px;display:block}.upload-title{letter-spacing:-.02em;color:var(--secondary-foreground);max-width:20ch;margin:0 0 10px;font-size:1.375rem;font-weight:700;line-height:1.25}.upload-subtitle{color:var(--text-muted);max-width:28ch;margin:0 0 28px;font-size:.9375rem;line-height:1.45}.upload-slots{justify-content:center;gap:10px;width:100%;margin-bottom:8px;display:flex}.upload-slot-wrap{flex-direction:column;flex:1;align-items:center;gap:8px;min-width:0;max-width:112px;display:flex}.upload-slot{aspect-ratio:1;border:2px dashed var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;background:#fff;width:100%;padding:0;transition:border-color .2s,box-shadow .2s,transform .15s;position:relative;overflow:hidden}.upload-slot:hover{border-color:#5542d359;box-shadow:0 4px 16px #5542d314}.upload-slot:focus-visible{border-color:var(--ring);outline:none;box-shadow:0 0 0 3px #5542d340}.upload-slot--focus{border-color:var(--ring);border-style:solid;box-shadow:0 0 0 3px #5542d333}.upload-slot--filled{border-style:solid;border-color:#7cc67c73}.upload-slot-preview{object-fit:cover;width:100%;height:100%;display:block}.upload-slot-plus{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.upload-slot-plus-icon{opacity:.45;width:34px;height:34px}.upload-slot-label{color:var(--text-muted);font-size:.75rem;font-weight:500}.upload-context-prompt{background:linear-gradient(135deg,#f0f4ff 0%,#f5f0ff 100%);border:1px solid #5542d31f;border-radius:12px;width:100%;max-width:380px;margin:20px auto 0;padding:14px 16px}.upload-context-question{color:var(--secondary-foreground);margin:0 0 10px;font-size:.9rem;font-weight:600;line-height:1.3}.upload-context-buttons{gap:8px;display:flex}.upload-context-btn{border:1.5px solid var(--border-subtle);color:var(--secondary-foreground);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:9px 12px;font-size:.85rem;font-weight:500;transition:all .15s}.upload-context-btn:hover{background:#5542d30a;border-color:#5542d34d}.upload-context-btn--active{border-color:var(--primary);color:var(--primary-hover);background:#7cc67c1a;font-weight:600}.upload-hint{color:var(--text-muted);margin:16px 0 24px;font-size:.8125rem}.upload-cta{border-radius:var(--radius-md);background:var(--primary);width:100%;max-width:100%;color:var(--primary-foreground);letter-spacing:.01em;cursor:pointer;border:none;justify-content:center;align-items:center;gap:10px;padding:16px 24px;font-size:1rem;font-weight:600;transition:background .2s,transform .15s,box-shadow .2s,opacity .2s;display:inline-flex;box-shadow:0 4px 20px #7cc67c59}.upload-cta:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 6px 24px #7cc67c73}.upload-cta:active:not(:disabled){transform:scale(.98)}.upload-cta:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.upload-hidden-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.upload-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;width:100%;max-width:380px;margin:0 auto 12px;padding:10px 14px;font-size:.875rem;line-height:1.4;display:flex}.upload-error-text{flex:1;margin:0}.upload-error-dismiss{color:#b91c1c;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:1.25rem;line-height:1}@media (width>=640px){.upload-page{padding-top:24px}.upload-title{max-width:none;font-size:1.5rem}.upload-slots{gap:16px}.upload-slot-wrap{max-width:128px}}.results-page{max-width:480px;min-height:100dvh;padding:env(safe-area-inset-top,0) 20px calc(env(safe-area-inset-bottom,0px) + 48px);background:var(--surface-page);flex-direction:column;margin:0 auto;display:flex}.results-header{grid-template-columns:1fr auto 1fr;align-items:center;padding:12px 0 16px;display:grid}.results-back{color:var(--primary-hover);cursor:pointer;background:0 0;border:none;justify-self:start;padding:8px 4px;font-family:inherit;font-size:.9375rem;font-weight:500}.results-back:hover{text-decoration:underline}.results-brand{grid-column:2;align-items:center;gap:10px;display:inline-flex}.results-brand-icon{object-fit:contain;width:32px;height:32px;display:block}.results-brand-text{letter-spacing:-.03em;font-size:1.375rem;font-weight:700}.results-brand-store{color:var(--secondary-foreground)}.results-brand-more{color:var(--primary-hover)}.results-main{text-align:center;flex-direction:column;flex:1;align-items:center;gap:22px;padding-bottom:24px;display:flex}.results-hero-icon{background:linear-gradient(145deg, #fff 0%, var(--accent) 100%);width:96px;height:96px;box-shadow:var(--shadow-soft);color:var(--secondary-foreground);border-radius:50%;justify-content:center;align-items:center;margin-top:8px;display:flex}.results-hero-asset{opacity:.92;object-fit:contain;width:74px;height:74px;display:block}.results-headline{letter-spacing:-.02em;color:#001d4a;max-width:min(100%,26rem);margin:0;font-size:clamp(1.35rem,4.5vw,1.6rem);font-weight:700;line-height:1.3}.results-headline-prefix{color:#001d4a}.results-headline-value{color:var(--primary-hover);font-weight:700}.results-panel{text-align:left;border-radius:var(--radius-md);background:linear-gradient(#e1e4e9f2 0%,#dadee6e0 100%);border:1px solid #2020200f;width:100%;padding:18px 18px 16px;box-shadow:inset 0 1px #ffffffa6}.results-panel--excluded{margin-top:4px;margin-bottom:8px}.results-excluded-intro{color:var(--secondary-foreground);opacity:.88;margin:0 0 14px;font-size:.9375rem;font-weight:500;line-height:1.45}.results-empty-message{text-align:center;color:#d96b6b;margin:0;padding:20px 16px;font-size:1.21875rem;font-weight:600;line-height:1.45}.results-item-table{flex-direction:column;align-items:stretch;gap:0;width:100%;display:flex}.results-item-table--windowed{border-radius:var(--radius-sm);background:#ffffff59;border:1px solid #2020200f;margin-top:2px;overflow:hidden}.results-nav-rail{background:#ffffff8c;justify-content:center;align-items:center;width:100%;padding:6px 0;display:flex}.results-nav-rail--top{border-bottom:1px solid #20202012}.results-nav-rail--bottom{border-top:1px solid #20202012}.results-nav-btn{width:36px;height:36px;color:var(--secondary-foreground);cursor:pointer;background:#fffffff2;border:1px solid #2020201a;border-radius:50%;justify-content:center;align-items:center;padding:0;line-height:0;transition:background .18s,border-color .18s,color .18s,box-shadow .18s,transform .12s;display:flex;box-shadow:0 1px 2px #2020200f}.results-nav-btn:hover:not(:disabled){color:var(--primary-hover);background:#fff;border-color:#7cc67c8c;box-shadow:0 2px 8px #7cc67c33,0 1px 2px #2020200f}.results-nav-btn:focus-visible{border-color:var(--ring);outline:none;box-shadow:0 0 0 3px #5542d338}.results-nav-btn:active:not(:disabled){transform:scale(.94)}.results-nav-btn:disabled{opacity:.32;cursor:not-allowed;box-shadow:none}.results-nav-chevron{flex-shrink:0;display:block}.results-item-list{flex-direction:column;gap:10px;width:100%;margin:0;padding:0;list-style:none;display:flex}.results-item-list--windowed{background:#ffffff40;justify-content:flex-start;min-height:calc(12rem + 30px);margin:0;padding:12px 10px}.results-item{border-radius:var(--radius-sm);background:#ffffff8c;border:1px solid #fffc;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.results-item-index{min-width:26px;height:26px;color:var(--primary-foreground);background:linear-gradient(145deg, var(--primary) 0%, var(--primary-hover) 100%);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8125rem;font-weight:700;display:flex;box-shadow:0 2px 8px #7cc67c59}.results-item-body{flex-wrap:wrap;flex:1;align-items:baseline;gap:6px 8px;min-width:0;display:flex}.results-item-qty{color:var(--primary-hover);letter-spacing:.02em;font-size:.875rem;font-weight:700}.results-item-name{color:var(--secondary-foreground);text-transform:capitalize;font-size:1rem;font-weight:500}.results-considerations{text-align:left;border-radius:var(--radius-md);background:linear-gradient(145deg,#fff8ebf2 0%,#fff3dce6 100%);border:1px solid #d2aa5a33;width:100%;margin-top:4px;padding:20px 18px 18px;position:relative;box-shadow:inset 0 1px #ffffffb3}.results-considerations-pin{color:#b8860b;background:#d2aa5a26;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex;position:absolute;top:12px;right:14px}.results-considerations-title{color:#8b6914;margin:0 0 8px;font-size:1rem;font-weight:700}.results-considerations-intro{color:#6b5210;opacity:.9;margin:0 0 12px;font-size:.875rem;line-height:1.5}.results-considerations-list{flex-direction:column;gap:6px;margin:0;padding:0 0 0 20px;display:flex}.results-considerations-item{color:#5a4510;font-size:.875rem;font-weight:500;line-height:1.5}.results-visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.results-qe-cta{border-radius:var(--radius-md);background:var(--primary);width:100%;color:var(--primary-foreground);letter-spacing:.01em;cursor:pointer;justify-content:center;align-items:center;margin-top:24px;padding:16px 24px;font-size:1rem;font-weight:600;text-decoration:none;transition:background .12s,box-shadow .12s,transform 80ms;display:inline-flex}.results-qe-cta:hover{background:var(--primary-hover);box-shadow:0 6px 24px #7cc67c73}.results-qe-cta:active{transform:scale(.98)}
